Histórico da Página
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 - será enviado sempre 01
- 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.
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 tem que marcar /Fornecedor do RM seja marcada a opção Preenchimento Obrigatório para os campos de Endereço Principal.
Fórmula Visual
Para sincronizar o cadastro será necessário importar a fórmula visual que encontra-se disponível na pasta “Sugeridos”, interna à pasta “_ImpExp” no ambiente instalado do sistema (“../CorporeRM/_ImpExp/Sugeridos”). 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.
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çãoTodas as mensagens trafegadas também constarão no monitor da fila de integração, para posterior conferência.
Listagem de Fórmula Visual:
Rotina | Operação | Fó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.
- 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.
Visando facilitar a sincronização das bases de dados RM e SigaMNT 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.
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.
Todas as mensagens trafegadas também constarão no monitor da fila de integração, para posterior conferência.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 |
|
StoreId | Loja | Fixo "01" | ||
InternalId | Chave primária do registro | FCFO | CODCOLIGADA|CODCFO |
|
ShortName | Nome Reduzido | FCFO | NOMEFANTASIA | Envia 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 |
RegisterSituation | Situação | FCFO | ATIVO | Fixo “Active”: Ativo Fixo “Inactive”: Inativo Fixo “Canceled”: Cancelado Fixo “Pending”: Pendente Fixo “Suspended”: Suspenso |
Comments | Observaçõ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 | FCFO | LIMITECREDITO | ||
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 | Código do Prazo de Pagamento | TCPGFCFO | CODCPGCOMPRA | Valor texto tamanho 03 |
PaymentConditionInternalId | InternalId do PaymentConditionCode | TCPGFCFO | CODCOLIGADA|IDCPGFCFO | |
PriceListHeaderItemCode | Código da Tabela de Preço | Não utilizado pela linha RM | ||
PriceListHeaderItemInternalId | InternalId do PriceListHeaderItemCode | Não utilizado pela linha RM | ||
CarrierCode | Código da Transportadora default do Cliente | Não utilzado nesta integração. | ||
ContactInformationType | ||||
Code | Código do Contato | FCFOCONTATO | IDCONTATO | |
Title | Título do Contato | Não utilizado pela linha RM | ||
Name | Nome do Contato | FCFOCONTATO | NOME | |
Department | Departamento do Contato | |||
ListOfContact\Contact\CommunicationInformationType | ||||
PhoneNumber | Número do telefone | FCFOCONTATO | TELEFONE | |
PhoneExtension | Ramal | FCFOCONTATO | RAMAL | |
FaxNumber | Número do FAX | FCFOCONTATO | FAX | |
FaxNumberExtension | Ramal do FAX | Não utilizado no RM | ||
HomePage | Página da WEB | Não utilizado no RM | ||
Correio Eletrônico | FCFOCONTATO | |||
ListOfContact\Contact\ ContactInformationAddress | ||||
Address | Rua, Avenida, Rodovia, etc | FCFOCONTATO | RUA | |
Number | Número do Endereço | FCFOCONTATO | NUMERO | |
Complement | Informações complementares do endereço | FCFOCONTATO | COMPLEMENTO | |
City \ CityCode | Código do Município | FCFOCONTATO | CODMUNICIPIO | |
City\ CityDescription | Descrição do Município | FCFOCONTATO | CIDADE | |
District | Bairro | Não utilizado no RM | ||
State \ StateCode | Código do Estado | FCFOCONTATO | CODETD | |
State \ StateDescription | Descrição do Estado | FCFOCONTATO | DESCETDCONTATO | Extension: DESCETDCONTATO |
Country \ CountryCode | Código do País | FCFOCONTATO | CODPAISCONTATO | Extension: CODPAISCONTATO |
Country \ CountryDescription | Descrição do País | FCFOCONTATO | PAIS | |
ZIPCode | CEP | FCFOCONTATO | CEP | |
Region | Região | Não utilizado no RM | ||
POBox | Caixa Postal | Não utilizado no RM | ||
ListOfBankingInformation \ BankingInformation | Esta 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. | |||
BankCode | Código do banco | FDADOSPGTO | NUMEROBANCO | |
BankInternalId | InternalId do BankCode | FDADOSPGTO | CODCOLIGADA|CODCOLCFO|CODCFO|IDPGTO | |
BankName | Nome do banco | FDADOSPGTO | DESCRICAO | Valor texto tamanho 30 |
BranchCode | Agência | FDADOSPGTO | CODIGOAGENCIA | |
BranchKey | Dígito agência | FDADOSPGTO | DIGITOAGENCIA | |
CheckingAccountNumber | Numero conta | FDADOSPGTO | CONTACORRENTE | |
CheckingAccountNumberKey | Dígito conta | FDADOSPGTO | DIGITOCONTA | |
MarketSegmentType | Será 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 | TSEGMENTO | CODSEGM |
| |
MarketSegmentInternalId | TSEGMENTO | CODSEGM | ||
MarketSegmentDescription | TSEGMENTO | DESCRICAO | ||
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 | ||||
Id | Identificação Governamental | FCFO | 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. |
@scope | Escopo (Federal, State, Municipal) | |||
@name | Nome da identificação (Ex.: CNPJ, CPF, etc.) | |||
@issueOn | Data em que a identificação foi expedida (quando aplicável) | Não utilizado no RM. | ||
@expiresOn | Data de expiração da identificação. | Não utilizado no RM. | ||
AddressType | ||||
Address | Rua, Avenida, Rodovia, etc | FCFO | RUA | |
Number | Número do Endereço | FCFO | NUMERO | |
Complement | Informações complementares do endereço | FCFO | COMPLEMENTO | |
City | Ver CityType | |||
District | Bairro | FCFO | BAIRRO | |
State | Ver StateType | |||
Country | Ver CountryType | |||
ZIPCode | CEP | FCFO | CEP | |
Region | Região | Não utilizado no RM | ||
POBox | Caixa Postal | FCFO | CAIXAPOSTAL | |
CityType | ||||
CityCode | Código do município | FCFO | CODMUNICIPIO | |
CityInternalId | InternalId do CityCode | FCFO | CODMUNICIPIO | |
CityDescription | Descrição do município | FCFO | CIDADE | |
StateType | ||||
StateCode | Código da Unidade Federativa | FCFO | CODETD | |
StateInternalId | InternalId do StateCode | FCFO | CODETD | |
StateDescription | Descrição da Unidade Federativa | GETD | NOME | |
CountryType | ||||
CountryCode | Código do país | FCFO | IDPAIS | Preenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração. |
CountryInternalId | InternalId do CountryCode | FCFO | IDPAIS | Preenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração. |
CountryDescription | Descrição do país | FCFO | PAIS | |
CommunicationInformationType | ||||
PhoneNumber | Número do telefone | FCFO | TELEFONE | |
PhoneExtension | Ramal | Não utilizado no RM | ||
FaxNumber | Número do FAX | FCFO | FAX | |
FaxNumberExtension | Ramal do FAX | Não utilizado no RM | ||
HomePage | Página da WEB | Não utilizado no RM | ||
Correio Eletrônico | FCFO | |||
ShippingAddress \ AddressType | Estas tags serão enviadas somente se o campo RUAENTREGA possui valor. | |||
Address | Rua, Avenida, Rodovia, etc | FCFO | RUAENTREGA | |
Number | Número do Endereço | FCFO | NUMEROENTREGA | |
Complement | Informações complementares do endereço | FCFO | COMPLEMENTREGA | |
City | Cidade | Ver CityType \ ShippingAddress \ AddressType | ||
District | Bairro | FCFO | BAIRROENTREGA | |
State | Estado | Ver StateType \ ShippingAddress \ AddressType | ||
ZIPCode | CEP | FCFO | CEPENTREGA | |
Region | Região | Não utilizado no RM | ||
POBox | Caixa Postal | FCFO | CAIXAPOSTALENTREGA | |
CityType \ ShippingAddress \ AddressType | ||||
CityCode | Código do município | FCFO | CODMUNICIPIOENTREGA | |
CityDescription | Descrição do município | FCFO | CIDADEENTREGA | |
StateType \ ShippingAddress \ AddressType | ||||
StateCode | Código da Unidade Federativa | FCFO | CODETDENTREGA | |
StateDescription | Descrição da Unidade Federativa | GETD | DESCETDENTREGA | |
CountryType \ ShippingAddress \ AddressType | ||||
CountryCode | Código do município | FCFO | IDPAISENTREGA | Preenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração. |
CountryInternalId | InternalId do CountryType | FCFO | IDPAISENTREGA | Preenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração. |
CountryDescription | Descrição do município | FCFO | PAISENTREGA | |
BillingInformation \ AddressType | Estas tags serão enviadas somente se o campo RUAPAGTO possui valor. | |||
Address | Rua, Avenida, Rodovia, etc | FCFO | RUAPGTO | |
Number | Número do Endereço | FCFO | NUMEROPGTO | |
Complement | Informações complementares do endereço | FCFO | COMPLEMENTOPGTO | |
City | Cidade | Ver CityType \ BillingInformation\ AddressType | ||
District | Bairro | FCFO | BAIRROPGTO | |
State | Estado | Ver StateType \ BillingInformation \ AddressType | ||
Country | País | Ver CountryType \ BillingInformation \ AddressType | ||
ZIPCode | CEP | FCFO | CEPPGTO | |
Region | Região | Não utilizado no RM | ||
POBox | Caixa Postal | FCFO | CAIXAPOSTALPAGAMENTO | |
CityType \ BillingInformation \ AddressType | ||||
CityCode | Código do município | FCFO | CODMUNICIPIOPGTO | |
CityDescription | Descrição do município | FCFO | CIDADEPGTO | |
StateType \ BillingInformation \ AddressType | ||||
StateCode | Código da Unidade Federativa | FCFO | CODETDPGTO | |
StateDescription | Descrição da Unidade Federativa | FCFO | DESCETDPGTO | |
CountryType \ BillingInformation \ AddressType | ||||
CountryCode | Código do país | FCFO | IDPAISPGTO | Preenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração. |
CountryInternalId | InternalId do CountryCode | FCFO | IDPAISPGTO | Preenchido via Extension com base na tabela de classificação definida para País nos parâmetros de integração. |
Description | Descrição do município | FCFO | PAISPAGTO |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|