Sistemas de Gestión Empresarial (Material Didáctico)

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 129

Módulo 10

Sistemas de gestión empresarial


Módulo 10: Sistema de Gestión Empresarial

UF1. SISTEMAS ERP-CRM. IMPLANTACIÓN. ........................................................... 4

1. Identificación de sistemas ERP-CRM. ...................................................................................... 5


1.1. Concepto ERP (Planificación de los recursos empresariales). ............................................. 7
1.2. Revisión de los ERP actuales. ............................................................................................... 9
1.3. Concepto de CRM (sistemas de gestión de relaciones con clientes). ............................... 17
1.4. Revisión de los CRM actuales. ........................................................................................... 18
1.5. Concepto de data warehouse (almacenes de datos). ....................................................... 19
1.6. Revisión de los data warehouse actuales y posiblemente incorporados a los sistemas
ERP-CRM. ......................................................................................................................................... 19
1.7. Sistemas gestores de bases de datos compatibles con el software. ................................. 22
1.8. Verificación de la instalación y configuración de los sistemas operativos y de gestión de
datos ........................................................................................................................................... 24

2. Instalación y configuración de sistemas ERP-CRM ................................................................ 27


2.1. Tipo de licencia. ................................................................................................................. 27
2.2. Tipo de instalación. Monopuesto. Cliente/ Servidor. ........................................................ 26
2.3. Procesos de instalación del sistema ERP-CRM. ................................................................. 30
2.4. Módulos, gestión y actualización de un sistema ERP-CRM. .............................................. 37
2.5. Administración básica y configuración .............................................................................. 44

UF2. SISTEMAS ERP-CRM. EXPLOTACIÓN Y ADECUACIÓN. ................................... 46

1. Organización y consulta de la información. .......................................................................... 46


1.1. Introducción a las bases de datos. .................................................................................... 46
1.2. Interfaces de entrada de datos y de procesos. ................................................................. 54
1.3. Cálculos de pedidos, albaranes, facturas, asientos predefinidos, trazabilidad, producción.
3.4 Gestión de contabilidad ............................................................................................................. 61
1.4. Gestión de los recursos humanos ..................................................................................... 71
1.5. Herramienta de monitorización. Incidencias: resolución e identificación. ....................... 76
1.6. Procesos de extracción de datos en sistemas ERP-CRM y almacenes de datos. ............... 80

2. Implantación de sistemas ERP-CRM en una empresa............................................................ 81


2.1. Metodología de implantación ........................................................................................... 83
2.2. Tipo de empresa. Necesidades de la empresa. ................................................................. 90
2.3. Selección de los módulos del sistema ERP-CRM. .............................................................. 91
2.4. Tablas y vistas a adaptar.................................................................................................... 91
2.5. Consultas necesarias para obtener información. ............................................................ 100
2.6. Creación de formularios personalizados. ........................................................................ 100
2.7. Creación de informes personalizados. ............................................................................ 101
2.8. Creación de cuadros de mando personalizados. ............................................................. 101

3. Desarrollo de componentes. ................................................................................................102


3.1. Lenguaje proporcionado por los sistemas ERP-CRM. Características y sintaxis del
lenguaje. Declaración de datos. Estructuras de programación. Sentencias del
lenguaje………………………................................................................................................................. 103
3.2. Entornos de desarrollo y herramientas de desarrollo en sistemas ERP y CRM. .............. 124
3.3. Operaciones con datos en los objetos ............................................................................ 121

Página 2 de 129
Módulo 10: Sistema de Gestión Empresarial

3.4. Extracciones de informaciones contenidas en sistemas ERP-CRM, procesamiento de


datos. ......................................................................................................................................... 122
3.5. Llamadas a funciones, librerías de funciones (API).227 .................................................. 123
3.6. Depuración de un programa. .......................................................................................... 124
3.7. Manejo de errores ........................................................................................................... 125

BIBLIOGRAFÍA .................................................................................................. 132

Página 3 de 129
Módulo 10: Sistema de Gestión Empresarial

UF1. Sistemas ERP- CRM. Implantación

Los sistemas de gestión empresarial abarcan una gran cantidad de procesos y


diferentes técnicas que se han ido desarrollando con el paso de los años.
Esta unidad formativa se centra principalmente en la introducción a la gestión.
Además, se enumeran y repasan aquellos conceptos básicos que se deben tener en
cuenta en una empresa. Son los conocimientos mínimos que se deben adquirir para
comprender el funcionamiento de la misma.
Cuando se habla de la gestión empresarial, no se pretenden obtener valores exactos
sobre algo determinado, sino poder obtener una visión global de una empresa, junto
con sus componentes principales y procesos. Supone conseguir entender de forma
correcta el funcionamiento de la empresa como un conjunto y saber tomas las
decisiones más acertadas en cada momento, sobre todo, cuando hay decidir qué
sistema de gestión empresarial se debe implantar.

Página 4 de 129
Módulo 10: Sistema de Gestión Empresarial

1. Identificación de sistemas ERP- CRM

La gestión empresarial es la actividad empresarial que, mediante un conjunto


de individuos especializados, como pueden ser: gerentes, consultores,
productores, etc. pretende conseguir mejorar la productividad y la
competitividad de una determinada empresa.

Entre sus principales características es posible indicar algunas de las más


importantes:

• Una empresa existirá siempre que obtenga beneficio.

• La empresa debe realizar una buena gestión de los recursos disponibles para
ser competitiva.

• El objetivo principal de una empresa debe ser siempre el cliente.

La informática en la gestión empresarial


Una de las principales funciones de la informática está centrada en el tratamiento
automático de la información.
Si las empresas van a desarrollar actividades como la generación, manejo y análisis
de una determinada información, es lógico pensar que la informática desarrollará un
papel bastante importante en lo que a la gestión empresarial se refiere.

Página 5 de 129
Módulo 10: Sistema de Gestión Empresarial

Concepto de ERP-CRM

• ERP (Enterprise Resource Planning): sistema de planificación de recursos


empresariales.

Este sistema se basa en la planificación, modelado y automatización de un gran


número de procesos de una determinada empresa, como pueden ser el área de
finanzas, comercial, logística, producción, contabilidad, etc.
Su función principal es unificar y ordenar toda la información de la empresa en un
mismo lugar, ayudando de esta forma a facilitar las diferentes tareas.
ERP utiliza una arquitectura modular y, cada uno de los módulos, se encarga de
gestionar un área determinada: comercial, producción, logística, finanzas, stock, etc.

Módulos del sistema ERP

Página 6 de 129
Módulo 10: Sistema de Gestión Empresarial

• CRM (Customer Relationship Management): Gestión de las Relaciones con el


Cliente.

CRM hace referencia a la estrategia de negocios que se centra específicamente en el


cliente.

Características de los sistemas ERP

Entre sus principales características, se destacan las siguientes:

- Integración: los sistemas ERP contienen la mayoría de las áreas de las


empresas: comercial, logística, producción, contabilidad, etc.

- Modularidad: cada módulo del sistema ERP permite gestionar una


determinada área de la empresa.

- Adaptabilidad: mediante la unión de las dos características anteriores, es


posible lograr una adaptabilidad a las distintas necesidades de una
determinada empresa.

Página 7 de 129
Módulo 10: Sistema de Gestión Empresarial

1.1. Concepto ERP (Planificación de los recursos empresariales)

Aunque su definición es bastante amplia, se puede resumir en la incorporación de un


determinado sistema informático en todos los procesos (internos y externos) que
están relacionados con la empresa.
Estos sistemas permiten ofrecer ayuda a las distintas empresas de forma general, y a
la toma de decisiones, en particular.
A lo largo de los años, los ERP han ido
evolucionando hasta conseguir ofrecer a
las distintas empresas una serie de
beneficios, como, por ejemplo, que toda
la información de los procesos se
organice en tablas estáticas o dinámicas,
utilizando una serie de herramientas que
le permitan relacionar la información de
manera eficiente ante un proceso de
análisis y decisión.

Hoy en día, el ERP engloba tanto los procesos externos como internos de la
gestión, abarcando las diferentes necesidades de la pequeña (PYME) y gran
empresa en productos ya unificados.

Página 8 de 129
Módulo 10: Sistema de Gestión Empresarial

Estos ERP necesitan:

• Poder gestionar los procesos de comercio electrónico.


• Gestionar los diferentes clientes (CRM).
• Gestionar la cadena de suministro (SCM).
• Gestionar las relaciones con proveedores (SRM).
• Inteligencia de negocio (BI).
• Base de conocimiento (KM).
• Gestionar las relaciones con socios (PRM).
• Ciclo de vida de un producto (PLM).

Mediante la utilización de todos ellos, se permite hacer más fácil el flujo de


información entre las empresas relacionadas, aumentando de esta forma la
colaboración entre todas ellas.

1.2. Revisión de los ERP actuales


Existen un gran número de soluciones ERP en el mercado, de tal manera que sería
imposible hacer referencia a todas ellas. En esta unidad formativa se exponen
aquellas soluciones más comunes que es posible encontrar en todo el mundo.

SAP:

Creado en Alemania en los años 70 para desarrollar distintas soluciones


empresariales a nivel europeo, se extendió con el paso de los años por todo el mundo,
convirtiéndose en líder por ventas de soluciones ERP.
Ofrece diferentes soluciones dependiendo del tipo de empresa y de su tamaño, a
través de varios productos:

Página 9 de 129
Módulo 10: Sistema de Gestión Empresarial

• SAP Business Suite: este producto fue diseñado para medianas y grandes
empresas incorporando una serie de productos básicos y específicos de un
determinado sector de la empresa.

Ofrece la posibilidad de interconectar con otro software SAP o de


proveedores diferentes. Fue creado principalmente para favorecer los
diferentes procesos de finanzas, fabricación, ventas y gestión de la cadena de
suministros y recursos humanos, entre otros.

• SAP Business One: producto diseñado para pequeñas empresas que añade
todos los elementos que son necesarios para la gestión, como pueden ser:
ventas, clientes, finanzas, etc. Es bastante rápido en su implantación.

Además, esta aplicación también cuenta con diferentes servicios como


pueden ser, la gestión de la contabilidad y finanzas, la gestión de relaciones
con el cliente, la gestión de compras y operaciones y la gestión de informes.

• SAP Business All-in-One: se presenta como una solución muy completa para
la empresa, añadiendo todos los aspectos que se requieren hoy en día. Cuenta
con una arquitectura modular en la que el cliente puede ir adaptando sus
necesidades. Incorpora como base ERP, CRM, BI, distintas funcionalidades
para un determinado sector empresarial y tecnología SAP NetWeaver.

• SAP Business ByDesign: este software se utiliza, sobre todo, para gestiones
empresariales que estén basadas en aplicaciones online. Además, incorpora
contabilidad y finanzas, resursos humanos, CRM, o ERP, entre otros.

Página 10 de 129
Módulo 10: Sistema de Gestión Empresarial

Oracle:

Fue creada a finales de los años 70 para llevar a cabo los distintos productos
referentes a las bases de datos. En las últimas décadas, se ha convertido en un líder
indiscutible en su sector.
En el año 2005 modificó su estrategia, añadiendo nuevas empresas que estuvieran
relacionadas con los sistemas empresariales que fueran competidores con SAP.
Desde ese momento, SAP y Oracle son las dos empresas que más facturan en el
entorno empresarial ERP.
El producto integral ofrecido por Oracle es JD Edwards Enterprise One, que cuenta
con toda la lógica necesaria para llevar a cabo la gestión integral de las empresas.
Además, permite ofrecer soluciones individuales de ERP, CRM y BI, entre otras.

Microsoft:

Es una de las empresas de software más conocidas, que en 2001 creó una nueva línea
de negocio más orientada al sistema de gestión empresarial.
Este producto se ha ido desarrollando con el paso de los años para ofrecer soporte a
medianas empresas (Dynamics NAV) y para añadir distintas funcionalidades de un
ERP actual.

Página 11 de 129
Módulo 10: Sistema de Gestión Empresarial

OpenBravo:

Creado sobre los años 90, se centró en orientar su interfaz a navegadores web en
lugar de a clientes gráficos.
OpenBravo basa su proyecto en dos tipos de proyectos diferentes:

• Uno que desarrolla la comunidad de licencia libre (OpenBravo Public License).

• Otro propietario.

Es el único ERP que tiene su origen en España y que ha conseguido una gran
implantación en todo el mundo.
Entre sus módulos principales se pueden encontrar los de ventas, compras,
proyectos, CRM, etc. Además, existe una gran cantidad de módulos que
incorporan versiones de pago.

OpenBravo cuenta con una arquitectura cliente que permite la integración con otros
productos OpenSource existentes.
Por último, OpenBravo está capacitado para distribuir un software que sea capaz de
realizar la gestión de un punto de venta para cualquier empresa hotelera o comercial,
por medio de un software denominado OpenBravo POS, que se integra con el ERP.

Página 12 de 129
Módulo 10: Sistema de Gestión Empresarial

OpenERP:

Este proyecto nace como OpenSource y se muestra como una alternativa a SAP, con
la principal funcionalidad de ser la competencia a ERP.
Añade distintos módulos, entre los que se encuentran: Gestión y compraventa, CRM,
Gestión de proyectos, Sistema de gestión de almacenes, Manufactura, Contabilidad
analítica y financiera, Puntos de venta, Gestión de activos, Gestión de recursos
humanos, Gestión de inventario, Ayuda técnica, Campañas de marketing, Flujos de
trabajo y Licencia correspondiente a una serie de módulos bajo AGPL.
OpenERP es el ERP OpenSource que cuenta con más módulos libres para poder
añadir.
Presenta una arquitectura basada en cliente-servidor. El servidor se desarrolla en
lenguaje Phyton y es utilizado por el desarrollador para conseguir llevar a cabo los
distintos módulos. El cliente hará uso de servicios web (XML- RPC) para establecer la
comunicación con el servidor.
A partir de su versión 6, OpenERP ofrece la posibilidad de su distribución a través de
la nube.

Conclusiones
Como se ha comprobado anteriormente, hoy en día, el software de gestión
empresarial lo domina el mercado propietario, destacando tres compañías
principales, siendo la más conocida SAP. Actualmente, estas compañías siguen
desarrollando más productos, cada vez más orientados hacia su entorno en la
nube. Igualmente, han ido apareciendo más soluciones libres que comienzan
a utilizarse cada vez más.
Es importante señalar, asimismo, una serie de problemas que presenta el
mercado de propietarios a los distintos educadores, como puede ser la
adquisición de software. En la mayoría de los casos, el software se puede
configurar por los consultores empresariales, ya que estos realizan todo el
trabajo, dejando poco espacio a los agentes externos. Generalmente, las
empresas son las encargadas de instalar, configurar y enseñar el
funcionamiento de un paquete, además de proporcionar los distintos
mecanismos de aprendizaje del sistema que están controlados por ellos.

Página 13 de 129
Módulo 10: Sistema de Gestión Empresarial

Elección de un software ERP

A la hora de elegir un ERP, es preciso tener en cuenta una serie de factores, prestando
especial atención a:

• Ofrecer soporte a todas las áreas que necesite la empresa.

• Que sea fácil y rápido en su uso.

• Que utilice los estándares ya establecidos.

• Debe contar con un período de migración y adaptación sencillo y rápido.

• Que proporcione informes y análisis, además de implementar seguridad.

En lo referente al nivel técnico, es necesario observar diferentes elementos, como


pueden ser:

• La posibilidad de utilizar hardware y software que posea la empresa.

• El sistema operativo necesario para poder ejecutarse.

• Las bases de datos obligatorias que son necesarias a la hora de la implantación


de la plataforma.

• La experiencia y nivel de implantación de la plataforma.

Por último, se debe atender a una serie de cuestiones importantes como pueden ser,
el método y tiempo que se necesitan en la formación, el tipo de garantía
correspondiente al producto, el ciclo de vida, la existencia de nuevos servicios de
soporte y las diferentes posibilidades que existan para el mantenimiento.
Aunque no es tarea fácil seleccionar una plataforma ERP, es conveniente ofrecer una
respuesta al planteamiento del software ERP-CRM que se va a llevar a cabo en el
desarrollo de esta unidad formativa, de tal manera que se seleccionará un software
libre, por todas las ventajas que ya se han detallado.

Página 14 de 129
Módulo 10: Sistema de Gestión Empresarial

A continuación, se detalla una comparativa entre los dos paquetes más importantes,
definidos anteriormente:

Ventajas y desventajas de los sistemas ERP

Las principales ventajas son:


• Posibilidad de que el sistema se adapte a las necesidades del usuario.
• Consistencia de datos y acceso a la hora de tomar decisiones.
• Actualización de la información empresarial a tiempo real.
• Eliminación de datos redundantes.
• Eficiencia empresarial.
• Control de la actividad empresarial.
• Integración de todos los elementos (internos y externos) que tengan relación
con la empresa.
• Disminución del tiempo de vida.

Página 15 de 129
Módulo 10: Sistema de Gestión Empresarial

Sus desventajas son:


• Costoso, tanto en tiempo como en dinero.
• Es necesario tener nuevos aprendizajes.
• Ante el cambio de una estructura empresarial, es necesario modificar su ERP.
• Dificultades de integración de algunos productos.
• Ante un posible fallo en el sistema, volver atrás es un proceso bastante
costoso.
• Desconfianza de los empleados ante un cambio de metodología.

1.3. Concepto de CRM (sistemas de gestión de relaciones con clientes)

Los CRM (Customer Relationship Management) se refieren a la respuesta que un


sistema de información puede ofrecer a todos los requisitos requeridos por una
determinada empresa en relación a sus clientes.
Es preciso señalar que los CRM no son solo un sistema de gestión empresarial, sino
que también se refieren a la visión que puede tener un cliente dentro de una
empresa. El cliente es la parte central, mientras que todos los procesos van a ir
destinados a que este consiga mejorar su relación con la empresa.
Los sistemas CRM incorporan los mecanismos necesarios para establecer relaciones
que sean duraderas, y, a su vez, satisfactorias con los distintos clientes.
En este proceso intervienen distintos departamentos de la empresa como pueden
ser, el de ventas, marketing y atención al cliente, ya que son los que están en
constante contacto con el comprador.

Los sistemas CRM se caracterizan, sobre todo, por tener dos partes bien
diferenciadas; una que se va a encargar de la lógica operacional y, otra, que va
a tener como función analizar la información disponible (lógica analítica).

Página 16 de 129
Módulo 10: Sistema de Gestión Empresarial

Mediante la lógica operacional es posible llegar a los procesos de:

• Automatización de ventas, productos y clientes para tener la información


organizada.

• Automatización de marketing para gestionar las diferentes campañas.

• Gestión de soporte en la empresa.

• Gestión de servicio de atención al cliente.

• Organización del Call Center.

• Métricas que determinen el funcionamiento del negocio.

Mediante la lógica analítica es posible:

• Analizar la información existente para llevar a cabo las diferentes campañas


de marketing.

• Indicadores que muestran el estado de la empresa.

• Modificación de estrategias según los cambios realizados.

1.4. Revisión de los CRM actuales

Es posible dividir los CRM actuales en dos categorías:

• Los que están integrados en un sistema ERP: se refieren a aquellos CRM que
pertenecen a los mismos propietarios que los ERP, como pueden ser, entre
otros, el CRM de SAP, Oracle y Microsoft.

• Los que son exclusivos: se refieren a los que están formados por todo tipo de
proyectos, como pueden ser, OpenSource o sugarCRM. Estos se utilizan cada
vez menos, por lo que pueden llegar a desaparecer tarde o temprano.

Página 17 de 129
Módulo 10: Sistema de Gestión Empresarial

1.5. Concepto de data warehouse (Almacenes de datos)

Data warehouse es un almacén de datos que recopila toda la información


correspondiente a una organización o a una empresa determinada. Esta
información será de gran utilidad a la hora de tomar decisiones.
Es posible definirlo también como un expediente de una empresa que contiene
información transaccional y operacional. Esta información se almacena en una base
de datos diseñada específicamente para proporcionar análisis.
Es probable que estos almacenes de datos contengan gran cantidad de información
que, en muchos casos, se divide en pequeñas unidades lógicas, denominadas centros
comerciales.
Las funciones principales de los Data Warehouse son:

• Integra los datos de las correspondientes bases de datos distribuidas, facilitando


una descripción global, junto con un análisis comprensivo en el almacén de
datos.

• Separa aquellos datos que se utilizan en las operaciones cotidianas en el almacén


de datos, con el propósito de publicación y ayuda a la hora de tomar decisiones.

1.6. Revisión de los data warehouse actuales y posiblemente


incorporados a los sistemas ERP- CRM

Es posible diferenciar una serie de fases a la hora de realizar la implantación de un


data warehouse.
Las distintas fases que forman este proceso tienen como objetivo principal ser la
herramienta más utilizada para sacar el máximo rendimiento de la aplicación.
Siguiendo los diferentes pasos de esta metodología, al iniciar el Data Warehouse por
una determinada área, es preciso conseguir los resultados más favorables en el
menor tiempo posible.

Página 18 de 129
Módulo 10: Sistema de Gestión Empresarial

Metodología propuesta por SAS Institute: la "Rapid Warehousing Methodology"

A continuación, se detalla la función principal que se desarrolla en cada fase:

• Definición de los objetivos: se detallan los objetivos necesarios para el desarrollo


de un proyecto determinado.

• Definición de requerimientos de información: en la mayoría de proyectos se debe


contar con las técnicas más novedosas como son, en este caso, las que referencia
data warehouse, encargándose de analizar las distintas necesidades para saber
administrar las principales ventajas que este sistema puede aportar.

• Diseño y modelización: la fase anterior se va a encargar de proporcionar las


principales bases para llevar a cabo el diseño y modelización del data warehouse.
Esta, por su parte, tiene como objetivo principal identificar las distintas fuentes de
datos junto con las correspondientes transformaciones para, a partir de aquí,
obtener el modelo lógico de datos del data warehouse.
Este modelo lo forman las diferentes entidades y relaciones que permiten resolver
las necesidades específicas referentes al negocio de la organización.

Después, es posible traducir el modelo lógico de datos al físico para almacenarlo


en el data warehouse y poder definir la estructura de almacenamiento.

Página 19 de 129
Módulo 10: Sistema de Gestión Empresarial

• Implementación: a la hora de implantar el data warehouse, es necesario seguir


una serie de pasos:

- Extraer datos del sistema y transformarlos.

- Cargar datos ya validados.

- Explotación del data warehouse mediante distintas técnicas, como


pueden ser, entre otras:

o Query & Reporting.


o On-line analytical processing (OLAP).
o Executive Information System (EIS) o Información de gestión.
o Decision Support Systems (DSS).
o Visualización de la información.
o Data Mining o Minería de Datos.

Toda la información que se necesita para llevar el control sobre los datos, es
posible almacenarla en lo que se denominan los metadatos técnicos. Estos
metadatos deben ser accesibles también por los usuarios finales y administradores
para poder utilizarlos o modificarlos.

• Revisión: una vez que se tiene instalado el data warehouse, no ha finalizado la


tarea, ya que es posible realizar una revisión del mismo, planteándole una serie de
preguntas para ir actualizando y potenciando su función y utilización.

• Diseño de la estructura de cursos de formación: una vez mantenidas las reuniones


necesarias con los distintos usuarios, se puede comenzar a practicar con lo que se
ha desarrollado, para ir afianzando los distintos conceptos que permitirán formar
a los usuarios.

Página 20 de 129
Módulo 10: Sistema de Gestión Empresarial

1.7. Sistemas gestores de bases de datos compatibles con el software


Hasta ahora se han visto distintas herramientas que permiten cumplir las necesidades
empresariales de analizar la información recopilada y obtener conocimiento de los
datos (ERP o CRM). El principal inconveniente de estos sistemas es el tiempo de
respuesta de las transacciones ejecutadas, ya que la información está repartida en
diferentes módulos. Esto dificulta el proceso del análisis de la información, así como
los reportes.
Como solución a esta problemática, surgieron los Datawarehouse o Almacenes de
Datos. Se basan en una base de datos central en la que todas las aplicaciones hacen
llamadas a ella. Está implementada para soportar todo tipo de herramientas de
análisis.

La principal ventaja de estas herramientas es la organización a la hora de


almacenar la información, ya que la llevan a cabo de una forma homogénea y
fiable. Realizan un análisis multidimensional para ver, desde distintos puntos
de vista, todas las dimensiones del negocio.

A la hora de construir una Data WareHouse es preciso contar con las herramientas
que respondan a las necesidades planteadas y detectadas en el sistema.
Por un lado, a este tipo de sistema acceden un pequeño número de usuarios, pero
con una gran necesidad de información. Las consultas ejecutadas en dicho almacén
de datos son complejas y cuentan con una gran cantidad de información, por esta
razón las máquinas donde se aloje el sistema deben contar con unas altas
prestaciones en todos sus componentes.

Página 21 de 129
Módulo 10: Sistema de Gestión Empresarial

Otra de las características que deben presentar estas máquinas es la escalabilidad


para dar soporte a los nuevos elementos que es preciso instalar. Como consecuencia,
habrá que apostar por una arquitectura abierta para la estructura del equipo.
Respecto al software que se debe utilizar, el Sistema de Gestión de Base de Datos
(SGBD) es otro de los elementos más importantes del sistema. Independientemente
de la información almacenada, se deberá hacer uso de un SGBD que utilice una
técnica de Base de Datos relacional o multidimensional, de tal forma que permita a
las tablas estar relacionadas entre sí, y, por tanto, poder sacar mayor provecho a la
información contenida en ellas.

No obstante, la mejor opción son las Bases de Datos Multidimensionales, por la


misma razón por la que se eligen las características físicas de las máquinas:
escalabilidad, prestaciones y consolidación.
Este tipo de bases de datos post-relacionales abre un mayor abanico de posibilidades
y dan soluciones a las limitaciones que presentan las bases de datos relacionales, ya
que con menos recursos hardware, son capaces de ejecutar consultas mucho más
complejas y permiten trabajar con mayor cantidad de información.
A continuación, se detalla la extracción y manipulación de los datos. Para realizar
este tratamiento de la información es imprescindible contar con las herramientas que
permitan controlar y automatizar las necesidades de los Data Warehouse.
Estas herramientas deben proporcionar las siguientes funciones:

• Control en el tiempo de respuesta.

• Acceso a diferentes tecnologías, tanto a nivel de hardware como de software.

• Gestión integrada de la extracción, transformación y carga del Data


Warehouse.

• Manejo de excepciones y archivos logs.

Página 22 de 129
Módulo 10: Sistema de Gestión Empresarial

1.8. Verificación de la instalación y configuración de los sistemas


operativos y de gestión de datos
Una vez que se ha seleccionado el software correspondiente, en este caso OpenERP,
existen una serie de requisitos previos que se deben tener en cuenta antes de llevar
a cabo su instalación:

• Soporta los sistemas operativos Linux y Windows:

- Linux: ofrece paquetes Debin oficiales que se pueden descargar e instalar


de forma tradicional. También cuenta con paquetes redHat no oficiales.

- Windows: ofrece la posibilidad de descarga mediante un ejecutable


autoinstalable.

• Los distintos clientes pueden instalarlo en sistemas operativos Windows,


Linux e iOs.

• Necesita una serie de requerimientos hardware que dependerán de la


empresa y de los distintos usuarios del sistema.

• En referencia a la base de datos que hay que instalar, se seleccionará


PostgreSQL por ser una versión bastante recomendable.

Instalación de la base de datos:


1. En primer lugar, es necesario obtener el software correspondiente en la
dirección que se tenga asociada, como puede ser:

http://www.postgresql.org/download/

2. Si no se dispone de un sistema Windows, es posible ejecutar el fichero


directamente.

3. En caso de tener Debian como sistema, será necesario conectarse a Internet


como supervisor de la siguiente forma:

a. Primero, se ejecuta apt-get install postgresql.

b. A continuación, se instala el gestor de la base de datos: apt-get install


pgadmin3.

4. Por último, se realizan las pruebas oportunas para comprobar su correcto


funcionamiento.

Página 23 de 129
Módulo 10: Sistema de Gestión Empresarial

Pruebas de la base de datos:


1. En primer lugar, se abre el cliente gráfico PgAdmin III.
2. A continuación, es preciso comprobar la base de datos.
3. Seguidamente, se crea una nueva tabla.
4. En esta nueva tabla ya es posible añadir los datos correspondientes.
5. También se dispone de la opción buscar determinados elementos de la tabla.
6. Se realizan las modificaciones deseadas.
7. En este apartado, ya es posible eliminar la tabla.
8. Se crea una nueva tabla.
9. Se importan los datos en la tabla.
10. Se listan todos los datos existentes.
11. Se procede a eliminar la tabla.
12. Es posible repetir todos los pasos desde el cliente de texto psql (SQL Shell).

Pruebas para el sistema operativo:


• Desde el ordenador personal es posible realizar los siguientes pasos:
1. Seleccionar un navegador.
2. Conectarse a una determinada página de Internet.
3. Hacer un ping sobre la dirección de la tarjeta instalada.
4. Realizar un Telnet al puerto 5432 de la dirección de la tarjeta instalada.
5. Hacer ping a la dirección localhost (127.0.0.1).
6. Realizar un Telnet al puerto 5432 de la dirección localhost.
7. Realizar un ping al nombre DNS del ordenador.
8. Por último, realizar un ping a la dirección de la tarjeta instalada desde un
ordenador conectado a la red.

• Desde otros ordenadores:


1. Hacer un ping al nombre del ordenador desde otro que pertenezca a la misma red.
2. Para hacer el acceso desde otras redes, se repetirán los dos puntos anteriores
desde distintos ordenadores de otras redes diferentes.

Página 24 de 129
Módulo 10: Sistema de Gestión Empresarial

2. Instalación y configuración de sistemas ERP- CRM

2.1. Tipo de licencia


Cuando se trabaje con algún tipo de productos industriales, debe existir un contrato
entre el creador y el comprador, que se denomina licencia.
La licencia es un documento que detalla una serie de obligaciones que debe tener
el desarrollador con el usuario en cuestión y, viceversa. Según el tipo de licencia, se
establecen las posibilidades de utilización, modificación y distribución.
Hoy en día, es posible encontrar un gran número de licencias y, cada una de ellas,
tiene diferentes características.
A continuación, se expone una posible clasificación de licencias:

• Licencias de código abierto: aquellas que permiten hacer uso de un determinado


producto sin muchas restricciones. A su vez, las licencias de código abierto se
dividen en:

- Licencias permisivas: no tienen limitación a la hora de utilizarlas. Por


ejemplo: BSD, MIT, Apache.

- Licencias robustas: presentan distintas limitaciones que se deben


tener en cuenta antes de su utilización. Pueden dividirse en:

o Fuertes: se deben distribuir de la misma forma que las


original (GNU, GPL, Eclipse).

o Débiles: se distribuyen de forma muy parecida a la original,


aunque pueden tener una licencia diferente (Mozilla, Open
Source).
• Licencias de código cerrado: son aquellas que, a la hora de utilizar un producto,
deben tener en cuenta un gran número de restricciones (EULA, y CUPS).

A continuación, es posible establecer diferencias entre los diferentes tipos de


software, que se pueden clasificar según sus parámetros principales: tipo de licencia
y coste. Estos parámetros son los principales aspectos a tener en cuenta a la hora de
seleccionar los diferentes tipos de software para una empresa.

Página 25 de 129
Módulo 10: Sistema de Gestión Empresarial

Según el tipo de licencia con la que se pueden distribuir:


• Software de código abierto: permite su comercialización bajo una licencia de
código abierto, permitiendo acceder al código fuente, modificarlo y adaptarlo
a las distintas necesidades que determine la empresa.
• Software propietario: depende de las distintas características que presente
la licencia.
Según el coste, es posible diferenciar entre:
• Freeware: no tiene coste.
• Payware: necesita realizar algún tipo de coste.
• Shareware: se distribuye sin coste, aunque solo para utilizarlo durante un
período de tiempo determinado.

2.2. Tipo de instalación. Monopuesto. Cliente/ Servidor


Antes de comenzar con un proceso de instalación, hay que comprobar siempre que
cumple con una serie de requisitos necesarios para la instalación, que son:

• Monopuesto

Realiza la instalación del software en un ordenador, de tal forma que solo va a tener
acceso al sistema el propietario del ordenador.
Esta instalación es conveniente para entornos de desarrollo o aprendizaje, no para
entornos productivos.

• Cliente-Servidor

En este caso, se instalan todos los datos y la gestión de estos en un ordenador, de tal
forma que es posible acceder al control y administración de los mismos desde
distintos puntos de la organización, instalando una aplicación (cliente) con la que es
posible conectarse al ordenador que posee los datos (servidor).
Es una configuración bastante flexible, ya que permite acceder a la aplicación desde
cualquier terminal.
Es conveniente utilizar la configuración cliente-servidor para desarrollar diferentes
tareas de administración, mantenimiento, ampliación, etc. en el servidor de manera
eficiente.

Página 26 de 129
Módulo 10: Sistema de Gestión Empresarial

Aunque es un tipo de configuración muy ventajosa, también se pueden señalar


algunos inconvenientes, como puede ser, entre otros, la infraestructura de
comunicaciones que plantea, en concreto, el fallo que presenta. Por ello, será preciso
ser muy cuidadoso para no provocar un fallo en el funcionamiento de una empresa.

• Cliente-Servidor Web

Es una configuración bastante parecida a la anterior, con la salvedad de que, en este


caso, se utiliza una interfaz basada en estándares web. De esta forma, permite el
acceso y la gestión desde cualquier navegador que esté instalado en la máquina
cliente.
Esta configuración ofrece mucha más flexibilidad que las anteriores al poder hacer
uso de cualquier navegador y, además, no necesita ninguna aplicación antes de
comenzar con el proceso de instalación.

• SaaS

Es una configuración que utiliza la estructura cliente-servidor, pero, en este caso, el


servidor se encuentra en una empresa externa que se va a encargar de la gestión y
mantenimiento del software.
Para lograr un funcionamiento correcto, se contrata a una empresa externa a la que
se le contrata el servicio y, los datos, viajarán hacia ella utilizando los medios de
comunicación tanto públicos como privados.
Esta configuración dispone de unos precios ajustados y elimina la tarea de
mantenimiento, pero, por el contrario, se pierde el control del servidor ya que se
encuentra fuera de las infraestructuras del usuario.

Página 27 de 129
Módulo 10: Sistema de Gestión Empresarial

2.3. Procesos de instalación del sistema ERP-CRM

Requerimientos hardware y software de los ERP-CRM


Antes de comenzar con el proceso de instalación, hay que asegurarse de cuál es el
software ERP más interesante para que el hardware funcione de la mejor forma
posible. Para ello, es preciso llevar a cabo un análisis riguroso a la hora de seleccionar
un determinado software.
En este caso, nos vamos a decantar por OpenERP, ya que cuenta con unos
requerimientos mínimos para su funcionamiento, destacando como el más
importante la configuración de la base de datos.
Como ya se ha estudiado, no dispone de valores estándar para poder utilizar, por
tanto, es posible partir de una recomendación básica y realizar las correspondientes
pruebas de funcionamiento con cargas reales, para que, de esta forma, se
determinen por parte del usuario los requerimientos más importantes.
Si se ha llevado a cabo una planificación correcta, se puede partir de un sistema base
para, a continuación, ir ampliando según las necesidades que se vayan presentando.
Uno de los principales factores del servidor OpenERP es la base de datos, por lo que
es importante tener cuidado a la hora de configurar de forma correcta PostgreSQL,
especificando hasta los balanceos correspondientes de carga entre distintos
servidores.
En cuanto a las bases de datos, sus factores más importantes son:

• El número de conexiones que se pueden realizar a la vez.


• La memoria.
• Espacio de almacenamiento.

Una vez realizada la instalación y configuración del servidor, es posible llevar a cabo
las diferentes pruebas para comprobar el rendimiento, mediante la herramienta
PGAdmin (Explain query). Con ella se podrán comprobar los tiempos de acceso y
ejecutar las consultas correspondientes, siempre que las tablas estén correctamente
definidas.

En la siguiente dirección, se dispone de una guía de mejora del rendimiento:


http://wiki.postgresql.org/wiki/Mejorando_el_rendimiento_de_tu_Postgresql_S
erver

Página 28 de 129
Módulo 10: Sistema de Gestión Empresarial

Instalación bajo Microsoft Windows

En primer lugar, se descargan los ficheros del servidor OpenERP (Server) y del
servidor web (web Client) de la página oficial correspondiente.
http://www.openerp.com/downloads

A continuación, se puede instalar el servidor siguiendo una serie de pasos:


1. Hay que crear un usuario bajo PostgreSQL para OpenERP asignándole
privilegios de administrador y una clave. Es posible hacer uso de la
herramienta PGAdmin III.

2. Lanzar el programa de instalación: el proceso no es muy complicado y no hay


que olvidarse de establecer los diferentes datos en el servidor PostgreSQL:
nombre o dirección IP, puerto, usuario y clave de acceso.

3. Comprobar que los puertos NET-RPC y XML-RPC estén abiertos desde la


consola de Windows, mediante el comando: netstat /a.

4. Tras escribir el comando es posible observar que los puertos están abiertos.
Además, hay que comprobar si el servicio se levanta de forma manual o
automática. Cuando se trata de entornos de producción, siempre se hace de
forma automática.

5. Para poder acceder al servidor desde el exterior, es necesario configurar el


cortafuegos. Es habitual que se deniegue el acceso a la máquina por lo que,
en ese caso, se abrirán o desactivarán los puertos de forma manual.

6. Comprobar si el fichero openerp-server.conf existe en el servidor.

7. El servidor ya estaría configurado y se debe estar ejecutando. Por lo tanto, se


puede instalar un cliente en la máquina para llevar a cabo las distintas
pruebas de conexión. Es posible hacerlo descargando el software de la página
oficial GTK Client.

Una vez que se ha conseguido establecer la conexión, es posible realizar una pequeña
prueba para comprobar OpenERP omitiendo los asistentes y, así, crear la base de
datos correspondiente. Para ello, habrá que conectarse con el cliente y, una vez
aparezca el mensaje de base de datos no encontrada, solo habrá que omitirlo.

Página 29 de 129
Módulo 10: Sistema de Gestión Empresarial

A continuación, se abre el menú Archivo/Bases de Datos/Nueva base de datos y se


realizan las configuraciones siguientes:

1. Para OpenERP, la clave de superadministrador es admin por defecto. Con esta


clave se puede configurar todo el sistema si se produce algún fallo.

2. En OpenERP, el nombre de la base de datos no es tan importante, ya que se


eliminará al finalizar.

3. Se deja activada la carga de datos de prueba.

4. El idioma viene por defecto.

5. En OpenERP, la clave del administrador de la base de datos también es admin.

Es importante omitir el asistente cuando se realizan las diferentes pruebas de


conexión.
6. Para continuar, se instala WebClient- Server y se sigue con el asistente.

7. Hay que comprobar que el estado del puerto 8080 esté abierto, ya que es el
que se va a utilizar para conectar desde los clientes web.

8. Se puede añadir una excepción al cortafuegos para TCP en el puerto 8080,


para conseguir que sea accesible al exterior.

9. Llegados a este punto, ya se puede realizar alguna prueba que verifique la


conexión al puerto 8080 con el explorador y con los dos usuarios que ha
creado la instalación.

- El usuario admin que tiene como clave admin.

- El usuario demo que tiene como clave demo.


- Para el cliente de prueba, se puede utilizar cualquier tipo de
navegador que soporte flash.

10. Por último, hay que configurar las preferencias que tenga cada usuario al
idioma español (Preferences/Spanish) siempre y cuando este no venga
seleccionado por defecto.

Página 30 de 129
Módulo 10: Sistema de Gestión Empresarial

Instalación bajo Linux Ubuntu


En el caso de Linux, en primer lugar, hay que crear un usuario de la base de datos
para el servidor OpenERP y asignarle los permisos administrativos, además de
establecer su contraseña.

• Para crear un usuario desde Shell que tenga como login el usuario postgres,
se inicia sesión con este usuario y, a continuación, se llama al script
createuser, ya que es el que va a realizar la tarea.

El script preguntará por el tipo de permisos que se quieren asignar al nuevo


cliente, que, como mínimo, debe ser capaz de crear bases de datos.
sudo su postgres
createuser openerp -P

• Una vez establecido el usuario dentro del servidor de la base de datos, se debe
crear un directorio home del mismo, para determinar aquellos permisos
necesarios.
sudo mkdir /home/openerp
sudo chown openerp.nogroup /home/openerp/

Es posible descargar los ficheros necesarios para Ubuntu de la página oficial:


http://www.openerp.com/downloads

• Antes de comenzar la instalación del servidor, se descargan las librerías


necesarias y se configuran en el sistema.

sudo apt-get install graphviz libdct4 libcgraphic5 libgraph4 libgvc5


libgvpr1 libpathplan4 libyaml-0-2 postgresql-client python-libxslt1
python-lxml python-psycopg2 python-pychart python-pydot python-
pyparsing python-support python-tz python-yaml

• Ya es posible montar el servidor, mediante la orden:


sudo dpkg -i openerp-server…deb

En el caso de que se produzca cualquier tipo de error, se puede resolver


mediante la instrucción:
sudo apt-get install -f

Página 31 de 129
Módulo 10: Sistema de Gestión Empresarial

• Cuando se instala Linux de PostgreSQL solo permite realizar conexiones vía


sockets Unix. Por tanto, es preciso habilitar el acceso por medio de vía TCP/IP
y habrá que modificar:
local all all ident por, local all all md5

• Una vez llegados a este punto, PosgreSQL ya puede recibir entradas locales
desde TCP/IP, así que ya se puede configurar OpenERP con los datos de
usuario que se han visto en puntos anteriores. Solo será necesario abrir el
fichero de configuración y seleccionar usuario y contraseña.

• A continuación, se reinicia el servidor:


sudo /etc/init.d/openerp-server resart

• Se comprueba mediante la orden netstat -a que los puertos 8069, 8070, 8071
y 5432 están abiertos.

• Es posible comprobar el estado en el que se encuentra el cortafuegos. Si se


necesita establecer alguna regla, se puede hacer mediante la orden sudo
iptables -L.

• Por último, es posible conectarse a OpenERP para crear la nueva base de


datos para el sistema, de la misma forma que se hizo para Windows.

• Como ya está instalado el servidor, se puede proporcionar la forma de acceder


de los clientes web. Para ello, se instala el servidor web Client descargado.

• Es conveniente que, antes de comenzar, se pare el servicio OpenERP


por seguridad.
sudo /etc/init.d/openerp-server stop

• Se pueden instalar las dependencias que sean necesarias:


sudo apt-get install python python-dev build-essential
sudo apt-get install python-setuptools

• Con el entorno preparado se puede iniciar el proceso de instalación.


Una vez que finalice el proceso de ejecución, se puede comprobar que
el servidor tiene un correcto funcionamiento, mediante la orden:
openerp-web

Página 32 de 129
Módulo 10: Sistema de Gestión Empresarial

• En este punto ya se encuentra instalado el servidor web, aunque no se arranca


de forma automática, por lo que habrá que modificar el sistema de arranque.

- Se copia el fichero de configuración del servidor web en /etc.

- Se escribe el correspondiente script de arranque que se denomina


openerp-web y es posible poner en /etc/init.d con su
correspondiente contenido.

- Para crear las ligaduras de arranque de los directorios /etc/rc2.d


/etc/rc3.d /etc/rc4.d /etc/rc5.d y las de parada en /etc/rc1.d y
/etc/rc6.d es posible hacerlo a mano o de forma automática, mediante
las instrucciones:

# chown root: /etc/init.d/openerp-web


# chmod 755 /etc/init.d/opener-web
# update-rc.d opener-web defaults

- Para finalizar se ejecutan los comandos lanzando los servidores:


# service openerp-server start
# service opener-web start

- Ya es posible conectarse para realizar las pruebas necesarias.

Se ha completado el proceso de instalación del sistema OpenERP bajo distribución


Linux. Solo quedaría reiniciar el equipo para comprobar que todo arranca
correctamente.
Este proceso es un poco más complicado que el que se sigue en Windows, aunque,
con ambos, se obtiene el mismo resultado.

Página 33 de 129
Módulo 10: Sistema de Gestión Empresarial

2.4. Módulos, gestión y actualización de un sistema ERP-CRM

Gestión de usuarios
Entre las funciones más importantes en la gestión de usuarios se pueden encontrar
la creación, mantenimiento y borrado de los distintos usuarios pertenecientes al
sistema, además de sus correspondientes datos.
Es una tarea muy importante, sobre todo a la hora de desarrollar los siguientes
puntos:
• Gestión eficiente del sistema: la persona que se quiere relacionar con él,
debe tener acceso a través de un determinado mecanismo.
• Seguridad: control del usuario que se conecta y la manera de hacerlo.
Para ver estos conceptos de forma más práctica, se procede a la creación de un
usuario para asignarle un determinado grupo, modificar sus datos para, a
continuación, eliminarlo.
• A la hora de crear un usuario, se accede a la lista que se puede encontrar en
Administración/ Usuarios. Es posible acceder a los datos haciendo clic sobre
ellos.
• Para crear un nuevo cliente, se pulsa el botón Nuevo de la barra de botones.
• De todos los usuarios existentes, se abre uno para realizar las modificaciones
pertinentes, pulsando el botón Edit en la interfaz web. Al finalizar, es
importante guardar todos los cambios.
• Para gestionar los grupos por parte de los clientes, se selecciona de la parte
inferior derecha, una lista que contiene todos los grupos a los que pertenece
el usuario. Cada grupo dispone de unos determinados permisos para el
sistema.

Gestión de clientes
En OpenERP un cliente es cualquier entidad que mantiene una relación con el
sistema, de tal forma que, tanto los compradores y proveedores, como el personal
de la empresa, se pueden identificar como clientes del sistema.
Es posible comprobar el listado de los diferentes clientes mediante el recurso Ventas/
Libreta de direcciones/ Clientes.
Es muy parecido al interfaz de solicitudes. En este caso, se dispone de tres pestañas
que se van incrementando según los módulos que se van añadiendo.

Página 34 de 129
Módulo 10: Sistema de Gestión Empresarial

Cuando se deseen visualizar todos los datos del cliente, es preciso comprobar en la
parte superior que está seleccionado el nombre de la empresa y el idioma, junto con
dos casillas de verificación.
Hay que asegurarse de que aparecen nombradas como cliente o como proveedor,
para que se establezcan de forma correcta, y el sistema pueda cargar las listas de
selección correctamente.
De estas tres pestañas, la primera corresponde a la General, y aquí es donde se
pueden configurar los diferentes datos del cliente, como pueden ser el nombre,
dirección, teléfono, etc.
En las otras dos pestañas, es posible guardar información de la relación que existe
con el cliente (Ventas y Compras), además de un área libre para diferentes notas
(Notas).
En la gestión de clientes, puede aparecer alguna complicación que dependerá de la
empresa en la que se esté implantando el sistema.
Existen empresas con pocos clientes y otras con muchísimos, aunque, en ambos
casos, se pueden dividir los clientes en categorías para facilitar la gestión en un
menor tiempo. A través de Ventas/Configuración/Libreta de direcciones/Categorías
se puede acceder a la gestión en la que es posible llevar a cabo las modificaciones
pertinentes.

Añadir funcionalidades
La instalación que se ha llevado a cabo al principio del módulo muestra un entorno
bastante simple con funcionalidades muy básicas. Por tanto, es posible añadir
aquellos módulos que se deseen para conseguir un sistema más provechoso.
En este apartado se verá la forma en la que se pueden instalar y desinstalar los
módulos en el sistema.
Para poder hacer uso de un módulo, antes es preciso actualizar la lista, buscando
aquellos módulos que están descargados en el sistema. No es recomendable llevar a
cabo la instalación de los módulos, ya que es un proceso bastante complejo. Se hará
accediendo al ítem de Administración/ Módulos/ Actualizar lista de módulos y, de
esa manera, se podrá comprobar los módulos que es posible instalar y las
modificaciones que se pueden desarrollar.

Página 35 de 129
Módulo 10: Sistema de Gestión Empresarial

Añadir un módulo
En primer lugar, se selecciona el icono de la flecha como actualizable y, si ya estuviera
instalado, como instalable. Se utilizarán los iconos que se muestran al final de cada
módulo.

Desinstalar un módulo
Se marca el icono que se desea eliminar mediante el icono de una cruz.
Tanto las operaciones de añadir como de eliminar módulos se pueden repetir tantas
veces como se desee y, además, los cambios realizados se guardarán todos juntos al
finalizar.

Ejecutar modificaciones
Cuando las configuraciones estén realizadas, habrá que ejecutarlas, por lo que se
seleccionará el elemento en Administración/Módulos/Aplicar actualizaciones
programadas.
Una vez que finalice este proceso, se ejecutará de forma automática un asistente de
configuración para los siguientes módulos, si lo necesitan.
Por último, cuando se instala un nuevo módulo, aparecen dos situaciones distintas:
1. En la primera, el componente a instalar no depende de ningún otro, de tal
manera que el sistema no va a desempeñar más acciones.

2. En la segunda, el elemento que se desea instalar dependerá de un conjunto


de módulos. En este caso, se debe configurar el sistema para que estos
elementos también se instalen.

Características de los módulos funcionales


OpenERP dispone de una estructura basada en diferentes módulos que se pueden
descargar de la aplicación y se ponen a disposición del público mediante repositorios
que se pueden ordenar dependiendo de su versión o tipo de módulo.

Existe una gran cantidad de módulos y se pueden encontrar en:


http://apps/openerp.com

Página 36 de 129
Módulo 10: Sistema de Gestión Empresarial

Una vez localizado el módulo, es posible descargarlo copiando el subdirectorio


addons del directorio raíz en la instalación del servidor, para, posteriormente,
actualizar la lista de módulos y configurarlo.
Si durante este proceso se detecta que falta algún módulo, aparecerá un mensaje
indicando el tipo de problema ocasionado. En este caso, la aplicación, que debe
contar con un sistema de importación de módulos, puede proceder a realizar una
copia directa.

Relación de categorías existentes en el sistema


Cuando ya se ha instalado el sistema, es posible tener acceso a los diferentes módulos
de Administración/Módulos.
En este apartado se estudiará la gestión de actualización de los módulos reconocidos,
su instalación o desinstalación, la importación al sistema de módulos, junto con la
realización de diferentes tareas.
Es posible añadir y eliminar módulos en dos fases: primero, se marcan las tareas
desde el apartado Módulos y, a continuación, se llevan a cabo todas las funciones
desde realización de las tareas pendientes.
El orden de los módulos puede ir determinado según el criterio del creador, pudiendo
estar ordenados por nombre, fecha, autor, descargas, etc.
Es posible utilizar una caja de búsqueda para facilitar este proceso.

Módulos mínimos instalados


• base: corresponde al módulo base del sistema.
• base_setup: este módulo permite configurar el sistema cuando se crea
una nueva base de datos.
• web_livechat: actúa como soporte de aquellos que tienen un contrato de
mantenimiento, añadiendo en la cabecera el botón de soporte.

Módulos disponibles tras una instalación


Se dispone de una lista en la que aparecen todos los módulos que se incluyen en un
sistema OpenERP tras su instalación. Estos módulos están siempre disponibles,
aunque no haya acceso a Internet.

Página 37 de 129
Módulo 10: Sistema de Gestión Empresarial

Módulos que hay que conocer


Es conveniente tener conocimiento de una serie de módulos para conseguir un
aprendizaje correcto y saber manejar el sistema. Para obtener más información, es
posible acceder a la siguiente dirección:

http://doc.openerp.com/v7.0

• Account (contabilidad y finanzas)

Descripción: es posible utilizarlo para toda la contabilidad, como puede ser, por
ejemplo, el análisis contable y de costes, contabilidad de terceros, gestión de
presupuestos, impuestos, facturas de clientes y proveedores o el estado de las
cuentas bancarias.

• Product (gestión de productos)

Descripción: permite el manejo de diferentes productos y listas de precios en


OpenERP, incluyendo variantes en el soporte de productos, distintos mecanismos de
precios, información de proveedores, reservas (stock), unidades de medida,
empaquetado y algunas propiedades individualizadas.

• Purchase (compras)

Descripción: utilizado para la gestión de compras, permitiendo solicitar citas, crear


facturas de proveedores, impresión de las distintas órdenes, entre otras funciones.

• Sale (ventas)

Descripción: es el módulo base para la gestión de citas y órdenes de ventas, además


del flujo de trabajo con validación.
Puede incluir reserva-> Orden de venta-> Factura.
Los diferentes tipos de facturación que puede utilizar son: factura en orden y en
reparto y avance de factura (presupuesto).
Además, incorpora la gestión sobre la preferencia de socios, gestión de stocks y
precios y otros métodos de reparto.

Página 38 de 129
Módulo 10: Sistema de Gestión Empresarial

• CRM (gestión de clientes)

Descripción: se puede utilizar este módulo para gestionar las diferentes relaciones
con los clientes. Permite, asimismo, gestionar tareas como pueden ser la
comunicación, identificación, priorización, asignación, resolución y notificación.
Cuenta con la opción de hacer lanzamiento de recordatorios de forma automática,
eleva las peticiones, o lanza métodos específicos, entre otras opciones.

• HR (recursos humanos)

Descripción: es utilizado para gestionar los recursos humanos, permitiendo crear


puestos de trabajo y estructuras jerárquicas, hojas de trabajo, gestión de fichaje de
entrada y salida, entre otros. Cuenta con diferentes informes para la gestión.

• Stock (gestión de almacenes)

Descripción: permite llevar a cabo la gestión de múltiples almacenes proporcionando


distintos métodos de inventario, gestiona el valor del stock, maneja las distinciones
de los métodos de inventario, gestión del valor del stock, etc.

• Marketing (campañas publicitarias)

Descripción: utilizado para llevar a cabo las diferentes campañas de marketing.

• Account_payment (pagos de contabilidad)

Descripción: proporciona una manera eficaz de manejar el pago de las distintas


facturas y un mecanismo para automatizar los pagos.

• Delivery (reparto)

Descripción: ofrece la posibilidad de incluir otros métodos de reparto a las órdenes


de venta y empaquetado.

Página 39 de 129
Módulo 10: Sistema de Gestión Empresarial

• Point_of_sale (punto de venta)

Descripción: como principal ventaja se puede destacar, entre otras, la creación


directa de la orden de compra, seleccionando el tipo de pago, el cálculo automático
de la devolución de dinero, creación de factura y devolución de una venta.

• Módulos para trabajar en España

Existen una gran cantidad de módulos que se instalan por defecto y que tienen
traducción al castellano, aunque, existen también una serie de peculiaridades a la
hora de gestionar una empresa de nuestro país, de tal forma que, será preciso
adaptar los módulos originales a la normativa actual.
Los módulos específicos para España, pueden ser, entre otros, los que se detallan en
el anexo adjunto.

2.5. Administración básica y configuración

Instalación de módulos
OpenERP dispone de una gran cantidad de módulos con un gran número de
aplicaciones que se han desarrollado. Hoy en día, suele aparecer un nuevo módulo
cada cuatro o cinco días, en las versiones más actuales. Esto lo convierte en uno de
los sistemas que más rápido está creciendo.
Esta gran cantidad de módulos también presenta el inconveniente de que el tiempo
estimado en encontrar un módulo sea cada vez más elevado.
Cuando se localiza el software y se descarga, es preciso incorporarlo al sistema. Este
proceso no presenta demasiada dificultad y se puede llevar a cabo a través del menú
Administración en el apartado de Módulos, en el que se puede ir añadiendo
cualquier tipo de aplicación que se encuentre en el directorio, simplemente haciendo
clic en el elemento Import Module. Mediante este mecanismo, el fichero descargado
se copiará al directorio addons del servidor.
En ocasiones, este proceso puede fallar. Si esto ocurre, es conveniente trasladar los
ficheros comprimidos de manera manual al directorio.
Independientemente de la forma en la que se copien los datos, todavía no será
posible utilizar el módulo, ya que se debe incorporar previamente a la base de datos

Página 40 de 129
Módulo 10: Sistema de Gestión Empresarial

mediante Actualizar la lista de módulos, debiendo aparecer como uno más dentro
de Módulos.
Llegados a este punto, lo que se ha hecho hasta el momento es programar el sistema
para que pueda llevar a cabo la instalación o actualización, aunque estas funciones
no se van a realizar hasta que se pulse en Aplicar actualizaciones programadas.
Si se da el caso de que el instalador ha detectado alguna dependencia que no se
cumple, se informará de ello y será necesario añadir el módulo en cuestión antes de
continuar.

Configuración de módulos
Es posible configurar los diferentes módulos mediante el asistente que aparece al
realizar el proceso de instalación, en el menú Configuración. Estas opciones serán
diferentes dependiendo del módulo que haya que configurar.

Salvaguardar la configuración
Cuando el sistema está configurado, es conveniente realizar una copia de seguridad
para no perder los cambios realizados. Es posible hacerla para cualquier módulo
solamente instalando el módulo base_module_record y, a continuación, lanzando el
asistente desde Administración/ Personalización/ Creación de módulo/ Exportar
personalizaciones como módulo.
Para finalizar únicamente habrá que importar el módulo para poder instalarlo en el
sistema.

Configuración del usuario

En OpenERP se pueden llevar a cabo bastantes configuraciones, como pueden ser los
menús, su organización, los informes, las distintas ventanas o vistas, entre otras. A
continuación, se exponen algunas de las configuraciones más frecuentes.

Menús:

- Padre: cuando no dependen de nadie.


- Hijo: dependen de su padre.

Página 41 de 129
Módulo 10: Sistema de Gestión Empresarial

Es posible acceder a la configuración de los menús desde Administración/


Personalización/ Interfaz de Usuario/ Elementos de menú y, una vez seleccionado
el menú a modificar, se puede acceder a sus propiedades.
Las principales opciones dentro de un menú pueden ser:
1. Seleccionar el orden en el que se va a visualizar.

2. Decidir el orden de las funciones a desarrollar mediante el menú Acción.

3. Configurar los iconos para la web, tanto para navegador móvil como para el
escritorio.

Página principal y menú principal:


Mediante los menús Acción Inicial y Acción de Menú se puede personalizar de forma
sencilla la página principal de cualquier usuario.
El primero ofrece la posibilidad de modificar la ventana que se puede visualizar
cuando el usuario se conecta por primera vez, mientras que el segundo permite
modificar en Formulario/Menú del cliente GTK.

Valores por defecto en los campos:


Para los administradores del sistema existe la opción de fijar como predeterminado
cualquier tipo de formulario. De esta forma, es posible seleccionar la forma en la que
aparecerá algún valor, si de manera automática, o si se prefiere asignar un valor de
campo para que siempre tenga el mismo dato.

Traducciones:
Existe la posibilidad de que el sistema traduzca, de forma automática, cualquier
campo correspondiente a un formulario, asignándole un icono de traducción.

Gestión de los permisos:


Los sistemas OpenERP permiten gestionar los permisos de acceso mediante dos
elementos principales, que son los usuarios y los grupos. Cualquier persona que
desee interactuar con la aplicación se debe autentificar mediante un usuario
Administración/ Usuarios/Usuarios (dado de alta), que se corresponda con algún
empleado de la empresa Recursos Humanos/ Empleados.

Página 42 de 129
Módulo 10: Sistema de Gestión Empresarial

En el usuario del sistema existe la opción de poder configurar los datos


correspondientes al nombre del usuario, clave, correo electrónico, etc. Es posible que
cada usuario pertenezca a un grupo determinado o a varios, teniendo cada uno de
ellos los privilegios de la cuenta en cuestión.
Cada grupo se puede expresar en:

- Menús a los que se puede acceder. Indican los menús que es posible utilizar.
- Acceso a las tablas de la base de datos (objetos). Ofrece información sobre
lo que es posible desarrollar en los menús.

Una de las funciones más importantes de un administrador es definir los diferentes


grupos. Por ello, los grupos deben contar con una estructura representativa con
capacidad para flexibilizarse.
Por ejemplo, una o varias personas pueden tener distintas tareas y, cada una de ellas,
debe estar representada por otro grupo distinto, asignándole a cada usuario los
grupos que sean necesarios. De esta forma se consigue un diseño flexible de fácil
gestión.
A la hora de crear un grupo, es posible hacerlo mediante Administración/ Usuarios /
Grupos y, desde ahí, se pueden asignar o modificar los permisos necesarios para cada
uno de ellos.

Grupos que se crean por defecto:


Como se trata de un sistema altamente configurable, los grupos por defecto
dependerán de los módulos instalados.
Para el desarrollo de esta unidad formativa, se tienen en cuenta los grupos bases
existentes y los diferentes menús que ofrecen acceso.
Todos los tipos se detallan en el anexo 2.

Gestión de la base de datos:


Los datos son una de las principales herramientas de los sistemas de información.
Una vez que se tiene instalado el sistema, la principal función del administrador es
salvaguardar los datos de una determinada empresa.
Es posible gestionar los datos y las bases de datos gracias a las herramientas que
incluyen los clientes para no tener que trabajar con el Servidor PostgreSQL de forma

Página 43 de 129
Módulo 10: Sistema de Gestión Empresarial

directa. Desde el cliente web, es posible acceder a las diferentes utilidades del botón
Bases de datos.
Además, existe la opción de realizar una copia de seguridad de cualquier base de
datos. Para lograrlo, se debe proporcionar la contraseña de administrador.

Si se dispone de más de una base de datos, es conveniente eliminarla antes de


proceder a la copia de seguridad.

De la misma manera que se puede realizar una copia de seguridad, también es posible
restaurar desde un fichero creado a una nueva base de datos, configurando el
nombre de la nueva base de datos y su contraseña.
Para todas estas opciones, se puede utilizar la herramienta PGAdmin en PostgreSQL
que ofrece una serie de facilidades para crear y restaurar copias de seguridad.

Actualización de OpenERP:
OpenERP permite liberar las diferentes actualizaciones de forma mensual. Es
bastante recomendable para aquellos sistemas que se encuentran en producción, ya
que no incluye capacidades nuevas entre versiones.
Su funcionamiento se puede desarrollar en dos pasos: primero, se sobrescribe el
código del servidor con el de la actualización para, a continuación, pasar a sincronizar
los datos en la base de datos. En OpenERP se realiza mediante una serie de pasos que
se detallan a continuación:
1. Se realiza una copia de seguridad completa de todas las bases de datos y
ficheros que se encuentren en el servidor.

2. Servidor OpenERP y Web.

3. Se actualiza a la última versión o se instala una nueva versión sobre la


existente.

4. Se ejecuta desde la línea de comandos:


openerp-server.exe -d DB_NAME -u all
opener-server.py -d DB_NAME –update=all

Página 44 de 129
Módulo 10: Sistema de Gestión Empresarial

Para actualizar todos los datos de los módulos se siguen los siguientes pasos:
1. El servidor tiene que completar su arranque y, a continuación, parar el
servidor mediante Ctrl+C. Es posible repetir este proceso para las distintas
bases de datos que se utilicen.

2. Reiniciar todos los servicios.

3. Reinstalar los clientes.

Página 45 de 129
Módulo 10: Sistema de Gestión Empresarial

UF2. Sistemas ERP- CRM. Explotación y


adecuación

1. Organización y consulta de la información


1.1. Introducción a las bases de datos
En los años 70 se introdujeron en las empresas los diferentes sistemas gestores de
bases de datos, ofreciendo una mejora de la gestión y en la organización del proceso
productivo. Debido a esta dependencia que se creó, es conveniente entender el
sistema de una aplicación ERP- CRM para, de esta forma, poder adaptarla a cualquier
proyecto de manera correcta.
Para ello, es conveniente recordar algunos de los aspectos más importantes de las
bases de datos, como pueden ser sus principales conceptos y procedimientos.

Hoy en día, la mayoría de los sistemas cuentan con su correspondiente base de


datos implantada (Oracle, PostgreSQL, MySQL, etc.), basadas en los principios
de las bases de datos relacionales.

El modelo relacional permite estructurar los diferentes datos en tablas organizadas


en filas y columnas, donde las filas son las diferentes relaciones entre los conjuntos
y valores, y las columnas, los atributos correspondientes a esa relación, es decir,
hacen referencia a un conjunto de información relacionada entre sí, almacenada de
forma ordenada y con una estructura determinada.
Los sistemas relacionales deben cumplir una serie de propiedades básicas como
pueden ser, entre otras, las que se indican a continuación:

• Debe ser un sistema capaz de eliminar la redundancia entre sus datos para
poder asegurar la coherencia entre todos (integridad).

• Ofrecer la posibilidad de compartirlos entre varios usuarios a la vez


(compartición).

• Controlar el acceso y la configuración según unas reglas establecidas


(seguridad).

Página 46 de 129
Módulo 10: Sistema de Gestión Empresarial

• Asegurar que los datos pueden permanecer a lo largo del tiempo (protección
contra fallos).

• Mostrarse a los usuarios dependiendo de las necesidades de cada uno


(vistas), utilizando un tipo de lenguaje estructurado (interfaz de alto nivel:
SQL).
A la hora de elaborar una base de datos, es necesario conocer una serie de conceptos
fundamentales:
• Dato: unidad mínima de información que puede almacenar un ordenador. Un
dato se corresponde con una información, no con un tamaño.
• Campo o atributo: unidad mínima de información que forma parte de una fila
o un registro de la base de datos. Cada campo puede almacenar un dato.
• Fila o registro: conjunto mínimo de atributos relacionados que se pueden
almacenar en una tabla. El mínimo número de campos que puede tener un
registro es de uno.
• Tabla: es la mínima unidad de estructura de una base de datos. Es el conjunto
de registros o filas relacionadas que se almacenan en una base de datos bajo
un mismo nombre. Todos los registros se almacenan en tablas y, las tablas, a
su vez, dependen unas de otras a través de las relaciones.
• Vista: se utilizan para mostrar un conjunto de información perteneciente a
diferentes tablas.
• Relación: hace referencia a las distintas condiciones que deben cumplir los
datos para almacenarse en un determinado campo de una fila. Dos tipos de
conceptos de relación:

- Por un lado, se refieren a las diferentes condiciones que debe cumplir


un dato para poder almacenarse en un campo (como puede ser, por
ejemplo, que la clave primaria sea un entero, mayor que cien, etc.).

- Por otro, las restricciones que debe cumplir un dato en un


determinado campo (claves foráneas).
En los dos casos, las reglas deben marcar qué tipo de dato se va a insertar en
el correspondiente atributo.
• Consulta: se pueden utilizar para almacenar información de la base de datos.
Son un conjunto de filas que pueden tener una o varias tablas solicitadas por
el usuario, dependiendo de distintos criterios de selección y ordenación. Una
consulta implica un control de acceso a los datos (permisos) y control de

Página 47 de 129
Módulo 10: Sistema de Gestión Empresarial

acceso concurrente (simultáneo) para, de esta manera, evitar las


inconsistencias.
• Informe: consulta que se puede realizar a la base de datos y que se presenta
de forma sencilla de analizar e imprimir.
• Formularios: hacen referencia a las distintas pantallas creadas para manejar
los diferentes datos, simplificando de esta forma la gestión de la información.
Normalmente están basadas en las vistas.
• Procedimientos almacenados: diferentes órdenes que pueden realizar una
tarea simple, que se ejecuta y almacena en la base de datos.
Es posible estructurar el diseño de las bases de datos relacionales en tres niveles
diferentes:
• Nivel físico: encargado del almacenamiento en un soporte, teniendo en
cuenta, a nivel de bytes y ficheros, que no están relacionados entre ellos. Es
un nivel muy utilizado para ficheros, índices sobre ficheros, sistemas de
almacenamiento, uso y estructura.
• Nivel lógico o conceptual: permite crear una estructura en los datos mediante
tablas y restricciones. Este nivel lo utilizan las tablas, los campos de las tablas,
restricciones de integridad, claves primarias, etc., es decir, todo lo que se
refiere el esquema relacional.
• Nivel externo: agrupa el nivel anterior en un conjunto de informaciones
relacionadas sin importar la tabla a la que pertenezca cada una. De esta
forma, ofrece al usuario un mejor y eficiente manejo. Utilizado por
formularios e informes que se hayan creado mediante una o varias consultas.

Los niveles lógicos y conceptuales cuentan con un esquema único, una vez que se
hayan establecido. Siempre almacenan los datos de la misma forma. El esquema
relacional que se implementa en el nivel conceptual normalmente no suele cambiar.
Sin embargo, a nivel externo pueden aparecer tantos esquemas como sean
necesarios, entendiendo por esquema al conjunto de vistas necesarias para que un
usuario pueda realizar su trabajo de forma correcta.
Los diferentes procedimientos que se pueden utilizar mediante la herramienta
PgAdmin III a la hora de gestionar las bases de datos pueden ser:

Página 48 de 129
Módulo 10: Sistema de Gestión Empresarial

• Creación de una base de datos

Lo primero que se debe hacer una vez conectados al servidor es crear una base de
datos mediante un procedimiento muy sencillo. Se selecciona, del menú contextual,
Nueva Base de Datos, estableciendo su correspondiente nombre, propietario,
codificación de caracteres, etc.
Una vez creada la base de datos, ya es posible añadir las distintas tablas según se
hayan definido en el estudio entidad-relación, junto con su posterior conversión al
esquema relacional. Se deben agregar los campos necesarios a cada tabla, además
de las restricciones necesarias.

• Modificación de una base de datos

Este concepto de la base de datos se refiere a la inserción, modificación y borrado de


la misma. Se utiliza, para ello, una herramienta no muy complicada para cada
procedimiento.
Partiendo del menú Ver Datos, se selecciona la opción más parecida a la necesitada.
De esta manera, cuando se presente la vista, será más fácil:

- Insertar un nuevo registro mediante fila libre.

- Modificar uno ya existente, seleccionando el botón de campo a variar del


menú contextual.

- Borrar un registro utilizando opciones del menú contextual.

Además, existe la opción de duplicar una fila haciendo un nuevo uso del menú
contextual.

• Creación de consultas y vistas

Diseñar e implementar la base de datos en un sistema ERP- CRM no es tarea del


usuario. En este caso, será el sistema el encargado de configurar la base de datos de
una forma idónea, además de las tablas con sus correspondientes cargos y las
distintas restricciones.
La función principal del usuario es saber entender y utilizar de forma correcta la
estructura para que, de esta forma, sea posible conseguir la información deseada.
Una de las formas más utilizadas para obtener información de una base de datos es
mediante el lenguaje SQL (a través de la sentencia SELECT), ofreciendo la información

Página 49 de 129
Módulo 10: Sistema de Gestión Empresarial

en forma de tabla. En caso de que se conozca el lenguaje, su estructura y las


restricciones, será posible utilizar sin ningún problema la herramienta PostreSQL. En
el caso de no tener tantos conocimientos, se puede llevar a cabo a través de la
herramienta gráfica para la creación de consultas.
Para establecer una consulta es preciso hacer uso del menú contextual de la tabla,
accediendo al elemento Scripts/SELECT Script.
Una vez definida la sentencia mediante lenguaje SQL, es posible pasar a ejecutarla
para obtener los resultados.

• Procedimientos almacenados

Es fundamental mantener una buena seguridad cuando se gestionan las diferentes


bases de datos, por lo que, generalmente, la introducción en las bases de datos de
los diferentes procedimientos almacenados se utiliza como mecanismo de seguridad
y eficiencia. Se tratan de unas funciones con su correspondiente código que pueden
realizar alguna tarea determinada, intentando, en todo momento, aumentar las
capacidades de las bases de datos.

• Informes

En PgAdmin III se cuenta con la opción de poder mostrar bastantes informes a


cualquier nivel de definición. La manera de acceder a estos informes es a través del
menú contextual, seleccionando en el elemento Reportes.

Página 50 de 129
Módulo 10: Sistema de Gestión Empresarial

1.2. Interfaces de entrada de datos y de procesos

Gestión de compra-venta

• Plan de formación

• Problema planteado

El problema que se plantea en este apartado: se muestra una empresa dedicada a


vender distintos productos informáticos a los clientes mientras se abastece de
distintos proveedores. Lo que se pretende es realizar la compra- venta de productos
con las correspondientes facturas para los clientes, llevar el control del stock
disponible en cada momento e ir lanzando de forma periódica los informes de ventas
y compras realizadas, además de ir comprobando el estado del almacén.

Página 51 de 129
Módulo 10: Sistema de Gestión Empresarial

• Creación de socios

Lo más recomendable a la hora de crear a los distintos socios es desarrollar un


conjunto de categorías en las que situar a cada uno de ellos. En un primer momento,
las principales categorías son clientes y proveedores y, una vez que ya se hayan
creado estas, es posible incluir a los socios.
En primer lugar, se comienza por los proveedores, ya que se conocen todos sus
datos. Después, se van añadiendo a los distintos clientes en el momento en el que
realicen su primera venta. Cuando se registran la primera vez, no será necesario
volver a repetirlo.
1) Se crean las categorías en Ventas/Configuración/Libreta de
direcciones/Categorías de empresa. Como mínimo, se deben crear una para
cliente y otra para proveedores.
2) A continuación, se añaden los proveedores a los que se realizan las compras
mediante Ventas/Ventas/Libreta de direcciones/Clientes.
De esta forma, es posible añadir tanto a proveedores, como a los compradores,
seleccionando el botón de Nuevo.
No hay que olvidar seleccionar en la ventana de selección, la opción de
proveedor para que, de esta forma, se puedan realizar las búsquedas que se
deseen.
3) Por último, se añaden los clientes a la base de datos. Al igual que en el apartado
anterior, no hay que olvidar en la ventana de selección la opción de Cliente.

• Creación de las distintas categorías

En el caso práctico que se está desarrollando (tienda de informática), es fundamental


tener organizados de manera precisa los diferentes productos, dónde se encuentran
y cómo se pueden clasificar. De esta manera, lo primero que se debe llevar a cabo,
una vez introducidos los clientes y proveedores, es la creación de una serie de
categorías para realizar esta clasificación de todos los productos.
Esta clasificación se realizará atendiendo a los estándares del mercado, por lo que lo
más recomendable será utilizar una estructura jerárquica con un padre único: Todos
los productos. Esta categoría ya está definida por defecto, por lo que solo habrá que
cambiarle el nombre (All products).
Este procedimiento se llevará a cabo siguiendo los pasos Ventas/
Configuración/Productos/Categorías de productos.

Página 52 de 129
Módulo 10: Sistema de Gestión Empresarial

En cuanto al control de stock, lo realizará el programa de forma automática al realizar


las compras o ventas, por lo que solo habrá que realizar esta tarea una primera vez y
cuando se modifiquen productos del catálogo. Se gestionarán los diferentes
productos a través de Ventas/Productos/Productos (Nuevo).
A la hora de crear un determinado producto, lo primero que debe hacerse será
almacenar su nombre, seguido de una referencia. Además, se puede establecer si el
producto puede ser comprado, vendido o ambas cosas.
Seguidamente, se establecerá el tipo de producto que se desea crear y dónde:

- Consumible: no se gestiona en el stock, por lo que la cantidad del mismo es


ilimitada.
- Almacenable: sí gestionará el stock del producto.
- Servicio: se utiliza cuando no se refiere a un producto, sino a un servicio.

A continuación, se puede determinar el precio correspondiente a lo que es posible


comprar (precio coste), o el precio a los que se va a vender (precio venta). También
se establecerá si se necesita algún mecanismo que calcule el precio final de venta
(precio estándar) y si se tiene que recalcular con abastecimiento (precio medio).
Para finalizar, en la pestaña de Proveedores es posible incluir la información
necesaria con sus correspondientes existencias mediante el botón de Actualizar, que
se encuentra en el apartado de Stocks.

• Órdenes de compras

En este apartado se va a estudiar la compra-venta de los diferentes productos,


teniendo en cuenta lo que se compra a los proveedores para, después, venderlo a los
diferentes clientes. Por lo tanto, es fundamental que, para poder vender, haya
existencias de los distintos productos, por lo que lo primero es el aprovisionamiento
de los mismos, que es posible determinar desde la ventana de Compras.
A continuación, desde Compras/Compras/Pedidos de compras se puede crear la
orden de compra en la que se establece el proveedor, junto con los productos
solicitados.
Una vez finalizado el albarán, es posible generar los costes totales mediante el botón
de Calcular. De esta manera ya se puede validar el pedido utilizando el botón
Convertir a pedido de compra y generar la factura y el albarán de entrada
correspondiente.

Página 53 de 129
Módulo 10: Sistema de Gestión Empresarial

Cuando la mercancía esté disponible, se procede de la siguiente manera:


- Mediante la pestaña Almacén/Gestión de almacenes/Albaranes de
entrada se localiza el albarán correspondiente.
- Para mostrarlo, basta con hacer doble clic sobre el albarán y seleccionar
la opción de Procesar.
- A continuación, es posible validar la llegada (Validate) y, de esta manera,
asegurar que todo está correcto. Las cantidades se contabilizarán en
stock y pasarán a estar disponibles en la tienda.

• Órdenes de ventas

A partir del menú Ventas/VentasPedidos de ventas (Nuevo) se crea un nuevo pedido


de venta. Es muy parecido al pedido de compras, pero, en este caso, se deben
establecer los datos correspondientes del cliente que realiza el pedido y añadir los
productos que este desee a través del botón de Nuevo.
En cada línea de venta se añade el producto, la cantidad, si tiene algún tipo de
descuento, y otros datos de este tipo. Además, es posible especificar si es un pedido
o si se coge directamente del stock (Método de abastecimiento).
En caso de ser un pedido, no es necesario gestionar el pago de la factura hasta que
se recoja el correspondiente albarán de entrada tras la compra y recogida del cliente.
Por su parte, si se vende desde el stock, el sistema debe avisar si no quedan unidades
disponibles en el almacén. En caso de tener disponible, será posible enviar el
producto y emitir su factura.
Una vez que el pedido está completo, se calculará el precio mediante el botón
Calcular y se validará a través de Confirmar pedido.
Se debe generar el albarán de salida junto con la factura cuando se selecciona la
opción Crear la factura final.

Página 54 de 129
Módulo 10: Sistema de Gestión Empresarial

• Gestión de devoluciones

Es bastante común que se produzcan devoluciones en el proceso de compra-venta


de productos y servicios. Para realizar este proceso de manera correcta, es
conveniente diferenciar entre dos tipos de casos:
1) Cuando una factura no está pagada.

2) Cuando la factura ya ha sido abonada.

En el primer caso, si aún no se ha gestionado el pago y el pedido se encuentra en


estado de borrados, solo habrá que eliminar la factura, cancelando de esta manera
el albarán y el pedido.
Si, por el contrario, ya se ha realizado la gestión de pago, no será posible cancelar la
factura, sino que será preciso rectificarla. Este proceso de rectificación se llevará a
cabo buscando la factura antigua en (Contabilidad/Clientes/Facturas del cliente),
abrirla y crear una nueva para rectificar la anterior. Deberá incluir la devolución del
importe y volver a pasar por la aprobación, pago y validación de una factura habitual.

• Informes de compras y ventas

Es muy importante llevar a cabo los diferentes informes de las compras y ventas
realizadas para tener todo el proceso documentado. En OpenERP, se dispone de una
serie de herramientas que realizan este tipo de trabajo, y se encuentran en la opción
de Compras o Ventas dentro del menú Informes.

- Para ventas, se crea el informe Análisis ventas.

- Para las compras, se dispone de dos informes: Análisis compras y Análisis


recepciones.

En los dos casos se cuenta con la opción de poder ver una lista con los diferentes
casos que es posible filtrar según el proceso seleccionado. También se puede realizar
una vista gráfica del análisis realizado mediante Vista gráfica.

Página 55 de 129
Módulo 10: Sistema de Gestión Empresarial

Gestión del almacén

• Introducción

La gestión de almacén o stock de productos está basada en dos conceptos


fundamentales relacionados entre sí, que son: la ubicación y el almacén.
Un almacén es una localización física de elementos de stock, los cuales pueden
situarse o establecerse en diferentes ubicaciones o secciones. De esta manera, un
almacén puede estar formado, como mínimo, por una ubicación.
Los distintos elementos del almacén se pueden ir desplazando entre las diferentes
ubicaciones, dejando siempre constancia de ello en el sistema, a través de los
albaranes. Se pueden diferenciar tres tipos de albaranes:

- De entrada: utilizado para la recepción de mercancías.

- De salida: utilizado para la salida de productos de un almacén.

- Externos: utilizado para moverse entre los distintos almacenes o entre las
propias ubicaciones de un almacén.

Para la realización de las distintas configuraciones existentes de almacenes, es


posible diferenciar tres ubicaciones posibles:

- Ubicaciones físicas: hacen referencia a la estructura física de un almacén.

- Ubicaciones de socios: se encargan de ajustar los stocks vendidos y los que se


compran.

- Ubicaciones virtuales: las que se utilizan mientras se produce el


desplazamiento de materiales entre las diferentes fases.

Página 56 de 129
Módulo 10: Sistema de Gestión Empresarial

• Ubicación

Corresponde a una parte de la estructura jerárquica y permite representar la sección


de un almacén. Se pueden diferenciar los siguientes tipos de ubicación a la hora de
crear una estructura:

- Vista: utilizada solo para organizar, nunca para contener stock. Esta ubicación
puede contener otras ubicaciones.

- Clientes y proveedores: se refiere a ubicaciones virtuales que permiten


representar la salida de los productos y la entrada de material.

- Interno: permite gestionar el stock.

- Inventario: utilizado para gestionar las distintas correcciones del inventario


de forma manual.

- Producción: utilizado para gestionar el material básico de un producto, junto


con la producción del mismo.

- Procurement (abastecimiento): ubicación temporal utilizada para realizar la


compraventa de algún material.

- Tránsito: utilizada en compañías multinacionales para los movimientos de las


diferentes sedes.

Es posible fijar los datos de las ubicaciones procurement, inventario y


producción en la ficha del producto, y los datos de recepción y reparto en la
ficha de socios. La configuración para cada tienda se puede llevar a cabo
mediante Ventas/Configuración/Ventas/Tiendas.

• Almacén

Se utiliza para agrupar las distintas ubicaciones, pudiéndolas gestionar


conjuntamente, de tal forma que un almacén consta de una ubicación de entrada (de
donde vienen las mercancías), una de salida (hacia donde van los productos), y una
ubicación de stock (desde donde se realiza la venta de productos).

Página 57 de 129
Módulo 10: Sistema de Gestión Empresarial

• Plan de formación

• Problema planteado

Tal y como se comentaba en el primer apartado, refiriéndose a una tienda de


informática, se establece ahora el supuesto práctico de que se desea abrir una nueva
tienda en otro lugar.
Para mejorar la gestión de ambas tiendas se crearán dos almacenes físicos, uno en
cada tienda, y otro global, desde el que se pueda distribuir a las tiendas. Se podrán
almacenar los diferentes productos en el almacén global y, desde ahí, abastecer a las
dos tiendas.

• Creación de la estructura del almacén

1. En primer lugar, será preciso crear las ubicaciones necesarias, ya que todas
ellas dependerán de la ubicación padre (OpenERP). Se crearán tres
ubicaciones, una para cada tienda, y otra para el stock general. Todas ellas
serán ubicaciones internas.

2. Posteriormente, se define la estructura real que tiene el almacenaje con tres


almacenes diferentes, uno para cada tienda y, por otro lado, el general.

Página 58 de 129
Módulo 10: Sistema de Gestión Empresarial

3. Cada almacén debe contar con las ubicaciones de entrada y salida y el stock.

4. Es posible modelar las distintas tiendas físicas incluyendo en cada una de ellas
el almacén que puedan utilizar.

5. Después, es posible añadir las categorías junto con los productos necesarios.
No hay que olvidar establecer el proveedor.

6. Tras esto, se puede crear el stock que se va a tener inicialmente, utilizando,


por ejemplo, la ficha del producto.

7. Finalmente, se pueden fijar las reglas de abastecimiento automático que se


van a utilizar, abriendo un determinado producto y seleccionando la opción
de Reglas de stock mínimo.

• Uso del almacén

Una vez creada la estructura y el almacén se encuentre abastecido, ya es posible


llevar a cabo las ventas desde las diferentes tiendas.
En primer lugar, al vender en una tienda y detectar que no existe stock del producto
solicitado, será preciso traspasar productos desde el almacén general al stock de la
tienda en cuestión.
Cuando se finaliza el pedido de venta y no existe stock disponible, es preciso hacer
una petición de material utilizando un albarán interno. En este albarán se deben
indicar las ubicaciones, tanto de origen como de destino, además de la cantidad de
producto necesaria. Este albarán será tratado como uno más, por lo que será preciso
procesarlo y validarlo.
Una vez finalizado el albarán y realizado el traspaso de datos del almacén general al
de la tienda que los requería, ya es posible crear la compra junto con su factura
correspondiente.
Mediante la opción Almacén/Planificación/ Excepciones abastecimiento, se podrá
comprobar la excepción que ha provocado esta situación.

Página 59 de 129
Módulo 10: Sistema de Gestión Empresarial

• Informes del almacén

Es fundamental realizar un buen seguimiento del stock para garantizar el correcto


funcionamiento de una determinada empresa y, de esta forma, aumentar la
satisfacción por parte del usuario.
Para ello, se deben realizar diariamente las comprobaciones del estado de los
albaranes, excepciones de abastecimiento, peticiones de compra, etc. que se pueden
llevar a cabo mediante las herramientas para gestión y análisis.
A través de la opción de Almacén/Informe/Tablero/Tablero de almacén se puede
localizar el tablero principal del almacén.
Para comprobar las cantidades de las distintas ubicaciones se puede diferenciar
entre:

- Análisis de movimiento: permite comprobar todos los traspasos de material


que se han producido en los diferentes almacenes.

- Análisis de inventario: permite comprobar cómo se han repartido los


productos por las distintas ubicaciones.

Otra herramienta fundamental es el análisis detallado de movimiento, a la que es


posible acceder mediante Almacén/Trazabilidad/Movimientos de stock, y que
permite comprobar todos los cambios de stock que se hayan producido en los
diferentes almacenes y ubicaciones.

Página 60 de 129
Módulo 10: Sistema de Gestión Empresarial

1.3. Cálculos de pedidos, albaranes, facturas, asientos predefinidos,


trazabilidad, producción. 3.4 Gestión de contabilidad

Introducción
La contabilidad se encuentra completamente integrada en los sistemas de compras y
ventas, permitiendo el transcurso de la información en tiempo real.
La contabilidad está basada en dos fuentes principales que permiten un correcto
funcionamiento:

• La configuración de los distintos ejercicios y periodos, diarios, plan contable,


impuestos, plazos y tipos de pago.
• La actividad diaria del sistema que va a generar la información de forma
automática y la introducida de forma manual por el correspondiente contable.

La unión de estos elementos es la que garantiza la correcta gestión de la contabilidad


empresarial, permitiendo conciliar facturas, visualizar balances, y otro tipo de tareas
fundamentales.

Plan de formación

Problema planteado
En este apartado de la gestión de contabilidad y siguiendo con el ejemplo de la tienda
de informática de apartados anteriores, se van a aprender los distintos
procedimientos básicos que puede utilizar un contable para que el usuario pueda
familiarizarse con ellos y pueda saber gestionarlos.
Aunque el usuario no debe centrarse en realizar tareas contables, sí que debe ser
capaz de resolver las dudas referentes a su utilización.

Página 61 de 129
Módulo 10: Sistema de Gestión Empresarial

Configuración del sistema

• Ejercicios fiscales

En primer lugar, se debe crear el ejercicio fiscal con el que se va a trabajar, que
suele ser habitualmente de un año, si bien, cada empresa tiene la libertad de
comenzar y terminar este ejercicio en el momento que desee.
Lo que sí es común a todos los ejercicios es que deben estar formados por
periodos que coincidan con aquellos momentos de liquidación de la empresa
(generalmente, trimestres para PYMES).
El año fiscal se creará a través de Contabilidad/ Configuración/ Contabilidad
financiera/Periodos/Ejercicios fiscales, y, tras esto, debe aparecer un listado que
contenga todos los ejercicios fiscales que se han definido, junto con su estado
(abierto o cerrado). A través del botón Nuevo será posible crear un nuevo
ejercicio fiscal.
Después de esto, se introducen una serie de valores obligatorios, como pueden
ser el nombre del ejercicio, el código, y las fechas de inicio y fin. También es
posible indicar si se desean crear los periodos de forma automática o no.

• Periodos

Forman parte del ejercicio fiscal y es posible que coincidan con la liquidación de
impuestos que determine la ley actual y que realice la propia compañía.
Generalmente suelen ser trimestrales o mensuales.
Los periodos definen un principio y un fin y no se pueden solapar por defecto. Si
se desea, es posible eliminar esta condición indicándolo en el momento de su
creación, en los casos en los que se utilicen solamente periodos de cierre y
apertura del año.
Si lo que se pretende es crear los diferentes periodos de forma automática, es
posible hacerlo mediante Contabilidad / Configuración / Contabilidad financiera
/ Periodos / Periodos y pulsando el botón de Nuevo.

Página 62 de 129
Módulo 10: Sistema de Gestión Empresarial

• Diarios

Un diario es un libro contable en el que se registran los asientos que se producen


durante el funcionamiento diario de una empresa.
Lo habitual es tener un único libro asociado a una empresa, aunque OpenERP
ofrece muchas más posibilidades y permite crear más de un libro para una misma
empresa.
La opción más recomendable de la documentación es crear un diario distinto para
cada operación y, como mínimo, tener tres (uno para compras, otro para ventas
y otro para efectivo). De esta forma, se establecen los distintos tipos de diarios:

- General: nóminas, liquidaciones de impuestos, movimientos de capital, etc.


- Ventas: registros de ventas y facturas de los clientes.
- Compras: registros de compras y facturas del proveedor.

- En efectivo o de caja: los que gestionan el dinero.


- Abono de: gestionan las devoluciones de compras y ventas.
- Banco y cheques: gestiona las cuentas bancarias y la utilización de cheques.
Las distintas gestiones en este sentido pueden realizarse a través de Contabilidad
/ Configuración / Contabilidad financiera / Diarios / Diarios. Se rellenan como
campos obligatorios el nombre y el código. Además, es conveniente indicar el tipo
de diario y sus cuentas contables por defecto, que son las que se van a utilizar a
la hora de crear los diferentes asientos, y un modo de visualización para gestionar
los asientos, junto con el mecanismo de numeración de los mismos.
A través de la pestaña Controles de asiento se puede acceder a un determinado
diario, incorporando un mayor nivel de seguridad.

• Impuestos

Lo habitual al instalar un programa es que se configuren los impuestos necesarios


de forma correcta, aunque, en ocasiones, se deben modificar si la legislación
cambia. Es posible acceder a ello mediante Contabilidad / Configuración /
Contabilidad financiera / Impuestos / Impuestos.
Los datos obligatorios en este caso serán el nombre, cuándo se van a aplicar los
impuestos, el tipo de impuesto que es y el importe que se le va a aplicar.

Página 63 de 129
Módulo 10: Sistema de Gestión Empresarial

• Mecanismos de pago

Dentro de los mecanismos de pago se puede hacer referencia a las distintas


configuraciones que es posible realizar a los mismos, a través del menú
Contabilidad/Configuración/Varios.

- En el primer apartado, los plazos de pago determinan el tiempo que tarda


una factura en ser abonada.

- En el segundo, se pueden configurar los diferentes tipos de pago que


pueden utilizar las facturas.

- El último apartado hace referencia a los modos de pago que permiten


conformar las órdenes de pago, como pueden ser las remesas.

Y, para concluir, se destacan también los tipos de facturación que existen para un
determinado cliente.

• Plan contable

Se refiere a la estructura jerárquica de las distintas cuentas contables. Para crear


un plan contable, es preciso saber que este no se crea solo, sino que es preciso
crearlo a través de las plantillas existentes para OpenERP.
Una vez elaborado el plan contable, no se suele modificar, ya que habitualmente
se diseña a gusto del usuario. Excepcionalmente, podrían cambiar las necesidades
de la empresa y, en ese caso, necesitar alguna modificación.
Gracias a la opción de Configuración / Planes contables / Plan contable, es
posible acceder a todos los asientos ya ordenados según las cuentas de la gestión
del plan contable.

• Cuentas

En ocasiones, surgirá la necesidad de modificar alguna cuenta debido a algún


cambio en el plan contable.
En este caso, a través de Contabilidad / Configuración / Contabilidad financiera
/ Cuentas / Cuentas se puede visualizar el listado de cuentas, con la opción de
filtrar según determinada condición. Para crear una nueva cuenta se seleccionará
la opción de Nuevo.

Página 64 de 129
Módulo 10: Sistema de Gestión Empresarial

Gestión de facturas
A través de las facturas se justifican los pagos. Es fundamental que cada gasto esté
justificado y el propio sistema informático permite realizarlo de forma automática.
Es posible diferenciar la gestión de las facturas de los clientes de las de los
proveedores.

• Gestión de factura de los clientes

Se selecciona mediante Contabilidad/Clientes y, con esto, deben aparecer aquellos


elementos necesarios para su gestión. En primer lugar, en Facturas de cliente se
mostrará un listado con todas las facturas que están dadas de alta en el sistema, tanto
si están pagadas como si no, además de las que están todavía pendientes de validar,
de tal forma que se puede acceder a cualquiera de ellas y realizar las acciones
oportunas.

• Gestión de factura de los proveedores

Es un proceso bastante similar al de los clientes, con la salvedad de que es bastante


frecuente incorporar facturas externas al sistema. Dentro de estas facturas
aparecerán aquellas que están dadas de alta, tanto las que se hayan realizado de
forma manual como las automáticas.
En el caso en el que se desee añadir otra nueva factura, se debe incluir en el diario la
factura, el proveedor, la referencia de factura y el importe total. Los demás campos
se rellenarán de forma automática.

Gestión de asientos
Un asiento es un conjunto de apuntes que permiten representar algún movimiento
contable. OpenERP ofrece la posibilidad de crear los distintos asientos, tanto de
forma manual, como automática. Es más frecuente la segunda opción, ya que se
puede crear en el momento en el que se realiza el pago correspondiente.
En caso de utilizar la forma manual, es posible hacerlo a través de Contabilidad /
Asientos contables y, de esta manera, acceder a la gestión de apuntes y asientos.
Los dos tipos de operaciones más importantes que se pueden llevar a cabo con los
asientos son:

• Asentar: validar varios asientos de un determinado diario y periodo de


tiempo.

Página 65 de 129
Módulo 10: Sistema de Gestión Empresarial

• Conciliación de asientos.

Para ambos casos se seleccionan los elementos necesarios en los apuntes contables
que se encuentran en el menú lateral derecho y, una vez ahí, es posible llevar a cabo
la operación. En este menú también se dispone de la opción de poder romper la
conciliación de distintos asientos ya conciliados, permitiendo, de esta forma, la
modificación de los mismos.

Generación de informes contables


La herramienta más importante en la gestión contable es el tablero de contabilidad.
Es posible acceder a él mediante Contabilidad / Informe / Tablero /Tablero de
contabilidad.
En la parte superior del tablero se pueden apreciar aquellas facturas que todavía no
han sido aprobadas. Una de las tareas más importantes en la contabilidad es que una
factura debe ser aprobada antes de ser abonada, por lo que es conveniente que se
apruebe cuanto antes y tener muy en cuenta esta zona del tablero.
La contabilidad del sistema presenta una gran cantidad de informes que pueden
generarse de forma automática. Algunos de los más conocidos son, entre otros:

• Informes contables: entre los que destacan el libro mayor, el balance de


sumas y saldos, ganancias y pérdidas y la hoja de balance. Generan un fichero
PDF que se puede imprimir.

• Diarios: se pueden seleccionar de forma individualizada, o bien solo los diarios


generales o un diario centralizado.

• Modelos de impuestos para la Hacienda Española: 340, 37, 349. Una vez
introducidos los datos necesarios, se realizan de forma automática.

Cierre contable
Cuando finaliza un ejercicio fiscal, el contable correspondiente debe realizar una serie
de procedimientos especiales. Es bastante frecuente que, con el fin del periodo fiscal,
se calculen una serie de informes necesarios para que se realice el pago de impuestos.
Cerrar el año fiscal es un proceso más complejo. Como ya se ha indicado
anteriormente, el contable es el encargado de realizar las diferentes tareas sobre el
sistema de forma correcta, comprobando que no falte nada por contabilizar y que no
existan apuntes incorrectos, entre otras tareas. Una vez realizadas las distintas
comprobaciones, ya puede pasar a crear un inventario físico de existencias. En este

Página 66 de 129
Módulo 10: Sistema de Gestión Empresarial

apartado, se deben amortizar los activos existentes, ajustar las diferentes cuentas
que puedan influir sobre el ejercicio y calcular el impuesto de sociedades. Por último,
debe enumerar los asientos contables para que sean consecutivos.
A continuación, ya es posible cerrar el ejercicio, siguiendo una serie de pasos, como
pueden ser, entre otros:

• Una vez finalizadas las tareas, se cierra el ejercicio siguiendo el menú


Contabilidad / Configuración / Contabilidad financiera / Periodos / Ejercicios
fiscales, comprobando que los asientos de apertura y cierre estén creados. Si
no lo están, se realizarán mediante Create Open/Close and PyG Periods.

• Se continúa con el cierre del ejercicio desde Contabilidad / Procesamiento


periódico / Fin de periodo/ Close Fiscal Year, seleccionando los años de
apertura y cierre. Se le debe asignar un nombre que sea único.

• Se pueden configurar las diferentes acciones que se deseen hacer y se


continúa con el asistente. Entre las diferentes opciones se encuentran la de
realizar los movimientos de pérdidas, ganancias y pérdidas netas, cierre del
año fiscal actual y apertura del siguiente año, entre otras.

• Una vez realizadas las operaciones, se debe Guardar el cierre y no editarlo


más.

• Es fundamental que antes de confirmar el cierre, se valide cada movimiento


que ha creado el asistente.

• Para finalizar, se confirma el cierre seleccionando el botón de Confirm.

• Si se tiene que realizar alguna modificación de algún asiento, es preciso seguir


el siguiente proceso: primero, reabrir el año correspondiente. A continuación,
modificar los datos y, por último, volver a cerrar el ejercicio. Para ello, se
selecciona la opción Contabilidad/Procesamiento periódico/Fin de
periodo/Fiscal Year Closings, y se edita el ejercicio en cuestión.

Página 67 de 129
Módulo 10: Sistema de Gestión Empresarial

1.4. Gestión de los recursos humanos

Plan de formación

Problema planteado
La gestión de recursos humanos (RRHH) tiene las siguientes funciones:

• Crear
• Modificar
• Mantener

Tanto a los empleados como sus contratos, además del control de asistencia al
trabajo, organización en caso de ausencias, gestión de nóminas y obtención de
informes, entre otras funciones.
Caso práctico de ejemplo: TeclitaSoft está creciendo y necesita contratar personal de
contabilidad para la Gestión Contable y de recursos humanos, externos a la empresa.
Se dividirán en dos partes, dentro de la gestión de RRHH, las cinco personas que
trabajan en la empresa. Por un lado, jefe y empleados y, por otro, los departamentos
de Ventas, Técnicos y Dirección.
La dirección solo contará con una persona, mientras que Ventas y Técnicos constarán
de dos personas cada uno.

- Los contables serán los encargados de diseñar la estructura, los contratos de


los empleados, las nóminas necesarias y los informes.
- Los empleados deben justificar su asistencia al trabajo fichando en la página
correspondiente del sistema, pueden solicitar vacaciones, informar ante
cualquier ausencia, etc.

Página 68 de 129
Módulo 10: Sistema de Gestión Empresarial

Configuración del sistema


Antes de comenzar a buscar una solución ante el problema planteado, se procederá
a la configuración del sistema, añadiendo los datos correspondientes, junto con la
estructura de categorías y puestos ofrecidos.
En principio, se configurarán los datos de asistencia para poder, a continuación,
diseñar la estructura de la misma.
1. Mediante la opción de Recursos Humanos / Configuración / Asistencia se
pueden establecer las causas permitidas en la empresa.
En un primer momento se puede añadir el nombre de la acción determinada
y si va a ser de entrada o de salida.

2. En el menú Recursos Humanos / Configuración / Vacaciones / Tipos de


ausencia se pueden seleccionar dos tipos de ausencias al puesto de trabajo.
Cuando un empleado falta a su puesto de trabajo, el sistema interpreta que
puede estar de vacaciones, aunque puede ser por algún otro motivo.

3. En este apartado es posible definir la estructura de la empresa por


categorías, mediante RecursosHumanos / Configuración / RecursosHumanos
/ Empleados / Categorías.
Es conveniente que, para cada categoría, se indique el nombre junto con el
padre al que corresponde y asegurarse de que, cada empleado debe
pertenecer a una de estas categorías como mínimo. En el momento en el que
sea necesario visualizar la estructura, se hará a través de Estructura de
categorías.

4. El apartado de Recursos Humanos / Configuración / Recursos Humanos /


Empleados / Marital Status es en el que el estado civil de los empleados viene
definido por defecto y, en caso de necesitarlo, se puede modificar.

5. Recursos Humanos / Configuración / Recursos Humanos /


Departamentos: permite realizar cualquier tipo de modificación sobre la
estructura departamental que determina la empresa. Es posible modificarlo
hasta acercarse a la estructura actual de la empresa pensando en un futuro
próximo.

Página 69 de 129
Módulo 10: Sistema de Gestión Empresarial

6. Recursos Humanos / Configuración / Recursos Humanos / Contratos:


permite realizar las modificaciones oportunas sobre el tipo de contrato de los
empleados. Se pueden diferenciar entre tres submenús:

- Uno para establecer el tipo de contrato.


- Otro que corresponde al tipo de salario.
- Y el último, que determina el tiempo de pago.

Gestión de empleados y contratos


Una vez configurados todos los aspectos principales para la gestión de empleados y
contratos, es posible crearlos y relacionarlos.
En primer lugar, es preciso crear un usuario del sistema, mediante
Administración/Usuarios. Estos usuarios deben tener, al menos, un nombre y una
clave.
A continuación, se pueden crear los distintos empleados en Recursos
Humanos/Recursos Humanos/Empleados seleccionando la opción de Nuevo. Se
rellenarán los datos más importantes de los empleados.
Por último, para crear un contrato, es fundamental indicar el nombre del empleado
al que se le hace el contrato, el salario, tipo de salario y tipo de contrato. Además,
será preciso señalar la fecha de inicio y grabar el contrato.
Para finalizar, se deben asignar los directores de cada departamento, ya que todos
los empleados ya están dados de alta en el sistema. Se hará desde el menú de
Recursos Humanos / Configuración / Recursos Humanos / Departamentos.

Gestión de asistencia
Como se ha detallado anteriormente, un usuario puede asistir al trabajo o faltar de
una forma justificada. En cualquiera de los casos, se debe gestionar la asistencia por
dos vías distintas:

• De forma monetaria.
• Organizativa.

Las dos formas deben contar con un documento que las justifique.

El mecanismo más utilizado por las empresas es la justificación mediante


fichaje de los empleados, de esta forma, el empleado es el responsable de su
asistencia o de su ausencia en su puesto de trabajo.

Página 70 de 129
Módulo 10: Sistema de Gestión Empresarial

De la misma forma, la ausencia del empleado al puesto de trabajo puede estar


motivada por vacaciones o falta justificada. Las vacaciones son un motivo claro y
regulado, pero la falta justificada engloba, a su vez, numerosas posibilidades, como
pueden ser, entre otras, asistencia médica, incapacidad temporal, reuniones, visitas
a clientes, etc.
Para OpenERP, cualquier falta cuenta como vacaciones.
1. Para registrar la entrada se hará a través del menú Recursos
Humanos/Servicios/Registrar entrada/salida y se utilizará la opción de
Registrar entrada para introducir el usuario y la clave.

2. En el momento de la salida, el usuario debe realizar el mismo proceso


mediante la opción Registrar salida.

3. Mediante la opción de Recursos Humanos/Seguimiento de tiempo se


pueden asignar una serie de permisos a los diferentes empleados para
conseguir, de esta forma, que estos tengan una visión más amplia de la
estancia y poder acceder al menú Mi hoja de asistencia, para visualizar el
listado semanal de aquellos servicios que se han realizado.

La jornada laboral correspondiente en la ficha de cada empleado determina la


cantidad de días libres asignados y validados que le corresponden por semana.
Para las demás faltas de trabajo que pueda tener (vacaciones o justificadas),
debe solicitarlas al sistema para ser aprobadas por algún responsable de la
empresa.
• Cuando es una falta justificada, se creará una petición de ausencia.

• Si se solicitan vacaciones, se necesitará una petición de asignación.

El sistema es el responsable de cerrar las correspondientes hojas de trabajo y


validarlas. De esta forma, asegura que las nóminas se realicen de forma correcta.
Mediante Confirm se pueden confirmar las hojas de trabajo y la persona responsable
es la encargada de validarlas. Para tal fin, debe abrirla y seleccionar la opción de
Aprobar.

Página 71 de 129
Módulo 10: Sistema de Gestión Empresarial

Nóminas
Para la realización de las nóminas existen dos tipos de mecanismos: general y
específico. En esta Unidad Formativa se estudiará el mecanismo general por su mayor
sencillez.
En primer lugar, es preciso tener configurados los datos del contrato para crear las
diferentes nóminas. Lo primero que hay que hacer es cerrar las hojas de trabajo y, a
continuación, seleccionar el menú Recursos Humanos / Nómina / Nómina de los
empleados para crear las diferentes nóminas de los empleados.
Esta opción puede ser de ayuda en el caso de tener pocos empleados en la empresa,
pero, si es una empresa con un mayor número de empleados, es conveniente generar
las nóminas para los diferentes conjuntos de empleados mediante la opción de
Recursos Humanos / Nóminas y anticipos.
Para crear una nueva nómina se selecciona el botón de Nuevo y, a continuación, se
introducen los datos del empleado, el diario contable (diario de gastos), desde el que
se va a hacer el pago (diario bancario) y la fecha correspondiente.
En la opción de Comprobar hoja se puede llevar a cabo una vista previa de la nómina
y, si todo es correcto, es posible Aprobarla. De esta forma, la nómina pasa a ser válida
y ya está creada, aunque por el momento no se haya pagado. El pago es otro apartado
posterior en el que se crearán los asientos contables y se enviará la orden al banco
para que proceda con el pago.

Informes
Se pueden realizar numerosos informes para controlar la gestión del personal. Como
ya se ha indicado anteriormente, una de las herramientas más importantes para este
fin es el tablero o los propios informes. Ambos se pueden encontrar en el menú
Recursos Humanos/Informe/Tablero, y algunos de ellos son:

• Horario del empleado: facilita un informe con los horarios del empleado.

• Horarios de empleados: facilita un informe con los horarios de todos los


empleados.

• Recursos humanos/Informe/Ausencias: proporciona un informe con las


ausencias y nóminas de los empleados.

Página 72 de 129
Módulo 10: Sistema de Gestión Empresarial

1.5. Herramienta de monitorización. Incidencias: resolución e


identificación

Todos los sistemas informáticos necesitan tener un mantenimiento en dos niveles


diferentes: interno y externo.
En las tareas de mantenimiento es posible encontrar, entre otras tareas, la realización
de copias de seguridad, la actualización del software o el control del sistema y
auditoría del mismo. Este apartado se centrará en sistemas OpenERP- PostgreSQL.

PostgreSql
Para las empresas de hoy en día, la función más importante es su información
correspondiente. Esta información se puede desprender o inutilizar provocando
grandes pérdidas. Ante esta situación, es fundamental realizar una buena gestión de
la base de datos, estableciendo una correcta política de seguridad, la distribución de
datos y control de acceso.
PostgreSQL emplea varios ficheros de configuración, como puede ser, entre otros,
postgresql.conf, que establece los diferentes datos de funcionamiento. Este fichero
cuenta con una serie de secciones en las que se encuentran las auditorías.
Al desplazarse por este fichero aparece la sección ERROR REPORTING AND LOGGING,
que se encarga de la configuración de los aspectos de la creación de ficheros para las
auditorías.
La sección When indicará cuál es el tipo de mensajes que se pueden almacenar en el
caso de:

• Cliente (client_min_messages).
• Para el propio sistema (log_min_messages).

• Ante el fallo de una sentencia (log_min_duration_statement).

• Si una sentencia lleva demasiado tiempo en ejecución.

• (log_min_duration_statment). Se expresa en milisegundos.

• Se pueden identificar aquellos elementos de la base de datos que se desee


almacenar para, a continuación, formalizar el formato de la sentencia.
Para ello, se escribe (log_line_prefix).

Página 73 de 129
Módulo 10: Sistema de Gestión Empresarial

Otra sección bastante importante es RUNTIME STATISTIC, que permite realizar la


configuración sobre las estadísticas del uso que ha tenido el sistema y, de esta forma,
poder determinar su rendimiento.
Mediante estas estadísticas, se generan, por una parte, la implicación al sistema de
las diferentes consultas (Query/Index Stastistics Collector) y, por otra, el sistema de
auditoría (Statistics Monitoring).

OpenERP: auditoría por ficheros


OpenERP es un paquete compuesto por dos elementos principales, que son el
servidor y la pasarela Web que lleva a este servidor. Cada una de estas partes tiene
su propio fichero de configuración, que se encuentra en el directorio /etc.
Los parámetros disponibles en el servidor para su configuración son:

• syslog (=False): si se hace uso de Linux para una auditoría.

• logrotate (=True): cuando el sistema gira los ficheros de log de forma


automática.

• log_level (=info): para almacenar una serie de información referente a los


distintos eventos de los ficheros.

Para configurar los datos correspondientes en la pasarela Web, se puede hacer uso
de los siguientes ficheros:

• Ficheros de acceso (log_access_file).


• Ficheros de error (log_error_file).

Nivel de ficheros para acceso y errores


Esta configuración es bastante más compleja que la anterior, por lo que, es
posible consultar más información desde la página correspondiente:
http://docs.python.org/library/logging.handlers.html#logging.handlers.TimeRot
atingFileHandler

Página 74 de 129
Módulo 10: Sistema de Gestión Empresarial

OpenERP: módulo auditrail


El módulo de auditoría que incorpora OpenERP es bastante fuerte, pero, a su vez,
resulta un poco complejo, ya que puede solicitar información de cualquier parte del
sistema. Este apartado se centra en la configuración de este módulo.
Para ello, se tendrá en cuenta la cantidad de información disponible en la
correspondiente base de datos, siendo recomendable su utilización durante un
periodo determinado de tiempo, ya que no es recomendable tener el servidor en
producción siempre activo.
La instalación del módulo se realizará mediante Administración/Módulos. De esta
forma, se mostrarán dos nuevos elementos en el menú
Administración/Informes/Auditoría.
En el primer elemento se configuran las diferentes reglas de auditoría, como Audit
Rules, pudiendo indicar los objetos que se pueden controlar, junto con sus
correspondientes acciones. En el segundo elemento aparecerán una serie de
informes asociados (Audit Logs).
Cada regla debe tener un nombre único junto con el objeto que se desea controlar,
además de las acciones (lectura, escritura, eliminación, creación, acciones o flujo de
trabajo). También se pueden establecer los usuarios para los que se va a llevar el
control.

OpenERP: control de rendimiento

Este módulo permite determinar los tiempos de ejecución que tiene cada función del
sistema.
El sistema permite realizar las funciones de instalación de un módulo para recoger
los módulos (profiling) para que, posteriormente, muestre los correspondientes
informes.

Este módulo de control de rendimiento no viene añadido en la distribución


estándar, por lo tanto, será preciso descargarlo de Internet:
http://v6apps.openerp.com/addon/5470

Una vez descargado, se copiará en el directorio addons del servidor y, a continuación,


se actualizarán los módulos necesarios.

Página 75 de 129
Módulo 10: Sistema de Gestión Empresarial

Este módulo permite obtener las estadísticas correspondientes a la ejecución sobre


la cantidad de llamadas a los servicios, junto con el tiempo empleado para ello, los
métodos ORM del servidor, la información asociada a los métodos y servicios ORM,
y el número de registros devueltos por estos métodos.
Una vez analizada la información, ya es posible realizar los cambios que se deseen en
la estructura del código, para conseguir, de esta forma, mejorar el rendimiento.

Otras herramientas

Para finalizar este apartado, se señalan otras herramientas que es posible utilizar,
como son:

• http://docs.python.org/2/library/profile.html
Utilizada para crear módulos mediante el profiler de Python, con el
que se pueden obtener las estadísticas y tiempo de ejecución sobre su
uso.

• http://pgfouine.projects.pgfoundry.org/
Analizador de sentencias SQL que se encarga de ejecutar las
correspondientes órdenes SQL en la base de datos, mostrando los
tiempos y el uso.

• http://www.postgresql.org/docs/9.2/statics/sql-explain.html
Permite mostrar el plan de ejecución para una sentencia determinada.

Página 76 de 129
Módulo 10: Sistema de Gestión Empresarial

1.6. Procesos de extracción de datos en sistemas ERP-CRM y


almacenes de datos

Plan de formación

Problema planteado
En este apartado, se deben proporcionar a los clientes una serie de nuevos servicios,
como son: el soporte telefónico y la gestión de reclamaciones. Además, se debe tener
la posibilidad de ofrecer de manera telefónica a los clientes diferentes ofertas que
pueden ser de su interés.
Todos estos servicios se pueden gestionar desde la plataforma, dejando la
información almacenada y comenzando con el proceso de venta, en el momento en
el que se llegue a un acuerdo con el cliente. De esta forma, se podrá dotar a la
empresa de un mayor valor.

Configuración del sistema


Existe la opción de mantener las configuraciones que vengan establecidas por
defecto o de modificarlas para cada empresa. Se utilizará para ello la opción de
Ventas/Configuración.
Se siguen los siguientes pasos:
1. Iniciativas y Oportunidades/Etapas permite configurar las distintas etapas, el
orden, tipo y la probabilidad de que se puedan llevar a cabo.

2. Al crear una iniciativa es preciso señalar cuál es su principal motivo, mediante


la información que reflejan las categorías de iniciativas. A través de Iniciativas
y Oportunidades/Categorías se pueden realizar las diferentes
configuraciones.

Página 77 de 129
Módulo 10: Sistema de Gestión Empresarial

3. Es importante indicar cuál es el mecanismo de comunicación utilizado entre


la empresa y el cliente, a través de Iniciativas y Oportunidades/Canales,
como pueden ser la vía telefónica, sitio web, correo electrónico, entre otros.

4. Oportunidades/Satges son las diferentes fases por las que debe pasar un
documento.

5. Para buscar nuevos clientes hay que comunicarse con ellos,


independientemente de la forma que se seleccione para ello.

6. En las empresas se realizan reuniones a diferentes niveles como, por ejemplo,


del jefe con los empleados, del comercial con los clientes, etc. Para ello, es
conveniente utilizar un calendario interno de gestión y así llevar el control de
las diferentes reuniones. De esta forma, se pueden obtener dos ventajas
principales, como pueden ser: una mayor eficiencia y la documentación de
todo el proceso.

7. El servicio de reclamaciones se puede llevar a cabo de forma automatizada.


Según la ley, deben existir el libro y hojas de reclamaciones. En
Reclamación/Categorías se atenderán las distintas categorías y, mediante
Reclamación/Etapas, se definirán cada una de las etapas que tenga.

8. Para finalizar, se configurarán los servicios de ayudas disponibles que pueden


ofrecerse a los clientes, definiendo sus categorías. Mediante
HelpDesk/Categorías se podrán describir los elementos.

Gestión de iniciativas
El sistema puede diferenciar entre dos tipos de documentos:

• Iniciativas: se puede entender la iniciativa como una preventa, por lo que


puede que se termine concretando o no. Es decir, la iniciativa debe pasar por
un conjunto de fases que pueden terminar con un proceso exitoso o, por el
contrario, finalizar sin llegar a ningún acuerdo.

Sea como fuere, es preciso comenzar creando dicha iniciativa mediante


Ventas/Ventas/Iniciativas, en la que se debe rellenar el campo Asunto de
forma obligatoria. De esta forma, se ordenarán los documentos y será más
fácil localizar el que se está buscando.

Página 78 de 129
Módulo 10: Sistema de Gestión Empresarial

El documento que se crea puede sufrir modificaciones a lo largo del tiempo y


según sea su situación en cada momento.

Una vez que el documento ha concluido todas las fases, la iniciativa habrá
llegado a su fin, por lo que se seleccionará el botón de Cerrado y se dará por
finalizada esta tarea.

• Oportunidades: gracias a las oportunidades es posible ofrecer una estimación


sobre las ventas. De esta forma, el primer campo que se va a rellenar es el
Ingreso estimado, después del nombre descriptivo Oportunidad. Gracias a
este valor, se pueden determinar las ganancias que no se han realizado al
finalizar el año.

Durante el tiempo que dure una oportunidad, se podrá mantener contacto


con la persona relacionada por distintas vías.

Mediante la opción Planificar/Registrar llamada se puede definir la fecha


prevista y determinar si es de entrada o de salida, junto con el usuario al que
se le realiza la llamada.

En la ventana de Comunicación e Historial, la información va a quedar


reflejada en un listado y, si se sigue avanzando, se llegará a la opción
Programar reunión que, como su propio nombre indica, asignará una reunión
en el calendario.

De la misma forma que las iniciativas, la oportunidad también puede tener un


final positivo en Marcar ganado, o, si no llega a realizarse la venta, Marcar
perdido. En el primero de los casos, se pasará a la opción Convertir a
presupuesto.

Gestión de reclamaciones
Es inevitable que se produzca algún tipo de error en el sistema y no se tenga control
para solucionarlo. En este caso, es preciso facilitar un buen mecanismo para las
distintas reclamaciones que se puedan producir, para reducir, de esta manera, el
tiempo en solventar el error. Así, el cliente quedará más satisfecho y tendrá una
visión positiva del servicio de la empresa.
Para poner en marcha una reclamación se hará mediante Ventas/Servicio de
Postventa/Reclamaciones.

Página 79 de 129
Módulo 10: Sistema de Gestión Empresarial

Esta reclamación debe constar de un nombre, fecha de apertura y prioridad que se le


asigna. Se debe incorporar toda la información para que se pueda gestionar con el
responsable, la etapa en la que se ha producido (etapa), los datos de la persona que
hace la reclamación, una descripción y a qué objeto se refiere (referencia).
Una vez concluida la reclamación, se finalizará y cerrará el proceso.

Gestión de soporte (HelpDesk)


Es bastante frecuente que las empresas, con el tiempo, vayan ampliando sus
oportunidades para ofrecer a los clientes más soporte sobre diferentes productos.
Para llevar a cabo esta gestión de soporte, hace falta un tipo de personal cualificado
para resolver las diferentes dudas y problemas que se presentan.
Mediante la opción de Ventas/Servicio de Postventa/Helpdesk y soporte es posible
dar de alta esta opción, para poder tratar la petición realizada.
Esta gestión de soporte por el canal establecido permite cerrar la consulta en
cualquier momento, cancelarla o derivarla a otra persona de mayor rango si no se le
puede dar solución (Escalar). Mediante la pestaña de Comunicación e Historial e
Información extra, se establecen aquellos datos correspondientes a la consulta.
Además, el sistema cuenta con la opción de poder enviar al responsable distintos
recordatorios de forma automática.

Informes
Tal y como se ha indicado anteriormente, los informes son una parte fundamental de
los sistemas de información.
Mediante Ventas/Informes se puede comprobar que, de los seis componentes que
aparecen:

• Los dos primeros se han estudiado en el apartado de compra-venta.

• Los cuatro restantes van a tomar importancia al realizar el análisis detallado


de iniciativas, oportunidades, llamadas, reclamaciones y acciones del soporte
(HelpDesk).

Página 80 de 129
Módulo 10: Sistema de Gestión Empresarial

2. Implantación de sistemas ERP-CRM en una empresa

Cuando se comienza a trabajar con un proyecto nuevo de implantación, es


imprescindible que se realice, en primer lugar, un proceso estructurado y
metodológico para conseguir llegar a buen fin el desarrollo, es decir, es preciso
realizar una metodología de implantación.
A lo largo de los años, se han ido desarrollando diferentes estudios para crear planes
de instalación para los sistemas informáticos, con sus correspondientes ventajas e
inconvenientes. Uno de los principales aspectos que hay que tener en cuenta, desde
el primer momento, es saber que una aproximación desorganizada llevará al fracaso
del proyecto.
Es importante conocer que la mayoría de las implantaciones que no llegan a buen fin
son casi siempre por una mala organización. Por tanto, es imprescindible que se
establezca, en un primer momento, un procedimiento ordenado y fiable.
No es posible crear una metodología que sea eficiente para todos los proyectos, ya
que cada uno es diferente y tiene sus propias particularidades. Lo que sí es posible
llevar a cabo es realizar un mecanismo que sea común para todas ellas con
posibilidad de que se pueda adaptar a todos los casos que se presenten.

En este apartado se va a definir una metodología que se basa en el ciclo de


vida tradicional de un determinado proyecto informático, con posibilidad de
poder adaptarse a las distintas características de un proyecto determinado
(implantación de sistema ERP).

La idea principal es crear una serie de pasos, haciendo uso de las herramientas más
comunes para el personal de informática, generando un tipo de documentación
informativa, descriptiva y organizativa que ayude a desarrollar la implantación.
Esta propuesta se puede adaptar a las distintas necesidades de un proyecto, sin llegar
a ser demasiado exhaustivos. Basta con realizar una simple aproximación para indicar
desde dónde se va a partir.

Página 81 de 129
Módulo 10: Sistema de Gestión Empresarial

Ciclo de vida clásico

En esta imagen, se puede observar el ciclo de vida tradicional de un proyecto, que se


inicia en una fase de análisis, en la que se deben determinar las principales
características del proyecto
Esta fase lleva a la fase de diseño del sistema, tanto a nivel físico como lógico,
originando la documentación técnica correspondiente para poder llevar a cabo el
desarrollo.
Una vez que el proyecto está perfectamente diseñado, se puede pasar a desarrollar,
creando un código determinado para la aplicación y realizando sus pruebas
correspondientes.
Mediante estas pruebas, es posible asegurar el correcto funcionamiento de todos los
módulos correspondientes y, una vez que ya se ha probado el software, es el
momento de poderlo implantar en la empresa.
Tras instalarlo, se puede lanzar la fase de mantenimiento que se va a encargar de ir
actualizando el sistema, realizando las modificaciones pertinentes.
Se intentarán establecer unas pautas para seleccionar el sistema ERP que más se
ajuste a las necesidades de la empresa.
A continuación, se van a ver las diferentes fases para llevar a cabo la implementación
de un sistema ERP en la empresa, ya que tiene que pasar por varios pasos para su
implementación.

Página 82 de 129
Módulo 10: Sistema de Gestión Empresarial

2.1. Metodología de implantación

Metodología general: fases

Esta metodología dispone de cinco fases, en lugar de seis, como se vio en el apartado
anterior.
A continuación, se detallan:

• Fase 1 Iniciación: su función principal es determinar, al más alto nivel, una


serie de propiedades que necesita el cliente, junto con el tiempo estimado
para llevarlo a cabo. Por tanto, se deben sentar las bases para mantener el
proyecto bajo control y garantizar que el sistema puede satisfacer las
necesidades que se le exigen. Dentro de esta fase, se pueden diferenciar
cuatro puntos:

- Estudiar el ámbito del proyecto: para poder llevar a cabo esta fase y
conocer el alcance y ámbito de la empresa, será preciso llevar a cabo
una serie de reuniones. En ellas se determinarán las funciones a
realizar por el sistema y la forma de proceder. Se planificará el
planteamiento para llevar a cabo la implantación de la aplicación con
los distintos departamentos y se regularán las acciones que deben
realizar cada uno de ellos. Como consecuencia de todas las reuniones,
se elaborará un documento con todo lo hablado en ellas y la
planificación temporal del proyecto.

Página 83 de 129
Módulo 10: Sistema de Gestión Empresarial

- Realizar estudio de viabilidad económica, técnica y organizativa: a


partir del documento anterior, será fundamental estudiar la viabilidad
de todas las necesidades expuestas y la prioridad correspondiente. En
esta fase se deben de estudiar la solvencia de la propuesta y las
modificaciones que se harán en el futuro. Como solución a esta fase,
se debe responder con la continuación del proyecto o la desestimación
por completo. En ambos casos es preciso redactar un informe con las
causas de la desestimación, o el contrato con las cláusulas para que el
departamento legal lo revise.

- Determinar nivel de cambio a un nuevo sistema: tras los informes


realizados en la anterior fase, si la respuesta ha sido afirmativa, será el
momento de implantar el nuevo sistema. Para ello, se debe de contar
con los técnicos pertinentes y, mediante reuniones, detallar cada
paso, conociendo los elementos involucrados, las medidas de
seguridad a tener en cuenta, y demás riesgos que pueden ir surgiendo,
entre otros temas. Ante cualquier incidencia, se deben detallar los
pasos para que se solvente los más rápido posible. Como es habitual,
se realizará un documento con los detalles, medidas preventivas y
riesgos a asumir en dicha fase.

- Organizar el proyecto y planificarlo: para terminar esta fase de


organización, será importante establecer qué herramientas se van a
utilizar para llevarlo a cabo. Además, se debe tener en cuenta la
planificación del proyecto y para ello se puede hacer uso de una
herramienta de planificación de proyecto. De esta forma, se diseñará
un documento funcional del sistema y un plan de ayuda para llevar a
cabo el proyecto.

• Fase 2 Desarrollo: en esta fase se puede crear el sistema informático


completo sobre papel. Se comenzará analizando la especificación funcional
para, de esta forma, ampliar el documento (mediante diseño top-down) hasta
el máximo nivel en el que se especifique la entrada-salida de datos,
modificaciones de los mismos, etc.

Una vez el sistema esté descrito mediante DFD, se puede crear el diseño
hardware del sistema: ordenadores, conexiones, distribución, etc.
Seguidamente, se pueden definir todos los elementos software que sean
necesarios: módulos a utilizar, permisos, configuraciones, etc.

Página 84 de 129
Módulo 10: Sistema de Gestión Empresarial

Estas subfases se pueden resumir en:


- Análisis detallado.
- Diseño físico del sistema.
- Diseño lógico del sistema.
- Revisión de previsiones.

• Fase 3 Implementación: en esta fase ya estará completamente definido el


sistema, por lo tanto, puede comenzarse su instalación.
En primer lugar, hay que adquirir el hardware necesario para tal fin y, a
continuación, comenzar a crear la red subyacente para configurar de forma
completa todo lo adquirido. Además, se puede instalar todo el software
relativo al sistema de gestión para configurarlo de forma adecuada y añadir
los módulos que sean necesarios para comenzar con las diferentes pruebas.
Esta fase debe documentarse de forma completa desde su inicio, asignando
al equipo de mantenimiento que después se va a encargar de la información
suficiente y detallada en el sistema. Se puede dividir en las siguientes
subfases:
- Adquisición del hardware.
- Desarrollo de software.
- Plan de pruebas.
- Documentación.

• Fase 4 Implantación: es el momento de incorporar el sistema gestor a la


empresa, asumiendo el control de todas las funciones especificadas en el
contrato y comprobar que todo es correcto.

Para realizar esta fase de implantación de forma correcta, se debe formar a


todos los usuarios para ofrecer soporte inicial y supervisar todo el
funcionamiento del sistema para adaptar los datos antiguos a las nuevas
situaciones. Finalmente, se debe comprobar que todo tiene un
funcionamiento correcto mediante una serie de pruebas que realizará el
cliente para, de esta manera, poder demostrar que el trabajo está terminado.

Se divide en las siguientes subfases:


- Plan de implantación.
- Implantación.
- Formación.
- Conversión y migración de datos.
- Test de aceptación.

Página 85 de 129
Módulo 10: Sistema de Gestión Empresarial

• Fase 5 Producción y soporte: el proyecto ha concluido su tarea, es decir, ha


finalizado cumpliendo sus expectativas iniciales en el tiempo estimado. Es en
las entrevistas finales cuando se procede a entregar todo el material
disponible al cliente, recopilando toda la información hasta ese momento.

A pesar de que esta es la última fase en el proceso, es a partir de este


momento cuando comienza un largo proceso de operación, mantenimiento y
soporte del sistema.

La operación y el soporte permiten asegurar que los procesos siguen


funcionando y que los usuarios están haciendo un buen uso de ellos. A través
del mantenimiento se asegura que las modificaciones que se realizan al
sistema sirvan para solventar algún error que haya podido surgir o porque
existan nuevas necesidades.

Se deben llevar a cabo estos cambios sin que afecte al resto del sistema.
Las funciones que se llevan a cabo en esta fase dependerán del tipo de
contrato:

a) Si no se encuentra contratado el mantenimiento y soporte, se darán


por finalizadas las funciones, llevando a cabo una auditoría del sistema
transcurridos unos meses tras la comprobación del funcionamiento
del mismo. En esta auditoría se deben especificar aquellos fallos que
se hayan detectado y hayan sido corregidos en este tiempo, además
de las diferentes modificaciones que se hayan producido. El objeto
principal es detectar la corrección del trabajo.
b) Si en el contrato se encuentra especificada la implementación de los
mecanismos de modificación y resolución de problemas, se deben
comprobar los errores que se hayan podido producir en este tiempo y
resolverlos en el menor plazo posible. Es importante conocer la
cantidad de errores producidos para saber cómo se está comportando
el sistema.

Se divide en las siguientes subfases:

- Operación normal.
- Soporte.
- Mantenimiento.
- Documentación al cliente.

Página 86 de 129
Módulo 10: Sistema de Gestión Empresarial

2.2. Tipo de empresa. Necesidades de la empresa

Una aplicación ERP es un software que ayuda a la gestión diaria de la empresa, desde
la planificación y control de las tareas a realizar, hasta los recursos disponibles en la
misma. Tiene el objetivo de conseguir que todos los datos importantes de la
compañía estén integrados en una misma herramienta, sin tener en cuenta el área a
la que pertenece la información.
Contar con un ERP como sistema de gestión empresarial facilita enormemente la
trazabilidad de las operaciones y, con ello, la resolución rápida de problemas. Todo
esto se ve reflejado en una respuesta rápida al cliente ante cualquier pregunta.
Es importante saber que el concepto de ERP va más allá del software, ya que debe
reflejar los procesos de una empresa y, cuanto más adaptable sea la herramienta,
mejor servicio se podrá dar a la clientela, ya que permitirá un funcionamiento más
óptimo de la empresa.

Adaptación del ERP a una empresa


Una de las principales tareas del análisis y diseño es saber detectar e implementar los
diferentes cambios en el sistema OpenERP para poder adaptarlo a la empresa actual.
La adaptación puede darse en tres ámbitos diferentes:

• Estableciendo nuevas vistas con información existente en la base de datos


(Informes).

• Modificando y creando nuevos informes adaptándolos a la empresa.

• Programando módulos completos que añadan todas las características


necesarias.

Página 87 de 129
Módulo 10: Sistema de Gestión Empresarial

2.3. Selección de los módulos del sistema ERP-CRM

Pasos para crear un módulo


Cuando se trabaja con módulos, es muy importante comprender qué es un módulo,
cuáles son los elementos que lo forman y cómo se crean.
Por tanto, se muestran a continuación los pasos para crear un módulo:
1. Dentro del directorio adons que se encuentra dentro de la instalación del
Server, se crea un nuevo directorio para el módulo: mimodulo.
2. A continuación, se añaden los ficheros obligatorios:
_init_.py
_terp_py
3. Ya es posible crear el fichero de definición del objeto mimodulo.py vacío.
4. Se añade el fichero mimodulo_view.xml, que va a contener los diferentes
datos para el sistema.
5. Una vez programado el contenido de los ficheros, se debe abrir una sesión
con el servidor, por lo que habrá que desplazarse hasta
Administración/Módulos para actualizar la lista de módulos.

Una vez que se detecte el módulo, ya se puede instalar. Tipos de fichero:


1. El fichero _init_.py:
Se utilizará para cargar en el sistema las definiciones de los objetos.
2. El fichero _terp_.py:
Define un diccionario anónimo con las propiedades ya definidas, que será
utilizado por el sistema para determinar aquellos ficheros XML que se
deben seguir tratando, junto con las propiedades correspondientes a cada
módulo y sus dependencias con los demás módulos del sistema.

Los valores que puede utilizar suelen ser:


• name. Indica el nombre del módulo. Es un campo obligatorio.
• autor. Nombre del autor.
• version. Número de la versión del módulo que se irá incrementando
de uno en uno.

Página 88 de 129
Módulo 10: Sistema de Gestión Empresarial

• description. Describe la función del módulo.


• website. Url correspondiente a la dirección del programador.
• depends. Lista que indica los módulos que deben estar instalados para
que este pueda funcionar.
• init_xml. Lista de ficheros XML que se van a utilizar cuando se lance el
servidor.
• update_xml. Lista los ficheros que se van a utilizar cuando se lance
una actualización del módulo.
• category. Descripción de la categoría y subcategoría del módulo.
• active. Corresponde a un valor booleano (True o False) que permite
determinar si un módulo se debe instalar mediante la creación de la
base de datos o no.
• installable. Determina si el módulo se puede instalar o no, mediante
los valores de True o False.
• demo_xml. Lista correspondiente a los ficheros XML con los datos de
prueba.
• license. Hace referencia a la licencia del módulo.

3. Fichero mimodulo.py:
Mediante este fichero se pueden determinar aquellos objetos nuevos,
junto con sus propiedades, en formato Python.
También se pueden utilizar herramientas tipo DIA para la creación de
diagramas de clases y la generación de código automática.

En OpenERP, todo lo que se encuentra almacenado en la base de datos son objetos y


hacen uso de un mecanismo de ORM (Mapeo de Objetos Relacionales), para mover
las tablas de objetos relacionales a la programación. Así, cuando se crea un objeto,
se crea también en este fichero, de forma automática, una tabla que se encuentra
asociada a los atributos que se hayan definido.

OpenERP utiliza una estructura jerárquica, permitiendo crear


un objeto en cada nivel.

Página 89 de 129
Módulo 10: Sistema de Gestión Empresarial

En el interior de un objeto, se deben utilizar, de forma obligatoria, una serie de


propiedades que permiten especificar los principales componentes del mismo, que
son:
• _name. Nombre correspondiente al objeto o de la tabla a crear.
• _columns. Campo obligatorio que va a contener la definición de los distintos
campos de la tabla.
• _constrain. Restricciones de los campos.
• _defaluts. Valores de los campos por defecto.
• _inherit. Objeto del que se hereda.
• _order. Campos que se pueden utilizar en las diferentes sentencias de
selección y lectura.
• _rec-name. Campo que se puede utilizar cuando se desea realizar alguna
búsqueda.

4. Fichero mimodulo_view.xml:
Este fichero permite determinar los distintos componentes OpenERP que
se deben crear para conseguir que el módulo se integre con el sistema. Un
determinado módulo está formado por vistas, gráficos, informes,
asistentes, flujos de trabajo, menús y acciones.
A continuación, se detallan algunos de ellos de forma más específica:
• Vista:
Es una representación gráfica del objeto en la parte del cliente. OpenERP
utiliza el paradigma MVC (Modelo Vista Controlador) para diferenciar los
datos de su representación. Mediante Python se ha definido la estructura de
los distintos datos y, en esta, se debe definir la estructura de visualización.
Se pueden diferenciar dos tipos de vistas:
- Tipo árbol: cuando se lista el contenido por filas.
- Tipo formulario: cuando se debe modificar e insertar datos.

• Menú:
Elemento que se va a utilizar para indicar, en la parte cliente, una determinada
acción, como pueden ser, abrir una determinada ventana, abrir informes,
entre otras.

Página 90 de 129
Módulo 10: Sistema de Gestión Empresarial

• Informe:
Recolección de datos en formato PDF o HTML.
• Gráfico:
Representación gráfica de un conjunto de datos.
• Asistente:
Conjunto de los distintos pasos secuenciales que se deben seguir a la hora de
configurar un módulo.
• Flujo de trabajo:
Definición dinámica de los datos: cómo se crean, cómo se modifican, etc.
Una vez creado un módulo, se necesitará, como mínimo, la definición de los menús,
además de las acciones de apertura de una vista, vistas de árbol y formulario. Sin ellas
será muy difícil instalar un módulo correctamente.

2.4. Tablas y vistas a adaptar


Una herramienta ERP hace uso del Modelo-Vista-Controlador para llevar a cabo la
gestión de datos. Cuando se separan los datos de la presentación, se puede conseguir
la independencia, pudiendo llevar a cabo la implementación de los distintos entornos
de acceso al servidor.
La estructura que se utiliza para almacenar la información es la misma que en las
bases de datos, es decir, las tablas. Es más, una herramienta ERP tiene como motor
una base de datos, ya que es la mejor manera de organizar, relacionar y almacenar
los datos con los que después se va a trabajar.
Las interfaces que se le presentan a los clientes mediante ficheros XML son
dinámicas, por lo que se pueden editar en cualquier momento. Si algún fichero
cambia, solo se volverá a cargar para actualizar las modificaciones oportunas.
Llegado el momento de diseñar los diferentes modelos de representación, se deben
determinar cómo se va a realizar la visualización por pantalla. Por tanto, es posible
diferenciar entre dos tipos de vistas principales, más otra de apoyo:

Página 91 de 129
Módulo 10: Sistema de Gestión Empresarial

• Vista formulario

Utilizada cuando se editan los datos, los campos se pueden distribuir a lo largo de
toda la visualización, utilizando una serie de reglas, como pueden ser:

- Cada campo debe tener su etiqueta con el nombre.


- Los campos van situados de izquierda a derecha y de arriba a abajo
dependiendo del orden en el que estén definidos.
- A cada pantalla la definen cuatro columnas y un número de filas
indeterminado. Cada campo va a utilizar, por defecto, dos columnas, una para
la etiqueta y la otra para el campo.
- Es posible utilizar una etiqueta especial para dividir una columna en tantas
como sean necesarias.

• Vista en árbol

Utilizadas en los listados de datos, ya que son bastante sencillas y disponen de menos
opciones.

• Vista de búsqueda

Sirve para complementar a la vista en árbol, ya que permite añadir un panel de


búsqueda y filtrado en su parte superior.

• Vista de gráfico

Es una nueva forma de vista para que los distintos formularios puedan mostrar un
gráfico que ha sido formado a partir de unos datos determinados.

Página 92 de 129
Módulo 10: Sistema de Gestión Empresarial

Definición de las vistas


Las vistas se definen en el fichero XML que se vaya a establecer en el fichero
_terp_.py, ya que posee una estructura especial que necesita, al menos, de tres
elementos para su correcta definición. Estos elementos pueden ser:

• Una acción para realizar una vista.

• Un menú que sirva para ejecutar la acción.

• Un conjunto de vistas, que van a estar asociadas a la acción.

Es conveniente comenzar por la acción utilizando la etiqueta <record


model=”ir.actions.act_windows”> para definirla.
Seguidamente, se puede definir el menú que tiene asociado, mediante la
etiqueta <menuitem>. Finalmente, se pueden crear tantas vistas como
etiquetas existan <record model=”ir.ui.view”>.

Dentro de la etiqueta de definición de vista (tree, form, serach o graph) se debe crear
la estructura adecuada para ser visualizada por el usuario. En el momento de
implementarla, es posible diferenciarla entre dos tipos de elementos: grupales (los
que no muestran datos) y de datos (los que organizan los datos).

• Grupales:

- <separator string=”Nombre a mostrar” colspan=”Número”>


Permite crear una división entre los diferentes campos mediante una línea y
un texto. El texto que se debe mostrar aparecerá en la propiedad string y el
número de columnas necesarias se definirán mediante colspan.

- <notebook colspan=”Número”>
Permite crear un control de las distintas pestañas. Como mínimo, se
dispondrá de una pestaña dentro, que se definirá con <page.

- <page string=””>
Se trata de una etiqueta que permite organizar en pestañas el contenido de
un notebook. Es posible crear tantas etiquetas como pestañas sean necesarias
y, dentro, se puede definir la visualización haciendo uso de otras etiquetas
específicas de agrupación, salvo notebook y page.

Página 93 de 129
Módulo 10: Sistema de Gestión Empresarial

- <group colspan=”Número” rowspan=”Número” expands=”yes”


col=”Número” string=”Cadena a mostrar”>
Permite agrupar distintos controles de datos en columnas de la siguiente
forma:

o Primero, el control se puede extender a través del número de


columnas que están especificadas en colspan y de filas con rowspan.

o Después, se puede dividir el espacio asignado en columnas (las que


estén especificadas en la propiedad col).

o Por último, el espacio que no se utilice, se puede distribuir entre el


resto, siempre y cuando la propiedad expand tenga como valor, yes.

• Elementos de datos:

- <newline />
Permite crear un salto de línea en la visualización, de tal forma que obliga al
siguiente control a pasar a la siguiente fila.

- <label string=”Texto” />


Permite añadir una etiqueta con su texto correspondiente.

- <field>
Define un campo que tiene que estar definido en el modelo de datos
obligatoriamente. Las propiedades disponibles son:

o name=””: corresponde al campo que está definido en el fichero


Python en una clase correspondiente al objeto que se vaya a utilizar
en la definición de la vista.

o select=”1”: cuando se desee que el campo actual sea un campo que


se utilice en búsquedas, por lo que debe tener un índice.

o colspan=”Numero”: hace referencia a la cantidad de columnas que se


pueden utilizar por parte del campo; por defecto son dos con la
etiqueta incluida.

Página 94 de 129
Módulo 10: Sistema de Gestión Empresarial

o readonly=”1”: si se quiere que el campo sea de solo lectura.

o required=”1”: es un campo obligatorio incluso si no está así definido


en el modelo de datos inicial.

o nolabel=”1”: no imprime la etiqueta asociada al nombre del campo.

o invisible=”True”: oculta el campo y su correspondiente etiqueta.

o string=”Texto”: es el valor que se va a asignar a la etiqueta en caso de


que no se utilice el nombre del campo.

o onchange=”funcion”: nombre y parámetros de la función que hay que


llamar cuando cambia el valor del campo.

o widget=”tipo”: permite cambiar, por otro, el control por defecto que


se va a visualizar.

Las vistas gráficas y de búsqueda


La vista gráfica permite crear un gráfico de barras o circular partiendo de los campos
que se determinen. En este tipo de vista se pueden realizar agrupaciones sobre los
campos para, de esta manera, realizar diferentes operaciones simples sobre los
grupos, como pueden ser las sumas, multiplicaciones, etc.
La vista gráfica es de tipo árbol y representa el panel de búsqueda en la parte
superior.
Las vistas de búsqueda cuentan con la posibilidad de añadirse a las de árbol y gráficas
para, de esta forma, realizar una serie de operaciones complejas de filtrado. Se
incorporarán aquellos campos necesarios de forma normal mediante el uso de una
etiqueta <field, teniendo la posibilidad de poderlos agrupar con la etiqueta <group.
Para añadir botones de agrupación, es posible utilizar una entrada, <filter, en la que
se define, mediante la propiedad context, el campo que se desee agrupar.

Herencia en las vistas


Al definir las vistas de aquellos objetos heredados pueden plantearse varias
posibilidades.

Página 95 de 129
Módulo 10: Sistema de Gestión Empresarial

En primer lugar, la posibilidad de crear una nueva vista completa desde cero,
referenciando al nuevo modelo, o volver a utilizar la vista que ha creado el padre y
volver a definirla.
Cuando se redefine una vista, hay que tener en cuenta que el objeto que se acaba de
crear ha extendido la tabla del padre para conseguir añadir campos, es decir, no se
ha creado una nueva.
Una vez determinados los campos que se van a utilizar, es preciso decirle a la vista
que utilice la que está definida por el padre. Esto debe hacerse cuando sea posible
añadir en la definición de la vista el campo <field name=”inherit_id”
ref=”id_vista_padre”/>. Así, el sistema va a interpretar la vista a la que se referencie,
incorporándola a la definición automáticamente.
Con esta incorporación de la vista padre se consigue que todos los campos existentes
se añadan a la nueva vista para que, a continuación, se realicen las modificaciones
oportunas para agregar nuevos campos.
A la hora de añadir nuevos campos a la vista heredada, se debe seguir una sintaxis
especial que se muestra a continuación:

• La etiqueta <form cambia por <data.

• Si se desea eliminar algún campo, se debe añadir una etiqueta:

<field name=”nombre_campo_eliminar_de_la_vista_padre”
position=”replace”/>

• Si lo que se pretende es reemplazar un campo por otro, se añadirá la etiqueta


<field name=”nuevo campo”>.

• Para definir los campos se debe seleccionar un campo base que exista
previamente a través de <field para añadir dentro tantas etiquetas como
campos nuevos se deseen crear.

• En los casos en los que sea más complicado determinar un campo porque
exista varias veces, se utilizará un elemento <xpath de XML para realizar una
búsqueda sobre el árbol creado y realizar en su interior todas las
modificaciones correspondientes.

Página 96 de 129
Módulo 10: Sistema de Gestión Empresarial

2.5. Consultas necesarias para obtener información


Este sistema ERP, al estar basado en motores de Bases de datos, presenta la misma
dinámica de trabajo que un sistema gestor de Bases de Datos.
Una vez almacenada la información en las tablas, una de las ventajas que presenta
este sistema es que, al estar la información relacionada entre sí, es posible consultar
datos referidos a tablas relacionadas. De esta forma, se sacará más jugo a la
información almacenada, hasta tal punto de conocer algunos puntos importantes y
ponerlos en práctica en el futuro.
Este aspecto es interesante para el tema de campañas de marketing y para conocer
el área de cliente al que va dirigido.

2.6. Creación de formularios personalizados


La interfaz gráfica está destinada a visualizar los datos de una manera clara y atractiva
para que el usuario final pueda ver la información de una forma más atractiva y
dinámica. Además, la utilización de los formularios permite que la entrada de datos
se haga de una forma más atractiva y sencilla para el usuario.
Cada herramienta ERP tiene sus formas de crear formularios y de personalizarlos,
pero todas tienen en común la facilidad para realizar dicha acción. Normalmente se
cuenta con un asistente que ayudará a diseñar el formulario y todos los campos que
necesite dicho formulario, e incluso a insertar un subformulario dentro de otro.
Dicha herramienta de ayuda para crear formularios estará diseñada para que, de una
forma gráfica e intuitiva, el usuario pueda personalizarlos fácilmente y, además,
ejecutarlos.

Página 97 de 129
Módulo 10: Sistema de Gestión Empresarial

2.7. Creación de informes personalizados


Hacen referencia a una serie de nuevas vistas que se han creado para almacenar la
información correspondiente a la base de datos, ofreciendo la posibilidad de una
gestión más cómoda y práctica.
Estos informes no incorporan estructuras novedosas, solo utilizan las existentes,
aumentando de esta forma su eficiencia.
A continuación, se establecen los pasos que se deben seguir para crear una nueva
vista:
1. Configurar el sistema: se debe lanzar el asistente de instalación y configuración a
través de Administración/ Configuración/Iniciar la configuración.
Una vez se muestre el asistente, se selecciona la opción de Informes avanzados. A
continuación, se selecciona Instalar para comenzar con el proceso. Habrá que saltar
todas las ventanas que aparezcan, excepto la de Configura las herramientas de
informes.
En esta ventana se deben seleccionar las opciones de Constructor de consultas y la
de Diseñador de informes OpenOffice y, a continuación, la opción de Configurar.
2. Una vez llegados a este punto, el sistema ya está configurado, de tal forma que
se puede crear una nueva vista (informe). Para ello, se selecciona la opción de
Administración / Personalización / Informes / Informes personalizados.
Es importante seleccionar el objeto base del sistema que se va a utilizar en la pestaña
de Configuración general. Seguidamente, se pueden definir los campos que sean
obligatorios, para determinar los datos que sean básicos, mediante la pestaña de
Parámetros de la vista.
3. Es posible fijar aquellos campos que se van a utilizar en la pestaña Campos a
mostrar, estableciendo para el campo secuencia un determinado valor numérico.
4. Para finalizar, existe la posibilidad de establecer filtros sobre alguno de los campos
seleccionados en la pestaña Filtros en campos.
5. En este punto ya es posible finalizar el diseño del informe, por lo que se puede
seleccionar la opción de Guardar.
Quedarían por comentar todos aquellos aspectos importantes que se deben señalar.
Toda la información se va a almacenar en una base de datos relacional, por lo que un
informe no es más que una consulta SELECT que se realiza a dicha base de datos para
mostrar un resultado determinado.
6. Para lanzar la vista, se hará mediante la pestaña Configuración general a través del
botón Abrir informe.

Página 98 de 129
Módulo 10: Sistema de Gestión Empresarial

Tablero personalizado de informes


Los informes personalizados cuentan con una forma bastante organizada de manejar
un conjunto de datos. De la misma forma, los tableros pueden organizar diferentes
informes para conseguir mejorar la productividad.
Para poder explicar este apartado y tras haber creado varios tableros de forma
estándar, ya se pueden definir los que se han creado en este caso.

• Para crear un tablero nuevo, se seleccionará


Administración/Personalización/Informes/Definición de tablero. De esta
forma, cada entrada se va a asociar a una acción diferente (informe) y se
establecerán las distintas características de presentación. Es posible tener tantos
componentes como sean necesarios.
• Una vez definido el tablero, se puede crear una entrada en el menú para poder
acceder a él.
• Cuando se lance el asistente desde Crear menú, preguntará sobre el nombre del
objeto padre para posicionar la nueva entrada, junto con el nombre a mostrar.

Creación de informes impresos


OpenERP cuenta con una serie de mecanismos que se pueden utilizar para crear
informes imprimibles, haciendo uso de la información almacenada en la base de
datos. Entre los más conocidos es posible señalar JasperReports, motor Aeroo,
programación directa de RML y OpenOffice.
En este caso, se va a utilizar OpenOffice para crear informes, subirlos al servidor, etc.
1. En primer lugar, se instala OpenOffice y se configura para la creación de
informes. Comenzando desde la base de datos que hay instalada, se abre
OpenOffice Writer y se selecciona la opción de Herramientas/Gestión de
extensiones.
Haciendo uso del botón Añadir, se puede buscar el fichero que se guardó en
la configuración inicial del sistema. Esta acción permitirá cargar y configurar
OpenOffice a la hora de crear informes. Es conveniente cerrar la aplicación y
reiniciar para que vayan apareciendo los nuevos elementos.

2. Para crear los informes, se deben configurar antes las opciones de conexión
con el servidor, teniendo en cuenta que solo el administrador tendrá permisos
para subir informes utilizando este mecanismo.

Página 99 de 129
Módulo 10: Sistema de Gestión Empresarial

3. Para la creación de los informes existen dos maneras:

• Partir desde cero y crearlo desde el principio.

• Crear un informe partiendo de las modificaciones que se realicen a


alguno ya creado. En este caso se utilizará la opción de OpenERP
Report Designer/Modify Existing Report para obtener un listado de
todos los informes, seleccionar el deseado y, a continuación, realizar
las modificaciones pertinentes.

Una vez finalizada la modificación, hay que grabarlo en el disco con un


nombre y se enviará al servidor mediante OpenERP Report Designer/
Send to the server.

4. Para este ejemplo, se seleccionará la opción de crear un informe nuevo. Se


busca la opción OpenERP Report Designer/Open a new report para que
muestre todos los módulos que se pueden utilizar como base para realizar el
documento.

5. Después, es preciso crear el conjunto de elementos que se deseen mostrar,


por lo que se seleccionará una lista con todos los campos disponibles. Para
acceder a las listas, se hará a través de la opción del menú OpenERP Report
Designer/Add a loop. De todas las listas que aparecen, se seleccionará la que
más interese en cada momento.

6. Una vez seleccionado el conjunto de elementos que se deseen mostrar, se


puede crear la estructura del informe, escribiendo el texto correspondiente,
insertando imágenes, etc.
En un campo de la base de datos hay que añadir el botón correspondiente al
menú OpenERP Report Designer/Add a field.

7. Una vez diseñado el informe, habrá que grabarlo en disco y asignarle un


nombre.

8. Por último, hay que subirlo al servidor mediante OpenERP Report Designer
/ Send to the server asignando el nombre correspondiente al informe, junto
con el tipo de informe que se va a generar.

Página 100 de 129


Módulo 10: Sistema de Gestión Empresarial

9. Ya es posible acceder al informe que aparecerá por defecto en la pestaña


de la parte lateral derecha del objeto que se ha seleccionado.
Cada vez que se seleccione el informe, se descargará el fichero que se ha
generado, accediendo a la primera página.
Se comprobará que todo es correcto accediendo al servidor en el elemento
Administración / Personalización / Objetos de bajo nivel / Acciones /
Informes.

2.8. Creación de cuadros de mando personalizados


Al ser una herramienta con una base en código fuente libre, está generalizada a
cualquier tipo de empresa, ya que cubre las necesidades empresariales más
generales. Además de esta apariencia estándar, se pueden desarrollar a partir de ella,
una interfaz y una base de datos más acorde a las necesidades específicas de cada
corporación, y, además, que el software se adapte lo máximo posible a la forma de
actuar de cada empresa. De esta forma, habrá un software realizado a nuestra
medida con muy poco desarrollo. Esta es una de las ventajas que proporciona esta
tecnología y, por esta razón, posee un gran auge a la hora de implantarla en el ámbito
empresarial.
Para llevar a cabo este proceso de adaptación del código a la empresa, será preciso
contactar con personal experto del área de la informática. Otra de las ventajas de
este software a medida es la puesta en marcha, ya que el periodo de implantación en
la empresa no tendría coste alguno, ya que está adaptado 100% al protocolo de
actuación laboral.

Página 101 de 129


Módulo 10: Sistema de Gestión Empresarial

3. Desarrollo de componentes

En este tema se tratará el lenguaje Phyton, en la versión 2.7. Se escoge este lenguaje
porque OpenERP, sistema que se ha visto en la Unidad Formativa anterior, está
programado bajo Phyton, por lo que es imprescindible el conocimiento de este
lenguaje de programación, así como poder programar diferentes módulos para el
sistema en cuestión.

El proceso se divide en dos partes:


1. La primera parte se centra en el lenguaje que se va a utilizar, aunque no se
entrará en detalles más específicos como pueden ser el acceso a la red por
parte de Python, el tratamiento sobre los datos HTML y XML, etc. Para ello,
se recomienda algún libro específico sobre el lenguaje en cuestión.

2. La segunda parte tratará sobre la creación de módulos propios que se pueden


integrar en un sistema Open ERP funcional.

Se escoge la versión 2.7 porque OpernERP utiliza esta versión en su interior.


En una de las partes del tema se tratará sobre la implementación de los diferentes
módulos para OpenERP, comprobando la estructura de ficheros necesarios, su forma
de implementación y su correspondiente instalación en el servidor.
Se verán una serie de ejemplos sobre distintos módulos, para comprobar aspectos
determinados sobre la programación. Antes de comenzar a programar los módulos,
se realizará el análisis y diseño correspondiente.

Hay que analizar el módulo para definir el diseño de los datos, su


almacenamiento, las distintas relaciones, los posibles procedimientos, etc.
Para este análisis, se van a utilizar las técnicas y estándares necesarios para
asegurarse de qué es lo que se debe hacer y cómo hacerlo.

Página 102 de 129


Módulo 10: Sistema de Gestión Empresarial

3.1. Lenguaje proporcionado por los sistemas ERP-CRM.


Características y sintaxis del lenguaje. Declaración de datos.
Estructuras de programación. Sentencias del lenguaje

Lenguaje de programación Python


Este lenguaje de programación surge alrededor de los años 90,
con la intención de poder programar en los distintos servidores
web de forma limpia y multiplataforma.
Este lenguaje, en principio, pretendía ser interpretado y orientado
a objetos, añadiendo los paradigmas de la programación
tradicional.

Comenzando con Python


Como ya se ha indicado, Python es un lenguaje que puede ser interpretado
multiplataforma, convirtiendo su código fuente en objeto cuando se ejecuta por
primera vez. De esta forma, consigue unir lo mejor de ambos mundos, utilizando la
flexibilidad de los lenguajes script, con la velocidad de un lenguaje ya compilado.
Existe la opción de no declarar las variables que se van a utilizar, aunque sí que es
obligatorio asignarle algún valor para inicializarlas antes de usarlas. Como no se
determina el tipo que se puede almacenar en una variable, esta puede adoptar un
valor cualquiera para cada momento, de tal forma que se determina cuándo se está
ejecutando según el contenido que tenga. Las variables no se pueden convertir de un
tipo a otro de forma automática, ya que, para tal fin, necesitan realizar un casting.
Al ser un lenguaje orientado a objetos, cuenta con la opción de definir todo como un
objeto, ofreciendo la posibilidad de crear diferentes clases y objetos e implementar
la herencia sin límite de acceso a las propiedades o funciones definidas.
En el lenguaje Python no existen mecanismos para definir bloques explícitos, sino que
se van creando con la implementación del propio código. Los bloques comienzan con
(:) y todo lo que llevan dentro deben contener una serie de espacios en blanco como
sangrado. Es muy importante la cantidad de espacios en blanco que se utilicen, ya
que deben coincidir en todas las líneas que compongan el bloque. En caso de no
coincidir, dará error. Es un fallo bastante común el confundir el tabulador con el
espacio, ya que el lenguaje lo interpreta de diferente forma.

Página 103 de 129


Módulo 10: Sistema de Gestión Empresarial

PYTHON JAVA

edad=1 edad=1
while edad<18: while (edad<18){
edad+=1 edad++
if (edad%2)==0: if (edad%2==0){
continue continue
print “Es impar,” }
print “Adios” System.out.println(“Es impar”)
}
System.out.println(“Adios”)

Es importante señalar que existen distintas implementaciones para Python


dependiendo del lenguaje base que se utilice:

• CPython: está escrito en C.

• JPython: está escrito en Java.

• IronPython: está escrito en C#.

De todas las anteriores, la más utilizada es la versión de C, ya que es la que


ofrece más estabilidad y madurez.

Tipos básicos

• Representación numérica

Se puede utilizar mediante enteros simples (3) y enteros largos (3L), siendo la
diferencia entre ellos la cantidad de valores que pueden almacenar. También se
puede utilizar la notación tradicional en octal (027) y hexadecimal (0x3F), decimales
o en coma flotante (23.45) y en números complejos (2+7i). Lo más importante es
saber cuál es el valor máximo según el tipo que se utilice y la plataforma en la que se
ejecute.

Página 104 de 129


Módulo 10: Sistema de Gestión Empresarial

• Coma flotante

Se usa para la representación de valores decimales, teniendo en cuenta la menor


precisión que garantiza Python, expresada en el estándar IEEE 754, que determina
que los valores deben estar comprendidos entre ±2.22*10-308 y ±1.79*10308 .
Para aquellos casos en los que sea necesaria una mayor precisión, es recomendable
utilizar valores en decimal. En este caso, es un objeto específico de Python, por lo que
se debe importar. Este ofrece una precisión de hasta veintiocho decimales. Los
números decimales también se pueden escribir mediante notación científica. Los
números complejos, por su parte, se dividen en dos partes, la real y la imaginaria, y
también pueden operar entre ellos.

• Operadores numéricos básicos

Entre los operadores básicos se pueden encontrar:

suma (+), resta (-), multiplicación (*), división (/), división entera (//),
exponenciación (**) y módulo (%).

La división y la división entera no son diferentes, siempre y cuando los dos operandos
sean enteros.
Para el tratamiento de los bits se pueden utilizar los siguientes operadores:

Operación and (&), operación or (|), operación xor (ˆ), operación not (~),
desplazamiento a la izquierda (<<) y desplazamiento a la derecha (>>)

NOTA
Como ya se ha indicado, todos los elementos para Python son objetos, así que
los tipos numéricos también lo son.
Los números, además, cuentan con un conjunto de funciones que ofrecen el
acceso a diferentes funciones matemáticas avanzadas, como pueden ser, entre
otras:
• La raíz cuadrada (sqrt).
• Logaritmos (log10).

Página 105 de 129


Módulo 10: Sistema de Gestión Empresarial

Tipo Booleano
Es el más conveniente cuando se trabaja con expresiones condicionales. Solo permite
almacenar los valores de True o False. El tipo booleano define una serie de operando,
que pueden ser:

• Comparación y → (and)
• Comparación o → (or)
• Negación de una expresión → (not)
• Igualdad → (==)
• Desigualdad → (!=)
• Mayor → (>)
• Mayor igual → (>=)
• Menor → (<)
• Menor igual → (<=)

Tipo cadena
Es posible representar las cadenas mediante comillas simples o comillas dobles,
nunca combinando las dos formas a la vez.
Mediante la barra invertida (\) puede introducir una serie de valores especiales, como
pueden ser, entre otros:

• \n → Para representar el carácter de una nueva línea.


• \t → Para tabular.
• \r → Representa el retroceso de carro.

Al igual que en casos anteriores, las cadenas también son objetos, de tal forma que
permiten incorporar una serie de funciones bastante útiles, como pueden ser, entre
otras:

• capitalize() → Devuelve una cadena con la primera letra mayúscula.

• center (num) → Permite centrar una cadena según el número de caracteres


que se le pasen por parámetro, haciendo uso de los caracteres en blanco.

• ljust() y rjust() → Para justificar tanto a izquierda como a derecha.

• count (subcadena) → Devuelve el número de veces que aparece la cadena


pasada por parámetro.

Página 106 de 129


Módulo 10: Sistema de Gestión Empresarial

• find (subcadena) → Devuelve la primera posición en la que aparece la


cadena pasada por parámetro.

• upper() → Para convertir a mayúsculas.

• strip () → Para eliminar los espacios en blanco.

• split (carácter) → Permite dividir una cadena en distintas partes según el


separador que se pase por parámetro.

• splitlines() → Permite dividir en distintas líneas.

• len (cadena) → Devuelve la longitud de un determinado objeto.

• join (cadena) → Permite unificar dos cadenas.

• format (valores) → Permite formatear la cadena de entrada en función de los


valores pasados por parámetro.

Diccionario o tablas hash


Hacen referencia a un conjunto de estructuras que almacenan información mediante
clave en lugar de por posición. Python los incluye como tipo base y no son muy
complejas de utilizar.
Para definir un diccionario es posible realizarlo mediante llaves ({}), separando los
registros por coma (,) y la clave de su correspondiente valor mediante los dos puntos
(:).
Una vez creado, se puede tener acceso a cada uno de sus elementos de la siguiente
forma:

• dval[“clve”] → donde el valor que se puede utilizar dentro va a ser el nombre


o el valor de la clave que se utilice. No puede ser su posición.

Las claves que más se utilizan son de tipo básico numérico o bien cadenas.
En caso de que sea necesario, existe la opción de extender el diccionario en cualquier
momento, simplemente utilizando la notación de los corchetes y una clave que no se
haya utilizado hasta el momento.

Página 107 de 129


Módulo 10: Sistema de Gestión Empresarial

Para eliminar un registro, simplemente se usará la función del junto con el registro
que se quiera borrar, (del dVal[“clave”]). También se puede utilizar la función clear()
para el vaciado completo.
Listas
Las listas utilizadas en Python se refieren a las estructuras dinámicas que permiten
modificar su número de elementos. Se pueden definir de la siguiente forma:
Lista1 = [“valor1”, 2, 2+4i]
Cuando se necesite realizar alguna modificación sobre la tabla, se comenzará siempre
por el valor de índice en 0.
En Python, los índices correspondientes a las listas pueden ser positivos o negativos
si se empieza desde el final, donde Lista1[-1] correspondería a la última, Lista1[-2] a
la penúltima y así sucesivamente.
Conseguir recorrer la lista por sus elementos de forma consecutiva no es complicado,
basta con indicar tanto el índice inicial como el final y separarlos por los dos puntos
(:).
Se pueden distinguir dos operadores diferentes para las listas, de la misma forma que
en los diccionarios:

• Operador concatenación (+).

• Operador de repetición (*).

Para aumentar los componentes de una lista:


• append (valor)→ añade el valor pasado por parámetro a la tabla.

• Insert (posición, valor)→ inserta el valor pasado por parámetro a la


posición que se le indica, desplazando los demás datos.

• extends(iterable)→ concatena la lista actual a la que se le pasa por


parámetro, originando una nueva lista con todos los valores.

Para disminuir los componentes de una lista:


• pop(valor)→ devuelve el último elemento de la lista.

• remove(valor)→ Elimina el primer elemento que encuentre y tenga el


mismo valor que la variable que se le pasa por parámetro. En caso de
que no exista, devolverá un error.

Página 108 de 129


Módulo 10: Sistema de Gestión Empresarial

Es importante el orden que puede tener una determinada lista, desde su posición
inicial hasta la final. Existen una serie de mecanismos que ayudan a buscar
determinados elementos en una lista, como pueden ser, entre otros:

• index(valor)→ Devuelve la posición en la que se encuentra en la lista el valor


que se pasa por parámetro.

• in→ Devuelve si algún elemento se encuentra en alguna posición, como, por


ejemplo, (“a” in Lista1).

Para finalizar, una función bastante importante en las listas, como es el mapeo,
consigue aplicar una determinada función a cada elemento de la lista bajo la
siguiente sentencia:
[operación for variable in lista condición_opcional]

Tuplas
Las tuplas son muy parecidas a las tablas, tanto en el tamaño como en su contenido.
Aunque, en el caso de las tuplas, actúan como listas que no se pueden modificar, por
lo que son bastante más ligeras que las listas e incluso más eficientes.

Las tuplas se pueden definir de la siguiente manera:


(Tupla1 = (“valor1”, 2, 2+4j))

Para poder acceder a algún elemento de la tupla, se hará de la misma forma que en
las listas:
Tupla1[2]

Aunque, en este caso, no es posible realizar ninguna asignación como Tupla1[2]=3.

Otra característica importante de las tuplas es que cuentan con la posibilidad de


utilizar los diferentes índices para seleccionar algún elemento determinado o incluso
un rango de valores.

Página 109 de 129


Módulo 10: Sistema de Gestión Empresarial

Como las tuplas son objetos fijos, no cuentan con métodos que le permitan modificar
el tamaño de las mismas, salvo el método index(valor), que devuelve la posición del
valor que corresponda con el que se pasa por parámetro.
Las listas y las tuplas, al ser tan parecidas en su funcionamiento, tienen la posibilidad
de poder crear unas a partir de otras.

Variables
Las variables en Python, al igual que en JavaScript, no necesitan ser definidas para
su utilización. Cuando se tenga que hacer uso de una nueva variable, solo habrá que
asignar el valor deseado y, a partir de ese momento, ya estará accesible.
Se pueden diferenciar dos tipos de variables, dependiendo del ámbito en el que
vayan a estar visibles:
• Globales: tienen un determinado valor a lo largo de todo el programa, para
las distintas funciones y clases definidas por el usuario.

• Locales: solo tienen sentido dentro del bloque en el que se inicialicen, como,
por ejemplo, dentro de una determinada función.
Como ya se ha indicado anteriormente, no es posible realizar la asignación en línea
tanto para lenguajes tipo C o Java, pero sí es posible hacer algo similar mediante las
tuplas. Las tuplas sí se pueden asignar entre ellas, de tal forma que es posible tener
en una parte una asignación de un número de elementos y, en la otra, otra asignación
diferente, obteniendo como resultado que cada elemento se asigne con un valor
correspondiente del otro lado.
A modo de ejemplo, quedaría de la siguiente forma:
((x, y, z)=(1, ”ABC”, True)), obteniendo, por tanto que:
x vale 1, y vale “ABC”, z vale True

Impresión por pantalla


Para imprimir por pantalla se utiliza una variable denominada cadena de formato. La
función que se utiliza para mostrar por pantalla es la función print, a la que se le pasa
una cadena que determinará la forma en la que se desean imprimir las variables,
especificando su posición, tipo y formato, con unos caracteres de formato y las
distintas variables a utilizar.

Página 110 de 129


Módulo 10: Sistema de Gestión Empresarial

La función print, dentro de la impresión, tiene una serie de características:

• Si se separan los valores por comas (,) se imprime, de forma automática, un


espacio entre ellos.
• Cuando se utiliza el operador de concatenación (+), será necesario añadir los
espacios en el lugar necesario.
• Habrá que convertir a cadena, mediante la función str(), aquellas variables
que no sean de este tipo.

Control de flujo
No se dispone de ningún elemento para poder indicar la finalización de un bloque,
por lo que se establece el contenido del mismo mediante el sangrado, indicando el
mismo número de espacios a todas las líneas que formen parte de él.
De esta forma, existen distintos niveles de sangrado dependiendo de la cantidad de
bloques existentes:

• Condicionales: su construcción y funcionamiento se puede representar de la


siguiente manera:

if num=1: #comprobamos los dos puntos e iniciamos el bloque


print “uno” #sangrado que diferencia la parte que cumple la condición
else: #para los demás casos, sangrado igual que el if
print “Distinto de uno” #sangrado para la parte falsa

if num=1: #No hay estructuras switch case


print “uno”
elif num==0:
print “Cero”
else:
print “Distinto de uno y de cero”

Página 111 de 129


Módulo 10: Sistema de Gestión Empresarial

Mediante la cláusula if, se pueden realizar un conjunto de sentencias en función de


una determinada condición.

- La variante más simple que se presenta no cuenta con la parte del else y
ejecuta todas las líneas que cumplan una condición.
- Otra de las formas en las que puede aparecer es con las dos partes (if-else),
ejecutando la parte del if en caso de que la condición sea verdadera y, para
los demás casos, ejecutará la parte del else.
- Otro caso que se debe señalar es que este lenguaje no cuenta con la
tradicional sentencia switch o case. Por tanto, incorpora una estructura:
o elif <condicion>
o Se puede añadir a la condición if y else diferenciando los casos que
sean necesarios.

Es preciso señalar también que, al igual que muchos otros lenguajes, Python puede
utilizar estructuras parecidas al operador condicional (?:). A continuación, aparece un
ejemplo en el que se debe mostrar por pantalla “cero”, si la variable tiene ese valor
o “Distinto de cero”, si tiene cualquier otro valor.

print “cero” if (valor==0) else “Distinto de cero”

• Bucle for

Cuando hay que recorrer un objeto repetitivo (listas, tuplas, etc.) se puede hacer uso
de la estructura for, cuya sintaxis es la siguiente:
for varInicio in Objrepetitivo
El bucle debe recorrer cada uno de los componentes que pertenezcan a la lista,
tomando un valor correspondiente en cada iteración.
Por ejemplo, si se disponen de cinco valores, se mostrarán aquellos que sean pares.

print “----------bucle for----------”


tvalor=(1,2,3,4,5)
for ele un tvalor:
if ele%2==0: print srt(ele) + ”el elemento es par”
for ele in range(5,25):
print “El valor es: ”,ele

Página 112 de 129


Módulo 10: Sistema de Gestión Empresarial

• Bucle while

Python solo puede utilizar el bucle while <condición>. No puede hacer uso de la otra
opción de la estructura do- while.

Bucle 1 Bucle 2

valor1=0; valor2=””
while valor<20: while True:
print “Valor: ”, valor1 valor2=raw_input(“ADIOS>”)
valor1+=2 if valor2 == ”adios”:
print “FIN” break
print valor2

El primer bucle va a estar repitiéndose hasta que valor1 tome el valor de 15. Una vez
que su valor sea 20, ya no se va a repetir más. En cada iteración que se produzca, irá
aumentando la variable de dos en dos, mostrando solo aquellos valores que sean
pares.
El segundo bloque utilizará la palabra break para salir del bucle, una vez que el
usuario escriba la palabra ADIOS.

Programación orientada a objetos


El lenguaje Python, además de ser un lenguaje estructurado, también es un lenguaje
orientado a objetos, por lo que utiliza todas las ventajas de este tipo de
programación.
A la hora de definir una clase, utiliza la siguiente sintaxis:
class nombre_clase:
Dentro de la clase, se debe poner la información con su correspondiente sangrado.

Página 113 de 129


Módulo 10: Sistema de Gestión Empresarial

En el siguiente ejemplo se declara una clase aula, con dos métodos principales, que
van a ser: getTipo() y setTipo(), y que se van a utilizar para establecer los
correspondientes tipos declarados en el constructor.

class aula: #primer parámetro siempre self en todos


def_init_(self, tipo): #constructor de la clase
self.tipo=tipo #propiedad pública
def getTipo(self): #método getter
return self.tipo
def setTipo(self, tipo): #método setter
self.tipo=tipo

Se dispone de una serie de métodos ya implementados que es posible utilizar en las


clases en cualquier momento del programa. A continuación, se indican algunos de
ellos:

• _init_(self, args): constructor.

• _del_(self): destructor.

• _deltiem_, _getitem_, _setitem_: se implementan para ofrecer a la clase de


la misma funcionalidad del diccionario.

• _str_(self): para realizar una representación en cadena de la clase.

• _cmp_(self, otro): compara dos cadenas, devolviendo:


- Si el primer elemento es menor, el valor de -1.
- Si son iguales, devuelve 0.
- Si el segundo elemento es menor, devuelve 1.

• _len_(self): utilizado con la sentencia len(ObjetoClase). Determina la longitud


de la clase.

Página 114 de 129


Módulo 10: Sistema de Gestión Empresarial

En la POO, se puede determinar si dos objetos son iguales mediante los operadores:

• is → Determina si dos objetos son iguales o no en la memoria.

• igualdad (==) → Va a establecer cuándo dos objetos son iguales (mismo


valor). Para ello, utiliza el método _cmp_ ya implementado en la clase.

Objetos, campos y métodos


Como ya se ha indicado en el desarrollo de esta Unidad Formativa, en OpenERP todo
son objetos. Cada tipo de recurso puede tener un objeto diferente con todos sus
datos correspondientes para poder acceder a todos los elementos del tipo.

Se pueden transformar todas las tablas en objetos mediante la utilización de un


mecanismo de ORM (Mapeado de objetos relacionales) que puede hacer de puente
entre la estructura física de la base de datos y los objetos del sistema.
Los objetos del sistema se pueden modelar mediante la definición estática de Python
para el comportamiento y sus datos, además de una definición SQL del
almacenamiento en la correspondiente Base de Datos.
Cuando se crea un objeto nuevo, es conveniente implementar una clase que herede
del objeto osv.osv. De esta forma, se pueden añadir una serie de elementos para que
reconozcan el objeto nuevo.
Al definir un objeto, se pueden utilizar un conjunto de propiedades ya predefinidas
que comienzan siempre por el carácter de subrayado, entre las que se distinguen:

• _auto: su valor por defecto es True y permite especificar si la tabla se va a


crear de forma automática o no.

• _columns: hace referencia a un diccionario de datos obligatorio que va a


determinar los campos de la tabla a crear.

Página 115 de 129


Módulo 10: Sistema de Gestión Empresarial

• _constraints: determina las diferentes restricciones de los campos.


• _sql_constraints: determina las diferentes restricciones de los campos a nivel
SQL.
• _defaults: corresponde a los valores de los campos por defecto.
• _inherit: objeto principal del que va a heredar el que se defina.
• _inherits: diccionario que dispone de una serie de objetos de los que heredar
el que se está definiendo. No puede ser utilizado a la vez que el anterior.
• _log-access: cuando vale True, permite añadir a la tabla cuatro campos
diferentes que determinan quién, cuándo se creó el registro y cuándo ha sido
modificado por última vez.
• _name: indica el nombre del objeto y es un valor obligatorio.
• _order: orden de los diferentes campos que se van a utilizar en las
operaciones de lectura y búsqueda.
• _rec-name: nombre correspondiente al campo que se puede utilizar en las
operaciones de búsqueda. Por defecto, su valor es name.
• _sequence: nombre de la secuencia SQL que puede utilizar la tabla a la hora
de crear los distintos identificadores.
• _table: nombre de la tabla creada por el usuario.

Herencia
Cualquier sistema orientado a objetos hace uso de la herencia. En este apartado, se
define la herencia basándose en OpenERP y en los objetos correspondientes del
sistema. Por tanto, es posible diferenciar entre tres tipos diferentes de herencia que
se van a basar en los valores de las propiedades _name, _inherit e _inherits.

• Herencia por extensión

Permite añadir atributos a un objeto que ya existe, por tanto, no necesita crear
ninguno nuevo. Se utiliza en el caso en el que las propiedades _name e _inherit sean
iguales.
Para que los campos nuevos que se creen se puedan ver en las vistas, se deben
extender estas vistas del objeto del que se ha heredado y, a continuación, añadirlos
de la misma forma.

Página 116 de 129


Módulo 10: Sistema de Gestión Empresarial

• Herencia por prototipo

En este caso, se va a crear un objeto nuevo que va a heredar todos los componentes
del padre, aunque va a ser independiente.
Se crea la herencia cuando la propiedad _name tiene un valor no registrado y la
propiedad _inherit tiene un valor registrado. De esta forma, se van a ir añadiendo al
objeto nuevo todos los campos que están definidos en el heredado.

• Herencia por delegación

Se usa este tipo de herencia cuando es necesario crear un nuevo objeto a partir de
otros ya existentes (herencia múltiple).
Para ello, hay que establecer un nombre de objeto que no esté registrado en la
propiedad _name y crear el diccionario correspondiente con todos los objetos
existentes que vayan a heredar, con la variable _inherits.
Por tanto, el nuevo objeto va a tener todos los campos de todos los objetos, más
todos los que se le añadan.

Definición de campos
Cada objeto debe determinar cuáles son los datos que lo componen. Estos datos son
los que hay que crear en la base de datos, teniendo en cuenta que se pueden heredar
de otros objetos. Para tal fin, se debe hacer uso de la propiedad _columns, en la que
se puede definir un diccionario con los valores correspondientes.
La clave de este diccionario debe ser el nombre del campo que hay que crear, junto
con el valor de la definición.
A continuación, se muestra un listado con algunos de los campos que se pueden
utilizar:

• Boolean: puede tomar los valores de verdadero o falso.


• integer: cualquier valor entero.
• Float: valor decimal. Mediante la opción digits=(A,B) permite que A, indique
la cantidad de cifras enteras y, B, indique el número de dígitos decimales.
• Char: cadena de texto de tamaño determinado, mediante size=valor, que
indica el valor de la cadena.
• Text: cadena de texto que no tiene longitud.

Página 117 de 129


Módulo 10: Sistema de Gestión Empresarial

• Date: hace referencia a una fecha concreta.


• Datetime: fecha y hora.
• Binary: campo binario.
• Selection: permite crear una lista con la cantidad de valores que puede tomar.
Una vez seleccionado el tipo, es conveniente establecer una descripción del campo,
excepto en el caso de selection, ya que la descripción va situada después de la
definición de valores.
Algunos de los diferentes tipos que se pueden añadir a las funciones son:
• required=True: cuando el campo es obligatorio.
• select=True: permite crear un índice sobre el campo.
• translate=True: indica al sistema que puede mostrar traducido el campo.
• ondelete=”set null|cascade|set default|restrict|no action”: solo se puede
utilizar para las restricciones, indicando cómo debe ser su comportamiento
cuando se elimine el padre.
• readonly=True: determina que el campo sea de solo lectura.
Si bien es cierto que los tipos básicos construyen una parte imprescindible para
conseguir almacenar la información de forma correcta, no llegan a conseguir
representar un esquema relacional, ya que, para ello, necesitan de un poco más de
información, como son las distintas relaciones entre los objetos.
En OpenERP se pueden diferenciar cuatro tipos de relaciones que se pueden crear,
como son las relaciones uno a uno, uno a muchos, muchos a uno y muchos a muchos.
Es posible definir las relaciones haciendo uso del tipo many2one, donde, en el primer
parámetro, se especificará el objeto en el que crear la relación y, en el segundo, la
descripción del campo.

Página 118 de 129


Módulo 10: Sistema de Gestión Empresarial

3.2. Entornos de desarrollo y herramientas de desarrollo en sistemas


ERP y CRM

Instalación de Python
Para programar en Python, lo único que es necesario es tener instalada una versión
del intérprete junto con un editor de texto simple.
Aunque la configuración básica no es la más adecuada, se puede desarrollar bajo
Eclipse, complementado para el desarrollo bajo Python, ya que, de esta forma,
permitirá contar con todas las facilidades más actuales de programación, sangrado
de líneas, resaltado, autorrelleno, etc.

Instalación del intérprete Python

Se puede descargar la versión deseada desde la página oficial desde Windows


http://www.python.org/getit/

Si es desde Linux, no es necesario, ya que la mayoría de las distribuciones ya vienen


con los paquetes necesarios incluidos para su funcionamiento.

Descarga e instalación de Eclipse

Para descargar Eclipse:


http://eclipse.org/downloads/

A continuación, se puede instalar en el ordenador.

Instalación de PyDev para Eclipse


Este módulo, PyDev, está desarrollado para Aptana y va a permitir ser utilizado
dentro de Eclipse para programar bajo Python.
Desde Help se selecciona Install New Software lanzando el asistente que incorpora
Eclipse y que permitirá poder añadir distintos módulos.

Página 119 de 129


Módulo 10: Sistema de Gestión Empresarial

Configuración de PyDev para Eclipse


En las preferencias de Eclipse, si se observa el árbol que muestra las distintas
categorías, se desplegará el elemento PyDev, buscando la subcategoría Interpreter
Python.
En esta opción, se puede configurar la ruta del intérprete que se ha instalado en el
primer paso de la instalación.
En la mayoría de los casos, si se pulsa el botón Auto Config, debe detectar los valores
necesarios de forma correcta. Si no fuera así, se deben añadir a mano.

Primer proyecto
Como ejemplo, se procede a crear un primer proyecto para comprobar que todo
funciona de forma correcta. En este caso, se va a desarrollar un ejemplo muy
frecuente en el mundo de la programación, como es el “Hola Mundo”.
A continuación, se siguen los pasos para este ejemplo:

• En primer lugar, se crea el proyecto Python, mediante File/New/Pydev


proyect. Se debe comprobar que el nombre del proyecto es el correcto,
seleccionando Python en tipo de proyecto, junto con la versión
correspondiente que se esté utilizando. También se selecciona la opción de
crear un subdirectorio por defecto para las fuentes src.

• Si se abre el directorio src, se puede añadir un módulo, seleccionando la


opción New/PyDev Module. En la ventana que se muestra, existe la opción
de incluir los valores de Name, que en este ejemplo se corresponde con
HolaMundo. Y, en el caso Template, se seleccionará <Empty>.

• En caso de estar trabajando bajo un sistema operativo de Windows, es


habitual que el cortafuegos lance una excepción que habrá que confirmar
para desbloquear Eclipse.
En caso de trabajar con Linux, hay que asegurarse que el cortafuegos no filtre
los puertos correspondientes de Eclipse.

• Llegados a este punto, ya es posible crear el código fuente. Se desplegará el


archivo holaMundo.py y se escribirá:
print “Hola Mundo”

Ya es posible guardar y ejecutar el fichero. Al pedir el tipo de ejecución que va a


lanzar, se seleccionará Python run y, en la parte inferior de la pantalla, se podrá ver
la ejecución.

Página 120 de 129


Módulo 10: Sistema de Gestión Empresarial

3.3. Operaciones con datos en los objetos


Al tratarse de un motor de bases de datos, es una tarea habitual el declarar las tablas
donde se van a almacenar los datos y, a continuación, realizar una carga inicial. En
este sistema, al estar relacionado con distintos módulos, uno de los mejores
lenguajes utilizados para la importación de datos es el lenguaje de marcado XML.
Será necesario seguir el siguiente formato: ____openerp___.py
Este fichero tendrá el siguiente formato:
<?xml versión=”1.0”?>
<terp>
<data>
<record>
/*En el interior de esta marca se indicará la información*/
</record>
</data>
</terp>

Cada etiqueta <record> indicará un registro a insertar. Será preciso indicar todos los
campos requeridos de la tabla.

Página 121 de 129


Módulo 10: Sistema de Gestión Empresarial

3.4. Extracciones de informaciones contenidas en sistemas ERP-CRM,


procesamiento de datos
Debido a la importancia que tienen los datos en estos tipos de herramientas, la
aplicación ERP-CRM favorece la exportación e importación de los datos. En el
apartado anterior se ha podido comprobar cómo se hace posible la carga inicial en
las tablas mediante archivos XML.
Además, esta herramienta también cuenta con la manipulación de los datos por
archivos .CSV.
De esta forma, estandariza la migración de datos a otros entornos, y viceversa, ya
que estos ficheros se pueden crear desde cualquier aplicación de hojas de cálculos o
editor de texto, haciendo uso de un carácter delimitador.
Las herramientas existentes en el mercado facilitan mediante interfaz gráfica la
operación de la migración de datos. De esta forma, cualquier usuario podrá realizar
la importación o exportación de los mismos, aunque en la mayoría de las ocasiones
serán los técnicos los encargados de realizarlas.

Página 122 de 129


Módulo 10: Sistema de Gestión Empresarial

3.5. Llamadas a funciones, librerías de funciones (API).227


Es conveniente, siempre que se trabaje con lenguajes estructurados, la utilización de
funciones para conseguir un correcto funcionamiento. Por ello, con Phyton, cuando
se necesite crear alguna función en cualquier parte del código, se utilizará la palabra
clave def, seguida del nombre elegido para la función y, entre paréntesis, se indicarán
aquellos parámetros necesarios (entre cero y el que sea necesario).
Una vez definida la función, es posible utilizarla cada vez que sea necesario de la
siguiente manera:

• Nombre de la función (valores que se pueden utilizar).

Una de las ventajas que presenta Python con respecto a los demás lenguajes es que
permite pasar como parámetros cualquier tipo de datos y la función tiene que ser la
que se encargue de realizar las conversiones correspondientes. La función, como tal,
debe devolver un valor a través de return. En caso de que se pase, automáticamente
devolverá None.
En algunas ocasiones, se necesitará hacer una llamada a una función, aunque con
menos parámetros de los que se habían definido en un primer momento. En este
caso, se añadirá una asignación a continuación de la definición del parámetro,
indicándole al sistema que, si ese valor no está establecido, haga uso del que se le
está indicando. Esta característica es conocida con el nombre de parámetros
optativos o parámetros con valores por defecto.
Una de las características más importantes de las funciones es la posibilidad que
existe de reordenar los parámetros cuando se realice una llamada a una determinada
función, simplemente anteponiendo el nombre del parámetro que se ha definido a
otro valor, mediante una asignación, y, de esa manera, poder situarlo en el lugar
deseado.
Igual que el lenguaje de programación JAVA, existe un repositorio de funciones
llamados API, que, de forma oficial, ofrecen una serie de colecciones y métodos para
facilitar la implementación de los códigos fuentes.

Para acceder a dicha API es posible hacer clic en:


https://docs.python.org/3/library/index.html

Página 123 de 129


Módulo 10: Sistema de Gestión Empresarial

3.6. Depuración de un programa

Una vez desarrollado un código determinado en Python, para asegurarse de que es


correcto, se puede hacer uso de un IDE o algún editor que reconozca este lenguaje,
para, de esa manera, eliminar aquellos errores sintácticos que se detecten en el
código.
Para ficheros XML es conveniente testearlos mediante un parser XML o haciendo uso
de un determinado navegador de Internet para comprobar que la estructura es la
adecuada. En caso de que existan etiquetas mal balanceadas, que falten etiquetas o
algunos errores típicos, se descubrirán de una manera bastante rápida.
Una vez detectados los posibles errores y solventados los fallos, ya es posible pasar a
la depuración del código ejecutable. En este caso, se va a utilizar el depurador de
Python integrado. Para ello, se debe importar en el código el paquete pdb para
establecer la sentencia pdb.set_trace() al principio del módulo a depurar.
Ya configurado el código, se lanzará el servidor mediante la opción debug, forzando
de esta forma al sistema OpenERP a abrir una consola de depuración cuando llegue
al módulo. Cuando se abra la consola, se dispone de una serie de comandos para
inspeccionar los diferentes valores, como pueden ser, entre otros, establecer puntos
de ruptura y ejecutar paso a paso.

Página 124 de 129


Módulo 10: Sistema de Gestión Empresarial

3.7. Manejo de errores

Control de errores
A lo largo de un programa pueden ir apareciendo errores por distintas situaciones:

• Código que no está bien programado.


• Datos mal introducidos.
• Otras causas.

Independientemente de la causa que sea, es fundamental desarrollar una gestión


adecuada del fallo producido para evitar que la aplicación termine sin ningún tipo de
explicación. Por tanto, para conseguir una gestión adecuada sobre los errores, el
sistema debe presentar un modelo que esté basado en la gestión de las excepciones
correspondientes.

Una excepción es un objeto que tiene información acerca de un error que ha


sido producido sobre el proceso de ejecución.

Todas las excepciones que se generen deben acogerse para ser tratadas, si no, el
intérprete puede proporcionar un mecanismo asignado por defecto que muestre un
mensaje por pantalla y consiga frenar la aplicación.
Las excepciones son objetos explicativos que van a tener asignado un tipo definido
en el lenguaje, proporcionando una serie de datos que detallen las causas que han
generado el fallo. Por tanto, una Excepción IOError va a determinar un error en una
operación de entrada-salida, una de MemoryError es la que se va a crear cuando no
quede suficiente memoria, etc.
Las excepciones son lanzadas por el sistema y deben ser capturadas para evitar un
determinado comportamiento. Se pueden gestionar mediante las construcciones:
try, except, else, finally (try catch de Java).
Dentro del bloque try es posible capturar un error que puede venir determinado con
distintas sentencias except.
En el caso en el que se vayan a tratar dos errores de la misma manera, se puede incluir
una línea except para ambos, encerrados entre paréntesis y separados por comas.
Además, se puede incluir un bloque else para ofrecer un mayor tratamiento, en caso
de que se produzca algún error.

Página 125 de 129


Módulo 10: Sistema de Gestión Empresarial

Dentro de finally se pueden situar las sentencias que se van a ejecutar una vez que
se trate un determinado problema.
Como ya se ha indicado, el sistema es el que genera las excepciones, aunque, en
ocasiones, es conveniente que los usuarios hagan uso de algún mecanismo para
informar del error. En cualquier momento el usuario puede lanzar una excepción
utilizando la palabra raise junto con algún objeto que herede de Exception.
A continuación, se señalan algunas de las excepciones más conocidas:

• BaseException: permite crear una clase base para todas las demás.

• Exception: clase base para todas aquellas excepciones que no se


correspondan con entrada-salida.

• AritmeticError: clase base para aquellos errores aritméticos, pudiendo


extender de ella los siguientes: FloatingPointError, OverflowError,
ZeroDivisionError, etc.

• EOFError: indica que se ha sobrepasado el fichero.

• IOError: indica que se ha producido un error de entrada-salida.

• ImportError: indica error en la importación. Además, permite comprobar las


diferentes funcionalidades del sistema.

• IndexError: error en el índice de acceso.

• KeyError: encuentra una clave que no existe.

Documentación

Realizar la documentación de un código es una labor muy importante, ya que permite


facilitar la tarea tanto al usuario, como a futuros programadores que tengan que
trabajar con el mismo código. Además, Python cuenta con algunas facilidades que es
posible utilizar para llevar a cabo esta documentación.
Primero, se puede hacer uso de la almohadilla (#) para comentar las líneas que se
deseen hasta el final de línea. También, es posible hacerlo utilizando las triples
comillas simples, que van a permitir comentarios en varias líneas.

Página 126 de 129


Módulo 10: Sistema de Gestión Empresarial

Se puede dar el caso en el que la persona que actúa como intérprete haga uso
también de las anotaciones hechas previamente. En ese caso, es conveniente
documentar la función o clase mediante una cadena que explique el funcionamiento
y los componentes principales.
Es posible escribir esta cadena en la línea siguiente a la de la definición de una
determinada función (def Mifunion (…)), cuando se crea la clase (class Miclase…), o
al comienzo de algún módulo, utilizando triples comillas, después de la codificación
de caracteres.
Si bien es cierto que el contenido que es posible incluir es libre, es conveniente utilizar
las recomendaciones de javadoc, que son:

• @param: para indicar un parámetro.

• @return: que indica el valor devuelto.

• @author: nombre del autor.

• @version: versión a la que corresponde.

Página 127 de 129


Módulo 10: Sistema de Gestión Empresarial

Bibliografía

César San Juan Pastor, Sistemas de gestión empresarial. Garceta, 2015.

Webgrafía
http://www.dataprix.com

Página 128 de 129


Módulo 10: Sistema de Gestión Empresarial

Página 129 de 129

También podría gustarte