Как преобразовать поток октетов приложения типа контента в CSV в приложениях логики?
Я использую вызов http api для загрузки файла экспорта csv D365. Он загружается в двоичном формате "$ content-type": "application / octet-stream"
{
"$content-type": "application/octet-stream",
"$content": "UEsDBBQAAAAIAL07VFMaQk8xFQcAAEkXAAAZAAAAQVZBVmV"
}
Я попробовал приведенный ниже код, но он не декодируется должным образом и дает нежелательные значения. Пожалуйста, дайте мне знать, как правильно получить CSV-файл.
Я думаю, что $ content хранит полные данные файла, а не только содержимое.
json(base64ToString(replace(body('Get_blob_content')?['$content'],'77u/','')))
@string(body('Download_the_package_file')['$content'])
1 ответ
Я заметил, что вы экспортируете файл CSV, но читаете файл .json из большого двоичного объекта. На основании предоставленной вами информации у нас есть 3 сценария.
1. Если файл test.json содержит элементы AVAVendorEntity.csv, вы можете получить эти файлы без мусора, используя строковые выражения для всего вывода.
Пример: если тело содержит
{
"$content-type": "application/octet-stream",
"$content": "Ww0KICB7DQogICAgImlkIjogIjEiLA0KICAgICJyZWNlaXZlciI6ICIgMTIzODUiLA0KICAgICJwYXlsb2FkIjogIiB7J21lc3NhZ2UnOiAndGVzdCAxJyIsDQogICAgIm9wZXJhdG9yIjogIiAnRW5naW5lSWQnOiAzIiwNCiAgICAic2VuZGVyIjogIiAnUGVyc29uSWQnOiAxIg0KICB9LA0KICB7DQogICAgImlkIjogIjIiLA0KICAgICJyZWNlaXZlciI6ICIgMTIzNDciLA0KICAgICJwYXlsb2FkIjogIiB7J21lc3NhZ2UnOiAndGVzdCAyJyIsDQogICAgIm9wZXJhdG9yIjogIiAnRW5naW5lSWQnOiAzIiwNCiAgICAic2VuZGVyIjogIiAnUGVyc29uSWQnOiAyIg0KICB9DQpd"
}
тогда мы используем
string(triggerBody())
2. Если есть только элементы CSV, но с расширением .json. В этом случае мы используем JSON вместо строки.
Пример: если тело содержит
{
"$content-type": "application/octet-stream",
"$content": "dXJsCXVzZXJfaWQJdG9rZW5faWQJdXNlcm5hbWUJcGFzc3dvcmQNCmh0dHA6Ly93d3cudHdpdHRlci5jb20vYTg1CTEJMTIzMTIzMTIzCWFiaGluYXYJYWJjDQpodHRwOi8vd3d3LnR3aXR0ZXIuY29tL3NvYnRpYW5raXQJMgk4OTk4OTkJYW5raXQJZGVmDQpodHRwOi8vd3d3LnR3aXR0ZXIuY29tL2FiaGlqaXRrYW5lCTMJNDU2MTIzMTIzCWFiaGlqaXQJeHl6DQo="
}
тогда мы используем
json(triggerBody())
3. Измените тип содержимого соответствующим образом.
4. Проблема может заключаться в вызове API при извлечении данных.
Одним из обходных путей для преобразования желаемого вывода в .csv является то, что вы всегда можете сохранить их в blob с помощью расширения .csv, а затем он автоматически преобразует данные в формат CSV.