В SAP PI 7.4 я испытываю некоторые трудности при попытке сопоставить что-либо в отображении сообщения, что может показаться довольно простым.
Ввод примерно такой.
<Employee>
<ExternalIdList>
<ExternalId>aaa</ExternalId>
<ExternalId>bbb</ExternalId>
<ExternalId>ccc</ExternalId>
</ExternalIdList>
</Employee>
Iэто нужно для сопоставления с чем-то со следующей структурой
<Newobject>
<ExternalEmployeeList>
<ExternalEmployee>
<ExternalId>aaa</ExternalId>
</ExternalEmployee>
<ExternalEmployee>
<ExternalId>bbb</ExternalId>
</ExternalEmployee>
<ExternalEmployee>
<ExternalId>ccc</ExternalId>
</ExternalEmployee>
</ExternalEmployeeList>
</Newobject>
При попытке сопоставить, я бы сделал это следующим образом:
Employee -> NewObject
ExternalIdList -> ExternalEmployeeList
ExternalId -> ExternalEmployee
ExternalId -> ExternalId
При проверке сопоставления создаются 3 узла ExternalEmployee, но только первый содержит значение «aaa» вВнешний идентификатор.Другие 2 ExternalEmployee не получают ExternalId:
<Newobject>
<ExternalEmployeeList>
<ExternalEmployee>
<ExternalId>aaa</ExternalId>
</ExternalEmployee>
<ExternalEmployee/>
<ExternalEmployee/>
</ExternalEmployee>
</ExternalEmployeeList>
</Newobject>
Я уже пробовал довольно много функций узла или изменил контекст, но, похоже, ничего не работает.Какое решение рекомендуется для этого?
Может быть, заранее добавить отображение XSLT, чтобы вставить уровень между ExternalIdList и ExternalId во входное сообщение?Кажется, для этого очень много размышлений.
Заранее спасибо, каждый совет в правильном направлении приветствуется!