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;