Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

Microsiga Protheus®

Versões:

12.1.33 e Superiores

Ocorrência:

Como importar projetos utilizando o MILE.

Passo a passo:

As ExecAuto de Projetos (PMSA200, PMSA201 e PMSA203) não estão preparadas para execução via MILE, portanto para sua utilização vi MILE é necessário a criação de uma UserFunction, aqual ira receber e tratar os dados do MILE e chamar as devidas ExecAutos do PMS.

Para realizar a importação dos dados de Projetos ou seja, as tabelas AF8, AFC ou AF9 utilizando o MILE, deve ser realizado o processo descrito abaixo.

Exemplo: Importação da Estrutura do Projeto (AFC) através do Canal A

Primeiramente é preciso criar uma UserFunction que irá receber os dados do MILE e fazer a chamada da ExecAuto, este caso da rotina PMSA201.

UserFunctionXXX(Interface, aInfos, aLayOut, aSaidas)

Veja que a UserFunction recebe quatro parâmetros onde:

  • Interface - 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


Estes dados terão que ser tratados dentro da UserFunction antes da chamada da ExecAuto para que sejam devidamente enviados ao processo automático. Nesta caso seguindo as condições dos parâmetros da rotina PMSA201.

PMSA201(nCallOpcx, aGetCpos, cNivTrf, , xAutoAFC)

Onde:

  • nCallOpcx- Numérico - Opção da rotina a ser executada
  • aGetCpos- Array - Informações da Estrutura do Projeto (AFC)
  • cNivTrfCaractere - Nível da Estrutura do Projeto (AGA)
  • xAutoAFC- Array- Informações da Estrutura do Projeto (AFC)


Neste caso, para enviar o vetor do Canal A Master (AFC) como segundo parâmetro (aGetCpos), vamos precisar manipular o array de canais criado pelo MILE.


Exemplo da função

Neste exemplo o tratamento foi feito para importar a Estrutura do Projeto tabela AFC.

O MILE pode ser adaptado e customizado conforme as necessidades dos clientes. Para maiores detalhes, veja a documentação: MILE - Model Integrator Layout Engine

Bloco de código
languageactionscript3
linenumberstrue
#INCLUDE "TOTVS.CH"

USER FUNCTION PMS201ML(Interface, aInfos, aLayOut, aSaidas)
/*
Interface - 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 aGetCPos	:= {}
    Local nX        := 0
         
        //Posiciona no projeto
        DbSelectArea("AF8")
        dbSetOrder(1)
        DbSeek(xFilial("AF8")+'0000000005' )
        //Separa os dados dos canais para serem enviados para a execauto
        For nX := 1 To Len(aSaidas[1][4][1])
            aAdd(aGetCPos ,{ aSaidas[1][4][1][nX][1], aSaidas[1][4][1][nX][2], .F. })
        Next nX
        //Carregamos os dados para a execauto
        MSExecAuto({|a,b,c,d,e| PMSA201(a,b,c,d,e)},3,aGetCpos,"002",,aGetCpos)     

Return .T.
Informações
titleImportante

A UserFunction deverá ser compilada no repositório antes da configuração do layout.



Configuração do Layout

1) Informações gerais: Tipo Adapter = 3-Função Adapter = (Função compilada acima U_PMSA201ML). 

2) Formatação do arquivo.


3) Adapters de Rotina Automática.
Neste caso iremos utilizar o Modelo 1. pois a rotina não está em MVC

4) Definição dos Canais.
Criar um canal A (MASTER) para receber os dados principais da Estrutura do Projeto (CANAL AFC).


Na Sessão Campos, devem ser informados as campos obrigatórios para execução da ExecAuto e outros campos que estarão presentes no arquivo .txt 



Exemplo do Arquivo .txt de Importação

Neste exemplo iremos importar a Estrutura do Projeto, 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.

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


View file
namepmsa201.xml
height150


Dica
titleInformações

De acordo com processo do MILE pode ser enviado mais de um agrupamento de dados em uma única chamada do MILE, através de diferentes Canais, portanto é possível realizar a chamado das três ExecAuto em um único MILE.

Para isso é necessário que o MILE possua mais de um Canal configurado para cada informação enviada (Projetos, EDTs e Tarefas) exemplo Canal A, B e C dentro de um mesmo MILE, os dados de cada Canal estarão desmembrados dentro do array aSaidas o qual devera desmembrado direcionando os dados para sua devida ExecAuto.

Observações:

Documentação sobre as ExecAutos do PMS:

PMSA200 - Cadastro de Projetos PMSA200 Cadastro de Projetos - Rotina Automática

PMSA201 - Estrutura do Projeto PMSA201 Estruturas do Projeto - Rotina automática

PMSA203 - Tarefas do Projeto PMSA203 Tarefas do Projeto - Rotina automática