Histórico da Página
...
Durante a criação das funcionalidades do Helper, houve poderá ser necessário 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:
...
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 EAIAdapterUnitOfMeasure_LoadCustomContent como mostra o código abaixo.
Bloco de código | ||||
---|---|---|---|---|
| ||||
#-----------------------------------------------------#
FUNCTION EAIAdapterUnitOfMeasure_LoadCustomContent()
#-----------------------------------------------------#
### Nesse ponto serão carregados os dados customizados para a mensagem de envio.
RETURN TRUE
END FUNCTION |
Na função EAIAdapterUnitOfMeasure2_LoadCustomContent, o desenvolvedor poderá recuperar as informações que serão passadas para Helper, realizando a leitura de uma tabela específica. Abaixo um trecho do código exemplificando esta chamada.
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(l_tabela, l_index, l_chave, l_ |
...
value)
RETURN TRUE
END FUNCTION |
A função EAIHelperUnitOfMeasure2_set_custom_info_negocio que 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 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 |
Já as funções de manutenção das informações de customização da ReturnMessage são:
...
_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 customizadoCom 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> |