INTRODUCCIÓN
Este documento tiene como finalidad describir en detalle el modelo de datos utilizado en la integración del Plugin Bridge2SQL con SQL Server. La finalidad del documento es proporcionar una referencia técnica para el diseño, implementación y mantenimiento de la base de datos, asegurando la correcta estructuración de las transacciones procesadas desde el sistema Bridge Manager Central hasta su almacenamiento en SQL Server.
El objetivo principal es establecer un marco de referencia claro para la gestión de datos en el entorno de integración, facilitando la interoperabilidad entre los distintos sistemas involucrados. Se incluyen detalles sobre la arquitectura del sistema, el flujo de procesamiento de datos, la estructura de las tablas en la base de datos y el mapeo de información entre los formatos JSON y SQL.
Este documento está dirigido a desarrolladores, arquitectos de sistemas y administradores de bases de datos que requieran comprender el funcionamiento interno del Plugin Bridge2SQL y su impacto en la estructura de datos.
DIAGRAMA DE ARQUITECTURA
El sistema se conforma de cuatro componentes principales:
Bridge Manager Central: Sistema exportador.
Sistema de Colas RabbitMQ: Para encolar los datos exportados.
Plugin Bridge2Sql: Lee las colas RabbitMQ y escribe los datos en SQL.
Servidor SQL: Almacena los datos procesados.
Todos los componentes pueden convivir en el mismo servidor si fuera necesario.
DESCRIPCIÓN DE LOS COMPONENTES
Bridge Manager Central
Actúa como BackOffice complementando la operación en tienda de los puntos de venta. La solución cuenta con un conjunto de módulos que contemplan las operaciones reducidas de Cash Office, su módulo de abastecimiento y provee una serie de interfaces de integración con sistemas externos como ERP, sistemas legacy, etc.
Cuenta con una "Consola de administración", encargada de brindar una herramienta centralizada de administración. Esta consola es Web y funciona sobre un servidor de aplicaciones. Permite configurar qué tipos de transacciones se pueden exportar y hacía donde se expone la información por ejemplo “rabbit”.
Colas RabbitMQ
Sistema de mensajería que almacena datos encolados para procesamiento. Actúa como intermediario confiable entre sistemas distribuidos.
Su principal responsabilidad es almacenar los datos encolados para su procesamiento. RabbitMQ facilita la comunicación entre aplicaciones distribuidas al actuar como un intermediario confiable que encola, enruta y entrega mensajes de manera eficiente y flexible. Su uso permite la creación de sistemas robustos y escalables que pueden manejar grandes volúmenes de mensajes de manera confiable.
Las colas en RabbitMQ son puntos de almacenamiento temporales para los mensajes y actúan como buffers donde los mensajes son encolados hasta que son consumidos por los consumidores, en nuestro caso el plugin Bridge2Sql.
Plugin Bridge2Sql
Es un componente más de la solución Bridge que actua como el consumidor de los mensajes encolados en RabbitMQ y los procesa para insertarlos en el servidor de base de datos SQL. Una de las responsabilidades de este sistema es determinar a qué tablas se realizarán las inserciones de los registros dependiendo del valor de los campos de control.
Si bien realiza algunas operaciones de procesamiento, la mayor prioridad de este sistema será la lectura y escritura de la información.
Componentes:
Configuración Inicial: Configurar conexión a RabbitMQ y a SQL Server
Conexión a RabbitMQ: Configurar canales y declaración de colas a leer.
Consumo de Mensajes: Recibe un mensaje, lo procesa extrayendo la información relevante para insertar en SQL.
Procesamiento de Mensajes: Implica la deserialización del mensaje (si está en un formato específico, como JSON o XML), la validación de los datos y la preparación para la inserción en la base de datos.
Conexión a la Base de Datos SQL Server: Abrir una conexión con SQL de forma segura.
Inserción de Registros en la Base de Datos: Ejecutar los scripts de SQL
Manejo de Errores y Reintentos: El plugin debe implementar mecanismos de manejo de errores y reintentos para garantizar la fiabilidad y la integridad de los datos.
Cierre de Conexiones: Una vez que el plugin ha terminado de procesar los mensajes o se detiene su ejecución, debe cerrar todas las conexiones abiertas con RabbitMQ y la base de datos SQL Server de manera adecuada para liberar recursos y garantizar una terminación limpia.
SQL Server
Es un sistema de gestión de bases de datos relacional (RDBMS) desarrollado por Microsoft. Proporciona un entorno robusto y seguro para almacenar, administrar y recuperar datos de manera eficiente. Es ampliamente utilizado en empresas de todos los tamaños y sectores para almacenar y gestionar datos críticos de negocio.
FLUJO DE DATOS
El Plugin Bridge2SQL procesa transacciones marcadas como pendientes y determina el flujo de procesamiento según los siguientes criterios:
Transactions
Evalúa el campo trxType
y si es "Sale", "ManualExchange" o "Exchange", inserta en:
transactionRetail (cabecera de la transacción).
transactionRetailItem (detalle de ítems).
transactionRetailPayment (detalle de pagos).
transactionRetailDiscount (detalle de descuentos).
New Customer
Si el campo typeCode
es "NewCustomer", "PRS" o "OGN", inserta en:
party (cabecera del cliente).
partyContactMethod (métodos de contacto).
Tender Transaction
Si el campo typeCode
es "TenderLoan", "TenderPickup" o "TenderWithdrawal", inserta en:
tenderTransaction (cabecera de la transacción).
tenderTransactionDetail (detalle de ítems).
Control Transaction
Si el campo trxType
es "BusinessEOS" o "BusinessSOS", inserta en:
controlTransaction (cabecera).
Safe Transaction
Si el campo trxType
es "TenderInflow" o "TenderOutflow", inserta en:
safeTransaction (cabecera).
safeTransactionDetail (detalle).
MAPEO DE LA INFORMACIÓN JSON - SQL
Una de las ideas del diseño de esta solución es que los nombres de los campos entre el JSON y SQL Sea el mismo y represente la misma información. En las tablas se mostrarán las correspondencias y se destacarán los casos en los que existe diferencia.
JSON Sale – SQL transactionRetail
Campo JSON | Campo SQL | Descripción | Tipo dato |
_id | _id | Identificador único | String |
itemCount | itemCount | Cantidad de ítems | Number |
grossAmount | grossAmount | Monto bruto | Number |
taxAmount | taxAmount | Monto de impuestos | Number |
promoDiscountAmount | promoDiscountAmount | Monto de descuento promocional | Number |
manualDiscountAmount | manualDiscountAmount | Monto de descuento manual | Number |
cancelFlag | cancelFlag | Bandera de cancelación | Boolean |
contingencyFlag | contingencyFlag | Bandera de contingencia | Boolean |
netSalesAmount | netSalesAmount | Monto neto de ventas | Number |
returnAmount | returnAmount | Monto de devolución | Number |
transactionDiscountAmount | transactionDiscountAmount | Monto de descuento de transacción | Number |
voidedFlag | voidedFlag | Bandera de anulación | Boolean |
nccProcessedFlag | nccProcessedFlag | Bandera de procesamiento de NCC | Boolean |
iva0Amount | iva0Amount | Monto de IVA al 0% | Number |
iva21Amount | iva21Amount | Monto de IVA al 21% | Number |
iva105Amount | iva105Amount | Monto de IVA al 10.5% | Number |
iva27Amount | iva27Amount | Monto de IVA al 27% | Number |
foreignCurrencyInvoice | foreignCurrencyInvoice | Factura en moneda extranjera | Boolean |
foreignCurrencySellingQuote | foreignCurrencySellingQuote | Cotización de venta en moneda extranjera | Number |
transactionObjectId | transactionObjectId | ID de objeto de transacción | String |
tenderRepository | tenderRepository | Repositorio de transacción | String |
trxType | trxType | Tipo de transacción | String |
trxNumber | trxNumber | Número de transacción | Number |
store | store | Tienda | String |
storeName | storeName | Nombre de la tienda | String |
terminal | terminal | Terminal | String |
storeCode | storeCode | Código de tienda | String |
terminalCode | terminalCode | Código de terminal | String |
periodNumber | periodNumber | Número de período | Number |
sbPeriodNumber | sbPeriodNumber | Número de período (SB) | Number |
beginDateTime | beginDateTime | Fecha y hora de inicio | DateTime |
endDateTime | endDateTime | Fecha y hora de finalización | DateTime |
beginDateTimeAsInt | beginDateTimeAsInt | Fecha y hora de inicio como entero | Number |
beginDateTimeHour | beginDateTimeHour | Hora de inicio | Number |
operatorCode | operatorCode | Código de operador | String |
operatorName | operatorName | Nombre del operador | String |
trainingModeFlag | trainingModeFlag | Bandera de modo de entrenamiento | Boolean |
suspendedFlag | suspendedFlag | Bandera de suspensión | Boolean |
offlineFlag | offlineFlag | Bandera de fuera de línea | Boolean |
trxTypeLang | trxTypeLang | Tipo de transacción (idioma) | String |
currencyDescription | currencyDescription | Descripción de la moneda | String |
fiscalPosNumber | fiscalPosNumber | Número de Punto de Venta Fiscal | Number |
serieOfficialBill | serieOfficialBill | Serie de factura oficial | String |
billType | billType | Tipo de factura | String |
billNumber | billNumber | Número de factura | Number |
businessDayDate | businessDayDate | Fecha de día hábil | DateTime |
grossPositiveAmount | grossPositiveAmount | Monto bruto positivo | Number |
grossNegativeAmount | grossNegativeAmount | Monto bruto negativo | Number |
ivaTaxAmount | ivaTaxAmount | Monto de impuesto IVA | Number |
internalTaxAmount | internalTaxAmount | Monto de impuesto interno | Number |
perceptionAmount | perceptionAmount | Monto de percepción | Number |
billTotalAmount | billTotalAmount | Monto total de factura | Number |
hasCustomer | hasCustomer | Bandera tiene cliente | Boolean |
party | party | Información de cliente | String |
partyCode | partyCode | Código de cliente | String |
partyTaxCategory | partyTaxCategory | Categoría fiscal de cliente | String |
partyType | partyType | Tipo de cliente | String |
partyFirstName | partyFirstName | Nombre de cliente (primer nombre) | String |
partyLastName | partyLastName | Apellido de cliente | String |
partyPerson | partyPerson | Persona de cliente | String |
partyOrganization | partyOrganization | Organización de cliente | String |
partyIdentificationType | partyIdentificationType | Tipo de identificación de cliente | String |
partyIdentificationNumber | partyIdentificationNumber | Número de identificación de cliente | String |
partyAddressFirstLine | partyAddressFirstLine | Primera línea de dirección de cliente | String |
partyAddressCity | partyAddressCity | Ciudad de dirección de cliente | String |
partyAddressState | partyAddressState | Estado de dirección de cliente | String |
partyAddressCountry | partyAddressCountry | País de dirección de cliente | String |
partyAddressPostalCode | partyAddressPostalCode | Código postal de dirección de cliente | String |
partyEmail | partyEmail | Correo electrónico de cliente | String |
partyTelephone | partyTelephone | Teléfono de cliente | String |
denomination | denomination | Denominación | String |
invoiceCurrencyCode | invoiceCurrencyCode | Código de moneda de la factura | String |
createdAt | createdAt | Fecha de creación | DateTime |
updatedAt | updatedAt | Fecha de actualización | DateTime |
version | version | Versión | Number |
baseCurrencyCode | baseCurrencyCode | Código de moneda base | String |
originalSerieOfficialBill | originalSerieOfficialBill | Serie original de factura | String |
originalFiscalPOSNumber | originalFiscalPOSNumber | Número original de punto de venta fiscal | Number |
originalBillNumber | originalBillNumber | Número original de factura | Number |
originalTrxNumber | originalTrxNumber | Número original de transacción | Number |
originalStoreCode | originalStoreCode | Código original de tienda | String |
originalTerminalCode | originalTerminalCode | Código original de terminal | String |
invoiceRequired | invoiceRequired | Factura requerida | String |
xml | xmlTimbrado | XML Timbrado (Facturación MEX) | String |
timbrado | timbrado | Bandera de Timbrado | Boolean |
sellerName | sellerName | Nombre del vendedor | String |
sellerID | sellerID | ID del vendedor | String |
trxRappi | trxRappi | Bandera de Transacción Rappi | Boolean |
trxCornerShop | trxCornerShop | Bandera de Transacción CornerShop | Boolean |
invoiceUUID | invoiceUUID | UUID de la factura | String |
storeCode +"-"+ terminalCode +"-"+ trxNumber | folio | Folio de la factura (Facturación MEX) | String |
folioDelivery | folioDelivery | Folio de entrega | Number |
folioInternet | folioInternet | Folio de Internet | Number |
diasCredito | diasCredito | Días de crédito | Number |
supervisorCreditTrx | supervisorCreditTrx | Transacción de crédito del supervisor | String |
fiscalCAENumber | fiscalCAENumber | Número de CAE fiscal | String |
seq_export | seq_export | Identificador secuencial de exportación (con IDENTITY(1,1)) | String |
fiscalMode | fiscalMode | Modo fiscal | Boolean |
JSON Sale.items – SQL transactionRetailItem
Campo JSON | Campo SQL | Descripción | Tipo dato |
_id | _id | Identificador | String |
beginDateTime | beginDateTime | Fecha y Hora de Inicio | DateTime |
beginDateTimeAsInt | beginDateTimeAsInt | Fecha y Hora de Inicio | DateTime |
beginDateTimeHour | beginDateTimeHour | Hora de Inicio | Number |
cancelFlag | cancelFlag | Bandera de Cancelación | Boolean |
createdAt | createdAt | Fecha de Creación | DateTime |
description | description | Descripción | String |
extendedPrice | extendedPrice | Precio Extendido | Number |
giftCardBalance | giftCardBalance | Saldo de Tarjeta de Regalo | Number |
giftCardRechargeAmount | giftCardRechargeAmount | Monto Recargado de Tarjeta de Regalo | Number |
internalCode | internalCode | Código Interno | String |
itemType | itemType | Tipo de Ítem | String |
manualDiscountAmount | manualDiscountAmount | Monto de Descuento Manual | Number |
merchandiseHierarchyGroupCode | merchandiseHierarchyGroupCode | Código del Grupo de Jerarquía de Mercancía | Number |
merchandiseHierarchyGroupName | merchandiseHierarchyGroupName | Nombre del Grupo de Jerarquía de Mercancía | String |
netAmount | netAmount | Monto Neto | Number |
operatorCode | operatorCode | Código de Operador | String |
operatorName | operatorName | Nombre del Operador | String |
periodNumber | periodNumber | Número de Período | Number |
perceptionTotal | perceptionTotal | Total de Percepción | Number |
prorratedTxDiscount | prorratedTxDiscount | Descuento Prorrateado de Transacción | Number |
promoDiscountAmount | promoDiscountAmount | Monto de Descuento Promocional | Number |
quantity | quantity | Cantidad | Number |
returned | returned | Bandera de Devolución | Boolean |
sbPeriodNumber | sbPeriodNumber | Número de Período (SB) | Number |
sellerID | sellerID | ID del Vendedor | String |
sellerName | sellerName | Nombre del Vendedor | String |
sequenceNumber | sequenceNumber | Número de Secuencia | Number |
store | store | Tienda | String |
storeCode | storeCode | Código de Tienda | String |
storeName | storeName | Nombre de la Tienda | String |
suspendedFlag | suspendedFlag | Bandera de Suspensión | Boolean |
taxTotal | taxTotal | Total de Impuestos | Number |
terminal | terminal | Terminal | String |
terminalCode | terminalCode | Código de Terminal | String |
transactionObjectId | transactionObjectId | ID de Objeto de Transacción | String |
trainingModeFlag | trainingModeFlag | Bandera de Modo de Entrenamiento | Boolean |
trxNumber | trxNumber | Número de Transacción | Number |
trxType | trxType | Tipo de Transacción | String |
updatedAt | updatedAt | Fecha de Actualización | DateTime |
unitOfMeasureCode | unitOfMeasureCode | Código de Unidad de Medida | String |
unitOfMeasureDecimals | unitOfMeasureDecimals | Decimales de Unidad de Medida | Number |
unitPrice | unitPrice | Precio Unitario | Number |
units | units | Unidades | Number |
vatTotal | vatTotal | Total de IVA | Number |
voidFlag | voidFlag | Bandera de Anulación | Boolean |
voidedQuantity | voidedQuantity | Cantidad Anulada | Number |
voiding | voiding | Anulación | Boolean |
version | version | Versión | Number |
locationCode | locationCode | Código de Ubicación | String |
Campos discontinuados
Los siguientes campos han sido eliminados de la estructura de datos de transactionRetailItem en la última actualización:
folio: Relacionado con la facturación.
idsat: Campo vinculado a la facturación electrónica en México.
itemSerialNumber: Número de Serie del Ítem.
pedimento: Información aduanera o de importación.
totalAmount: Se ha eliminado el campo de monto total.
JSON Sale.discounts – SQL transactionRetailDiscount
Campo JSON | Campo SQL | Descripción | Tipo dato |
_id | _id | Identificador | String |
action | action | Acción | String |
beginDateTime | beginDateTime | Fecha y Hora de Inicio | DateTime |
beginDateTimeAsInt | beginDateTimeAsInt | Fecha y Hora de Inicio como Entero | DateTime |
beginDateTimeHour | beginDateTimeHour | Hora de Inicio | Number |
benefitClass | benefitClass | Clase de Beneficio | String |
benefitNumber | benefitNumber | Número de Beneficio | benefitNumber |
benefitPercent | benefitPercent | Porcentaje de Beneficio | Number |
benefitValue | benefitValue | Valor del Beneficio | Number |
cancelFlag | cancelFlag | Bandera de Cancelación | Boolean |
createdAt | createdAt | Creado en | DateTime |
description | description | Descripción | String |
internalCode | internalCode | Código Interno | String |
message | message | Mensaje | String |
operatorCode | operatorCode | Código de Operador | String |
operatorName | operatorName | Nombre del Operador | String |
periodNumber | periodNumber | Número de Período | Number |
promoDescription | promoDescription | Descripción de la Promoción | String |
promotionNumber | promotionNumber | Número de Promoción | String |
reason | reason | Razón | String |
sbPeriodNumber | sbPeriodNumber | Número de Período (SB) | Number |
sequenceNumber | sequenceNumber | Número de Secuencia | Number |
store | store | Tienda | String |
storeCode | storeCode | Código de Tienda | String |
storeName | storeName | Nombre de la Tienda | String |
terminal | terminal | Terminal | String |
terminalCode | terminalCode | Código de Terminal | String |
transactionObjectId | transactionObjectId | ID de Objeto de Transacción | String |
trxNumber | trxNumber | Número de Transacción | Number |
trxType | trxType | Tipo de Transacción | String |
type | type | Tipo | String |
updatedAt | updatedAt | Actualizado en | DateTime |
version | version | Versión | Number |
JSON Sale.payments – SQL transactionRetailPayment
Campo JSON | Campo SQL | Descripción | Tipo dato |
_id | _id | Identificador | String |
amount | amount | Monto | Number |
beginDateTime | beginDateTime | Fecha y Hora de Inicio | DateTime |
beginDateTimeAsInt | beginDateTimeAsInt | Fecha y Hora de Inicio como Entero | Number |
beginDateTimeHour | beginDateTimeHour | Hora de Inicio | Number |
billNumber | billNumber | Número de Factura | Number |
billType | billType | Tipo de Factura | String |
cancelFlag | cancelFlag | Bandera de Cancelación | Boolean |
card | card | Tarjeta | Boolean |
cardAuthorizationCode | cardAuthorizationCode | Código de Autorización de Tarjeta | String |
cardNumber | cardNumber | Número de Tarjeta | Number |
cardCouponNumber | cardCouponNumber | Número de Cupón de Tarjeta | String |
cardCouponNumberOff | cardCouponNumberOff | Cupón de Tarjeta Alternativo | String |
change | change | Cambio | Number |
createdAt | createdAt | Creado en | DateTime |
currencyISOCode | currencyISOCode | Código de Moneda ISO | currencyISOCode |
fiscalPosNumber | fiscalPosNumber | Número de Punto de Venta Fiscal | String |
foreignAmount | foreignAmount | Monto en Moneda Extranjera | Number |
foreignChange | foreignChange | Cambio en Moneda Extranjera | Number |
foreignCurrencyQuote | foreignCurrencyQuote | Cotización de Moneda Extranjera | Number |
lotNumber | lotNumber | Número de Lote | String |
netAmount | netAmount | Monto Neto | Number |
operatorCode | operatorCode | Código de Operador | String |
operatorName | operatorName | Nombre del Operador | String |
periodNumber | periodNumber | Número de Período | Number |
sbPeriodNumber | sbPeriodNumber | Número de Período Secundario | Number |
planDescriptor | planDescriptor | Descripción del Plan | String |
provider | provider | Proveedor | String |
referenceNumber | referenceNumber | Número de Referencia | String |
serieOfficialBill | serieOfficialBill | Serie de Factura Oficial | String |
sellerName | sellerName | Nombre del Vendedor | String |
store | store | Tienda | String |
storeCode | storeCode | Código de Tienda | String |
storeName | storeName | Nombre de la Tienda | String |
suspendedFlag | suspendedFlag | Bandera de Suspensión | Boolean |
surcharge | surcharge | Recargo | Number |
tender | tender | Forma de Pago | String |
tenderCode | tenderCode | Código de Forma de Pago | String |
tenderName | tenderName | Nombre de Forma de Pago | String |
tenderRepository | tenderRepository | Repositorio de Forma de Pago | String |
terminal | terminal | Terminal | String |
terminalCode | terminalCode | Código de Terminal | String |
transactionObjectId | transactionObjectId | ID de Objeto de Transacción | String |
trainingModeFlag | trainingModeFlag | Bandera de Modo de Entrenamiento | Boolean |
trxNumber | trxNumber | Número de Transacción | Number |
trxType | trxType | Tipo de Transacción | String |
updatedAt | updatedAt | Actualizado en | DateTime |
version | version | Versión | Number |
voided | voided | Anulado | Boolean |
voiding | voiding | Anulación | Boolean |
vtolStore | vtolStore | Tienda de Vtol | String |
vtolTerminal | vtolTerminal | Terminal de Vtol | String |
extraCashAmount | extraCashAmount | Monto Extra en Efectivo | Number |
extraCashCupon | extraCashCupon | Cupón de Monto Extra en Efectivo | Number |
walletPaymentId | walletPaymentId | Identificador de Pago con Billetera Digital | extraCashCupon |
Campos discontinuados
Los siguientes campos han sido eliminados de la estructura de datos de transactionRetailPayment en la última actualización:
BankNameTransfer (Nombre del banco en transferencias, ya no requerido en la nueva estructura)
bankdescription (Descripción del banco para transferencias, eliminado por redundancia)
prochemex (Registro relacionado con Prochemex en Cheques MEX, removido por actualización de procesos)
transferNumber (Número de referencia de transferencias, eliminado debido a cambios en la gestión de pagos)
JSON NewCustomer – SQL party
Campo JSON | Campo SQL | Descripción | Tipo dato |
_class | _class | Clase | String |
_id | _id | Identificador | String |
apiProcessed | apiProcessed | Bandera Procesado por API | Boolean |
birthCountryCode | birthCountryCode | Código de País de Nacimiento | String |
birthDayNumber | birthDayNumber | Día de Nacimiento | Number |
birthMonthNumber | birthMonthNumber | Mes de Nacimiento | Number |
birthYearNumber | birthYearNumber | Año de Nacimiento | Number |
code | code | Código | String |
createdAt | createdAt | Fecha de Creación | DateTime |
creditBillAvailable | creditBillAvailable | Disponible en la Factura de Crédito | Boolean |
disabled | disabled | Bandera Deshabilitado | Boolean |
Correo Electrónico | String | ||
exemptFlag | exemptFlag | Bandera de Exento | Boolean |
firstName | firstName | Primer Nombre | String |
genderType | genderType | Tipo de Género | String |
identificationType | identificationType | Tipo de Identificación | String |
identifier | identifier | Identificador | String |
lastName | lastName | Apellido | String |
store | store | Tienda | String |
typeCode | typeCode | Código de Tipo | String |
updatedAt | updatedAt | Fecha de Actualización | DateTime |
version | version | Versión | Number |
name | name | Nombre | String |
Campos discontinuados
Los siguientes campos han sido eliminados de la estructura de datos de party en la última actualización:
isCredit (Bandera que indicaba si el cliente tenía crédito, eliminada en la nueva versión).
membership (Número de membresía del cliente, ya no se almacena en esta tabla).
middleNames (Campo de segundos nombres, removido de la estructura de datos).
partyCRSegment (Segmento de cliente, eliminado por cambios en la segmentación de datos).
partyRoleAssignment (Asignación de rol de cliente, ya no se gestiona en esta tabla).
JSON NewCustomer.contactMethods – SQL partyContactMethod
Campo JSON | Campo SQL | Descripción | Tipo dato |
_id | _id | Identificador | String |
code | code | Código | String |
disabled | disabled | Deshabilitado | Boolean |
effectiveDate | effectiveDate | Fecha Efectiva | DateTime |
emailAddress | emailAddress | Correo Electrónico de Cliente | String |
expirationDate | expirationDate | Fecha de Expiración | DateTime |
name | name | Nombre de Cliente | String |
party | party | ID de Cliente | String |
partyCode | partyCode | Código de Cliente | String |
principalForBilling | principalForBilling | Principal para Facturación | String |
principalForDelivery | principalForDelivery | Principal para Entrega | String |
version | version | Versión | Number |
country | country | País | String |
secondLine | secondLine | Segunda Línea | String |
thirdLine | thirdLine | Tercera Línea | String |
betweenStreets | betweenStreets | Entre Calles | String |
postalCode | postalCode | Código Postal | String |
firstLine | firstLine | Primera Línea | String |
city | city | Ciudad | String |
state | state | Estado | String |
fourthLine | fourthLine | Cuarta Línea | String |
telephoneNumber | telephoneNumber | Número de Teléfono | String |
countryCode | countryCode | Código de País | String |
areaCode | areaCode | Código de Área | String |
extensionNumber | extensionNumber | Número de Extensión | Number |
Campos discontinuados
Los siguientes campos han sido eliminados de la estructura de datos de partyContactMethod en la última actualización:
telephone.areaCode (Ahora reemplazado por areaCode en la nueva estructura).
address.betweenStreets. Campo eliminado.
address.city (Ahora se usa simplemente city).
telephone.countryCode (Ahora se usa simplemente countryCode).
address.country (Ahora se usa simplemente country).
address.extensionNumber (Eliminado de la nueva estructura).
address.firstLine (Ahora se usa simplemente firstLine).
address.fourthLine (Ahora se usa simplemente fourthLine).
address.postalCode (Ahora se usa simplemente postalCode).
address.secondLine (Ahora se usa simplemente secondLine).
address.thirdLine (Ahora se usa simplemente thirdLine).
telephone.telephoneNumber (Ahora se usa simplemente telephoneNumber).
JSON TenderTransaction – SQL tenderTransaction
Campo JSON | Campo SQL | Descripción | Tipo dato |
_id | _id | Identificador | String |
beginDateTime | beginDateTime | Fecha y Hora de Inicio | DateTime |
businessDayDate | businessDayDate | Fecha del Día de Negocio | DateTime |
createdAt | createdAt | Fecha de Creación | DateTime |
endDateTime | endDateTime | Fecha y Hora de Finalización | DateTime |
isAutomatic | isAutomatic | Bandera Es Automático | Boolean |
period | period | Período | Number |
rsUser | rsUser | Usuario | String |
safe | safe | Caja Fuerte | String |
sequenceNumber | sequenceNumber | Número de Secuencia | Number |
store | store | Tienda | String |
storeCode | storeCode | Código de Tienda | String |
storeSafeCode | storeSafeCode | Código de Caja Fuerte de Tienda | String |
terminalCode | terminalCode | Código de Terminal | String |
till | till | Caja | String |
tillCode | tillCode | Código de Caja | String |
tillTo | tillTo | Caja Destino | String |
tillType | tillType | Tipo de Caja | String |
totals | totals | Totales | Number |
trxOrigin | trxOrigin | Transacción Origen | String |
transactionObjectId | transactionObjectId | ID de Objeto de Transacción | String |
typeCode | typeCode | Código de Tipo | String |
updatedAt | updatedAt | Fecha de Actualización | DateTime |
userName | userName | Nombre de Usuario | String |
userNameDescription | userNameDescription | Descripción del Nombre de Usuario | String |
version | version | Versión | Number |
tenderTransactionStatus | tenderTransactionStatus | Estado de la Transacción de Pago | String |
workStation | workStation | Estación de Trabajo | String |
subperiod | subperiod | Subperíodo | Number |
JSON TenderTransaction.tenderTranItems – SQL tenderTransactionDetail
Campo JSON | Campo SQL | Descripción | Tipo dato |
_id | _id | Identificador | String |
amount | amount | Monto | Number |
externalDepository | externalDepository | Depósito Externo | String |
foreignCurrencyQuoteFactor | foreignCurrencyQuoteFactor | Factor de Cotización de Moneda Extranjera | DateTime |
qty | qty | Cantidad | Number |
tender | tender | Forma de Pago | String |
tenderCode | tenderCode | Código de Forma de Pago | String |
tenderName | tenderName | Nombre de Forma de Pago | String |
transactionObjectId | transactionObjectId | ID de Objeto de Transacción | String |
JSON TenderInflow – SQL safeTransaction
orado las actualizaciones detectadas en el nuevo script SQL.
Campo JSON | Campo SQL | Descripción | Tipo dato |
---|---|---|---|
_id | _id | Identificador | String |
bagNumber | bagNumber | Número de Bolsa | Number |
beginDateTime | beginDateTime | Fecha y Hora de Inicio | DateTime |
businessDayDate | businessDayDate | Fecha del Día de Negocio | DateTime |
cancelFlag | cancelFlag | Bandera de Cancelación | Boolean |
contigencyFlag | contigencyFlag | Bandera de Contingencia | Boolean |
docNumber | docNumber | Número de Documento | Number |
endDateTime | endDateTime | Fecha y Hora de Finalización | DateTime |
offlineFlag | offlineFlag | Bandera Fuera de Línea | Boolean |
originalTransaction | originalTransaction | Transacción Original | String |
periodCode | periodCode | Código de Período | String |
periodNumber | periodNumber | Número de Período | Number |
safeId | safeId | ID de Caja Fuerte | String |
sbPeriodNumber | sbPeriodNumber | Número de Subperíodo | Number |
storeCode | storeCode | Código de Tienda | String |
subPeriodCode | subPeriodCode | Código de Subperíodo | Number |
suspendedFlag | suspendedFlag | Bandera de Suspensión | Boolean |
terminalCode | terminalCode | Código de Terminal | String |
tillCode | tillCode | Código de Caja | String |
tillType | tillType | Tipo de Caja | String |
totals | totals | Totales | Number |
trainingModeFlag | trainingModeFlag | Bandera de Modo de Entrenamiento | Boolean |
trxNumber | trxNumber | Número de Transacción | Number |
trxOrigin | trxOrigin | Origen de Transacción | String |
trxStatus | trxStatus | Estado de Transacción | String |
trxType | trxType | Tipo de Transacción | String |
trxTypeCode | trxTypeCode | Código de Tipo de Transacción | String |
updatedAt | updatedAt | Actualizado en | DateTime |
userName | userName | Nombre de Usuario | String |
voidedFlag | voidedFlag | Bandera de Anulado | Boolean |
note | note | Nota | String |
Campos discontinuados
Los siguientes campos han sido eliminados de la estructura de datos de safeTransaction en la última actualización:
tenderControlTransaction.TenderInflow.bagNumber (Ahora reemplazado por bagNumber directamente).
tenderControlTransaction.TenderInflow.docNumber (Ahora es docNumber directamente).
tenderControlTransaction.TenderInflow.totals (Ahora es simplemente totals).
tenderControlTransaction.TenderInflow.note (Ahora es simplemente note).
JSON TenderInFlow.tenderControlTransactionTenderLineItems – SQL safeTransactionDetail
Campo JSON | Campo SQL | Descripción |
amount | amount | Monto |
comments | comments | Comentarios |
count | count | Cantidad |
exchangeRate | exchangeRate | Tasa de Cambio |
externalDepositoryCode | externalDepositoryCode | Código de Depósito Externo |
externalDepositoryId | externalDepositoryId | ID de Depósito Externo |
foreignCurrencyAmount | foreignCurrencyAmount | Monto en Moneda Extranjera |
IdSafeTransactionDetail | IdSafeTransactionDetail | ID de Detalle de Transacción Segura |
retailStoreId | retailStoreId | ID de Tienda Minorista |
safeId | safeId | ID de Transacción |
sequenceNumber | sequenceNumber | Número de Secuencia |
tenderDescription | tenderDescription | Descripción de Forma de Pago |
tenderId | tenderId | ID de Forma de Pago |
tenderTypeCode | tenderTypeCode | Tipo de Forma de Pago |
JSON BusinessEOD – SQL controlTransaction
Campo JSON | Campo SQL | Descripción | Tipo dato |
_id | _id | Identificador | String |
beginDateTime | beginDateTime | Fecha y Hora de Inicio | DateTime |
businessDayDate | businessDayDate | Fecha del Día de Negocio | DateTime |
cancelFlag | cancelFlag | Bandera de Cancelación | Boolean |
contingencyFlag | contingencyFlag | Bandera de Contingencia | Boolean |
createdAt | createdAt | Fecha de creación | DateTime |
endDateTime | endDateTime | Fecha y Hora de Finalización | DateTime |
offlineFlag | offlineFlag | Bandera Fuera de Línea | Boolean |
originalTransaction | originalTransaction | Transacción Original | String |
periodCode | periodCode | Código de Período | String |
periodNumber | periodNumber | Número de Período | Number |
sbPeriodNumber | sbPeriodNumber | Número de Subperíodo | Number |
storeCode | storeCode | Código de Tienda | String |
subPeriodCode | subPeriodCode | Código de Subperíodo | Number |
suspendedFlag | suspendedFlag | Bandera de Suspensión | Boolean |
terminalCode | terminalCode | Código de Terminal | String |
trainingModeFlag | trainingModeFlag | Bandera de Modo de Entrenamiento | Boolean |
trxNumber | trxNumber | Número de Transacción | Number |
trxOrigin | trxOrigin | Origen de Transacción | String |
trxStatus | trxStatus | Estado de Transacción | String |
trxType | trxType | Tipo de Transacción | String |
trxTypeCode | trxTypeCode | Código de Tipo de Transacción | String |
updatedAt | updatedAt | Fecha de Actualización | DateTime |
voidedFlag | voidedFlag | Bandera de Anulado | Boolean |
JSON newOrder – SQL newOrder
Campo JSON | Campo SQL | Descripcion | Tipo dato |
_id | _id | Identificador | String |
externalNumber | externalNumber | Código de la orden del originante | String |
internalNumber | internalNumber | Nro de pedido interno de BRIDGE | String |
notes | notes | Comentarios sobre la orden | String |
creationDate | creationDate | Fecha de creación | DateTime |
channelCode | channelCode | Canal de Origen | String |
terminalCode | terminalCode | Código de la terminal donde se crea el pedido | String |
company | company | Código de la compañía | String |
currencyCode | currencyCode | Moneda | String |
netAmount | netAmount | Monto final del pedido, incluyendo el costo de entrega, menos los descuentos. | Number |
manualDiscountAmount | manualDiscountAmount | Importe de descuentos a la transacción | Number |
orderTypeCode | orderTypeCode | Codigo del tipo de orden | String |
isPaid | isPaid | Indicador de cobrado | Boolean |
externalSellerID | externalSellerID | ID del vendedor externo (no es un usuario BRIDGE) | String |
externalSellerName | externalSellerName | Nombre del vendedor externo (no es un usuario de BRIDGE) | String |
perceptionAmount | perceptionAmount | Monto de percepciones del pedido | Number |
storeCode | storeCode | Código de la tienda | String |
storeName | storeName | Nombre de la tienda | String |
party | party | Id del cliente | String |
party.code | partyCode | Código del cliente | String |
party.taxCategory | partyTaxCategory | Categoría impositiva del cliente ante el IVA | String |
party.firstName | partyFirstName | Nombre del Cliente | String |
party.lastName | partyLastName | Apellido del cliente | String |
party.email | partyEmail | Correo del cliente | String |
party.identificationType | partyIdentificationType | Tipo de documento | Number |
party.identifier | partyIdentifier | Número de documento | String |
party.birthYearNumber | partyBirthYearNumber | Año de nacimiento | Number |
party.birthMonthNumber | partyBirthMonthNumber | Mes de nacimiento | Number |
party.birthDayNumber | partyBirthDayNumber | Día de nacimiento | Number |
party.person | partyPerson | Si es del tipo persona | String |
party.organization | partyOrganization | Si es del tipo empresa u organización | String |
party.genderType | partyGenderType | Sexo del cliente | String |
party.typeCode | partyTypeCode | Tipo de cliente | String |
JSON NewOrder.detail – SQL newOrderDetail
Campo JSON | Campo SQL | Descripcion | Tipo dato |
_id | _id | Identificador | String |
itemCode | itemCode | SKU del producto | String |
description | description | Descripción del producto | String |
orderedQty | orderedQty | Cantidad pedida | Number |
unitPrice | unitPrice | Precio unitario | Number |
deliveryOrPickup | deliveryOrPickup | Si la linea será con retiro en tienda o envío | String |
pickupLocationCode | pickupLocationCode | Código de la locación en donde retirará | String |
pickupInformation | pickupInformation | Descripción de quien hará el retiro | String |
requiredDate | requiredDate | Fecha de envío requerida o de retiro en tienda | DateTime |
partyContactMethodName | partyContactMethodName | Dirección de envío del cliente | String |
barcode | barcode | Código de barras del articulo (si fue ingresado con ese dato) | Number |
magnitude | magnitude | Magnitud (peso, longitud, etc) del item si su unidad de medida asociada tiene manejo de decimales | Number |
units | units | Cantidad de unidades de la presentación (asociado al código de barras) | String |
storeCode | storeCode | Código de Tienda | String |
locationCode | locationCode | Código del depósito | String |
netAmount | netAmount | Monto neto | Number |
itemSerialNumber | itemSerialNumber | Serie del item | String |
newOrderId | newOrderId | ID de la newOrder | String |
JSON NewOrder.detail.priceModifiers – SQL newOrderDetailPriceModifiers
Campo JSON | Campo SQL | Descripcion | Tipo dato |
percent | percent | Porcentaje de descuento | Number |
amount | amount | Monto de descuento | Number |
reasonText | reasonText | Razón del descuento | String |
newOrderDetailId | newOrderDetailId | Identificador newOrderDetail | String |
JSON NewOrder.payments – SQL newOrderPayments
Campo JSON | Campo SQL | Descripcion | Tipo dato |
tender | tender | Código del medio de pago | String |
amount | amount | Monto del pago | Number |
planDescriptor | planDescriptor | Descripción del plan de pagos elegido | String |
sellerName | sellerName | Nombre de la entidad | String |
authorizationCode | authorizationCode | Codigo de autorización de la tarjeta | String |
couponNumber | couponNumber | Número de cupón | String |
lotNumber | lotNumber | Número de Lote | String |
installments | installments | Cuotas | String |
referenceNumber | referenceNumber | Referencia de la tarjeta | Number |
newOrderId | newOrderId | Id de la NewOrder | String |
JSON NewOrder.transactions – SQL newOrderTransactions
Campo JSON | Campo SQL | Descripcion | Tipo dato |
storeCode | storeCode | El código de tienda BRIDGE | String |
terminalCode | terminalCode | El código de terminal BRIDGE | String |
operatorCode | operatorCode | El código de operador BRIDGE | String |
trxNumber | trxNumber | El número de transacción BRIDGE | Number |
trxDate | trxDate | La fecha de la transacción BRIDGE | DateTime |
newOrderId | newOrderId | Id de la NewOrder | String |
JSON tillConciliation – SQL tillConciliation
Campo JSON | Campo SQL | Descripcion | Tipo dato |
_id | _id | Identificador | string |
trainingModeFlag | trainingModeFlag | no utilizado en la conciliación | boolean |
suspendedFlag | suspendedFlag | no utilizado en la conciliación | boolean |
voidedFlag | voidedFlag | no utilizado en la conciliación | boolean |
offlineFlag | offlineFlag | no utilizado en la conciliación | boolean |
contigencyFlag | contigencyFlag | no utilizado en la conciliación | boolean |
storeCode | storeCode | código de la tienda | string |
externalId | externalId | código externo de la tienda | number |
costCenter | costCenter | código de centro de costo de la tienda | string |
terminalCode | terminalCode | código de la terminal | string |
workstationCategoryId | workstationCategoryId | Indica la categoría de la terminal desde donde se realiza la conciliación | string |
trxNumber | trxNumber | número de la transacción | number |
businessDayDate | businessDayDate | Fecha contable | datetime |
beginDateTime | beginDateTime | Fecha y hora en que inicia la transacción | datetime |
endDateTime | endDateTime | Fecha y hora en que finaliza la transacción | datetime |
periodNumber | periodNumber | Número de período de la conciliación | number |
sbPeriodNumber | sbPeriodNumber | Número de subperíodo o turno de la conciliación | numbre |
periodCode | periodCode | Código del periodo de la conciliación | number |
subPeriodCode | subPeriodCode | Código del subperiodo de la conciliación | number |
userName | userName | Nombre de usuario que realiza la transacción | string |
originalTransaction | originalTransaction | NO SE UTILIZA | string |
trxOrigin | trxOrigin | Origen de la transacción | string |
trxStatus | trxStatus | Estatus de la transacción | string |
trxType | trxType | Tipo de transacción, en este caso es TillConciliation | string |
trxTypeCode | trxTypeCode | Código del tipo de transacción | number |
updatedAt | updatedAt | Fecha en que fue actualizado la transacción | datetime |
exportCalendarPeriod.calendarPeriodID | exportCalendarPeriodCalendarPeriodID | number | |
exportCalendarPeriod.shiftID | exportCalendarPeriodShiftID | number | |
exportCalendarSubPeriod.calendarPeriodID | exportCalendarSubPeriodCalendarPeriodID | number | |
exportCalendarSubPeriod.shiftID | exportCalendarSubPeriodShiftID | number | |
controlTransaction.typeCode | typeCode | Indica el tipo de transacción: TillConciliation (conciliación) | string |
controlTransaction.subTypeCode | subTypeCode | Indica el subtipo de transacción | string |
controlTransaction.typeId | typeId | ID del tipo de transacción (uso interno) | number |
controlTransaction.TillConciliation.periodConciliationFlag | periodConciliationFlag | Identifica sí el período / turno está conciliado | Boolean |
controlTransaction.TillConciliation.amounts.tenderLoanTotalAmount.numberDecimal | tenderLoanTotalAmount | indica el monto de las dotaciones | number |
controlTransaction.TillConciliation.amounts.tenderPickupTotalAmount.numberDecimal | tenderPickupTotalAmount | Indica el monto de los retiros | number |
controlTransaction.TillConciliation.amounts.tenderWithdrawalTotalAmount.numberDecimal | tenderWithdrawalTotalAmount | Indica el monto de las rendiciones | number |
controlTransaction.TillConciliation.amounts.tenderDepositoryTotalAmount.numberDecimal | tenderDepositoryTotalAmount | No utilizado | number |
controlTransaction.TillConciliation.amounts.positiveTenderTotalAmount.numberDecimal | positiveTenderTotalAmount | Indica el monto de las ventas | number |
controlTransaction.TillConciliation.amounts.negativeTenderTotalAmount.numberDecimal | negativeTenderTotalAmount | Indica el monto de las devoluciones | number |
controlTransaction.TillConciliation.amounts.othersIncome.numberDecimal | othersIncome | Indica el monto de las cobranzas | number |
controlTransaction.TillConciliation.amounts.othersExpenditure.numberDecimal | othersExpenditure | Indica el monto de las devoluciones de cobranzas | number |
controlTransaction.TillConciliation.amounts.presented.numberDecimal | presented | monto de los arqueos | number |
controlTransaction.TillConciliation.amounts.excessesMissing.numberDecimal | excessesMissing | Indica los montos de sobrante / faltante | number |
JSON tillConciliation.tenderAdditionalData – SQL tillConciliationTenderAdditionalData
Campo JSON | Campo SQL | Descripcion | Tipo dato |
tenderCode | tenderCode | Codigo medio de pago | string |
tenderName | tenderName | Nombre medio de pago | string |
provider | provider | string | |
tillConciliationId | tillConciliationId | id de la tillConciliationId | string |
JSON tillConciliation.subperiods – SQL tillConciliationSubperiods
Campo JSON | Campo SQL | Descripcion | Tipo dato |
sbPeriodNumber | sbPeriodNumber | Número de subperíodo o turno de la conciliación | string |
subPeriodCode | subPeriodCode | Código del subperiodo de la conciliación | string |
tillConciliationId | tillConciliationId | id de la tillConciliationId | string |
JSON tillConciliation.controlTransaction.TillConciliation.controlTransactionTillLineItems – SQL tillConciliationTillLineItems
Campo JSON | Campo SQL | Descripcion | Tipo dato |
_id | _id | identificador | string |
equence | equence | Secuencia de la transacción | number |
conciliatedFlag | conciliatedFlag | Identifica si la cuenta esta conciliada | boolean |
conciliationReason | conciliationReason | Identifica el motivo de diferencia | string |
conciliationComments | conciliationComments | Comentarios adicionales de la conciliación | string |
conciliationOperator | conciliationOperator | operador que concilió la cuenta | string |
conciliationDate | conciliationDate | Indica la fecha y hora en que se concilió la cuenta | datetime |
tenderRepository | tenderRepository | Indica la cuenta primaria (operador / terminal / categoría de terminal) | string |
amounts.tenderLoanTotalAmount.numberDecimal | tenderLoanTotalAmount | indica el monto de las dotaciones | number |
amounts.tenderPickupTotalAmount.numberDecimal | tenderPickupTotalAmount | Indica el monto de los retiros | number |
amounts.tenderWithdrawalTotalAmount.numberDecimal | tenderWithdrawalTotalAmount | Indica el monto de las rendiciones | number |
amounts.positiveTenderTotalAmount.numberDecimal | positiveTenderTotalAmount | Indica el monto de las ventas | number |
amounts.negativeTenderTotalAmount.numberDecimal | negativeTenderTotalAmount | Indica el monto de las devoluciones | number |
amounts.othersIncome.numberDecimal | othersIncome | Indica el monto de las cobranzas | number |
amounts.othersExpenditure.numberDecimal | othersExpenditure | Indica el monto de las devoluciones de cobranzas | number |
amounts.presented.numberDecimal | presented | Indica el monto de los arqueos | number |
amounts.excessesMissing.numberDecimal | excessesMissing | Indica los montos de sobrante / faltante | number |
tillConciliationId | tillConciliationId | id tillConciliation | string |
JSON tillConciliation.controlTransaction.TillConciliation.controlTransactionTillLineItems.controlTransactionTillTenderLineItems –
SQL tillConciliationTillTenderLineItems
Campo JSON | Campo SQL | Descripcion | Tipo dato |
sequence | sequence | Secuencia de transacción | number |
tender | tender | Indica el medio de pago | string |
tenderCode | tenderCode | código de medio de pago | string |
tenderLoanTotalAmount | tenderLoanTotalAmount | indica el monto de las dotaciones | number |
tenderPickupTotalAmount | tenderPickupTotalAmount | Indica el monto de los retiros | number |
tenderWithdrawalTotalAmount | tenderWithdrawalTotalAmount | Indica el monto de las rendiciones | number |
positiveTenderTotalAmount | positiveTenderTotalAmount | Indica el monto de las ventas | number |
negativeTenderTotalAmount | negativeTenderTotalAmount | Indica el monto de las devoluciones | number |
othersIncome | othersIncome | Indica el monto de las cobranzas | number |
othersExpenditure | othersExpenditure | Indica el monto de las devoluciones de cobranzas | number |
presented | presented | Indica el monto de los arqueos | number |
excessesMissing | excessesMissing | Indica los montos de sobrante / faltante | number |
tillConciliationTillLineItemsId | tillConciliationTillLineItemsId | id de tillConciliationTillLineItems | string |
SON tillConciliation.controlTransaction.TillConciliation.controlTransactionTillLineItems.controlTransactionSecondaryTillLineItems –
SQL tillConciliationSecondaryTillLineItems
Campo JSON | Campo SQL | Descripcion | Tipo dato |
_id | _id | identificador | string |
sequence | sequence | Secuencia de la transacción | number |
tenderRepository | tenderRepository | Identifica la cuenta base | string |
amounts.tenderLoanTotalAmount.numberDecimal | tenderLoanTotalAmount | indica el monto de las dotaciones | number |
amounts.tenderPickupTotalAmount.numberDecimal | tenderPickupTotalAmount | Indica el monto de los retiros | number |
amounts.tenderWithdrawalTotalAmount.numberDecimal | tenderWithdrawalTotalAmount | Indica el monto de las rendiciones | number |
amounts.positiveTenderTotalAmount.numberDecimal | positiveTenderTotalAmount | Indica el monto de las ventas | number |
amounts.negativeTenderTotalAmount.numberDecimal | negativeTenderTotalAmount | Indica el monto de las devoluciones | number |
amounts.othersIncome.numberDecimal | othersIncome | Indica el monto de las cobranzas | number |
amounts.othersExpenditure.numberDecimal | othersExpenditure | Indica el monto de las devoluciones de cobranzas | number |
amounts.presented.numberDecimal | presented | Indica el monto de los arqueos | number |
amounts.excessesMissing.numberDecimal | excessesMissing | Indica los montos de sobrante / faltante | number |
tillConciliationTillLineItemsId | tillConciliationTillLineItemsId | ID tillConciliationTillLineItems | string |
JSON tillConciliation.controlTransaction.TillConciliation.controlTransactionTillLineItems.controlTransactionSecondaryTillLineItems.controlTransactionSecondaryTillTenderLineItems– SQL tillConciliationSecondaryTillTenderLineItems
Campo JSON | Campo SQL | Descripcion | Tipo dato |
sequence | sequence | Secuencia de transacción | number |
tender | tender | Indica el medio de pago | string |
tenderCode | tenderCode | código de medio de pago | string |
tenderLoanTotalAmount | tenderLoanTotalAmount | indica el monto de las dotaciones | number |
tenderPickupTotalAmount | tenderPickupTotalAmount | Indica el monto de los retiros | number |
tenderWithdrawalTotalAmount | tenderWithdrawalTotalAmount | Indica el monto de las rendiciones | number |
positiveTenderTotalAmount | positiveTenderTotalAmount | Indica el monto de las ventas | number |
negativeTenderTotalAmount | negativeTenderTotalAmount | Indica el monto de las devoluciones | number |
othersIncome | othersIncome | Indica el monto de las cobranzas | number |
othersExpenditure | othersExpenditure | Indica el monto de las devoluciones de cobranzas | number |
presented | presented | Indica el monto de los arqueos | number |
excessesMissing | excessesMissing | Indica los montos de sobrante / faltante | number |
tillConciliationSecondaryTillLineItemsId | tillConciliationSecondaryTillLineItemsId | id de tillConciliationSecondaryTillLineItems | string |
INSTALACIÓN DEL PLUGIN
- Para que el plugin funcione, deben haberse dado los siguientes pasos:
- Creación de la base de datos Bridge2SQL en MongoDB.
- Creación de la base de datos Bridge2SQL en SQL Server.
- Haber corrido los scripts en la base de datos Bridge2SQL de SQL Server y los incrementales.
- Haber instalado el plugin NodeJS.
- Haber configurado bien el plugin, apuntando a central, base de datos mongo y SQL.
- Haber habilitado la exportación a Rabbit desde BMC.
- Haber configurado en el config del plugin, que colecciones va a exportar, es decir, esto se configura en BMC (habilitando la exportación a Rabbit) y luego en el plugin (indicando cuales son las colas Rabbit que escucha).
- Se debe crear una nueva base de datos con un nombre alusivo en un Servidor SQL Server, por ejemplo Bridge2SQLMarti
- En MongoDB, en el servidor en donde ejecuta BMC o BAPIC, se debe crear una base de datos MongoDB con un nombre alusivo, por ejemplo Bridge2SQLMarti
- Se deben correr el script principal y los incrementales en el siguiente orden:
- CreacionTablas.sql
- 20240606-NAPSEPD-31693-AlterTenderReferenceNumber.sql
- 20240819-NAPSEPD-32712-AlterTransactionRetail.sql
- 20240821-NAPSEPD-32527-AlterTransactionRetailPayment.sql
- 20240924-NAPSEPD-34679-AlterTransactionRetail.sql
- 20241120-NAPSEPD-36262-AlterTransactionRetailPayment.sql
- 20250327-NAPSDPD-35846-AgregaCamposDeProcesamientoEnTablas.sql
- 20250410-NAPSDPD-35846-AcomodaCamposSiNoExisten.sql
- La base deberá verse así:
- El próximo paso, es configurar el archivo de configuración:
{ "app": { "db": { "mongoUrl": "mongodb://admin:[email protected]:27017/pluginSQLmarti?replicaSet=bridge&authSource=admin" }, "rabbit": { "url": "amqp://admin:[email protected]:5672", "active": true, "queues":["transactions.sql", "customers.sql"] }, "server": { "port": "8682", "logMode": "debug", "isSsl": false }, "bridge": { "url": "http://10.4.203.65:8081", "client": "bridge-api", "secret": "DA39A3EE5E6B4B0D3255BFEF95601890AFD80709", "topTransactions": 10 }, "sql": { "user": "napse_usr", "password": "Read+Card-Bell", "database": "DW_NAPSE", "server": "10.72.250.11", "port": 1433 } } }
- Los datos del archivo, son los siguientes:
- mongoUrl es la dirección del servidor de base de datos contra el cual operará el plugin, NO se trata de la base productiva de BRIDGE, si no, de una nueva base que será utilizada por el plugin.
- rabbit: se debe configurar la IP de RabbitMQ de donde el plugin tomará los registros que se exportan.
- rabbit.queues: se deben definir que colas se tomarán.
- bridge: son los datos de BRIDGE API.
- sql: es la información del servidor de SQL Server en donde cree la base.
- Luego, se instala el plugin como cualquier otro, es decir, si es en Linux, se configura en ecosystem o si es en Windows, como servicio.