У меня есть две коллекции массивов, как показано ниже
"**entitiy1**": [
{
"lotNumber": "Lot04",
"itemId": "1000123",
"locationId": "65668"
},
{
"lotNumber": "Lot02",
"itemId": "1000123"
"locationId": "1000006"
}]
"**entitiy2**":[
{
"storageLocationId": "1000006",
"storageLocationName": "Back Cooler"
},
{
"storageLocationId": "1000007",
"storageLocationName": "Stock Room"
}]
Окончательный новый массив должен быть сформирован путем сопоставления данных с использованием locationId и storageLocationId
[{
"lotNumber": "Lot02",
"itemId": "1000123"
"locationId": "1000006",
"storageLocationName":"Back Cooler"
}]
Я пытаюсь, как показано ниже. Я перебираю один массив и фильтрую второй массив с текущим условием соответствия элементов. Но для каждого l oop всегда отображается как неудачный. Отображается как предыдущая и следующая итерационные ссылки. Когда мы перейдем к следующей итерации, она отобразится как переданная для соответствующего элемента. Но мне нужен только соответствующий вывод
3-я строка имеет соответствующую запись
Как можно сформировать окончательный массив со всеми соответствующими записями?
"For_each": {
"actions": {
"Append_to_array_variable": {
"inputs": {
"name": "finalArray",
"value": "@outputs('Compose')"
},
"runAfter": {
"Compose": [
"Succeeded"
]
},
"type": "AppendToArrayVariable"
},
"Compose": {
"inputs": {
"itemCount": "@items('For_each')?['itemCount']",
"locationId": "@items('For_each')?['locationId']",
"locationName": "@body('Filter_array')?[0]['storageLocationName']",
"lotNumber": "@items('For_each')?['lotNumber']",
"sellByDate": "@items('For_each')?['sellByDate']"
},
"runAfter": {
"Filter_array": [
"Succeeded"
]
},
"type": "Compose"
},
"Filter_array": {
"inputs": {
"from": "@body('Select_ESO_Locations')",
"where": "@equals(string(item()['storageLocationId']), string(items('For_each')['locationId']))"
},
"runAfter": {},
"type": "Query"
}
},
"foreach": "@body('Select_LSO_Locations')",
"runAfter": {
"Initialize_variable": [
"Succeeded"
]
},
"type": "Foreach"
}