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

Ändern des Step-Status (Abschließen der Systemaktivität)

Scroll Zurück Oben Weiter Mehr

Um die erstellte Systemaktivität nun in den gesamten Prozessverlauf integrieren zu können und nach dem Export der CSV in den nächsten Schritt zu gelangen bzw. den Prozess korrekt zu beenden, muss der Step-Status verändert werden. Dies geschieht im Beispiel über die Methode markActivityAsCompleted:

Ändern des Step-Status auf abgeschlossen

<?php

class csvSystemActivity extends AbstractSystemActivityAPI

{

...

    private $fieldDelimiter;

    private $csvFile;

    private $csvFilePointer;

    private $numberOfRows;

 

    protected function exportCsv()

    {

        $this->increaseSystemActivityCalls();

 

        $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);

        $this->markActivityAsCompleted();

    }

 

    protected function increaseSystemActivityCalls()

    {

        $systemActivityCalls = $this->getSystemActivityVar('systemActivityCalls', 0);

        $systemActivityCalls++;

 

        $this->debug('system activity calls: ' . $systemActivityCalls);

 

        $this->setSystemActivityVar('systemActivityCalls', $systemActivityCalls);

    }

 

    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++;

    }

}

Führen Sie nun die Systemaktivität aus, wird sie beendet und gelangt in den nächsten Schritt bzw. der Ablauf des Prozesses wird beendet, je nach Konfiguration des Workflows.