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
Realizar ajustes na integração do cadastro de clientes produtos para que seja possível enviar ou receber um cadastro a partir de para outro sistema.
Definição da Regra de Negócio
Nota | ||
---|---|---|
| ||
Não será previsto o recebimento da mensagem! |
Definição da Regra de Negócio
Nota | ||
---|---|---|
| ||
A integração do cadastro de clientes produtos será realizada considerando a versão 1versão 3.000 da mensagem CustomerVendor, que é a versão já utilizada atualmente pelo WMS Logix para integração com o ERP Protheus. | ||
Aviso | ||
|
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
WMSR96 | Alteração | RNL Integração Backoffice | |
VDP0815 | Alteração | Cadastro de Clientes/Fornecedores | |
VDP10000 | Alteração | Cadastro de Clientes/Fornecedores | |
VDPR239 | Alteração | RNL Integração Cadastro de Clientes/Fornecedores |
1 - WMSR96 - RNL Integração Backoffice
- Criar a função wmsr96_get_m_sistema_backoffice(), que não receberá parâmetros e apenas deverá retornar o conteúdo da variável modular m_sistema_backoffice.
2 - VDP0815 - Cadastro de Clientes/Fornecedores
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:
- Na função vdp0815_controle() antes de efetuar o OPEN WINDOW incluir uma chamada da função
- Deverá inicialmente chamar a função
- wmsr96_get_sistema_backoffice()
passando como parâmetros o código da empresa corrente e o modo de exibição "0" (zero).
Na função vdp0815_entrada() alterar paraque sejam realizadas as consistências abaixo ao passar pela razão social reduzida (campo reduzido):
Se o tipo de cadastro escolhido for Cliente e se o retorno da função wmsr96_get_m_sistema_backoffice() for igual a "DATASUL" verificar se existe algum outro cliente que possua esta mesma razão social reduzida (validar contra a tabela VDP_CLI_FORNEC_CPL filtrando onde o tipo_cadastro seja igual a "C"). Caso exista não permitir prosseguir e apresentar a mensagem "Já existe outro cliente cadastrado com esta razão social reduzida.".
Se o tipo de cadastro escolhido for Ambos e se o retorno da função wmsr96_get_m_sistema_backoffice() for igual a "DATASUL" verificar se existe algum outro cliente ou fornecedor que possua esta mesma razão social reduzida (validar contra a tabela VDP_CLI_FORNEC_CPL independente do tipo_cadastro). Caso exista não permitir prosseguir e apresentar a mensagem "Já existe outro cliente/fornecedor cadastrado com esta razão social reduzida.".
Aviso | ||
---|---|---|
| ||
Nesta especificação serão realizados apenas os tratamentos que tenham alguma relação com o cadastro de Clientes. Os tratamentos exclusivos relacionados ao cadastro de Fornecedores serão tratados em outra especificação deste mesmo projeto: ER_LOGWMS01-881_IN-11.2_Integração_Cadastro_Fornecedores |
2 - VDP10000 - Cadastro de Clientes/Fornecedores
Na função vdp10000_carrega_parametros() incluir uma chamada da função wmsr96_get_sistema_backoffice()passando como parâmetros o código da empresa corrente e o modo de exibição "0" (zero).Criar a função vdp10000_valid_virtual_nome_reduzido() onde deverão ser realizadas as consistências abaixo:
Se o tipo de cadastro escolhido for Cliente e se o retorno da função wmsr96_get_m_sistema_backoffice() for igual a "DATASUL" verificar se existe algum outro cliente que possua esta mesma razão social reduzida (validar contra a tabela VDP_CLI_FORNEC_CPL filtrando onde o tipo_cadastro seja igual a "C"). Caso exista não permitir prosseguir e apresentar a mensagem "Já existe outro cliente cadastrado com esta razão social reduzida.".
Se o tipo de cadastro escolhido for Ambos e se o retorno da função wmsr96_get_m_sistema_backoffice() for igual a "DATASUL" verificar se existe algum outro cliente ou fornecedor que possua esta mesma razão social reduzida (validar contra a tabela VDP_CLI_FORNEC_CPL independente do tipo_cadastro). Caso exista não permitir prosseguir e apresentar a mensagem "Já existe outro cliente/fornecedor cadastrado com esta razão social reduzida.".
Aviso | ||
---|---|---|
| ||
Nesta especificação serão realizados apenas os tratamentos que tenham alguma relação com o cadastro de Clientes. Os tratamentos exclusivos relacionados ao cadastro de Fornecedores serão tratados em outra especificação deste mesmo projeto: ER_LOGWMS01-881_IN-11.2_Integração_Cadastro_Fornecedores |
3 - VDPR239 - RNL Integração Cadastro de Clientes/Fornecedores
No início da função vdpr239_prepara_envio_mensagem_eai() incluir uma chamada da função wmsr96_get_sistema_backoffice()passando como parâmetros o código da empresa corrente e o modo de exibição conforme a variável l_modo_exibicao_msg.
Na função vdpr239_atualiza_business_content_Customer(), na linha onde está chamando a função adp10000_set_BusinessContent_Address_Country_Code()deverá alterar para passar o retorno da função vdpr239_trata_cod_pais_bacen(), enviando para esta função a variável já utlizada.
Bloco de código | ||
---|---|---|
| ||
#Alterar de:
CALL adp10000_set_BusinessContent_Address_Country_Code(l_cod_pais)
#Para:
CALL adp10000_set_BusinessContent_Address_Country_Code(vdpr239_trata_cod_pais_bacen(l_cod_pais)) |
Bloco de código | ||
---|---|---|
| ||
#Alterar de:
CALL adp10000_set_BusinessContent_ShippingAddress_Country_Code(l_cod_pais)
#Para:
CALL adp10000_set_BusinessContent_ShippingAddress_Country_Code(vdpr239_trata_cod_pais_bacen(l_cod_pais)) |
Ainda na função vdpr239_atualiza_business_content_Customer(), há duas linhas onde está chamando a função adp10000_set_BusinessContent_BillingInformation_Address_Country_Code(), alterar para passar o retorno da função vdpr239_trata_cod_pais_bacen(), enviando para esta função a variável já utlizada.
Bloco de código | ||
---|---|---|
| ||
#Alterar de:
CALL adp10000_set_BusinessContent_BillingInformation_Address_Country_Code(l_cod_pais)
#Para:
CALL adp10000_set_BusinessContent_BillingInformation_Address_Country_Code(vdpr239_trata_cod_pais_bacen(l_cod_pais)) |
Ainda na função vdpr239_valida_BusinessContent(), alterar o ponto onde a função vdpr239_verifica_cnpj_duplicado() é chamada para que seja enviado mais um parâmetro após o CNPJ/CPF, que será a Inscrição Estadual, utilizando a variável m_ins_estadual.
Alterar a função vdpr239_verifica_cnpj_duplicado() para receber mais um parâmetro após o CNPJ/CPF, que será a Inscrição Estadual. Definir a variável conforme o campo ins_estadual da tabela CLIENTES.
Na função vdpr239_verifica_cnpj_duplicado(), antes de buscar o código do cliente pelo código externo deverá verificar se o retorno da função wmsr96_get_m_sistema_backoffice() é igual a "DATASUL", caso afirmativo deverá buscar o código do cliente na tabela CLIENTES filtrando pelo CNPJ/CPF e Inscrição Estadual recebidos por parâmetro, ao invés de executar a lógica com base na tabela VDP_CLI_PARAMETRO.
Nota | ||
---|---|---|
| ||
A Inscrição Estadual é um campo opcional no cadastro, desta forma o mesmo pode estar com conteúdo NULO. Assim sendo, considerar esta condição no momento de efetuar a validação referente a este campo. |
Bloco de código | ||
---|---|---|
| ||
LET l_cod_cliente = NULL
IF wmsr96_get_m_sistema_backoffice() = 'DATASUL' THEN
IF l_ins_estadual IS NOT NULL THEN
WHENEVER ERROR CONTINUE
SELECT MAX(cod_cliente)
INTO l_cod_cliente
FROM clientes
WHERE num_cgc_cpf = l_cnpj_cpf
AND ins_estadual = l_ins_estadual
WHENEVER ERROR STOP
ELSE
WHENEVER ERROR CONTINUE
SELECT MAX(cod_cliente)
INTO l_cod_cliente
FROM clientes
WHERE num_cgc_cpf = l_cnpj_cpf
AND ins_estadual IS NULL
WHENEVER ERROR STOP
END IF
IF sqlca.sqlcode < 0 THEN
CALL log0030_processa_err_sql("SELECT","CLIENTES",1)
RETURN FALSE
ELSE
IF sqlca.sqlcode = NOTFOUND OR
l_cod_cliente IS NULL THEN
LET l_cod_cliente = "?"
END IF
END IF
ELSE
WHENEVER ERROR CONTINUE
SELECT MAX(vdp_cli_parametro.cliente)
INTO l_cod_cliente
FROM vdp_cli_parametro
WHERE vdp_cli_parametro.parametro = 'cod_externo_intg_eai'
AND vdp_cli_parametro.texto_parametro = l_cod_externo
WHENEVER ERROR STOP
IF sqlca.sqlcode < 0 THEN
CALL log0030_processa_err_sql("SELECT","VDP_CLI_PARAMETRO",1)
RETURN FALSE
ELSE
IF sqlca.sqlcode = NOTFOUND OR
l_cod_cliente IS NULL THEN
LET l_cod_cliente = "?"
END IF
END IF
END IF |
Na função vdpr239_atualiza_clientes(), quando for para efetuar o de/para de códigos, antes de buscar o código do cliente pelo código externo deverá verificar se o retorno da função wmsr96_get_m_sistema_backoffice() é igual a "DATASUL", caso afirmativo deverá buscar o código do cliente na tabela CLIENTES filtrando pelo CNPJ/CPF e Inscrição Estadual recebidos por parâmetro, ao invés de executar a lógica com base na tabela VDP_CLI_PARAMETRO.
Nota | ||
---|---|---|
| ||
A Inscrição Estadual é um campo opcional no cadastro, desta forma o mesmo pode estar com conteúdo NULO. Assim sendo, considerar esta condição no momento de efetuar a validação referente a este campo. |
Bloco de código | ||
---|---|---|
| ||
IF l_busca_de_para THEN
INITIALIZE m_cod_cliente TO NULL
IF wmsr96_get_m_sistema_backoffice() = 'DATASUL' THEN
IF m_ins_estadual IS NOT NULL THEN
WHENEVER ERROR CONTINUE
SELECT MAX(cod_cliente)
INTO m_cod_cliente
FROM clientes
WHERE num_cgc_cpf = m_cnpj_cpf
AND ins_estadual = m_ins_estadual
WHENEVER ERROR STOP
ELSE
WHENEVER ERROR CONTINUE
SELECT MAX(cod_cliente)
INTO m_cod_cliente
FROM clientes
WHERE num_cgc_cpf = m_cnpj_cpf
AND ins_estadual IS NULL
WHENEVER ERROR STOP
END IF
IF sqlca.sqlcode < 0 THEN
CALL log0030_processa_err_sql("SELECT","CLIENTES",1)
RETURN FALSE
END IF
ELSE
WHENEVER ERROR CONTINUE
SELECT MAX(cliente)
INTO m_cod_cliente
FROM vdp_cli_parametro
WHERE parametro = 'cod_externo_intg_eai'
AND texto_parametro = _BusinessContent._Code
WHENEVER ERROR STOP
IF sqlca.sqlcode < 0 THEN
CALL log0030_processa_err_sql("SELECT","VDP_CLI_PARAMETRO",1)
RETURN FALSE
END IF
END IF
IF sqlca.sqlcode = NOTFOUND OR
m_cod_cliente IS NULL THEN
...
...
|
Criar uma função chamada vdpr239_valida_BusinessContent_exclusao(), que deverá ter as validações abaixo (utilizar como base a função vdpr239_valida_BusinessContent(), que já possui estas lógicas):
Na função vdpr239_recebe_mensagem_eai() há uma verificação do tipo da mensagem, caso seja UPSERTé chamada a função vdpr239_valida_BusinessContent()e em seguida são realizadas as lógicas para atualização do cadastro de cliente/fornecedor. No ELSE desta verificação são aplicadas as lógicas para exclusão do cliente/fornecedor, alterar para que antes de entrar nestas lógicas seja chamada a função vdpr239_valida_BusinessContent_exclusao().
Na função vdpr239_exclui_cliente(), antes de buscar o código do cliente pelo código externo deverá verificar se o retorno da função wmsr96_get_m_sistema_backoffice() é igual a "DATASUL", caso afirmativo deverá buscar o código do cliente na tabela CLIENTES filtrando pelo CNPJ/CPF e Inscrição Estadual recebidos por parâmetro, ao invés de executar a lógica com base na tabela VDP_CLI_PARAMETRO.
Nota | ||
---|---|---|
| ||
Inscrição Estadual é um campo opcional no cadastro, desta forma o mesmo pode estar com conteúdo NULO. Assim sendo, considerar esta condição no momento de efetuar a validação referente a este campo. |
Bloco de código | ||
---|---|---|
| ||
IF wmsr96_get_m_sistema_backoffice() = 'DATASUL' THEN
IF m_ins_estadual IS NOT NULL THEN
WHENEVER ERROR CONTINUE
SELECT MAX(cod_cliente)
INTO m_cod_cliente
FROM clientes
WHERE num_cgc_cpf = m_cnpj_cpf
AND ins_estadual = m_ins_estadual
WHENEVER ERROR STOP
ELSE
WHENEVER ERROR CONTINUE
SELECT MAX(cod_cliente)
INTO m_cod_cliente
FROM clientes
WHERE num_cgc_cpf = m_cnpj_cpf
AND ins_estadual IS NULL
WHENEVER ERROR STOP
END IF
IF sqlca.sqlcode <> 0 AND sqlca.sqlcode <> NOTFOUND THEN
CALL log0030_processa_err_sql("SELECT","clientes",1)
RETURN FALSE
END IF
ELSE
LET m_cod_cliente = NULL
WHENEVER ERROR CONTINUE
SELECT cliente
INTO m_cod_cliente
FROM vdp_cli_parametro
WHERE parametro = 'cod_externo_intg_eai'
AND texto_parametro = _BusinessContent._Code
WHENEVER ERROR STOP
IF sqlca.sqlcode <> 0 AND sqlca.sqlcode <> NOTFOUND THEN
CALL log0030_processa_err_sql("SELECT","vdp_cli_parametro",1)
RETURN FALSE
END IF
END IF |
Alterar a função vdpr239_atualiza_vdp_cli_parametro() para que logo no início verifique, caso o código do parâmetro enviado seja igual a "cod_externo_intg_eai", se o retorno da função wmsr96_get_m_sistema_backoffice() é igual a "DATASUL". Caso afirmativo a função já deverá retornar TRUE sem efetuar os procedimentos seguintes, pois quando esta integração está ativa não deve ser atualizado o De/Para de códigos.
Bloco de código | ||
---|---|---|
| ||
IF l_parametro = 'cod_externo_intg_eai' AND
wmsr96_get_m_sistema_backoffice() = 'DATASUL' THEN
RETURN TRUE
END IF |
Fluxo do Processo
- 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.
- 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().
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
Cenários de Teste
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|