AddFollowSaveFileRequest
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
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 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);