Contexto de negócio (Introdução)
Adpater responsável pelo cadastro de Cliente x Fornecedor com o BackOffice RM, assim viabilizando o CRUD do cadastro por recebimento / envio de mensagem de integração.
- Foram criado três novos campos para cliente / fornecedor,
- Código Externo, Código de loja e Código de filial de integração.
- São habilitado na tela de cliente / fornecedor quando EAI 2.0 Ativo.
- São habilitado para edição quando entidade CUSTOMERVENDOR parametrizada para envio.
- Particularidade para o código de filial de integração, pois sua visualização / edição dependem do nível de compartilhamento, quando exclusivo por filial no Protheus);
- Ao efetuar o conversor, será acertado todos os cadastros já existentes na base para que os mesmo contemplem código externo e filial.
Regras para código Externo
O código externo foi criado para armazenamos o código do cliente / fornecedor do sistema integrado.
Exemplo:
Código no RM | Código Externo no RM | Código no Protheus |
---|---|---|
000014 | 000035 | 000035 |
Dessa forma é possível realizar uma pesquisa no RM pelo código externo que representa o código do sistema integrado.
- Envio de RM
- Ao incluir um novo registro no RM para Cliente / Fornecedor, será necessário informar para o código externo qual o código no sistema de origem.
Caso o código do cliente / fornecedor seja gerado através de auto incremento, ("Parâmetro do financeiro Usar código sequencial'). foi criado o parâmetro "CODEXTERNOIGUALOCFO" para que
o código externo acompanhe o código do cliente / fornecedor RM. Dessa forma, o Código externo é gerado automaticamente. Caso o parâmetro "CODEXTERNOIGUALOCFO" esteja
desabilitado, será obrigatório informar o código externo no momento da inclusão do Cliente / Fornecedor. - Se a integração SIGAMNT x BackOffice RM no EAI 2.0 está ativa os campos: Código Externo, Código Loja e Filial de Integração não ficam habilitados no cadastro de Cliente/Fornecedor.
- Ao incluir um novo registro no RM para Cliente / Fornecedor, será necessário informar para o código externo qual o código no sistema de origem.
- Recebimento RM
- Com o objetivo de manter o código externo identifico ao sistema integrado, código externo sempre é alterado no RM no recebimento da mensagem.
- Com o objetivo de manter o código externo identifico ao sistema integrado, código externo sempre é alterado no RM no recebimento da mensagem.
- Envio de RM
Modulo: Gestão Financeira
Solution: RM.Fin.TotvsMessage.Adapter
Identificador | Versão | Forma de Envio | Tipo do Adapter |
---|---|---|---|
CUSTOMERVENDOR | 2.000 | Síncrona | Envia |
2.002 | Síncrona | Envia | |
2.003 | Síncrona | Envia |
Escopo:
Pacote | Entidade | Versão | Envia | Recebe |
---|---|---|---|---|
TOTVS Folha pagto RM x Backoffice Protheus | Fornecedor | 2.003 | Não | Sim |
Cliente | - | Não | Não | |
Manutenção de Ativos (SIGAMNT) x BackOffice RM | Cliente/Fornecedor | 2.002 | Sim | Não |
TOTVS Rental (SIGALOC) x BackOffice RM | Cliente | 2.003 | Sim | Não |
Mapeamento de Campos de Envio
Tabela: FCFO
Mensagem Padrão | Descrição | Campo | Valor | Tipo Campo | Tamanho | Observação |
---|---|---|---|---|---|---|
CompanyId | Código da empresa | CODCOLIGADA | DCODCOLIGADA | 2 | ||
CompanyIntern alId | InternalId da empresa | CODCOLIGADA | ||||
Code | Código do fornecedor | CODCFO | varchar | 25 | ||
StoreId | Loja | |||||
InternalId | InternalId do fornecedor | CODCOLIGADA | CODCFO | |||
ShortName | Nome reduzido | NOMEFANTASIA | varchar | 100 | ||
Type | Tipo | PAGREC | [Se Type = 'Customer'] PagRec=1 Senão se Type = 'Vendor' PagRec=2 Senão PagRec = 3 | smallint | 2 | |
EntityType | Tipo do registro | PESSOAFISOUJUR | [Se EntityType = 'Person'] PessoaFisOuJur= F Senão PessoalFisOuJus= J | varchar | 1 | |
RegisterSituation | Situação | ATIVO e CFOIMOB | Para a integração CRM: [Se RegisterSituation = 'Active'] Ativo=1 e CFOIMOB=1 Senão se RegisterSituation = 'Canceled' Ativo=0 e CFOIMOB=1 Senão Ativo=0 e CFOIMOB=0 Para as demais: [Se RegisterSituation = 'Active'] Ativo=0 | smallint | 2 | O campo CFOIMOB, ou seja, o tratamento referente a integração CRM é realizado a partir da versão 2.003 da mensagem e da 12.1.2302 do RM. |
GovernmentalI nformation. Id Name[CNPJ] | CNPJ/CPF | CGCCFO | Se Id[Name]= CPF'] ou Id[Name]= CNPJ'] CGCCFO=1 Senão Ativo=0 | varchar | 20 | |
Address.Addre ss | Nome da rua | RUA | varchar | 100 | ||
Address.Numb er | Número | NUMERO | varchar | 8 | ||
Address.Compl ement | Complemento | COMPLEMENTO | DCOMPLEMENTO | 60 | ||
Address.City.Ci tyInternalId | Código do município | CODMUNICIPIO | varchar | 20 | ||
Address.City.Ci tyDescription | Nome cidade | CIDADE | DCIDADE | 32 | ||
Address.District | Bairro | BAIRRO | DBAIRRO | 80 | ||
Address.State. StateInternalId | Código do Estado | CODETD | varchar | 2 | ||
Address.State.StateCode | Código do Estado | CODETD | Se País diferente de Brasil preenche com EX | varchar | 2 | |
Address.State. StateDescription | Descrição do estado | DESCETD | Se País diferente de Brasil preenche com ESTRANGEIRO | |||
Address.Countr y.CountryIntern alId | Codigo do país | IDPAIS | smallint | 2 | ||
Address.Countr y.CountryDescr iption | Nome do país | PAIS | varchar | 20 | ||
Address.ZIPCo de | Cep | CEP | DCEP | 9 | ||
Address.POBo x | Caixa postal | CAIXAPOSTAL | varchar | 10 | ||
ListOfCommuni cationInformati on.Communicat ionInformation. PhoneNumber | Telefone | TELEFONE | CommunicationInfor mation | varchar | 15 | |
ListOfCommuni cationInformati on.Communicat ionInformation. FaxNumber | Fax | FAX | CommunicationInfor mation[1] | varchar | 15 | |
ListOfCommuni cationInformati on.Communicat ionInformation. | CommunicationInfor mation[1] [Primeira posição na lista de e-mail da mensagem] | varchar | 60 |
CustomerVendor_2_002 | |||||||
Mensagem Padrão | PROTHEUS (Cliente) | PROTHEUS (Fornecedor) | RM | Observação | |||
Tabela | Campo | Tabela | Campo | Tabela | Campo | ||
CompanyId | SA1 | Empresa | SA2 | Empresa | FCFO | CODCOLIGADA | |
BranchId | SA1 | A1_FILIAL | SA2 | A2_FILIAL | - | - | |
CompanyInternalId | SA1 | Empresa|A1_FILIAL | SA2 | Empresa| A2_FILIAL | - | - | |
Code | SA1 | A1_COD | SA2 | A2_COD | FCFO | CODCFO | Valor texto tamanho 30 |
InternalId | SA1 | Empresa|A1_FILIAL |A1_COD | SA2 | Empresa| A2_FILIAL|A2_COD | HCINTEGRACAOID (EAI 1.0) GEAIDEPARA (EAI 2.0) | ||
ShortName | SA1 | A1_NREDUZ | SA2 | A2_NREDUZ | FCFO | NOMEFANTASIA | Valor texto tamanho 12 |
Name | SA1 | A1_NOME | SA2 | A2_NOME | FCFO | NOME | Valor texto tamanho 40 |
Type | SA1 | Customer | SA2 | Vendor | FCFO | PAGREC | Fixo “Customer”: Cliente |
EntityType | SA1 | A1_TIPO | SA2 | A2_TIPO | FCFO | PESSOAFISOUJUR | Fixo “Person”: Física |
RegisterDate | SA1 | RegisterDate | FCFO | DATACRIACAO | Não utilizado pela linha RM | ||
RegisterSituation | SA1 | A1_MSBLQL | SA2 | A2_MSBLQL | FCFO | ATIVO e CFOIMOB (a partir da versão 2.003) | Fixo “Active”: Ativo |
GovernmentalInformation.Id Name=CNPJ | SA1 | A1_CGC | SA2 | A2_CGC | FCFO | CGCCFO | |
Address.Address | SA1 | A2_END | SA2 | A2_END | FCFO | RUA | |
Address.Number | SA1 | A2_END | SA2 | A2_END | FCFO | NUMERO | |
Address.Complement | SA1 | A1_COMPLEM | SA2 | A2_COMPLEM | FCFO | COMPLEMENTO | |
Address.City.CityCode | SA1 | A1_EST+A1_COD_MUN | SA2 | A2_COD_MUN | FCFO | CODMUNICIPIO | |
Address.City.CityDescription | SA1 | A1_MUN | SA2 | A2_MUN | FCFO | CIDADE | |
Address.District | SA1 | A1_BAIRRO | SA2 | A2_BAIRRO | FCFO | BAIRRO | |
Address.State.StateCode | SA1 | A1_EST | SA2 | A2_EST | FCFO | CODETD | |
Address.State.StateDescription | SA1 | X5DESCRI | SA2 | X5DESCRI | FCFO | DESCETD | |
Address.Country.CountryCode | SA1 | A1_PAIS | SA2 | A2_PAIS | FCFO | CODPAIS | |
Address.Country.CountryDescription | SA1 | SA2 | FCFO | PAIS | |||
Address.ZIPCode | SA1 | A1_CEP | SA2 | A2_CEP | FCFO | CEP | |
Address.POBox | SA1 | A1_CX_POST | SA2 | A2_CX_POST | FCFO | CAIXAPOSTAL | |
ListOfCommunicationInformation.CommunicationInformation.PhoneNumber | SA1 | A1_TEL | SA2 | A2_TEL | FCFO | TELEFONE | |
ListOfCommunicationInformation.CommunicationInformation.FaxNumber | SA1 | A1_FAX | SA2 | A2_FAX | FCFO | FAX | |
ListOfCommunicationInformation.CommunicationInformation.Email | SA1 | A1_EMAIL | SA2 | A2_EMAIL | FCFO |
Parâmetros:
CODCLASSIFICPAIS: Este parâmetro tem a responsabilidade de ser o código da tabela de classificação de país. Como o código do País no Protheus é baseado na tabela de classificação do IBGE, deve-se
cadastrar esta tabela no RM (BackOffice / Gestão Fiscal / Mais... / Endereços / Classificação de País.) e definir nos parâmetros de integração qual será o código desta tabela.
No cadastro de Classificação de País incluir uma tabela de classificação.
No cadastro de País abrir o anexo Codificação de País e incluir a tabela de classificação informando o Código País.
Nos Parâmetros de Integração informar no parâmetro "CODCLASSIFICPAIS" o código da tabela de classificação utilizada e associado ao país.
Envio
- Quando for informado no RM um endereço com país diferente de Brasil, o código e a descrição do Estado será enviado como EX e ESTRANGEIRO. Esta regra será aplicada para os endereços: principal (Address), cobrança (BillingInformation) e entrega (ShippingAddress )
Recebimento
- Para o recebimento, não é permitido o recebimento cujo o tipo do cliente / fornecedor seja ambos.
- Não é permitido o recebimento de cliente Global.
- Caso o nível de compartilhamento do Protheus seja compartilhado por filial, o novo campo de código de filial ser preenchido como vazio.
- Caso o nível de compartilhamento no Protheus seja exclusivo por filial, o novo campo de código de filial recebera o seu valor.
- Não deve configurar a mascara de cliente / fornecedor;
- Caso o código do cliente / fornecedor seja por auto-incremento, deve configurar o parâmetro do financeiro Usar código sequencial.
- Quando integrado com Protheus, e o código não for por auto-incremento, existem dois parâmetros para definir o tamanho do código da loja e código do cliente / fornecedor. Isso é aplicado pelo chamada do PVI.
Testes Realizados:
Envio RM >> Protheus
1-Acessado Nova MDI >> BackOffice >> Cadastro>> Cliente / Fornecedor
1.1 Cadastrando Cliente / fornecedor
1.1.1 Erro: " Um ou mais campos obrigatórios não foram preenchidos. xxxxxxxxxxxxxxxxxx -> xxxxxxxxxx Pasta Código."
( Houve inconsistências com valor padrão / Inicializador de código no Protheus para o código de cliente / Fornecedor). Foi necessário remover o inicializador padrão de A1_COD no Protheus.
1.1.2 Parâmetros utilizados neste teste.
- Desabilitado - Usar código Sequencial ( se a mascara for numérica)
- Vazio - Mascara para o código de cliente / fornecedor.
Com essas opções, como o código de cliente / fornecedor é gerado? Porque o campo o código de cliente / fornecedor esta sempre bloqueado na tela, quando EAI2.0 Ativo.?
O código de cliente fornecedor "CODCFO" é gerado a partir das informações dos novos campos: CODEXTERNO, CODLOJA E CODFILIALINTEGRACAO.
O CODCFO é concatenado com :
- CODLOJA ( código da loja ("código da loja é gerado com zero a esquerda conforme o parametro "SIZECODLOJA")
- SEPARADOR ponto e virgula. ";"
- PAGREC ( Quando Cliente = "C" quando fornecedor = "F")
- CODEXTERNO ( Informado pelo usuário através da tela de cadastro de cliente / fornecedor
- CODFILIALINTEGRACAO ( Retorna o código filial quando o nível de compartilhamento for exclusivo por filial no Protheus, caso contrário vazio);
1.1.3 Quando a inclusão do cliente / fornecedor é gerado por terceiros, "PVI, através de dataserver" o Código será gerado com base no ultimo cliente / fornecedor gerado +1;
1.2 Mensagem enviada ao Protheus com sucesso. Registro Incluído Corretamente.
1.3 Alterado registro no RM >> cliente / Fornecedor refletido no Protheus.
1.3 Excluído registro no RM >> cliente / Fornecedor refletido no Protheus.
2.0 - Testado a tela de cadastro de cliente / fornecedor conforme os novos campos: Código Externo, Código de loja e Código de filial de integração.
- São habilitado na tela de cliente / fornecedor quando EAI 2.0 Ativo.
- São habilitado para edição quando entidade CUSTOMERVENDOR parametrizada para envio.
- Particularidade para o código de filial de integração, pois sua visualização / edição dependem do nível de compartilhamento, quando exclusivo por filial no Protheus);
3.0 - Caso o Protheus esteja configurado com o campo código com default, o código externo enviado do RM é desconsiderado pelo Protheus, colocando o seu código sequencial de sua tabela.
1 comentário
Daniel de Paulo E Silva
Cristiano Silva Faria
William Rezende Prado
sera que vocês tem algum print da questão do anexo que citaram para incluir nesta documentação? Ou solicitar o teste para realizar esta atualização?