02 – Installation
Diese Seite beschreibt Voraussetzungen, Einbau und Einbautest des Squeeze Pull-Jobs für den Mappentyp Invoice. Die Parameter und Schalter sind auf der Seite Konfiguration beschrieben.
Voraussetzungen
- DOCUMENTS 5/6 mit DEXPRO-Standard (Import-, Parameter- und Logging-Bibliothek sowie
Squeeze_FunctionLibmit v2-Unterstützung) - Squeeze mit REST-API v2, Zugang in der Squeeze-Konfiguration von DOCUMENTS hinterlegt
- Mappentyp mit
SqueezeID(Text, durchsuchbar, indiziert),SqueezeStatus(durchsuchbar), Register für Anhänge und Gentable
Feste Regeln: nur ein DOCUMENTS-System je Squeeze-Instanz, nur ein Job je Mappentyp und nur auf einem Server. SOAP und Pull nie gleichzeitig an derselben Klasse, sonst entstehen Dubletten.
Bestandteile
Kategorien: die Squeeze_*-Skripte in SqueezePull, der Job in Invoice, der Userexit in Invoice_UserExit.
| Skript | Aufgabe | Anpassen? |
|---|---|---|
Invoice_JOB_SqueezePull |
Job: Job-User, SuperMode, Log, liest Parameter, ruft runSqueezePull() |
je Mappentyp ein eigenes Job-Skript |
Squeeze_Pull_Lib |
Ablauf, gleich für alle Mappentypen | nein, nur die Schalter am Dateianfang (siehe Konfiguration) |
Squeeze_FunctionApiLib |
REST-Aufrufe, SqueezeAPI erbt von Squeeze |
nein, aber abgleichen |
Squeeze_CustomLib |
Userexit ue_Squeeze_ParseFieldValue |
ja, je Kunde |
Squeeze_ENUM_DocFile_SqueezeStatus |
Standard-Enum plus Unfinished, ERROR, Processed | nein |
Invoice__UserExit_CustomLib |
ue_beforeStartWorkflow: sperrt den Workflow-Start bei Unfinished und ERROR |
ja, Userexit an die Kundenfassung anfügen |
Unverändert bleiben die Standardskripte Squeeze_FunctionLib, DEXPRO__ImportLib, Invoice__ImportLib, Invoice_JOB_StartWorkflow und DEXPRO_ENUM_DocFile_SqueezeStatus (bei Kunden oft verschlüsselt).
Einbau
Sicherung
Vor dem Einspielen exportieren:
Invoice__UserExit_CustomLibdes KundenSqueeze_FunctionApiLib, falls schon vorhanden
Skripte
Squeeze_Pull_Lib,Squeeze_CustomLibundSqueeze_ENUM_DocFile_SqueezeStatusin die Kategorie SqueezePull importieren.Squeeze_FunctionApiLibin die Kategorie SqueezePull importieren. Gibt es schon eine Fassung, abgleichen statt überschreiben: NurgetQueueStepEntries,getExportInterfaceIdByName,postRequest2xxundsetExportInterfaceStatussind für den Pull neu bzw. erweitert.Invoice_JOB_SqueezePullin die Kategorie Invoice importieren.
Den Userexit ue_beforeStartWorkflow an die Kundenfassung von Invoice__UserExit_CustomLib anfügen, den Rest nicht ändern.
Enthält das Skript schon ein ue_beforeStartWorkflow, dann muss die Prüfung in die vorhandene Funktion eingebaut werden.
Parameter
Squeeze_DocumentClassName und bei Bedarf Squeeze_StartWorkflow anlegen, wie auf der Seite Konfiguration beschrieben. Angelegt werden die Parameter über die Weboberfläche.
Übersetzungen
In der Weboberfläche unter Übersetzungen drei Einträge anlegen.
| Feld | Eintrag 1 | Eintrag 2 | Eintrag 3 |
|---|---|---|---|
| Applikation | Documents | Documents | Documents |
| Typ | Properties | Properties | Properties |
| Unterkategorie | Squeeze | Squeeze | Squeeze |
| Name | SqueezeStatus_Unfinished |
SqueezeStatus_Error |
SqueezeStatus_Processed |
| Projektspezifische Anpassung | nein | nein | nein |
| Deutsch | Übernahme läuft / unvollständig | Übernahme fehlgeschlagen | Übernommen |
| Englisch | Transfer incomplete | Transfer failed | Transferred |
Danach die Properties erzeugen, sonst zeigt das Feld die neuen Werte nicht übersetzt an.
Mappentyp Invoice
- Feld
SqueezeStatusaufrunscript:Squeeze_ENUM_DocFile_SqueezeStatusumstellen - Register aus Wert 2 (und ggf. Wert 3) des Parameters und Gentable vorhanden
- Öffentlichen Filterordner für Invoice mit
SqueezeStatus = UnfinishedODERERRORanlegen
Das Feld SqueezeStatus im Manager bzw. im Webclient nach der Umstellung:
Squeeze
- SOAP-Export der Klasse ausschalten.
- Export-Interface „Pull“ an der Klasse anlegen und aktivieren.
- Prüfen, dass der Queue-Step „Export“ heißt.
- Mapping in der Spalte Name (Zielsystem) prüfen: jedes DOCUMENTS-Feld nur einmal zugeordnet (Details auf der Seite Konfiguration).
Das Export-Interface „Pull“ an der Klasse:
Jobs
Invoice_JOB_SqueezePull mit der Eigenschaft thread=1 anlegen und erst nach dem Test viertelstündlich einplanen.
Invoice_JOB_StartWorkflow nicht ändern. Er wird nur gebraucht, wenn der Parameter Squeeze_StartWorkflow nicht auf true steht.
Vor dem Einplanenersten Start von Invoice_JOB_StartWorkflow, auch im Einbautest Schritt 2, prüfen, ob es alte Vorgänge mit leerer WorkflowID gibt. Sie würden ebenfalls gestartet werden.
Einbautest
Der Test läuft mit einem einzelnen Beleg in zwei Durchgängen: zuerst ohne Rückmeldung an Squeeze, dann mit. Vorher in Squeeze_Pull_Lib TEST_KEEP_IN_EXPORT = true und MAX_DOCS_PER_RUN = 1 setzen.
| # | Aktion | Erwartung |
|---|---|---|
| 0 | Invoice-Vorgang öffnen | SqueezeStatus bietet |
| 1 | Invoice_JOB_SqueezePull von Hand starten |
Der Vorgang wird angelegt und steht auf „Unfinished“, keine FEHLT-Zeile im Log. Der Beleg bleibt in Squeeze im Export, weil der Testmodus kein FINISHED meldet. |
| 2 | Invoice_JOB_StartWorkflow von Hand starten |
Prüft die Workflow-Sperre: Der Vorgang aus Schritt 1 bekommt keinen Workflow, im Log steht ue_beforeStartWorkflow() -> false. |
| 3 | In Squeeze_Pull_Lib TEST_KEEP_IN_EXPORT = false setzen, Invoice_JOB_SqueezePull erneut starten |
Jetzt die echte Übernahme: FINISHED im Log, Vorgang auf „Processed“, Beleg in Squeeze aus dem Export verschwunden. |
| 4 | Workflow prüfen | Mit Squeeze_StartWorkflow = true: im Pull-Log „Workflow … gestartet“. Sonst Invoice_JOB_StartWorkflow starten, der Vorgang bekommt jetzt seinen Workflow. |
Nach dem Test in Squeeze_Pull_Lib MAX_DOCS_PER_RUN wieder auf 100 setzen (TEST_KEEP_IN_EXPORT steht seit Schritt 3 auf false). Dann Invoice_JOB_SqueezePull viertelstündlich einplanen und, falls der Workflow nicht direkt im Pull-Lauf startet, auch Invoice_JOB_StartWorkflow.


