Beschreibung

Erstellt einen Eintrag in der ECM Warteschlange


Syntax

AL
[ErrorCode:= ] ECMRepositoryRequest(var ECMDocDef: Record "ECM Document Definition", MainRecordVariant: Variant, var TransactionNo: BigInteger)


Parameters

Variable: ECMDocDef

Typ: Record "ECM Document Definition"

ECM Dokumentendefinition für den Datensatz. Die richtige Dokumentdefinition für den Datensatz wird mit dem API-Funktion FindDocDefByRRef gesucht.

Dem Datensatz der Dokumentdefinition können bei Bedarf abweichende Werte übergeben werden z.B. "Dokumentenkategorie".


MainRecord

Typ: Variant

MainRecord (Datensatz) wird in die ECM Warteschlange eingetragen und für die Verarbeitung (Metadaten und PDF Erstellung) benötigt.


Variable: TransactionNo

Typ: BigInteger

ECM Warteschlangen-Transaktionsnr., die zurückgegeben wird.



Rückgabewert:

ErrorCode

Typ: Integer

ErrorCode = 0 und TransactionNo <> 0, wenn der Vorgang erfolgreich war.

Mit der Funktion ShowMessage können die ErrorCodes angezeigt werden und mit der Funktion WriteLog können diese mitprotokoliert werden.



Bemerkungen:

Dies wird für das Ablagekonzept 1 verwendet. Interne Belege


Beispiel:

AL
local procedure InitECM(MainRecordVariant: Variant; ReportID: Integer)
var
ECMDocDef: Record "ECM Document Definition";
ECMapi: Codeunit "ECM API";
RRef: RecordRef;
RRef2: RecordRef;
TransactionNo: BigInteger;
ErrorCode: Integer;
begin
if ECMmgtTools.GetRecordRef(MainRecordVariant, RRef) then begin
RRef2.Get(RRef.RecordId);
RRef2.SETRECFILTER;
//
// if ECMapi.FindDocDefByRRef(ECMDocDef, RRef2, ECMDocDef."Purpose of use"::Report, ReportID) then begin
// Old Version of ECM Code. Works the same way as the next line. The only drifference is the Enum-Parameter: Enum::"ECM Report to ECM Queue"::Print //
// Sucht eine ECM Dokumentdefinition anhand der Tabellennummer, Tabellenbelegart und einem Startdatum (Gültigkeitsdatum) einer Dokumentdefinition (in der jüngsten Vergangenheit). //
//
if ECMapi.FindDocDefByRRef(ECMDocDef, RRef, Enum::"ECM Purpose Of Use"::Report, ReportID, Enum::"ECM Report to ECM Queue"::Print, false, enum::"ECM System"::" ") then begin
//
// Example: Report number for PDF creation, transferred to the ECM Management; //
           // ECMDocDef."Report Selection Type" := ECMDocDef."Report Selection Type"::"Fixed Report";;
// ECMDocDef."Report ID" := ReportID;;
//
// ErrorCode := ECMapi.ECMStorageRequest(ECMDocDef,RRef,ECMQueueTransNo);
// Old C/Side Implementation: Erstellt einen Eintrag in der ECM-Warteschlange. //
//
ErrorCode := ECMapi.ECMRepositoryRequest(ECMDocDef, RRef2, TransactionNo);
if ErrorCode <> 0 then
ECMApi.WriteLog('', '', ErrorCode, Enum::"ECM Message Type"::Error, RRef2, 0, TransactionNo)
else
if TransactionNo > 0L then begin
//
// ECMapi.SaveReportOption(ECMQueueTransNo,''ShowInternalInfo'',FORMAT(ShowInternalInfo,0,9));
                   // Insert Project Code for Storing Report Option Values, if necessary. //
//
                // ECMapi.ReleaseECMStorageRequest(ECMQueueTransNo);
// Old C/Side Implementation: Setzt den Status eines Eintrages in der ECM Warteschlange von begonnen auf anstehend. //
//
ECMapi.ReleaseECMRepositoryRequest(TransactionNo);
end;
end else
ECMapi.WriteLog('procedure ECMTestIntegration.InitECM ' + format(ReportID), '', 71, enum::"ECM Message Type"::Information, RRef2, 0, TransactionNo);
end;
end;