<?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-04-17T15:23:33Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9455</id>
		<title>KI Bearbeitung</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=KI_Bearbeitung&amp;diff=9455"/>
		<updated>2026-04-16T13:10:18Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Erster Eintrag zum neuen Job&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 LLM&#039;s - über Prompt gesteuerte Anweisungen. Es werden PDF Dateien sowie JPEG und PNG Bilddateien unterstützt.&lt;br /&gt;
Es können verschiedene Anbieter und API Schnittstellen angesprochen werden, Online oder in lokaler Infrastruktur. Generell wird die OpenAI API in der neuesten Version empfohlen. Die meisten Anbieter unterstützen diese.&lt;br /&gt;
Der Serverjob macht genau einen Aufruf mit einer Anfrage. Es gibt einen Sytstem-Prompt und einen User-Prompt, welcher generell als der Chatprompt bei Chatbasierten LLM Applikationen.&lt;br /&gt;
Der System-Prompt hat mehr Gewicht als der User-Prompt. Über diesen wird die KI als Werkzeug definiert und in ihrem Verhalten instruiert und eingeschränkt. Der User-Prompt macht dann nur noch eine spezifische Anfrage.&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;/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=9454</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=9454"/>
		<updated>2026-04-14T08:25:48Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &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;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Filetest&amp;diff=9440</id>
		<title>Filetest</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Filetest&amp;diff=9440"/>
		<updated>2026-02-20T13:15:38Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Konfiguration FileAnzahl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1526&lt;br /&gt;
&lt;br /&gt;
  1822&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  18&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Besteht aus einem Serverjob OJOHZDOFiletest. Überprüft die Files auf ihre Richtigkeit. Das Ergebnis (0/1) kann in einem Attribut gespeichert werden. Falls ein Test fehlschlägt geht das Objekt zu zum roten Ausgang und im Fehlertext steht, welche Bedingung(en) nicht erfüllt wurde(n).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grundsätzlich sind hier keine Formeln für die Werte möglich, mit Ausnahme:&#039;&#039;&#039; &#039;&#039;FileAnzahl&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Konfiguration FileAnzahl===&lt;br /&gt;
Bei diesem Test werden die &#039;&#039;&#039;Dateien und Ordner&#039;&#039;&#039; im auf oberster Ebene im Objektordner gezählt. Die Dateien in (Unter-)Ordnern zählen nicht. Der Ordner &#039;Hilfsobjekte&#039; zählt auch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Speziallfall:&#039;&#039;&#039; Die Anzahl kann über die Operatoren &amp;quot;=&amp;quot; und &amp;quot;&amp;lt;&amp;gt;&amp;quot; mit dem Wert &amp;quot;G&amp;quot; oder &amp;quot;H&amp;quot; die Parität (Gerade / ungerade Anzahl Dateien und Ordner) vergleichen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FileTestParität.png|Beispiel für Paritätstest]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zugriff auf Metadaten des Objektes, bzw. das einsetzen von Formel sind für diesen Test erlaubt.&#039;&#039;&#039; &#039;&#039;Das Metadatum ist wie üblich in eckigen Klammern zu nennen: [MetadatumMitAnzahl]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Konfiguration FileTyp===&lt;br /&gt;
Bei diesem Test wird jedes File im Objektordner mit konfigurierten Filetyp verglichen. Ordner werden (natürlich) nicht verglichen. Files in Unterordnern werden nur getestet, wenn &#039;Rekursiv&#039; angekreuzt ist. &lt;br /&gt;
&lt;br /&gt;
===Konfiguration BildformatXY===&lt;br /&gt;
Bei diesem Test können beide Seiten des Bildformats (X und Y) berücksichtigt werden.&lt;br /&gt;
*Operator Codes können sein (&amp;gt;, *&amp;gt;, &amp;gt;&amp;gt;, *&amp;gt;&amp;gt;) Bzw. die Varianten für kleiner (&amp;lt;) und gleich (=)&lt;br /&gt;
*&amp;gt;,= wenn eine Seite grösser/gleich als ihr entsprechender Maximalwert (xi &amp;gt; xs) | (yi &amp;gt; ys)&lt;br /&gt;
*&amp;gt;&amp;gt;,== wenn beide Seiten grösser / gleich wie der entsprechende Maximalwert (xi &amp;gt; xs) &amp;amp; (yi &amp;gt; ys)&lt;br /&gt;
* *&amp;gt;, *= wenn mindestens eine beliebige Seite grösser / gleich ist wie ein beliebiger Maximalwert&lt;br /&gt;
* *&amp;gt;&amp;gt;, *== wenn je beide Seiten grösser / gleich wie ein beliebiger Maximalwert sind (Bildausrichtung gleich oder gedreht)&lt;br /&gt;
Der Vergleichswert wird geschrieben: 2000x3000&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Farbraum===&lt;br /&gt;
Bei diesem Test wird der Farbraum aus dem File gelesen. Typische Werte sind &#039;Gray&#039; oder &#039;sRGB&#039;. Bitte achten Sie auf Grosskleinschreibung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration Positions SW Histogramm ===&lt;br /&gt;
Bei diesem Test wird ein Histogramm in einem PDF / Bild generiert basierend auf einer bestimmten Position sowie einem Grössenbereich.&lt;br /&gt;
Grundsätzlich wird immer von links oben aus gerechnet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Parameter = Seite - zB 4 (Wird nur bei PDF&#039;s verwendet)&amp;lt;br&amp;gt;&lt;br /&gt;
2. Parameter = Position X - zB 250 oder -150 (Bei Bildern in Pixel, bei PDF&#039;s in mm / Negative Zahlen werden von Rechts statt Links aus gerechnet)&amp;lt;br&amp;gt;&lt;br /&gt;
3. Parameter = Position Y - zB 300 oder - 200 (Bei Bildern in Pixel, bei PDF&#039;s in mm / Negative Zahlen werden von Unten statt Oben aus gerechnet)&amp;lt;br&amp;gt;&lt;br /&gt;
4. Parameter = Breite - zB 500 oder 25 % (Entweder Prozentangabe oder bei Bildern in Pixel, bei PDF&#039;s in mm)&amp;lt;br&amp;gt;&lt;br /&gt;
5. Parameter = Höhe - zB 200 oder 15 % (Entweder Prozentangabe oder bei Bildern in Pixel, bei PDF&#039;s in mm)&amp;lt;br&amp;gt;&lt;br /&gt;
6. Parameter = Helligkeitsgrenzwert - zB 150 (Werte von 0 - 255, wobei 0=Schwarz / 255 = Weiss)&amp;lt;br&amp;gt;&lt;br /&gt;
7. Parameter = Prozent - zB 35% (Wie viel Prozent der Pixel müssen über oder unter der angegeben Helligkeit sein)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier ein komplettes Beispiel: &amp;quot;1,100,-150,140,5%,200,30%&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
*Es wird Seite 1 gemessen (falls es um ein PDF geht)&lt;br /&gt;
*Es wird der folgende Bildausschnitt genommen: Annahme das Bild ist 1000x500px gross&lt;br /&gt;
** Linke obere Ecke: 100/350 px. (350=500-150)&lt;br /&gt;
** Grösse des Ausschnitts: 140x25 px. (25=5% von 500)&lt;br /&gt;
** Rechte untere Ecke: 240/375 px.&lt;br /&gt;
*Es wird folgende Formel evaluiert:&lt;br /&gt;
  (Pixelheller (als Grauwert 200) / TotaleAnzahlPixel) &amp;gt; oder &amp;lt; Prozent (30%).&lt;br /&gt;
Es werden also immer die helleren Pixel als der Helligkeitsgrenzwert gezählt und durch die totale Anzahl Pixel geteilt. Das Ergebnis wird mit dem Prozentsatz verglichen.&lt;br /&gt;
Falls ein Wert nicht angegeben werden soll muss das Komma dennoch da stehen. Beispiel ohne die Angabe der Seite: &amp;quot;,100,-150,140,5%,200,30%&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
==== Beispiele Bildausschnitt====&lt;br /&gt;
* Das ganze Bild (Seite 1) soll gemessen werden: &amp;quot;1,1,1,100%,100%...&amp;quot;&lt;br /&gt;
* Links oben in der Ecke soll ein Quadrat von 100px gemessen werden: &amp;quot;1,1,1,100,100...&amp;quot;&lt;br /&gt;
==== Beispiele Helligkeit====&lt;br /&gt;
* Es darf fast keine (fast) schwarzen Pixel haben: &amp;gt; &amp;quot;...20, 98%&amp;quot; -&amp;gt; mehr als 98% der Pixel sollen heller sein als fast schwarz (Grauwert 20)&lt;br /&gt;
* Es soll fast ganz weiss sein: &amp;gt; &amp;quot;...240, 99%&amp;quot; -&amp;gt; 99% der Pixel sollen heller als der Grauwert 240 sein (fast weiss)&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration Ist Extrem ===&lt;br /&gt;
Bei diesem Test wird jedes DO geprüft ob es nach der konfigurierten Weise extrem ist.&lt;br /&gt;
&lt;br /&gt;
1. Parameter = Sortierfeld - Dieser Wert wird aufs &amp;quot;Extrem sein&amp;quot; geprüft. Muss ein AT-Name sein&amp;lt;br&amp;gt;&lt;br /&gt;
2. Parameter = Selektionsfeld - Es werden nur DOs berücksichtig die den gleichen Wert im Selektionsfeld haben wie das DO welches gerade angeschaut wird. Muss ein AT-Name sein. Falls leer wird DO_DO_SEQ automatisch verwendet.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Parameter = Menge - Ab wann wird ein DO als Extrem beachtet? zB. 10&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier ein komplettes Beispiel: &amp;quot;seitenanzahl,pdfname,10&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
Ist das DO in den Top 10 mit den Seitenzahlen verglichen mit allen DOs welche denselben PDF Namen haben?&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Pixeltiefe pro Kanal===&lt;br /&gt;
Bei diesem Test wird die Anzahl Pixel pro Kanal aus dem File gelesen. Typische Werte sind 8 oder 16.&lt;br /&gt;
&lt;br /&gt;
===Konfiguration ICC Profile===&lt;br /&gt;
Bei diesem Test wird aus dem File die Zeile icc:description gefiltert und der Text danach herausgelesen. Ein typischer Wert ist &#039;Adobe RGB (1998)&#039;.&lt;br /&gt;
&lt;br /&gt;
Sie können das Feld bei einem Bild auch auslesen:&lt;br /&gt;
  identify -verbose &amp;quot;Pfad zum Bild&amp;quot;&lt;br /&gt;
Suchen Sie nach der Zeile &#039;icc:description&#039;&lt;br /&gt;
&lt;br /&gt;
===Dateigrösse===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wird eine Dateigrösse in Bytes geprüft.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (&amp;gt;,&amp;lt;).&lt;br /&gt;
&lt;br /&gt;
===SeitenAnzahl===&lt;br /&gt;
&lt;br /&gt;
Bei diese Test wird die Anzahl Seiten in einem PDF oder TIFF Dokument geprüft. &lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (&amp;gt;,&amp;lt;,=,&amp;lt;&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Anzahl Barcodes in Ordner===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wir die Anzahl Barcodes eines bestimmten Typs mit einem bestimmten Wert im gesamten Ordner getestet.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (&amp;gt;,&amp;lt;,=,&amp;lt;&amp;gt;,&amp;lt;=, &amp;gt;=).&lt;br /&gt;
&lt;br /&gt;
Wertkonfiguration: Anzahl Barcodes,Barcodewert,Barcodetyp&lt;br /&gt;
&lt;br /&gt;
Beispiel: 2,ABC1234,Code 39&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Pixeltiefe pro Kanal===&lt;br /&gt;
Bei diesem Test wird die Anzahl Pixel pro Kanal aus dem File gelesen. Typische Werte sind 8 oder 16.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Metadaten von Bildformaten==&lt;br /&gt;
&lt;br /&gt;
Für die unten folgenden Konfigurationen kann für die gesuchten Werte auf diese Auflistungen von TAG Namen zurückgegriffen werden: &lt;br /&gt;
&lt;br /&gt;
[https://www.exiftool.org/TagNames/ TAG Übersicht]&lt;br /&gt;
&lt;br /&gt;
[https://www.exiftool.org/TagNames/EXIF.html EXIF Tags]&lt;br /&gt;
&lt;br /&gt;
[https://www.exiftool.org/TagNames/IPTC.html IPTC Tags]&lt;br /&gt;
&lt;br /&gt;
[https://www.exiftool.org/TagNames/XMP.html XMP Tags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Suche nach leeren Tags&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
Falls nach leeren, bzw. fehlenden Werten gesucht werden soll, dann ist der Wertebereicht nach dem Komma leer zu lassen.&lt;br /&gt;
&lt;br /&gt;
Bsp.: Kein Änderungsdatum vorhanden&lt;br /&gt;
&lt;br /&gt;
[[Datei:Metadatum Datum leer.png]] &lt;br /&gt;
&lt;br /&gt;
===Konfiguration Metadatum Text===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wird ein TAG mit Textinhalt verglichen.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (=, &amp;lt;&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Bsp.: Gesucht wird der Hersteller des Aufnahmegerätes. Der entsprechende TAG heisst &#039;Make&#039;. Der gesuchte Wert soll auf &#039;Canon&#039; lauten.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Metadatum Text.png]]&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Metadatum Zahl===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wird ein TAG mit Zahleninhalt verglichen.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (=, &amp;lt;&amp;gt;, &amp;gt;, &amp;gt;=, &amp;lt;, &amp;lt;=)&lt;br /&gt;
&lt;br /&gt;
Bsp.: Gesucht wird nach der X Auflösung des Bildes. Der entsprechende TAG heisst &#039;XResolution&#039;. Der gesuchte Wert soll grösser oder gleich 3500 sein.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Metadatum Zahl.png]]&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Metadatum Datum===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wird ein TAG mit Datumsinhalt verglichen.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (=, &amp;lt;&amp;gt;, &amp;gt;, &amp;gt;=, &amp;lt;, &amp;lt;=)&lt;br /&gt;
&lt;br /&gt;
Bsp.: Gesucht wird dem Änderungsdatum. Der entsprechende TAG heisst &#039;DateModify&#039;. Der gesuchte Wert soll nach dem 23.03.2021 08:05:14 liegen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Metadatum Datum.png]]&lt;br /&gt;
&lt;br /&gt;
==Dateien auch in den Unterordnern prüfen==&lt;br /&gt;
&lt;br /&gt;
Soll auch in Unterordner geprüft werden, ist folgende Checkbox zu aktivieren:&lt;br /&gt;
&lt;br /&gt;
[[File:filetest_rekursiv.png]]&lt;br /&gt;
&lt;br /&gt;
Der Filetest beim Abschliessen eines clientseitigen Arbeitsschrittes ist nicht rekursiv.&lt;br /&gt;
&lt;br /&gt;
== Dateinamen auf Regex überprüfen ==&lt;br /&gt;
Sie können den Dateinamen mithilfe eines Regex überprüfen lassen.&lt;br /&gt;
Wählen Sie dazu die Kondition &amp;quot;Dateiname&amp;quot; und den Operator &amp;quot;entspricht Regex&amp;quot;, dann &#039;&#039;&#039;muss jedes File&#039;&#039;&#039; im Objektordner dem Regex entsprechen.&lt;br /&gt;
Wenn Sie &amp;quot;entspricht nicht Regex&amp;quot; wählen, dann &#039;&#039;&#039;darf kein File&#039;&#039;&#039; dem Regex entsprechen.&lt;br /&gt;
&lt;br /&gt;
Tool um Regex zu schreiben: https://regex101.com&lt;br /&gt;
&lt;br /&gt;
[[Datei:Filetest regexmatching.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Barcodes finden==&lt;br /&gt;
&lt;br /&gt;
Ermittelt, ob die Seiten einen Barcode besitzen. Ein bestimmer Suchwert für den Inhalt des Barcodes kann ebenfalls als Einschränkung mitgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Kann alle Seiten, oder nur die geraden, oder nur die ungeraden prüfen. Wenn wir hier von Seiten sprechen, dann sind damit einzelne Dateien gemeint, welche in der Regel eine einzelne Seite darstellen. Die Reihenfolge der nach Namen sortierten Dateien im Dateisystem legt dabei die Seitenzahl fest. Die erste Datei - Sortiernummer 1 - entspricht demnach einer ungeraden Seite. Datei achte Datei - Sortiernummer 8 - einer geraden Seite.&lt;br /&gt;
&lt;br /&gt;
Unterstüzte Dateitypen - alle gängigen Bildformate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attribut:&#039;&#039;&#039; SeiteHatBarcodes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Operator Code:&#039;&#039;&#039;  ( = )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wert:&#039;&#039;&#039; A/U/G/[Zahl]&#039;&#039;&#039;,&#039;&#039;&#039;Barcodeinhalt,Barcodetyp&lt;br /&gt;
&lt;br /&gt;
*A = alle Seiten (es muss auf allen Seiten einen Barcode haben)&lt;br /&gt;
*U = ungerade Seiten (es darf nur auf ungeraden Seiten barcodes haben. Es muss aber nicht auf allen ungeraden Seiten Barcodes haben)&lt;br /&gt;
*G = gerade Seiten (es darf nur auf geraden Seiten barcodes haben. Es muss aber nicht auf allen geraden Seiten Barcodes haben)&lt;br /&gt;
*[Zahl] = zB. 5 =&amp;gt; Hat es auf der 5. Seite einen Barcode?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bsp.:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1) Suche auf ungeraden Seiten nach einem Barcode: &#039;&#039;&#039;Wert = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2) Suche auf geraden Seiten (2) nach einem Barcode mit dem Wert 0783A-123: &#039;&#039;&#039;Wert = 2,0783A-123&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Die Suche nach einem Wert funktioniert aktuell nur für den ersten gefundenen Barcode! Wenn es mehrere Barcodes auf der Seite gibt, wird jeweils der erste Ausgewertet.&lt;br /&gt;
&lt;br /&gt;
Falls eine Zahl angegeben wird, kann der Barcodetyp definiert werden. In der anderen Fällen ist der Parameter nicht implementiert. Ebenfalls kann der Wert ein Regex sein, sofern eine Zahl definiert ist.&lt;br /&gt;
&lt;br /&gt;
==Unsichtbare Dateien==&lt;br /&gt;
File test prüft auch unsichtbare/geschützte Systemdateien wie Thumps.db. Dies ist Absicht, damit verhindert werden kann, dass diese Dateien weiter im Workflow gehen. Damit Sie die unsichtbaren/geschützen Systemdateien sehen (und ggf. löschen) können, müssen Sie sie in Windows sichtbar machen:&lt;br /&gt;
* Für geschützte Systemdateien: Deselektieren Sie &#039;Ordneroptionen: Ansicht: Erweiterte Einstellungen: Geschützte Systemdateien ausblenden&#039;&lt;br /&gt;
* Für unsichtbare Dateien: Im Befehlsband: &#039;Ansicht&#039;, &#039;unsichtbare Dateien&#039;&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  AR_FILETEST, HZ_FILETEST   &#039;&#039;Code kTab Attribut kTab Operator kTab Wert(e) kCR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_TESTERGEBNIS&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag (FHK_Maske)==&lt;br /&gt;
&lt;br /&gt;
[[File:0.jpg]]&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=Filetest&amp;diff=9439</id>
		<title>Filetest</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Filetest&amp;diff=9439"/>
		<updated>2026-02-20T13:15:24Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3596 /* Konfiguration FileAnzahl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1526&lt;br /&gt;
&lt;br /&gt;
  1822&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  18&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Besteht aus einem Serverjob OJOHZDOFiletest. Überprüft die Files auf ihre Richtigkeit. Das Ergebnis (0/1) kann in einem Attribut gespeichert werden. Falls ein Test fehlschlägt geht das Objekt zu zum roten Ausgang und im Fehlertext steht, welche Bedingung(en) nicht erfüllt wurde(n).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grundsätzlich sind hier keine Formeln für die Werte möglich, mit Ausnahme:&#039;&#039;&#039; &#039;&#039;FileAnzahl&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Konfiguration FileAnzahl===&lt;br /&gt;
Bei diesem Test werden die &#039;&#039;&#039;Dateien und Ordner&#039;&#039;&#039; im auf oberster Ebene im Objektordner gezählt. Die Dateien in (Unter-)Ordnern zählen nicht. Der Ordner &#039;Hilfsobjekte&#039; zählt auch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Speziallfall:&#039;&#039;&#039; Die Anzahl kann über die Operatoren &amp;quot;=&amp;quot; und &amp;quot;&amp;lt;&amp;gt;&amp;quot; mit dem Wert &amp;quot;G&amp;quot; oder &amp;quot;H&amp;quot; die Parität (Gerade / ungerade Anzahl Dateien und Ordner) vergleichen.&lt;br /&gt;
[[Datei:FileTestParität.png|Beispiel für Paritätstest]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zugriff auf Metadaten des Objektes, bzw. das einsetzen von Formel sind für diesen Test erlaubt.&#039;&#039;&#039; &#039;&#039;Das Metadatum ist wie üblich in eckigen Klammern zu nennen: [MetadatumMitAnzahl]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Konfiguration FileTyp===&lt;br /&gt;
Bei diesem Test wird jedes File im Objektordner mit konfigurierten Filetyp verglichen. Ordner werden (natürlich) nicht verglichen. Files in Unterordnern werden nur getestet, wenn &#039;Rekursiv&#039; angekreuzt ist. &lt;br /&gt;
&lt;br /&gt;
===Konfiguration BildformatXY===&lt;br /&gt;
Bei diesem Test können beide Seiten des Bildformats (X und Y) berücksichtigt werden.&lt;br /&gt;
*Operator Codes können sein (&amp;gt;, *&amp;gt;, &amp;gt;&amp;gt;, *&amp;gt;&amp;gt;) Bzw. die Varianten für kleiner (&amp;lt;) und gleich (=)&lt;br /&gt;
*&amp;gt;,= wenn eine Seite grösser/gleich als ihr entsprechender Maximalwert (xi &amp;gt; xs) | (yi &amp;gt; ys)&lt;br /&gt;
*&amp;gt;&amp;gt;,== wenn beide Seiten grösser / gleich wie der entsprechende Maximalwert (xi &amp;gt; xs) &amp;amp; (yi &amp;gt; ys)&lt;br /&gt;
* *&amp;gt;, *= wenn mindestens eine beliebige Seite grösser / gleich ist wie ein beliebiger Maximalwert&lt;br /&gt;
* *&amp;gt;&amp;gt;, *== wenn je beide Seiten grösser / gleich wie ein beliebiger Maximalwert sind (Bildausrichtung gleich oder gedreht)&lt;br /&gt;
Der Vergleichswert wird geschrieben: 2000x3000&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Farbraum===&lt;br /&gt;
Bei diesem Test wird der Farbraum aus dem File gelesen. Typische Werte sind &#039;Gray&#039; oder &#039;sRGB&#039;. Bitte achten Sie auf Grosskleinschreibung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration Positions SW Histogramm ===&lt;br /&gt;
Bei diesem Test wird ein Histogramm in einem PDF / Bild generiert basierend auf einer bestimmten Position sowie einem Grössenbereich.&lt;br /&gt;
Grundsätzlich wird immer von links oben aus gerechnet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Parameter = Seite - zB 4 (Wird nur bei PDF&#039;s verwendet)&amp;lt;br&amp;gt;&lt;br /&gt;
2. Parameter = Position X - zB 250 oder -150 (Bei Bildern in Pixel, bei PDF&#039;s in mm / Negative Zahlen werden von Rechts statt Links aus gerechnet)&amp;lt;br&amp;gt;&lt;br /&gt;
3. Parameter = Position Y - zB 300 oder - 200 (Bei Bildern in Pixel, bei PDF&#039;s in mm / Negative Zahlen werden von Unten statt Oben aus gerechnet)&amp;lt;br&amp;gt;&lt;br /&gt;
4. Parameter = Breite - zB 500 oder 25 % (Entweder Prozentangabe oder bei Bildern in Pixel, bei PDF&#039;s in mm)&amp;lt;br&amp;gt;&lt;br /&gt;
5. Parameter = Höhe - zB 200 oder 15 % (Entweder Prozentangabe oder bei Bildern in Pixel, bei PDF&#039;s in mm)&amp;lt;br&amp;gt;&lt;br /&gt;
6. Parameter = Helligkeitsgrenzwert - zB 150 (Werte von 0 - 255, wobei 0=Schwarz / 255 = Weiss)&amp;lt;br&amp;gt;&lt;br /&gt;
7. Parameter = Prozent - zB 35% (Wie viel Prozent der Pixel müssen über oder unter der angegeben Helligkeit sein)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier ein komplettes Beispiel: &amp;quot;1,100,-150,140,5%,200,30%&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
*Es wird Seite 1 gemessen (falls es um ein PDF geht)&lt;br /&gt;
*Es wird der folgende Bildausschnitt genommen: Annahme das Bild ist 1000x500px gross&lt;br /&gt;
** Linke obere Ecke: 100/350 px. (350=500-150)&lt;br /&gt;
** Grösse des Ausschnitts: 140x25 px. (25=5% von 500)&lt;br /&gt;
** Rechte untere Ecke: 240/375 px.&lt;br /&gt;
*Es wird folgende Formel evaluiert:&lt;br /&gt;
  (Pixelheller (als Grauwert 200) / TotaleAnzahlPixel) &amp;gt; oder &amp;lt; Prozent (30%).&lt;br /&gt;
Es werden also immer die helleren Pixel als der Helligkeitsgrenzwert gezählt und durch die totale Anzahl Pixel geteilt. Das Ergebnis wird mit dem Prozentsatz verglichen.&lt;br /&gt;
Falls ein Wert nicht angegeben werden soll muss das Komma dennoch da stehen. Beispiel ohne die Angabe der Seite: &amp;quot;,100,-150,140,5%,200,30%&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
==== Beispiele Bildausschnitt====&lt;br /&gt;
* Das ganze Bild (Seite 1) soll gemessen werden: &amp;quot;1,1,1,100%,100%...&amp;quot;&lt;br /&gt;
* Links oben in der Ecke soll ein Quadrat von 100px gemessen werden: &amp;quot;1,1,1,100,100...&amp;quot;&lt;br /&gt;
==== Beispiele Helligkeit====&lt;br /&gt;
* Es darf fast keine (fast) schwarzen Pixel haben: &amp;gt; &amp;quot;...20, 98%&amp;quot; -&amp;gt; mehr als 98% der Pixel sollen heller sein als fast schwarz (Grauwert 20)&lt;br /&gt;
* Es soll fast ganz weiss sein: &amp;gt; &amp;quot;...240, 99%&amp;quot; -&amp;gt; 99% der Pixel sollen heller als der Grauwert 240 sein (fast weiss)&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration Ist Extrem ===&lt;br /&gt;
Bei diesem Test wird jedes DO geprüft ob es nach der konfigurierten Weise extrem ist.&lt;br /&gt;
&lt;br /&gt;
1. Parameter = Sortierfeld - Dieser Wert wird aufs &amp;quot;Extrem sein&amp;quot; geprüft. Muss ein AT-Name sein&amp;lt;br&amp;gt;&lt;br /&gt;
2. Parameter = Selektionsfeld - Es werden nur DOs berücksichtig die den gleichen Wert im Selektionsfeld haben wie das DO welches gerade angeschaut wird. Muss ein AT-Name sein. Falls leer wird DO_DO_SEQ automatisch verwendet.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Parameter = Menge - Ab wann wird ein DO als Extrem beachtet? zB. 10&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier ein komplettes Beispiel: &amp;quot;seitenanzahl,pdfname,10&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
Ist das DO in den Top 10 mit den Seitenzahlen verglichen mit allen DOs welche denselben PDF Namen haben?&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Pixeltiefe pro Kanal===&lt;br /&gt;
Bei diesem Test wird die Anzahl Pixel pro Kanal aus dem File gelesen. Typische Werte sind 8 oder 16.&lt;br /&gt;
&lt;br /&gt;
===Konfiguration ICC Profile===&lt;br /&gt;
Bei diesem Test wird aus dem File die Zeile icc:description gefiltert und der Text danach herausgelesen. Ein typischer Wert ist &#039;Adobe RGB (1998)&#039;.&lt;br /&gt;
&lt;br /&gt;
Sie können das Feld bei einem Bild auch auslesen:&lt;br /&gt;
  identify -verbose &amp;quot;Pfad zum Bild&amp;quot;&lt;br /&gt;
Suchen Sie nach der Zeile &#039;icc:description&#039;&lt;br /&gt;
&lt;br /&gt;
===Dateigrösse===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wird eine Dateigrösse in Bytes geprüft.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (&amp;gt;,&amp;lt;).&lt;br /&gt;
&lt;br /&gt;
===SeitenAnzahl===&lt;br /&gt;
&lt;br /&gt;
Bei diese Test wird die Anzahl Seiten in einem PDF oder TIFF Dokument geprüft. &lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (&amp;gt;,&amp;lt;,=,&amp;lt;&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Anzahl Barcodes in Ordner===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wir die Anzahl Barcodes eines bestimmten Typs mit einem bestimmten Wert im gesamten Ordner getestet.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (&amp;gt;,&amp;lt;,=,&amp;lt;&amp;gt;,&amp;lt;=, &amp;gt;=).&lt;br /&gt;
&lt;br /&gt;
Wertkonfiguration: Anzahl Barcodes,Barcodewert,Barcodetyp&lt;br /&gt;
&lt;br /&gt;
Beispiel: 2,ABC1234,Code 39&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Pixeltiefe pro Kanal===&lt;br /&gt;
Bei diesem Test wird die Anzahl Pixel pro Kanal aus dem File gelesen. Typische Werte sind 8 oder 16.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Metadaten von Bildformaten==&lt;br /&gt;
&lt;br /&gt;
Für die unten folgenden Konfigurationen kann für die gesuchten Werte auf diese Auflistungen von TAG Namen zurückgegriffen werden: &lt;br /&gt;
&lt;br /&gt;
[https://www.exiftool.org/TagNames/ TAG Übersicht]&lt;br /&gt;
&lt;br /&gt;
[https://www.exiftool.org/TagNames/EXIF.html EXIF Tags]&lt;br /&gt;
&lt;br /&gt;
[https://www.exiftool.org/TagNames/IPTC.html IPTC Tags]&lt;br /&gt;
&lt;br /&gt;
[https://www.exiftool.org/TagNames/XMP.html XMP Tags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Suche nach leeren Tags&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
Falls nach leeren, bzw. fehlenden Werten gesucht werden soll, dann ist der Wertebereicht nach dem Komma leer zu lassen.&lt;br /&gt;
&lt;br /&gt;
Bsp.: Kein Änderungsdatum vorhanden&lt;br /&gt;
&lt;br /&gt;
[[Datei:Metadatum Datum leer.png]] &lt;br /&gt;
&lt;br /&gt;
===Konfiguration Metadatum Text===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wird ein TAG mit Textinhalt verglichen.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (=, &amp;lt;&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Bsp.: Gesucht wird der Hersteller des Aufnahmegerätes. Der entsprechende TAG heisst &#039;Make&#039;. Der gesuchte Wert soll auf &#039;Canon&#039; lauten.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Metadatum Text.png]]&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Metadatum Zahl===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wird ein TAG mit Zahleninhalt verglichen.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (=, &amp;lt;&amp;gt;, &amp;gt;, &amp;gt;=, &amp;lt;, &amp;lt;=)&lt;br /&gt;
&lt;br /&gt;
Bsp.: Gesucht wird nach der X Auflösung des Bildes. Der entsprechende TAG heisst &#039;XResolution&#039;. Der gesuchte Wert soll grösser oder gleich 3500 sein.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Metadatum Zahl.png]]&lt;br /&gt;
&lt;br /&gt;
===Konfiguration Metadatum Datum===&lt;br /&gt;
&lt;br /&gt;
Bei diesem Test wird ein TAG mit Datumsinhalt verglichen.&lt;br /&gt;
&lt;br /&gt;
Operator Codes können sein (=, &amp;lt;&amp;gt;, &amp;gt;, &amp;gt;=, &amp;lt;, &amp;lt;=)&lt;br /&gt;
&lt;br /&gt;
Bsp.: Gesucht wird dem Änderungsdatum. Der entsprechende TAG heisst &#039;DateModify&#039;. Der gesuchte Wert soll nach dem 23.03.2021 08:05:14 liegen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Metadatum Datum.png]]&lt;br /&gt;
&lt;br /&gt;
==Dateien auch in den Unterordnern prüfen==&lt;br /&gt;
&lt;br /&gt;
Soll auch in Unterordner geprüft werden, ist folgende Checkbox zu aktivieren:&lt;br /&gt;
&lt;br /&gt;
[[File:filetest_rekursiv.png]]&lt;br /&gt;
&lt;br /&gt;
Der Filetest beim Abschliessen eines clientseitigen Arbeitsschrittes ist nicht rekursiv.&lt;br /&gt;
&lt;br /&gt;
== Dateinamen auf Regex überprüfen ==&lt;br /&gt;
Sie können den Dateinamen mithilfe eines Regex überprüfen lassen.&lt;br /&gt;
Wählen Sie dazu die Kondition &amp;quot;Dateiname&amp;quot; und den Operator &amp;quot;entspricht Regex&amp;quot;, dann &#039;&#039;&#039;muss jedes File&#039;&#039;&#039; im Objektordner dem Regex entsprechen.&lt;br /&gt;
Wenn Sie &amp;quot;entspricht nicht Regex&amp;quot; wählen, dann &#039;&#039;&#039;darf kein File&#039;&#039;&#039; dem Regex entsprechen.&lt;br /&gt;
&lt;br /&gt;
Tool um Regex zu schreiben: https://regex101.com&lt;br /&gt;
&lt;br /&gt;
[[Datei:Filetest regexmatching.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Barcodes finden==&lt;br /&gt;
&lt;br /&gt;
Ermittelt, ob die Seiten einen Barcode besitzen. Ein bestimmer Suchwert für den Inhalt des Barcodes kann ebenfalls als Einschränkung mitgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Kann alle Seiten, oder nur die geraden, oder nur die ungeraden prüfen. Wenn wir hier von Seiten sprechen, dann sind damit einzelne Dateien gemeint, welche in der Regel eine einzelne Seite darstellen. Die Reihenfolge der nach Namen sortierten Dateien im Dateisystem legt dabei die Seitenzahl fest. Die erste Datei - Sortiernummer 1 - entspricht demnach einer ungeraden Seite. Datei achte Datei - Sortiernummer 8 - einer geraden Seite.&lt;br /&gt;
&lt;br /&gt;
Unterstüzte Dateitypen - alle gängigen Bildformate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attribut:&#039;&#039;&#039; SeiteHatBarcodes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Operator Code:&#039;&#039;&#039;  ( = )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wert:&#039;&#039;&#039; A/U/G/[Zahl]&#039;&#039;&#039;,&#039;&#039;&#039;Barcodeinhalt,Barcodetyp&lt;br /&gt;
&lt;br /&gt;
*A = alle Seiten (es muss auf allen Seiten einen Barcode haben)&lt;br /&gt;
*U = ungerade Seiten (es darf nur auf ungeraden Seiten barcodes haben. Es muss aber nicht auf allen ungeraden Seiten Barcodes haben)&lt;br /&gt;
*G = gerade Seiten (es darf nur auf geraden Seiten barcodes haben. Es muss aber nicht auf allen geraden Seiten Barcodes haben)&lt;br /&gt;
*[Zahl] = zB. 5 =&amp;gt; Hat es auf der 5. Seite einen Barcode?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bsp.:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1) Suche auf ungeraden Seiten nach einem Barcode: &#039;&#039;&#039;Wert = 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2) Suche auf geraden Seiten (2) nach einem Barcode mit dem Wert 0783A-123: &#039;&#039;&#039;Wert = 2,0783A-123&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Die Suche nach einem Wert funktioniert aktuell nur für den ersten gefundenen Barcode! Wenn es mehrere Barcodes auf der Seite gibt, wird jeweils der erste Ausgewertet.&lt;br /&gt;
&lt;br /&gt;
Falls eine Zahl angegeben wird, kann der Barcodetyp definiert werden. In der anderen Fällen ist der Parameter nicht implementiert. Ebenfalls kann der Wert ein Regex sein, sofern eine Zahl definiert ist.&lt;br /&gt;
&lt;br /&gt;
==Unsichtbare Dateien==&lt;br /&gt;
File test prüft auch unsichtbare/geschützte Systemdateien wie Thumps.db. Dies ist Absicht, damit verhindert werden kann, dass diese Dateien weiter im Workflow gehen. Damit Sie die unsichtbaren/geschützen Systemdateien sehen (und ggf. löschen) können, müssen Sie sie in Windows sichtbar machen:&lt;br /&gt;
* Für geschützte Systemdateien: Deselektieren Sie &#039;Ordneroptionen: Ansicht: Erweiterte Einstellungen: Geschützte Systemdateien ausblenden&#039;&lt;br /&gt;
* Für unsichtbare Dateien: Im Befehlsband: &#039;Ansicht&#039;, &#039;unsichtbare Dateien&#039;&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  AR_FILETEST, HZ_FILETEST   &#039;&#039;Code kTab Attribut kTab Operator kTab Wert(e) kCR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_TESTERGEBNIS&lt;br /&gt;
&lt;br /&gt;
  HZ_FILEVERHALTEN&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag (FHK_Maske)==&lt;br /&gt;
&lt;br /&gt;
[[File:0.jpg]]&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:FileTestParit%C3%A4t.png&amp;diff=9438</id>
		<title>Datei:FileTestParität.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:FileTestParit%C3%A4t.png&amp;diff=9438"/>
		<updated>2026-02-20T13:14:29Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paritätsvergleich&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=9432</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=9432"/>
		<updated>2026-02-09T10:23:37Z</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 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;
==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 [DOSigantur] 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=9427</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=9427"/>
		<updated>2026-01-27T17:47:10Z</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;
==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 [DOSigantur] 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=9425</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=9425"/>
		<updated>2026-01-27T08:17:50Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Essentielle Felder */&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;
==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;
&#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;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&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 [DOSigantur] 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=9424</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=9424"/>
		<updated>2026-01-26T15:39:22Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Konfiguration für Trennblattvorlage */&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;
==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;
&#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;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&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 [DOSigantur] 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&#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   zukünftig &#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=9423</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=9423"/>
		<updated>2026-01-26T15:38:33Z</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 bereitgestellten Vorlagendatei&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 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;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&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 [DOSigantur] 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&#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   zukünftig &#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:Barcode_mode.png&amp;diff=9422</id>
		<title>Datei:Barcode mode.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Barcode_mode.png&amp;diff=9422"/>
		<updated>2026-01-23T16:35:37Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Barcode 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=Datei:Ocr_mode.png&amp;diff=9421</id>
		<title>Datei:Ocr mode.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Ocr_mode.png&amp;diff=9421"/>
		<updated>2026-01-23T16:35:23Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Ocr 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=9420</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=9420"/>
		<updated>2026-01-23T16:35:07Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Konfiguration Trennblattvorlage */&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;
Besteht aus einem Serverjob OJOHZDOBarcodeTrenner. Durchsucht den Ordner eines Objektes nach Trennblätter und erstellt für jedes Trennblatt ein Kind-Objekt und fügt die Bilder bis zum nächsten Trennblatt diesem Kind hinzu. Ein Trennblatt kann ein Barcode mit einem bestimmten Wert sein oder eine Seite welche einen bestimmten Text beinhaltet oder eine beliebige Seite mit Textinhalt, welche als Vorlagendatei zur verfügung gestellt wird.&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 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;
[[Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png|Konfiguration Trennblattvorlage]]&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 [DOSigantur] 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&#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   zukünftig &#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-01-23_um_17.32.41.png&amp;diff=9419</id>
		<title>Datei:Bildschirmfoto 2026-01-23 um 17.32.41.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Bildschirmfoto_2026-01-23_um_17.32.41.png&amp;diff=9419"/>
		<updated>2026-01-23T16:34:35Z</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=Barcodetrenner_-_Auftrennung_von_Objekten_nach_Barcodebl%C3%A4ttern_/_OCR-Text&amp;diff=9418</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=9418"/>
		<updated>2026-01-23T15:34:18Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3582 Neue Eigenschaft beschreiben&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;
Besteht aus einem Serverjob OJOHZDOBarcodeTrenner. Durchsucht den Ordner eines Objektes nach Trennblätter und erstellt für jedes Trennblatt ein Kind-Objekt und fügt die Bilder bis zum nächsten Trennblatt diesem Kind hinzu. Ein Trennblatt kann ein Barcode mit einem bestimmten Wert sein oder eine Seite welche einen bestimmten Text beinhaltet oder eine beliebige Seite mit Textinhalt, welche als Vorlagendatei zur verfügung gestellt wird.&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 Trennblattvorlage==&lt;br /&gt;
&lt;br /&gt;
Es werden nur Bilddateien unterstützt. Im HZ Ordner muss eine Datei, welche als Vorlage zur Trennblatterkennung verwendet wird, in einem Ordner mit dem Namen &amp;quot;Trennblatt&amp;quot; abgelegt worden sein.&lt;br /&gt;
Der Ordner lässt sich aus der Konfiguration über eine Taste öffnen, bzw. er wird erstellt falls er noch nicht existiert. Dazu muss zwingen bereits ein HZ Ordner in der Konfiguration des Arbeitsschrittes eingerichtet worden sein.&lt;br /&gt;
Über die &amp;quot;Grenzwert&amp;quot; Einstellung lässt sich die Schwelle für die Erkennung einrichten. Um die Schwelle zu ermitteln, lassen sich einzelne Dateien hier testen. Der Score für den Vergleich wird dabei ausgegeben.&lt;br /&gt;
&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 [DOSigantur] 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&#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   zukünftig &#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=Hotfolder_Objektimport&amp;diff=9397</id>
		<title>Hotfolder Objektimport</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Hotfolder_Objektimport&amp;diff=9397"/>
		<updated>2025-12-19T16:00:49Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Fehlerhandling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3575&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  78&lt;br /&gt;
&lt;br /&gt;
Dies ist ein HZ Job&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
&lt;br /&gt;
Importiert Dateien aus einem vorgegebenen Ordner in den Workflow eines Auftrages.&lt;br /&gt;
&lt;br /&gt;
Erstellt für jede gefundene Datei ein DO Objekt und kopiert die Datei in den zugehörigen Unterornder des Arbeitsschrittes.&lt;br /&gt;
&lt;br /&gt;
Schickt das Objekt zum nächsten verbundenen Arbeitsschritt.&lt;br /&gt;
&lt;br /&gt;
Aktuell können nur Dateien importiert werden. Es dürfen sich keine Ordner im Hotfolder befinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
Typ für neue Dateien: Wählen Sie aus dem Dropdown Menu den gewünschten Objekttyp.&lt;br /&gt;
&lt;br /&gt;
Pfad zum Hotfolder: Geben Sie den Pfad zum Ordner an, welcher als Hotfolder für den Dateiimport dienen soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHZ STyp078.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Arbeitsschritt muss einen Unterordner erhalten, damit die Dateien zu dem Schritt importiert werden können.&lt;br /&gt;
&lt;br /&gt;
[[Datei:HZ Typ78.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fehlerhandling==&lt;br /&gt;
&lt;br /&gt;
Der Arbeitsschritt wird mit Fehler angehalten wenn&lt;br /&gt;
&lt;br /&gt;
* Der Auftragspfad fehlt&lt;br /&gt;
* Der Unterordner für den Arbeitsschritt fehlt&lt;br /&gt;
* Der Hotfolder nicht eingerichtet wurde oder wenn nicht auf diesen zugegriffen werden kann&lt;br /&gt;
* Sich weitere Ordner im genannten Hotfolder befinden&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass eine Datei nicht kopiert werden kann, wird ein bereits erstelltes DO Objekt wieder gelöscht.&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Hotfolder_Objektimport&amp;diff=9396</id>
		<title>Hotfolder Objektimport</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Hotfolder_Objektimport&amp;diff=9396"/>
		<updated>2025-12-19T15:59:50Z</updated>

		<summary type="html">&lt;p&gt;Stefan: *&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3575&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  78&lt;br /&gt;
&lt;br /&gt;
Dies ist ein HZ Job&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
&lt;br /&gt;
Importiert Dateien aus einem vorgegebenen Ordner in den Workflow eines Auftrages.&lt;br /&gt;
&lt;br /&gt;
Erstellt für jede gefundene Datei ein DO Objekt und kopiert die Datei in den zugehörigen Unterornder des Arbeitsschrittes.&lt;br /&gt;
&lt;br /&gt;
Schickt das Objekt zum nächsten verbundenen Arbeitsschritt.&lt;br /&gt;
&lt;br /&gt;
Aktuell können nur Dateien importiert werden. Es dürfen sich keine Ordner im Hotfolder befinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
Typ für neue Dateien: Wählen Sie aus dem Dropdown Menu den gewünschten Objekttyp.&lt;br /&gt;
&lt;br /&gt;
Pfad zum Hotfolder: Geben Sie den Pfad zum Ordner an, welcher als Hotfolder für den Dateiimport dienen soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHZ STyp078.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Arbeitsschritt muss einen Unterordner erhalten, damit die Dateien zu dem Schritt importiert werden können.&lt;br /&gt;
&lt;br /&gt;
[[Datei:HZ Typ78.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fehlerhandling==&lt;br /&gt;
&lt;br /&gt;
Der Arbeitsschritt wird mit Fehler angehalten wenn:&lt;br /&gt;
&lt;br /&gt;
 * Der Auftragspfad fehlt&lt;br /&gt;
 * Der Unterordner für den Arbeitsschritt fehlt&lt;br /&gt;
 * Der Hotfolder nicht eingerichtet wurde oder wenn nicht auf diesen zugegriffen werden kann&lt;br /&gt;
 * Sich weitere Ordner im genannten Hotfolder befinden&lt;br /&gt;
&lt;br /&gt;
Für den Fall dass eine Datei nicht kopiert werden kann, wird das bereits erstellte DO Objekt wieder gelöscht.&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:HZ_Typ78.png&amp;diff=9395</id>
		<title>Datei:HZ Typ78.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:HZ_Typ78.png&amp;diff=9395"/>
		<updated>2025-12-19T15:40:33Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguration des Unterordners&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Hotfolder_Objektimport&amp;diff=9394</id>
		<title>Hotfolder Objektimport</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Hotfolder_Objektimport&amp;diff=9394"/>
		<updated>2025-12-19T15:38:15Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3375 - Neuer Systemtyp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3575&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  78&lt;br /&gt;
&lt;br /&gt;
Dies ist ein HZ Job&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
&lt;br /&gt;
Importiert Dateien aus einem vorgegebenen Ordner in den Workflow eines Auftrages.&lt;br /&gt;
&lt;br /&gt;
Erstellt für jede gefundene Datei ein DO Objekt und kopiert die Datei in den zugehörigen Unterornder des Arbeitsschrittes.&lt;br /&gt;
&lt;br /&gt;
Schickt das Objekt zum nächsten Arbeitsschritt.&lt;br /&gt;
&lt;br /&gt;
Aktuell können nur Dateien importiert werden. Es dürfen sich keine Ordner im Hotfolder befinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
Typ für neue Dateien: Wählen Sie aus dem Dropdown Menu den gewünschten Objekttyp.&lt;br /&gt;
&lt;br /&gt;
Pfad zum Hotfolder: Geben Sie den Pfad zum Ordner an, welcher als Hotfolder für den Dateiimport dienen soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHZ STyp078.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:FHZ_STyp078.png&amp;diff=9393</id>
		<title>Datei:FHZ STyp078.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:FHZ_STyp078.png&amp;diff=9393"/>
		<updated>2025-12-19T15:36:25Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfigurationsmaske zum Systemtyp 78&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=9392</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=9392"/>
		<updated>2025-12-18T16:37:25Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3575 : Neuer Systemtyp 78&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;
[[Kategorie:Workflowschritt]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Verf%C3%BCgbare_Funktionen&amp;diff=9373</id>
		<title>Verfügbare Funktionen</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Verf%C3%BCgbare_Funktionen&amp;diff=9373"/>
		<updated>2025-10-23T15:18:15Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* §istMin und §istMax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die hier gelisteten Funktionen lassen sich bei allen Workflowschritten anwenden, welche einen Link zu dieser Seite besitzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beachte:&#039;&#039;&#039; Die Metadatumsfelder sind hier unbedingt als String (&#039;Metadatum&#039;) zu übergeben und nicht wie andersweitig in eckigen Klammern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§getQuittungsFeld===&lt;br /&gt;
&lt;br /&gt;
Holt den Wert aus einem Quittungsfeld. Das Objekt muss dazu eine Quittung besitzen. Es wird immer auf die letzte erstellte Quittung zurückgegriffen. Aktuell werden Quittungsdetail im JSON Format unterstützt.&lt;br /&gt;
&lt;br /&gt;
Die Funktion erwartet einen gültigen Pfad zu einem JSON Member, oder anderst gesagt den Schlüssel zu einem Attribut in dem JSON. (JSON Pfade der Quittung finden: Siehe [[Warten auf Rückmeldung]])&lt;br /&gt;
&lt;br /&gt;
 §getQuittungsFeld(&#039;pfad.zu.dem.gewünschten.feld&#039;)&lt;br /&gt;
&lt;br /&gt;
===§istInWortliste===&lt;br /&gt;
&lt;br /&gt;
Ermittelt ob ein Metadatum in einer Wortliste vorkommt; wobei 1 = kommt vor, 0 = kommt nicht vor.&lt;br /&gt;
&lt;br /&gt;
Die Wortliste ist als [https://helper.ch/wiki/index.php?title=Konfiguration Konfigurationsdatensatz] zu erstellen. Der Name der erstellen Wortliste wird als Parameter zum finden der Liste benötigt.&lt;br /&gt;
&lt;br /&gt;
 §istInWortliste(Metadatumsname,Wortlistenname,Suchtyp,Zeilenumbruchtyp)&lt;br /&gt;
&lt;br /&gt;
;Metadatumsname: Wert des Metadatums, zB &#039;Eugen&#039; oder [Vorname]&lt;br /&gt;
;Wortlistenname: Name der Wortliste, also des Konfigurationsdatensatzes.&lt;br /&gt;
;Suchtyp: 0=Es wird genau nach dem Wert gesucht (Standard), 1=Findet auch &#039;Hans&#039;, wenn in der Wortliste &#039;Eugen Hans&#039; oder &#039;Hans-Peter&#039; steht&lt;br /&gt;
;Zeilenumbruchtyp: Welcher Zeilenumbruch wird in der Wortliste verwendet: 0=Zeilenumbruch ist &#039;CR&#039; (Standard), 1=Zeilenumbruch ist &#039;CRLF&#039;&lt;br /&gt;
&lt;br /&gt;
Bsp.: Es wurde eine Liste mit Vornamen in der Konfiguration erstellt. Diese Liste lautet auf den Namen &amp;quot;Vornamenkonfiguration&amp;quot;. Ein Metadatum &amp;quot;Vorname&amp;quot; wurde erstellt, dort wurden zuvor Vornamen gespeichert.&lt;br /&gt;
&lt;br /&gt;
 §istInWortliste(&#039;Vorname&#039;,&#039;Vornamenkonfiguration&#039;)&lt;br /&gt;
&lt;br /&gt;
===§getConfidenceOfWordInRegionXML===&lt;br /&gt;
&lt;br /&gt;
Gibt die vom OCR ermittelte Konfidenz zu einem gefundenen Begriff zurück und schreibt den Wert in ein Metadatum. Erlaubt optional die Angabe eines Einschräkungsbereiches, in welchem der gesuchte Begriff vorkommen muss.&lt;br /&gt;
&lt;br /&gt;
Der Bereich ist als Row(left,top,width,height) anzugeben: §getConfidenceOfWordInRegionXML(&#039;Suchwort&#039;,row(left,top,width,height))&lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
 §getConfidenceOfWordInRegionXML(&#039;London&#039;,row(57,154,75,25))&lt;br /&gt;
&lt;br /&gt;
 0 = Begriff nicht gefunden&lt;br /&gt;
 0.1 - 100 = Konfidenz des gefundenen Begriffes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderWertATMin(AttributName) und §KinderWertATMax(AttributName)===&lt;br /&gt;
&lt;br /&gt;
Gibt den kleinsten oder den grössten Wert eines Metadatums mit dem gegebenen Atrributnamen von den direkten Nachfahren des Objektes zurück.&lt;br /&gt;
&lt;br /&gt;
Berücktichtigt den Datentyp für die Sortierung, falls dieser beim Attribut angegeben wurde. Bei Datumstypen ist Min das jüngste und Max das älteste.&lt;br /&gt;
&lt;br /&gt;
Gibt das ermittelte Metadatum zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderWertATStetig(AttributName,Min,Max)===&lt;br /&gt;
&lt;br /&gt;
Prüft ob ein Nachfahre des Objektes mit dem gegebenen Attributnamen im Bereich Min-Max eine stetige Zahlenfolge besitzt.&lt;br /&gt;
&lt;br /&gt;
Eignet sich z.B. um zu ermitteln, ob die Seitenzahlen der Kindobjekte im Metadatum mit dem Attributsnamen &amp;quot;Seitenzahl&amp;quot; zwischen den Werten 1-20 alle vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
Gibt wahr oder falsch zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§istMin und §istMax===&lt;br /&gt;
&lt;br /&gt;
Vergleicht von DO Objekten die Attributswerte des angegebenen Attributs miteinander, und ermittelt ob das DO den grössten oder den kleinsten Wert der verglichenen Objekte besitzt. Alle DO Typen, welchen den gleichen Attributsnamen besitzen, werden für den Vergleich herbeigezogen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Hierarchiestufe der Objekte kann, ausgehend vom Objekt eingeschränkt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pflicht: Metadatumsname, Hierarchieebene&amp;lt;br&amp;gt;&lt;br /&gt;
Optional: Metadatumsname2 (Ohne Metadatumsname2 werden allein die gefundenen Metadaten aus Metadatumsname verglichen, mit werden nur diejenigen Objekte welche den gleichen Wert in Metadatumsname2 haben verglichen).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 §istMax(Metadatumsname,Hierachieebene,Metadatumsname2)&lt;br /&gt;
 §istMax(Metadatumsname,../-2/-1/0/1/2/..,Metadatumsname2)&lt;br /&gt;
 §istMin(Metadatumsname,../-2/-1/0/1/2/..,Metadatumsname2)&lt;br /&gt;
 &lt;br /&gt;
 Bsp.:&lt;br /&gt;
 &#039;&#039;&#039;§istMax(&#039;AnzahlDok&#039;,1,&#039;Büronummer&#039;)&#039;&#039;&#039; Gibt 1 zurück, wenn das Objekt den grössten Wert im Attribut &#039;AnzahlDok&#039; hat, innerhalb der eigenen Tranche und der gleichen Büronummer. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 &lt;br /&gt;
 Hierachieebene: (Einschränkung)&lt;br /&gt;
 * 0 = Alle DO des Auftrages (=keine Einschränkung)&lt;br /&gt;
 * 1 = Alle DO mit dem selben Vorfahren auf Ebene 1 (typischerweise alle Objekte einer Tranche, inklusive der Tranche)&lt;br /&gt;
 * 2 = Alle DO mit dem selben Vorfahren auf Ebene 2&lt;br /&gt;
 * 3 = Alle DO mit dem selben Vorfahren auf Ebene 3&lt;br /&gt;
 * etc.&lt;br /&gt;
 * -1 = Alle auf der gleichen Ebene wie das DO Objekt, inklusive des Vorfahren &lt;br /&gt;
 * -2 = Alle 2 Ebenen höher als das DO Objekt&lt;br /&gt;
 &lt;br /&gt;
 Metadatumsname2: Schränkt die betrachteten Dos ein. Es werden nur die DO angesehen, die den gleichen Wert im Attribut &#039;&#039;&#039;Metadatumsname2&#039;&#039;&#039; haben.&lt;br /&gt;
&lt;br /&gt;
Wenn für das Metadatum das sortiert werden soll ein Datentyp angegeben wurde, dann muss der Datentyp mit den vorhandenen Werten in den Feldern übereinstimmen sonst gibt es einen Fehler. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Number ist z.B. nicht gleich Integer, für Number wird  mindestens eine Nachkommastelle erwartet. Wenn Integer angegeben wurde, darf z.B. kein Buchstabe in einem der Felder vorkommen.&lt;br /&gt;
&lt;br /&gt;
Wenn im Resultat Negative Werte stehen, dann deutet dies auf einen Verarbeitungsfehler.&lt;br /&gt;
 -2 = SQL Fehler bei der Abfrage&lt;br /&gt;
 -3 = falscher Datentyp&lt;br /&gt;
 -4 = mindestens ein Feld vom Typ Character/String war leer&lt;br /&gt;
&lt;br /&gt;
===§sortierung===&lt;br /&gt;
&lt;br /&gt;
Gibt die Sortierreihenfolge des Objektes zurück. Analog zu verwenden wie $min/$max. Wird der letzte Parameter nicht angegeben wird automatisch aufsteigend sortiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 §sortierung(Metadatumsname,../-2/-1/0/1/2/.., Metadatumsname2,0/1)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 §sortierung(&#039;Büronummer&#039;,-1,&#039;Vorname&#039;,0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 &lt;br /&gt;
 Hierachieebene: (Einschränkung)&lt;br /&gt;
 * 0 = Alle DO des Auftrages (=keine Einschränkung)&lt;br /&gt;
 * 1 = Alle DO mit dem selben Vorfahren auf Ebene 1 (typischerweise alle Objekte einer Tranche, inklusive der Tranche)&lt;br /&gt;
 * 2 = Alle DO mit dem selben Vorfahren auf Ebene 2&lt;br /&gt;
 * 3 = Alle DO mit dem selben Vorfahren auf Ebene 3&lt;br /&gt;
 * etc.&lt;br /&gt;
 * -1 = Alle auf der gleichen Ebene wie das DO Objekt, inklusive des Vorfahren &lt;br /&gt;
 * -2 = Alle 2 Ebenen höher als das DO Objekt&lt;br /&gt;
 &lt;br /&gt;
Metadatumsname2: Schränkt die betrachteten Dos ein. Es werden nur die DO angesehen, die den gleichen Wert im Attribut &#039;&#039;&#039;Metadatumsname2&#039;&#039;&#039; haben.&lt;br /&gt;
  &lt;br /&gt;
 Sortierreihenfolge: 0 = Aufwärts, 1 = Abwärts&lt;br /&gt;
&lt;br /&gt;
Wenn für das Metadatum das sortiert werden soll ein Datentyp angegeben wurde, dann muss der Datentyp mit den vorhandenen Werten in den Feldern übereinstimmen sonst gibt es einen Fehler. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Number ist z.B. nicht gleich Integer, für Number wird  mindestens eine Nachkommastelle erwartet. Wenn Integer angegeben wurde, darf z.B. kein Buchstabe in einem der Felder vorkommen.&lt;br /&gt;
&lt;br /&gt;
Wenn im Resultat Negative Werte stehen, dann deutet dies auf einen Verarbeitungsfehler.&lt;br /&gt;
 -2 = SQL Fehler bei der Abfrage&lt;br /&gt;
 -3 = falscher Datentyp&lt;br /&gt;
 -4 = mindestens ein Feld vom Typ Character/String war leer&lt;br /&gt;
&lt;br /&gt;
===§istEindeutig===&lt;br /&gt;
&lt;br /&gt;
Prüft ob für ein DO Objekt ein bestimmtes Metadatum im Vergleich zu weiteren DOs eindeutig ist. Vergleiche sind mit DOs auf wählbarer Hierarchieebene sowie mit gleichem oder abweichendem DO Typ möglich.&lt;br /&gt;
&lt;br /&gt;
 §istEindeutig(Metadatumsname, 0/1/2, 0/1/2[,DO Typen])&lt;br /&gt;
 §istEindeutig(Metadatumsname, Hierarchieebene, Typ-Einschränkung[,&#039;Typ1,Typ2,..&#039;])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 Bereich: 0 = Ganzer Auftrag, alle DO dieses Auftrages, 1 =  Alle DO auf Ebene 1, 2 = Alle DO auf Ebene 2&lt;br /&gt;
 Typ-Einschränkung: 0 = Alle Typen mit dem gleichen Metadatumsname, 1 = Gleicher Typ wie das Vergleichsobjekt, 2 = Alle im zwingend folgenden Parameter angegebenen Typen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anwendung&#039;&#039;&#039;&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,0,0) Alle DO des Auftrages, welche bei einem beliebiegen DO Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,1,1) Alle DO auf Ebene 1, welche zum gleichen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,0) Alle DO auf Ebene 2, welche bei einem beliebiegen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,1) Alle DO auf Ebene 2, welche zum gleichen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,2,&#039;Buch, Magazin, Zeitung&#039;) Alle DO auf Ebene 2, welche zu den angegebenen Typen &#039;Buch, Magazin, Zeitung&#039; und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
&lt;br /&gt;
Fehleingabe vermeiden:&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,2) Es wird eine Typeinschränkung (Parameter drei = 2) verlangt, ohne nachfolgende die gesuchten Typen zu nennen.&lt;br /&gt;
&lt;br /&gt;
===§KindNr===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt zurück, das wievielte Kind das Objekt ist. &lt;br /&gt;
&lt;br /&gt;
 §KindNr()&lt;br /&gt;
&lt;br /&gt;
 Bsp: &lt;br /&gt;
 Das Objekt hat 5 Geschwister und ist als viertes erstellt worden. Somit gibt die Methode §KindNr 4 zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§sortierungSignatur===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt zurück, die Position des Objektes von allen Objekten mit der gleichen Signatur.&lt;br /&gt;
&lt;br /&gt;
 §sortierungSignatur()&lt;br /&gt;
&lt;br /&gt;
 Bsp: &lt;br /&gt;
 Gegeben:&lt;br /&gt;
 Objekt 1 mit Signatur &#039;A&#039;&lt;br /&gt;
 Objekt 2 mit Signatur &#039;B&#039;&lt;br /&gt;
 Objekt 3 mit Sigantur &#039;A&#039;&lt;br /&gt;
 Objekt 4 mit Signatur &#039;A&#039;&lt;br /&gt;
 Objekt 5 mit Signatur &#039;C&#039;&lt;br /&gt;
 &lt;br /&gt;
 Wird zurückgegeben: &lt;br /&gt;
 Objekt 1 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 2 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;B&#039;)&lt;br /&gt;
 Objekt 3 -&amp;gt; 2 (weil es das zweite Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 4 -&amp;gt; 3 (weil es das dritte Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 5 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;C&#039;)&lt;br /&gt;
&lt;br /&gt;
===§minX===&lt;br /&gt;
&lt;br /&gt;
Bevor diese Methode ausgeführt werden kann, muss der Schritt [[Files messen]] gemacht werden.&lt;br /&gt;
Diese Methode gibt die kleinstmögliche Breite des Objektes nachdem die [[Files messen|Files gemessen]] wurden an, grösser oder gleich dem Parameter.&lt;br /&gt;
Es werden alle Files ausgewertet ausser PDFs.&lt;br /&gt;
Die Methode erwartet eine Zahl als Pixel-Wert.&lt;br /&gt;
&lt;br /&gt;
 §minX(minimumPixel)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 Objekt mit folgenden Files: auto.jpg (Breite: 100), baum.jpg (Breite:200), clown.jpg (Breite:110)&lt;br /&gt;
 Methode §minX(105) gibt 110 zurück&lt;br /&gt;
 Methode §minX(110) gibt 110 zurück&lt;br /&gt;
 Methode §minX(150) gibt 200 zurück&lt;br /&gt;
&lt;br /&gt;
===§minY===&lt;br /&gt;
&lt;br /&gt;
Bevor diese Methode ausgeführt werden kann, muss der Schritt [[Files messen]] gemacht werden.&lt;br /&gt;
Diese Methode gibt die kleinstmögliche Höhe des Objektes nachdem die [[Files messen|Files gemessen]] wurden an, grösser oder gleich dem Parameter.&lt;br /&gt;
Es werden alle Files ausgewertet ausser PDFs.&lt;br /&gt;
Die Methode erwartet eine Zahl als Pixel-Wert.&lt;br /&gt;
&lt;br /&gt;
 §minY(minimumPixel)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 Objekt mit folgenden Files: auto.jpg (Höhe: 100), baum.jpg (Höhe:200), clown.jpg (Höhe:110)&lt;br /&gt;
 Methode §minY(105) gibt 110 zurück&lt;br /&gt;
 Methode §minY(110) gibt 110 zurück&lt;br /&gt;
 Methode §minY(150) gibt 200 zurück&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§OCRTextRegion===&lt;br /&gt;
&lt;br /&gt;
Führt OCR auf einer bestimmen Seitennummer (einzelne Bild Datei!) in einer bestimmten Region aus, und gibt als Resultat den gefundenen Text zurück. Dieser Text lässt sich dann z.B. in ein Metadatum übertragen.&lt;br /&gt;
&lt;br /&gt;
Die Seitennummer wird über die Sortierreihenfolge der Dateinamen im Dateisystem bestimmt. Es werden TIFF, JPG und PNG als Dateiformate unterstützt.&lt;br /&gt;
&lt;br /&gt;
Die wählbare Region, welche eine rechteckige Selektion ist, wird über die Koordinaten X1,X2,Y1,Y2 in Pixel definiert. Wobei X1=linker Rand, X2=rechter Rand, Y1=oberer Rand, Y2=unterer Rand.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn für die Koordinaten negative Werte eingesetzt werden, so werden die Positionen relativ zur Bildgrösse und ausgehend vom rechten oder unteren Bildrand berechnet!&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 §OCRTextRegion(Seite,X1,X2,Y1,Y2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bsp: Seite Nummer 5 (entspricht Datei Nummer 5). Bilddimensionen: 2663 Breite x 3603 Höhe&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,359,709,631,690)  -&amp;gt; entspricht einem Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,-2304,709,-2972,690)  -&amp;gt; entspricht genau dem gleichen Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59 &#039;&#039;&#039; weil das Bild die gleiche Dimension besitzt!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,-2304,-1954,-2972,-2913)  -&amp;gt; entspricht genau dem gleichen Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59 &#039;&#039;&#039;weil das Bild die gleiche Dimension besitzt!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===§FileAnzahl===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt dir Anzahl Dateien am aktuellen Datenschritt des Objektes zurück. Dabei werden alle Dateien auch in allen Unterordnern gezählt. Unsichtbare Dateien sowie die Ordner selbst zählen nicht.&lt;br /&gt;
&lt;br /&gt;
 §FileAnzahl()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§Hausnummer===&lt;br /&gt;
Diese Methode formatiert einen Hausnummer.&lt;br /&gt;
 §Hausnummer(Wert)&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
 12 -&amp;gt; 012&lt;br /&gt;
 123 -&amp;gt; 123&lt;br /&gt;
 12a -&amp;gt; 012a&lt;br /&gt;
 2a -&amp;gt; 002a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderSummeAT===&lt;br /&gt;
Gibt die Summe der Werte des Attributs aller Kinder zurück, nicht rekursiv, also nur der direkten Kinder.&lt;br /&gt;
 §KinderSummeAT(&#039;Attribut&#039;)&lt;br /&gt;
&lt;br /&gt;
===§KinderWertAT===&lt;br /&gt;
Gibt den Wert des Attributs des ersten Kindes zurück. Idealerweise hat es nur ein Kind. Sonst wir das erste genommen.&lt;br /&gt;
 §KinderWertAT(&#039;Attribut&#039;)&lt;br /&gt;
&lt;br /&gt;
===§isJSONValid===&lt;br /&gt;
Prüft ob ein Attribut ein valides JSON ist. Gibt Wahr (true) oder Falsch (false) zurück.&lt;br /&gt;
 §isJSONValid(&#039;JSON&#039;)&lt;br /&gt;
&lt;br /&gt;
===§StrasseAusschreiben===&lt;br /&gt;
Diese Methode prüft ob ein Strassennamen (mit oder ohne Hausnummer) schön formatiert ist. Dabei wird jeder Anfangsbuchstabe in einen Grossbuchstaben geändert. &amp;quot;str&amp;quot; und &amp;quot;str.&amp;quot; werden zu &amp;quot;strasse&amp;quot; ausgeschrieben.&lt;br /&gt;
&lt;br /&gt;
 §StrasseAusschreiben(&#039;Strasse&#039;)&lt;br /&gt;
&lt;br /&gt;
====Beispiele====&lt;br /&gt;
  Teststr 58A =&amp;gt; Teststrasse 58A&lt;br /&gt;
  zUr lindENstr. =&amp;gt; Zur Lindenstrasse&lt;br /&gt;
  Hofweg 68 =&amp;gt; Hofweg 68 &lt;br /&gt;
&lt;br /&gt;
==Weitere Beispiele==&lt;br /&gt;
 §OCRMatchCount(&#039;Bericht&#039;)&amp;gt;0 ==&amp;gt; Falls das Wort Bericht mindestens 1 Mal gefunden wurde ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[0-9][0-9][.]&#039;)=0 ==&amp;gt; Falls KEINE 2 stellige Zahl mit einem Punkt gefunden wird ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[BelegName]&#039;)&amp;gt;2 ==&amp;gt; Falls der Wert des Attributes BelegName mehr als 2 mal gefunden wird ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[BelegName]&#039;,1)&amp;gt;0 ==&amp;gt; Falls der Wert des Attributes BelegName mindestens einmal im OCR der Kindern gefunden wurde.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Verf%C3%BCgbare_Funktionen&amp;diff=9372</id>
		<title>Verfügbare Funktionen</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Verf%C3%BCgbare_Funktionen&amp;diff=9372"/>
		<updated>2025-10-23T15:17:53Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* §sortierung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die hier gelisteten Funktionen lassen sich bei allen Workflowschritten anwenden, welche einen Link zu dieser Seite besitzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beachte:&#039;&#039;&#039; Die Metadatumsfelder sind hier unbedingt als String (&#039;Metadatum&#039;) zu übergeben und nicht wie andersweitig in eckigen Klammern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§getQuittungsFeld===&lt;br /&gt;
&lt;br /&gt;
Holt den Wert aus einem Quittungsfeld. Das Objekt muss dazu eine Quittung besitzen. Es wird immer auf die letzte erstellte Quittung zurückgegriffen. Aktuell werden Quittungsdetail im JSON Format unterstützt.&lt;br /&gt;
&lt;br /&gt;
Die Funktion erwartet einen gültigen Pfad zu einem JSON Member, oder anderst gesagt den Schlüssel zu einem Attribut in dem JSON. (JSON Pfade der Quittung finden: Siehe [[Warten auf Rückmeldung]])&lt;br /&gt;
&lt;br /&gt;
 §getQuittungsFeld(&#039;pfad.zu.dem.gewünschten.feld&#039;)&lt;br /&gt;
&lt;br /&gt;
===§istInWortliste===&lt;br /&gt;
&lt;br /&gt;
Ermittelt ob ein Metadatum in einer Wortliste vorkommt; wobei 1 = kommt vor, 0 = kommt nicht vor.&lt;br /&gt;
&lt;br /&gt;
Die Wortliste ist als [https://helper.ch/wiki/index.php?title=Konfiguration Konfigurationsdatensatz] zu erstellen. Der Name der erstellen Wortliste wird als Parameter zum finden der Liste benötigt.&lt;br /&gt;
&lt;br /&gt;
 §istInWortliste(Metadatumsname,Wortlistenname,Suchtyp,Zeilenumbruchtyp)&lt;br /&gt;
&lt;br /&gt;
;Metadatumsname: Wert des Metadatums, zB &#039;Eugen&#039; oder [Vorname]&lt;br /&gt;
;Wortlistenname: Name der Wortliste, also des Konfigurationsdatensatzes.&lt;br /&gt;
;Suchtyp: 0=Es wird genau nach dem Wert gesucht (Standard), 1=Findet auch &#039;Hans&#039;, wenn in der Wortliste &#039;Eugen Hans&#039; oder &#039;Hans-Peter&#039; steht&lt;br /&gt;
;Zeilenumbruchtyp: Welcher Zeilenumbruch wird in der Wortliste verwendet: 0=Zeilenumbruch ist &#039;CR&#039; (Standard), 1=Zeilenumbruch ist &#039;CRLF&#039;&lt;br /&gt;
&lt;br /&gt;
Bsp.: Es wurde eine Liste mit Vornamen in der Konfiguration erstellt. Diese Liste lautet auf den Namen &amp;quot;Vornamenkonfiguration&amp;quot;. Ein Metadatum &amp;quot;Vorname&amp;quot; wurde erstellt, dort wurden zuvor Vornamen gespeichert.&lt;br /&gt;
&lt;br /&gt;
 §istInWortliste(&#039;Vorname&#039;,&#039;Vornamenkonfiguration&#039;)&lt;br /&gt;
&lt;br /&gt;
===§getConfidenceOfWordInRegionXML===&lt;br /&gt;
&lt;br /&gt;
Gibt die vom OCR ermittelte Konfidenz zu einem gefundenen Begriff zurück und schreibt den Wert in ein Metadatum. Erlaubt optional die Angabe eines Einschräkungsbereiches, in welchem der gesuchte Begriff vorkommen muss.&lt;br /&gt;
&lt;br /&gt;
Der Bereich ist als Row(left,top,width,height) anzugeben: §getConfidenceOfWordInRegionXML(&#039;Suchwort&#039;,row(left,top,width,height))&lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
 §getConfidenceOfWordInRegionXML(&#039;London&#039;,row(57,154,75,25))&lt;br /&gt;
&lt;br /&gt;
 0 = Begriff nicht gefunden&lt;br /&gt;
 0.1 - 100 = Konfidenz des gefundenen Begriffes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderWertATMin(AttributName) und §KinderWertATMax(AttributName)===&lt;br /&gt;
&lt;br /&gt;
Gibt den kleinsten oder den grössten Wert eines Metadatums mit dem gegebenen Atrributnamen von den direkten Nachfahren des Objektes zurück.&lt;br /&gt;
&lt;br /&gt;
Berücktichtigt den Datentyp für die Sortierung, falls dieser beim Attribut angegeben wurde. Bei Datumstypen ist Min das jüngste und Max das älteste.&lt;br /&gt;
&lt;br /&gt;
Gibt das ermittelte Metadatum zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderWertATStetig(AttributName,Min,Max)===&lt;br /&gt;
&lt;br /&gt;
Prüft ob ein Nachfahre des Objektes mit dem gegebenen Attributnamen im Bereich Min-Max eine stetige Zahlenfolge besitzt.&lt;br /&gt;
&lt;br /&gt;
Eignet sich z.B. um zu ermitteln, ob die Seitenzahlen der Kindobjekte im Metadatum mit dem Attributsnamen &amp;quot;Seitenzahl&amp;quot; zwischen den Werten 1-20 alle vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
Gibt wahr oder falsch zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§istMin und §istMax===&lt;br /&gt;
&lt;br /&gt;
Vergleicht von DO Objekten die Attributswerte des angegebenen Attributs miteinander, und ermittelt ob das DO den grössten oder den kleinsten Wert der verglichenen Objekte besitzt. Alle DO Typen, welchen den gleichen Attributsnamen besitzen, werden für den Vergleich herbeigezogen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Hierarchiestufe der Objekte kann, ausgehend vom Objekt eingeschränkt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pflicht: Metadatumsname, Hierarchieebene&amp;lt;br&amp;gt;&lt;br /&gt;
Optional: Metadatumsname2 (Ohne Metadatumsname2 werden allein die gefundenen Metadaten aus Metadatumsname verglichen, mit werden nur diejenigen Objekte welche den gleichen Wert in Metadatumsname2 haben verglichen).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 §istMax(Metadatumsname,Hierachieebene,Metadatumsname2)&lt;br /&gt;
 §istMax(Metadatumsname,../-2/-1/0/1/2/..,Metadatumsname2)&lt;br /&gt;
 §istMin(Metadatumsname,../-2/-1/0/1/2/..,Metadatumsname2)&lt;br /&gt;
 &lt;br /&gt;
 Bsp.:&lt;br /&gt;
 &#039;&#039;&#039;§istMax(&#039;AnzahlDok&#039;,1,&#039;Büronummer&#039;)&#039;&#039;&#039; Gibt 1 zurück, wenn das Objekt den grössten Wert im Attribut &#039;AnzahlDok&#039; hat, innerhalb der eigenen Tranche und der gleichen Büronummer. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 &lt;br /&gt;
 Hierachieebene: (Einschränkung)&lt;br /&gt;
 * 0 = Alle DO des Auftrages (=keine Einschränkung)&lt;br /&gt;
 * 1 = Alle DO mit dem selben Vorfahren auf Ebene 1 (typischerweise alle Objekte einer Tranche, inklusive der Tranche)&lt;br /&gt;
 * 2 = Alle DO mit dem selben Vorfahren auf Ebene 2&lt;br /&gt;
 * 3 = Alle DO mit dem selben Vorfahren auf Ebene 3&lt;br /&gt;
 * etc.&lt;br /&gt;
 * -1 = Alle auf der gleichen Ebene wie das DO Objekt, inklusive des Vorfahren &lt;br /&gt;
 * -2 = Alle 2 Ebenen höher als das DO Objekt&lt;br /&gt;
 &lt;br /&gt;
 Metadatumsname2: Schränkt die betrachteten Dos ein. Es werden nur die DO angesehen, die den gleichen Wert im Attribut &#039;&#039;&#039;Metadatumsname2&#039;&#039;&#039; haben.&lt;br /&gt;
&lt;br /&gt;
===§sortierung===&lt;br /&gt;
&lt;br /&gt;
Gibt die Sortierreihenfolge des Objektes zurück. Analog zu verwenden wie $min/$max. Wird der letzte Parameter nicht angegeben wird automatisch aufsteigend sortiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 §sortierung(Metadatumsname,../-2/-1/0/1/2/.., Metadatumsname2,0/1)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 §sortierung(&#039;Büronummer&#039;,-1,&#039;Vorname&#039;,0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 &lt;br /&gt;
 Hierachieebene: (Einschränkung)&lt;br /&gt;
 * 0 = Alle DO des Auftrages (=keine Einschränkung)&lt;br /&gt;
 * 1 = Alle DO mit dem selben Vorfahren auf Ebene 1 (typischerweise alle Objekte einer Tranche, inklusive der Tranche)&lt;br /&gt;
 * 2 = Alle DO mit dem selben Vorfahren auf Ebene 2&lt;br /&gt;
 * 3 = Alle DO mit dem selben Vorfahren auf Ebene 3&lt;br /&gt;
 * etc.&lt;br /&gt;
 * -1 = Alle auf der gleichen Ebene wie das DO Objekt, inklusive des Vorfahren &lt;br /&gt;
 * -2 = Alle 2 Ebenen höher als das DO Objekt&lt;br /&gt;
 &lt;br /&gt;
Metadatumsname2: Schränkt die betrachteten Dos ein. Es werden nur die DO angesehen, die den gleichen Wert im Attribut &#039;&#039;&#039;Metadatumsname2&#039;&#039;&#039; haben.&lt;br /&gt;
  &lt;br /&gt;
 Sortierreihenfolge: 0 = Aufwärts, 1 = Abwärts&lt;br /&gt;
&lt;br /&gt;
Wenn für das Metadatum das sortiert werden soll ein Datentyp angegeben wurde, dann muss der Datentyp mit den vorhandenen Werten in den Feldern übereinstimmen sonst gibt es einen Fehler. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merke:&#039;&#039;&#039; Number ist z.B. nicht gleich Integer, für Number wird  mindestens eine Nachkommastelle erwartet. Wenn Integer angegeben wurde, darf z.B. kein Buchstabe in einem der Felder vorkommen.&lt;br /&gt;
&lt;br /&gt;
Wenn im Resultat Negative Werte stehen, dann deutet dies auf einen Verarbeitungsfehler.&lt;br /&gt;
 -2 = SQL Fehler bei der Abfrage&lt;br /&gt;
 -3 = falscher Datentyp&lt;br /&gt;
 -4 = mindestens ein Feld vom Typ Character/String war leer&lt;br /&gt;
&lt;br /&gt;
===§istEindeutig===&lt;br /&gt;
&lt;br /&gt;
Prüft ob für ein DO Objekt ein bestimmtes Metadatum im Vergleich zu weiteren DOs eindeutig ist. Vergleiche sind mit DOs auf wählbarer Hierarchieebene sowie mit gleichem oder abweichendem DO Typ möglich.&lt;br /&gt;
&lt;br /&gt;
 §istEindeutig(Metadatumsname, 0/1/2, 0/1/2[,DO Typen])&lt;br /&gt;
 §istEindeutig(Metadatumsname, Hierarchieebene, Typ-Einschränkung[,&#039;Typ1,Typ2,..&#039;])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 Bereich: 0 = Ganzer Auftrag, alle DO dieses Auftrages, 1 =  Alle DO auf Ebene 1, 2 = Alle DO auf Ebene 2&lt;br /&gt;
 Typ-Einschränkung: 0 = Alle Typen mit dem gleichen Metadatumsname, 1 = Gleicher Typ wie das Vergleichsobjekt, 2 = Alle im zwingend folgenden Parameter angegebenen Typen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anwendung&#039;&#039;&#039;&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,0,0) Alle DO des Auftrages, welche bei einem beliebiegen DO Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,1,1) Alle DO auf Ebene 1, welche zum gleichen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,0) Alle DO auf Ebene 2, welche bei einem beliebiegen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,1) Alle DO auf Ebene 2, welche zum gleichen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,2,&#039;Buch, Magazin, Zeitung&#039;) Alle DO auf Ebene 2, welche zu den angegebenen Typen &#039;Buch, Magazin, Zeitung&#039; und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
&lt;br /&gt;
Fehleingabe vermeiden:&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,2) Es wird eine Typeinschränkung (Parameter drei = 2) verlangt, ohne nachfolgende die gesuchten Typen zu nennen.&lt;br /&gt;
&lt;br /&gt;
===§KindNr===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt zurück, das wievielte Kind das Objekt ist. &lt;br /&gt;
&lt;br /&gt;
 §KindNr()&lt;br /&gt;
&lt;br /&gt;
 Bsp: &lt;br /&gt;
 Das Objekt hat 5 Geschwister und ist als viertes erstellt worden. Somit gibt die Methode §KindNr 4 zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§sortierungSignatur===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt zurück, die Position des Objektes von allen Objekten mit der gleichen Signatur.&lt;br /&gt;
&lt;br /&gt;
 §sortierungSignatur()&lt;br /&gt;
&lt;br /&gt;
 Bsp: &lt;br /&gt;
 Gegeben:&lt;br /&gt;
 Objekt 1 mit Signatur &#039;A&#039;&lt;br /&gt;
 Objekt 2 mit Signatur &#039;B&#039;&lt;br /&gt;
 Objekt 3 mit Sigantur &#039;A&#039;&lt;br /&gt;
 Objekt 4 mit Signatur &#039;A&#039;&lt;br /&gt;
 Objekt 5 mit Signatur &#039;C&#039;&lt;br /&gt;
 &lt;br /&gt;
 Wird zurückgegeben: &lt;br /&gt;
 Objekt 1 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 2 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;B&#039;)&lt;br /&gt;
 Objekt 3 -&amp;gt; 2 (weil es das zweite Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 4 -&amp;gt; 3 (weil es das dritte Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 5 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;C&#039;)&lt;br /&gt;
&lt;br /&gt;
===§minX===&lt;br /&gt;
&lt;br /&gt;
Bevor diese Methode ausgeführt werden kann, muss der Schritt [[Files messen]] gemacht werden.&lt;br /&gt;
Diese Methode gibt die kleinstmögliche Breite des Objektes nachdem die [[Files messen|Files gemessen]] wurden an, grösser oder gleich dem Parameter.&lt;br /&gt;
Es werden alle Files ausgewertet ausser PDFs.&lt;br /&gt;
Die Methode erwartet eine Zahl als Pixel-Wert.&lt;br /&gt;
&lt;br /&gt;
 §minX(minimumPixel)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 Objekt mit folgenden Files: auto.jpg (Breite: 100), baum.jpg (Breite:200), clown.jpg (Breite:110)&lt;br /&gt;
 Methode §minX(105) gibt 110 zurück&lt;br /&gt;
 Methode §minX(110) gibt 110 zurück&lt;br /&gt;
 Methode §minX(150) gibt 200 zurück&lt;br /&gt;
&lt;br /&gt;
===§minY===&lt;br /&gt;
&lt;br /&gt;
Bevor diese Methode ausgeführt werden kann, muss der Schritt [[Files messen]] gemacht werden.&lt;br /&gt;
Diese Methode gibt die kleinstmögliche Höhe des Objektes nachdem die [[Files messen|Files gemessen]] wurden an, grösser oder gleich dem Parameter.&lt;br /&gt;
Es werden alle Files ausgewertet ausser PDFs.&lt;br /&gt;
Die Methode erwartet eine Zahl als Pixel-Wert.&lt;br /&gt;
&lt;br /&gt;
 §minY(minimumPixel)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 Objekt mit folgenden Files: auto.jpg (Höhe: 100), baum.jpg (Höhe:200), clown.jpg (Höhe:110)&lt;br /&gt;
 Methode §minY(105) gibt 110 zurück&lt;br /&gt;
 Methode §minY(110) gibt 110 zurück&lt;br /&gt;
 Methode §minY(150) gibt 200 zurück&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§OCRTextRegion===&lt;br /&gt;
&lt;br /&gt;
Führt OCR auf einer bestimmen Seitennummer (einzelne Bild Datei!) in einer bestimmten Region aus, und gibt als Resultat den gefundenen Text zurück. Dieser Text lässt sich dann z.B. in ein Metadatum übertragen.&lt;br /&gt;
&lt;br /&gt;
Die Seitennummer wird über die Sortierreihenfolge der Dateinamen im Dateisystem bestimmt. Es werden TIFF, JPG und PNG als Dateiformate unterstützt.&lt;br /&gt;
&lt;br /&gt;
Die wählbare Region, welche eine rechteckige Selektion ist, wird über die Koordinaten X1,X2,Y1,Y2 in Pixel definiert. Wobei X1=linker Rand, X2=rechter Rand, Y1=oberer Rand, Y2=unterer Rand.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn für die Koordinaten negative Werte eingesetzt werden, so werden die Positionen relativ zur Bildgrösse und ausgehend vom rechten oder unteren Bildrand berechnet!&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 §OCRTextRegion(Seite,X1,X2,Y1,Y2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bsp: Seite Nummer 5 (entspricht Datei Nummer 5). Bilddimensionen: 2663 Breite x 3603 Höhe&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,359,709,631,690)  -&amp;gt; entspricht einem Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,-2304,709,-2972,690)  -&amp;gt; entspricht genau dem gleichen Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59 &#039;&#039;&#039; weil das Bild die gleiche Dimension besitzt!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,-2304,-1954,-2972,-2913)  -&amp;gt; entspricht genau dem gleichen Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59 &#039;&#039;&#039;weil das Bild die gleiche Dimension besitzt!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===§FileAnzahl===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt dir Anzahl Dateien am aktuellen Datenschritt des Objektes zurück. Dabei werden alle Dateien auch in allen Unterordnern gezählt. Unsichtbare Dateien sowie die Ordner selbst zählen nicht.&lt;br /&gt;
&lt;br /&gt;
 §FileAnzahl()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§Hausnummer===&lt;br /&gt;
Diese Methode formatiert einen Hausnummer.&lt;br /&gt;
 §Hausnummer(Wert)&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
 12 -&amp;gt; 012&lt;br /&gt;
 123 -&amp;gt; 123&lt;br /&gt;
 12a -&amp;gt; 012a&lt;br /&gt;
 2a -&amp;gt; 002a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderSummeAT===&lt;br /&gt;
Gibt die Summe der Werte des Attributs aller Kinder zurück, nicht rekursiv, also nur der direkten Kinder.&lt;br /&gt;
 §KinderSummeAT(&#039;Attribut&#039;)&lt;br /&gt;
&lt;br /&gt;
===§KinderWertAT===&lt;br /&gt;
Gibt den Wert des Attributs des ersten Kindes zurück. Idealerweise hat es nur ein Kind. Sonst wir das erste genommen.&lt;br /&gt;
 §KinderWertAT(&#039;Attribut&#039;)&lt;br /&gt;
&lt;br /&gt;
===§isJSONValid===&lt;br /&gt;
Prüft ob ein Attribut ein valides JSON ist. Gibt Wahr (true) oder Falsch (false) zurück.&lt;br /&gt;
 §isJSONValid(&#039;JSON&#039;)&lt;br /&gt;
&lt;br /&gt;
===§StrasseAusschreiben===&lt;br /&gt;
Diese Methode prüft ob ein Strassennamen (mit oder ohne Hausnummer) schön formatiert ist. Dabei wird jeder Anfangsbuchstabe in einen Grossbuchstaben geändert. &amp;quot;str&amp;quot; und &amp;quot;str.&amp;quot; werden zu &amp;quot;strasse&amp;quot; ausgeschrieben.&lt;br /&gt;
&lt;br /&gt;
 §StrasseAusschreiben(&#039;Strasse&#039;)&lt;br /&gt;
&lt;br /&gt;
====Beispiele====&lt;br /&gt;
  Teststr 58A =&amp;gt; Teststrasse 58A&lt;br /&gt;
  zUr lindENstr. =&amp;gt; Zur Lindenstrasse&lt;br /&gt;
  Hofweg 68 =&amp;gt; Hofweg 68 &lt;br /&gt;
&lt;br /&gt;
==Weitere Beispiele==&lt;br /&gt;
 §OCRMatchCount(&#039;Bericht&#039;)&amp;gt;0 ==&amp;gt; Falls das Wort Bericht mindestens 1 Mal gefunden wurde ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[0-9][0-9][.]&#039;)=0 ==&amp;gt; Falls KEINE 2 stellige Zahl mit einem Punkt gefunden wird ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[BelegName]&#039;)&amp;gt;2 ==&amp;gt; Falls der Wert des Attributes BelegName mehr als 2 mal gefunden wird ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[BelegName]&#039;,1)&amp;gt;0 ==&amp;gt; Falls der Wert des Attributes BelegName mindestens einmal im OCR der Kindern gefunden wurde.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Verf%C3%BCgbare_Funktionen&amp;diff=9371</id>
		<title>Verfügbare Funktionen</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Verf%C3%BCgbare_Funktionen&amp;diff=9371"/>
		<updated>2025-10-23T15:17:01Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* §sortierung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die hier gelisteten Funktionen lassen sich bei allen Workflowschritten anwenden, welche einen Link zu dieser Seite besitzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beachte:&#039;&#039;&#039; Die Metadatumsfelder sind hier unbedingt als String (&#039;Metadatum&#039;) zu übergeben und nicht wie andersweitig in eckigen Klammern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§getQuittungsFeld===&lt;br /&gt;
&lt;br /&gt;
Holt den Wert aus einem Quittungsfeld. Das Objekt muss dazu eine Quittung besitzen. Es wird immer auf die letzte erstellte Quittung zurückgegriffen. Aktuell werden Quittungsdetail im JSON Format unterstützt.&lt;br /&gt;
&lt;br /&gt;
Die Funktion erwartet einen gültigen Pfad zu einem JSON Member, oder anderst gesagt den Schlüssel zu einem Attribut in dem JSON. (JSON Pfade der Quittung finden: Siehe [[Warten auf Rückmeldung]])&lt;br /&gt;
&lt;br /&gt;
 §getQuittungsFeld(&#039;pfad.zu.dem.gewünschten.feld&#039;)&lt;br /&gt;
&lt;br /&gt;
===§istInWortliste===&lt;br /&gt;
&lt;br /&gt;
Ermittelt ob ein Metadatum in einer Wortliste vorkommt; wobei 1 = kommt vor, 0 = kommt nicht vor.&lt;br /&gt;
&lt;br /&gt;
Die Wortliste ist als [https://helper.ch/wiki/index.php?title=Konfiguration Konfigurationsdatensatz] zu erstellen. Der Name der erstellen Wortliste wird als Parameter zum finden der Liste benötigt.&lt;br /&gt;
&lt;br /&gt;
 §istInWortliste(Metadatumsname,Wortlistenname,Suchtyp,Zeilenumbruchtyp)&lt;br /&gt;
&lt;br /&gt;
;Metadatumsname: Wert des Metadatums, zB &#039;Eugen&#039; oder [Vorname]&lt;br /&gt;
;Wortlistenname: Name der Wortliste, also des Konfigurationsdatensatzes.&lt;br /&gt;
;Suchtyp: 0=Es wird genau nach dem Wert gesucht (Standard), 1=Findet auch &#039;Hans&#039;, wenn in der Wortliste &#039;Eugen Hans&#039; oder &#039;Hans-Peter&#039; steht&lt;br /&gt;
;Zeilenumbruchtyp: Welcher Zeilenumbruch wird in der Wortliste verwendet: 0=Zeilenumbruch ist &#039;CR&#039; (Standard), 1=Zeilenumbruch ist &#039;CRLF&#039;&lt;br /&gt;
&lt;br /&gt;
Bsp.: Es wurde eine Liste mit Vornamen in der Konfiguration erstellt. Diese Liste lautet auf den Namen &amp;quot;Vornamenkonfiguration&amp;quot;. Ein Metadatum &amp;quot;Vorname&amp;quot; wurde erstellt, dort wurden zuvor Vornamen gespeichert.&lt;br /&gt;
&lt;br /&gt;
 §istInWortliste(&#039;Vorname&#039;,&#039;Vornamenkonfiguration&#039;)&lt;br /&gt;
&lt;br /&gt;
===§getConfidenceOfWordInRegionXML===&lt;br /&gt;
&lt;br /&gt;
Gibt die vom OCR ermittelte Konfidenz zu einem gefundenen Begriff zurück und schreibt den Wert in ein Metadatum. Erlaubt optional die Angabe eines Einschräkungsbereiches, in welchem der gesuchte Begriff vorkommen muss.&lt;br /&gt;
&lt;br /&gt;
Der Bereich ist als Row(left,top,width,height) anzugeben: §getConfidenceOfWordInRegionXML(&#039;Suchwort&#039;,row(left,top,width,height))&lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
 §getConfidenceOfWordInRegionXML(&#039;London&#039;,row(57,154,75,25))&lt;br /&gt;
&lt;br /&gt;
 0 = Begriff nicht gefunden&lt;br /&gt;
 0.1 - 100 = Konfidenz des gefundenen Begriffes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderWertATMin(AttributName) und §KinderWertATMax(AttributName)===&lt;br /&gt;
&lt;br /&gt;
Gibt den kleinsten oder den grössten Wert eines Metadatums mit dem gegebenen Atrributnamen von den direkten Nachfahren des Objektes zurück.&lt;br /&gt;
&lt;br /&gt;
Berücktichtigt den Datentyp für die Sortierung, falls dieser beim Attribut angegeben wurde. Bei Datumstypen ist Min das jüngste und Max das älteste.&lt;br /&gt;
&lt;br /&gt;
Gibt das ermittelte Metadatum zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderWertATStetig(AttributName,Min,Max)===&lt;br /&gt;
&lt;br /&gt;
Prüft ob ein Nachfahre des Objektes mit dem gegebenen Attributnamen im Bereich Min-Max eine stetige Zahlenfolge besitzt.&lt;br /&gt;
&lt;br /&gt;
Eignet sich z.B. um zu ermitteln, ob die Seitenzahlen der Kindobjekte im Metadatum mit dem Attributsnamen &amp;quot;Seitenzahl&amp;quot; zwischen den Werten 1-20 alle vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
Gibt wahr oder falsch zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§istMin und §istMax===&lt;br /&gt;
&lt;br /&gt;
Vergleicht von DO Objekten die Attributswerte des angegebenen Attributs miteinander, und ermittelt ob das DO den grössten oder den kleinsten Wert der verglichenen Objekte besitzt. Alle DO Typen, welchen den gleichen Attributsnamen besitzen, werden für den Vergleich herbeigezogen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Hierarchiestufe der Objekte kann, ausgehend vom Objekt eingeschränkt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pflicht: Metadatumsname, Hierarchieebene&amp;lt;br&amp;gt;&lt;br /&gt;
Optional: Metadatumsname2 (Ohne Metadatumsname2 werden allein die gefundenen Metadaten aus Metadatumsname verglichen, mit werden nur diejenigen Objekte welche den gleichen Wert in Metadatumsname2 haben verglichen).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 §istMax(Metadatumsname,Hierachieebene,Metadatumsname2)&lt;br /&gt;
 §istMax(Metadatumsname,../-2/-1/0/1/2/..,Metadatumsname2)&lt;br /&gt;
 §istMin(Metadatumsname,../-2/-1/0/1/2/..,Metadatumsname2)&lt;br /&gt;
 &lt;br /&gt;
 Bsp.:&lt;br /&gt;
 &#039;&#039;&#039;§istMax(&#039;AnzahlDok&#039;,1,&#039;Büronummer&#039;)&#039;&#039;&#039; Gibt 1 zurück, wenn das Objekt den grössten Wert im Attribut &#039;AnzahlDok&#039; hat, innerhalb der eigenen Tranche und der gleichen Büronummer. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 &lt;br /&gt;
 Hierachieebene: (Einschränkung)&lt;br /&gt;
 * 0 = Alle DO des Auftrages (=keine Einschränkung)&lt;br /&gt;
 * 1 = Alle DO mit dem selben Vorfahren auf Ebene 1 (typischerweise alle Objekte einer Tranche, inklusive der Tranche)&lt;br /&gt;
 * 2 = Alle DO mit dem selben Vorfahren auf Ebene 2&lt;br /&gt;
 * 3 = Alle DO mit dem selben Vorfahren auf Ebene 3&lt;br /&gt;
 * etc.&lt;br /&gt;
 * -1 = Alle auf der gleichen Ebene wie das DO Objekt, inklusive des Vorfahren &lt;br /&gt;
 * -2 = Alle 2 Ebenen höher als das DO Objekt&lt;br /&gt;
 &lt;br /&gt;
 Metadatumsname2: Schränkt die betrachteten Dos ein. Es werden nur die DO angesehen, die den gleichen Wert im Attribut &#039;&#039;&#039;Metadatumsname2&#039;&#039;&#039; haben.&lt;br /&gt;
&lt;br /&gt;
===§sortierung===&lt;br /&gt;
&lt;br /&gt;
Gibt die Sortierreihenfolge des Objektes zurück. Analog zu verwenden wie $min/$max. Wird der letzte Parameter nicht angegeben wird automatisch aufsteigend sortiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 §sortierung(Metadatumsname,../-2/-1/0/1/2/.., Metadatumsname2,0/1)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 §sortierung(&#039;Büronummer&#039;,-1,&#039;Vorname&#039;,0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 &lt;br /&gt;
 Hierachieebene: (Einschränkung)&lt;br /&gt;
 * 0 = Alle DO des Auftrages (=keine Einschränkung)&lt;br /&gt;
 * 1 = Alle DO mit dem selben Vorfahren auf Ebene 1 (typischerweise alle Objekte einer Tranche, inklusive der Tranche)&lt;br /&gt;
 * 2 = Alle DO mit dem selben Vorfahren auf Ebene 2&lt;br /&gt;
 * 3 = Alle DO mit dem selben Vorfahren auf Ebene 3&lt;br /&gt;
 * etc.&lt;br /&gt;
 * -1 = Alle auf der gleichen Ebene wie das DO Objekt, inklusive des Vorfahren &lt;br /&gt;
 * -2 = Alle 2 Ebenen höher als das DO Objekt&lt;br /&gt;
 &lt;br /&gt;
Metadatumsname2: Schränkt die betrachteten Dos ein. Es werden nur die DO angesehen, die den gleichen Wert im Attribut &#039;&#039;&#039;Metadatumsname2&#039;&#039;&#039; haben.&lt;br /&gt;
  &lt;br /&gt;
 Sortierreihenfolge: 0 = Aufwärts, 1 = Abwärts&lt;br /&gt;
&lt;br /&gt;
Wenn für das Metadatum das sortiert werden soll ein Datentyp angegeben wurde, dann muss der Datentyp mit den vorhandenen Werten in den Feldern übereinstimmen sonst gibt es einen Fehler. &lt;br /&gt;
Merke: Number ist z.B. nicht gleich Integer, für Number wird  mindestens eine Nachkommastelle erwartet. Wenn Integer angegeben wurde, darf z.B. kein Buchstabe in einem der Felder vorkommen.&lt;br /&gt;
&lt;br /&gt;
Wenn im Resultat Negative Werte stehen, dann deutet dies auf einen Verarbeitungsfehler.&lt;br /&gt;
 -2 = SQL Fehler bei der Abfrage&lt;br /&gt;
 -3 = falscher Datentyp&lt;br /&gt;
 -4 = mindestens ein Feld vom Typ Character/String war leer&lt;br /&gt;
&lt;br /&gt;
===§istEindeutig===&lt;br /&gt;
&lt;br /&gt;
Prüft ob für ein DO Objekt ein bestimmtes Metadatum im Vergleich zu weiteren DOs eindeutig ist. Vergleiche sind mit DOs auf wählbarer Hierarchieebene sowie mit gleichem oder abweichendem DO Typ möglich.&lt;br /&gt;
&lt;br /&gt;
 §istEindeutig(Metadatumsname, 0/1/2, 0/1/2[,DO Typen])&lt;br /&gt;
 §istEindeutig(Metadatumsname, Hierarchieebene, Typ-Einschränkung[,&#039;Typ1,Typ2,..&#039;])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 Bereich: 0 = Ganzer Auftrag, alle DO dieses Auftrages, 1 =  Alle DO auf Ebene 1, 2 = Alle DO auf Ebene 2&lt;br /&gt;
 Typ-Einschränkung: 0 = Alle Typen mit dem gleichen Metadatumsname, 1 = Gleicher Typ wie das Vergleichsobjekt, 2 = Alle im zwingend folgenden Parameter angegebenen Typen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anwendung&#039;&#039;&#039;&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,0,0) Alle DO des Auftrages, welche bei einem beliebiegen DO Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,1,1) Alle DO auf Ebene 1, welche zum gleichen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,0) Alle DO auf Ebene 2, welche bei einem beliebiegen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,1) Alle DO auf Ebene 2, welche zum gleichen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,2,&#039;Buch, Magazin, Zeitung&#039;) Alle DO auf Ebene 2, welche zu den angegebenen Typen &#039;Buch, Magazin, Zeitung&#039; und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
&lt;br /&gt;
Fehleingabe vermeiden:&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,2) Es wird eine Typeinschränkung (Parameter drei = 2) verlangt, ohne nachfolgende die gesuchten Typen zu nennen.&lt;br /&gt;
&lt;br /&gt;
===§KindNr===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt zurück, das wievielte Kind das Objekt ist. &lt;br /&gt;
&lt;br /&gt;
 §KindNr()&lt;br /&gt;
&lt;br /&gt;
 Bsp: &lt;br /&gt;
 Das Objekt hat 5 Geschwister und ist als viertes erstellt worden. Somit gibt die Methode §KindNr 4 zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§sortierungSignatur===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt zurück, die Position des Objektes von allen Objekten mit der gleichen Signatur.&lt;br /&gt;
&lt;br /&gt;
 §sortierungSignatur()&lt;br /&gt;
&lt;br /&gt;
 Bsp: &lt;br /&gt;
 Gegeben:&lt;br /&gt;
 Objekt 1 mit Signatur &#039;A&#039;&lt;br /&gt;
 Objekt 2 mit Signatur &#039;B&#039;&lt;br /&gt;
 Objekt 3 mit Sigantur &#039;A&#039;&lt;br /&gt;
 Objekt 4 mit Signatur &#039;A&#039;&lt;br /&gt;
 Objekt 5 mit Signatur &#039;C&#039;&lt;br /&gt;
 &lt;br /&gt;
 Wird zurückgegeben: &lt;br /&gt;
 Objekt 1 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 2 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;B&#039;)&lt;br /&gt;
 Objekt 3 -&amp;gt; 2 (weil es das zweite Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 4 -&amp;gt; 3 (weil es das dritte Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 5 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;C&#039;)&lt;br /&gt;
&lt;br /&gt;
===§minX===&lt;br /&gt;
&lt;br /&gt;
Bevor diese Methode ausgeführt werden kann, muss der Schritt [[Files messen]] gemacht werden.&lt;br /&gt;
Diese Methode gibt die kleinstmögliche Breite des Objektes nachdem die [[Files messen|Files gemessen]] wurden an, grösser oder gleich dem Parameter.&lt;br /&gt;
Es werden alle Files ausgewertet ausser PDFs.&lt;br /&gt;
Die Methode erwartet eine Zahl als Pixel-Wert.&lt;br /&gt;
&lt;br /&gt;
 §minX(minimumPixel)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 Objekt mit folgenden Files: auto.jpg (Breite: 100), baum.jpg (Breite:200), clown.jpg (Breite:110)&lt;br /&gt;
 Methode §minX(105) gibt 110 zurück&lt;br /&gt;
 Methode §minX(110) gibt 110 zurück&lt;br /&gt;
 Methode §minX(150) gibt 200 zurück&lt;br /&gt;
&lt;br /&gt;
===§minY===&lt;br /&gt;
&lt;br /&gt;
Bevor diese Methode ausgeführt werden kann, muss der Schritt [[Files messen]] gemacht werden.&lt;br /&gt;
Diese Methode gibt die kleinstmögliche Höhe des Objektes nachdem die [[Files messen|Files gemessen]] wurden an, grösser oder gleich dem Parameter.&lt;br /&gt;
Es werden alle Files ausgewertet ausser PDFs.&lt;br /&gt;
Die Methode erwartet eine Zahl als Pixel-Wert.&lt;br /&gt;
&lt;br /&gt;
 §minY(minimumPixel)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 Objekt mit folgenden Files: auto.jpg (Höhe: 100), baum.jpg (Höhe:200), clown.jpg (Höhe:110)&lt;br /&gt;
 Methode §minY(105) gibt 110 zurück&lt;br /&gt;
 Methode §minY(110) gibt 110 zurück&lt;br /&gt;
 Methode §minY(150) gibt 200 zurück&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§OCRTextRegion===&lt;br /&gt;
&lt;br /&gt;
Führt OCR auf einer bestimmen Seitennummer (einzelne Bild Datei!) in einer bestimmten Region aus, und gibt als Resultat den gefundenen Text zurück. Dieser Text lässt sich dann z.B. in ein Metadatum übertragen.&lt;br /&gt;
&lt;br /&gt;
Die Seitennummer wird über die Sortierreihenfolge der Dateinamen im Dateisystem bestimmt. Es werden TIFF, JPG und PNG als Dateiformate unterstützt.&lt;br /&gt;
&lt;br /&gt;
Die wählbare Region, welche eine rechteckige Selektion ist, wird über die Koordinaten X1,X2,Y1,Y2 in Pixel definiert. Wobei X1=linker Rand, X2=rechter Rand, Y1=oberer Rand, Y2=unterer Rand.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn für die Koordinaten negative Werte eingesetzt werden, so werden die Positionen relativ zur Bildgrösse und ausgehend vom rechten oder unteren Bildrand berechnet!&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 §OCRTextRegion(Seite,X1,X2,Y1,Y2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bsp: Seite Nummer 5 (entspricht Datei Nummer 5). Bilddimensionen: 2663 Breite x 3603 Höhe&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,359,709,631,690)  -&amp;gt; entspricht einem Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,-2304,709,-2972,690)  -&amp;gt; entspricht genau dem gleichen Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59 &#039;&#039;&#039; weil das Bild die gleiche Dimension besitzt!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,-2304,-1954,-2972,-2913)  -&amp;gt; entspricht genau dem gleichen Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59 &#039;&#039;&#039;weil das Bild die gleiche Dimension besitzt!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===§FileAnzahl===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt dir Anzahl Dateien am aktuellen Datenschritt des Objektes zurück. Dabei werden alle Dateien auch in allen Unterordnern gezählt. Unsichtbare Dateien sowie die Ordner selbst zählen nicht.&lt;br /&gt;
&lt;br /&gt;
 §FileAnzahl()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§Hausnummer===&lt;br /&gt;
Diese Methode formatiert einen Hausnummer.&lt;br /&gt;
 §Hausnummer(Wert)&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
 12 -&amp;gt; 012&lt;br /&gt;
 123 -&amp;gt; 123&lt;br /&gt;
 12a -&amp;gt; 012a&lt;br /&gt;
 2a -&amp;gt; 002a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderSummeAT===&lt;br /&gt;
Gibt die Summe der Werte des Attributs aller Kinder zurück, nicht rekursiv, also nur der direkten Kinder.&lt;br /&gt;
 §KinderSummeAT(&#039;Attribut&#039;)&lt;br /&gt;
&lt;br /&gt;
===§KinderWertAT===&lt;br /&gt;
Gibt den Wert des Attributs des ersten Kindes zurück. Idealerweise hat es nur ein Kind. Sonst wir das erste genommen.&lt;br /&gt;
 §KinderWertAT(&#039;Attribut&#039;)&lt;br /&gt;
&lt;br /&gt;
===§isJSONValid===&lt;br /&gt;
Prüft ob ein Attribut ein valides JSON ist. Gibt Wahr (true) oder Falsch (false) zurück.&lt;br /&gt;
 §isJSONValid(&#039;JSON&#039;)&lt;br /&gt;
&lt;br /&gt;
===§StrasseAusschreiben===&lt;br /&gt;
Diese Methode prüft ob ein Strassennamen (mit oder ohne Hausnummer) schön formatiert ist. Dabei wird jeder Anfangsbuchstabe in einen Grossbuchstaben geändert. &amp;quot;str&amp;quot; und &amp;quot;str.&amp;quot; werden zu &amp;quot;strasse&amp;quot; ausgeschrieben.&lt;br /&gt;
&lt;br /&gt;
 §StrasseAusschreiben(&#039;Strasse&#039;)&lt;br /&gt;
&lt;br /&gt;
====Beispiele====&lt;br /&gt;
  Teststr 58A =&amp;gt; Teststrasse 58A&lt;br /&gt;
  zUr lindENstr. =&amp;gt; Zur Lindenstrasse&lt;br /&gt;
  Hofweg 68 =&amp;gt; Hofweg 68 &lt;br /&gt;
&lt;br /&gt;
==Weitere Beispiele==&lt;br /&gt;
 §OCRMatchCount(&#039;Bericht&#039;)&amp;gt;0 ==&amp;gt; Falls das Wort Bericht mindestens 1 Mal gefunden wurde ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[0-9][0-9][.]&#039;)=0 ==&amp;gt; Falls KEINE 2 stellige Zahl mit einem Punkt gefunden wird ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[BelegName]&#039;)&amp;gt;2 ==&amp;gt; Falls der Wert des Attributes BelegName mehr als 2 mal gefunden wird ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[BelegName]&#039;,1)&amp;gt;0 ==&amp;gt; Falls der Wert des Attributes BelegName mindestens einmal im OCR der Kindern gefunden wurde.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Archivierung_von_Metadaten&amp;diff=9354</id>
		<title>Archivierung von Metadaten</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Archivierung_von_Metadaten&amp;diff=9354"/>
		<updated>2025-10-14T16:38:31Z</updated>

		<summary type="html">&lt;p&gt;Stefan: * überarbeitung des textes und verweis auf Einstellungen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Beschreibung==&lt;br /&gt;
&lt;br /&gt;
Um zu gewährleisten, dass keine Datensätze in der Tabelle DAdressattribut (Metadaten) versehentlich verändert oder gelöscht werden können, bzw. dass für den gegebenen Fall die Daten nicht aus der Datensicherung zurückgespielt werden müssen, wurde die fortlaufende archivierung jedes DAdressattribut Datensatzes ermöglicht. Die Archivierung wird über die Installationsmaske konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Jegliche Änderungen, und damit auch eine Löschung, werden fortlaufend als Duplikat des aktuellen Datensatzes im Zustand vor der Veränderung in der Tabelle DArchiv protokolliert.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist dabei unerheblich, über welche Schnittstelle eine Änderung gemacht wurde. Die Datenbank selbst überwacht die Tabelle und kümmert sich ebenso um die archivierung.&lt;br /&gt;
&lt;br /&gt;
Um die Daten aus dem Archiv zu betrachten oder wiederherzustellen, wurde ein Fenster im Helper verfügbar gemacht.&lt;br /&gt;
&lt;br /&gt;
==Archivierte Metadaten==&lt;br /&gt;
&lt;br /&gt;
Über dieses Fenster lassen sich die Archivierten Metadaten durchsuchen und wiederherstellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu sind die Objektnummer der gesuchten DO Objekte erforderlich.&lt;br /&gt;
&lt;br /&gt;
Die Suche ist Auftragsabhängig und auf genau einen Objekt- &amp;amp; Attributstyp bezogen.&amp;lt;br&amp;gt; &lt;br /&gt;
Es muss daher zuerst ein Auftrag und dazu der entsprechende gesuchte Attributstyp ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Weiter muss nach Datum / Uhrzeit eingegrenzt werden, um Zeitpunktabhängig nach der gesuchten Archiv Version zu Filtern.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird jeweils nur die letzte Version vor dem gegebenen Zeitpunkt angezeigt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn ein zugehöriger Metadaten Datensatz gelöscht wurde, und nicht nur geleert, wenden Sie sich bitte für eine Wiederherstellung an Profile GmbH.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Laden und wiederherstellen von archivierten Metadaten==&lt;br /&gt;
&lt;br /&gt;
Sie erreichen das Fenster über die Hauptmaske, über das Objektdetailfenster sowie über das Produktionsauftragsfenster unter dem Reiter &#039;Objekte&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Wählen Sie den zugehörigen Produktionsauftrag&lt;br /&gt;
* Wählen Sie den Typ des Objektes&lt;br /&gt;
* Wählen Sie den gesuchten Attributstyp&lt;br /&gt;
* Geben Sie eine oder mehrere Kommagetrennte Objektnummern (DO_SEQ) ein&lt;br /&gt;
* Geben Sie das Datum / die Uhrzeit des letzten bekannten Standes an, oder geben Sie das aktuelle Datum ein um alle Versionen über den Taster &#039;Archivdaten laden&#039; zu laden.&lt;br /&gt;
* Wählen Sie eine oder mehrere Datensätze aus der Liste aus und klicken Sie auf &#039;Selektierte wiederherstellen&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Darchivmetadaten2.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Generischer_CMD_Code&amp;diff=9335</id>
		<title>Generischer CMD Code</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Generischer_CMD_Code&amp;diff=9335"/>
		<updated>2025-08-29T07:25:40Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Multipage PDF-Dateien aus JPEG2000 Dateien erzeugen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  Keine&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  25 &lt;br /&gt;
;Eintrittsinvarianz: JA&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Besteht aus einem Serverjob OJOHZDOGenerischerCode. Ermöglicht dem Benutzer ein Skript ausführen zu lassen. &lt;br /&gt;
&lt;br /&gt;
Der Pfad zum Batchskript muss vollständig angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich werden [Quellordner] sowie [Zielordner] hierbei ersetzt.&lt;br /&gt;
&lt;br /&gt;
Der Rückgabewert bei positiver/erfolgreicher Skriptausführung beachtet neu (04.09.2024) keine Gross-/Kleinschreibung mehr! Bei der Eingabe des Parameters muss nicht mehr unterschieden werden -&amp;gt; ok = Ok = OK = oK&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_SKRIPT     &#039;&#039;Das auszuführende Skript.  z.B &#039;c:\skripts\multipagepdf.bat [Quellordner] [Zielordner]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_SKRIPTOK   &#039;&#039;Resultierender Wert bei positiver Durchführung&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag (FHK_Maske)==&lt;br /&gt;
&lt;br /&gt;
[[Datei:skripteintrag.png]]&lt;br /&gt;
&lt;br /&gt;
==Batchfiles==&lt;br /&gt;
&lt;br /&gt;
Einige Serverjobs bedienen sich externer Applikationen um ihre Aufgaben erledigen zu können.&lt;br /&gt;
&lt;br /&gt;
Da eine API meist fehlt, oder noch nicht über Omnis implementiert wurde, steuern wir solche externen Anwendungen gelegentlich über Windows Batch Skripte.&lt;br /&gt;
&lt;br /&gt;
Damit wir eine Übersicht zu den verwendeten Skripten haben, wollen wir diese hier in dieses Dokument aufnehmen und kurz umschreiben. Wir gehen dabei nicht auf die Anwendungen ein, diese werden in einem separaten Kapitel beschrieben.&lt;br /&gt;
&lt;br /&gt;
===Multipage TIFF Dateien aus TIFF Dateien erzeugen===&lt;br /&gt;
&lt;br /&gt;
Erzeugt in der Sortierreihenfolge der Dateienamen nach aus allen gefundenen TIF Dateien im Quellordner mit der Endung *.tif eine Multipage TIFF Datei im Zielordner mit dem Namen 0001.tif.&lt;br /&gt;
&lt;br /&gt;
;Skript &lt;br /&gt;
 multipage_tiff.bat [Quellordner] [Zielordner]&lt;br /&gt;
&lt;br /&gt;
;Rückgabewert für erfolgereiche Ausführung = Ok&lt;br /&gt;
&lt;br /&gt;
===Multipage PDF Dateien aus TIFF-Dateien erzeugen===&lt;br /&gt;
&lt;br /&gt;
TIF &#039;&#039;&#039;—&amp;gt;&#039;&#039;&#039; create JPG &#039;&#039;&#039;—&amp;gt;&#039;&#039;&#039; create multipage PDF&lt;br /&gt;
&lt;br /&gt;
Ein For Loop über eine Liste aller TIF Bilddateien aus einem Ordner ruft ImageMagick auf und übergibt den Namen der Datei und die Parameter für die Umwandlung. Die JPG werden im Quellordner der TIF Dateien erzeugt.&lt;br /&gt;
&lt;br /&gt;
Kommt es bei der Umwandlung zu JPG zu Fehlern, bricht das Skript ab und löscht die bereits erstellen JPG Dateien wieder. Der Name der fehlerverursachenden TIF Datei wir in errfile.txt im Quellordner gespeichert.&lt;br /&gt;
&lt;br /&gt;
Wurden alle Dateien umgewandelt wird im zweiten Schritt aus diesen wieder mit ImageMagick ein PDF erstellt. Das PDF wird im Zielpfad gespeichert.&lt;br /&gt;
&lt;br /&gt;
Bei Fehlern beim Erzeugen der PDF Datei werden alle bisher erzeugten Dateien gelöscht und der Name der verursachenden JPG Datei in errfile.txt im Quellordner gespeichert.&lt;br /&gt;
&lt;br /&gt;
;Skript - Multipagepdf.bat Quellpfad Zielpfad (Standard JPG Qualität = 70)&lt;br /&gt;
&lt;br /&gt;
  ::parameter für Pfade setzten&lt;br /&gt;
  set pathfrom=%1&lt;br /&gt;
  set pathto=%2&lt;br /&gt;
  &lt;br /&gt;
  :convert_to_jpg, &lt;br /&gt;
  FOR /F &amp;quot;tokens=*&amp;quot; %%G IN (&#039;dir /b %pathfrom%\*.tif&#039;) DO (&lt;br /&gt;
  magick mogrify -format jpg -quality 70 %pathfrom%\%%G 2&amp;gt;%pathfrom%\errlog.txt&lt;br /&gt;
  if errorlevel 1 (&lt;br /&gt;
  set err=1&lt;br /&gt;
  ECHO %%G &amp;gt;&amp;gt; %pathfrom%\errfile.txt	) )&lt;br /&gt;
  If &amp;quot;%err%&amp;quot;==&amp;quot;1&amp;quot; ( &lt;br /&gt;
  del %pathfrom%\*.jpg &lt;br /&gt;
  echo Fehler beim JPG erstellen &lt;br /&gt;
  exit	 )&lt;br /&gt;
  &lt;br /&gt;
  :create_pdf&lt;br /&gt;
  magick convert -define registry:temporary-path=d:\tmp %pathfrom%\*.jpg %pathto%\0001.pdf 2&amp;gt;&amp;gt;%pathfrom%\errlog.txt&lt;br /&gt;
  if errorlevel 1 (&lt;br /&gt;
  del %pathfrom%\*.jpg&lt;br /&gt;
  del %pathto%\0001.pdf&lt;br /&gt;
  echo Fehler beim PDF erstellen&lt;br /&gt;
  exit	)&lt;br /&gt;
  :end&lt;br /&gt;
  del %pathfrom%\*.jpg&lt;br /&gt;
  del %pathfrom%\*.txt&lt;br /&gt;
  echo Ok&lt;br /&gt;
  exit&lt;br /&gt;
&lt;br /&gt;
Alternativ dazu gibt es das Skript &#039;&#039;&#039;multipagepdf100.bat&#039;&#039;&#039;. HIer wird die Qualität des JPG auf 100% gesetzt&lt;br /&gt;
&lt;br /&gt;
Alternativ dazu gibt es das Skript &#039;&#039;&#039;multipagepdf75.bat&#039;&#039;&#039;. HIer wird die Qualität des JPG auf 75% gesetzt&lt;br /&gt;
&lt;br /&gt;
Alternativ dazu gibt es das Skript &#039;&#039;&#039;tiffzip2pdf.bat&#039;&#039;&#039;. Hier werden die Tiff-Dateien mit Zip-Kompression in das PDF eingesetzt. Es findet keine zwischenzeitliche Umwandlung in JPG statt.&lt;br /&gt;
&lt;br /&gt;
Alternativ dazu gibt es das Skript &#039;&#039;&#039;multipagepdf2k40.bat&#039;&#039;&#039;. Hier werden die Tiff-Dateien in JPEG2000 Dateien umgewandelt mit Qualitätseinstellung 40.&lt;br /&gt;
&lt;br /&gt;
Alternativ dazu gibt es das Skript &#039;&#039;&#039;multipagepdf_lonza_backq.bat&#039;&#039;&#039;. Ist identisch mit &#039;&#039;&#039;multipagepdf.bat&#039;&#039;&#039;, es ist jedoch stabliler hinsichtlich Sonderzeichen in den Pfadnamen (Wie z.B. Klammern () ). Der aktuelle Name wurde gewählt, weil es z.Z. nur für einen Auftrag mit Klammern im Produktionspfad erstellt wurde, jedoch noch nicht endgültig als Ersatz für &#039;&#039;&#039;multipagepdf.bat&#039;&#039;&#039; freigegeben wurde.&lt;br /&gt;
&lt;br /&gt;
===Multipage PDF-Dateien aus JPG-Dateien erzeugen===&lt;br /&gt;
Mit diesem Skript wird die Orientierung in den EXIF nicht berücksichtigt:&lt;br /&gt;
&lt;br /&gt;
;Skript - Multipagepdf2.bat Quellpfad Zielpfad:&lt;br /&gt;
&lt;br /&gt;
In den EXIF gespeicherte Orientierung berücksichtigen (= Bild automatisch drehen):&lt;br /&gt;
&lt;br /&gt;
;Skript - Multipagepdf2o.bat Quellpfad Zielpfad:&lt;br /&gt;
&lt;br /&gt;
===Umwandeln von TIFF-Dateien in JPG2000-Dateien===&lt;br /&gt;
;Skript - tif2jp2.bat Quellpfad Zielpfad:&lt;br /&gt;
&lt;br /&gt;
===Umwandeln von TIFF-Dateien in JPG-Dateien===&lt;br /&gt;
;Skript - tif2jpg.bat Quellpfad Zielpfad:&lt;br /&gt;
&lt;br /&gt;
=== Multipage PDF-Dateien aus JPEG2000 Dateien erzeugen===&lt;br /&gt;
&lt;br /&gt;
Da beim erzeugen des PDF die JPEG2000 Dateien dekomprimiert und ggf. nochmals neu komprimiert werden, empfiehlt es sich beim konvertieren von Ausgangsmaterial (z.B. TIF Dateien) zu JPEG2000, verlustfrei vor zu gehen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist zwar von minimsten Verlusten auszugehen, wenn das Material zwei mal mit der gleichen kompressionrate verarbeitet wird. &amp;lt;br&amp;gt;&lt;br /&gt;
Da ein möglicher zusätzlicher Verlust an Bildinformation (und auch Rechenzeit) so vermeidbar ist, wäre dies der optimalste Weg.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Skript &lt;br /&gt;
 Multipagepdf2k40.bat [pfadVon] [pfadZu] pixeldensity quality(0-100)&lt;br /&gt;
 Bsp.: Multipagepdf2k40.bat [Quellordner] [Zieordner] 300 75&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ::parameter für Pfade setzten&lt;br /&gt;
 &lt;br /&gt;
 set pathfrom=%~1&lt;br /&gt;
 set pathto=%~2&lt;br /&gt;
 set density=%3&lt;br /&gt;
 ::set resample=%4&lt;br /&gt;
 set quality=%4&lt;br /&gt;
 &lt;br /&gt;
 IF NOT DEFINED pathfrom exit&lt;br /&gt;
 IF NOT DEFINED pathto exit&lt;br /&gt;
 IF NOT DEFINED density set density=300&lt;br /&gt;
 IF NOT DEFINED quality set quality=40&lt;br /&gt;
 &lt;br /&gt;
 :convert_to_jpg&lt;br /&gt;
 FOR /F &amp;quot;tokens=*&amp;quot; %%G IN (&#039;dir /b %pathfrom%\*.tif&#039;) DO (&lt;br /&gt;
 &lt;br /&gt;
 magick &amp;quot;%pathfrom%\%%G&amp;quot; -format jp2 -quality 0 &amp;quot;%pathfrom%\%%G.jp2&amp;quot; 2&amp;gt;%pathfrom%\errlog.txt&lt;br /&gt;
 &lt;br /&gt;
 if errorlevel 1 (&lt;br /&gt;
 pause&lt;br /&gt;
 set err=1&lt;br /&gt;
 ECHO %%G &amp;gt;&amp;gt; %pathfrom%\errfile.txt&lt;br /&gt;
 )&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 If &amp;quot;%err%&amp;quot;==&amp;quot;1&amp;quot; ( &lt;br /&gt;
 del %pathfrom%\*.jp2 &lt;br /&gt;
 echo Fehler beim JP2 erstellen&lt;br /&gt;
 exit&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 :create_pdf&lt;br /&gt;
 magick -define registry:temporary-path=d:\tmp %pathfrom%\*.jp2 -density %density% -resample %density%x%density% -compress JPEG2000 -quality %quality% %pathto%\0001.pdf 2&amp;gt;&amp;gt;%pathfrom%\errlog.txt&lt;br /&gt;
 if errorlevel 1 (&lt;br /&gt;
 del %pathfrom%\*.jp2&lt;br /&gt;
 del %pathto%\0001.pdf&lt;br /&gt;
 echo Fehler beim PDF erstellen&lt;br /&gt;
 exit&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 :end&lt;br /&gt;
 del %pathfrom%\*.jp2&lt;br /&gt;
 del %pathfrom%\*.txt&lt;br /&gt;
 echo Ok&lt;br /&gt;
 ::exit&lt;br /&gt;
 &lt;br /&gt;
Beim umwandeln zum Format JPEG2000 kann die DPI Auflösung nicht gesteuert werden, bzw. wird immer auf 72DPI gerechnet und daraus die Dokumentengrösse abgeleitet in cm in die Datei eingebettet. &amp;lt;br&amp;gt;&lt;br /&gt;
Dies hat zur Folge, dass die Dokumente welche z.B. von 300DPI runtergerechnet wurden, anschliessend im PDF zu gross (Dokumentgrösse) erscheinen falls die gewünschten Einstellungen nicht korrekt gesetzt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Mit der Option -Density kann beim erzeugen des PDF&#039;s der DPI Wert angegeben werden. Mit der Option -resample kann das eingehende Format auf das Ausgangsformat umgerechnet werden.&lt;br /&gt;
 -density 200 -resample 98x98&lt;br /&gt;
 -density 300 -resample 300x300&lt;br /&gt;
&lt;br /&gt;
Beim konvertieren zu PDF werden die JPEG2000 Datei ohne Paramter nicht komprimiert eingebettet was ggf. zu grossen PDF Dateien führt.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb geben wir folgende Parameter mit:&lt;br /&gt;
 -compress JPEG2000 -quality 0 (verlustfrei)&lt;br /&gt;
 -compress JPEG2000 -quality 40 (gutes verhältniss kompression / verlust)&lt;br /&gt;
&lt;br /&gt;
===JPG2000 zu PDF Dateien verbinden===&lt;br /&gt;
; Skript - multipagepdf2k.bat source destination density quality:&lt;br /&gt;
Das Skript wandelt jpg2000 Dateien zu PDFs.&lt;br /&gt;
Parameter:&lt;br /&gt;
* source&lt;br /&gt;
* destination&lt;br /&gt;
* density: Die Auflösung, Standard ist 300 dpi&lt;br /&gt;
* quality: Die Qualität, Standard ist 40&lt;br /&gt;
&lt;br /&gt;
===Zwei PDF Dateien zu einer verbinden und umbenennen===&lt;br /&gt;
&lt;br /&gt;
Das Skript kann nur gestartet werden, wenn [Quellordner] und [Zielordner] mitgegeben wurden. &lt;br /&gt;
&lt;br /&gt;
Beachte: &#039;&#039;&#039;Die Deckblätter müssen zwingend auf &#039;_Beleg.PDF&#039; lauten.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Skript - mergePDF.bat source destination:&lt;br /&gt;
&lt;br /&gt;
  @echo off&lt;br /&gt;
  ::Randbedingungen: Es darf nur 2 Files im Ordner haben, der Beleg muss Namentlich vor der Zielpdf im Dateisystem sein&lt;br /&gt;
  ::Wurden 2 Parameter übergeben?&lt;br /&gt;
  &lt;br /&gt;
  IF [%1] == [] (exit -1)&lt;br /&gt;
    IF [%2] == [] (exit -1)&lt;br /&gt;
  :: Vars setzten&lt;br /&gt;
  set source=%1&lt;br /&gt;
  set destination=%2&lt;br /&gt;
  set fixedPDF=_Beleg.pdf&lt;br /&gt;
  set pdftkPath=C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe&lt;br /&gt;
  &lt;br /&gt;
  ::Existiern diese beiden Ordner?&lt;br /&gt;
  IF NOT EXIST %source% (exit -2)&lt;br /&gt;
  IF NOT EXIST %destination% (exit -3)&lt;br /&gt;
  &lt;br /&gt;
  ::Source so setzten, dass alle PDF&#039;s im Verzeichnis aufgelistet werden&lt;br /&gt;
  set sourceSearch=%source:~0,-1%&lt;br /&gt;
  set sourceSearch=%sourceSearch%\*.pdf&lt;br /&gt;
  &lt;br /&gt;
  ::Name des 2. PDF&#039;s herausfinden&lt;br /&gt;
  for /f %%a IN (&#039;dir /b /s &amp;quot;%sourceSearch%&amp;quot;&#039;) do (&lt;br /&gt;
  set targetPDF=%%a&lt;br /&gt;
  GOTO mergePDF )&lt;br /&gt;
  &lt;br /&gt;
  :mergePDF&lt;br /&gt;
  ::Pfad des Beleg PDF&lt;br /&gt;
  set firstPDF=%source:~0,-1%&lt;br /&gt;
  set firstPDF=%firstPDF%\%fixedPDF%&lt;br /&gt;
  &lt;br /&gt;
  ::Pfad des Output PDF&#039;s festlegen&lt;br /&gt;
  for %%b in (%targetPDF:\= %) do set targetPDFName=%%b&lt;br /&gt;
  set destinationPath=%destination:~0,-1%&lt;br /&gt;
  set destinationPath=%destination%\%targetPDFName%&lt;br /&gt;
  &lt;br /&gt;
  ::PDF mergen&lt;br /&gt;
  &amp;quot;%pdftkPath%&amp;quot; A=%firstPDF% B=%targetPDF% cat A B output %destinationPath% 2&amp;gt; err.txt&lt;br /&gt;
  for /f %%i in (err.txt) do (exit -4)&lt;br /&gt;
  echo ok&lt;br /&gt;
  exit&lt;br /&gt;
&lt;br /&gt;
===Erste Seite eines PDF Dokumentes in ein TIF Bild extrahieren===&lt;br /&gt;
&lt;br /&gt;
;Skript &lt;br /&gt;
 pdf2tif.bat [Quellordner] [Zielordner] [density (default 300)]&lt;br /&gt;
&lt;br /&gt;
Kopiert alle Dateien ausser PDFs von [Quellordner] nach [Zielordner].&lt;br /&gt;
&lt;br /&gt;
Erwartet genau eine PDF Datei in [pfadVon] und extrahiert daraus die erste Seite in ein TIF mit dem selben Namen wie das ursprungs PDF unter [Zielordner].&lt;br /&gt;
&lt;br /&gt;
Sind mehrere PDF&#039;s vorhanden, wird alphabetisch geordnet das erste davon genommen.&lt;br /&gt;
&lt;br /&gt;
===Bekannte Fehlermeldungen===&lt;br /&gt;
&lt;br /&gt;
2500 - Die Skriptdatei wurde nicht gefunden. Prüfe ob die Datei am genannten Pfad vorhanden ist, oder ob der Korrekte Pfad/Name zu dem Skript im Arbeitsschritt eingerichtet wurde.&lt;br /&gt;
&lt;br /&gt;
2501 - Bei der Ausführung des Skriptes sind Fehler aufgetreten. Siehe weitere Infos im Fehlertext.&lt;br /&gt;
&lt;br /&gt;
==Image Magick - Parameter und Optionen ==&lt;br /&gt;
&lt;br /&gt;
  -auto-orient (Berücksichtigt EXIF Orientierungsinformationen und dreht das Bild entsprechend.)&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=Verf%C3%BCgbare_Funktionen&amp;diff=9332</id>
		<title>Verfügbare Funktionen</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Verf%C3%BCgbare_Funktionen&amp;diff=9332"/>
		<updated>2025-08-01T09:27:10Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3524 Neue Funktion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die hier gelisteten Funktionen lassen sich bei allen Workflowschritten anwenden, welche einen Link zu dieser Seite besitzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beachte:&#039;&#039;&#039; Die Metadatumsfelder sind hier unbedingt als String (&#039;Metadatum&#039;) zu übergeben und nicht wie andersweitig in eckigen Klammern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§getQuittungsFeld===&lt;br /&gt;
&lt;br /&gt;
Holt den Wert aus einem Quittungsfeld. Das Objekt muss dazu eine Quittung besitzen. Es wird immer auf die letzte erstellte Quittung zurückgegriffen. Aktuell werden Quittungsdetail im JSON Format unterstützt.&lt;br /&gt;
&lt;br /&gt;
Die Funktion erwartet einen gültigen Pfad zu einem JSON Member, oder anderst gesagt den Schlüssel zu einem Attribut in dem JSON. (JSON Pfade der Quittung finden: Siehe [[Warten auf Rückmeldung]])&lt;br /&gt;
&lt;br /&gt;
 §getQuittungsFeld(&#039;pfad.zu.dem.gewünschten.feld&#039;)&lt;br /&gt;
&lt;br /&gt;
===§istInWortliste===&lt;br /&gt;
&lt;br /&gt;
Ermittelt ob ein Metadatum in einer Wortliste vorkommt; wobei 1 = kommt vor, 0 = kommt nicht vor.&lt;br /&gt;
&lt;br /&gt;
Die Wortliste ist als [https://helper.ch/wiki/index.php?title=Konfiguration Konfigurationsdatensatz] zu erstellen. Der Name der erstellen Wortliste wird als Parameter zum finden der Liste benötigt.&lt;br /&gt;
&lt;br /&gt;
 §istInWortliste(Metadatumsname,Wortlistenname,Suchtyp,Zeilenumbruchtyp)&lt;br /&gt;
&lt;br /&gt;
;Metadatumsname: Wert des Metadatums, zB &#039;Eugen&#039; oder [Vorname]&lt;br /&gt;
;Wortlistenname: Name der Wortliste, also des Konfigurationsdatensatzes.&lt;br /&gt;
;Suchtyp: 0=Es wird genau nach dem Wert gesucht (Standard), 1=Findet auch &#039;Hans&#039;, wenn in der Wortliste &#039;Eugen Hans&#039; oder &#039;Hans-Peter&#039; steht&lt;br /&gt;
;Zeilenumbruchtyp: Welcher Zeilenumbruch wird in der Wortliste verwendet: 0=Zeilenumbruch ist &#039;CR&#039; (Standard), 1=Zeilenumbruch ist &#039;CRLF&#039;&lt;br /&gt;
&lt;br /&gt;
Bsp.: Es wurde eine Liste mit Vornamen in der Konfiguration erstellt. Diese Liste lautet auf den Namen &amp;quot;Vornamenkonfiguration&amp;quot;. Ein Metadatum &amp;quot;Vorname&amp;quot; wurde erstellt, dort wurden zuvor Vornamen gespeichert.&lt;br /&gt;
&lt;br /&gt;
 §istInWortliste(&#039;Vorname&#039;,&#039;Vornamenkonfiguration&#039;)&lt;br /&gt;
&lt;br /&gt;
===§getConfidenceOfWordInRegionXML===&lt;br /&gt;
&lt;br /&gt;
Gibt die vom OCR ermittelte Konfidenz zu einem gefundenen Begriff zurück und schreibt den Wert in ein Metadatum. Erlaubt optional die Angabe eines Einschräkungsbereiches, in welchem der gesuchte Begriff vorkommen muss.&lt;br /&gt;
&lt;br /&gt;
Der Bereich ist als Row(left,top,width,height) anzugeben: §getConfidenceOfWordInRegionXML(&#039;Suchwort&#039;,row(left,top,width,height))&lt;br /&gt;
&lt;br /&gt;
Bsp.:&lt;br /&gt;
 §getConfidenceOfWordInRegionXML(&#039;London&#039;,row(57,154,75,25))&lt;br /&gt;
&lt;br /&gt;
 0 = Begriff nicht gefunden&lt;br /&gt;
 0.1 - 100 = Konfidenz des gefundenen Begriffes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderWertATMin(AttributName) und §KinderWertATMax(AttributName)===&lt;br /&gt;
&lt;br /&gt;
Gibt den kleinsten oder den grössten Wert eines Metadatums mit dem gegebenen Atrributnamen von den direkten Nachfahren des Objektes zurück.&lt;br /&gt;
&lt;br /&gt;
Berücktichtigt den Datentyp für die Sortierung, falls dieser beim Attribut angegeben wurde. Bei Datumstypen ist Min das jüngste und Max das älteste.&lt;br /&gt;
&lt;br /&gt;
Gibt das ermittelte Metadatum zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderWertATStetig(AttributName,Min,Max)===&lt;br /&gt;
&lt;br /&gt;
Prüft ob ein Nachfahre des Objektes mit dem gegebenen Attributnamen im Bereich Min-Max eine stetige Zahlenfolge besitzt.&lt;br /&gt;
&lt;br /&gt;
Eignet sich z.B. um zu ermitteln, ob die Seitenzahlen der Kindobjekte im Metadatum mit dem Attributsnamen &amp;quot;Seitenzahl&amp;quot; zwischen den Werten 1-20 alle vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
Gibt wahr oder falsch zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§istMin und §istMax===&lt;br /&gt;
&lt;br /&gt;
Vergleicht von DO Objekten die Attributswerte des angegebenen Attributs miteinander, und ermittelt ob das DO den grössten oder den kleinsten Wert der verglichenen Objekte besitzt. Alle DO Typen, welchen den gleichen Attributsnamen besitzen, werden für den Vergleich herbeigezogen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Hierarchiestufe der Objekte kann, ausgehend vom Objekt eingeschränkt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pflicht: Metadatumsname, Hierarchieebene&amp;lt;br&amp;gt;&lt;br /&gt;
Optional: Metadatumsname2 (Ohne Metadatumsname2 werden allein die gefundenen Metadaten aus Metadatumsname verglichen, mit werden nur diejenigen Objekte welche den gleichen Wert in Metadatumsname2 haben verglichen).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 §istMax(Metadatumsname,Hierachieebene,Metadatumsname2)&lt;br /&gt;
 §istMax(Metadatumsname,../-2/-1/0/1/2/..,Metadatumsname2)&lt;br /&gt;
 §istMin(Metadatumsname,../-2/-1/0/1/2/..,Metadatumsname2)&lt;br /&gt;
 &lt;br /&gt;
 Bsp.:&lt;br /&gt;
 &#039;&#039;&#039;§istMax(&#039;AnzahlDok&#039;,1,&#039;Büronummer&#039;)&#039;&#039;&#039; Gibt 1 zurück, wenn das Objekt den grössten Wert im Attribut &#039;AnzahlDok&#039; hat, innerhalb der eigenen Tranche und der gleichen Büronummer. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 &lt;br /&gt;
 Hierachieebene: (Einschränkung)&lt;br /&gt;
 * 0 = Alle DO des Auftrages (=keine Einschränkung)&lt;br /&gt;
 * 1 = Alle DO mit dem selben Vorfahren auf Ebene 1 (typischerweise alle Objekte einer Tranche, inklusive der Tranche)&lt;br /&gt;
 * 2 = Alle DO mit dem selben Vorfahren auf Ebene 2&lt;br /&gt;
 * 3 = Alle DO mit dem selben Vorfahren auf Ebene 3&lt;br /&gt;
 * etc.&lt;br /&gt;
 * -1 = Alle auf der gleichen Ebene wie das DO Objekt, inklusive des Vorfahren &lt;br /&gt;
 * -2 = Alle 2 Ebenen höher als das DO Objekt&lt;br /&gt;
 &lt;br /&gt;
 Metadatumsname2: Schränkt die betrachteten Dos ein. Es werden nur die DO angesehen, die den gleichen Wert im Attribut &#039;&#039;&#039;Metadatumsname2&#039;&#039;&#039; haben.&lt;br /&gt;
&lt;br /&gt;
===§sortierung===&lt;br /&gt;
&lt;br /&gt;
Gibt die Sortierreihenfolge des Objektes zurück. Analog zu verwenden wie $min/$max. &lt;br /&gt;
&lt;br /&gt;
 §sortierung(Metadatumsname,../-2/-1/0/1/2/.., Metadatumsname2,0/1)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 §sortierung(&#039;Büronummer&#039;,-1,&#039;Metadatumsname2&#039;,0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 &lt;br /&gt;
 Hierachieebene: (Einschränkung)&lt;br /&gt;
 * 0 = Alle DO des Auftrages (=keine Einschränkung)&lt;br /&gt;
 * 1 = Alle DO mit dem selben Vorfahren auf Ebene 1 (typischerweise alle Objekte einer Tranche, inklusive der Tranche)&lt;br /&gt;
 * 2 = Alle DO mit dem selben Vorfahren auf Ebene 2&lt;br /&gt;
 * 3 = Alle DO mit dem selben Vorfahren auf Ebene 3&lt;br /&gt;
 * etc.&lt;br /&gt;
 * -1 = Alle auf der gleichen Ebene wie das DO Objekt, inklusive des Vorfahren &lt;br /&gt;
 * -2 = Alle 2 Ebenen höher als das DO Objekt&lt;br /&gt;
 &lt;br /&gt;
Metadatumsname2: Schränkt die betrachteten Dos ein. Es werden nur die DO angesehen, die den gleichen Wert im Attribut &#039;&#039;&#039;Metadatumsname2&#039;&#039;&#039; haben.&lt;br /&gt;
  &lt;br /&gt;
 Sortierreihenfolge: 0 = Aufwärts, 1 = Abwärts&lt;br /&gt;
&lt;br /&gt;
===§istEindeutig===&lt;br /&gt;
&lt;br /&gt;
Prüft ob für ein DO Objekt ein bestimmtes Metadatum im Vergleich zu weiteren DOs eindeutig ist. Vergleiche sind mit DOs auf wählbarer Hierarchieebene sowie mit gleichem oder abweichendem DO Typ möglich.&lt;br /&gt;
&lt;br /&gt;
 §istEindeutig(Metadatumsname, 0/1/2, 0/1/2[,DO Typen])&lt;br /&gt;
 §istEindeutig(Metadatumsname, Hierarchieebene, Typ-Einschränkung[,&#039;Typ1,Typ2,..&#039;])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
 Metadatumsname: Der Name des Metadatums&lt;br /&gt;
 Bereich: 0 = Ganzer Auftrag, alle DO dieses Auftrages, 1 =  Alle DO auf Ebene 1, 2 = Alle DO auf Ebene 2&lt;br /&gt;
 Typ-Einschränkung: 0 = Alle Typen mit dem gleichen Metadatumsname, 1 = Gleicher Typ wie das Vergleichsobjekt, 2 = Alle im zwingend folgenden Parameter angegebenen Typen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anwendung&#039;&#039;&#039;&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,0,0) Alle DO des Auftrages, welche bei einem beliebiegen DO Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,1,1) Alle DO auf Ebene 1, welche zum gleichen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,0) Alle DO auf Ebene 2, welche bei einem beliebiegen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,1) Alle DO auf Ebene 2, welche zum gleichen Typ und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,2,&#039;Buch, Magazin, Zeitung&#039;) Alle DO auf Ebene 2, welche zu den angegebenen Typen &#039;Buch, Magazin, Zeitung&#039; und dem Attribut &#039;Verlag&#039; das selbe Metadatum besitzen&lt;br /&gt;
&lt;br /&gt;
Fehleingabe vermeiden:&lt;br /&gt;
 §istEindeutig(&#039;Verlag&#039;,2,2) Es wird eine Typeinschränkung (Parameter drei = 2) verlangt, ohne nachfolgende die gesuchten Typen zu nennen.&lt;br /&gt;
&lt;br /&gt;
===§KindNr===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt zurück, das wievielte Kind das Objekt ist. &lt;br /&gt;
&lt;br /&gt;
 §KindNr()&lt;br /&gt;
&lt;br /&gt;
 Bsp: &lt;br /&gt;
 Das Objekt hat 5 Geschwister und ist als viertes erstellt worden. Somit gibt die Methode §KindNr 4 zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§sortierungSignatur===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt zurück, die Position des Objektes von allen Objekten mit der gleichen Signatur.&lt;br /&gt;
&lt;br /&gt;
 §sortierungSignatur()&lt;br /&gt;
&lt;br /&gt;
 Bsp: &lt;br /&gt;
 Gegeben:&lt;br /&gt;
 Objekt 1 mit Signatur &#039;A&#039;&lt;br /&gt;
 Objekt 2 mit Signatur &#039;B&#039;&lt;br /&gt;
 Objekt 3 mit Sigantur &#039;A&#039;&lt;br /&gt;
 Objekt 4 mit Signatur &#039;A&#039;&lt;br /&gt;
 Objekt 5 mit Signatur &#039;C&#039;&lt;br /&gt;
 &lt;br /&gt;
 Wird zurückgegeben: &lt;br /&gt;
 Objekt 1 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 2 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;B&#039;)&lt;br /&gt;
 Objekt 3 -&amp;gt; 2 (weil es das zweite Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 4 -&amp;gt; 3 (weil es das dritte Objekt ist mit Signatur &#039;A&#039;)&lt;br /&gt;
 Objekt 5 -&amp;gt; 1 (weil es das erste Objekt ist mit Signatur &#039;C&#039;)&lt;br /&gt;
&lt;br /&gt;
===§minX===&lt;br /&gt;
&lt;br /&gt;
Bevor diese Methode ausgeführt werden kann, muss der Schritt [[Files messen]] gemacht werden.&lt;br /&gt;
Diese Methode gibt die kleinstmögliche Breite des Objektes nachdem die [[Files messen|Files gemessen]] wurden an, grösser oder gleich dem Parameter.&lt;br /&gt;
Es werden alle Files ausgewertet ausser PDFs.&lt;br /&gt;
Die Methode erwartet eine Zahl als Pixel-Wert.&lt;br /&gt;
&lt;br /&gt;
 §minX(minimumPixel)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 Objekt mit folgenden Files: auto.jpg (Breite: 100), baum.jpg (Breite:200), clown.jpg (Breite:110)&lt;br /&gt;
 Methode §minX(105) gibt 110 zurück&lt;br /&gt;
 Methode §minX(110) gibt 110 zurück&lt;br /&gt;
 Methode §minX(150) gibt 200 zurück&lt;br /&gt;
&lt;br /&gt;
===§minY===&lt;br /&gt;
&lt;br /&gt;
Bevor diese Methode ausgeführt werden kann, muss der Schritt [[Files messen]] gemacht werden.&lt;br /&gt;
Diese Methode gibt die kleinstmögliche Höhe des Objektes nachdem die [[Files messen|Files gemessen]] wurden an, grösser oder gleich dem Parameter.&lt;br /&gt;
Es werden alle Files ausgewertet ausser PDFs.&lt;br /&gt;
Die Methode erwartet eine Zahl als Pixel-Wert.&lt;br /&gt;
&lt;br /&gt;
 §minY(minimumPixel)&lt;br /&gt;
&lt;br /&gt;
 Bsp:&lt;br /&gt;
 Objekt mit folgenden Files: auto.jpg (Höhe: 100), baum.jpg (Höhe:200), clown.jpg (Höhe:110)&lt;br /&gt;
 Methode §minY(105) gibt 110 zurück&lt;br /&gt;
 Methode §minY(110) gibt 110 zurück&lt;br /&gt;
 Methode §minY(150) gibt 200 zurück&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§OCRTextRegion===&lt;br /&gt;
&lt;br /&gt;
Führt OCR auf einer bestimmen Seitennummer (einzelne Bild Datei!) in einer bestimmten Region aus, und gibt als Resultat den gefundenen Text zurück. Dieser Text lässt sich dann z.B. in ein Metadatum übertragen.&lt;br /&gt;
&lt;br /&gt;
Die Seitennummer wird über die Sortierreihenfolge der Dateinamen im Dateisystem bestimmt. Es werden TIFF, JPG und PNG als Dateiformate unterstützt.&lt;br /&gt;
&lt;br /&gt;
Die wählbare Region, welche eine rechteckige Selektion ist, wird über die Koordinaten X1,X2,Y1,Y2 in Pixel definiert. Wobei X1=linker Rand, X2=rechter Rand, Y1=oberer Rand, Y2=unterer Rand.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wenn für die Koordinaten negative Werte eingesetzt werden, so werden die Positionen relativ zur Bildgrösse und ausgehend vom rechten oder unteren Bildrand berechnet!&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 §OCRTextRegion(Seite,X1,X2,Y1,Y2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bsp: Seite Nummer 5 (entspricht Datei Nummer 5). Bilddimensionen: 2663 Breite x 3603 Höhe&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,359,709,631,690)  -&amp;gt; entspricht einem Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,-2304,709,-2972,690)  -&amp;gt; entspricht genau dem gleichen Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59 &#039;&#039;&#039; weil das Bild die gleiche Dimension besitzt!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 §OCRTextRegion(5,-2304,-1954,-2972,-2913)  -&amp;gt; entspricht genau dem gleichen Auswahlrechteck mit Abstand Links=359, Abstand oben=631, Breite=350, Höhe=59 &#039;&#039;&#039;weil das Bild die gleiche Dimension besitzt!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===§FileAnzahl===&lt;br /&gt;
&lt;br /&gt;
Diese Methode gibt dir Anzahl Dateien am aktuellen Datenschritt des Objektes zurück. Dabei werden alle Dateien auch in allen Unterordnern gezählt. Unsichtbare Dateien sowie die Ordner selbst zählen nicht.&lt;br /&gt;
&lt;br /&gt;
 §FileAnzahl()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§Hausnummer===&lt;br /&gt;
Diese Methode formatiert einen Hausnummer.&lt;br /&gt;
 §Hausnummer(Wert)&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
 12 -&amp;gt; 012&lt;br /&gt;
 123 -&amp;gt; 123&lt;br /&gt;
 12a -&amp;gt; 012a&lt;br /&gt;
 2a -&amp;gt; 002a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===§KinderSummeAT===&lt;br /&gt;
Gibt die Summe der Werte des Attributs aller Kinder zurück, nicht rekursiv, also nur der direkten Kinder.&lt;br /&gt;
 §KinderSummeAT(&#039;Attribut&#039;)&lt;br /&gt;
&lt;br /&gt;
===§KinderWertAT===&lt;br /&gt;
Gibt den Wert des Attributs des ersten Kindes zurück. Idealerweise hat es nur ein Kind. Sonst wir das erste genommen.&lt;br /&gt;
 §KinderWertAT(&#039;Attribut&#039;)&lt;br /&gt;
&lt;br /&gt;
===§isJSONValid===&lt;br /&gt;
Prüft ob ein Attribut ein valides JSON ist. Gibt Wahr (true) oder Falsch (false) zurück.&lt;br /&gt;
 §isJSONValid(&#039;JSON&#039;)&lt;br /&gt;
&lt;br /&gt;
===§StrasseAusschreiben===&lt;br /&gt;
Diese Methode prüft ob ein Strassennamen (mit oder ohne Hausnummer) schön formatiert ist. Dabei wird jeder Anfangsbuchstabe in einen Grossbuchstaben geändert. &amp;quot;str&amp;quot; und &amp;quot;str.&amp;quot; werden zu &amp;quot;strasse&amp;quot; ausgeschrieben.&lt;br /&gt;
&lt;br /&gt;
 §StrasseAusschreiben(&#039;Strasse&#039;)&lt;br /&gt;
&lt;br /&gt;
====Beispiele====&lt;br /&gt;
  Teststr 58A =&amp;gt; Teststrasse 58A&lt;br /&gt;
  zUr lindENstr. =&amp;gt; Zur Lindenstrasse&lt;br /&gt;
  Hofweg 68 =&amp;gt; Hofweg 68 &lt;br /&gt;
&lt;br /&gt;
==Weitere Beispiele==&lt;br /&gt;
 §OCRMatchCount(&#039;Bericht&#039;)&amp;gt;0 ==&amp;gt; Falls das Wort Bericht mindestens 1 Mal gefunden wurde ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[0-9][0-9][.]&#039;)=0 ==&amp;gt; Falls KEINE 2 stellige Zahl mit einem Punkt gefunden wird ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[BelegName]&#039;)&amp;gt;2 ==&amp;gt; Falls der Wert des Attributes BelegName mehr als 2 mal gefunden wird ist der Ausdruck wahr&amp;lt;br&amp;gt;&lt;br /&gt;
 §OCRMatchCount(&#039;[BelegName]&#039;,1)&amp;gt;0 ==&amp;gt; Falls der Wert des Attributes BelegName mindestens einmal im OCR der Kindern gefunden wurde.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=RestAPI_Services_Up-/Download&amp;diff=9330</id>
		<title>RestAPI Services Up-/Download</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=RestAPI_Services_Up-/Download&amp;diff=9330"/>
		<updated>2025-07-25T13:21:27Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3518 /* Verfügbare Anbieter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3518&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  77 &lt;br /&gt;
;Eintrittsinvarianz: JA&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
&lt;br /&gt;
Besteht aus zwei Serverjobs, analog zum Schritt [[Files kopieren]]. Lädt Dateien oder weitere Daten zur Bearbeitung zu einer REST Schnittstelle hoch und lädt dies anschliessend wieder zurück.&lt;br /&gt;
&lt;br /&gt;
Es können unterschiedliche Anbieter und deren Dienste damit angebunden werden.&lt;br /&gt;
&lt;br /&gt;
Das Hoch- und das Herunterladen werden in ein und dem selben Arbeitsschritt dargestellt und ausgeführt. Die Objekte welche bereits hochgeladen wurden behalten den Status &amp;quot;In Arbeit&amp;quot;, bis diese erfolgreich abgeholt wurden. Danach gehen sie zum nächsten Arbeitsschritt. &lt;br /&gt;
&lt;br /&gt;
Für die Serverjobkonfiguration sind die Schritte auf zwei Unterschiedliche Jobs verteilt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDORestApiUpload&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sendet Daten zu einem REST Dienst.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDORestApiDownload&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Empfängt Daten von einem REST Dienst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
Das Konfigurationsfenster besteht jeweils aus zwei Teilen:&lt;br /&gt;
&lt;br /&gt;
* Auswahl und Konfiguration des API Anbieter&lt;br /&gt;
* Auswahl und Konfiguration eines verfügbaren API Befehls&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration ist je nach Anbieter unterschiedlich. In der Regel verlangt jeder Anbieter eine Authentifizierung und Authorisierung. Dies wird meistens in Form einers API-Keys (Token) gehandhabt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Anbieter und/oder Befehlen hat die Löschung der aktuellen Konfiguration zur Folge und muss deshalb zusätzlich bestätigt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Schritt hat genau einen Ausgang.&lt;br /&gt;
&lt;br /&gt;
==Verfügbare Anbieter==&lt;br /&gt;
&lt;br /&gt;
=== Azure AI Services ===&lt;br /&gt;
&lt;br /&gt;
Dies ist eine Cognitive Service Anwendung von Microsoft Azure zur AI unterstützen Erkennung von Dokumenteninhalten.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;API Konfiguration&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
Die API verlangt den Endpunkt URL (API Pfad) und den API Key der zugehörigen Document Intelligence Resource in Azure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:AzureAPIServices.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;API Befehle&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;Durchsuchbares PDF (OCR)&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Aktuell wird nur die Verarbeitung von PDF Dateien unterstützt. Es wird nur eine PDF Datei verarbeitet. Falls sich mehrere Dateien im Quellordner befinden, so wird entsprechend der Dateisystemsortierung die erste davon genommen.&lt;br /&gt;
&lt;br /&gt;
Die API Version 4.0 ist die Standardversion.&lt;br /&gt;
&lt;br /&gt;
[[Datei:SearchPDF.png]]&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:SearchPDF.png&amp;diff=9329</id>
		<title>Datei:SearchPDF.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:SearchPDF.png&amp;diff=9329"/>
		<updated>2025-07-25T13:19:06Z</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=Datei:AzureAPIServices.png&amp;diff=9328</id>
		<title>Datei:AzureAPIServices.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:AzureAPIServices.png&amp;diff=9328"/>
		<updated>2025-07-25T13:17:20Z</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=RestAPI_Services_Up-/Download&amp;diff=9327</id>
		<title>RestAPI Services Up-/Download</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=RestAPI_Services_Up-/Download&amp;diff=9327"/>
		<updated>2025-07-25T13:12:26Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3518&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  77 &lt;br /&gt;
;Eintrittsinvarianz: JA&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
&lt;br /&gt;
Besteht aus zwei Serverjobs, analog zum Schritt [[Files kopieren]]. Lädt Dateien oder weitere Daten zur Bearbeitung zu einer REST Schnittstelle hoch und lädt dies anschliessend wieder zurück.&lt;br /&gt;
&lt;br /&gt;
Es können unterschiedliche Anbieter und deren Dienste damit angebunden werden.&lt;br /&gt;
&lt;br /&gt;
Das Hoch- und das Herunterladen werden in ein und dem selben Arbeitsschritt dargestellt und ausgeführt. Die Objekte welche bereits hochgeladen wurden behalten den Status &amp;quot;In Arbeit&amp;quot;, bis diese erfolgreich abgeholt wurden. Danach gehen sie zum nächsten Arbeitsschritt. &lt;br /&gt;
&lt;br /&gt;
Für die Serverjobkonfiguration sind die Schritte auf zwei Unterschiedliche Jobs verteilt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDORestApiUpload&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sendet Daten zu einem REST Dienst.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDORestApiDownload&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Empfängt Daten von einem REST Dienst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
&lt;br /&gt;
Das Konfigurationsfenster besteht jeweils aus zwei Teilen:&lt;br /&gt;
&lt;br /&gt;
* Auswahl und Konfiguration des API Anbieter&lt;br /&gt;
* Auswahl und Konfiguration eines verfügbaren API Befehls&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration ist je nach Anbieter unterschiedlich. In der Regel verlangt jeder Anbieter eine Authentifizierung und Authorisierung. Dies wird meistens in Form einers API-Keys (Token) gehandhabt.&lt;br /&gt;
&lt;br /&gt;
Ein Wechsel zwischen Anbieter und/oder Befehlen hat die Löschung der aktuellen Konfiguration zur Folge und muss deshalb zusätzlich bestätigt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Schritt hat genau einen Ausgang.&lt;br /&gt;
&lt;br /&gt;
==Verfügbare Anbieter==&lt;br /&gt;
&lt;br /&gt;
=== Azure AI Services ===&lt;br /&gt;
&lt;br /&gt;
Dies ist eine Cognitive Service Anwendung von Microsoft Azure zur AI unterstützen Erkennung von Dokumenteninhalten.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;API Konfiguration&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
Die API verlangt den Endpunkt URL (API Pfad) und den API Key der zugehörigen Document Intelligence Resource in Azure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:azure_api.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;API Befehle&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;Durchsuchbares PDF (OCR)&#039;&#039; =====&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=RestAPI_Services_Up-/Download&amp;diff=9326</id>
		<title>RestAPI Services Up-/Download</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=RestAPI_Services_Up-/Download&amp;diff=9326"/>
		<updated>2025-07-25T12:57:38Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3518&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  77 &lt;br /&gt;
;Eintrittsinvarianz: JA&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
&lt;br /&gt;
Besteht aus zwei Serverjobs, analog zum Schritt [[Files kopieren]]. Lädt Dateien oder weitere Daten zur Bearbeitung zu einer REST Schnittstelle hoch und lädt dies anschliessend wieder zurück.&lt;br /&gt;
&lt;br /&gt;
Es können unterschiedliche Anbieter und deren Dienste damit angebunden werden.&lt;br /&gt;
&lt;br /&gt;
Das Hoch- und das Herunterladen werden in ein und dem selben Arbeitsschritt dargestellt und ausgeführt. Die Objekte welche bereits hochgeladen wurden behalten den Status &amp;quot;In Arbeit&amp;quot;, bis diese erfolgreich abgeholt wurden. Danach gehen sie zum nächsten Arbeitsschritt. &lt;br /&gt;
&lt;br /&gt;
Für die Serverjobkonfiguration sind die Schritte auf zwei Unterschiedliche Jobs verteilt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDORestApiUpload&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sendet Daten zu einem REST Dienst.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDORestApiDownload&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Empfängt Daten von einem REST Dienst.&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=RestAPI_Services_Up-/Download&amp;diff=9325</id>
		<title>RestAPI Services Up-/Download</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=RestAPI_Services_Up-/Download&amp;diff=9325"/>
		<updated>2025-07-25T12:57:26Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Neue Seite für REST API Services&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  3518&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  77 &lt;br /&gt;
;Eintrittsinvarianz: JA&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
&lt;br /&gt;
Besteht aus zwei Serverjobs, analog zum Schritt [[Files kopieren]]. Lädt Dateien oder weitere Daten zur Bearbeitung zu einer REST Schnittstelle hoch und lädt dies anschliessend wieder zurück.&lt;br /&gt;
&lt;br /&gt;
Es können unterschiedliche Anbieter und deren Dienste damit angebunden werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Hoch- und das Herunterladen werden in ein und dem selben Arbeitsschritt dargestellt und ausgeführt. Die Objekte welche bereits hochgeladen wurden behalten den Status &amp;quot;In Arbeit&amp;quot;, bis diese erfolgreich abgeholt wurden. Danach gehen sie zum nächsten Arbeitsschritt. &lt;br /&gt;
&lt;br /&gt;
Für die Serverjobkonfiguration sind die Schritte auf zwei Unterschiedliche Jobs verteilt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDORestApiUpload&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sendet Daten zu einem REST Dienst.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OJOHZDORestApiDownload&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Empfängt Daten von einem REST Dienst.&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=9324</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=9324"/>
		<updated>2025-07-25T12:39:35Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Neue Schritte&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;
[[Kategorie:Workflowschritt]]&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=9323</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=9323"/>
		<updated>2025-07-25T12:37:34Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &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]]&lt;br /&gt;
|-&lt;br /&gt;
| 74 || [[Warten nach Objekttyp]]&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]]&lt;br /&gt;
|}&lt;br /&gt;
[[Kategorie:Workflowschritt]]&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:Digitalisierungssoftware.png&amp;diff=9304</id>
		<title>Datei:Digitalisierungssoftware.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Digitalisierungssoftware.png&amp;diff=9304"/>
		<updated>2025-05-28T13:45:27Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Digitalisierungssoftware.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=Normaler_Arbeitsschritt&amp;diff=9303</id>
		<title>Normaler Arbeitsschritt</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Normaler_Arbeitsschritt&amp;diff=9303"/>
		<updated>2025-05-28T13:44:02Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Digitalisierungssoftware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  2237&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  0&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Dieser Arbeitsschritt wird zB fürs Digitalisieren oder andere manuelle Tätigkeiten an Files verwendet. Er legt die Daten des vorherigen Arbeitschrittes eines Objektes in C:\Work\Input und erwartet die Daten nach der manuellen Bearbeitung in C:\Work\Output.&lt;br /&gt;
===Digitalisieren===&lt;br /&gt;
Digitalisieren Sie alles in C:\Work\Output.&lt;br /&gt;
===Manuelle Bearbeitung von Files===&lt;br /&gt;
&lt;br /&gt;
===Leistungen===&lt;br /&gt;
Beim Starten des Schrittes wird Name und Änderungsdatum der Files im Ordner C:\Work\Output in einer Liste gespeichert. Am Beenden wird die Liste mit dem dann aktuellen Inhalt verglichen. Es können folgenden Leistungen vorkommen:&lt;br /&gt;
;Datei, Create: Eine Datei mit diesem Namen existierte beim Start noch nicht.&lt;br /&gt;
;Datei, Update: Eine Datei mit diesem Namen existierte beim Start schon, hat am Ende aber ein anderes Änderungsdatum.&lt;br /&gt;
;Datei, Delete: Eine Datei mit diesem Namen existierte beim Start, fehlt aber am Ende.&lt;br /&gt;
;Sonderobjekte: Ein Sonderobjekt wurde erstellt.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
* Generell&lt;br /&gt;
&lt;br /&gt;
* File Test, Die Filetests sind hier nicht rekursiv. Es werden nur die Files auf der obersten Ebene im Arbeitsordner kontrolliert.&lt;br /&gt;
&lt;br /&gt;
* Metadaten&lt;br /&gt;
&lt;br /&gt;
* Ausgänge: Ermöglicht das Einrichten zusätzlicher Ausgänge für nachfolgende Arbeitsschritte&lt;br /&gt;
&lt;br /&gt;
* Ausgang für hier erstellte Sonderobjekte: Sonderobjekte im Fenster Typ0 (nicht Typ0abc), die an diesem Schritt erstellt werden, nehmen nicht einen der im Workflow konfigurierten Ausgänge. Sie werden zu dem Schritt geleitet, den Sie im Fenster Produktionsauftrage im Register Produktionsschritte (unten rechts) eingeben können: &#039;&#039;&#039;Arbeitschritt für Sonderobjekte&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Serien Nr. Scanner: Schreibt die Seriennummer eines Scanners in die Bilddatei. Ermöglicht die zwingende Angabe der Seriennummer eines verwendeten Eingabegerätes / Scanners beim starten des Arbeitsfensters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Einstellungsfenster==&lt;br /&gt;
&lt;br /&gt;
[[File:FHZ_STyp000_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Serien Nr. Scanner===&lt;br /&gt;
&lt;br /&gt;
Verlangt die Eingabe des Namens eines EXIF Feldes. &#039;&#039;&#039;Wenn dieses Feld hier gefüllt wurde, dann muss bei dem Arbeitsschritt beim starten zwingend eine Seriennummer angegeben werden.&#039;&#039;&#039;&lt;br /&gt;
Ohne die Eingabe einer gültigen Seriennummer wird das Arbeitsfenster nicht laufen.&lt;br /&gt;
&lt;br /&gt;
Das EXIF Standard Feld für die Seriennummer lautet: &#039;&#039;&#039;SerialNumber&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Seriennummern der Scanner werden beim beenden der Arbeit automatisch in alle Bilddateien geschrieben, bei welchen nicht bereits eine Seriennummer in dem angegebenen EXIF Feld enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung der Geräteseriennummern&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es werden nur Seriennummer akzeptiert, welche entweder:&lt;br /&gt;
&lt;br /&gt;
*in der Liste unterhalb erfasst wurden (Die Seriennummern sind Zeilenweise (Zeilenumbruch) zu trennen!)&lt;br /&gt;
*in den Anlagen erfasst, mit einer Maschine verknüpft, einem Maschinentyp zugeordnet und dieser Maschinentyp beim Arbeitsschritt unter &amp;quot;benötigter Maschinentyp&amp;quot; konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
[[File:FHZ_STyp000_snc.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Digitalisierungssoftware==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Angabe einer für den Job zum Einsatz kommenden Digitalisierungsoftware und ggf. von spezifischen Software Voreinstellungen.&lt;br /&gt;
&lt;br /&gt;
Die Auswahl der benötigten Software über das Dropdown Menu lädt die dazugehörenden Einstellungsmöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Die Checkbox &amp;quot;Bearbeitung ohne Digitalsierungssoftware erlauben&amp;quot; erlaubt den Start des Arbeitsfensters auch für den Fall, dass auf dem Arbeitsplatz PC die konfigurierte Software nicht verfügbar ist.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Software: Tocosa===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Jobkonfiguration über job.ini=====&lt;br /&gt;
 &lt;br /&gt;
Wird der Pfad zu einer zuvor in Tocosa vorbereiteten Job.ini Konfigurationsdatei angegeben, dann öffnet sich die Tocosa Applikation beim starten eines Auftragsobjektes mit den entsprechenden Job Einstellungen.&lt;br /&gt;
&lt;br /&gt;
Die job.ini Datei kann im gewählten Ablageordner von solchen ini Dateien beliebig benannt werden, z.B. &#039;&#039;&#039;meinScanJobNr15.ini&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Der Dateipfad bei der Einstellung &amp;quot;Pfad zur Jobkonfig.&amp;quot; muss immer vollständig, inklusive Dateiname, angegeben werden. E.g. &#039;&#039;&#039;O:\ordner\unterordner\job.ini&#039;&#039;&#039; oder &#039;&#039;&#039;O:\ordner\unterordner\meinScanJobNr15.ini&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tocosa Grundeinstellungen über Tocosa7.ini====&lt;br /&gt;
&lt;br /&gt;
Unabhängig von den Job Einstellungen, können die Grundeinstellungen von Tocosa, welche in der Datei Tocosa7.ini gespeichert sind, geändert werden. &lt;br /&gt;
&lt;br /&gt;
Diese Datei findet sich unter C:\ProgramData\Business Graphics\Tocosa\Tocosa7.ini und sie wird mit den hier gemachten Einstellungen aktualisiert. Sollte dieser Pfad sich in einer zukünftigen Tocosa Version ändern, dann muss der Helper von der Profile dafür angepasst werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der Tocosa7.ini finden sich Konfigurationsblöcke, deren Namen mit eckigen Klammern umfasst sind. Darunter finden sich die Schlüssel mit ihren Werten.&lt;br /&gt;
&lt;br /&gt;
 [Settings]&lt;br /&gt;
 LanguageFile=C:\Program Files\Tocosa\Language7.lan&lt;br /&gt;
 ShowOnScreenKeyboard=1&lt;br /&gt;
 WriteProtocol=0&lt;br /&gt;
 ThumbWidthOffset=196&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um einen Wert zu überschreiben, muss eine entsprechende Zeile dafür in das Textfeld eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
Die Formatierung für eine Zeile ist: &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Konfigurationsblock&#039;&#039;&#039;:&#039;&#039;Schlüssel&#039;&#039;=Wert&lt;br /&gt;
&lt;br /&gt;
 Settings:WriteProtocol=1&lt;br /&gt;
 Settings:ThumbWidthOffset=250&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Konfigurationsbeispiel in der Einstellungsmaske&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei: Digitalisierungssoftware.png]]&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_TESTERGEBNISS  Metadaten- Tagname um Entscheidung zu speichern. &lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ         Sonder- und Kinderobjekte: Typen, welche bei der Einstellung zugelassen sind. Zu den hier angegebenen Attributstypen können Sonder- oder Kinderobjekte erstellt werden. Wenn leer, keine Sonderobjekterstellung möglich.&lt;br /&gt;
&lt;br /&gt;
  HZ_METAWERTFELD   Sonder- und Kinderobjekte: Formel zur Berechnung der Signatur für Kindesobjekte. Leer lassen, wenn der Name / die Signatur manuell eingegeben werden muss.&lt;br /&gt;
&lt;br /&gt;
  HZ_XMPSCHEMANAME  Name des EXIF Feldes der Bilddatei, in welche die Seriennummer des Eingabegerätes / Scanners geschrieben werden soll&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT    Valide Seriennummern von Eingabegeräten, welche beim start des Arbeitsfenster eingegeben werden müssen und über diese Einträge hier validiert werden.&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL         Hält den Checkboxstatus der anzuzeigenden Metadaten durch speichern der zugehörigen AT_SEQ (YES:2454, NO:2455, ...)&lt;br /&gt;
&lt;br /&gt;
=Zugehörige Eingabemasken / Fenstertypen=&lt;br /&gt;
&lt;br /&gt;
Aktuell sind vier Fenstermasken / Untersystemtyp für einen Digitalisierungsarbeitschritt konfigurierbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;FDO_SHZTyp0 - Standardfenster mit Eingabe von Metadaten und Sonderobjekterzeugung zum Bearbeiteten Hauptobjekt&lt;br /&gt;
&lt;br /&gt;
[[File:FDO_SHZTyp0.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;FDO_SHZTyp0a - Wie Typ0, jedoch zusätzlich mit Dateierzeugung zu den Sonderobjekten&lt;br /&gt;
&lt;br /&gt;
[[File:FDO_SHZTyp0a.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;FDO_SHZTyp0b - Wie Typ0a, jedoch zusätzlich mit Datei- und Unterordnererzeugung zu den Sonderobjekten&lt;br /&gt;
&lt;br /&gt;
[[File:FDO_SHZTyp0b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;FDO_SHZTyp0c - Zur Erstellung von Kindsobjekten mit Metadaten und Dateien. Das Hauptobjekt (Vater) kann nicht bearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HZ Konfiguration: Die Daten dürfen nicht auf dem Server gespeichert werden! &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Zeigt die Metadaten des Hauptobjektes im oberen Teil an. Diese können nicht verändert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn für Kindesobjekte der Typ angegeben wurde, wird &amp;quot;Unterobjekte erzeugen&amp;quot; angezeigt. Die verfügbaren Typen finden sich im Dropdown Menu &amp;quot;Typ&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Befinden sich zum Zeitpunkt der Erstellung eines Kindobjektes Dateien im Ordner c:\work\output, dann werden diese dem Kindobjekt zugeordnet und auf den Server kopiert. &lt;br /&gt;
&lt;br /&gt;
Alle Kinder des Hauptobjektes werden in der untersten Liste angezeigt.&lt;br /&gt;
&lt;br /&gt;
Die Signatur des Kindobjektes kann im Einstellungsfenster vorgegeben werden. Das Eingabefeld wird dann zu einem Anzeigefeld und kann nicht mehr überschrieben werden. &lt;br /&gt;
&lt;br /&gt;
Sie können die üblichen [[Omnisgrundlagen|Omnis-Funktionen]] benutzen. Das Feld kennt die Variable &#039;Zähler&#039;, welche ein automatisches hochzählen ermöglich.&lt;br /&gt;
&lt;br /&gt;
Auf die Signatur des Vaterobjektes kann nicht zugegriffen werden. Der Name für die Signatur muss hier festgelegt werden.&lt;br /&gt;
&lt;br /&gt;
  con(&#039;MeineSignatur&#039;,[Zähler])&lt;br /&gt;
&lt;br /&gt;
[[File:FDO_SHZTyp0c.png]]&lt;br /&gt;
&lt;br /&gt;
&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=Normaler_Arbeitsschritt&amp;diff=9302</id>
		<title>Normaler Arbeitsschritt</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Normaler_Arbeitsschritt&amp;diff=9302"/>
		<updated>2025-05-28T13:39:21Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Digitalisierungssoftware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  2237&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  0&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Dieser Arbeitsschritt wird zB fürs Digitalisieren oder andere manuelle Tätigkeiten an Files verwendet. Er legt die Daten des vorherigen Arbeitschrittes eines Objektes in C:\Work\Input und erwartet die Daten nach der manuellen Bearbeitung in C:\Work\Output.&lt;br /&gt;
===Digitalisieren===&lt;br /&gt;
Digitalisieren Sie alles in C:\Work\Output.&lt;br /&gt;
===Manuelle Bearbeitung von Files===&lt;br /&gt;
&lt;br /&gt;
===Leistungen===&lt;br /&gt;
Beim Starten des Schrittes wird Name und Änderungsdatum der Files im Ordner C:\Work\Output in einer Liste gespeichert. Am Beenden wird die Liste mit dem dann aktuellen Inhalt verglichen. Es können folgenden Leistungen vorkommen:&lt;br /&gt;
;Datei, Create: Eine Datei mit diesem Namen existierte beim Start noch nicht.&lt;br /&gt;
;Datei, Update: Eine Datei mit diesem Namen existierte beim Start schon, hat am Ende aber ein anderes Änderungsdatum.&lt;br /&gt;
;Datei, Delete: Eine Datei mit diesem Namen existierte beim Start, fehlt aber am Ende.&lt;br /&gt;
;Sonderobjekte: Ein Sonderobjekt wurde erstellt.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
* Generell&lt;br /&gt;
&lt;br /&gt;
* File Test, Die Filetests sind hier nicht rekursiv. Es werden nur die Files auf der obersten Ebene im Arbeitsordner kontrolliert.&lt;br /&gt;
&lt;br /&gt;
* Metadaten&lt;br /&gt;
&lt;br /&gt;
* Ausgänge: Ermöglicht das Einrichten zusätzlicher Ausgänge für nachfolgende Arbeitsschritte&lt;br /&gt;
&lt;br /&gt;
* Ausgang für hier erstellte Sonderobjekte: Sonderobjekte im Fenster Typ0 (nicht Typ0abc), die an diesem Schritt erstellt werden, nehmen nicht einen der im Workflow konfigurierten Ausgänge. Sie werden zu dem Schritt geleitet, den Sie im Fenster Produktionsauftrage im Register Produktionsschritte (unten rechts) eingeben können: &#039;&#039;&#039;Arbeitschritt für Sonderobjekte&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Serien Nr. Scanner: Schreibt die Seriennummer eines Scanners in die Bilddatei. Ermöglicht die zwingende Angabe der Seriennummer eines verwendeten Eingabegerätes / Scanners beim starten des Arbeitsfensters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Einstellungsfenster==&lt;br /&gt;
&lt;br /&gt;
[[File:FHZ_STyp000_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Serien Nr. Scanner===&lt;br /&gt;
&lt;br /&gt;
Verlangt die Eingabe des Namens eines EXIF Feldes. &#039;&#039;&#039;Wenn dieses Feld hier gefüllt wurde, dann muss bei dem Arbeitsschritt beim starten zwingend eine Seriennummer angegeben werden.&#039;&#039;&#039;&lt;br /&gt;
Ohne die Eingabe einer gültigen Seriennummer wird das Arbeitsfenster nicht laufen.&lt;br /&gt;
&lt;br /&gt;
Das EXIF Standard Feld für die Seriennummer lautet: &#039;&#039;&#039;SerialNumber&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Seriennummern der Scanner werden beim beenden der Arbeit automatisch in alle Bilddateien geschrieben, bei welchen nicht bereits eine Seriennummer in dem angegebenen EXIF Feld enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung der Geräteseriennummern&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es werden nur Seriennummer akzeptiert, welche entweder:&lt;br /&gt;
&lt;br /&gt;
*in der Liste unterhalb erfasst wurden (Die Seriennummern sind Zeilenweise (Zeilenumbruch) zu trennen!)&lt;br /&gt;
*in den Anlagen erfasst, mit einer Maschine verknüpft, einem Maschinentyp zugeordnet und dieser Maschinentyp beim Arbeitsschritt unter &amp;quot;benötigter Maschinentyp&amp;quot; konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
[[File:FHZ_STyp000_snc.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Digitalisierungssoftware==&lt;br /&gt;
&lt;br /&gt;
Ermöglicht die Angabe einer für den Job zum Einsatz kommenden Digitalisierungsoftware und ggf. von spezifischen Software Voreinstellungen.&lt;br /&gt;
&lt;br /&gt;
Die Auswahl der benötigten Software über das Dropdown Menu lädt die dazugehörenden Einstellungsmöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
Die Checkbox &amp;quot;Bearbeitung ohne Digitalsierungssoftware erlauben&amp;quot; erlaubt den Start des Arbeitsfensters auch für den Fall, dass auf dem Arbeitsplatz PC die konfigurierte Software nicht verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
===Software: Tocosa===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Jobkonfiguration über job.ini=====&lt;br /&gt;
 &lt;br /&gt;
Wird der Pfad zu einer zuvor in Tocosa vorbereiteten Job.ini Konfigurationsdatei angegeben, dann öffnet sich die Tocosa Applikation beim starten eines Auftragsobjektes mit den entsprechenden Job Einstellungen.&lt;br /&gt;
&lt;br /&gt;
Die job.ini Datei kann im gewählten Ablageordner von solchen ini Dateien beliebig benannt werden, z.B. &#039;&#039;&#039;meinScanJobNr15.ini&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Der Dateipfad bei der Einstellung &amp;quot;Pfad zur Jobkonfig.&amp;quot; muss immer vollständig, inklusive Dateiname, angegeben werden. E.g. &#039;&#039;&#039;O:\ordner\unterordner\job.ini&#039;&#039;&#039; oder &#039;&#039;&#039;O:\ordner\unterordner\meinScanJobNr15.ini&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tocosa Grundeinstellungen über Tocosa7.ini====&lt;br /&gt;
&lt;br /&gt;
Unabhängig von den Job Einstellungen, können die Grundeinstellungen von Tocosa, welche in der Datei Tocosa7.ini gespeichert sind, geändert werden. &lt;br /&gt;
&lt;br /&gt;
Diese Datei findet sich unter C:\ProgramData\Business Graphics\Tocosa\Tocosa7.ini und sie wird mit den hier gemachten Einstellungen aktualisiert. Sollte dieser Pfad sich in einer zukünftigen Tocosa Version ändern, dann muss der Helper von der Profile dafür angepasst werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der Tocosa7.ini finden sich Konfigurationsblöcke, deren Namen mit eckigen Klammern umfasst sind. Darunter finden sich die Schlüssel mit ihren Werten.&lt;br /&gt;
&lt;br /&gt;
 [Settings]&lt;br /&gt;
 LanguageFile=C:\Program Files\Tocosa\Language7.lan&lt;br /&gt;
 ShowOnScreenKeyboard=1&lt;br /&gt;
 WriteProtocol=0&lt;br /&gt;
 ThumbWidthOffset=196&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um einen Wert zu überschreiben, muss eine entsprechende Zeile dafür in das Textfeld eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
Die Formatierung für eine Zeile ist: &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Konfigurationsblock&#039;&#039;&#039;:&#039;&#039;Schlüssel&#039;&#039;=Wert&lt;br /&gt;
&lt;br /&gt;
 Settings:WriteProtocol=1&lt;br /&gt;
 Settings:ThumbWidthOffset=250&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Konfigurationsbeispiel in der Einstellungsmaske&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei: Digitalisierungssoftware.png]]&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_TESTERGEBNISS  Metadaten- Tagname um Entscheidung zu speichern. &lt;br /&gt;
&lt;br /&gt;
  HZ_DY_SEQ         Sonder- und Kinderobjekte: Typen, welche bei der Einstellung zugelassen sind. Zu den hier angegebenen Attributstypen können Sonder- oder Kinderobjekte erstellt werden. Wenn leer, keine Sonderobjekterstellung möglich.&lt;br /&gt;
&lt;br /&gt;
  HZ_METAWERTFELD   Sonder- und Kinderobjekte: Formel zur Berechnung der Signatur für Kindesobjekte. Leer lassen, wenn der Name / die Signatur manuell eingegeben werden muss.&lt;br /&gt;
&lt;br /&gt;
  HZ_XMPSCHEMANAME  Name des EXIF Feldes der Bilddatei, in welche die Seriennummer des Eingabegerätes / Scanners geschrieben werden soll&lt;br /&gt;
&lt;br /&gt;
  HZ_BARCODEWERT    Valide Seriennummern von Eingabegeräten, welche beim start des Arbeitsfenster eingegeben werden müssen und über diese Einträge hier validiert werden.&lt;br /&gt;
&lt;br /&gt;
  HZ_FORMEL         Hält den Checkboxstatus der anzuzeigenden Metadaten durch speichern der zugehörigen AT_SEQ (YES:2454, NO:2455, ...)&lt;br /&gt;
&lt;br /&gt;
=Zugehörige Eingabemasken / Fenstertypen=&lt;br /&gt;
&lt;br /&gt;
Aktuell sind vier Fenstermasken / Untersystemtyp für einen Digitalisierungsarbeitschritt konfigurierbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;FDO_SHZTyp0 - Standardfenster mit Eingabe von Metadaten und Sonderobjekterzeugung zum Bearbeiteten Hauptobjekt&lt;br /&gt;
&lt;br /&gt;
[[File:FDO_SHZTyp0.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;FDO_SHZTyp0a - Wie Typ0, jedoch zusätzlich mit Dateierzeugung zu den Sonderobjekten&lt;br /&gt;
&lt;br /&gt;
[[File:FDO_SHZTyp0a.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;FDO_SHZTyp0b - Wie Typ0a, jedoch zusätzlich mit Datei- und Unterordnererzeugung zu den Sonderobjekten&lt;br /&gt;
&lt;br /&gt;
[[File:FDO_SHZTyp0b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;FDO_SHZTyp0c - Zur Erstellung von Kindsobjekten mit Metadaten und Dateien. Das Hauptobjekt (Vater) kann nicht bearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HZ Konfiguration: Die Daten dürfen nicht auf dem Server gespeichert werden! &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Zeigt die Metadaten des Hauptobjektes im oberen Teil an. Diese können nicht verändert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn für Kindesobjekte der Typ angegeben wurde, wird &amp;quot;Unterobjekte erzeugen&amp;quot; angezeigt. Die verfügbaren Typen finden sich im Dropdown Menu &amp;quot;Typ&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Befinden sich zum Zeitpunkt der Erstellung eines Kindobjektes Dateien im Ordner c:\work\output, dann werden diese dem Kindobjekt zugeordnet und auf den Server kopiert. &lt;br /&gt;
&lt;br /&gt;
Alle Kinder des Hauptobjektes werden in der untersten Liste angezeigt.&lt;br /&gt;
&lt;br /&gt;
Die Signatur des Kindobjektes kann im Einstellungsfenster vorgegeben werden. Das Eingabefeld wird dann zu einem Anzeigefeld und kann nicht mehr überschrieben werden. &lt;br /&gt;
&lt;br /&gt;
Sie können die üblichen [[Omnisgrundlagen|Omnis-Funktionen]] benutzen. Das Feld kennt die Variable &#039;Zähler&#039;, welche ein automatisches hochzählen ermöglich.&lt;br /&gt;
&lt;br /&gt;
Auf die Signatur des Vaterobjektes kann nicht zugegriffen werden. Der Name für die Signatur muss hier festgelegt werden.&lt;br /&gt;
&lt;br /&gt;
  con(&#039;MeineSignatur&#039;,[Zähler])&lt;br /&gt;
&lt;br /&gt;
[[File:FDO_SHZTyp0c.png]]&lt;br /&gt;
&lt;br /&gt;
&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:Digitalisierungssoftware.png&amp;diff=9301</id>
		<title>Datei:Digitalisierungssoftware.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Digitalisierungssoftware.png&amp;diff=9301"/>
		<updated>2025-05-28T13:37:21Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Digitalisierungssoftware.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=Zusammenf%C3%BChren_von_Daten&amp;diff=9293</id>
		<title>Zusammenführen von Daten</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Zusammenf%C3%BChren_von_Daten&amp;diff=9293"/>
		<updated>2025-05-07T13:58:42Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* FDO_SHZTyp16b */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1815&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  16&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Inhaltszuweisung zu Objekten oder Metadatenerfassung.&lt;br /&gt;
&lt;br /&gt;
===FDO_SHZTyp16===&lt;br /&gt;
Fenster für Grundbuchamt.&lt;br /&gt;
&lt;br /&gt;
===FDO_SHZTyp16a===&lt;br /&gt;
Generisches Fenster.&lt;br /&gt;
&lt;br /&gt;
===FDO_SHZTyp16b===&lt;br /&gt;
Fenster für Assistiertes Metadatieren über Dateien welche durch die Texterkennung (OCR) gelaufen sind.&lt;br /&gt;
&lt;br /&gt;
Das Fenster wird mittlerweile auch für andere Aufträge verwendet, welche nicht zwangsläufig OCR Erkennung hatten.&lt;br /&gt;
&lt;br /&gt;
Mit diesem Fenster kann zudem Konfiguriert werden, dass ein bestimmtes Metadatum in der Treeliste der Objekte mit angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
Die Einstellung dazu findet sich im Tab &amp;quot;erweitert&amp;quot; der Konfigurationsmaske.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2025-05-07 um 14.49.28.png]]&lt;br /&gt;
&lt;br /&gt;
===Leistungen===&lt;br /&gt;
Es werden die Anzahl der Knopfdrücke im Fenster gezählt, um die Menge von Aktionen zählen zu können. Es können folgenden Leistungen vorkommen:&lt;br /&gt;
;Zuweisung_Beleg, Create: Ein Beleg wurde zugeordnet.&lt;br /&gt;
;Zuweisung_Beleg, Delete: Eine Belegzuordnung wurde wieder aufgelöst.&lt;br /&gt;
;Beleg, Create: Ein neuer Beleg wurde erstellt.&lt;br /&gt;
;Beleg, Update: Der Name eines bestehenden Beleges wurde angepasst.&lt;br /&gt;
;Duplikat_Beleg, Create: Ein Duplikat wurde erstellt.&lt;br /&gt;
;Zuweisung_Sonderobjekt, Create: Ein Sonderobjekt wurde zugeordnet.&lt;br /&gt;
;Zuweisung_Sonderobjekt, Delete: Eine Sonderobjektzuordnung wurde wieder aufgelöst.&lt;br /&gt;
;Duplikat_Sonderobjekt, Create: Ein Sonderobjekt Duplikat wurde erstellt.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  DO_FEHLT   &#039;&#039;1=Das Objekt fehlt&#039;&#039;&lt;br /&gt;
&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=Zusammenf%C3%BChren_von_Daten&amp;diff=9292</id>
		<title>Zusammenführen von Daten</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Zusammenf%C3%BChren_von_Daten&amp;diff=9292"/>
		<updated>2025-05-07T13:55:52Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  1815&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  16&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Inhaltszuweisung zu Objekten oder Metadatenerfassung.&lt;br /&gt;
&lt;br /&gt;
===FDO_SHZTyp16===&lt;br /&gt;
Fenster für Grundbuchamt.&lt;br /&gt;
&lt;br /&gt;
===FDO_SHZTyp16a===&lt;br /&gt;
Generisches Fenster.&lt;br /&gt;
&lt;br /&gt;
===FDO_SHZTyp16b===&lt;br /&gt;
Fenster für Assistiertes Metadatieren über Dateien welche durch die Texterkennung (OCR) gelaufen sind. &lt;br /&gt;
&lt;br /&gt;
Mit diesem Fenster kann ausserdem Konfiguriert werden, dass ein bestimmtes Metadatum in der Treeliste der Objekte mit angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
Die Einstellung dazu findet sich im Tab &amp;quot;erweitert&amp;quot; der Konfigurationsmaske.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bildschirmfoto 2025-05-07 um 14.49.28.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Leistungen===&lt;br /&gt;
Es werden die Anzahl der Knopfdrücke im Fenster gezählt, um die Menge von Aktionen zählen zu können. Es können folgenden Leistungen vorkommen:&lt;br /&gt;
;Zuweisung_Beleg, Create: Ein Beleg wurde zugeordnet.&lt;br /&gt;
;Zuweisung_Beleg, Delete: Eine Belegzuordnung wurde wieder aufgelöst.&lt;br /&gt;
;Beleg, Create: Ein neuer Beleg wurde erstellt.&lt;br /&gt;
;Beleg, Update: Der Name eines bestehenden Beleges wurde angepasst.&lt;br /&gt;
;Duplikat_Beleg, Create: Ein Duplikat wurde erstellt.&lt;br /&gt;
;Zuweisung_Sonderobjekt, Create: Ein Sonderobjekt wurde zugeordnet.&lt;br /&gt;
;Zuweisung_Sonderobjekt, Delete: Eine Sonderobjektzuordnung wurde wieder aufgelöst.&lt;br /&gt;
;Duplikat_Sonderobjekt, Create: Ein Sonderobjekt Duplikat wurde erstellt.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  DO_FEHLT   &#039;&#039;1=Das Objekt fehlt&#039;&#039;&lt;br /&gt;
&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_2025-05-07_um_14.49.28.png&amp;diff=9291</id>
		<title>Datei:Bildschirmfoto 2025-05-07 um 14.49.28.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Bildschirmfoto_2025-05-07_um_14.49.28.png&amp;diff=9291"/>
		<updated>2025-05-07T13:55:41Z</updated>

		<summary type="html">&lt;p&gt;Stefan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Neues feature&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Assistiertes_Metadatieren&amp;diff=9290</id>
		<title>Assistiertes Metadatieren</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Assistiertes_Metadatieren&amp;diff=9290"/>
		<updated>2025-05-07T13:52:22Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Konfiguration der Suchformeln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  2972&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  16&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Erlaubt das automatische Markieren von Textstellen in einem angezeigten Scanbild über die Angabe Suchbegriffen / Schlagwörtern sowie deren Folgebegriffen über einen REGEX Suchfilter.&lt;br /&gt;
&lt;br /&gt;
Begriffe können auch nur über REGEX gesucht werden.&lt;br /&gt;
&lt;br /&gt;
Suchbegriffe werden im Text Grün markiert. Folgebegriffe, oder Begriffe welche rein über REGEX gefunden werden, werden im Text Gelb markiert.&lt;br /&gt;
&lt;br /&gt;
Es kann nur nach einzelnen Wörtern, jedoch nicht nach Wortfolgen gesucht werden.&lt;br /&gt;
&lt;br /&gt;
Gefundene Folgewörter (Regex Begriff 2) können automatisch in das entsprechende angegebene Metadatum gefüllt werden. Das Metadatum für das Objekt muss entsprechend lautend vorkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benötigte Subwindows==&lt;br /&gt;
&lt;br /&gt;
Das automatische abfüllen der Metadaten funktioniert nur mit folgenden Subwindows: FAA_SMaske16a, FAA_SMaske16b und FAA_SMaske16c&lt;br /&gt;
&lt;br /&gt;
==Konfiguration der Suchformeln==&lt;br /&gt;
&lt;br /&gt;
Suchbegriffe werden in die erste Spalte eingetragen. Es ist möglich nach mehreren Begriffen zu suchen sofern diese sich auf einer Textzeile befinden.&lt;br /&gt;
&lt;br /&gt;
Soll nach einem Folgebegriff gesucht werden, dann muss in der zweiten Spalte (Pos. Begriff 2) ein &amp;quot;F&amp;quot; eingetragen werden. Weiter muss für den Begriff im Feld &amp;quot;Regex Suchfilter für Begriff 2&amp;quot; ein Regex Filter angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Falls nur über Regex gesucht werden soll, dann muss in der spalte &amp;quot;Nur Regex&amp;quot; eine &amp;quot;1&amp;quot; eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
Steht im Feld Metadatum ein vorhandener Metadatum Name, dann werden die über REGEX gefundenen Begriffe automatisch in das entsprechende Feld übertragen (Siehe benötigte Subwindows).&lt;br /&gt;
&lt;br /&gt;
===Erweitertes finden von Daten===&lt;br /&gt;
Es ist möglich mit minimaler Konfiguration ein erweitertes finden eines Datums zu aktivieren. Dazu schreiben Sie in die Konfiguration unter der Spalte &amp;quot;Regex Suchbegriff Begriff 2&amp;quot; einfach &amp;quot;[Datum]&amp;quot; (mit Anführungszeichen!). Natürlich muss weiterhin im Feld Metadatum ein Attribut definiert werden, wo das Datum gespeichert werden soll.&lt;br /&gt;
&lt;br /&gt;
Welche Datumstypen werden gefunden (Der Helper markiert alle gefundenen Daten. Das Datum welches ins Metadatenfeld kommt, wird in der unterstehenden Reihenfolge gesucht):&lt;br /&gt;
====Simple Daten====&lt;br /&gt;
* 01.12.2020 / 1.12.2020 / 01.01.2022 / 01.1.2022 / 01.12.22 / 1.12.22 / 01.01.22 / 01.1.22 &lt;br /&gt;
* 1 oder 2 stelliger Monat / Tag&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 01-05-2020 / 01-5-2020 / 01/08/2020 / 1/8/2019&lt;br /&gt;
* 1 oder 2 stelliger Monat / Tag&lt;br /&gt;
* 4 stelliges Jahr&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 01-Jan-2022 / 1-FEB-22 / 12-MrZ-99&lt;br /&gt;
* 1 oder 2 stelliger Tag&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
====Ausgeschriebene Monate====&lt;br /&gt;
* 1. Januar 2015 / 03. Dezember 15 / 15 März 2020&lt;br /&gt;
* Punkte Optional &lt;br /&gt;
* 2 oder 1 stelliger Monat&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
====Abgekürzte Monate====&lt;br /&gt;
* 1. Jan 2015 / 03. Dez. 15 / 1 JAN 2015 / 12 FeBr. 99 &lt;br /&gt;
* Punkte Optional &lt;br /&gt;
* 1 oder 2 stelliger Tag &lt;br /&gt;
* Gross/Kleinschreibung ignoriert&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
====Ausgeschriebene Monate ohne Tag====&lt;br /&gt;
* Januar 2015 / Dezember 15 / März 2020&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
====Abgekürzte Monate ohne Tag====&lt;br /&gt;
* Jan 2020 / Jan. 20 / JAN 20&lt;br /&gt;
* Optionale Punkt&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls sich in einer Zeile 2 exakt gleich formatierte Daten befinden wird nur eins davon erkannt. Die gilt nicht für Daten welche zwar auf den gleichen Tag verweisen aber anders formatiert sind zB. 9. Januar 22 und 9. Januar 2022.&lt;br /&gt;
&lt;br /&gt;
===Erweitertes finden von Text mit Attributvorlagen===&lt;br /&gt;
Es ist möglich, basierend auf Attributvorlagen, Text markieren zu lassen. Dazu schreiben Sie in die Konfiguration unter der Spalte &amp;quot;Regex Suchbegriff Begriff 2&amp;quot; einfach &amp;quot;[Attributvorlage]&amp;quot; (mit Anführungszeichen!). Natürlich muss weiterhin im Feld Metadatum ein Attribut definiert werden, wo der gefundene Text gespeichert werden soll. Die gefunden Textstellen werden nicht automatisch in das konfigurierte Metawertfeld übertragen, sondern müssen vom User manuell via Doppelklick zugewiesen werden. Es ist möglich Begriffe mit mehreren Wörtern finden zu lassen. Jedoch werden diese nur gefunden, falls sie sich auf einer Textzeile befinden! Zudem werden doppelte Textstellen nur einmal pro Zeile markiert.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag (FHK_Maske)==&lt;br /&gt;
[[File:Assist_Meta.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=Assistiertes_Metadatieren&amp;diff=9289</id>
		<title>Assistiertes Metadatieren</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Assistiertes_Metadatieren&amp;diff=9289"/>
		<updated>2025-05-07T13:51:47Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  2972&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  16&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Erlaubt das automatische Markieren von Textstellen in einem angezeigten Scanbild über die Angabe Suchbegriffen / Schlagwörtern sowie deren Folgebegriffen über einen REGEX Suchfilter.&lt;br /&gt;
&lt;br /&gt;
Begriffe können auch nur über REGEX gesucht werden.&lt;br /&gt;
&lt;br /&gt;
Suchbegriffe werden im Text Grün markiert. Folgebegriffe, oder Begriffe welche rein über REGEX gefunden werden, werden im Text Gelb markiert.&lt;br /&gt;
&lt;br /&gt;
Es kann nur nach einzelnen Wörtern, jedoch nicht nach Wortfolgen gesucht werden.&lt;br /&gt;
&lt;br /&gt;
Gefundene Folgewörter (Regex Begriff 2) können automatisch in das entsprechende angegebene Metadatum gefüllt werden. Das Metadatum für das Objekt muss entsprechend lautend vorkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benötigte Subwindows==&lt;br /&gt;
&lt;br /&gt;
Das automatische abfüllen der Metadaten funktioniert nur mit folgenden Subwindows: FAA_SMaske16a, FAA_SMaske16b und FAA_SMaske16c&lt;br /&gt;
&lt;br /&gt;
==Konfiguration der Suchformeln==&lt;br /&gt;
&lt;br /&gt;
Suchbegriffe werden in die erste Spalte eingetragen. Es ist möglich nach mehreren Begriffen zu suchen sofern diese sich auf einer Textzeile befinden.&lt;br /&gt;
&lt;br /&gt;
Soll nach einem Folgebegriff gesucht werden, dann muss in der zweiten Spalte (Pos. Begriff 2) ein &amp;quot;F&amp;quot; eingetragen werden. Weiter muss für den Begriff im Feld &amp;quot;Regex Suchfilter für Begriff 2&amp;quot; ein Regex Filter angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Falls nur über Regex gesucht werden soll, dann muss in der spalte &amp;quot;Nur Regex&amp;quot; eine &amp;quot;1&amp;quot; eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
Steht im Feld Metadatum ein vorhandener Metadatum Name, dann werden die über REGEX gefundenen Begriffe automatisch in das entsprechende Feld übertragen.&lt;br /&gt;
&lt;br /&gt;
===Erweitertes finden von Daten===&lt;br /&gt;
Es ist möglich mit minimaler Konfiguration ein erweitertes finden eines Datums zu aktivieren. Dazu schreiben Sie in die Konfiguration unter der Spalte &amp;quot;Regex Suchbegriff Begriff 2&amp;quot; einfach &amp;quot;[Datum]&amp;quot; (mit Anführungszeichen!). Natürlich muss weiterhin im Feld Metadatum ein Attribut definiert werden, wo das Datum gespeichert werden soll.&lt;br /&gt;
&lt;br /&gt;
Welche Datumstypen werden gefunden (Der Helper markiert alle gefundenen Daten. Das Datum welches ins Metadatenfeld kommt, wird in der unterstehenden Reihenfolge gesucht):&lt;br /&gt;
====Simple Daten====&lt;br /&gt;
* 01.12.2020 / 1.12.2020 / 01.01.2022 / 01.1.2022 / 01.12.22 / 1.12.22 / 01.01.22 / 01.1.22 &lt;br /&gt;
* 1 oder 2 stelliger Monat / Tag&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 01-05-2020 / 01-5-2020 / 01/08/2020 / 1/8/2019&lt;br /&gt;
* 1 oder 2 stelliger Monat / Tag&lt;br /&gt;
* 4 stelliges Jahr&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 01-Jan-2022 / 1-FEB-22 / 12-MrZ-99&lt;br /&gt;
* 1 oder 2 stelliger Tag&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
====Ausgeschriebene Monate====&lt;br /&gt;
* 1. Januar 2015 / 03. Dezember 15 / 15 März 2020&lt;br /&gt;
* Punkte Optional &lt;br /&gt;
* 2 oder 1 stelliger Monat&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
====Abgekürzte Monate====&lt;br /&gt;
* 1. Jan 2015 / 03. Dez. 15 / 1 JAN 2015 / 12 FeBr. 99 &lt;br /&gt;
* Punkte Optional &lt;br /&gt;
* 1 oder 2 stelliger Tag &lt;br /&gt;
* Gross/Kleinschreibung ignoriert&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
====Ausgeschriebene Monate ohne Tag====&lt;br /&gt;
* Januar 2015 / Dezember 15 / März 2020&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
====Abgekürzte Monate ohne Tag====&lt;br /&gt;
* Jan 2020 / Jan. 20 / JAN 20&lt;br /&gt;
* Optionale Punkt&lt;br /&gt;
* 2 oder 4 stelliges Jahr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls sich in einer Zeile 2 exakt gleich formatierte Daten befinden wird nur eins davon erkannt. Die gilt nicht für Daten welche zwar auf den gleichen Tag verweisen aber anders formatiert sind zB. 9. Januar 22 und 9. Januar 2022.&lt;br /&gt;
&lt;br /&gt;
===Erweitertes finden von Text mit Attributvorlagen===&lt;br /&gt;
Es ist möglich, basierend auf Attributvorlagen, Text markieren zu lassen. Dazu schreiben Sie in die Konfiguration unter der Spalte &amp;quot;Regex Suchbegriff Begriff 2&amp;quot; einfach &amp;quot;[Attributvorlage]&amp;quot; (mit Anführungszeichen!). Natürlich muss weiterhin im Feld Metadatum ein Attribut definiert werden, wo der gefundene Text gespeichert werden soll. Die gefunden Textstellen werden nicht automatisch in das konfigurierte Metawertfeld übertragen, sondern müssen vom User manuell via Doppelklick zugewiesen werden. Es ist möglich Begriffe mit mehreren Wörtern finden zu lassen. Jedoch werden diese nur gefunden, falls sie sich auf einer Textzeile befinden! Zudem werden doppelte Textstellen nur einmal pro Zeile markiert.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag (FHK_Maske)==&lt;br /&gt;
[[File:Assist_Meta.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=InfoScreens&amp;diff=9283</id>
		<title>InfoScreens</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=InfoScreens&amp;diff=9283"/>
		<updated>2025-05-02T11:51:12Z</updated>

		<summary type="html">&lt;p&gt;Stefan: /* Allgemeine Funktionsbeschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Allgemeine Funktionsbeschreibung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Grossbildschirmen können verschiedenste Informationen rund um den Betrieb der Mikrografie in die Arbeitsräume übermittelt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dies wird über fortlaufend generierte HMTL Seiten bewerkstelligt, welche in definierten Zeitabständen neu geladen werden. Der Job kann dies zudem über die Periodizität ansteuern.&lt;br /&gt;
&lt;br /&gt;
Die HTML Seiten werden von einem HLI Serverjob gerendert.&lt;br /&gt;
&lt;br /&gt;
Als Webserver wird NGINX verwendet.&lt;br /&gt;
&lt;br /&gt;
Aktuell muss der Job auf dem Server laufen, welcher auch den Webserver bereit stellt.&lt;br /&gt;
&lt;br /&gt;
Die neu generierten HTML Dateien werden dort direkt in den root Pfad des Webservers geschrieben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MIDHLP04N ===&lt;br /&gt;
&lt;br /&gt;
Einfache NGINX installation im Pfad c:\nginx&lt;br /&gt;
&lt;br /&gt;
Webroot in c:\nginx\html&lt;br /&gt;
&lt;br /&gt;
Der Serverjob wir ebenfalls hier ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jobkonfiguration ===&lt;br /&gt;
&lt;br /&gt;
Der Job verwendet benötigt die IP Adresse des Servers, auf welchem er läuft. Diese wird über jo_param1 konfiguriert. Es gibt keine Maske dazu, dies muss direkt auf der DB in entsprechenden Job Tuple gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Satelliten ===&lt;br /&gt;
&lt;br /&gt;
Die Geräte greifen über eine Fix eingestellte IP-Adresse auf den Webserver zu. Wird die Serveradresse geändert, müssen alle Rasperry neu konfiguriert werden.&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=InfoScreens&amp;diff=9282</id>
		<title>InfoScreens</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=InfoScreens&amp;diff=9282"/>
		<updated>2025-05-02T11:27:58Z</updated>

		<summary type="html">&lt;p&gt;Stefan: neue Seite für die InfoScreens&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Allgemeine Funktionsbeschreibung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Grossbildschirmen können verschiedenste Informationen rund um den Betrieb der Mikrografie in die Arbeitsräume übermittelt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dies wird über fortlaufend generierte HMTL Seiten bewerkstelligt, welche in definierten Zeitabständen neu geladen werden. Der Job kann dies zudem - glaube ich - über die Periodizität ansteuern.&lt;br /&gt;
&lt;br /&gt;
Die Seiten werden von einem HLI Serverjob erzeugt.&lt;br /&gt;
&lt;br /&gt;
Als Webserver wird NGINX verwendet.&lt;br /&gt;
&lt;br /&gt;
Aktuell muss der Job auf dem Server laufen, welcher auch den Webserver bereit stellt.&lt;br /&gt;
&lt;br /&gt;
Die neu generierten HTML Dateien werden dort direkt in den root Pfad des Webservers geschrieben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MIDHLP04N ===&lt;br /&gt;
&lt;br /&gt;
Einfache NGINX installation im Pfad c:\nginx&lt;br /&gt;
&lt;br /&gt;
Webroot in c:\nginx\html&lt;br /&gt;
&lt;br /&gt;
Der Serverjob wir ebenfalls hier ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jobkonfiguration ===&lt;br /&gt;
&lt;br /&gt;
Der Job verwendet benötigt die IP Adresse des Servers, auf welchem er läuft. Diese wird über jo_param1 konfiguriert. Es gibt keine Maske dazu, dies muss direkt auf der DB in entsprechenden Job Tuple gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Satelliten ===&lt;br /&gt;
&lt;br /&gt;
Die Geräte greifen über eine Fix eingestellte IP-Adresse auf den Webserver zu. Wird die Serveradresse geändert, müssen alle Rasperry neu konfiguriert werden.&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:Konfidenzbewertung.png&amp;diff=9278</id>
		<title>Datei:Konfidenzbewertung.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Konfidenzbewertung.png&amp;diff=9278"/>
		<updated>2025-04-09T14:41:40Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Konfidenzbewertung.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;übersicht&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Datei:Konfidenzbewertung.png&amp;diff=9277</id>
		<title>Datei:Konfidenzbewertung.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:Konfidenzbewertung.png&amp;diff=9277"/>
		<updated>2025-04-09T13:26:11Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:Konfidenzbewertung.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;übersicht&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://helper.ch/wiki/index.php?title=Filehandling&amp;diff=9265</id>
		<title>Filehandling</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Filehandling&amp;diff=9265"/>
		<updated>2025-04-01T09:18:40Z</updated>

		<summary type="html">&lt;p&gt;Stefan: 3498 /* Befehle: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Mantiseinträge: &lt;br /&gt;
  2377&lt;br /&gt;
;Systemtyp: &lt;br /&gt;
  59&lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Dieser Arbeitsschritt kann verschiedene Aktionen wie zB. Files bewegen, Ordner erstellen etc. im DO Ordner vornehmen.&lt;br /&gt;
&lt;br /&gt;
Mögliche Befehle:&lt;br /&gt;
* Erstelle Ordner&lt;br /&gt;
* Lösche Ordner&lt;br /&gt;
* Kopiere Dateien von XX nach XX&lt;br /&gt;
* Bewege Dateien von XX nach XX&lt;br /&gt;
* Lösche Datei(en) nach Name&lt;br /&gt;
* Lösche Datei(en) nach Position&lt;br /&gt;
* Kopiere Dateien des Vaters von XX nach XX&lt;br /&gt;
* Kopiere Dateien des Grossvaters von XX nach XX&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Befehle können 2 Varianten von Errorhandling vorweisen:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;zwingend erfolgreich [!]:&#039;&#039;&#039; Jeder Fehler wirft ein DO Fehler. Auch wenn zB. konfiguriert ist, dass ein File test.txt von A nach B kopiert werden soll und das File jedoch nicht gefunden wurde.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;nicht zwingend erfolgreich:&#039;&#039;&#039; Ziemlich schwaches Errorhandling. Nur schwere Fehler verursachen einene DO Fehler. Sollte zB. benutzt werden &amp;quot;falls&amp;quot; ein File von A nach B kopiert werden soll, sofern es existiert.&lt;br /&gt;
&lt;br /&gt;
==Essentielle Felder==&lt;br /&gt;
  HZ_FORMEL   &#039;&#039;Konfiguration welche Befehle ausgeführt werden sollen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  HZ_DATENHOLEN   &#039;&#039;0 = Daten bleiben beim letzten Datenschritt. Somit wird die letzte vorhandene Version Ihrer Daten bearbeitet (!), 1 = Daten werden vor dem Ausführen der Befehle an den aktuellen Schritt kopiert. Somit werden die Befehle auf einer Kopie der Daten durchgeführt (Normalfall), 2 = Es wird ein neuer, leerer DO Ordner erstellt&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erlaubte Werte für die Konfiguration:==&lt;br /&gt;
Beim Auswählen von Files kann entweder genau 1 File via Name angegeben werden, oder es können &amp;quot;*&amp;quot; im Dateinamen eingebunden werden um mehrere Files anzusprechen.&lt;br /&gt;
&lt;br /&gt;
;Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Alle TIF&#039;s in einem Ordner: &amp;quot;*.tif&amp;quot;&lt;br /&gt;
  Alle Dateien welche mit &amp;quot;a&amp;quot; starten: &amp;quot;a*.*&amp;quot;&lt;br /&gt;
  Alle Dateien welche mit &amp;quot;a&amp;quot; starten, mit &amp;quot;e&amp;quot; enden und vom Typ txt sind: &amp;quot;a*e.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Verhalten Daten holen:==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Aktion am letzten Datenschritt ausführen:&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Aktionen werden im Ordner des letzten Datenschrittes des DO Objektes ausgeführt. Die Daten an diesem Schritt werden damit z.B. unwiederruflich gelöscht.&lt;br /&gt;
Vermeidet das unnötige duplizieren der Daten an einen neuen Schritt, wenn zum bsp. die Ordnerstruktur geändert werden soll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Daten an diesen Schritt kopieren und Aktionen ausführen:&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Kopiert und dupliziert damit alle Daten des letzten Datenschrittes des DO an den aktuellen Datenschritt dieses Arbeitsschrittes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Neuen DO Ordner erstellen:&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Erstellt einen Ordner für das Do Objekt am Datenschritt dieses Arbeitsschrittes. Wird zwingend benötigt, für die kopieren Schritte der Daten des Vaters oder des Grossvaters, wenn für das DO Objekt selbst keine Daten aus einem früheren Arbeitsschritt exisitieren oder diese nicht mit den Daten der Ahnen zusammengeführt werden sollen!&lt;br /&gt;
&lt;br /&gt;
===Version 0===&lt;br /&gt;
Hier werden die Parameter, wie der Dateiname/Ordnername nicht evaluiert. Sie können keine Metadaten verwenden. &lt;br /&gt;
===Version 1===&lt;br /&gt;
Hier können Sie Metadaten verwenden in den Parametern. Die Parameter müssen korrekte Formeln sein und einfache Zeichenfolgen sind in Anführungszeichen einzugeben.  &lt;br /&gt;
&lt;br /&gt;
z.B.: &lt;br /&gt;
  con([^DOSignatur],&#039;_komprimiert&#039;)&lt;br /&gt;
  &#039;*.tif&#039;&lt;br /&gt;
Sie können die üblichen Platzhalter verwenden. Somit ist es möglich in jedem DO einen anderen Unterordner zu erstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Befehle:==&lt;br /&gt;
&lt;br /&gt;
===Erstelle Ordner===&lt;br /&gt;
&lt;br /&gt;
===Lösche Ordner===&lt;br /&gt;
&lt;br /&gt;
===Kopiere Dateien von XX nach XX===&lt;br /&gt;
&lt;br /&gt;
===Bewege Dateien von XX nach XX===&lt;br /&gt;
&lt;br /&gt;
===Lösche Datei(en) nach Name===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lösche Datei(en) nach Position===&lt;br /&gt;
&lt;br /&gt;
Dateien können anhand ihrer Sortierposition inerhalb des Dateisystems gelöscht werden. Die zu löschenden Positionen werden hier als Kommagetrennte Zahlenfolge eingegeben.&lt;br /&gt;
&lt;br /&gt;
Die verwendung der Literale &amp;quot;U&amp;quot; und &amp;quot;G&amp;quot; ermöglichen das löschen aller &#039;&#039;&#039;G&#039;&#039;&#039;eraden oder aller &#039;&#039;&#039;U&#039;&#039;&#039;ngeraden Positionen. Die Literale dürfen jedoch nicht beide gleichzeitig verwendet werden, um damit z.B. alle Dateien zu löschen.&lt;br /&gt;
&lt;br /&gt;
Es sind positive und negative Zahlen als Positionswerte möglich. &lt;br /&gt;
&lt;br /&gt;
Negative Werte zählen von der letzten Datei ausgehend rückwarts. &#039;&#039;&#039;Wobei -1 = letzte Datei, -2 = vorletzte Datei.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Positive Werte zählen von der ersten Datei ausgehend vorwärts. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Reihenfolge der Positionseingabe&#039;&#039; &#039;&#039;&#039;ist nicht relevant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bsp.: &lt;br /&gt;
&lt;br /&gt;
Lösche die Dateien nummer drei, fünfzehn sowie die drittletzte -&amp;gt; &#039;3,15,-3&#039; (ist gleich wie &#039;15,-3,3&#039;) &lt;br /&gt;
&lt;br /&gt;
Lösche alle geraden, die nummern 7, 17 und die letzte -&amp;gt; &#039;G,7,17,-1&#039; (ist gleich wie &#039;-1,7,17,G&#039;)&lt;br /&gt;
&lt;br /&gt;
Lösche alle ungeraden -&amp;gt; &#039;U&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Verhalten bei angewählter Option &#039;zwingend erforderlich&#039; verlangt, dass alle genannten Dateipositionen vorhanden sein müssen!: &lt;br /&gt;
&lt;br /&gt;
* Sollen gerade Dateien (G) gelöscht werden, und es gibt bloss eine einzige Datei, erzeugt dies einen DO Fehler.&lt;br /&gt;
* Soll die Datei -15 gelöscht werden, und es gibt bloss 14 Dateien, erzeugt dies einen DO Fehler.&lt;br /&gt;
&lt;br /&gt;
===Kopiere Dateien des Vaters von XX nach XX===&lt;br /&gt;
&lt;br /&gt;
===Kopiere Dateien des Grossvaters von XX nach XX===&lt;br /&gt;
&lt;br /&gt;
===Erstelle Kindsordner===&lt;br /&gt;
&lt;br /&gt;
Erstellt im aktuellen Ordner des Objektes Unterordner mit den Namen der Signaturen seiner Kindesobjekte.&lt;br /&gt;
&lt;br /&gt;
Bsp.: Das Objekt hat fünf Kindobjekte mit den Signaturen A1, A2, A3, A4, A5.&lt;br /&gt;
Wenn das Objekt den Befehl durchlaufen hat, befinden sich im aktuellen Ordner des Objektes, nebst bereits vorhandenen Ordnern oder Dateien, fünf neue Ordner mit den Namen A1, A2, A3, A4, A5.&lt;br /&gt;
&lt;br /&gt;
==Pane im Produktionsauftrag (FHK_Maske)==&lt;br /&gt;
&lt;br /&gt;
[[File:Filehandling.png|500px]]&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:HZBerichteinstellung.png&amp;diff=9264</id>
		<title>Datei:HZBerichteinstellung.png</title>
		<link rel="alternate" type="text/html" href="https://helper.ch/wiki/index.php?title=Datei:HZBerichteinstellung.png&amp;diff=9264"/>
		<updated>2025-03-26T15:21:49Z</updated>

		<summary type="html">&lt;p&gt;Stefan: Stefan lud eine neue Version von Datei:HZBerichteinstellung.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ja&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
</feed>