Páginas filhas
  • Cliente x Fornecedor

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 RMCódigo Externo no RMCódigo no Protheus
000014000035000035

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.
         
         
    • 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.



Modulo: Gestão Financeira

Solution: RM.Fin.TotvsMessage.Adapter


IdentificadorVersãoForma de EnvioTipo do Adapter
CUSTOMERVENDOR

2.000

SíncronaEnvia
2.002SíncronaEnvia
2.003SíncronaEnvia


Escopo:


PacoteEntidadeVersãoEnviaRecebe
TOTVS Folha pagto RM x Backoffice ProtheusFornecedor2.003NãoSim
Cliente-NãoNão
Manutenção de Ativos (SIGAMNT) x BackOffice RMCliente/Fornecedor2.002SimNão
TOTVS Rental (SIGALOC) x BackOffice RMCliente2.003SimNão


Mapeamento de Campos de Envio

Tabela: FCFO


Mensagem PadrãoDescriçãoCampoValorTipo CampoTamanho

Observação
CompanyIdCódigo da empresa

CODCOLIGADA


DCODCOLIGADA2
CompanyIntern alIdInternalId da empresa

CODCOLIGADA





CodeCódigo do fornecedorCODCFO
varchar25
StoreIdLoja




InternalIdInternalId do fornecedorCODCOLIGADACODCFO


ShortNameNome reduzidoNOMEFANTASIA
varchar100
TypeTipoPAGREC[Se Type = 'Customer']
PagRec=1
Senão se Type = 'Vendor'
PagRec=2
Senão
PagRec = 3
smallint2
EntityTypeTipo do registroPESSOAFISOUJUR[Se EntityType = 'Person']
PessoaFisOuJur= F
Senão
PessoalFisOuJus= J
varchar1
RegisterSituationSituaçãoATIVO e CFOIMOB

Para a integração CRM:

[Se RegisterSituation = 'Active']
Ativo=1 e CFOIMOB=0
Senão se RegisterSituation = 'Suspended'

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=1
Senão

Ativo=0

smallint2O 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/CPFCGCCFOSe Id[Name]= CPF'] ou
Id[Name]= CNPJ']
CGCCFO=1
Senão
Ativo=0
varchar20
Address.Addre ssNome da ruaRUA
varchar100
Address.Numb erNúmero

NUMERO


varchar8
Address.Compl ementComplementoCOMPLEMENTO
DCOMPLEMENTO60
Address.City.Ci tyInternalIdCódigo do municípioCODMUNICIPIO
varchar20
Address.City.Ci tyDescriptionNome cidadeCIDADE
DCIDADE32
Address.DistrictBairroBAIRRO
DBAIRRO80
Address.State. StateInternalIdCódigo do EstadoCODETD
varchar2
Address.State.StateCodeCódigo do EstadoCODETD

Se País diferente de Brasil preenche com EX

varchar2
Address.State. StateDescriptionDescrição do estadoDESCETDSe País diferente de Brasil preenche com ESTRANGEIRO


Address.Countr y.CountryIntern alIdCodigo do paísIDPAIS
smallint2
Address.Countr y.CountryDescr iptionNome do paísPAIS
varchar20
Address.ZIPCo deCep

CEP


DCEP9
Address.POBo xCaixa postalCAIXAPOSTAL


varchar10
ListOfCommuni cationInformati
on.Communicat ionInformation.
PhoneNumber
TelefoneTELEFONE

CommunicationInfor mation
[1]/PhoneNu mber
[Primeira posição
na lista de telefones da mensagem]

varchar15
ListOfCommuni cationInformati
on.Communicat ionInformation.
FaxNumber
FaxFAX

CommunicationInfor mation[1]
/FaxNumb er
[Primeira posição na lista
de fax da mensagem]

varchar15
ListOfCommuni cationInformati
on.Communicat ionInformation.
Email
E-mailEMAILCommunicationInfor mation[1]
/E-mail
[Primeira posição na lista
de e-mail da mensagem]
varchar60

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
Fixo “Vendor”: Fornecedor
Fixo “Both”: Ambos

EntityType

SA1

A1_TIPO

SA2

A2_TIPO

FCFO

PESSOAFISOUJUR

Fixo “Person”: Física
Fixo “Company”: Jurídica

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
Fixo “Inactive”: Inativo
Fixo “Canceled”: Cancelado (usado a partir da versão 2.003)
Fixo “Pending”: Pendente
Fixo “Suspended”: Suspenso (usado a partir da versão 2.003)

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

EMAIL



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.





  • Sem rótulos

1 comentário

  1. 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?