Apache OFBiz

August 18, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Apache OFBiz...

Description

 

linux en la empresa Desarrollo de sistemas corporativos

Apache OFBiz Javier Torres

 Apache OFBiz reduce drásticamente drásticamente el código requerido para obtener una aplicación, con un alto nivel de abstracción, que nos permite concentrarnos en la implementación del modelo de negocio y no en la programación misma.

     l     p  .     m     o     c  .     e     r     a     w      t      f     o     s      @     x     u     n      i      l

l hablar de sistemas para corporaciones, apare- commerce, SCM, MRP, CMMS/EAM, etc? Además que sea cen siglas tales como ERP, CRM, E-Business/ fácil de instalar, congurar, adaptar y desarrollar desarrollar.. E-commerce, SCM, MRP, CMMS/EAM y Bueno, sí existe una solución informática que da resmás, que básicamente hacen referencia a:  puestas  puest as a estas nec necesidad esidades, es, es Apache Open Ope n for Business Busi ness Project, también conocido como Apache OFBiz. El misERP: Sistemas de Planicación de Recursos de la Em- mo es un proyecto de automatización de software empre presa (Enterprise Resource Planning). Planning). sarial Open Source, bajo la licencia Apache versión 2.0. CRM: Administración de la relación con los clientes clientes Apache OFBiz es un sistema OOTB (Out Of The (Customer Relationship Management) Box), es decir instala y se lo usa, sin más vueltas. Ofrece E-Bussines / E-Commerce: Negocios Electrónicos o una gran cantidad de funcionalidades, incluyendo: Comercio Electrónico. SCM: Gestión de la Cadena de Suministro • Comercio electrónico avanzado MRP: Planicación de Requerimientos de Materiales • Administración de catálogo (MRP - Material requirements planning - Manufacturing • Gestión de promociones y precios Resource Planning) • Administrac Administración ión de órdenes de pedido (Compras y Ventas) CMMS/EAM:: Sistemas de Administración de Manteni- • Gestión de clientes CMMS/EAM miento Automatizado (CMMS Computerized Mainte- • Gestión de almacenes - depósitos nance Management Systems). Administración de Activos • Cumplimiento de movimiento automático de stock,

A • • • • •



Empresariales (EAM Enterprise Asset Management)



Uno se preguntaría, ¿existe un sistema Open Source orientado a dar soluciones del tipo ERP, CRM, E-Business/E- •

46

Linux+ 3/2008

agrupación de selecciones, envío. Gestión Contable (factura,empaque el pago,y la facturación de cuentas, activos jos) Administración de los procesos de fabricación

 

linux en la empresa Desarrollo de sistemas corporativos









Administración general de trabajo requerido y empleado – esfuerzo de trabajo (eventos, tareas, proyectos, solicitudes, etc.) Gestión de contenidos para el producto contenido, páginas web, de contenido general, blogs, foros, etc. Un módulo maduro de punto de venta (POS) usando XUI como una interfaz de cliente enriquecida Y mucho más, más, ¡todo ¡todo un un proyecto proyecto Open Source!

Tecnologías  Nos basaremos basaremos en las tecnologí tecnologías as ampliament ampliamentee conocidas y usadas como Php/Perl y Java para explicar lo que sería Apache OFBiz. Como todos sabemos Php/Perl se concentra en el desarrollo rápido y en obtener resultados, es un lenguaje interpretado, interpretad o, y que carece de una estructura bien denida, mientras Java hace hincapié en la separación de código, es un lenguaje que tiene una estructura bien denida, generalmente separa la  presenta  pres entación, ción, de la lógica lógica y la la de acce acceso so a la base base de datos, típicamente incluye muchas librerías, clases, propiedades de archivos, denición de archivos, y demás. Apache OFBiz combina la velocidad de Php/Perl, con la estructura Java, obteniendo algo bastante interesante. Logrando reducir drásticamente el código requerido para obtener nuestra aplicación, creando un alto nivel de abstracción, que nos permite concentrarnos en la implementación del modelo de negocio y no en la programación misma. OFBiz se construye utilizando el modelo MVC (Model-View-Controller), esto quiere decir que un controlador analiza las peticiones primero, y después determina qué hacer. La lógica de negocio de OFBiz no se rige a las páginas particulares (como en PHP), objetos  particul  part iculares ares (com (comoo en Java Java), ), o las petic peticiones iones par par-ticulares del servidor (como en servlets de Perl o de Java del cgi), se crean generalmente  serv  serviicios, que son pedazos pequeños, reutilizables reutilizables del código que se pueden escribir en una variedad de lenguajes, incluyendo Java, Jython (una im plementa  plem entación ción de alto alto nivel, dinámic dinámico, o, orientado orientado a objeto del lenguaje Python, escrito en Java),  beanshell  bean shell,, o el mini lengu lenguaje aje de OFBi OFBiz. z. Los

servicios pueden entonces llamarse directamente desde la aplicación web, de forma automática, dentro de otros servicios, de workows declarados, o remotamente vía el SOAP o el RMI.

Instalar Apache OFBiz La instalación consiste en tan solo bajar la aplicación desde el proyecto Apache OFBiz y de luego instalar Java. Se ejecuta un script de instalación, se congura, se lo hace correr y nada más, queda listo para que la empresa mejore su productividad. Las siguientes instrucciones de instalación son en particular para una distro Debian GNU/ Linux llamada Etch, con una base de datos PostgreSQL, sin embargo embargo los pasos a seguir son similares en las demás distribuciones. Para instalar Java SDK se comienza agregando non-free en los repositorios de Debian Etch (en /etc/apt/ sources.list),, y luego se ejecuta en consola: sources.list) apt-get update apt-get install sun-java5-jdk  

sun-java5-jre sun-java5-

 

bin sun-java5-plugin

svn co http://svn.apache.org/repos  

Instalar PostgreSQL Por defecto el sistema Apache OFBiz tiene congurado e integrado una base de datos Java embebida llamada Derby. La misma es buena  para demostrar demostrar,, proba probar, r, y desa desarrol rrollar lar pequeñas implementaciones. Pero se recomienda no utilizar Derby, ya que no es fácil de administrar, ni optimizar, y no posee una buena performance. OFBiz soporta una gran cantidad de base de datos, tanto comerciales como Open Source, entre las comerciales tenemos a Oracle, MS SQLServer, y dentro de las Open Source Postgre o MySQL, generalmente se recomiendan estas últimas. En esta instalación elegimos PostgreSQL,  por ninguna razón en particu particular, lar, simplemente  por mayor anidad. Escribi Escribirr en la consola de nuestro Debian: apt-get install postgres8.1 luego hay que congurar el mismo mínimamente como sigue: •

export JAVA_HOME="/usr   /lib/jvm/java-1.5.0  

-sun-1.5.0.10/"

/asf/ofbiz/trunk ofbiz

En

/etc/postgresql/8.1/main/post-

gresql.conf  descomentar la línea que dice listen_addresses = 'localhost' 



En

/etc/postgresql/8.1/main/pg_hba.

conf modicar

Para nalizar esta parte, se debe agregar una línea en el archivo /etc/prole, para se cargue desde el arranque, como sigue: •

la línea que dice

host all

all 127.0.0.1/32 md5” por “host all all 127.0.0.1/32 trust

Reiniciar postgresql de la siguiente manera: /etc/init.d/postgresql-8.1 /etc/init.d/postgresql-8 .1 restart

•   /lib/jvm/java-1.5.0-sun-1.5.0.10/"     La instalación de Apache OFBiz consiste en • descargar directamente desde el desarrollo del    proyecto,  proye cto, util utilizan izando do un clie cliente nte SVN (subv (subverersión, un sistema controlador de versionado),    por consi consiguie guiente nte insta instalamos lamos el sopor soporte te SVN • (subversión):     apt-get install subversion     subversion-tools • export JAVA_HOME="/usr

Creamos la carpeta donde se trabajará y descargar allí el proyecto:   mkdir workspace

 

Crear usuario ofbiz en GNU/Linux: useradd ofbiz passwd ofbiz

Crear el usuario ofbiz en PostgreSQL: su postgres createuser ofbiz exit

Crear base de datos con el usuario ofbiz: su ofbiz createdb ofbiz exit

Instalar el controlador jdbc para postgres8.1 de Java, para ello hay que ubicarse en una carpeta en particular dentro del OFBiz que instalamos, y descargar un paquete: cd ..ofbiz/framework /entity/lib/jdbc/

cd workspace

Figura 1. Certifcado 1. Certifcado de OFBiz

Figura 2. Confrmación 2. Confrmación de Certifcado de OFBiz

www.lpmagazine.org

Figura 3. Logueo 3. Logueo en OFBiz

47

 

linux en la empresa Desarrollo de sistemas corporativos

 

wget http://jdbc.postgre http://jdbc.postgresql.org sql.org

escribir lo siguiente: java

 

/download/postgresql

-install -readers=seed

 



-8.1-409.jdbc3.jar

Editar

...workspace/ofbiz/framework/

entity/cong/entityengine.xml

cambiar donde dice: datasource-name=” localderby”  por datasource-name=” localpostgres” y agregar 5432  en: ......... .......... Entity Entity   of of   an an   Open Open   For Business Business   Project Project   Component Component< > persons"> < > > < > > < > > < > > < > > < > available"> < > > < > > < > Entity"> < > > < > >

Figura 4. Primera 4. Primera impresión de Apache OFBiz

> > > > >

Figura 5. E-Commerce de Apache OFBiz

48

Linux+ 3/2008

 

linux en la empresa Desarrollo de sistemas corporativos

Congurado en: Containers XML File Referenciado en: Containers XML File, JNDI Referenciado en: Navegadores Web (Browser, Properties File, Service Engine XML File si corre directamente) • IIOP (Shark, etc) - 2000 • AJP13 - 8009 Congurado en: Carol Properties Congurado en: Containers XML File (carol.iiop.url ) Referenciado en: Conguración por medio Referenciado en: Containers XML File Apache mod_jk plugin • BSH Client - 9989, 9990 (estas deberían • JRMP (JNDI, RMI, etc) - 1099 estar generalmente deshabilitadas o al menos protegidas por un rewall) Configurado en: Carol Properties (carol.  jrmp.url) Congurado en: Containers XML File Listado 2. Contenido de entitygroup.xml

Primeros pasos Una vez que tenemos corriendo nuestro Apache OFBiz, hay que escribir la siguiente dirección web desde un navegador de Internet como Firefox, o bien cualquier otro browser: http:  //localhost:8080/e  //localh ost:8080/example xample

Lo primero que nos aparecerá es el certicado (ya que es una página segura). Por defecto no está congurado el certicado, y no aparecerán datos del mismo. Le damos Aceptar. Si se desea congurar el certicado se deberá utilizar herramientas de gestión de certicados digitales como Keytool, que es la herramienta sugerida en la documentación del proyecto OFBiz, y por último modicar la conguración general del OFBiz. En este instante nos encontramos con una ventana de solicitud de usuario y contraseña, el usuario y contraseña por defecto son:

> > >

• usuario: admin •  passwd: ofbiz  ofbiz 

>

Una vez logueados vemos la Figura 4. Y podemos apreciar que todo se encuentra organizado

Listado 3. Contenido de services.xml >Hello Hello   3 Services Services< >

en solapas (pestañas), donde encontramos las diferentes aplicaciones a personalizar como ser la parte contable, de marketing, de usua-

> >Create Create   a HelloPerson HelloPerson< > > -->

                        

>Create Create   a HelloPersonHobby HelloPersonHobby   which which   links a  a person person   and and   a hobby > < > >

      �        

Listado 4. Contenido de Hello3Services.xml

>

   





< > >

Figura 6. Capas de OFBiz

www.lpmagazine.org

49

 

linux en la empresa Desarrollo de sistemas corporativos

rios, almacén, manufactura, entre otras. A esta altura, ya tenemos todo un sistema robusto a nuestra disposición, para hacer y deshacer a nuestro gusto, con todas la ventajas que tiene una aplicación Open Source. Si colocamos la dirección http://localhost:8080/ecommerce, en el browser, obtendremos un completo comercio electrónico (con los datos cargados), como se aprecia en la gura 5. Éste no está totalmente traducido al español, por más que cambiemos el idioma, ya que por defecto se muestra en inglés. Pero no hay problema, fácilmente se adapta a las necesidades de uno, ya que estamos frente a una aplicación Open Source, bien documentada.

tras, que se encuentran en el archivo Si desea que OFBiz envíe e-mail de noticacioCurrencyData.xml) por defecto se en- nes habría que congurar: mail.notication cuentra en dólares americanos (USD): s.enabled=Y  currency.uom.id.default=USD   para  poner en pesos argentinos (ARS, según Estructura de desarrollo el archivo CurrencyData.xml): CurrencyData.xml): Apache OFBiz funcionalmente es construido sobre un framework común, que puede   currency.uom.id.default=ARS ser dividido en las siguientes capas (y como se aprecia en la Figura 6): Código de País (los existentes se pueden ver en la tabla Geo, son 3 letras de países según Capa de Presentación ISO, los mismos los encontramos en el archi- Apache OFBiz usa el concepto de  screen  screenss   vo GeoData.xml): por defecto se encuentra en (pantallas) para representar las páginas de Estados Unidos (USA): country.geo.id.de  pres  presentac entac ión de Apache Ap ache OFBiz OFBiz.. Cada pági pági-fault=USA  para pasarlo a argentina (ARG) na es, normalmente, representada como un Conguraciones  bastaría con country.geo.id.default=ARG screen. Una página en Apache OFBiz conGenerales de OFBiz siste en un conjunto de componentes, y los A continuación veremos algunas conguracio- Confguración de Servidor de Correo mismos pueden ser un header (encabezado), nes generales básicas. La conguración de correo electrónico se la un footer (pie de página), etc.. Las páginas realiza en el archivo antes mencionado: son mostradas combinando todos los comConfguraciones Regionales  pone ntes como lo espec ifica la defin definició iciónn Las conguraciones regionales pueden ser .../framework/common del screen. Los componentes pueden ser /cong/general.properties conguradas en el siguiente archivo de con-   Java Server Pages (JSP), páginas FTL consguración: truidas por plantillas FreeMarker, Forms, y tiene los parámetros a tocar son: Servidor Menus y Tree Widgets (especificaciones SMTP: es el que nos permitirá enviar co-  prop  propias ias de OFBiz). OF Biz). rreo, y se realiza de la siguiente manera:

.../framework/common  

/cong/general.properties

mail.smtp.relay.host

=mi_servidor_

y donde encontramos los diferentes parámetros smtp Si el servidor smtp necesita autenticaa congurar: ción habría que descomentar y completar las siguiente líneas: • Código de Moneda (utilizado (utilizado para para expresar el precio, se puede consultar mail.smtp.auth.user = usuario la tabla Uom, son códigos de 3 le- mail.smtp.auth.password = contraseña

   

   

   

         

   

       �   

 �  �

  

  

  

  

Figura 8. Estructura de Directorio de una aplicación Figura 7. Diagrama de Desarrollo - OFBiz

50

- OFBiz

Linux+ 3/2008

 

linux en la empresa Desarrollo de sistemas corporativos

Capa de Lógica de Negocio La capa de aplicación o lógica dene los servicios servici os  provisto  prov istoss por por el usua usuario. rio. Los ser servici vicios os pued pueden en ser de varios tipos: java methods, SOAP, simple services, workow, etc. Un servicio es responsable  por aspecto aspectoss como una invocació invocación, n, transacc transacción, ión, seguridad, etc. Apache Ofbiz usa un conjunto  bien den denido ido de tecno tecnologí logías as Open Open Sour Source ce y stanstandards como Java, J2EE, XML, SOAP, etc. Capa de Datos Las capas de datos son responsables de los accesos y almacenamiento de la base de datos, y de además proveer una interfaz a la capa lógica. Los datos son accedidos como objetos pero por un camino relacional. Cada entidad (representa una la de la base de datos) es provista por la capa de lógica como un valor genérico. El valor genérico no es especicado, así los campos son accedidos  por el nombr nombree de la colu columna. mna.

El Desarrollo en Apache OFBiz A continuación haremos un recorrido supercial, de los pasos generales a seguir, para el desarrollo de las aplicaciones en Apache OFBiz, para ello nos basaremos en la Figura 7 (diagrama de desarrollo). Antes seguir hay que tener presente que Apache OFBiz, tiene muy bien denida la estructura de directorios y archivos, a la que tenemos que ajustarnos. En la Figura 8, apreciamos a la estructura de directorio, incluyendo los archivos mencionados en el diagrama de desarrollo. La estructura de directorios fue sacada de un ejemplo, el mundialmente conocido como Hola Mundo!!! (Hello World), que es el  primer  prim er programa programa que uno escr escribe, ibe, en cualquier cualquier entorno de desarrollo, en este caso lo podemos encontrar en 3 versiones (que va de un ejemplo  básico  bási co a uno basta bastante nte avan avanzado) zado),, en el siti sitioo www.opensourcestrategies.com/ofbiz. Lo primero a llevar a cabo en una aplicación como lo muestra el diagrama (gura 7), es la denición de la base de datos, que se la realiza escribiendo un archivo llamado entitymodel.xml, (ubicar el mismo en la Figura 8 – estructura de directorio). directorio). En el ejemplo a estudiar dene una base de datos con 3 tablas, una para datos de una persona (HelloPerson), una para los hobbys (HelloHobby)

y una última que relaciona las tablas anteriores (HelloPersonHobby), como se muestra en el Listado 1. Observamos que tiene sintaxis totalmente legible, no hace falta mayores explicaciones. Luego se coloca en el archivo entitygroup.xml el nombre de las tablas creadas, como se muestra en el Listado 2. Siguiendo el diagrama (Figura 7), pasamos a otra capa donde se dene el servicio en el archivo services.xml (ver Listado 3). Apreciamos que dene dos servicios, uno en Java y otro en XML (el minilang de OFBiz). La im plementa  plem entación ción del serv servicio icio en XML (el archivo archivo Hello3Services.xml) sería como se muestra en el Listado 4. Con esto simplemente quería poner en maniesto la simpleza y las pocas líneas necesarias, y el alto nivel de abstracción que posee, la posibilidad de trabajar con Java, entre otras cosas. Este artículo no tiene la nalidad de un curso de Apache OBFiz, simplemente un pantallazo y una primera impresión impresión del mismo. Como vimos no hace falta para desarrollar en OFBiz, ni siquiera un gran conocimiento en Java, html, PostgreSQL, o XML, teniendo una base mínima,

lo usan, sin embargo bastantes sitios públicos y unos pocos sitios comerciales que declaran usar OFBiz como son: 1-800-Flowers.com, Action Envelope, American Heart Association, Grocery List Builder , Ameniti Luxury Travel Club, CellularOne (ash front-end), Chocolate Secrets, City Deals, Compliance Online Store, DKNY,, Gracious Style, ImagINwood, Juniper DKNY Music + Soundesign, La Belle Ecole, Messer Group (German, French), Old Glory, Parago, Partner Homes, Peacock Alley, Salton, Shirt Painter (German), Silver Wings Plus Club, Steiner Sports, totes >>ISOTONER, Ulta, Undersun Consulting, Xinit Systems, World Franchise Council, entre otros. Para una lista más detallada de los mismos  podemos dirigir dirigirnos nos a: http://docs.ofbiz.org/ 

ya es suciente. Con respecto a la Base de datos, una vez instalada, nos olvidamos totalmente que usamos por ejemplo un motor Oracle o PostgreSQL, como se observó anteriormente. OFBiz presenta además unas herramientas web, para manipular la base de datos, bastante interesante (Figura 9).



Plataformas de desarrollo La mayoría o la totalidad de la implementación se la puede realizar simplemente trabajando con los archivos XML, y para ello cualquier editor de texto que trabaje con la sintaxis de estos formatos es bueno, podríamos decir que VIM es un buen candidato para los amantes de las consolas. Por otra parte podemos usar entornos de desarrollos como Eclipse (con algunos plugins) y NetBeans, ya que con los mismos puedo hacer un seguimiento de la aplicación, parar y hacer correr la aplicación, editarla, encontrar archivos, etc. Se encuentra bastante documentación disponible en Internet de cómo desarrollar en OFBiz utilizando estos entornos de desarrollos.

display/OFBIZ/Apache+OFBiz+User+List.

También podemos encontrar productos basados en Apache OFBiz como: • •

• • •

Codesquare Helix Mvelopes (FREE TRIAL!) (Comercial-Service (Comercial-Service)) Atlassian JIRA (Comercial) Opentaps Open Source ERP + CRM (GPL/Comercial) Neogia (GPL) SourceTap CRM (GPL/Commercial) NeuLionn SA NeuLio SAV VANNA XtraMin XtraMindd Mietta 2.

Conclusiones Si uno quiere implementar un sistema informático de gran envergadura, robusto, totalmente orientado a las corporaciones, que de entrada cuente con un 80% de la solución informática, y que además con pocas líneas de programación se llegue a la solución deseada, sin dudarlo usaría una solución como la propuesta por el proyecto Apache OFBiz. Si bien presenta una curva de aprendizaje bastante elevada, una vez superada, es todo un juego de niños. Espero que este material sea de utilidad, como cultura general o bien  paraa come  par comenzar nzar a desa desarro rrollar llar con est estaa fabu fabulosa losa creación de Apache, en la actualidad considerado ocialmente un proyecto de alto nivel, o TLP (top level project), para la Apache Software Foundation.

¿Quiénes usan Apache OFBiz? Es difícil decir quienes usan y cómo usan Apache OFBiz debido a que no muchos te dicen si

En la Red

Sobre el autor  Ing. Javier Torres - Alias Javix - Coordinador y Co-fundador de la comunidad de software libre de Salta Argentina (Salta-

http://ofbiz.apache.org/  http://www.opensourcestrategies.com/  ofbiz/tutorials.php Figura 9. Herramientas 9. Herramientas Web - OFBiz

www.lpmagazine.org

LUG). Un gran admirador y seguidor de Debian y Ubuntu, en estaciones de traba jo y en servidores.

51

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF