Olá Patricia,
Sempe que necessito alterar o formulário de um Processo, utilizo o Método saveAndSendTaskClassic do WS (ECMWorkflowEngineService), passando o ( processInstanceId ) ID do processo, acredito que no caso de SubProcesso você tamém possa utilizar.
Segue um Exemplo do XML para o método saveAndSendTaskClassic
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://ws.workflow.ecm.technology.totvs.com/">
<SOAP-ENV:Body>
<ns1:saveAndSendTaskClassic>
<ns1:username>seuusuario</ns1:username>
<ns1:password>suasenha</ns1:password>
<ns1:companyId>1</ns1:companyId>
<ns1:processInstanceId>41</ns1:processInstanceId>
<ns1:choosedState>53</ns1:choosedState>
<ns1:colleagueIds>
<item>seuusuario</item>
</ns1:colleagueIds>
<ns1:comments>Automatico - Movimentacao de integracao</ns1:comments>
<ns1:userId>seuusuario</ns1:userId>
<ns1:completeTask>true</ns1:completeTask>
<ns1:attachments/>
<ns1:cardData>
<item>
<key>GPTB1_OC</key>
<value>conteudo_do_campo</value>
</item>
</ns1:cardData>
<ns1:appointment/>
<ns1:managerMode>false</ns1:managerMode>
<ns1:threadSequence>0</ns1:threadSequence>
</ns1:saveAndSendTaskClassic>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Algumas observaçoes:
<ns1:choosedState>53</ns1:choosedState> - Numero da Atividade de Destino, proxima atividade
<ns1:completeTask>true</ns1:completeTask> - true -> Salva e movimenta o processo para proxima atividade definida em <ns1:choosedState> false -> Somente salva o Processo ( formulário).
<item>
<key>GPTB1_OC</key> - Campo do Formulario que deseja atualizar
<value>conteudo_do_campo</value> - Conteudo do Campo
</item>
Espero ter ajudado,
Anderson Mendes