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 | LOGIX | Módulo | WMS | ||||||||
Segmento Executor | Supply Chain | ||||||||||
Projeto1 | LOGWMS01 | IRM1 |
| ||||||||
Requisito1 |
| Subtarefa1 |
| ||||||||
Chamado2 | Não se aplica. | ||||||||||
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||||||||||
Outros | Não se aplica. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
Realizar ajustes na integração do cadastro de produtos para que seja possível enviar um cadastro para outro sistema.
Nota | ||
---|---|---|
| ||
Não será previsto o recebimento da mensagem! |
Definição da Regra de Negócio
Nota | ||
---|---|---|
| ||
A integração do cadastro de produtos será realizada considerando a versão 3.005 da mensagem Item. |
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
MAN9907 | Alteração | Processamento mensagem ITEM (versão 3.005) | |
EAIADAPTERITEM3 | Alteração | Adapter mensagem ITEM (versão 3.005) | |
EAIHELPERITEM3 | Alteração | Helper mensagem ITEM (versão 3.005) |
1 - MAN9907 - Processamento mensagem ITEM (versão 3.005)
Alterar a função man9907_executa_operacao(), incluindo após a chamada da função man9907_get_cod_cla_fisc()a chamada dafunção man9907_get_origem(). Também alterar para que antes da chamada da função EAIAdapterItem3_SendBusinessMessage() seja chamada a EAIMapper_set() para o campo "item.origem":
Bloco de código title Inclusão da chamada para setar a origem do item collapse true CALL EAIMapper_set("item.origem" ,mr_dados.origem)
- Criar a função man9907_get_origem(), utilizando como base a função manr100_leitura_origem(). Porém ao invés de retornar a origem do item esta nova função deverá setar a origem lida na variável modular mr_dados.origem (criar este campo no Record já existente).
Alterar a função man9907_executa_operacao(), incluindo após a chamada da função man9907_get_origem()a chamada dafunção man9907_get_centro_custo(). Também alterar para que antes da chamada da função EAIAdapterItem3_SendBusinessMessage() seja chamada a EAIMapper_set() para o campo "item.centro_custo":
Bloco de código title Inclusão da chamada para setar o centro de custo collapse true CALL EAIMapper_set("item.centro_custo" ,mr_dados.centro_custo)
Criar a função man9907_get_centro_custo(), utilizando como base a lógica existente no final da função manr100_atualiza_Item(), onde é preparada a variável l_CostCenterCode com a concatenação de quatro campos do cadastro do item. Deverá setar o campo mr_dados.centro_custo (criar este campo no Record já existente).
Alterar para que antes da chamada da função EAIAdapterItem3_SendBusinessMessage() seja realizada analisada a necessidade de uso de contexto:
- Chamar a função wmsr96_get_sistema_backoffice() para identificar se o WMS Logix está integrado a algum ERP externo.
- Em seguida, se a função acima retornar TRUE deverá chamar a função wmsr96_get_m_sistema_backoffice() para verificar qual é o ERP integrado;
- Se o conteúdo retornado for "DATASUL" significa que a integração com a plataforma logística está ativa e portanto deverá ser realizado o envio de mensagens considerando contextos, conforme indicado a seguir:
Chamar a função EAIMapper_set() passando como parâmetros "ContextNames" e em seguida "erp":
Bloco de código title Inclusão da chamada para setar o centro de custo collapse true CALL EAIMapper_set("ContextNames", "erp" )
- Em seguida chamar a função EAIAdapterItem3_SendBusinessMessage(), que realizará a integração de forma síncrona;
Se o retorno desta função for TRUE, chamar novamente a função EAIMapper_set() passando como parâmetros "ContextNames" e em seguida "vertical":
Bloco de código title Inclusão da chamada para setar o centro de custo collapse true CALL EAIMapper_set("ContextNames", "vertical" )
- Em seguida chamar novamente a função EAIAdapterItem3_SendBusinessMessage(), que realizará a integração desta vez de forma assíncrona.
- Se o conteúdo retornado pela função wmsr96_get_m_sistema_backoffice() for diferente de "DATASUL" deverá continua como é hoje, ou seja, sem setar o contexto e chamando a função para integração apenas uma vez, realizando o processamento de forma síncrona.
2 - EAIADAPTERITEM3 - Adapter mensagem ITEM (versão 3.005)
- Preparar este adapter para trabalhar com o conceito de contextos:
Retirar os comentários da função EAIAdapterItem3_getContextNames e prepará-la para efetuar um RETURN com o contexto default e mais os contextos "erp" e "vertical":
Bloco de código collapse true RETURN _ADVPL_eai_get_default_context() CLIPPED || “,erp,vertical”
Retirar os comentários das três linhas que estão no início da função EAIAdapterItem3_SendBusinessMessage, referente ao tratamento de contextos:
Bloco de código collapse true CALL EAIHelperItem3_inicializa_record() LET l_ContextNames = EAIMapper_getString( "ContextNames" ) CALL EAIHelperItem3_set_ContextNames( l_ContextNames )
- Ainda na função EAIAdapterItem3_SendBusinessMessage, antes de chamar a função EAIHelperItem3_set_DeliveryType_sync deverá testar o contexto que deverá ser considerado. Se o contexto não tiver sido indicado deverá continuar processando como síncrono:
- Se a variável l_ContextNamesfor igual a "verticais" chamar como assíncrona (EAIHelperItem3_set_DeliveryType_async);
- Se a variável l_ContextNamesfor igual a "erp" ou estiver nula, chamar como síncrona (EAIHelperItem3_set_DeliveryType_sync).
Alterar na função EAIAdapterItem3_LoadUpsertContent() para que no ponto onde está setando o valor para a tag StockGroupCode seja chamada a função wmsr96_get_grupo_estoque_para() para realizar o de/para do grupo de controle de estoque, caso exista.
Bloco de código title Exemplo de inclução da chamada da função indicada collapse true CALL EAIHelperItem3_set_BusinessContent_StockGroupCode(wmsr96_get_grupo_estoque_para(EAIMapper_getString("item.cod_empresa"),EAIMapper_getString("item.gru_ctr_estoq"),1))
Alterar na função EAIAdapterItem3_LoadUpsertContent() para que seja chamada a função EAIHelperItem3_set_BusinessContent_Origin() utilizando como parâmetro o retorno da função EAIMapper_getString("item.origem"), caso o retorno desta função seja diferente de nulo.
Bloco de código title Chamada da função para setar a origem do item collapse true IF EAIMapper_getString("item.origem") IS NOT NULL THEN CALL EAIHelperItem3_set_BusinessContent_Origin(EAIMapper_getString("item.origem")) END IF
Alterar na função EAIAdapterItem3_LoadUpsertContent() para que sejam chamadas as funções EAIHelperItem3_set_BusinessContent_CostCenterCode() eEAIHelperItem3_set_BusinessContent_CostCenterInternalId() utilizando como parâmetro o retorno da função EAIMapper_getString("item.centro_custo"), caso o retorno desta função seja diferente de nulo.
Bloco de código title Chamada da função para setar o centro de custo collapse true IF EAIMapper_getString("item.centro_custo") IS NOT NULL THEN CALL EAIHelperItem3_set_BusinessContent_CostCenterCode(EAIMapper_getString("item.centro_custo")) CALL EAIHelperItem3_set_BusinessContent_CostCenterInternalId(EAIMapper_getString("item.centro_custo")) END IF
3 - EAIHELPERITEM3 - Helper mensagem ITEM (versão 3.005)
- Preparar este helper para trabalhar com o conceito de contextos:
Na chamada da função _ADVPL_eai_create_message (realizada dentro da função EAIHelperItem3_cria_mensagem_negocio) incluir na passagem de parâmetros a variável _ContextNames:
Bloco de código collapse true LET g_eai_msg_negocio = _ADVPL_eai_create_message(EAIHelperItem3_get_transaction_name(), _MessageType, EAIHelperItem3_get_adapter_version(), _ContextNames)
- Ainda dentro da função EAIHelperItem3_cria_mensagem_negocio, retirar o comentário da chamada da função EAIHelperItem3_set_contextNames.
- Retirar os comentários da função EAIHelperItem3_set_ContextNames, deixando ativo o código já existente.
Fluxo do Processo
Cenários de Teste
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|