ÍNDICE

  1. Visión general
  2. Data Models
  3. Flex Fields
  4. Otras informaciones

01. VISIÓN GENERAL



Carol tiene un área de almacenamiento donde quedan las staging tables, que son las tablas que almacenan los datos provenientes del ERP. Los Data Models son estructuras de datos definidas dentro de Carol, y en estas estructuras se almacenan las informaciones resultantes del procesamiento de las pipelines.

En el siguiente tópico 02, se presenta un modelo visual de cómo se trabajan las informaciones dentro de Carol, antes de enviarse al Gesplam. Cada cuadro presentado dentro del nivel Pipeline, representa un conjunto identificado y temporal de resultados, derivado de una consulta sql (common table expression - CTE). Se utilizan como alternativa a, por ejemplo, subquerys y views, para una mejor organización y mantenimiento de las consultas.

Dentro del código de las pipelines, estas CTE están dispuestas de la siguiente manera:


WITH common_table_expression_1 (query_statement_1),
common_table_expression_2 ( query_statement_2 ),
common_table_expression_n ( query_statement_n )


Cada CTE almacena un conjunto intermediario de registros que son utilizadas por las siguientes CTE, hasta que por fin se genera un CTE final, que contiene los registros que cumplen la regla de negocio y que se utilizarán en el Data Models.

Los scripts de los pipelines tienen la extensión .csql y están almacenados en el Azure DevOps, en el repositorio Gesplan. Carol busca automáticamente la última versión del script y ejecuta de acuerdo con la recurrencia registrada en el entorno.

02. DATA MODELS

Principales tablas y campos involucrados:

    Modelo de datos Previsto: considera todas las partidas pendientes de Clientes, es decir, títulos por cobrar con saldo pendiente. El valor previsto para el título pendiente se calculará considerando sus descuentos existentes, es decir, títulos AB- e impuestos calculados en la emisión (IR-, IS-, PI-, CF-, etc.) y títulos (NCC) Nota de Crédito al Cliente.

    No se consideran previstos los siguientes tipos de títulos:

    • RA - Cobranza Anticipada


    "pipelineName": "contasreceberprevisto"
    "pipelineDescription": "Pipeline para procesar datos por Cobrar previsto"
    "outputDataModelName": "contasreceberprevisto"
    "processScript": "contasreceberprevisto.csql"

    Modelo de datos Realizado: considera todas las partidas de Clientes que tengan movimiento bancario atribuido, como cobranzas anticipadas y bajas totales o parciales.

    Movimientos bancarios sin vínculo con Títulos por cobrar no se enviarán en la integración.

    "pipelineName": "contasreceberrealizado"
    "pipelineDescription": "Pipeline para procesar datos por cobrar realizado"
    "outputDataModelName": "contasreceberrealizado"
    "processScript": "contasreceberrealizado.csql"

    Modelo de datos Previsto: considera todas las partidas pendientes de Proveedores, es decir, títulos por pagar con saldo pendiente. El valor previsto para el título pendiente se calculará considerando sus descuentos existentes, es decir, títulos AB- e impuestos calculados en la emisión (IR-, IS-, PI-, CF-, etc.) y títulos (NDF) Nota de Débito al Proveedor.

    No se consideran previstos los siguientes tipos de títulos:

    • PA - Pago Anticipado (excepto cuando no genere movimiento bancario).


    "pipelineName": "contaspagarprevisto"
    "pipelineDescription": "Pipeline para procesar datos por Pagar previsto"
    "outputDataModelName": "contaspagarprevisto"
    "processScript": "contaspagarprevisto.csql"

    Modelo de datos Realizado: considera todas las partidas de Proveedores que tengan movimiento bancario atribuido, como pagos anticipados y bajas totales o parciales.

    Movimientos bancarios sin vínculo con Títulos por pagar no se enviarán en la integración.

    "pipelineName": "contaspagarrealizado"
    "pipelineDescription": "Pipeline para procesar datos por Pagar realizado"
    "outputDataModelName": "contaspagarrealizado"
    "processScript": "contaspagarrealizado.csql"

    Campos de los Data Models del Financiero


    Atributo

    Contenido DM Previsto

    Contenido DM Realizado

    __mdmID

    ExternalCodeDetail

    Ver solapa Datos por proceso

    (primary key del datamodel y en la Gesplan)

    Ver solapa Datos por proceso

    (primary key del datamodel y en la Gesplan)

    filtroDataAtualizacao

    Timestamp de la Staging Table

    Timestamp de la Staging Table

    externalCodeHeader

    Ver solapa Datos por proceso

    Ver solapa Datos por proceso

    externalCodeDetail

    Ver solapa Datos por proceso

    Ver solapa Datos por proceso

    businessUnit_2

    Grupo + Empresa + Unid .Negocio  ( sep="|" pipe )

    Grupo + Empresa + Unid .Negocio  ( sep="|" pipe )

    divisongroup

    Sucursal

    Sucursal

    originSystem

    SE1 = 'CR' / SE2 = 'CP'

    SE1 = 'CR' / SE2 = 'CP'

    originSystemName

    SE1 = 'CUENTAS POR COBRAR' / SE2 = 'CUENTAS POR PAGAR'

    SE1 = 'CUENTAS POR COBRAR' / SE2 = 'CUENTAS POR 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

    Prefijo + Número + Cuota + Tipo

    Prefijo + Número + Cuota + Tipo

    currency

    Código + Descripción de la moneda - conforme  campos E1_MOEDA/E2_MOEDA

    Código + Descripción de la moneda - conforme campos E1_MOEDA/E2_MOEDA

    bankCurrency

    Null

    Código + Descripción de la moneda - conforme la moneda del banco, donde se realizó el movimiento, 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 .Negocio + ' - 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 / 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 del título - Descuentos

    FK5_VLMOE2 - Valor en la moneda del título

    proratedValue

    Ver solapa Datos por proceso

    Ver solapa Datos por proceso

    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

    Estructura del registro de empresas: Grupo + Empresa + Unid .Negocio + Sucursal 

    ( sep="|" pipe )

    Estructura del registro de empresas: Grupo + Empresa + Unid .Negocio + Sucursal 

    ( sep="|" pipe )

    accountingAccount

    CP = ED_DEBITO
    CR = ED_CREDIT

    CP = Si salida es SED->ED_DEBITO / Si entrada SED->ED_CREDIT 
    CR = Si salida es SED->ED_CREDIT / Si entrada SED->ED_DEBITO

    accountingAccountName_ptBR

    CT1_DESC01  

    CT1_DESC01

    accountingAccountClassification

    CT1_NATCTA

    CT1_NATCTA

    costCenterPlan

    Estructura del registro de empresas: Grupo + Empresa + Unid .Negocio + Sucursal 

    ( sep="|" pipe )

    Estructura del registro de empresas: Grupo + Empresa + Unid .Negocio + Sucursal 

    ( sep="|" pipe )

    costCenter

    CP = E2_CCUSTO / si no existe, utiliza ED_CCD 
    CR = E1_CCUSTO / si no existe, utiliza ED_CCC

    CP = ED_CCD
    CR = ED_CCC

    compcostCenterName_ptBR

    CTT_DESC01 

    CTT_DESC01

    integrationType

    Blanco o 'E' 

    'E' indicando borrado del registro/movimiento

    Blanco o 'E' 

    'E' indicando borrado del registro/movimiento

    flexField001

    Modalidad del título (SE1 / SE2)

    Modalidad del título (SE1 / SE2)

    flexField002

    Modalidad del prorrateo (SEV)

    Modalidad del prorrateo (SEV)

    flexField003

    Centro de costo del prorrateo (SEZ)

    Centro de costo del prorrateo (SEZ)

    erp_id

    Clave del título, de acuerdo con el campo protheus_pk en la staging table de Carol.

    Clave del título, de acuerdo con el campo protheus_pk na staging table de Carol.


    Movimiento bancario

    Atributo Contenido DM Movimiento bancario

    __mdmID

    ExternalCodeHeader

    ExternalCodeDetail

    FK5_IDMOV

    (primary key del datamodel y en Gesplan)

    businessUnit_2 Grupo + Empresa + Unid .Negocio  ( 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 "Movimiento bancario."
    conversionAccount FK5_TXMOED
    originRoutine FK5_ORIGEM
    accountDebit FK8_DEBITO - Cuenta contable débito             
    accountCredit FK8_CREDIT - Cuenta contable crédito            
    costCenterDebit FK8_CCD - Centro de costo débito   
    costCenterCredit FK8_CCC - Centro de costo crédito  
    itemDebit FK8_ITEMD - Ítem contable débito     
    itemCredit FK8_ITEMC - Ítem contable crédito    
    classValueDebit FK8_CLVLDB - Clase valor débito      
    classValueCredit FK8_CLVLCR - Classe Valor credito     
    originSystem "MB"

    Registro del plan de cuentas

    "pipelineName": "ct1gesplan"
    "pipelineDescription": "Pipeline para procesar datos de Cuentas contables"
    "outputDataModelName": "ct1gesplan"
    "processScript": "ct1gesplan.csql"


    Registro de centro de costo:

    "pipelineName": "cttgesplan"
    "pipelineDescription": "Pipeline para procesar datos de Centro de costo"
    "outputDataModelName": "cttgesplan"
    "processScript": "cttgesplan.csql"


    En todos los Data Models (exceoto Movimiento bancario) está previsto el envío del prorrateo Multimodalidad vs. Centro de costo, si estuviera habilitado por medio de los parámetros MV_MULNATP y MV_MULNATR.

    Por ello, después que el título tiene prorrateo, se realizará el envío del registro divido entre la cantidad de líneas que se prorratee el valor; cada línea con el contenido de la Modalidad del título, Modalidad del prorrateo (EV_NATUREZ) y Centro de costo distribuido para la Modalidad del prorrateo (EZ_CCUSTO).

    Para entornos donde la integración con Gesplan esté habilitada, la acción de modificar el prorrateo de un título NO está permitida.

    03. FLEX FIELDS

    La integración también permite que los campos específicos (o campos estándar que no forman parte de la integración) se utilicen en la Gesplan.

    Esta configuración, aunque es considerada por una funcionalidad estándar de Carol, debe realizarse en conjunto con el equipo Gesplan,  para que haya un De/A entre los sistemas, y que la Gesplan sea capaz de identificar a qué se refiere este nuevo dato.

    En Carol, esta configuración se realiza dentro del App Settings del tenant del cliente, después de registrar los pipelines llevarán el contenido de estos campos de las staging tables a los data models.

    Cada Data Model soporta hasta 50 campos personalizados. La configuración debe seguir una nomenclatura y debe estar vinculado a un grupo de campo de nombre fijo también, de acuerdo con lo descrito a continuación:


    Data Model

    Grupo de Flex Fields 

    Nomenclatura de la configuración

    Origen del dato

    Cuentas por cobrar previsto

    Receber_Previsto

    RecPrevFlex001 a RecPrevFlex050

    SE1, SA1, SED

    Cuentas por cobrar realizado

    Receber_Realizado

    RecRealFlex001 a RecRealFlex050

    SE1, SA1, SED

    Cuentas por pagar previsto

    Pagar_Previsto

    PagPrevFlex001 a PagPrevFlex050

    SE2, SA2, SED

    Cuentas por pagar realizado

    Pagar_Realizado

    PagRealFlex001 a PagRealFlex050

    SE2, SA2, SED


    El registro de los flex fields está restringido solamente a los campos de las tablas listadas en la columna Origen del dato. Cualquier otra configuración que indique un campo de otra tabla causará falla en la ejecución del pipeline.

    Los flex fields 001, 002 y 003 de los data models Pagar y Cobrar, no deben registrarse en el App settings, estos se reservan para uso exclusivo, definido previamente dentro de cada pipeline:

    • Flex Field 001 - Modalidad del título (E1 / E2 Modalidad)
    • Flex Field 002 - Modalidad del prorrateo del título (EV_NATUREZ)
    • Flex Field 003 - Centro de costo del prorrateo (EZ_CCUSTO)


    App settings de Carol


    La nomenclatura detallada anteriormente se refiere a la configuración de los flex fields, ya el nombre del campo dentro del data model que cargará este contenido configurado tendrá el nombre flexfield0xx (donde xx indica el número del campo de acuerdo con la numeración de la configuración).

    En el ejemplo de configuración de flex fields a continuación, tenemos la siguiente regla:

    El contenido de los campos ED_CALCIRF y E2_VRETIRF estará disponible en el data model Cuentas por pagar realizado en los campos flexfield004 y flexfield005 respectivamente, porque se registraron en el grupo de flex fields "Pagar_Realizado"

    El contenido de los campos E1_ORIGEM, E1_STATUS y A1_NREDUZ estará disponible en el data model Cuentas por cobrar previsto en los campos flexfield004. flexfield005 y flexfield006 respectivamente, porque se registraron en el grupo de flex fields "Receber_Previsto"

    Aviso

    Independientemente del tipo de dato del origen (fecha, carácter o numérico, por ejemplo) , todo flex field debe ser registrado como STRING.

    4. OTRAS INFORMACIONES