Платформа 3V/Формы/Действия/Выполнение пользовательского действия/Скачивание архива
< Платформа 3V | Формы | Действия | Выполнение пользовательского действия
Перейти к навигации
Перейти к поиску
Версия от 11:12, 23 декабря 2021; A.kazanceva (обсуждение | вклад) (Новая страница: «Элемент атрибута типа Файл имеет следующий вид: <syntaxhighlight lang="JSON" line> { "$type": "FileLinkDto[]", "$valu...»)
Элемент атрибута типа Файл имеет следующий вид:
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": "'https://api.3v-cloud.com/filestorage'+If(IsNullOrEmpty([1]), throw('Нет данных'), ValueOf([1], 0))",
3 "returnFirstParameterValue": false,
4 "operands": [
5 {
6 "dictionaryId": 1069,
7 "attributeId": null,
8 "filter": {
9 "value": {
10 "$type": "System.Int32[], System.Private.CoreLib",
11 "$values": [
12 1
13 ]
14 },
15 "attributeId": null,
16 "attribute": {
17 "discriminator": "OwnAttributeDefinitionDto",
18 "id": 1
19 },
20 "conditionType": "AttributeInCollection",
21 "discriminator": "ValueConditionalDictionaryCardsFilter",
22 "inversion": false,
23 "conditionId": null,
24 "conditionExpressionId": null
25 },
26 "attribute": {
27 "property": "DownloadLink",
28 "discriminator": "FileLinkTransitiveAttributeDefinitionDto",
29 "id": 20
30 },
31 "discriminator": "EntryExpressionByDictionaryRequest",
32 "id": 1,
33 "allowMultipleValues": false
34 }
35 ],
36 "id": 2,
37 "name": "Выражение",
38 "code": null
39 }
Идентификатор выражения с коллекцией идентификаторов передаётся в операнд действия. Задаётся тело запроса с помощью свойства 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 }
Пример настройки можно увидеть здесь