Publicado el Dejar un comentario

¿Dónde almacena MyBusiness POS el código de las personalizaciones?

Cuando comenzamos a desarrollar soluciones para MyBusiness POS, una de las primeras dudas que surge es: ¿dónde se guarda todo el código que escribimos en el Editor Gráfico?

La respuesta resulta muy útil cuando necesitamos realizar respaldos, migrar una empresa a otro servidor o simplemente entender cómo funciona internamente el sistema.

Las personalizaciones viven en SQL Server

A diferencia de otras aplicaciones que almacenan scripts en archivos de texto, MyBusiness POS guarda prácticamente todas las personalizaciones dentro de la base de datos de Microsoft SQL Server.

Esto representa una gran ventaja, ya que al respaldar la base de datos también se respaldan las modificaciones realizadas al sistema, incluyendo scripts, formularios y formatos personalizados.

La tabla FormasDelta

La mayor parte del código desarrollado mediante el Editor Gráfico se almacena en la tabla FormasDelta.

En esta tabla podemos encontrar información relacionada con:

  • Eventos personalizados.
  • Procedimientos.
  • Scripts en VBScript.
  • Cambios en formularios.
  • Objetos agregados mediante el Editor Gráfico.

Cada vez que se modifica una forma o se agrega código a un evento, MyBusiness POS registra dicha información en esta tabla.

La tabla FormatosDelta

Otra tabla importante es FormatosDelta, encargada de almacenar las modificaciones realizadas a los formatos del sistema.

Entre ellos podemos encontrar:

  • Formatos de impresión.
  • Tickets.
  • Facturas.
  • Reportes.
  • Plantillas personalizadas.

Si alguna vez has modificado un formato de impresión, es muy probable que los cambios se encuentren almacenados aquí.

¿Puedo consultar estas tablas?

Sí. Desde SQL Server puedes consultar su contenido utilizando una instrucción SELECT.

Por ejemplo:

SELECT *
FROM FormasDelta

o bien:

SELECT *
FROM FormatosDelta

De esta manera podrás verificar que las personalizaciones existen dentro de la base de datos.

Importante: evita modificar directamente estas tablas mediante instrucciones UPDATE o DELETE. Una modificación incorrecta puede provocar errores en las personalizaciones o impedir que determinadas ventanas funcionen correctamente.

¿Por qué es importante conocer esto?

Saber dónde se almacena el código facilita muchas tareas de administración, por ejemplo:

  • Respaldar desarrollos personalizados.
  • Migrar una empresa a otro servidor.
  • Documentar modificaciones realizadas por distintos desarrolladores.
  • Comparar cambios entre ambientes de pruebas y producción.
  • Verificar que una restauración de la base de datos incluya todas las personalizaciones.

Una recomendación para desarrolladores

Si desarrollas soluciones para varios clientes, acostúmbrate a documentar cada personalización indicando:

  • El formulario modificado.
  • El evento donde se agregó el código.
  • El objetivo del script.
  • La fecha de implementación.
  • La versión de MyBusiness POS sobre la que fue desarrollado.

Esta práctica simplifica enormemente el mantenimiento y las futuras actualizaciones del sistema.

Conclusión

Comprender dónde almacena MyBusiness POS sus personalizaciones permite trabajar con mayor seguridad al realizar respaldos, migraciones o desarrollos a la medida. Las tablas FormasDelta y FormatosDelta forman parte de la arquitectura de personalización del sistema y conocer su propósito ayuda a administrar mejor cualquier implementación.

En futuras publicaciones exploraremos cómo localizar un script específico dentro de estas tablas y qué herramientas pueden facilitar la documentación de los desarrollos realizados en MyBusiness POS.

Publicado el Dejar un comentario

Validando información antes de guardar un documento mediante Scripts en MyBusiness POS


Una de las mayores ventajas de MyBusiness POS es la posibilidad de extender su funcionamiento mediante Scripts. Con unas cuantas líneas de código podemos validar información, mostrar mensajes al usuario e incluso impedir que un documento sea guardado cuando no cumple con las políticas de la empresa.

En este ejemplo aprenderemos a validar que el cliente tenga asignado un RFC antes de permitir guardar una factura.

¿Por qué hacerlo?

En muchos negocios es común que existan clientes registrados únicamente con nombre. Sin embargo, al momento de emitir una factura es indispensable contar con un RFC válido.

En lugar de esperar a que el CFDI genere un error, podemos realizar la validación desde el propio Script.

Código de ejemplo

'-----------------------------------------------------
' Validar RFC del cliente
' Evento: Antes de guardar el documento
'-----------------------------------------------------

Dim sRFC

sRFC = Cliente.Valor("RFC")

Si Trim(sRFC) = "" Entonces

    Mensaje "El cliente seleccionado no tiene capturado el RFC." & _
            SaltoLinea & _
            SaltoLinea & _
            "Capture el RFC antes de continuar."

    Cancelar

FinSi

Analizando el Script

Obtener el valor de un campo

La función Valor() permite recuperar el contenido de un campo del objeto actual.

sRFC = Cliente.Valor("RFC")

En este caso obtenemos el RFC del cliente asociado al documento.


Validar que exista información

Antes de guardar el documento verificamos que el campo no esté vacío.

Si Trim(sRFC) = "" Entonces

Utilizar Trim() elimina espacios al inicio y al final del texto, evitando que un campo con espacios sea considerado como válido.


Mostrar un mensaje

Para informar al usuario utilizamos el procedimiento Mensaje.

Mensaje "El cliente seleccionado no tiene capturado el RFC."

La ventaja es que el usuario conoce inmediatamente la causa del problema.


Cancelar el proceso

Cuando una condición no se cumple podemos impedir que el documento continúe.

Cancelar

Dependiendo del evento donde se ejecute el Script, MyBusiness POS regresará el control al usuario para corregir la información.


Agregando una confirmación

En algunos casos no queremos cancelar automáticamente el proceso, sino permitir que el usuario decida.

Si Pregunta("El cliente no tiene RFC." & SaltoLinea & _
            "¿Desea continuar?") = No Entonces

    Cancelar

FinSi

La función Pregunta() resulta muy útil cuando la decisión depende del operador.


Validando el importe del documento

Otro ejemplo práctico consiste en advertir cuando una venta supera cierto importe.

Dim dTotal

dTotal = Documento.Valor("TOTAL")

Si dTotal > 50000 Entonces

    Mensaje "Esta venta supera los $50,000." & _
            SaltoLinea & _
            "Solicite autorización."

    Cancelar

FinSi

Este tipo de validaciones son comunes para restringir ventas de alto importe sin autorización.


Buenas prácticas

Cuando desarrolles Scripts para MyBusiness POS procura seguir estas recomendaciones:

  • Utiliza nombres descriptivos para las variables.
  • Coloca comentarios en cada bloque importante.
  • Evita repetir el mismo código en varios eventos.
  • Aprovecha las funciones propias del motor de Scripts antes de recurrir a soluciones externas.
  • Realiza las pruebas en una empresa de demostración antes de implementar los cambios en producción.

Conclusión

Los Scripts de MyBusiness POS permiten adaptar el sistema a las necesidades específicas de cada empresa sin modificar el código fuente. Funciones como Valor(), Mensaje, Pregunta y Cancelar facilitan la implementación de reglas de negocio de una forma sencilla y fácil de mantener.

En una siguiente publicación exploraremos cómo recorrer las partidas de un documento para validar artículos, cantidades y precios de manera automática.

Publicado el Dejar un comentario

Cómo identificar los productos que llevan meses sin vender en MyBusiness POS

Uno de los errores más comunes en un negocio es seguir comprando mercancía sin saber qué productos realmente tienen movimiento.

Con MyBusiness POS puedes detectar fácilmente los artículos de baja rotación para tomar mejores decisiones de compra.

¿Por qué es importante?

Un producto que permanece mucho tiempo en inventario representa dinero inmovilizado, ocupa espacio y puede terminar deteriorándose o volviéndose obsoleto.

Revisar periódicamente estos productos te permitirá:

  • Reducir compras innecesarias.
  • Liberar espacio en almacén.
  • Crear promociones para desplazar mercancía.
  • Mejorar el flujo de efectivo.

¿Cómo obtener la información?

Una forma sencilla es utilizar los reportes de ventas por período y compararlos con la existencia actual del inventario.

Si un artículo tiene existencia disponible, pero no registra ventas durante los últimos meses, conviene analizar si debe seguir formando parte del catálogo.

También puedes ordenar los reportes por cantidad vendida para identificar rápidamente los productos con menor movimiento.

¿Qué hacer con esos productos?

Dependiendo del tipo de negocio, algunas estrategias son:

  • Crear promociones temporales.
  • Venderlos en paquete con otros productos.
  • Aplicar descuentos graduales.
  • Dejar de surtirlos cuando se agoten.
  • Sustituirlos por productos con mayor demanda.

Convierte la información en decisiones

No basta con conocer las ventas del día. Los negocios más rentables analizan constantemente qué productos generan ganancias y cuáles mantienen detenido el capital.

Dedicar unos minutos al mes para revisar la rotación del inventario puede representar un ahorro importante y mejorar la rentabilidad del negocio.


Consejo

Si administras varios almacenes, realiza este análisis por sucursal. Es común que un producto tenga excelente rotación en una tienda y prácticamente ninguna en otra.


Palabras clave SEO: MyBusiness POS, productos sin movimiento, inventario, rotación de inventario, reportes de ventas, administración de inventarios, control de almacén, punto de venta.

Publicado el Dejar un comentario

¿Por qué MyBusiness POS está lento? 7 causas y cómo solucionarlas

Muchos usuarios creen que MyBusinessPOS lento, cuando en realidad el problema suele estar en la configuración del equipo, la red o la base de datos. En este artículo veremos los errores más comunes y cómo corregirlos.

1. Instalar MyBusiness POS en un disco duro mecánico (HDD)

Si el servidor utiliza un disco duro tradicional, cada consulta a la base de datos tarda mucho más.

Recomendación: Instalar SQL Server y la base de datos en un SSD puede reducir considerablemente los tiempos de carga.


2. Antivirus analizando la carpeta de la base de datos

Muchos antivirus revisan constantemente los archivos MDF y LDF de SQL Server.

Esto provoca bloqueos temporales y lentitud.

Solución:

  • Excluir la carpeta de la base de datos.
  • Excluir los procesos de SQL Server.

3. Red local con problemas

Un cable de red dañado o una conexión Wi-Fi inestable provoca:

  • Ventas lentas.
  • Apertura tardía de catálogos.
  • Errores de comunicación.

Siempre que sea posible utiliza conexión por cable Gigabit.


4. Base de datos sin mantenimiento

Con el paso del tiempo los índices se fragmentan y las consultas tardan más.

Es recomendable realizar periódicamente:

  • Reorganización de índices.
  • Actualización de estadísticas.
  • Respaldos.

5. Equipos con poca memoria RAM

Cuando Windows comienza a utilizar memoria virtual, todo el sistema se vuelve lento.

Para versiones actuales se recomienda al menos:

  • 8 GB de RAM para estaciones.
  • 16 GB o más para el servidor.

6. Demasiados programas abiertos

Es frecuente encontrar cajas donde al mismo tiempo están abiertos:

  • Navegador con muchas pestañas.
  • WhatsApp.
  • Reproductores de música.
  • Programas de oficina.

Esto consume recursos que deberían estar disponibles para MyBusiness POS.


7. SQL Server instalado con la configuración predeterminada

En muchas instalaciones nunca se ajustan parámetros como:

  • Memoria máxima.
  • Tamaño inicial de la base de datos.
  • Crecimiento automático.

Una configuración adecuada mejora notablemente el rendimiento.


Conclusión

Antes de pensar que MyBusiness POS tiene un problema de rendimiento, revisa estos siete puntos. En la mayoría de los casos, una correcta configuración del equipo, la red y SQL Server mejora significativamente la velocidad del sistema sin necesidad de cambiar de hardware o reinstalar el programa.


Palabras clave: MyBusiness POS lento, optimizar MyBusiness POS, SQL Server MyBusiness, rendimiento MyBusiness POS, punto de venta, soporte MyBusiness POS, configuración SQL Server, velocidad MyBusiness POS .

Publicado el Dejar un comentario

error de sistema 380 en MyBusinessPOS

TIMER 11:40:17 0: in line 0  Error de sistema: 380 A script engine for the specified language can not be created.