Páginas filhas
  • ER LOGWMS01-883 IN-11.4 Integração Cadastro Produtos

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

 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

Jira
serverJIRA Produção
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyLOGWMS01-545

Requisito1

Jira
serverJIRA Produção
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyLOGWMS01-883

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
titleAtenção!

Não será previsto o recebimento da mensagem!


Definição da Regra de Negócio


 

Nota
titleAtenção!

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

MAN9907Alteração Processamento mensagem ITEM (versão 3.005)
EAIADAPTERITEM3Alteração Adapter mensagem ITEM (versão 3.005)
EAIHELPERITEM3Alteraçã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
    titleInclusão da chamada para setar a origem do item
    collapsetrue
    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
    titleInclusão da chamada para setar o centro de custo
    collapsetrue
    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:

    1. Chamar a função wmsr96_get_sistema_backoffice() para identificar se o WMS Logix está integrado a algum ERP externo.
    2. 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;
    3. 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:
      1. Chamar a função EAIMapper_set() passando como parâmetros "ContextNames" e em seguida "erp":

        Bloco de código
        titleInclusão da chamada para setar o centro de custo
        collapsetrue
        CALL EAIMapper_set("ContextNames", "erp" )
      2. Em seguida chamar a função EAIAdapterItem3_SendBusinessMessage(), que realizará a integração de forma síncrona;
      3. 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
        titleInclusão da chamada para setar o centro de custo
        collapsetrue
        CALL EAIMapper_set("ContextNames", "vertical" )
      4. Em seguida chamar novamente a função EAIAdapterItem3_SendBusinessMessage(), que realizará a integração desta vez de forma assíncrona.

    4. 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:
    1. 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
      collapsetrue
      RETURN _ADVPL_eai_get_default_context() CLIPPED || “,erp,vertical”
    2.  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
      collapsetrue
      CALL EAIHelperItem3_inicializa_record()
      LET l_ContextNames = EAIMapper_getString( "ContextNames" )
      CALL EAIHelperItem3_set_ContextNames( l_ContextNames )
    3. 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:
      1. Se a variável l_ContextNamesfor igual a "verticais" chamar como assíncrona (EAIHelperItem3_set_DeliveryType_async);
      2. 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
    titleExemplo de inclução da chamada da função indicada
    collapsetrue
    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
    titleChamada da função para setar a origem do item
    collapsetrue
    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
    titleChamada da função para setar o centro de custo
    collapsetrue
    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:
    1. 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
      collapsetrue
      LET g_eai_msg_negocio = _ADVPL_eai_create_message(EAIHelperItem3_get_transaction_name(), _MessageType, EAIHelperItem3_get_adapter_version(), _ContextNames)
    2. Ainda dentro da função EAIHelperItem3_cria_mensagem_negocio, retirar o comentário da chamada da função EAIHelperItem3_set_contextNames.

    3. 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.