Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

01.dam M10 2109 Qa03

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

SISTEMAS

DE GESTIÓN
EMPRESARIAL
Desarrollo de aplicaciones multiplataforma

Ilerna

ILERNA, centro autorizado con código 25002775 (Lleida), 28077294 (Madrid) y 41023090 (Sevilla) www.ilerna.es
© Ilerna Online S.L., 2021

Maquetado e impreso por Ilerna Online S.L.

© Imágenes: Shutterstock

Impreso en España - Printed in Spain

Reservados todos los derechos. No se permite la reproducción total o parcial de esta obra, ni su incorporación a un
sistema informático, ni su transmisión en cualquier forma o por cualquier medio (electrónico, mecánico, fotoco-
pia, grabación u otros) sin autorización previa y por escrito de los titulares del copyright. La infracción de dichos
derechos puede constituir un delito contra la propiedad intelectual.

Ilerna Online S.L. ha puesto todos los recursos necesarios para reconocer los derechos de terceros en esta obra
y se excusa con antelación por posibles errores u omisiones y queda a disposición de corregirlos en posteriores
ediciones.

1.a edición: septiembre 2021


ÍNDICE
Sistemas de gestión empresarial

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


1.1. La informática en la gestión empresarial......................................7
1.2. Concepto ERP (sistemas de planificación de recursos
empresariales)................................................................................9
1.3. Revisión de los ERP actuales....................................................... 12
1.4. Concepto de CRM (sistemas de gestión de relaciones con
clientes)........................................................................................ 19
1.5. Revisión de los CRM actuales...................................................... 21
1.6. Concepto de data warehouse (almacenes de datos)................. 22
1.7. Revisión de los data warehouse actuales y posiblemente
incorporados a los sistemas ERP - CRM. Implantación
de un data warehouse................................................................. 23
1.8. Sistemas operativos compatibles con el software..................... 23
1.9. Sistemas gestores de bases de datos compatibles con el
software........................................................................................ 24
1.10. Configuración de la plataforma................................................... 25
1.11. Verificación de la instalación y configuración de los
sistemas operativos y de gestión de datos................................. 27

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


2.1. Tipo de licencia............................................................................ 31
2.2. Tipo de instalación. Monopuesto. Cliente/servidor................... 32
2.3. Procesos de instalación del sistema ERP-CRM.......................... 34
2.4. Módulos de un sistema ERP - CRM. Parámetros de
configuración y actualización del sistema.................................. 39
2.5. Acceso al sistema ERP - CRM. Incorporación de datos.
Entornos de desarrollo, pruebas y explotación.......................... 42

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


3.1. Introducción a las bases de datos............................................... 47
3.2. Definición de campos.................................................................. 50
3.3. Tablas y vistas............................................................................... 52
3.4. Interfaces de entrada de datos y de procesos............................ 55
3.5. Informes y listados de la aplicación............................................ 62
3.6. Cálculos de pedidos, albaranes, facturas,
asientos predefinidos, entre otros.............................................. 63
3.7. Gestión de los recursos humanos............................................... 69
3.8. Herramienta de monitorización. Incidencias: resolución e
identificación............................................................................... 71
3.9. Procesos de extracción de datos en sistemas ERP - CRM y
almacenes de datos..................................................................... 74

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


4.1. Metodología de implantación..................................................... 78
4.2. Tipo de empresa. Necesidades de la empresa........................... 82
4.3. Selección de los módulos del sistema ERP - CRM...................... 82
4.4. Tablas y vistas que adaptar.......................................................... 84
4.5. Consultas necesarias para obtener información........................ 87
4.6. Creación de formularios personalizados.................................... 88
4.7. Creación de informes personalizados......................................... 88
4.8. Creación de procedimientos almacenados................................. 89

5. Desarrollo de componentes............................................................ 90
5.1. Python como lenguaje para el desarrollo de sistemas
ERP - CRM. Características y sintaxis del lenguaje.
Declaración de datos, estructuras de programación
y sentencias del lenguaje............................................................. 92
5.2. Entornos de desarrollo y herramientas
de desarrollo en sistemas ERP y CRM....................................... 105
5.3. Operaciones con datos en los objetos ..................................... 107
5.4. Extracciones de informaciones contenidas en
sistemas ERP - CRM, procesamiento de datos......................... 108
5.5. Llamadas a funciones, librerías de funciones (API)................. 108
5.6. Depuración de un programa...................................................... 109
5.7. Manejo de errores...................................................................... 110

Bibliografía / webgrafía.....................................................................112
1
IDENTIFICACIÓN DE SISTEMAS ERP - CRM
Sistemas de gestión empresarial

1.1.  La informática en la gestión


empresarial
La informática ha supuesto una ayuda indiscutible en lo que refiere
a la gestión empresarial, tanto en empresas como otras organiza-
ciones. Gracias a la informática, los trabajadores y las trabajadoras,
ya sean directivos o simples operarios, tienen un mayor control y
más recursos para realizar su actividad empresarial.

Para entender mejor la relación entre la informática, la gestión


empresarial y los sistemas de gestión empresarial vamos a defi-
nir tres términos:
CONCEPTO

La informática es el conjunto de conocimientos


científicos y técnicas que hacen posible el trata-
miento automático de la información por medio de
computadoras (definición de la Real Academia de la
Lengua Española).

CONCEPTO

La gestión empresarial es la actividad, realizada


dentro de una empresa u organización, que tiene
como propósito la mejora de la productividad
en todos los ámbitos de la empresa. Esto abarca
múltiples factores, como la mejora de la calidad, la
reducción de tiempos de producción, la adquisición
de nuevos clientes, la mejora de los márgenes de
beneficio, la administración eficiente de las tareas
entre los trabajadores, la mejora de su seguridad, la
mejora de la competitividad, etcétera.

CONCEPTO

Los sistemas de gestión empresarial son los


softwares usados por empresas u organizaciones
para manejar, controlar y definir la actividad em-
presarial a través del tratamiento de la información
de la empresa en todos los ámbitos, con el objetivo
de la mejora de la productividad y la mejora del
rendimiento de la empresa u organización.

Por lo tanto, 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.

7
Tema 1: Identificación de sistemas ERP - CRM

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.

Debemos tener en cuenta que, 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 em-
presa, 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.

Los sistemas de gestión empresarial más típicos y usados son


los ERP (Enterprise Resource Planning, sistemas de planificación
de recursos empresariales) y los CRM (Customer Relationship
Management, softwares para la administración de la relación
con los clientes).

8
Sistemas de gestión empresarial

1.2.  Concepto ERP (sistemas de


planificación de recursos empresariales)

CONCEPTO

Los sistemas de planificación de recursos


empresariales (ERP) son programas informáticos
(softwares) de carácter modular que gestionan toda
la información de una empresa u organización me-
jorando así el rendimiento, operatividad y eficiencia
de la misma, tanto a nivel interno como externo, de
modo que se automatiza toda la información, con
lo que se obtiene un mayor control sobre todos los
procesos operativos y se mejoran también aspectos
externos como la relación con clientes y proveedo-
res o el conocimiento del mercado en el que se sitúa
la empresa u organización.

Aunque la definición de ERP 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 relaciona-
dos con la empresa.

Además de automatizar muchos procesos de información y comu-


nicación, estos sistemas ofrecen ayuda a los directivos a la hora de
gestionar una empresa en la toma de decisiones.

El significado de ERP proviene del inglés: Enterprise Resource Plan-


ning, que en castellano podremos traducir como sistema de
planificación de recursos empresariales.

9
Tema 1: Identificación de sistemas ERP - CRM

• Objetivos de los sistemas ERP


Entre los diversos objetivos de un ERP podemos destacar los
siguientes:
– Planificar, modelar y automatizar los procesos de una empresa.
– Ordenar toda la información de la empresa en un mismo lugar.
– Facilitar la realización de tareas típicas de la empresa.
– Compartir la información entre distintos empleados o
departamentos.
– Acceder de manera fácil y rápida a la información.
– Ofrecer un mayor control sobre la actividad interna de la
empresa.
– Mejorar la relación con los clientes (CRM).
– Gestionar de manera particular diferentes áreas (finanzas, co-
mercial, logística, producción, contabilidad, etcétera).

Debemos tener en cuenta que el carácter modular de un ERP su-


pone una gran ventaja para una empresa u organización, dado
que esta podrá instalar en su ERP todos los módulos que se nece-
siten (módulo de finanzas, de recursos humanos, de contabilidad,
de logística, de compras y ventas, de stock, de producción…) y
prescindir de aquellos módulos que fueran innecesarios e incluso
que pudieran generar problemas.

Finanzas Comercial Logística

Finanzas

Contabilidad Producción Stock

Algunos módulos de un sistema ERP.

• Propiedades de los sistemas ERP


Entre sus principales características, se destacan las siguientes:
– Integración: los sistemas ERP abarcan la mayoría de las áreas
de una empresa: comercial, logística, producción, contabilidad,
etc., de modo que se engloba toda la actividad empresarial en
un mismo software.

10
Sistemas de gestión empresarial

– Modularidad: cada módulo de un sistema ERP permite ges-


tionar una determinada área de la empresa (por ejemplo, un
departamento). Los módulos pueden ponerse y quitarse de
modo que se puede configurar el ERP según las necesidades
concretas de la empresa.
– Adaptabilidad: gracias a las dos características anteriores,
podemos afirmar que un ERP se puede adaptar a las distintas
necesidades y requerimientos de una determinada empresa.

Integración Modularidad Adaptabilidad

Características de los sistemas ERP.

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 infor-
mación de los procesos se organice en tablas
estáticas o dinámicas, utilizando una serie Finanzas
de herramientas que le permitan relacio-
nar la información de manera eficiente
ante un proceso de análisis y decisión.

PARA + INFO
CRM ERP SYSTEM Compras
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. RRHH Producción

ERP actual

Empresa 1 Empresa 4
Empresa ERP

Empresa 2 Empresa 3

11
Tema 1: Identificación de sistemas ERP - CRM

Los ERP, entre otras posibilidades, nos permiten:

• 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).
• Obtener inteligencia de negocio (BI).
• Trabajar con una base de conocimiento (KM).
• Gestionar las relaciones con socios (PRM).
• Gestionar el ciclo de vida de un producto (PLM).

Mediante la utilización de estas funcionalidades, se permite hacer


más fácil el flujo de información entre las empresas, aumentando
así la forma la colaboración entre ellas.

Hay que tener en cuenta que, a veces, puede ser difuso el concepto
de módulo en los ERP. Por ejemplo, los CRM (Customer Relations-
hip Management) son a veces considerados como un módulo más
dentro de los ERP y, otras veces, son considerados como un compo-
nente aparte.

1.3.  Revisión de los ERP actuales


Actualmente existen diversos ERP en el mercado: algunos de ellos
son de licencia privativa (hay que pagar por su adquisición y uso)
y otros son de licencia libre (son gratuitos o de código abierto). En
este apartado vamos a analizar algunos de los ERP más importan-
tes hoy en día.

SAP

SAP es una empresa multinacional alemana de software nacida en


1972. Su nombre en alemán es Systemanalyse und Programmen-
twicklung y sus siglas corresponden a su nombre en inglés: System
Analysis and Software Development.

SAP es una de las compañías de software más importantes a nivel


mundial; una gran cantidad de empresas utilizan productos de sof-
tware de la compañía privada SAP.

Entre los diversos productos de software de gestión empresarial de


SAP, podemos destacar los siguientes:

• SAP Business Suite: se trata de un conjunto de softwares de


gestión de esta empresa alemana. Es muy versátil, de modo que
permite la interacción entre sus componentes, la creación de
nuevos módulos, o incluso la conexión con softwares ajenos a
la compañía. SAP Business Suite está dividida en seis módulos o
componentes principales:

12
Sistemas de gestión empresarial

– SAP ERP: es el sistema de planificación de recursos empresa-


riales (se trata del software que más nos interesa conocer en
este módulo).

– SAP CRM: el componente para la relación con los clientes.

– SAP SRM: componente para la relación con los proveedores.

– SAP SCM: componente que gestiona la administración de la ca-


dena de suministro.

– SAP PLM: gestión del ciclo de vida de un producto.

• SAP ERP: forma parte del SAP Business Suite descrito anterior-
mente. Es uno de los ERP más importantes y usados en el mundo
empresarial. Posee las funciones más importantes para la ges-
tión y organización de una empresa. Por ello, está dividido en
módulos, entre los que podemos destacar los siguientes:

– Distribución y ventas (SD)

– Contabilidad de activos (AA)

– Gestión de materiales (MM)

– Planificación de producción (PP)

– Gestión de almacenes (WM)

– Gestión de calidad (QM)

– Contabilidad financiera (FI)

– Recursos humanos (HR)

SAP ERP ha ido evolucionando lo largo de los años. Su última versión


estable es la SAP ERP 6.0 (a fecha de redacción de este manual).

• SAP S/4 HANA: es un novedoso ERP que ofrece la compañía SAP,


diseñado para grandes empresas. Fue creado en 2015 y es suce-
sor o una derivación del descrito anteriormente SAP ERP. SAP S/4
HANA está preparado y optimizado para el sistema gestor de ba-
ses de datos SAP HANA, el cual es un sistema gestor de bases de
datos de tipo “en memoria”. Cabe destacar su optimización para
ser usado en la nube.

• SAP Business All-in-One: es un ERP que se oferta para la in-


dustria, diseñado para compañías de tamaño medio. Tiene una
característica añadida de integración y se presenta como una so-
lución muy completa para empresas de tamaño medio, 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 funcio-
nalidades para un determinado sector empresarial y tecnología
SAP NetWeaver. Funciona en Windows.

13
Tema 1: Identificación de sistemas ERP - CRM

• SAP Business One: es otro ERP de SAP, diseñado para pequeñas


y medianas empresas. Tiene la característica de trabajar muy bien
con los productos de Microsoft como Office, Excel o Outlook. Po-
see 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. Como otros ERP, también cuenta con diferentes
servicios como pueden ser, la gestión de la contabilidad y finan-
zas, la gestión de relaciones con el cliente, la gestión de compras
y operaciones y la gestión de informes. Tiene soporte para Win-
dows, Mac OS y Linux.

• SAP Business ByDesign: se trata de otro ERP de SAP, diseñado


para pequeñas y medianas empresas. Tiene un coste económico
más asequible y es muy intuitivo. Este software se utiliza, sobre
todo, para gestiones empresariales que estén basadas en apli-
caciones online. Como otros ERP, incorpora módulos como el de
contabilidad y finanzas, resursos humanos, CRM, etcétera. Fun-
ciona para Windows.

Oracle

Creada a finales de los años 70, Oracle Corporation es una empresa


tecnológica a nivel internacional que destaca por todo tipo de sof-
tware, como sistemas de gestión de bases de datos o sistemas de
gestión empresarial, que es lo que nos interesa en este apartado.

Respecto a los ERP, Oracle nos ofrece su software privativo: Oracle


Enterprise Resource Planning Cloud.

Este ERP es un software de tipo SaS (Software as Service) que,


como otros ERP, gestiona la información de una empresa. Tiene la
peculiaridad de trabajar en la nube, es decir, en una serie de servi-
dores que Oracle ofrece a sus clientes.

Como la gran mayoría de ERP, es de carácter modular, siendo los


siguientes sus principales módulos:

• Módulo de finanzas.
• Módulo de compras y ventas.
• Módulo de gestión de proyectos.
• Módulo de gestión del rendimiento (Enterprise Performance
Management).

14
Sistemas de gestión empresarial

• Módulo de gestión de la cadena de suministros.


• Módulo de análisis.

Desde hace varios años, SAP y Oracle son las dos empresas que más
dominio poseen en el entorno empresarial ERP a nivel mundial.

Microsoft

Microsoft es una de las empresas de software más conocidas del


mundo. En 2001 creó una nueva línea de negocio orientada a los
sistemas de gestión empresarial.

Actualmente, ofrece Microsoft Dynamics, que se compone de un


ERP y un CRM (Customer Relationship Management), los cuales
forman parte de la suite Microsoft Business Solutions. Microsoft
Dynamics permite trabajar con otros productos de Microsoft como
Office 365, Outlook o Azure.

Se trata de un ERP propietario diseñado para empresas de todo


tipo: pequeñas, medianas o grandes. Como era de esperar, solo
trabaja bajo el sistema operativo de Windows.

OpenBravo

Creado sobre los años 90, OpenBravo es una empresa de software


de origen español, surgida en la universidad de navarra, que realiza
soluciones de software para distintos negocios.

En el pasado introdujo un software ERP de licencia pública que


obtuvo cierto éxito, diseñado para pequeñas y medianas empre-
sas, pero con el paso del tiempo ha ido cambiando de modelo de
licencia. Actualmente tiene una licencia bastante más privativa que
funciona con suscripciones anuales de pago.

15
Tema 1: Identificación de sistemas ERP - CRM

Su sistema de gestión empresarial más importante actual se llama


Openbravo Commerce Cloud, diseñado para empresas medianas,
minoristas, el cual ofrece un completo ERP, CRM y un componente
de BI (Business Intelligence).

PARA + INFO

Es el único ERP que tiene su origen en España y ha


conseguido una gran implantación en todo el mundo.
Entre los módulos de su ERP se pueden encontrar los
de ventas, compras, proyectos, etcétera. Posee una
licencia mixta, de modo que tiene una gran cantidad de
módulos que son de pago.

Por último, OpenBravo está capacitado para distribuir un softwa-


re 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.

Odoo

Odoo S. A. es una organización con base en Bélgica que, a partir


del año 2005, desarrolló un software de gestión empresarial, que
empezó llamándose TinyERP, después OpenERP y actualmente se
llama Odoo ERP.

Cabe destacar de Odoo ofrece uno de los pocos y más importan-


tes ERP con una licencia libre comunitaria, concretamente con
una licencia LGPLv3. Aunque, por otro lado, también posee una
licencia privativa.

Odoo ERP posee también un módulo o componente de CRM (Custo-


mer Relationship Management, para las relaciones con los clientes).

Los principales módulos de Odoo son:

• Gestión de proyectos.
• Contabilidad financiera y analítica.
• Gestión de inventario.
• Recursos humanos.

16
Sistemas de gestión empresarial

• Gestión de ventas y compras.


• Módulo de marketing.
• Módulo gestor de almacenes.

Como software de licencia libre y comunitaria, Odoo se muestra


como una alternativa clara a SAP y Microsoft Dynamics.

Odoo presenta una arquitectura basada en cliente-servidor.


El servidor se desarrolla en lenguaje Python 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, Odoo ofrece la posibilidad de su distri-


bución a través de la nube. Actualmente (a fecha de redacción del
libro) está por la versión 13.0.

¡RECUERDA!

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.

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.

17
Tema 1: Identificación de sistemas ERP - CRM

• 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 for-
mació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 con-


veniente ofrecer una respuesta al planteamiento del software
ERP-CRM que se va a llevar a cabo en el desarrollo de los primeros
temas de este módulo, de tal manera que se seleccionará un sof-
tware libre, por todas las ventajas que ya se han detallado.

A continuación, se detalla una comparativa entre los dos paquetes


más importantes, definidos anteriormente:

Java and Javascript


Python
SQL and PL/SQL
Tecnología SQL and PL/SQL
XML
XML
XHTML

MVC
WAD
PostgreSQL database
Application MDD
Arquitectura server
Dictionary
Application server
MVC
Open Object client-web

Licencia Mozilla con cláusulas GPL

Cliente Solo Web Web y aplicación Desktop

Rendimiento Menor Mayor

Personalización Complicada Sencilla

18
Sistemas de gestión empresarial

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 ten-
gan relación con la empresa.
• Disminución del tiempo de vida.

Sus desventajas son:

• Costoso, tanto en tiempo como en dinero.


• Es necesario tener nuevos aprendizajes.
• Ante el cambio de una estructura empresarial, es necesario mo-
dificar su ERP.
• Dificultades de integración de algunos productos.
• Ante un posible fallo en el sistema, volver atrás es un proceso bas-
tante costoso.
• Desconfianza de los empleados ante un cambio de metodología.

1.4.  Concepto de CRM (sistemas de


gestión de relaciones con clientes)

Atención al cliente
Ventas

Soporte técnico
Marketing

19
Tema 1: Identificación de sistemas ERP - CRM

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
con sus clientes. Podemos decir que un CRM es el software asocia-
do a un ERP que hace referencia a la estrategia de negocios que se
centra específicamente en el cliente.

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 cen-
tral, 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 es-


tablecer 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.

PARA + INFO

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).

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

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


formació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.

20
Sistemas de gestión empresarial

1.5.  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 Dynamics.

• Los que son exclusivos: se refieren a aquellos CRM que no forman


parte directa de un ERP, sino que se han desarrollado de manera in-
dependiente, pero a pesar de ello pueden trabajar igualmente con
un software ERP ajeno. Un ejemplo de este tipo puede ser Sugar-
CRM. Hay que señalar que los CRM exclusivos se utilizan cada vez
menos, por lo que pueden llegar a desaparecer en los próximos años.

SugarCRM

Sugar CRM es un software para gestionar la relación de las empre-


sas con sus clientes, surgido en los Estados Unidos. Funciona y es
ejecutado a través de la web y programado en el lenguaje LAMP.

Posee una versión 6.0 de carácter “comunitario” con licencia libre.


No obstante, después de esa versión, la empresa pasó a ser realizar
software de carácter privativo.

La licencia privativa posee tres ediciones: Enterprise, Professional


y Ultimate.

SuiteCRM

21
Tema 1: Identificación de sistemas ERP - CRM

SuiteCRM es otro software para la gestión de la relación de las


empresas con sus clientes. Dicho software es totalmente de código
abierto y licencia libre, surgió a raíz de que SugarCRM dejase de
desarrollar software de código abierto. Está escrito en PHP y posee
distintos módulos, algunos de ellos son:

• Módulo de meetings.
• Módulo de empleados.
• Módulo de oportunidades.
• Módulo de campañas de marketing.
• Módulo de calendario.
• Módulo de llamadas.

1.6.  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.

Se considera la clave de la inteligencia de negocio (Business


Intelligence).

Es posible definirlo también como un expediente de una empre-


sa que contiene información transaccional y operacional. Esta
información se almacena en una base de datos diseñada específi-
camente 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:

• Integrar los datos de las correspondientes bases de datos distri-


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

• Separar aquellos datos que se utilizan en las operaciones coti-


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

22
Sistemas de gestión empresarial

1.7.  Revisión de los data warehouse


actuales y posiblemente incorporados a
los sistemas ERP - CRM. Implantación
de un data warehouse
Algunos de los data warehouse más importantes hoy en día son los
siguientes:

• Teradata: es de licencia privativa y tiene la característica de dife-


renciar la información entre fría y caliente.

• Oracle 12c Database: es de licencia privativa y destaca por ser


escalabe, de alto rendimiento y estar bien optimizado.

• Amazon Web Service: es otro data warehouse de licencia pri-


vativa, proveniente de la empresa Amazon. Usa el estándar SQL.

• Cloudera: es una alternativa de código abierto para el uso de un


data warehouse, aunque no tiene un servicio de mantenimiento
como lo tienen los data warehouse privativos.

1.8.  Sistemas operativos compatibles


con el software
A continuación, vamos a listar algunos de los ERP más importantes
y los sistemas operativos para los cuales tienen soporte:

ERP SISTEMA OPERATIVO

Windows, Linux y Mac OS


(algunos productos SAP solo
SAP
están disponibles para algunos
sistemas operativos)

Microsoft Dynamics Microsft Windows

Oracle Windows y Linux

OpenBravo Windows, Linux y Mac OS

Odoo Windows, Linux, Android y Mac Os

CRM SISTEMA OPERATIVO

Sugar CRM Windows, Solaris y Mac OS

Suite CRM Windows, Linux y Mac OS

23
1.9.  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á repar-
tida 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 data warehouse


o almacenes de datos. Se basan en una base de datos central en la
que todas las aplicaciones hacen llamadas a ella. Está implementa-
da para soportar todo tipo de herramientas de análisis.

PARA + INFO

La principal ventaja de estas herramientas es la organi-


zació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 consul-
tas 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 prestacio-
nes en todos sus componentes.

24
Sistemas 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 multidimen-


sionales, 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 posrelacionales abre un mayor abanico


de posibilidades y dan soluciones a las limitaciones que presentan
las bases de datos relacionales, ya que con menos recursos hard-
ware, 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 im-
prescindible 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.

1.10.  Configuración de la plataforma


Para la implantación de un data warehouse, debemos pasar por las
siguientes fases:

• 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án-
dose de analizar las distintas necesidades para saber administrar
las principales ventajas que este sistema puede aportar.

25
Tema 1: Identificación de sistemas ERP - CRM

• Diseño y modelización: tiene como objetivo principal identifi-


car las distintas fuentes de datos junto con las correspondientes
transformaciones para, a partir de aquí, obtener el modelo lógi-
co de datos del data warehouse. Después, es posible traducir el
modelo lógico de datos al físico para almacenarlo en el data wa-
rehouse y poder definir la estructura de almacenamiento.

• 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 query&reporting o minería de datos.

• 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 mante-


nidas las reuniones necesarias con los distintos usuarios, se puede
comenzar a practicar con lo que se ha desarrollado, para ir afian-
zando los distintos conceptos que permitirán formar a los usuarios.

Definición de
objetivos

Gestión Definición de
Revisión proyectos requerimientos

Diseño y
Implementación
modelización

Metodología propuesta por SAS Institute: la


Rapid Warehousing Methodology.

26
Sistemas de gestión empresarial

1.11.  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 Odoo, 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 eje-
cutable 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 seleccio-
nará PostgreSQL por ser una versión bastante recomendable.

Instalación de la base de datos

1. En primer lugar, es necesario obtener el software correspon-


diente 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 conec-
tarse 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.

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.

27
Tema 1: Identificación de sistemas ERP - CRM

5. También se dispone de la opción buscar determinados ele-


mentos 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 perte-


nezca 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.

28
Sistemas de gestión empresarial

29
2
INSTALACIÓN Y CONFIGURACIÓN DE

SISTEMAS ERP - CRM
Sistemas de gestión empresarial

2.1.  Tipo de licencia


En el ámbito del software, una licencia es un contrato entre el pro-
pietario de un software y los usuarios que usan o distribuyen
dicho software. El propietario del software suele ser el autor o la
empresa autora del mismo. Los usuarios pueden ser tanto particu-
lares como empresas.

En una licencia se especifican una serie de obligaciones que debe


tener el desarrollador con el usuario en cuestión y viceversa. Los
puntos más esenciales que se especifican en una licencia son las
normas de utilización, modificación y distribución del software.

Hoy en día, existen licencias de todo tipo, cada una de las cuales
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.

– Licencias robustas: presentan distintas limitaciones que se


deben tener en cuenta antes de su utilización. Esta categoría
puede dividirse en dos tipos:

◦ Fuertes: se deben distribuir de la misma forma que las original.

◦ Débiles: se distribuyen de forma muy parecida a la original, aun-


que pueden tener una licencia diferente (Mozilla, Open Source).

• Licencias de código cerrado: también llamadas software pro-


pietario, son aquellas que, a la hora de utilizar un producto,
deben tener en cuenta un gran número de restricciones.

• Licencias de dominio público: son aquellas licencias que deter-


minan que un software no tiene propietario.

Por otro lado, si clasificáramos las licencias exclusivamente por el


coste económico que tienen para el usuario, podríamos clasificar-
las en tres tipos:

• Freeware: no tienen coste alguno, el software es de uso gratuito.

• Payware: el usuario necesita realizar algún tipo de pago para el


uso del software.

• Shareware: durante un periodo de tiempo, el software puede


usarse sin coste alguno. Pasado cierto tiempo, para poder con-
tinuar usando el software, el usuario debe realizar algún tipo de
pago al autor.

31
Tema 2: Instalación y configuración de sistemas ERP - CRM

2.2.  Tipo de instalación. Monopuesto.


Cliente/servidor
Así como con otros tipos de software, existen distintos tipos de
instalación de un ERP en una o varias computadoras.

Hay varios aspectos que determinan el tipo de instalación, tales


como dónde reside la base de datos, dónde se gestiona la aplica-
ción, dónde se presenta al usuario la interfaz…

Podemos dividir los tipos de instalación entre las siguientes


categorías:

Monopuesto

En el tipo de instalación monopuesto, todo el ERP reside en la


misma computadora, tanto la base de datos, como el gestor del
ERP y la presentación al usuario. De esta forma, solo podrán tener
acceso al sistema los usuarios que físicamente accedan a dicha
computadora.

Este tipo de instalación es más conveniente para entornos de desa-


rrollo o aprendizaje que 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 admi-
nistració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.

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 con-
creto, 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.

32
Sistemas de gestión empresarial

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.

Servicios en la nube

Actualmente es muy habitual trabajar con software instalado en


la nube (cloud computing, en inglés). El paradigma de trabajar en
la nube consiste en que un usuario (un particular o una empresa)
contrata el servicio de una empresa externa que se va a encargar de
la gestión y mantenimiento del hardware, ya que este se encuentra
fuera de las propias infraestructuras del cliente (el usuario final).

Por lo tanto, en este modelo, los usuarios trabajan conectándonse


a servidores inaccesibles y de ubicación desconocida. Dicho de
otro modo, cuando un usuario trabaja en la nube, significa que su
computadora es una terminal que accede remotamente a unos ser-
vidores ajenos, de modo que el propio usuario se desentiende de
la gestión física de dichos servidores. La tarea de mantener los ser-
vidores repercute en la empresa que provee el servicio en la nube.

Este tipo de paradigma se podría considerar como una especiali-


dad de cliente-servidor.

Existen tres formas de trabajar en la nube en función de las opcio-


nes que posea el cliente:

SaaS (Software as a Service)

Es la modalidad más sencilla para el usuario final (es decir, el


cliente), dado que la gestión y mantenimiento de la plataforma y
la gestión del software son tareas de la empresa proveedora del
servicio en la nube. Un ejemplo típico de SaaS es Google Drive.

CLIENTE
SERVIDOR DE
ACCESO
CLIENTE
SERVIDOR WEB SERVIDOR BBDD
WEB

Modelo cliente - Servidor general y web

Nuestra empresa Nuestra empresa Otra empresa

SERVIDOR DE CLIENTE SERVIDOR DE


CLIENTE
ACCESO ACCESO

Modelo cliente - Servidor general frente a cliente - Servidor SaaS

33
Tema 2: Instalación y configuración de sistemas ERP - CRM

IaaS (Infrastructure as a Service)

En esta modalidad, el cliente contrata toda la infraestructura nece-


saria para la instalación y posible desarrollo del software, de modo
que dicho cliente gestiona a muy bajo nivel toda la infraestructura,
como el tipo de particionado en disco, la memoria RAM necesa-
ria, la seguridad, los backups (copias de seguridad), los recursos
de computación, etcétera. Por ejemplo, el cliente puede instalar el
sistema operativo que desee en el servidor, aunque físicamente no
tenga acceso al mismo.

PaaS (Platform as a Service)

Es una modalidad intermedia entre el SaaS y el IaaS, de modo que


el cliente se encarga del mantenimiento, desarrollo y gestión de la
plataforma en el servidor, pero sin llegar a tener acceso a bajo nivel
de los recursos como ocurre en el IaaS.

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 ase-


gurarse 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 de-
terminado software.

En este caso, nos vamos a decantar por Odoo, 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.

Instalación de Odoo bajo Microsoft Windows

En este apartado, vamos a ver cómo realizar la instalación mono-


puesta de Odoo, en su versión de licencia de código abierto y libre, en
una computadora con el sistema operativo de Microsoft Windows.

34
Sistemas de gestión empresarial

Para ello, lo primero que debemos hacer es ir a la página de Odoo,


donde ofrece su ERP de software libre para la comunidad.

BUSCA EN LA WEB

Versión de licencia libre de Odoo:


https://www.odoo.com/es_ES/page/community

Para descargarlo, Odoo nos pedirá algunos datos generales. No es


necesario cumplimentarlos en su totalidad, pero algunos sí que
serán requeridos (el teléfono, por ejemplo, no es necesario).

En esa misma página, pero más abajo, están los enlaces de descarga
del software. Haremos clic en el botón de descarga que correspon-
de a la licencia Community, que es la licencia libre, y para el sistema
operativo Windows.

35
Tema 2: Instalación y configuración de sistemas ERP - CRM

Una vez se haya descargado el archivo de instalación, lo ejecutaremos.


Lo primero que nos pedirá es que seleccionemos el idioma disponible.
En la versión de Odoo 13, deberemos elegir entre inglés y francés:

La instalación mostrará un mensaje de bienvenida. Deberemos


hacer clic en Next:

Después, deberemos leer y aceptar los términos de uso del software:

36
Sistemas de gestión empresarial

El siguiente paso es elegir los componentes que deseamos instalar;


en nuestro caso, elegimos All in One, es decir, todos los componen-
tes con sus módulos por defecto.

Indicamos los datos del puerto a utilizar, el nombre de usuario y la


contraseña (el dato del puerto puede variar en función de la com-
putadora y del sistema operativo).

37
Tema 2: Instalación y configuración de sistemas ERP - CRM

Indicamos en qué directorio deseamos instalar el software ERP.

Tras ello, comenzará la instalación, que podrá demorar unos


minutos.

Una vez haya terminado el proceso de instalación, haremos clic en


Next y Finish:

38
Sistemas de gestión empresarial

De este modo, habremos finalizado el proceso de instalación del


software Odoo en su versión de licencia de código abierto para una
computadora con Windows.

2.4.  Módulos de un sistema


ERP - CRM. Parámetros de
configuración y actualización del
sistema

Módulos de un sistema ERP - CRM

Los sistemas ERP-CRM son sistemas modulares, es decir, funcionan


con una estructura modular que les permite dar más flexibilidad y
escalabilidad al sistema, instalando solo los módulos que se nece-
siten en un momento dado y pudiendo añadir más módulos con el
paso del tiempo en función de las nuevas necesidades que vayan
surgiendo a la empresa/organización o al particular que use un ERP.

Cada sistema ERP-CRM posee una cantidad y diversidad de mó-


dulos distintos, pero habitualmente hay una serie de módulos que
suelen ser comunes en todos los ERP:

• Módulo de compras.

• Módulo de ventas.

• Módulo de marketing.

• Módulo de finanzas o contabilidad.

• Módulo de recursos humanos.

• Inventario.

• Gestión de la cadena de suministro.

Por lo tanto, la mayoría de ERP suelen disponer de los módulos


listados; no obstante, existen muchos módulos más que los ERP
ofrecen para incorporar a la instalación y uso del sistema. Estos
módulos, insistimos, pueden variar de un sistema ERP-CRM a otro.

A continuación, vamos a realizar una descripción de módulos típi-


cos en un sistema ERP-CRM:

Contabilidad y finanzas

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 provee-
dores o el estado de las cuentas bancarias.

39
Tema 2: Instalación y configuración de sistemas ERP - CRM

Gestión de productos

Permite el manejo de diferentes productos y listas de precios en


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

Compras

Utilizado para la gestión de compras, permitiendo solicitar citas,


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

Ventas

Es el módulo base para la gestión de citas y órdenes de ventas,


además del flujo de trabajo con validación. Existen diferentes tipos
de facturación, como pueden ser: factura en orden y en reparto y
avance de factura (presupuesto).

CRM (gestión de clientes)

Este es un módulo especial, como ya sabemos: en algunos siste-


mas será un módulo más y, en otros sistemas, será un software
aparte. En él se pueden 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 re-
cordatorios de forma automática, eleva las peticiones, o lanza
métodos específicos, entre otras opciones.

Recursos humanos

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 dife-
rentes informes para la gestión.

Gestión de almacenes

Permite llevar a cabo la gestión de múltiples almacenes proporcio-


nando 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)

Módulo utilizado para llevar a cabo las diferentes campañas de


marketing de la empresa u organización.

40
Sistemas de gestión empresarial

Punto de venta

Módulo que ofrece como principal ventaja la creación directa de la


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

Parámetros de configuración

Cuando instalamos un sistema ERP-CRM, debemos realizar una con-


figuración adaptada a las necesidades de la empresa u organización.
Esta configuración inicial es imprescindible, dado que determinará el
funcionamiento de la empresa y sus flujos de trabajo.

Cuando realizamos la parametrización de un sistema ERP-CRM, es-


tamos configurando dicho sistema para aspectos tan importantes
como los usuarios que tendrán acceso al mismo (con sus corres-
pondientes permisos) o el establecimiento de las reglas de negocio,
entre otros. De esta manera, el sistema reflejará las necesidades
reales de la empresa u organización.

Gestión de usuarios

En un sistema ERP-CRM, entre las funciones más importantes de


su parametrización inicial está la gestión de usuarios, a través de la
cual podemos crear y eliminar usuarios en el sistema, con toda su
información asociada.

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.

41
Tema 2: Instalación y configuración de sistemas ERP - CRM

Configuración de módulos

Es posible configurar los diferentes módulos de un sistema ERP-


CRM mediante el asistente que aparece al realizar el proceso de
instalación (normalmente tendremos un menú Configuración).
Estas opciones serán diferentes dependiendo del módulo que haya
que configurar.

Actualización del sistema ERP-CRM

Las actualizaciones en un sistema ERP-CRM son importantes. A lo


largo del tiempo, un sistema ERP-CRM puede ir ofreciendo nuevas
versiones que obtienen mejores prestaciones que las anteriores.

Además, sin salir de una misma versión, los proveedores de sistemas


ERP-CRM, ya sean de licencia de código abierto o cerrado, libres o
privativas, pueden ir sacando parches que protegen al sistema de
un fallo de seguridad recientemente encontrado o un pequeño bug
que recientemente se haya podido encontrar en el sistema.

2.5.  Acceso al sistema ERP - CRM.


Incorporación de datos. Entornos de
desarrollo, pruebas y explotación

Acceso al sistema

Cuando accedemos a un sistema informático, debemos diferenciar


siempre entre el acceso físico y el acceso lógico.

Un ERP que gestiona la información de una empresa u organiza-


ción puede estar instalado en un servidor que se encuentra dentro
de la misma empresa o en una empresa externa (la nube) que se
encarga de su mantemiento y seguridad. Sea cual sea el caso, el
acceso físico al servidor que contiene el ERP, junto con su base
de datos, debería estar siempre restringido, y cada acceso a él,
controlado y registrado. Es decir, solo el personal autorizado debe
poder acceder a él.

Lo mismo ocurre con el acceso lógico a un sistema ERP: durante el


proceso de instalación, parametrización, etc., se deben definir qué
usuarios tienen derecho de acceso al sistema, es decir, se determi-
na la autorización de cada empleado/a a acceder al sistema.

De este modo, en el sistema se crearán los usuarios necesarios que


identifiquen a los empleados o trabajadores de dicha empresa u
organización y, finalmente, a cada usuario del sistema se le otorga-
rán unas credenciales privadas para que, cuando desee acceder al
sistema ERP, deba autenticarse.

42
Sistemas de gestión empresarial

Por otro lado, cada usuario del sistema (correspondiente a cada


empleado) tendrá restringido su manejo del sistema, de modo que,
por ejemplo, un operario de almacén podrá tener acceso al módulo
del inventario, pero no podrá acceder al módulo de recursos huma-
nos o de finanzas.

Así como en cualquier sistema informático, solo debería exis-


tir un usuario especial que tenga acceso a todo el sistema: el
administrador.

Datos en el sistema ERP-CRM

Los datos son una de las principales herramientas de los sistemas


de información. Una vez que se tiene instalado el sistema, la prin-
cipal 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 traba-
jar con el Servidor PostgreSQL de forma 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 con-
traseña de administrador.

PARA + INFO

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 PGAd-


min en PostgreSQL que ofrece una serie de facilidades para crear y
restaurar copias de seguridad.

Entornos de desarrollo, pruebas y explotación

Para un buen uso de un ERP, es necesario un entorno de desarrollo


apto para la evolución y buen uso del software.

43
Tema 2: Instalación y configuración de sistemas ERP - CRM

Como muchos otros tipos de software, los ERP necesitan tener un


entorno de desarrollo que permita incrementar el ERP sin afectar
al funcionamiento diario del mismo. Para ello, es habitual que en
una empresa u organización existan desarrolladores de software
que se encarguen tanto de la actualización y mejora de los mó-
dulos ya implantados en el software, como de la creación de los
nuevos módulos que, por la naturaleza y evolución del negocio,
sean necesarios.

Las fases de un desarrollo habitualmente son las siguientes:


análisis, diseño, codificación, pruebas, documentación, explota-
ción y mantenimiento.

La fase de pruebas puede entenderse como la fase de verificación


del ERP. Esta nos confirmará si existen errores y si el software es apto
para la fase de explotación. En la fase de pruebas, nos encargaremos
de realizar pruebas y tests de todo tipo (de estrés, de calidad…) para
así comprobar varios puntos claves, como por ejemplo:

• El ERP no contiene errores de funcionalidad ni de seguridad.

• EL ERP cumple con los requisitos definidos previamente.

• El ERP es capaz de soportar una gestión de una ingente cantidad


de datos simultánea.

• Cada módulo realmente realiza con éxito las funciones para la


cuales fue diseñado.

• Un usuario determinado solo tiene acceso a los módulos y fun-


ciones a los que se le dio permiso.

Si la fase de pruebas es apta, podremos pasar a la fase de explo-


tación en la que el ERP pasará a ser funcional y se incorporará a
la rutina de los trabajadores de la empresa, lo cual requerirá un
mantenimiento continuo.

44
Sistemas de gestión empresarial

45
3
ORGANIZACIÓN Y CONSULTA DE LA

INFORMACIÓN
Sistemas de gestión empresarial

3.1.  Introducción a las bases de datos


En este tema vamos a realizar una introducción a las bases de datos
centrándonos en los aspectos fundamentales en relación con las
necesidades de los ERP.

Las bases de datos, tal y como la entendemos hoy en día, se intro-


dujeron en las empresas en los años 70 con la incorporación de los
sistemas gestores de bases de datos, ofreciendo una mejora de la
gestión y en la organización del proceso productivo.

Las aplicaciones ERP-CRM actuales tienen una gran dependencia


de las bases de datos, puesto que son un soporte esencial para el
buen funcionamiento de un ERP. Además, es importante que una
base de datos pueda adaptarse a cualquier proyecto de sistema de
gestión empresarial que se desee explotar de manera correcta.

Por ello, es conveniente recordar algunos de los aspectos más im-


portantes de las bases de datos, como pueden ser sus principales
conceptos y procedimientos.

PARA + INFO

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.

Existen diferentes tipos de bases de datos: jerárquica, en red, rela-


cional… Sin embargo, el modelo relacional es el más habitual hoy
en día para dar un soporte de datos a los sistemas ERP-CRM.

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 co-
lumnas, 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.

Además, los sistemas relacionales deben cumplir una serie de pro-


piedades básicas como pueden ser, entre otras, las que se indican
a continuación:

• Integridad: debe ser un sistema capaz de eliminar la redundan-


cia entre sus datos para poder asegurar la coherencia entre todos
• Compartición: debe poder ofrecer la posibilidad de compartir la
información entre los distintos usuarios.
• Seguridad: debe poder controlar el acceso de los usuarios a la
base de datos y mantener una configuración que respecte unas
reglas de seguridad de acceso previamente establecidas.

47
Tema 3: Organización y consulta de la información

• Protección contra fallos: debe poder asegurar que los datos


pueden permanecer a lo largo del tiempo.
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: es una herramienta de una base de datos que se utiliza
para mostrar información muy determinada que está repartida
en varias tablas a un usuario.
• 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, ma-
yor que cien, etc.).
– Por otro, las restricciones que debe cumplir un dato en un de-
terminado 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 crite-
rios de selección y ordenación. Una consulta implica un control de
acceso a los datos (permisos) y control de acceso concurrente (si-
multá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.

48
Sistemas de gestión empresarial

• 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, tenien-


do 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 da-
tos mediante tablas y restricciones. Este nivel lo utilizan las tablas,
los campos de las tablas, restricciones de integridad, claves pri-
marias, etc., es decir, todo lo que se refiere el esquema relacional.
• Nivel externo: agrupa el nivel anterior en un conjunto de infor-
maciones 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 crea-
do 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.

49
Tema 3: Organización y consulta de la información

3.2.  Definición de campos


En un sistema ERP-CRM habitual, como desarrolladores, podemos
modificar o crear nuevos campos que se adapten a los datos que
manejamos en nuestra empresa u organización.

Por ejemplo, en el ERP de Odoo podemos acceder a la sección


técnica de desarrollo para consultar los campos existentes del
sistema, así como para crear nuevos campos, modificar los ya
existentes o eliminarlos.

Para ello, deberíamos entrar como desarrolladores en el sistema


ERP de Odoo, siguiendo estos pasos:

1. Acceder a nuestro servidor ya instalado de Odoo y poner nues-


tras credenciales.

2. Una vez hayamos accedido, en la sección aplicaciones nos


aparecerán una lista de módulos, algunos ya los habremos ins-
talado y nos figurarán como tal, y otros no. En cualquier caso,
debemos entrar en la sección ajustes.

50
Sistemas de gestión empresarial

3. Dentro de ajustes, debemos desplazar el scroll hacia abajo hasta


llegar a la opción de Activar modo desarrollador.

4. Una vez ya estemos en modo desarrollador, dentro de ajustes,


debemos de hacer click en el desplegable Técnico y buscar la
sección Campos.

51
Tema 3: Organización y consulta de la información

5. De ese modo, nos aparecerán el listado de todos los campos


actualmente existentes, con su nombre, el modelo/tabla al que
pertenecen, el tipo de dato (entero, booleano, fecha…), etcé-
tera. En la parte superior izquierda tenemos la opción de crear
nuevos campos.

3.3.  Tablas y vistas


Tablas

Como ya se ha comentado anteriormente, las tablas son el compo-


nente principal de las bases de datos relacionales, y cada tabla está
compuesta por diferentes campos.

En Odoo, entre otros elementos, se trabaja con “modelos”. Para ac-


ceder al listado de los modelos, debemos entrar a nuestro sistema
Odoo, activar el modo desarrollador y acceder a la sección Modelos.

En esta sección, podremos ver todos los modelos existentes en


el sistema. También podemos crear o importar (en formato csv)
nuevos modelos.

52
Sistemas de gestión empresarial

Si accedemos a uno de los modelos, podremos ver qué campos


conforman dicho modelo.

Vistas

En un sistema ERP, las vistas son una parte fundamental. Como hemos
visto anteriormente, las vistas se utilizan para mostrar a un usuario
del sistema una información que no está en una misma tabla, sino
que dicha información está repartida en diferentes tablas.

Las vistas suelen ser elementos muy personalizables de cara al


usuario que las va a necesitar, de modo que solo se muestra a dicho
usuario la información que realmente necesita. Para ello hay que
configurar la vista adecuadamente.

53
Tema 3: Organización y consulta de la información

En Odoo podemos crear o modificar vistas, al igual que los campos


o los modelos, activando el modo desarrollador y accediendo a
Ajustes > Técnico > Vistas.

En dicha sección, podemos ver el listado de vistas existentes ac-


tualmente en el sistema. Podremos observar que la mayoría de
vistas son de tipo Formulario o Árbol.

Las de tipo Formulario se utilizan normalmente para ingresar un


nuevo registro en un modelo. Sin embargo, las de tipo Árbol se uti-
lizan para mostrar los registros ya existentes en los modelos.

54
Sistemas de gestión empresarial

3.4.  Interfaces de entrada de datos y


de procesos
Los sistemas ERP nos ofrecen una buena interfaz a los usuarios
para introducir todos los datos de la empresa u organización en el
sistema, así como todos los procesos que en ella ocurren cada día.
Cada ERP posee su propia interfaz, de modo que según el ERP que
manejemos tendremos una estructura u otra. En cualquier caso,
nuestro objetivo es introducir toda la información necesaria para
poder gestionar la empresa u organización.

EJEMPLO

Durante las siguientes secciones, vamos a configurar un


ERP de ejemplo de una imaginaria empresa de distintos
productos informáticos, de modo que dicha empresa
venderá algunos productos a una serie de clientes, a la vez
que se abastecerá comprando productos y material a una
serie de proveedores. Por ello, dicha empresa necesitará un
ERP tanto para gestionar las compras y ventas, como para
controlar y gestionar el stock del almacén, entre otras tareas.

1. Crear clientes y proveedores en nuestro ERP


Para poder gestionar las ventas o compras de la empresa u
organización en nuestro ERP, necesitamos tener todos los con-
tactos de proveedores y clientes registrados en nuestro sistema
ERP. A continuación, vamos a analizar la interfaz que nos ofrece
Odoo para introducir clientes y proveedores.
Curiosamente, a partir de la version 13 de Odoo, la manera de
gestionar las fichas de clientes y proveedores cambió. A partir
de entonces, en el sistema se crean Contactos, y un contacto
podrá ejercer como cliente o como proveedor en función de la
operación que hagamos (si vendemos un producto a un con-
tacto o si le hacemos un presupuesto, dicho contacto estará
ejerciendo como cliente en dicha acción).
Para registrar contactos en Odoo v.13 debemos tener instalado el
módulo Contactos en nuestro sistema. Por tanto, lo primero que
debemos hacer es asegurarnos tener instalado dicho módulo.

55
Tema 3: Organización y consulta de la información

Una vez hemos accedido al módulo, nos aparecen todos los


contactos existentes hasta el momento. Para crear uno nuevo,
deberemos hacer clic en la opción Crear.

A continuación, nos aparecerá un formulario en el cual introdu-


ciremos todos los datos de nuestro contacto, indicaremos si un
contacto es individual (particular) u otra empresa (compañía) y
rellenaremos toda su información para que quede registrado en
nuestro ERP y podamos operar con dicho contacto en el futuro.

Una vez hayamos rellenado la información del contacto, hare-


mos clic en la opción Guardar.

56
Sistemas de gestión empresarial

De este modo, el contacto quedará registrado en el sistema


exitosamente y, a partir de entonces, podremos operar con él
(por ejemplo, para hacerle un presupuesto).

2. Introducción de productos
Al igual que es necesario introducir en nuestro ERP todos los
proveedores y clientes que una empresa puede tener, también
se deben introducir todos los productos que la empresa compra,
vende o almacena. Así, los ERP suelen gestionar los productos
con un módulo específico para ellos o como una parte de otro
módulo más principal, como el de ventas o el de inventario. Re-
cordamos que cada ERP tiene una estructura distinta, aunque la
funcionalidad y contenido suele ser muy similar.
En la version 13 de Odoo, los productos pueden introducirse
dentro del módulo de Ventas. Para ello, lo primero que debe-
mos de comprobar es que tengamos dicho módulo instalado.

Entramos en el módulo Ventas y vamos a la opción Productos.

57
Tema 3: Organización y consulta de la información

Dentro de la sección Productos, accedemos a la opción Crear


para introducir un producto en el sistema. De ese modo, nos
aparecerá la interfaz para introducir un nuevo producto, donde
registraremos la información del producto: nombre, tipo de
producto, referencia, código, precio de venta… Además, infor-
maremos al sistema si el producto puede ser vendido, comprado
o ambas posibilidades. Además, dentro de esta sección, podre-
mos crear categorías de los productos.

Respecto al tipo de producto, debemos tener en cuenta que un


producto puede ser:
– Consumible: la cantidad del mismo es ilimitada.
– Almacenable: se registrará en el stock.
– Servicio: se utiliza cuando no se refiere a un producto como
tal, sino a un servicio.
También debemos diferenciar el precio de venta de un producto
de su precio de coste, puesto que estos datos se verán implica-
dos en otros módulos financieros del ERP.
Una vez hayamos ingresado toda la información sobre un pro-
ducto, hacemos clic en Guardar.

De esta forma, dicho producto quedará registrado en el sistema.

58
Sistemas de gestión empresarial

A partir de ese momento, el producto podrá ser tratado como


compra o venta en el ERP.
3. Introducción
Aunque la estructura puede variar según el ERP que usemos,
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 ubica-
ciones 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.
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 ven-
didos y los que se compran.
– Ubicaciones virtuales: las que se utilizan mientras se produ-
ce el desplazamiento de materiales entre las diferentes fases.

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 en-
trada de material.
– Interno: permite gestionar el stock.

59
Tema 3: Organización y consulta de la información

– 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 su producción.
– 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.

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).
– Plan de formación

Crear
clientes / proveedores

Categorías de
productos

Crear productos

Crear stock inicial

Crear orden de
compraventa

Comprobar los
niveles de stock

– Ejemplo de creación de la estructura del almacén


1. En primer lugar, será preciso crear las ubicaciones necesa-
rias, ya que todas ellas dependerán de la ubicación padre. 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.

60
Sistemas 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. D
espués, es posible añadir las categorías junto con los
productos necesarios. No hay que olvidar establecer el
proveedor.
6. T
ras esto, se puede crear el stock que se va a tener inicial-
mente, utilizando, por ejemplo, la ficha del producto.
7. Finalmente, se pueden fijar las reglas de abastecimiento auto-
má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 dispo-
nible, es preciso hacer una petición de material utilizando un
albarán interno. En este albarán se deben indicar las ubicacio-
nes, 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.

– 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, peti-
ciones de compra, etc. que se pueden llevar a cabo mediante
las herramientas para gestión y análisis.
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 diferen-
tes almacenes.
◦ Análisis de inventario: permite comprobar cómo se han re-
partido los productos por las distintas ubicaciones.

61
Tema 3: Organización y consulta de la información

3.5.  Informes y listados de la


aplicación

Informes de compras y ventas

Es muy importante llevar a cabo los diferentes informes de las com-


pras y ventas realizadas para tener todo el proceso documentado
En muchos ERP es habitual que se disponga de una serie de herra-
mientas que realizan este tipo de trabajo, se suelen encontrar en la
opción de Compras, Ventas o dentro del menú Informes.

Normalmente se puede 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
la opción Gráfica.

En el entorno de Odoo v.13, si desearamos realizar un listado de los


productos existentes en nuestro sistema, deberíamos acceder a la
sección Ventas > Productos.

Como podemos observar en la imagen superior, el sistema nos


permite elegir el tipo de listado. En este primer caso, nos aparece
una lista de bloques con información muy general sobre los dis-
tintos productos.

Si optásemos por la otra opción de listado, obtendríamos la si-


guiente imagen:

Como podemos observar, en este segundo tipo de listado, obtenemos


la información de manera más técnica y, por tanto, más comprable.

Por otro lado, podemos aplicar filtros sobre los listados, o agrupar
los elementos que se van a listar en función de las necesidades que
el usuario tenga en un momento dado.

62
Sistemas de gestión empresarial

3.6.  Cálculos de pedidos, albaranes,


facturas, asientos predefinidos, entre
otros

Pedidos y ventas

Todos los ERP tienen un módulo de Ventas. Gracias a este módulo


podemos gestionar, registrar y controlar las ventas que la empresa
realiza a sus clientes, controlando así el ingreso económico de la
empresa y su cantidad de producto.

En la versión 13 de Odoo, el módulo de Ventas nos permite realizar


tanto presupuestos como pedidos, e incluso el propio módulo ofre-
ce un análisis de las ventas realizadas.

Si hacemos clic en Pedidos, podremos realizar y registrar una venta


en el sistema.

63
Tema 3: Organización y consulta de la información

En este caso, haremos una venta al cliente previamente creado


del producto también previamente creado. Además, indicaremos,
como mínino, la información del plazo de pago y el número de uni-
dades del producto que vamos a vender.

Hacemos clic en el botón Guardar y el pedido quedará registrado


en el sistema.

Gestión de albaranes

Los albaranes son justificantes que confirman la entrega de un de-


terminado producto de una empresa a su cliente. Es un elemento
habitual en la logística de las compras y ventas de productos entre
proveedores y clientes.

Un buen ERP debe poder generar albaranes de los distintos pedidos.


Cada ERP gestiona los albaranes de forma distinta pero normal-
mente 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.

64
Sistemas de gestión empresarial

Gestión de las 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.

Los ERP permiten la gestión de factura tanto con los clientes como
con proveedores.

También es bastante frecuente incorporar facturas externas al siste-


ma. 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.

Gestión de asientos

Un asiento es un conjunto de apuntes que permiten representar


algún movimiento contable. Los ERP ofrecen 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.

Los dos tipos de operaciones más importantes que se pueden llevar


a cabo con los asientos suelen ser:

• Asentar: validar varios asientos de un determinado diario y pe-


riodo de tiempo.
• Conciliación de asientos.

Generación de informes contables

Los ERP nos permiten apreciar aquellas facturas que todavía no han
sido aprobadas. Una de las tareas más importantes en la contabi-
lidad 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 infor-


mes 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 ba-
lance. Generan un fichero PDF que se puede imprimir.

65
Tema 3: Organización y consulta de la información

• 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, compro-
bando 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 apartado, se deben amortizar los activos exis-
tentes, 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 comprobando


que los asientos de apertura y cierre estén creados. Si no lo están,
se crearán y cerrarán indicando los años de apertura y cierre. Nor-
malmente, se 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 en-
cuentran la de realizar los movimientos de pérdidas, ganancias y
pérdidas netas, cierre del año fiscal actual y apertura del siguien-
te año, entre otras.
• Es fundamental que antes de confirmar el cierre, se valide cada
movimiento que se ha creado.
• Para finalizar, se confirma el cierre seleccionando el botón de
Confirm.

Gestión de devoluciones

En muchos ERP, es posible gestionar las devoluciones en el pro-


ceso 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.

66
Sistemas de gestión empresarial

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 rec-
tificación se llevará a cabo buscando la factura antigua y crear una nueva
para rectificar la anterior. Deberá incluir la devolución del importe y vol-
ver a pasar por la aprobación, pago y validación de una factura habitual.

Órdenes de compras

Es fundamental que, para poder vender, haya existencias de los dis-


tintos 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 el módulo Compras se puede crear la orden


de compra en la que se establece el proveedor, junto con los pro-
ductos solicitados.

En una gran mayoría de ERP, una vez finalizado el albarán, es posible


generar los costes totales. De ese modo, se puede validar el pedido,
generar la factura y el albarán de entrada correspondiente.

Otros aspectos de contabilidad

La contabilidad se encuentra completamente integrada en los siste-


mas 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 corres-
pondiente contable.

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


de la contabilidad empresarial, permitiendo conciliar facturas, visua-
lizar balances, y otro tipo de tareas fundamentales.

Plan de formación

Gestión de los
Gestión de facturas alimentos

Cierrre de periodos Generación de Gestión de la


informes conciliación

67
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á y, tras ello, debe aparecer un listado que


contenga todos los ejercicios fiscales que se han definido, junto con
su estado (abierto o cerrado).

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 indi-
cá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.

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


depende del ERP que utilicemos, más o menos posibilidades para
configurar el libro para una misma empresa.

La opción más recomendable de la documentación es crear un dia-


rio 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 utiliza-
ción de cheques.
68
Sistemas de gestión empresarial

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.

Plan contable

Se refiere a la estructura jerárquica de las distintas cuentas contables. Muchos ERP también nos
permiten gestionar los planes contables.

Una vez se ha 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. Por ejemplo, hay ocasiones en las que surgirá la necesidad de
modificar alguna cuenta debido a algún cambio en el plan contable.

3.7.  Gestión de los recursos humanos


Plan de formación

Configuración Configuración Configuración


de la asistencia de la empresa de contratos

Gestión de Alta de
Nómina
la asistencia contratos y empleados

Informes

Problema planteado

La buena gestión de recursos humanos (RRHH) es una de las piezas importantes en cualquier em-
presa y puede ser gestionada por un ERP. Entre otras opciones, los ERP nos permiten crear, modificar
y mantener los departamentos y trabajadores de la empresa que tenemos registrados en el sistema.

Además, pueden gestionarse otros aspectos como los contratos de los empleados, la asistencia al
trabajo, la organización en caso de ausencias, la gestión de nóminas o la obtención de informes,
entre otras funciones.

• 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.

69
Tema 3: Organización y consulta de la información

EJEMPLO

Una empresa de informática está creciendo y necesita


contratar personal de contabilidad para la gestión contable
y de recursos humanos, externos a la empresa. Por tanto,
en el módulo de Recursos Humanos se gestionarán dos
secciones distintas: por un lado, los nuevos trabajadores,
el jefe y los empleados; por otro, los departamentos de
Ventas, Técnicos y Dirección.
Dirección solo contará con una persona, mientras que
Ventas y Técnicos constarán de dos personas cada uno.

Una vez configurados todos los aspectos principales para la gestión


de empleados y contratos, es posible crearlos y relacionarlos.

Para crear un contrato, es fundamental indicar el nombre del em-


pleado 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.

También se deben asignar los directores de cada departamento, ya


que todos los empleados ya están dados de alta en el sistema.

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.

PARA + INFO

El mecanismo más utilizado por las empresas es la justi-


ficació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.

De la misma forma, la ausencia de un empleado al puesto de tra-


bajo 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.

70
Sistemas de gestión empresarial

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.

Si tenemos un ERP bien configurado, podremos gestionar las nómi-


nas de los empleados de manera correcta. Para ello, normalmente
en los ERP es preciso tener configurados los datos de los contratos.
Además, 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. 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 infor-
me con las ausencias y nóminas de los empleados.

3.8.  Herramienta de monitorización.


Incidencias: resolución e identificación
Los ERP incluyen varias herramientas que nos ayudan a monitorear
el sistema. Para ello, el sistema hace una revisión contínua de todos
los parámetros posibles en el ERP.

Monitorizar el ERP nos puede ayudar a conseguir dos objetivos


principales:

• Detectar posibles errores en el sistema.


• Estar seguros de que el sistema está funcionando correctamente,
es decir, de que hace lo que se espera que haga.

71
Tema 3: Organización y consulta de la información

Para ello, el sistema puede configurarse para que cada un tiempo


realice un chequeo general y así asegurarse de la ausencia de erro-
res o disfunciones.

Algunos ERP contienen una herramienta de aviso, de modo que,


cuando ocurre una incidencia o error en el sistema, el adminis-
trador es avisado automáticamente y así podrá resolver rápido
el error sin que este genere mayores problemas en el sistema de
información ERP.

Entre otros parámetros, las herramientas que nos ofrezca un ERP


para monitorear pueden determinar:

• Los tiempos de respuesta de las diversas funcionalidades del ERP.


• La ausencia de datos en campos clave.
• La disponibilidad continua de cada funcionalidad del sistema.

Por otro lado, 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

Monitorización en 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 despren-
der 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 REPOR-


TING 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.

72
Sistemas de gestión empresarial

• 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).
Otra sección bastante importante es RUNTIME STATISTIC, que per-
mite 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 implica-


ción al sistema de las diferentes consultas (Query/Index Stastistics
Collector) y, por otra, el sistema de auditoría (Statistics Monitoring).

Control de rendimiento

Algunos ERP contienen un módulo de rendimiento que nos per-


mite determinar los tiempos de ejecución que tiene cada función
del sistema, de este modo, el sistema nos puede mostrar informes
sobre los tiempos de ejecución y detectar así posibles anomalías o
bajos rendimientos.

Estas herramientas nos ayudan a obtener las estadísticas a la eje-


cución sobre la cantidad de llamadas a los servicios, junto con el
tiempo empleado para ello, los métodos ORM del servidor, la in-
formació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.

Para finalizar este apartado, vamos a señalar 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.

https://www.postgresql.org/docs/9.2/sql-explain.html

Permite mostrar el plan de ejecución para una sentencia


determinada.

73
Tema 3: Organización y consulta de la información

3.9.  Procesos de extracción de datos


en sistemas ERP - CRM y almacenes de
datos
A pesar de tener toda la información de una empresa u organización
en un ERP, es posible que a veces necesitamos exportar la informa-
ción contenida en el ERP para otras plataformas por necesidades
concretas o partes del flujo de trabajo mixto en una empresa.

A continuación, vamos a ver un ejemplo de exportación de datos


con Odoo v.13.

Imaginemos que, por necesidades del negocio, necesitásemos


exportar la información de los productos que tenemos en nuestro
sistema ERP hacia una tabla Excel. Para ello, lo primero que debe-
ríamos hacer es realizar el listado de productos.

Tal y como se marca en la imagen superior, haremos clic en el símbo-


lo de exportación, de modo que nos aparecerá el siguiente mensaje:

De esta forma, podríamos exportar la información contenida en


nuestro sistema ERP a otros formatos, entre ellos, Excel.

74
Sistemas de gestión empresarial

Al aceptar la exportación, podremos visualizar y editar la informa-


ción que teníamos en el sistema en otro programa, en este caso,
en Microsoft Excel.

Así podremos almacenar en otras plataformas información con-


tenida en nuestro sistema ERP. En este caso hemos exportado de
Odoo v.13 a Microsoft Excel, pero podríamos haber elegido otro
formato, como .csv u otros.

75
4
IMPLANTACIÓN DE SISTEMAS ERP - CRM
EN UNA EMPRESA
Sistemas de gestión empresarial

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 instala-
ció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.

PARA + INFO

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 (implanta-
ció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 organizati-
va que ayude a desarrollar la implantación.

Esta propuesta se puede adaptar a las distintas necesidades de un proyecto, sin llegar a ser demasia-
do exhaustivos. Basta con realizar una simple aproximación para indicar desde dónde se va a partir.

Análisis

Mantenimiento Diseño

Implementación Desarrollo

Pruebas

Ciclo
Ciclode
devida
vidaclásico.
clásico

77
Tema 4: Implantación de sistemas ERP - CRM en una empresa

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 correspondien-
te 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 aplica-
ción y realizando sus pruebas correspondientes.

Mediante estas pruebas, es posible asegurar el correcto funciona-


miento 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 modifica-
ciones 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.

4.1.  Metodología de implantación


Metodología general: fases

Fase 1: iniciación Fase 2: desarrollo Fase 3: implementación

Viabilidad del sistema y Análisis detallado y diseño


especificación funcional Instalación y configuración
del sistema

Fase 5: producción y soporte Fase 4: implantación

Operación normal y Sistema funcionando y


mantenimiento formación

Esta metodología dispone de cinco fases, en lugar de seis, como se


vio en el apartado anterior.

78
Sistemas de gestión empresarial

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 sen-
tar 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 deter-
minará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 departamen-
tos 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.

– Realizar estudio de viabilidad económica, técnica y orga-


nizativa: 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 de-
partamento legal lo revise.

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


formes 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, me-
diante reuniones, detallar cada paso, conociendo los elementos
involucrados, las medidas de seguridad que debemos 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 preventi-
vas 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.

79
• Fase 2: desarrollo. En esta fase se puede crear el sistema in-
formático completo sobre papel. Se comenzará analizando la
especificación funcional para, de esta forma, ampliar el docu-
mento (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, distribu-
ción, etc. Seguidamente, se pueden definir todos los elementos
software que sean necesarios: módulos a utilizar, permisos, con-
figuraciones, etc.
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 pue-
de 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 en-
cargar 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 super-
visar todo el funcionamiento del sistema para adaptar los datos
antiguos a las nuevas situaciones. Finalmente, se debe compro-
bar 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.

80
Sistemas de gestión empresarial

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.

• 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 si-
guen funcionando y que los usuarios están haciendo un buen uso
de ellos. A través del mantenimiento se asegura que las modifica-
ciones 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 com-
probació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 di-
ferentes modificaciones que se hayan producido. El objeto
principal es detectar la corrección del trabajo.
b. Si en el contrato se encuentra especificada la imple-
mentació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.

81
Tema 4: Implantación de sistemas ERP - CRM en una empresa

4.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 facili-


ta 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 sof-


tware, 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 óptimo de la empresa.

Adaptación del ERP a una empresa

Una de las principales tareas del análisis y diseño es saber detec-


tar e implementar los diferentes cambios en el sistema ara 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 caracte-
rísticas necesarias.

4.3.  Selección de los módulos del


sistema ERP - CRM
Los ERP disponen de múltiples módulos para incorporar a un sis-
tema que se esté implantando en una empresa u organización. Sin
embargo, no es necesario incorporar todos los módulos que nos
ofrece el ERP a nuestro sistema, ya que muchos de ellos no serán
usados e incluso podrían provocar problemas en la interacción de
los usuarios de la empresa u organización.

En un buen proceso de implantación de un ERP en una empresa


debe realizarse un análisis de los módulos necesitados y, por tanto,
ajustar el sistema a las necesidades de la empresa. Dicho de otro
modo, instalar solo los módulos necesarios. Como ya sabemos,
para un buen ajuste del sistema ERP a la empresa u organización,

82
Sistemas de gestión empresarial

no solo habrá que elegir bien los módulos que se van a instalar,
sino que además se podrán modificar módulos ya existentes para
adaptarlos mejor aún al modelo de negocio e incluso el desarrollo
de nuevos módulos.

En la versión 13 del ERP Odoo, algunos de los módulos predefinidos


que podemos instalarnos son los siguientes:

Crear un módulo

Cuando creamos un módulo nuevo en un sistema ERP, debemos


tener en cuenta multitudes de aspecto y conocer todos los elemen-
tos que tienen cabida dentro de un módulo, algunos de ellos son
los siguientes:

• Vista:
Es una representación gráfica del objeto en la parte del cliente.
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 de-
terminada ventana, abrir informes, entre otras.
• 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.

83
Tema 4: Implantación de sistemas ERP - CRM en una empresa

Una vez creado un módulo, se necesitará, como mínimo, la defi-


nició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.

4.4.  Tablas y vistas que 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 fiche-


ros 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 represen-


tació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:

• Vista formulario
Utilizada cuando se editan los datos, los campos se pueden dis-
tribuir 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 co-
lumnas, una para la etiqueta y la otra para el campo.
– Es posible utilizar una etiqueta especial para dividir una colum-
na 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ña-
dir un panel de búsqueda y filtrado en su parte superior.

84
Sistemas de gestión empresarial

• 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.
En la versión 13 de Odoo, podemos editar varias vistas. Por
ejemplo, podríamos cambiar el formato de la vista resultante de
la lista de productos. Para ello, deberíamos ir a la lista de pro-
ductos, como hemos visto anteriormente y elegir la opción de
Editar Vista: Lista.

De este modo, podríamos editar y cambiar el tipo de vista por


las que hemos visto anteriormente (formulario, árbol, gráfico…)
u otras que nos ofrece Odoo.
También podríamos realizar cambios directamente desde el có-
digo fuente que se presenta en XML.

85
Tema 4: Implantación de sistemas ERP - CRM en una empresa

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.

PARA + INFO

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>. Finalmen-
te, 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 visuali-
zada 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 median-
te 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 etique-
tas 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.
– <group colspan=”Número” rowspan=”Número” expands=”-
yes” col=”Número” string=”Cadena a mostrar”>

86
Sistemas de gestión empresarial

Permite agrupar distintos controles de datos en columnas de la


siguiente forma:
◦ 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.
◦ Después, se puede dividir el espacio asignado en columnas
(las que estén especificadas en la propiedad col).
◦ Por último, el espacio que no se utilice, se puede distribuir
entre el resto, siempre y cuando la propiedad expand tenga
como valor, yes.

Las vistas gráficas y de búsqueda

La vista gráfica permite crear un gráfico de barras o circular par-


tiendo 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 eti-
queta <field, teniendo la posibilidad de poderlos agrupar con la
etiqueta <group.

Para añadir botones de agrupación, es posible utilizar una entra-


da, <filter, en la que se define, mediante la propiedad context, el
campo que se desee agrupar.

4.5.  Consultas necesarias para


obtener información
Los sistemas ERP, al estar basados en motores de bases de datos,
presentan 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 venta-


jas que presentan los ERP 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 marke-


ting y para conocer el área de cliente al que va dirigido.

87
Tema 4: Implantación de sistemas ERP - CRM en una empresa

4.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 formula-
rio, 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 perso-
nalizarlos fácilmente y, además, ejecutarlos.

4.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.

Para crear una nueva vista debemos tener en cuenta los siguientes
aspectos:

• Configurar el sistema: se debe lanzar el asistente de instalación


y configuración
Una vez se muestre el asistente, se selecciona la opción de In-
formes 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.

• Seleccionar el objeto base del sistema que se va a utilizar en


la configuración general. Seguidamente, se pueden definir los
campos que sean obligatorios, para determinar los datos que
sean básicos.

• Fijar aquellos campos que se van a mostrar, estableciendo para


el campo secuencia un determinado valor numérico.

• Para finalizar, existe la posibilidad de establecer filtros sobre algu-


no de los campos seleccionados en la pestaña Filtros en Campos.

• En este punto ya es posible finalizar el diseño del informe, por


lo que se puede seleccionar la opción Guardar.

88
Sistemas de gestión empresarial

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.

Tablero personalizado de informes

Los informes personalizados cuentan con una forma bastante or-


ganizada 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 table-
ros de forma estándar, ya se pueden definir los que se han creado
en este caso.

• Para crear un tablero nuevo, se asociará una acción diferente (infor-


me) 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 se preguntará sobre el nombre del
objeto padre para posicionar la nueva entrada, junto con el nom-
bre a mostrar.

4.8.  Creación de procedimientos


almacenados
Al ser una herramienta con una base en código fuente libre, está
generalizada a cualquier tipo de empresa, ya que cubre las nece-
sidades 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 po-
sible 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 ám-
bito empresarial.

Para llevar a cabo este proceso de adaptación del código a la em-


presa, 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.

89
5
DESARROLLO DE COMPONENTES
Sistemas de gestión empresarial

Todos los ERP están hechos con un lenguaje de programación. Por


ejemplo, en el caso de Odoo, está realizado mediante el lenguaje
de programación Python.

Es imprescindible el conocimiento de este lenguaje de pro-


gramación para 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.

En una de las partes del tema se tratará sobre la implementación de


los diferentes módulos para Odoo, comprobando la estructura de
ficheros necesarios, su forma de implementación y su correspon-
diente 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.

PARA + INFO

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án-
dares necesarios para asegurarse de qué es lo que
se debe hacer y cómo hacerlo.

91
Tema 5: Desarrollo de componentes

5.1.  Python como lenguaje para el


desarrollo de sistemas ERP - CRM.
Características y sintaxis del lenguaje.
Declaración de datos, estructuras de
programación y 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, consi-
gue 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 uti-


lizar, 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 deter-
mina 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 blo-


ques 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.

92
Sistemas de gestión empresarial

PYTHON JAVA

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

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#.

PARA + INFO

De todas las anteriores, la más utilizada es la


versión de C, ya que es la que ofrece más estabili-
dad 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 tradi-
cional en octal (027) y hexadecimal (0x3F), decimales o en coma
flotante (23.45) y en números complejos (2+7i). Lo más impor-
tante es saber cuál es el valor máximo según el tipo que se utilice
y la plataforma en la que se ejecute.
• 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 .

93
Tema 5: Desarrollo de componentes

Para aquellos casos en los que sea necesaria una mayor precisión,
es recomendable utilizar valores en decimal. En este caso, es un ob-
jeto específico de Python, por lo que se debe importar. Este ofrece
una precisión de hasta veintiocho decimales. Los números decima-
les 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 (>>)

¡RECUERDA!

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).

Tipo Booleano

Es el más conveniente cuando se trabaja con expresiones condicio-


nales. 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)

94
Sistemas de gestión empresarial

• 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 valo-


res 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 bas-
tante ú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.

• find (subcadena) → Devuelve la primera posición en la que apa-


rece 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.

95
Tema 5: Desarrollo de componentes

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 corres-
pondiente valor mediante los dos puntos (:).

Una vez creado, se puede tener acceso a cada uno de sus elemen-
tos 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 no-
tación de los corchetes y una clave que no se haya utilizado hasta
el momento.

Para eliminar un registro, simplemente se usará la función del


junto con el registro que se quiera borrar, (del dVal[“clave”]). Tam-
bién se puede utilizar la función clear() para el vaciado completo.

Listas

Las listas utilizadas en Python se refieren a las estructuras dinámi-


cas 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 consecuti-


va 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 (*).

96
Sistemas de gestión empresarial

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áme-
tro. En caso de que no exista, devolverá un error.
Es importante el orden que puede tener una determinada lista,
desde su posición inicial hasta la final. Existen una serie de me-
canismos 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 posi-
ción, como, por ejemplo, (“a” in Lista1).

PARA + INFO

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 lis-
tas 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))

97
Tema 5: Desarrollo de componentes

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.

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 necesi-


tan 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 ini-
cialicen, 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 pue-
den 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 ele-
mento 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

98
Sistemas de gestión empresarial

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.

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 auto-


mática, un espacio entre ellos.
• Cuando se utiliza el operador de concatenación (+), será necesa-
rio 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 finaliza-


ció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 re-


presentar 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”

Mediante la cláusula if, se pueden realizar un conjunto de sen-


tencias 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.

99
Tema 5: Desarrollo de componentes

– 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:
◦ elif <condicion>
◦ 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 len-


guajes, 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 pertenez-


can a la lista, tomando un valor correspondiente en cada iteración.
Por ejemplo, si se disponen de cinco valores, se mostrarán aque-
llos 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

• 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

100
Sistemas de gestión empresarial

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, tam-


bié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 correspon-


diente sangrado.

En el siguiente ejemplo se declara una clase aula, con dos méto-


dos 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 po-


sible 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.

101
Tema 5: Desarrollo de componentes

• _len_(self): utilizado con la sentencia len(ObjetoClase). Deter-


mina la longitud de la clase.
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 implemen-
tado en la clase.

Objetos, campos y métodos

Como ya se ha indicado en el desarrollo de este módulo, en Odoo


todo son objetos. Cada tipo de recurso puede tener un objeto dife-
rente con todos sus datos correspondientes para poder acceder a
todos los elementos del tipo.

Categoría
Libro 1/1
+name: char
Es/Tiene
+título: char
+autor: char
+isbn: char
+precio: float
1/n
+resumen: text
+fecha: date
+revisado: boolean
+aprobado: selección: sí, no, pendiente

Se pueden transformar todas las tablas en objetos mediante la


utilización de un mecanismo de ORM (Mapeado de objetos rela-
cionales) 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ña-
dir 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 subraya-
do, entre las que se distinguen:

102
Sistemas de gestión empresarial

• _auto: su valor por defecto es True y permite especificar si la ta-


bla 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.
• _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 re-
gistro 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 utili-
zar en las operaciones de búsqueda. Por defecto, su valor es name.
• _sequence: nombre de la secuencia SQL que puede utilizar la ta-
bla 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 Odoo y en los
objetos correspondientes del sistema. Por tanto, es posible diferen-
ciar 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 he-
redado y, a continuación, añadirlos de la misma forma.
• 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 cam-
pos que están definidos en el heredado.
103
Tema 5: Desarrollo de componentes

• 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 corres-
pondiente 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 com-
ponen. 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úme-
ro 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.
• 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 des-


cripció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 funcio-


nes 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.

104
Sistemas de gestión empresarial

• 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 im-
prescindible 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 Odoo 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.

5.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 insta-


lada 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

BUSCA EN LA WEB

Se puede descargar la versión deseada desde la página


oficial desde Windows:
http://www.python.org/getit/

105
Tema 5: Desarrollo de componentes

Si es desde Linux, no es necesario, ya que la mayoría de las distri-


buciones ya vienen con los paquetes necesarios incluidos para su
funcionamiento.

Descarga e instalación de Eclipse

BUSCA EN LA WEB

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.

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 com-


probar que todo funciona de forma correcta. En este caso, se va a
desarrollar un ejemplo muy frecuente en el mundo de la programa-
ción, como es el “Hola Mundo”.

A continuación, se siguen los pasos para este ejemplo:

106
Sistemas de gestión empresarial

• En primer lugar, se crea el proyecto Python mediante File/New/Py-


dev proyect. Se debe comprobar que el nombre del proyecto es el
correcto, seleccionando Python en tipo de proyecto, junto con la ver-
sió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, selec-
cionando 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 Tem-
plate, se seleccionará <Empty>.

• En caso de estar trabajando bajo un sistema operativo de Win-


dows, 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 corta-
fuegos 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 eje-


cución que va a lanzar, se seleccionará Python run y, en la parte
inferior de la pantalla, se podrá ver la ejecución.

5.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 continua-
ció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: ____odoo___.py

Este fichero tendrá el siguiente formato:

<?xml versión=”1.0”?>
<terp>
<data>
<record>
/*En el interior de esta marca se indi-
cará la información*/
</record>
</data>
</terp>

Cada etiqueta <record> indicará un registro a insertar. Será preciso


indicar todos los campos requeridos de la tabla.

107
5.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 me-
diante 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 in-


terfaz 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écni-
cos los encargados de realizarlas.

5.5.  Llamadas a funciones, librerías


de funciones (API)
Es conveniente, siempre que se trabaje con lenguajes estruc-
turados, 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 pa-
ré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 de-
má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.

108
Sistemas de gestión empresarial

En algunas ocasiones, se necesitará hacer una llamada a una fun-


ció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 sis-
tema 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 an-
teponiendo 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 se-
rie de colecciones y métodos para facilitar la implementación de
los códigos fuentes.

BUSCA EN LA WEB

Para acceder a dicha API es posible hacer clic en:


https://docs.python.org/3/library/index.html

5.6.  Depuración de un programa


Una vez desarrollado un código determinado en Python, para ase-
gurarse 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.

109
Tema 5: Desarrollo de componentes

Ya configurado el código, se lanzará el servidor mediante la opción


debug, forzando de esta forma al sistema Odoo 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 dife-
rentes valores, como pueden ser, entre otros, establecer puntos de
ruptura y ejecutar paso a paso.

5.7.  Manejo de errores


Control de errores

A lo largo de un programa pueden ir apareciendo errores por dis-


tintas situaciones:

• Código que no está bien programado.


• Datos mal introducidos.
• Otras causas.

Independientemente de la causa que sea, es fundamental desa-


rrollar 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 excep-
ciones correspondientes.
CONCEPTO

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 con-
siga frenar la aplicación.

Las excepciones son objetos explicativos que van a tener asig-


nado 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 opera-
ció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 captu-


radas 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.

110
Sistemas de gestión empresarial

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 pro-
duzca algún error.
Dentro de finally se pueden situar las sentencias que se van a ejecutar una vez que se trate un de-
terminado 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 si-
guientes: 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 funciona-
lidades 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.

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, uti-
lizando 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 recomen-
daciones 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.

111
BIBLIOGRAFÍA / WEBGRAFÍA
” César San Juan Pastor, Sistemas de gestión empresarial. Garceta, 2015.

„ http://www.dataprix.com

„ https://www.odoo.com/documentation/user/13.0/es/

112

También podría gustarte