Page tree
Skip to end of metadata
Go to start of metadata

Erläuterung

In diesem Beispiel wird der erste und einzige Dateiname im Dokument auf einzelne Indexfelder aufgeteilt. Die Trennung der Feldwerte im Dateinamen erfolgt auf Grund von Unterstrichen über Stringbearbeitung. Das Feld jahrdekade wird zusätzlich in zwei Elemente (jahr und dekade) aufgesplittet.  

Das Skript prüft zudem die Gültigkeit der extrahierten Werte und bricht die Verarbeitung ggf. ab.

Beispiel-Dateiname:

201403_00752954_140720_0213_Mustermann AG_1004_0000805549.pdf

Implementierung

Das Skript wird in einem PreProcessing Skript-Schema im FILECAPTURE Agent definiert und später im WARP ausgeführt.

Siehe auch:

Skript

// ------------------------------------------------------------------------------
// Init
// ------------------------------------------------------------------------------

g_jahr      := '';
h_dekade    := '';
d_belnr     := '';
e_beldat    := '';
f_intnum    := '';
i_liefna    := '';
a_buchkreis := '';                        
c_kundnr    := '';

// ------------------------------------------------------------------------------
// Dateiname aus Blob
// ------------------------------------------------------------------------------
if ccDocument.GetBlobCount = 1 then
begin
  FileName := ExtractFileName(ccDocument.GetFileName(0));

  // ------------------------------------------------------------------------------
  // Dateinamen zerpflücken
  // ------------------------------------------------------------------------------

  jahrdekade  := copy(FileName,1,pos('_',FileName)-1); delete(FileName,1,pos('_',FileName));
  g_jahr      := copy(jahrdekade, 1, 4);
  h_dekade    := copy(jahrdekade, 5, 2);
  d_belnr     := copy(FileName,1,pos('_',FileName)-1); delete(FileName,1,pos('_',FileName));
  e_beldat    := copy(FileName,1,pos('_',FileName)-1); delete(FileName,1,pos('_',FileName));
  f_intnum    := copy(FileName,1,pos('_',FileName)-1); delete(FileName,1,pos('_',FileName));
  i_liefna    := copy(FileName,1,pos('_',FileName)-1); delete(FileName,1,pos('_',FileName));
  a_buchkreis := copy(FileName,1,pos('_',FileName)-1); delete(FileName,1,pos('_',FileName));
  c_kundnr    := FileName;

  // ------------------------------------------------------------------------------
  // Variablen in Felder übernehmen
  // ------------------------------------------------------------------------------

  ccDocument.SetFieldValue('g_jahr', g_jahr);
  ccDocument.SetFieldValue('h_dekade', h_dekade);
  ccDocument.SetFieldValue('d_belnr', d_belnr);
  ccDocument.SetFieldValue('e_beldat', e_beldat);
  ccDocument.SetFieldValue('f_intnum', f_intnum);
  ccDocument.SetFieldValue('i_liefna', i_liefna);
  ccDocument.SetFieldValue('a_buchkreis', a_buchkreis);
  ccDocument.SetFieldValue('c_kundnr', c_kundnr);

  // ------------------------------------------------------------------------------
  // Inhaltsprüfung
  // ------------------------------------------------------------------------------

  if (length(g_jahr)      = 4) and
     (length(h_dekade)    = 2) and
     (length(d_belnr)     = 8) and
     (length(e_beldat)    = 6) and
     (length(f_intnum)    = 5) and
     (length(a_buchkreis) = 4) then 
  begin
    ccDocument.AllowProcessing := true;
  end else
  begin
    ccDocument.AllowProcessing := false;
    WriteLog('Indexdaten entsprechen nicht den Vorgaben!');
  end;
end else
begin
  ccDocument.AllowProcessing := false;
  WriteLog('Das Dokument enthält mehr oder weniger als 1 Datei!');
end;
 
// ------------------------------------------------------------------------------
// eof