Показать сообщение отдельно
Старый 11.05.2016, 11:06   #4  
johny77 is offline
johny77
Участник
 
31 / 27 (1) +++
Регистрация: 04.07.2006
Может это поможет...
PHP код:
static void WF_runRecord(Args _args)
{
    
WorkflowMessageBatchAffinity        affinity str2guid('');
    
WorkflowMessageTable                workflowMessageTable;
    
Common                              common;
    
Int                                 iCnt;
    ;
    
// определяем документ для которого стартуем подвисшие шаги согласования
    
common RContractTable::findRecId(0);

    
// сбрасываем Affinity (родственное сходство/свойство)
    
ttsBegin;
    while 
select forupdate workflowMessageTable
        where  workflowMessageTable
.WorkflowContextRecId    == common.RecId
            
&& workflowMessageTable.WorkflowContextTableId  == common.TableId
            
//&& workflowMessageTable.WorkflowContextCompanyId == common.dataAreaId
            
&& workflowMessageTable.MessageLifeCycleState == WorkFlowMessageLifeCycleState::Queued
            
&& workflowMessageTable.batchaffinity != affinity
    
{
        
workflowMessageTable.batchaffinity affinity;
        
workflowMessageTable.update();

        
iCnt ++;
    }
    
ttsCommit;

    
affinity newguid();
    while (
SysWorkflowMessageQueueTask::assignBatchAffinityRecord(affinitycommon.TableIdcommon.RecId) > 0)
    {
        
SysWorkflowEventDispatcher::dispatch(affinity);
    }

За это сообщение автора поблагодарили: trud (3), gl00mie (3).