Páginas filhas
  • 6 - Configuração Adapters SFA

Cadastro de Adapters:

         O cadastro de adapters são rotinas responsáveis por realizar o processamento das mensagens enviadas e recebidas, possibilitando a inclusão, alteração e exclusão do adapter no Protheus.


  Pré requisitos:

  • Para realizar o cadastro/configuração do adapter  é necessário ter uma ROTA cadastrada, para cadastrá-la acesse o link: Cadastro de Rotas EAI

  1. No Configurador (SIFACFG), acesse Ambientes/Schedule/Adapter E.a.i

  2. Efetue a Inclusão de  uma nova rotina  para os Adapters do sistema Protheus.

    Configure a rotina do Adapter, de acordo com  a tabela abaixo que já foram pré estabelecidos  para a integração:

Mensagem única: Sim
Rotina: Nome do adapter 
Mensagem: Nome da mensagem única que o Adapter EAI  espera receber.
Descrição: Identificação da mensagem.
Envia: SIM (se envia a informação para o TOTVS SFA) ou NÃO ( Se não envia nenhuma informação deste adapter para o TOTVS SFA).
Recebe: SIM (se recebe a informação do TOTVS SFA) ou NÃO ( Se não recebe nenhuma informação deste adapter do TOTVS SFA).
Método: Síncrono/Assincrono
Operação: Todas
Canal de Envio: Para TOTVS SFA =  3-PAD.APP

Formato: JSON 

        Roteamento de mensagens: Informar a rota criada no cadastro de rota e se envia de acordo com a integração (ver tabela abaixo).


Exemplo de Cadastro:


Efetue a inclusão dos Adapters, conforme tabela abaixo: 

AdapterRotina ProtheusMensagem ÚnicaMensagem¹Descrição¹EnviaRecebeMétodo ProtheusOperaçãoCondição de envioCanal de EnvioVersãoAliasFormatoRota *
Whois Mensagem ÚnicaAPCFG0601 - SimWHOISWHOIS MENSAGEM UNICASimSimSíncronoTodas
2 - EAI - REST1.000
XML
Cadastro de filiaisAPCFG2301 - SimBRANCHFILIAISSimNãoAssíncronoTodas
3 – EAI – PAD. APP.2.001
JSONTOTVSCRM
Cadastro Unidade de MedidaQIEA0301 - SimUNITOFMEASUREUNIDADE DE MEDIDASimNãoAssíncronoTodas
3 – EAI – PAD. APP.2.002
JSONTOTVSCRM
Cadastro Grupo de ProdutosMATA0351 - SimFAMILYGRUPO DE PRODUTOSSimNãoAssíncronoTodas
3 – EAI – PAD. APP.2.002
JSONTOTVSCRM
Cadastro Transportadora ²MATA0501 - SimCARRIERTRANSPORTADORASimNãoAssíncronoTodas
3 – EAI – PAD. APP.1.000
XMLTOTVSCRM
Cadastro Condição de PagamentoMATA3601 - SimMATA360CONDICAO DE PAGAMENTOSimNãoAssíncronoTodas
3 – EAI – PAD. APP.2.000
JSONTOTVSCRM
Cadasto de VendedorMATA0401 - SimSELLERVENDEDORSimNãoAssíncronoTodas
3 – EAI – PAD. APP.2.001
JSONTOTVSCRM
Cadastro de ProdutoMATA0101 - SimITEMPRODUTOSimSimAssíncronoTodas
3 – EAI – PAD. APP.4.005
JSONTOTVSCRM
Cadastro de Tabela de PreçoOMSA0101 - SimPRICELISTHEADERITEMTABELA DE PRECOSimNãoAssíncronoTodas
3 – EAI – PAD. APP.2.001
JSONTOTVSCRM
Cadastro de Cliente/FornecedorMATA0301 - SimCUSTOMERVENDORCLIENTE/FORNECEDORSimSimAssíncronoTodas
3 – EAI – PAD. APP.2.005
JSONTOTVSCRM
Pedido de Venda FaturamentoMATA4101 - SimORDERPEDIDO DE VENDASimSimAssíncronoTodas
3 – EAI – PAD. APP.4.003
JSONTOTVSCRM
Cadastro de Cotação de MoedaMATA0901 - SimCURRENCYQUOTECOTACAO DE MOEDASimNãoAssíncronoTodas
3 – EAI – PAD. APP.1.001
JSONTOTVSCRM
Saldo de ProdutoMATA2251 - SimSTOCKLEVELSALDO DE ESTOQUESimNãoAssíncronoTodas
3 – EAI – PAD. APP.4.003SB2JSONTOTVSCRM
Rastreabilidade de Pedido ³MATA410B1 - SimDOCUMENTTRACEABILITYORDERRASTREABILIDADE DE PEDIDOSimNãoAssíncronoTodasRTRIM(SC5->C5_ORIGEM) = 'MSGEAI'3 – EAI – PAD. APP.4.003
JSONTOTVSCRM

Importante:

* - Informar a Rota de acordo com o Cadastro de Rotas EAI.

1 - Mensagem e Descrição precisa ser colocado exatamente como está no quadro

2 – Recomendado na configuração deixar tanto o “Envia” como o “Recebe” com “Não”, pois o cliente está em produção e existe uma sequência correta de cargas antes que se faça a integração de Vendedor, Produto e Cliente, deixando já ativo o diagrama começara a enviar para a integração estes cadastros com erro. 

3 - Mensagem é gerada na Liberação do Pedido, para gerar a mensagem no Faturamento necessário utilizar o ponto de entrada SF2460I.PRW e na transmissão da nota SPDNFDANF.prw, segue os dois abaixo. (Caso o PE já esteja sendo utilizado acrescentar o código do PE entrada abaixo dentro do PE já utilizado)

Ponto de Entrada PI_SF2460I.PRW

//-------------------------------------------------------------------
/*/{Protheus.doc} SF2460I
Ponto de entrada para enviar a mensagem documenttraceability na emissão da nota

@author  Alessandro Afonso
@version P12
@since   02/02/2021
/*/
//-------------------------------------------------------------------
User Function SF2460I()
	Local aAreaSF2 := SF2->(GetArea())
	Local aAreaSD2 := SD2->(GetArea())
	Local aAreaSC5 := SC5->(GetArea())
	
	Local sf2doc   := SF2->F2_DOC   //ParamIxb[1]
	Local sf2serie := SF2->F2_SERIE //ParamIxb[2]
	
	SF2->(DbSetOrder(1))

	If SF2->(DbSeek(xFilial("SF2")+sf2doc+sf2serie ) )
		DbSelectArea("SD2")
		SD2->(DbSetOrder(3)) //D2_FILIAL, D2_DOC, D2_SERIE
		If SD2->(DbSeek(xFilial("SD2")+sf2doc+sf2serie ) )

			DbSelectArea("SC5")
			SC5->(DbSetOrder(1)) //C5_FILIAL+C5_NUM
			If SC5->(DbSeek(xFilial("SC5")+SD2->D2_PEDIDO ) )

				//Envio rastreabilidade de pedidos
				If FWHasEAI("MATA410B",.T.,,.T.) .And. Alltrim(SC5->C5_ORIGEM) == 'MSGEAI'

					//Verifica se é um pedido gerado pelo Loja e atualiza status do pedido (C5_STATUS)
					If ExistFunc("LjxjAtStTr") .And. !Empty(SC5->C5_ORCRES)
						LjxjAtStTr()
					EndIf

					FwIntegDef("MATA410B")
				EndIf
			EndIf
		EndIf
	EndIf
	
	RestArea(aAreaSF2)
	RestArea(aAreaSD2)
	RestArea(aAreaSC5)
	aSize(aAreaSF2,0)
	aSize(aAreaSD2,0)
	aSize(aAreaSC5,0)
	
Return Nil



Ponto de Entrada PI_SPDNFDANF.prw

#INCLUDE "PROTHEUS.CH"
//-------------------------------------------------------------------
/*/{Protheus.doc} SPDNFDANF
Ponto de entrada para enviar a mensagem documenttraceability na impressão da danfe.

@author  Alessandro Afonso
@version P12
@since   02/02/2021
/*/
//-------------------------------------------------------------------
User Function SPDNFDANF() 
	Local aAreaSF2 := SF2->(GetArea())
	Local aAreaSD2 := SD2->(GetArea())
	Local aAreaSC5 := SC5->(GetArea())

	Local sf2doc   := ParamIxb[1]
	Local sf2serie := ParamIxb[2]
    
	SF2->(DbSetOrder(1))

	If SF2->(DbSeek(xFilial("SF2")+sf2doc+sf2serie ) )
		DbSelectArea("SD2")
		SD2->(DbSetOrder(3)) //D2_FILIAL, D2_DOC, D2_SERIE
		If SD2->(DbSeek(xFilial("SD2")+sf2doc+sf2serie ) )

			DbSelectArea("SC5")
			SC5->(DbSetOrder(1)) //C5_FILIAL+C5_NUM
			If SC5->(DbSeek(xFilial("SC5")+SD2->D2_PEDIDO ) )

				//Envio rastreabilidade de pedidos
				If FWHasEAI("MATA410B",.T.,,.T.) .And. Alltrim(SC5->C5_ORIGEM) == 'MSGEAI'

					//Verifica se é um pedido gerado pelo Loja e atualiza status do pedido (C5_STATUS)
					If ExistFunc("LjxjAtStTr") .And. !Empty(SC5->C5_ORCRES)
						LjxjAtStTr()
					EndIf

					FwIntegDef("MATA410B")
				EndIf
			EndIf
		EndIf
	EndIf
	
	RestArea(aAreaSF2)
	RestArea(aAreaSD2)
	RestArea(aAreaSC5)
	aSize(aAreaSF2,0)
	aSize(aAreaSD2,0)
	aSize(aAreaSC5,0)
 
		  

Return





  • Sem rótulos