Uso do saveAndSendTask

Boa tarde a todos,

Preciso fazer a movimentação de atividade em solicitações fluig de um determinado processo via WS, para tal encontrei o WS saveAndSendTask do serviço ECMWorkflowEngineService. Porém ao tentar utiliza-lo estou encontrando dificuldades. A documentação é um pouco pobre e não encontrei exemplos. Basicamente o que preciso é através da Id de uma solicitação movimenta-la para uma atividade de número 14 (ou a próxima atividade), por exemplo.

O XML que montei ficou assim:

****@****.com.br ****** 1 139 14 nvdaypo549voixwz1497444954705 nvdaypo549voixwz1497444954705 true 0

Porém estou recebendo o seguinte erro:

soap:Server

argument type mismatch

Como citado anteriormente o que preciso basicamente é pelo Id de uma solicitação mover para a próxima atividade (no caso do exemplo, 14).

Poderiam me dar alguma luz de onde posso estar errando? Ou algumas dicas de uso?

Obrigado!

Felipe, se for so pra avançar a atividade, eu utilizo o saveAndSendTaskClassic, exemplo:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.workflow.ecm.technology.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:saveAndSendTaskClassic>
         <username>otto@mostaert.com</username>
         <password>************</password>
         <companyId>1</companyId>
         <processInstanceId>123456</processInstanceId>
         <choosedState>32</choosedState>
         <colleagueIds></colleagueIds>
         <comments></comments>
         <userId>s15s16q517nvw3qqe5121471984854155</userId>
         <completeTask>true</completeTask>
         <attachments></attachments>
         <cardData>
            <item>
               <key>codcoligada</key>
               <value>1</value>
            </item>
            <item>
               <key>idprj</key>
               <value>7</value>
            </item>
            <item>
               <key>idpedidoextra</key>
               <value>7346</value>
            </item>            
         </cardData>
         <appointment></appointment>
         <managerMode>false</managerMode>
         <threadSequence></threadSequence>
      </ws:saveAndSendTaskClassic>
   </soapenv:Body>
</soapenv:Envelope>

Tentei de dois jeitos diferentes via dataset e ambos com erro:

Serviço fluigWF: http://fluig/webdesk/ECMWorkflowEngineService?wsdl

```function createDataset(fields, constraints, sortFields) {

var user = ""; var password = ""; var companyId = 1; var processInstanceId = 139; var choosedState = 14; var colleagueIds = "nvdaypo549voixwdddsaz1497444954705"; var comments = ""; var userId = "nvdaypo549voixwdddsaz1497444954705"; var completeTask = true; var attachments = ""; var cardData = ""; var appointment = ""; var managerMode = true; var threadSequence = 0;

var serviceProvider = ServiceManager.getServiceInstance('fluigWF'); var serviceLocator = serviceProvider.instantiate('com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService'); var service = serviceLocator.getWorkflowEngineServicePort();

var soapRequest = '' + '' + '' + '' + '' + '' + '' + companyId + '' + '' + processInstanceId + '' + '' + choosedState + '' + '' + '' + colleagueIds + '' + '' + '' + '' + userId + '' + 'true' + '' + //'' + xmlItem + '' + '' + 'true' + '0' + '' + '' + '';

try{

var result = new String(service.saveAndSendTaskClassic(soapRequest));

log.info(result); } catch(erro){ log.error(erro); }

}```

Erro: [Server:fluig1] 20:42:11,358 ERROR [org.jboss.as.ejb3.invocation] (default task-51) WFLYEJB0034: EJB Invocation failed on component wdk/DatasetML for method public abstract boolean com.fluig.bpm.service.DatasetMetaListService.hasTheDatasetChanged(com.datasul.technology.webdesk.dataset.model.Dataset) throws java.lang.Exception: javax.ejb.EJBException: java.lang.NullPointerException

No outro jeito:

'''function createDataset(fields, constraints, sortFields) {

var user = ""; var password = ""; var companyId = 1; var processInstanceId = 139; var choosedState = 14; var colleagueIds = "nvdaypo549voixwz1497444954705"; var comments = ""; var userId = "nvdaypo549voixwz1497444954705"; var completeTask = true; var attachments = ""; var cardData = ""; var appointment = ""; var managerMode = true; var threadSequence = 0;

var serviceProvider = ServiceManager.getServiceInstance('fluigWF'); var serviceLocator = serviceProvider.instantiate('com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService'); var service = serviceLocator.getWorkflowEngineServicePort();

try{ var result = new String(service.saveAndSendTaskClassic(user, password, companyId, + processInstanceId, choosedState, colleagueIds, comments, userId, + completeTask, attachments, cardData, appointment, managerMode, + threadSequence));

log.info("--Debbugation-- Num é que foi: " + result); } catch(erro){ log.error("--Debbugation-- Shit! Deu erro: " + erro); }

}'''

Erro: [Server:fluig1] 20:47:01,705 ERROR [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-25) --Debbugation-- Shit! Deu erro: InternalError: Can't find method com.sun.proxy.$Proxy710.saveAndSendTaskClassic(string,string,number,number,number,string,string,string,number,string,string,string,boolean,number). (#29)

Alguma dica?

eu utilizo rotinas que chamam WS em datasets e eventos do BPM, posta o exemplo de como você esta chamando que ai eu ou outro membro pode te dar o apoio.