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

TOTVS Gestão de Estoque, Compras e Faturamento

Módulo

Financeiro

Segmento Executor

TOTVS Construção e Projetos

Projeto1

Integração BackOffice RM x PDV Protheus

IRM1

PCREQ-7769

Requisito1

PCREQ-7772

Subtarefa1

PDR_CP_MOV008-2

Release de Entrega Planejada

12.1.10

Réplica

Não

País

( X ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 


Objetivo

 Implementação do adapter de integração via Mensagem Única TOTVS do cadastro de Cliente com o PDV, viabilizando assim o CRUD completo do cadastro por envio de mensagem de integração.

 

Definição da Regra de Negócio

 

Considera-se como escopo deste requisito a implementação do adapter de envio de Mensagens Únicas TOTVS para integração do cadastro de Cliente (CustomerVendor), estando o adapter de recebimento desta mesma mensagem fora do escopo do requisito. 

 

A análise e o desenvolvimento do adapter será efetuado considerando a integração com o PDV Protheus, mas também viabilizará a integração com outras fontes de dados desde que respeitado o layout da mensagem.

 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

Cliente/Fornecedor

Inclusão/Alteração/Exclusão

RM \ BackOffice \ Gestão de Estoque, Compras e Faturamento \ Cadastros \ Financeiros \ Clientes / Fornecedores

-

 

Os campos considerados obrigatórios no envio para o correto recebimento no PDV são:

  • Código do Cliente
  • Loja - Campo mapeado para a Coligada do Cli/For
  • Nome
  • Nome Fantasia
  • Endereço
  • Entidade: pessoa física ou pessoa jurídica
  • Município.
  • Estado.
  • País.

O gatilho de integração será executado sempre que a Classificação do registro for Cliente ou Ambos. Por padrão estes registros sempre serão integrados ao realizar qualquer ação no registro de Cliente/Fornecedor, caso a integração BackOffice RM x PDV Protheus esteja ativa.

Como o endereço é uma informação obrigatória para inclusão/alteração de Cliente do lado PDV, sugerimos que no diálogo do Cliente/Fornecedor do RM seja marcada a opção Preenchimento Obrigatório para os campos de Endereço Principal.


Cliente Padrão

No PDV existem parâmetros para definir qual será o Consumidor Final quando não for informado os dados do Cliente na Compra. Com isso, será necessário cadastrar este Cliente no RM e alterar os parâmetros MV_CLIPADMV_LOJAPAD no configurador PROTHEUS (SIGACFG) informando o código do cliente.


Fórmula Visual

Está sendo disponibilizado uma fórmula visual para que possa realizar customizações na integração da entidade Cliente/Fornecedor. Caso deseje utilizar este recurso será necessário importar a fórmula visual que encontra-se disponível na pasta “Fórmulas Visuais”, interna à pasta “ObjetosGerenciais” no ambiente instalado do sistema (“../CorporeRM/ObjetosGerenciais/Fórmulas Visuais”). Ao importar a fórmula visual deverá ser marcado para cada fórmula o parâmetro “Importar Gatilho” na rotina de Importação de Fórmula Visual.

Como para o PDV devem ser enviados os registro Cliente ou Ambos do cadastro de Cliente/Fornecedor, nesta fórmula visual foi criado um contra-gatilho no gatilho "Pode executar o contexto?" para os assinantes de Inclusão, Alteração e Exclusão de Cliente/Fornecedor via mensagem única (FinCFOTotvsMessageSbc). 

Observação: 

  • Quando a integração Manutenção de Ativos (SigaMNT) x BackOffice RM estiver sendo utilizada juntamente com a integração BackOffice RM x PDV Protheus deve ser removido da fórmula visual utilizada para o PDV o contra-gatilho, uma vez que para a integração do Manutenção de Ativos deve-se enviar Cliente, Fornecedor e Ambos. Para isso você pode proceder com uma das seguintes maneiras abaixo:
    • Alterar o retorno do método "CustomCanExecute_ExecuteCode" para ser sempre "true" na fórmula visual de "01_PDV_Cliente.TotvsWF".
    • Editar a fórmula visual para considerar também os registros que possuem a classificação de Cliente/Fornecedor igual a Fornecedor
    • Desativar o gatilho da fórmula visual "01_PDV_Cliente.TotvsWF".

Carga Inicial

Visando facilitar a sincronização das bases de dados RM e PDV foi desenvolvida uma atividade de fórmula visual que se responsabiliza por, a partir de alguns parâmetros, obter os dados necessários e solicitar o envio da Mensagem Única TOTVS CustomerVendor_2.002.

Basicamente é necessário informar a esta atividade somente a lista de chaves dos registros que se deseja integrar, qual a Mensagem Única a enviar e qual o objeto de negócio (DataServer) responsável por retornar as informações do registro. A partir destas informações a atividade se responsabiliza pela leitura, transformação e envio dos dados ao sistema de destino, oferecendo como retorno o Log de integração.

Por padrão a consulta seleciona para envio registros do tipo Cliente ou Ambos que ainda não foram enviados para o Protheus ou que estejam desatualizados no mesmo (data de último envio anterior a data da última modificação do registro).

Todas as mensagens trafegadas também constarão no monitor da fila de integração, para posterior conferência.

Implantação do Adapter na Integração com PDV

Ao executar o configurador da integração será verificado se a base de dados do cliente utiliza a integração de Cliente/Fornecedor na versão 1.000 da mensagem CustomerVendor e caso positivo será apresentada mensagem de erro informando que não será feita a atualização para o uso da versão 2.002 pois existe uma incompatibilidade entre estas e este fato deve ser verificado juntamente com o Suporte.

A verificação será efetuada através da Fila de Mensagens do cliente, considerando que o mesmo possui a versão 1.000 sem conversão prévia caso as três condições abaixo sejam satisfeitas:

  1. Existem registros na Fila de Mensagens para a versão 1.XXX da mensagem CustomerVendor.
  2. Não existem registros na Fila de Mensagens para a versão 2.XXX da mensagem CustomerVendor.
  3. Não existe Adapter em versão 2.XXX para nenhuma integração.

Utilização do campo StoreId (Loja)

Visando evitar erros de chave duplicada caso o usuário cadastre Cliente/Fornecedor global com mesmo código de um outro registro por coligada, o código da Coligada do registro (zero em caso de registro global) será enviado ao Protheus a partir do campo StoreId (Loja) ao invés de enviar o valor '01' fixo.

Listagem de Fórmula Visual:

 RotinaOperaçãoFórmula Visual

Cadastro

Cliente
Inclusão / Alteração / Exclusão
01_PDV_Cliente.TotvsWF
Cliente
Carga inicial

01.Sincronização de Cliente.TotvsWF


Tabelas Utilizadas

  • FCFO – Cadastro de Clientes / Fornecedor.
  • HCINTEGRACAOID – Tabela de-para dos identificadores de cada integração.
  • HCFILAMENSAGEM – Armazena dados da fila de mensageria única.


Entidades de Integração

  • DataServer envolvido
    • FinCFODataBR
  • Transformação
    • Id: CustomerVendor
    • Versão: 2.002
  • Extension: 4d87df6a-0c52-43d1-bff2-f0cf4c498875


Restrições e Pontos de Atenção

  • Mesmo que a empresa não utilize Cliente/Fornecedor global no RM, deve-se compartilhar a tabela referente no Protheus por empresa.
  • No Protheus o código do cliente/fornecedor será composto pelo código do cliente/fornecedor e da coligada, conforme a mascara “[CODCOLIGADA]|[CODCFO]”.
  • Como o código do País no Protheus é baseado na tabela de classificação do IBGE, deve-se cadastrar esta tabela no RM 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.
  • A informação de Condição de Pagamento padrão não é trafegada no adapter de envio.
    • Caso esta informação passe a ser considerada é importante que seu envio seja efetuado somente se o cadastro de condição de pagamento também for integrado (mensagem PaymentCondition), caso contrário haverá erro de "De-Para não encontrado".
    • Para a integração com PDV Protheus este campo deve ser desconsiderado pois o mesmo não possui uso no mesmo e assim sendo o cadastro de Condição de Pagamento não é sincronizado entre os sistemas.
  • Uma vez que já foi feito consenso que Cliente e Fornecedor são tratados na mesma mensagem (CustomerVendor), é responsabilidade do destinatário processar a mensagem da melhor forma possível para garantir a consistência dos dados na origem e no destino. Se o destino implementa uma única tabela, terá que manipular apenas um registro. Se implementa mais de uma tabela, tem que manipular até 2 registros.

    Exemplo1: <TOTVSMessage ... CustomerVendor...>…<Event>upsert</Event>…<Type>Customer<Type>…

    Como não dá para saber se este Cliente (<Type>Customer) é uma inclusão ou uma alteração (<Event>upsert), tem que verificar no de/para.
    • Se o EAI destino é capaz de cadastrar um único registro como ambos: deve verificar se já existe um registro com este ID, caso afirmativo fazer alteração deste registro para Cliente e alterar os demais campos, senão fazer inclusão.
    • Se o EAI destino NÃO é capaz de cadastrar um único registro como ambos: primeiro deve verificar se já existe um Fornecedor com este ID, caso afirmativo deve tentar excluir este Fornecedor (não conseguindo gerar uma exceção semelhante a “o código xx já é um fornecedor não pode ser excluído/alterado para tipo cliente.”). Segundo, deve verificar se já existe um registro de Cliente com este ID, caso afirmativo fazer alteração dos demais campos, senão fazer inclusão.

    Exemplo 2: <TOTVSMessage ... CustomerVendor...>…<Event>upsert</Event>…<Type>Both<Type>…
    • Se o EAI destino é capaz de cadastrar um único registro como ambos, deve verificar se o ID já existe para definir se faz alteração ou inclusão.
    • Se o EAI destino tem 2 tabelas distintas, deve incluir/alterar um Cliente. E ainda incluir/alterar um fornecedor.

 

Fluxo do Processo

 


Mapeamento dos Campos

 

  • Mensagem CustomerVendor 2.002

 

Mensagem Padrão

Descrição

RM

Tabela

Campo

Observação

CompanyId

Código da coligada

FCFO

CODCOLIGADA

Código da Coligada é obtido a partir do De-Para de Filial.

BranchId

Código da filial

FCFO

CODFILIAL

CompanyInternalId

InternalId da filial

FCFO

CODCOLIGADA e CODFILIAL

Code

Código do Cliente/Fornecedor

FCFO

CODCFO

 

StoreIdLojaFCFOCODCOLIGADA 

InternalId

Chave primária do registro

FCFO

CODCOLIGADA|CODCFO

 

ShortNameNome ReduzidoFCFONOMEFANTASIAEnvia os primeiros 12 caracteres.

Name

Nome do Cliente/Fornecedor

FCFO

NOME

Envia os primeiros 40 caracteres.

Type

Tipo do Registro

FCFO

PAGREC

Fixo “Customer”: Cliente

Fixo “Vendor”: Fornecedor

Fixo “Both”: Ambos

EntityType

Tipo de Pessoa

FCFO

PESSOAFISOUJUR

Fixo “Person”: Física

Fixo “Company”: Jurídica

MarketSegment

Segmento de Mercado

FCFO

CODTCF

Ver MarketSegmentType

RegisterDate

Data de registro

FCFO

DATACRIACAO

Não utilizado pela linha RM

RegisterSituationSituaçãoFCFOATIVO

Fixo “Active”: Ativo

Fixo “Inactive”: Inativo

Fixo “Canceled”: Cancelado

Fixo “Pending”: Pendente

Fixo “Suspended”: Suspenso
CommentsObservações  Não utilizado pela linha RM
GovernmentalInformation   

Ver GovernmentalInformationType

Address   Ver AddressType
ShippingAddress   Ver ShippingAddress \ AddressType
ListOfCommunicationInformation   Ver CommunicationInformationType
ListOfContacts   Ver ContactInformationType
ListOfBankingInformation   Ver ListOfBankingInformation \ BankingInformation
BillingInformation
BillingCustomerCode   Não utilizado pela linha RM
BillingCustomerInternalId   Não utilizado pela linha RM
Address   Ver AddresType
VendorInformation   Ver VendorInformationType
FiscalInformation    
Category   Não utilizado no RM
IsRetentionAgent   Não utilizado no RM
CreditInformation    
CreditIndicator   Não utilizado no RM
CreditEvaluation   Não utilizado no RM
ShipmentCreditEvaluation   Não utilizado no RM
CreditLimit FCFOLIMITECREDITO 
CreditLimitCurrency    Não utilizado no RM
CreditLimitDate   Não utilizado no RM
AdditionalCreditLimit   Não utilizado no RM
AdditionalCreditLimitCurrency   Não utilizado no RM
AdditionalCreditLimitDate    Não utilizado no RM
LatePeriods    Não utilizado no RM
BalanceOfCredit    
PaymentConditionCode   Campo não utilizado na integração.
PaymentConditionInternalId   Campo não utilizado na integração.
PriceListHeaderItemCodeCódigo da Tabela de Preço  Não utilizado pela linha RM
PriceListHeaderItemInternalIdInternalId do PriceListHeaderItemCode  Não utilizado pela linha RM
CarrierCodeCódigo da Transportadora default do Cliente  Não utilzado nesta integração.
ContactInformationType
CodeCódigo do ContatoFCFOCONTATOIDCONTATO 
TitleTítulo do Contato  Não utilizado pela linha RM
NameNome do ContatoFCFOCONTATONOME 
DepartmentDepartamento do Contato   
ListOfContact\Contact\CommunicationInformationType 
PhoneNumberNúmero do telefoneFCFOCONTATOTELEFONE 
PhoneExtension RamalFCFOCONTATORAMAL 
FaxNumberNúmero do FAXFCFOCONTATOFAX 
FaxNumberExtensionRamal do FAX  Não utilizado no RM
HomePagePágina da WEB  Não utilizado no RM
EmailCorreio EletrônicoFCFOCONTATOEMAIL 
ListOfContact\Contact\ ContactInformationAddress
AddressRua, Avenida, Rodovia, etcFCFOCONTATORUA 
NumberNúmero do EndereçoFCFOCONTATONUMERO 
Complement Informações complementares do endereçoFCFOCONTATOCOMPLEMENTO 
City \ CityCodeCódigo do MunicípioFCFOCONTATOCODMUNICIPIO 
City\ CityDescriptionDescrição do MunicípioFCFOCONTATOCIDADE 
DistrictBairro   Não utilizado no RM
State \ StateCodeCódigo do EstadoFCFOCONTATOCODETD 
State \ StateDescriptionDescrição do EstadoFCFOCONTATODESCETDCONTATOExtension: DESCETDCONTATO
Country \ CountryCodeCódigo do PaísFCFOCONTATOCODPAISCONTATOExtension: CODPAISCONTATO
Country \ CountryDescriptionDescrição do PaísFCFOCONTATOPAIS 
ZIPCodeCEPFCFOCONTATOCEP 
RegionRegião  Não utilizado no RM
POBoxCaixa Postal  Não utilizado no RM
ListOfBankingInformation \ BankingInformationEsta informações serão enviadas somente se a mensagem Bank estiver mapeada para a integração e existir as informações completas dos dados bancários, ou seja, Banco, Agência, Dígito, Nome da Agência, Conta Corrente e Dígito devem ser informados no RM. Se ao menos um destes campos estiver vazio a lista não será enviada.
BankCodeCódigo do bancoFDADOSPGTONUMEROBANCO 
BankInternalIdInternalId do BankCodeFDADOSPGTOCODCOLIGADA|CODCOLCFO|CODCFO|IDPGTO 
BankNameNome do bancoFDADOSPGTODESCRICAOValor texto tamanho 30
BranchCodeAgênciaFDADOSPGTOCODIGOAGENCIA 
BranchKeyDígito agênciaFDADOSPGTODIGITOAGENCIA 
CheckingAccountNumberNumero contaFDADOSPGTOCONTACORRENTE 
CheckingAccountNumberKeyDígito contaFDADOSPGTODIGITOCONTA 
MarketSegmentTypeSerá enviado quando existir a informação de Tipo de Cliente/Fornecedor (FCFO.CODTCF) cadastrado e no cadastro de Tipo de Cliente Fornecedor existir um Segmento associado ao Tipo de Cliente/Fornecedor.
MarketSegmentCode TSEGMENTOCODSEGM

 

MarketSegmentInternalId TSEGMENTOCODSEGM 
MarketSegmentDescription TSEGMENTODESCRICAO 
VendorInformationType
VendorClassification   Não utilizado no RM
VendorType   Não utilizado no RM
VendorTypeType
VendorTypeCode   Não utilizado no RM
VendorTypeInternalId   Não utilizado no RM
VendorTypeDescription   Não utilizado no RM
TaxPayerType
TaxName   Não utilizado no RM
isPayer   Não utilizado no RM
Mode   Não utilizado no RM
GovernmentalInformationType
IdIdentificação GovernamentalFCFO

CGCCFO, INSCRESTADUAL

INSCRMUNICIPAL

Quando Escopo = “Federal” e Nome = (“CPF” ou “CNPJ”) busca-se a informação na coluna CGCCFO;

Quando Escopo = “State” e Nome = “Inscricao Estadual” busca-se a informação na coluna INSCRESTADUAL;

Quando Escopo = “Municipal” e Nome = “Inscricao Municipal” busca-se a informação na coluna INSCRMUNICIPAL.

@scopeEscopo (Federal, State, Municipal)  Explicação de como será preenchido na tag Id
@nameNome da identificação (Ex.: CNPJ, CPF, etc.)  Explicação de como será preenchido na tag Id
@issueOnData em que a identificação foi expedida (quando aplicável)   Não utilizado no RM.
@expiresOnData de expiração da identificação.   Não utilizado no RM.
AddressType
AddressRua, Avenida, Rodovia, etcFCFORUA 
NumberNúmero do EndereçoFCFONUMERO 
Complement Informações complementares do endereçoFCFOCOMPLEMENTO 
City   Ver CityType
DistrictBairro FCFOBAIRRO 
State   Ver StateType
Country   Ver CountryType
ZIPCodeCEPFCFOCEP 
RegionRegião  Não utilizado no RM
POBoxCaixa PostalFCFOCAIXAPOSTAL 
CityType
CityCodeCódigo do municípioFCFOCODMUNICIPIO 
CityInternalIdInternalId do CityCodeFCFOCODMUNICIPIO 
CityDescriptionDescrição do municípioFCFOCIDADE 
StateType
StateCodeCódigo da Unidade FederativaFCFOCODETD 
StateInternalIdInternalId do StateCodeFCFOCODETD 
StateDescriptionDescrição da Unidade FederativaGETDNOME 
CountryType    
CountryCodeCódigo do paísFCFOIDPAISPreenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração.
CountryInternalIdInternalId do CountryCodeFCFOIDPAISPreenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração.
CountryDescriptionDescrição do paísFCFOPAIS 
CommunicationInformationType
PhoneNumberNúmero do telefoneFCFOTELEFONE 
PhoneExtensionRamal  Não utilizado no RM
FaxNumberNúmero do FAXFCFOFAX 
FaxNumberExtensionRamal do FAX  Não utilizado no RM
HomePagePágina da WEB  Não utilizado no RM
EmailCorreio EletrônicoFCFOEMAIL 
ShippingAddress \ AddressTypeEstas tags serão enviadas somente se o campo RUAENTREGA possui valor.
AddressRua, Avenida, Rodovia, etcFCFORUAENTREGA 
NumberNúmero do EndereçoFCFONUMEROENTREGA 
Complement Informações complementares do endereçoFCFOCOMPLEMENTREGA 
CityCidade  Ver CityType \ ShippingAddress \ AddressType
DistrictBairro FCFOBAIRROENTREGA 
StateEstado  Ver StateType \ ShippingAddress \ AddressType
ZIPCodeCEPFCFOCEPENTREGA 
RegionRegião  Não utilizado no RM
POBoxCaixa PostalFCFOCAIXAPOSTALENTREGA 
CityType \ ShippingAddress \ AddressType
CityCodeCódigo do municípioFCFOCODMUNICIPIOENTREGA 
CityDescriptionDescrição do municípioFCFOCIDADEENTREGA 
StateType \ ShippingAddress \ AddressType
StateCodeCódigo da Unidade FederativaFCFOCODETDENTREGA 
StateDescriptionDescrição da Unidade FederativaGETDDESCETDENTREGA 
CountryType \ ShippingAddress \ AddressType
CountryCodeCódigo do municípioFCFOIDPAISENTREGAPreenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração.
CountryInternalIdInternalId do CountryTypeFCFOIDPAISENTREGAPreenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração.
CountryDescriptionDescrição do municípioFCFOPAISENTREGA 
BillingInformation \ AddressTypeEstas tags serão enviadas somente se o campo RUAPAGTO possui valor.
AddressRua, Avenida, Rodovia, etcFCFORUAPGTO 
NumberNúmero do EndereçoFCFONUMEROPGTO 
Complement Informações complementares do endereçoFCFOCOMPLEMENTOPGTO 
CityCidade  Ver CityType \ BillingInformation \ AddressType
DistrictBairro FCFOBAIRROPGTO 
StateEstado  Ver StateType \ BillingInformation \ AddressType
CountryPaís  Ver CountryType \ BillingInformation \ AddressType
ZIPCodeCEPFCFOCEPPGTO 
RegionRegião  Não utilizado no RM
POBoxCaixa PostalFCFOCAIXAPOSTALPAGAMENTO 
CityType \ BillingInformation \ AddressType
CityCodeCódigo do municípioFCFOCODMUNICIPIOPGTO 
CityDescriptionDescrição do municípioFCFOCIDADEPGTO 
StateType \ BillingInformation \ AddressType    
StateCodeCódigo da Unidade FederativaFCFOCODETDPGTO 
StateDescriptionDescrição da Unidade FederativaFCFODESCETDPGTO 
CountryType \ BillingInformation \ AddressType
CountryCodeCódigo do paísFCFOIDPAISPGTOPreenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração.
CountryInternalIdInternalId do CountryCodeFCFOIDPAISPGTOPreenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração.
DescriptionDescrição do municípioFCFOPAISPAGTO 

 

 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.