Map data đơn giản từ 2 arrays trong power automate (không loop)

Chuẩn bị 2 arrays, array này có thể dc tạo thông qua nhiều cách, cách phổ biến là dùng Select:
Đừng đặt tên cột từu đầu, hãy đặt tên cột ngắn, đơn giản để viết công thức cho nhanh, tên cột có thể dc làm đẹp ở bước cuối cùng.

Ví dụ
array 1 cần map Location name theo Loc_ID

{
"Pro_name": "Nước tăng lực",
"create": "2025-06-27T03:06:57Z",
"used_up": "2025-07-12T00:00:00Z",
"expired": null,
"qty": 3,
"unit": "can",
"note": null,
"loc_ID": "0013"
}

array 2 có Loc_ID và locationame:
{
"loc_ID": "0009",
"loc_name": "Kệ sách"
},



Cách làm:
1. Tạo 1 compose như sau cho array2:


{

"root": {

"array": @{body('Select_2')}

}

}


Trong đó @{body('Select_2')} chính là array2, khúc này chọn trực tiếp từ Dynamic content chứ đừng gõ vào.


2. Tạo XML cho array2
output chính là output của step 1


3. Tạo 1 select để bắt đầu map các cột, lưu ý, hãy map 1-2 cột, rồi test, trc khi map full, trong đí chi tiết công thức như sau:

From:output array 1
Tên sản phẩm: (gõ vào chỗ expression rồi bấm add để tạo công thức ) item()?['Pro_name']
Nơi lưu trữ: coalesce(first(xpath(outputs('Compose_4'), concat('//array[loc_ID="', item()?['loc_ID'], '"]/loc_name/text()'))), 0)

trong đó:outputs('Compose_4'):output từ bước tạo xml
[loc_ID="', item()?['loc_ID'] :tên cột ở xml = tên cột ở array1
loc_name:tên cột kết quả cần lấy
Ngày tạo:cần công thức để bẫy null và format:if(empty(item()?['create']), '', formatDateTime(item()?['create'], 'dd-MMM-yyyy'))
















Nhận xét