Sending external Documents
If you want to send external documents from Business Central using the App, because for instance you want to use the contact data from Business Central, you can easily implement the function call by yourself.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
codeunit 50200 EPostApiExt
{
trigger OnRun()
var
Contact: Record Contact;
DocumentAttachment: Record "Document Attachment";
EPostAPI: Codeunit "BEL365 E-POST Api";
LetterFileTempBlob: Codeunit "Temp Blob";
ContactDataJson: JsonObject;
DocNo: Code[20];
DocumentTypes: Enum "BEL365 Document Types";
OStream: OutStream;
begin
// Fill document no and document type if letter document is linked to an existing document within Business Central, otherwise leave this empty
DocNo := '10000';
DocumentTypes := DocumentTypes::"Posted Sales Invoice";
// Fill TempBlob Codeunit with a document that was previsouly imported to Business Central
DocumentAttachment.SetRange("Table ID", Database::"Sales Invoice Header");
DocumentAttachment.SetRange("No.", DocNo);
if DocumentAttachment.FindFirst() then begin
LetterFileTempBlob.CreateOutStream(OStream);
DocumentAttachment."Document Reference ID".ExportStream(OStream);
end;
// If no contact exists in Business Central fill json object with contact data, otherwise leave this empty
ContactDataJson.Add('CompanyName', 'Testfirma');
ContactDataJson.Add('ContactName', 'Testperson');
ContactDataJson.Add('Address', 'Teststraße');
ContactDataJson.Add('PostCode', '12345');
ContactDataJson.Add('City', 'Teststadt');
ContactDataJson.Add('Country', 'ÖSTERREICH'); // Not neccessary if recipient residents within Germany
// Call the function to start the sending process of the document with previously filled parameters
EPostAPI.SendLetter(Contact, '10000', Enum::"BEL365 Document Types"::"Posted Purchase Invoice", LetterFileTempBlob, ContactDataJson);
end;
}
|