Histórico da Página
y
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 |
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.
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 |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|