-- Ramaflex Movil: tablas que la aplicacion necesita en la infraestructura del ERP. -- Motor: SQL Server (probado en 2017, 2019, 2022 y 2025). Esquema version 2 (2026-11-06). -- Especificacion: https://docurm.random.cl/integracion-erp.html#tablas -- -- Es un solo script, siempre el mismo archivo: con cada version nueva se reemplaza por el nuevo. -- Sirve para instalar desde cero y para actualizar una instalacion anterior: crea las tablas, -- columnas e indices que falten y no borra ni modifica nada de lo que ya existe. Se puede -- ejecutar mas de una vez. Al terminar anota la version 2 en XESQUEMA y guarda ahi -- el catalogo de las tablas (XESQUEMA.CATALOGO), que es de donde lo lee el endpoint. -- -- Las tablas no se relacionan con las tablas del ERP: pueden ir en una base o un esquema aparte. -- Las fechas se guardan en UTC. -- -- Generado desde catalogo.json (erpx/esquema/generar-sql.js). No editar a mano. SET NOCOUNT ON; GO /* ================================= XESQUEMA ================================= */ IF OBJECT_ID(N'XESQUEMA', N'U') IS NULL CREATE TABLE XESQUEMA ( VERSION INT NOT NULL, DESCRIPCION NVARCHAR(200) NULL, APLICADA DATETIME2(3) NOT NULL, CATALOGO NVARCHAR(MAX) NULL, CONSTRAINT PK_XESQUEMA PRIMARY KEY (VERSION) ); GO -- Version 2 IF COL_LENGTH(N'XESQUEMA', N'CATALOGO') IS NULL ALTER TABLE XESQUEMA ADD CATALOGO NVARCHAR(MAX) NULL; GO /* ================================ XREGISTER ================================ */ IF OBJECT_ID(N'XREGISTER', N'U') IS NULL CREATE TABLE XREGISTER ( IDXREGISTER INT IDENTITY(1,1) NOT NULL, KOFU VARCHAR(20) NOT NULL, MAXDEVICE INT NOT NULL CONSTRAINT DF_XREGISTER_MAXDEVICE DEFAULT 1, HABILITADO BIT NOT NULL CONSTRAINT DF_XREGISTER_HABILITADO DEFAULT 1, FECHACRE DATETIME2(3) NOT NULL, QUIENHAB NVARCHAR(64) NULL, FECHAEXP DATETIME2(3) NULL, FIRMA VARCHAR(128) NULL, CONSTRAINT PK_XREGISTER PRIMARY KEY (IDXREGISTER), CONSTRAINT UX_XREGISTER_KOFU UNIQUE (KOFU) ); GO /* =============================== XREGISTERDEV =============================== */ IF OBJECT_ID(N'XREGISTERDEV', N'U') IS NULL CREATE TABLE XREGISTERDEV ( IDXREGISTERDEV INT IDENTITY(1,1) NOT NULL, KOFU VARCHAR(20) NOT NULL, DEVICEID VARCHAR(64) NOT NULL, FECHABIND DATETIME2(3) NOT NULL, FIRMA VARCHAR(128) NULL, MODELO VARCHAR(64) NULL, FABRICANTE VARCHAR(64) NULL, PLATAFORMA VARCHAR(32) NULL, OSVERSION VARCHAR(32) NULL, APPVERSION VARCHAR(20) NULL, SERIAL VARCHAR(64) NULL, ESEMULADOR BIT NULL, IPPUBLICA VARCHAR(45) NULL, FECHAINFO DATETIME2(3) NULL, CONSTRAINT PK_XREGISTERDEV PRIMARY KEY (IDXREGISTERDEV), CONSTRAINT UX_XREGISTERDEV_KOFU_DEV UNIQUE (KOFU, DEVICEID) ); GO IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_XREGISTERDEV_DEVICEID' AND object_id = OBJECT_ID(N'XREGISTERDEV')) CREATE INDEX IX_XREGISTERDEV_DEVICEID ON XREGISTERDEV (DEVICEID); GO /* ================================= XLICCONF ================================= */ -- Una sola fila, con IDXLICCONF = 1. IF OBJECT_ID(N'XLICCONF', N'U') IS NULL CREATE TABLE XLICCONF ( IDXLICCONF INT NOT NULL, MAXFUNC INT NOT NULL CONSTRAINT DF_XLICCONF_MAXFUNC DEFAULT 0, FECHAMOD DATETIME2(3) NULL, QUIENMOD NVARCHAR(64) NULL, FIRMA VARCHAR(128) NULL, CONSTRAINT PK_XLICCONF PRIMARY KEY (IDXLICCONF) ); GO /* ================================ XMOVILDOC ================================ */ IF OBJECT_ID(N'XMOVILDOC', N'U') IS NULL CREATE TABLE XMOVILDOC ( IDXMOVILDOC INT IDENTITY(1,1) NOT NULL, HASH VARCHAR(50) NOT NULL, EMPRESA VARCHAR(10) NOT NULL, KOFU VARCHAR(20) NULL, FAMILIA CHAR(1) NOT NULL CONSTRAINT DF_XMOVILDOC_FAMILIA DEFAULT 'D', TIDO VARCHAR(10) NULL, NUDO VARCHAR(30) NULL, FECHADOC DATETIME2(3) NOT NULL, BRUTO DECIMAL(18,2) NOT NULL CONSTRAINT DF_XMOVILDOC_BRUTO DEFAULT 0, MONTO DECIMAL(18,2) NOT NULL CONSTRAINT DF_XMOVILDOC_MONTO DEFAULT 0, DEVICEID VARCHAR(64) NULL, APPVERSION VARCHAR(20) NULL, FECHAREG DATETIME2(3) NOT NULL, CONSTRAINT PK_XMOVILDOC PRIMARY KEY (IDXMOVILDOC), CONSTRAINT UX_XMOVILDOC_HASH UNIQUE (HASH) ); GO IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_XMOVILDOC_EMP_FECHA' AND object_id = OBJECT_ID(N'XMOVILDOC')) CREATE INDEX IX_XMOVILDOC_EMP_FECHA ON XMOVILDOC (EMPRESA, FECHADOC); IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_XMOVILDOC_KOFU' AND object_id = OBJECT_ID(N'XMOVILDOC')) CREATE INDEX IX_XMOVILDOC_KOFU ON XMOVILDOC (KOFU); GO /* ============================== XMOVILVERSION ============================== */ IF OBJECT_ID(N'XMOVILVERSION', N'U') IS NULL CREATE TABLE XMOVILVERSION ( KOFU VARCHAR(20) NOT NULL, DEVICEID VARCHAR(64) NOT NULL, APPVERSION VARCHAR(20) NOT NULL CONSTRAINT DF_XMOVILVERSION_APPVERSION DEFAULT '', PLATAFORMA VARCHAR(32) NULL, EMPRESA VARCHAR(10) NULL, PRIMERAVEZ DATETIME2(3) NOT NULL, DESDEVERSION DATETIME2(3) NOT NULL, ULTIMAVEZ DATETIME2(3) NOT NULL, CONSTRAINT PK_XMOVILVERSION PRIMARY KEY (KOFU, DEVICEID) ); GO /* =============================== XMOVILESTADO =============================== */ IF OBJECT_ID(N'XMOVILESTADO', N'U') IS NULL CREATE TABLE XMOVILESTADO ( EMPRESA VARCHAR(10) NOT NULL, KOFU VARCHAR(20) NOT NULL, DEVICEID VARCHAR(64) NOT NULL, APPVERSION VARCHAR(20) NULL, PLATAFORMA VARCHAR(32) NULL, ENVIADOEN DATETIME2(3) NULL, HUSOMINUTOS INT NULL, PENDIENTES NVARCHAR(2000) NULL, RECIBIDOEN DATETIME2(3) NOT NULL, CONSTRAINT PK_XMOVILESTADO PRIMARY KEY (EMPRESA, KOFU, DEVICEID) ); GO /* ============================= XMOVILESTADOSYNC ============================= */ IF OBJECT_ID(N'XMOVILESTADOSYNC', N'U') IS NULL CREATE TABLE XMOVILESTADOSYNC ( EMPRESA VARCHAR(10) NOT NULL, KOFU VARCHAR(20) NOT NULL, DEVICEID VARCHAR(64) NOT NULL, SYNC VARCHAR(40) NOT NULL, ULTIMOINTENTO DATETIME2(3) NULL, ULTIMOFIN DATETIME2(3) NULL, RESULTADO VARCHAR(20) NULL, ERROR NVARCHAR(200) NULL, DURACIONMS INT NULL, ULTIMOTERMINADO DATETIME2(3) NULL, FALLOSSEGUIDOS INT NOT NULL CONSTRAINT DF_XMOVILESTADOSYNC_FALLOSSEGUIDOS DEFAULT 0, ULTIMAOMISION DATETIME2(3) NULL, MOTIVOOMISION VARCHAR(20) NULL, RECIBIDOEN DATETIME2(3) NOT NULL, CONSTRAINT PK_XMOVILESTADOSYNC PRIMARY KEY (EMPRESA, KOFU, DEVICEID, SYNC) ); GO /* ================================ XACTFLUJO ================================ */ IF OBJECT_ID(N'XACTFLUJO', N'U') IS NULL CREATE TABLE XACTFLUJO ( EMPRESA VARCHAR(10) NOT NULL, VERSION VARCHAR(100) NOT NULL CONSTRAINT DF_XACTFLUJO_VERSION DEFAULT '', FLUJO NVARCHAR(MAX) NOT NULL, FECHAMOD DATETIME2(3) NOT NULL, QUIENMOD NVARCHAR(160) NULL, CONSTRAINT PK_XACTFLUJO PRIMARY KEY (EMPRESA) ); GO /* ================================= XACTREG ================================= */ IF OBJECT_ID(N'XACTREG', N'U') IS NULL CREATE TABLE XACTREG ( IDXACTREG INT IDENTITY(1,1) NOT NULL, UUID VARCHAR(36) NOT NULL, EMPRESA VARCHAR(10) NOT NULL, KOFU VARCHAR(20) NOT NULL CONSTRAINT DF_XACTREG_KOFU DEFAULT '', KOEN VARCHAR(30) NOT NULL CONSTRAINT DF_XACTREG_KOEN DEFAULT '', SUEN VARCHAR(20) NOT NULL CONSTRAINT DF_XACTREG_SUEN DEFAULT '', ACTIVIDAD VARCHAR(50) NOT NULL CONSTRAINT DF_XACTREG_ACTIVIDAD DEFAULT '', FECHA DATETIME2(3) NOT NULL, FECHAREG DATETIME2(3) NOT NULL, VERSION VARCHAR(100) NULL, RESPUESTAS NVARCHAR(MAX) NULL, APPVERSION VARCHAR(20) NULL, DEVICEID VARCHAR(64) NULL, CONSTRAINT PK_XACTREG PRIMARY KEY (IDXACTREG), CONSTRAINT UX_XACTREG_UUID UNIQUE (UUID) ); GO IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_XACTREG_EMP_KOFU_FECHA' AND object_id = OBJECT_ID(N'XACTREG')) CREATE INDEX IX_XACTREG_EMP_KOFU_FECHA ON XACTREG (EMPRESA, KOFU, FECHA); IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_XACTREG_EMP_FECHA' AND object_id = OBJECT_ID(N'XACTREG')) CREATE INDEX IX_XACTREG_EMP_FECHA ON XACTREG (EMPRESA, FECHA); IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_XACTREG_EMP_FECHAREG' AND object_id = OBJECT_ID(N'XACTREG')) CREATE INDEX IX_XACTREG_EMP_FECHAREG ON XACTREG (EMPRESA, FECHAREG); GO /* ================================= XACTFOTO ================================= */ IF OBJECT_ID(N'XACTFOTO', N'U') IS NULL CREATE TABLE XACTFOTO ( IDXACTFOTO INT IDENTITY(1,1) NOT NULL, UUIDREG VARCHAR(36) NOT NULL, CAMPO VARCHAR(50) NOT NULL CONSTRAINT DF_XACTFOTO_CAMPO DEFAULT '', CLAVE VARCHAR(200) NOT NULL CONSTRAINT DF_XACTFOTO_CLAVE DEFAULT '', HASH VARCHAR(64) NOT NULL CONSTRAINT DF_XACTFOTO_HASH DEFAULT '', CTYPE VARCHAR(40) NULL, BYTES INT NULL, ANCHO INT NULL, ALTO INT NULL, FECHAREG DATETIME2(3) NOT NULL, CONSTRAINT PK_XACTFOTO PRIMARY KEY (IDXACTFOTO), CONSTRAINT UX_XACTFOTO_REG_CAMPO_HASH UNIQUE (UUIDREG, CAMPO, HASH) ); GO /* ================================ XCONCURSO ================================ */ IF OBJECT_ID(N'XCONCURSO', N'U') IS NULL CREATE TABLE XCONCURSO ( EMPRESA VARCHAR(10) NOT NULL, PERIODO CHAR(7) NOT NULL, VERSION VARCHAR(100) NOT NULL CONSTRAINT DF_XCONCURSO_VERSION DEFAULT '', DEFINICION NVARCHAR(MAX) NOT NULL, FECHAMOD DATETIME2(3) NOT NULL, QUIENMOD NVARCHAR(160) NULL, CONSTRAINT PK_XCONCURSO PRIMARY KEY (EMPRESA, PERIODO) ); GO /* =============================== XCONCURSOAV =============================== */ IF OBJECT_ID(N'XCONCURSOAV', N'U') IS NULL CREATE TABLE XCONCURSOAV ( EMPRESA VARCHAR(10) NOT NULL, PERIODO CHAR(7) NOT NULL, KOFU VARCHAR(20) NOT NULL, VERSION VARCHAR(100) NOT NULL CONSTRAINT DF_XCONCURSOAV_VERSION DEFAULT '', GENERADOEN DATETIME2(3) NOT NULL, AVANCE NVARCHAR(MAX) NOT NULL, FECHAMOD DATETIME2(3) NOT NULL, CONSTRAINT PK_XCONCURSOAV PRIMARY KEY (EMPRESA, PERIODO, KOFU) ); GO /* =============================== XTABFUMEIGN =============================== */ IF OBJECT_ID(N'XTABFUMEIGN', N'U') IS NULL CREATE TABLE XTABFUMEIGN ( EMPRESA VARCHAR(10) NOT NULL, AGRUPACION VARCHAR(20) NOT NULL, CODIGO VARCHAR(50) NOT NULL, FECHAMOD DATETIME2(3) NOT NULL, QUIENMOD NVARCHAR(160) NULL, CONSTRAINT PK_XTABFUMEIGN PRIMARY KEY (EMPRESA, AGRUPACION, CODIGO) ); GO /* ================================ XMAEENGPS ================================ */ IF OBJECT_ID(N'XMAEENGPS', N'U') IS NULL CREATE TABLE XMAEENGPS ( IDXMAEENGPS INT IDENTITY(1,1) NOT NULL, UUID VARCHAR(36) NOT NULL, EMPRESA VARCHAR(10) NOT NULL, KOEN VARCHAR(30) NOT NULL CONSTRAINT DF_XMAEENGPS_KOEN DEFAULT '', SUEN VARCHAR(20) NOT NULL CONSTRAINT DF_XMAEENGPS_SUEN DEFAULT '', LAT VARCHAR(30) NOT NULL, LON VARCHAR(30) NOT NULL, PRECISIONM INT NULL, CAPTURADAEN DATETIME2(3) NULL, RECIBIDOEN DATETIME2(3) NOT NULL, KOFU VARCHAR(20) NOT NULL CONSTRAINT DF_XMAEENGPS_KOFU DEFAULT '', DEVICEID VARCHAR(64) NULL, APPVERSION VARCHAR(20) NULL, QUIEN NVARCHAR(160) NULL, ORIGEN VARCHAR(10) NOT NULL CONSTRAINT DF_XMAEENGPS_ORIGEN DEFAULT 'vendedor', MODO VARCHAR(10) NOT NULL CONSTRAINT DF_XMAEENGPS_MODO DEFAULT '', ESTADO CHAR(1) NOT NULL CONSTRAINT DF_XMAEENGPS_ESTADO DEFAULT 'P', LATANT VARCHAR(30) NULL, LONANT VARCHAR(30) NULL, RESUELTOEN DATETIME2(3) NULL, RESUELTOPOR NVARCHAR(160) NULL, MOTIVO NVARCHAR(200) NULL, CONSTRAINT PK_XMAEENGPS PRIMARY KEY (IDXMAEENGPS), CONSTRAINT UX_XMAEENGPS_UUID UNIQUE (UUID) ); GO IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_XMAEENGPS_EMP_ESTADO_REC' AND object_id = OBJECT_ID(N'XMAEENGPS')) CREATE INDEX IX_XMAEENGPS_EMP_ESTADO_REC ON XMAEENGPS (EMPRESA, ESTADO, RECIBIDOEN); IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_XMAEENGPS_KOEN_SUEN' AND object_id = OBJECT_ID(N'XMAEENGPS')) CREATE INDEX IX_XMAEENGPS_KOEN_SUEN ON XMAEENGPS (KOEN, SUEN); GO /* ================================= XPRODIMG ================================= */ IF OBJECT_ID(N'XPRODIMG', N'U') IS NULL CREATE TABLE XPRODIMG ( IDXPRODIMG INT IDENTITY(1,1) NOT NULL, KOPR VARCHAR(50) NOT NULL, ORDEN INT NOT NULL CONSTRAINT DF_XPRODIMG_ORDEN DEFAULT 1, CLAVE VARCHAR(200) NOT NULL, NOMBRE_ORIGEN NVARCHAR(200) NULL, CTYPE VARCHAR(40) NULL, BYTES INT NULL, ANCHO INT NULL, ALTO INT NULL, HASH VARCHAR(64) NULL, CLAVE_MINI VARCHAR(200) NULL, CTYPE_MINI VARCHAR(40) NULL, BYTES_MINI INT NULL, ESTADO CHAR(1) NOT NULL CONSTRAINT DF_XPRODIMG_ESTADO DEFAULT 'A', FECHA DATETIME2(3) NOT NULL, USUARIO NVARCHAR(80) NULL, CONSTRAINT PK_XPRODIMG PRIMARY KEY (IDXPRODIMG), CONSTRAINT UX_XPRODIMG_KOPR_ORDEN UNIQUE (KOPR, ORDEN) ); GO IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_XPRODIMG_FECHA' AND object_id = OBJECT_ID(N'XPRODIMG')) CREATE INDEX IX_XPRODIMG_FECHA ON XPRODIMG (FECHA); GO /* ========================== Fin: version aplicada ========================== */ IF NOT EXISTS (SELECT 1 FROM XESQUEMA WHERE VERSION = 2) INSERT INTO XESQUEMA (VERSION, DESCRIPCION, APLICADA) VALUES (2, N'El catalogo de las tablas se guarda en XESQUEMA.CATALOGO', SYSUTCDATETIME()); GO -- El catalogo de esta version: el endpoint de las tablas lo lee de aqui. UPDATE XESQUEMA SET CATALOGO = N'{"descripcion":"Tablas de Ramaflex en la infraestructura del ERP externo y version del esquema en que aparece cada tabla y columna. Es la fuente: de aqui se generan los scripts SQL (esquema/sql/*.sql, con esquema/generar-sql.js). docurm publica una copia. Especificacion: https://docurm.random.cl/integracion-erp.html#tablas","version":2,"versiones":[{"version":1,"fecha":"2026-11-04","descripcion":"Tablas iniciales de Ramaflex","tablas":["XESQUEMA","XREGISTER","XREGISTERDEV","XLICCONF","XMOVILDOC","XMOVILVERSION","XMOVILESTADO","XMOVILESTADOSYNC","XACTFLUJO","XACTREG","XACTFOTO","XCONCURSO","XCONCURSOAV","XTABFUMEIGN","XMAEENGPS","XPRODIMG"]},{"version":2,"fecha":"2026-11-06","descripcion":"El catalogo de las tablas se guarda en XESQUEMA.CATALOGO","columnas":["XESQUEMA.CATALOGO"]}],"tablas":{"XESQUEMA":{"desde":1,"clave":["VERSION"],"soloLectura":true,"columnas":{"VERSION":{"nulo":false,"tipo":"entero"},"DESCRIPCION":{"nulo":true,"tipo":"texto","largo":200,"unicode":true},"APLICADA":{"nulo":false,"tipo":"fecha"},"CATALOGO":{"nulo":true,"tipo":"texto","largo":null,"unicode":true,"desde":2}}},"XREGISTER":{"desde":1,"clave":["KOFU"],"autonumerico":"IDXREGISTER","unica":"UX_XREGISTER_KOFU","columnas":{"IDXREGISTER":{"nulo":false,"tipo":"entero"},"KOFU":{"nulo":false,"tipo":"texto","largo":20},"MAXDEVICE":{"nulo":false,"tipo":"entero","defecto":1},"HABILITADO":{"nulo":false,"tipo":"logico","defecto":true},"FECHACRE":{"nulo":false,"tipo":"fecha"},"QUIENHAB":{"nulo":true,"tipo":"texto","largo":64,"unicode":true},"FECHAEXP":{"nulo":true,"tipo":"fecha"},"FIRMA":{"nulo":true,"tipo":"texto","largo":128}}},"XREGISTERDEV":{"desde":1,"clave":["KOFU","DEVICEID"],"autonumerico":"IDXREGISTERDEV","unica":"UX_XREGISTERDEV_KOFU_DEV","indices":{"IX_XREGISTERDEV_DEVICEID":["DEVICEID"]},"columnas":{"IDXREGISTERDEV":{"nulo":false,"tipo":"entero"},"KOFU":{"nulo":false,"tipo":"texto","largo":20},"DEVICEID":{"nulo":false,"tipo":"texto","largo":64},"FECHABIND":{"nulo":false,"tipo":"fecha"},"FIRMA":{"nulo":true,"tipo":"texto","largo":128},"MODELO":{"nulo":true,"tipo":"texto","largo":64},"FABRICANTE":{"nulo":true,"tipo":"texto","largo":64},"PLATAFORMA":{"nulo":true,"tipo":"texto","largo":32},"OSVERSION":{"nulo":true,"tipo":"texto","largo":32},"APPVERSION":{"nulo":true,"tipo":"texto","largo":20},"SERIAL":{"nulo":true,"tipo":"texto","largo":64},"ESEMULADOR":{"nulo":true,"tipo":"logico"},"IPPUBLICA":{"nulo":true,"tipo":"texto","largo":45},"FECHAINFO":{"nulo":true,"tipo":"fecha"}}},"XLICCONF":{"desde":1,"clave":["IDXLICCONF"],"nota":"Una sola fila, con IDXLICCONF = 1.","columnas":{"IDXLICCONF":{"nulo":false,"tipo":"entero"},"MAXFUNC":{"nulo":false,"tipo":"entero","defecto":0},"FECHAMOD":{"nulo":true,"tipo":"fecha"},"QUIENMOD":{"nulo":true,"tipo":"texto","largo":64,"unicode":true},"FIRMA":{"nulo":true,"tipo":"texto","largo":128}}},"XMOVILDOC":{"desde":1,"clave":["HASH"],"autonumerico":"IDXMOVILDOC","unica":"UX_XMOVILDOC_HASH","indices":{"IX_XMOVILDOC_EMP_FECHA":["EMPRESA","FECHADOC"],"IX_XMOVILDOC_KOFU":["KOFU"]},"columnas":{"IDXMOVILDOC":{"nulo":false,"tipo":"entero"},"HASH":{"nulo":false,"tipo":"texto","largo":50},"EMPRESA":{"nulo":false,"tipo":"texto","largo":10},"KOFU":{"nulo":true,"tipo":"texto","largo":20},"FAMILIA":{"nulo":false,"tipo":"texto","largo":1,"fijo":true,"defecto":"D"},"TIDO":{"nulo":true,"tipo":"texto","largo":10},"NUDO":{"nulo":true,"tipo":"texto","largo":30},"FECHADOC":{"nulo":false,"tipo":"fecha"},"BRUTO":{"nulo":false,"tipo":"decimal","precision":18,"escala":2,"defecto":0},"MONTO":{"nulo":false,"tipo":"decimal","precision":18,"escala":2,"defecto":0},"DEVICEID":{"nulo":true,"tipo":"texto","largo":64},"APPVERSION":{"nulo":true,"tipo":"texto","largo":20},"FECHAREG":{"nulo":false,"tipo":"fecha"}}},"XMOVILVERSION":{"desde":1,"clave":["KOFU","DEVICEID"],"columnas":{"KOFU":{"nulo":false,"tipo":"texto","largo":20},"DEVICEID":{"nulo":false,"tipo":"texto","largo":64},"APPVERSION":{"nulo":false,"tipo":"texto","largo":20,"defecto":""},"PLATAFORMA":{"nulo":true,"tipo":"texto","largo":32},"EMPRESA":{"nulo":true,"tipo":"texto","largo":10},"PRIMERAVEZ":{"nulo":false,"tipo":"fecha"},"DESDEVERSION":{"nulo":false,"tipo":"fecha"},"ULTIMAVEZ":{"nulo":false,"tipo":"fecha"}}},"XMOVILESTADO":{"desde":1,"clave":["EMPRESA","KOFU","DEVICEID"],"columnas":{"EMPRESA":{"nulo":false,"tipo":"texto","largo":10},"KOFU":{"nulo":false,"tipo":"texto","largo":20},"DEVICEID":{"nulo":false,"tipo":"texto","largo":64},"APPVERSION":{"nulo":true,"tipo":"texto","largo":20},"PLATAFORMA":{"nulo":true,"tipo":"texto","largo":32},"ENVIADOEN":{"nulo":true,"tipo":"fecha"},"HUSOMINUTOS":{"nulo":true,"tipo":"entero"},"PENDIENTES":{"nulo":true,"tipo":"texto","largo":2000,"unicode":true},"RECIBIDOEN":{"nulo":false,"tipo":"fecha"}}},"XMOVILESTADOSYNC":{"desde":1,"clave":["EMPRESA","KOFU","DEVICEID","SYNC"],"columnas":{"EMPRESA":{"nulo":false,"tipo":"texto","largo":10},"KOFU":{"nulo":false,"tipo":"texto","largo":20},"DEVICEID":{"nulo":false,"tipo":"texto","largo":64},"SYNC":{"nulo":false,"tipo":"texto","largo":40},"ULTIMOINTENTO":{"nulo":true,"tipo":"fecha"},"ULTIMOFIN":{"nulo":true,"tipo":"fecha"},"RESULTADO":{"nulo":true,"tipo":"texto","largo":20},"ERROR":{"nulo":true,"tipo":"texto","largo":200,"unicode":true},"DURACIONMS":{"nulo":true,"tipo":"entero"},"ULTIMOTERMINADO":{"nulo":true,"tipo":"fecha"},"FALLOSSEGUIDOS":{"nulo":false,"tipo":"entero","defecto":0},"ULTIMAOMISION":{"nulo":true,"tipo":"fecha"},"MOTIVOOMISION":{"nulo":true,"tipo":"texto","largo":20},"RECIBIDOEN":{"nulo":false,"tipo":"fecha"}}},"XACTFLUJO":{"desde":1,"clave":["EMPRESA"],"columnas":{"EMPRESA":{"nulo":false,"tipo":"texto","largo":10},"VERSION":{"nulo":false,"tipo":"texto","largo":100,"defecto":""},"FLUJO":{"nulo":false,"tipo":"texto","largo":null,"unicode":true},"FECHAMOD":{"nulo":false,"tipo":"fecha"},"QUIENMOD":{"nulo":true,"tipo":"texto","largo":160,"unicode":true}}},"XACTREG":{"desde":1,"clave":["UUID"],"autonumerico":"IDXACTREG","unica":"UX_XACTREG_UUID","indices":{"IX_XACTREG_EMP_KOFU_FECHA":["EMPRESA","KOFU","FECHA"],"IX_XACTREG_EMP_FECHA":["EMPRESA","FECHA"],"IX_XACTREG_EMP_FECHAREG":["EMPRESA","FECHAREG"]},"columnas":{"IDXACTREG":{"nulo":false,"tipo":"entero"},"UUID":{"nulo":false,"tipo":"texto","largo":36},"EMPRESA":{"nulo":false,"tipo":"texto","largo":10},"KOFU":{"nulo":false,"tipo":"texto","largo":20,"defecto":""},"KOEN":{"nulo":false,"tipo":"texto","largo":30,"defecto":""},"SUEN":{"nulo":false,"tipo":"texto","largo":20,"defecto":""},"ACTIVIDAD":{"nulo":false,"tipo":"texto","largo":50,"defecto":""},"FECHA":{"nulo":false,"tipo":"fecha"},"FECHAREG":{"nulo":false,"tipo":"fecha"},"VERSION":{"nulo":true,"tipo":"texto","largo":100},"RESPUESTAS":{"nulo":true,"tipo":"texto","largo":null,"unicode":true},"APPVERSION":{"nulo":true,"tipo":"texto","largo":20},"DEVICEID":{"nulo":true,"tipo":"texto","largo":64}}},"XACTFOTO":{"desde":1,"clave":["UUIDREG","CAMPO","HASH"],"autonumerico":"IDXACTFOTO","unica":"UX_XACTFOTO_REG_CAMPO_HASH","columnas":{"IDXACTFOTO":{"nulo":false,"tipo":"entero"},"UUIDREG":{"nulo":false,"tipo":"texto","largo":36},"CAMPO":{"nulo":false,"tipo":"texto","largo":50,"defecto":""},"CLAVE":{"nulo":false,"tipo":"texto","largo":200,"defecto":""},"HASH":{"nulo":false,"tipo":"texto","largo":64,"defecto":""},"CTYPE":{"nulo":true,"tipo":"texto","largo":40},"BYTES":{"nulo":true,"tipo":"entero"},"ANCHO":{"nulo":true,"tipo":"entero"},"ALTO":{"nulo":true,"tipo":"entero"},"FECHAREG":{"nulo":false,"tipo":"fecha"}}},"XCONCURSO":{"desde":1,"clave":["EMPRESA","PERIODO"],"columnas":{"EMPRESA":{"nulo":false,"tipo":"texto","largo":10},"PERIODO":{"nulo":false,"tipo":"texto","largo":7,"fijo":true},"VERSION":{"nulo":false,"tipo":"texto","largo":100,"defecto":""},"DEFINICION":{"nulo":false,"tipo":"texto","largo":null,"unicode":true},"FECHAMOD":{"nulo":false,"tipo":"fecha"},"QUIENMOD":{"nulo":true,"tipo":"texto","largo":160,"unicode":true}}},"XCONCURSOAV":{"desde":1,"clave":["EMPRESA","PERIODO","KOFU"],"columnas":{"EMPRESA":{"nulo":false,"tipo":"texto","largo":10},"PERIODO":{"nulo":false,"tipo":"texto","largo":7,"fijo":true},"KOFU":{"nulo":false,"tipo":"texto","largo":20},"VERSION":{"nulo":false,"tipo":"texto","largo":100,"defecto":""},"GENERADOEN":{"nulo":false,"tipo":"fecha"},"AVANCE":{"nulo":false,"tipo":"texto","largo":null,"unicode":true},"FECHAMOD":{"nulo":false,"tipo":"fecha"}}},"XTABFUMEIGN":{"desde":1,"clave":["EMPRESA","AGRUPACION","CODIGO"],"columnas":{"EMPRESA":{"nulo":false,"tipo":"texto","largo":10},"AGRUPACION":{"nulo":false,"tipo":"texto","largo":20},"CODIGO":{"nulo":false,"tipo":"texto","largo":50},"FECHAMOD":{"nulo":false,"tipo":"fecha"},"QUIENMOD":{"nulo":true,"tipo":"texto","largo":160,"unicode":true}}},"XMAEENGPS":{"desde":1,"clave":["UUID"],"autonumerico":"IDXMAEENGPS","unica":"UX_XMAEENGPS_UUID","indices":{"IX_XMAEENGPS_EMP_ESTADO_REC":["EMPRESA","ESTADO","RECIBIDOEN"],"IX_XMAEENGPS_KOEN_SUEN":["KOEN","SUEN"]},"columnas":{"IDXMAEENGPS":{"nulo":false,"tipo":"entero"},"UUID":{"nulo":false,"tipo":"texto","largo":36},"EMPRESA":{"nulo":false,"tipo":"texto","largo":10},"KOEN":{"nulo":false,"tipo":"texto","largo":30,"defecto":""},"SUEN":{"nulo":false,"tipo":"texto","largo":20,"defecto":""},"LAT":{"nulo":false,"tipo":"texto","largo":30},"LON":{"nulo":false,"tipo":"texto","largo":30},"PRECISIONM":{"nulo":true,"tipo":"entero"},"CAPTURADAEN":{"nulo":true,"tipo":"fecha"},"RECIBIDOEN":{"nulo":false,"tipo":"fecha"},"KOFU":{"nulo":false,"tipo":"texto","largo":20,"defecto":""},"DEVICEID":{"nulo":true,"tipo":"texto","largo":64},"APPVERSION":{"nulo":true,"tipo":"texto","largo":20},"QUIEN":{"nulo":true,"tipo":"texto","largo":160,"unicode":true},"ORIGEN":{"nulo":false,"tipo":"texto","largo":10,"defecto":"vendedor"},"MODO":{"nulo":false,"tipo":"texto","largo":10,"defecto":""},"ESTADO":{"nulo":false,"tipo":"texto","largo":1,"fijo":true,"defecto":"P"},"LATANT":{"nulo":true,"tipo":"texto","largo":30},"LONANT":{"nulo":true,"tipo":"texto","largo":30},"RESUELTOEN":{"nulo":true,"tipo":"fecha"},"RESUELTOPOR":{"nulo":true,"tipo":"texto","largo":160,"unicode":true},"MOTIVO":{"nulo":true,"tipo":"texto","largo":200,"unicode":true}}},"XPRODIMG":{"desde":1,"clave":["KOPR","ORDEN"],"autonumerico":"IDXPRODIMG","unica":"UX_XPRODIMG_KOPR_ORDEN","indices":{"IX_XPRODIMG_FECHA":["FECHA"]},"columnas":{"IDXPRODIMG":{"nulo":false,"tipo":"entero"},"KOPR":{"nulo":false,"tipo":"texto","largo":50},"ORDEN":{"nulo":false,"tipo":"entero","defecto":1},"CLAVE":{"nulo":false,"tipo":"texto","largo":200},"NOMBRE_ORIGEN":{"nulo":true,"tipo":"texto","largo":200,"unicode":true},"CTYPE":{"nulo":true,"tipo":"texto","largo":40},"BYTES":{"nulo":true,"tipo":"entero"},"ANCHO":{"nulo":true,"tipo":"entero"},"ALTO":{"nulo":true,"tipo":"entero"},"HASH":{"nulo":true,"tipo":"texto","largo":64},"CLAVE_MINI":{"nulo":true,"tipo":"texto","largo":200},"CTYPE_MINI":{"nulo":true,"tipo":"texto","largo":40},"BYTES_MINI":{"nulo":true,"tipo":"entero"},"ESTADO":{"nulo":false,"tipo":"texto","largo":1,"fijo":true,"defecto":"A"},"FECHA":{"nulo":false,"tipo":"fecha"},"USUARIO":{"nulo":true,"tipo":"texto","largo":80,"unicode":true}}}}}' WHERE VERSION = 2; GO