Платформа 3V/Формы/Действия/Выполнение пользовательского действия/Скачивание архива: различия между версиями
(Новая страница: «Элемент атрибута типа Файл имеет следующий вид: <syntaxhighlight lang="JSON" line> { "$type": "FileLinkDto[]", "$valu...») |
|||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | + | В справочнике файл, хранимый в соответствующем атрибуте, имеет следующий вид: | |
<syntaxhighlight lang="JSON" line> | <syntaxhighlight lang="JSON" line> | ||
{ | { | ||
Строка 42: | Строка 42: | ||
|} | |} | ||
− | Для того, чтобы скачать архив | + | Для того, чтобы скачать архив файлов, которые хранятся в элементах справочника, требуется настроить выражение, в котором следует вычислить коллекцию идентификаторов файлов. В операндах следует вычислить идентификаторы файлов в помощью FileLinkTransitiveAttributeDefinitionDto и создать одну коллекцию с помощью функции Flatten() в выражении: |
<syntaxhighlight lang="JSON" line> | <syntaxhighlight lang="JSON" line> | ||
{ | { | ||
− | "expression": " | + | "expression": "Flatten([1])", |
"returnFirstParameterValue": false, | "returnFirstParameterValue": false, | ||
"operands": [ | "operands": [ | ||
Строка 52: | Строка 52: | ||
"dictionaryId": 1069, | "dictionaryId": 1069, | ||
"attributeId": null, | "attributeId": null, | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
"attribute": { | "attribute": { | ||
− | "property": " | + | "property": "FileId", |
"discriminator": "FileLinkTransitiveAttributeDefinitionDto", | "discriminator": "FileLinkTransitiveAttributeDefinitionDto", | ||
"id": 20 | "id": 20 | ||
Строка 77: | Строка 59: | ||
"discriminator": "EntryExpressionByDictionaryRequest", | "discriminator": "EntryExpressionByDictionaryRequest", | ||
"id": 1, | "id": 1, | ||
− | "allowMultipleValues": | + | "allowMultipleValues": true |
} | } | ||
], | ], | ||
− | "id": | + | "id": 1, |
"name": "Выражение", | "name": "Выражение", | ||
"code": null | "code": null | ||
Строка 86: | Строка 68: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Идентификатор выражения с коллекцией идентификаторов передаётся в | + | Идентификатор выражения с коллекцией идентификаторов файлов передаётся в параметр действия, который используется для передачи в тело запроса. Задаётся тело запроса с помощью свойства '''''bodyTemplate'''''. URL функции имеет следующий вид - https://.../filestorage/api/File/GetFilesAsArchive |
<syntaxhighlight lang="JSON" line> | <syntaxhighlight lang="JSON" line> | ||
{ | { |
Текущая версия на 12:05, 30 сентября 2022
В справочнике файл, хранимый в соответствующем атрибуте, имеет следующий вид:
1 {
2 "$type": "FileLinkDto[]",
3 "$values": [
4 {
5 "fileId": "b94bd200-ab38-4584-b8ac-0d247c83dd91",
6 "fileName": "наименование.jpg",
7 "downloadLink": "/api/file/b94bd200-ab38-4584-b8ac-0d247c83dd91",
8 "signs": [],
9 "uploadDate": "2021-12-20T08:08:05.447Z"
10 }
11 ]
12 }
Для того, чтобы обратиться к значениям внутри атрибута следует использовать следующую структуру:
1 {
2 "attribute": {
3 "property": "FileId",
4 "discriminator": "FileLinkTransitiveAttributeDefinitionDto",
5 "id": 20
6 }
7 }
, где property может быть
property | |||
---|---|---|---|
fileId | GUID файла | ||
fileName | Наименование файла | ||
downloadLink | Ссылка для скачивания | ||
signs | Подписи файла(нельзя вытянуть с помощью FileLinkTransitiveAttributeDefinitionDto) | ||
uploadDate | Дата загрузки |
Для того, чтобы скачать архив файлов, которые хранятся в элементах справочника, требуется настроить выражение, в котором следует вычислить коллекцию идентификаторов файлов. В операндах следует вычислить идентификаторы файлов в помощью FileLinkTransitiveAttributeDefinitionDto и создать одну коллекцию с помощью функции Flatten() в выражении:
1 {
2 "expression": "Flatten([1])",
3 "returnFirstParameterValue": false,
4 "operands": [
5 {
6 "dictionaryId": 1069,
7 "attributeId": null,
8 "attribute": {
9 "property": "FileId",
10 "discriminator": "FileLinkTransitiveAttributeDefinitionDto",
11 "id": 20
12 },
13 "discriminator": "EntryExpressionByDictionaryRequest",
14 "id": 1,
15 "allowMultipleValues": true
16 }
17 ],
18 "id": 1,
19 "name": "Выражение",
20 "code": null
21 }
Идентификатор выражения с коллекцией идентификаторов файлов передаётся в параметр действия, который используется для передачи в тело запроса. Задаётся тело запроса с помощью свойства bodyTemplate. URL функции имеет следующий вид - https://.../filestorage/api/File/GetFilesAsArchive
1 {
2 "serviceUrl": "https://.../filestorage/api/File/GetFilesAsArchive",
3 "serviceUrlExpressionId": null,
4 "parameters": [
5 {
6 "isBodyParameter": true,
7 "name": "Parameter1",
8 "expressionId": 1,
9 "value": null,
10 "hasMultipleValues": true,
11 "dataType": "String"
12 }
13 ],
14 "isAsync": false,
15 "httpMethod": "Post",
16 "bodyTemplateExpressionId": null,
17 "bodyTemplate": "{ 'fileIds': {{Parameter1}} }",
18 "discriminator": "BusinessLogicApiAction",
19 "comment": null,
20 "enableExpressionId": null,
21 "id": 1,
22 "name": "Архив",
23 "code": null
24 }
Пример настройки можно увидеть здесь