miércoles, 19 de marzo de 2014

Aproximación a HSE desde Colombia

video

De todos es sabido que con la configuración KMKey Quality Basic correctamente personalizada se puede gestionar las normas ISO 9001, ISO 14001 y OHSAS 18001. También las diferentes nomenclaturas, especificidades, adaptaciones por sector o país. En este caso el Asesor especializado Jorge Davila de Colombia, nos comparte este video donde ha hecho una primera adaptación para  H.S.E.Q (Salud, Seguridad, Medio Ambiente, Calidad) según su enfoque.
Interesante adaptación. Jorge nos ha comentado que sigue experimentando y nos hará llegar nuevas posibilidades.
Gracias Jorge

viernes, 28 de febrero de 2014

Generar documentos automáticamente al crear expediente

Hemos agregado un nuevo tag al procesamiento del XML en la creación de proyectos

Como ya sabéis, en la configuración de un patrón, podemos definir toda una estructura XML indicando qué objetos crear (tareas, ofertas, etc) permisos, accesos, objetos a copiar etc (http://kmkey-es.blogspot.com.es/2010/06/patrones-de-trabajo-avanzados.html)

Hemos agregado un nuevo tag 'generate' que nos permite generar directamente documentos a partir de las plantillas hechas en OO

De este modo, por ejemplo, al introducir todos los datos de un expediente en el momento de la creación, podemos hacer que genere automáticamente toda una serie de plantillas ya rellenadas con estos datos

La sintaxis del tag es muy simple:

acces docid="xxx" output_name="mi-documento.doc" output_format="doc"

donde docid es el getDocid de la plantilla a generar.

Como la generación de plantillas en otros puntos de KMKey, los formatos disponibles son doc, xls y pdf, y aquí podéis mirar los tags disponibles para crear estas plantillas : http://kmkey-es.blogspot.com.es/2009/06/plantillas-generables-asociadas-un.html

martes, 21 de enero de 2014

Listado Previsiones-Ofertas en KMKey Project

Sorprendentemente hasta ahora nadie había echado en falta un listado de ofertas-previsiones en KMKey Project

Ahora, desde la pestaña Control --> Informes tenemos disponible el listado que nos ofrece un otput de todas las previsiones entradas, con el detalle de las líneas.

martes, 14 de enero de 2014

Versión inicial en Control de documentación

Para establecer la versión inicial en la documentación controlada simplemente debemos actualizar los valores por defecto de los campos 'effective_revision' i 'initial_revision' a la versión que necesitamos, que generalmente es o 0 o 1

viernes, 11 de octubre de 2013

Informe de permisos por objetos

A veces nos encontramos con la nesidad de analizar detalladamente todos los permisos establecidos en cada objeto

Para facilitarlo podemos ejecutar este script por zopectl debug, y obtener un archivo en formato csv con todos los perfiles por objeto:

site = app.kmkey
from AccessControl.SecurityManagement import newSecurityManager
from Testing.makerequest import makerequest
user = site.acl_users.getUser('manager').__of__(site.acl_users)
newSecurityManager({}, user)
app = makerequest(app)
site = app.kmkey
from Acquisition import aq_base, aq_acquire
context = site.workspaces.kmkey
cat = site.portal_catalog
km = site.workspaces.kmkey
db=site.db
catalog = km.portal_catalog

#Filtrar los objetos que nos  interese
brains = cat(path='/kmkey/workspaces/kmkey/etccc...', meta_type='KM Task',sort_on='relative_path')
len(brains)
obs=[]
i=0
for brain in brains:
  i=i+1
  obs.append(brain.getObject())
  if not i%10:
      i
      site._p_jar.sync()
      site._p_jar.cacheGC()

f=open('/tmp/informe.csv','w')
for ob in obs:
   dm = ob.getContent().getDataModel()
   txt =""""%s";"%s";"%s";"""%(len(ob.getPhysicalPath()),dm['Title'],dm['wbs'])
   roles = ob.get_local_roles()
   #Adaptar para incluir los permisos por grupo
   #groles = ob.get_local_group_roles()
   for item in roles:
       txt = txt + """"%s";"%s";"""%(item[0],' / '.join(item[1]))
   print txt
   f.write(txt+'\n')
f.close()

martes, 8 de octubre de 2013

Copias de seguridad en KMKey

Mantener copias de seguridad es algo importante no sólo en entornos profesionales como servidores en los que esté instalado KMKey sino también una práctica muy prudente a título doméstico, pero a la que habitualmente damos poca prioridad, puesto que mientras no son necesarias resultan una carga algo molesta... pero si un día resultan necesarias y no disponemos de ellas, lamentaremos no haberlas realizado.

Antes de hablar de cómo realizarlas, es preciso indicar qué debe ser resguardado. En KMKey hay dos ubicaciones en las que se almacenan los datos de usuario: por un lado está la base de datos Postgres, en la que hay todos los patrones, expedientes, píldoras y demás, mientras que los documentos se almacenan en un diretorio física, por defecto bajo /var/zope/storages pero podría variar según la instalación.

En la instalación por defecto de KMKey hay un simple script auxiliar (KMKeyCore/utils/rsbackup.sh) que realiza una copia completa en cada ejecución de ambas ubicaciones, realizando un bolcado completo de la base de datos y un archivo contenedor de todos los documentos. Se recomienda encarecidamente su uso.

Sin embargo, con la popularización del KMKey Quality hemos detectado en algunas de las instalaciones que gestionamos un aumento muy significativo del volumen de documentos, debido a la propia vida de los ciclos documentales, lo que a su vez ha repercutido en un crecimiento muy significativo del volumen de las copias de seguridad. Si mantenemos varias copias de seguridad simultáneamente, algo por su parte recomendable, las necesidades de espacio aumentan exponencialmente, lo cual puede resultar inconveniente tanto por el coste de almacenamiento como el de transmisión externa. Además nos hemos percatado que en la mayoría de los casos la proporción de documentos modificados en relación al total de los existentes es reducida, siendo la operación más habitual la de inclusión de nuevo material.

Es por ello que para estos casos sugerimos una aproximación distinta a la estrategia de copias completas cada vez, usando para ello copias incrementales: en ellas realizamos una primera copia completa y seguidamente sólo registramos las diferencias. De este modo nos evitamos almacenar múltiples copias de documentos completamente idénticos.

Para ello usaremos una característica del comando `tar': --listed-incremental. Con ella crearemos dos ficheros: el almacén de documentación similar al habitual más un fichero índice que registra el estado de los ficheros archivados. Mientras usemos este fichero índice especial, las posteriores copias de seguridad incluirán únicamente las diferencias respecto la anterior. La contrapartida importante a tener en cuenta es que para restaurar una copia hasta el estado de una fecha en particular, serán necesarias todos los archivos desde la primera completa hasta la última parcial, incluyendo todas las intermedias.

Pongamos ejemplos: un proceso de copia de seguridad habitual consiste en:

$ tar --create --gzip --file /mnt/backup/kmkey_files.tar.gz /var/zope/storages/kmkey/files
$ tar -czf /mnt/backup/kmkey_files.tar.gz /var/zope/storages/kmkey/files

(los dos comandos son idénticos)

Para convertirlo a un proceso incremental, basta con añadir la opción --listed-incremental (o su versión abreviada, -g) y la ruta al fichero de índice:

$ tar --create --gzip --file /mnt/backup/kmkey_files.tar.gz --listed-incremental /mnt/backup/kmkey_files.tar.incr /var/zope/storages/kmkey/files
$ tar -czf /mnt/backup/kmkey_files.tar.gz -g /mnt/backup/kmkey_files.tar.incr /var/zope/storages/kmkey/files


Si el fichero /mnt/backup/kmkey_files.tar.incr no existe, se creará mientras se realiza una copia completa, mientras que si existe de una ejecución anterior, lo actualizará y el tar que creará contendrá únicamente las diferencias desde la última ejecución. Debemos también tener la precaución de dar un nombre adecuado a cada fichero tar y sobretodo que sean distintos para evitar sobreescribir una copia anterior.


Para la restauración, simplemente sustituiremos --create por --extract (o -c por -x en su forma abreviada), ejecutándolo sobre cada fichero .tar por orden, empezando por la copia completa. Esto además nos permite ir avanzando copia por copia en caso que deseemos restaurar en un punto intermedio: mientras respetemos el orden, podemos detenernos en cualquier momento que la copia será fiel al instante en que se creó la última incremental que hayamos extraído.


Es recomendable generar de vez en cuando una copia completa para reducir el número de incrementales que hay que mantener controlados. Una posibilidad puede ser generar una completa durante el fin de semana, asumiendo una menor carga del servidor ese día, y diarias incrementales. Bastará con eliminar o renombrar el fichero de índice, al que le hemos puesto la extensión .incr, justo antes de lanzar el proceso que deba realizar la copia para que la realize completa en lugar de incremental.

Por lo que se refiere a la base de datos, realizar una copia incremental es algo más complejo si hay que analizar las diferencias entre volcados. Es por ello que, en caso de considerarse necesarias, remitimos al lector a la documentación oficial de Postgres.

En una próxima versión de KMKey modificaremos el script para que sea compatible con el método incremental de copia de seguridad de documentos.

lunes, 7 de octubre de 2013

Ventajas del enfoque a procesos

Respondemos la pregunta de Oliver: Buenas noches, He estado haciendo una investigación acerca de la herramienta de KMKey Quality, y he visto que se le da seguimiento a los procesos de la cadena de valor de una organización. Quisiera saber su punto de vista de este aspecto de la herramienta, ¿Cuales son los aspectos más relevantes de la herramienta, en el aporte a la gestión de la calidad de la cadena de valor? ¿Qué ofrece diferente con respecto a otras herramientas en la misma área? Agradecería mucho la respuesta a este correo. Muchas gracias,

Hola Oliver: El aspecto mas relevante de KMKey Quality es que permite automatizar en un entorno colaborativo de trabajo vía Internet el Sistema de Gestión de Calidad de una empresa u organización. El diseño de éste es responsabilidad del departamento de Calidad. KMKey principalmente facilta el trabajo diario para mantenerlo. El hecho que esté enfocado a procesos, permite aislar y localizar la información relativa a cada uno de ellos de forma sencilla, facilitando así la gestión. Este mapa, obviamente, es configurable de forma automática y cada empresa puede disponer del suyo propio. A partir del mapa podemos filtrar el proceso con el que queremos trabajar. Espero que la respuesta satisfazca tus expectativas. Salut Joan