Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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:

Codeblock
languagetext
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

Codeblock
languagedelphi
linenumberstrue
// ------------------------------------------------------------------------------
// 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


Inhalt

Untergeordnete Seiten (Anzeige untergeordneter Seiten)
alltrue
depth1