MENSAGEM DE ERRO - BeforeStateEntry - Integração com ERP

Caros, possuo dois scripts de evento de worklow: 1º - Monta XML e insere os dados na ficha via webservice no módulo de compras do ERP. 2º - É o beforeStateEntry que chama o script inseremovimento. (Esse deve receber o erro do resultado do web service ( erro 555 ) na tela do usuário quando enviar o processo ao invés do throw com um texto.

Observação: O script funciona normalmente e integra normalmente ao ERP, só quero apenas que a resposta do erro 555 apresentada no script 1 que insere o movimento no ERP seja apresentada no script 2 quando o usuário avança o processo pra finalizar a integração quando ocorrer o erro 555 retornado pelo web service quando existe alguma inconformidade.

Quando existe algum erro vindo do ERP. Preciso que esse erro seja mostrado na tela do usuário. Tipo o usuário informou um centro de custo errado o ERP vai retornar o erro no web service e preciso que esse erro seja mostrado. No segundo script quando ele não encontra a chave gravada num campo extra do movimento no ERP ele retorna um THROW, gostaria que nesse THROW do segundo script, ele mostrasse o erro abaixo visto no log pelo log.info:

17:58:03,145 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (http-/10.7.4.40:8088-5) CUSTOM: retorno de insereMovimentoManutencao - result: 555 - Erro interno do servidor. Erro ao executar o WebMethod: InsereMovimentoManutencao. Centro de Custo .. não encontrado!

1º Script - F005.inseremovimento.js

function InsereMovimento(XML)
{
    var codColigada = 1;
    var dataset = DatasetFactory.getDataset("ds_totvs_connector", null, null, null);
    var key = dataset.getValue(0, "chave");

    log.info("CUSTOM F005 - INSEREMOVIMENTO - ANTES DO TRY");

    try // Area comentada
    {
        var provider = ServiceManager.getServiceInstance("wsECM");

        if (provider == null) 
        {
            throw "F005.InsereMovimento.js - ERROR: O Serviço SebraeService não esta cadastrado. Por favor verificar!";
        } 
        else 
        {
    log.info("CUSTOM F005 - INSEREMOVIMENTO - PROVIDER INTANTIATE");

            var locator = provider.instantiate("org.tempuri.WsECM");            
    log.info("CUSTOM F005 - INSEREMOVIMENTO - DEPOIS DO PROVIDER INTANTIATE");
            var service = locator.getWsECMSoap();
    log.info("CUSTOM F005 - INSEREMOVIMENTO - locator.getWsECMSoap()");
            var result =  service.insereMovimentoManutencao(codColigada, XML, key);
    log.info("CUSTOM F005 - INSEREMOVIMENTO - DEPOIS DO WEB METODO INSERE MANUTENCAO");

    log.info("CUSTOM: entrada de insereMovimentoManutencao(codColigada, XML, key): " + codColigada + " - " + key);
    log.info("CUSTOM: retorno de insereMovimentoManutencao - result: " + result);

            return result;
        }
    } //Comentario 1
    catch(e) //Comentario 2
    { //Comentario 3
        throw "ERROR: " + e; //comentario 4
    } //Comentario 5
}

2º Script - BeforeStateEntry

function beforeStateEntry(sequenceId){

    var tarefa = getValue("WKNumState");
    var prox_tarefa = getValue("WKNextState");
    var retornoIntegracaoECM;
    var retornoIntegracaoERP;

    if ( (tarefa == hAPI.getAdvancedProperty("Atividade_IntegraTotvs")) && 
         (prox_tarefa  ==  hAPI.getAdvancedProperty("Atividade_IntegracaoRM")) )
    {
        var XML_SOLICITACAO = geraXmlSolicitacao();
        log.info("---------------------------------- XML F005.BeforeStateEntry " + XML_SOLICITACAO);

        InsereMovimento(XML_SOLICITACAO);
        log.info("Após Inserir");
        log.info("------------------------------- RETORNO ECM F005.BeforeStateEntry " + retornoIntegracaoECM);
        log.info("------------------------------- RETORNO ECM F005.BeforeStateEntry " + retornoIntegracaoERP);
        retornoIntegracaoECM = verificaIntegracaoECM();
        log.info("---------------------------------- RETORNO ECM F005.BeforeStateEntry " + retornoIntegracaoECM);
        if (!retornoIntegracaoECM) 
        {
                    throw "F005.BeforeStateEntry - Não Foi Possível Realizar a integração com o ERP, verífique o status do Webservice";
        }
    }

    else if ( (tarefa == 27) && 
             (prox_tarefa  == 106) )

    {

        var XML_SOLICITACAO = geraXmlSolicitacao();
        log.info("---------------------------------- XML F005.BeforeStateEntry " + XML_SOLICITACAO);

        InsereMovimento(XML_SOLICITACAO);
        log.info("Após Inserir");
        log.info("------------------------------- RETORNO ECM F005.BeforeStateEntry " + retornoIntegracaoECM);
        log.info("------------------------------- RETORNO ECM F005.BeforeStateEntry " + retornoIntegracaoERP);
        retornoIntegracaoECM = verificaIntegracaoECM();
        log.info("---------------------------------- RETORNO ECM F005.BeforeStateEntry " + retornoIntegracaoECM);
        if (!retornoIntegracaoECM) 
        {
                    throw "F005.BeforeStateEntry - Não Foi Possível Realizar a integração com o ERP, verífique o status do Webservice";
        }
    }
    log.info("##### beforeStateEntry 2  F005 FIM ")
}



/* Script atual Integracao - 27-06-2017


 function beforeStateEntry(sequenceId){

    var tarefa = getValue("WKNumState");
    var prox_tarefa = getValue("WKNextState");
    var retornoIntegracaoECM;
    var retornoIntegracaoERP;

    if ( (tarefa == hAPI.getAdvancedProperty("Atividade_AvaliarUGF")) && 
         (prox_tarefa  ==  hAPI.getAdvancedProperty("Atividade_Integracao")) )
    {
        var XML_SOLICITACAO = geraXmlSolicitacao();
        log.info("---------------------------------- XML F005.BeforeStateEntry " + XML_SOLICITACAO);

        InsereMovimento(XML_SOLICITACAO);
        log.info("Após Inserir");
        log.info("------------------------------- RETORNO ECM F005.BeforeStateEntry " + retornoIntegracaoECM);
        log.info("------------------------------- RETORNO ECM F005.BeforeStateEntry " + retornoIntegracaoERP);
        retornoIntegracaoECM = verificaIntegracaoECM();
        log.info("---------------------------------- RETORNO ECM F005.BeforeStateEntry " + retornoIntegracaoECM);
        if (!retornoIntegracaoECM) 
        {
                    throw "F005.BeforeStateEntry - Não Foi Possível Realizar a integração com o ERP, verífique o status do Webservice";
        }
    }
    log.info("##### beforeStateEntry 2  F005 FIM ")
}
compartilhar
  • Se eu colocar depois do "result" um bloco de If que se o retorno for 555, ele retornará no segundo script o erro da resposta do webservice nele?

    FLUIG MAN   30 de Jun de 2017
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags erp beforestateentry ou faça a sua própria pergunta.