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.
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:
"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:
"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 |
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 .Negocio + ' - 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 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 |
CP = Si salida es SED->ED_DEBITO / Si entrada SED->ED_CREDIT |
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 |
CP = ED_CCD |
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 |
AvailabilityDate | Null |
FK5_DTDISP |
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).
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:
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.