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 | LOGIXLogix | Módulo | WMS | ||||||||
Segmento Executor | Supply Chain | ||||||||||
Projeto1 | LOGWMS01 | IRM1 |
| ||||||||
Requisito1 |
| Subtarefa1 |
| ||||||||
Chamado2 | Não se aplica. | ||||||||||
País | ( X ) Brasil ( ) Argentina ( ) Mexico México ( ) Chile ( ) Paraguai ( ) EquadorEquador ( ) USA ( ) Colombia Colômbia ( ) Outro _____________. | ||||||||||
Outros | Não se aplica. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
****** VERIFICAR AJUSTES NO CADASTRO DE ITENS *********
=> PERMITIR INFORMAR O CÓDIGO DO ITEM (QUE HOJE É SEQUENCIAL), IGUAL AO TRATAMENTO DE INDÚSTRIA.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 |
WMSR96 | Alteração | RNL Regras Integração WMS | |
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 - WMSR96 - RNL Regras Integração WMS
- Criar novos parâmetros por empresa (LOG00086) para indicar os produtos/módulos com os quais o WMS Logix está integrado.
- O parâmetro sistema_backoffice_integracao continuará sendo utilizado para determinar o ERP ao qual o WMS está integrado.
Parâmetro: wms_integrado_tms_protheus
Descrição: "Integrado ao TMS (Transportation Management System) do Protheus?"
- Help: "Indica se o WMS está integrado ao TMS Protheus."
Rotina: 444 - INTEGRAÇÃO COM OUTROS SISTEMAS
Tipo Conteúdo: F - Flag
Permitir nulo: N - Não
Case sensitive: 1 - Somente caracteres maiúsculos
Efetuar replicação: N - Não
Replicação opcional: N - Não
Cliente: 105 - TOTVS
Valor padrão: N - Não
Comentário rodapé: "S - Sim ; N - Não"
Valores possíveis: (S)im, (N)ão
- Parâmetro: wms_integrado_cockpit
Descrição: "Integrado ao Cockpit Logístico?"
- Help: "Indica se o WMS está integrado ao Cockpit Logístico."
Rotina: 444 - INTEGRAÇÃO COM OUTROS SISTEMAS
Tipo Conteúdo: F - Flag
Permitir nulo: N - Não
Case sensitive: 1 - Somente caracteres maiúsculos
Efetuar replicação: N - Não
Replicação opcional: N - Não
Cliente: 105 - TOTVS
Valor padrão: N - Não
Comentário rodapé: "S - Sim ; N - Não"
Valores possíveis: (S)im, (N)ão
- Criar a função wmsr96_get_integracoes(), que deverá receber como parâmetros o código da empresa e o modo de exibição. Regras:
- Deverá inicialmente chamar a função wmsr96_get_sistema_backoffice() para buscar o sistema ERP ao qual o WMS está integrado, atualizando a variável modular m_sistema_backoffice.
- Em seguida deverá efetuar a leitura do novo parâmetro wms_integrado_tms_protheus, alimentando também uma variável modular para que o seu conteúdo possa ser utilizado em processamentos seguintes. Contudo, somente deverá reler o parâmetro se a variável modular estiver nula ou se o código da empresa para o qual foi solicitada a leitura deste parâmetro seja diferente da leitura anterior.
- Da mesma forma, também deverá efetuar a leitura do novo parâmetro wms_integrado_cockpit, alimentando outra variável modular. Deverá também somente reler o parâmetro se a variável modular estiver nula ou se o código da empresa para o qual foi solicitada a leitura deste parâmetro seja diferente da leitura anterior.
- Esta função deverá apenas alimentar as variáveis modulares, não haverá valor de retorno.
- Deverá inicialmente chamar a função wmsr96_get_sistema_backoffice() para buscar o sistema ERP ao qual o WMS está integrado, atualizando a variável modular m_sistema_backoffice.
- Criar a função wmsr96_get_integracao_erp(), que deverá receber como parâmetros o código da empresa e o modo de exibição. Regras:
- Deverá inicialmente chamar a função wmsr96_get_integracoes().
- Em seguida, deverá retornar o valor da variável modular m_sistema_backoffice.
- Criar a função wmsr96_get_integracao_tms_protheus(), que deverá receber como parâmetros o código da empresa e o modo de exibição. Regras:
- Deverá inicialmente chamar a função wmsr96_get_integracoes().
- Em seguida, deverá retornar o valor da variável modular indicada acima, ao ler o parâmetro wms_integrado_tms_protheus.
- Criar a função wmsr96_get_integracao_cockpit(), que deverá receber como parâmetros o código da empresa e o modo de exibição. Regras:
- Deverá inicialmente chamar a função wmsr96_get_integracoes().
- Em seguida, deverá retornar o valor da variável modular indicada acima, ao ler o parâmetro wms_integrado_cockpit.
2 - 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
Alterar também 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 as funções wmsr96_get_integracao_erp(),
- wmsr96_get_integracao_tms_protheus() e wmsr96_get_integracao_cockpit(), armazenando o retorno de cada função em uma variável diferente.
- Se retorno da função wmsr96_get_integracao_erp() for "DATASUL" e o retorno de alguma das outras duas funções for igual a "S" significa que há mais de um produto integrado 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 Setar o contexto "erp" 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 Setar o contexto "vertical" 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 retorno da função wmsr96_get_integracao_erp() for diferente de "DATASUL" ou o retorno das outras duas funções for igual a "N" das deverá continuar 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.
3 - 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
4 - 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. |
---|