Server Admin und Senior Entwickler
demandflow.deAnsehen
Abzeichen 7
Editor Frischling 10 × Eureka! Anfänger Enthusiast Reporter UnterstützerHey 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,
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,
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,
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 ...
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 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
einfachste Variante ist das Admin-Log in den Usereinstellungen zu aktivieren, dann kommt regelmäßig eine Mail mit den fehlerhaften Schritten etc.
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,
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,
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...
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...
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,
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...
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?
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
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...
Ja, habe ein Tag hinzugefügt und einen Edit
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');
});