Árvore de páginas

Versões comparadas

Chave

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

...

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:

FATA100( uAutoCab, uItensACT, uItensACX, uItensACN, nOpcAuto )


Onde:

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


Neste caso, precisamos criar os canais MASTER (ACS) e os DETAIL (ACT, ACX e ACN) para podermos enviá-los para a rotina automática do FATA100.

No importador MILE quando utilizamos o tipo de adapter "1- MSExecAuto", ele envia os dados para as rotinas automáticas da seguinte maneira:

FUNCAOXXX(  uAutoCab, uAutoItens, nOpcAuto )


Para que o layout criado funcione corretamente na rotina automática do FATA100, precisaremos manipular o array dos canais através de uma UserFunction que deverá ser informada no campo Pré Execução do layout.

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:

Bloco de código
languagejs
linenumberstrue
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 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][1])
    If "ACT_" $ aSaidas[2][4][1][nX][1]
        aAdd(aACT,{ aSaidas[2][4][1][nX][1], aSaidas[2][4][1][nX][2], aSaidas[2][4][1][nX][3] })
    ElseIf "ACX_" $ aSaidas[2][4][1][nX][1]
        aAdd(aACX,{ aSaidas[2][4][1][nX][1], aSaidas[2][4][1][nX][2], aSaidas[2][4][1][nX][3] })
    ElseIf "ACN_" $ aSaidas[2][4][1][nX][1]
        aAdd(aACN,{ aSaidas[2][4][1][nX][1], aSaidas[2][4][1][nX][2], aSaidas[2][4][1][nX][3] })
    EndIf
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;
Atente-se para o campo Pré Execução, onde deverá ser informado o nome da função U_FT100TST que irá mudar a posição dos parâmetros, antes da chamada da rotina automática do FATA100.

4) Adapters de Rotina Automática;
Neste caso iremos utilizar o Modelo 3. Como a rotina não está em MVC, não será necessário a configuração dos Adapters em MVC.

5) Definição dos Canais;
Criar o canal A (MASTER) para receber os dados principais da Regra de Negócio (ACS).

Criar o canal B (DETAIL) para receber os itens da Negociação (ACT).

Criar o canal C (DETAIL) para receber os itens da Comercialização (ACX).

Criar o canal D (DETAIL) para receber os 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.
Lembrando que conforme a configuração do layout, a primeira posição de cada registro se refere ao canal.

|A|TST MILE IMPORT|
|B|001|
|C|01|
|D|01|5|


Download do exemplo do layout (XML) e do arquivo de importação:





Pode lhe interessar: