Entradas

Mostrando entradas de 2013

ADempiere: Reportes & Procesos

La ventana "Reportes y Procesos" es usada para definir los parámetros y reglas de acceso para cada reporte y proceso corriendo en el sistema. Esta ventana solamente puede ser accedida por el rol System Administrator. Los registros que se hacen en esta ventana se guardan en la tabla AD_Process y las instancias de los procesos se van registrando en la table AD_PInstance, desde aquí se puede conocer la fecha y usuario que ejecutaron el proceso además de otros datos relacionados con el mismo. La ventana para el registro de los procesos & reportes en el sistema se encuentra ubicada en Menu » Diccionario de Aplicación » Informe y Procesos (Report & Process) Esta ventana esta compuesta por 4 pestañas (La principal y las dependientes): Informe y Proceso: Donde se registra el código y nombre que identifica al reporte o al proceso en el sistema y la clase, procedimiento o flujo de trabajo que contiene las funciones manejadoras del reporte o proceso. Traducción de I

ADempiere: Codigo Comun

Imagen
Revisando mis notas me di cuenta que me salte un punto importante al hablar de la arquitectura de ADempiere, y es que para el proceso de extensión del ERP se cuenta con códigos comunes que pueden ser usados desde el código como dentro del diccionario de datos. Al escribir sobre los códigos comunes voy a hablar acerca de reglas de validación y referencias desde el diccionario de datos. Variables de Contexto Estas son variables globales que pueden usarse en todo el sistema, o para una ventana o tabla especifica. Todas las variables de contexto se pueden ver desde Herramientas » Preferencias Desde el código o programaticamente las puedes llamar como se muestra en este ejemplo (se invocan usando el operador # ) : - Invocando la variable de contexto AD_Role_ID   int rolactual_id =Env.getContextAsInt(ctx, "#AD_Role_ID"); Desde un campo (ad_field) puedes invocar una variable de contexto desde el campo "displaylogic" llamándola entre el operador @, c

ADempiere: Model Validator

Un Validador de Modelo es una clase java creada por el desarrollador en la cual debe implementar la interfaz ModelValidator ubicada en el directorio org.compiere.model . Esta interfaz tiene dos metodos importantes (modelChange y docValidate) los cuales son invocados al momento de hacer cambios al modelo o al validar documentos. El Model Validator se registra para controlar los cambios que se hagan en tablas, determinar la reaccion de cambios en el modelo por documentos o controlar las acciones de los documentos como completar, anular, cerrar, etc. En pocas palabras, usamos la interfaz ModelValidator para «programar la logica externa al nucleo de ADempiere». Metodos getAD_Client public int getAD_Client_ID() Metodo necesario para indicar a la clase el cliente que se esta monitoreando. Si no se implementa este metodo el validador no funcionara. Initialize (Inicializar) public void initialize (ModelValidationEngine engine, MClient client) Permite registrar las tabl

ADempiere: Callout

Imagen
Un callout es una codificación utilizada para modificar, bajo ciertas condiciones, el contenido que se muestra en un campo de una determinada ventana. El metodo callout puede escribirse en una clase creada en un paquete especifico de nuestra customizacion... ... o desde el diccionario de datos usando el tipo de evento callout y el tipo de regla JSR 223 Scripting APIs.  La diferencia es que para ver la funcionalidad del método creado desde el ambiente de desarrollo se debe compilar el proyecto. La invocación del método callout se hace desde la columna de la tabla (Table & Column) desde el campo "Callout". En este campo se pueden llamar tantos métodos calificados como sea necesario, solo deben ir separados por punto y coma ( ; ). Invocar metodo callout desde clase java <paquetes> . <callout_name> . <metodo>  Ejemplo real - Invocando un solo metodo: ve.com.lve.model.produccion. CalloutPlanificacion . getCalculaDias ;  Eje

ADempiere: Generate Model

Imagen
Existen varias opciones en ADempiere para darle vida a nuestro modelo diseñado con el Diccionario de Datos. Para esto debemos entrar al mundo maravilloso de la codificacion, con un poco de conocimiento en Java y en la funcionalidad de ADempiere podemos ser capaces de hacer desarrollos y personalizaciones del sistema por nosotros mismos mejorando la herramienta. En esta entrada escribire acerca de la clase Generate Model, luego ire escribiendo hablando acerca de otras clases de gran importancia como son CalloutEngine, ModelValidator, SvrProcess, entre otras. Generate Model Esta clase sirve para extender la funcionalidad de las tablas que creemos en el sistema. Con ella podemos establecer la persistencia de objeto para nuestras tablas con el fin de acceder a sus datos para Crear, Leer, Actualizar y Borrar (CRUD = Create, Read, Update, Delete). El modelo esta representado por las clases X_<tabla> y las clases I_<tabla>, las cuales estan compuestas por los metodos g