Arbeiten mit dem Workflow Runner

Struktur

Jeder Datensatz der nearbeitet wird muss sich in einem Generic befinden.

In diesem Beispiel werden Positionen bearbeitet:

$positions=[];
$position=[];
$position['scid']=1425;
$positions[] = $position;

$positionsCollection=new \Alvine\Types\Collection(\Alvine\Application\Data\Generic::class);
foreach($positions as $position) {
     $positionsCollection->append((new \Alvine\Application\Data\Generic)->setDataset(new \Alvine\Data\Dataset($position)));
}

Wenn mehrere Operationen durchgeführt werden sollen. Muss jede weitere Operation sich auch in einem Generic befinden

Die Antwort

Die Generic Antwort besteht immer aus einem dataset und einem sys Teil.

{
    "dataset": [
        {
        ....
        }
    ],
    "sys": {
        ...
    }
}

Jeder bearbeitete Datensatz ist wieder ein Generic.

{

"dataset": [
    {
        "positions": [
            {
                "dataset": {
                    ....
                },
                "sys": {
                   ...
                }
            }
        ]
    }
],
"sys": {
    ....
}

}

Script

$workflow=\Alvine\Application\Platform\Plugin\Turnover\Component::getInstance()->getWorkflow('exchange_positions');
$runner = new \Alvine\Application\Platform\Logic\Workflow\Runner\Generic($workflow);
$runner->setGenericDataCollection($positionsCollection);
$runner->setExpectedFinalState('done');
$runner->run('transition-start');

$fullReport= $runner->getFullReport();