Translation needed

The content of this page was copied from another page tree and needs to be translated or updated.

When you finish translation, make sure to

  • Replace the label needs-translating with translated

  • Remove this macro from the page

Seit Release xx.3.241219.1

Beschreibung

Erstellt einen neuen “ECM Warteschlange”-Eintrag und verknüpft diesen mit

  1. dem vorhergehenden Warteschlangeneintrag (ist bei der 2. Datei der Basis-Warteschlangeneintrag) und

  2. 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 record
Found := ECMapi.FindDocDefByRRef(CurrECMDocDef, MainRecordVariant, "ECM Purpose of use"::Email);
if not Found then
exit;
 
// add the file to the Temp ECM Journal Line
ErrorCode := 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 needed
TempECMJnlLine."ECM Document ID (Barcode)" := CopyStr('MY CUSTOM BARCODE', 2, 36);
 
// create the ECM Queue
ErrorCode := ECMapi.SaveFileRequest(TempECMJnlLine, ECMDocDef, CurrRecordRef, BaseTransactionNo);
if ErrorCode <> 0 then
exit;
 
// initialize the PreviousTransactionNo with the BaseTransactionNo
PreviousTransactionNo := BaseTransactionNo;
 
// create 2. Temp ECM Journal Line for 2. File
ErrorCode := 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 Entry
ErrorCode := ECMapi.AddFollowSaveFileRequest(TempECMJnlLine2, ECMDocDef, MainRecordVariant, BaseTransactionNo, PreviousTransactionNo, TransactionNo);
if ErrorCode <> 0 then
exit;
 
// update PreviousTransactionNo with the TransactionNo generated before
PreviousTransactionNo := TransactionNo;
 
// create 3. Temp ECM Journal Line for 3. File
ErrorCode := 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 Entry
ErrorCode := ECMapi.AddFollowSaveFileRequest(TempECMJnlLine3, ECMDocDef, MainRecordVariant, BaseTransactionNo, PreviousTransactionNo, TransactionNo);
if ErrorCode <> 0 then
exit;
 
// release the ECM Queue
ECMapi.ReleaseECMRepositoryRequest(BaseTransactionNo);