CBPSchedulerService :: OnEvent: Bitrix method

      
<?php 
//  CBPSchedulerService :: OnEvent()
//  /dist/bitrix/modules/bizproc/classes/general/schedulerservice.php:195

    
public static function OnEvent($workflowId$eventName$arEventParameters = array())
    {
        
$num func_num_args();
        if (
$num 3)
        {
            for (
$i 3$i $num$i++)
                
$arEventParameters[] = func_get_arg($i);
        }

        if (
is_array($arEventParameters["EntityId"]))
        {
            foreach (
$arEventParameters["EntityId"] as $key => $value)
            {
                if (!isset(
$arEventParameters[0][$key]) || $arEventParameters[0][$key] != $value)
                    return;
            }
        }
        elseif (
$arEventParameters["EntityId"] != null && $arEventParameters["EntityId"] != $arEventParameters[0])
            return;

        global 
$BX_MODULE_EVENT_LAST;
        
$lastEvent $BX_MODULE_EVENT_LAST;

        try
        {
            
CBPRuntime::SendExternalEvent($workflowId$eventName$arEventParameters);
        }
        catch (
Exception $e)
        {
            
//Clean-up records if instance not found
            
if (
                
$e->getCode() === \CBPRuntime::EXCEPTION_CODE_INSTANCE_NOT_FOUND
                
&& $lastEvent['TO_MODULE_ID'] == 'bizproc'
                
&& $lastEvent['TO_CLASS'] == 'CBPSchedulerService'
                
&& $lastEvent['TO_METHOD'] == 'OnEvent'
                
&& is_array($lastEvent['TO_METHOD_ARG'])
                && 
$lastEvent['TO_METHOD_ARG'][0] == $workflowId
            
)
            {
                
UnRegisterModuleDependences(
                    
$lastEvent['FROM_MODULE_ID'],
                    
$lastEvent['MESSAGE_ID'],
                    
"bizproc",
                    
"CBPSchedulerService",
                    
"OnEvent",
                    
"",
                    
$lastEvent['TO_METHOD_ARG']
                );
            }
        }
    }