Histórico da Página
...
Durante a criação das funcionalidades do Helper, poderá ser necessário a utilização de campos específicos para algumas integrações. Assim, criou-se o conceito de CustomInformation, onde é possível enviar informações customizadas a partir de demandas como regras específicas para clientes.
Na geração dos adapters pelo programa EAI0032, são gerados sempre dois arquivos. Utilizando como exemplo a transação de unidade de medida temos os arquivos EAIAdapterUnitOfMeasure e o EAIHelperUnitOfMeasure. No arquivo EAIAdapterUnitOfMeasure é gerada a função padrão EAIAdapterUnitOfMeasure2EAIAdapterUnitOfMeasure_LoadCustomContent como mostra o código abaixo.
Bloco de código | ||||
---|---|---|---|---|
| ||||
#-----------------------------------------------------# FUNCTION EAIAdapterUnitOfMeasure2EAIAdapterUnitOfMeasure_LoadCustomContent() #-----------------------------------------------------# ### Nesse ponto serão carregados os dados customizados para a mensagem de envio. RETURN TRUE END FUNCTION |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#-----------------------------------------------------# FUNCTION EAIAdapterUnitOfMeasure2_LoadCustomContent() #-----------------------------------------------------# DEFINE l_tabela VARCHAR(100), l_index SMALLINT, l_chave VARCHAR(100), l_valor VARCHAR(100) ### Nesse ponto serão carregados os dados customizados para a mensagem de envio. LET l_tabela = "labInfo", l_index = 1, l_chave = "quanticMass", l_value = "120" CALL EAIHelperUnitOfMeasure2_set_custom_info_negocio("labInfo"l_tabela, 1l_index, "quanticMass"l_chave, "120"l_value) RETURN TRUE END FUNCTION |
Observando a chamada da A função EAIHelperUnitOfMeasure2_set_custom_info_negocio os dados passado como parâmetros estão fixos, e está função deverá ser criada no arquivo EAIHelperUnitOfMeasureque está sendo chamada logo após a recuperação dos dados, deverá ser no arquivo EAIHelperUnitOfMeasure2, como o exemplo abaixo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#---------------------------------------------------------------------------------------# FUNCTION EAIHelperUnitOfMeasure2_set_custom_info_negocio(l_tabela, l_index, l_chave, l_valor) #---------------------------------------------------------------------------------------# DEFINE l_tabela VARCHAR(100), l_index SMALLINT, l_chave VARCHAR(100), l_valor VARCHAR(100) END FUNCTION |
Dentro da função EAIHelperUnitOfMeasure2_set_custom_info_negocio o desenvolvedor fará a chamada par
Durante a criação das funcionalidades do Helper, houve a necessidade da utilização de campos específicos para algumas integrações. Assim, criou-se o conceito de CustomInformation, onde é possível enviar informações customizadas a partir de demandas como regras específicas para clientes.
Existem duas maneiras de enviar funções customizadas, que são pela BusinessMessage e pela ReturnMessage.
As funções de manutenção das informações de customização da BusinessMessage são:
...
deverá fazer a chamada da função ADVPL "_ADPVL_eai_add_custom_info", passando os parâmetros necessários para ela, como mostra o exemplo abaixo.
Bloco de código | ||||
---|---|---|---|---|
| ||||
#---------------------------------------------------------------------------------------# FUNCTION EAIHelperUnitOfMeasure2_set_custom_info_negocio(l_tabela, l_index, l_chave, l_valor) |
...
#---------------------------------------------------------------------------------------#
DEFINE l_tabela VARCHAR(100),
l_index SMALLINT,
l_chave VARCHAR(100),
l_valor VARCHAR(100)
CALL _ADPVL_eai_add_custom_info(g_eai_msg_negocio, l_tabela, l_index, l_chave, l_valor)
END FUNCTION |
A função eai_add_custom_info necessita que seja informada uma lista de parâmetros:
- Primeiro parâmetro - Mensagem (o objeto);
- Segundo parâmetro - poderá ser informado o nome da tabela onde está sendo buscado as informações, está informações serão impressas no xml;
- Terceiro parâmetro - será o informado o índice, este dado será utilizado para ordenar a exposição dos campos no arquivo xml;
- Quarto parâmetro - o nome do campo que está sendo buscado o dado;
- Quinto parâmetro - o valor do referente ao quarto parâmetro.
O Xml abaixo exemplifica o resultado de um adapter customizado
Já as funções de manutenção das informações de customização da ReturnMessage são:
- EAIHelperSalesOrder1_set_custom_info_resposta(l_tabela, l_index, l_chave, l_valor)
- EAIHelperSalesOrder1_get_custom_info_resposta(l_tabela, l_index, l_chave)
- EAIHelperSalesOrder1_get_custom_info_size_resposta(l_tabela)
Com isso, a CustomInformation ficará disponível no XML da mensagem conforme a seguir.
Exemplo no XML da Mensagem
Bloco de código | ||||
---|---|---|---|---|
| ||||
Na tag CustomInformation está as informações referente a customização do adapter de Unidade de Medida. <?xml version="1.0" encoding="UTF-8"?> <TOTVSMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xmlschema/material/events/unitofmeasure_11_1_0.xsd"> <MessageInformation version="11.1.0"> <UUID>UnitOfMe-asur-eUps-ertE-vent00000000</UUID> <Type>BusinessMessage</Type> <Transaction>UnitOfMeasure</Transaction> <StandardVersion>1.0</StandardVersion> <SourceApplication>TestApplication</SourceApplication> <Product name="ExternalApp" version="1.0"/> <GeneratedOn>2001-12-31T12:00:00.000-03:00</GeneratedOn> <DeliveryType>Sync</DeliveryType> </MessageInformation> <BusinessMessage> <BusinessEvent> <Entity>UnitOfMeasure</Entity> <Event>upsert</Event> <Identification> <key name="code">UN</key> </Identification> </BusinessEvent> <BusinessContent> <Code>UN</Code> <Description>Unidade</Description> </BusinessContent> <CustomInformation> <Table name="labInfo"> <Record> <Field name="quanticMass">120</Field> <Field name="fusionMethod">Nuclear</Field> </Record> </Table> </CustomInformation> </BusinessMessage> </TOTVSMessage> |