Server Admin und Senior Entwickler
demandflow.deAnsehen
Abzeichen 7
Editor Frischling 10 × Eureka! Anfänger Enthusiast Reporter UnterstützerHi,
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,
zweierlei:
die Zeitüberwachung ist jetzt bei den Weiterleitungsregeln
Und die Eskalationen sind Rechte Maustaste auf dem Schritt --> Eskalationen
EDIT:
Teil 1 steht in JRRULES

übersetzt sich zu
processname version step rule_id parent_id label category always ...
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);
});
Hey,
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
einfachste Variante ist das Admin-Log in den Usereinstellungen zu aktivieren, dann kommt regelmäßig eine Mail mit den fehlerhaften Schritten etc.
Hallo,
hat etwas gedauert aber hier die Antwort:
"Server SourceType steht für die Quelle, aus der der Dialog bearbeitet wurde, bzw. der Schritt abgeschickt wurde.
Es ist 1 für DESKTOP und 2 für MOBILE.
Ein Schritt mit 0 wird dann von JobServer abgeschickt worden sein (StepStatus=99), da JobServer nicht über einen Dialog den Schritt verarbeitet."
Moin,
damit habe ich selbst gekämpft und die Lösung ist:
JR legt eine viel zu hart gecachte Kopie an in
Webverzeichnis/assets/cache/systemactions/NameDerSysAktivität
Wenn du die löschst, dann sollte sie neu generiert werden. Alternativ deine neue Version dort ablegen.
Hey,
Standard-Untertabellenansichten lassen sich von Haus aus leider - und jda, das ist leider wirklich so - nicht sortieren. Die Daten sind fest mit einer row-id verknüpft und so wie sie in der Datenbank im Hintergrund stehen werden sie angezeigt.
Zwei Möglichkeiten:
- Entweder, wenn du bei der Untertabellenansicht bleiben möchtest, dann musst du dir die Daten einmal raus ziehen per Javascript (oder auch via einer DIalogfunktion), musst sie programmatisch sortieren wie es beliebt und da...
Hey,
wenn die Anforderungen an die PDFs zu komplex oder zu dynamisch werden dann umgehen wir die Einschränkungen von Word komplett und nutzen das mitgelieferte TCPDF, bauen das Layout beliebig komplex im PHP mit HTML auf, konvertieren das zu PDF und attachen es dan an das Anhangsfeld.
Grüße
Stefan
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...
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
Moin,
der Trick ist ein neues Skript hinzuzufügen und bei der Skriptart "Andere" zu wählen.
Das hier funktioniert bei mir:

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,
mein Verständnis ist, dass man mit
jQuery( '#meiniFrame' ).attr( 'src', function ( i, val ) { return val; });
das Element dazu überreden kann zu glauben, dass der source-Wert neu gesetzt wurde und damit den Inhalt neu lädt.
Ggfs muss man die Funktion etwas anpassen, damit der neue Link generiert wird oder so?
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');
});
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,
du kannst den vollen Link zur Datei bekommen via
$this->getFullUploadPath('meinPTField');
Das kann fies sein. Man beachte den vierten Parameter der Dokumentation dieser Funktion.<br>
$this->getSubtableValue($sub, $field, $row, $raw); <br>
Setzt man $raw auf true, dann bekommt man laut Doku den "rohen Wert" zurück.
Effektiv muss man das setzen, um bei Datumswerten die Uhrzeit mit zu bekommen.
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
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
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