Developers Manual/Introduction/es
Openbravo ERP es un ERP extendido basado en Web para PyMEs (Pequeña y Mediana Empresa). La solución ERP incluye CRM (Manejo de relaciones con el cliente) y BI (Inteligencia de negocios), y un amplio rango de funcionalidades estándar, tales como administración de compras, almacenamiento, proyectos, manufactura y ventas, administración financiera, etc. Openbravo se encuentra en producción en compañías pertenecientes a diferentes industrias, incluyendo distribución, servicios y manufacturas.
Openbravo ERP puede ser extendido para proveer funcionalidad y procesos de negocios específicos para determinados sectores o industrias, utilizando verticales. Por ejemplo, una vertical para compañías inmobiliarias puede proveer formas legales y procedimientos específicos del sector inmobiliario.
La licencia de código abierto de Openbravo ERP le da a los partners y desarrolladores la libertad de elegir si quieren publicar su trabajo bajo una licencia de código abierto, o prefieren un modelo de ingresos basado en licencia propietaria. Nosotros animamos a los partners y desarrolladores a compartir su trabajo bajo una licencia de código abierto, para incrementar la disponibilidad de Openbravo ERP para sectores nuevos.
El objetivo de este manual es proveer una guía para la gente que desarrolla nuevas funcionalidades o verticales para Openbravo, o alguna personalización para satisfacer necesidades específicas.
Contents |
Conceptos de desarrollo de Openbravo
La siguiente lista contiene una descripción de los conceptos principales del Modelo de Desarrollo Dirigido (MDD) utilizado en el desarrollo de Openbravo:
- Diccionario de aplicación: un almacén centralizado donde se registran las tablas que definen las ventanas, los tabs y los campos.
- Menú de aplicación: porción izquierda del menú principal de Openbravo, donde los usuarios pueden encontrar la funcionalidad principal de la aplicación.
- Callout (también llamado trigger): acción automática que ocurre cuando un usuario cambia una ventana dada. Un ejemplo de callout podría ser añadir o eliminar un campo visible, o llenar una orden basada en información introducida en el sistema.
- MVC (Modelo-Vista-Controlador): una arquitectura para construir aplicaciones que separan el modelo de datos (modelo) de la interfaz de usuario (vista) y el procesamiento (controlador). En Openbravo, el MVC se implementa como sigue:
- El Modelo se logra utilizando la herramienta SqlC de Openbravo. La entrada es un archivo XML que contiene sentencias SQL estándar, y los parámetros utilizados en ellas. Estos parámetros pueden ser optativos o no, y facilitan la generación de cualquier sentencia SQL necesaria.
- La Vista utiliza la utilizada XmlEngine desarrollada por Openbravo para diseñar la interfaz de usuario. XMLEngine es una utilidad utilizada para crear XML/HTML documentos desde un template en formato XML/HTML.
- El Controlador en el framework Openbravo está constituido por clases java que extienden de HttpBaseServlet. Estos servlets realizan la lectura de datos interactuando con las clases generadas por SqlC y proveyendo la salida con XmlEngine.
- Reporte: un reporte presenta información obtenida de una tabla o consulta en una forma pre-formateada y visualmente atractiva. La salida se realiza en html o pdf con el objetivo de mostrar la información solicitada en forma clara y organizada. Los reportes pueden ser personalizados, y son comúnmente usados para resumir datos globales.
- Ventanas: pantallas utilizadas por la aplicación para administrar los datos. En estas pantallas se pueden introducir, modificar o eliminar datos. Una ventana se compone de uno o más tabs. Openbravo define dos tipos de ventanas: ventanas estándar y forms:
- Ventana estándar: ventana generada automáticamente, en la cual los datos pueden ser introducidos, modificados o eliminados. La información de una pantalla estándar es creada por Openbravo, basándose en los datos introducidos al sistema.
- Form: una ventana generada en forma manual, donde los datos se introducen, modifican o eliminan. A diferencia de una ventana estándar, los forms permiten una entrada de datos más compleja, así como también, permiten al usuario ingresar datos a ser utilizados en más de un lugar.
Metodología de desarrollo
Openbravo es una plataforma de desarrollo sobre la cual se ha construido Openbravo ERP. Como se explica en el documento de arquitectura, el desarrollo se puede realizar en dos niveles:
- Diccionario de aplicación
- Es el lugar centralizado donde se almacenan las ventanas, tablas, columnas, procesos, reportes y sus relaciones. Los usuarios pueden desarrollar nuevas funcionalidades simplemente definiendo nuevas ventanas, elementos de datos y reportes, y registrándolos en el diccionario de aplicación sin necesidad de escribir ni siquiera una línea de código. La mayoría del código de Openbravo ERP es generado a partir de la información descrita en el diccionario de aplicación.
- Modelo-Vista-Controlador
- Trabajando a este nivel, es posible realizar cualquier cambio utilizando el framework de desarrollo Openbravo MVC. Cuando una utilidad o función necesaria no se ajusta al diccionario de datos de Openbravo, el desarrollo se realiza a nivel MVC. Esto implica normalmente desarrollar nuevas clases Java.
Organización del desarrollo
Antes de comenzar a desarrollar nueva funcionalidad, es importante tener una clara visión de lo que deberá llevarse a cabo y cuales son los elementos necesarios para implementar esa visión. Algunos puntos que pueden ayudar a organizar los esfuerzos de desarrollo son:
- Qué funcionalidad debe ser provista. Obtener una clara idea de cuales son las funcionalidades que necesitan implementarse.
- Mantener el diseño tan simple como sea posible. Hacerlo en forma modular, de manera de permitir un buen nivel de interacción entre los distintos componentes.
- Definir el modelo de datos. Cuales tablas, columnas, relaciones e índices necesitan ser añadidos o modificados para albergar los datos necesarios para implementar la funcionalidad.
- Definir la interfaz de usuario. Cómo los usuarios habrán de interactuar con la nueva funcionalidad. Organizar los elementos visuales de forma de respetar los estándares de usabilidad de la industria.
- Definir los reportes. Pensar cuales son los datos relevantes para los usuarios y cual es la mejor manera de representarlos en un reporte.
Criterio de nombrado
Tener un criterio de nombrado claro, estándar y consistente para los elementos del diccionario de datos es crítico en sistemas ERP. Seguir un criterio de nombrado al desarrollar garantiza que las nuevas versiones de Openbravo ERP no tendrán conflictos con desarrollos personalizados.
Estructura de directorios
Openbravo ERP tiene una estructura de directorios que divide lógicamente los distintos componentes principales (XmlEngine, SQLC, HttpBaseServlet) y el WAD (wizard para el diccionario de aplicación) del ERP propiamente dicho (forms, reportes, call-outs, combos, work-flows, procesos, etc).
Guías de estilo
Para crear código uniforme y limpio, se recomienda seguir las guías de estilo. Esto se aplica al código Java, XML, HTML y PL/SQL.
Compilación de la aplicación
La compilación de la aplicación se realiza utilizando la herramienta Ant. Esto se puede realizar desde la línea de comandos, desde el entorno de desarrollo, o en el entorno de producción.
Existen diferentes tareas de compilación para las diferentes partes del proyecto, y una tarea de instalación (install.source) que realiza todas las demás tareas en orden.
Instalación del código fuente
Entorno integrado de desarrollo (IDE)
Pueden hallarse tutoriales básicos sobre como desarrollar rápidamente en Openbravo ERP utilizando Eclipse en: