Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Profile picture
Jan Zimmerbeutel
Administrator Moderator
8 Fragen, 25 Antworten
  Aktiv seit 15 Januar 2021
  Letzte Aktivität vor 5 Monaten

⦁ Solution Engineer / Workflow Designer ⦁ JobRouter Entwickler seit 2018 ⦁ Seit 2019 bei DemandFlow

Ansehen

272 0 2

Abzeichen 4

Editor Enthusiast 8 × Eureka! Anfänger
1 Stimmen
1 Antworten
5K Ansichten
1 Stimmen
1 Antworten
6K Ansichten
1 Stimmen 1 Antworten 6K Ansichten
Bei einem Prozess, der die Schritte immer konkreten Benutzern zuweist, will ich verhindern, dass beim Zuweisen oder bei der Rückfrage eine Rolle ausgewählt w...
1 Stimmen
1 Antworten
6K Ansichten
1 Stimmen 1 Antworten 6K Ansichten
In einer Übersicht zu laufenden Vorgängen möchte der Kunde gerne den aktuellen Schritt, in dem der Vorgang liegt, angezeigt bekommen. Die Schrittnummer ist d...
1 Stimmen
1 Antworten
5K Ansichten
1 Stimmen 1 Antworten 5K Ansichten
Wenn man in einer Untertabellenansicht eine file-Spalte zum Dokumenten-Upload hat, hat man meist eine weitere Spalte für den Dokumenten-Titel (wie z.B. auch ...
1 Stimmen
2 Antworten
5K Ansichten
1 Stimmen 2 Antworten 5K Ansichten
Durch einen unbeabsichtigten Klick können User aus Versehen wichtige sections einklappen. Ich möchte sicherstellen, dass immer alle sections sichtbar sind.
1 Stimmen
2 Antworten
6K Ansichten
1 Stimmen 2 Antworten 6K Ansichten
Wenn man eine Datei in eine STV hochlädt, hat man meistens ein zweites Feld für eine Kurzbeschreibung/einen Namen. Dies wird regelmäßig vergessen auszufüllen...
1 Stimmen
2 Antworten
7K Ansichten
1 Stimmen 2 Antworten 7K Ansichten
Die Multi-Select Erweiterung kann sehr praktisch sein, jedoch ist die Darstellung des Eintrags in einer Spalte eines JobSelects im Format {"0:"Eintrag1", "1"...
2 Textformatierung in einem Dialog

Hallo,
man kann sehr gut den tinyMCE Editor einbinden.
Gehen Sie dazu bitte wie folgt vor:

  • laden Sie die aktuelle Version von tinymce.min.js von der Projekt-Site herunter (https://www.tiny.cloud/) und binden Sie das Skript als globales JS oder externes JS im JobRouter ein
  • Rufen Sie im onLoad Eventhandler des Dialogs die init-Funktion des tinyMCE auf und geben Sie eine Whitelist der Textareas in Form eines Arrays mit. Diese Textfields erhalten dann die entsprechende Funktionalität.
    *...
vor 3 Jahren
2 Office 365 PlugIn, um Office-Dokumente im JR-Document Hub bereit zu stellen

Im Support-Portal unter Online-Dokumentation->Module->Office findet man 2 Möglichkeiten, das Add-On zu installieren.
Da ist zum einen der manuelle Weg, bei dem man eine manifest.xml Datei erstellen muss. Dies ist detailliert beschrieben.

Der 2. Weg ist der komfortablere. Man kann direkt aus Office heraus unter Add-Ons hinzufügen das JobRouter Plugin installieren.

Leider funktioniert das nicht, da man keine Einträge bei der Suche nach "JobRouter" findet.
Ich habe hierzu ein Ticket beim...

vor 3 Jahren
2 Beim Upload von Dokumenten in eine STV muss immer händisch der Name eingetragen werden

Ja, hier ein Beispiel:

//In STV im Datei-Upload-Feld bei onChange:
sutableSetFieldnameToFieldOnRowAdd(this.id );

 //Code:
function sutableSetFieldnameToFieldOnRowAdd(id) {
    var st = 'UTA_DOKUMENTE';
	  var rid1 = id.charAt(id.length - 10);
    var rid2 = id.charAt(id.length - 11);
    var ridConcat = rid1 + rid2;
    var rid = isNaN(ridConcat) ? parseInt(rid1) : parseInt(ridConcat);
    var field = 'doc_title';
    var n = '#' + id.substr(0, id.length - 9) + '_showUploade...
vor 3 Jahren
1 Dynamische Untertabelle(nansicht)

Hallo Chris,

wie Timo schon schrieb, stehen auch die im Prozess angelegten Listen in der DB (wo genau, siehe Timos Eintrag und das Handbuch). Es ist möglich, über JobRouter Dialogfunktionen, die per Event Listener gecallt werden, solche dynamischen Anpassungen (notfalls per DOM-Manipulation über JavaScript) vorzunehmen.
Vorgehen:

  • Event Listener OnChange auf Spalte 1
  • der callt eine Dialogfunktion, die die Daten aus der DB abfragt und zurück gibt
  • diese baust du dann per JS in als <...
vor 3 Jahren
1 Line Breaks über Script in Textarea mitgeben

Hi Karim,

ich hatte das Problem auch schon, bei mir hat &#013;&#010; funktioniert (ASCII Codes für Zeilenumbrüche).

Hoffe ich konnte dir helfen,

Gruß
Jan

vor 2 Jahren
1 Wie kann ich mit Javascript am besten einen Wert aus der Prozesstabelle auslesen?

Hi Gabriel,

entweder du mapst das PT Feld auf ein verstecktes Dialog-Element (eine ausgeblendete Textbox oder ein "Hidden"-Element) und liest es mit jr_get_value('name') aus.
Die kompliziertere Variante geht über eine Dialogfunktion, siehe hierzu:
https://docs.jobrouter.com/2022.2/de/designer/jsapi_jr_execute_dialog_function.html?q=jr_execute
und
https://docs.jobrouter.com/2022.2/de/designer/php_jr_execute_dialog_function.html?q=jr_execute
Vor allem das Beispiel im PHP-Handbuch ist br...

vor 2 Jahren
1 Zugriff auf den Anzeigewert einer SQL-List mit Autovervollständigung

Hallo,
dabei ist der Trick, das in den Dialogelement-Einstellungen die Checkbox "Gültige Eingabe erforderlich" gesetzt ist:

file

Nur dann wird die zweite Spalte der SQL Query als Wert behandelt und die erste als Display-Value.
Ist die Checkbox gesetzt, können Sie mit

jr_get_value('dialogElementName');
jr_get_display_value('dialogElementName');

jr_set_value('dialogElementName', 'value');
jr_set_display_value('...
vor 3 Jahren
1 SUBTABLE im Dialog über SQL füllen

Hallo Josef,

dies ist problemlos möglich und wir benutzen dies häufig.
Rufen Sie im onLoad des Dialogs oder beim onclick auf den Button eine Dialogfunktion auf (jr_execute_dialog_function). Dies ist ein AJAX Call auf ein PHP Skript, das eine DB Abfrage machen kann und das Ergebnis ins Frontend zurückliefert.
Wenn die zurückgelieferten Daten im korrekten Format sind, kann man sie direkt per jr_subtable_init in die STV werfen.
Es gibt sowohl im JavaScript Handbuch als auch im PHP Handbuch...

vor 3 Jahren
1 grafische Prozeß-Ausgestaltung

Hi Gabriel,

das ist natürlich eine sehr allgemeine Frage, daher gibt es auch nur allgemeine Antworten.
Ich bin gelernter Mediengestalter und was du wissen möchtest, sind die Grundlagen des UI-Designs und der Wahrnehmungspsychologie.
Das kann man googeln, es ist jedoch kein unterkomplexes Thema und du musst da Zeit reininvestieren.
Was den JR angeht, ist der Dialog-Designer etwas in die Jahre gekommen. Elemente sind nicht immer bündig, haben keine einheitliche Breite etc.
Du solltest d...

vor 2 Jahren
1 eigene PHP Funktionen aufrufen

Hallo Herr Ehrstein,
um es etwas zu präzisieren, das Ganze müsste so aussehen:

<?php

class className extends JobRouter\Engine\Runtime\PhpFunction\RuleExecutionFunction
{
	public function execute($rowId = null)
	{
		$this->toDo();
	}
	
	private function toDo()
	{
		// do Stuff
		// hier könnte man auch etwas returnen
	}
}
?>

Damit ist zum Einen toDo als Klassenmethode definiert und wird zum Anderen mit $this-> korrekt gecallt (weil $this impliziert, dass eine Met...

vor 3 Jahren
1 Wie kann ich erreichen, dass eine Rückfrage bzw. die Zuweisung eines Schrittes nur an einen Benutzer, nicht an eine Rolle getätigt werden kann?

Hier ein Skript dazu:

//Listener
function addPopupListener()  {
    jQuery('html').on('DOMNodeInserted', function(e) {
        if (jQuery(e.target).hasClass('jr-step-action-layer')) {
            reshapeControlsForStepActions();
        }
    });
}

//Reshaper
function reshapeControlsForStepActions() {
    jQuery("[for='id_popup_request_jobfunction']").css("display", "none");
    jQuery("[for='id_popup_assign_job']").css("display", "none");
}

Die Funktion addPopupLi...

vor 3 Jahren
0 Name von hochgeladenem Dokument automatisch als Titel

Hier ein kleines Skript dazu.
Das Skript muss nach Klick auf das Stift-Symbol der File-Spalte in der Untertabellenansicht im Abschnitt "Scripting" beim OnChange Handler eingebunden werden und die ID des Elements als Parameter übergeben:

subtableSetFieldnameToFieldOnRowAdd(this.id);

Und hier das Skript, das aufgerufen wird:

function subtableSetFieldnameToFieldOnRowAdd(id) {
    var st = 'UTA_DOKUMENTE';
    var rid1 = id.charAt(id.length - 10);
    var rid2 = id.charA...
vor 3 Jahren
0 Prozess aus anderem Prozess heraus deaktivieren oder in Wartungsmodus?

Hallo,

dies ist meines Wissens nur DB-seitig möglich.
In der Tabelle JRPROCESSES gibt es das Feld maintenance_mode, hat dieses den Wert 1, ist der Prozess im Wartungsmodus. Sie können das Flag durch ein einfaches SQL Statement aus einem anderen Prozess heraus setzen.
Das gleiche gilt für das Feld status in derselben Tabelle. Ist dieses Flag auf 1 gesetzt, ist der Prozess aktiv, auf 0 ist er inaktiv.
Ich hoffe das hilft, viele Grüße.

P.S. Bitte bestätigen Sie noch diese Antwort al...

vor 3 Jahren
0 Webservice nutzen

Hallo Herr Ehrstein,

wenn Sie im Browser<ihre-jobrouter-url>/api/rest/v2 eingeben, erhalten Sie eine Übersichtsseite, auf der Sie die Optionen der verschiedenen REST Pfade finden (GET, PUT, ...).
Sie müssen zuerst unter Angabe eines Users und Passworts eine Session starten oder einen Token anfordern.
Schauen Sie sich hierzu bitte die Beispiele in der Doku an, wie z.B. über Guzzle oder CURL die Authentifizierung und der Start der Session erfolgt.
Mit dem Tool POSTMAN kann man dies sehr g...

vor 3 Jahren
0 Wie komme ich per PHP an alle User in einer Rolle?

Hier eine Funktion, die genau dies erledigt:

private function fetchUsersFromJobfunction($jobfunction) {
    $sql = 'SELECT DISTINCT username FROM JRUSERJOB where jobfunction=?';
    $parameterValues = [$jobfunction];
		$parameterTypes = [JobRouter\Common\Database\ConnectionInterface::TYPE_TEXT]
    $res = $jobDB->preparedSelect($sql, $parameterValues, $parameterTypes);
    return $res;
}

Danach dann das result processing, z.B. mit einer while-Schleife:

$usersInFuncti...
vor 3 Jahren
0 Wie kann ich mit Javascript am besten einen Wert aus der Prozesstabelle auslesen?

Hi Gabriel,

als Nachtrag: das Mappen auf Dialogelemente scheint etwas kompliziert, ist aber tatsächlich im JR die einfachste Lösung.
Ich habe immer eine eigene Page "Hidden" in den Dialogen, in der ausschließlich die für die JS-Skripte wichtigen PT-Felder gemappt sind.
Ich nennen die Dialogfelder dann auch immer genauso, wie die PT-Felder heißen, so wird das ganze einigermaßen einfach zu handeln.

VG
Jan

vor 2 Jahren
0 Wie kann ich per SQL ermitteln, von welchem Typ ein Schritt ist, z.B. Systemaktivität oder Benutzeraktivität?

Diese Info steht in der JRICIDENTS Tabelle im Feld step_type.
Dabei gibt es folgende Werte:

  • 0: Benutzeraktivität
  • 1: Startschritt
  • 2: Systemaktivität
  • 3: Entscheidungsschritt
  • 4: Parallelisierung Start
  • 5: Parallelisierung Ende

Wird außerdem von einer Systemaktivität der Name gebraucht, steht dieser in module_name.

vor 3 Jahren
0 Plötzlich lädt der Prozess sehr langsam

Hi Marc,

Performance-Probleme können, wie du sicher weißt, alle möglichen Gründe haben. Eine Ferndiagnose ist deshalbe schwer.
Da du aber sagst, dass am Prozess selbst nichts geändert wurde, scheint das Problem an der Infrastruktur zu liegen.
Meine Vermutung wäre Webserver oder DB-Server.

  • Hat sich an der Konfiguration des Webservers etwas geändert? Vergleiche die IIS Einstellungen mal mit dem JR-Installationshandbuch.
  • Checke mal die Auslastung des Webservers
  • Liegt auf dem DB-Ser...
vor 2 Jahren
0 Wie kann ich erreichen, dass die sections eines Dialogs nicht mehr einklappbar sind?

Auf jeder section im Dialog liegt ein onclick handler. Das weiterreichen dieses Events kann verhindert werden. Hier ein Beispiel mit jQuery:

Hier ein kleines JavaScript, das diese Aufgabe erledigt (unter Benutzung von jQuery).

$j('.jr-section-title.sectionName').each(function(element) {
            $j(element).stopObserving('click');
 });

https://api.jquery.com/event.stoppropagation/

vor 3 Jahren
0 Aktualisierung einer Untertabellenansicht im Dialog nach Anpassung in einer Dialogfunktion

Hi!
Hässlich aber könnte funktionieren: An der Stelle, an der du die Dialogfunktion benutzt, sende den Schritt per JS, führe die Logik als Regelausführungsfunktion aus und öffne den Schritt direkt wieder per "Folgeschritt direkt öffnen".
VG
Jan

vor 5 Monaten
0 Ich benutze die Multi-Select-Erweiterung im JobRouter und möchte den Inhalt des gespeicherten JSON-Strings als kommaseparierte Liste in einer Übersicht darstellen.

Angenommen, die fragliche Tabelle sieht so aus:

file

Die Funktion OPENJSON hilft uns, die JSON-Spalte zu parsen, mit FOR XML PATH gibt man das Ergebnis als XML Struktur zurück:

SELECT name, (SELECT * FROM OPENJSON(j.hobbies) FOR XML PATH('')) FROM jsontest j;

Ergebnis:

file

Also eine Tabelle, mit den Spalten key, value und type, die in eine ...

vor 3 Jahren
0 Merkwürdiges Verhalten einer SQL-Liste mit Autovervollständigung

Hi Timo,

ich denke Dominic ist da auf der richtigen Spur. Was passiert, wenn du nach Laden des Dialogs auf der Browserkonsole einen SQL Refresh auf das besagte Feld machst?

VG
Jan

vor 2 Jahren
0 Wie kann ich die Schrittbezeichnung in einer Übersicht (JobSelect) darstellen?

Dies ist tatsächlich gar nicht so einfach, hier eine ausführliche Erklärung.
Eine einfache Query im Tab Datenbank des JobSelect, die alle offenen Schritte der Vorgänge eines Prozesses testProcess mit der Prozesstabelle PT_TEST anzeigt (zu i.status siehe TechDoc-Doku->Beschreibung der JobRouter Datenbank):

SELECT i.incident AS Vorgangsnummer, i.step AS Schrittnummer, pt.KUNDE AS Kunde
FROM
PT_TEST AS pt
INNER JOIN JRINCIDENTS AS i ON pt.step_id = i.process_step_id
WHERE
i.sta...
vor 3 Jahren
0 Import bzw. Export von Prozesstabellenfeldern, Untertabellen und Untertabellenansichten

Hi Swen,

ich würde dringend davon abraten die DB Tabellen händisch zu verändern. Die Nebenwirkungen kann man einfach nicht absehen.
Ich würde empfehlen die Handarbeit zu machen und alle Tabellenfelder etc. anzulegen (das nervt, ein Glas Wein hilft aber).

VG
Jan

vor einem Monat
0 jumpTo-Parameter

Hi Daniel,

diese Funktion scheint ziemlich neu zu sein, ich finde auch keine Doku.
Meine Vermutung: jr_execute('jumpTo', 20) für Schritt 20.
Über eine Rückmeldung ob es so funzt wäre ich dankbar :-)

VG
Jan

vor 2 Jahren