Ein Code Beispiel zum Ablegen eines Dokuments per Code:

/// <summary>
/// StoreDocument2ECMQueue.
/// </summary>
/// <param name="MainRecordVariant">Variant.</param>
/// <param name="TempBlob">Codeunit "Temp Blob".</param>
/// <param name="FileName">Text[250].</param>
local procedure StoreDocument2ECMQueue(MainRecordVariant: Variant; TempBlob: Codeunit "Temp Blob"; FileName: Text[250])
var
ECMDocDef: Record "ECM Document Definition";
TempECMJnlLine: Record "ECM Document Journal Line" temporary;
TempMetadataFieldValue: Record "ECM Metadata Field Value" temporary;
ECMapi: Codeunit "ECM API";
NVOutStream: OutStream;
NVInStream: InStream;
TransactionNo: BigInteger;
ErrorCode: Integer;
begin
// https://docs.easy-cloud.de/365BC-cloud/de-DE/118033789.html
// Sucht eine ECM Dokumentdefinition anhand der Tabellennummer, Tabellenbelegart und einem Startdatum (Gültigkeitsdatum) einer Dokumentdefinition (in der jüngsten Vergangenheit).
if ECMapi.FindDocDefByRRef(ECMDocDef, MainRecordVariant, ECMDocDef."Purpose of use"::"Assign & File") then begin
if TempBlob.HasValue() then begin
 
// Trägt die Datei von einem Blob in eine temporary "ECM Document Journal Line"
TempECMJnlLine."Line No." := 10000;
 
TempECMJnlLine.Reset();
TempECMJnlLine.DeleteAll();
Clear(TempECMJnlLine);
 
TempECMJnlLine.File.CreateOutStream(NVOutStream);
TempBlob.CreateInStream(NVInStream);
CopyStream(NVOutStream, NVInStream);
TempECMJnlLine."File Name" := FileName; // Dieser Wert für den Dateinamen kann von der Dokumentdefinition überschrieben werden.    
// ECMDocDef."File Name Suggestion" := FileName; // Mit dieser optionalen Zeile kann der Wert für den Dateinamen nicht mehr von der Dokumentdefinition überschrieben werden.
 
// Generate MD5 Hash
TempECMJnlLine.GenerateMD5Hash();
// optional Fehlerhandling
IF TempECMJnlLine.md5 = '' THEN
ECMApi.WriteLog('', '', 75, Enum::"ECM Message Type"::Warning, MainRecordVariant, 0, 0);
 
TempECMJnlLine.Insert();
 
// https://docs.easy-cloud.de/365BC-cloud/de-DE/118035412.html
// Erstellt einen Eintrag in der ECM-Warteschlange mit der übergebenen Datei. (Die Datei wird als BLOB-Feld in der TempECMJnlLine übergeben)
ErrorCode := ECMapi.SaveFileRequest(TempECMJnlLine, TempMetadataFieldValue, ECMDocDef, MainRecordVariant, TransactionNo);
if ErrorCode <> 0 then
ECMApi.WriteLog('', '', ErrorCode, Enum::"ECM Message Type"::Error, MainRecordVariant, 0, TransactionNo)
else
if TransactionNo <> 0 then
// https://docs.easy-cloud.de/365BC-cloud/de-DE/118033732.html
//Setzt den Status eines Eintrages in der ECM Warteschlange von begonnen auf anstehend.
ECMapi.ReleaseECMRepositoryRequest(TransactionNo);
end;
end;
end;