<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://helper.ch/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stefan</id>
	<title>Helper - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://helper.ch/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stefan"/>
	<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Spezial:Beitr%C3%A4ge/Stefan"/>
	<updated>2026-06-22T14:28:43Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=JSON_Export&amp;diff=9519</id>
		<title>JSON Export</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=JSON_Export&amp;diff=9519"/>
		<updated>2026-05-27T13:25:20Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3638&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  81&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Generiert für DOs ein File im JSON, xls oder xlsx Format bestehend aus einem ausgewählten Metadatum im JSON Format.&lt;br /&gt;
&lt;br /&gt;
Es werden nur flache JSON unterstützt, oder Flache Strukturen innerhalb eines JSON Array. Wenn Arrays vorhanden sind, dann wird der Inhalt des ersten gefundenen Arrays verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Wird eine Excelvorlage Datei angegeben, dann werden die Daten in das Feld eingefügt, welches den &#039;Tagnamen&#039; vor dem Metadatum trägt.&lt;br /&gt;
&lt;br /&gt;
Bei einer neuen Exceldatei wird der Inhalt in das Feld A1 eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Datei wird am aktuellen Datenschritt des Jobs gespeichert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag (FHK_Maske)==&lt;br /&gt;
&lt;br /&gt;
[[File:JSONExport.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bsp.: Exportiert das Metadatum &amp;quot;responsejson&amp;quot; in das Excelfeld welches den Text &amp;quot;meinfeld&amp;quot; enthält. Dazu wird die Exceldatei verwendet, welche im Pfad zur Excel Vorlage genannt wurde.&lt;br /&gt;
Der Dateiname wird zu &amp;quot;meinexportfilename.xlsx&amp;quot;. Die Datei wird im HZ Ordner des aktuellen HZ Schrittes gespeichert.&lt;br /&gt;
&lt;br /&gt;
===Excel Titelzeile===&lt;br /&gt;
Es werden aktuell noch keine Titelzeilen erstellt.&lt;br /&gt;
&lt;br /&gt;
===JSON Strukturen===&lt;br /&gt;
&lt;br /&gt;
Flaches JSON: Alle Elemente befinden auf der gleichen Hierarchie und haben genau einen Wert und keine weiteren verschachtelungen. Für jedes Element wird der Wert in eine Excelspalte auf der gleichen Zeile übertragen.&lt;br /&gt;
 &lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Traktandennummer&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
    &amp;quot;Titel&amp;quot;: &amp;quot;Kantonale Gesetzgebung&amp;quot;,&lt;br /&gt;
    &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Die Staatskanzlei&amp;quot;,&lt;br /&gt;
    &amp;quot;Seite&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
JSON mit einfachem Array aus flachen JSON Objekten: Ein Element &amp;quot;Traktanden&amp;quot; ist ein Array von Objekten. Die Objekte sind gleichwertig und besitzen eine flache Struktur analog zum ersten Beispiel. Für jedes Objekt wird eine neue Zeile im Excel geschrieben.&lt;br /&gt;
&lt;br /&gt;
   {&lt;br /&gt;
    &amp;quot;Ausgabe_Nummer&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
    &amp;quot;Traktanden&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Traktandennummer&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
            &amp;quot;Titel&amp;quot;: &amp;quot;Kantonale Gesetzgebung&amp;quot;,&lt;br /&gt;
            &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Die Staatskanzlei&amp;quot;,&lt;br /&gt;
            &amp;quot;Seite&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Traktandennummer&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
            &amp;quot;Titel&amp;quot;: &amp;quot;Kraftloserklärung eines Schweizerpasses&amp;quot;,&lt;br /&gt;
            &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Die Staatskanzlei&amp;quot;,&lt;br /&gt;
            &amp;quot;Seite&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Traktandennummer&amp;quot;: &amp;quot;3&amp;quot;,&lt;br /&gt;
            &amp;quot;Titel&amp;quot;: &amp;quot;Stellenausschreibung&amp;quot;,&lt;br /&gt;
            &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Staatskanzlei des Kantons Zug, Der Landschreiber: H. Windlin&amp;quot;,&lt;br /&gt;
            &amp;quot;Seite&amp;quot;: &amp;quot;1-2&amp;quot;&lt;br /&gt;
        }],&lt;br /&gt;
     &amp;quot;Datum&amp;quot;: &amp;quot;08.01.1982&amp;quot;,&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_EXPORTFILENAME   &#039;&#039;Name ohne Dateiendung, welches das finale Metadatendokument erhält&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
  HZ_EXPORTFILETYP    &#039;&#039;Was für ein File soll generiert werden?&#039;&#039; &lt;br /&gt;
	&lt;br /&gt;
  HZ_EXPORTMETADATEN  &#039;&#039;Welche Metadaten sollen unter welchem namen exportiert werden? Format: Titel=[Metaname]&#039;&#039;&lt;br /&gt;
Mögliche Platzhalter: [DOSEQ], [DOSignatur], [eigene Metadaten], [^Metadaten des Vaters]&lt;br /&gt;
&lt;br /&gt;
  HZ_POOLPFAD         &#039;&#039;Pfad zur möglichen Excelvorlage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Geplante Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
- Excel Titelzeile automatisch generieren&lt;br /&gt;
- Mehrere Metadaten exportieren, wobei pro Metadatum ein Excelsheet generiert wird, oder je eine JSON Datei - beides jeweils mit dem Namen des Metadatums oder des Tagnames - geschrieben wird.&lt;br /&gt;
- Formeln und Platzhalter in Namen erlauben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:JSONExport.png&amp;diff=9518</id>
		<title>Datei:JSONExport.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:JSONExport.png&amp;diff=9518"/>
		<updated>2026-05-27T13:18:30Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=JSON_Export&amp;diff=9517</id>
		<title>JSON Export</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=JSON_Export&amp;diff=9517"/>
		<updated>2026-05-27T13:17:57Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Pane im Produktionsauftrag (FHK_Maske) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3638&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  81&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Generiert für DOs ein File im JSON, xls oder xlsx Format bestehend aus einem ausgewählten Metadatum im JSON Format.&lt;br /&gt;
&lt;br /&gt;
Es werden nur flache JSON unterstützt, oder Flache Strukturen innerhalb eines JSON Array. Wenn Arrays vorhanden sind, dann wird der Inhalt des ersten gefundenen Arrays verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Wird eine Excelvorlage Datei angegeben, dann werden die Daten in das Feld eingefügt, welches den &#039;Tagnamen&#039; vor dem Metadatum trägt.&lt;br /&gt;
&lt;br /&gt;
Bei einer neuen Exceldatei wird der Inhalt in das Feld A1 eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Datei wird am aktuellen Datenschritt des Jobs gespeichert.&lt;br /&gt;
&lt;br /&gt;
===Excel Titelzeile===&lt;br /&gt;
Es werden aktuell noch keine Titelzeilen erstellt.&lt;br /&gt;
&lt;br /&gt;
===JSON Strukturen===&lt;br /&gt;
&lt;br /&gt;
Flaches JSON: Alle Elemente befinden auf der gleichen Hierarchie und haben genau einen Wert und keine weiteren verschachtelungen. Für jedes Element wird der Wert in eine Excelspalte auf der gleichen Zeile übertragen.&lt;br /&gt;
 &lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Traktandennummer&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
    &amp;quot;Titel&amp;quot;: &amp;quot;Kantonale Gesetzgebung&amp;quot;,&lt;br /&gt;
    &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Die Staatskanzlei&amp;quot;,&lt;br /&gt;
    &amp;quot;Seite&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
JSON mit einfachem Array aus flachen JSON Objekten: Ein Element &amp;quot;Traktanden&amp;quot; ist ein Array von Objekten. Die Objekte sind gleichwertig und besitzen eine flache Struktur analog zum ersten Beispiel. Für jedes Objekt wird eine neue Zeile im Excel geschrieben.&lt;br /&gt;
&lt;br /&gt;
   {&lt;br /&gt;
    &amp;quot;Ausgabe_Nummer&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
    &amp;quot;Traktanden&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Traktandennummer&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
            &amp;quot;Titel&amp;quot;: &amp;quot;Kantonale Gesetzgebung&amp;quot;,&lt;br /&gt;
            &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Die Staatskanzlei&amp;quot;,&lt;br /&gt;
            &amp;quot;Seite&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Traktandennummer&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
            &amp;quot;Titel&amp;quot;: &amp;quot;Kraftloserklärung eines Schweizerpasses&amp;quot;,&lt;br /&gt;
            &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Die Staatskanzlei&amp;quot;,&lt;br /&gt;
            &amp;quot;Seite&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Traktandennummer&amp;quot;: &amp;quot;3&amp;quot;,&lt;br /&gt;
            &amp;quot;Titel&amp;quot;: &amp;quot;Stellenausschreibung&amp;quot;,&lt;br /&gt;
            &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Staatskanzlei des Kantons Zug, Der Landschreiber: H. Windlin&amp;quot;,&lt;br /&gt;
            &amp;quot;Seite&amp;quot;: &amp;quot;1-2&amp;quot;&lt;br /&gt;
        }],&lt;br /&gt;
     &amp;quot;Datum&amp;quot;: &amp;quot;08.01.1982&amp;quot;,&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_EXPORTFILENAME   &#039;&#039;Name ohne Dateiendung, welches das finale Metadatendokument erhält&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
  HZ_EXPORTFILETYP    &#039;&#039;Was für ein File soll generiert werden?&#039;&#039; &lt;br /&gt;
	&lt;br /&gt;
  HZ_EXPORTMETADATEN  &#039;&#039;Welche Metadaten sollen unter welchem namen exportiert werden? Format: Titel=[Metaname]&#039;&#039;&lt;br /&gt;
Mögliche Platzhalter: [DOSEQ], [DOSignatur], [eigene Metadaten], [^Metadaten des Vaters]&lt;br /&gt;
&lt;br /&gt;
  HZ_POOLPFAD         &#039;&#039;Pfad zur möglichen Excelvorlage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag (FHK_Maske)==&lt;br /&gt;
&lt;br /&gt;
[[File:JSONExport.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=JSON_Export&amp;diff=9516</id>
		<title>JSON Export</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=JSON_Export&amp;diff=9516"/>
		<updated>2026-05-27T13:16:20Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3638 : Neuer Workflowschritt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3638&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  81&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Generiert für DOs ein File im JSON, xls oder xlsx Format bestehend aus einem ausgewählten Metadatum im JSON Format.&lt;br /&gt;
&lt;br /&gt;
Es werden nur flache JSON unterstützt, oder Flache Strukturen innerhalb eines JSON Array. Wenn Arrays vorhanden sind, dann wird der Inhalt des ersten gefundenen Arrays verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Wird eine Excelvorlage Datei angegeben, dann werden die Daten in das Feld eingefügt, welches den &#039;Tagnamen&#039; vor dem Metadatum trägt.&lt;br /&gt;
&lt;br /&gt;
Bei einer neuen Exceldatei wird der Inhalt in das Feld A1 eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Datei wird am aktuellen Datenschritt des Jobs gespeichert.&lt;br /&gt;
&lt;br /&gt;
===Excel Titelzeile===&lt;br /&gt;
Es werden aktuell noch keine Titelzeilen erstellt.&lt;br /&gt;
&lt;br /&gt;
===JSON Strukturen===&lt;br /&gt;
&lt;br /&gt;
Flaches JSON: Alle Elemente befinden auf der gleichen Hierarchie und haben genau einen Wert und keine weiteren verschachtelungen. Für jedes Element wird der Wert in eine Excelspalte auf der gleichen Zeile übertragen.&lt;br /&gt;
 &lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Traktandennummer&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
    &amp;quot;Titel&amp;quot;: &amp;quot;Kantonale Gesetzgebung&amp;quot;,&lt;br /&gt;
    &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Die Staatskanzlei&amp;quot;,&lt;br /&gt;
    &amp;quot;Seite&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
JSON mit einfachem Array aus flachen JSON Objekten: Ein Element &amp;quot;Traktanden&amp;quot; ist ein Array von Objekten. Die Objekte sind gleichwertig und besitzen eine flache Struktur analog zum ersten Beispiel. Für jedes Objekt wird eine neue Zeile im Excel geschrieben.&lt;br /&gt;
&lt;br /&gt;
   {&lt;br /&gt;
    &amp;quot;Ausgabe_Nummer&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
    &amp;quot;Traktanden&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Traktandennummer&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
            &amp;quot;Titel&amp;quot;: &amp;quot;Kantonale Gesetzgebung&amp;quot;,&lt;br /&gt;
            &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Die Staatskanzlei&amp;quot;,&lt;br /&gt;
            &amp;quot;Seite&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Traktandennummer&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
            &amp;quot;Titel&amp;quot;: &amp;quot;Kraftloserklärung eines Schweizerpasses&amp;quot;,&lt;br /&gt;
            &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Die Staatskanzlei&amp;quot;,&lt;br /&gt;
            &amp;quot;Seite&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Traktandennummer&amp;quot;: &amp;quot;3&amp;quot;,&lt;br /&gt;
            &amp;quot;Titel&amp;quot;: &amp;quot;Stellenausschreibung&amp;quot;,&lt;br /&gt;
            &amp;quot;Aufgegeben_Provenienz&amp;quot;: &amp;quot;Staatskanzlei des Kantons Zug, Der Landschreiber: H. Windlin&amp;quot;,&lt;br /&gt;
            &amp;quot;Seite&amp;quot;: &amp;quot;1-2&amp;quot;&lt;br /&gt;
        }],&lt;br /&gt;
     &amp;quot;Datum&amp;quot;: &amp;quot;08.01.1982&amp;quot;,&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_EXPORTFILENAME   &#039;&#039;Name ohne Dateiendung, welches das finale Metadatendokument erhält&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
  HZ_EXPORTFILETYP    &#039;&#039;Was für ein File soll generiert werden?&#039;&#039; &lt;br /&gt;
	&lt;br /&gt;
  HZ_EXPORTMETADATEN  &#039;&#039;Welche Metadaten sollen unter welchem namen exportiert werden? Format: Titel=[Metaname]&#039;&#039;&lt;br /&gt;
Mögliche Platzhalter: [DOSEQ], [DOSignatur], [eigene Metadaten], [^Metadaten des Vaters]&lt;br /&gt;
&lt;br /&gt;
  HZ_POOLPFAD         &#039;&#039;Pfad zur möglichen Excelvorlage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag (FHK_Maske)==&lt;br /&gt;
&lt;br /&gt;
[[File:XMLMetadatenexport.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=%C3%9Cbersicht_%C3%BCber_alle_Workflowschritte&amp;diff=9515</id>
		<title>Übersicht über alle Workflowschritte</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=%C3%9Cbersicht_%C3%BCber_alle_Workflowschritte&amp;diff=9515"/>
		<updated>2026-05-27T13:00:45Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3638 - Neuer Workflowschritt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;sortable wikitable zebra toptextcells&amp;quot;&lt;br /&gt;
! SYSTEMTYP !! BEZEICHNUNG&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[Normaler Arbeitsschritt]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[Bedingung]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[Kontrollieren]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [[Korrigieren]]&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [[Interaktion]]&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [[Files kopieren]]&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [[Objekterstellung]]&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[Objekterstellung2]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[SFTP-Upload]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[Formatvergrösserung]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[Bildbearbeitung (Client)]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || [[Verzweigung nach Zufall]]&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[Filenamen ändern Metadaten]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [[CheckIn]]&lt;br /&gt;
|-&lt;br /&gt;
| 14 || [[CheckOut]]&lt;br /&gt;
|-&lt;br /&gt;
| 15 || [[Daten löschen]]&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [[Zusammenführen von Daten]] und [[Assistiertes Metadatieren]]&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[SFTP-Quittierung]]&lt;br /&gt;
|-&lt;br /&gt;
| 18 || [[Filetest]]&lt;br /&gt;
|-&lt;br /&gt;
| 19 || [[PDF-Metadaten]]&lt;br /&gt;
|-&lt;br /&gt;
| 20 || [[Auf Unterobjekte warten]]&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [[Objekt Umwandlung/Verdoppelung]]&lt;br /&gt;
|-&lt;br /&gt;
| 22 || [[Verzweigung nach Metadaten]]&lt;br /&gt;
|-&lt;br /&gt;
| 23 || [[Metadaten umwandeln]]&lt;br /&gt;
|-&lt;br /&gt;
| 24 || [[Daten bewegen]]&lt;br /&gt;
|-&lt;br /&gt;
| 25 || [[Generischer CMD Code]]&lt;br /&gt;
|-&lt;br /&gt;
| 26 || [[Files messen]]&lt;br /&gt;
|-&lt;br /&gt;
| 27 || [[Bedingung nach Metadaten]]&lt;br /&gt;
|-&lt;br /&gt;
| 28 || [[Warte bestimmte Zeit]]&lt;br /&gt;
|-&lt;br /&gt;
| 29 || [[Serverjob zur Auftrennung von Objekten nach Barcodeblättern]]&lt;br /&gt;
|-&lt;br /&gt;
| 30 || [[Bild freistellen]]&lt;br /&gt;
|-&lt;br /&gt;
| 31 || [[Metadaten mit Anzeige des Files]]&lt;br /&gt;
|-&lt;br /&gt;
| 32 || [[Sammelblätter aufteilen]]&lt;br /&gt;
|-&lt;br /&gt;
| 33 || [[Bilder freistellen]]&lt;br /&gt;
|-&lt;br /&gt;
| 34 || [[Metadaten Datenbank]]&lt;br /&gt;
|-&lt;br /&gt;
| 35 || [[XML Metadaten File-Export]]&lt;br /&gt;
|-&lt;br /&gt;
| 36 || [[Beleg erstellen]]&lt;br /&gt;
|-&lt;br /&gt;
| 37 || [[WIA extern Kontrolle]]&lt;br /&gt;
|-&lt;br /&gt;
| 38 || [[Vorerfassung]]&lt;br /&gt;
|-&lt;br /&gt;
| 39 || [[Metadaten aus Bildfile lesen]]&lt;br /&gt;
|-&lt;br /&gt;
| 40 || [[QR-Code-File erstellen]]&lt;br /&gt;
|-&lt;br /&gt;
| 41 || [[Photoshop Skript verarbeiten]]&lt;br /&gt;
|-&lt;br /&gt;
| 42 || [[Bilder löschen]]&lt;br /&gt;
|-&lt;br /&gt;
| 43 || [[Objekttyp ändern]]&lt;br /&gt;
|-&lt;br /&gt;
| 44 || [[Objekthierarchie ändern]]&lt;br /&gt;
|-&lt;br /&gt;
| 45 || [[Duplikate auflösen]]&lt;br /&gt;
|-&lt;br /&gt;
| 46 || [[Hashfile erstellen]]&lt;br /&gt;
|-&lt;br /&gt;
| 47 || [[Files hinzufügen]]&lt;br /&gt;
|-&lt;br /&gt;
| 48 || [[Word Interaktiv]]&lt;br /&gt;
|-&lt;br /&gt;
| 49 || [[Word automatisch bearbeiten]]&lt;br /&gt;
|-&lt;br /&gt;
| 50 || [[Word File Info]]&lt;br /&gt;
|-&lt;br /&gt;
| 51 || [[Word konvertieren]]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || [[Kunde Informieren]]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || [[Dokument versenden]]&lt;br /&gt;
|-&lt;br /&gt;
| 54 || [[Kinder/Enkel zuweisen]]&lt;br /&gt;
|-&lt;br /&gt;
| 55 || [[PDF Bearbeitung]]&lt;br /&gt;
|-&lt;br /&gt;
| 56 || [[PDF Lesezeichen schreiben]]&lt;br /&gt;
|-&lt;br /&gt;
| 57 || [[Generische Verzweigung]]&lt;br /&gt;
|-&lt;br /&gt;
| 58 || [[GBA Auftragsübersicht]]&lt;br /&gt;
|-&lt;br /&gt;
| 59 || [[Filehandling]]&lt;br /&gt;
|-&lt;br /&gt;
| 60 || [[Barcode ersetzen]]&lt;br /&gt;
|-&lt;br /&gt;
| 61 || [[OCR Texterkennung]]&lt;br /&gt;
|-&lt;br /&gt;
| 62 || [[ICC-Profil Bearbeiten]]&lt;br /&gt;
|-&lt;br /&gt;
| 63 || [[KOST-Val Validierung]]&lt;br /&gt;
|-&lt;br /&gt;
| 64 || [[REST-Service]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 65 || [[Bildbearbeitung (serverseitig)]]&lt;br /&gt;
|-&lt;br /&gt;
| 66 || [[Rahmen setzen]] (Client)&lt;br /&gt;
|-&lt;br /&gt;
| 67 || [[Bilderstellung]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 68 || [[Metadaten Einlesen]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 69 || [[REST API]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 70 || [[Warten auf Rückmeldung]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| kein || [[Geleistete Arbeit]]&lt;br /&gt;
|-&lt;br /&gt;
| 71 || [[Seitenrahmen finden]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 72 || [[Seitenrahmen kontrollieren]]&lt;br /&gt;
|-&lt;br /&gt;
| 73 || [[Bilderstellung aus Rahmen]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 74 || [[Warten nach Objekttyp]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 75 || [[Format anpassen]]&lt;br /&gt;
|-&lt;br /&gt;
| 76 || [[Generische Vorerfassung]]&lt;br /&gt;
|-&lt;br /&gt;
| 77 || [[RestAPI Services Up-/Download]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 78 || [[Hotfolder Objektimport]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 79 || [[Entausschiessen]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 80 || [[KI Bearbeitung]] (Server)&lt;br /&gt;
|-&lt;br /&gt;
| 81 || [[JSON Export]] (Server)&lt;br /&gt;
|}&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9508</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9508"/>
		<updated>2026-05-11T09:36:07Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendateien&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==Trennblatt Erkennungmodi==&lt;br /&gt;
===1. Barcodes===&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
====Barcodetyp====&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
====Barcodewert====&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
===2. Text aus OCR===&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
====OCR-Trenntext====&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===3. Trennblatt-Vorlagedatei===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
&lt;br /&gt;
===Anzahl Trennlätter prüfen===&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehlerbehandlung==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9507</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9507"/>
		<updated>2026-05-11T09:32:18Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendateien&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Trennblatt Erkennungmodi==&lt;br /&gt;
===1. Barcodes===&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
====Barcodetyp====&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
====Barcodewert====&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
===2. Text aus OCR===&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
====OCR-Trenntext====&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===3. Trennblatt-Vorlagedatei===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
&lt;br /&gt;
===Anzahl Trennlätter prüfen===&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehlerbehandlung==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9506</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9506"/>
		<updated>2026-05-11T09:31:35Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendatein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Trennblatt Erkennungmodi==&lt;br /&gt;
===1. Barcodes===&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
====Barcodetyp====&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
====Barcodewert====&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
===2. Text aus OCR===&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
====OCR-Trenntext====&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===3. Trennblatt-Vorlagedatei===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
&lt;br /&gt;
===Anzahl Trennlätter prüfen===&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehlerbehandlung==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9505</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9505"/>
		<updated>2026-05-11T09:22:25Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Fehler handling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendatein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Barcodes==&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
===Barcodetyp===&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
===Barcodewert===&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für OCR==&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
===OCR-Trenntext===&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Trennblatt-Vorlagedatei==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
&lt;br /&gt;
===Anzahl Trennlätter prüfen===&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehlerbehandlung==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9504</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9504"/>
		<updated>2026-05-11T09:21:55Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Pane im Produktionsauftrag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendatein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Barcodes==&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
===Barcodetyp===&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
===Barcodewert===&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für OCR==&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
===OCR-Trenntext===&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Trennblatt-Vorlagedatei==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
&lt;br /&gt;
===Anzahl Trennlätter prüfen===&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehler handling==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9503</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9503"/>
		<updated>2026-05-11T09:21:06Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Pane im Produktionsauftrag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendatein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Barcodes==&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
===Barcodetyp===&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
===Barcodewert===&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für OCR==&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
===OCR-Trenntext===&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Trennblatt-Vorlagedatei==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
&lt;br /&gt;
===Anzahl Trennlätter prüfen===&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehler handling==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:Barcode.png&amp;diff=9502</id>
		<title>Datei:Barcode.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Barcode.png&amp;diff=9502"/>
		<updated>2026-05-11T09:20:14Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Barcode.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:Child_mode.png&amp;diff=9501</id>
		<title>Datei:Child mode.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Child_mode.png&amp;diff=9501"/>
		<updated>2026-05-11T09:18:59Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Child mode.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9500</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9500"/>
		<updated>2026-05-11T09:14:09Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Allgemeine Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendatein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Barcodes==&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
===Barcodetyp===&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
===Barcodewert===&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für OCR==&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
===OCR-Trenntext===&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Trennblatt-Vorlagedatei==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
&lt;br /&gt;
===Anzahl Trennlätter prüfen===&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehler handling==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png|400px]][[File:barcodeOCR.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9499</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9499"/>
		<updated>2026-05-11T09:13:10Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Anzahl Trennlätter prüfen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendatein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Barcodes==&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
===Barcodetyp===&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
===Barcodewert===&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für OCR==&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
===OCR-Trenntext===&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Trennblatt-Vorlagedatei==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehler handling==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png|400px]][[File:barcodeOCR.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9498</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9498"/>
		<updated>2026-05-11T09:12:48Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Anzahl Barcodeblätter prüfen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendatein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Anzahl Trennlätter prüfen==&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Barcodes==&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
===Barcodetyp===&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
===Barcodewert===&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für OCR==&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
===OCR-Trenntext===&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Trennblatt-Vorlagedatei==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehler handling==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png|400px]][[File:barcodeOCR.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9497</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9497"/>
		<updated>2026-05-11T09:05:49Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer oder mehreren bereitgestellten Vorlagendatein&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Anzahl Barcodeblätter prüfen==&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Barcodes==&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
===Barcodetyp===&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
===Barcodewert===&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für OCR==&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
===OCR-Trenntext===&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Trennblatt-Vorlagedatei==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehler handling==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png|400px]][[File:barcodeOCR.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9496</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9496"/>
		<updated>2026-05-11T09:04:58Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Konfiguration für Trennblatt-Vorlagedatei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer bereitgestellten Vorlagendatei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Anzahl Barcodeblätter prüfen==&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Barcodes==&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
===Barcodetyp===&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
===Barcodewert===&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für OCR==&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
===OCR-Trenntext===&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Trennblatt-Vorlagedatei==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich mindestens eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlagen sind in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehler handling==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png|400px]][[File:barcodeOCR.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9495</id>
		<title>Generische Vorerfassung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9495"/>
		<updated>2026-05-08T13:50:08Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3519&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  76&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Mit diesem Arbeitsschritt kann eine generische Vorerfassung von Objekten konfiguriert werden. Dazu gibt es ein Modul namens &amp;quot;Generische Vorerfassung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung.png|550px]]&lt;br /&gt;
&lt;br /&gt;
===Punkt 1===&lt;br /&gt;
Wählen Sie hier alle Objekttypen aus, die Sie konfigurieren möchten. Sie können über “+” und “−” Objekttypen hinzufügen oder entfernen. Die Reihenfolge kann ebenfalls angepasst werden. Dies wirkt sich auf das Dropdown-Menü im “Generische Vorerfassungsfenster” aus.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2===&lt;br /&gt;
Hier können Sie die Signatur der neu erfassten Objekte definieren. Verwenden Sie dazu alle [https://helper.ch/wiki/index.php?title=Verfügbare_Funktionen verfügbaren Funktionen]. Falls der Benutzer die Signatur selbst wählen soll, geben Sie “*” als Wert ein.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer Objekte dieses Typs vorerfassen darf.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4===&lt;br /&gt;
Wählen Sie alle Attribute aus, die dem Benutzer im “Generische Vorerfassungsfenster” angezeigt werden sollen. Auch hier können Sie die Reihenfolge der Attribute festlegen.&lt;br /&gt;
&lt;br /&gt;
===Punkt 5===&lt;br /&gt;
Wählen Sie das Objektblatt, das gedruckt werden soll. Alternativ können Sie die Option deaktivieren, sodass kein Objektblatt gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 6===&lt;br /&gt;
Wählen Sie den Lieferschein, der gedruckt werden soll. Auch hier können Sie die Option deaktivieren, sodass kein Lieferschein gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 7===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer die Tranchen abschliessen darf. Die Tranche wird beim abschliessen für die weitere Bearbeitung in der Vorerfassung gesperrt und geht zum nächsten Worklflowschritt.&lt;br /&gt;
&lt;br /&gt;
==Fenster==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung Fenster.png|950px]]&lt;br /&gt;
===Punkt 1 - Produktionsauftrag wählen===&lt;br /&gt;
Zuerst muss der Benutzer den gewünschten Produktionsauftrag auswählen. Es stehen ihm alle Arbeitsschritte zur Verfügung, die zu Produktionsaufträgen seines Kunden gehören. Der Produktionsauftrag muss also mit dem gleichen Kunden (HK_KU_SEQ) verknüpft sein, dem auch der Benutzer zugeordnet ist (US_KU_SEQ). Ist dem Benutzer kein Kunde zugewiesen, wird er als interner Mitarbeiter betrachtet und ihm werden alle Arbeitsschritte des Systemtyps 76 angezeigt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Arbeitsschritten ist während der Vorerfassung möglich.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2 - Treelist===&lt;br /&gt;
In der Hauptliste dieses Fensters werden alle Objekte des Produktionsauftrags angezeigt. Befinden sich die Objekte nicht mehr in diesem Arbeitsschritt, kann der Benutzer ihre Daten nicht mehr bearbeiten. Dies wird durch ein Schlosssymbol signalisiert. Für jedes Objekt werden die Signatur und die vorkonfigurierten Attribute in der festgelegten Reihenfolge angezeigt. Alle Werte sind direkt in der Liste editierbar – mit Ausnahme der Signatur, sofern keine freie Benutzereingabe (”*”) konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3 - Aktionen===&lt;br /&gt;
Der Benutzer kann mit diesen Buttons Objekte erstellen, löschen oder duplizieren. Im Objekttyp-Dropdown werden nur jene Objekttypen angezeigt, die für die Vorerfassung freigegeben sind. Auch das Duplizieren von Objekten anderer Typen ist nicht möglich. Falls konfiguriert, kann der Benutzer außerdem die Tranche abschließen, einen Lieferschein und ein Objektblatt drucken.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4 - Statistiken===&lt;br /&gt;
Hier wird die Gesamtzahl aller Objekte der aktuellen Tranche angezeigt. Zudem gibt es eine Übersicht über die Anzahl der verschiedenen Objekttypen.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Hier wird die gesamte Konfiguration gespeichert&#039;&#039;&lt;br /&gt;
  HZ_STRINGTRENNER   &#039;&#039;Speichert welches Objektblatt gedruckt werden soll&#039;&#039;&lt;br /&gt;
  HZ_FELDTRENNER   &#039;&#039;Speichert welcher Lieferschein gedruckt werden soll&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9494</id>
		<title>Generische Vorerfassung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9494"/>
		<updated>2026-05-08T13:23:59Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3519&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  76&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Mit diesem Arbeitsschritt kann eine generische Vorerfassung von Objekten konfiguriert werden. Dazu gibt es ein Modul namens &amp;quot;Generische Vorerfassung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung.png|420px]]&lt;br /&gt;
&lt;br /&gt;
===Punkt 1===&lt;br /&gt;
Wählen Sie hier alle Objekttypen aus, die Sie konfigurieren möchten. Sie können über “+” und “−” Objekttypen hinzufügen oder entfernen. Die Reihenfolge kann ebenfalls angepasst werden. Dies wirkt sich auf das Dropdown-Menü im “Generische Vorerfassungsfenster” aus.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2===&lt;br /&gt;
Hier können Sie die Signatur der neu erfassten Objekte definieren. Verwenden Sie dazu alle [https://helper.ch/wiki/index.php?title=Verfügbare_Funktionen verfügbaren Funktionen]. Falls der Benutzer die Signatur selbst wählen soll, geben Sie “*” als Wert ein.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer Objekte dieses Typs vorerfassen darf.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4===&lt;br /&gt;
Wählen Sie alle Attribute aus, die dem Benutzer im “Generische Vorerfassungsfenster” angezeigt werden sollen. Auch hier können Sie die Reihenfolge der Attribute festlegen.&lt;br /&gt;
&lt;br /&gt;
===Punkt 5===&lt;br /&gt;
Wählen Sie das Objektblatt, das gedruckt werden soll. Alternativ können Sie die Option deaktivieren, sodass kein Objektblatt gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 6===&lt;br /&gt;
Wählen Sie den Lieferschein, der gedruckt werden soll. Auch hier können Sie die Option deaktivieren, sodass kein Lieferschein gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 7===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer die Tranchen abschliessen darf. Die Tranche wird beim abschliessen für die weitere Bearbeitung in der Vorerfassung gesperrt und geht zum nächsten Worklflowschritt.&lt;br /&gt;
&lt;br /&gt;
==Fenster==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung Fenster.png|950px]]&lt;br /&gt;
===Punkt 1 - Produktionsauftrag wählen===&lt;br /&gt;
Zuerst muss der Benutzer den gewünschten Produktionsauftrag auswählen. Es stehen ihm alle Arbeitsschritte zur Verfügung, die zu Produktionsaufträgen seines Kunden gehören. Der Produktionsauftrag muss also mit dem gleichen Kunden (HK_KU_SEQ) verknüpft sein, dem auch der Benutzer zugeordnet ist (US_KU_SEQ). Ist dem Benutzer kein Kunde zugewiesen, wird er als interner Mitarbeiter betrachtet und ihm werden alle Arbeitsschritte des Systemtyps 76 angezeigt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Arbeitsschritten ist während der Vorerfassung möglich.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2 - Treelist===&lt;br /&gt;
In der Hauptliste dieses Fensters werden alle Objekte des Produktionsauftrags angezeigt. Befinden sich die Objekte nicht mehr in diesem Arbeitsschritt, kann der Benutzer ihre Daten nicht mehr bearbeiten. Dies wird durch ein Schlosssymbol signalisiert. Für jedes Objekt werden die Signatur und die vorkonfigurierten Attribute in der festgelegten Reihenfolge angezeigt. Alle Werte sind direkt in der Liste editierbar – mit Ausnahme der Signatur, sofern keine freie Benutzereingabe (”*”) konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3 - Aktionen===&lt;br /&gt;
Der Benutzer kann mit diesen Buttons Objekte erstellen, löschen oder duplizieren. Im Objekttyp-Dropdown werden nur jene Objekttypen angezeigt, die für die Vorerfassung freigegeben sind. Auch das Duplizieren von Objekten anderer Typen ist nicht möglich. Falls konfiguriert, kann der Benutzer außerdem die Tranche abschließen, einen Lieferschein und ein Objektblatt drucken.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4 - Statistiken===&lt;br /&gt;
Hier wird die Gesamtzahl aller Objekte der aktuellen Tranche angezeigt. Zudem gibt es eine Übersicht über die Anzahl der verschiedenen Objekttypen.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Hier wird die gesamte Konfiguration gespeichert&#039;&#039;&lt;br /&gt;
  HZ_STRINGTRENNER   &#039;&#039;Speichert welches Objektblatt gedruckt werden soll&#039;&#039;&lt;br /&gt;
  HZ_FELDTRENNER   &#039;&#039;Speichert welcher Lieferschein gedruckt werden soll&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9493</id>
		<title>Generische Vorerfassung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9493"/>
		<updated>2026-05-08T13:23:40Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Fenster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3519&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  76&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Mit diesem Arbeitsschritt kann eine generische Vorerfassung von Objekten konfiguriert werden. Dazu gibt es ein Modul namens &amp;quot;Generische Vorerfassung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung.png]]&lt;br /&gt;
&lt;br /&gt;
===Punkt 1===&lt;br /&gt;
Wählen Sie hier alle Objekttypen aus, die Sie konfigurieren möchten. Sie können über “+” und “−” Objekttypen hinzufügen oder entfernen. Die Reihenfolge kann ebenfalls angepasst werden. Dies wirkt sich auf das Dropdown-Menü im “Generische Vorerfassungsfenster” aus.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2===&lt;br /&gt;
Hier können Sie die Signatur der neu erfassten Objekte definieren. Verwenden Sie dazu alle [https://helper.ch/wiki/index.php?title=Verfügbare_Funktionen verfügbaren Funktionen]. Falls der Benutzer die Signatur selbst wählen soll, geben Sie “*” als Wert ein.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer Objekte dieses Typs vorerfassen darf.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4===&lt;br /&gt;
Wählen Sie alle Attribute aus, die dem Benutzer im “Generische Vorerfassungsfenster” angezeigt werden sollen. Auch hier können Sie die Reihenfolge der Attribute festlegen.&lt;br /&gt;
&lt;br /&gt;
===Punkt 5===&lt;br /&gt;
Wählen Sie das Objektblatt, das gedruckt werden soll. Alternativ können Sie die Option deaktivieren, sodass kein Objektblatt gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 6===&lt;br /&gt;
Wählen Sie den Lieferschein, der gedruckt werden soll. Auch hier können Sie die Option deaktivieren, sodass kein Lieferschein gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 7===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer die Tranchen abschliessen darf. Die Tranche wird beim abschliessen für die weitere Bearbeitung in der Vorerfassung gesperrt und geht zum nächsten Worklflowschritt.&lt;br /&gt;
&lt;br /&gt;
==Fenster==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung Fenster.png|950px]]&lt;br /&gt;
===Punkt 1 - Produktionsauftrag wählen===&lt;br /&gt;
Zuerst muss der Benutzer den gewünschten Produktionsauftrag auswählen. Es stehen ihm alle Arbeitsschritte zur Verfügung, die zu Produktionsaufträgen seines Kunden gehören. Der Produktionsauftrag muss also mit dem gleichen Kunden (HK_KU_SEQ) verknüpft sein, dem auch der Benutzer zugeordnet ist (US_KU_SEQ). Ist dem Benutzer kein Kunde zugewiesen, wird er als interner Mitarbeiter betrachtet und ihm werden alle Arbeitsschritte des Systemtyps 76 angezeigt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Arbeitsschritten ist während der Vorerfassung möglich.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2 - Treelist===&lt;br /&gt;
In der Hauptliste dieses Fensters werden alle Objekte des Produktionsauftrags angezeigt. Befinden sich die Objekte nicht mehr in diesem Arbeitsschritt, kann der Benutzer ihre Daten nicht mehr bearbeiten. Dies wird durch ein Schlosssymbol signalisiert. Für jedes Objekt werden die Signatur und die vorkonfigurierten Attribute in der festgelegten Reihenfolge angezeigt. Alle Werte sind direkt in der Liste editierbar – mit Ausnahme der Signatur, sofern keine freie Benutzereingabe (”*”) konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3 - Aktionen===&lt;br /&gt;
Der Benutzer kann mit diesen Buttons Objekte erstellen, löschen oder duplizieren. Im Objekttyp-Dropdown werden nur jene Objekttypen angezeigt, die für die Vorerfassung freigegeben sind. Auch das Duplizieren von Objekten anderer Typen ist nicht möglich. Falls konfiguriert, kann der Benutzer außerdem die Tranche abschließen, einen Lieferschein und ein Objektblatt drucken.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4 - Statistiken===&lt;br /&gt;
Hier wird die Gesamtzahl aller Objekte der aktuellen Tranche angezeigt. Zudem gibt es eine Übersicht über die Anzahl der verschiedenen Objekttypen.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Hier wird die gesamte Konfiguration gespeichert&#039;&#039;&lt;br /&gt;
  HZ_STRINGTRENNER   &#039;&#039;Speichert welches Objektblatt gedruckt werden soll&#039;&#039;&lt;br /&gt;
  HZ_FELDTRENNER   &#039;&#039;Speichert welcher Lieferschein gedruckt werden soll&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9492</id>
		<title>Generische Vorerfassung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9492"/>
		<updated>2026-05-08T13:23:26Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Fenster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3519&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  76&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Mit diesem Arbeitsschritt kann eine generische Vorerfassung von Objekten konfiguriert werden. Dazu gibt es ein Modul namens &amp;quot;Generische Vorerfassung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung.png]]&lt;br /&gt;
&lt;br /&gt;
===Punkt 1===&lt;br /&gt;
Wählen Sie hier alle Objekttypen aus, die Sie konfigurieren möchten. Sie können über “+” und “−” Objekttypen hinzufügen oder entfernen. Die Reihenfolge kann ebenfalls angepasst werden. Dies wirkt sich auf das Dropdown-Menü im “Generische Vorerfassungsfenster” aus.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2===&lt;br /&gt;
Hier können Sie die Signatur der neu erfassten Objekte definieren. Verwenden Sie dazu alle [https://helper.ch/wiki/index.php?title=Verfügbare_Funktionen verfügbaren Funktionen]. Falls der Benutzer die Signatur selbst wählen soll, geben Sie “*” als Wert ein.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer Objekte dieses Typs vorerfassen darf.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4===&lt;br /&gt;
Wählen Sie alle Attribute aus, die dem Benutzer im “Generische Vorerfassungsfenster” angezeigt werden sollen. Auch hier können Sie die Reihenfolge der Attribute festlegen.&lt;br /&gt;
&lt;br /&gt;
===Punkt 5===&lt;br /&gt;
Wählen Sie das Objektblatt, das gedruckt werden soll. Alternativ können Sie die Option deaktivieren, sodass kein Objektblatt gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 6===&lt;br /&gt;
Wählen Sie den Lieferschein, der gedruckt werden soll. Auch hier können Sie die Option deaktivieren, sodass kein Lieferschein gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 7===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer die Tranchen abschliessen darf. Die Tranche wird beim abschliessen für die weitere Bearbeitung in der Vorerfassung gesperrt und geht zum nächsten Worklflowschritt.&lt;br /&gt;
&lt;br /&gt;
==Fenster==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung Fenster.png|900px]]&lt;br /&gt;
===Punkt 1 - Produktionsauftrag wählen===&lt;br /&gt;
Zuerst muss der Benutzer den gewünschten Produktionsauftrag auswählen. Es stehen ihm alle Arbeitsschritte zur Verfügung, die zu Produktionsaufträgen seines Kunden gehören. Der Produktionsauftrag muss also mit dem gleichen Kunden (HK_KU_SEQ) verknüpft sein, dem auch der Benutzer zugeordnet ist (US_KU_SEQ). Ist dem Benutzer kein Kunde zugewiesen, wird er als interner Mitarbeiter betrachtet und ihm werden alle Arbeitsschritte des Systemtyps 76 angezeigt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Arbeitsschritten ist während der Vorerfassung möglich.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2 - Treelist===&lt;br /&gt;
In der Hauptliste dieses Fensters werden alle Objekte des Produktionsauftrags angezeigt. Befinden sich die Objekte nicht mehr in diesem Arbeitsschritt, kann der Benutzer ihre Daten nicht mehr bearbeiten. Dies wird durch ein Schlosssymbol signalisiert. Für jedes Objekt werden die Signatur und die vorkonfigurierten Attribute in der festgelegten Reihenfolge angezeigt. Alle Werte sind direkt in der Liste editierbar – mit Ausnahme der Signatur, sofern keine freie Benutzereingabe (”*”) konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3 - Aktionen===&lt;br /&gt;
Der Benutzer kann mit diesen Buttons Objekte erstellen, löschen oder duplizieren. Im Objekttyp-Dropdown werden nur jene Objekttypen angezeigt, die für die Vorerfassung freigegeben sind. Auch das Duplizieren von Objekten anderer Typen ist nicht möglich. Falls konfiguriert, kann der Benutzer außerdem die Tranche abschließen, einen Lieferschein und ein Objektblatt drucken.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4 - Statistiken===&lt;br /&gt;
Hier wird die Gesamtzahl aller Objekte der aktuellen Tranche angezeigt. Zudem gibt es eine Übersicht über die Anzahl der verschiedenen Objekttypen.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Hier wird die gesamte Konfiguration gespeichert&#039;&#039;&lt;br /&gt;
  HZ_STRINGTRENNER   &#039;&#039;Speichert welches Objektblatt gedruckt werden soll&#039;&#039;&lt;br /&gt;
  HZ_FELDTRENNER   &#039;&#039;Speichert welcher Lieferschein gedruckt werden soll&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9491</id>
		<title>Generische Vorerfassung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9491"/>
		<updated>2026-05-08T13:22:58Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Fenster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3519&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  76&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Mit diesem Arbeitsschritt kann eine generische Vorerfassung von Objekten konfiguriert werden. Dazu gibt es ein Modul namens &amp;quot;Generische Vorerfassung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung.png]]&lt;br /&gt;
&lt;br /&gt;
===Punkt 1===&lt;br /&gt;
Wählen Sie hier alle Objekttypen aus, die Sie konfigurieren möchten. Sie können über “+” und “−” Objekttypen hinzufügen oder entfernen. Die Reihenfolge kann ebenfalls angepasst werden. Dies wirkt sich auf das Dropdown-Menü im “Generische Vorerfassungsfenster” aus.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2===&lt;br /&gt;
Hier können Sie die Signatur der neu erfassten Objekte definieren. Verwenden Sie dazu alle [https://helper.ch/wiki/index.php?title=Verfügbare_Funktionen verfügbaren Funktionen]. Falls der Benutzer die Signatur selbst wählen soll, geben Sie “*” als Wert ein.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer Objekte dieses Typs vorerfassen darf.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4===&lt;br /&gt;
Wählen Sie alle Attribute aus, die dem Benutzer im “Generische Vorerfassungsfenster” angezeigt werden sollen. Auch hier können Sie die Reihenfolge der Attribute festlegen.&lt;br /&gt;
&lt;br /&gt;
===Punkt 5===&lt;br /&gt;
Wählen Sie das Objektblatt, das gedruckt werden soll. Alternativ können Sie die Option deaktivieren, sodass kein Objektblatt gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 6===&lt;br /&gt;
Wählen Sie den Lieferschein, der gedruckt werden soll. Auch hier können Sie die Option deaktivieren, sodass kein Lieferschein gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 7===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer die Tranchen abschliessen darf. Die Tranche wird beim abschliessen für die weitere Bearbeitung in der Vorerfassung gesperrt und geht zum nächsten Worklflowschritt.&lt;br /&gt;
&lt;br /&gt;
==Fenster==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung Fenster.png]]&lt;br /&gt;
===Punkt 1 - Produktionsauftrag wählen===&lt;br /&gt;
Zuerst muss der Benutzer den gewünschten Produktionsauftrag auswählen. Es stehen ihm alle Arbeitsschritte zur Verfügung, die zu Produktionsaufträgen seines Kunden gehören. Der Produktionsauftrag muss also mit dem gleichen Kunden (HK_KU_SEQ) verknüpft sein, dem auch der Benutzer zugeordnet ist (US_KU_SEQ). Ist dem Benutzer kein Kunde zugewiesen, wird er als interner Mitarbeiter betrachtet und ihm werden alle Arbeitsschritte des Systemtyps 76 angezeigt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Arbeitsschritten ist während der Vorerfassung möglich.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2 - Treelist===&lt;br /&gt;
In der Hauptliste dieses Fensters werden alle Objekte des Produktionsauftrags angezeigt. Befinden sich die Objekte nicht mehr in diesem Arbeitsschritt, kann der Benutzer ihre Daten nicht mehr bearbeiten. Dies wird durch ein Schlosssymbol signalisiert. Für jedes Objekt werden die Signatur und die vorkonfigurierten Attribute in der festgelegten Reihenfolge angezeigt. Alle Werte sind direkt in der Liste editierbar – mit Ausnahme der Signatur, sofern keine freie Benutzereingabe (”*”) konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3 - Aktionen===&lt;br /&gt;
Der Benutzer kann mit diesen Buttons Objekte erstellen, löschen oder duplizieren. Im Objekttyp-Dropdown werden nur jene Objekttypen angezeigt, die für die Vorerfassung freigegeben sind. Auch das Duplizieren von Objekten anderer Typen ist nicht möglich. Falls konfiguriert, kann der Benutzer außerdem die Tranche abschließen, einen Lieferschein und ein Objektblatt drucken.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4 - Statistiken===&lt;br /&gt;
Hier wird die Gesamtzahl aller Objekte der aktuellen Tranche angezeigt. Zudem gibt es eine Übersicht über die Anzahl der verschiedenen Objekttypen.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Hier wird die gesamte Konfiguration gespeichert&#039;&#039;&lt;br /&gt;
  HZ_STRINGTRENNER   &#039;&#039;Speichert welches Objektblatt gedruckt werden soll&#039;&#039;&lt;br /&gt;
  HZ_FELDTRENNER   &#039;&#039;Speichert welcher Lieferschein gedruckt werden soll&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9490</id>
		<title>Generische Vorerfassung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9490"/>
		<updated>2026-05-08T13:22:38Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3519&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  76&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Mit diesem Arbeitsschritt kann eine generische Vorerfassung von Objekten konfiguriert werden. Dazu gibt es ein Modul namens &amp;quot;Generische Vorerfassung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung.png]]&lt;br /&gt;
&lt;br /&gt;
===Punkt 1===&lt;br /&gt;
Wählen Sie hier alle Objekttypen aus, die Sie konfigurieren möchten. Sie können über “+” und “−” Objekttypen hinzufügen oder entfernen. Die Reihenfolge kann ebenfalls angepasst werden. Dies wirkt sich auf das Dropdown-Menü im “Generische Vorerfassungsfenster” aus.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2===&lt;br /&gt;
Hier können Sie die Signatur der neu erfassten Objekte definieren. Verwenden Sie dazu alle [https://helper.ch/wiki/index.php?title=Verfügbare_Funktionen verfügbaren Funktionen]. Falls der Benutzer die Signatur selbst wählen soll, geben Sie “*” als Wert ein.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer Objekte dieses Typs vorerfassen darf.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4===&lt;br /&gt;
Wählen Sie alle Attribute aus, die dem Benutzer im “Generische Vorerfassungsfenster” angezeigt werden sollen. Auch hier können Sie die Reihenfolge der Attribute festlegen.&lt;br /&gt;
&lt;br /&gt;
===Punkt 5===&lt;br /&gt;
Wählen Sie das Objektblatt, das gedruckt werden soll. Alternativ können Sie die Option deaktivieren, sodass kein Objektblatt gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 6===&lt;br /&gt;
Wählen Sie den Lieferschein, der gedruckt werden soll. Auch hier können Sie die Option deaktivieren, sodass kein Lieferschein gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 7===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer die Tranchen abschliessen darf. Die Tranche wird beim abschliessen für die weitere Bearbeitung in der Vorerfassung gesperrt und geht zum nächsten Worklflowschritt.&lt;br /&gt;
&lt;br /&gt;
==Fenster==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung Fenster.png|900px]]&lt;br /&gt;
===Punkt 1 - Produktionsauftrag wählen===&lt;br /&gt;
Zuerst muss der Benutzer den gewünschten Produktionsauftrag auswählen. Es stehen ihm alle Arbeitsschritte zur Verfügung, die zu Produktionsaufträgen seines Kunden gehören. Der Produktionsauftrag muss also mit dem gleichen Kunden (HK_KU_SEQ) verknüpft sein, dem auch der Benutzer zugeordnet ist (US_KU_SEQ). Ist dem Benutzer kein Kunde zugewiesen, wird er als interner Mitarbeiter betrachtet und ihm werden alle Arbeitsschritte des Systemtyps 76 angezeigt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Arbeitsschritten ist während der Vorerfassung möglich.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2 - Treelist===&lt;br /&gt;
In der Hauptliste dieses Fensters werden alle Objekte des Produktionsauftrags angezeigt. Befinden sich die Objekte nicht mehr in diesem Arbeitsschritt, kann der Benutzer ihre Daten nicht mehr bearbeiten. Dies wird durch ein Schlosssymbol signalisiert. Für jedes Objekt werden die Signatur und die vorkonfigurierten Attribute in der festgelegten Reihenfolge angezeigt. Alle Werte sind direkt in der Liste editierbar – mit Ausnahme der Signatur, sofern keine freie Benutzereingabe (”*”) konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3 - Aktionen===&lt;br /&gt;
Der Benutzer kann mit diesen Buttons Objekte erstellen, löschen oder duplizieren. Im Objekttyp-Dropdown werden nur jene Objekttypen angezeigt, die für die Vorerfassung freigegeben sind. Auch das Duplizieren von Objekten anderer Typen ist nicht möglich. Falls konfiguriert, kann der Benutzer außerdem die Tranche abschließen, einen Lieferschein und ein Objektblatt drucken.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4 - Statistiken===&lt;br /&gt;
Hier wird die Gesamtzahl aller Objekte der aktuellen Tranche angezeigt. Zudem gibt es eine Übersicht über die Anzahl der verschiedenen Objekttypen.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Hier wird die gesamte Konfiguration gespeichert&#039;&#039;&lt;br /&gt;
  HZ_STRINGTRENNER   &#039;&#039;Speichert welches Objektblatt gedruckt werden soll&#039;&#039;&lt;br /&gt;
  HZ_FELDTRENNER   &#039;&#039;Speichert welcher Lieferschein gedruckt werden soll&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:Generische_Vorerfassung_Fenster.png&amp;diff=9489</id>
		<title>Datei:Generische Vorerfassung Fenster.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Generische_Vorerfassung_Fenster.png&amp;diff=9489"/>
		<updated>2026-05-08T13:21:41Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Generische Vorerfassung Fenster.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fenster &amp;quot;Generische Vorerfassung&amp;quot;&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9488</id>
		<title>Generische Vorerfassung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9488"/>
		<updated>2026-05-08T13:19:58Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Punkt 3 - Aktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3519&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  76&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Mit diesem Arbeitsschritt kann eine generische Vorerfassung von Objekten konfiguriert werden. Dazu gibt es ein Modul namens &amp;quot;Generische Vorerfassung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Punkt 1===&lt;br /&gt;
Wählen Sie hier alle Objekttypen aus, die Sie konfigurieren möchten. Sie können über “+” und “−” Objekttypen hinzufügen oder entfernen. Die Reihenfolge kann ebenfalls angepasst werden. Dies wirkt sich auf das Dropdown-Menü im “Generische Vorerfassungsfenster” aus.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2===&lt;br /&gt;
Hier können Sie die Signatur der neu erfassten Objekte definieren. Verwenden Sie dazu alle [https://helper.ch/wiki/index.php?title=Verfügbare_Funktionen verfügbaren Funktionen]. Falls der Benutzer die Signatur selbst wählen soll, geben Sie “*” als Wert ein.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer Objekte dieses Typs vorerfassen darf.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4===&lt;br /&gt;
Wählen Sie alle Attribute aus, die dem Benutzer im “Generische Vorerfassungsfenster” angezeigt werden sollen. Auch hier können Sie die Reihenfolge der Attribute festlegen.&lt;br /&gt;
&lt;br /&gt;
===Punkt 5===&lt;br /&gt;
Wählen Sie das Objektblatt, das gedruckt werden soll. Alternativ können Sie die Option deaktivieren, sodass kein Objektblatt gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 6===&lt;br /&gt;
Wählen Sie den Lieferschein, der gedruckt werden soll. Auch hier können Sie die Option deaktivieren, sodass kein Lieferschein gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 7===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer die Tranchen abschliessen darf. Die Tranche wird beim abschliessen für die weitere Bearbeitung in der Vorerfassung gesperrt und geht zum nächsten Worklflowschritt.&lt;br /&gt;
&lt;br /&gt;
==Fenster==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung Fenster.png|900px]]&lt;br /&gt;
===Punkt 1 - Produktionsauftrag wählen===&lt;br /&gt;
Zuerst muss der Benutzer den gewünschten Produktionsauftrag auswählen. Es stehen ihm alle Arbeitsschritte zur Verfügung, die zu Produktionsaufträgen seines Kunden gehören. Der Produktionsauftrag muss also mit dem gleichen Kunden (HK_KU_SEQ) verknüpft sein, dem auch der Benutzer zugeordnet ist (US_KU_SEQ). Ist dem Benutzer kein Kunde zugewiesen, wird er als interner Mitarbeiter betrachtet und ihm werden alle Arbeitsschritte des Systemtyps 76 angezeigt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Arbeitsschritten ist während der Vorerfassung möglich.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2 - Treelist===&lt;br /&gt;
In der Hauptliste dieses Fensters werden alle Objekte des Produktionsauftrags angezeigt. Befinden sich die Objekte nicht mehr in diesem Arbeitsschritt, kann der Benutzer ihre Daten nicht mehr bearbeiten. Dies wird durch ein Schlosssymbol signalisiert. Für jedes Objekt werden die Signatur und die vorkonfigurierten Attribute in der festgelegten Reihenfolge angezeigt. Alle Werte sind direkt in der Liste editierbar – mit Ausnahme der Signatur, sofern keine freie Benutzereingabe (”*”) konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3 - Aktionen===&lt;br /&gt;
Der Benutzer kann mit diesen Buttons Objekte erstellen, löschen oder duplizieren. Im Objekttyp-Dropdown werden nur jene Objekttypen angezeigt, die für die Vorerfassung freigegeben sind. Auch das Duplizieren von Objekten anderer Typen ist nicht möglich. Falls konfiguriert, kann der Benutzer außerdem die Tranche abschließen, einen Lieferschein und ein Objektblatt drucken.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4 - Statistiken===&lt;br /&gt;
Hier wird die Gesamtzahl aller Objekte der aktuellen Tranche angezeigt. Zudem gibt es eine Übersicht über die Anzahl der verschiedenen Objekttypen.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Hier wird die gesamte Konfiguration gespeichert&#039;&#039;&lt;br /&gt;
  HZ_STRINGTRENNER   &#039;&#039;Speichert welches Objektblatt gedruckt werden soll&#039;&#039;&lt;br /&gt;
  HZ_FELDTRENNER   &#039;&#039;Speichert welcher Lieferschein gedruckt werden soll&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9487</id>
		<title>Generische Vorerfassung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Generische_Vorerfassung&amp;diff=9487"/>
		<updated>2026-05-08T13:16:15Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3519&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  76&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Mit diesem Arbeitsschritt kann eine generische Vorerfassung von Objekten konfiguriert werden. Dazu gibt es ein Modul namens &amp;quot;Generische Vorerfassung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Punkt 1===&lt;br /&gt;
Wählen Sie hier alle Objekttypen aus, die Sie konfigurieren möchten. Sie können über “+” und “−” Objekttypen hinzufügen oder entfernen. Die Reihenfolge kann ebenfalls angepasst werden. Dies wirkt sich auf das Dropdown-Menü im “Generische Vorerfassungsfenster” aus.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2===&lt;br /&gt;
Hier können Sie die Signatur der neu erfassten Objekte definieren. Verwenden Sie dazu alle [https://helper.ch/wiki/index.php?title=Verfügbare_Funktionen verfügbaren Funktionen]. Falls der Benutzer die Signatur selbst wählen soll, geben Sie “*” als Wert ein.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer Objekte dieses Typs vorerfassen darf.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4===&lt;br /&gt;
Wählen Sie alle Attribute aus, die dem Benutzer im “Generische Vorerfassungsfenster” angezeigt werden sollen. Auch hier können Sie die Reihenfolge der Attribute festlegen.&lt;br /&gt;
&lt;br /&gt;
===Punkt 5===&lt;br /&gt;
Wählen Sie das Objektblatt, das gedruckt werden soll. Alternativ können Sie die Option deaktivieren, sodass kein Objektblatt gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 6===&lt;br /&gt;
Wählen Sie den Lieferschein, der gedruckt werden soll. Auch hier können Sie die Option deaktivieren, sodass kein Lieferschein gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
===Punkt 7===&lt;br /&gt;
Aktivieren Sie diese Checkbox, wenn der Benutzer die Tranchen abschliessen darf. Die Tranche wird beim abschliessen für die weitere Bearbeitung in der Vorerfassung gesperrt und geht zum nächsten Worklflowschritt.&lt;br /&gt;
&lt;br /&gt;
==Fenster==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Generische Vorerfassung Fenster.png|900px]]&lt;br /&gt;
===Punkt 1 - Produktionsauftrag wählen===&lt;br /&gt;
Zuerst muss der Benutzer den gewünschten Produktionsauftrag auswählen. Es stehen ihm alle Arbeitsschritte zur Verfügung, die zu Produktionsaufträgen seines Kunden gehören. Der Produktionsauftrag muss also mit dem gleichen Kunden (HK_KU_SEQ) verknüpft sein, dem auch der Benutzer zugeordnet ist (US_KU_SEQ). Ist dem Benutzer kein Kunde zugewiesen, wird er als interner Mitarbeiter betrachtet und ihm werden alle Arbeitsschritte des Systemtyps 76 angezeigt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Arbeitsschritten ist während der Vorerfassung möglich.&lt;br /&gt;
&lt;br /&gt;
===Punkt 2 - Treelist===&lt;br /&gt;
In der Hauptliste dieses Fensters werden alle Objekte des Produktionsauftrags angezeigt. Befinden sich die Objekte nicht mehr in diesem Arbeitsschritt, kann der Benutzer ihre Daten nicht mehr bearbeiten. Dies wird durch ein Schlosssymbol signalisiert. Für jedes Objekt werden die Signatur und die vorkonfigurierten Attribute in der festgelegten Reihenfolge angezeigt. Alle Werte sind direkt in der Liste editierbar – mit Ausnahme der Signatur, sofern keine freie Benutzereingabe (”*”) konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
===Punkt 3 - Aktionen===&lt;br /&gt;
Der Benutzer kann mit diesen Buttons Objekte erstellen, löschen oder duplizieren. Im Objekttyp-Dropdown werden nur jene Objekttypen angezeigt, die für die Vorerfassung freigegeben sind. Auch das Duplizieren von Objekten anderer Typen ist nicht möglich. Falls konfiguriert, kann der Benutzer außerdem einen Lieferschein und ein Objektblatt drucken.&lt;br /&gt;
&lt;br /&gt;
===Punkt 4 - Statistiken===&lt;br /&gt;
Hier wird die Gesamtzahl aller Objekte der aktuellen Tranche angezeigt. Zudem gibt es eine Übersicht über die Anzahl der verschiedenen Objekttypen.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Hier wird die gesamte Konfiguration gespeichert&#039;&#039;&lt;br /&gt;
  HZ_STRINGTRENNER   &#039;&#039;Speichert welches Objektblatt gedruckt werden soll&#039;&#039;&lt;br /&gt;
  HZ_FELDTRENNER   &#039;&#039;Speichert welcher Lieferschein gedruckt werden soll&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:Generische_Vorerfassung.png&amp;diff=9486</id>
		<title>Datei:Generische Vorerfassung.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Generische_Vorerfassung.png&amp;diff=9486"/>
		<updated>2026-05-08T13:13:17Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Generische Vorerfassung.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfigurationsfenster der Generischen Vorerfassung&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9485</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9485"/>
		<updated>2026-05-05T09:00:28Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3614 /* Wiki vervollständigen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle und Endpunkte. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter, deren Endpunkte und API Schnittstellen angesprochen werden. Web-API, Hosted oder bereitgestellt in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt wird die Verbindung zum KI-Anbieter eingerichtet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Anbieter&#039;&#039;&#039; || Bezeichnung des API-Anbieters, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;Azure OpenAI&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;OpenAI&amp;lt;/code&amp;gt;. Dient zur Identifikation und Auswahl der richtigen Verbindungslogik.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API Endpunkt&#039;&#039;&#039; || Spezifischer API-Pfad, der angesprochen wird. Empfohlen wird &amp;lt;code&amp;gt;/responses&amp;lt;/code&amp;gt; (neueste Version). Alternativ &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; für ältere oder kompatible Anbieter.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039; || Stamm-URL des API-Endpunkts, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;https://api.openai.com/v1&amp;lt;/code&amp;gt; oder die URL einer Azure-Instanz.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API-Key&#039;&#039;&#039; || Geheimer Schlüssel zur Authentifizierung gegenüber dem Anbieter. Wird direkt beim Anbieter bezogen und muss vertraulich behandelt werden.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Modell&#039;&#039;&#039; || Name des zu verwendenden KI-Modells, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;gpt-4o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpt-4o-mini&amp;lt;/code&amp;gt; oder ein Azure-Deployment-Name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Für Azure OpenAI ist die Basis-URL anbieterabhängig und enthält in der Regel den Azure-Ressourcennamen. Endpunkt und Modell müssen mit dem jeweiligen Deployment in Azure übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Extraktionanweisungen ===&lt;br /&gt;
&lt;br /&gt;
Hier werden die Anweisungen definiert, die der KI mitgeteilt werden, was sie aus dem Dokument extrahieren soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
==== System-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt ist die wichtigste Konfiguration. Er definiert das Verhalten der KI vollständig und legt fest:&lt;br /&gt;
&lt;br /&gt;
* welche Art von Dokument analysiert wird,&lt;br /&gt;
* welche Informationen extrahiert werden sollen,&lt;br /&gt;
* in welchem Format die Antwort zurückgegeben werden muss,&lt;br /&gt;
* welche Regeln und Einschränkungen gelten (z.&amp;amp;nbsp;B. keine Werte erfinden, nur extrahieren was explizit vorhanden ist).&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt wird als Rolle &amp;lt;code&amp;gt;developer&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; an die API übergeben. Es empfiehlt sich, den hier gezeigten Prompt als Basis zu verwenden, entsprechend anzupassen und im Abschnitt &amp;lt;code&amp;gt;## Extraktionsanweisungen&amp;lt;/code&amp;gt; die dokumenttypspezifischen Anweisungen einzutragen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Du bist eine Engine zur Analyse von Dokumenten. Deine Aufgabe ist es, Informationen aus dem bereitgestellten Dokument zu extrahieren und als JSON zurückzugeben, das exakt dem im Request definierten Schema entspricht.&lt;br /&gt;
&lt;br /&gt;
## Regeln&lt;br /&gt;
- Extrahiere nur Informationen, die im Dokument explizit vorhanden sind.&lt;br /&gt;
- Triff keine Annahmen und leite keine Werte ab.&lt;br /&gt;
- Wenn ein Feld nicht gefunden werden kann, setze es auf null.&lt;br /&gt;
- Gib ausschließlich die im Schema definierten Felder zurück.&lt;br /&gt;
- Gib keine Erklärungen, Kommentare oder zusätzlichen Text aus.&lt;br /&gt;
- Betrachte mehrseitige Dokumente als eine Einheit.&lt;br /&gt;
&lt;br /&gt;
## Confidence&lt;br /&gt;
Wenn im Schema ein entsprechendes Feld vorhanden ist:&lt;br /&gt;
- HIGH: Wert ist eindeutig und klar lesbar&lt;br /&gt;
- MEDIUM: Wert ist vorhanden, aber nicht eindeutig oder leicht interpretativ&lt;br /&gt;
- LOW: Wert ist unsicher oder nur teilweise vorhanden&lt;br /&gt;
- NONE: Kein Wert gefunden → zugehöriges Feld ist null&lt;br /&gt;
&lt;br /&gt;
## Fehlerfall&lt;br /&gt;
Falls das Dokument nicht verarbeitet werden kann oder keinen Text oder erkennbaren Inhalt enthält, gib stattdessen einer der folgenden zum Fehler passenden Werte in das feld fehlerbeschreibung im json schema aus.&lt;br /&gt;
&lt;br /&gt;
Mögliche Codes:&lt;br /&gt;
- NO_DOCUMENT&lt;br /&gt;
- UNREADABLE&lt;br /&gt;
- WRONG_FORMAT&lt;br /&gt;
- NO_CONTENT&lt;br /&gt;
- OUT_OF_SCOPE&lt;br /&gt;
&lt;br /&gt;
## Extraktionsanweisungen&lt;br /&gt;
Siehe weitere Anweisung in den jeweiligen Schemabemerkungen&lt;br /&gt;
Extrahiere aus Rechnungen:&lt;br /&gt;
- Vorname und Nachname der angeschriebenen Person&lt;br /&gt;
- Ort aus der Anschrift&lt;br /&gt;
- Rechnungstotal&lt;br /&gt;
- usw..&lt;br /&gt;
&lt;br /&gt;
## Ausgabe&lt;br /&gt;
Gib genau ein gültiges JSON-Objekt zurück, das dem Schema entspricht, oder ein Fehlerobjekt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== User-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der User-Prompt enthält die konkrete, dokumentbezogene Anfrage und wird direkt nach dem System-Prompt an die KI übergeben. In der Regel genügt ein kurzer Befehl wie:&lt;br /&gt;
&lt;br /&gt;
 Analysiere das Dokument und extrahiere die Informationen.&lt;br /&gt;
&lt;br /&gt;
Für einfache Extraktionsaufgaben kann dieses Feld kurz gehalten werden, da die eigentlichen Anweisungen bereits vollständig im System-Prompt enthalten sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Feldzuordnungen ===&lt;br /&gt;
&lt;br /&gt;
Das Schema definiert, welche Felder aus dem Dokument extrahiert und in welche Metadatenfelder sie geschrieben werden sollen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
Jedes Schema-Element besteht aus drei Angaben:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Spalte !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Name&#039;&#039;&#039; || Eindeutiger Bezeichner des Feldes. &#039;&#039;&#039;Muss exakt mit dem Namen des Ziel-Metadatenfelds übereinstimmen.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Typ&#039;&#039;&#039; || Datentyp des extrahierten Werts. Mögliche Werte: &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;integer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Beschreibung&#039;&#039;&#039; || Weitere Erklärung für die KI, was zu extrahieren ist und wo sich die Information im Dokument befindet, oder wie sie zu formatieren ist (Datum, Uhrzeit, Währung). Je präziser, desto besser das Ergebnis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Typ !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; || string || Nachname der Person aus der Anschrift oben rechts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vorname&amp;lt;/code&amp;gt; || string || Vorname der Person aus der Anschrift oben rechts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;titel1&amp;lt;/code&amp;gt; || string || Erste Überschrift im Dokument, erkennbar an grösserer Schriftformatierung.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Wenn ein Wert im Dokument nicht gefunden wird, gibt die KI &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; zurück. Es werden keine Werte erfunden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modelparameter ===&lt;br /&gt;
&lt;br /&gt;
Die Modellparameter steuern das Verhalten des KI-Modells bei der Verarbeitung. Für Extraktionsaufgaben empfehlen sich niedrige Kreativitätswerte. Ein Tokenlimit für die Ausgabe kann unter anderem bei Halluzinationen der KI helfen, nicht endlosen text (Tokenkosten!) bis zum Tokenlimit des Modells auszugeben.&lt;br /&gt;
&lt;br /&gt;
Es können vordefinierte Parameter aus der Dropdownliste im Feld des Parameternamens ausgewählt werden, oder eigene Parameternamen eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Empfohlener Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;temperature&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt; || Kontrolliert die Zufälligkeit der Antwort. Niedrige Werte (nahe 0) liefern konsistentere, deterministischere Ergebnisse – ideal für strukturierte Extraktion.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;top_p&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Alternativer Sampling-Parameter. In Kombination mit niedriger Temperature auf &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; belassen.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;max_output_tokens&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4096&amp;lt;/code&amp;gt; || Maximale Anzahl Token in der Antwort. Für umfangreiche Schemata oder mehrseitige Dokumente ggf. erhöhen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der Verwendung des Endpunkts &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; heisst der Parameter &amp;lt;code&amp;gt;max_tokens&amp;lt;/code&amp;gt; statt &amp;lt;code&amp;gt;max_output_tokens&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Testfenster ===&lt;br /&gt;
&lt;br /&gt;
Das Testfenster ermöglicht es, die aktuelle Konfiguration direkt mit einem Dokument zu testen, ohne den regulären Workflow ausführen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Vorgehensweise:&lt;br /&gt;
# Dokument (PDF, JPEG oder PNG) über die Dateiauswahl laden.&lt;br /&gt;
# Anfragetext leer lassen oder einfach &amp;quot;Dokument analysieren&amp;quot; eingeben.&lt;br /&gt;
# Auf &#039;&#039;&#039;Anfrage senden&#039;&#039;&#039; klicken.&lt;br /&gt;
# Die Antwort der KI wird im rechten Bereich des Fensters angezeigt – entweder als JSON-Objekt (bei erfolgreicher Extraktion) oder als Fehlerobjekt mit Fehlercode.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9484</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9484"/>
		<updated>2026-05-05T08:55:22Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle und Endpunkte. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter, deren Endpunkte und API Schnittstellen angesprochen werden. Web-API, Hosted oder bereitgestellt in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt wird die Verbindung zum KI-Anbieter eingerichtet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Anbieter&#039;&#039;&#039; || Bezeichnung des API-Anbieters, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;Azure OpenAI&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;OpenAI&amp;lt;/code&amp;gt;. Dient zur Identifikation und Auswahl der richtigen Verbindungslogik.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API Endpunkt&#039;&#039;&#039; || Spezifischer API-Pfad, der angesprochen wird. Empfohlen wird &amp;lt;code&amp;gt;/responses&amp;lt;/code&amp;gt; (neueste Version). Alternativ &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; für ältere oder kompatible Anbieter.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039; || Stamm-URL des API-Endpunkts, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;https://api.openai.com/v1&amp;lt;/code&amp;gt; oder die URL einer Azure-Instanz.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API-Key&#039;&#039;&#039; || Geheimer Schlüssel zur Authentifizierung gegenüber dem Anbieter. Wird direkt beim Anbieter bezogen und muss vertraulich behandelt werden.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Modell&#039;&#039;&#039; || Name des zu verwendenden KI-Modells, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;gpt-4o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpt-4o-mini&amp;lt;/code&amp;gt; oder ein Azure-Deployment-Name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Für Azure OpenAI ist die Basis-URL anbieterabhängig und enthält in der Regel den Azure-Ressourcennamen. Endpunkt und Modell müssen mit dem jeweiligen Deployment in Azure übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Extraktionanweisungen ===&lt;br /&gt;
&lt;br /&gt;
Hier werden die Anweisungen definiert, die der KI mitgeteilt werden, was sie aus dem Dokument extrahieren soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
==== System-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt ist die wichtigste Konfiguration. Er definiert das Verhalten der KI vollständig und legt fest:&lt;br /&gt;
&lt;br /&gt;
* welche Art von Dokument analysiert wird,&lt;br /&gt;
* welche Informationen extrahiert werden sollen,&lt;br /&gt;
* in welchem Format die Antwort zurückgegeben werden muss,&lt;br /&gt;
* welche Regeln und Einschränkungen gelten (z.&amp;amp;nbsp;B. keine Werte erfinden, nur extrahieren was explizit vorhanden ist).&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt wird als Rolle &amp;lt;code&amp;gt;developer&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; an die API übergeben. Es empfiehlt sich, den hier gezeigten Prompt als Basis zu verwenden, entsprechend anzupassen und im Abschnitt &amp;lt;code&amp;gt;## Extraktionsanweisungen&amp;lt;/code&amp;gt; die dokumenttypspezifischen Anweisungen einzutragen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Du bist eine Engine zur Analyse von Dokumenten. Deine Aufgabe ist es, Informationen aus dem bereitgestellten Dokument zu extrahieren und als JSON zurückzugeben, das exakt dem im Request definierten Schema entspricht.&lt;br /&gt;
&lt;br /&gt;
## Regeln&lt;br /&gt;
- Extrahiere nur Informationen, die im Dokument explizit vorhanden sind.&lt;br /&gt;
- Triff keine Annahmen und leite keine Werte ab.&lt;br /&gt;
- Wenn ein Feld nicht gefunden werden kann, setze es auf null.&lt;br /&gt;
- Gib ausschließlich die im Schema definierten Felder zurück.&lt;br /&gt;
- Gib keine Erklärungen, Kommentare oder zusätzlichen Text aus.&lt;br /&gt;
- Betrachte mehrseitige Dokumente als eine Einheit.&lt;br /&gt;
&lt;br /&gt;
## Confidence&lt;br /&gt;
Wenn im Schema ein entsprechendes Feld vorhanden ist:&lt;br /&gt;
- HIGH: Wert ist eindeutig und klar lesbar&lt;br /&gt;
- MEDIUM: Wert ist vorhanden, aber nicht eindeutig oder leicht interpretativ&lt;br /&gt;
- LOW: Wert ist unsicher oder nur teilweise vorhanden&lt;br /&gt;
- NONE: Kein Wert gefunden → zugehöriges Feld ist null&lt;br /&gt;
&lt;br /&gt;
## Fehlerfall&lt;br /&gt;
Falls das Dokument nicht verarbeitet werden kann oder keinen Text oder erkennbaren Inhalt enthält, gib stattdessen einer der folgenden zum Fehler passenden Werte in das feld fehlerbeschreibung im json schema aus.&lt;br /&gt;
&lt;br /&gt;
Mögliche Codes:&lt;br /&gt;
- NO_DOCUMENT&lt;br /&gt;
- UNREADABLE&lt;br /&gt;
- WRONG_FORMAT&lt;br /&gt;
- NO_CONTENT&lt;br /&gt;
- OUT_OF_SCOPE&lt;br /&gt;
&lt;br /&gt;
## Extraktionsanweisungen&lt;br /&gt;
Siehe weitere Anweisung in den jeweiligen Schemabemerkungen&lt;br /&gt;
Extrahiere aus Rechnungen:&lt;br /&gt;
- Vorname und Nachname der angeschriebenen Person&lt;br /&gt;
- Ort aus der Anschrift&lt;br /&gt;
- Rechnungstotal&lt;br /&gt;
- usw..&lt;br /&gt;
&lt;br /&gt;
## Ausgabe&lt;br /&gt;
Gib genau ein gültiges JSON-Objekt zurück, das dem Schema entspricht, oder ein Fehlerobjekt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== User-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der User-Prompt enthält die konkrete, dokumentbezogene Anfrage und wird direkt nach dem System-Prompt an die KI übergeben. In der Regel genügt ein kurzer Befehl wie:&lt;br /&gt;
&lt;br /&gt;
 Analysiere das Dokument und extrahiere die Informationen.&lt;br /&gt;
&lt;br /&gt;
Für einfache Extraktionsaufgaben kann dieses Feld kurz gehalten werden, da die eigentlichen Anweisungen bereits vollständig im System-Prompt enthalten sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Feldzuordnungen ===&lt;br /&gt;
&lt;br /&gt;
Das Schema definiert, welche Felder aus dem Dokument extrahiert und in welche Metadatenfelder sie geschrieben werden sollen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
Jedes Schema-Element besteht aus drei Angaben:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Spalte !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Name&#039;&#039;&#039; || Eindeutiger Bezeichner des Feldes. &#039;&#039;&#039;Muss exakt mit dem Namen des Ziel-Metadatenfelds übereinstimmen.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Typ&#039;&#039;&#039; || Datentyp des extrahierten Werts. Mögliche Werte: &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;integer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Beschreibung&#039;&#039;&#039; || Weitere Erklärung für die KI, was zu extrahieren ist und wo sich die Information im Dokument befindet, oder wie sie zu formatieren ist (Datum, Uhrzeit, Währung). Je präziser, desto besser das Ergebnis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Typ !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; || string || Nachname der Person aus der Anschrift oben rechts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vorname&amp;lt;/code&amp;gt; || string || Vorname der Person aus der Anschrift oben rechts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;titel1&amp;lt;/code&amp;gt; || string || Erste Überschrift im Dokument, erkennbar an grösserer Schriftformatierung.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Wenn ein Wert im Dokument nicht gefunden wird, gibt die KI &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; zurück. Es werden keine Werte erfunden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modelparameter ===&lt;br /&gt;
&lt;br /&gt;
Die Modellparameter steuern das Verhalten des KI-Modells bei der Verarbeitung. Für Extraktionsaufgaben empfehlen sich niedrige Kreativitätswerte. Ein Tokenlimit für die Ausgabe kann unter anderem bei Halluzinationen der KI helfen, nicht endlosen text (Tokenkosten!) bis zum Tokenlimit des Modells auszugeben.&lt;br /&gt;
&lt;br /&gt;
Es können vordefinierte Parameter aus der Dropdownliste im Feld des Parameternamens ausgewählt werden, oder eigene Parameternamen eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Empfohlener Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;temperature&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt; || Kontrolliert die Zufälligkeit der Antwort. Niedrige Werte (nahe 0) liefern konsistentere, deterministischere Ergebnisse – ideal für strukturierte Extraktion.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;top_p&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Alternativer Sampling-Parameter. In Kombination mit niedriger Temperature auf &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; belassen.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;max_output_tokens&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4096&amp;lt;/code&amp;gt; || Maximale Anzahl Token in der Antwort. Für umfangreiche Schemata oder mehrseitige Dokumente ggf. erhöhen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der Verwendung des Endpunkts &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; heisst der Parameter &amp;lt;code&amp;gt;max_tokens&amp;lt;/code&amp;gt; statt &amp;lt;code&amp;gt;max_output_tokens&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Testfenster ===&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9483</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9483"/>
		<updated>2026-05-05T08:35:23Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Feldzuordnungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle und Endpunkte. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter, deren Endpunkte und API Schnittstellen angesprochen werden. Web-API, Hosted oder bereitgestellt in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt wird die Verbindung zum KI-Anbieter eingerichtet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Anbieter&#039;&#039;&#039; || Bezeichnung des API-Anbieters, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;Azure OpenAI&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;OpenAI&amp;lt;/code&amp;gt;. Dient zur Identifikation und Auswahl der richtigen Verbindungslogik.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API Endpunkt&#039;&#039;&#039; || Spezifischer API-Pfad, der angesprochen wird. Empfohlen wird &amp;lt;code&amp;gt;/responses&amp;lt;/code&amp;gt; (neueste Version). Alternativ &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; für ältere oder kompatible Anbieter.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039; || Stamm-URL des API-Endpunkts, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;https://api.openai.com/v1&amp;lt;/code&amp;gt; oder die URL einer Azure-Instanz.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API-Key&#039;&#039;&#039; || Geheimer Schlüssel zur Authentifizierung gegenüber dem Anbieter. Wird direkt beim Anbieter bezogen und muss vertraulich behandelt werden.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Modell&#039;&#039;&#039; || Name des zu verwendenden KI-Modells, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;gpt-4o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpt-4o-mini&amp;lt;/code&amp;gt; oder ein Azure-Deployment-Name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Für Azure OpenAI ist die Basis-URL anbieterabhängig und enthält in der Regel den Azure-Ressourcennamen. Endpunkt und Modell müssen mit dem jeweiligen Deployment in Azure übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
=== Extraktionanweisungen ===&lt;br /&gt;
&lt;br /&gt;
Hier werden die Anweisungen definiert, die der KI mitgeteilt werden, was sie aus dem Dokument extrahieren soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
==== System-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt ist die wichtigste Konfiguration. Er definiert das Verhalten der KI vollständig und legt fest:&lt;br /&gt;
&lt;br /&gt;
* welche Art von Dokument analysiert wird,&lt;br /&gt;
* welche Informationen extrahiert werden sollen,&lt;br /&gt;
* in welchem Format die Antwort zurückgegeben werden muss,&lt;br /&gt;
* welche Regeln und Einschränkungen gelten (z.&amp;amp;nbsp;B. keine Werte erfinden, nur extrahieren was explizit vorhanden ist).&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt wird als Rolle &amp;lt;code&amp;gt;developer&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; an die API übergeben. Es empfiehlt sich, den hier gezeigten Prompt als Basis zu verwenden, entsprechend anzupassen und im Abschnitt &amp;lt;code&amp;gt;## Extraktionsanweisungen&amp;lt;/code&amp;gt; die dokumenttypspezifischen Anweisungen einzutragen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Du bist eine Engine zur Analyse von Dokumenten. Deine Aufgabe ist es, Informationen aus dem bereitgestellten Dokument zu extrahieren und als JSON zurückzugeben, das exakt dem im Request definierten Schema entspricht.&lt;br /&gt;
&lt;br /&gt;
## Regeln&lt;br /&gt;
- Extrahiere nur Informationen, die im Dokument explizit vorhanden sind.&lt;br /&gt;
- Triff keine Annahmen und leite keine Werte ab.&lt;br /&gt;
- Wenn ein Feld nicht gefunden werden kann, setze es auf null.&lt;br /&gt;
- Gib ausschließlich die im Schema definierten Felder zurück.&lt;br /&gt;
- Gib keine Erklärungen, Kommentare oder zusätzlichen Text aus.&lt;br /&gt;
- Betrachte mehrseitige Dokumente als eine Einheit.&lt;br /&gt;
&lt;br /&gt;
## Confidence&lt;br /&gt;
Wenn im Schema ein entsprechendes Feld vorhanden ist:&lt;br /&gt;
- HIGH: Wert ist eindeutig und klar lesbar&lt;br /&gt;
- MEDIUM: Wert ist vorhanden, aber nicht eindeutig oder leicht interpretativ&lt;br /&gt;
- LOW: Wert ist unsicher oder nur teilweise vorhanden&lt;br /&gt;
- NONE: Kein Wert gefunden → zugehöriges Feld ist null&lt;br /&gt;
&lt;br /&gt;
## Fehlerfall&lt;br /&gt;
Falls das Dokument nicht verarbeitet werden kann oder keinen Text oder erkennbaren Inhalt enthält, gib stattdessen einer der folgenden zum Fehler passenden Werte in das feld fehlerbeschreibung im json schema aus.&lt;br /&gt;
&lt;br /&gt;
Mögliche Codes:&lt;br /&gt;
- NO_DOCUMENT&lt;br /&gt;
- UNREADABLE&lt;br /&gt;
- WRONG_FORMAT&lt;br /&gt;
- NO_CONTENT&lt;br /&gt;
- OUT_OF_SCOPE&lt;br /&gt;
&lt;br /&gt;
## Extraktionsanweisungen&lt;br /&gt;
Siehe weitere Anweisung in den jeweiligen Schemabemerkungen&lt;br /&gt;
Extrahiere aus Rechnungen:&lt;br /&gt;
- Vorname und Nachname der angeschriebenen Person&lt;br /&gt;
- Ort aus der Anschrift&lt;br /&gt;
- Rechnungstotal&lt;br /&gt;
- usw..&lt;br /&gt;
&lt;br /&gt;
## Ausgabe&lt;br /&gt;
Gib genau ein gültiges JSON-Objekt zurück, das dem Schema entspricht, oder ein Fehlerobjekt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== User-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der User-Prompt enthält die konkrete, dokumentbezogene Anfrage und wird direkt nach dem System-Prompt an die KI übergeben. In der Regel genügt ein kurzer Befehl wie:&lt;br /&gt;
&lt;br /&gt;
 Analysiere das Dokument und extrahiere die Informationen.&lt;br /&gt;
&lt;br /&gt;
Für einfache Extraktionsaufgaben kann dieses Feld kurz gehalten werden, da die eigentlichen Anweisungen bereits vollständig im System-Prompt enthalten sind.&lt;br /&gt;
&lt;br /&gt;
=== Feldzuordnungen ===&lt;br /&gt;
&lt;br /&gt;
Das Schema definiert, welche Felder aus dem Dokument extrahiert und in welche Metadatenfelder sie geschrieben werden sollen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
Jedes Schema-Element besteht aus drei Angaben:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Spalte !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Name&#039;&#039;&#039; || Eindeutiger Bezeichner des Feldes. &#039;&#039;&#039;Muss exakt mit dem Namen des Ziel-Metadatenfelds übereinstimmen.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Typ&#039;&#039;&#039; || Datentyp des extrahierten Werts. Mögliche Werte: &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;integer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Beschreibung&#039;&#039;&#039; || Weitere Erklärung für die KI, was zu extrahieren ist und wo sich die Information im Dokument befindet, oder wie sie zu formatieren ist (Datum, Uhrzeit, Währung). Je präziser, desto besser das Ergebnis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Typ !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; || string || Nachname der Person aus der Anschrift oben rechts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vorname&amp;lt;/code&amp;gt; || string || Vorname der Person aus der Anschrift oben rechts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;titel1&amp;lt;/code&amp;gt; || string || Erste Überschrift im Dokument, erkennbar an grösserer Schriftformatierung.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Wenn ein Wert im Dokument nicht gefunden wird, gibt die KI &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; zurück. Es werden keine Werte erfunden.&lt;br /&gt;
&lt;br /&gt;
=== Modelparameter ===&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
=== Testfenster ===&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9482</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9482"/>
		<updated>2026-05-05T08:31:18Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* User-Prompt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle und Endpunkte. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter, deren Endpunkte und API Schnittstellen angesprochen werden. Web-API, Hosted oder bereitgestellt in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt wird die Verbindung zum KI-Anbieter eingerichtet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Anbieter&#039;&#039;&#039; || Bezeichnung des API-Anbieters, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;Azure OpenAI&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;OpenAI&amp;lt;/code&amp;gt;. Dient zur Identifikation und Auswahl der richtigen Verbindungslogik.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API Endpunkt&#039;&#039;&#039; || Spezifischer API-Pfad, der angesprochen wird. Empfohlen wird &amp;lt;code&amp;gt;/responses&amp;lt;/code&amp;gt; (neueste Version). Alternativ &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; für ältere oder kompatible Anbieter.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039; || Stamm-URL des API-Endpunkts, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;https://api.openai.com/v1&amp;lt;/code&amp;gt; oder die URL einer Azure-Instanz.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API-Key&#039;&#039;&#039; || Geheimer Schlüssel zur Authentifizierung gegenüber dem Anbieter. Wird direkt beim Anbieter bezogen und muss vertraulich behandelt werden.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Modell&#039;&#039;&#039; || Name des zu verwendenden KI-Modells, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;gpt-4o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpt-4o-mini&amp;lt;/code&amp;gt; oder ein Azure-Deployment-Name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Für Azure OpenAI ist die Basis-URL anbieterabhängig und enthält in der Regel den Azure-Ressourcennamen. Endpunkt und Modell müssen mit dem jeweiligen Deployment in Azure übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
=== Extraktionanweisungen ===&lt;br /&gt;
&lt;br /&gt;
Hier werden die Anweisungen definiert, die der KI mitgeteilt werden, was sie aus dem Dokument extrahieren soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
==== System-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt ist die wichtigste Konfiguration. Er definiert das Verhalten der KI vollständig und legt fest:&lt;br /&gt;
&lt;br /&gt;
* welche Art von Dokument analysiert wird,&lt;br /&gt;
* welche Informationen extrahiert werden sollen,&lt;br /&gt;
* in welchem Format die Antwort zurückgegeben werden muss,&lt;br /&gt;
* welche Regeln und Einschränkungen gelten (z.&amp;amp;nbsp;B. keine Werte erfinden, nur extrahieren was explizit vorhanden ist).&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt wird als Rolle &amp;lt;code&amp;gt;developer&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; an die API übergeben. Es empfiehlt sich, den hier gezeigten Prompt als Basis zu verwenden, entsprechend anzupassen und im Abschnitt &amp;lt;code&amp;gt;## Extraktionsanweisungen&amp;lt;/code&amp;gt; die dokumenttypspezifischen Anweisungen einzutragen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Du bist eine Engine zur Analyse von Dokumenten. Deine Aufgabe ist es, Informationen aus dem bereitgestellten Dokument zu extrahieren und als JSON zurückzugeben, das exakt dem im Request definierten Schema entspricht.&lt;br /&gt;
&lt;br /&gt;
## Regeln&lt;br /&gt;
- Extrahiere nur Informationen, die im Dokument explizit vorhanden sind.&lt;br /&gt;
- Triff keine Annahmen und leite keine Werte ab.&lt;br /&gt;
- Wenn ein Feld nicht gefunden werden kann, setze es auf null.&lt;br /&gt;
- Gib ausschließlich die im Schema definierten Felder zurück.&lt;br /&gt;
- Gib keine Erklärungen, Kommentare oder zusätzlichen Text aus.&lt;br /&gt;
- Betrachte mehrseitige Dokumente als eine Einheit.&lt;br /&gt;
&lt;br /&gt;
## Confidence&lt;br /&gt;
Wenn im Schema ein entsprechendes Feld vorhanden ist:&lt;br /&gt;
- HIGH: Wert ist eindeutig und klar lesbar&lt;br /&gt;
- MEDIUM: Wert ist vorhanden, aber nicht eindeutig oder leicht interpretativ&lt;br /&gt;
- LOW: Wert ist unsicher oder nur teilweise vorhanden&lt;br /&gt;
- NONE: Kein Wert gefunden → zugehöriges Feld ist null&lt;br /&gt;
&lt;br /&gt;
## Fehlerfall&lt;br /&gt;
Falls das Dokument nicht verarbeitet werden kann oder keinen Text oder erkennbaren Inhalt enthält, gib stattdessen einer der folgenden zum Fehler passenden Werte in das feld fehlerbeschreibung im json schema aus.&lt;br /&gt;
&lt;br /&gt;
Mögliche Codes:&lt;br /&gt;
- NO_DOCUMENT&lt;br /&gt;
- UNREADABLE&lt;br /&gt;
- WRONG_FORMAT&lt;br /&gt;
- NO_CONTENT&lt;br /&gt;
- OUT_OF_SCOPE&lt;br /&gt;
&lt;br /&gt;
## Extraktionsanweisungen&lt;br /&gt;
Siehe weitere Anweisung in den jeweiligen Schemabemerkungen&lt;br /&gt;
Extrahiere aus Rechnungen:&lt;br /&gt;
- Vorname und Nachname der angeschriebenen Person&lt;br /&gt;
- Ort aus der Anschrift&lt;br /&gt;
- Rechnungstotal&lt;br /&gt;
- usw..&lt;br /&gt;
&lt;br /&gt;
## Ausgabe&lt;br /&gt;
Gib genau ein gültiges JSON-Objekt zurück, das dem Schema entspricht, oder ein Fehlerobjekt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== User-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der User-Prompt enthält die konkrete, dokumentbezogene Anfrage und wird direkt nach dem System-Prompt an die KI übergeben. In der Regel genügt ein kurzer Befehl wie:&lt;br /&gt;
&lt;br /&gt;
 Analysiere das Dokument und extrahiere die Informationen.&lt;br /&gt;
&lt;br /&gt;
Für einfache Extraktionsaufgaben kann dieses Feld kurz gehalten werden, da die eigentlichen Anweisungen bereits vollständig im System-Prompt enthalten sind.&lt;br /&gt;
&lt;br /&gt;
=== Feldzuordnungen ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
=== Modelparameter ===&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
=== Testfenster ===&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9481</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9481"/>
		<updated>2026-05-05T08:30:57Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* System-Prompt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle und Endpunkte. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter, deren Endpunkte und API Schnittstellen angesprochen werden. Web-API, Hosted oder bereitgestellt in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt wird die Verbindung zum KI-Anbieter eingerichtet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Anbieter&#039;&#039;&#039; || Bezeichnung des API-Anbieters, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;Azure OpenAI&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;OpenAI&amp;lt;/code&amp;gt;. Dient zur Identifikation und Auswahl der richtigen Verbindungslogik.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API Endpunkt&#039;&#039;&#039; || Spezifischer API-Pfad, der angesprochen wird. Empfohlen wird &amp;lt;code&amp;gt;/responses&amp;lt;/code&amp;gt; (neueste Version). Alternativ &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; für ältere oder kompatible Anbieter.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039; || Stamm-URL des API-Endpunkts, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;https://api.openai.com/v1&amp;lt;/code&amp;gt; oder die URL einer Azure-Instanz.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API-Key&#039;&#039;&#039; || Geheimer Schlüssel zur Authentifizierung gegenüber dem Anbieter. Wird direkt beim Anbieter bezogen und muss vertraulich behandelt werden.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Modell&#039;&#039;&#039; || Name des zu verwendenden KI-Modells, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;gpt-4o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpt-4o-mini&amp;lt;/code&amp;gt; oder ein Azure-Deployment-Name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Für Azure OpenAI ist die Basis-URL anbieterabhängig und enthält in der Regel den Azure-Ressourcennamen. Endpunkt und Modell müssen mit dem jeweiligen Deployment in Azure übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
=== Extraktionanweisungen ===&lt;br /&gt;
&lt;br /&gt;
Hier werden die Anweisungen definiert, die der KI mitgeteilt werden, was sie aus dem Dokument extrahieren soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
==== System-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt ist die wichtigste Konfiguration. Er definiert das Verhalten der KI vollständig und legt fest:&lt;br /&gt;
&lt;br /&gt;
* welche Art von Dokument analysiert wird,&lt;br /&gt;
* welche Informationen extrahiert werden sollen,&lt;br /&gt;
* in welchem Format die Antwort zurückgegeben werden muss,&lt;br /&gt;
* welche Regeln und Einschränkungen gelten (z.&amp;amp;nbsp;B. keine Werte erfinden, nur extrahieren was explizit vorhanden ist).&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt wird als Rolle &amp;lt;code&amp;gt;developer&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; an die API übergeben. Es empfiehlt sich, den hier gezeigten Prompt als Basis zu verwenden, entsprechend anzupassen und im Abschnitt &amp;lt;code&amp;gt;## Extraktionsanweisungen&amp;lt;/code&amp;gt; die dokumenttypspezifischen Anweisungen einzutragen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Du bist eine Engine zur Analyse von Dokumenten. Deine Aufgabe ist es, Informationen aus dem bereitgestellten Dokument zu extrahieren und als JSON zurückzugeben, das exakt dem im Request definierten Schema entspricht.&lt;br /&gt;
&lt;br /&gt;
## Regeln&lt;br /&gt;
- Extrahiere nur Informationen, die im Dokument explizit vorhanden sind.&lt;br /&gt;
- Triff keine Annahmen und leite keine Werte ab.&lt;br /&gt;
- Wenn ein Feld nicht gefunden werden kann, setze es auf null.&lt;br /&gt;
- Gib ausschließlich die im Schema definierten Felder zurück.&lt;br /&gt;
- Gib keine Erklärungen, Kommentare oder zusätzlichen Text aus.&lt;br /&gt;
- Betrachte mehrseitige Dokumente als eine Einheit.&lt;br /&gt;
&lt;br /&gt;
## Confidence&lt;br /&gt;
Wenn im Schema ein entsprechendes Feld vorhanden ist:&lt;br /&gt;
- HIGH: Wert ist eindeutig und klar lesbar&lt;br /&gt;
- MEDIUM: Wert ist vorhanden, aber nicht eindeutig oder leicht interpretativ&lt;br /&gt;
- LOW: Wert ist unsicher oder nur teilweise vorhanden&lt;br /&gt;
- NONE: Kein Wert gefunden → zugehöriges Feld ist null&lt;br /&gt;
&lt;br /&gt;
## Fehlerfall&lt;br /&gt;
Falls das Dokument nicht verarbeitet werden kann oder keinen Text oder erkennbaren Inhalt enthält, gib stattdessen einer der folgenden zum Fehler passenden Werte in das feld fehlerbeschreibung im json schema aus.&lt;br /&gt;
&lt;br /&gt;
Mögliche Codes:&lt;br /&gt;
- NO_DOCUMENT&lt;br /&gt;
- UNREADABLE&lt;br /&gt;
- WRONG_FORMAT&lt;br /&gt;
- NO_CONTENT&lt;br /&gt;
- OUT_OF_SCOPE&lt;br /&gt;
&lt;br /&gt;
## Extraktionsanweisungen&lt;br /&gt;
Siehe weitere Anweisung in den jeweiligen Schemabemerkungen&lt;br /&gt;
Extrahiere aus Rechnungen:&lt;br /&gt;
- Vorname und Nachname der angeschriebenen Person&lt;br /&gt;
- Ort aus der Anschrift&lt;br /&gt;
- Rechnungstotal&lt;br /&gt;
- usw..&lt;br /&gt;
&lt;br /&gt;
## Ausgabe&lt;br /&gt;
Gib genau ein gültiges JSON-Objekt zurück, das dem Schema entspricht, oder ein Fehlerobjekt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== User-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der User-Prompt enthält die konkrete, dokumentbezogene Anfrage und wird direkt nach dem System-Prompt an die KI übergeben. In der Regel genügt ein kurzer Befehl wie:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Analysiere das Dokument und extrahiere die Informationen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für einfache Extraktionsaufgaben kann dieses Feld kurz gehalten werden, da die eigentlichen Anweisungen bereits vollständig im System-Prompt enthalten sind.&lt;br /&gt;
&lt;br /&gt;
=== Feldzuordnungen ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
=== Modelparameter ===&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
=== Testfenster ===&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9480</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9480"/>
		<updated>2026-05-05T08:28:16Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Extraktionanweisungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle und Endpunkte. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter, deren Endpunkte und API Schnittstellen angesprochen werden. Web-API, Hosted oder bereitgestellt in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt wird die Verbindung zum KI-Anbieter eingerichtet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Anbieter&#039;&#039;&#039; || Bezeichnung des API-Anbieters, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;Azure OpenAI&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;OpenAI&amp;lt;/code&amp;gt;. Dient zur Identifikation und Auswahl der richtigen Verbindungslogik.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API Endpunkt&#039;&#039;&#039; || Spezifischer API-Pfad, der angesprochen wird. Empfohlen wird &amp;lt;code&amp;gt;/responses&amp;lt;/code&amp;gt; (neueste Version). Alternativ &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; für ältere oder kompatible Anbieter.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039; || Stamm-URL des API-Endpunkts, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;https://api.openai.com/v1&amp;lt;/code&amp;gt; oder die URL einer Azure-Instanz.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API-Key&#039;&#039;&#039; || Geheimer Schlüssel zur Authentifizierung gegenüber dem Anbieter. Wird direkt beim Anbieter bezogen und muss vertraulich behandelt werden.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Modell&#039;&#039;&#039; || Name des zu verwendenden KI-Modells, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;gpt-4o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpt-4o-mini&amp;lt;/code&amp;gt; oder ein Azure-Deployment-Name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Für Azure OpenAI ist die Basis-URL anbieterabhängig und enthält in der Regel den Azure-Ressourcennamen. Endpunkt und Modell müssen mit dem jeweiligen Deployment in Azure übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
=== Extraktionanweisungen ===&lt;br /&gt;
&lt;br /&gt;
Hier werden die Anweisungen definiert, die der KI mitgeteilt werden, was sie aus dem Dokument extrahieren soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
==== System-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt ist die wichtigste Konfiguration. Er definiert das Verhalten der KI vollständig und legt fest:&lt;br /&gt;
&lt;br /&gt;
* welche Art von Dokument analysiert wird,&lt;br /&gt;
* welche Informationen extrahiert werden sollen,&lt;br /&gt;
* in welchem Format die Antwort zurückgegeben werden muss,&lt;br /&gt;
* welche Regeln und Einschränkungen gelten (z.&amp;amp;nbsp;B. keine Werte erfinden, nur extrahieren was explizit vorhanden ist).&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt wird als Rolle &amp;lt;code&amp;gt;developer&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; an die API übergeben. Es empfiehlt sich, den hier gezeigten Prompt als Basis zu verwenden, entsprechend anzupassen und im Abschnitt &amp;lt;code&amp;gt;## Extraktionsanweisungen&amp;lt;/code&amp;gt; die dokumenttypspezifischen Anweisungen einzutragen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Du bist eine Engine zur Analyse von Dokumenten. Deine Aufgabe ist es, Informationen aus dem bereitgestellten Dokument zu extrahieren und als JSON zurückzugeben, das exakt dem im Request definierten Schema entspricht.&lt;br /&gt;
&lt;br /&gt;
## Regeln&lt;br /&gt;
- Extrahiere nur Informationen, die im Dokument explizit vorhanden sind.&lt;br /&gt;
- Triff keine Annahmen und leite keine Werte ab.&lt;br /&gt;
- Wenn ein Feld nicht gefunden werden kann, setze es auf null.&lt;br /&gt;
- Gib ausschließlich die im Schema definierten Felder zurück.&lt;br /&gt;
- Gib keine Erklärungen, Kommentare oder zusätzlichen Text aus.&lt;br /&gt;
- Betrachte mehrseitige Dokumente als eine Einheit.&lt;br /&gt;
&lt;br /&gt;
## Confidence&lt;br /&gt;
Wenn im Schema ein entsprechendes Feld vorhanden ist:&lt;br /&gt;
- HIGH: Wert ist eindeutig und klar lesbar&lt;br /&gt;
- MEDIUM: Wert ist vorhanden, aber nicht eindeutig oder leicht interpretativ&lt;br /&gt;
- LOW: Wert ist unsicher oder nur teilweise vorhanden&lt;br /&gt;
- NONE: Kein Wert gefunden → zugehöriges Feld ist null&lt;br /&gt;
&lt;br /&gt;
## Fehlerfall&lt;br /&gt;
Falls das Dokument nicht verarbeitet werden kann oder keinen Text oder erkennbaren Inhalt enthält, gib stattdessen einer der folgenden zum Fehler passenden Werte in das feld fehlerbeschreibung im json schema aus.&lt;br /&gt;
&lt;br /&gt;
Mögliche Codes:&lt;br /&gt;
- NO_DOCUMENT&lt;br /&gt;
- UNREADABLE&lt;br /&gt;
- WRONG_FORMAT&lt;br /&gt;
- NO_CONTENT&lt;br /&gt;
- OUT_OF_SCOPE&lt;br /&gt;
&lt;br /&gt;
## Extraktionsanweisungen&lt;br /&gt;
Siehe genaue Anweisung in der Benutzereingabe&lt;br /&gt;
Extrahiere aus Rechnungen:&lt;br /&gt;
- Vorname und Nachname der angeschriebenen Person (meist oben links in der Anschrift)&lt;br /&gt;
- Ort aus der Anschrift&lt;br /&gt;
- Rechnungstotal&lt;br /&gt;
- flugnummer&lt;br /&gt;
&lt;br /&gt;
## Ausgabe&lt;br /&gt;
Gib genau ein gültiges JSON-Objekt zurück, das dem Schema entspricht, oder ein Fehlerobjekt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== User-Prompt ====&lt;br /&gt;
&lt;br /&gt;
Der User-Prompt enthält die konkrete, dokumentbezogene Anfrage und wird direkt nach dem System-Prompt an die KI übergeben. In der Regel genügt ein kurzer Befehl wie:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Analysiere das Dokument und extrahiere die Informationen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für einfache Extraktionsaufgaben kann dieses Feld kurz gehalten werden, da die eigentlichen Anweisungen bereits vollständig im System-Prompt enthalten sind.&lt;br /&gt;
&lt;br /&gt;
=== Feldzuordnungen ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
=== Modelparameter ===&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
=== Testfenster ===&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9479</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9479"/>
		<updated>2026-05-05T08:15:05Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle und Endpunkte. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter, deren Endpunkte und API Schnittstellen angesprochen werden. Web-API, Hosted oder bereitgestellt in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt wird die Verbindung zum KI-Anbieter eingerichtet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Anbieter&#039;&#039;&#039; || Bezeichnung des API-Anbieters, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;Azure OpenAI&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;OpenAI&amp;lt;/code&amp;gt;. Dient zur Identifikation und Auswahl der richtigen Verbindungslogik.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API Endpunkt&#039;&#039;&#039; || Spezifischer API-Pfad, der angesprochen wird. Empfohlen wird &amp;lt;code&amp;gt;/responses&amp;lt;/code&amp;gt; (neueste Version). Alternativ &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; für ältere oder kompatible Anbieter.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039; || Stamm-URL des API-Endpunkts, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;https://api.openai.com/v1&amp;lt;/code&amp;gt; oder die URL einer Azure-Instanz.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API-Key&#039;&#039;&#039; || Geheimer Schlüssel zur Authentifizierung gegenüber dem Anbieter. Wird direkt beim Anbieter bezogen und muss vertraulich behandelt werden.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Modell&#039;&#039;&#039; || Name des zu verwendenden KI-Modells, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;gpt-4o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpt-4o-mini&amp;lt;/code&amp;gt; oder ein Azure-Deployment-Name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Für Azure OpenAI ist die Basis-URL anbieterabhängig und enthält in der Regel den Azure-Ressourcennamen. Endpunkt und Modell müssen mit dem jeweiligen Deployment in Azure übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
=== Extraktionanweisungen ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
=== Feldzuordnungen ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
=== Modelparameter ===&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
=== Testfenster ===&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:ChatTestfenster.png&amp;diff=9478</id>
		<title>Datei:ChatTestfenster.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:ChatTestfenster.png&amp;diff=9478"/>
		<updated>2026-05-05T08:13:55Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:ChatTestfenster.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Chatfenster&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:ModelParameter.png&amp;diff=9477</id>
		<title>Datei:ModelParameter.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:ModelParameter.png&amp;diff=9477"/>
		<updated>2026-05-05T08:13:02Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:ModelParameter.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Modelparameter&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:FelderSchema.png&amp;diff=9476</id>
		<title>Datei:FelderSchema.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:FelderSchema.png&amp;diff=9476"/>
		<updated>2026-05-05T08:12:41Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:FelderSchema.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Schema&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:Extraktionsprompt.png&amp;diff=9475</id>
		<title>Datei:Extraktionsprompt.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Extraktionsprompt.png&amp;diff=9475"/>
		<updated>2026-05-05T08:12:22Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Extraktionsprompt.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Seite Prompt&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:APIKonfiguration.png&amp;diff=9474</id>
		<title>Datei:APIKonfiguration.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:APIKonfiguration.png&amp;diff=9474"/>
		<updated>2026-05-05T08:11:57Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:APIKonfiguration.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Seite API&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9473</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9473"/>
		<updated>2026-05-05T08:11:40Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle und Endpunkte. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter, deren Endpunkte und API Schnittstellen angesprochen werden. Web-API, Hosted oder bereitgestellt in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt wird die Verbindung zum KI-Anbieter eingerichtet.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Anbieter&#039;&#039;&#039; || Bezeichnung des API-Anbieters, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;Azure OpenAI&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;OpenAI&amp;lt;/code&amp;gt;. Dient zur Identifikation und Auswahl der richtigen Verbindungslogik.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API Endpunkt&#039;&#039;&#039; || Spezifischer API-Pfad, der angesprochen wird. Empfohlen wird &amp;lt;code&amp;gt;/responses&amp;lt;/code&amp;gt; (neueste Version). Alternativ &amp;lt;code&amp;gt;/chat/completions&amp;lt;/code&amp;gt; für ältere oder kompatible Anbieter.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039; || Stamm-URL des API-Endpunkts, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;https://api.openai.com/v1&amp;lt;/code&amp;gt; oder die URL einer Azure-Instanz.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;API-Key&#039;&#039;&#039; || Geheimer Schlüssel zur Authentifizierung gegenüber dem Anbieter. Wird direkt beim Anbieter bezogen und muss vertraulich behandelt werden.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KI Modell&#039;&#039;&#039; || Name des zu verwendenden KI-Modells, z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;gpt-4o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpt-4o-mini&amp;lt;/code&amp;gt; oder ein Azure-Deployment-Name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Für Azure OpenAI ist die Basis-URL anbieterabhängig und enthält in der Regel den Azure-Ressourcennamen. Endpunkt und Modell müssen mit dem jeweiligen Deployment in Azure übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
=== Extraktionanweisungen ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
=== Feldzuordnungen ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
=== Modelparameter ===&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
=== Testfenster ===&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9472</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9472"/>
		<updated>2026-05-05T07:55:52Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle und Endpunkte. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter, deren Endpunkte und API Schnittstellen angesprochen werden. Web-API, Hosted oder bereitgestellt in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
=== Extraktionanweisungen ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
=== Feldzuordnungen ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
=== Modelparameter ===&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
=== Testfenster ===&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9471</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9471"/>
		<updated>2026-05-05T07:48:42Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3614 /* Konfigurationsbilder einfügen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge:&lt;br /&gt;
  3614&lt;br /&gt;
;Systemtyp:&lt;br /&gt;
  80&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDOKIBearbeitung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Auswertung von Text und Bilddateien über verschiedene KI Modelle - insbesondere Sprachmodelle - über Prompt gesteuerte Anweisungen. Unterstützt werden PDF Dateien, sowie JPEG und PNG Bilddateien.&lt;br /&gt;
&lt;br /&gt;
Es können verschiedene Anbieter und API Schnittstellen angesprochen werden, Online oder in lokaler Infrastruktur. Als API wird die OpenAI API in der neuesten Version empfohlen.&lt;br /&gt;
&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. &lt;br /&gt;
&lt;br /&gt;
Es gibt in der Konfiguration einen Sytstem-Prompt und einen User-Prompt, wobei der User-Prompt dem Chatprompt bei Chatbasierten LLM Applikationen entspricht. Dieser ist hier in der Regel eher zweitrangig.&lt;br /&gt;
&lt;br /&gt;
Der System-Prompt definiert die KI strikt als funktionales Werkzeug: Er legt ihr Verhalten, ihre Aufgaben, Regeln und Einschränkungen fest und begrenzt den Interpretationsspielraum klar. &lt;br /&gt;
Der User-Prompt übernimmt darauf aufbauend ausschliesslich die konkrete Anfrage zur Auswertung des jeweiligen Dokuments.&lt;br /&gt;
&lt;br /&gt;
Für das Speichern der Ausgabe aus den Abfragen in Metadatenfeldern, ist die Angabe eines fixen Schemas notwendig. Dabei muss der Name des Schemaelements mit dem Metadatumsnamen Feld übereinstimmen, in welches das Resultat abgefüllt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:APIKonfiguration.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extraktionsprompt.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:FelderSchema.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ModelParameter.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ChatTestfenster.png]]&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:ChatTestfenster.png&amp;diff=9470</id>
		<title>Datei:ChatTestfenster.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:ChatTestfenster.png&amp;diff=9470"/>
		<updated>2026-05-05T07:46:39Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Chatfenster&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:ModelParameter.png&amp;diff=9469</id>
		<title>Datei:ModelParameter.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:ModelParameter.png&amp;diff=9469"/>
		<updated>2026-05-05T07:46:12Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Modelparameter&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:FelderSchema.png&amp;diff=9468</id>
		<title>Datei:FelderSchema.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:FelderSchema.png&amp;diff=9468"/>
		<updated>2026-05-05T07:45:44Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Schema&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:Extraktionsprompt.png&amp;diff=9467</id>
		<title>Datei:Extraktionsprompt.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Extraktionsprompt.png&amp;diff=9467"/>
		<updated>2026-05-05T07:45:17Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Seite Prompt&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:APIKonfiguration.png&amp;diff=9466</id>
		<title>Datei:APIKonfiguration.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:APIKonfiguration.png&amp;diff=9466"/>
		<updated>2026-05-05T07:44:47Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration Seite API&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9465</id>
		<title>Barcodetrenner - Auftrennung von Objekten nach Barcodeblättern / OCR-Text</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9465"/>
		<updated>2026-05-04T09:41:12Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3631 /* Neue Eigenschaft Anzahl Trennblätter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1973, 2980, 3582&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der Workflow besteht aus dem Serverjob OJOHZDOBarcodeTrenner.&lt;br /&gt;
Er durchsucht den Ordner eines Objekts nach Trennblättern, erstellt für jedes erkannte Trennblatt ein Kindobjekt und ordnet diesem alle Seiten bis zum nächsten Trennblatt zu.&lt;br /&gt;
&lt;br /&gt;
Ein Trennblatt kann auf unterschiedliche Weise erkannt werden:&lt;br /&gt;
&lt;br /&gt;
* über einen Barcode mit einem definierten Wert&lt;br /&gt;
* über eine Seite, die einen bestimmten Text enthält (OCR)&lt;br /&gt;
* über einen Bildvergleich mit einer bereitgestellten Vorlagendatei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dieser Schritt hat zwei Ausgänge:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* erster Ausgang (grün) - Für das Vaterobjekt&lt;br /&gt;
* zweiter Ausgang (rot) - Für die Kindobjekte&lt;br /&gt;
&lt;br /&gt;
==Anzahl Barcodeblätter prüfen==&lt;br /&gt;
Wenn eine genaue Anzahl Trennblätter vorhanden sein muss, dann kann dieser Wert hier eingegeben werden. Die Objekte bleiben mit einem Fehler stehen, falls die Anzahl über- oder unterschritten wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png]]&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Barcodes==&lt;br /&gt;
[[Datei:Barcode mode.png|400px]]&lt;br /&gt;
===Barcodetyp===&lt;br /&gt;
Hier können Sie im Dropdown definieren nach welchen Barcodetypen gesucht werden soll. Falls alle Barcodes gefunden und überprüft werden soll, wählen Sie &amp;quot;Alle finden&amp;quot;.&lt;br /&gt;
===Barcodewert===&lt;br /&gt;
Definieren Sie einen Wert, welcher der Barcode beinhalten muss, damit diese Seite als Trennblatt zählt. Es ist möglich statische Werte sowie einen &#039;&#039;&#039;Regex&#039;&#039;&#039; zu definieren. Sie können zusätzlich den Platzhalter &amp;quot;[DOSEQ]&amp;quot; (ohne Anführungszeichen) verwenden. Mit dieser Konfiguration wird ein bereits bestehendes DO mit der entsprechenden Nummer gesucht. Die Seite wird nur zum Trennblatt wenn ein bestehendes Objekt gefunden wurde. Falls Sie das Kind nach dieser Sequenznummer zuordnen müssen, lesen Sie den Abschnitt &amp;quot;Signatur der Kinder&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beispiele für Regex:&lt;br /&gt;
* Alle Zahlen: [0-9]*&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für OCR==&lt;br /&gt;
[[Datei:ocr mode.png|400px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beachten Sie, dass dieser Schritt nur Funktioniert, wenn die Objekte vorher durch den [https://www.helper.ch/wiki/index.php?title=OCR_Texterkennung OCR-Serverjob] gelaufen sind!&lt;br /&gt;
===OCR-Trenntext===&lt;br /&gt;
Mithilfe des OCR-Trenntextes können Sie definieren was für ein Text auf einer Seite stehen muss, damit die Seite als Trennblatt gewertet wird. Es ist möglich statische Begriffe sowie Regex zu definieren. Beachten Sie, dass sich der gesamte Ausdruck auf &#039;&#039;&#039;einer Zeile&#039;&#039;&#039; befinden muss!&lt;br /&gt;
====Beispiele====&lt;br /&gt;
OCR-Trenntext: Auszug aus dem Protokoll ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;Auszug aus dem Protokoll&amp;quot; gesucht&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: [0-9][0-9][0-9] ==&amp;gt; Es wird auf jeder Seite nach 3 stelligen Zahlen gesucht (123, 822, 111)&amp;lt;br&amp;gt;&lt;br /&gt;
OCR-Trenntext: aus .{5} ==&amp;gt; Es wird auf jeder Seite nach &amp;quot;aus  &amp;lt;Wort mit 5 Zeichen egal welche&amp;gt;&amp;quot; gesucht (&amp;quot;aus Berlin&amp;quot; nicht aber &amp;quot;aus Bern&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Konfiguration für Trennblatt-Vorlagedatei==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Es werden nur Bilddateien unterstützt. &lt;br /&gt;
&lt;br /&gt;
Im HZ-Ordner muss sich eine Datei befinden, die als Vorlage für die Trennblatterkennung verwendet wird.&lt;br /&gt;
Diese Vorlage ist in einem Unterordner mit dem Namen „Trennblatt“ abzulegen.&lt;br /&gt;
&lt;br /&gt;
Der Ordner kann über die Konfiguration mit der Taste „Vorlagenordner öffnen…“ direkt geöffnet werden.&lt;br /&gt;
Existiert der Ordner noch nicht, wird er automatisch erstellt. Voraussetzung dafür ist, dass in der Konfiguration des Arbeitsschrittes bereits ein HZ-Ordner definiert ist.&lt;br /&gt;
&lt;br /&gt;
Über die Einstellung „Grenzwert“ kann die Erkennungsschwelle mit einem Wert zwischen 0.00 und 100.00 festgelegt werden.&lt;br /&gt;
Zur Ermittlung eines geeigneten Grenzwerts lassen sich einzelne Dateien über die Taste „Teste Datei!“ prüfen.&lt;br /&gt;
Der Vergleichs-Score wird anschließend in einer Meldung ausgegeben. Bei eindeutigen Vorlagen ist typischerweise ein Wert um 75 ausreichend.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Konfiguration==&lt;br /&gt;
===Modus für erste Datei im Vater===&lt;br /&gt;
Hier können Sie definieren ob die erste Datei im Vater ein Trennblatt sein &#039;&#039;&#039;muss&#039;&#039;&#039; oder ob alle Dateien bis zum ersten Trennblatt &#039;&#039;&#039;ignoriert&#039;&#039;&#039; werden sollen. Falls die erste Seite ein Trennblatt sein soll sie jedoch keine ist, gibt es ein Fehler.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:father mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Modus für Trennblätter===&lt;br /&gt;
Hier können Sie definieren, was mit dem Trennblatt geschehen soll: Soll die Datei mit ins Kind kopiert werden, oder nicht?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:trennblatt mode.png|300px]]&lt;br /&gt;
&lt;br /&gt;
====Anzahl Files zu löschen nach dem Trennblatt====&lt;br /&gt;
Steht diese Zahl auf 0 werden alle Seiten, nach dem Trennblatt bis zum nächsten, ins Kind kopiert. Schreiben Sie zB. 2 hinein werden alle Seiten, &#039;&#039;&#039;bis auf die ersten 2&#039;&#039;&#039;, nach dem Trennblatt ins Kind kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Zahl kann auch negativ sein; In diesem Falle werden X Blätter &#039;&#039;&#039;vor&#039;&#039;&#039; dem nächsten Trennblatt gelöscht.&lt;br /&gt;
&lt;br /&gt;
===Modus für Kinder===&lt;br /&gt;
[[Datei:child mode.png|500px]]&lt;br /&gt;
====Nichts tun====&lt;br /&gt;
Nichts tun ist aktuell keine Option! Es gibt einen Fehler und der aktuelle Arbeitsschritt wird gestoppt.&lt;br /&gt;
====Kinder erstellen====&lt;br /&gt;
Wählen Sie die Option &amp;quot;Kinder erstellen&amp;quot;, wird für jedes Trennblatt ein neues Kind erstellt.&lt;br /&gt;
&lt;br /&gt;
====Daten bestehendem Kind zuordnen====&lt;br /&gt;
Wählen Sie diese Option, falls ein bestimmtes Objekt gesucht werden soll, welches die getrennten Daten erhält. Gesucht wird nach dem Typ des Objektes sowie der definierten Signatur. Wird kein passendes Objekt gefunden, gibt es einen Fehler. Das gefundene Objekt wird danach automatisch zum Kind vom Haupt-Objekt.&lt;br /&gt;
=====Typ der Kinder=====&lt;br /&gt;
* Welchen Typ sollen die neu erstellten Kinder erhalten?&lt;br /&gt;
* Von welchem Typ sollen die gesuchten Kinder sein?&lt;br /&gt;
=====Signatur der Kinder=====&lt;br /&gt;
Hier definieren Sie eine Omnisformel, welche beim erstellen evaluiert wird und die Signatur des neuen Kindes definiert. Oder aber es definiert die Signatur des zu findenden Objektes (Je nach der Konfiguration &amp;quot;Modus für Kinder&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für alle &amp;quot;Kinder-Modus&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Eine Liste der Omnisfunktionen finden Sie hier: [https://helper.ch/wiki/index.php?title=Omnisgrundlagen]&amp;lt;br&amp;gt;&lt;br /&gt;
* Es ist möglich Attribute des Vaters zu evaluieren (&amp;quot;[Attributname]&amp;quot;) &lt;br /&gt;
* Es ist möglich der Ahnen des Vaters zu evaluieren (&amp;quot;[^Attributname]&amp;quot; für jede Generation nach oben ein &amp;quot;^&amp;quot; mehr)&lt;br /&gt;
* Es ist möglich via OCR nach Text auf der Seite zu suchen und diesen zu evaluieren (&amp;quot;[OCR-Treffer=&#039;&amp;lt;Wort&amp;gt;&#039;+/-&amp;lt;Treffer Offset&amp;gt;]&amp;quot;)&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSignatur] zu verwenden (Signatur des aktuellen DO / Vater der Kinder)&lt;br /&gt;
* Es ist möglich den Platzhalter [BarcodeValue] zu verwenden (Den Wert des Barcodes)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Kinder erstellen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOKindNr] zu verwenden (Laufnummer des Kindes -&amp;gt; Das wievielte Kind bin ich?)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Für den Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; brauchbar:&#039;&#039;&#039;&lt;br /&gt;
* Es ist möglich den Platzhalter [DOSEQ=BarcodeValue] &#039;&#039;&#039;ALLEINE&#039;&#039;&#039; zu verwenden (Sucht das Kind basierend auf der DOSEQ im BarcodeValue und &#039;&#039;&#039;nicht&#039;&#039;&#039; nach der Signatur!)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* con(&#039;Buch_&#039;,[Jahr]) ==&amp;gt; Attribut &amp;quot;Jahr&amp;quot; des aktuellen DO wird eigesetzt ==&amp;gt; Mögliche Resultate: Buch_1999 / Buch_2018&lt;br /&gt;
* con(&#039;Ordner_&#039;,[^Farbe])&amp;quot; ==&amp;gt; Attribut &amp;quot;Farbe&amp;quot; des Vaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Ordner_grün, Ordner_Blau&lt;br /&gt;
* con(&#039;Kalender_&#039;,[^^Grösse],&#039;_gebunden&#039;)&amp;quot; ==&amp;gt; Attribut &amp;quot;Grösse&amp;quot; des Grossvaters des aktuellen DO wird eingesetzt ==&amp;gt; Mögliche Resultate: Kalender_200cm_gebunden&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Nr.&amp;quot;+1]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Nr.&amp;quot; gesucht und das &#039;&#039;&#039;Folgewort&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;Personen&amp;quot;+3]) ==&amp;gt; Es wird auf der Seite nach dem ersten Vorkommen von &amp;quot;Personen&amp;quot; gesucht und das &#039;&#039;&#039;3. Wort nach Personen&#039;&#039;&#039; eingesetzt&lt;br /&gt;
* con(&#039;Buch_&#039;,[OCR-Treffer=&amp;quot;[0-9][0-9]&amp;quot;-2]) ==&amp;gt; Es wird auf der Seite nach der ersten 2 stelligen Zahl (21, 00, 11) gesucht und das &#039;&#039;&#039;2. Wort vor dieser Zahl&#039;&#039;&#039; eingesetzt&lt;br /&gt;
&lt;br /&gt;
====Objekte müssen bereits Kinder sein====&lt;br /&gt;
Hier können Sie definieren ob irgend ein Objekt mit der gewünschten Signatur gesucht werden soll, oder ob dieses &#039;&#039;&#039;bereits&#039;&#039;&#039; ein Kind des Hauptobjektes sein &#039;&#039;&#039;muss&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nein = Irgend ein Objekt wird gesucht mit der gewünschten Signatur&lt;br /&gt;
Ja = Es werden nur bestehende Kinder mit der gewünschten Signatur gesucht&lt;br /&gt;
&lt;br /&gt;
====Dateinamen der Kinder für die Belegzuordnung vorbereiten====&lt;br /&gt;
&lt;br /&gt;
Dieses Option ist Pflicht für eine anschliessende Belegzuordnung.&lt;br /&gt;
Falls einer der nächsten Arbeitsschritte eine Belegzuordnung sein wird, dann müssen die Dateinamen der bereits zugeordneten Dateien entsprechend der Namenskonvention des Belegzuordungsfenster geändert werden.&lt;br /&gt;
Ansonst wird das Belegzordnungsfenster nicht mit den Dateinamen umgehen können und daher nicht verwendbar sein.&lt;br /&gt;
&lt;br /&gt;
==Fehler handling==&lt;br /&gt;
Grundsätzlich stoppt der Job falls ein unerwarteter Umstand auftritt (Fehler beim aktualisieren von Daten, falsche Konfiguration). Ist der Kind-Modus &amp;quot;Daten bestehendem Objekt zuordnen&amp;quot; ausgewählt und es gibt Trennblätter wofür kein passendes Objekt gefunden wurde, arbeitet der Job einfach weiter.&lt;br /&gt;
&lt;br /&gt;
===Produktionsauftrag 20P0010===&lt;br /&gt;
Bei diesem Auftrag werden &amp;quot;]&amp;quot; welche aus dem OCR gelesen wurden durch &amp;quot;1&amp;quot; ersetzt. Diese Anpassung ist nötig, da das GDPicture OCR die Schreibmaschinen Eins als eckige Klammer interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_BARCODETYP    &#039;&#039;Welcher Barcodetyp soll geprüft werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT   &#039;&#039;Nach welchem Wert soll im Barcode gesucht werden, damit die Seite ein Trennblatt wird?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEFILEWEG   &#039;&#039;Wieviele Files nach dem Barcodeblatt sollen gelöscht werden?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODE1WEG   &#039;&#039;0 = Trennblatt wird nicht ins Kind kopiert 1 = Trennblatt wird ins Kind kopiert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Eine Omnisformel welche evaluiert wird und danach als Signatur für neue Kinder verwendet wird, oder aber mit der bestehende Kinder gesucht werden&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_HASHTYP    &#039;&#039;0 = Es wird nach Barcodes gesucht 1 = Es wird nach OCR-Text gesucht 2 = Es wird mit einer Dateivorlage verglichen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENVORHERLOSCHEN    &#039;&#039;0 = Erste Seite muss ein Trennblatt sein 1 = Alle Seiten bis zum ersten Trennblatt werden ignoriert&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN    &#039;&#039;Modus für Kinder: 0 = Nichts tun 1 = Kinder erstellen 2 = Daten bestehendem Kind zuordnen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ1    &#039;&#039;Sequenznummer des Objekttypes welche die Kinder haben sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_KINDERVERDOPPELN.  &#039;&#039;0 = Objekt muss kein Kind vom Haupt DO sein 1 = Objekt muss bereits ein Kind des Haupt DO sein&lt;br /&gt;
&lt;br /&gt;
  HZ_EXPORTFILETYP   &#039;&#039;0 = Die Dateinamen bleiben bestehen  1 = Die Dateinamen der den Kindesobjekte zugeordneten Dateien werden für die benötigte Nameskonvention bereits zugeordneter Belege im Belegzuordnungsfenster angepasst.&lt;br /&gt;
&lt;br /&gt;
  HZ_WORDERSETZEN   &#039;&#039;Regex nach dem getrennt werden soll im Fall &#039;Trennen nach OCR-Text&#039; &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
  HZ_WARTEDAUER   &#039;&#039;Grenzwert für Suche nach OCR-Score&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Erlaubte Werte:&lt;br /&gt;
Es soll ein regulärer Ausdruck angegeben werden, um nur die erlaubten Worte zuzulassen.&lt;br /&gt;
&lt;br /&gt;
In Wikipedia befindet sich eine genaue Erklärung dazu: https://de.wikipedia.org/wiki/Regulärer_Ausdruck#Reguläre_Ausdrücke_in_der_Praxis&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Das Format der Barcodewerte wäre zum Beispiel: AB1234&lt;br /&gt;
  Dann wird Folgendes für den Barcodewert angegeben: [A-Z][A-Z][0-9][0-9][0-9][0-9]&lt;br /&gt;
Wenn der Anfang der Barcodes immer fix AB wäre, dann kann man stattdessen Folgendes angeben: [A][B][0-9][0-9][0-9][0-9]&lt;br /&gt;
&lt;br /&gt;
Damit ist es fix, dass nur AB am Anfang zugelassen wird. Sonst wäre alles zwischen A-Z erlaubt.&lt;br /&gt;
&lt;br /&gt;
Auf https://guides.gdpicture.com/content/GdPicture.NET.14~GdPicture14.Barcode1DReaderType.html stehen die Barcodetypen von GdPicture und deren Werte.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag==&lt;br /&gt;
&lt;br /&gt;
[[File:barcode.png|400px]][[File:barcodeOCR.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:Bildschirmfoto_2026-05-04_um_11.39.36.png&amp;diff=9464</id>
		<title>Datei:Bildschirmfoto 2026-05-04 um 11.39.36.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Bildschirmfoto_2026-05-04_um_11.39.36.png&amp;diff=9464"/>
		<updated>2026-05-04T09:40:30Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Anzahl Trennblätter&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
</feed>