Histórico da Página
...
Adpater responsável pelo cadastro de Cliente x Fornecedor com o BackOffice RM, assim viabilizando o CRUD completo 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 |
---|
1.000
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:
RM Folha x BackOffice Protheus
CustomerVendor_2_003.xsd
Envio de Fornecedor do Protheus, módulo Financeiro, para o RM Labore
Não faz parte : Envio ou recebimento de Clientes através da mensagem CUSTOMERVENDOR.
MATA020 | CUSTOMERVENDOR | Sim | Não | Síncrono | Todas | EAI | 2.003 |
As configurações iniciais desta integração criará um parâmetro chamado "RH_CLIFORAUTOINC" que irá definir se utiliza Auto incremento ou não para o campo "FCFO.CODCFO".
Caso o parâmetro não seja "De auto incremento", a máscara do código do Cliente/Fornecedor deve ser configurada de acordo com a máscara do cliente/fornecedor enviada pelo Protheus:
Ex: "QQQQQQQQ". [Permite qualquer caractere limitado a 8 posições].
Caso o parâmetro seja de "auto incremento", a máscara deve ser definida como "" (vazio) e o parâmetro do financeiro "Usar código sequencial (se máscara for numérica)" deve ser marcado.
RM TIN/TOP x BackOffice Protheus
/*Geração da chave do CLI/FOR para quando estiver com a integração do TIN/TOP x Protheus
* habilitada e com o parâmetro CLIFORAUTOINC como FALSE.
**/
1000 TOTVS Incorporação x BackOffice Protheus
0 CLIFORAUTOINC False
0 CLIFORGLOBAL False
Dúvidas
-Cliente fornecedor
-CODMUNICIPIO
por que o existem o código municipio > 5 para cliente fornecedor
if (!String.IsNullOrEmpty(codMunicipio) && codMunicipio.Length > 5)
rowMensagemOrigem["CODMUNICIPIO"] = codMunicipio.Substring(codMunicipio.Length - 5);
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.