1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
DebugWorkflow.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Bizproc\Debugger\Workflow
;
4
5
use
Bitrix\Bizproc\Debugger\Listener
;
6
use
Bitrix\Bizproc\Debugger\Session\DebuggerState
;
7
use
Bitrix\Bizproc\Debugger\Session\Manager
;
8
use CBPActivityExecutorOperationType;
9
use IBPActivityExternalEventListener;
10
11
class
DebugWorkflow
extends
\CBPWorkflow
12
{
13
public
function
__construct
($instanceId,\
CBPRuntime
$runtime
)
14
{
15
parent::__construct($instanceId,
$runtime
);
16
$this->persister =
Persister::GetPersister
();
17
}
18
23
public
function
__sleep
()
24
{
25
$this->toggleQueueExceptions();
26
27
return
[
'activitiesQueue'
,
'eventsQueue'
];
28
}
29
30
public
function
__wakeup
()
31
{
32
$this->toggleQueueExceptions();
33
}
34
35
private
function
toggleQueueExceptions()
36
{
37
foreach
($this->activitiesQueue as $index => $item)
38
{
39
if
($item[1] === CBPActivityExecutorOperationType::HandleFault && isset($item[2]))
40
{
41
if
($item[2] instanceof \
Exception
)
42
{
43
$this->activitiesQueue[$index][2] = [$item[2]->getMessage(), $item[2]->getCode()];
44
}
45
elseif
(is_array($item[2]))
46
{
47
$this->activitiesQueue[$index][2] = new \Exception($item[2][0], $item[2][1]);
48
}
49
}
50
}
51
}
52
53
protected
function
setWorkflowStatus
($newStatus)
54
{
55
parent::setWorkflowStatus($newStatus);
56
Listener::getInstance
()->onWorkflowStatusChanged($this->
getInstanceId
(), $newStatus);
57
}
58
59
public
function
getDebugEventIds
():
array
60
{
61
$ids = [];
62
63
foreach
($this->
getEventsMap
() as $id => $handlers)
64
{
65
foreach
($handlers as $handler)
66
{
67
if
($handler instanceof \
IBPActivityDebugEventListener
)
68
{
69
$ids[] = $id;
70
break
;
71
}
72
}
73
}
74
75
return
$ids;
76
}
77
78
public
function
addEventHandler
($eventName, IBPActivityExternalEventListener $eventHandler)
79
{
80
parent::addEventHandler($eventName, $eventHandler);
81
82
if
($eventHandler instanceof \
IBPActivityDebugEventListener
)
83
{
84
Listener::getInstance
()->onWorkflowEventAdded($this->
getInstanceId
(), $eventName);
85
}
86
}
87
88
public
function
removeEventHandler
($eventName, IBPActivityExternalEventListener $eventHandler)
89
{
90
parent::removeEventHandler($eventName, $eventHandler);
91
92
if
($eventHandler instanceof \
IBPActivityDebugEventListener
)
93
{
94
Listener::getInstance
()->onWorkflowEventRemoved($this->
getInstanceId
(), $eventName);
95
}
96
}
97
98
public
function
getService
(
$name
)
99
{
100
$service
= $this->runtime->getDebugService(
$name
);
101
102
if
(is_null(
$service
))
103
{
104
$service
= $this->runtime->GetService(
$name
);
105
}
106
107
return
$service
;
108
}
109
110
protected
function
runQueue
()
111
{
112
$debuggerState = Manager::getDebuggerState();
113
114
if
($debuggerState->is(DebuggerState::NEXT_STEP))
115
{
116
$this->
runStep
();
117
}
118
elseif
($debuggerState->is(DebuggerState::RUN))
119
{
120
parent::runQueue();
121
}
122
}
123
124
public
function
sendDebugEvent
($eventName,
array
$eventParameters = [])
125
{
126
$eventParameters[
'DebugEvent'
] =
true
;
127
128
$this->
sendExternalEvent
($eventName, $eventParameters);
129
}
130
131
public
function
reload
(\
CBPActivity
$rootActivity
)
132
{
133
$this->activitiesQueue =
$rootActivity
->workflow->activitiesQueue;
134
$this->eventsQueue =
$rootActivity
->workflow->eventsQueue;
135
136
parent::reload(
$rootActivity
);
137
}
138
139
public
function
isDebug
(): bool
140
{
141
return
true
;
142
}
143
}
Bitrix\Bizproc\Debugger\Listener
Определения
Listener.php:10
Bitrix\Bizproc\Debugger\Listener\getInstance
static getInstance()
Определения
Listener.php:154
Bitrix\Bizproc\Debugger\Session\DebuggerState
Определения
DebuggerState.php:6
Bitrix\Bizproc\Debugger\Session\Manager
Определения
Manager.php:12
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow
Определения
DebugWorkflow.php:12
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\isDebug
isDebug()
Определения
DebugWorkflow.php:139
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\__wakeup
__wakeup()
Определения
DebugWorkflow.php:30
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\getService
getService($name)
Определения
DebugWorkflow.php:98
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\addEventHandler
addEventHandler($eventName, IBPActivityExternalEventListener $eventHandler)
Определения
DebugWorkflow.php:78
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\reload
reload(\CBPActivity $rootActivity)
Определения
DebugWorkflow.php:131
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\runQueue
runQueue()
Определения
DebugWorkflow.php:110
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\__construct
__construct($instanceId,\CBPRuntime $runtime)
Определения
DebugWorkflow.php:13
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\__sleep
__sleep()
Определения
DebugWorkflow.php:23
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\setWorkflowStatus
setWorkflowStatus($newStatus)
Определения
DebugWorkflow.php:53
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\removeEventHandler
removeEventHandler($eventName, IBPActivityExternalEventListener $eventHandler)
Определения
DebugWorkflow.php:88
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\sendDebugEvent
sendDebugEvent($eventName, array $eventParameters=[])
Определения
DebugWorkflow.php:124
Bitrix\Bizproc\Debugger\Workflow\DebugWorkflow\getDebugEventIds
getDebugEventIds()
Определения
DebugWorkflow.php:59
CBPActivity
Определения
activity.php:8
CBPRuntime
Определения
runtime.php:22
CBPWorkflow
Определения
workflow.php:9
CBPWorkflow\$rootActivity
CBPCompositeActivity $rootActivity
Определения
workflow.php:17
CBPWorkflow\sendExternalEvent
sendExternalEvent(string $eventName, array $eventParameters=[])
Определения
workflow.php:294
CBPWorkflow\getEventsMap
getEventsMap()
Определения
workflow.php:754
CBPWorkflow\runStep
runStep()
Определения
workflow.php:477
CBPWorkflow\getInstanceId
getInstanceId()
Определения
workflow.php:26
CBPWorkflow\$runtime
CBPRuntime $runtime
Определения
workflow.php:14
CBPWorkflowPersister\GetPersister
static GetPersister()
Определения
workflowpersister.php:21
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
IBPActivityDebugEventListener
Определения
interface.php:25
$name
$name
Определения
menu_edit.php:35
Bitrix\Bizproc\Debugger\Workflow
Определения
DebugWorkflow.php:3
Bitrix\Bizproc\Exception
Определения
validationexception.php:3
$service
$service
Определения
payment.php:18
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
bitrix
modules
bizproc
lib
Debugger
Workflow
DebugWorkflow.php
Создано системой
1.14.0