Boomi — объединить два JSON

У меня есть два входящих набора данных JSON, которые мне нужно объединить/объединить в Boomi.

Входящий набор данных1

{
    "Id": 1,
    "Program": [
        {
            "ProgramId": "A",
            "ProgramName": "ProgramA"
        },
        {
            "ProgramId": "B",
            "ProgramName": "ProgramB"
        }
    ]
}

и

Входящий набор данных2

{
    "Id": 1,
    "Course": [
        {
            "CourseId": "C1",
            "CourseName": "Course 1"
        },
        {
            "CourseId": "C2",
            "CourseName": "Course 2"
        }
    ]
}

Хотите объединить их со следующим:

{
    "Id": 1,
    "Program": [
        {
            "ProgramId": "A",
            "ProgramName": "ProgramA"
        },
        {
            "ProgramId": "B",
            "ProgramName": "ProgramB"
        }
    ],
    "Course": [
        {
            "CourseId": "C1",
            "CourseName": "Course 1"
        },
        {
            "CourseId": "C2",
            "CourseName": "Course 2"
        }
    ]
}

Я определил профиль JSON с окончательным ожидаемым результатом, в котором есть программа и курс, однако в обработке данных, когда я пытаюсь выполнить комбинирование JSON, я не могу выбрать ни элементы, ни ключи для объединения документов.

Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Jay 18.11.2022 07:58
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
1
59
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Подход требует создания трех профилей данных: по одному для каждого набора данных и один для комбинированного формата.

Вы загружаете набор данных2 в кеш документов (убедитесь, что у вас выбрано «Принудительно использовать одну запись индекса для каждого документа» и что у вас есть ключ документа), затем вы получаете набор данных1 в карту (форму). На этой карте вы выполняете поиск (добавляете кэшированные данные) в набор данных2 на основе «Id». Это позволит вам объединить оба профиля на основе идентификатора.

Карте нужен целевой профиль, в который вы помещаете свой комбинированный профиль формата и сопоставляете поля из наборов данных 1 и 2 с окончательным профилем.

Я надеюсь, что это помогает..

Ответ принят как подходящий

Я последовал совету Криса и сделал следующее:

  • Добавлено в кеш
  • Затем объединил его в карту для уникального идентификатора
  • Итак, теперь у нас есть отдельные документы, в которых они объединены, но каждый документ является отдельным, нам нужно их объединить.
  • Для этого я добавил шаг сообщения, в котором я добавил следующее: '{"Data":['{1}']}', где {1} — текущие данные.
  • Теперь каждый документ находится внутри массива
  • Затем я использовал процесс данных для объединения документов с общим объектом массива.

Смотрите финальный процесс по ссылке ниже. Обращайтесь, если у вас есть вопросы.

Процесс Буми

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