
Server Admin und Senior Entwickler
demandflow.deAnsehen
Abzeichen 7
Editor Frischling 10 × Eureka! Anfänger Enthusiast Reporter UnterstützerHey,
hast du mal versucht, dir die Dialog-XML aus der Datenbank zu ziehen und in dem Editor deiner Wahl zu analysieren? Kann es sein, dass es tatsächlich ein Feld gibt, welches dort nicht rein gehört? Es klingt erstmal so als ziehe er die Struktur und hat einen Fehler dabei, diese zu rendern da ein nicht valides Feld dabei ist.
Alternativ würde ich versuchen, mal einen neuen, leeren oder minimalen Dialog dem Schritt zuzuordnen und zu schauen, ob dieser geladen wird.
Grüße
Stefan
Moin,
das ist ein systemseitiger Fehler, kein spezieller JobRouter-Fehler, aber kannst Du mal probieren die DLL neu zu registireren? Es kann sein dass diese beim Update ausgetauscht wurde und entweder nicht registriert wurde oder nicht korrekt ausgetauscht und korrupt ist.
Mach eine Admin-cmd auf, navigiere in den Ordner C:\Windows\System32\ und führe aus
regsvr32 KERNELBASE.dll
Aufgrund der Datenbakclients müssen Transaktionen auf externen Datenbanken selbst organisiert werden, also Regeln im Regelablauf speziell mit BEGIN TRANSACTION, COMMIT und ROLLBACK angelegt werden.
Problem: Wenn man in einem Schritt mehrere Regeln hat und die Regel mit der Transaktion auf die externe DB erfolgreich durchläuft (und man die Daten committed), aber eine der nachfolgenden Regeln Fehler verursacht, dann wird der JobRouter-Schritt zurückgerollt, die schon committete Transaktion a...
Man kann über eine DialogFunction xlsx generieren.
Man sammelt die Daten in einer Map und macht dann im JS so etwas in der Richtung (verkürzt aus einem Projekt und ungetestet)
JS:
jr_execute_dialog_function(
'getXlsx',
{ data: data },
function(/** @type {{ status: string; result: { data: string; }; }} */ response) {
if (response.status === 'ok') {
var a = document.createElement('a');
...
Moin,
es ist tatsächlich so, dass für Simulator-Schritte nicht alle Funktionen verfügbar sind und die Informationen teilweise in anderen DB-Tabellen geführt werden. REST-Sachen würde ich nicht versuchen auf Simulator-Prozesse zu fahren.
Zur eigentlichen Frage:
- Du hast zwei Möglichkeiten. Entweder tatsächlich via PHP oder sonstige Wege direkt in die Datenbank die step_status-Werte setzen. In einer Deiner anderen Fragen habe ich dazu glaube ich den Code gepostet.
- Du müsstest Nicht-Sim...
Moin,
welche JobRouterVersion fahrt ihr denn? Der phpfunctions-endpoint kam erst vor Kurzem dazu. In meinen JobRoutern existiert der zum Beispiel noch nicht.
Du kannst die verfügbaren Endpoints deines JR einsehen via
https://meinServer.de/jobrouter/api/rest/v2
Ich sehe den erst irgendwann ab den 2022er Versionen
Moin!
Ich war mir zuerst kurz nicht sicher, ob Ihr die "inoffizielle" API von Chris Müller meint, einem JR Entwickler in privater Kapazität
Link hier
oder die offizielle Erweiterung aus der JR Repo,
Link hier
Persönlich kenne ich das Projekt, habe es aber nicht im Einsatz. Aber eine nette Sache, dass es angeboten wird.
Hi,
vielleicht noch ein weiterer Ansatz als Ergänzung zu den Punkten von Jan:
Was passiert vor dem TTFB:
- DNS lookup: Mach mal intern einen DNS Lookup von einer ungecacheten Maschine und schau ob vielleicht Euer DNS intern aktuell Probleme macht. Dies würde sich wahrscheinlich aber noch auf weitere Dinge auswirken in Eurem Netz
- SSL handshake: Normalerweise unproblematisch aber wer weiß
- Webserver-Verarbeitung: Nutzt Ihr Redis oder irgendwelche erweiterten Caches, die erst abgefra...
Moin,
der Trick ist ein neues Skript hinzuzufügen und bei der Skriptart "Andere" zu wählen.
Das hier funktioniert bei mir:
Wahrscheinlich hast du eine neuere Version aber laut meiner Doku fehlt da das "v2"
GET https://meinefirma.de/jobrouter/api/rest/v2/designer/process/superprozess/1/phpfunctions
Moin,
du kannst den vollen Link zur Datei bekommen via
$this->getFullUploadPath('meinPTField');
Ich habe die andere Frage gelöscht. Welche JobRouter-Version ist es denn? Wir können schauen ob man am Montag mal einen Teams-Call macht und drauf schaut
Moin,
das Update auf 5.2 ist eines der komplexesten Updates die ich bisher zu tun hatte weil sehr viel intern umgestellt wurde. Habe den JRlern auch gesagt, dass das für ein Minor-Update meiner Ansicht nach viel zu viel war. Es war halt das vorbereitende Update auf die 2022.1.
Hast du:
Löschen Sie aus dem Installationsverzeichnis der JobRouter-Webanwendung die Unterverzeichnisse includes und library. Hierdurch gewährleisten Sie, dass nicht mehr benötigte Dateien nicht weiter im System ve...
Hey Swen,
wenn JR in deinem Kontext das (TABELLENFELD) nicht auflöst wirst du nicht umher kommen, einen kleinen Umweg über eine Dialogfunktion zu drehen, also sowas wie
jr_execute_dialog_function('fetchFieldInfo', {},
function (resultObject) {
jr_notify_info(returnObject.result.myMessage);
},
function(errorObject) {
jr_notify_error(errorObject.message);
});
Moin Tobias,
die Weiterleitung mit direktem Öffnen funktioniert nur von einem Benutzerschritt zum Nächsten. Wenn eine Systemaktivität dazwischen ist, dann ist das leider nicht möglich, da der gewünsche Schritt zu diesem Zeitpunkt noch nicht existiert.
Je nachdem wie viel Aufwand es Euch wert ist könnt Ihr die PDF via einer PHP-Dialogfunktion zur Laufzeit generieren, allerdings könnt Ihr dann nicht einfach die Systemaktivität benutzen sondern müsstet mit einem der mitgelieferten PHP-PDF-Li...
Moin Moin,
das ist natürlich eine sehr individuelle Frage, da jeder Entwickler da eigene Präferenzen hat.
Wichtig ist jedoch vorneweg die Konsistenz.
Wenn ich zu einem bestehenden Projekt dazukomme dann analysiere ich die bisherigen Konventionen und führe diese weiter.
Wenn ich mit jemandem zusammen einen neuen Prozess entwickle dann spreche ich mich mit jener Person ab, sodass es konsistent ist.
Wenn ich jedoch alleine einen neuen Prozess entwickle mache ich es üblicherweise so:
Date...
Moin Moin,
ich sehe zwei Sachen die du mal probieren könntest:
- Eigentlich brauchst du auf Dialogfunktionen kein save (außer du willst den neuen Zustand wirklich speichern). Wenn du das möchtest, probier mal bitte - und ich weiß wie doof das klingt - save zwei mal hintereinander aufzurufen. Wir haben damit tatsächlich schon so seltsame Verhalten gelöst bekommen.
- Die schönere Lösung ist eigentlich aber die Zeilen per JS zu kopieren, dann bekommen die User auch nicht den Ladebildsch...
Hallo,
man kann bei SQL-Lists die Daten im Format SELECT Anzeigewert, Speicherwert FROM X laden.
Sieht auf dem Dialog so aus:
Und speichert zu
Bei den Ausgangsdaten von
Ja, das ist möglich.
Via JS kann - zum Beispiel im onLoad - folgender Code aufgerufen werden:
$$('.jr-section-title.sectionName').each(function(element) {
$(element).stopObserving('click');
});
Hey Jan,
Dominic kam mir zuvor aber ja, es gibt noch ein verstecktes User-Feld, welches an dieser Stelle befüllt werden muss. Etwas fies:
Hallo,
ich würde es hier wahrscheinlich tatsächlich über die API machen. Der korrekte Weg den iframe zu befüllen ist folgendermaßen:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https:// . . ./api/rest/v2/application/jobarchive/archives/ARCHIVNAME/documents/" . $revId . "/file");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, C...
Moin,
wenn die Einträge in eine JobData geschrieben werden kann man theoretisch über die REST-API prüfen, ob eine Zeile existiert zu den neuen Benutzerdaten und dann den Schritt mit sowas wie
$sql = "UPDATE JRINCIDENTS SET status=0, step_status=99 WHERE workflowid=:wfid";
senden.
Alternativ kann man einen Schritt in Wiedervorlage schieben, der sich dann hin und wieder neu startet und mit einem Skript auf etwas prüft. Alternativ kann man einen Hilfsprozess schreiben der nur nach...