Árvore de páginas


CONTEÚDO

  1. Visão Geral
  2. Data Models
  3. Flex Fields
  4. 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.

Os scripts dos pipelines possuem a extensão .csql e estão armazenados no Azure DevOps, no repositório Gesplan. A Carol busca automaticamente a última versão do script e executa conforme a recorrência cadastrada no ambiente.

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.).

    Não são considerados previstos os seguintes tipos de títulos:

    • NCC-Nota de Crédito ao Cliente
    • 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.).

    Não são considerados previstos os seguintes tipos de títulos:

    • NDF - Nota de Débito ao Fornecedor
    • 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.

    "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
    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
    CR = A1_FILIAL + E1_CLIENTE + E1_LOJA

    CP = A2_FILIAL + E2_FORNECE + E2_LOJA
    CR = A1_FILIAL + E1_CLIENTE + E1_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  Null
    motionWayName_ptBR X5_DESCRI referente E2_FORMAG Null
    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
    CR = ED_CREDIT

    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

    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"


    Cadastro do Plano de Contas:

    "pipelineName": "ct1gesplan"
    "pipelineDescription": "Pipeline para processar dados de Contas Contábeis"
    "outputDataModelName": "ct1gesplan"
    "processScript": "ct1gesplan.csql"


    Cadastro de Centro de Custo:

    "pipelineName": "cttgesplan"
    "pipelineDescription": "Pipeline para processar dados de Centro de Custo"
    "outputDataModelName": "cttgesplan"
    "processScript": "cttgesplan.csql"


    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).

    Para ambientes onde a integração com Gesplan esteja habilitada, a ação de alterar o rateio de um título NÃO é permitido.

    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 ModelGrupo de Flex Fields Nomenclatura da configuraçãoOrigem do dado
    Contas a Receber PrevistoReceber_Previsto

    RecPrevFlex001 a RecPrevFlex050

    SE1, SA1, SED
    Contas a Receber RealizadoReceber_RealizadoRecRealFlex001 a RecRealFlex050SE1, SA1, SED
    Contas a Pagar PrevistoPagar_PrevistoPagPrevFlex001 a PagPrevFlex050SE2, SA2, SED
    Contas a Pagar RealizadoPagar_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.

    4. DEMAIS INFORMAÇÕES