Árvore de páginas

Versões comparadas

Chave

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

Integração da mensagem CUSTOMERVENDOR versão 2.0 ou superior no Protheus gera chave duplicada

Linha de Produto:

Microsiga Protheus®

Segmento:

Serviços

Módulo:

Faturamento - SIGAFAT

Função:

Mensagem Única de Clientes - MATI030.PRX

Situação/Requisito:

Ao integrar o recebimento de uma processar a integração EAI de recebimento da mensagem CUSTOMERVENDOR do tipo Upsert na versão 2.00 ou superior e , caso o campo de do código do Cliente cliente (A1_COD) possuí inicializador padrão, o sistema apresenta comportamento de não liberar corretamente a fila de numeração, gerando esteja configurado com um inicializador padrão para a geração da numeração automática (GetSX8Num) no dicionário de dados (SX3), a pilha da numeração automática do Cadastro de Clientes não é liberada corretamente, podendo causar mensagens de código inválido / duplicado e / ou pulando numerações alternadas.

Solução/Implementação:

A não conformidade ocorria devido ao fato da quando a função de leitura dos layouts leiautes da versão 2.00 ou superior realizar realizava a macroexecução macro-execução do inicializador padrão do campo de do código do cliente antes de enviaenviá-lo para a à execução automática da rotina de Cadastros do Cadastro de Clientes (MATA030 | CRMA980), que por . Por sua vez executava , estas rotinas do Cadastro de Clientes executavam novamente o inicializador padrão do campo, e ao mesmo campo. Ao final da sua operação, uma das operações terminara sem confirmação.
Para reverter esta situação, foi corrigido o bloco que lida com a criação de numeração automática para layouts numerações automáticas terminava sem a devida confirmação / atualização.
Desta forma, foi realizado o ajuste de tratamento nos leiautes da versão 2.00 ou superior , quando houver inicializador nos campos de código para que, caso haja o uso da numeração automática para os campos de Código e / ou loja do cadastro de cliente o EAI-MATI030 passa a deixar a cargo da execução automática o controle da numeraçãoLoja do Cliente através da configuração dos seus respectivos inicializadores padrões (com a utilização da função GetSX8Num), o controle da pilha da numeração automática ficará sob a responsabilidade da execução automática da própria rotina do Cadastro de Clientes (MATA030 / CRMA980), da mesma forma como se comportaria comporta atualmente uma inclusão manual via browse.

Importante
(aviso) Alerta

Caso seu ambiente já esteja configurado com a utilização da numeração automática para o código e/ou loja do cliente, aconselha-se que seja realizada Aconselha-se a correção da numeração automática atual antes da aplicação do patch deste requisito.

(aviso) FAQ - Sobre a numeração durante a inclusão de registros na versão 2.00 ou superior
Para

Nos ambientes onde os campos de código e / ou loja do

cadastro de Cliente

cliente (A1_COD | A1_LOJA) não

possua inicializador padrão, mantem se

possuam inicializadores padrões, o comportamento

de

atual da geração da numeração dos seus conteúdos será mantido:

    • A função de leitura do
layout tentará
    • leiaute utilizará a própria string enviada na tag <Code> como base
para criar o novo código de cliente no Protheus, caso a string seja maior que o campo no sistema, a mesma será cortada
    • na criação do novo Código de Cliente no ambiente do Protheus®;
    • Caso o conteúdo desta string possua mais dígitos que o campo do sistema, o seu conteúdo será truncado até o tamanho máximo do campo
. Caso esta string por ventura seja igual a um valor que já corresponde a outro registro na
    • ;
    • Caso o conteúdo desta string corresponda ao código já utilizado num registro da tabela de Clientes (SA1), o EAI - MATI030
então
    • utilizará a função GetSX8Num para obter
para obter o
    • um próximo código válido, e o utilizará para o registro que está sendo recebido;
    • Caso a tag <StoreId> não seja informada
o sistema atribui
    • , a rotina atribuirá o valor "0"
igual ao
    • até o tamanho máximo do campo loja (A1_LOJA). Desta forma,
desta forma
    • se o mesmo possuir
tamanho 4
    • o tamanho de 04 (quatro) caracteres e a tag <StoreId>
não
    • esteja
preenchida
    • em branco, o valor a ser atribuído ao campo A1_LOJA será igual a "0000";
    • Quando
houver
    • for identificado que o inicializador padrão
nos
    • dos campos de código e / ou loja
o
    • do Cliente, a rotina do EAI - MATI030
passa
    • deixará a
deixar
    • responsabilidade sob a
cargo da
    • execução automática do Cadastro de Clientes (MsExecAuto da rotina MATA030 | CRMA980), inclusive o controle da numeração
-
    • automática, mantendo o mesmo comportamento de uma inclusão manual
dos
    • de dados
dentro
    • da rotina através do ERP Protheus®;
Para

Nos ambientes onde os campos de código e / ou loja do

cadastro de Cliente

cliente (A1_COD | A1_LOJA) não

possua inicializador padrão e há

possuam inicializadores padrões, e existir a integração NewHotel (MV_INTHTL = .T.) ativa,

o sistema mantém

a rotina adotará o seguinte comportamento:

    • O campo de
Código
    • código do cliente (A1_COD) sempre receberá um novo código, via
função GetSx8Num que é confirmado ao concluir o
    • execução da função GetSx8Num. E a sua confirmação ocorrerá na conclusão do processamento do EAI - MATI030;
    • O campo de Loja (A1_LOJA) sempre receberá o conteúdo "0"
no
    • com o tamanho máximo do campo. Desta forma,
desta forma
    • se o mesmo possuir
tamanho 4
    • o tamanho de 04 (quatro) caracteres e a tag <StoreId> esteja em branco, o valor
atribuído sempre será
    • a ser atribuído ao campo A1_LOJA será igual a "0000"
;
    • .
Ticket:2760789
Requisito:DSERFAT-5766