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 a integração com onde 0=Desligado;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 (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_INTTMS 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'.
Segue m 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 (TMSIABPTMSINTABP) que será chamado pelas rotinas acima e pelos retornos enviados pelo APB do Datasul.
- TMSA070
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. |
---|