jueves, 31 de enero de 2008

[ExpansionYEmpleo.com] CADA TRABAJADOR DEBE CONOCER SU OFERTA FORMATIVA

(Miércoles, 30 de Enero del 2008)


En funcionamiento desde 2004, la universidad corporativa de Asepeyo empieza a dar ahora sus frutos. Más de tres mil empleados se benefician anualmente de los programas de formación que, a través de sus diferentes escuelas y de su campus virtual, imparten los profesores internamente formados.

Director corporativo de recursos humanos de Asepeyo, Ricardo Alfaro dirige también la universidad corporativa de esta empresa, un proyecto del que habla con entusiasmo y que se inició en 2004 con un objetivo muy claro: invertir en el desarrollo de las personas, "que es nuestro principal activo".

¿Por qué surgió la idea de crear una universidad corporativa para Asepeyo?
Es una iniciativa con la que pretendíamos responder a la necesidad que tiene esta compañía de desarrollar el talento de sus empleados. Nuestra plantilla se compone de personal altamente cualificado que nos solicitaba como valor añadido recibir una formación que garantizara el desarrollo de su carrera profesional.

¿Cómo fueron los primeros pasos?
Elaboramos una encuesta para averiguar qué tipo de formación necesitaba la gente. Preguntamos a los directivos sobre las competencias que debían poseer sus empleados para desempeñar correctamente sus funciones.

Una vez pensado el modelo de universidad que queríamos implantar, vimos la necesidad de aplicar una tecnología de gestión de personas en la organización. Para ello, recurrimos a Meta4, una compañía que aporta los sistemas informáticos que utilizan las grandes empresas para gestionar sus recursos humanos.

Además, incorporamos Meta4 Peoplenet, una única plataforma desde la que podíamos administrar no sólo la nómina de nuestros empleados, sino también la selección de personal, su formación y las relaciones laborales.

¿Cuál es su objetivo?
Queríamos migrar el concepto tradicional que representaba el departamento de formación (poco estructurado, basado en cursos que sólo se impartían de vez en cuando y con diferentes proveedores), al de gestión y aprendizaje. Nuestro propósito es que cada trabajador conozca la oferta y el itinerario de formación que la empresa le proporcionará en los próximos años.

El primer paso es definir hacia dónde quiere ir la empresa y, después, determinar cómo formar a la gente para lograr dicho objetivo. De esta forma, tratamos de alinear este aprendizaje con la estrategia y línea de negocio de la organización.

¿Cuáles han sido hasta ahora sus principales logros?
Hemos conseguido cerrar un ciclo entero de programas formativos. Ha sido un proceso largo y ahora es cuando empezamos a ver los resultados. Toda nuestra formación es interna; sólo acudimos a escuelas de negocios como el IESE cuando nos interesa que algunos de nuestros directivos se formen en determinados programas.

Pero nuestro mayor logro es la web de nuestra universidad corporativa, que funciona desde hace unos meses. No es sólo un campus virtual, sino un entorno que permite a cada empleado acceder a varios servicios como hemeroteca, encuestas, etcétera.

Además, una de las principales ventajas de nuestro centro de formación integrado en los sistemas de información de recursos humanos, con lo que desde este departamento podemos ver en una sola pantalla todo tipo de información, como los cursos que ha realizado cada empleado y la calificación obtenida.

La universidad posee dos campus físicos, pero también uno virtual. ¿Por qué inciden en la importancia de este último?
Desde el principio quisimos darle un peso muy importante conscientes del ahorro de costes que suponía para la compañía, expuesta a la dispersión geográfica de sus trabajadores. Lo que antes gastábamos sólo en desplazamientos, dietas y alojamiento, ahora puede destinarse ahora a inversión en formación pura y dura.

¿Cuáles son los retos más inmediatos de esta universidad corporativa?
Para 2008 tenemos varios frentes abiertos:
  • Acabar de estructurar el centro de desarrollo directivo, encargado de la formación específica de estos profesionales.
  • Crear el club de mentores para que a todos los directivos recién nombrados se les asigne un mentor que les ayude en su proceso de adaptación al puesto.
  • Establecer una biblioteca virtual para que los empleados puedan consultar los libros de referencia básicos en su itinerario formativo.
  • Consolidar las bases de datos de conocimientos que permiten el aprendizaje que, por ejemplo, un médico ha adquirido tras asistir a una conferencia.
  • Mantener sesiones clínicas online que hagan la vez de las reuniones diarias donde los médicos intercambian conocimientos y exponen un caso.

Entrevista realizada por Raquel Goig.

Enlace directo a la noticia en ExpansionYEmpleo.com: Link

miércoles, 30 de enero de 2008

Exportación genérica a fichero de texto

Para completar el post que escribí sobre la Exportación genérica a Ms Excel (link) escribo este otro para ver como tener un método que te exporte las cosas a un fichero de texto plano.

Yo lo uso, entre otros casos, cuando en un cliente, con servidor en entorno Unix (Solaris o AIX)quieren consultas en Ms Excel, pero éstas son muy grandes y claro en el servidor no las pueden sacar. Yo monto una exportación en servidor a texto y luego la envío por correo... Bueno es un ejemplo, pero hay más...

A lo que voy que me lío :-)

Debes leer el post al que me refería antes (Exportación genérica a Ms Excel). Haces lo mismo, pero la regla del método CXX_EXPORT_EXCEL la cambias por esta: CXX_EXPORT_TXT. (Yo las suelo poner las dos... y que se el usuario quien elija, ¿no?)

Esto te saca a un txt el contenido de un nodo completo.

Ahora, si en el método cambias el código:


MsCaracterSep = ";"

por

MsCaracterSep = Chr(M4_TAB)

y quitais el "encabezado":


InitFile(MsFile,MsTitle)
ConcatFile(MsFile,"")


y el "pie":


ConcatFile(MsFile,"")
ConcatFile(MsFile,"Fecha impresión: " + MsDay + "/" + MsMonth + "/" + MsYear + " " + MsHour)


...se puede abrir con Ms Excel, sin problemas de importación.

Como siempre, espero que os sirva...

lunes, 28 de enero de 2008

Login avanzado para el ESS

La opción de usar el login avanzado del ESS nos permite poder modificar mucho el comportamiento de Meta4. Se usa cuando un usuario puede acceder con diferentes sociedades, roles, monedas o fechas.

Yo lo he usado para que se pueda cambiar de Rol de seguridad, de esa manera mantengo los usuarios/roles de PeopleNet y les añado nuevos roles... que luego eligen a acceder:

A ver si explico bien los pasos (a mi me sirvio estudiar el login avanzado del portal de tecnología):

  • En el login del portal de tecnología... (http://server:port/tctools/espanol/tc_login.jsp) tienes un link llamado "Login avanzado" cuando lo pulsas aparecen varías opciones para el cambio de sociedades, roles, moneda y fechas por defecto...



  • Desmarca la opción de roles por defecto y logate con un usuario que tenga opción de acceder con varios roles...

  • ...y aparecerá una nueva página como "Pop-up" que te permitirá elegir entre ellos...




  • Replica este comportamiento en tu login y ya está... (de forma sencilla básicamente es añadir un checkbox que por defecto esté marcado y que se envía dentro del form del login):

<input type="checkbox" checked="checked" name="CHANGE_ROLE" title="Cambio de perfil" onclick="var scam=login.CHANGE_ROLE.checked;if (scam==false){m4valor('login','M4_CHANGE_ROLE','1','set');}else{m4valor('login','M4_CHANGE_ROLE','','set');};">

Luego hay que tener en cuenta que las páginas a las que se pueda acceder deben tener dos includes más:

Al comienzo dentro del tag <head>: <%@ include file="/shco_g0/shco_gen_portal_code_begin.jspf" %>

Al final despues del tag </body>: <%@ include file="/shco_g0/shco_gen_portal_code_end.jspf" %>

para que te funcione bien.

Si hay alguna duda... ya sabeis por donde ando,

[LaNacion.com.ar & Enredando.org.ar & GuiaSenior.com] META4 CERTIFICÓ BAJO NORMA ISO 9001

(Lunes, 28 de Enero del 2008)

Meta4 anunció la obtención de la certificación de la norma ISO 9001:2000 para sus procesos de desarrollo de software en el departamento de R&D Latin America, otorgado por el organismo alemán de acreditaciones Deutscher Akkreditierungsrat (DAR).



Enlace directo a la noticia en LaNacion.com.ar: Link


Enlace directo a la noticia en Enredando.org.ar: Link


Enlace directo a la noticia en GuiaSenior.com: Link

martes, 22 de enero de 2008

Conexión de un OpenLDAP con Meta4 PeopleNet

He estado últimamente un poco liado con la conexión de un LDAP como repositorio externo de autenticación para Meta4, sobre todo con lo que se refiere a la conexión SSL, así que se me ha ocurrido añadir mi experiencia.

Pongamos primero el caso de estudio:

Tenemos un OpenLDAP (no certificado aún por Meta4) al que un cliente desea conectarse para autenticar las contraseñas introducidas en el cliente de desarrollo, el cliente rico y el ESS/MSS.

Datos de este OpenLDAP:

  1. Versión de LDAP: 3

  2. Máquina: openldap.cliente.org

  3. Puertos: 389 y 636 (este para SSL)

  4. Cadena de búsqueda (DN): uid=user,ou=people,dc=cliente,dc=org

  5. Servidor de aplicaciones sobre AIX

  6. El cliente quiere que la conexión se haga usando SSL, y para ello suministra un certificado “ca_raiz.cer”.

Conexión sin usar SSL

Para la hora de hacer pruebas es, creo, el más cómodo y el más rápido.


  • Crearemos en Meta4 el repositorio LDAP: para ello se debe acceder a: "Herramientas de Desarrollo / Configuración de la aplicación / Repositorios de autenticación". Crearemos uno con los siguientes datos:


  • Configuraremos en Meta4 el acceso al LDAP: Crearemos en "Herramientas de Desarrollo / Configuración de la aplicación / Repositorios LDAP" un repositorio con los siguientes datos:

  • Creamos o tomamos un usuario de Meta4, por ejemplo OSCARLG, que sabemos cuyo “uid” dentro del OpenLDAP es olopez y los mapeamos usando la opción de menú: "Herramientas de Desarrollo / Configuración de la aplicación / Mapeo usuarios LDAP". (Nota: también es posible usar como usuario de Meta4 olopez y así nos evitaríamos el mapeo)


  • Lo siguiente será configurar la aplicación para que al logarse este usuario el proceso no busque el usuario en el repositorio interno sino en el nuevo que hemos configurado. Para ello, debemos acceder a: "Herramientas de Desarrollo / Configuración de la aplicación / Parámetros de aplicación". Iremos a la vista “Avanzada” (Menú Herramientas / Avanzado...) y buscaremos, primero, “Parámetros generales”, segundo, “Parámetros de sesión” y tercero “ID Repositorio externo de autenticación”. Añadiremos en la pestaña “Valores por ámbito” un nuevo ámbito por “Usuario de aplicación” y seleccionaremos la “OSCARLG”.

  • Luego en el Valor añadiremos el identificador de nuestro nuevo repositorio “0002”.



  • Ya estamos en disposición de logarnos con el usuario OSCARLG de Meta4 en el LDAP con su contraseña y no con la de Meta4.

Conexión de un usuario con SSL (a entornos Windows)

Para Meta4 es necesario disponer de un almacén de certificados, pero no cualquiera. Es necesario que se genere usando la herramienta “certutil” que incorpora el Sun ONE Directory Server Resource Kit (yo he usado la versión 5.2) que puede ser descargado desde site de SUN en: http://www.sun.com/download/products.xml?id=3f74a0db.

Vamos, inicialmente a conseguir la conexión SSL con el LDAP desde un cliente de desarrollo en Windows luego explicaré como hacerlo en AIX.

  • Descomprime el Zip descargado (dsrk52-WINNT4.0_OPT.zip) en, por ejemplo, C:\temp\dsrk52-WINNT4.0_OPT. Ejecuta: java DSRK en la línea de comandos y obtendrás un asistente de instalación para instalar DSRK en tu máquina… yo lo he dejado en E:/DSRK.

  • A continuación debes crear un directorio para almacenar la base de datos de certificados… yo la crearé en c:\MyCertsDB.

  • Luego ejecuta desde la línea de comandos, o crea un .bat con, el siguiente comando:

    PATH=%PATH%;E:\DSRK\lib;E:\DSRK\lib\nss\lib
    E:\DSRK\lib\nss\bin\certutil -N -d "C:\MyCertsDB"

  • Esto creará en C:\MyCertsDB 3 archivos: cert7.db, key3.db y secmod.db
  • Lo siguiente es conseguir el certificado del LDAP, yo lo he dejado en C:\MyCertsDB por comodidad. Se llama ca_raiz.cer (y con un alias que llamaré ca_raiz_alias)
  • Luego ejecuta desde la línea de comandos, o crea un .bat con, el siguiente comando:

    PATH=%PATH%;E:\DSRK\lib;E:\DSRK\lib\nss\lib
    E:\DSRK\lib\nss\bin\certutil -A -n ca_raiz_alias -t "C,C,C" -d “C:\MyCertsDB” -i “C:\MyCertsDB\ca_raiz.cer”

  • Esto incorpora este certificado a la Base de Datos de certificados que creamos.
  • Ahora, de nuevo en Meta4, en Herramientas de Desarrollo / Configuración de la aplicación / Repositorios LDAP modificamos el repositorio “0002” con los siguientes datos:



Conexión de un usuario con SSL (a entornos AIX)



  • Descomprime el Zip descargado (dsrk52-AIX5.2_OPT.zip) en, por ejemplo, C:\temp\dsrk52-AIX5.2_OPT. Lleva a un AIX usando sftp en binario los archivos: dsrk52.zip y DSRK.class. Ejecuta: #java DSRK.class en la línea de comandos y obtendrás un asistente de instalación para instalar DSRK en tu máquina… yo lo he dejado en /opt/meta4/dsrk.

  • A continuación debes crear un directorio para almacenar la base de datos de certificados… yo la crearé en /opt/meta4/mycertsdb.

  • Luego ejecuta desde la línea de comandos, o crea un .sh con, el siguiente comando:

    #export LIBPATH=/opt2/meta4/dsrk/lib:/opt2/meta4/dsrk/lib/nss/lib
    #/opt2/meta4/dsrk/lib/nss/bin/certutil -N -d /opt2/meta4/mycertsdb


  • Esto creará en /opt/meta4/mycertsdb los 3 archivos: cert7.db, key3.db y secmod.db

  • Lo siguiente es conseguir el certificado del LDAP, yo lo he dejado en /opt/meta4/mycertsdb por comodidad. Se llama ca_raiz.cer (y con un alias que llamaré ca_raiz_alias)

  • Luego ejecuta desde la línea de comandos, o crea un .sh con, el siguiente comando:

    #export LIBPATH=/opt2/meta4/dsrk/lib:/opt2/meta4/dsrk/lib/nss/lib
    #/opt2/meta4/dsrk/lib/nss/bin/certutil -A -n ca_raiz_alias -t "C,C,C" -d /opt2/meta4/mycertsdb -i /opt2/meta4/mycertsdb/ca_raiz.cer
  • Esto incorpora este certificado a la Base de Datos de certificados que creamos.

  • Ahora, de nuevo en Meta4, en Herramientas de Desarrollo / Configuración de la aplicación / Repositorios LDAP modificamos el repositorio “0002” con los siguientes datos:


  • Ya estamos en disposición de logarnos con el usuario OSCARLG de Meta4 en el LDAP con su contraseña y no con la de Meta4 pero bajo conexión SSL y contra el servidor de aplicaciones en AIX

Espero que os ayude, … porque a mi me ha costado :-)

lunes, 21 de enero de 2008

Ejecutable externo desde una regla de un método

Para llamar a un ejecutable externo desde una regla de un método LN4, esto es lo que se hace:
  1. Crear un método de tipo DLL, cuyo recurso empleado sea "m4jsutils" y el método "ExecuteProgram". Hay que definir también un argumento de tipo Long.
  2. Una vez creado este método tan solo hay que llamarlo desde el que se desee ejecutar, pasandole la ruta y el nombre del programa externo, por ejemplo:

EJECUTAR("c:\winnt\system32\notepad.exe")

ó

CXX_RUTA_EJECUTABLE = "c:\winnt\system32\notepad.exe"
EJECUTAR(CXX_RUTA_EJECUTABLE)


Donde EJECUTAR es el método que registra la DLL y donde CXX_RUTA_EJECUTABLE puede ser una propiedad o campo por la que introducir la ruta en Tiempo de ejecución desde la presentación.

Nota (gracias a Franco Tarchini, Colombia): para rutas con directorios cuyo nombre sea mayor de 8 caracteres hay que usar los 6 primeros caracteres de dicho directorio más el caracter "~" (alt + 126) y un número correlativo al número de directorios que contengan esa raiz de 6 caracteres. Por ejemplo:

"c:\Archivos de programa\" equivale a "c:\Archiv~1\"

Espero que os sea de utilidad...

viernes, 18 de enero de 2008

Certificado de Haberes en PDF para el ESS - Portal del Empleado

(Ampliando el post: Obtener un informe de Meta4 en el ESS/MSS)

En estas fechas son muchos los clientes que nos piden que podamos sacar el Certificado de haberes en el Portal. En algunas versiones del Portal ya está incluído pero no sale en PDF de tal forma que un empleado pueda llevarselo e imprimirselo... (incluso sería posible firmarlo digitalmente usando librerias externas como iText)

Estos son los pasos para poder obtener el Certificado en PDF en el ESS.

  • Partimos del Meta4Object estándar "SSP_RP_CERT_HAB" o del que hayamo heredado en nuestro cliente:

  • Creamos en el nodo SSP_RP_C_HABERES una propiedad SSE_EJECUCION, de ámbito nodo, no visible, cadena variable de tamaño 1, con valor po defecto 0, que rellenaremos cuando ejecutamos el informe desde el ESS - Portal del empleado.

  • Creamos un Alias de Meta4Object (si no lo está creado ya) para el Meta4Object SCH_SESSION, en el nodo SSP_RP_C_HABERES, para recuperar el ID Persona del empleado logado al ESS - Portal del empleado.

  • Creamos un método también en el nodo SSP_RP_C_HABERES llamado SSE_FILTRO, ámbito nodo, tipo número de 1 posición entera, y que contendrá el siguiente código: link (NOTA: si tiene herencia hay que sobrescribir la regla para que tire del nodo que corresponda si dicho nodo está tocado)

  • Creamos el conector para que ejecute el método SSE_FILTRO antes del LOAD_PRG o de la LOAD_BLK (en la regla indicamos que si es del ESS - Portal del empleado ejecute dicho método y si no es del ESS - Portal del empleado que se quede como está).

  • Creamos un link en la página correspondiente desde la cual queremos ejecutar el Informe. Yo lo haré desde el portal (/sse_generico/espanol/generico_portal.jsp) mediante:

<li><a class="enlacefuncional" title="Certificado 10T" href="/servlet/CheckSecurity/JSP/sse_g2/sse_g2_certpdf.jsp?estado=21">Certificado 10T</a></li>

  • Creamos una página similar a la que aparece a continuación y que es llamada por el link de la anterior: sse_g2_certpdf.jsp (NOTA: Esta página puede mejorar sensiblemente, ya que aparece como un paso intermedio entre el link y la visualización del pdf. Si quisiera saltarse el paso no vale con un simple openwindow cuando se abre la página porque no le da tiempo al pdf a crearse y sale a medias. Deberíamos poner un retardo y luego abrir la página.)

Si usais una plantilla o logos o imágenes para "pintar" el certificado, recordad que esto archivos deben estar colocados en las rutas de reports (en la parte de color y b&w) del servidor de aplicaciones de Meta4 que genera el report/informe.

Espero que os salga bien y si alguien está interesado en saber como firmar digitalmente reports/informes de Meta4 en el ESS/MSS como este, que por favor, que deje un comentario en el post.

martes, 15 de enero de 2008

¿Cómo podemos obtener usuario Meta4 en Java?

He recibido algún mail pidiéndome que explique si es posible conocer el ESS/MSS o en JobSite el identificador del usuario conectado o del Rol con el que se conecta, la sociedad, etc.

Hay una forma realmente sencilla de hacer esto, para ello usaremos o los Atributos de la sesión de Java o las entradas de la Bolsa de parámetros de Meta4.

Parte común:

En el Meta4Object SSE_INICIO (caso del ESS/MSS de PeopleNet) en el Nodo SSE_INICIO crearemos una propiedad que llamaremos ID_APP_USER o ID_APP_ROLE o ID_APP_ORG, de ámbito nodo, no visible, tipo cadena variable de el tamaño que necesitemos en cada caso.

Luego en el método CARGA de la misma Estructura de nodo añadimos:
[..]
SSE_INICIO.ID_APP_USER = SCH_SESSION!ROOT_SESSION.ID_APP_USER
SSE_INICIO.ID_APP_ROLE = SCH_SESSION!ROOT_SESSION.ID_APP_ROLE
SSE_INICIO.ID_APP_ORG = SCH_SESSION!ROOT_SESSION.ID_ORGANIZATION

[..]
Obviamente, hay que tener definido un Alias al Meta4Object SCH_SESSION.

Pasamos ahora al entorno JSP. Hay dos páginas que se usan en el acceso al ESS/MSS; están, ambas, en sse_generico/[lang] que son generico_portal.jsp y generico_invisible.jsp.

Recuperaremos estos valores:
<%
M4SessionCl zsesion = M4Context.getM4SessionCl(request);
[..]
String zMeta4Object = "SSE_INICIO";
String znodo = "SSE_INICIO";
[..]
String zIDAPPUSER = "";
String zIDAPPROLE = "";
String zIDAPPORG = "";

try {
M4Operations m4opers = new M4Operations(request);
zIDAPPUSER = m4opers.getItem(znodo,zMeta4Object,znodo,"","ID_APP_USER");
zIDAPPROLE = m4opers.getItem(znodo,zMeta4Object,znodo,"","ID_APP_ROLE");
zIDAPPORG = m4opers.getItem(znodo,zMeta4Object,znodo,"","ID_APP_ORG");

//Usando entradas de la bolsa de Meta4
zsesion.putBagEntries("zIDAPPUSER", zIDAPPUSER);
zsesion.putBagEntries("zIDAPPROLE", zIDAPPROLE);
zsesion.putBagEntries("zIDAPPORG", zIDAPPORG );
} catch (Exception e) {}

//Usando atributos de la sesión de Java
session.setAttribute("zIDAPPUSER", zIDAPPUSER);
session.setAttribute("zIDAPPROLE", zIDAPPROLE);
session.setAttribute("zIDAPPORG", zIDAPPORG );
%>

Como podéis ver, la diferencia inicial es que en el caso de la Entradas de la Bolsa de Meta4 debemos capturar una posible “Exception” mientras que en el caso de los Atributos de la sesión de Java no hace falta.

A la hora de recuperar los valores almacenados también hay diferencias:
<% //Uso de Entradas en la Bolsa de meta4
M4SessionCl zsesion = M4Context.getM4SessionCl(request);
String zIDAPPUSER = zsesion.getBagEntries("zIDAPPUSER");
String zIDAPPROLE = zsesion.getBagEntries("zIDAPPROLE");
String zIDAPPORG = zsesion.getBagEntries("zIDAPPORG ");
%>
O
<% //Uso de Atributos en la sesión de Java
String zIDAPPUSER = (String) session.getAttribute("zIDAPPUSER");
String zIDAPPROLE = (String) session.getAttribute("zIDAPPROLE");
String zIDAPPORG = (String) session.getAttribute("zIDAPPORG");
%>
Como podéis ver también en el caso de los Atributos de la sesión de Java hace falta un “cast” para forzar al compilador que nos entregue un String.

Quizás a primera vista veáis que sea muy útil saber de un usuario su ID_APP_USER pero no veáis tan claro el uso de un Rol diferente al de por defecto, pero ¿habéis pensado que podríamos hacer con un usuario con varios roles o sociedades?, por ejemplo, usar el mismo usuario para el ESS/MSS y para los clientes de administración (Rich y Distribuido) pero que al entrar en el ESS/MMS pudiera elegir, como se hace en los clientes, con que rol accede, EMPLEADO, MANAGER, AUDITOR,… y así mostrar unas u otras opciones… Lo trataré en otro post.
Espero que os sirva...

viernes, 11 de enero de 2008

Obtener un Informe de Meta4 en el ESS/MSS

Muchas veces, los clientes nos piden que los Informes que hemos desarrollado para los entornos de clientes distribuidos (antes de la v7 de PeopleNet) o clientes ricos (desde la v7) puedan ser obtenidos en el ESS. Algunos ejemplos son el recibo de nómina, el Certificado de Haberes, recibos de las solicitudes hechas en el ESS (cursos de formación, préstamos,...), el currículum de empleados, ...

Meta4 PeopleNet provee de un mecanismo sencillo para poder obtenerlos através del tag m4:executereport.

Vamos a pensar en el siguiente caso… Digamos que el cliente nos pide poder obtener en el MSS, desde la página del “Curriculum Vitae del empleado” accesible desde la página “Datos personales de mis empleados” el Curriculum de sus empleados. Se podría usar el Informe ya existente del “Dossier del empleado” (SCO_RP_EMPLOYEE_DOSSIER) pero tiene mucha información que quizás no nos interese, así que lo haremos de otra forma, para ver los pasos uno a uno. Los pasos que realizaremos serán:

  • Crearemos un Meta4Object que recoja la información que necesitamos de las tablas de Persona (STD_PERSON) que pondremos como nodo Principal, eMail (STD_EMAIL), Teléfono (STD_PHONE_FAX), Dirección (STD_ADDRESS), Historial académico (STD_HR_ACAD_BACKGROUD), Experiencia profesional (STD_HR_PREV_JOBS) e Idiomas (STD_HR_LANGUAGES). Le llamare: CXX_CV_ESS y tendrá la siguiente estructura:
  • Como cosas especiales crearemos propiedad PRP_ID_PERSON (cadena variable de 9 caracteres, ámbito nodo y no visible, aunque mientras desarrollamos será mejor que sea visible y así podremos hacer pruebas) en el Nodo principal, que en la sentencia estará igualada a STD_ID_PERSON :

    SELECT @STD_ID_PERSON = A.STD_ID_PERSON, @STD_N_FAMILY_NAME_1 = A.STD_N_FAMILY_NAME_1, @STD_N_FIRST_NAME = A.STD_N_FIRST_NAME, @STD_DT_BIRTH = A.STD_DT_BIRTH, @STD_SSN = A.STD_SSN, @SCO_PHOTO = A.SCO_PHOTO
    FROM &STD_PERSON A
    WHERE (A.STD_ID_PERSON = @PRP_ID_PERSON)
  • Nota: Ojo con las fotos y archivos de imágenes… obviamente quedarán muy bien, pero hay que tener en cuenta que la ruta debe poder verla el SERVIDOR DE APLICACIONES que es donde se generará el Informe.
  • En las propiedades avanzadas de la estructura de nodo del nodo principal pondremos que puede ejecutar informes.
  • El siguiente paso es crear un Informe más o menos bonito… “para gustos los colores”. Le llamaremos CXX_RPT_CV_ESS.
  • Una vez que lo tengamos preparado, nos iremos a la página de “Curriculum Vitae del empleado”, “mss_g1_cv.jsp” de la carpeta “mss_g1/espanol”.

  • Añadiremos un nuevo link, por ejemplo debajo de “Consulta otros CVs” llamado “Descarga el CV (pdf)” de tal forma que al pincharlo se nos descargará el CV del empleado seleccionado. El código de este link sería:

<li><a class="enlacefuncional" title="Descarga el CV (pdf)" href="/servlet/CheckSecurity/JSP/mss_g1/mss_g1_p1_cv_pdf.jsp?zestado=11&amp;id=<m4:item"
m4name="SSE_EMP_CV!M4T_EMP_PERS_DATA.STD_ID_PERSON">">Descarga el CV (pdf)</a></li>

  • Ahora construiremos una nueva página en “mss_g1/espanol” llamada “mss_g1_cv_pdf.jsp”. El código pudiera ser el siguiente (link).

Repasaremos un poco las cosas importantes que tiene la página "mss_g1_cv_pdf.jsp”:

Líneas 6 y 7:

String zIdCV = request.getParameter("id");
String sParametros= "CXX_CV_ESS;CXX_CV_PERSON$CXX_CV_PERSON PRP_ID_PERSON \""+ zIdCV +"\"$";


Recogemos el parámetro enviado por la página padre y componemos un String de parámetros de la siguiente forma:

Meta4Object;Nodo Principal;Nodo de parámetros Propiedad_1 “Valor” ;Nodo de parámetros Propiedad_2 “Valor”$

Líneas 39-43:


function m4CVPdf(){
OpenReport('<m4:executereport idreport="CXX_RPT_CV_ESS" syssentence="<%=sParametros%>"
outputtype="PDF" otherparams="#/AUTOLOAD:DESIGN:OFF#"/>');
history.back();
}
window.setTimeout('m4CVPdf()',2000);

Lo que hace la función m4CVPdf() y la OpenReport(path), es levantar un path que nos devuelve la ejecución del tag m4:executereport en una nueva ventana, tras 2 segundos de espera (para darle un poco de tiempo a que se genere y se copie en la ruta /Temp/USER_SESSION/). Luego retorna a la página que lo ha llamado.

Lo importante de esta página, y de este post, es la llamada a este tag: m4:executereport cuyos atributos son idreport; donde indicaremos el nombre del informe que queremos ejecutar, syssentence; que son los parámetros del Meta4Obejct, outputtype; que puede ser PDF o HTML y otherparams; con parámetros de la generación de Informes.

El tag m4:executereport llama a la tarea M4THROW y ésta, usando los parámetros indicados, lanza la ejecución del Informe. Como todo Informe la carga se realiza usando la ROOTLOAD del nodo principal. Lo digo, porque es posible tocar los informes existentes para que antes de la LOAD_BLK o de la LOAD_PRG del nodo principal, podamos dar valor a ciertos parámetros, por ejmplo, al intentar levantar el recibo o el Certificado de Haberes le podemos decir que levante el recibo de la persona que esté logada en el ESS. (Tiene un poco más de trabajo pero pasa por enviar otro parámetro que indique si la ejecución se hace desde el ESS/MSS o si es desde un cliente que será el de por defecto.)

Si quereis probarlo lo mejor sería hacer primero algo pequeño, por ejemplo con solo información de la persona y luego ya añadiréis el resto de nodos.

Espero que os sirva...

jueves, 10 de enero de 2008

[Meta4.es] META4 COLABORA CON LA ONG ACCION CONTRA EL HAMBRE

(Madrid, 9 de enero de 2008)


Meta4, proveedor líder a nivel mundial de soluciones para la gestión y el desarrollo del capital humano e intelectual (HICM), y uno de los principales protagonistas en el mercado según Gartner Group, siendo consciente de la dimensión social que las actividades empresariales ocupan en la actualidad, ha puesto en marcha un proyecto de colaboración con la ONG Acción contra el Hambre, comprometiéndose a donar a la citada organización, un porcentaje de los ingresos obtenidos a través de una campaña que estuvo en vigor hasta el pasado mes de noviembre.

El objetivo perseguido por Meta4 con esta decisión, es el de apoyar los principales proyectos humanitarios que Acción contra el Hambre desarrolla en todo mundo. Igualmente esta iniciativa se encuadra dentro de la politica de responsabilidad corporativa llevada a cabo por Meta4, cuya finalidad es la de atender las nuevas demandas sociales de orden ambiental y social provocados por los cambios en los sistemas de valores actuales.

Meta4 considera de gran importancia el papel que las prácticas de responsabilidad social corporativa ocupan dentro del ámbito de los RRHH. Es evidente que de manera prioritaria, las prácticas responsables de las empresas en el ámbito social, afectan a los trabajadores centrándose en aspectos relativos a la Gestión de los Recursos Humanos tales como; el aprendizaje permanente, la conciliación de la vida preofesional con la personal, la igualdad de retribución y perspectivas profesionales para las mujeres, la participación en los beneficios o accionariado de las empresas, la capacidad de inserción profesional y seguridad en el trabajo o las prácticas responsables de contratación, entre otras.


Enlace directo a la noticia en Meta4 (site Español): Link.
Enlace directo a la web de Ayuda en Acción: Link.

miércoles, 9 de enero de 2008

Limpiar trazas de acceso a Base de Datos

Este post trata sobre la posibilidad RÁPIDA de limpiar las trazas de accesos a la base de datos que Meta4 deja en entornos Windows.

Una de las cosas que primero nos pide Soporte de Meta4 al abrir un caso es, enviarle las trazas de lo sucedido, y una de las primeras cosas que debemos mirar cuando un Meta4Object no hace lo que "queremos" es, mirar esas trazas.

Para ello tomamos las trazas del cliente de desarrollo que estará normalmente en:

C:\Archivos de programa\meta4\m4DevClient\m4temp

o del servidor, que si:

  • es Windows, estarán, normalmente, en C:\Archivos de programa\meta4\M4ServerSite\m4appserver-config\m4temp\m4debug
  • y si es Unix (Solaris/AIX) estarán, normalmente, en /opt/meta4/m4serversite/m4appserver-config/m4temp/m4debug (El programa que añado no es valido en entornos UNIX)
Ahora bien, leer las trazas si no sabes hacerlo bien puede resultar tedioso y hasta complicado por eso existen varios programas que nos permiten borrar las trazas y dejar los ficheros "ldbinsp0_1.txt" y "ldbinsp0_2.txt" limpios para poder la ejecución de nuestros Meta4Objects. El que yo os propongo no es quizás el mejor pero es con el que más comodo me encuentro.

Para descargarlo necesitas este zip: limpialdbinsp.zip

Descomprimelo y encontrarás dos archivos. Yo los dejo en C:\Archivos de programa\Meta4\M4CleanLdbInspectors.


  1. Limpialdbinsp.exe: es el ejecutable
  2. Limpialdbinsp.ini: es el archivo de configuración. Su configuración es sencilla en la primera línea pon la ruta a al directorio donde se encunetran los archivos de traza y en la segunda pon un 1.

Luego yo suelo crearme accesos directos a "Limpialdbinsp.exe" y a "ldbinsp0_1.txt" y "ldbinsp0_2.txt" y los coloco en la barra de herramientas "Inicio rápido".

De esa forma cuando necesito borrar los archivos de traza, con pulsar el icono del "Limpialdbinsp" y luego los de las trazas consultar lo realizado por las Bases de Datos Lógica y Física.

Ya escribí en otro post como configurar las trazas para que saquen más o menos información (Accede aquí)





miércoles, 2 de enero de 2008

[MundoEnLinea.cl] PEDRO CORTÉS DE SOLMINIHAC, ASUME NUEVO GERENTE COMERCIAL DE META4 CHILE

(Miércoles 2 de Enero del 2008)

Pedro Cortés De Solminihac (40 años) asumió recientemente como gerente comercial de Meta4 Chile, una de las principales compañías proveedoras a nivel mundial de soluciones para la gestión y el desarrollo del capital humano e intelectual (HICM) de las empresas. El nuevo ejecutivo es ingeniero en Marketing de la Universidad Diego Portales y ha desarrollado una experiencia en el área tecnológica durante 17 años.

Desde su nuevo cargo, Pedro Cortés tendrá a su cargo la estrategia comercial de la compañía, para de esta manera buscar el incremento de las ventas y afianzar la relación con los partners de la empresa.

Anteriormente, Pedro Cortés ya había estado a cargo de la gerencia comercial de Meta4, para luego desempeñarse en otros puestos gerenciales de compañías como AISOFT S.A. –empresa líder en el desarrollo y comercialización de aplicaciones de software para Gestión Integrada de Empresas– donde llegó a ocupar el cargo de Gerente de Productos; y en BST Consulting Group S.A., empresa dedicada al Outsourcing de Recursos Humanos y Nómina, donde estuvo a cargo de la gerencia de Negocios.

Enlace directo a la noticia en MundoEnLinea: Link