Histórico da Página
A partir dos eventos de workflow do Fluig é possível efetuar a execução de rotinas no Logix permitindo envio de parâmetros e retornos da regra de negócio para o processo.
Nota |
---|
As rotinas são executadas via Web Services, portanto é necessário que estas execuções estejam ligadas e configuradas no servidor TOTVS Tec. |
...
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.
...
id | Exemplos |
---|---|
effectType | fade |
...
Abaixo segue um evento JavaScript de exemplo para execuções de rotinas Logix:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function afterProcessFinish(processId) {
var values, company, c1, c2, c3, dataset, result;
//Recupera os valores do formulário.
values = {
"componentes": {
"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("cod_item_compon_novo")),
"cod_grade_1_dest": new String(hAPI.getCardValue("cod_grade_1_dest")),
"cod_grade_2_dest": new String(hAPI.getCardValue("cod_grade_2_dest")),
"cod_grade_3_dest": new String(hAPI.getCardValue("cod_grade_3_dest")),
"cod_grade_4_dest": new String(hAPI.getCardValue("cod_grade_4_dest")),
"cod_grade_5_dest": new String(hAPI.getCardValue("cod_grade_5_dest")),
"justificativa": new String(hAPI.getCardValue("justificativa"))
}
};
//Recupera o valor definido para o código da empresa.
company = values.componentes.cod_empresa;
//Converte o objeto JSON para JSON string.
values = JSON.stringify(values);
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.error("[LOGIX][WFMAN002] Nao foi possivel concluir o processo: " + result.msg + ".");
}
}
} |
...
O JSON string enviado para a o Dataset deve seguir os padrões abaixo:
...