Importação de Regras de Negócio via MILE
Produto: | Microsiga Protheus® |
Ambiente: | Todos |
Ocorrência: | Como configurar o layout do MILE para importar Regras de Negócio? |
Passo a Passo: | Para realizar a importação de Regras de Negócio utilizando o MILE, será necessário algumas configurações adicionais, pois a estrutura do MILE não permite realizar a importação utilizando simplesmente a configuração de canais. A rotina de Regras de Negócio (FATA100) recebe os seguintes parâmetros via rotina automática:
uAutoCab - Array - Dados do cabeçalho da Regra de Negócio (ACS) uItensACT - Array - Dados dos itens da Negociação (ACT) uItensACX - Array - Dados dos itens da Comercialização (ACX) uItensACN - Array - Dados dos itens de Descontos (ACN) nOpcAuto - Numérico - Opção da rotina a ser executada
No importador MILE quando utilizamos o tipo de adapter "1- MSExecAuto", ele envia os dados para a rotina automática da seguinte maneira: FUNCAOXXX( uAutoCab, uAutoItens, nOpcAuto )
O MILE pode ser adaptado e customizado conforme as necessidades dos clientes. Para maiores detalhes, veja a documentação: MILE - Model Integrator Layout Engine Exemplo da função de Pré Execução: #INCLUDE "PROTHEUS.CH" User Function FT100TST(lInterface,aInfos,aLayOut,aSaidas) /* lInterface - Lógico - .T. se está sendo executado com interface / .F. se está sendo executado sem interface aInfos - Array - Vetor com informações adicionais como linha inicial e final lida, nome do arquivo etc. aLayOut - Array - Informações das definições do layout. aSaidas - Array - Estrutura do vetor sobre dados de saída */ Local aNewVet := Array(4) //Cria um array para separar os dados dos canais. Local nX := 0 Local nY := 0 Local aACT := {} Local aACX := {} Local aACN := {} //Separa os dados dos canais (DETAIL) para serem enviados para a execauto do FATA100 For nX := 1 To Len(aSaidas[2][4]) For nY := 1 to len(aSaidas[2][4][nX]) If "ACT_" $ aSaidas[2][4][nX][nY][1] If "_ITEM" $ aSaidas[2][4][nX][nY][1] Aadd(aACT,{}) EndIf Aadd(aACT[Len(aACT)],{ Alltrim(aSaidas[2][4][nX][nY][1]), aSaidas[2][4][nX][nY][2], aSaidas[2][4][nX][nY][3] }) ElseIf "ACX_" $ aSaidas[2][4][nX][nY][1] If "_ITEM" $ aSaidas[2][4][nX][nY][1] Aadd(aACX,{}) EndIf Aadd(aACX[Len(aACX)],{ Alltrim(aSaidas[2][4][nX][nY][1]), aSaidas[2][4][nX][nY][2], aSaidas[2][4][nX][nY][3] }) ElseIf "ACN_" $ aSaidas[2][4][nX][nY][1] If "_ITEM" $ aSaidas[2][4][nX][nY][1] Aadd(aACN,{}) EndIf Aadd(aACN[Len(aACN)],{ Alltrim(aSaidas[2][4][nX][nY][1]), aSaidas[2][4][nX][nY][2], aSaidas[2][4][nX][nY][3] }) EndIf Next nY Next nX //Carregamos os arrays dos dados nas posições corretas da execauto aNewVet[1] := aSaidas[1][4][1] //uAutoCab (MASTER) aNewVet[2] := aACT //uItensACT aNewVet[3] := aACX //uItensACX aNewVet[4] := aACN //uItensACN //O parâmetro nOpcAuto será enviado de forma automática pelo importador MILE Return aNewVet A função acima deverá ser compilada no repositório antes da configuração do layout. Configuração do Layout: 1) Informações gerais; 2) Formatação do arquivo; 3) Tratamentos e Validações; 4) Adapters de Rotina Automática; 5) Definição dos Canais; Criar o canal B (DETAIL) para receber os itens da Negociação (ACT), da Comercialização (ACX) e dos itens de Descontos (ACN). Exemplo do Arquivo de Importação: Neste exemplo iremos importar uma Regra de Negociação, conforme a customização do rdmake de exemplo. |A|TST MILE IMPORT| Download do exemplo do layout (XML) e do arquivo de importação: |
Pode lhe interessar: | Para maiores detalhes sobre o MILE, veja a documentação: MILE - Model Integrator Layout Engine |