Please enable JavaScript to view this site.

Das Handbuch für den JobRouter Entwickler

Navigation: Systemaktivitäten > Verwendung der PHP API am Beispiel CSV-Export > Speichern von Ausgabeparametern und Änderung des Status

Speichern von Ausgabeparametern

Scroll Zurück Oben Weiter Mehr

Damit die exportierte Datei im weiteren Prozessverlauf zur Verfügung steht, müssen Pfad und Name der Datei in die Prozesstabelle zurück geschrieben werden. Darüber hinaus soll die Anzahl der exportierten Zeilen in einem weiteren Prozesstabellenfeld hinterlegt werden. Um dies zu erreichen führen wir zunächst eine Zählvariable ein, die die Anzahl der geschriebenen Zeilen speichert. Um die so ermittelten Werte in der Prozesstabelle zu speichern wird die API-Methode storeOutputParameter verwendet:

Ausgabeparameter in der Prozesstabelle speichern

<?php

class csvSystemActivity extends AbstractSystemActivityAPI

{

...

    private $fieldDelimiter;

    private $csvFile;

    private $csvFilePointer;

    private $numberOfRows;

 

    protected function exportCsv()

    {

        $this->debug('exportCsv start');

 

        $this->loadGlobalSettings();

        $this->openCsvFile('w');

 

        $this->debug('executeMethodForSubtable for '. $this->getFixSubtableName());

 

        $this->initLineCounter();

        $this->executeMethodForSubtable('writeSubtableLineIntoFile', $this->getFixSubtableName());

        $this->storeOutputParameter('targetFile', $this->csvFile);

        $this->storeOutputParameter('numberOfRows', $this->numberOfRows);

    }

 

    protected function loadGlobalSettings()

    {

        $this->fieldDelimiter = $this->resolveInputParameter('fieldDelimiter');

    }

 

    protected function openCsvFile($mode)

    {

        $this->csvFile = $this->getTempPath() . DIRECTORY_SEPARATOR . 'test.csv';

        $this->debug('csvFile: '.$this->csvFile);

        $this->csvFilePointer = fopen($this->csvFile, $mode);

    }

 

    protected function initLineCounter()

    {

        $this->numberOfRows = 0;

    }

 

    protected function writeSubtableLineIntoFile()

    {

        $this->debug('writeSubtableLineIntoFile for '. $this->getFixSubtableName());

        $subtableValues = $this->resolveInputParameterListValues('fieldList');

        $csvLine = implode($this->fieldDelimiter, $subtableValues)."\r\n";

        fwrite($this->csvFilePointer, $csvLine);

        $this->numberOfRows++;

    }

}

Ein Blick auf die Schritt-Details im Simulator zeigt uns, dass die Daten korrekt in die Prozesstabelle geschrieben wurden:

ERSTEL~1_img27