ECMRepositoryRequest
Beschreibung
Erstellt einen Eintrag in der ECM Warteschlange
Syntax
[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:
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;