Páginas filhas
  • 4.2. Execução de rotinas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Para realizar a execução de uma rotina é necessário utilizar o Dataset customizado LogixExecServiceDS passando como constraints o código da empresa que será utilizado na regra de negócio, a rotina 4GL do workflow que será executada e os valores que serão utilizados na rotina. Tanto os valores a serem enviados quanto o retorna da execução da rotina devem estar no formato JSON string.

Bloco de código
themeEclipse
languagejavascript
linenumberstrue
function afterProcessFinish(processId) {
	    var company, values, c1, c2, c3, dataset, result;

    //Recupera os valores do result;
 
	formulário.
    values = {
        "componentes": {
		"clientes" : {
			"num_cgc_cpf" 
            "cod_empresa": new String(hAPI.getCardValue("cod_empresa")),
            "cod_item_compon": new String(hAPI.getCardValue("cod_item_compon")),
            "cod_grade_1_orig": new String(hAPI.getCardValue("cod_grade_1_orig")),
            "cod_grade_2_orig": new String(hAPI.getCardValue("cod_grade_2_orig")),
            "cod_grade_3_orig": new String(hAPI.getCardValue("cod_grade_3_orig")),
            "cod_grade_4_orig": new String(hAPI.getCardValue("cod_grade_4_orig")),
            "cod_grade_5_orig": new String(hAPI.getCardValue("cod_grade_5_orig")),
            "slct_acao": new String(hAPI.getCardValue("slct_acao")),
            "cod_item_compon_novo": new String(hAPI.getCardValue("numcod_item_cgccompon_cpfnovo")),
			"cod_cliente"             "cod_grade_1_dest": new String(hAPI.getCardValue("cod_grade_1_dest")),
            "cod_grade_2_dest": new String(hAPI.getCardValue("cod_clientegrade_2_dest")),
			"nom_cliente"             "cod_grade_3_dest": new String(hAPI.getCardValue("cod_grade_3_dest")),
            "cod_grade_4_dest": new String(hAPI.getCardValue("nom_cliente"))
		}
	}
 
	result = callLogixFunction('vdp10000_create_clientes', values);
 
	"cod_grade_4_dest")),
            "cod_grade_5_dest": new String(hAPI.getCardValue("cod_grade_5_dest")),
            "justificativa": new String(hAPI.getCardValue("justificativa"))
        }
    };

    //Converte o objeto JSON para JSON string.
    values = JSON.stringify(values);

    //Recupera o valor definido para o código da empresa.
    company = values.componentes.cod_empresa;

    log.info("[LOGIX][WFMAN002] Valores do formulario recuperados: " + values + ".");
    log.info("[LOGIX][WFMAN002] Iniciando execucao da rotina WFMAN002.");

    c1 = DatasetFactory.createConstraint("company", company, null, ConstraintType.MUST); //Código da empresa.
    c2 = DatasetFactory.createConstraint("fn", "wfman002_alterar_componentes", null, ConstraintType.MUST); //Rotina 4GL.
    c3 = DatasetFactory.createConstraint("values", values, null, ConstraintType.MUST); //Valores do formulário.

    dataset = DatasetFactory.getDataset("LogixExecServiceDS", null, [c1, c2, c3], null);
    result = service.getValue(0, "result");

    log.info("[LOGIX][WFMAN002] Rotina WFMAN002 executada, resultado enviado: " + result + ".");

    //Converte o JSON string para objeto JSON.
    result = JSON.parse(result);

    if (result) {
		        if (result.status) {
			            log.info('"[LOGIX][WFMAN002] '" + result.msg);
		        } else {
			            log.infoerror('"[LOGIX][WFMAN002] Nao foi possivel concluir ao criacaoprocesso: de" cliente [' + result.msg + ']'".");
		        }
	    }
}

O formato do objeto Json enviado para a função callLogixFunction deve seguir os padrões abaixo:

...