/** * @param NodeName $nodeName * @param ProcessId $subProcessId * @param bool $succeed * @param ProcessingMessage $lastReceivedMessage * @param TaskListPosition $parentTaskListPosition * @throws \InvalidArgumentException * @return SubProcessFinished */ public static function record(NodeName $nodeName, ProcessId $subProcessId, $succeed, ProcessingMessage $lastReceivedMessage, TaskListPosition $parentTaskListPosition) { if (!is_bool($succeed)) { throw new \InvalidArgumentException("Succeed must be a boolean"); } $payload = ['processor_node_name' => $nodeName->toString(), 'parent_task_list_position' => $parentTaskListPosition->toString(), 'sub_process_id' => $subProcessId->toString(), 'succeed' => $succeed, 'last_message' => $lastReceivedMessage->toServiceBusMessage()->toArray()]; return new self(self::MSG_NAME, $payload); }
/** * @param ProcessId $processId * @param TaskListPosition $parentTaskListPosition * @param TaskList $taskList * @param array $config * @param bool $syncLogMessages * @throws \InvalidArgumentException * @return static */ public static function asSubProcess(ProcessId $processId, TaskListPosition $parentTaskListPosition, TaskList $taskList, array $config, $syncLogMessages) { if (!is_bool($syncLogMessages)) { throw new \InvalidArgumentException("Argument syncLogMessages must be of type boolean"); } $instance = self::occur($processId->toString(), ['config' => $config, 'parent_task_list_Position' => $parentTaskListPosition->toString(), 'task_list' => $taskList->getArrayCopy(), 'sync_log_messages' => $syncLogMessages]); $instance->processId = $processId; $instance->parentTaskListPosition = $parentTaskListPosition; return $instance; }
/** * @param TaskListPosition $parentTaskListPosition * @param array $processDefinition * @param bool $syncLogMessages * @param string $target * @param WorkflowMessage $previousMessage * @throws \InvalidArgumentException * @return StartSubProcess */ public static function at(TaskListPosition $parentTaskListPosition, array $processDefinition, $syncLogMessages, $target, WorkflowMessage $previousMessage = null) { if (!is_bool($syncLogMessages)) { throw new \InvalidArgumentException("Argument syncLogMessages must be of type boolean"); } if (!is_string($target)) { throw new \InvalidArgumentException("Target must be string"); } if (empty($target)) { throw new \InvalidArgumentException('Target must be a non empty string'); } $previousMessageArrayOrNull = is_null($previousMessage) ? null : $previousMessage->toServiceBusMessage()->toArray(); $payload = ['parent_task_list_position' => $parentTaskListPosition->toString(), 'sync_log_messages' => $syncLogMessages, 'sub_process_definition' => $processDefinition, 'previous_message' => $previousMessageArrayOrNull, 'origin' => $parentTaskListPosition->taskListId()->nodeName()->toString(), 'target' => $target]; return new self(self::MSG_NAME, $payload); }
public static function at(TaskListPosition $taskListPosition, array $payload = array()) { $payload['taskListPosition'] = $taskListPosition->toString(); return parent::occur($taskListPosition->taskListId()->processId()->toString(), $payload); }