Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmentos - Backoffice Linha Protheus - SIGAFIN - FINA050 - Exemplo importação MILE contas a pagar com rateio por naturezas

time.png Tempo aproximado para leitura: 00:10:00 min

Dúvida
Como configurar o layout no MILE para importar os dados da rotina FINA050 com rateio?

Ambiente

Cross Segmentos - TOTVS Backoffice (Linha Protheus) - Financeiro - Todas as versões

 

Solução:
Para realizar a importação dos dados na rotina de Contas a Pagar (FINA050) com rateio contábil utilizando o MILE, é necessário algumas configurações adicionais que veremos a seguir, pois atualmente, a estrutura do MILE não permite realizar a importação utilizando simplesmente a configuração de canais.

Basicamente o MILE funciona da seguinte forma: para cada canal criado, será enviado sequencialmente para a rotina em questão um array como um parâmetro.

Então se temos 2 canais (1 Master e 1 Detail), ao realizar a chamada da MsExecAuto da rotina, será enviado da seguinte forma:

FuncaoXXX(vetor[1], vetor[2], 3)

Se tivermos 3 canais , será desta forma:

FuncaoXXX(vetor[1], vetor[2],vetor[3], 3)

E assim por diante.

Visto isso, temos uma incompatibilidade de uso, para a inclusão do rateio, pois na rotina FINA050 o parâmetro que recebe os dados do rateio está na oitava posição.

Veja os parâmetros recebidos pela rotina FINA050:

Fina050(aRotAuto,nOpcion,nOpcAuto,bExecuta,aDadosBco,lExibeLanc,lOnline,aDadosCTB,aTitPrv,lMsBlQl,lPaMovBco)

onde:

aRotAuto - Array - Contém os dados dos campos e conteúdo do título para inclusão via rotina automática

nOpcion - Numérico - Opção desejada do menu

nOpcAuto -Numérico - Opção desejada do menu via rotina automática

bExecuta - bloco de código - Permite executar uma função diferente ao invés da chamada da mbrowse

aDadosBco - Array - Somente para integração com o módulo SIGATMS para informar os dados do banco do adiantamento

lExibeLanc - Lógico - Define se exibe os Lançamentos Contábeis

lOnline - Lógico - Define se contabiliza On-Line

aDadosCTB - Array - Contém os dados do rateio contábil

aTitPrv - Array - Informações do título provisório

lMsBlQl - Lógico - Define se irá validar o campo E2_MSBLQL

lPaMovBco - Lógico - Define se PA gera movimento bancário

 

Neste caso, precisamos enviar o vetor do canal Master como primeiro parâmetro (aRotAuto) e o vetor do canal Detail como oitavo parâmetro (aDadosCTB).

Vamos precisar manipular o array de canais criado pelo MILE através de user function.

 

Configuração do Layout

Supondo a seguinte configuração de layout do MILE:

1) Informações sobre a rotina:

 

2) Defina a formatação do arquivo. Atente-se para o campo Pré-Execução, onde iremos utilizar uma função para mudar o vetor criado pelo MILE, antes de chamar a ExecAuto do Fina050.

 

3) Defina o tipo de MsExecAuto, e neste caso podemos utilizar os Modelos 2 ou 3. Como a rotina não está em MVC, não necessita a configuração do Adapters em MVC.

 

4) Defina os canais. Será necessário um canal Master para receber os dados do título (Canal A).

 

 

 

5) E um canal Detail para receber os dados do rateio (Canal B).

 

Pronto, o layout do MILE está configurado.

 

Agora veremos sobre a user function utilizada na Pré-Execução.

A função configurada na pré-execução receberá os seguintes parâmetros do MILE:

[1] - Lógico - .T. se está sendo executado com interface / .F. se está sendo executado sem interface

[2] - Array - Vetor com informações adicionais como linha inicial e final lida, nome do arquivo etc.

[3] - Array - Informações das definições do layout.

[4] - Array - Estrutura do vetor sobre dados de saída

[5] - Array - Vetores de rotina automática (MSExecAuto).

 

Exemplo da função de Pré-Execução

A função deverá retornar um novo vetor dos canais a serem enviados para a rotina.

No exemplo abaixo, para cada parâmetro recebido pela rotina FINA050, estamos criando um array e colocamos na oitava posição, que seria o parâmetro dos dados do rateio, o vetor do canal B - Detail.

 

User Function vetor050(lInterface, aInfos, aLayOut, aSaidas, aVetores)
Local aNewVet := array(11)

 

aNewVet[1] := aClone(aVetores[1]) // aRotAuto
aNewVet[2] := {} // nOpcion
aNewVet[3] := {3} // nOpcAuto
aNewVet[4] := {} // bExecuta
aNewVet[5] := {} // aDadosBco
aNewVet[6] := {} // lExibeLanc
aNewVet[7] := {} // lOnline
aNewVet[8] := aClone(aVetores[2]) // aDadosCTB
aNewVet[9] := {} // aTitPrv
aNewVet[10] := {} // lMsBlQl
aNewVet[11] := {} // lPaMovBco

 

Return aClone(aNewVet)

Exemplo de Arquivo de Importação

Veja neste exemplo de arquivo onde temos uma inclusão de um título (A) com dois rateios (B):

Lembrando que, conforme a configuração do layout, a primeira posição de cada registro se refere ao canal.

|A|D MG 01 |999|||NF|SEMIMPOSTO|000001|01|20170731|20170830|20170830|1000|S|
|B|100|200|60|600|
|B|200|100|40|400|

 

Agora basta processar o arquivo, que o mesmo deverá realizar a importação.

 

1) Processando o arquivo TXT:

 

2) Informando o caminho do arquivo TXT:

 

3) Final de processamento:

 

4) Acessando a rotina Fina050, veja que o título foi incluído com rateio contábil:

 

Visualizando o rateio:

Observações:

Este tratamento é exclusivo para a rotina Contas a Pagar (FINA050) pois a mesma foi adaptada para receber as informações do MILE que estão no formato array.

Este é somente um exemplo de configuração do layout, podendo ser adaptado conforme a necessidade do cliente.



Como importar títulos para várias filiais diferentes no mesmo arquivo?


Passo a passo:    
Ao realizar a importação do arquivo no MILE, a execução da MsExecAuto será realizada pela filial logada.

Para trocar a filial (CFILANT) conforme a filial do registro a ser incluso, é necessário configurar o MILE para que realize a troca da variável global CFILANT para a filial do registro conforme exemplo abaixo.

Na aba Variáveis é possível manipular o conteúdo da variável informada e em Origem Dado, informe a posição do dado onde se encontra no arquivo de importação que irá setar o conteúdo da variável. Utilizando o exemplo do arquivo acima, a informação da filial se encontra na segunda posição do arquivo.

Observação: a informação de Origem Dado depende da configuração do separador de campo, seja por largura fixa ou por separador.

 

Saiba mais: FINA050 - Importação com rateio via MILE

 

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Artigo fechado para comentários.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _