Um einen Warteschlangeneintrag mit zusätzlichen Daten anzureichern, gibt es die Funktion “SaveReportOption” in der ECMApi.

Hier ein beispielhafter Nachdruck des Kontoauszugs am Debitor, welcher beim tatsächlichen Druck ausgelöst wird.

Die Parameter “StartDate” und “EndDate” werden in den Metadaten ergänzt:

reportextension 50000 "ECM Standard Statement" extends "Standard Statement"
{
trigger OnPostReport()
begin
StoreDocument2ECMQueue(Customer);
end;
 
local procedure StoreDocument2ECMQueue(var Customer: Record Customer)
var
ECMDocDef: Record "ECM Document Definition";
TempECMJnlLine: Record "ECM Document Journal Line" temporary;
TempMetadataFieldValue: Record "ECM Metadata Field Value" temporary;
ECMapi: Codeunit "ECM API";
ECMGlobals: Codeunit "ECM Globals Variables";
StandardStatement: Report "Standard Statement";
CustomerRecordRef: RecordRef;
NVOutStream: OutStream;
TransactionNo: BigInteger;
ErrorCode: Integer;
begin
if ECMGlobals.GetPDFGenerator() <> '' then
exit;
 
// https://docs.easy-cloud.de/365BC-cloud/de-DE/340852859.html
// Search document definition
if not ECMapi.FindDocDefByRRef(ECMDocDef, Customer, ECMDocDef."Purpose of use"::"Assign & File") then begin
// optional Fehlerhandling
ECMapi.WriteLog('procedure StandardStatement.StoreDocument2ECMQueue', '', 71, enum::"ECM Message Type"::Information, Customer, 0, TransactionNo);
exit;
end;
 
CustomerRecordRef.GetTable(Customer);
CustomerRecordRef.SetRecFilter();
 
// Add file to Blob in temporary "ECM Document Journal Line"
TempECMJnlLine.Reset();
TempECMJnlLine.DeleteAll();
Clear(TempECMJnlLine);
 
TempECMJnlLine."Line No." := 10000;
TempECMJnlLine.File.CreateOutStream(NVOutStream);
TempECMJnlLine."File Name" := 'Kontoauszug.pdf';
 
ECMDocDef."File Name Suggestion" := TempECMJnlLine."File Name";
 
// Skip reprint
ECMGlobals.SetPDFGenerator('StandardStatement');
StandardStatement.InitializeRequest(CurrReport.PrintEntriesDue, CurrReport.PrintAllHavingEntry, CurrReport.PrintAllHavingBal, CurrReport.PrintReversedEntries, CurrReport.PrintUnappliedEntries, CurrReport.IncludeAgingBand, '', 0, false, CurrReport.StartDate, CurrReport.EndDate);
StandardStatement.SaveAs('', ReportFormat::Pdf, NVOutStream, CustomerRecordRef);
// Restore Original State
ECMGlobals.SetPDFGenerator('');
 
// Generate MD5 Hash
TempECMJnlLine.GenerateMD5Hash();
// optional Errorhandling
if TempECMJnlLine.md5 = '' then
ECMApi.WriteLog('procedure StandardStatement.StoreDocument2ECMQueue', '', 75, Enum::"ECM Message Type"::Warning, Customer, 0, 0);
 
TempECMJnlLine.Insert();
 
// https://docs.easy-cloud.de/365BC-cloud/de-DE/340623448.html
// Create an entry in the ECM Queue with file. (File as BLOB in TempECMJnlLine)
ErrorCode := ECMapi.SaveFileRequest(TempECMJnlLine, TempMetadataFieldValue, ECMDocDef, Customer, TransactionNo);
if ErrorCode <> 0 then begin
// optional Errorhandling
ECMApi.WriteLog('procedure StandardStatement.StoreDocument2ECMQueue', '', ErrorCode, Enum::"ECM Message Type"::Error, Customer, 0, TransactionNo);
exit;
end;
 
if TransactionNo = 0 then
exit;
 
// Add additional metadata to Queue
// https://docs.easy-cloud.de/365BC-cloud/de-DE/340590826.html
ECMapi.SaveReportOption(TransactionNo, 'StartDate', Format(CurrReport.StartDate, 0, 9)); // name 'StartDate' needed for ECM Document Definition Source Field ID
ECMapi.SaveReportOption(TransactionNo, 'EndDate', Format(CurrReport.EndDate, 0, 9));
 
// https://docs.easy-cloud.de/365BC-cloud/de-DE/340754517.html
// Release Queue for further processing
ECMapi.ReleaseECMRepositoryRequest(TransactionNo);
end;
}

Zusätzlich dazu muss die “ECM Dokumentendefinition” noch angepasst werden, damit die neuen Metadaten auch in das Zielarchivsystem übertragen werden:

image-20240731-084615.png
ECM Document Definition

Folgende Daten sind zu ergänzen:

  1. Type = Report Option

  2. Source Field ID = Parameter OptionName aus Aufruf ECMApi.SaveReportOption

  3. ECM Repository/Library Field Id = Archivsystem Feldname

Dadurch werden die übergebenen Parameter beim Starten des Reports “Startdatum” und “Enddatum” in die Warteschlange geschrieben:

image-20240731-091459.png
Ausführung des Berichts

Metadatenfeldwerte zum Warteschlangen Eintrag:

image-20240731-091531.png
Metadatenfeldwerte