3namespace Bitrix\Bizproc\Workflow\Entity;
5use Bitrix\Bizproc\Workflow\Task\TaskTable;
6use Bitrix\Bizproc\Workflow\WorkflowState;
9use Bitrix\Main\Type\DateTime;
40 return 'b_bp_workflow_state';
48 return WorkflowState::class;
58 'data_type' =>
'string',
62 'data_type' =>
'string',
65 'data_type' =>
'string',
68 'data_type' =>
'string',
70 'DOCUMENT_ID_INT' => [
71 'data_type' =>
'integer',
73 'WORKFLOW_TEMPLATE_ID' => [
74 'data_type' =>
'integer',
77 'data_type' =>
'string',
80 'data_type' =>
'string',
82 'STATE_PARAMETERS' => [
83 'data_type' =>
'string',
86 'data_type' =>
'datetime',
87 'default_value' =>
function()
93 'data_type' =>
'datetime',
94 'default_value' =>
function()
100 'data_type' =>
'integer',
103 'data_type' => Main\UserTable::class,
105 '=this.STARTED_BY' =>
'ref.ID',
107 'join_type' =>
'LEFT',
110 'data_type' => WorkflowInstanceTable::class,
112 '=this.ID' =>
'ref.ID',
114 'join_type' =>
'LEFT',
117 'data_type' =>
'\Bitrix\Bizproc\WorkflowTemplateTable',
119 '=this.WORKFLOW_TEMPLATE_ID' =>
'ref.ID',
121 'join_type' =>
'LEFT',
130 WorkflowMetadataTable::class,
136 public static function exists(
string $workflowId): bool
138 return static::getCount([
'=ID' => $workflowId]) > 0;
143 $documentId = \CBPHelper::ParseDocumentId($documentId);
144 $rows = static::getList([
147 '=MODULE_ID' => $documentId[0],
148 '=ENTITY' => $documentId[1],
149 '=DOCUMENT_ID' => $documentId[2],
154 return array_column(
$rows,
'ID');
161 $table = $sqlHelper->forSql(static::getTableName());
163 $zombieDocId = $sqlHelper->forSql(static::ZOMBIE_DOCUMENT_ID[2]);
164 $zombieEntity = $sqlHelper->forSql(static::ZOMBIE_DOCUMENT_ID[1]);
165 $zombieModule = $sqlHelper->forSql(static::ZOMBIE_DOCUMENT_ID[0]);
167 $origDocId = $sqlHelper->forSql($documentId[2]);
168 $origEntity = $sqlHelper->forSql($documentId[1]);
169 $origModule = $sqlHelper->forSql($documentId[0]);
173 DOCUMENT_ID = '{$zombieDocId}',
174 ENTITY = '{$zombieEntity}',
175 MODULE_ID = '{$zombieModule}'
177 DOCUMENT_ID = '{$origDocId}'
178 AND ENTITY = '{$origEntity}'
179 AND MODULE_ID = '{$origModule}'
188 if (empty(
$data[
'MODIFIED']))
203 if (empty(
$fields[
'MODIFIED']))
220 'WORKFLOW_ID' =>
$fields[
'ID'] ??
'',
221 'MODULE_ID' =>
$fields[
'MODULE_ID'] ??
'',
222 'ENTITY' =>
$fields[
'ENTITY'] ??
'',
223 'DOCUMENT_ID' =>
$fields[
'DOCUMENT_ID'] ??
'',
224 'TEMPLATE_ID' =>
$fields[
'WORKFLOW_TEMPLATE_ID'] ?? 0,
225 'STARTED' =>
$fields[
'STARTED'] ?? 0,
231 $id =
$event->getParameter(
'primary')[
'ID'];
static onAfterDelete(ORM\Event $event)
static onBeforeAdd(ORM\Event $event)
static maskAsZombie(array $documentId)
static onAfterAdd(ORM\Event $event)
static exists(string $workflowId)
static onBeforeUpdate(ORM\Event $event)
static getIdsByDocument(array $documentId, ?int $limit=null)
static deleteByWorkflow(string $workflowId)
static getConnection($name="")
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)