Eu consigo inserir um filho em uma tabela que está na solicitação 1 através da solicitação 2?
Por API da sim, você pode modificar processos através de API, mas pra isso vai precisar recuperar o numero do processo.
Pode me dar um exemplo?
Use a API ECMCardService
@odair.batista poderia me dar um exemplo?
Eu já fiz isso em uma Widget. Segue o exemplo Fluig: Exemplo de Inserção de Pai Filho por Web Service em Widget · GitHub
Em evento no backend você pode acessar fazer um pouco diferente, instanciando o serviço ECMCardService e usando o método updateCardData dele.
No manual da hAPI tem um exemplo usando dessa forma. hAPI - TOTVS Fluig - TDN
Aqui tem um exemplo simples também em ADVPL, deixei bem resumido…
//Efetua a implantação de filho no formulário FLUIG
cXML := '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.dm.ecm.technology.totvs.com/">
cXML += ' <soapenv:Header/>'
cXML += ' <soapenv:Body>'
cXML += ' <ws:updateCardData>'
cXML += ' <companyId>' + cFlgComp + '</companyId>'
cXML += ' <username>' + cFlgUser + '</username>'
cXML += ' <password>' + cFlgPwd + '</password>'
cXML += ' <cardId>' + cFormId + '</cardId>'
cXML += ' <cardData>'
cXML += ' <item>'
cXML += ' <field>' + 'PRBRANCH___' + allTrim(cValToChar(nGridRow)) + '</field>'
cXML += ' <value>' + SC1->C1_FILIAL + '</value>'
cXML += ' </item>'
cXML += ' <item>'
cXML += ' <field>' + 'PRNUMBER___' + allTrim(cValToChar(nGridRow)) + '</field>'
cXML += ' <value>' + SC1->C1_NUM + '</value>'
cXML += ' </item>'
cXML += ' <item>'
cXML += ' <field>' + 'PRDATE___' + allTrim(cValToChar(nGridRow)) + '</field>'
cXML += ' <value>' + dToC(SC1->C1_EMISSAO) + '</value>'
cXML += ' </item>'
cXML += ' <item>'
cXML += ' <field>' + 'PRTOTAL___' + allTrim(cValToChar(nGridRow)) + '</field>'
cXML += ' <value>' + allTrim(transform(SC1->C1_UVALOR, "@E 999,999,999,999.99")) + '</value>'
cXML += ' </item>'
cXML += ' <item>'
cXML += ' <field>' + 'PRSTATUS___' + allTrim(cValToChar(nGridRow)) + '</field>'
cXML += ' <value>' + if(cStatus == 'delete', 'Eliminado', if(!isFound, 'Incluido', 'Alterado')) + '</value>'
cXML += ' </item>'
cXML += ' </cardData>'
cXML += ' </ws:updateCardData>'
cXML += ' </soapenv:Body>'
cXML += '</soapenv:Envelope>'
oFluig := tWsdlManager():New()
oFluig:lVerbose := .t.
if !oFluig:ParseURL('http://seuservidor.com.br/webdesk/ECMCardService?wsdl')
alert('Não foi possível comunicação com o serviço Fluig')
else
if !oFluig:SetOperation('updateCardData')
alert('Não foi possível requisitar o operação do serviço Fluig')
else
if !oFluig:SendSoapMsg(cXML)
alert('Não foi possível enviar requisição ao serviço Fluig')
else
cResults := oFluig:GetSoapResponse() //Obtem retorno
endif
endif
endif
oFluig := nil
1 curtida