/**
  * Runs a single workflow.
  * @param class_module_workflows_workflow $objOneWorkflow
  */
 public function runSingleWorkflow($objOneWorkflow)
 {
     $objHandler = $objOneWorkflow->getObjWorkflowHandler();
     if ($objOneWorkflow->getIntState() != class_module_workflows_workflow::$INT_STATE_SCHEDULED) {
         return;
     }
     //trigger the workflow
     class_logger::getInstance(self::STR_LOGFILE)->addLogRow("executing workflow " . $objOneWorkflow->getSystemid(), class_logger::$levelInfo);
     if ($objHandler->execute()) {
         //handler executed successfully. shift to state 'executed'
         $objOneWorkflow->setIntState(class_module_workflows_workflow::$INT_STATE_EXECUTED);
         class_logger::getInstance(self::STR_LOGFILE)->addLogRow(" execution finished, new state: executed", class_logger::$levelInfo);
     } else {
         //handler failed to execute. reschedule.
         $objHandler->schedule();
         $objOneWorkflow->setIntState(class_module_workflows_workflow::$INT_STATE_SCHEDULED);
         class_logger::getInstance(self::STR_LOGFILE)->addLogRow(" execution finished, new state: scheduled", class_logger::$levelInfo);
     }
     $objOneWorkflow->setIntRuns($objOneWorkflow->getIntRuns() + 1);
     $objOneWorkflow->updateObjectToDb();
 }