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
Beantwortet
Attachment aus Prozesstabelle eines abgeschlossenen Prozesses laden

Hallo zusammen,
bei einem Projektgenehmigungsworkflow habe ich das Problem, dass sich beispielsweise die Projektkosten nach Abschluss aller Genehigungsschritte nachträglich ändern können. Wenn die Kostensteigerung ein gewisses Maß überschreitet ist der Antrag erneut genehmigugspflichtig.
Um nun nicht alle Daten aus dem alten Antrag erneut manuell einpflegen zu müssen, greife ich mit einem Code (PHP in Zusammenspiel mit JavaScript) auf die Prozesstabelle zu und hole mir die Daten. Soweit so gut - leider weiß ich nicht, wie ich an die abgespeicherten Attachments rankomme, da jr_set_value nicht für Attachments funktioniert*. Könnt ihr helfen?

  • JR Manual - "This function does not support the following dialog elements: BUTTON, ALTERNATIFF, ATTACHMENT, BLANK, FILE and SQLTABLE"
  1. Eine SQL Tabelle zeigt mir im Schritt aller abgeschlossenen Projekte an.
  2. Über einen Klick in die entsprechende Zeile wird die Funktion getData ausgeführt.
function getData(rowId){
    
  var prozessid = jr_get_table_value('ila_applications', rowId, 'processid');
  var archivid = jr_get_table_value('ila_applications', rowId, 'ARCHIVE_ID');
    
    jr_execute_dialog_function('PHPgetData', {ID:prozessid,ARCHIVE_ID:archivid}, successCallbackData, errorCallbackData);
    
}
  1. Diese wiederrum führt den PHP Befehl aus, welcher aus der Prozesstabelle die Daten in das Dialogfeld "JSON_Data" schreibt:
<?php

class className extends JobRouter\Engine\Runtime\PhpFunction\DialogFunction
{
	public function execute($rowId = null)
	{
		$Archiv_ID=$this->getParameter('ARCHIVE_ID');
		
		$prozessid=$this->getParameter('ID');
		     $Prozesstabelle = 'ILA_APPROVAL_FI';
		     
		    $this->setReturnValue('OLD_PROCESSID', $prozessid); 
		   
		    $jsonsatz = array();
		    $j = 0;
            $jobDB = $this->getJobDB();
            $sql = "select * from $Prozesstabelle as p inner join jrincidents as jri on p.processid = jri.processid 
            where p.processid = '$prozessid' and jri.status = 5 and ARCHIVE_ID <> '' and p.step_id = (select max(step_id) from ILA_APPROVAL_FI where processid =jri.processid)";
            
            $result = $jobDB->query($sql);
            if ($result === false) {
                throw new JobRouterException($jobDB->getErrorMessage());
            }
            while ($row = $jobDB->fetchRow($result)) {
                
               $jsonsatz[$j]["SAP_APPLICANT"]=$row['SAP_APPLICANT'];
                $this->setReturnValue('SAP_APPLICANT', $row['SAP_APPLICANT']);
								
$JSON = json_encode($jsonsatz);
$this->setReturnValue('JSON_Data', $JSON);
  1. Im Falle eines Erfolgs wird die folgende Java Callback - Funktion ausgeführt:
function successCallbackData(returnObject){
    
      jr_set_value('applicant',returnObject.result.SAP_APPLICANT);

Vielen Dank vorab!
Karim

  
  
Gepostet vor 2 Jahren
Stimmen Neuste

Antworten


Hallo Karim,

willst du die Datei tatsächlich in ein Element schreiben oder diese nur zum Anzeigen öffnen?

Zweiteres wäre möglich über die Funktion jr_popup. Hier unsere Fnuktion, welche wir nutzen um Dateien aus einem beliebigen Prozess / Vorgang in einem anderen aufzurufen:

function popUpAttachment(filePath) {

    const workflowId = $JRSTEP.workflowId;

    const path = `attachment.php?id=${btoa(workflowId)}&url=${encodeURIComponent(filePath)}&mode=3&jobViewer=3&editMode=0&allowAnnotations=0&allowDownload=0&allowPrint=0&enableOcr=0&width=800&height=600&action=show`;

    jr_popup(path, "Document", { top: 100, left: 100, width: 800, height: 600 });
}

Als filePath wird der Pfad aus der JR-DB übergeben, den wir uns z.B. per SQL-Element ermitteln.

Viele Grüße
Jan

  
  
Gepostet vor 2 Jahren
pic
Gelöschter Benutzer