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 do lado PDV no diálogo do Cliente tem que marcar a opção Preenchimento Obrigatório para os campos de Endereço Principal.
Tabelas Utilizadas
- FCFO – Cadastro de Clientes / Fornecedor.
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.
Opcional
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 | 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 | Extension | ||||||||
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 | ||||||||||||
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 | Extension | ||||||||
StateDescription | Descrição da Unidade Federativa | FCFO | DESCETDPGTO | Extension | ||||||||
CountryType \ BillingInformation \ AddressType | ||||||||||||
CountryCode | Código do municípiopaís | FCFO | IDPAISPAGTO | 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 | IDPAISPAGTO | 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. |
---|