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.