12 private const STEP_ROWS_LIMIT = 100;
19 return self::FINISH_EXECUTION;
24 $limit = self::STEP_ROWS_LIMIT;
26 $oldSql =
' AND wu.MODIFIED > ' .
$connection->getSqlHelper()->addDaysToDateTime(-180);
30 $modCondition =
' AND wu.MODIFIED <= ' .
"'" . date(
'Y-m-d H:i:s', $lastTs) .
"'";
34 select wu.WORKFLOW_ID, wu.MODIFIED from b_bp_workflow_user wu
35 where wu.USER_ID = {$userId} {$modCondition} {$oldSql} order by wu.MODIFIED DESC LIMIT {$limit}
39 $ids = array_column($queryRows,
'WORKFLOW_ID');
43 return self::FINISH_EXECUTION;
47 $lastModified = end($queryRows)[
'MODIFIED'];
48 $newLastTs = ($lastModified?->getTimestamp()) ?? $lastTs;
49 if ($newLastTs === $lastTs)
56 $idsSql =
"'" . implode(
"','", $ids) .
"'";
60 INSERT IGNORE INTO b_bp_workflow_filter
61 (WORKFLOW_ID, MODULE_ID, ENTITY, DOCUMENT_ID, TEMPLATE_ID, STARTED)
64 case when ws.MODULE_ID is
null then
'' else ws.MODULE_ID end,
67 ws.WORKFLOW_TEMPLATE_ID,
68 case when ws.STARTED is
null then now()
else ws.STARTED end
69 from b_bp_workflow_state ws
70 where ws.ID IN ({$idsSql})
75 if (
count($ids) < $limit)
77 return self::FINISH_EXECUTION;
80 return self::CONTINUE_EXECUTION;
83 public static function bindUser(
int $userId): void
setOuterParams(array $outerParams)