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 a integração dos endereços de entrega dos clientes. Será previsto o envio e o recebimento destas informações.
Definição da Regra de Negócio
Aviso | ||
---|---|---|
| ||
|
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
EAIAdapterCustomerShippingAddress1 | Criação | Adapter da mensagem CustomerShippingAddress | |
EAIHelperCustomerShippingAddress1 | Criação | Helper da mensagem CustomerShippingAddress | |
VDPR248 | Criação | Preparação de informações para integração de locais de entrega | |
VDP0815 | Alteração | Manutenção do cadastro de cliente/fornecedor | |
VDP0834 | Alteração | Manutenção dos endereços de entrega do cliente | |
VDP10000 | Alteração | Manutenção do cadastro de cliente/fornecedor | |
VDP90079 | Alteração | Manutenção dos endereços de entrega do cliente | |
VDP0831 | Alteração | Manutenção da distribuição geográfica do cliente | |
VDP0833 | Alteração | Manutenção dos endereços de cobrança do cliente | |
VDP90065 | Alteração | Carga inicial de clientes | |
VDP90078 | Alteração | Manutenção dos endereços de cobrança do cliente | |
WMSR62 | Alteração | Cadastra automático de cliente |
Aviso | ||||||
---|---|---|---|---|---|---|
| ||||||
Os fontes EAIAdapterCustomerShippingAddress1 e EAIHelperCustomerShippingAddress1 devem ser gerados utilizando o programa EAI0032, conforme orientações para construção de adapters disponível no TDN (ver link 2. Geração Automática de Adapters). Ao gerar deixar desmarcada a opção "Gerar arquivo Master?". Para que os fontes possam ser gerados será necessário utilizar o XSD da mensagem CustomerShippingAddress:
|
Dica | ||
---|---|---|
| ||
Verificar as informações de cada página deste link: 3. Construção do Adapter |
VDPR248 - Preparação de informações para integração de locais de entrega
- Criar a função vdpr248_EAI_CustomerShippingAddress_envia().
- Parâmetros:
- Operação: "IN" para inclusão; "MO" para modificação; "EX" para exclusão.
- Cliente: Código do cliente.
- Sequência: Sequência do endereço de entrega.
- Modo de exibição: "0" (zero) para ONLINE ou "1" (um) para BATCH.
- Retorno:
- Status do processamento: TRUE caso tenha ocorrido com sucesso ou FALSE em caso de erro.
- Regras:
- Validar se o tipo de operação enviado por parâmetro é válido. Caso negativo gerar a mensagem "Tipo de operação inválida" e retornar FALSE.
- Validar se foram enviados os parâmetros de cliente e sequência. Se um destes parâmetros estiver nulo gerar a mensagem "Informe o cliente e a sequência do endereço de entrega." e retornar FALSE.
- Verificar se existe a função EAIHelperCustomerShippingAddress1_esta_configurado_para_envio() no repositório. Se não existir deverá retornar TRUE neste ponto, não efetuando os procedimentos seguintes.
- Se existir esta função a mesma deverá ser invocada, caso retorne FALSE significa que a integração da mensagem CustomerShippingAddress não está habilitada e neste caso deverá retornar TRUE neste ponto, não efetuando os procedimentos seguintes.
- A partir deste ponto serão executadas as lógicas para acionar a função de integração da mensagem.
- Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "S"deverá ser lida a tabela cli_end_det_cobranca_entregautilizando o código do cliente e sequência recebidos por parâmetro e onde o campo tip_endereco seja igual a "E".
- Ler também a tabela cli_end_entutilizando o código do cliente e sequência recebidos por parâmetro.
- Chamar a função EAIMapper_clear().
- Chamar a função EAIHelperCustomerVendor2_set_MessageType()passando como parâmetro "upsert" caso o parâmetro de tipo de operação seja igual a "IN" ou "MO", ou passando "delete" caso o tipo de operação seja "EX".
Chamar a função EAIMapper_set() para cada uma das informações abaixo:
- Parâmetros:
Campo | Conteúdo a utilizar |
---|---|
cli_end_det_cobranca_entrega.empresa | p_cod_empresa |
cli_end_det_cobranca_entrega.cliente | Código do cliente recebido por parâmetro |
cli_end_det_cobranca_entrega.num_cgc_cpf | Campo clientes.num_cgc_cpf |
cli_end_det_cobranca_entrega.ins_estadual | Campo clientes.estadual |
cli_end_det_cobranca_entrega.sequencia | Sequência do local de entrega recebido por parâmetro |
cli_end_det_cobranca_entrega.tip_logradouro | Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "S" considerar o campo cli_end_det_cobranca_entrega.tip_logradouro. Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "N" considerar NULO. |
cli_end_det_cobranca_entrega.logradouro | Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "S" considerar o campo cli_end_det_cobranca_entrega.logradouro. Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "N" considerar o campo cli_end_ent.end_entrega. |
cli_end_det_cobranca_entrega.num_iden_lograd | Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "S" considerar o campo cli_end_det_cobranca_entrega.num_iden_lograd. Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "N" considerar NULO. |
cli_end_det_cobranca_entrega.complemento_endereco | Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "S" considerar o campo cli_end_det_cobranca_entrega.complemento_endereco. Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "N" considerar NULO. |
cli_end_det_cobranca_entrega.endereco_completo | Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "S" considerar o campo cli_end_det_cobranca_entrega.endereco_completo. Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "N" considerar o campo cli_end_ent.end_entrega. |
cli_end_det_cobranca_entrega.bairro_cobr_entga | Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "S" considerar o campo cli_end_det_cobranca_entrega.bairro_cobr_entga. Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "N" considerar o campo cli_end_ent.den_bairro. |
cli_end_det_cobranca_entrega.cidade | Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "S" considerar o campo clientes.cod_cidade. Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "N" considerar o campo cli_end_ent.cod_cidade.
|
cli_end_det_cobranca_entrega.den_cidade | Campo cidades.den_cidade |
cli_end_det_cobranca_entrega.cod_uni_feder | Deverá utilizar o campo cidades.cod_uni_feder como base, aplicando lógica semelhante a existente na função vdpr239_retorna_endereco_cliente() para clientes do exterior. |
cli_end_det_cobranca_entrega.den_uni_feder | Campo uni_feder.den_uni_feder |
cli_end_det_cobranca_entrega.cod_pais | Deverá utilizar o campo uni_feder.cod_pais como base, aplicando lógica semelhante a existente na função vdpr239_retorna_endereco_cliente() para clientes do exterior. Além disso também deverá aplicar lógica semelhante à existente na função vdpr239_trata_cod_pais_bacen() para buscar o código do país BACEN, caso o mesmo exista no cadastro de países. |
cli_end_det_cobranca_entrega.den_pais | Campo uni_feder.den_pais |
cli_end_det_cobranca_entrega.cep | Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "S" considerar o campo clientes.cod_cep. Se o parâmetro "vdp_utiliza_tela_endereco" for igual a "N" considerar o campo cli_end_ent.cod_cep. |
- Chamar a função EAIAdapterCustomerVendor2_SendBusinessMessage() enviando como parâmetro "upsert" ou "delete", conforme o tipo de operação recebido por parâmetro.
- O status de retorno da função vdpr248_EAI_CustomerShippingAddress_envia() deverá ser conforme o processamento da integração, retornado a partir da chamada da função EAIAdapterCustomerVendor2_SendBusinessMessage().
EAIAdapterCustomerShippingAddress1 - Adapter da mensagem CustomerShippingAddress
Na função EAIAdapterCustomerShippingAddress1_Install() deverá ser realizado o registro do InternalId referente ao local de entrega, utilizando como base a tabela cli_end_det_cobranca_entrega:
Bloco de código title Instalação do adapter collapse true IF NOT EAI_depara_existe("CustomerShippingAddress", "cli_end_det_cobranca_entrega") THEN CALL EAI_depara_register("CustomerShippingAddress", "cli_end_det_cobranca_entrega", "cliente|sequencia") END IF
Na função EAIAdapterCustomerShippingAddress1_LoadUsualContent() setar as informações da variável utilizada para a integração, conforme abaixo:
Tag | Descrição | Regra a ser aplicada |
---|---|---|
CompanyId | Código da empresa | EAIMapper_getString("cli_end_det_cobranca_entrega.empresa") |
BranchId | Código da filial | NULO |
CompanyInternalId | Chave interna da empresa | EAIMapper_getString("cli_end_det_cobranca_entrega.empresa") |
BranchInternalId | Chave interna da filial | NULO |
CustomerCode | Código do cliente | EAIMapper_getString("cli_end_det_cobranca_entrega.cliente") |
(¹)GovernmentalInformation.Id.Id | Identificação da informação | EAIMapper_getString("cli_end_det_cobranca_entrega.num_cgc_cpf") Deverá ser aplicado um tratamento para extrair apenas os números do CNPJ/CPF ou Inscrição Estadual retornados pela função acima. Utilizar como base as lógicas existentes na função vdpr239_atualiza_business_content_Customer(). |
(¹)GovernmentalInformation.Id.Attributes.scope | Escopo | Para CNPJ/CPF considerar o texto "Federal". Para Inscrição Estadual considerar o texto "State". |
(¹)GovernmentalInformation.Id.Attributes.name | Nome da identificação | Para CNPJ considerar o texto "CNPJ". Para CPF considerar o texto "CPF". Para Inscrição Estadual considerar o texto "Inscricao Estadual". |
(¹)GovernmentalInformation.Id.Attributes.issueOn | Data em que a identificação foi emitida | NULO para CNPJ, CPF e Inscrição Estadual. |
(¹)GovernmentalInformation.Id.Attributes.expiresOn | Data de expiração da identificação | NULO para CNPJ, CPF e Inscrição Estadual. |
InternalId | Chave interna do local de entrega | Concatenar o retorno das funções EAIMapper_getString("cli_end_det_cobranca_entrega.cliente") e EAIMapper_getInt("cli_end_det_cobranca_entrega.sequencia"), separando-os com "|" (pipe) e considerando a sequência com cinco dígitos, com zeros à esquerda. Exemplo: Cliente 1234, sequência local de entrega 3 => "1234|00003" |
Code | Código do local de entrega | EAIMapper_getInt("cli_end_det_cobranca_entrega.sequencia") |
ExternalId | Chave externa do local de entrega | NULO |
ShippingAddress.Address | Endereço | Se o retorno de EAIMapper_getString("cli_end_det_cobranca_entrega.tip_logradouro") for diferente de nulo e diferente de branco considerar: EAIMapper_getString("cli_end_det_cobranca_entrega.tip_logradouro") + " " + EAIMapper_getString("cli_end_det_cobranca_entrega.logradouro") caso contrário, apenas: EAIMapper_getString("cli_end_det_cobranca_entrega.logradouro") |
ShippingAddress.Number | Número do endereço | EAIMapper_getString("cli_end_det_cobranca_entrega.num_iden_lograd") |
ShippingAddress.Complement | Complemento do endereço | EAIMapper_getString("cli_end_det_cobranca_entrega.complemento_endereco") |
ShippingAddress.City.CityCode | Código da cidade | EAIMapper_getString("cli_end_det_cobranca_entrega.cidade") |
ShippingAddress.City.CityInternalId | Chave interna da cidade | EAIMapper_getString("cli_end_det_cobranca_entrega.cidade") |
ShippingAddress.City.CityDescription | Descrição da cidade | EAIMapper_getString("cli_end_det_cobranca_entrega.den_cidade") |
ShippingAddress.District | Bairro | EAIMapper_getString("cli_end_det_cobranca_entrega.bairro_cobr_entga") |
ShippingAddress.State.StateCode | Código do estado (UF) | EAIMapper_getString("cli_end_det_cobranca_entrega.cod_uni_feder") |
ShippingAddress.State.StateInternalId | Chave interna do estado (UF) | EAIMapper_getString("cli_end_det_cobranca_entrega.cod_uni_feder") |
ShippingAddress.State.StateDescription | Descrição do estado (UF) | EAIMapper_getString("cli_end_det_cobranca_entrega.den_uni_feder") |
ShippingAddress.Country.CountryCode | Código do país | EAIMapper_getString("cli_end_det_cobranca_entrega.cod_pais") |
ShippingAddress.Country.CountryInternalId | Chave interna do país | EAIMapper_getString("cli_end_det_cobranca_entrega.cod_pais") |
ShippingAddress.Country.CountryDescription | Descrição do país | EAIMapper_getString("cli_end_det_cobranca_entrega.den_pais") |
ShippingAddress.ZIPCode | CEP | Utilizar o EAIMapper_getString("cli_end_det_cobranca_entrega.cep"), efetuando tratamento para utilizar apenas os números (ver como exemplo a função vdpr239_retorna_valor_valido()). |
ShippingAddress.Region | Região | NULO |
ShippingAddress.POBox | Caixa postal | NULO |
(¹)Deverá gerar dois registros no record GovernmentalInformation: O primeiro para o CNPJ/CPF e o segundo para a Inscrição Estadual.
RECEBIMENTO - Upsert
- Na função EAIAdapterCustomerShippingAddress1_ReceiveBusinessMessage() preparar as informações para recebimento da mensagem:
- Inicialmente deverá
Bloco de código LET l_internalValue = EAI_depara_get_value(title Buscando o InternalId collapse true - chamar a função vdpr248_alimenta_business_content(), sem passagem de parâmetros e sem recebimento de retorno.
- Em seguida deverá chamar a função vdpr248_EAI_CustomerShippingAddress_recebe(), sem passagem de parâmetros e recebendo o status do processamento (TRUE ou FALSE).
- Se o retorno for FALSE deverá chamar a função EAIMapper_loadFromMessage() passando como primeiro parâmetro a variável global g_eai_msg_resposta e como segundo parâmetro o valor "Retorno".
- Em seguida deverá chamar a função EAIHelperCustomerShippingAddress1_add_error_message() passando como primeiro parâmetro o texto "Erro de regra de negócio: " concatenado com o retorno da função log0030_mensagem_get_texto(), e como segundo parâmetro passar o valor "0001".
- Depois disso deverá retornar status FALSE para a rotina chamadora.
Bloco de código | ||||
---|---|---|---|---|
| ||||
CALL vdpr248_alimenta_business_content()
IF NOT vdpr248_EAI_CustomerShippingAddress_recebe() THEN
CALL EAIMapper_loadFromMessage(g_eai_msg_resposta,"Retorno")
CALL EAIHelperCustomerShippingAddress1_add_error_message("Erro de regra de negócio: " || log0030_mensagem_get_texto(),"0001")
RETURN FALSE
END IF |
- Inicialmente deverá ser utilizada a função EAI_depara_get_value() para verificar se existe o local de entrega já cadastrado no Logix para a chave interna enviada na mensagem.
Bloco de código | ||||
---|---|---|---|---|
| ||||
LET l_internalValue = EAI_depara_get_value("CustomerShippingAddress", _advpl_eai_get_message_info(g_eai_msg_negocio, 'MessageInformation.SourceApplication'), EAIHelperCustomerShippingAddress1_get_BusinessContent_InternalId()) |
Se o conteúdo da variável l_internalValue for diferente de nulo deverá ser chamada a função EAI_depara_InternalId_get_value() para obter o código do cliente e a sequência do local de entrega.
Bloco de código title Identificando o cliente e o sequência do local de entrega collapse true IF l_internalValue CLIPPED IS NOT NULL THEN LET l_cliente = EAI_depara_internalid_get_value('CustomerShippingAddress' , #depara_id l_internalValue , #valor interno 'cli_end_det_cobranca_entrega', #tabela interna 'cliente' ) #Campo interno LET l_sequencia = EAI_depara_internalid_get_value('CustomerShippingAddress' , #depara_id l_internalValue , #valor interno 'cli_end_det_cobranca_entrega', #tabela interna 'sequencia') #Campo interno END IF
- Se o conteúdo da variável l_internalValue for igual a nulo deverá considerar o conteúdo da tag Code para a variável l_sequencia.
- Se o conteúdo da variável l_internalValue for igual a nulo deverá tentar localizar o cliente pela conteúdo da tag GovernmentalInformation, buscando pelo CNPJ e Inscrição Estadual (campos num_cgc_cpf e ins_estadual, respectivamente). Caso encontre deverá armazenar o código do cliente na variável l_cliente.
- Se depois da lógica acima o cliente ainda não puder ser identificado, considerar o conteúdo da tag CustomerCode para a variável l_cliente.
- Se as variáveis referentes ao cliente (l_cliente) e sequência do local entrega (l_sequencia) não estiverem nulos, verificar se existe o registro correspondente na tabela de locais de entrega (considerar o parâmetro "vdp_utiliza_tela_endereco" para pesquisar na tabela cli_end_det_cobranca_entrega caso seja "S" ou na cli_end_ent caso seja "N").
- Se encontrar o registro correspondente deverá ser considerado como alteração deste local de entrega, caso contrário deverá ser considerada inclusão de um novo local de entrega.
Para incluir/alterar o local de entrega deverá ser analisado o parâmetro "vdp_utiliza_tela_endereco" (LOG00087). Se estiver "S" deverá ser gravada a tabela cli_end_det_cobranca_entrega:
Campo Conteúdo a ser gravado cliente Variável l_cliente tip_endereco 'E' sequencia Variável l_sequencia tip_logradouro Verificar se no início da tag ShippingAddress.Address existe a palavra "RUA ", "R " ou "R: ".
Se existir, pesquisar na tabela vdp_tip_logradouro por esta descrição de logradouro (campo des_logradouro).
Se encontrar o registro, considerar o conteúdo do campo tip_logradouro.
Se o início da tag não estiver conforme indicado inicialmente ou não encontrar o registro na vdp_tip_logradouro este campo deverá ficar nulo.logradouro Tag ShippingAddress.Address num_iden_lograd Tag ShippingAddress.Number complemento_endereco Tag ShippingAddress.Complement endereco_completo Concatenar os conteúdos abaixo, separando cada um com um espaço em branco:
* Tag ShippingAddress.Address
* Tag ShippingAddress.Number
* Tag ShippingAddress.Complement
* Tag ShippingAddress.Districtbairro_cobr_entga Tag ShippingAddress.District Independente do valor do parâmetro "vdp_utiliza_tela_endereco", sempre deverá ser gravada a tabela cli_end_ent:
Campo Conteúdo a ser gravado cod_cliente Variável l_cliente end_entrega Se a tag ShippingAddress.Number não estiver nula considerar ShippingAddress.Address + ShippingAddress.Number (separando as duas tags com um espaço em branco), caso contrário considerar somente ShippingAddress.Address den_bairro Tag ShippingAddress.District cod_cidade Primeiramente deverá ser verificado se existe relacionamento de/para para o código interno da cidade, caso a tag ShippingAddress.City.CityInternalId esteja preenchida. Se existir deverá utilizar a função para EAI_depara_InternalId_get_value() para identificar o código da cidade do Logix. Se não encontrar a cidade seguindo as regras acima deverá tentar localizar a cidade utilizando a tag ShippingAddress.City.CityCode, buscando pelo código IBGE. Se não existir deverá gerar mensagem de erro de que não foi possível identificar a cidade.
Bloco de código title Buscar o código da cidade Logix collapse true LET l_cidade_logix = NULL IF EAIHelperCustomerShippingAddress1_get_BusinessContent_ShippingAddress_City_CityInternalId() IS NOT NULL AND EAIHelperCustomerShippingAddress1_get_BusinessContent_ShippingAddress_City_CityInternalId() <> ' ' THEN LET l_InternalId = EAI_depara_get_value('City', _advpl_eai_get_message_info(g_eai_msg_negocio, 'MessageInformation.SourceApplication'), EAIHelperCustomerShippingAddress1_get_BusinessContent_ShippingAddress_City_CityInternalId()) IF l_InternalId IS NOT NULL AND l_InternalId <> ' ' THEN LET l_cidade_logix = EAI_depara_InternalId_get_value('City', l_InternalId, NULL, 'cod_cidade') END IF END IF IF l_cidade_logix IS NULL OR l_cidade_logix = ' ' THEN WHENEVER ERROR CONTINUE SELECT cidade_logix INTO l_cidade_logix FROM cidades, obf_cidade_ibge WHERE cidade_ibge = _BusinessContent._ShippingAddress._City._CityCode AND cod_cidade = cidade_logix WHENEVER ERROR STOP IF sqlca.sqlcode <> 0 THEN CALL log0030_processa_mensagem('Código da cidade informado na integração inexistente.','excl',1) RETURN FALSE END IF END IF IF l_cidade_logix IS NULL OR l_cidade_logix = ' ' THEN CALL log0030_processa_mensagem('Não foi possível identificar a cidade na integração.','excl',1) RETURN FALSE ELSE WHENEVER ERROR CONTINUE SELECT cod_cidade FROM cidades WHERE cod_cidade = l_cidade_logix WHENEVER ERROR STOP IF sqlca.sqlcode <> 0 THEN CALL log0030_processa_mensagem('Código da cidade informado na integração inexistente.','excl',1) RETURN FALSE END IF END IF
cod_cep Tag ShippingAddress.ZIPCode num_cgc Campo num_cgc_cpf da tabela clientes ins_estadual Campo ins_estadual da tabela clientes num_sequencia Variável l_sequencia cod_rota Campo cod_rota da tabela clientes cod_local Campo cod_local da tabela clientes cod_praca Campo cod_praca da tabela clientes
RECEBIMENTO - Delete:
Inicialmente deverá ser utilizada a função EAI_depara_get_value() para verificar se existe o local de entrega cadastrado no Logix para a chave interna enviada na mensagem.
Bloco de código title Buscando o InternalId collapse true LET l_internalValue = EAI_depara_get_value("CustomerShippingAddress", _advpl_eai_get_message_info(g_eai_msg_negocio, 'MessageInformation.SourceApplication'), EAIHelperCustomerShippingAddress1_get_BusinessContent_InternalId())
Se o conteúdo da variável l_internalValue for diferente de nulo deverá ser chamada a função EAI_depara_InternalId_get_value() para obter o código do cliente e a sequência do local de entrega.
Bloco de código title Identificando o cliente e o sequência do local de entrega collapse true IF l_internalValue CLIPPED IS NOT NULL THEN LET l_cliente = EAI_depara_internalid_get_value('CustomerShippingAddress' , #depara_id l_internalValue , #valor interno 'cli_end_det_cobranca_entrega', #tabela interna 'cliente' ) #Campo interno LET l_sequencia = EAI_depara_internalid_get_value('CustomerShippingAddress' , #depara_id l_internalValue , #valor interno 'cli_end_det_cobranca_entrega', #tabela interna 'sequencia') #Campo interno END IF
- Se o conteúdo da variável l_internalValue for igual a nulo deverá considerar o conteúdo da tag Code para a variável l_sequencia.
- Se o conteúdo da variável l_internalValue for igual a nulo deverá tentar localizar o cliente pela conteúdo da tag GovernmentalInformation, buscando pelo CNPJ e Inscrição Estadual (campos num_cgc_cpf e ins_estadual, respectivamente). Caso encontre deverá armazenar o código do cliente na variável l_cliente.
- Se depois da lógica acima o cliente ainda não puder ser identificado, considerar o conteúdo da tag CustomerCode para a variável l_cliente.
- Se as variáveis referentes ao cliente (l_cliente) e sequência do local entrega (l_sequencia) não estiverem nulos, verificar se existe o registro correspondente na tabela de locais de entrega (considerar o parâmetro "vdp_utiliza_tela_endereco" para pesquisar na tabela cli_end_det_cobranca_entrega caso seja "S" ou na cli_end_ent caso seja "N").
- Se não encontrar o registro correspondente deverá apenas retornar TRUE como se a exclusão tivesse ocorrido normalmente, apenas para evitar erro no aplicativo de origem.
- Se encontrar o registro deverá realizar a exclusão dos registros nas tabelas cli_end_det_cobranca_entrega e cli_end_ent, pesquisando pelo código do cliente e sequência do local de entrega.
VDP0815 - Manutenção do cadastro de cliente/fornecedor
VDP0834 - Manutenção dos endereços de entrega do cliente
VDP10000 - Manutenção do cadastro de cliente/fornecedor
VDP90079 - Manutenção dos endereços de entrega do cliente
VDP0831 - Manutenção da distribuição geográfica do cliente
VDP0833 - Manutenção dos endereços de cobrança do cliente
VDP90065 - Carga inicial de clientes
VDP90078 - Manutenção dos endereços de cobrança do cliente
WMSR62 - Cadastra automático de cliente
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. |
---|