Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Informações Gerais
Especificação | |||
Produto | Protheus | Módulo | SIGATMS |
Segmento Executor |
| ||
Projeto1 |
| IRM1 |
|
Requisito1 |
| Subtarefa1 |
|
Chamado2 |
| ||
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
Integrar as informações de contas a pagar geradas pelo módulo SIGATMS (Transportation Management System) da linha Microsiga Protheus com o módulo FINANÇAS APB da linha Datasul.
O Protheus usará como ferramenta de Integração o EAI(Enterprise Application Integrator), o EAI por sua vez, terá a responsabilidade de trafegar mensagens de XML entre o Protheus e o Datasul, além de fazer o controle de filas das mensagens a serem integradas.
Definição da Regra de Negócio
Para cumprir o objetivo deste requisito será necessário retirar a amarração que o SIGATMS possui com tabelas e rotinas do SIGAFIN. Esta amarração só deverá ser retirada quando o transportador estiver trabalhando com integração com outro ERP que não seja Protheus. Para isto, será criado o parâmetro MV_TMSERP, este parâmetro definirá qual é o sistema que o TMS está integrado, onde: 0=Protheus;1=DATASUL, sendo assim, se houver outro ERP a ser integrado pelo SIGATMS o mesmo poderá ser cadastrado como "2" e assim sucessivamente.
Quando o parâmetro MV_TMSERP estiver igual á "0" - PROTHEUS, o SIGATMS deverá se comportar como se comporta hoje, ou seja, chamando as rotinas do financeiro (050MANSE2, FINA050 e FINA080), para geração e baixa de títulos respectivamente, além de continuar analisando as tabelas SE2 e SE5.
Porém se o parâmetro MV_TMSERP estiver igual á "1" - DATASUL, o SIGATMS deverá enviar mensagens para o DATASUL, solicitando a criação de títulos e impostos e solicitando o retorno de forma síncrona em alguns casos.
Abaixo Mapa Mental com as rotinas que sofrerão alterações caso o parâmetro MV_TMSERP esteja igual à '1'.
Seguem as rotinas que devem ser alteradas para que seja realizada a leitura do parâmetro: MV_TMSERP, e caso o conteúdo do parâmetro seja igual a '1', toda chamada às rotinas: A050ManSe2(), FINA050, FINA080, devem ser alteradas para chamar o EAI do Protheus para que o título/baixa seja realizada no DATASUL.
Fonte | Tipo de Operação | Aceso Menu |
---|---|---|
TMSA070 - Movimento Custo de Transporte | Alteração | Atualizações/Transporte/Movto.custo Transp |
TMSA370 - Ocorrência de Indenização | Alteração | Atualizações/Seguro/Reg. de Indenizações |
TMSA330 - Fechamento de Seguro | Alteração | Atualizações/Seguro/Fechamento |
TMSA250 - Contrato de Carreteiro | Alteração | Atualizações/Terceiros/Contrato Carret. |
TMSA240 - Complemento da Viagem | Alteração | Atualizações/Viagens |
TMSIABP - Integração TMS X ABP Datasul | Inclusão | |
TMSA310 - Fechamento da Viagem | Alteração | Atualizações/Viagens |
Abaixo exemplo do que deve ser alterado nos fontes citados, deve-se criar apenas um novo fonte (TMSINTABP) que será chamado pelas rotinas acima e pelos retornos enviados pelo APB do Datasul.
Âncora | ||||
---|---|---|---|---|
|
Através da rotina de Movimentos de Custo de Transporte (TMSA070), é possível gerarmos um título de NDF no Contas a Pagar, desde o movimento de custo de transporte seja realizado para uma viagem, que possui contrato de carreteiro não baixado.
Se o parâmetro MV_TMSERP estiver configurado igual á "1", os títulos serão gerados no ERP Datasul a partir do envio de uma mensagem ao EAI Protheus para se comunicar com o Datasul e solicitar a geração deste título no ERP Datasul. O título será gerado de forma assíncrona, ou seja, o movimento custo será gerado no SIGATMS e a mensagem de inclusão do título no Datasul será incluída na fila do EAI.
Caso o parâmetro MV_TMSERP, estiver igual à "2", os títulos continuarão sendo gerados no Contas a Pagar do Protheus (SIGAFIN).
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
Local lTmsERPDTS := SuperGetMV("MV_TMSERP",,'0') == '1' If lTmsERPDTS //--Chama Rotina que fará a geração e envio do XML ao EAI (Essa rotina pode trabalhar de forma assíncrona) //Integração via Mensagem Única If cFilMsg == "1" .and. FWHasEAI('TMSIABP',.T.,,.T.) FwIntegDef( 'TMSA070', , , , 'TMSA070' ) EndIf Else A050ManSE2(,DTY->DTY_VIAGEM,cPrefixo,cTipNDF,cParcela,SDG->DG_VALCOB,0,DTY->DTY_CODFOR,DTY->DTY_LOJFOR,; cNatuDeb,1,Nil, "SIGATMS", Date(), , Date(), , cFilAnt, {}) EndIf Além de analisar as chamadas das funções 050ManSE2, deverá ser alterado os trechos onde são analisadas diretamente as tabelas do SIGAFIN. Exemplo: SE2 e SE5. If !Empty(SDG->DG_FILORI) .And. !Empty(SDG->DG_VIAGEM) .And. DTY->(MsSeek(xFilial("DTY")+SDG->(DG_FILORI+DG_VIAGEM) )) .And.; (!lTMSOPdg .Or. lGerComp) If lTmsERPDTS //--Chama rotina que buscará os títulos no DATASUL ref. ao contrato de carreteiro já gerado. Essa rotina por se tratar de consulta deve trabalhar de forma síncrona. aRet := TMSIABP (2,DTY->DTY_VIAGEM, DTY_NUMCTC, SDG->DG_VALCOB, DTY_CODFOR, DTY_LOJFOR) If Empty(aRet) Aviso('Não foi encontrado título algum para o contrato de carreteiro informado') EndIf Else cOrigem := 'COM' //-- Complemento cParcela := StrZero(1, Len(SE2->E2_PARCELA)) If lGerTit cPrefixo := TMA250GerPrf(cFilAnt) cParc := StrZero(1, Len(SE2->E2_PARCELA)) SE2->(dbSetOrder(6)) If SE2->( MsSeek( cSeek := xFilial("SE2") + DTY->DTY_CODFOR + DTY->DTY_LOJFOR + cPrefixo + PadR(DTY->DTY_VIAGEM, Len(SE2->E2_NUM)) ) ) If SDG->(FieldPos("DG_PARC")) > 0 Do While !SE2->(Eof()) .And. SE2->(E2_FILIAL+E2_FORNECE+E2_LOJA+E2_PREFIXO+E2_NUM) == cSeek cParc:=Soma1(SE2->E2_PARCELA) SE2->(dbSkip()) EndDo Else Aviso( STR0021 , STR0022 , { STR0024 } ) //"Atencao" ### "Foi encontrado na tabela SE2 um registro com a mesma chave primária, portanto não será possível efetuar a gravação." ### "OK" Final( STR0023 ) // Execute o update UpdTMS32 EndIf EndIf cParcela := cParc EndIf EndIf EndIf |
TMSA370 - Registro de Indenizações Âncora TMSA370 TMSA370
Através da rotina de Registro de Indenizações (TMSA370), é gerado um título no contas a pagar do Protheus. (TMSA370).
Porém se o parâmetro MV_TMSERP, estiver igual á "1", os títulos serão gerados no ERP Datasul a partir do envio de uma mensagem ao EAI Protheus para se comunicar com o Datasul e solicitar a geração deste título no ERP Datasul. O título será gerado de forma assíncrona, ou seja, o movimento custo será gerado no SIGATMS e a mensagem de inclusão do título no Datasul será incluída na fila do EAI.
Caso o parâmetro MV_TMSERP, estiver igual à "2", os títulos continuarão sendo gerados no Contas a Pagar do Protheus (SIGAFIN).
Tmsa330 - Fechamento de Seguro Âncora TMSA330 TMSA330
Ao confirmar o fechamento de seguros no TMS, hoje é gerado um título financeiro considerando as informações das tabelas: DU3(Componentes de Seguro), DU8 (Fechamento de seguro) e DU9(Itens de Fechamento de Seguro).
Porém quando a integração com ERP Datasul estiver ligada, a rotina A050ManSe2, não deverá ser mais chamada e sim a rotina que enviará uma mensagem de geração de título ao EAI Protheus, o EAI por sua vez enviará a mensagem de geração de título ao WebService do EAI Datasul.
Vale ressaltar que deve ser gerado um título para cada componente de seguro de acordo com os componentes definidos na tabela DU3(Componentes de Seguro).
Importante observar que hoje os títulos gerados pelo fechamento do seguro podem ter seus lançamentos contábeis demonstrados no SIGATMS, com o ERP Datasul essa visualização não será mais disponível. Já que a mesma será realizada automaticamente pelo ERP Datasul.
TMSA250 - Contrato de Carreteiro Âncora TMSA250 TMSA250
Ao gerar o contrato de carreteiro, para fornecedores com contratos que geram financeiro, campo: Ger.Tit.Cont.(DVG_GERTIT==’1’) será enviado as informações do contrato de carreteiro para o DataSul (Finanças). Como as seguintes informações:
- Tipo do título
- Número do Título
- Código do Fornecedor
- Loja do Fornecedor
- CNPJ do Fornecedor
- Loja do Fornecedor
- Lista com Viagens do Contrato de carreteiro
- Valor
- Moeda
- Data Emissão
- Filial de Débito
- Empresa Responsável pela geração
- Filial Responsável pela geração do contrato.
- Data de Vencimento (Opcional, se não for enviada gera-se de acordo com regra financeira)
O Datasul por sua vez, receberá as informações do contrato de carreteiro e definirá através das configurações do fornecedor como serão gerados os títulos (Parcelas, Data de vencimento e Impostos).
Observações:
1. Vale ressaltar que temos um parâmetro MV_GERTIT, onde define se o título no financeiro será gerado, porém ele respeita as informações dos cadastros do financeiro (natureza, etc.). Logo o conceito deste parâmetro deixará de existir na Oferta de Operador Logístico, tendo em vista que o TMS não gerará mais títulos financeiros.
2. Existe um parâmetro na função Tmsa250GerDTY() que determina se o valor de pedágio deve ser deduzido da base de impostos, implica no campo DTY_BASEIMP. O conteúdo do parâmetro é de acordo com o cadastro do fornecedor campo Deduz Pedag.(DVG_DEDPDG).
Como essa informação é cadastrada no contrato do fornecedor, não será necessário ficar no financeiro Datasul, o TMS ao passar o valor do contrato ao Financeiro Datasul, já deverá resolver se o valor do pedágio será abatido ou não.
Para atender esta demanda o fonte TMSA250 deverá ser reestruturado com o objetivo de facilitar sua leitura, reutilizar as rotinas que serão utilizadas na geração do Financeiro do Protheus e no Financeiro do Datasul, além de separar as chamadas das rotinas que gerarão o contas a pagar no Financeiro do Protheus e no Financeiro do Datasul.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
If cTmsErp == '0' //-- Verifica o Prefixo do Titulo cPrefixo := TMA250GerPrf(cFilAnt) //--Chama rotina de exclusão de títulos do ERP Protheus lRet := A250FinPrt(cPrefixo,cCodForn,cLojForn,cAliasDTY,cTipUso,cContrat,lRepom,@aMsgErr) ElseIf cTmsERP == '1' //Chama rotina de exclusão de títulos do ERP Datasul lRet := A250FinDTS(cPrefixo,cCodForn,cLojForn,cAliasDTY,cTipUso,cContrat,lRepom,@aMsgErr) EndIf |
TMSA240 - Complemento de Viagem Âncora TMSA240 TMSA240
Atualmente o adiantamento da viagem é realizado na inclusão da viagem, porém deverá ser permitido que o transportador gera o título de adiantamento a partir do fechamento da viagem. Esta configuração será realizada na contrato do fornecedor, através da criação do novo campo DUJ_TITADI (1=Viagem;2=Fechamento Viagem).
Se o contrato do fornecedor estiver configurado para gerar adiantamento na Viagem (DUJ_TITADI == '1'), ao gerar uma viagem deverá ser verificado qual é o ERP que o SIGATMS está integrado.
Se o ERP for Protheus deverá ser respeitada a função A050ManSE2(). Caso o ERP for Datasul, deverá ser chamada a função de TMSIABP() que fará a integração com o ERP Datasul a partir do EAI.
TMSA310 - Fechamento de Viagem Âncora TMSA310 TMSA310
Além do título de adiantamento, o título de pedágio pode ser configurado para ser gerado no momento do fechamento da viagem, campo (DUJ_TITPDG).
Se o contrato estiver configurado para gerar o título de pedágio no fechamento da viagem, ao efetuarmos a viagem a partir do TMSA310, deverá ser enviada a mensagem ao ERP Datasul solicitando a geração de um título financeiro do tipo pedágio. Porém a data de vencimento do título deverá ser a mesma data da geração.
O mesmo ocorrerá com o título de adiantamento, caso o mesmo esteja configurado para ser gerado no fechamento da viagem (DUJ_TITADI).
Rotinas que não serão Integradas neste Projeto
A tabela abaixo representa as rotinas que não serão integradas com o ERP Datasul neste momento, porém sua utilização deve continuar da mesma maneira se o SIGATMS esteja integrado com o Protheus (MV_TMSERP) == '0'.
Rotinas/Fontes | Descrição |
---|---|
TMSA920 | Geração de AWB. |
MATA120 | Pedido de Compras |
TMSA250Proc | Contrato de Prêmio |
Tmsa250Sld | Pagamento de Saldo deo Contrato de Carreteiro |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|