CONTEÚDO
- Visão Geral
- Data Models
- Flex Fields
- Demais informações
01. VISÃO GERAL
A Carol possui uma área de armazenamento onde ficam as staging tables, que são as tabelas que armazenam os dados brutos provenientes do ERP. Os Data Models são estrutura de dados definidas dentro da Carol, e nessas estruturas são armazenadas as informações resultantes do processamento das pipelines.
No tópico 02 abaixo, é apresentado um modelo visual de como as informação são trabalhadas dentro da Carol, antes de serem enviadas à Gesplam. Cada quadro apresentado dentro da camada Pipeline, representa um conjunto nomeado e temporário de resultados, derivado de uma consulta sql (common table expression - CTE). São utilizadas como alternativa à, por exemplo, subquerys e views, para melhor organização e manutenção das consultas.
Dentro do código das pipelines essas CTE's estão dispostas da seguinte forma:
WITH common_table_expression_1 (query_statement_1),
common_table_expression_2 ( query_statement_2 ),
common_table_expression_n ( query_statement_n )
Cada CTE armazena um conjunto intermediário de registros que são utilizados pelas CTEs seguintes , até que por fim é gerado um CTE final, que contém os registros que atendem à regra de negócio e que serão levados para o Data Models.
02. DATA MODELS
Principais tabelas e campos envolvidos:
Modelo de dados Previsto: contempla todas as partidas em aberto de Clientes, ou seja, títulos a receber com saldo em aberto. O valor previsto para o título em aberto será calculado considerando seus abatimentos existentes, ou seja, títulos AB- e impostos calculados na emissão (IR-, IS-, PI-, CF-, etc.) e títulos (NCC) Nota de Crédito ao Cliente.
Não são considerados previstos os seguintes tipos de títulos:
- RA - Recebimento Antecipado
"pipelineName": "contasreceberprevisto"
"pipelineDescription": "Pipeline para processar dados a Receber Previsto"
"outputDataModelName": "contasreceberprevisto"
"processScript": "contasreceberprevisto.csql"
Modelo de dados Realizado: contempla todas as partidas de Clientes que tenham movimentação bancária atribuída, como recebimentos antecipados e baixas totais ou parciais.
Movimentos bancários sem vinculo com Títulos a Receber não serão enviados na integração.
"pipelineName": "contasreceberrealizado"
"pipelineDescription": "Pipeline para processar dados a Receber Realizado"
"outputDataModelName": "contasreceberrealizado"
"processScript": "contasreceberrealizado.csql"
Modelo de dados Previsto: contempla todas as partidas em aberto de Fornecedores, ou seja, títulos a pagar com saldo em aberto. O valor previsto para o título em aberto será calculado considerando seus abatimentos existentes, ou seja, títulos AB- e impostos calculados na emissão (IR-, IS-, PI-, CF-, etc.) e títulos (NDF) Nota de Débito ao Fornecedor.
Não são considerados previstos os seguintes tipos de títulos:
- PA - Pagamento Antecipado (exceto quando não gerar movimento bancário).
"pipelineName": "contaspagarprevisto"
"pipelineDescription": "Pipeline para processar dados a Pagar Previsto"
"outputDataModelName": "contaspagarprevisto"
"processScript": "contaspagarprevisto.csql"
Modelo de dados Realizado: contempla todas as partidas de Fornecedores que tenham movimentação bancária atribuída, como pagamentos antecipados e baixas totais ou parciais.
Movimentos bancários sem vinculo com Títulos a Pagar não serão enviados na integração.
Para Motivo de Baixa NOR (Normal), a Realização só ocorrerá no Gesplan quando ocorrer o pagamento de cheque vinculado à baixa do(s) título(s).
"pipelineName": "contaspagarrealizado"
"pipelineDescription": "Pipeline para processar dados a Pagar Realizado"
"outputDataModelName": "contaspagarrealizado"
"processScript": "contaspagarrealizado.csql"
Campos dos Data Models do Financeiro
Atributo | Conteúdo DM Previsto | Conteúdo DM Realizado |
---|---|---|
__mdmID ExternalCodeDetail |
Ver aba Dados por Processo (primary key do datamodel e na Gesplan) |
Ver aba Dados por Processo (primary key do datamodel e na Gesplan) |
filtroDataAtualizacao | Timestamp da Staging Table | Timestamp da Staging Table |
externalCodeHeader | Ver aba Dados por Processo | Ver aba Dados por Processo |
externalCodeDetail | Ver aba Dados por Processo | Ver aba Dados por Processo |
businessUnit_2 | Grupo + Empresa + Unid .Negócio ( sep="|" pipe ) | Grupo + Empresa + Unid .Negócio ( sep="|" pipe ) |
divisongroup | Filial | Filial |
originSystem | SE1 = 'CR' / SE2 = 'CP' | SE1 = 'CR' / SE2 = 'CP' |
originSystemName | SE1 = 'CONTAS A RECEBER' / SE2 = 'CONTAS A PAGAR' | SE1 = 'CONTAS A RECEBER' / SE2 = 'CONTAS A PAGAR' |
dateOfIssue | E1_EMISSAO / E2_EMISSAO | E1_EMISSAO / E2_EMISSAO |
dataemissaoNF | E1_EMISSAO / Null para SE2 | E1_EMISSAO / Null para SE2 |
datalanctoNF | E2_EMIS1 / Null para SE1 | E2_EMIS1 / Null para SE1 |
description | E1_HIST / E2_HIST | E1_HIST / E2_HIST |
documentType | E1_TIPO / E2_TIPO | E1_TIPO / E2_TIPO |
documentTypeName_ptBR | X5_DESCRI referente campo TIPO | X5_DESCRI referente campo TIPO |
documentNumber | Prefixo + Num + Parcela + Tipo | Prefixo + Num + Parcela + Tipo |
currency | Código + Descrição da moeda - conforme campos E1_MOEDA/E2_MOEDA | Código + Descrição da moeda - conforme campos E1_MOEDA/E2_MOEDA |
bankCurrency | Null | Código + Descrição da moeda - conforme a moeda do banco onde o movimento foi realizado, campo A6_MOEDA. |
dueDate2 | E1_VENCTO / E2_VENCTO | E1_VENCTO / E2_VENCTO |
dueDateReal | E1_VENCREA / E2_VENCREA | E1_VENCREA / E2_VENCREA |
payday2 | Null | FK5_DATA |
eventType | IF ( FK5_RECPAG ='P' , 'S' , 'E' ) | IF ( FK5_RECPAG ='P' , 'S' , 'E' ) |
currentAccount | Grupo + Empresa + Unid .Negócio + ' - PREV' | A6_FILIAL + FK5_BANCO + FK5_AGENCI + FK5_CONTA |
beneficiary | CP = A2_FILIAL + E2_FORNECE + E2_LOJA |
CP = A2_FILIAL + E2_FORNECE + E2_LOJA |
beneficiaryName | E1_NOMCLI / E2_NOMFOR | E1_NOMCLI / E2_NOMFOR |
beneficiaryType | 3 = FORNECEDOR / 1= CLIENTE | 3 = FORNECEDOR / 1= CLIENTE |
beneficiaryOrigin | SE1 = 'CR' / SE2 = 'CP' | SE1 = 'CR' / SE2 = 'CP' |
motionWay | E2_FORMPAG / E1_SITUACA | E1_SITUACA |
motionWayName_ptBR | X5_DESCRI referente E2_FORMAG / FRV_DESCRI referente E1_SITUACA | FRV_DESCRI referente E1_SITUACA |
paymentNumber | Null | FK5_IDMOV |
value | Saldo do título - Abatimentos | FK5_VLMOE2 - Valor na moeda do título |
proratedValue | Ver aba Dados por Processo | Ver aba Dados por Processo |
valueBusiness | E1_VLCRUZ / E2_VLCRUZ | FK5_VALOR |
conversionBusiness | VLCRUZ / VALOR | FK5_TXMOED |
fixedRateBusiness | IF( VLCRUZ / VALOR <> 0 , '1' , '0' ) | IF( VLCRUZ / VALOR <> 0 , '1' , '0' ) |
valueAccount | 0 | FK5_VALOR |
conversionAccount | VLCRUZ / VALOR | FK5_TXMOED |
fixedRateAccount | IF ( VLCRUZ / VALOR <> 0 , '1' , '0') | IF ( VLCRUZ / VALOR <> 0 , '1' , '0') |
accountingAccountPlan | Estrutura do cadastro de empresas: Grupo + Empresa + Unid .Negócio + Filial ( sep="|" pipe ) |
Estrutura do cadastro de empresas: Grupo + Empresa + Unid .Negócio + Filial ( sep="|" pipe ) |
accountingAccount | CP = ED_DEBITO |
CP = Se saída é SED->ED_DEBITO / Se entrada SED->ED_CREDIT CR = Se saída é SED->ED_CREDIT / Se entrada SED->ED_DEBITO |
accountingAccountName_ptBR | CT1_DESC01 | CT1_DESC01 |
accountingAccountClassification | CT1_NATCTA | CT1_NATCTA |
costCenterPlan | Estrutura do cadastro de empresas: Grupo + Empresa + Unid .Negócio + Filial ( sep="|" pipe ) |
Estrutura do cadastro de empresas: Grupo + Empresa + Unid .Negócio + Filial ( sep="|" pipe ) |
costCenter | CP = E2_CCUSTO / caso não houver utiliza ED_CCD CR = E1_CCUSTO / caso não houver utiliza ED_CCC |
CP = ED_CCD CR = ED_CCC |
compcostCenterName_ptBR | CTT_DESC01 | CTT_DESC01 |
integrationType | Branco ou 'E' 'E' indicando exclusão do registro/movimento |
Branco ou 'E' 'E' indicando exclusão do registro/movimento |
AvailabilityDate | Null |
FK5_DTDISP |
flexField001 | Natureza do título (SE1 / SE2) | Natureza do título (SE1 / SE2) |
flexField002 | Natureza do Rateio (SEV) | Natureza do Rateio (SEV) |
flexField003 | Centro de Custo do Rateio (SEZ) | Centro de Custo do Rateio (SEZ) |
erp_id | Chave do título, conforme campo protheus_pk na staging table da Carol. | Chave do título, conforme campo protheus_pk na staging table da Carol. |
Movimento Bancário
Atributo | Conteúdo DM Movimento Bancário |
---|---|
__mdmID ExternalCodeHeader ExternalCodeDetail |
FK5_IDMOV (primary key do datamodel e na Gesplan) |
businessUnit_2 | Grupo + Empresa + Unid .Negócio ( sep="|" pipe ) |
dueDate2 payday2 |
FK5_DATA |
currrency | A6_MOEDA |
bankCurrency | A6_MOEDA |
value | FK5_VALOR |
flexfield001 | FK5_NATURE |
currentAccount | A6_FILIAL + FK5_BANCO + FK5_AGENCI + FK5_CONTA |
eventType | IF ( FK5_RECPAG ='P' , 'S' , 'E' ) |
beneficiary | "MB" |
documentType | FK5_TPDOC |
documentnumber | If(Trim(IFNull(stg.FK5_DOC,''))='','0',Trim(stg.FK5_DOC)) |
description | FK5_HISTOR |
costcenter | FK5_CCUSTO |
accountingAccount | "0" |
originSystemName | "Movimento Bancário." |
conversionAccount | FK5_TXMOED |
originRoutine | FK5_ORIGEM |
accountDebit | FK8_DEBITO - Conta Contábil Debito |
accountCredit | FK8_CREDIT - Conta Contábil Credito |
costCenterDebit | FK8_CCD - Centro de Custo Debito |
costCenterCredit | FK8_CCC - Centro de Custo Credito |
itemDebit | FK8_ITEMD - Item Contábil Debito |
itemCredit | FK8_ITEMC - Item Contábil Credito |
classValueDebit | FK8_CLVLDB - Classe Valor Debito |
classValueCredit | FK8_CLVLCR - Classe Valor Credito |
originSystem | "MB" |
AvailabilityDate | FK5_DTDISP |
Em todos os Data Models (exceto Movimento Bancário) esta previsto o envio do rateio Multi-natureza x Centro de Custo, caso esteja habilitado através dos parâmetros MV_MULNATP e MV_MULNATR.
Sendo assim, uma vez que título possuir rateio, haverá o envio do registro divido na quantidade de linhas que o valor foi rateado; cada linha com o conteúdo da Natureza do título, Natureza do rateio (EV_NATUREZ) e Centro de Custo distribuído para a Natureza do rateio (EZ_CCUSTO).
03. FLEX FIELDS
A integração permite ainda que campos específicos (ou campos padrão que não fazem parte da integração) sejam levados à Gesplan.
Essa configuração, embora seja contemplada por uma funcionalidade padrão da Carol, deve ser realizada em conjunto com a equipe Gesplan, para que haja um De/Para entre os sistemas, e a Gesplan seja capaz de identificar a que se refere esse novo dado.
Na Carol, essa configuração é feita dentro do App Settings do tenant do cliente, uma vez cadastrado os pipelines levarão o conteúdo desses campos das staging tables para os data models.
Cada Data Model suporte até 50 campos customizados. A configuração deve seguir uma nomenclatura e deve estar vinculado a um grupo de campo de nome fixo também, conforme descrito abaixo:
Data Model | Grupo de Flex Fields | Nomenclatura da configuração | Origem do dado |
---|---|---|---|
Contas a Receber Previsto | Receber_Previsto | RecPrevFlex001 a RecPrevFlex050 | SE1, SA1, SED |
Contas a Receber Realizado | Receber_Realizado | RecRealFlex001 a RecRealFlex050 | SE1, SA1, SED |
Contas a Pagar Previsto | Pagar_Previsto | PagPrevFlex001 a PagPrevFlex050 | SE2, SA2, SED |
Contas a Pagar Realizado | Pagar_Realizado | PagRealFlex001 a PagRealFlex050 | SE2, SA2, SED |
O cadastro dos flex fields esta restrito à campos somente das tabelas listadas na coluna Origem do dado. Qualquer outra configuração que indique um campos de outra tabela causará falha na execução do pipeline.
Os flex fields 001, 002 e 003 dos data models Pagar e Receber, não devem ser cadastrados no App settings, eles são reservados para uso exclusivo, já pré definido dentro de cada pipeline:
- Flex Field 001 - Natureza do título (E1 / E2 Natureza)
- Flex Field 002 - Natureza do Rateio do título (EV_NATUREZ)
- Flex Field 003 - Centro de custo do Rateio (EZ_CCUSTO)
App settings da Carol
A nomenclatura detalhada acima refere-se a configuração dos flex fields, já o nome do campo dentro do data model que carregará esse conteúdo configurado terá o nome flexfield0xx (onde xx indica o número do campo de acordo com a numeração da configuração).
No exemplo de configuração de flex fields a seguir temos a seguinte regra:
O conteúdo dos campos ED_CALCIRF e E2_VRETIRF estará disponível no data model Contas a Pagar Realizado nos campos flexfield004 e flexfield005 respectivamente, pois foram cadastrados no grupo de flex fields "Pagar_Realizado"
O conteúdo dos campos E1_ORIGEM, E1_STATUS e A1_NREDUZ estará disponível no data model Contas a Receber Previsto nos campos flexfield004. flexfield005 e flexfield006 respectivamente, pois foram cadastrados no grupo de flex fields "Receber_Previsto"
Aviso
Independente do tipo de dado da origem (data, caracter ou numérico, por exemplo) , todo flex field deve ser cadastrado como STRING.