Користувальницькі налаштування

Налаштування сайту


wf:sync_async_run_workflow

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
wf:sync_async_run_workflow [2019/10/25 10:32] wiki_adminwf:sync_async_run_workflow [2022/05/23 15:26] (поточний) – зовнішнє редагування 127.0.0.1
Рядок 1: Рядок 1:
 +====== Синхронный и асинхронный вызов WorkFlow ======
 +
 +Для вызова WF в синхронном или асинхронном режиме необходимо использовать стандартные для [[bs:start|Siebel Business Service]] 
 +
 +
 +===== Синхронное =====
 +<code javascript>
 +try  {           
 +  svcServerRequest = TheApplication().GetService("Synchronous Server Requests");   
 +  psWorkflowChildIn = TheApplication().NewPropertySet();   
 +  psWorkflowIn = TheApplication().NewPropertySet();   
 +  psWorkflowOut = TheApplication().NewPropertySet();   
 +   
 +  psWorkflowChildIn.SetProperty("ProcessName", "My Workflow Process");  
 +  psWorkflowChildIn.SetProperty("inputParamName", "1-QWERTY");  
 +  
 +  psWorkflowIn.SetProperty("Component", "WfProcMgr");  
 +  psWorkflowIn.AddChild(psWorkflowChildIn);  
 +
 +  svcServerRequest.InvokeMethod("SubmitRequest", psWorkflowIn, psWorkflowOut);  
 +} catch(e) {  
 +  TheApplication().RaiseErrorText(e.toString());  
 +} finally {  
 +  svcServerRequest = null;  
 +}
 +</code>
 +
 +
 +===== Асинхронное =====
 +
 +При асинхронном вызове происходит создание задачи на сервере, далее задача будет выполнена в порядке очереди. 
 +<note important>Важно понимать что создание и обновление записи будет происходить от системного пользователя. В результате поля CREATED_BY и UPDATED_BY будут иметь Id системного пользователя, а не пользователя инициирующего выполнение. [[bs:web_engine_http_txn|IP]] адрес машины 127.0.0.1
 +</note>
 +<code javascript>
 +var svcServerRequest;   
 +var psWorkflowChildIn;   
 +var psWorkflowIn;   
 +var psWorkflowOut;   
 + 
 +try{           
 +  svcServerRequest = TheApplication().GetService("Asynchronous Server Requests");   
 +  psWorkflowChildIn = TheApplication().NewPropertySet();   
 +  psWorkflowIn = TheApplication().NewPropertySet();   
 +  psWorkflowOut = TheApplication().NewPropertySet();   
 +    
 +  psWorkflowChildIn.SetProperty("ProcessName", "My Workflow Process");  
 +  psWorkflowChildIn.SetProperty("inputParamName", "1-QWERTY");  
 +   
 +  psWorkflowIn.SetProperty("Component", "WfProcMgr");
 +  psWorkflowIn.AddChild(psWorkflowChildIn);  
 +
 +  svcServerRequest.InvokeMethod("SubmitRequest", psWorkflowIn, psWorkflowOut);  
 +} catch(e) {  
 +  TheApplication().RaiseErrorText(e.toString());  
 +} finally {  
 +  svcServerRequest = null;  
 +}
 +</code>
 +
 +
 +
 +===== Вызов как Business service =====
 +
 +<code javascript>
 +var svcWorkflow;   
 +var psWFInputs;   
 +var psWFOutputs;   
 + 
 +try {   
 +  svcWorkflow = TheApplication().GetService("Workflow Process Manager");   
 +  psWFInputs = TheApplication().NewPropertySet();    
 +  psWFOutputs = TheApplication().NewPropertySet();  
 +    
 +  psWFInputs.SetProperty("ProcessName", "My Workflow Process");  
 +    
 +  svcWorkflow.InvokeMethod("RunProcess", psWFInputs, psWFOutputs);  
 +}  catch(e) {  
 +  TheApplication().RaiseErrorText(e.toString());  
 +}  finally 
 +  svcWorkflow = null;  
 +}
 +</code>
 +
 +--- //[[e.zhevak@gmail.com|wiki_admin]] 2019/09/18 09:35//
 +{{tag>eScript}}