Novo processo de importação de abastecimento.
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||||||||||
Segmento: | Manufatura | ||||||||||||
Módulo: | Manutenção de Ativos | ||||||||||||
Rotina: |
| ||||||||||||
País(es): | Todos | ||||||||||||
Banco(s) de Dados: | Todos | ||||||||||||
Tabelas Utilizadas: | TR6 - Abastecimentos Importados; TQ7 - Dados do Layout; TQ8 - Estrutura do Layout; TQQ - Abastecimentos Rejeitados; TQP - Inconsistencias Abastecimentos. | ||||||||||||
Sistema(s) Operacional(is): | Todos |
Descrição
A presente documentação tem por objetivo descrever o novo processo de importação de abastecimento do módulo de Manutenção de Ativos. Esse fará a centralização dos antigos métodos de importação, Importação Convênio CTF (MNTA130), Importação de Convênio Ticket (MNTA631), Importação Convênio GoodCard (MNTA986) e Importação GTFrota (MNTA131) em uma única rotina: Importação de Abastecimento (MNTA716).
Em consequência da implementação da nova rotina de importação, houve a necessidade de otimização no processo de Análise Consistência. As alterações realizadas serão discriminadas no decorrer da documentação.
Resumo
Segue abaixo um breve resumo das implementações da Importação de Abastecimento
Desabilitadas do menu as rotinas de:
- MNTA130 - CTF;
- MNTA631 - Ticket;
- MNTA986 - GoodCard;
- MNTA131 - GTFrota.
Criada rotina de cadastro de layouts, contendo como padrão os esquemas dos convênios mencionados acima.
Criado processo centralizado de importação de abastecimento.
Realizada otimizações no processo de análise consistência.
Rotinas Alteradas:
- MNTA635 – Consistência;
- MNTA660 – Reprocessamento dos registros rejeitados;
- MNTA700 – Análise Consistência;
- mntutil – Funções Genéricas;
- mntutil_contador – Funções Genéricas de Contador.
Rotinas Novas:
- MNTA715 – Layout de Importação;
- MNTA716 – Importação de Abastecimentos.
Importante
Antes de executar o compatibilizador UPDMNTD1 é imprescindível:
- Realizar o backup da base de dados do produto que será executado o compatibilizador (diretório \PROTHEUS11_DATA\DATA) e dos dicionários de dados SXs (diretório \PROTHEUS11_DATA\SYSTEM).
- Os diretórios acima mencionados correspondem à instalação padrão do Protheus, portanto, devem ser alterados conforme o produto instalado na empresa.
- Essa rotina deve ser executada em modo exclusivo, ou seja, nenhum usuário deve estar utilizando o sistema.
- Se os dicionários de dados possuírem índices personalizados (criados pelo usuário), antes de executar o compatibilizador, certifique-se de que estão identificados pelo nickname. Caso o compatibilizador necessite criar índices, irá adicioná-los a partir da ordem original instalada pelo Protheus, o que poderá sobrescrever índices personalizados, caso não estejam identificados pelo nickname.
- O compatibilizador deve ser executado com a Integridade Referencial desativada*.
Atenção O procedimento a seguir deve ser realizado por um profissional qualificado como Administrador de Banco de Dados (DBA) ou equivalente! A ativação indevida da Integridade Referencial pode alterar drasticamente o relacionamento entre tabelas no banco de dados. Portanto, antes de utilizá-la, observe atentamente os procedimentos a seguir:
Contate o Help Desk Framework EM CASO DE DÚVIDAS! |
---|
- Em Microsiga Protheus TOTVS Smart Client, digite U_UPDMNTD1 no campo Programa Inicial.
- Clique em OK para continuar.
- Após a confirmação é exibida uma tela para a seleção da empresa em que o dicionário de dados será modificado.
- Ao confirmar é exibida uma mensagem de advertência sobre o backup e a necessidade de sua execução em modo exclusivo.
- Clique em Processar para iniciar o processamento. O primeiro passo da execução é a preparação dos arquivos.
É apresentada uma mensagem explicativa na tela. - Em seguida, é exibida a janela Atualização concluída com o histórico (log) de todas as atualizações processadas. Nesse log de atualização são apresentados somente os campos atualizados pelo programa. O compatibilizador cria os campos que ainda não existem no dicionário de dados.
- Clique em Gravar para salvar o histórico (log) apresentado.
- Clique em OK para encerrar o processamento.
- Clique em Processar para iniciar o processamento. O primeiro passo da execução é a preparação dos arquivos.
Procedimento para Implantação
O sistema é atualizado logo após a aplicação do pacote de atualizações (Patch) deste ticket.
- Aplique o patch do ticket e execute/acesse qualquer rotina através da entrada do módulo de Manutenção de Ativos para acionar a função de entrada de sistema para criar os layouts padrões de importação, bem como os novos nomes de campo e atualização de erros da SX5..
Atualizações do Compatibilizador
- Criação de tabela no arquivo SX2– Tabelas:
Chave | Nome | Modo | PYME |
TQ7 | Dados do Layout | Compartilhado | N |
TQ8 | Estrutura do Layout | Compartilhado | N |
2. Criação de Campos no arquivo SX3 – Campos:
- Tabela TQ7 - Dados do Layout:
Campo | TQ7_FILIAL | TQ7_CODLAY | TQ7_DESLAY | TQ7_TABELA | TQ7_DESTAB | TQ7_TIPARQ | TQ7_SEPARD | TQ7_FORDTA | TQ7_SEPDEC | TQ7_INDCAB | TQ7_INDROD | TQ7_MSBLQL |
Tipo | Carácter | Carácter | Carácter | Carácter | Carácter | Carácter | Carácter | Carácter | Carácter | Carácter | Carácter | Carácter |
Tamanho | 8 | 6 | 150 | 3 | 150 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Decimal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Formato |
|
| @! | @! | @! | @! | @! | @! | @! | @! | @! | @! |
Título | Filial | Cód. Layout | Desc. Layout | Cód. Tabela | Desc. Tabela | Arquivo TXT | Separador | Formato Data | Sep. Decimal | Cabeçalho | Ind. Rodapé | Bloqueado? |
Descrição | Filial | Código do Layout | Descrição do Layout | Tabela principal | Descrição da Tabela | Tipo de Arquivo TXT | Tipo Separador | Formato Data | Separador Decimal | Indica cabeçalho | Indica Rodapé | Registro bloqueado |
Nível | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Usado | Não | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim |
Obrigatório | Não | Sim | Sim | Sim | Sim | Sim | Não | Sim | Sim | Sim | Sim | Não |
Browse | Sim | Sim | Sim | Não | Não | Não | Não | Não | Não | Não | Não | Não |
Opções |
|
|
|
|
| 1=Fixo; 2=Separador | 1=Pipe; 2=Ponto-e-Virgula; 3=Traco; 4=Tab | 1=dd/mm/aaaa; 2=ddmmaaaa; 3=aaaa/mm/dd; 4=aaaammdd | 1=Ponto; 2=Vírgula | 1=Sim; 2=Não | 1=Sim; 2=Não | 1=Sim; 2=Não |
When |
|
|
|
|
|
| lSeparador |
|
|
|
| |
Relação |
| GETSXENUM("TQ7","TQ7_CODLAY") |
|
|
|
|
|
|
|
|
| |
Val. Sistema |
|
|
|
|
|
|
|
|
|
|
| |
Help | Filial | Código do Layout | Descrição do Layout | Código da Tabela Principal com os campos a serem utilizados na importação do abastecimento. | Descrição da Tabela Principal. | Tipo de Arquivo TXT. 1-Fixo: A posição dos registros é definida pelo tamanho. 2-Separador: A posição é definida por um separador específico. | Tipo do separador específico que delimitará a posição inicial/final de cada registros do arquivo TXT. 1=Pipe; 2=Ponto-e-Vírgula; 3=Traço; 4=Tab | Formato da data dos registros importados. 1=dd/mm/aaaa; 2=ddmmaaaa; 3=aaaa/mm/dd; 4=aaaammdd | Tipo de separador dos números decimais. 1=Ponto: os valores decimais são separados por ponto. 2=Vírgula: os valores decimais são separados por vírgula. | Indica se o Layout possui cabeçalho, se tiver, o mesmo é ignorado na importação. 1=Sim; 2=Não | Indica se o Layout possui rodapé (totalizador) ao final do arquivo, se tiver, o mesmo é ignorado na importação. 1=Sim; 2=Não | Indica bloqueio do registro para uso, sendo: 1: Sim, registro bloqueado; 2: Não, registro não bloqueado. |
- Tabela TQ8 - Estrutura do Layout:
Campo | TQ8_FILIAL | TQ8_CODLAY | TQ8_SEQUEN | TQ8_CPOTAB | TQ8_TIPO | TQ8_POSINI | TQ8_TAMARQ | TQ8_POSFIM | TQ8_CONTEU | TQ8_FUNCAO |
Tipo | Carácter | Carácter | Numérico | Carácter | Carácter | Numérico | Numérico | Numérico | Carácter | Carácter |
Tamanho | 8 | 6 | 3 | 10 | 1 | 4 | 3 | 3 | 20 | 80 |
Decimal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Formato |
|
| 999 |
| 9999 | 999 | 999 |
|
| |
Título | Filial | Cód. Layout | Seq. Campo | Campo | Tipo | Início | Tamanho | Fim | Conteúdo | Função |
Descrição | Filial | Código do Layout | Sequência do Campo | Campos do layout | Tipo do Campo | Posição Inicial na linha | Tamanho do campo | Posição Final da Linha | Conteúdo do registro | Função de processamento |
Nível | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Usado | Não | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim |
Obrigatório | Não | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Não | Não |
Browse | Sim | Sim | Não | Sim | Não | Sim | Não | Sim | Não | Não |
Opções |
|
|
|
|
|
|
|
|
| |
When |
|
|
|
|
|
|
|
|
| |
Relação |
|
|
|
|
|
|
|
|
| |
Val. Sistema |
|
|
|
|
|
|
|
|
| |
Help | Filial | Código do Layout | Sequência do campo na importação do layout | Campos da tabela principal que fazem parte da configuração do layout | Tipo de campo. 1=Caracter; 2=Numérico; 3=Data | Posição Inicial do registro na linha do arquivo TXT que está sendo lido. | Tamanho do campo no arquivo TXT. | Posição final do registro na linha do arquivo TXT que está sendo lido. | Conteúdo de exemplo do registro a ser importado. | Função para validação do registro a ser lido. |
Importante:
O tamanho dos campos que possuem grupo pode variar conforme ambiente em uso.
3. Criação de Consulta Padrão no arquivo SXB – Consulta Padrão:
Pesquisa TQ7 - Layout Abastecimento:
Alias | TQ7 | TQ7 | TQ7 | TQ7 | TQ7 |
Tipo | 1 | 2 | 4 | 4 | 5 |
Sequência | 01 | 01 | 01 | 01 | 01 |
Coluna | DB | 01 | 01 | 02 |
|
Descrição | Layout Abastecimento | Código do Layout | Cód. Layout | Desc. Campo |
|
Contém | TQ7 | TQ7_CODLAY | TQ7_DESLAY | TQ7->TQ7_CODLAY |
4. Criação de Índices no arquivo SIX – Índices:
- Tabela TQ7 - Dados do Layout
Índice | TQ7 |
Ordem | 1 |
Chave | TQ7_FILIAL + TQ7_CODLAY |
Descrição | Código do Layout |
Proprietário | S |
- Tabela TQ8 - Estrutura do Layout
Índice | TQ8 |
Ordem | 1 |
Chave | TQ8_FILIAL + TQ8_CODLAY + STR(TQ8_SEQUEN) |
Descrição | Código do Layout + Sequência de Campo |
Proprietário | S |
Procedimento para Utilização
1. Acesse a rotina de Layout de Importação em Atualizações / Controle de Abastecimento / Abastecimento / Layout de Importação (MNTA715).
* Esse processo não é obrigatório, visto que a base já possui os layouts padrões cadastrados. Porém é possível efetuar alterações nos layouts padrões quando necessário e realizar a inclusão de novos layouts
O programa apresenta os layouts de importação cadastrados.
2. Na inclusão de um layout, faz-se necessário o preenchimento dos campos obrigatórios que definem as características de como serão importados os registros de abastecimento. Abaixo está descrito como preenche-los:
a. Cód. Layout (TQ7_CODLAY) – Gerado automaticamente de maneira sequencial;
b. Desc. Layout (TQ7_DESLAY) – Deve ser informada uma descrição para o layout;
c. Cód. Tabela (TQ7_TABELA) – Exibe o código referente a tabela de abastecimentos importados (TR6);
d. Desc. Tabela (TQ7_DESTAB) – Exibe a descrição da tabela TR6.
e. Arquivo TXT (TQ7_TIPARQ) – Deve ser informado qual o tipo de arquivo que estará sendo importado. Sendo que o mesmo pode ser “1 = Fixo” ou “2 = Separador”:
* 1 = Fixo: As posições dos campos são definidas por um tamanho fixo;
* 2 = Separador: As posições dos campos são definidas por um caractere de separação definido através do campo Separador (TQ7_SEPARD).
f. Separador (TQ7_SEPARD) – Deve ser informado qual o tipo de separador utilizado para definir o término e início dos campos do layout. Esse campo apenas será habilitado quando o campo Arquivo TXT (TQ7_TIPARQ) estiver com o conteúdo “2 = Separador”. Os tipos disponíveis são:
* Pipe ( | );
* Ponto e vírgula ( ; );
* Traço ( - );
* Tab.
g. Formato Data (TQ7_FORDTA) – Deve ser informado o tipo do formato dos campos data utilizados no layout de importação. Os tipos disponíveis são:
* 1 = dd/mm/aaaa;
* 2 = ddmmaaaa;
* 3 = aaaa/mm/dd;
* 4 = aaaammdd.
h. Sep. Decimal (TQ7_SEPDEC) – Deve ser informado o tipo de separador utilizado nos campos que possuam casas decimais. Os tipos disponíveis são:
* 1 = Ponto (.);
* 2 = Vírgula (,).
i. Cabeçalho (TQ7_INDCAB) – Deve ser informado se o layout possui cabeçalho. Caso possua a primeira linha do arquivo TXT será ignorada na impressão.
* 1 = Sim;
* 2 = Não.
j. Ind. Rodapé (TQ7_INDROD) – Deve ser informado se o layout possui rodapé. Caso possua a última linha do arquivo TXT será ignorada na impressão.
* 1 = Sim;
* 2 = Não.
k. Bloqueado? (TQ7_MSBLQL) – Indica bloqueio do registro para uso.
* 1 = Sim;
* 2 = Não.
O grid da esquerda apresenta todos os campos reais da tabela de Abastecimentos Importados (TR6).
* Ao abrir um registro em alteração ou visualização só serão apresentados os campos que não foram adicionados a configuração do layout.
A grid da direita indica os campos a serem lidos na importação.
As colunas da tabela são.
* Campo: Nome do Campo adicionado;
* Tipo: Tipo do campo a ser lido. Sendo, 1-Caracter, 2-Numérico e 3-Data;
* Início: Indica em qual posição inicia o campo. Caso o layout possua separador esse campo será preenchido com um traço “-“ visto que a mudança de campo é definida pelo separador;
* Tamanho: Indica a quantidade máxima de caracteres que o campo suporta. Essa capacidade é definida conforme o tamanho do campo em base máximo da coluna da tabela. Essa capacidade pode ser alterada para um tamanho menor, exceto para campos datas, que seu tamanho é definido conforme o formato da data (TQ7_FORDTA);
* Fim: Indica em qual posição em que se encerra o campo. Caso o layout possua separador esse campo será preenchido com um traço “-“ visto que a mudança de campo é definida pelo separador;
* Conteúdo: Exibe um exemplo de como o campo deve ser preenchido;
* Função: Permite a inclusão de uma função de usuário que será executada após a leitura do campo para que possam serem realizadas validações especificas. Para saber como configurar essas funções deve ser verificado a FAQ MNT0026
Entre as grids, existem os botões de controle de campos:
Botão "Adicionar o campo selecionado para o layout" – Insere o campo selecionado para o layout – Adiciona o campo selecionado da tabela TR6 – Abastecimentos Importados para compor a estrutura do Layout. O registro é retirado da lista de campos disponíveis;
Botão "Retirar do layout o campo selecionado" – Remove o campo selecionado na estrutura do Layout, e devolve para lista de campos disponíveis. Se o campo selecionado para a remoção for um campo que não existe na tabela principal (TR6) ele ficará temporariamente na lista de campos disponíveis para auxiliar na configuração. Ao sair do programa o mesmo é apagado;
Botão "Sobe o campo" – Movimenta verticalmente o campo selecionado na estrutura do layout para acima;
Botão "Desce o campo" – Movimenta verticalmente o campo selecionado na estrutura para baixo;
Botão "Adicionar campo que não existe na tabela principal" – A utilização dessa funcionalidade tem dois objetivos, primeiro manter a compatibilidade do sistema com os layouts antigos. Dessa forma, os campos que não são lidos pelo Protheus na importação ou não são salvos diretamente na tabela, podem ser mantidos no layout, para os campos que não são salvos diretamente, podem ser tratados por meio de uma função de usuário informada no campo função. O outro objetivo é fazer com que os campos do layout que possuam um tamanho maior que o do campo da tabela, possam ser utilizados com o tamanho correto. Para melhor entendimento do funcionamento dessa validação deve ser lido a FAQ MNT0026
Exemplo de importação: Esta seção traz o campo de pré-visualização referente a formatação do arquivo que está sendo criado.
3. Acesse a rotina de Importação de Abastecimentos em Atualizações / Controle de Abastecimento / Abastecimento / Importação de Abastecimento (MNTA716).
Será apresentada a tela de instruções para a importação, após ler as instruções deve-se clicar em Avançar. A próxima tela apresentará um campo para informar o código do layout a ser importado, através da consulta padrão do campo podem ser visualizados os layouts cadastrados, após a seleção do layout deve-se clicar em Avançar, onde será apresentado uma tela de seleção de arquivo. Ao confirmar o arquivo será feito o processo de importação. Caso ocorra algum erro no processamento, nenhum registro será importado e será apresentado um relatório de erro. Do contrário será apresentado uma mensagem indicado o sucesso da importação.
4. Acesse a rotina de consistência de abastecimentos em Atualizações / Controle de Abastecimento / Abastecimento / Consistencia Abastecimento (MNTA635)
5. Realizar a consistência dos abastecimentos importados.
6. Acesse a rotina de análise da consistência em Atualizações / Controle de Abastecimento / Abastecimento / Analise Consistencia (MNTA700).
7. Verificar que a rotina possui sua tela maximizada, permitindo assim um maior aproveitamento dos espaços do programa.
8. Na ocorrência de importação de abastecimentos que não possuam os campos data do abastecimento (TR6_DTABAS) e/ou hora do abastecimento (TR6_HRABAS) preenchidos, a rotina de consistência exibirá os novos erros a seguir:
* 51 - Não foi informada data para o abastecimento.
* 52 - Não foi informada hora para o abastecimento.
* 53 - Data/Hora de abastecimento maior que a data atual.
9. Dessa forma, será permitido alterar a data e/ou hora do abastecimento. Após a alteração do campo não será mais permitido modificar as respectivas informações.
10. Caso na importação o tipo de convênio do posto (TQM_CONVEN) seja diferente do tipo de convênio do combustível (TQF_CONVEN) irá gerar o novo erro:
* 54 - Convênio do comb. incompatível com o convênio do posto.
11. Também foram criados novos erros para caso não seja informado combustível ou o mesmo não exista:
* 55 - Combustível não informado.
* 56 - Combustível não cadastrado.
12. O campo de combustível foi alterado para respeitar o parâmetro que indica se na importação de arquivos relacionados a abastecimento, considera: 1 - Cód. Convênio ou 2 - Cód. Combustível(MV_NGIMPOR).