(26.3-dee) AddFollowSaveFileRequest
Seit Release xx.3.241219.1
Beschreibung
Erstellt einen neuen “ECM Warteschlange”-Eintrag und verknüpft diesen mit
dem vorhergehenden Warteschlangeneintrag (ist bei der 2. Datei der Basis-Warteschlangeneintrag) und
dem Basis-Warteschlangeneintrag.
Syntax
procedure AddFollowSaveFileRequest(var TempECMJnlLine: Record "ECM Document Journal Line"; [var TempMetadataFieldValue: Record "ECM Metadata Field Value";] var ECMDocDef: Record "ECM Document Definition"; MainRecordVariant: Variant; var BaseTransactionNo: BigInteger; var PreviousTransactionNo: BigInteger; var TransactionNo: BigInteger) ErrorCode: Integer |
Parameters
Variable: TempECMJnlLine
Typ: Record "ECM Document Journal Line" temporary
Wird als Datenobjekt ("Container") verwendet, um Daten an eine Funktion zu übergeben, für alle Felder, die in den Dokumentposten gefüllt werden müssen. Standardmäßig werden die Dokumentposten mit Hilfe des MainRecord und der Dokumentdefinition gefüllt.
Filename, BLOB und MD5 Hash sind Pflichtangaben
Optional können z.B. "Externe Belegnummer" , "Dokumentenkategorie" und weiter Felder in den Datenkontainer übergeben werden.
[Optional] Variable: TempMetadataFieldValue
Typ: Record "ECM Metadata Field Value" temporary
Wird als Datenobjekt ("Container") verwendet, um Daten an eine Funktion zu übergeben, für alle Felder, die als Metadaten an das Archiv (Repository) übergeben werden. Standardmäßig reicht es aus, die Tabelle leer zu übergeben, da die Metadaten mit Hilfe des MainRecord und der Dokumentdefinition vorbereitet werden. Alternativ können die gewünschten abweichenden oder zusätzlichen Metadaten hier vorbereitet werden.
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".
BaseTransactionNo
Typ: BigInteger
Die Nr. des Basis-ECM Warteschlangeneintrags.
PreviousTransactionNo
Typ: BigInteger
Die Nr. des vorhergehenden ECM Warteschlangeneintrags.
Variable: TransactionNo
Typ: BigInteger
Das ist ein Rückgabewert und enthält die Nr. des durch die Funktion erzeugten Warteschlangeneintrags.
Rückgabewert:
ErrorCode
Typ: Integer
Fehler Code, welcher durch ShowMessage ausgegeben werden kann.
Beispiel:
// get the document definition for the current recordFound := ECMapi.FindDocDefByRRef(CurrECMDocDef, MainRecordVariant, "ECM Purpose of use"::Email);if not Found then exit;// add the file to the Temp ECM Journal LineErrorCode := ECMapi.InitTempECMJnlLine4SaveFileRequest(TempECMJnlLine, FileInStream, FileName);if ErrorCode <> 0 then begin ECMapi.WriteLog('InitTempECMJnlLine4SaveFileRequest Failed', '', ErrorCode, Enum::"ECM Message Type"::Warning, MainRecordVariant, 0, 0) exit;end;// add custom data to the ECM Journal Line, if neededTempECMJnlLine."ECM Document ID (Barcode)" := CopyStr('MY CUSTOM BARCODE', 2, 36);// create the ECM QueueErrorCode := ECMapi.SaveFileRequest(TempECMJnlLine, ECMDocDef, CurrRecordRef, BaseTransactionNo);if ErrorCode <> 0 then exit;// initialize the PreviousTransactionNo with the BaseTransactionNoPreviousTransactionNo := BaseTransactionNo;// create 2. Temp ECM Journal Line for 2. FileErrorCode := ECMapi.InitTempECMJnlLine4SaveFileRequest(TempECMJnlLine2, File2InStream, FileName2);if ErrorCode <> 0 then begin ECMapi.WriteLog('2. InitTempECMJnlLine4SaveFileRequest Failed', '', ErrorCode, Enum::"ECM Message Type"::Error, MainRecordVariant, 0, 0) exit;end;// create the 2. ECM Queue Follow EntryErrorCode := ECMapi.AddFollowSaveFileRequest(TempECMJnlLine2, ECMDocDef, MainRecordVariant, BaseTransactionNo, PreviousTransactionNo, TransactionNo);if ErrorCode <> 0 then exit;// update PreviousTransactionNo with the TransactionNo generated beforePreviousTransactionNo := TransactionNo;// create 3. Temp ECM Journal Line for 3. FileErrorCode := ECMapi.InitTempECMJnlLine4SaveFileRequest(TempECMJnlLine3, File3InStream, FileName3);if ErrorCode <> 0 then begin ECMapi.WriteLog('3. InitTempECMJnlLine4SaveFileRequest Failed', '', ErrorCode, Enum::"ECM Message Type"::Error, MainRecordVariant, 0, 0) exit;end;// create the 3. ECM Queue Follow EntryErrorCode := ECMapi.AddFollowSaveFileRequest(TempECMJnlLine3, ECMDocDef, MainRecordVariant, BaseTransactionNo, PreviousTransactionNo, TransactionNo);if ErrorCode <> 0 then exit;// release the ECM QueueECMapi.ReleaseECMRepositoryRequest(BaseTransactionNo);