Как преобразовать поток октетов приложения типа контента в 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. введите описание изображения здесь

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