Story Transcript
FrameWork 2 ARQUITECTURA JAVA MÉTODOS DOCUMENTUM Versión 2.1
Área de Integración y Arquitectura de Aplicaciones
TÍTULO
1
Framework 2 Arquitectura Java Métodos Documentum Hoja de Control
Arquitectura Java Métodos Documentum
Título Documento de Referencia Responsable
Área de Integración y Arquitectura de Aplicaciones
Versión
2.1
Fecha Versión
29/01/2013
Registro de Cambios
Versión
Responsable del
Causa del Cambio
Cambio
Fecha del Cambio
Área de Integración y 1.0
Arquitectura de
Versión inicial del documento
27/11/2008
Aplicaciones Se sustituyen las librerías de las dfc’s de documentum 5 por las de documentum 6.0 sp1. Se cambia la clase sessión, para utilizar el objeto Session Manager, para obtener las sesiones. Se cambia la clase Principal, para que 2.0
Área de Integración y
implemente el interface
Arquitectura de
(com.documentum.fc.methodserver.IDfMethod)
5/03/2010
Aplicaciones
que se encuentra en la librería dfc.jar en lugar del interface (com.documentum.mthdservlet.IDmMethod) incluido en la librería (mthdservlet.jar).De esta forma no es necesario incluir la librería mthdservlet.jar Adaptar documento a la plantilla estándar de los manuales de arquitectura.
2.1
Se cambia la clase de la que extiende Principal para que sea ClasePrincipalJMTD. Se modifican las clases que implementan la clase Principal a IDfMethod y IDfModule.
2 de 15
Área de Integración y Arquitectura de Aplicaciones
27/01/2012
Framework 2 Arquitectura Java Métodos Documentum
Versión
Responsable del
Causa del Cambio
Cambio
Fecha del Cambio
Área de Integración y 2.1
Modificación de la ruta de ubicación del fichero de configuración de los Java Métodos.
3 de 15
Arquitectura de Aplicaciones
27/01/2012
Framework 2 Arquitectura Java Métodos Documentum
Índice 1
INTRODUCCIÓN ............................................................................................................................................................. 5 1.1 1.2
2
AUDIENCIA OBJETIVO .............................................................................................................................................. 5 CONOCIMIENTOS PREVIOS ...................................................................................................................................... 5 CARACTERISTICAS DE LAS APLICACIONES ........................................................................................................ 6
2.1 2.2 2.2.1 2.3 2.4 2.4.1 2.4.2 2.4.3
CONFIGURACIÓN ....................................................................................................................................................... 6 ARQUITECTURA DE LAS APLICACIONES .............................................................................................................. 6 PRINCIPAL ................................................................................................................................................................ 6 PLANTILLA .................................................................................................................................................................. 9 ESTRUCTURA DE DIRECTORIOS ............................................................................................................................. 9 CREACIÓN DEL JAR CON ECLIPSE 3.X ............................................................................................................. 10 CREACIÓN DEL ZIP ............................................................................................................................................... 15 LIBRERÍAS NECESARIAS..................................................................................................................................... 15
4 de 15
Framework 2 Arquitectura Java Métodos Documentum 1
INTRODUCCIÓN
La presente guía establece los requisitos que deben de cumplir los java métodos de Documentum que se desarrollen para la Comunidad de Madrid con el framework 2 y la normativa desarrollada para Documentum. Por tanto, estos desarrollos deberán cumplir además los requisitos indicados en las guías: Desarrollos en Java – Información General Framework 2 – Información General Normativa Desarrollo con Documentum El framework 2 es propietario de ICM y se encuentra implementado en la librería Sistemas_mini_2.x. Esta es una versión reducida de la librería Sistemas para aplicaciones que no tienen capa de presentación. 1.1
AUDIENCIA OBJETIVO
El lector objetivo de este documento es toda aquella persona que esté desarrollando un java método de Documentum basado en el framework 2.
1.2
CONOCIMIENTOS PREVIOS
Para un completo entendimiento del documento, el lector deberá tener conocimientos previos sobre las siguientes tecnologías: Lenguaje Java Api DFC de Documentum Metodología de Desarrollo de Documentum Para saber más sobre dichas tecnologías, consultar el apartado de este documento, Enlaces Relacionados.
5 de 15
Framework 2 Arquitectura Java Métodos Documentum
2
CARACTERISTICAS DE LAS APLICACIONES
2.1
CONFIGURACIÓN El fichero de configuración deberá estar en el directorio $DOCUMENTUM/dba/java_methods. El fichero de configuración no debe estar incluido en el jar.
2.2
ARQUITECTURA DE LAS APLICACIONES
Estas aplicaciones van a tener una o varias clases Principales que serán invocadas por los procesos documentales para ejecución de tareas programadas.
La lógica de negocio de este tipo de módulos y el acceso a las tablas externas registradas en documentum a través de los DAOs se deberá implementar según la arquitectura del framework 2.
Se debe incluir una Clase Sesion para administrar las sesiones con Documentum.
2.2.1
PRINCIPAL
Cada clase principal de la aplicación, aquella que tiene el método execute, debe extender de la clase sistemas.consola.ClasePrincipalJMTD e implementar los interfaces com.documentum.fc.methodserver.IDfMethod y com.documentum.fc.client.IDfModule. Tiene que implementar el constructor por defecto y el constructor con una cadena como argumento y dentro de este llamar al super. El constructor de la clase ClasePrincipaJMTDl va a recoger la ruta y el nombre del fichero de configuración, leer la configuración e inicializar el sistema de trazas. Después hay que implementar el método execute. Dentro de este método hay que realizar los siguientes pasos: Instanciarse a si misma usando el constructor y pasándole como parámetro el nombre de la aplicación. Obtener la sesión de Documentum usando los parámetros de conexión y el gestor de sesiones. Llamar a la clase o clases que implementen la lógica de la aplicación. Estas clases se encontrarán en el paquete acciones. Estos dos pasos anteriores estarán dentro de un try-catch y en el finally se incluirá una llamada al método finalizar de nuestra clase y se cerraran las sesiones abiertas con Documentum. Ejemplo de clase Principal:
Clase Principal.java package fw2_jmtd_plantilla.principal; import java.io.FileNotFoundException; import java.io.OutputStream; import java.util.Map; import java.util.Set; import java.util.Iterator; import com.documentum.fc.client.IDfSession; import com.documentum.fc.methodserver.IDfMethod;
6 de 15
Framework 2 Arquitectura Java Métodos Documentum import com.documentum.fc.client.IDfModule;
import fw2_jmtd_plantilla.acciones.EnvioMensaje; import fw2_jmtd_plantilla.sesion.Session; /** * @author Área de Integración y Arquitectura de aplicaciones * @version 1.0 */ public class Principal extends ClasePrincipalJMTD implements IDfMethod,IDfModule{ protected String m_docbase = null; protected String m_userName = null; protected String m_password = null; protected String m_cdgrupo = null; // Parametros de invocación al java_method private static final String USER_KEY = "user_name"; private static final String DOCBASE_KEY = "docbase_name"; private static final String PASSWORD_KEY = "password"; private static final String CDGRUPO_KEY = "cdgrupo"; // Sesion con documentum private IDfSession sesion = null;
/** * Constructor por defecto de clase Principal. * */ public Principal(){ //Obligatorio para su instanciación por parte de Documentum } /** * Constructor de clase Principal. * * @param s nombre del modulo * * @throws FileNotFoundException Fichero no encontrado * @throws ConfigException Error en el inicio de la configuración */ public Principal(String s) throws FileNotFoundException, ConfigException{ super(s); } /** * Metodo ejecutado a través de documentum methods * * @see com.documentum.fc.methodserver.IDfMethod#execute(java.util.Map, java.io.PrintWriter) * @throws Exception Excepcion */ public int execute(Map arg0, PrintWriter arg1) throws Exception { Principal p = null; String error = null; int resultado = 0; try{ p = new Principal("fw2_jmtd_plantilla"); // Recoge los parametros de entrada error = initParams(arg0);
7 de 15
Framework 2 Arquitectura Java Métodos Documentum sistemas.util.Trazas.impLog("Ejecuta ...."); if ( error.equals("")){ // Sesión de conexión a la docbase sesion = Session.getSession(m_userName, m_password, m_docbase); new EnvioMensaje().procesar(sesion, m_cdgrupo); sistemas.util.Trazas.impLog("Finalizado Correctamente"); arg1.write("Finalizado correctamente."); }else{ // Error de validación sistemas.util.Trazas.impLog("error validación: "+error); arg1.write ("Errores de validacion : "+error); resultado = 128; } }catch(Exception e){ sistemas.util.Trazas.impLog("Error en el java método."); sistemas.util.Trazas.imprimeErrorExtendido(e); arg1.write("Error : "+e.getClass().getName()+" -> "+e.getMessage()); resultado =128; throw new Exception(e.getMessage(),e.getCause()); }finally{ if (p != null){ Session.closeSession(sesion); p.finalizar(); //sistemas.util.Trazas.finalizar(); } } return resultado; } protected String initParams(Map params) throws Exception { String error = ""; Set keys = params.keySet(); Iterator iter = keys.iterator(); while (iter.hasNext()){ String key = (String) iter.next(); if( (key == null) || (key.length() == 0) ){ continue; } String []value = (String[])params.get(key); String tmpE = null; if ( key.equalsIgnoreCase(USER_KEY) ){ m_userName = (value.length > 0) ? value[0] : ""; tmpE = validateParam(USER_KEY, m_userName); if(tmpE!=null) error+=tmpE; }else if ( key.equalsIgnoreCase(DOCBASE_KEY) ){ m_docbase = (value.length > 0) ? value[0] : ""; tmpE = validateParam(DOCBASE_KEY, m_docbase); if(tmpE!=null) error+=tmpE; }else if ( key.equalsIgnoreCase(PASSWORD_KEY) ){ m_password = (value.length > 0) ? value[0] : ""; tmpE = validateParam(PASSWORD_KEY, m_password); if(tmpE!=null) error+=tmpE; // Desencriptación de la clave del usuario if(error==null) m_password = Utilidades.desencriptaClave(m_password); }else if ( key.equalsIgnoreCase(CDGRUPO_KEY) ){ m_cdgrupo = (value.length > 0) ? value[0] : ""; tmpE = validateParam(CDGRUPO_KEY, m_cdgrupo); if(tmpE!=null)
8 de 15
Framework 2 Arquitectura Java Métodos Documentum error+=tmpE; } else { error += "Parámetro "+key+" incorrecto. | "; } } if(m_userName == null || m_docbase == null || m_password == null || m_cdgrupo == null) error += "Parámetros insuficientes. |"; return error; } /** * Validación del valor de un parámetro. * @param parameter Parámetro. * @return String Error en caso de error. * @throws Exception */ protected String validateParam(String parameter, String value) throws Exception { String error = null; sistemas.util.Trazas.impLog("parameter = "+parameter); sistemas.util.Trazas.impLog("value = "+value); if((value == null) || (value.length() == 0)) { error= "El parámetro -" + parameter + " es obligatorio. | "; } return error; }
}
2.3
PLANTILLA
La plantilla para el desarrollo de este tipo de módulos se llama: fw2_jmtd_plantilla 2.4
ESTRUCTURA DE DIRECTORIOS
La estructura de directorios es la definida en la plantilla.
Estructura de Directorios _jmtd_ java zip desarrollo *.zip *.conf formacion *.conf (formación + otros futuros) mantenimiento *.conf (mantenimiento + otros futuros) prod_internet *.conf (prod_internet + otros futuros) prod_intranet *.conf (prod_intranet + otros futuros) validacion *.conf (validacion + otros futuros)
9 de 15
Framework 2 Arquitectura Java Métodos Documentum fuentes classes Clases compiladas deploys Estructura de directorios del fichero zip programas jar con las clases propias de la aplicación. (_jmtd_.jar) jar correspondientes a las librerías utilizadas. Fichero de configuración (todos). (_jmtd_.conf) lib Directorio con las librerías necesarias de compilación en el proyecto src Ficheros java fuentes en sus correspondientes paquetes y el fichero de configuración _jmtd_ bean Clases de javabean, estructuras de datos modelo Clases de acceso a Tablas Externas principal Clase de inicio de la aplicación excepciones Clase de excepcion de la aplicación acciones Acciones de la aplicación sesion Clase sesion para administrar las sesiones de Documentum
Donde es el nombre del proyecto de 4 letras y es un nombre que identifique a este módulo. (Sólo puede haber un módulo jmtd por proyecto.) En el directorio desarrollo hay que crear un zip con el jar que contiente las clases propias de la aplicación y todos los ficheros que configuración que se encuentran en el directorio programas. En este zip no se incluirán los jar correspondientes a las librerías utilizadas. El directorio programas contiene todos los ficheros que son necesarios para la ejecución del metodo.
2.4.1
CREACIÓN DEL JAR CON ECLIPSE 3.X
El jar debe incluir: Las clases compiladas de la aplicación. Fichero Manifest únicamente con la versión. Manifest-Version: 2.0
Para crear el jar desde Eclipse se ha de seleccionar el proyecto, se pulsa botón secundario del ratón y se selecciona la opción Export. Una vez seleccionada esta opción nos aparecerá una pantalla como la siguiente:
10 de 15
Framework 2 Arquitectura Java Métodos Documentum
Después de seleccionar “JAR file” pulsaremos el botón Next que nos presentará el paso 2 de la creación de un jar. En este paso seleccionaremos el código fuente del proyecto y la opción “Export generated class files and resources”. Además se seleccionará el directorio donde se guardará [fw2_jmtd_plantilla].jar. Sería también conveniente marcar las opciones de “Compress the contents of the JAR file” y “Overwrite existing files without warning”.
11 de 15
Framework 2 Arquitectura Java Métodos Documentum
Pulsaremos next y pasaremos a la siguiente pantalla donde seleccionaremos las opciones “Export class files with compile errors”, “Export class files with compile warning” y “Save the description of this JAR in the workspace” y pulsaremos el botón Next.
12 de 15
Framework 2 Arquitectura Java Métodos Documentum
En la última pantalla seleccionaremos “Use existing manifest from workspace” indicando la ruta del fichero MANIFEST.MF de nuestro proyecto. Este fichero no debe estar incluido en el directorio deploys. En la plantilla, el directorio META_INF con el fichero MANIFEST.MF se encuentra ubicado dentro del directorio src.
13 de 15
Framework 2 Arquitectura Java Métodos Documentum
Ahora ya solo queda pulsar en el botón “Finish” y esperar a que se genere nuestro archivo jar. Cuando se haya acabado de generar el fichero veremos en la ventana Package Explorer que ha aparecido una nueva entrada similar a esta ahora cuando queramos podremos generar de nuevo el jar, sin necesidad de compilar todo el proyecto, simplemente pulsando sobre esta entrada con el botón derecho del ratón y seleccionando la opción “Create JAR”.
14 de 15
Framework 2 Arquitectura Java Métodos Documentum
2.4.2
CREACIÓN DEL ZIP
Hay que crear un zip con el .jar que hemos generado y todos los ficheros de configuración necesarios para la ejecución del método. Estos ficheros previamente se encuentran en el directorio programas. El nombre del fichero .zip va a ser el mismo del módulo. Este fichero zip se va a dejar en el directorio zip/desarrollo. 2.4.3
LIBRERÍAS NECESARIAS
A la hora de entregar un java método hay que indicar en la ficha de entrega aquellas librerías que sean necesarias para la ejecución del mismo, para ello se debe indicar el nombre de la librería y la versión de la misma. Estas librerías deben de estar incluidas dentro de las librerías autorizadas para la ejecución de java métodos por icm. Las librerías autorizadas se han empaquetado en lib_autorizadas_jmtd.zip y se se encuentran publicadas en SOJA
15 de 15