Beruflich Dokumente
Kultur Dokumente
CICLOS DE NEGOCIO
ting! Tecnologas Inteligentes de Software S.L.
JULIO 2010
V2.0
ndice
I.
I. II. III. IV.
HERENCIA
DEPENDENCIA ENTRE MDULOS HERENCIA DE LOS MODELOS HERENCIA DE LAS VISTAS MODIFICACIN DEL MDULO BASE: CAMBIOS EN EL FORMULARIO DE EMPRESA Y CONTACTO
II. III.
I. II. III.
IV.
V.
I. II.
ACCIONES DE SERVIDOR
TABLEROS
POR DEFECTO OPENERP. CREACIN DE UNO A MEDIDA.
VI.
EJERCICIO PRCTICO
ndice
Workflows
I.
Transiciones
Condiciones
Rol Python
Pulsacin de botn
OR,
XOR
Ejemplo de Workflow
Workflows: terminologa
Definiciones de la WfMC (Workflow Management Coalition) Workflow: el grafo Actividad: un nodo del grafo Transicin: una arista entre dos nodos del grafo
instancia
Definiendo un workflow
Definir el workflow
name: nombre del workflow osv: nombre del objeto on_create: si debe instanciarse un workflow con la creacin del objeto
Definir (un listado de) nodos Definir (un listado de) transiciones
Actividades (1)
Campos de nodos/actividades
wkf_id flow_start flow_stop kind
dummy (no hace nada) function (llama a un mtodo de un objeto) subflow (llama a un subworkflow) Stopall (en cuanto llega a este nodo el workflow finaliza)
subflow_id
si kind = subflow <field name="subflow_id" search="[('name','=','account.invoice.basic')]"/>
Actividades (2)
Actividades (3)
Join Mode
XOR
Si el join mode est definido como xor este nodo del workflow se activar en la primera transicin que llegue a l. En cambio si est definido como and el nodo solamente se activar cuando se completen todas las transiciones que llegan hasta ese nodo
AND
Split Mode
XOR
Si el split mode est definido como XOR se enviara el flujo solamente a la siguiente transicin vlida a la que apunte Enva el flujo a todas las transiciones vlidas (0 o varias) de manera secuencial.
OR
AND
Enva el flujo a todas las transiciones vlidas a la vez.
Transiciones
Campos: act_from: id de la actividad de origen act_to: id de la actividad destino condition: expresin en python signal: nombre de un botn role_id: rol necesario para ejecutar la transicin Expresiones: sintxis en python, se pueden usar los campos del objeto Ejemplo: zip == 1400 phone == mobile
WIZARDS
II. WIZARDS
Entorno de desarrollo
Principios Definicion Clase Campos Formularios Metodos Registrando wizards
Wizard : Principio o
Un wizard es una succesin de pasos. Un paso est compuesto por varias acciones: 1. Enviar un formulario al cliente con algunos botones 2. Recibir el formulario con los datos y los botones pulsados por el cliente 3. Ejecutar alguna accin 4. Enviar una nueva accin al cliente (formulario, imprimir, ...)
Ejemplo de wizard
Definicin : class
class wizard_class(wizard.interface): states = { 'init': { 'actions': [], 'result': ... 'state_name': { 'actions': [_method_name], 'result': ... } } wizard_class('wizard.name')
Definicin : class
class part_sms(wizard.interface): states = { 'init': { 'actions': [_get_value], 'result': {'type': 'form', 'arch':sms_send_form, 'fields': sms_send_fields, 'state':[('send','Send SMS'), ('end','Cancel')]}, 'send': { 'actions': [_sms_send], 'result': {'type': 'state', 'state':'end'} } } part_sms('res.partner.sms_send')
Class
Actions Acciones que se pueden ejecutar en los distintos pasos Result: tipos posibles form -> arch, fields, state Ejemple: 'result': { 'type': 'form', 'arch': sms_send_form, 'fields': sms_send_fields, 'state': [('send','Send SMS'), ('end','Cancel')] }, state -> state print -> report, state
Definicin : campos
Campos sms_send_fields = { 'app_id': {'string':'API ID', 'type':'char', 'required':True}, 'user': {'string':'Login', 'type':'char', 'required':True}, 'password': {'string':'Password', 'type':'char', 'required':True}, 'text': {'string':'SMS Message', 'type':'text', 'required':True} }
Definicin : Formularios
Formularios sms_send_form = '''<?xml version="1.0"?> <form string="SMS"> <separator string="Bulk SMS send" colspan="4"/> <field name="app_id"/> <newline/> <field name="user"/> <field name="password"/> <newline/> <field name="text" colspan="3"/> </form>'''
Acciones de servidor
Las acciones del servidor son una funcionalidad bastante potente de
Ejecutar un determinado wizard, por ejemplo, el de JIT en fabricacin cada vez que se confirma una orden.
Acciones de servidor
Las acciones del servidor son una funcionalidad bastante potente de
Ejecutar un determinado wizard, por ejemplo, el de JIT en fabricacin cada vez que se confirma una orden.
Registro en el historial de los registros de un objeto, por ejemplo, todas las acciones que afectan a un cliente, se pueden registrar en su pestaa historial.
Acciones de servidor
Las acciones del servidor son una funcionalidad bastante potente de
Ejecutar un determinado wizard, por ejemplo, el de JIT en fabricacin cada vez que se confirma una orden.
Registro en el historial de los registros de un objeto, por ejemplo, todas las acciones que afectan a un cliente, se pueden registrar en su pestaa historial.
Acciones de servidor
Las acciones del servidor son una funcionalidad bastante potente de
Ejecutar un determinado wizard, por ejemplo, el de JIT en fabricacin cada vez que se confirma una orden.
Registro en el historial de los registros de un objeto, por ejemplo, todas las acciones que afectan a un cliente, se pueden registrar en su pestaa historial.
Acciones de servidor
All nos encontramos con la siguiente informacin:
Tipo de accin: en la siguiente diapositiva se listarn todas las acciones posibles dentro de
Acciones de servidor
All nos encontramos con la siguiente informacin:
Tipo de accin: en la siguiente diapositiva se listarn todas las acciones posibles dentro de
Acciones de servidor
El primer paso es definir el tipo de accin, dentro de los siguientes tipos:
Accin cliente: se ejecuta del lado del cliente, y permite lanzar un wizard o un informe
Iteracin: Basada en una expresin bucle de python, permite repetir acciones de servidor. Se suelen usar en objetos con campos one2many en los que se quiere llevar a cabo una accin de servidor sobre los objetos referenciados en el one2many (pedidos de venta y lineas de venta
Cdigo Python: Para ejecutar cdigo python de varias lneas. El valor devuelto es el valor de la variable action = {}. Esto tiene sentido slo si se desea que una especfica ventana (formulario) emerja en un contexto especfico. En la mayora de las ocasiones no es necesario un valor de retorno. Nota: El cdigo es ejecutado utilizando la funcin exec de python, el cual se ejecuta en el espacio de nombres del diccionario con variables: object,time,cr,uid,ids
Trigger: Cualquier transicin del flujo de trabajo puede ser desencadenado con ste tipo de accin. Permite:
Flujo sobre: El objeto OpenERP sobre el que se desea disparar el flujo de trabajo. Flujo para ser ejecutado en este modelo.
Disparar sobre: Seleccionar el objeto/ID del modelo sobre el cual se ejecutar el flujo. Por ejemplo seleccionar el ID de factura si se desea disparar un cambio en la factura.
Acciones de servidor
El primer paso es definir el tipo de accin, dentro de los siguientes tipos:
Accin de email: Configurar una direccin de correo electrnico, asunto y mensaje.
Requiere configurar el servidor SMTP integrado en Open ERP. Opcionalmente se puede hacer uso de Power email, una arquitectura de email genrica para Open ERP que ofrece mayor funcionalidad y automatizacin de correos (no requiere acciones de servidor). Crear objeto: Se utiliza para crear un nuevo registro en cualquier modelo cuando se desencadena una accin de servidor. Permite hacer uso de la funcin historial mencionada anteriormente. Con Mapeo de Campos se da valor a los campos del registro. A continuacin se muestran capturas de pantallas con un ejemplo de creacin de eventos para un pedido de venta: Escribir objeto: Similar a Crear objeto a excepcin de que es utilizado para modificar un registro existente identificado por write_id. Si se actualiza un registro previamente creado con Crear Objeto, el mismo campo para create id puede utilizarse para write id. Multi accin: Para crear mltiples acciones de servidor y ejecutarlas de una en una