Intelisis ERP

Intelisis es un ERP que fabrica la empresa Intelisis Software, S.A. de C.V.

Al ser éste un sistema grande, las soluciones de Business Intelligence se desarrollan a la medida de cada necesidad.

En nuestro repositorio de GitHub existen proyectos de B.I. para otros sistemas y se pueden usar como guía de referencia y adaptarse. Estos objetos se proveen bajo la licencia GNU GPLv3 GNU GENERAL PUBLIC LICENSE Versión 3, 29 de Junio 2007.


Tablas Intelisis

Al configurar biPost.exe con System: Intelisis, de fábrica se incluye la tabla Venta en la sincronización.

Screenshot

Cuando se incluye el check Include Catalogs, de fábrica se incluen las siguientes tablas:

Agente
Alm
Art
Condicion
Cta
Cte
Empresa
EmpresaCfg
EmpresaCfg2
EmpresaGral
Mon
MonHist
Prov
Sucursal
UEN
Version

Recomendaciones

Crear dos carpetas

Crea siempre dos carpetas de Bipost, esto te permitirá sincronizar catálogos y movimientos en forma independiente.

Carpeta Catálogos

Tu primer carpeta donde está Bipost la puedes nombrar biPost_catalogos y utilizarás customData.json para enviar únicamente catálogos. Este archivo puede verse de la siguiente forma:

[
  {
    "active": "true",
    "table": "MovTipo",
    "fields": "Modulo, Mov, Clave ",
    "join": "",
    "filter": "",
    "recursiveDateField": ""
  },
  {
    "active": "true",
    "table": "Cta",
    "fields": "Cuenta, Rama, Descripcion, Tipo, EsAcreedora, EsAcumulativa, CentrosCostos, Estatus, ClaveSAT ",
    "join": "",
    "filter": "",
    "recursiveDateField": ""
  },
  {
    "active": "true",
    "table": "CentroCostos",
    "fields": "CentroCostos, Rama, Descripcion, EsAcumulativo, Grupo, SubGrupo, SubSubGrupo, Estatus ",
    "join": "",
    "filter": "",
    "recursiveDateField": ""
  }
]

Abre biPost.exe y asegúrate de quitar el check Recursive Sync.

Usando el JSON del ejemplo anterior, se enviará en cada sincronización todos los renglones de las tablas MovTipo, Cta y CentroCostos. Debido a que Bipost API utiliza una sentencia REPLACE en la base destino de MySQL, los registros se reemplazan utilizando la llave primaria de la tabla origen.

NOTA: Si la tabla que vas a enviar tiene más de 100,000 registros, es recomendable que filtres el query utilizando la opción "filter":.

Carpeta Recursivo

Genera una copia de la carpeta biPost_catalogos, puedes nombrarla biPost_recursivo. Abre el archivo customData.json y especifica las tablas de movimientos que vas a enviar, por ejemplo:

[
  {
    "active": "true",
    "table": "Cont",
    "fields": "Cont.ID, Cont.Empresa, Cont.Mov, Cont.MovID, Cont.FechaEmision, Cont.FechaContable, Cont.Proyecto, Cont.Moneda, Cont.TipoCambio, Cont.Estatus, Cont.Ejercicio, Cont.Periodo, Cont.Moneda2, Cont.TipoCambio2",
    "join": "MovTipo WITH (NOLOCK) ON Cont.Mov = MovTipo.Mov AND MovTipo.Modulo = 'CONT' ",
    "filter": "Cont.Estatus <> 'SINAFECTAR' AND MovTipo.clave IN ('CONT.P','CONT.C') ",
    "recursiveDateField": "Cont.FechaEmision"
  },
  {
    "active": "true",
    "table": "ContD",
    "fields": "ContD.ID, ContD.Renglon, ContD.RenglonSub, ContD.Cuenta, ContD.SubCuenta, ContD.SubCuenta2, ContD.SubCuenta3, ContD.Debe, ContD.Debe2, ContD.Haber, ContD.Haber2, ContD.Sucursal, ContD.SucursalContable ",
    "join": "Cont WITH (NOLOCK) ON Cont.ID = ContD.ID JOIN MovTipo WITH (NOLOCK) ON Cont.Mov = MovTipo.Mov AND MovTipo.Modulo = 'CONT' ",
    "filter": "Cont.Estatus <> 'SINAFECTAR' AND MovTipo.clave IN ('CONT.P','CONT.C') ",
    "recursiveDateField": "Cont.FechaEmision"
  }
]

Es importante que incluyas el parámetro "recursiveDateField": ya que lo utiliza Bipost para optimizar la extracción y subida de información, por ejemplo: Supongamos que la tabla ContD tiene millones de registros, por tanto al momento de configurar "recursiveDateField": lo utilizarás en conjunto con el check Recursive Sync, ubicado en la pestaña General Settings de biPost.exe:

Screenshot

El rango de fechas que especifiques en General Settings se utilizará para generar una extracción y subida individual al bucket de S3 por cada, reduciendo el tamaño de los datos y el tiempo de carga hacia MySQL.

Mediante esta opción se pueden cargar históricos de varios años.

Uso del Filter

En el ejemplo customData.json anterior, se utilizó el siguiente filtro para la tabla ContD:

"filter": "Cont.Estatus <> 'SINAFECTAR'

Si un registro del módulo Contabilidad se cancela, cambia su estatus a CANCELADO por tanto el query a la base de datos incluye los estatus CANCELADO para que estos cambios se vean reflejados en la base de MySQL.

Si por el contrario se utiliza el filtro "Cont.Estatus = 'CONCLUIDO' entonces el query omite los estatus CANCELADO y al cambiar un ID a estatus CANCELADO no se reflejará el cambio en la base de MySQL, causando inconsistencias.