Пример #1
0
 protected function syncVariables(Execution $execution, array $syncData)
 {
     $delta = $this->computeVarDelta($execution, $syncData);
     if (!empty($delta[Execution::SYNC_STATE_REMOVED])) {
         $this->conn->delete('#__bpmn_execution_variables', ['execution_id' => $execution->getId(), 'name' => (array) $delta[Execution::SYNC_STATE_REMOVED]]);
     }
     if (!empty($delta[Execution::SYNC_STATE_MODIFIED])) {
         foreach ($delta[Execution::SYNC_STATE_MODIFIED] as $k) {
             $value = NULL;
             if (is_scalar($syncData['variables'][$k])) {
                 $val = $syncData['variables'][$k];
                 if (is_bool($val)) {
                     $val = $val ? '1' : '0';
                 }
                 $value = new UnicodeString(trim($val));
                 if ($value->length() > 250) {
                     $value = $value->substring(0, 250);
                 }
                 $value = $value->toLowerCase();
             }
             $this->conn->insert('#__bpmn_execution_variables', ['execution_id' => $execution->getId(), 'name' => $k, 'value' => $value, 'value_blob' => new BinaryData(serialize($syncData['variables'][$k]))]);
         }
     }
 }