Versão atual:

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 ")
}

Versões (4):

Ver a versão formatada

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

Comentário

new question