2016-12-09 1 views
0

Я хочу загрузить файлы в виде вложения в документ в Exact Online.Как загрузить документ с вложениями в Exact Online с помощью REST API

Следующая SQL используется для создания документа:

insert into exactonlinerest..documents 
(salesinvoicenumber 
, type 
, subject 
, account 
) 
select 16700001 
,  10 
,  'subject 3' 
,  id 
from Accounts 
where code like '%24274514' 

Это создает документ, связанный с Exact увеличения продаж счета 16700001 и связывает его с счета (клиента) 24274514.

Выполнения следующий оператор вставок через REST API, точные онлайн:

insert into exactonlinerest..DocumentAttachments 
(attachment 
, document 
, filename 
) 
select attachment 
,  'ea2d9221-31b0-4217-a82f-f29c5d517b41' 
,  filename 
from exactonlinerest..documentattachments 
where filename like 'Loonstrook%' 

Я получаю сообщение об ошибке:

itgenoda001: Verplicht: Bijlage (https://start.exactonline.nl/api/v1/102673/documents/DocumentAttachments)

Как загрузить эти существующие платежные ведомости, содержащиеся в Exact Online как вложения в новый документ?

PS. GUID ea2d9221... был найден путем запроса документов после их вставки.

ответ

1

Столбец таблицы REST API documentattachments всегда имеет нулевое значение.

Вы можете использовать псевдо-столбец attachmentfromurl как в:

insert into exactonlinerest..DocumentAttachments 
(attachment 
, document 
, filename 
) 
select attachmentfromurl 
,  'ea2d9221-31b0-4217-a82f-f29c5d517b41' 
,  filename 
from exactonlinerest..documentattachments 
where filename like 'Loonstrook%' 

attachmentfromurl столбец не может быть заменена функцией http_get таблицы из Invantive SQL или подобной нормальной функции SQL, так как маркер OAuth2 автоматически не добавлен в HTTP-запрос, так как Exact использует URL-адрес:

https://start.exactonline.nl/docs/SysAttachment.aspx?ID=f28fd698-756f-4052-bea9-fc2130fe9ab1&Division=102673

, когда прикрепление документа происходит от самого Точного.

Для внешних источников, таких как http://www.cnn.com, это сработает.

Результат:

Result adding attachments several times

EDIT:

Вы также можете загружать файлы из файловой системы с помощью запроса, такие как:

insert into exactonlinerest..DocumentAttachments 
(attachment 
, document 
, filename 
) 
select file_contents 
,  dct.some_guid 
,  file_path 
from (select min(id) some_guid from exactonlinerest..documents) dct 
join files('c:\windows\system32', '*.png', false)@os 
join read_file(file_path)@os 
union all 
select file_contents 
,  dct.some_guid 
,  file_path 
from (select min(id) some_guid from exactonlinerest..documents) dct 
join files('c:\windows\system32', '*.exe', false)@os 
join read_file(file_path)@os 

Пожалуйста, обратите внимание, что, как представляется, ограничение на 22 МБ для каждого файла.