Как создать несколько записей из массива в SnapLogic?

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

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

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

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

Входные данные:

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

  ]
}

Выход:

[{
  "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 ответ

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

Образец трубопровода:

Вход (JSON Generator):

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

JSON сплиттер:

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

Выход:

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

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

Другие вопросы по тегам