Как создать несколько записей из массива в SnapLogic? - PullRequest
0 голосов
/ 20 февраля 2019

В SnapLogic, есть ли простой способ взять первую запись JSON и произвести вывод, который будет показан впоследствии?

Это упрощенная версия того, что пытается быть достигнуто ...

Входная запись содержит две переменные и массив «skus», состоящий из элементов с двумя переменными, «skucode» и «shade».

Каждая выходная запись является надмножеством входной записи.Каждая выходная запись переводит один из элементов массива над массивом на тот же уровень, что и две переменные во входной записи, как показано в примере ниже.

Input:

{
  "code": "ABCD",
  "name": "Product A",
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    },

  ]
}

Output:

[{
  "code": "ABCD",
  "name": "Product A",
  "skucode": "ABCD12",
  "shade": "green"
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    },

  ]
},

{
  "code": "ABCD",
  "name": "Product A",
  "skucode": "ABCD13",
  "shade": "brown"
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    },

  ]
},
{
  "code": "ABCD",
  "name": "Product A",
  "skucode": "ABCD14",
  "shade": "blue"
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    }
  ]

},
{
  "code": "ABCD",
  "name": "Product A",
  "skucode": "ABCD15",
  "shade": "red"
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    }
  ]
}
]

1 Ответ

0 голосов
/ 25 февраля 2019

Самое простое решение для моей головы было бы следующим:

Пример конвейера:

Sample Pipeline

Input (Генератор JSON):

Input

Отображение перед разделителем JSON:

mapper

Разделитель JSON:

JSON splitter

Отображение после разделителя JSON:

mapper 2

Вывод:

output

Примечание: Вместо непосредственного использования $sku в пути включения, я сначала преобразовал JSON в строкуновое поле, а затем добавил его в список включенных путей.Это потому, что вы не можете включить путь, который вы разделяете.Для окончательного желаемого результата я просто снова проанализировал текст JSON в JSON.

Надеюсь, это то, что вам нужно, ребята:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...