Webservice wsFormulaVisual (Fórmula Visual)

Bom dia pessoal!

Alguém já conseguiu executar uma fórmula visual criado no RM, através do webservice wsFormulaVisual?

Tatiane.

Sempre que preciso executar uma FV no RM eu uso o wsProcess.
Obtenho uma cópia do XML da chamada SOAP no RM e monto ele dentro do Javascript no Fluig.

Consigo passar parâmetros normalmente, porém tenho uma dificuldade ao obter retorno pois a FV não disponibiliza recurso para isso.

Como contorno eu gero uma exceção no código da FV e na mensagem envio um texto com o conteúdo que quero, no formato Json por exemplo.

1 curtida

Se você estiver ainda com essa duvida, eu consegui.

Boa tarde eu estou com essa mesma dificuldade

Olá, vou colocar um exemplo para executar uma fórmula visual para executar uma fórmula da folha.
Fórmula:


Fórmula Visual

Parâmetros Fórmula Visual

Propriedades da Atividade para Executar a fórmula

Propriedades do Throw

Contexto Fórmula Visual: FopFuncData
Envelope SOAPUI

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:Execute>
         <!--Optional:-->
         <tot:codColigada>{Coligada_FV}</tot:codColigada>
         <!--Optional:-->
         <tot:idFormula>{Id_FV}</tot:idFormula>
         <!--Optional:-->
         <tot:context>CODCOLIGADA={Coligada_Funcionario};CODAPLICACAO=P</tot:context>
         <!--Optional:-->
         <tot:dataSetXML></tot:dataSetXML>
         <!--Optional:-->
         <tot:parametersXML><![CDATA[<Parameters>
			    <Parametros>
			        <CODCOLIGADA>{Coligada_Funcionario}</CODCOLIGADA>
			        <CHAPA>{Chapa}</CHAPA>
			    </Parametros>
			</Parameters>]]></tot:parametersXML>
         <!--Optional:-->
         <tot:ownerData></tot:ownerData>
      </tot:Execute>
   </soapenv:Body>
</soapenv:Envelope>

Exemplo de implementação em Dataset

function createDataset(fields, constraints, sortFields) {
    var Dataset = DatasetBuilder.newDataset();
    try {
        // SERVICO CADASTRADO NO PAINEL DE CONTROLE DO FLUIG
        var NOME_SERVICO = "wsFormulaVisual";
        var CAMINHO_SERVICO = "com.totvs.WsFormulaVisual";

        var servico = ServiceManager.getServiceInstance(NOME_SERVICO);
        var serviceHelper = servico.getBean();
        var instancia = servico.instantiate(CAMINHO_SERVICO);
        var ws = instancia.getRMIwsFormulaVisual();

        //#region RM Authenticaton
        var rm_user = "mestre";
        var rm_pass = "Totvs";
        //#endregion

        var authService = serviceHelper.getBasicAuthenticatedClient(ws, "com.totvs.IwsFormulaVisual", rm_user, rm_pass)

        var codcoligada = {Coligada_Funcionario};
        var chapa = {Chapa};
        var codColFormulaVisual = {Coligada_FV};
        var idFormulaVisual = {Id_FV};
        
        var context = "CODCOLIGADA=" + codcoligada + ";CODAPLICACAO=P;CODUSUARIO=" + rm_user

        var parameters = "<Parameters> " +
                        "     <Parametros> " +
                        "         <CODCOLIGADA> " + codcoligada.replace(' ', '') + "</CODCOLIGADA> " +
                        "         <CHAPA>" + chapa.replace(' ', '') + "</CHAPA> " +
                        "     </Parametros> " +
                        "</Parameters>"

        var result = authService.execute(codColFormulaVisual, idFormulaVisual, context, '',  parameters, '');
        var r = result.getErrorMessage().getValue();
	
        Dataset.addRow( r );

    } catch (e) {
        log.error("ERRO==============> " + e.message);
    }

    return Dataset;  
}

Assim funciona… testa aí

Abs.

1 curtida