<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7941892531409037812</id><updated>2012-01-31T14:27:54.793+01:00</updated><category term='Filosofadas'/><category term='Formaciones KMKey'/><category term='Desarrollo KMKey'/><category term='Instalacion KMKey'/><category term='Configuracion KMKey'/><title type='text'>Comunidad KMKey en Español</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>99</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-776379409240972063</id><published>2012-01-27T13:14:00.006+01:00</published><updated>2012-01-27T13:33:21.937+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Carga automática de valores en vocabularios</title><content type='html'>Como ya sabemos, ya sea vía edición de patrón (Admin,Patrones,Campos) o vía zmi; portal_vocabularies, cargar manualmente valores en un vocabulario es algo engorroso,  sobre todo cuando tenemos muchos valores&lt;br /&gt;&lt;br /&gt;Para facilitarlo hemos habilitado la url /uploadCSV que permite cargar los valores de un vocabulario a partir de un archivos .csv separado por ";"&lt;br /&gt;&lt;br /&gt;Especificaciones del archivo de entrada:&lt;br /&gt;- 2 columnas. La primera contiene el ID y la segunda el texto&lt;br /&gt;- Separado por ; (punto y coma)&lt;br /&gt;- Sin comillas ni separador de campos&lt;br /&gt;- Cada item separado por salto de línea \n&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;A;valor1&lt;br /&gt;B;valor2&lt;br /&gt;C;valor3&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-G_KtKuhFGUs/TyKYnN8IZEI/AAAAAAAAAAQ/uT38a6stb9I/s1600/uploadcsv.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 249px;" src="http://1.bp.blogspot.com/-G_KtKuhFGUs/TyKYnN8IZEI/AAAAAAAAAAQ/uT38a6stb9I/s320/uploadcsv.jpg" alt="" id="BLOGGER_PHOTO_ID_5702287877728658498" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-776379409240972063?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/776379409240972063/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2012/01/carga-automatica-de-valores-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/776379409240972063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/776379409240972063'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2012/01/carga-automatica-de-valores-en.html' title='Carga automática de valores en vocabularios'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-G_KtKuhFGUs/TyKYnN8IZEI/AAAAAAAAAAQ/uT38a6stb9I/s72-c/uploadcsv.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3023370672485191293</id><published>2012-01-24T14:27:00.001+01:00</published><updated>2012-01-24T14:29:20.326+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Método de grabación de vídeos en GNU/Linux</title><content type='html'>Para aquellos que estén interesados en cómo grabamos nuestros vídeos de KMKey desde nuestros PC's con GNU/Linux, aquí os adjunto las instrucciones:&lt;br /&gt;&lt;br /&gt;1) Instalar gtk-recordmydesktop:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo apt-get install gtk-recordmydesktop mencoder&lt;/div&gt;&lt;br /&gt;2) Ejecutarlo con gtk-recordmydesktop y, ANTES de grabar, indicar el destino con el botón "Guardar Como"&lt;br /&gt;&lt;br /&gt;3) Seleccionar una área de grabación arrastrando el mouse sobre el Preview&lt;br /&gt;&lt;br /&gt;4) Eso nos generará un vídeo en format OGV.&amp;nbsp;&amp;nbsp; Para poder subirlo a youtube necesitamos pasarlo a AVI, ejecutando:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mencoder video.ogv -o video.avi -oac mp3lame -ovc lavc&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3023370672485191293?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3023370672485191293/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2012/01/metodo-de-grabacion-de-videos-en.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3023370672485191293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3023370672485191293'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2012/01/metodo-de-grabacion-de-videos-en.html' title='Método de grabación de vídeos en GNU/Linux'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1273082295726928762</id><published>2012-01-24T14:17:00.001+01:00</published><updated>2012-01-24T14:19:31.926+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Video presentación de la configuración SGI</title><content type='html'>Adjuntamos vídeo de presentación de la nueva configuración de KMKey Quality para Sistemas de Gestión Integrados (Calidad, Medio Ambiente y Seguridad):&lt;br /&gt;&lt;br /&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/F_6QzTSeui4" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Se puede obtener más información en la página comercial: &lt;a href="http://www.kmkey.com/kmkey_com/es/configuraciones/software_calidad_integrado_iso_9001_14001_ohsas_18001_integrada"&gt;KMKey SGI&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1273082295726928762?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1273082295726928762/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2012/01/video-presentacion-de-la-configuracion.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1273082295726928762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1273082295726928762'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2012/01/video-presentacion-de-la-configuracion.html' title='Video presentación de la configuración SGI'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/F_6QzTSeui4/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7890277442179712468</id><published>2012-01-12T10:59:00.005+01:00</published><updated>2012-01-12T11:08:31.772+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Personalizar envío de notificaciones</title><content type='html'>&lt;span style="font-size:85%;"&gt;Veréis que al agregar una pill tenéis la opción de "Notificar". Esto envía una notificación por defecto a los usuarios seleccionados&lt;br /&gt;&lt;br /&gt;Para personalizar esta notificación realizaremos los siguientes pasos:&lt;br /&gt;&lt;br /&gt;1 - Crear un scrit en zmi/portal_skins/custom. (podéis utilizar cualquier nombre de script)&lt;br /&gt;2 - Parámetros de entrada  : ob,project,notif,field,translate,_=None,usernames=''&lt;br /&gt;&lt;/span&gt;&lt;div class="msg"&gt;&lt;span style="font-size:85%;"&gt;3 - Contenido orientativo del script :&lt;br /&gt;&lt;br /&gt;if not ob:&lt;br /&gt; return False&lt;br /&gt;&lt;br /&gt;proxy = ob&lt;br /&gt;dm = ob.getContent().getDataModel()&lt;br /&gt;project_dm = project.getContent().getDataModel()&lt;br /&gt;utool = context.portal_url&lt;br /&gt;&lt;br /&gt;subject = "Mi Subject"&lt;br /&gt;if not usernames:&lt;br /&gt; usernames = dm['notify_to']&lt;br /&gt;&lt;br /&gt;mfrom=''&lt;br /&gt;member = dm['member']&lt;br /&gt;remitente = ''&lt;br /&gt;if member:&lt;br /&gt; brains = catalog(username=member)&lt;br /&gt; if len(brains):&lt;br /&gt;    remitente = brains[0].Title&lt;br /&gt;    aux = brains[0].getObject().getContent().getDataModel()&lt;br /&gt;    if aux['email']:&lt;br /&gt;        mfrom = aux['email']&lt;br /&gt;&lt;br /&gt;url = utool.getRelativeContentURL(proxy)&lt;br /&gt;if '__' in url:&lt;br /&gt; url = '/'.join(url.split('/')[:-1])&lt;br /&gt;&lt;br /&gt;body = """&lt;br /&gt;Aquí va el texto del cuerpo del mensaje, donde podemos adjuntar todos los datos&lt;br /&gt;obtenidos&lt;br /&gt;"""&lt;br /&gt;&lt;br /&gt;notif.notifyUsersFromIds(members_ids=usernames, subject=subject, body=body,related_path='',mfrom=mfrom,send_notification_url=False)&lt;br /&gt;something_done = True&lt;br /&gt;return True&lt;br /&gt;&lt;br /&gt;4 - Finalmente damos una propiedad a nivel de site (zmi , pestaña properties) , llamada : "custom_skin_for_sendNotifications", del tipo string, y le daremos el nombre de nuestro script&lt;br /&gt;&lt;br /&gt;a partir de ahí, las notificaciones enviadas con un campo del tipo KMKey Notification Field, utilizarán este custom script&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7890277442179712468?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7890277442179712468/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2012/01/personalizar-envio-de-notificaciones.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7890277442179712468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7890277442179712468'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2012/01/personalizar-envio-de-notificaciones.html' title='Personalizar envío de notificaciones'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-5980573010323524984</id><published>2011-12-16T19:53:00.000+01:00</published><updated>2011-12-16T19:53:00.518+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>LDAP en KMKey</title><content type='html'>Hace algún tiempo describimos cómo llevar a cabo un Single Sign On (SSO) en KMKey. &amp;nbsp;Hoy vamos a detallar cómo conseguir autentificarnos contra un servidor LDAP, como puede ser Active Directory, sin necesidad de SSO, simplemente usando los mismos nombres de usuario y clave en la página de login de KMKey.&lt;br /&gt;&lt;br /&gt;1) Lo primero que vamos a necesitar es instalar algunas  librerías y el módulo de python ldap para python2.4:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="font-family: courier new;"&gt;# Comprobar que disponemos de la rama non-free activada en nuestro /etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;su&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #500050;"&gt;apt-get install libldap-2.4-2  libldap2-dev  libnss-ldap  python-ldap&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;apt-get install&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;libsasl2-modules-ldap&amp;nbsp;&lt;/span&gt;libsasl2-dev&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;apt-get source python-ldap&lt;br /&gt;python2.4 setup.py install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) Seguidamente necesitaremos actualizar o instalar algunos módulos de KMKey. &amp;nbsp;Los podemos obtener mediante subversion:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span style="font-family: 'courier new';"&gt;cd /usr/local/kmkey/zope/Products/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'courier new';"&gt;svn co https://joinup.ec.europa.eu/svn/kmkey/products/KMKeyLDAP/trunk KMKeyLDAP&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;svn co https://joinup.ec.europa.eu/svn/kmkey/vendors/CPSDirectory/branches/kmkey CPSDirectory&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;svn co https://joinup.ec.europa.eu/svn/kmkey/vendors/CPSUserFolder/branches/kmkey&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;CPSUserFolder&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new'; font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'courier new'; font-size: 85%;"&gt;/usr/local/kmkey/zope/bin/zopectl restart&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'courier new'; font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;3) Entrar en el Zope Management Interfac (ZMI), ir a portal_directories,  y añadir un "CPS LDAP Backing Directory" que se llame "members_ldap",  con estas propiedades:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="font-family: courier new;"&gt;    Schemas (old style - for backward compatibility) -&amp;gt; members_ldap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Additional schemas (new style - merged with the previous) -&amp;gt; members_readonly_entry_flag_true &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Is the directory read-only? -&amp;gt; Marcado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    ACL: entry create roles -&amp;gt; Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    ACL: entry delete roles -&amp;gt; Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    ACL: entry view roles -&amp;gt; Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    ACL: entry edit roles -&amp;gt; Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Field for entry title -&amp;gt; cn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Fields with substring search -&amp;gt; cn givenName sn mail  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Field for password (if authentication) -&amp;gt; userPassword&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP server -&amp;gt; IP del servidor LDAP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP port -&amp;gt; 389&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP base -&amp;gt; CN=Users,DC=dominio,DC=win (este es el defecto, pero puede cambiar para cada LDAP)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP scope -&amp;gt; SUBTREE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP object classes (search) -&amp;gt; top, person&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP bind dn -&amp;gt; usuariocreado@DOMINI.WIN (corresponde al usuario creado en el punto 2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP bind password -&amp;gt; clave correspondiente al usuario creado en el punto 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP rdn attribute (create) -&amp;gt; sAMAccountName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP object classes (create) -&amp;gt; top, person&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Field that contains a list of sub entries id for hierarchical directory -&amp;gt; None&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    attr used as id for children_attr default is ldap_rdn_attr. -&amp;gt; cn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP auto reconnect feature: maximum retry -&amp;gt; 1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP auto reconnect feature: delay in seconds before retrying -&amp;gt; 60.0 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LDAP network timeout in seconds for any request (0 means no limit) -&amp;gt; 0.0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Una vez hecho esto, se puede comprobar que funciona la conexión con el LDAP usando la pestaña "Search" del propio directory&lt;br /&gt;&lt;br /&gt;4) Finalmente, en el mismo ZMI, en kmkey/portal_setup pestaña Profiles debemos importar el profile "KMKey LDAP"&lt;br /&gt;&lt;br /&gt;Y ya lo tenemos disponible. A partir de este momento nuestro KMKey admitirá tanto usuarios locales como usuarios de nuestro LDAP. &amp;nbsp; A éstos últimos se les generará automáticamente un usuario local de KMKey la primera vez que entren, aunque el password será siempre validado contra el LDAP. &amp;nbsp; &lt;br /&gt;&lt;br /&gt;Finalmente, tenemos la posibilidad de añadir en portal_skins/custom un script con nombre&amp;nbsp;&lt;i&gt;getLanguageFromLDAP&lt;/i&gt; que reciba como parámetro el DN del usuario y devuelva un idioma por defecto, y&amp;nbsp;&lt;i&gt;getSecurityGroupsFromLDAP&lt;/i&gt; que reciba el mismo parámetro y devuelva los grupos de permisos a asignar al usuario por defecto durante el proceso de creación.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-5980573010323524984?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/5980573010323524984/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/12/ldap-en-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5980573010323524984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5980573010323524984'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/12/ldap-en-kmkey.html' title='LDAP en KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-312713677225654650</id><published>2011-10-31T14:40:00.000+01:00</published><updated>2011-10-31T14:40:10.478+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Mejoras de usabilidad</title><content type='html'>Otra de las novedades de la próxima versión de KMKey son sus mejoras en usabilidad.&amp;nbsp; Entre otras cosas, destacan los cambios siguientes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Hemos rediseñado la forma en que el árbol de navegación se relaciona visualmente con el contenido del cuerpo de pantalla&lt;/li&gt;&lt;li&gt;Hemos ido hacia un entorno con menos color de fondo y menos cargado&lt;/li&gt;&lt;li&gt;Se han cambiado elementos poco intuitivos como los filtros específicos de las pantallas&lt;/li&gt;&lt;li&gt;Se ha relacionado visualmente el filtro de expedientes en curso con el árbol de navegación&lt;/li&gt;&lt;li&gt;Se han reorganizado los menús en 3 niveles:&amp;nbsp; Tab principal, vista actual dentro del Tab y acciones realizables&lt;/li&gt;&lt;li&gt;Se ha cambiado gran parte de la navegación de la aplicación para que ésta pase a realizarse mediante llamadas AJAX, mejorando mucho la experiencia de usuario y evitando recargas de pantalla&lt;/li&gt;&lt;/ul&gt;Os dejamos una captura de pantalla para que os hagais una idea de cómo se refleja todo lo anterior en el programa:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-fXqlybgXnFQ/Tq6kumP2B4I/AAAAAAAAAgw/WehuVeiKTAQ/s1600/Pantallazo_usabilitat.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/-fXqlybgXnFQ/Tq6kumP2B4I/AAAAAAAAAgw/WehuVeiKTAQ/s320/Pantallazo_usabilitat.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-312713677225654650?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/312713677225654650/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/10/mejoras-de-usabilidad.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/312713677225654650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/312713677225654650'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/10/mejoras-de-usabilidad.html' title='Mejoras de usabilidad'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-fXqlybgXnFQ/Tq6kumP2B4I/AAAAAAAAAgw/WehuVeiKTAQ/s72-c/Pantallazo_usabilitat.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-8063132217812903197</id><published>2011-10-31T11:46:00.000+01:00</published><updated>2011-10-31T11:46:55.116+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Facturación Ágil en KMKey</title><content type='html'>En la última versión de KMKey hemos desarrollado una funcionalidad adicional para la agilización de la facturación, para los clientes que tienen necesidades de facturar servicios de forma repetitiva, o muchos pequeños importes de golpe.&amp;nbsp; Consiste en una nueva pantalla de facturación donde, a partir de un filtro de expedientes y un período, el programa propone todas las facturas a emitir, permitiéndole al usuario seleccionar las que desee o corregir los importes, para después generar la píldora ingreso, el documento factura en el formato elegido, e incluso enviarlo automáticamente por email a una persona de contacto.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-WslaGmse-h4/Tq54-tHuqwI/AAAAAAAAAgo/0ooU01wOPJY/s1600/Pantallazo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/-WslaGmse-h4/Tq54-tHuqwI/AAAAAAAAAgo/0ooU01wOPJY/s320/Pantallazo.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Por el momento existen tres esquemas bajo los que se puede usar dicha facturación, puediéndose aplicar todos a la vez (distinguiéndolos según expediente), o usar únicamente uno de ellos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Importe fijo&lt;/b&gt;.&amp;nbsp; Debe existir en cada expediente una o más Ofertas económicas (previsiones económicas de tipo oferta) aceptadas formalmente.&amp;nbsp; El programa propone en ese caso facturar el importe de la oferta, usando sus mismas línias de factura, conceptos contables, IVA's, etc &lt;/li&gt;&lt;li&gt;&lt;b&gt;Por horas de servicio realizadas.&lt;/b&gt;&amp;nbsp; En este caso es necesario que a cada expediente se le asocie una tarifa de precios, donde se especiquen los precios/hora por día laborable o festivo.&amp;nbsp; Opcionalmente se puede asociar un calendario laboral, para diferenciar los días festivos.&amp;nbsp; El programa propondrá facturar el resultado de multiplicar las horas trabajadas en el período por el precio/hora de la tarifa según el día en que se realizaron los servicios fuera laborable o festivo.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Importe diario.&lt;/b&gt;&amp;nbsp; Deben existir en cada expediente un o más Ofertas económica aceptada formalmente, y además tener asociado un calendario laboral.&amp;nbsp; El programa propondrá facturar el resultado de mutiplicar el número de días laborables por el importe de la oferta aceptada.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-8063132217812903197?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/8063132217812903197/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/10/facturacion-agil-en-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8063132217812903197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8063132217812903197'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/10/facturacion-agil-en-kmkey.html' title='Facturación Ágil en KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-WslaGmse-h4/Tq54-tHuqwI/AAAAAAAAAgo/0ooU01wOPJY/s72-c/Pantallazo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4471489169187598410</id><published>2011-09-15T18:34:00.005+02:00</published><updated>2011-09-16T09:48:43.371+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Soporte para folleto bancario 19</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/--w-YFGZtdD4/TnIrNdwGvbI/AAAAAAAAAAs/x8hSS6aQ-ZQ/s1600/KMCSB19.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 130px;" src="http://4.bp.blogspot.com/--w-YFGZtdD4/TnIrNdwGvbI/AAAAAAAAAAs/x8hSS6aQ-ZQ/s320/KMCSB19.png" alt="" id="BLOGGER_PHOTO_ID_5652627992628084146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Acabamos de desarrollar en KMKey soporte para la creación de folletos bancarios modelo 19 para presentación telemática, generando un fichero para entregar al banco para que gestione el cobro de recibos. La funcionalidad es bastante simple: con una nueva opción de menú Generar CSB19 tenemos una pantalla con las píldoras ingreso pendientes de cobro.&lt;br /&gt;&lt;br /&gt;Antes de empezar debemos definir el emisor. Para ello crearemos una entrada de empresa en la pantalla de grupos que represente la nuestra, si es que no existe ya, y rellenaremos el campo de cuenta cliente que se usará para el ingreso de los recibos. Una vez creado, tendremos que añadir la propiedad 'csb_presentador_docid' en la raíz del site vía ZMI en la que escribiremos el docid del grupo.&lt;br /&gt;&lt;br /&gt;Podemos generar el fichero bancario tantas veces como deseemos, por defecto sólo nos saldrán marcados aquellas líneas que no se hayan exportado aún, y en las que sí se haya realizado alguna exportación nos aparecerá la fecha de la misma. No saldrán las ya cobradas. Aquí también es importante que los clientes tengan definido en la ficha de grupo su cuenta corriente, en caso contrario la línea será ignorada en el proceso y no incluída en el fichero de salida.&lt;br /&gt;&lt;br /&gt;Una vez pulsemos en Generar, se creará el fichero bancario a enviar al banco.&lt;br /&gt;&lt;br /&gt;Próximamente se implementarán otros folletos bancarios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4471489169187598410?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4471489169187598410/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/soporte-para-folleto-bancario-19.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4471489169187598410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4471489169187598410'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/soporte-para-folleto-bancario-19.html' title='Soporte para folleto bancario 19'/><author><name>Eloi [entfe001]</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/--w-YFGZtdD4/TnIrNdwGvbI/AAAAAAAAAAs/x8hSS6aQ-ZQ/s72-c/KMCSB19.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1686711203839778120</id><published>2011-09-13T17:03:00.000+02:00</published><updated>2011-09-13T17:03:44.410+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Como personalizar el logo de KMKey</title><content type='html'>Es frecuente que en nuestro KMKey queramos ver el logotipo corporativo de nuestra empresa o institución. &amp;nbsp;Para personalizarlo tenemos que acceder al ZMI (Zope Management Interface), para lo cual necesitaremos un usuario administrador y abrir en un navegador la dirección http://url_de_kmkey/manage&lt;br /&gt;&lt;br /&gt;Nos aparecerán las internalidades de KMKey, algo parecido a esto:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-IiNG0UffRQE/Tm9u7NtJCQI/AAAAAAAAAf4/M7xuRgdDi64/s1600/zmi.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="258" src="http://4.bp.blogspot.com/-IiNG0UffRQE/Tm9u7NtJCQI/AAAAAAAAAf4/M7xuRgdDi64/s320/zmi.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;En esta interficie tenemos que navegar hasta la carpeta &lt;i&gt;portal_skins/custom&lt;/i&gt; y añadir allí un objeto del tipo &lt;i&gt;Image&lt;/i&gt;, seleccionando una imagen de nuestro disco duro. &amp;nbsp;Recomendamos usar logos con una altura de entre 50px y 60px para no distorsionar la interficie de KMKey. &amp;nbsp; Debemos recordar el ID que le ponemos a nuestra imagen, por ejemplo &lt;i&gt;logo_empresa.png&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Una vez tenemos la imagen dentro de nuestro ZMI, debemos volver a la raíz del mismo y, en el frame de la derecha, buscar la pestaña &lt;i&gt;Properties. &amp;nbsp;&lt;/i&gt;Allí tendremos definidas, y si no lo están las podemos añadir, dos propiedades llamadas&lt;i&gt; logo_path y logo_header_path&lt;/i&gt; &amp;nbsp; La primera corresponde al logo que se muestra en la pantalla de login, y el segundo al que se muestra una vez dentro de la aplicación. &amp;nbsp; Debemos completarlas con el valor del ID de la imagen que hemos subido, en nuestro ejemplo sería &lt;i&gt;logo_empresa.png&lt;/i&gt;&amp;nbsp; &amp;nbsp;Y con eso ya tenemos nuestro KMKey con logo personalizado&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1686711203839778120?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1686711203839778120/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/como-personalizar-el-logo-de-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1686711203839778120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1686711203839778120'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/como-personalizar-el-logo-de-kmkey.html' title='Como personalizar el logo de KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-IiNG0UffRQE/Tm9u7NtJCQI/AAAAAAAAAf4/M7xuRgdDi64/s72-c/zmi.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7524776511017776711</id><published>2011-09-13T12:21:00.000+02:00</published><updated>2011-09-13T12:21:23.747+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Sustitución de recursos</title><content type='html'>En la nueva versión de KMKey disponemos ya de una utilidad para la sustitución automática de recursos, de forma que cuando un recurso, por el motivo que sea (baja, vacaciones, etc), no puede atender los servicios, se puede definir una sustitución por parte de un nuevo recurso durante un período de tiempo. &amp;nbsp; Así, con una sola acción, se borrarán todas las asignaciones de los recursos sustituidos, y se crearan asignaciones nuevas para el recurso sustitutor. &amp;nbsp;La nueva utilidad se encuentra disponible desde la acción &lt;i&gt;Sustituir recurso&lt;/i&gt; en las pantallas de &lt;i&gt;Planificar / Recursos&lt;/i&gt; y &lt;i&gt;Planificar / Agenda&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-M8WOozv7Kfw/Tm8uOSyZQSI/AAAAAAAAAf0/OLa4UEUdpwY/s1600/sustitucion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="169" src="http://1.bp.blogspot.com/-M8WOozv7Kfw/Tm8uOSyZQSI/AAAAAAAAAf0/OLa4UEUdpwY/s320/sustitucion.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7524776511017776711?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7524776511017776711/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/sustitucion-de-recursos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7524776511017776711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7524776511017776711'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/sustitucion-de-recursos.html' title='Sustitución de recursos'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-M8WOozv7Kfw/Tm8uOSyZQSI/AAAAAAAAAf0/OLa4UEUdpwY/s72-c/sustitucion.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1491147996786808224</id><published>2011-09-12T13:53:00.000+02:00</published><updated>2011-09-12T13:53:46.684+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Formación para Administradores: Los Patrones</title><content type='html'>KMKey incorpora un concepto clave, llamado &lt;i&gt;Patrón de trabajo&lt;/i&gt;, que podríamos definir como la representación informática de un procedimiento, término muy usado en la gestión de calidad. &amp;nbsp;En informática se asemejaría a un tipo de datos, con la diferencia de que los patrones son configurables visualmente por un administrador, y que además incorporan otras cosas como tratamiento de permisos, flujos de trabajo, o creación de subobjetos.&lt;br /&gt;&lt;br /&gt;Siempre que creamos un expediente o proyecto en KMKey lo haremos en base a un Patrón de trabajo. &amp;nbsp;El patrón nos va a determinar, como mínimo:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Qué campos componen la definición del expediente o proyecto&amp;nbsp;&lt;/li&gt;&lt;li&gt;Qué Perfiles vamos a poder asignar a los usuarios de ese expediente o proyecto&lt;/li&gt;&lt;li&gt;Qué estructura de tareas y subtareas, con plazos y esfuerzos, se va a generar asociado al expediente o proyecto&lt;/li&gt;&lt;li&gt;Qué documentos pueden generarse a partir de plantillas en ese&amp;nbsp;expediente o proyecto&lt;/li&gt;&lt;li&gt;Qué conceptos contables van a poder usarse al entrar información económica del proyecto&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Para poder crear o editar patrones de trabajo, tenemos que ser usuarios administradores. &amp;nbsp;Si lo somos podemos visitar la opción &lt;i&gt;Admin / Patrones &lt;/i&gt;&amp;nbsp;y observar alguno de ellos. &amp;nbsp; Si estando en un patrón visitamos la opción &lt;i&gt;Campos&lt;/i&gt;&amp;nbsp;nos aparecerá una pantalla parecida a ésta:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-gRCC2YxwCc8/Tm3d9_fIBLI/AAAAAAAAAfs/i9cv0LkRrnE/s1600/campos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://2.bp.blogspot.com/-gRCC2YxwCc8/Tm3d9_fIBLI/AAAAAAAAAfs/i9cv0LkRrnE/s320/campos.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;En ella vemos que podemos ir definiendo los campos que necesitamos para componer nuestro patrón o procedimiento. &amp;nbsp;La primera columna corresponde al identificador interno del campo, y es importante NO usar acentos ni espacios en blanco. &amp;nbsp;Se recomienda además usar minúsculas. &amp;nbsp; Obsérvese también que haciendo click en esta columna se puede definir una ayuda asociada al campo, cosa muy útil para procedimientos a usar por usuarios noveles. &amp;nbsp;La segunda columna corresponde a la etiqueta que van a visualizar los usuarios asociada al campo, y es un texto libre. &amp;nbsp;La tercera columna es el tipo de datos, seguida del tipo de widget que se quiere usar para su representación. Después viene el grupo de campos (se pueden definir agrupaciones en la parte final del mismo formulario), el ancho en pantalla, el valor por defecto y una marca que define si el campo es obligatorio. &amp;nbsp;Todo ello acaba generando una pantalla de definición como ésta:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-qeadu4LfLsY/Tm3eOLcKlEI/AAAAAAAAAfw/QvhiG1ndrts/s1600/definicion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://1.bp.blogspot.com/-qeadu4LfLsY/Tm3eOLcKlEI/AAAAAAAAAfw/QvhiG1ndrts/s320/definicion.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Como widgets principales podemos destacar la &lt;i&gt;Cadena&lt;/i&gt;&amp;nbsp;(una linia de texto), el &lt;i&gt;Texto&lt;/i&gt;&amp;nbsp;(un bloque de texto), la &lt;i&gt;Selección &lt;/i&gt;(donde podremos definir un conjunto de valores internos/externos posibles), la &lt;i&gt;Fecha&lt;/i&gt;&amp;nbsp;(que nos deja elegir sobre un calendario) y la &lt;i&gt;Relación con Grupo&lt;/i&gt;&amp;nbsp;(que nos deja relacionar el expediente con un cliente, por ejemplo). &amp;nbsp; Hay muchos más widgets disponibles desde las interficies avanzadas, cada uno con sus peculiaridades, pero sólo están disponibles para usuarios con perfil técnico por su mayor complejidad.&lt;br /&gt;&lt;br /&gt;Si dejamos la pantalla de &lt;i&gt;Campos&lt;/i&gt; y vamos a la pantalla &lt;i&gt;Modificar&lt;/i&gt;&amp;nbsp;patrón, veremos que después del título y descripción aparece una campo llamado &lt;i&gt;XML de Creación de objetos. &lt;/i&gt;Este XML se usa principalmente para definir la estructura de tareas y subtareas, con plazos y esfuerzos previstos, asociada al patrón, aunque puede tener otros muchos usos. &amp;nbsp; Si usted esta familiarizado con la sintaxis XML, le recomendamos la lectura de la guía&amp;nbsp;&lt;a href="http://kmkey-es.blogspot.com/2009/05/xml-para-definir-tareas-en-patrones.html"&gt;Definición del XML de creación de objetos&lt;/a&gt;&amp;nbsp; y&amp;nbsp;&lt;a href="http://kmkey-es.blogspot.com/2010/06/patrones-de-trabajo-avanzados.html"&gt;Usos avanzados del XML de creación de objetos&lt;/a&gt;&amp;nbsp; &amp;nbsp;De lo contrario no se preocupe, también disponemos de un Excel capaz de generar el XML básico para la definición de tareas&lt;br /&gt;&lt;br /&gt;El siguiente campo corresponde a un &lt;i&gt;XML de Objetos Generables&lt;/i&gt;. &amp;nbsp;Se refiere a plantillas OpenOffice contenidas dentro de nuestro propio KMKey que contienen instrucciones para combinarse con datos de nuestros expedientes y generar un documento cumplimentado o semi-cumplimentado. &amp;nbsp; &amp;nbsp;Ejemplos de estos usos son un informe de incidencia, un documento factura o cualquier tipo de informe o documento asociado al patrón que pueda automatizarse. &amp;nbsp; &amp;nbsp;Para la creación de estas plantillas recomendamos la lectura de la &lt;a href="http://kmkey-es.blogspot.com/2009/06/usando-openoffice-para-hacer-listados-i.html"&gt;Guía para definición de listados&lt;/a&gt;&amp;nbsp; Para su uso desde un patrón, se entra en el campo XML algo parecido a:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;document&lt;br /&gt;default_title="registro_de_incidencia.doc"&lt;br /&gt;formats="doc#@oo#@pdf"&lt;br /&gt;default_format="pdf"&lt;br /&gt;getDocid="403424947"&lt;br /&gt;view_class="Products.KMKeyDefault.reportsview.SpanishReportsView"&lt;br /&gt;view_context="context.getContent().getKMProject()"/&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Donde se especifican formatos de salida, formato por defecto, nombre por defecto, y los más importante, el getDocId o identificador interno de la plantilla.&lt;br /&gt;&lt;br /&gt;Nos queda únicamente definir las relaciones Patrón - Perfiles, que son varias:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Campo &lt;i&gt;Perfiles que pueden ser asignados en expedientes creados con este patrón. &amp;nbsp;&lt;/i&gt;Permite definir los perfiles que podrán se usados desde los expedientes&lt;/li&gt;&lt;li&gt;Campo &lt;i&gt;Perfiles bloqueados en objetos creados con este patrón.&lt;/i&gt;&amp;nbsp; Define los perfiles que se bloquean automáticamente al crear los expedientes con este patrón. &amp;nbsp;Típicamente tendrá marcados los valores &lt;i&gt;Acceso Básico &lt;/i&gt;y &lt;i&gt;Creadores de proyectos y contactos&lt;/i&gt;.&lt;/li&gt;&lt;li&gt;Campo &lt;i&gt;Los miembros de estos grupos tendrán acceso a todos los expedientes creados con este patrón.&lt;/i&gt; &amp;nbsp;Automatismo para asignar grupos de usuarios a todos los expedientes durante su creación. &amp;nbsp;Los grupos marcados serán asignados a cada expediente que se cree asociados al perfil que ellos mismo definen&lt;/li&gt;&lt;li&gt;Pantalla de la opción &lt;i&gt;Acceso al patrón. &amp;nbsp; &lt;/i&gt;Esta opción es especialmente importante porque &lt;b&gt;controla qué usuarios podrán crear expedientes usando este patrón&lt;/b&gt;. &amp;nbsp;En la columna de la izquierda tenemos los perfiles bloqueados (de nuevo típicamente&amp;nbsp;&lt;i&gt;Acceso Básico&amp;nbsp;&lt;/i&gt;y&amp;nbsp;&lt;i&gt;Creadores de proyectos y contactos) &lt;/i&gt;&amp;nbsp;y en la columna de la derecha los grupos de usuarios explícitamente permitidos. &amp;nbsp;Para entender el funcionamiento de esta pantalla es necesario haber comprendido previamente el uso de permisos para lo cual recomendamos la &lt;a href="http://kmkey-es.blogspot.com/2011/09/formacion-para-administradores-los.html"&gt;Formación sobre permisos&lt;/a&gt;&amp;nbsp; NOTA: si crea patrones nuevos por defecto aparecerán todos los grupos bloqueados para evitar que sus usuarios los usen mientras se están definiendo. &amp;nbsp;Ajuste los permisos cuando puedan empezar a usarlo.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1491147996786808224?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1491147996786808224/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/formacion-para-administradores-los_12.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1491147996786808224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1491147996786808224'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/formacion-para-administradores-los_12.html' title='Formación para Administradores: Los Patrones'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-gRCC2YxwCc8/Tm3d9_fIBLI/AAAAAAAAAfs/i9cv0LkRrnE/s72-c/campos.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3009325817125001747</id><published>2011-09-12T11:45:00.000+02:00</published><updated>2011-09-12T11:45:51.274+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Formación para Administradores: Los Permisos</title><content type='html'>&lt;div class="separator" style="clear: left; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/-W-6Ag9DhaZo/Tm3UMk0ESgI/AAAAAAAAAfk/ZUPam1owfSU/s1600/permisos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="238" src="http://2.bp.blogspot.com/-W-6Ag9DhaZo/Tm3UMk0ESgI/AAAAAAAAAfk/ZUPam1owfSU/s320/permisos.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;En primer lugar, para gestionar los permisos es necesario comprender que KMKey tiene una estructura de árbol de objetos: &amp;nbsp;hay una raíz a la que llamamos &lt;i&gt;aplicación&lt;/i&gt;, que contiene &lt;i&gt;expedientes o proyectos&lt;/i&gt;&amp;nbsp;que a su vez contienen &lt;i&gt;tareas&lt;/i&gt;, y éstas contienen lo que llamamos &lt;i&gt;píldoras de información&lt;/i&gt; (documentos, notas, horas trabajadas, etc). &amp;nbsp;Por otro lado, tenemos los &lt;i&gt;Perfiles&lt;/i&gt;, que no son más que conjuntos de permisos.&lt;br /&gt;&lt;br /&gt;La gestión de permisos lo que hace es&lt;b&gt; otorgar un perfil a un usuario en un punto concreto del árbol&lt;/b&gt;, lo que le proporciona unos permisos desde ese punto hacia arriba. &amp;nbsp;Esa es la idea principal. &amp;nbsp;Todo lo que viene a continuación son matices sobre esta idea fundamental que no se debe perder de vista. &amp;nbsp; Para ilustrarla con un ejemplo, imaginemos que tenemos un perfil llamado "Jefe de Proyecto", que proporciona todos los permisos, y queremos que el usuario "juan" se el jefe de los proyectos "A" y "C", mientras "pepe" es el jefe del proyecto "B". &amp;nbsp;Si nos vamos a la opción &lt;i&gt;Equipo / Permisos&lt;/i&gt; en cada uno de los proyectos y asignamos los respectivos usuarios a su perfil, éstos pasarán a tener control total sobre esos proyectos concretos, sin ni siquiera visualizar los proyectos de otros ("juan" no ve el proyecto "B", por ejemeplo, pero ve todo lo que sucede en "A" y "C")&lt;br /&gt;&lt;br /&gt;Bueno, en realidad, además de otorgar un Perfil a un usuario también podemos dárselo a un grupo de usuarios, caso útil si un grupo de empleados trabajan siempre juntos, eso es lo que aparece en el primer cuadro de la pantalla&lt;i&gt; Equipo / Permisos&lt;/i&gt;&amp;nbsp;cuando estamos en un expediente o tarea.&lt;br /&gt;&lt;br /&gt;Para crear nuevos Perfiles, podremos hacerlo desde la opción &lt;i&gt;Equipo / Grupos / Añadir Grupo / Grupo de Permisos&lt;/i&gt; siempre y cuando seamos administradores del sitio. &amp;nbsp; Para crear usuarios haremos lo mismo desde la opción &lt;i&gt;Equipo / Contactos / Añadir Contacto&lt;/i&gt; &amp;nbsp;Si somos administradores podremos proporcionarle un nombre de usuario y una clave, y desde la opción &lt;i&gt;Equipo / Permisos&lt;/i&gt; (previa selección del punto del árbol en la estructura de navegación de la izquierda), podremos ir asignándole Perfiles.&lt;br /&gt;&lt;br /&gt;Observaremos que los perfiles que podemos otorgar van variando según el punto del árbol, son distintos en la raíz que en los proyectos, incluso pueden ser distintos según el tipo de proyecto o expediente. &amp;nbsp; Eso es porque KMKey permite definir qué perfiles son de Aplicación (mediante un checkbox al crear), y qué perfiles son de Patrón (se asocian a cada patrón de trabajo, se hablará de ello en el post específico de patrones de trabajo)&lt;br /&gt;&lt;br /&gt;Nos queda por resolver una paradoja. &amp;nbsp;Si creamos un Perfil de Aplicación con permiso de lectura, ¿ eso otorgará a los usuarios que sean asignados acceso a toda la información de KMKey ? &amp;nbsp;Pues sí, efectivamente. &amp;nbsp;¿ Y cómo funciona el perfil &lt;i&gt;Acceso Básico&lt;/i&gt;, que NO da acceso a todo el KMKey ? &amp;nbsp;Pues mediante un sistema que se llama &lt;i&gt;Bloqueo de Perfiles&lt;/i&gt;, y que desautoriza un Perfil desde un punto determinado hacia arriba del árbol. &amp;nbsp; Podemos observar esta funcionalidad en la parte final de la pantalla &lt;i&gt;Equipo / Permisos &lt;/i&gt;, donde aparece el cuadro titulado "Perfiles bloqueados desde". &amp;nbsp; Tambiés es posible (e imprescindible de hecho), automatizar este bloqueo definiendolo en los patrones de trabajo. &amp;nbsp;Es muy recomendable que todo patrón de trabajo bloquee al menos los Perfiles de Aplicación definidos por defecto (el &lt;i&gt;Acceso Básico&lt;/i&gt;&amp;nbsp;y el &lt;i&gt;Creador de proyectos y contactos&lt;/i&gt;), de los contrario los expedientes creados con ese patrón serán visibles a todos los usuarios.&lt;br /&gt;&lt;br /&gt;Ya para acabar, comentar la existencia un perfil un tanto especial, llamado &lt;i&gt;Owner o Propietario&lt;/i&gt;&amp;nbsp; Este perfil existe y proporciona todos los permisos, y se asigna automáticamente al usuario que crea cada objeto. &amp;nbsp; Por ejemplo, si yo creo una nota en un expediente, seré Propietario de esa nota, cosa que me proporcionará el permiso para poder borrarla, por ejemplo, cosa que no podré hacer con la nota de mi vecino, a no ser que posea algún otro Perfil que me deje borrar cualquier cosa en ese expediente. &amp;nbsp;No contradice nada de lo anterior, pero es importante conocer su funcionamiento&lt;br /&gt;&lt;br /&gt;Ya para terminar, algunas referencias a otras entradas relacionadas con la temática expuesta:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://kmkey-es.blogspot.com/2009/05/configuracion-basica-de-permisos.html"&gt;Configuración base de permisos y recomendaciones&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://kmkey-es.blogspot.com/2009/09/permisos-de-acceso-opciones-de-menu.html"&gt;Opciones avanzadas referentes a permisos y menus&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://kmkey-es.blogspot.com/2011/07/grupos-de-permisos-y-perfiles.html"&gt;Novedades en grupos de permisos para la próxima versión (KMKey Belvis)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3009325817125001747?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3009325817125001747/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/formacion-para-administradores-los.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3009325817125001747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3009325817125001747'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/09/formacion-para-administradores-los.html' title='Formación para Administradores: Los Permisos'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-W-6Ag9DhaZo/Tm3UMk0ESgI/AAAAAAAAAfk/ZUPam1owfSU/s72-c/permisos.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-5863244974574244015</id><published>2011-08-24T09:19:00.005+02:00</published><updated>2011-08-24T10:20:18.182+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Filtros y Búsquedas por atributos y contenido</title><content type='html'>Describiremos de forma rápida las diferentes formas de buscar información dentro de KM&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En KMKey podemos decir que tenemos tres elementos principales de información: Proyectos, Tareas y Pills (Documentos, imputación de horas, gastos, etc)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tenemos los siguientes tipos de búsqueda:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Búsqueda global de expedientes (Por atributos predefinidos y SearchableText -Cuadro de búsqueda arriba izquierda-)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Búsqueda global dentro de todo KMKey (Por atributos predefinidos y contenido - Cuadro de búsqueda arriba derecha-)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Filtros de Expedientes/Tareas (Por atributos de expediente y tarea, totalmente  configurable. - Filtros personalizados-)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Filtros de Pills (Filtramos Documentos, imputaciones, etc. Por atributos predefinidos y búsqueda global (SearchableText) -Gestión --&amp;gt; Historia --&amp;gt; Filtrar-)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Filtros para Informes (Personalizables -Control --&amp;gt; Informes-). Esta opción nos permite listar caulquier tipo de objeto,  personalizando todos los atributos y criterios&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Las búsquedas globales buscan un texto o palabra clave dentro de todo el contenido de cada objeto y documento (utilizando los campos indexados en el SearchableText y el contenido de los documentos)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por ejemplo, si buscamos la palabra "Instalación", utilizando el cuadro de búsqueda global (arriba a la derecha) , Nos aparecerá el listado de TODOS los elementos de KM (Proyectos, Tareas, Contactos, Empresas, Documentos) que contengan esa palabra clave en alguno de sus atributos o en el contenido de los documentos adjuntos&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Las búsquedas por atributo permiten indicar qué valores o rangos filtramos en cada uno de los atributos (Por ejemplo : "Proyectos del tipo 'Contrato', del los clientes x,j y k, abiertos entre enero y marzo, con un importe de gestión mayor que z", o "Documentos creados entre enero y marzo por el usuario x, que contengan la palabra xxxx")&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finalmente , a través de Control ---&amp;gt; Informes  , podemos configurar filtros totalmente personalizados para los reports&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-5863244974574244015?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/5863244974574244015/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/08/filtros-y-busquedas-por-atributos-y.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5863244974574244015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5863244974574244015'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/08/filtros-y-busquedas-por-atributos-y.html' title='Filtros y Búsquedas por atributos y contenido'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4881972691284236276</id><published>2011-07-19T17:41:00.000+02:00</published><updated>2011-07-19T17:41:30.916+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Grupos de permisos y Perfiles</title><content type='html'>Los grupos de permisos sirven en KMKey para distintas funciones, y ello ha llevado frecuentemente a confusiones.  Acabamos de instalar en beta un pequeña mejora para facilitar su comprensión.  Aprovechamos aquí para explicar el funcionamiento de cada caso:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1) Perfiles de Aplicación&lt;/b&gt;.  Cuando un grupo de permisos sirve para crear un perfil que otorga permisos sobre toda la aplicación y su contenido, entonces deberá crearse marcando el checkbox "Es un perfil de Aplicación"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2) Perfiles de Patrones&lt;/b&gt;.  Cuando un grupo de permisos sirve para crear un perfil que otorga permisos exclusivamente dentro de proyectos o tareas concretos, entonces deberá crearse marcando el checkbox "Es un perfil de Patrones"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3) Grupos de Recursos&lt;/b&gt;.  Cuando el grupo de permisos se usa para clasificar usuarios como recursos (esto es, las agrupaciones que aparecen en PLANIFICAR / Recursos dentro de un proyecto), entonces deberemos marcar el checkbox "Es un grupo de Recursos".  En este caso no son de utilidad los permisos, puesto que no estamos definiendo ningún perfil.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4) Ninguno de los anteriores&lt;/b&gt;.  En ocasiones un grupo de permisos sirve simplemente para agrupar usuarios y otorgarles permisos en grupo, dando permisos en determinados expedientes o funcionalidades a todo el grupo en su conjunto.  En estaas ocasiones no hay que marcar ningún checkbox, y además tampoco son de utilidad los permisos, puesto que no estamos definiendo ningún perfil, sino únicamente una agrupación de usuarios&lt;br /&gt;&lt;br /&gt;Nótese que a veces un mismo grupo de permisos puede usarse para más de una funcionalidad a la vez, pero por claridad no se recomienda hacerlo.&lt;br /&gt;&lt;br /&gt;La mejora que hemos llevado a cabo permite clasificar mejor los grupos de permisos, y además hemos deshabilitado la opción de asignarlos desde la ficha de contactos, puesto que aparecían todos juntos y despistaban mucho a los usuarios.  En su lugar ahora forzamos a que se use la pantalla de &lt;b&gt;EQUIPO / Permisos&lt;/b&gt;, que está pensada para ello&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4881972691284236276?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4881972691284236276/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/07/grupos-de-permisos-y-perfiles.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4881972691284236276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4881972691284236276'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/07/grupos-de-permisos-y-perfiles.html' title='Grupos de permisos y Perfiles'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7416238885657752417</id><published>2011-07-11T11:52:00.000+02:00</published><updated>2011-07-11T11:52:19.990+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>Edición en línia de documentos</title><content type='html'>KMKey dispone de un sistema de edición en línia de documentos.  Eso significa que podemos abrir el documento directamente desde nuestro navegador, editarlo, y que los cambios queden guardatos en KMKey, evitando así el proceso de descargar el documento, guardarlo en nuestro disco duro, editarlo, y después subirlo de nuevo a KMKey.  &lt;br /&gt;&lt;br /&gt;Para que esto sea posible, es imprescindible que las estaciones cliente (los PC's de los usuarios), tengan instalado el programa zopeedit.   Este programa es el que permite la comunicación entre KMKey y nuestro editor.  Se trata también software libre, y se encuentra disponible tanto para Windows como para Linux.  Se puede descargar desde &lt;br /&gt;&lt;a href="http://www.plope.com/software/ExternalEditor" target="_blank"&gt;http://www.plope.com/software/ExternalEditor&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La distribución binaria para Windows incluye todo lo necesario para instalar la aplicación auxiliar. Simplemente hay que lanzar el ejecutable de instalación para instalar y configurar la aplicación auxiliar para uso con Internet Explorer. También puede registrarse (zopeedit.exe) directamente con otros navegadores.&lt;br /&gt;&lt;br /&gt;Una vez tengamos instalado zopeedit, ya podemos ir a nuestro KMKey, ir a la pantalla de edición de un documento, y pulsar en el link "Edición en línia":  Una vez hecho esto, si el navegador nos pide con qué aplicación queremos abrirlo, tendremos que escoger "zopeedit.exe", y éste a su vez tendría que lanzar el editor correspondiente al formato del documento.   Si ésto no sucediera así, tendríamos que revisar el fichero de configuración de zopeedit (zopeedit.ini en Windows, .zope-external-edit en Linux), donde se relacionan los tipos de documento con los editores correspondientes.&lt;br /&gt;&lt;br /&gt;Hay más información disponible en la &lt;a href="http://www.plope.com/software/ExternalEditor/install-win32" target="_blank"&gt;página del producto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7416238885657752417?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7416238885657752417/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/07/edicion-en-linia-de-documentos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7416238885657752417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7416238885657752417'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/07/edicion-en-linia-de-documentos.html' title='Edición en línia de documentos'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-954885734350188011</id><published>2011-07-08T13:12:00.000+02:00</published><updated>2011-07-08T13:12:14.417+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Como requerir passwords fuertes en KMKey</title><content type='html'>Es una buena costumbre definir una política de seguridad que requiera a los la necesidad de usar claves fuertes, en cualquier sistema informático.   En KMKey eso puede llevarse a cabo fácilmente, entrando como administradores al ZMI (http://tusitio/manage), y editando las propiedades del widget "portal_layous/kmkey_contact/w__password".   Concretamente las propiedades útiles en este sentido son:&lt;br /&gt;- "Minimum input width", para definir la longitud mínima&lt;br /&gt;- "Checking at least one lower case [a-z]", para forzar al menos una letra minúscula&lt;br /&gt;- "Checking at least one upper case [A-Z]", para forzar al menos una letra mayúscula&lt;br /&gt;- "Checking at least one digit [0-9]", para forzar al menos un numérico&lt;br /&gt;- "Checking at least one extra char other than [a-zA-Z0-9]", para forzar al menos un caracter que no sea alfabético ni numérico&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-954885734350188011?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/954885734350188011/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/07/como-requerir-passwords-fuertes-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/954885734350188011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/954885734350188011'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/07/como-requerir-passwords-fuertes-en.html' title='Como requerir passwords fuertes en KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-8584400953534692929</id><published>2011-04-19T12:53:00.003+02:00</published><updated>2011-04-19T13:23:00.130+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Asignación rápida de contactos desde grupos</title><content type='html'>Se ha incorporado al KMKey una mejora de usabilidad para facilitar la gestión de grupos y contactos. Hasta ahora las relaciones se definían editando un contacto y seleccionando desde allí a qué grupos pertenece y a cuáles no. Ahora se ha añadido la posibilidad de asociar contactos existentes rápidamente desde la pantalla de equipo con un cuadro de texto con funcionalidad de autocompletado, el mismo que aparece en otras partes de la aplicación.&lt;br /&gt;&lt;br /&gt;Pero la mejora no sólo se queda aquí: también permite la creación rápida de un contacto e asociarlo immediatamente con el grupo seleccionado, si entramos un nombre que no esté aún dado de alta en la aplicación. El campo se puede rellenar tanto en formato “Apellidos, Nombre” como la visualización de los demás contactos así como el más natural “Nombre Apellidos” para los nombres simples. Además de crear el contacto, permite añadir algunos datos básicos como la dirección de correo electrónico o los teléfonos, que por defecto tomará del grupo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-nKrmF3K-Yr4/Ta1wNgDRMUI/AAAAAAAAAAg/65YptGb9G7o/s1600/groupaddcontact.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 160px;" src="http://3.bp.blogspot.com/-nKrmF3K-Yr4/Ta1wNgDRMUI/AAAAAAAAAAg/65YptGb9G7o/s320/groupaddcontact.png" alt="" id="BLOGGER_PHOTO_ID_5597253289135649090" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-8584400953534692929?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/8584400953534692929/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/04/asignacion-rapida-de-contactos-desde.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8584400953534692929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8584400953534692929'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/04/asignacion-rapida-de-contactos-desde.html' title='Asignación rápida de contactos desde grupos'/><author><name>Eloi [entfe001]</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-nKrmF3K-Yr4/Ta1wNgDRMUI/AAAAAAAAAAg/65YptGb9G7o/s72-c/groupaddcontact.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6997593801645438923</id><published>2011-04-05T13:56:00.000+02:00</published><updated>2011-04-05T17:00:09.114+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Novedades en KMKey: pantalla de documentos y algo más</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-4GVwXIVIKC0/TZsqCwufOsI/AAAAAAAAAAY/wJ7MnH27FfE/s1600/listDocuments_project.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 158px;" src="http://4.bp.blogspot.com/-4GVwXIVIKC0/TZsqCwufOsI/AAAAAAAAAAY/wJ7MnH27FfE/s320/listDocuments_project.png" alt="" id="BLOGGER_PHOTO_ID_5592109589238594242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La pantalla del listado de documentos, accessible a través de la pestaña Gestión, ha sido rehecha con nuevas funcionalidades. Con un aspecto más similar al historial de píldoras, que ya permite filtrar por sólo documentos, podría parecer que no aporta nada nuevo, pero no es así.&lt;br /&gt;&lt;br /&gt;Esta pantalla permite descargar directamente los ficheros publicados haciendo clic en su título, y muestra los detalles al hacer clic en el símbolo «+». Los iconos de la derecha son una representación gráfica del estado de cada documento. La primera columna nos dice si el documento es una versioń final (verde), bloqueada (naranja) o en proceso de edición (azul). Las otras columnas nos detallan en qué etapa del proceso de edición se encuentran, algo especialmente útil para visualizar rápidamente en qué estado de un ciclo documental ISO nos hallamos: aquí los círculos verdes son las etapas ya superadas y el azul la actual. La información del ciclo de edición no se limita a eso, si ubicamos el cursor encima del círculo azul de la etapa en proceso obtendremos una lista de los usuarios de la aplicación que pueden actuar sobre el documento, sabiendo pues en qué manos se encuentra el ciclo.&lt;br /&gt;&lt;br /&gt;También se han programado filtros específicos para que sea más fácil localizar documentos. Además del criterio de contenido del documento, podemos buscar aquellos que estén en una etapa específica del ciclo de edición o aquellos que se encuentren en un estado definitivo, sin modificaciones de versiones pendientes, así como aquellos documentos en edición para los que un usuario pueda actuar sobre ellos. Así un usuario puede obtener la lista de documentos para los que se espera actúe de una forma u otra.&lt;br /&gt;&lt;br /&gt;Adicionalmente, y relacionado con los filtros, se ha añadido la posibilidad de definir un filtro de proyectos y tareas por defecto a nivel de site. Una vez creado el filtro dentro de KMKey, podemos tomar el parámetro &lt;span style="font-style: italic;"&gt;kmkey_menu_option&lt;/span&gt; de la URL del filtro y ponerlo en una nueva propiedad de site llamada &lt;span style="font-style: italic;"&gt;default_menu_option&lt;/span&gt; configurable vía ZMI.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6997593801645438923?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6997593801645438923/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/04/novedades-en-kmkey-pantalla-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6997593801645438923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6997593801645438923'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/04/novedades-en-kmkey-pantalla-de.html' title='Novedades en KMKey: pantalla de documentos y algo más'/><author><name>Eloi [entfe001]</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-4GVwXIVIKC0/TZsqCwufOsI/AAAAAAAAAAY/wJ7MnH27FfE/s72-c/listDocuments_project.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6599956352735446248</id><published>2011-03-07T11:36:00.014+01:00</published><updated>2011-03-07T12:38:59.104+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>KMKey Help Desk y mejoras en la productividad.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;¿Cómo monitorizar las entradas de incidencias ? : Con la ayuda de un televisor de gran formato y KMKey Help Desk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-tFMYLgR46jg/TXS9Pe53-_I/AAAAAAAAADU/o3qozXHfviQ/s1600/P1050307.png"&gt;&lt;img style="cursor: pointer; width: 527px; height: 394px;" src="http://3.bp.blogspot.com/-tFMYLgR46jg/TXS9Pe53-_I/AAAAAAAAADU/o3qozXHfviQ/s400/P1050307.png" alt="" id="BLOGGER_PHOTO_ID_5581293911910382578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Poco después de terminar una reciente instalación de &lt;span style="font-weight: bold;"&gt;KMKey Help Desk&lt;/span&gt; en Colombia el cliente nos comentó que tenía la idea de conectar el sistema a un televisor de gran formato de manera que los técnicos pudiesen visualizar la entrada de incidencias asignadas a su nombre y se dispusieran para su solución de inmediato.&lt;br /&gt;La compañía se dedica a la instalación, gestión y mantenimiento de redes eléctricas, redes de datos, sistemas de seguridad, telecomunicaciones y centralitas telefónicas de las que tiene instaladas una buena cantidad y es una empresa en pleno creciemiento que ha confiado la gestión de sus incidencias en &lt;span style="font-weight: bold;"&gt;KMKey Help Desk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Estos eran sus comentarios:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Adjunto la foto del televisor que dejamos para tener registro de incidencias activas y donde todo el personal puede visualizar todos los servicios asignados.  Llevamos 2 días con el televisor activado y ha generado muy buenos resultados ya que todos los involucrados se preocupan bastante por los tiempos de solución y cierre de tickets y comparan sus resultados con los de los otros compañeros, ninguno quiere ver su registro en rojo y de inmediato proceden a realizar la gestión de la incidencia, Ayuda a acelerar el proceso de incorporación de KMkey en los procesos de la empresa."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;J. Castaño.&lt;br /&gt;Redesistemas&lt;br /&gt;&lt;a href="http://www.redesistemas.com/"&gt;http://www.redesistemas.com/&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6599956352735446248?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6599956352735446248/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/03/kmkey-help-desk-y-mejoras-en-la.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6599956352735446248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6599956352735446248'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/03/kmkey-help-desk-y-mejoras-en-la.html' title='KMKey Help Desk y mejoras en la productividad.'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-tFMYLgR46jg/TXS9Pe53-_I/AAAAAAAAADU/o3qozXHfviQ/s72-c/P1050307.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4061922618081368410</id><published>2011-03-04T19:14:00.006+01:00</published><updated>2011-09-06T09:48:05.028+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Integración con BinarySender para envío de SMS's</title><content type='html'>Recientemente hemos llevado a cabo una integración entre KMKey y la &lt;a href="http://www.binarysender.com" target="_blank"&gt;plataforma de envío de SMS's binarysender&lt;/a&gt;   La aplicación principal es el envío de notificaciones desde KMKey Helpdesk, tanto para avisar a técnicos de nuevas incidencias, para notificar a clientes el plazo de ejecución de una incidencia, o para comunicarle su feliz resolución :-)   Este es una funcionalidad muy valorada por los usuarios de KMKey Helpdesk, puesto que aporta un importante valor añadido al servicio que ofrecen.&lt;br /&gt;&lt;br /&gt;Se ha elegido esta plataforma por sus precios competitivos, por su uniformidad de precios en el envío de SMS's a Sudamerica (donde tenemos numerosos KMKey's en marcha), y por la facilidad que ofrece su entorno web a nuestros usuarios para adquirir paquetes de mensajes y controlar el gasto en SMS's al detalle, pudiendo incluso consultar uno por uno los SMS's enviados desde KMKey.  Si eres un técnico de Helpdesk lo sentimos por ti, a partir de ahora no vas a poder decir que no te has enterado de una incidencia, ya que estos SMS's tienen además acuse de recibo.&lt;br /&gt;&lt;br /&gt;La integración se ha llevado a cabo mediante SOAP y usando el web service de la plataforma, del cual se puede consultar el &lt;a href="http://www.binarysender.com/binarysenderservice/binarysenderservice.asmx?wsdl" target="_blank"&gt;WSDL&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para su correcto funcionamiento en KMKey hay que instalar el módulo python suds, así:&lt;br /&gt;sudo easy_install-2.4 suds&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4061922618081368410?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4061922618081368410/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/03/integracion-con-binarysender-para-envio.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4061922618081368410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4061922618081368410'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/03/integracion-con-binarysender-para-envio.html' title='Integración con BinarySender para envío de SMS&apos;s'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-2014981147719513055</id><published>2011-03-04T12:07:00.003+01:00</published><updated>2011-03-04T12:17:04.922+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Nuevos Vídeos de Ayuda para KMKey Help Desk</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Se han actualizado los vídeos demostrativos de la aplicación KMKey Help Desk.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Respondiendo al rediseño y mejora de algunas de las prestaciones de KMKey Help Desk se han incorporado 4 nuevos vídeos de demostración de su funcionamiento.&lt;br /&gt;&lt;br /&gt;En el primero podemos ver la simulación del ciclo de una incidencia,  desde su recepción hasta su solución y se muestran los automatismos y  notificaciones que se generan entre los participantes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kmkey.com/ayuda/helpdesk/ayuda/helpdesk/newhelpdesk.swf/show_video?height=768&amp;amp;width=1024"&gt;Ver vídeo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En el segundo vídeo podemos ver como se registra y gestiona un mantenimiento preventivo, su asignación a un receptor y la simulación de una primera intervención del mismo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kmkey.com/ayuda/helpdesk/ayuda/helpdesk/mantenimiento_preventivo.swf/show_video?height=768&amp;amp;width=1024"&gt;Ver vídeo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En el trercer vídeo podemos ver como se realiza la creación de un contrato de servicio y de paso se muestran los procedimientos básicos para dar de alta un cliente, un contacto y asociar el contacto a un contrato de servicio.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kmkey.com/ayuda/helpdesk/ayuda/helpdesk/contratoshd.swf/show_video?height=768&amp;amp;width=1024"&gt;Ver vídeo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Por último en el cuarto vídeo se muestra cómo obtener informes y listados de todas las actividades realizadas con KMKey Help Desk y obtener la información relativa a las incidencias, los contratos de servicio, los elementos a mantener, el esfuerzo realizado, los clientes y los contactos asociados.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kmkey.com/ayuda/helpdesk/ayuda/helpdesk/listados_HD.swf/show_video?height=768&amp;amp;width=1024"&gt;Ver vídeo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-2014981147719513055?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/2014981147719513055/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/03/nuevos-videos-de-ayuda-para-kmkey-help.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2014981147719513055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2014981147719513055'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/03/nuevos-videos-de-ayuda-para-kmkey-help.html' title='Nuevos Vídeos de Ayuda para KMKey Help Desk'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6349357187606322962</id><published>2011-02-23T18:03:00.003+01:00</published><updated>2011-02-23T18:17:49.569+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Soporte para múltiples zonas horarias</title><content type='html'>Acabamos de incorporar en entorno beta (rama svn trunk) un conjunto de cambios para ofrecer detección y soporte del uso horario.  El uso horario se detecta y aplica por usuario, de forma que incluso dentro de un mismo KMKey cada usuario podrá trabajar y visualizar su propio uso horario.   Esta mejora facilita enormemente la implantación de servicios SAAS (Software As A Service) internacionales basados en KMKey, y también el trabajo en KMKey's con usuarios provinientes de múltiples paises.  &lt;br /&gt;&lt;br /&gt;Por poner un ejemplo, ahora cuando un comercial de México abra una oferta de implantación a las 10:00 de la mañana hora local, en Europa veremos aparecer sus intervenciones registradas a las 17:00.  Cada uno verá su hora local, y el sistema se encargará de automatizar los cambios horarios de forma transparente.&lt;br /&gt;&lt;br /&gt;En cuanto a los detalles de la implementación, se ha realizado llevando a cabo una detección del uso horario en javascript, en la pantalla de login.  Esa información se guarda en una cookie, que después es usada para llevar a cabo las conversiones.  En base de datos, la información es guardada siempre en el uso horario configurado en el servidor para simplificar la explotación.   Finalmente, es necesario parchear un módulo de zope, concretamente el DateTime.py   Adjuntamos aquí la dirección del parche por ser éste un tema largamente demandado por usuarios de Plone y que puede ser fácilmente transplantado desde KMKey a Plone:&lt;br /&gt;&lt;a href="https://svn.forge.osor.eu/svn/kmkey/patches/timezone"&gt;https://svn.forge.osor.eu/svn/kmkey/patches/timezone&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6349357187606322962?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6349357187606322962/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2011/02/soporte-para-multiples-zonas-horarias.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6349357187606322962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6349357187606322962'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2011/02/soporte-para-multiples-zonas-horarias.html' title='Soporte para múltiples zonas horarias'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7952186077550036893</id><published>2010-12-13T17:57:00.002+01:00</published><updated>2010-12-13T18:18:14.550+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Vídeos en Inglés</title><content type='html'>Para la comunidad de usuarios anglófona se han traducido al inglés los vídeos más importantes de las páginas:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kmkey.com/en/help/project"&gt;http://www.kmkey.com/en/help/project&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;y también en:&lt;br /&gt;&lt;a href="http://www.kmkey.com/en/help/helpdesk"&gt;&lt;br /&gt;http://www.kmkey.com/en/help/helpdesk&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7952186077550036893?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7952186077550036893/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/12/videos-en-ingles.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7952186077550036893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7952186077550036893'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/12/videos-en-ingles.html' title='Vídeos en Inglés'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3556386277642976355</id><published>2010-10-05T13:00:00.003+02:00</published><updated>2010-10-05T13:02:20.310+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Registro de Infraestructuras, Planes de Calibración/Mantenimiento y registro de las Acciones de Calibración/Mantenimiento.</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:donotoptimizeforbrowser/&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt;"&gt;Después de solucionar puntualmente el problema para algunos clientes nos decidimos a fabricar un patrón/esquema de trabajo que pudiese solucionar de forma conjunta y coherente los siguientes aspectos:&lt;span style=";font-family:&amp;quot;;" &gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;El registro de la      maquinaria (Instrumental, equipamientos) que una organización puede tener      en el desempeño de sus actividades operativas.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Los planes de mantenimiento      y/o calibración asociados a dicha máquina.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;El registro de las acciones      de Mantenimiento y/o calibración efectuados en dicha máquina.&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;Registro de maquinaria/Instrumental&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;Para ello confeccionamos un patrón cuyo cometido es el de dar de alta a cada máquina por separado cumplimentando campos tan generales como. Fabricante, Modelo, Nº de Serie, Fecha de compra, Fecha de Instalación, Localización de la misma, etc.&lt;br /&gt;Se entiende que cada cliente podrá adaptar estos campos a sus necesidades.&lt;br /&gt;Se crea un expediente en el navtree por cada una de la máquinas que se registran.&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;u&gt;Planes de Intervenciones&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;En este expediente se incluye una tarea genérica que se denomina: Planes de Mantenimiento/Calibración.&lt;br /&gt;Cuando la tenemos seleccionada podemos ir al TAB PLANIFICAR &gt; Flujo de Trabajo y vemos como se nos ofrece la posibilidad de elegir un plan de Mantenimiento/Calibración con una duración de un año y distintas periodicidades para la revisión, desde una al año hasta una cada mes.&lt;br /&gt;Estos periodos figuran como ejemplo y cada cliente también los puede o podrá, ajustar a sus necesidades.&lt;br /&gt;Lo que sucede a continuación es que se crea una Agrupación con tantas tareas como divisiones hemos hecho del año, mensual=12, bimensual=6, trimestral=4, etc...&lt;br /&gt;Cada una de esas tareas tiene una fecha de inicio y una fecha de final que corresponde al periodo previsto en el cual se deben llevar a cabo los trabajos de Mantenimiento y/o Calibración a dicha instalación.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;Registro de Acciones de Mantenimiento/Calibración&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;Así pues, llegado el día de efectuar la acción de Mantenimiento y/o Calibración en dicha máquina se puede registrar la misma a través de una "pill" personalizada.&lt;br /&gt;Esta "pill" se encuentra en el TAB GESTIÓN &gt; Añadir.&lt;br /&gt;Como en el caso anterior, los campos de la misma se podrán adaptar a las necesidades de cada cliente y si a es una acción de Mantenimiento o es una acción de Calibración.&lt;br /&gt;Una vez registrada se pueden añadir más elementos de gestión (notas, documentos, e-mails, horas de esfuerzo, etc) a través de las pills habituales.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;Planes para otros años/periodos&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;Llegado el caso, podemos haber agotado ya las revisiones a efectuar a dicha máquina y nos vemos con la necesidad de añadir un nuevo Plan de Mantenimiento y/o Calibración para el año siguiente.&lt;br /&gt;Pues bien, en dicho caso, bastará con volver a seleccionar la tarea genérica: Planes de Mantenimiento/Calibración, seleccionar la fecha de referencia adecuada y volver a solicitar la inclusión de un Plan, con la periodicidad que queramos.&lt;br /&gt;De esta forma se mantiene la unidad documental y de registro para cada máquina y puede mantenerse durante el tiempo de vida de la misma.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;Informes&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;Al final del ejemplo se añadieron dos informes.&lt;br /&gt;Con uno podemos obtener un listado de todas las máquinas instaladas en la organización.&lt;br /&gt;Y con el otro, este ya dedicado a cada máquina en particular, se puede obtener un resumen de las intervenciones que se habían efectuado en la misma a través del tiempo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kmkey.com/ayuda/quality"&gt;Ver ejemplo en el vídeo dedicado. &lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3556386277642976355?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3556386277642976355/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/10/registro-de-infraestructuras-planes-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3556386277642976355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3556386277642976355'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/10/registro-de-infraestructuras-planes-de.html' title='Registro de Infraestructuras, Planes de Calibración/Mantenimiento y registro de las Acciones de Calibración/Mantenimiento.'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-773184462314662987</id><published>2010-06-29T16:52:00.002+02:00</published><updated>2010-06-29T17:07:12.422+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Enlazar datos de KMKey desde aplicaciones externas</title><content type='html'>Es frecuente la necesidad de enlazar o volcar datos de KMKey desde aplicaciones externas, como puede ser algún programa de gestión externo, una intranet, etc.   Una forma de abordar esos casos es escribiendo código python y usando ZODB, pero ese es un camino poco conocido para la mayoría de técnicos, y que requiere un tiempo de aprendizaje elevado.  Afortunadamente, hay un camino mucho más sencillo y que conocen la gran mayoría de los técnicos: el uso de SQL.&lt;br /&gt;&lt;br /&gt;En primer lugar, necesitamos instalar el conector python-psycopg y el producto ZPsycopgDA, tal y como se explicó en &lt;a href="http://kmkey-es.blogspot.com/2009/05/pasar-schemas-sql.html"&gt;http://kmkey-es.blogspot.com/2009/05/pasar-schemas-sql.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Una vez hecho esto, vamos al ZMI (http://sitio/manage), a portal_schemas, y localizamos los schemas o schemas de los cuales queremos obtener información y los configuramos para que usen SQL.   Por ejemplo, imaginemos que queremos obtener información de documentos de un sistema de calidad, iríamos a portal_schemas/kmkey_document, pestaña "SQL", pondríamos el nombre de nuestra conexión "db" y pulsaríamos el botón "Migrate to SQL".  Si después de hacer eso visitamos nuestra base de datos PostgreSQL veremos que ha aparecido una tabla nueva de nombre "kmkey_document" que contiene información de los documentos existentes en KMKey.&lt;br /&gt;&lt;br /&gt;A partir de aquí, se trata de atacar esa base de datos SQL desde nuestro entorno preferido (todos ellos dispondrán de un sistema de conexión a PostgreSQL).  Siguiendo con el ejemplo, imaginemos que tenemos un expediente de gestión documental de ISO 9001 y que queremos obtener información de todos los documentos del punto 4 de la norma.  Ejecutaríamos algo como:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;select * from kmkey_document where proxy_path like 'workspaces/kmkey/iso-9001-san-nicolas/4-sistema-de-gestion-de/%';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Observemos que en el campo "file" llega una estructura de valores id#=#title#=#content_type#=#filename  Con el filename podremos ir a buscar el físicamente el fichero que se encontrará típicamente en nuestro servidor bajo /var/zope/storages/kmkey/files/A/B/filename  siendo A/B las dos primeras letras de filename&lt;br /&gt;&lt;br /&gt;Las sentencias pueden ser todo lo elaborados que sea necesario, por ejemplo si queremos mostra únicamente la última versión de cada documento, quedaría algo como:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;select * from kmkey_document d where proxy_path like 'workspaces/kmkey/iso-9001-san-nicolas/4-sistema-de-gestion-de/%' and current_revision = (select max(current_revision) from kmkey_document d2 where d.internal_docid = d2.internal_docid);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como se puede observar, una de las ventajas de usar un sistema de código abierto es que no hay información oculta, y podemos integrarla fácilmente con el resto de entornos de la empresa&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-773184462314662987?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/773184462314662987/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/06/enlazar-datos-de-kmkey-desde.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/773184462314662987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/773184462314662987'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/06/enlazar-datos-de-kmkey-desde.html' title='Enlazar datos de KMKey desde aplicaciones externas'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1803238197214267751</id><published>2010-06-14T12:30:00.005+02:00</published><updated>2010-06-14T12:39:36.165+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Patrones de trabajo avanzados</title><content type='html'>&lt;p style="margin-bottom: 0cm;"&gt;Anteriormente se documentó la forma de definir XML's básicos de patrones de trabajo.    Puede&lt;br /&gt;consultarse dicha entrada en:  &lt;a href="http://www.google.es/url?sa=t&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CCAQFjAB&amp;amp;url=http%3A%2F%2Fkmkey-es.blogspot.com%2F2009%2F05%2Fxml-para-definir-tareas-en-patrones.html&amp;amp;ei=OgQWTLy-K9SH4gaun4HdDA&amp;amp;usg=AFQjCNEDdcE7F3VlUOYllmh5-xmO2eTDqg"&gt;Comunidad&lt;em&gt; KMKey&lt;/em&gt; en Español: &lt;em&gt;XML&lt;/em&gt; para definir objetos en patrones&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Ahora vamos a centrarnos en introducir funcionalidades más avanzadas, de forma que empecemos a usar todo el potencial de esta herramienta que son los patrones de trabajo.&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;b&gt;Bloquear o desbloquear perfiles en una tarea&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&amp;lt;task otros_atributos blocked_roles="role1,role2,roleN"  /&amp;gt;&lt;br /&gt;&amp;lt;task otros_atributos non_blocked_roles="role1,role2,roleN" /&amp;gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;Nos permite bloquear o desbloquear explícitamente ciertos perfiles en una tarea del patrón. Corresponde al apartado de Perfiles Bloqueados de la pantalla de Equipo / Permisos cuando nos encontramos en un expediente ya creado.    Los role1, role2, .. etc, corresponden al nombre interno&lt;br /&gt;del perfil, que puede consultarse en el campo Perfil Relacionado de un grupo de permisos.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;b&gt;Asignar perfiles a usuarios o grupos concretos&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;access usernames="username1,username2" roles="role1,role2"/&amp;gt;&lt;/p&gt;&amp;lt;access groups="41718292,4343413" roles="role1,role2"/&amp;gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;La nomenclatura es usernames="user1,user2" roles="role_para_user1,role_para_user2", manteniendo una concordancia de usuarios y perfiles.&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;La misma sintaxis puede usarse para asignar perfiles a usuarios o grupos dentro de una tarea concreta, usando la jerarquía del XML:&lt;/p&gt;&lt;br /&gt;&amp;lt;task atributos_de_la_tarea&amp;gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt; &amp;lt;access usernames="username1,username2" roles="role1,role2"/&amp;gt;&lt;/p&gt;&amp;lt;access groups="41718292,4343413" roles="role1,role2"/&amp;gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;/task&amp;gt;&lt;/p&gt;&lt;b&gt;&lt;br /&gt;Uso de patrones de tareas distintos&lt;/b&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;El tag &lt;i&gt;default_portal_type &lt;/i&gt;permite asociar un portal_type por defecto a un tag XML.   El caso más típico es el de los tags &lt;i&gt;&lt;u&gt;task&lt;/u&gt;&lt;/i&gt;&lt;i&gt; &lt;/i&gt;usados para la definición de tareas.   Pero podemos desear que ciertas tareas se creen usando otro patrón de tareas, por ejemplo en casos que necesiten disponer de campos específicos en la definición de la tarea.   En esos casos, se puede usar el atributo &lt;i&gt;portal_type &lt;/i&gt;dentro del propio tag &lt;i&gt;task&lt;/i&gt; para definir un patrón de tarea a utilizar distinto del establecido por defecto.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;?xml version="1.0" encoding="iso-8859-1" ?&amp;gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;objects xmlns:tal="http://xml.zope.org/namespaces/tal"&amp;gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;b&gt;&amp;lt;default_portal_type tag="task" portal_type="KMKey Task" /&amp;gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;task Title="Propuesta de Producto" planned_end="reference_date+120"&lt;br /&gt;planned_start="reference_date+0"&lt;b&gt; portal_type="kmkey_patron_tarea"&lt;/b&gt;&lt;br /&gt;responsible="role:director_tecnologico" task_id="51" wbs="1"/&amp;gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;task Title="Diseño Preliminar" planned_end="reference_date+221" planned_start="reference_date+80" responsible="role:jefe_diseno" task_id="52" wbs="2"/&amp;gt; &lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;/objects&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;b&gt;Uso de TAL para cambiar el patrón segun valores de los campos de Definición&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;Otra funcionalidad muy interesante es la de poder hacer uso del sistema de plantillas TAL para generar un XML dinámico de definición del patrón de trabajo.  Se puede encontrar más información sobre la sintaxis del Template Attributes Language en la red, pero dejamos aquí un enlace a una guía introductoria:&lt;a href="http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/ZPT.stx"&gt; http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/ZPT.stx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;El uso de TAL nos permite, por ejemplo, condicionar ciertas tareas a determinados valores de campos de la Definición del expediente, o incluso hacer bucles para crear una tarea N veces.  Hay que tener claro que las instrucciones TAL se ejecuta en &lt;b&gt;primer lugar&lt;/b&gt;, generando un XML resultante que se procesa en &lt;b&gt;segundo lugar&lt;/b&gt;, dando lugar a la generación del expediente.   Veamos aquí un ejemplo de una tarea condicional:&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;?xml version="1.0" encoding="iso-8859-1" ?&amp;gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;objects xmlns:tal="http://xml.zope.org/namespaces/tal"&lt;b&gt; tal:define="project python:here['getKMProject'](here)"&lt;/b&gt;&amp;gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;default_portal_type tag="task" portal_type="KMKey Task" /&amp;gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&amp;lt;task task_id="1" Title="Proyecto + Geotécnico + Control de Materiales" responsible="role:tecnico-de-obra-oct" planned_hours="56" planned_start="parent['planned_start']-15"planned_end="parent['planned_start']-9" &lt;b&gt;tal:condition="python:'Estabilidad' in project['categories']"&lt;/b&gt; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/objects&amp;gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1803238197214267751?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1803238197214267751/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/06/patrones-de-trabajo-avanzados.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1803238197214267751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1803238197214267751'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/06/patrones-de-trabajo-avanzados.html' title='Patrones de trabajo avanzados'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-322304688228200139</id><published>2010-06-11T17:28:00.002+02:00</published><updated>2010-06-11T17:38:28.040+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Subir el IVA en KMKey</title><content type='html'>Como algunos de vosotros sabreis, el gobierno español ha decretado subir los tipos de IVA a partir del próximo mes de julio de 2010, pasando a ser del 18%, 8% y 4% respectivamente.   Este cambio quedará lógicamente incorporado en próximas versiones de KMKey, pero como la entrada en vigor es inminente, explicamos aquí los pasos a seguir para incorporar los nuevos tipos de IVA, sea cual sea nuestra versión de KMKey:&lt;br /&gt;&lt;br /&gt;1) Entramos en el ZMI (http://url_de_nuestro_kmkey/manage)&lt;br /&gt;2) Vamos al site kmkey, apartado portal_skins/custom&lt;br /&gt;3) Creamos un objeto de tipo "Script (python)", escogiéndolo en el seleccionable de arriba a la derecha&lt;br /&gt;4) Lo podemos llamar, por ejemplo "paga_y_calla", y pulsamos el botón "Add and Edit"&lt;br /&gt;5) Escribimos o copiamos las siguientes linias de codigo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;voc = context.portal_vocabularies.kmkey_tax&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;voc.clear()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;voc.set('18.0', '18 %')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;voc.set('16.0', '16 %')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;voc.set('8.0', '8 %')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;voc.set('7.0', '7 %')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;voc.set('4.0', '4 %')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;voc.set('0.0', '0 %')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;return 'Subida del IVA completada'&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;6) Pulsamos la pestaña "Test"&lt;br /&gt;&lt;br /&gt;Y eso es todo, ya estamos preparados para pagar un 18% de IVA (o no)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-322304688228200139?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/322304688228200139/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/06/subir-el-iva-en-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/322304688228200139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/322304688228200139'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/06/subir-el-iva-en-kmkey.html' title='Subir el IVA en KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3419800932259938163</id><published>2010-06-10T14:58:00.003+02:00</published><updated>2010-06-10T15:00:17.474+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Ordenar menús y filtros</title><content type='html'>Para ordenar la lista de menús tenemos una variable de site&lt;br /&gt;&lt;b&gt;&lt;br /&gt;menu_sort_item&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;entramos a zmi, damos de alta la nueva propiedad en el site (string)  y le indicamos el nombre del campo por el cual queremos ordenar (title para alfabético, por defecto ordena por id)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3419800932259938163?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3419800932259938163/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/06/ordenar-menus-i-filtros.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3419800932259938163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3419800932259938163'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/06/ordenar-menus-i-filtros.html' title='Ordenar menús y filtros'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-2032386270296460685</id><published>2010-05-13T10:08:00.005+02:00</published><updated>2010-05-13T11:45:59.891+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>Sistema de backups con xdelta</title><content type='html'>Un sistema de backups es a un entorno informático como la red anticaídas a un equilibrista, nos puede salvar la vida ante un tropezón.   Un buen sistema debe permitir recuperar el estado de los datos lo más cercano posible al momento clave ante cualquier desastre, por improbable que parezca.  Además debe permitir recuperar datos a una fecha más o menos lejana, sin mayores dificultades.&lt;br /&gt;&lt;br /&gt;Para entornos de alta disponibilidad, y con datos muy críticos, la mejor opción sin duda es la replicación de bases de datos en vivo.   Pero lo más habitual es que exista una tolerancia de un día, es decir, disponer siempre del backup de la noche anterior es suficiente.   En estos casos, se puede optar por un sistema de backups incrementales, o por uno de backups siempre completos.  El primero ahorra espacio, pero el segundo facilita una recuperación más rápida y simplifica los procesos de generación del backup.    Existe una tercera vía, que es la de los backups completos y rotativos, más el uso de xdelta para ahorrar espacio, y ésa versión menos habitual es la que vamos a exponer aquí&lt;br /&gt;&lt;br /&gt;xdelta es un software libre capaz de generar ficheros de diferencias a partir de dos ficheros binarios.   También permite regenerar un fichero binario a partir de una versión antigua + un fichero de diferencias .   Además se usará rsync para replicar usando poco ancho de banda. Para los usuarios de Debian, su instalación no puede ser más sencilla:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;apt-get install xdelta rsync&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para implementar el sistema de backups, necesitamos un mínimo de 3 máquinas:  los servidores de bases de datos, el servidor de backups y el servidor de réplicas remotas.   El servidor de base de datos (pueden ser varios) y el de backups deben estar en el mismo datacenter, con una conexión LAN entre ellos.    El servidor de réplicas remotas debe encontrarse en otra ubicación con una conexión dedicada SDSL o similar.  A partir de aquí los pasos son:&lt;br /&gt;&lt;br /&gt;1) En el servidor de backups, rotamos a diario 6 copias de seguridad de la semana, manteniendo una completa en daily.0 pero un diff binario respecto a la semanal en el resto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;rm -r daily.5&lt;br /&gt;mv dailiy.4 daily.5&lt;br /&gt;mv dailiy.3 daily.4&lt;br /&gt;mv daily.2. daily.3&lt;br /&gt;mv daily.1 daily.2&lt;br /&gt;mv daily.0 dailiy.1&lt;br /&gt;xdelta delta weekly.0/fichero daily.1/fichero daily.1/fichero.diff&lt;br /&gt;rm daily.1/fichero&lt;br /&gt;mkdir daily.0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;2) En el servidor de base de datos, generamos a diario la copia completa en el disco local , y la replicamos sobre un servidor de backups (sobre daily.0)&lt;br /&gt;&lt;br /&gt;3) Semanalmente, el servidor de backups convierte una copia diaria en una semanal:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;cp -a daily.0 weekly.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4) También semanalmente, el servidor de réplicas rota y copia las semanales mediante un rsync (cosa que sólo transfiere las diferencias de datos respecto a la semana anterior, en lugar de hacer una copia completa por línea):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;rm -r weekly.4 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mv weekly.3 weeky.4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mv weekly.2 weekly.3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mv weekly.1 weekly.2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cp -a weekly.0 weekly.1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;rsync -av --timeout=180 -e "ssh -p 22" usuario@servidor_backups:/path/a/weekly.0 /path/a/weekly.0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Con este sistema podemos recuperar cualquier copia completa de la última semana, y copias semanales de todo el mes anterior.  Si se considera necesario guardar más antiguedad, sólo hay que añadir una rotación mensual en el servidor de réplicas.   Si hay problemas en el servidor de datos, podemos recuperar la copia nocturna del día anterior del servidor de backups, y si explotara el datacenter entero, tendríamos los datos recuperables con una máximo de una semana de antiguedad en el servidor de réplicas.   Garantías más que suficientes para el 95% de los negocios.  Y tus datos, ¿ están así de seguros ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-2032386270296460685?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/2032386270296460685/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/05/sistema-de-backups-con-xdelta.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2032386270296460685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2032386270296460685'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/05/sistema-de-backups-con-xdelta.html' title='Sistema de backups con xdelta'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4014073393272939155</id><published>2010-05-05T19:42:00.004+02:00</published><updated>2010-05-05T20:03:37.589+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Widgets para mapas en KMKey</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DQpfchcNTd8/S-GwnORzYBI/AAAAAAAAAZY/Vlf96bz7FhY/s1600/parceles.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 244px;" src="http://3.bp.blogspot.com/_DQpfchcNTd8/S-GwnORzYBI/AAAAAAAAAZY/Vlf96bz7FhY/s400/parceles.jpg" alt="" id="BLOGGER_PHOTO_ID_5467845610498646034" border="0" /&gt;&lt;/a&gt;Hemos añadido a KMKey uns nuevo widget muy interesante.  Hace uso de openlayers y openstreetmap para localizar ubicaciones a partir de campos de los expedientes, y mostrar completos mapas interactivos de las mismas, al más puro estijo google maps, pero asociados a nuestros expedientes de KMKey.   No contentos con ello, el widget permite además añadir datos al mapa, como linias o polígonos que representen una parcela, una obra o un edificio.  Estos datos son guardados como una capa propia, y se superponen a los provenientes de openstreetmap.&lt;br /&gt;&lt;br /&gt;Para usar este widget es suficiente con ir al ZMI portal_layouts/nuestro_patron y añadir un widget del tipo "KMKey map widget".    Debemos asociar 3 campos que previamente deben haberse creado en el portal_schemas/nuestro_patron.  Por este orden, son longitud (float), latitud (float) y zoom (int).   También nos da la posibilidad de configurar los ID's de los campos de calle, población y país a partir de los cuales llevar a cabo la localización de ubicaciones.   Finalmente, nos pide laURL del servidor featureserver que se encarga de guardar los datos de la capa de modificaciones.   Lo mejor para este servidor featureserver es instalarlo como CGI bajo el mismo dominio que estemos usando (las instrucciones de instalación de este software estan bien detalladas en featureserver.org)&lt;br /&gt;&lt;br /&gt;Bueno, ¿ quien dijo que con software libre no se pueden tener soluciones profesionales ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4014073393272939155?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4014073393272939155/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/05/widgets-para-mapas-en-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4014073393272939155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4014073393272939155'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/05/widgets-para-mapas-en-kmkey.html' title='Widgets para mapas en KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_DQpfchcNTd8/S-GwnORzYBI/AAAAAAAAAZY/Vlf96bz7FhY/s72-c/parceles.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-2670965828610156869</id><published>2010-04-29T17:44:00.004+02:00</published><updated>2010-04-29T18:10:46.358+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Soporte para IMAP y servidores con SSL</title><content type='html'>Hasta la fecha el sistema de recepción de mensajes a KMKey para su inclusión automática sólo era posible mediante una cuenta de correo accesible vía el protocolo POP3 sin cifrado SSL. Ahora se han implementado tanto el acceso a un buzón mediante el protocolo IMAP así como el uso de SSL en ambos protocolos para acceder a los mismos. En esta entrada se explicarán los pasos a seguir para configurar un site KMKey ya en funcionamiento para hacer uso de las nuevas funcionalidades.&lt;br /&gt;&lt;br /&gt;En primer lugar, para usar un buzón IMAP habrá que sustituir el fichero &lt;span style="font-family: courier new;"&gt;KMKeyCore/utils/email_scan.py&lt;/span&gt; por el nuevo &lt;span style="font-family: courier new;"&gt;email_imap_scan.py&lt;/span&gt;. Los parámetros de configuración pop3_server, pop3_user y pop3_password, pese a su nombre, serán utilizados para el acceso vía IMAP al buzón. Estos parámetros son modificables desde la pestaña “Properties” del site en el Zope Management Interface (ZMI). Si dichas propiedades no existieran por no haberse configurado aún ningún servicio de correo, se pueden crear siguiendo &lt;a href="http://kmkey-es.blogspot.com/2009/06/activando-el-sistema-de-e-mails.html"&gt;estas instrucciones&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Una de las características del protocolo IMAP es que permite mútiples buzones para una misma cuenta. Eso hay que tenerlo en cuenta en el caso que los correos destinados al KMKey no lleguen a un buzón llamado INBOX. Lo usual es que sea así, pero si no fuera el caso basta con editar el script Python, buscar la declaración &lt;span style="font-family: courier new;"&gt;imap_folder = 'INBOX'&lt;/span&gt; y cambiarla por el valor adecuado.&lt;br /&gt;&lt;br /&gt;Finalmente, para habilitar el acceso vía SSL al buzón, sea por el protocolo IMAP o el POP3, sólo hay que añadir una propiedad llamada pop3_ssl de tipo booleano en las propiedades del site vía ZMI. Aparecerá entonces una casilla seleccionable que, de estar marcada, hará que el script de captura de correo use el acceso cifrado al buzón.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-2670965828610156869?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/2670965828610156869/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/04/soporte-para-imap-y-servidores-con-ssl.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2670965828610156869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2670965828610156869'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/04/soporte-para-imap-y-servidores-con-ssl.html' title='Soporte para IMAP y servidores con SSL'/><author><name>Eloi [entfe001]</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4171681574233804920</id><published>2010-03-26T15:51:00.009+01:00</published><updated>2010-06-10T09:23:43.481+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>Single Sign On (SSO) con KMKey</title><content type='html'>Es frecuente plantearse integrar KMKey con algun sistema de autentificación de usuarios tipo LDAP o Active Directory.   En el presente artículo vamos a explicar cómo puede conseguirse que una instalación de KMKey detecte nuestro usuario de trabajo en el dominio (a través del navegador) y ni tan sólo nos pida password si ya nos hemos validado contra el dominio&lt;br /&gt;&lt;br /&gt;1) Para ello lo primero que vamos a necesitar es instalar algunas librerías, y el producto SSOAuth, que podemos descargar usando subversion:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;# Comprobar que disponemos de la rama non-free activada en nuestro /etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;su&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: courier new; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: rgb(80, 0, 80); font-size: small;"&gt;apt-get install libldap-2.4-2  libldap2-dev  libnss-ldap  python-ldap&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;apt-get install krb5-clients krb5-config krb5-user libkrb5-dev libkrb53 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        libpam-krb5 libapache2-mod-auth-kerb libkadm55 libapache2-mod-fastcgi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        libsasl2-gssapi-mit libsasl2-modules-gssapi-mit libsasl2-modules-ldap&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;su zope&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd /usr/local/kmkey/zope/Products/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;svn co https://svn.forge.osor.eu/svn/kmkey/products/SSOAuth/trunk SSOAuth&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/usr/local/kmkey/zope/bin/zopectl restart&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) Crear un usuario en al Active Directory / LDAP, con password que NO CADUQUE.  No hace falta que sea administrador, pero si que tenga lectura sobre todas las ramas que necesiten autentificarse en KMKey&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) Entrar en el Zope Management Interfac (ZMI), ir a portal_directories, y añadir un "CPS LDAP Backing Directory" que se llame "members_ldap", con estas propiedades:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    Schemas (old style - for backward compatibility) -&gt; members_ldap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Additional schemas (new style - merged with the previous) -&gt; members_readonly_entry_flag_true &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Is the directory read-only? -&gt; Marcado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ACL: entry create roles -&gt; Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ACL: entry delete roles -&gt; Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ACL: entry view roles -&gt; Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ACL: entry edit roles -&gt; Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Field for entry title -&gt; cn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Fields with substring search -&gt; cn givenName sn mail  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Field for password (if authentication) -&gt; userPassword&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP server -&gt; IP del servidor LDAP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP port -&gt; 389&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP base -&gt; CN=Users,DC=dominio,DC=win (este es el defecto, pero puede cambiar para cada LDAP)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP scope -&gt; SUBTREE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP object classes (search) -&gt; top, person&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP bind dn -&gt; usuariocreado@DOMINI.WIN (corresponde al usuario creado en el punto 2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP bind password -&gt; clave correspondiente al usuario creado en el punto 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP rdn attribute (create) -&gt; sAMAccountName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP object classes (create) -&gt; top, person&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Field that contains a list of sub entries id for hierarchical directory -&gt; None&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    attr used as id for children_attr default is ldap_rdn_attr. -&gt; cn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP auto reconnect feature: maximum retry -&gt; 1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP auto reconnect feature: delay in seconds before retrying -&gt; 60.0 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    LDAP network timeout in seconds for any request (0 means no limit) -&gt; 0.0&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Una vez hecho esto, se puede comprobar que funciona la conexión con el LDAP usando la pestaña "Search" del propio directory&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4) Entrar de nuevo via ZMI, borrar el objeto "cookie_authentication" y crear en su lugar un objeto "Secure Auth" con nombre "secure_auth"&lt;br /&gt;&lt;br /&gt;5) Crear usuarios KMKey a partir de usuarios LDAP.   Los usuarios de KMKey, además de tener un registro en portal_directories, necesitan tener un contacto asociado, con toda una serie de propiedades que no estan disponibles en un LDAP.   Es por ello que la mejor opción es programar un script de traspaso periódico de usuarios del LDAP hacia KMKey.  Este script puede ponerse en el cron y ejecutarse mediante zope/bin/zopectl run script.py diariamente, y lo que va a hacer es crear una entrada de usuario KMKey para cada usuario LDAP, SIN traspasar nunca el password, que siempre va a validarse contra el controlador de dominio.   El contenido del script variará en función de la estructura del LDAP origen.  Se incluye aquí un ejemplo de script:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;from AccessControl.SecurityManagement import newSecurityManager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;from Testing.makerequest import makerequest&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;from Products.KMKeyCore.pattern import KMObjectCreationAdapter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;user = app.kmkey.acl_users.getUser('manager').__of__(app.kmkey.acl_users)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;newSecurityManager({}, user)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;app = makerequest(app)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;km = app.kmkey&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ldap = km.portal_directories.members_ldap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;entries = ldap._searchEntries(return_fields=['*'])&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;user_entries = [entry for (id, entry) in entries if entry['sAMAccountName'] and entry['sn']]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;container = km.workspaces.kmkey&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;portal_type = 'KMKey Contact'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;adapter = KMObjectCreationAdapter(container)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ti = km.portal_types.getTypeInfo(portal_type)        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cat = km.portal_catalog&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;for entry in user_entries:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    brains = cat(meta_type='KM Contact', username=entry['sAMAccountName'])&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if len(brains) == 1:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        print "Ya existe " + brains[0].username&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       else:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               dm = ti.getDataModel(ob=None, proxy=None, context=container)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               dm['language'] = 'es'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               dm['email'] = entry['mail']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               dm['phone'] = entry['telephoneNumber']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        dm['sn'] = entry['sn']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               dm['username'] = entry['sAMAccountName']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               dm['givenName'] = entry['givenName'] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               adapter.createObject(portal_type, dm)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;get_transaction().commit()&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6) Compilar el modulo mod_ntlm para apache2&lt;br /&gt;&lt;br /&gt;Se puede descargar libremente de internet.   Cuesta un poco compilarlo, porque el Makefile apunta a apxs en lugar de apxs2.   También deja cosas dentro de .libs/ que luego no encuentra.   Se debe ir haciendolo manualmente, pasito a pasito, hasta que funcione y tengamos el módulo válido&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7) Configurar Zope para que escuche también por fascgi&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;   &lt;fast-cgi&gt;&lt;br /&gt;&lt;/fast-cgi&gt;   sudo mkdir /var/run/zope&lt;br /&gt; sudo chown -R zope.zope /var/run/zope&lt;br /&gt;&lt;br /&gt; vi /usr/local/kmkey/zope/etc/zope.conf&lt;br /&gt; &amp;lt;fast-cgi&amp;gt;&lt;br /&gt;    address /var/run/zope/fcgi&lt;br /&gt; &amp;lt;/fast-cgi&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;8) Configurar Apache.&lt;br /&gt;&lt;br /&gt;Es importante el tema del /htdocs o el módulo de FastCGI no funciona&lt;br /&gt;&lt;br /&gt;    &lt;span style=";font-family:courier new;font-size:85%;"  &gt;sudo mkdir /htdocs&lt;br /&gt; sudo touch /htdocs/zope&lt;br /&gt; sudo cp /home/earcon/nommaquina.keytab /etc/apache2/&lt;br /&gt; cd /etc/apache2/mods-enabled&lt;br /&gt; sudo ln -s ../mods-available/fastcgi.* .&lt;br /&gt;&lt;br /&gt; Antes del VirtualHost:&lt;br /&gt; FastCgiExternalServer /htdocs/zope -socket /var/run/zope/fcgi -pass-header  Authorization -pass-header Cookie&lt;br /&gt;&lt;br /&gt; Dentro del VirtualHost:     &lt;br /&gt;&lt;br /&gt;  &amp;lt;Location /zope &amp;gt;&lt;br /&gt;    Allow from all&lt;br /&gt;    Order allow,deny&lt;br /&gt;    SetHandler fastcgi-script&lt;br /&gt;  &amp;lt;/Location&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;Location /zope/kmkey/ &amp;gt;&lt;br /&gt;   AuthType NTLM&lt;br /&gt;   NTLMAuth on&lt;br /&gt;   NTLMAuthoritative on&lt;br /&gt;   NTLMDomain DOMINIO.WIN&lt;br /&gt;   NTLMServer cpd-dc1&lt;br /&gt;   Require valid-user&lt;br /&gt; &amp;lt;/Location&amp;gt;&lt;br /&gt;&lt;br /&gt; # Para acceder SIN SSO&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;     RewriteCond %{REQUEST_URI} !^/zope.*&lt;br /&gt;RewriteRule ^/(.*) balancer://lb/VirtualHostBase/http//%{HTTP_HOST}:80/kmkey/VirtualHostRoot/$1 [L,P]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9) Verificar, en las estaciones clientes, que el Internet Explorer tiene activada la casilla de "Autentificacion Integrada en Windows" en las opciones avanzadas.   También que el dominio de KMKey se encuentra dentro de la zona "Intranet Local", en la configuración de sitios de confianza&lt;br /&gt;&lt;br /&gt;Si se usa Firefox, se puede activar poniendo en la barra de direcciones: about:config y en la nueva barra network.automatic-ntlm-auth.trusted-uris&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10) Ya se puede entrar con SSO desde http://nombredominio/zope/kmkey&lt;br /&gt;&lt;br /&gt;NOTA IMPORTANTE: Si se prueba desde fuera del dominio, al entrar el usuario y la clave manualmente, debe hacerse en el formato DOMINIO\usuario para que lo acepte&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4171681574233804920?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4171681574233804920/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/03/single-sign-on-sso-con-kmkey.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4171681574233804920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4171681574233804920'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/03/single-sign-on-sso-con-kmkey.html' title='Single Sign On (SSO) con KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-8078656707754142455</id><published>2010-03-23T16:44:00.007+01:00</published><updated>2010-03-23T16:59:27.989+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Filosofadas'/><title type='text'>KMKey y el proceso de cuestionarios EFQM</title><content type='html'>&lt;span style="font-weight: bold;"&gt;KMKey y EFQM&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El modelo de medición de la gestión de la calidad denominado EFQM tiene un cierto predicamento entre aquellas empresas, normalmente de medio/gran tamaño que buscan obtener de su SGC datos más relevantes para la mejora contínua y el acercamiento al concepto de Calidad Total.&lt;br /&gt;&lt;br /&gt;Este modelo, está basado en la &lt;span style="font-weight: bold;"&gt;Autoevaluación&lt;/span&gt; continuada, y el objetivo final de la empresa u organización que la adopta suele ser (después de varios años de implantación) el de presentarse al premio europeo de la excelencia EFQM. Tanto es así que uno de los "estadios" de su implantación se denomina: Enfoque de Simulación de Presentación al Premio.&lt;br /&gt;&lt;br /&gt;Existen otros enfoques como son, los enfoques proforma (basado en formularios), el enfoque matricial (que suele observar uno de los elementos de la "ecuación" EFQM de forma aíslada), el enfoque por grupos de trabajo, el de implicación paritaria y finalmente el enfoque o metodología basada en &lt;span style="font-weight: bold;"&gt;cuestionarios&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Cada uno de los métodos conlleva diferentes grados de dificultad en su concepción/implantación y distintos tipos de información obtenida.&lt;br /&gt;En este sentido el modelo se muestra bastante eficiente en la señalización de puntos débiles y fuertes así como de las oportunidades de mejora.&lt;br /&gt;&lt;br /&gt;Se critica que sea un modelo demasiado verbal, con un campo semántico difuso, que necesite de una cantidad elevada de esfuerzos en la autoevaluación continuada y en la "tutorización" y auditoría externa continuada a la que se ve sometida la organización que la quiere adoptar.&lt;br /&gt;&lt;br /&gt;Tanpoco hay que olvidar el "sesgo inducido" en la redacción de muchas preguntas que dejan al encuestado sin demasiadas opciones para expresar su opinión fuera de las propuestas, o ciertas contradicciones que surgen en algunos subcriterios entre Puntos Fuertes y Areas de mejora, y la tendencia a procesarlas juntas o a promediar y después ponderar datos complejos, o bien la de distinguir entre una serie de indicadores "homogeneizados" aquellos que son realmente sensibles para los intereses de la organización auditada.&lt;br /&gt;&lt;br /&gt;No obstante, el grado de satisfacción de las organizaciones que adoptan este modelo es elevado en lo que respecta a:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;la amplicación de sus conocimientos sobre el grado de satisfacción de los clientes de la organización,&lt;/li&gt;&lt;li&gt;la gestión y mejora de los procesos internos y de;&lt;/li&gt;&lt;li&gt;los resultados económicos.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Por ello cuando en &lt;span style="font-weight: bold;"&gt;EARCON&lt;/span&gt; nos propusieron adaptar &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt; para automatizar una gestión de cuestionarios EFQM para una organización, aceptamos el reto sin dudarlo. No es misión de Earcon juzgar el grado de bondad del modelo adoptado por las organizaciones a las que presta sus servicios.&lt;br /&gt;&lt;br /&gt;La dificultad principal de esta organización, además de redactar y diseñar las 71 preguntas de las que constaba su cuestionario EFQM, radicaba en la distribución y recogida del mismo, al tener sus sedes distribuidas en un ámbito geográfico medio/grande, así como en la capacidad para gestionar el proceso de rellenado de los cuestionarios y su reenvio para no dejar apartados o preguntas incompletos o sin responder. Además se debía llevar un estadillo del progreso del rellenado y devolución (rellenados) de los mismos.&lt;br /&gt;&lt;br /&gt;Así pues se debía disponer de una herramienta como &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt; para gestionar todo aquello relacionado con los envios y recogidas de cuestionarios a los usuarios.&lt;br /&gt;Adaptamos un patrón de &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt; a fin de recoger las 71 preguntas, divididas en 9 sublayouts, en los que se debían disponer las opciones de respuesta (5 respuestas posibles: A,B,C,D, y E) de cada una de las preguntas, junto con la exposición de la respuesta, con un "radio button" cada una, para seleccionar la opción.&lt;br /&gt;&lt;br /&gt;La cantidad de cuestionarios correctamente rellenados se pueden monitorizar a diario y al acabar los resultados se pueden "exportar" en una tabla (.csv) y a partir de aqui se pueden introducir en un programa de análisis estadístico ad-hoc.&lt;br /&gt;&lt;br /&gt;O bien procesarlos en una hoja de cálculo de la que en &lt;span style="font-weight: bold;"&gt;Earcon&lt;/span&gt; también nos hicimos cargo, con intención de poder presentar no sólo la gestión de la "oleada" de cuestionarios (de hecho el cliente podría tener varías oleadas en curso en distintos puntos de la geografía y con distintos objetivos y para diferentes empresas cada una),  sino para poder tabular y presentar en un Informe automatizado, los resultados de aquella "oleada", segundos después de haber recibido el último cuestionario correctamente rellenado.&lt;br /&gt;&lt;br /&gt;Este es sólo un ejemplo de capacidad y versatilidad de &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt; para adaptarse a las necesidades de gestión de cada sistema de gestión de la calidad adoptado por nuestros clientes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-8078656707754142455?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/8078656707754142455/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/03/kmkey-y-el-proceso-de-cuestionarios.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8078656707754142455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8078656707754142455'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/03/kmkey-y-el-proceso-de-cuestionarios.html' title='KMKey y el proceso de cuestionarios EFQM'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1668421822121767476</id><published>2010-03-05T10:17:00.003+01:00</published><updated>2010-03-05T11:59:53.847+01:00</updated><title type='text'>Implantación de KMKey subvencionada</title><content type='html'>Es posible obtener ayudas de la administración para la implantación de una solución como KMKey. El MINISTERIO DE INDUSTRIA, COMERCIO Y TURISMO mediante su &lt;span style="font-weight:bold;"&gt;Programa de Apoyo a la Innovación de las Pequeñas y Medianas Empresas "InnoEmpresa"&lt;/span&gt; (2007-2013) permite obtener subvenciones a las PYME que quieran utilizar KMKey como herramienta para la mejora de procesos.&lt;br /&gt;Para mas información:&lt;br /&gt;&lt;a href="http://www.ipyme.org/es-ES/SubvencionesAyudas/InnoEmpresa/Paginas/InnoEmpresaNuevo.aspx"&gt;http://www.ipyme.org/es-ES/SubvencionesAyudas/InnoEmpresa/Paginas/InnoEmpresaNuevo.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1668421822121767476?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1668421822121767476/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/03/implantacion-de-kmkey-subvencionada.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1668421822121767476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1668421822121767476'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/03/implantacion-de-kmkey-subvencionada.html' title='Implantación de KMKey subvencionada'/><author><name>Joan</name><uri>http://www.blogger.com/profile/00686177384014933502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qa9B0X0vPuk/SgQBsveUnVI/AAAAAAAAA_Y/w35jh5ANkXQ/S220/snu'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1812397417234932325</id><published>2010-03-03T10:19:00.007+01:00</published><updated>2010-03-05T10:23:18.313+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Filosofadas'/><title type='text'>Alcanzar objetivos con KMKey</title><content type='html'>Al utilizar un programa de gestión de proyectos como &lt;span style="font-weight:bold;"&gt;KMKey Project&lt;/span&gt; pretendemos poder controlar el estado de los mismos para poder tomar decisiones que garanticen su rendimiento. Este objetivo global de acceder en cualquier momento a "la foto" del estado de los proyectos puede desgranarse en objetivos parciales, según las necesidades de cada empresa o la fase de implantación en la que nos encontremos.&lt;br /&gt;En las implantaciones, presentamos al coordinador los diferentes niveles de control a los que &lt;span style="font-weight:bold;"&gt;KMKey Project&lt;/span&gt; puede llegar para delimitar cuales de ellos vamos a utilizar en la fase que nos ocupa.&lt;br /&gt;Estos, agrupados por ejes, son los siguientes:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Los 4 EJES de KMKey:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Información: gestión de documentos, e-mails, notas y avisos.&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;I1: Organización de la información según estructura de proyecto&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Tiempo: calendario de realización de las tareas. Fechas previstas y reales.&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;T1: Fechas prevista y reales. Comparativa&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Esfuerzo: horas/hombre invertidas para llevarlas a cabo&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;E1: Horas previstas y reales. Comparativa&lt;br /&gt;E2: Asignación y Reserva de recursos&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Economía: ingresos, costes y rendimientos del proyecto&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;$1: Cuenta de explotación prevista y real&lt;br /&gt;$2: Ciclo Oferta &gt; Factura&lt;br /&gt;$3: Gestión cobros y pagos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1812397417234932325?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1812397417234932325/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/03/alcanzar-objetivos-con-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1812397417234932325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1812397417234932325'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/03/alcanzar-objetivos-con-kmkey.html' title='Alcanzar objetivos con KMKey'/><author><name>Joan</name><uri>http://www.blogger.com/profile/00686177384014933502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qa9B0X0vPuk/SgQBsveUnVI/AAAAAAAAA_Y/w35jh5ANkXQ/S220/snu'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4303499167764136153</id><published>2010-01-28T14:12:00.005+01:00</published><updated>2010-01-28T14:35:25.613+01:00</updated><title type='text'>Recuperar / Restaurar objetos borrados a partir de una copia de seguridad</title><content type='html'>Plantearemos la situación de tener que recuperar un proyecto borrado accidentalmente a partir de una copia de seguridad. Se supone que no tenemos la opción de undo y que no se ha hecho ningún purge dspués del borrado&lt;br /&gt;&lt;br /&gt;El caso aquí planteado supone que la BD Main está en postgresql , y los schemas pueden o no estar replicados a postgresql&lt;br /&gt;&lt;br /&gt;IMPORTANTE : Esto funcionará solo en el caso que NO se haya ejecutado ningún purge del portal_repository, ya que se habrań perdido las referencias a los proxies (en realidad restauraremos proxies, no los objetos reales, ya que estos no se borran hasta el purge)&lt;br /&gt;&lt;br /&gt;Pasos a realizar:&lt;br /&gt;&lt;br /&gt;Primera parte : Recuperar la copia de seguridad completa&lt;br /&gt;&lt;br /&gt;- Parar la instancia original (no es estrComunidad KMKey en Españolgenictamente necesario)&lt;br /&gt;- Copiar toda la instancia a un nuevo directorio (cp -a zope zope2)&lt;br /&gt;- Modificar los archivos de configuración de la nueva instancia para que apunten al nuevo directorio (editar todos los archivos de /bin, y modificar el path)&lt;br /&gt;- Modificar el archivo zope/etc/zope.conf, modificando el path de la instancia, el puerto http y el origen de datos de la bd main. Si la original se llama, por ejemplo 'kmkey_zodb', aquí la podemos renombrar a 'kmkey_zodb_back'&lt;br /&gt;- Crear la nueva base de datos : createdb kmkey_zodb_back&lt;br /&gt;- Recuperar la copia de seguridad a la nueva bd que hemos creado : pg_restore -d kmkey_zodb_back archivo_copia_de_seguridad (se da por hecho que se estan realizando copias diarias o semanales de seguridad con el comando pg_dump --format=c nombre_bd&gt;archivo_copia_de_seguridad)&lt;br /&gt;- si además tenemos los schemas en posgresql, tb debemos recuperarlos , aunque este paso se puede omitir, ya que las 2 instancias apuntaran al mismo&lt;br /&gt;&lt;br /&gt;Si  hemos realizado correctamente todos los pasos anteriores, deberíamos poder arrancar la segunda instancia que hemos configurado (/usr/local/kmkey/zope2/bin/zopectl start)&lt;br /&gt;&lt;br /&gt;Segunda parte : recuperar el objeto borrado&lt;br /&gt;&lt;br /&gt;- Entramos a zmi de la segunda instancia y hacemos un export del expediente u objeto que queremos recuperar&lt;br /&gt;- Copiamos el archivo .zexp que se ha exportado a /var de la segunda instancia al directorio /import de la primera instancia&lt;br /&gt;- Paramos la segunda instancia (no es estrictamente necesario, pero esta instancia la deshecharemos para cualquier otra cosa que no sea recuperar objetos via export)&lt;br /&gt;- Entramos a zmi de la primera instancia, y nos posicionamos en el contenedor del objeto que queremos recuperar&lt;br /&gt;- Importamos el objeto&lt;br /&gt;&lt;br /&gt;A partir de este momento , ya podremos acceder al objeto recuperado si todo ha funcionado correctamente, pero tenemos que asegurarnos de que desactivamos la marca de borrado de los schemas si estos estan en postgresql&lt;br /&gt;&lt;br /&gt;Si es así, debemos ejecutar una consulta del estilo : update kmkey_project set deleted=0 where internal_docid = xxxxx (o proxy_path, o container_path, o project_path, para hacerlo para todos los subobjetos)&lt;br /&gt;Tener en cuenta q si se está recuperando un expediente, habrá que ejecutar esta consulta para cada una de las tablas que tengamos a psql (kmkey_task, kmkey_work, kmkey_email, kmek_document, kmkey_note, etc..)&lt;br /&gt;&lt;br /&gt;suerte&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4303499167764136153?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4303499167764136153/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/recuperar-restaurar-objetos-borrados.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4303499167764136153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4303499167764136153'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/recuperar-restaurar-objetos-borrados.html' title='Recuperar / Restaurar objetos borrados a partir de una copia de seguridad'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7614401821172329599</id><published>2010-01-26T11:45:00.002+01:00</published><updated>2010-01-26T11:53:19.044+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Gestión de Recursos.   Pasado, presente y futuro</title><content type='html'>&lt;p style="margin-bottom: 0cm;"&gt;Una de las funcionlidades avanzadas de KMKey es la gestión de cargas de recursos humanos, esto es, la posibilidad de asignar y reservar horas de trabajo de gente en proyectos y tareas concretas.   Esta gestión se lleva a cabo en la pestaña &lt;span style="font-style: italic;"&gt;“PLANIFICAR”&lt;/span&gt; , apartado &lt;span style="font-style: italic;"&gt;“Recursos”&lt;/span&gt;.   En ella podemos seleccionar el nivel de detalle de la vista a:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;Semanas, con lo que podremos asignar horas día a día dentro de cada semana&lt;/li&gt;&lt;li&gt;Meses, con lo que podremos asignar horas semana a semana dentro de cada mes&lt;/li&gt;&lt;/ul&gt;   &lt;p style="margin-bottom: 0cm;"&gt;Una vez seleccionado el nivel de detalle, podemos pasar a asignar recursos en un período (día o semana) y una tarea concretas.    Para ello hacemos click en la cuadrícula correspondiente, y nos aparece un desplegable con los recursos humanos disponibles.   Entre paréntesis nos aparece la carga ya existente de ese recurso en ese período, con lo que podemos ver fácilmente si tiene tiempo disponible para la tarea que pretendemos asignarle.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;En la parte inferior podemos entrar la nueva asignación al recurso elegido.    Las asignaciones pueden ser de varios tipos, y además esta clasificación va a variar en KMKey Zapata, de forma que pasaremos a detallarlas tanto en la versión Zapata como en la versión Makhno:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-weight: bold;"&gt;Asignación en el período  lo antes posible&lt;/span&gt;.   En Makhno correspondía a tener marcado  &lt;span style="font-style: italic;"&gt;“Lo antes posible”&lt;/span&gt; y NO tener marcado &lt;span style="font-style: italic;"&gt;“Asignación  Periódica”&lt;/span&gt;.    Funciona asignado el número de horas  que se le indique en el período seleccionado, teniendo en  cuenta la carga de recursos.   Por ejemplo, si una semana un recurso  tiene ocupados lunes y martes, y se le asignan 8 hores lo antes  posible, las asignará el miércoles.   Cabe tener en  cuenta que si el volumen de horas es alto, en este tipo de  asignaciones el sistema asignará igualmente las horas en el  período indicado, sobrecargando el recurso.   Por ejemplo si  en el caso anterior se asignan 40 horas en la semana, se asignarán  de miércoles a domingo.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-weight: bold;"&gt;Asignación en el período  repartida&lt;/span&gt;.   En Makhno correspondía a tener marcado &lt;span style="font-style: italic;"&gt;“Durante  el período”&lt;/span&gt; y NO tener marcado &lt;span style="font-style: italic;"&gt;“Asignación  Periódica”&lt;/span&gt;.    En este caso, se reparten las horas  proporcionalmente durante todo el período.    Por ejemplo, si  se asignan 20 horas en una semana a un recurso, se le estan  asignando 4 horas de lunes a viernes.  Igual que en el caso  anterior, si se sobrepasa la capacidad disponible,  el sistema  sobrecarga al recurso.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-weight: bold;"&gt;Asignación de larga  duración&lt;/span&gt;.   En Makhno correspondía a tener marcado &lt;span style="font-style: italic;"&gt;“Lo  antes posible”&lt;/span&gt; y tener también marcado &lt;span style="font-style: italic;"&gt;“Asignación  Periódica”&lt;/span&gt;.   Esta opción sirve para entrar un  volumen de horas que sobrepasa el período, con lo va a ir  asignándose hasta completar el total de horas indicado,  siempre teniendo en cuenta la disponibilidad del recurso en cada  día.   Por ejemplo, asignar 350 horas entre el 1 de enero y  el 31 de marzo.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-weight: bold;"&gt;Asignación periódica  diari&lt;/span&gt;a.   En Makhno se correspondía a tener marcado &lt;span style="font-style: italic;"&gt;“Durante  el período”&lt;/span&gt; y tener también marcado &lt;span style="font-style: italic;"&gt;“Asignación  Periódica”&lt;/span&gt;.   En ese caso se indica el número de  horas diarias a reservar entre dos fechas, pudiendo seleccionar días  de la semana.    Por ejemplo, podemos reservar 2 horas diarias cada  dia entre el 1 de enero y el 31 de diciembre, o 4 horas todos los  viernes entre el 1 de enero y el 30 de junio.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7614401821172329599?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7614401821172329599/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/gestion-de-recursos-pasado-presente-y.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7614401821172329599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7614401821172329599'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/gestion-de-recursos-pasado-presente-y.html' title='Gestión de Recursos.   Pasado, presente y futuro'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6031411140403626132</id><published>2010-01-19T10:41:00.009+01:00</published><updated>2010-01-19T11:39:36.565+01:00</updated><title type='text'>Ruta hacia KMKey Zapata. Mas revolución!!</title><content type='html'>Tras liberar KMKey Makhno y sin tiempo que perder, ya estamos planificando y ejecutando las nuevas mejoras y funcionalidades que contendrá la nueva versión. Está dedicada al revolucionario Mexicano Emiliano Zapata que acuñó el lema &lt;span style="font-style:italic;"&gt;"Tierra y Libertad"&lt;/span&gt;.&lt;br /&gt;El éxito que está alcanzando el programa y sobretodo la variedad de casuísticas a las que responde, hace que recibamos continuamente sugerencias por parte de los usuarios. Tras analizarlas, junto con propuestas del equipo de desarrollo, concluímos que antes que extender las funcionalidades a otras áreas, el interés se centra en refinar todavía mas el uso de lo existente. Por tanto, hemos dividido los trabajos a realizar para la nueva versión en tres areas principales:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1)Usabilidad.&lt;/span&gt;&lt;br /&gt;El objetivo es hacer mas ágil e intuitivo el trabajo diario con KMKey, mejorando funciones existentes y añadiendo nuevas funcionalidades. Una muestra de ello serían los siguientes desarrollos previstos:&lt;br /&gt;Facilidad de uso y velocidad en árbol de expedientes. Desplegar / Plegar&lt;br /&gt;Mejoras en filtros. Unificar. Recordar. Por defecto&lt;br /&gt;Píldoras de información. Copiar y mover. Responder mails. Añadir múltiples documentos.&lt;br /&gt;Búsquedas avanzadas.&lt;br /&gt;Mejoras en mensajes y notificaciones. Enviar desde asignaciones.&lt;br /&gt;Equipo: Heredar datos. Entrada desde expedientes. Sub layouts. Conexión con Google maps.&lt;br /&gt;Unificar: calendarios y agendas. También gestión de versiones.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2)Gestión de proyectos&lt;/span&gt;&lt;br /&gt;Siendo el uso para la Gestión de Proyectos el mas extendido, es lógico que sea en esta área donde mas interés y peticiones recibimos. Sobretodo para profundizar en su alcance. Los desarrollos previstos mas destacados son:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Eje tiempo:&lt;/span&gt; mejoras en estructurar WBS. Nuevas vistas: progreso, previsión. Calendarios de grupos de recursos e individuos&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Eje esfuerzo:&lt;/span&gt; mejoras en la imputación de horas. Entrada rápida. Horas del dia visibles. Mejoras en asignaciones de horas: modificar, previsto/ real..&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Eje economía:&lt;/span&gt;&lt;br /&gt;Cada vez mas usuarios utilizan la parte económica para la gestión de sus cuentas de explotación, ciclo oferta factura etc.. Sin pretender en ningún momento sustituir una contabilidad, mejoramos una serie de aspectos para que gran parte de la gestión se pueda llevar sobre KMKey. ejemplos de ello son:&lt;br /&gt;Imputar conceptos según periodo de la tarea, organización en árbol de conceptos contables, generación de la curva S. Mejoras varias en facturación: justificaciones, repetitiva, enlace con productos, orden en filas etc..&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;3)Administración&lt;/span&gt;&lt;br /&gt;Para facilitar el trabajo al administrador de la aplicación ponemos en marcha dos mejoras espectaculares: creación de un patrón desde un expediente y generación automática de los permisos (visibilidad de acciones) según la modalidad (Project, Quality o Help Desk) y el objetivo dentro de Project. De esta manera, solo con seleccionar como queremos trabajar se hará visible a los usuarios aquello que necesitan, quedando ocultas (pero disponibles) otras funcionalidades que por el momento no se van a utilizar.&lt;br /&gt;&lt;br /&gt;Con esta serie de mejoras, el próximo Mayo, estará disponible KMKey Zapata para revolucionar mas si cabe el mundo de las aplicaciones empresariales en código abierto.&lt;br /&gt;"Software y Libertad!!!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6031411140403626132?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6031411140403626132/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/ruta-hacia-kmkey-zapata-mas-revolucion.html#comment-form' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6031411140403626132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6031411140403626132'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/ruta-hacia-kmkey-zapata-mas-revolucion.html' title='Ruta hacia KMKey Zapata. Mas revolución!!'/><author><name>Joan</name><uri>http://www.blogger.com/profile/00686177384014933502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qa9B0X0vPuk/SgQBsveUnVI/AAAAAAAAA_Y/w35jh5ANkXQ/S220/snu'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6059579978413411453</id><published>2010-01-18T13:23:00.002+01:00</published><updated>2010-01-18T13:38:01.435+01:00</updated><title type='text'>Vocabularios / Select Box dinámicos</title><content type='html'>Para configurar un select Box que depende de las entradas de otro select box tenemos accesible una funcion javascript , &lt;span style="font-style: italic;"&gt;loadSelectValues&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo  : Tenemos el campo-select box 'area' y un segundo campo-select box, 'proceso' ,  con opciones que dependen de lo que se haya seleccionado previamente en el campo 'Area'&lt;br /&gt;&lt;br /&gt;Para configurarlo&lt;br /&gt;&lt;br /&gt;- Creamos los 2 campos normalmente desde la edición de patrones&lt;br /&gt;- Una vez creados, vamos al zmi (portal_layouts/layout_en_cuestion)&lt;br /&gt;&lt;br /&gt;Campo area:&lt;br /&gt;- Lo único que modificamos es la prpiedad "On change javascript action" , y escribimos lo siguiente :  &lt;span style="font-style: italic;"&gt;loadSelectValues(this.value, 'getProcesosPorArea', 'widget__proceso')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;donde getProcesosPorArea es el nombre de un python script que crearemos debajo de portal_skins/custom, i 'widget__proceso' es el nombre del widget del cual depende. Así de simple&lt;br /&gt;&lt;br /&gt;el contenido del script es el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;voc = container.portal_vocabularies['kmkey_nc_proveedores_proceso']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;result = []&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;for key in voc.keys():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  if key.split('#')[0] == str(id):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    result.append({'key':key, 'value':voc[key]})&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;return result&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Donde modificamos únicamente el nombre del vocabulario, el del campo dependiente, que obtenemos mirando la configuración de su widget asociado&lt;br /&gt;&lt;br /&gt;Importante : En el campo 'Parameter list' del script debe indicarse 'id', para que acepte el valor como entrada&lt;br /&gt;&lt;br /&gt;Lo único que nos queda, es configurar correctamente los valores de cada uno de los vocabularios.&lt;br /&gt;&lt;br /&gt;Para vocabulario Area :&lt;br /&gt;A1 --&gt; Area 1&lt;br /&gt;A2 --&gt; Area 2&lt;br /&gt;etc..&lt;br /&gt;&lt;br /&gt;Para vocabulario Fuente&lt;br /&gt;A1#1 --&gt; Area 1.1&lt;br /&gt;A1#2 --&gt; Area 1.2&lt;br /&gt;...&lt;br /&gt;A2#1 --&gt; Area 2.1&lt;br /&gt;&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;Como véis, la técnica se basa en utilizar el prefijo que hay antes del separador de campos '#'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6059579978413411453?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6059579978413411453/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/vocabularios-select-box-dinamicos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6059579978413411453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6059579978413411453'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/vocabularios-select-box-dinamicos.html' title='Vocabularios / Select Box dinámicos'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6571943383750245352</id><published>2010-01-08T12:53:00.004+01:00</published><updated>2010-01-08T13:38:34.476+01:00</updated><title type='text'>Enlazar/Relacionar expedientes (relaciones n--&gt;1 y m--&gt;n)</title><content type='html'>A veces nos interesa que un campo de un expediente nos permita seleccionar items que lo relacionen con otros expedientes&lt;br /&gt;&lt;br /&gt;Por ejemplo, tenemos expedientes para introducir temas de personal, y tenemos otros expedientes donde introducimos las formaciones del personal. Aquí nos interesa tener una relación MN , donde un empleado puede estar en muchas formaciones y una formación tiene n empleados&lt;br /&gt;&lt;br /&gt;Esta relación puede ser unilateral o simétrica (seleccionar en un sentido o en ambos)&lt;br /&gt;&lt;br /&gt;A modo de ejemplo, pongamos q tenemos los patrones con portal_type  'kmkey_personal' y 'kmkey_formacion'&lt;br /&gt;&lt;br /&gt;1- Agregar un campo "CPS String List" &lt;span style="font-weight: bold;"&gt;a  los dos&lt;/span&gt; schemas afectados. Al campo lo llamaremos  'PER_r_FOR'. El campo debe agregarse y  llamarse exactamente igual en los dos schemas.&lt;br /&gt;La única propiedad que debe configurarse es la "Write: expression", y solo en el schema donde vayamos a hacer la selección (si es simétrica, lo haremos  en ambos).&lt;br /&gt;&lt;br /&gt;campo a agregar en el schema 'kmkey_formacion':&lt;br /&gt;&lt;br /&gt;python:object and proxy and util.catalogCrossSetList('kmkey_personal','PER_r_FOR', PER_r_FOR,proxy.getDocid(),'getDocid') or PER_r_FOR&lt;br /&gt;&lt;br /&gt;si quisieramos permitir que desde un expediente de personal se puedieran seleccionar n formaciones, haríamos lo mismo en kmkey_personal, utilizando esta expresión :&lt;br /&gt;&lt;br /&gt;python:object and proxy and util.catalogCrossSetList('kmkey_formacion','PER_r_FOR', PER_r_FOR,proxy.getDocid(),'getDocid') or PER_r_FOR&lt;br /&gt;&lt;br /&gt;fijarse bien en el uso del campo en los parámetros de la función : el segundo parámetro se pasa el nombre del campo (string) y el tercer parámetro es el propio valor del campo, sin comillas&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2- Agregar el índice y metadata del campo creado (keyword index) al portal_catalog.&lt;br /&gt;&lt;br /&gt;3- Agregar el widget con el nombre igual al nombre del campo al (los) layout correspondiente. Ha de ser un &lt;span style="font-weight: bold;"&gt;"KMKey Multi select pop up Widget"&lt;/span&gt;&lt;br /&gt;Parámetros del widget:&lt;br /&gt;- size : valor 1 --&gt; permite únicamente seleccionar un elemento.&lt;br /&gt;Si ponemos size 2 o más, podremos seleccionar n elementos (es o uno o n)&lt;br /&gt;- vocabulary : kmkey_selected_units&lt;br /&gt;- URL to pop up template : para permitir un solo elemento : 'selectUnitSimple.html', para permitir n elementos : 'selectUnits.html'&lt;br /&gt;- Filter Meta Type (or Portal Type)  : dejaremos en blanco para todo, o indicaremos una lista de portal types separados por comas, en el ejemplo, añadiremos el widget en el layout de kmkey_formacion, y en este campo pondremos 'kmkey_personal'.&lt;br /&gt;- Token for view list : podemos indicar un token html para separar los diferentes valores seleccionados en el modo view del expediente, se puede utilizar por ejemplo la coma (,) o un &lt;&gt; para seaparlos con un salto de línea&lt;br /&gt;&lt;br /&gt;Si vamos ahora a crear un expediente del tipo kmkey_formacion, veremos que nos aparece el campo y los botones que nos permite abrir el pop-up que visualiza la lista de expedientes de personal, donde relizaremos la selección&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6571943383750245352?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6571943383750245352/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/enlazarrelacionar-expedientes.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6571943383750245352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6571943383750245352'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/enlazarrelacionar-expedientes.html' title='Enlazar/Relacionar expedientes (relaciones n--&gt;1 y m--&gt;n)'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-193834492755615164</id><published>2010-01-07T10:58:00.001+01:00</published><updated>2010-01-07T11:00:37.350+01:00</updated><title type='text'>Activar módulos en KMKey</title><content type='html'>KMKey Tiene 4 módulos diferenciados&lt;br /&gt;&lt;br /&gt;- Información&lt;br /&gt;- Temporal&lt;br /&gt;- Esfuerzo&lt;br /&gt;- Economía&lt;br /&gt;&lt;br /&gt;Cada uno de ellos cons sus funcionalidades (Información general, planificación, imputación de horas y gestión económica -facturas de compra,venta, previsiones-)&lt;br /&gt;&lt;br /&gt;Para activar y desactivar módulos vamos a la pestaña Admin --&gt; Módulos, allí tenemos las opciones&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-193834492755615164?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/193834492755615164/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/activar-modulos-en-kmkey.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/193834492755615164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/193834492755615164'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2010/01/activar-modulos-en-kmkey.html' title='Activar módulos en KMKey'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6800670079366230851</id><published>2009-12-28T12:59:00.004+01:00</published><updated>2010-01-08T11:30:15.808+01:00</updated><title type='text'>Configurar Seleccionable / Autocomplete de Grupos / Empresas o Contactos</title><content type='html'>Para configurar un campo relación asociado a una selección de grupos o empresas (o contactos), realizamos los siguientes pasos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Para configurar una lista seleccionable (un select box)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Agregar un Widget al layout : "KMKey Relation Select Widget"&lt;br /&gt;&lt;br /&gt;- en el campo AdvancedQuery Expression (TALES) , utilizamos una expresión python que utlizará AdvancedQuery para ejecutar la consulta. Un ejemplo de filtro típico es filtrar los grupos de determinada categoría : &lt;span style="font-size:100%;"&gt;&lt;br /&gt;python:Eq('meta_type', 'KM Group')&amp;amp;In('categories',['customer','provider','lo que sea'])&lt;br /&gt;&lt;br /&gt;o contactos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;python:Eq('meta_type', 'KM Contact')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;- Value to Show (TALES from the brain) : Aquí ponemos la expresión que se encarga de mostrar el valor :&lt;br /&gt;python:brain.Title&lt;br /&gt;&lt;br /&gt;Ya tenemos configurado nuestro seleccionable de empresas (o contactos)&lt;br /&gt;&lt;br /&gt;En el caso de que haya muchos registros , no es conveniente, por motivos de rendimiento y de usabilidad, utilizar un seleccionable. Para ello podemos utilizar un &lt;span style="font-weight: bold;"&gt;autocomplete&lt;/span&gt; , con el mismo control, de la siguiente manera :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Para configurar un autocomplete:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Realizamos exactamente los mismos pasos que antes&lt;br /&gt;- Creamos , dentro de zmi/portal_skins/custom/ un python script. Lo llamaremos , por ejemplo "autocomplete_for_arquitectos"&lt;br /&gt;- Establecemos el campo "Parameter list"  a "value"&lt;br /&gt;- El código del script deberá ser más o menos como el siguiente :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;from Products.AdvancedQuery import MatchGlob, Eq, Le, Ge, In, Between, Generic&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;REQUEST = context.REQUEST&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;value = "*" + unicode(value, 'utf-8').encode('iso-8859-15') + "*"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;catalog = context.portal_catalog&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;query = MatchGlob('Title', value) &amp;amp; Eq('meta_type', 'KM Group') &amp;amp; In('categories', 'Arquitecto')&lt;/span&gt;&lt;br /&gt;brains = catalog.evalAdvancedQuery(query, ('Title' ,  ) )&lt;br /&gt;result = ['&lt; id="%s"&gt;%s&lt; / li &gt;'  % (b.getDocid, b.Title) for b in brains]&lt;br /&gt;result = ' &lt;&gt; ' + chr(10).join(result) + '&lt; / ul &gt;'&lt;br /&gt;result = unicode(result, 'iso-8859-15')&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;REQUEST.RESPONSE.setHeader('Content-Type', 'text/xml;;charset=%s' % 'utf-8')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;return result&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Finalmente, otra vez en el widget, establecemos el campo  "Server method for autocompletation" con el nombre del script que hemos configurado antes (autocomplete_for_arquitecto, en el ejemplo)&lt;br /&gt;&lt;br /&gt;Una vez hecho esto, en la pantalla de alta o edición, podemos establecer el campo utilizando la técnica del auto completado, escribiremos parte del nombre de la empresa a buscar, y la lista mostrará los elementos que coincidan, debiendo seleccionar uno de ellos&lt;br /&gt;&lt;br /&gt;En caso de no aparecer ningún valor, revisar el script o mirar el error_log para localizar posibles errores&lt;br /&gt;&lt;br /&gt;en el directorio de skins de KMKeyDefault, ya tenemos varios scipts por defecto que filtran grupos o contactos :&lt;br /&gt;&lt;br /&gt;- auto_complete_for_contacts&lt;br /&gt;- auto_complete_for_customers&lt;br /&gt;- auto_complete_for_providers&lt;br /&gt;- auto_complete_for_groups&lt;br /&gt;- auto_complete_for_users_or_groups&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Lo mismo que hemos hecho para grupos lo podemos hacer también para usuarios u otros objetos, simplemente cambiando las condiciones del query&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6800670079366230851?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6800670079366230851/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/configurar-seleccionable-autocomplete.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6800670079366230851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6800670079366230851'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/configurar-seleccionable-autocomplete.html' title='Configurar Seleccionable / Autocomplete de Grupos / Empresas o Contactos'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-8236455166533937424</id><published>2009-12-23T11:46:00.005+01:00</published><updated>2009-12-23T12:14:04.211+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Configurar qué se muestra en el navtree (título de los expedientes)</title><content type='html'>Para personalizar qué información se visualiza en el navtree, simplemente tenemos que configurar, en cada schema asociado a cada patrón, un campo llamado 'navtree_title'&lt;br /&gt;&lt;br /&gt;- Entramos a ZMI/schemas/schema_en_cuestion&lt;br /&gt;- Añadir un campo string llamado 'navtree_title'&lt;br /&gt;- Escribir la expresión que necesitemos en el campo 'Write : expresion', al estilo :&lt;br /&gt;&lt;br /&gt;python: object and "%s - %s - %s" % (object.reference, object.title, object.planned_start.strftime(...)) or ''&lt;br /&gt;&lt;br /&gt;o más complejo :&lt;br /&gt;&lt;br /&gt;python:object and "SM.%s.%s"%(relacionados and len(relacionados)&gt;=1 and util.relatedObjectAttribute(relacionados[0],'reference') or 'Sin Relación',serie) + ' - ' + object.title&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Importante&lt;/span&gt; : Si utilizamos la read expression, esto se calcula cada vez, afectando al rendimiento, por eso lo usamos en la write expression, que solo se calcula cada vez que se guarda el objecto. El problema de esto segundo, es que si hacemos el cambio a posteriori (con expedientes ya creados) , hay que ejecutar un commit de cada objeto para que se actualice todo correctamente&lt;br /&gt;Esto también es importante si tenemos los schemas en postgresql, ya que las read expresions NO se graban en las tablas&lt;br /&gt;&lt;br /&gt;para ejecutar el commit tenemos la solución fácil por un lado, si hay pocos expedientes, que es editarlo uno por uno y guardarlo desde la propia aplicación&lt;br /&gt;&lt;br /&gt;si hay muchos expedientes, no queda más remedio que ejecutar un zopectl debug y escribir esto (o crear un archivo de texto y ejecutarlo via zopectl run)&lt;br /&gt;&lt;br /&gt;site = app.mi_site_de_km&lt;br /&gt;site._p_jar.cacheGC()&lt;br /&gt;site._p_jar.sync()&lt;br /&gt;from AccessControl.SecurityManagement import newSecurityManager&lt;br /&gt;from Testing.makerequest import makerequest&lt;br /&gt;user = site.acl_users.getUser('un_usuarioa_dmin').__of__(site.acl_users)&lt;br /&gt;newSecurityManager({}, user)&lt;br /&gt;app = makerequest(app)&lt;br /&gt;site = app.mi_site_de_km&lt;br /&gt;from Products.CPSCore.EventServiceTool import getPublicEventService&lt;br /&gt;from Products.AdvancedQuery import Eq,In&lt;br /&gt;cat = site.portal_catalog&lt;br /&gt;km = site.workspaces.kmkey&lt;br /&gt;site._p_jar.cacheGC()&lt;br /&gt;site._p_jar.sync()&lt;br /&gt;brains = cat.evalAdvancedQuery(Eq('portal_type',el_portal_type_que_sea))&lt;br /&gt;&lt;br /&gt;obs=[]&lt;br /&gt;i=0&lt;br /&gt;for brain in brains:&lt;br /&gt;   i=i+1&lt;br /&gt;   obs.append(brain.getObject())&lt;br /&gt;   if i%25==0:&lt;br /&gt;       site._p_jar.cacheGC()&lt;br /&gt;       site._p_jar.sync()&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;i=0&lt;br /&gt;for proxy in obs:&lt;br /&gt;   ob = proxy.getContent()&lt;br /&gt;   dm = ob.getDataModel()&lt;br /&gt;   dm._commit()&lt;br /&gt;   proxy.reindexObject()&lt;br /&gt;   evtool = getPublicEventService(proxy)&lt;br /&gt;   evtool.notifyEvent('modify_object', proxy, {})  &lt;br /&gt;   i=i+1&lt;br /&gt;   if i%5==0:&lt;br /&gt;      get_transaction().commit()&lt;br /&gt;      km._p_jar.cacheGC()&lt;br /&gt;      km._p_jar.sync()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-8236455166533937424?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/8236455166533937424/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/configurar-que-se-muestra-en-el-navtree.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8236455166533937424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8236455166533937424'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/configurar-que-se-muestra-en-el-navtree.html' title='Configurar qué se muestra en el navtree (título de los expedientes)'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4687813435445337348</id><published>2009-12-14T12:04:00.003+01:00</published><updated>2009-12-14T12:24:28.927+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Cómo seguir la evolución de KMKey ?</title><content type='html'>Varias personas nos han manifestado su interés en seguir la evolución de KMKey, pero tienen dudas acerca de cómo hacerlo.   Vamos a intentar aclararlo en esta entrada.  Disponemos de 2 herramientas para la comunidad de KMKey en español:&lt;br /&gt;&lt;br /&gt;1) El blog http://kmkey-es.blogspot.com en el que te encuentras.   En él publicamos trucos de configuración, detalles técnicos del desarrollo, o no tan técnicos, instrucciones para la instalación, etc.   Puedes hacerte seguidor del blog pulsando en el bóton "Seguir", pero necesitarás disponer de una cuenta google, yahoo o twitter para hacerte seguidor del mismo.   En todo caso, te animamos que lo visites con cierta frecuencia y entres tus comentarios a nuestras entradas si lo crees oportuno&lt;br /&gt;&lt;br /&gt;2) La lista de correo &lt;a href="https://lists.forge.osor.eu/mailman/listinfo/kmkey-spanish" target="_blank"&gt;KMKey Spanish&lt;/a&gt;  Es el método más dinámico y participativo, donde vamos explicando con más frecuencia los avances, e incluso debatimos funcionalidades a implementar.    Una lista de correo es un sistema en el que la gente se suscribe con una cuenta de e-mail.   Una vez suscrita, puede enviar e-mails a la lista escribiendo un mail con destinatario&lt;span style="font-style: italic;"&gt; kmkey-spanish@lists.forge.osor.eu&lt;/span&gt;   Asimismo, todas las personas suscritas reciben todos los emails que se envían a la lista.  Es una buena forma de llegar rápidamente a todos los interesados en un tema, en este caso KMKey, y que lleva años usándose en el mundo del software libre (colaborativo por definición).  Si a alguien le molesta recibir demasiados e-mails, puede elegir en las preferencias la opción "Digest", de forma que sólo recibiría un resumen periódico.   Para suscribirte tienes que  entrar tu e-mail y elegir un password, y recibirás un correo de confirmación con las instrucciones para finalizar la inscripción.  Te esperamos !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4687813435445337348?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4687813435445337348/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/como-seguir-la-evolucion-de-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4687813435445337348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4687813435445337348'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/como-seguir-la-evolucion-de-kmkey.html' title='Cómo seguir la evolución de KMKey ?'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-5811193499604638778</id><published>2009-12-03T09:33:00.006+01:00</published><updated>2009-12-10T20:06:44.595+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>Liberado KMKey 3 versión Makhno</title><content type='html'>Nos complace anunciar la liberación de KMKey Makhno, incluido dentro de la plataforma &lt;a href="http://www.osor.eu/"&gt;OSOR&lt;/a&gt;.  Se puede obtener más información del producto y como descargarlo en la &lt;a href="http://kmkey-es.blogspot.com/2009/12/como-instalarse-kmkey-makhno.html"&gt;página comunitaria&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para quien no lo conozca, KMKey (Knowledge Management Key) es un &lt;a href="http://es.wikipedia.org/wiki/Software_libre"&gt;software libre&lt;/a&gt;, con licencia GPL v2, que implementa gestión de proyectos y de calidad en un entorno web.   Se encuentra desarrollado en lenguaje &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; sobre el servidor de aplicaciones &lt;a href="http://www.zope.org/"&gt;Zope&lt;/a&gt; y el gestor de contenidos &lt;a href="http://www.cps-project.org/"&gt;CPS&lt;/a&gt;, y su principal utilidad es ofrecer una plataforma que cruza la planificación de proyectos con la gestión de contenidos y un cuadro de mando, convirtiéndolo en un entorno colaborativo tremendamente útil para cualquier empresa de servicios.   Como valor añadido, el producto tiene una larga trayectoria empresarial y se encuentra en producción en multitud de empresas y organizaciones reales&lt;br /&gt;&lt;br /&gt;En esta nueva versión se ha mejorado considerablemente la usabilidad, el rendimiento, y las utilidades disponibles pera el administrador.  También se ha añadido la exportación e importación de patrones de trabajo con el fin de fomentar el intercambio de los mismos entre usuarios, y se han añadido nuevas vistas en el cuadro de mando.   Esperamos que todo ello os resulte de la máxima utilidad&lt;br /&gt;&lt;br /&gt;Los funciones que has sido objeto de revisión son:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DEFINICIÓN&lt;/span&gt; : Mayores capacidades de diseño de formularios con los “sublayouts”, ayudas y cabeceras&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;EQUIPO&lt;/span&gt; : Mejoras en la presentación de los grupos y contacto rediseño de la pagina de gestión de permisos&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GESTIÓN&lt;/span&gt;: Mejoras en el cierre de proyecto&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PLANIFICACIÓN&lt;/span&gt;: Mejoras en la edición de la planificacion&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CONTROL&lt;/span&gt;: Mejoras con nuevas funciones en la presentación del Esfuerzo, presentación en % y en Gantt, comparativa Previsto/Real&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-5811193499604638778?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/5811193499604638778/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/liberado-kmkey-3-version-makhno.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5811193499604638778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5811193499604638778'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/liberado-kmkey-3-version-makhno.html' title='Liberado KMKey 3 versión Makhno'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-2224212392114767206</id><published>2009-12-03T09:16:00.003+01:00</published><updated>2009-12-04T18:18:17.896+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Quieres colaborar con KMKey ?</title><content type='html'>Necesitamos colaboradores para mejorar, difundir y documentar KMKey.    Si te apetece pasar a formar parte de la comunidad KMKey en español seguro que puedes aportar tu granito de arena.  Los principales perfiles, aunque no los únicos, que necesitamos son:&lt;br /&gt;&lt;br /&gt;1) Administradores avanzados que ayuden a documentar las muchísimas opciones de configuración del sistema&lt;br /&gt;&lt;br /&gt;2) Release managers, o personas encargadas de preparar y difundir las liberaciones de KMKey que se van llevando a cabo&lt;br /&gt;&lt;br /&gt;3) Programadores python con ganas de aprender zope y de añadir nuevas funcionalidades a KMKey.   Tenemos una lista de ideas interminable, pero faltan manos para implementarlas todas&lt;br /&gt;&lt;br /&gt;4) Empaquetadores Debian o RedHad.   También necesitamos gente capaz de generar un paquete .deb o .rpm para que KMKey pueda ser incluido como paquete disponible en las principales distribuciones de GNU/Linux&lt;br /&gt;&lt;br /&gt;Es una buena oportunidad para aprender a implantar KMKey's, aprender a programar en zope o simplemente colaborar a difundir software libre.   Si estás interesado envíanos un correo a la lista de correo &lt;a href="https://lists.forge.osor.eu/mailman/listinfo/kmkey-spanish"&gt;KMKey Spanish&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-2224212392114767206?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/2224212392114767206/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/quieres-colaborar-con-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2224212392114767206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2224212392114767206'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/quieres-colaborar-con-kmkey.html' title='Quieres colaborar con KMKey ?'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7960555627766665861</id><published>2009-12-03T09:04:00.005+01:00</published><updated>2009-12-03T09:25:09.509+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>Como instalarse KMKey Makhno</title><content type='html'>En primer lugar, dejar claro que KMKey &lt;span style="font-weight: bold;"&gt;requiere&lt;/span&gt; un servidor web con Zope 2.9.4, python 2.4 y sistema operativo GNU/Linux, preferentemente Debian. Aunque algunas partes pueden llegar a funcionar sobre Windows, &lt;span style="font-weight: bold;"&gt;no&lt;/span&gt; se soporta este sistema operativo de momento&lt;br /&gt;&lt;br /&gt;En las estaciones cliente, se soporta tanto Mozilla Firefox como IE &gt;= 6, sobre cualquier sistema operativo.&lt;br /&gt;&lt;br /&gt;Dicho esto, si alguien quiere instalarse KMKey en sus dependencias, tiene varias opciones:&lt;br /&gt;&lt;br /&gt;1) Usar la máquina virtual de virtualbox con kmkey preconfigurado. Esta es la opción que tarda más en desacargar, pero la más rápida de poner en práctica, y la única si usais Windows. Se trata de un disco para virtualbox con una Debian Lenny + KMKey instalado, y un site preconfigurado para gestión de calidad (aunque puede configurarse para otros menesteres, claro). Sólo se necesita crear la máquina, adjuntar el disco, y acceder por http://ip.de.maquina a vuestro KMKey. El password de root de la máquina es "demokm", y el usuario administrador de KMKey se llama "adminkmkey" con clave "demokm". Podeis descargar la máquina desde megaupload &lt;a href="http://www.megaupload.com/?d=EP9DOO7Y" target="_blank"&gt;http://www.megaupload.com/?d=EP9DOO7Y&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Descargar los fuentes de &lt;a href="http://forge.osor.eu/projects/kmkey/"&gt;OSOR&lt;/a&gt; Necesitais tener Linux y Zope2.9.4 A partir de ahí, descomprimir los fuentes en el directorio Products de Zope, y seguir las instrucciones de KMKeyCore/doc/INSTALL. El site que se necesita también lo podeis descargar del mismo sitio, viene preconfigurado con patrones de gestión de calidad, su usuario administrador es "adminkmkey", y su clave "demokm"&lt;br /&gt;&lt;br /&gt;3) Instalar subversion y acceder a descargar la última rama stable, ejecutando "svn co https://svn.forge.osor.eu/svn/kmkey/bundles/kmkey-stable" Los requisitos son los mismos que en el punto 2&lt;br /&gt;&lt;br /&gt;Espero que lo disfruteis&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Notas sobre problemas de red en la máquina virtual&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;La máquina virtual puede presentar algunos problemas de red si la versión de VirtualBox es antigua y no soporta "Bridge" en el interfaz de red.   Usad una versión de VirtualBox más moderna y configurad la interefaz de red de tipo "Bridge" para que funcione&lt;br /&gt;&lt;br /&gt;También nos han notificado algun problema con el adaptador de red en Debian.   Por lo visto al crear una máquina virtual nueva y adjuntar el disco, el MAC address de la targeta de red cambia, y eso a veces no le gusta a Debian que recuerda las MAC address a través de su sistema UDEV.   La solución es sencilla, entrar en la máquina virtual y ejecutar&lt;br /&gt;&lt;br /&gt;&lt;i&gt;rm /etc/udev/rules.d/70-persistent-net.rules&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Después de eso reiniciad la máquina virtual y ya aparecerá el interfaz eth0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Si tienes dudas o comentarios&lt;/b&gt; usa por favor la lista de correo &lt;a href="https://lists.forge.osor.eu/mailman/listinfo/kmkey-spanish"&gt;KMKey Spanish&lt;/a&gt;  Gracias&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7960555627766665861?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7960555627766665861/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/como-instalarse-kmkey-makhno.html#comment-form' title='50 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7960555627766665861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7960555627766665861'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/12/como-instalarse-kmkey-makhno.html' title='Como instalarse KMKey Makhno'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>50</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6103853876811415606</id><published>2009-11-12T07:31:00.000+01:00</published><updated>2009-11-12T07:33:40.607+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Filosofadas'/><title type='text'>Cómo distinguir el Software del Humo</title><content type='html'>Puede parecer una chorrada, pero el hecho es que cada vez estoy más convencido de la necesidad de crear un algoritmo capaz de determinar la cantidad de humo existente en un proyecto software.   De hecho, si lo pensamos bien, el software y el humo son ambos elementos inmateriales que, vistos desde la distancia, pueden resultar muy difíciles de distinguir.   Así que me he puesto manos a la obra.&lt;br /&gt;&lt;br /&gt;Como ingeniero informático, soy perfectamente capaz de escribir un análisis de datos técnicos que nadie entienda,  pero como aquí el objetivo es divisar el humo, le voy a dar a la fórmula un enfoque más mundano, para que la entiendan incluso los gerentes.   Ahí va la definición de factores:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Factor A:  ¿ Existe una web del producto, donde se describan claramente sus funcionalidades ? &lt;br /&gt;&lt;/span&gt;Puntúa de 0 a 10, donde 0 = no hay web, y 10 = la web existe y es cojonuda&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Factor B:  ¿ La web contiene capturas de pantalla donde puedas hacerte una idea rápida ?&lt;/span&gt;&lt;br /&gt;Puntúa de 0 a 10, donde 0 = no hay capturas, y 10 = las hay y molan&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Factor C:  ¿ Puedes conseguir fácilmente una demo del producto ?&lt;/span&gt;&lt;br /&gt;Puntúa de 0 a 10, donde 0 = no hay demo que valga, y 10 = la hay y es fácil obtenerla&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Factor D:  ¿ La demo es completa, con todas las funcionalidades, o es una versión capada donde no puedes hacer casi nada ?&lt;/span&gt;&lt;br /&gt;Puntúa de 0 a 10, donde 0 = te he dicho que no hay demo, y 10 = la hay y puedes hacer de todo en ella&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Factor E:   ¿ Te han enviado un tío con corbata y americana para convencerte ?&lt;/span&gt;&lt;br /&gt;Puntúa de 0 a 10, donde 0 = el tío era un pijo pedante que sólo soltaba siglas que no entendías, y 10 = era un tío competente que sabía lo que hablaba&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Factor F: ¿ Cómo se financió el desarrollo del producto ?&lt;/span&gt;&lt;br /&gt;0 = Pillaron una subvención (eso huele a humo más que una hoguera) &lt;br /&gt;5 = Con aportaciones externas de capital&lt;br /&gt;10 = Con recursos propios&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Factor G:  ¿ Existen referencias contrastables de implantaciones exitosas ?&lt;/span&gt;&lt;br /&gt;0 = Ni rastro de eso &lt;br /&gt;5 = Hay algunas &lt;br /&gt;10 = Con la gente que lo ha comprado, tiene que ser la ostia&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Factor H: Pide un presupuesto de implantación, que incluya despliegue y formación para ti y/o tus técnicos.  ¿ Cuanto te quieren clavar ?&lt;/span&gt;&lt;br /&gt;0 = Más de 50.000 euros (el producto no existe y te lo quieren hacer a medida)&lt;br /&gt;10 = Menos de 3000 euros (el producto existe y te van a cobrar los servicios)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Porcentaje de Humo = 100 – (A + B + C + D + E + F + G*2 + H*2)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como consumidor te recomiendo que apliques la fórmula a rajatabla cada vez que te plantees implantar un software, no vaya a ser que estés comprando humo :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Copyleft:  Eres libre de distribuir y reproducir el contenido de este artículo, total o parcialmente, por el medio que quieras, faltaría más.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6103853876811415606?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6103853876811415606/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/11/como-distinguir-el-software-del-humo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6103853876811415606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6103853876811415606'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/11/como-distinguir-el-software-del-humo.html' title='Cómo distinguir el Software del Humo'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-8809057084258810357</id><published>2009-11-04T12:35:00.020+01:00</published><updated>2009-12-31T12:22:07.790+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>Guía de Instalación de KMKey</title><content type='html'>Ya hemos explicado anteriormente &lt;a href="http://kmkey-es.blogspot.com/2009/06/como-instalarse-kmkey.html"&gt;cómo instalarse KMKey de forma rápida&lt;/a&gt;, pero vamos a explicar también como hacerlo paso a paso, de forma detallada.&lt;br /&gt;&lt;br /&gt;En primer lugar necesitamos un sistema &lt;span style="font-weight: bold;"&gt;GNU/Linux&lt;/span&gt; base, a ser posible Debian stable, aunque en Ubuntu funcionaremos sin inconveniente.    Si somos de Windows, entonces lo primero es bajarse una versión nuevecita de la &lt;a href="http://www.virtualbox.org/wiki/Downloads"&gt;VirtualBox&lt;/a&gt;  e instalarla.   Después nos descargaremos el CD 1 o Netinst de &lt;a href="http://www.debian.org/distrib/netinst"&gt;Debian&lt;/a&gt;, lo conectaremos al CDROM de la máquina física o virtual, y procederemos a instalar el sistema básico.   No son necesarios entornos gráficos ni paquetes adicionales, a posteriori instalaremos los imprescindibles.&lt;br /&gt;&lt;br /&gt;En cuanto al hardware, las recomendaciones para un servidor de producción de buen rendimiento son &lt;span style="font-weight: bold;"&gt;2 GB de RAM&lt;/span&gt;, 2 o 3 procesadores de velocidad &gt;= &lt;span style="font-weight: bold;"&gt;3 GHz&lt;/span&gt; y discos de buena calidad (a ser posible en RAID y de &lt;span style="font-weight: bold;"&gt;15.000 rpm&lt;/span&gt;).   Aunque obviamente se puede funcionar con menos, eso es lo recomendable para un KMKey que se vaya a usar con cierta intensidad.&lt;br /&gt;&lt;br /&gt;Una vez tenemos nuestro Linux, entramos con usuario root y empezamos.  Las instrucciones indicadas en esta guia son válidas para &lt;span style="font-weight: bold;"&gt;Debian Lenny&lt;/span&gt;, aunque pueden servir de ejemplo para la instalación en otras distribuciones:&lt;br /&gt;&lt;br /&gt;1) Verificar que en /etc/apt/sources.list disponemos de acceso a los repositorios "main", "contrib" y "non-free".   Por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;deb     http://ftp.us.debian.org/debian/     lenny main contrib non-free&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) Instalación de paquetes&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;apt-get update&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;apt-get -y install  make gcc libc6 libc6-dev gettext apache2 subversion python2.4 python2.4-dev python2.4-egenix-mxdatetime xlhtml ppthtml xsltproc wv catdoc poppler-utils python-lxml patch lynx icewm-lite xserver-xorg xfonts-75dpi xfonts-100dpi xbase-clients  exim4 tightvncserver xfonts-base sudo less ytnef gs-common msttcorefonts ntpdate&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;3)  Creamos usuario zope&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;adduser zope&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4)  Instalamos Zope 2.9.4&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;wget -c http://www.zope.org/Products/Zope/2.9.4/Zope-2.9.4-final.tgz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; tar -zxf Zope-2.9.4-final.tgz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd Zope-2.9.4-final&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;vi configure  y cambiar ACCEPTABLE="2.4.1 2.4.2" por ACCEPTABLE="2.4.1 2.4.2 2.4.3 2.4.4 24.5 2.4.6"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ./configure --prefix=/usr/local/zope294&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;make&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;make install&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;chown -R zope.zope /usr/local/zope294&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;ln -s /usr/local/zope294 /usr/local/zope&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5)  Creamos la instancia zope para KMKey&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;mkdir /usr/local/kmkey&lt;br /&gt;chown -R zope.zope /usr/local/kmkey&lt;br /&gt;su zope&lt;br /&gt;cd /usr/local/zope&lt;br /&gt;bin/mkzopeinstance.py -d /usr/local/kmkey/zope -u admin:tupassword&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6)  Si queremos usar RelStorage, esto es, ZODB implementado sobre una BBDD postgresql, procedemos a su instalación.   ATENCIÓN, este paso es opcional, y algunas de las instrucciones que se indican pueden NO ser recomendadas en servidores compartidos con otros servicios.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;apt-get install patch python-psycopg2 postgresql-client-8.3 postgresql-8.3&lt;br /&gt;/etc/init.d/postgresql-8.3 stop&lt;br /&gt;mv /var/lib/postgresql/8.3 /var/zope/postgresql_8.3&lt;br /&gt;ln -s /var/zope/postgresql_8.3 /var/lib/postgresql/8.3&lt;br /&gt;chown postgres.postgres /var/lib/postgresql/8.3&lt;br /&gt;dpkg-reconfigure locales (añadir es_ES@euro si no está)&lt;br /&gt;&lt;br /&gt;su postgres&lt;br /&gt;cd /var/lib/postgresql/8.3&lt;br /&gt;mv main main_old&lt;br /&gt;/usr/lib/postgresql/8.3/bin/initdb /var/lib/postgresql/8.3/main/ --locale=es_ES@euro --lc-ctype=es_ES@euro&lt;br /&gt;cp main_old/postmaster.opts main/&lt;br /&gt;/usr/lib/postgresql/8.3/bin/pg_resetxlog main&lt;br /&gt;cp main_old/*crt main&lt;br /&gt;cp main_old/*key main&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;/etc/init.d/postgresql-8.3 start&lt;br /&gt;cd&lt;br /&gt;wget http://pypi.python.org/packages/source/R/RelStorage/RelStorage-1.1.3.tar.gz&lt;br /&gt;tar xzf RelStorage-1.1.3.tar.gz&lt;br /&gt;cd RelStorage-1.1.3&lt;br /&gt;export PYTHONPATH="/usr/local/zope/lib/python/"&lt;br /&gt;python2.4 setup.py install --install-lib=/usr/local/zope/lib/python&lt;br /&gt;cd /usr/local/zope/lib/python/ZODB&lt;br /&gt;patch &lt; $HOME/RelStorage-1.1.3/poll-invalidation-1-zodb-3-7-1.patch  su postgres psql -c "CREATE USER zope WITH password 'tupassword' createdb" template1 exit  su zope createdb kmkey_zodb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Editamos  /usr/local/kmkey/zope/etc/zope.conf y cambiamos el zodb_db main por este otro:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;%import relstorage&lt;br /&gt;&amp;lt;zodb_db&amp;gt;&lt;br /&gt;mount-point /&lt;br /&gt;cache-size 15000&lt;br /&gt;&amp;lt;relstorage&amp;gt;&lt;br /&gt;&amp;lt;postgresql&amp;gt;&lt;br /&gt;dsn dbname='kmkey_zodb' user='zope' host='localhost' password='tupassword'&lt;br /&gt;&amp;lt;/postgresql&amp;gt;&lt;br /&gt;&amp;lt;/relstorage&amp;gt;&lt;br /&gt;&amp;lt;/zodb_db&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7) Añadir productos KMKey a Zope&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;su zope&lt;br /&gt;cd /usr/local/kmkey&lt;br /&gt;mkdir source&lt;br /&gt;cd source&lt;br /&gt;echo "Please accept our certificate"&lt;br /&gt;svn co https://svn.forge.osor.eu/svn/kmkey/bundles/kmkey-stable&lt;br /&gt;ln -s kmkey-stable current&lt;br /&gt;cd current&lt;br /&gt;python2.4 KMKeyCore/utils/generate_mo_files.py&lt;br /&gt;cp ZOORRA/zoorra-config.xml.default ZOORRA/zoorra-config.xml&lt;br /&gt;cp ZOORRA/server/zoorrad-config.xml.default ZOORRA/server/zoorrad-config.xml&lt;br /&gt;cd /usr/local/kmkey/zope/Products&lt;br /&gt;ln -s ../../source/current/* .&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;cd /usr/local/kmkey/zope/Products/TextIndexNG3/extension_modules&lt;br /&gt;python2.4 setup.py install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;8) Creamos un script de arranque y reiniciamos Zope&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;cat &amp;gt; /etc/init.d/kmkey &amp;lt;&amp;lt;EOF&lt;br /&gt;#!/bin/bash&lt;br /&gt;su -c "/usr/local/kmkey/zope/bin/zopectl \$@" zope&lt;br /&gt;EOF&lt;br /&gt;chmod a+x /etc/init.d/kmkey&lt;br /&gt;update-rc.d kmkey defaults 90 10&lt;br /&gt;/etc/init.d/kmkey restart&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;9)  Si queremos tener apache delante, entonces lo configuramos&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;cd /etc/apache2/mods-enabled&lt;br /&gt;ln -s ../mods-available/proxy_balancer.load .&lt;br /&gt;ln -s ../mods-available/proxy.conf .&lt;br /&gt;ln -s ../mods-available/proxy.load .&lt;br /&gt;ln -s ../mods-available/proxy_http.load .&lt;br /&gt;ln -s ../mods-available/deflate.* .&lt;br /&gt;&lt;br /&gt;cat &amp;gt; /etc/apache2/sites-available/kmkey &amp;lt;&amp;lt;EOF&lt;br /&gt;ServerAdmin tu@tudominio.com&lt;br /&gt;ErrorLog /var/log/apache2/error.log&lt;br /&gt;LogLevel warn&lt;br /&gt;CustomLog /var/log/apache2/access.log combined&lt;br /&gt;&amp;lt;proxy balancer://lb&amp;gt;&lt;br /&gt;BalancerMember http://127.0.0.1:8080&lt;br /&gt;      ProxySet lbmethod=byrequests&lt;br /&gt;      ProxySet stickysession=STICKY_ROUTE&lt;br /&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&amp;lt;/proxy&amp;gt;&lt;br /&gt;&lt;br /&gt;ProxyRequests Off&lt;br /&gt;ProxyVia On&lt;locationmatch&gt;&lt;br /&gt;&lt;/locationmatch&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&amp;lt;LocationMatch "^[^/]"&amp;gt;&lt;br /&gt; Deny from all&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&amp;lt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;/LocationMatch&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;locationmatch&gt;&lt;/locationmatch&gt;&lt;br /&gt;LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so&lt;br /&gt;RewriteEngine On&lt;br /&gt;RewriteRule ^/(.*) balancer://lb/VirtualHostBase/http//%{HTTP_HOST}:80/kmkey/VirtualHostRoot/\$1 [L,P]&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;cd /etc/apache2/sites-enabled&lt;br /&gt;rm 000-default&lt;br /&gt;ln -s ../sites-available/kmkey 000-default&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;10)  Finalmente, si queremos poder obtener listados en formatos MS-Office o PDF, necesitaremos configurar OpenOffice y ZOORRA:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;apt-get install python-uno openoffice.org-writer openoffice.org-calc&lt;br /&gt;ln -s /usr/local/kmkey/zope/Products/ZOORRA/server /usr/local/zoorra&lt;br /&gt;cd /usr/local/zoorra&lt;br /&gt;Ajustar  /usr/local/zoorra/zoorrad-config.xml&lt;br /&gt;ln -s /usr/local/zoorra/zoorrad.sh /etc/init.d&lt;br /&gt;update-rc.d zoorrad.sh defaults 95&lt;br /&gt;/etc/init.d/zoorrad.sh start&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;su zope&lt;br /&gt;cd /usr/local/kmkey/zope/Products/ZOORRA&lt;br /&gt;cat &amp;gt; zoorra-config.xml&lt;br /&gt;&amp;lt;oood-config&amp;gt;&amp;lt;openoffice_python_path value="/usr/bin/python2.5"&amp;gt;&amp;lt;python_uno_path value=""&amp;gt;&amp;lt;pdf_conversion_method value="ps2pdf"&amp;gt;&amp;lt;connection_string value="socket,host=localhost,port=2002"&amp;gt;&amp;lt;conversion_timeout value="120"&amp;gt;&lt;br /&gt;exit&lt;br /&gt;/etc/init.d/kmkey restart&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Y esto es todo amigos, a disfrutar de vuestro KMKey, y no os olvideis de activar unas copias de seguridad de datos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-8809057084258810357?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/8809057084258810357/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/11/guia-de-instalacion-de-kmkey.html#comment-form' title='20 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8809057084258810357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8809057084258810357'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/11/guia-de-instalacion-de-kmkey.html' title='Guía de Instalación de KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7995385494900594720</id><published>2009-10-16T17:00:00.009+02:00</published><updated>2009-10-16T18:01:28.874+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>La seguridad en KMKey Makhno</title><content type='html'>Hemos puesto especial empeño en hacer hacer de KMKey Makhno un producto con el máximo de garantías en cuanto a seguridad.   Para ello hemos llevado a cabo diversas mejoras, que junto con las ya existentes en versiones anteriores y las propias de la plataforma Zope, ofrecen el máximo de protección frente a posibles intrusiones.   Pasamos a detallar a continuación el funcionamiento de los distintos componentes implicados:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) Seguridad de los datos.&lt;/span&gt;   Para garantizar que cada objeto es visible únicamente para aquellos usuarios que dispongan de los permisos pertinentes, KMKey confía en la probada robustez de Zope (el servidor de aplicaciones) y su immejorable sistema de permisos y control de accesos sobre ZODB, que permiten granular al máximo la definición de los accesos.    &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;1.1) Errores de programación.&lt;/span&gt;  Zope verifica que cada acceso a cada objeto esté siendo llevado a cabo por un usuario con permisos, y eso lo hace de forma independiente al código de la aplicación, de manera que un eventual error de programación se traduce en una alerta de seguridad y una negación de acceso, nunca en un acceso a datos restringidos.  &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;1.2) Inyecciones SQL.&lt;/span&gt;  Puesto que la base de datos usada es ZODB (orientada a objetos, aunque a la postre todos los datos acaben guardados en SQL si así se configura), todo el código de la aplicación está libre de ataques por inyección de SQL, que son uno de los mayores peligros en aplicaciones web clásicas&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Seguridad en la autentificación.&lt;/span&gt;   Uno de los puntos vulnerables de cualquier aplicación web o cliente/servidor es aquel en que el usuario se autentifica, es decir, proporciona su usuario y su password, y éste viaja a través de la red.   Este proceso es susceptible de ser interceptado por terceros (por ejemplo mediante el uso de sniffers), cosa que les permitiría conocer el usuario y la clave.   En este sentido, KMKey proporciona dos niveles de seguridad:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;2.1) Conexión no encriptada, autentificación mediante MD5.&lt;/span&gt;   Para los casos en los que el servidor web no disponga de un certificado de seguridad que permita conexiones seguras HTTPS (posibilidad sólo disponible para servidores dedicados, y de elevado coste si el certificado se firma por una autoridad certificadora), KMKey evita enviar la clave plana a través de la web.   En lugar de eso, la propia página de entrada encripta el password con el algoritmo unidireccional MD5.   Ello implica que aunque esta clave encriptada fuera interceptada, sería imposible obtener la clave original (puesto que MD5 es un algoritmo de hash, de una sola dirección).    Dado que las claves también son almacenadas encriptadas mediante el mismo algoritmo, ello da la posibilidad de autentifcar al usuario de una forma mucho más segura y asegura que ningún "robo" de datos acabará con la obtención de las claves de usuario.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;2.2) Conexión encriptada con certificado de servidor.&lt;/span&gt;   En caso de que el servidor KMKey sea dedicado, existe la posibilidad de instalar un certificado de servidor que permita conexiones seguras HTTPS.   En este supuesto, la autentificación se lleva a cabo sobre un canal seguro, y es virtualmente imposible interceptar los datos con los medios actuales.   Como inconvenientes a esta opción está la alerta de seguridad que la mayoría de navegadores dan si el certificado de seguridad no se encuentra firmado por una autoridad certificadora, y el elevado coste de obtener esta firma.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) Seguridad de la sesión.&lt;/span&gt;   Una vez el usuario ha sido autentificado, para mantener la sesión  mientras se usa la aplicación, KMKey utiliza una cookie de sesión.   Sabiendo que este sistema puede también ser vulnerable a ataques mediante sniffers, se ha implementado un modelos de sesiones que ofrezca las máximas garantías.   Para ello se utiliza una cookie de sesión totalmente aleatoria, imposible de calcular, se hace caducar la sesión a los 20 minutos de inutilización, y se verifica en cada petición que la IP de origen coincide con la del usuario que ha abierto la sesión.   De esta forma, aunque una cookie de una sesión en curso fuera "robada", el atacante sería rechazado por la verificación de IP's de origen.   La única alternativa más segura que este sistema es el uso de certificados de cliente, pero son usados en muy pocas ocasiones por su complejidad de desplegado (generación de certificados para cada usuario e instalación en todos sus puestos de trabajo).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4) Seguridad de las comunicaciones.&lt;/span&gt;   Todos los datos que circulan a través de internet sin una conexión segura HTTPS de las descritas anteriormete son susceptibles de ser interceptados y leídos por personas expertas en tráfico de redes.   Por ello, si los datos contenidos en KMKey son de elevada confidencialidad, es recomendable el uso de alguna de las siguientes opciones:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;4.1) Certificado de seguridad en servidor y conexión HTTPS requerida.&lt;/span&gt;   Como se ha expuesto anteriormente, es una opción con algunos inconvenientes y reservada para servidores dedicados&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;4.2) VPN (Virtual Private Network).  &lt;/span&gt; De forma que la conexión al servidor se realice siempre sobre canales de comunicación seguros, en este caso a más bajo nivel que el certicado HTTPS.   A efectos prácticos, requiere que los usuarios se autentifiquen primeramente en la VPN y, una vez conectados a ésta, puedan acceder al servidor KMKey&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;4.3) Firewall de restricción de IP's&lt;/span&gt;.   Una opción con menos garantías que las anteriores, pero de implementación mucho más sencilla, es restringir el acceso al servidor a determinados rangos de IP's (para ello debemos conocer previamente los rangos de IP's que pueden tener nuestros usuarios potenciales).   Eso consigue evitar accesos de fuera de nuestras oficinas, por ejemplo, aunque también redunda en una limitación de la movilidad de los usuarios.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;4.4) Acceso LAN.&lt;/span&gt;   La opción más restrictiva consiste en limitar el acceso al servidor sólo a los usuarios de la red local, de forma que garantizamos que cualquier acceso proviene del interior de nuestras dependencias&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;5) Seguridad en el software base.&lt;/span&gt;   Todo lo anterior puede no servir de nada si nuestro sofware de base, léase el sistema operativo o el servidor de aplicaciones, tiene errores graves de seguridad que permitan un acceso directo al servidor.     Por ello recomendamos siempre instalar KMKey sobre servidores GNU/Linux con distribución Debian versión stable, usando apache 2 como servidor web y un firewall como iptables.   Con una correcta configuración, son una muy buena protección contra ataques de intrusos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Consejos prácticos&lt;/span&gt;:   La seguridad es algo a tener muy en cuenta en la implementación de cualquier herramienta web, y tanto los servidores web como las aplicaciones deben ofrecer las máximas garantías.   Ahora bien, debemos tener muy presente que el 90% de los ataques se realizan siempre sobre PC's de escritorio, que suelen ser infinitamente más vulnerables, y una vez conseguido el control del PC local, se actúa contra servidores que lo consideren "de confianza", o incluso se pueden encontrar documentos de usuarios y claves de acceso, o datos confidenciales en los escritorios de trabajo.   Por ello, una buena política de cambio de passwords, o una correcta supervisión de los puestos de trabajo pueden ser tanto o más importantes que la seguridad del servidor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7995385494900594720?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7995385494900594720/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/10/la-seguridad-en-kmkey-makhno.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7995385494900594720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7995385494900594720'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/10/la-seguridad-en-kmkey-makhno.html' title='La seguridad en KMKey Makhno'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1994300799108967965</id><published>2009-10-02T20:27:00.009+02:00</published><updated>2009-10-07T09:25:51.389+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>ZOORRA sin servidor gráfico</title><content type='html'>La actual implementación de ZOORRA requiere que en el servidor haya alguna sesión gráfica abierta. Esta restricción viene dada por OpenOffice, que aunque permitía un modo silencioso para ejecutar macros aún requería un entorno gráfico que a veces usaba para mostrar errores.&lt;br /&gt;&lt;br /&gt;Una solución habitual para resolver este problema era la instalación de un servidor gráfico "falso", algo así como redireccionar la salida gráfica a /dev/null. Esa solución, práctica porque no requiere la instalación de un entorno gráfico en un servidor que no lo necesita, también tiene el inconveniente que un error en la ejecución de OpenOffice resulta en una pantalla gráfica esperando una confirmación que jamás podrá recibir y sin atender a las posteriores peticiones.&lt;br /&gt;&lt;br /&gt;Las versiones más recientes de OpenOffice finalmente han ofrecido una solución definitiva a este problema largamente reivindicado, el modo "headless". En este modo de ejecución la aplicación ya no genera ningún mensaja gráfico y así deja de exigir la conexión a un servidor X.&lt;br /&gt;&lt;br /&gt;En Debian esta funcionalidad viene dada por el paquete openoffice.org-headless que por defecto no se instala con la suite ofimática, así que lo instalaremos explícitamente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# apt-get install openoffice.org-headless&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Una vez instalado deberíamos probar que efectivamente funciona correctamente sin ningún servidor X en ejecución. Los gestores de escritorio de KDE y Gnome dan la posibilidad de dar "acceso de consola" en la pantalla de inicio de sesión, dentro de un menú. Una vez nos encontremos con la consola de texto a pantalla completa, iniciamos una sesión normalmente y ejecutamos las siguientes órdenes:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ openoffice -headless&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ ps x | grep headless&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si todo va bien, deberíamos ver el proceso aún en ejecución. En este estado, la ejecución de OpenOffice resulta inaccesible porque no hemos especificado aún ningún puerto de conexión (de eso ya se ocupará ZOORRA), así que lo terminaremos con la orden kill y el número de proceso que aparece a la izquierda:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(salida hipotética de la orden ps)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;12345 tty1    Sl       0:00 /usr/lib/openoffice/program/...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;67890 tty1    S+       0:00 grep headless&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ kill 12345&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si no lo hacemos, las siguientes ejecuciones a OpenOffice parecerá que no harán nada porque, si ya existe una instancia en ejecución, la aplicación intenta aprovechar la misma. Esto también es importante para el usuario que ejecute ZOORRA, ya que no podrá usar OpenOffice en modo visual, así que es recomendable usar el mismo usuario del sistema con el que se ejecute el servidor Zope.&lt;br /&gt;&lt;br /&gt;Finalmente, para que la instalación actual de ZOORRA se aproveche del modo headless de OpenOffice habrá que modificar el fichero &lt;span style="font-family:courier new;"&gt;/usr/local/zoorra/zoorra.py&lt;/span&gt;. Hay que ir con algo de cuidado pues es un fichero algo largo. En él buscaremos la cadena &lt;span style="font-family:courier new;"&gt;"-invisible"&lt;/span&gt; y la cambiaremos por &lt;span style="font-family:courier new;"&gt;"-headless"&lt;/span&gt; respetando las comillas. &lt;br /&gt;&lt;br /&gt;En futuras versiones incluiremos como opción de configuración de ZOORRA la posibilidad de ejecución en modo "headless", de modo que no sea necesario modificar el fichero .py en ningún caso.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1994300799108967965?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1994300799108967965/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/10/zoorra-sin-servidor-grafico.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1994300799108967965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1994300799108967965'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/10/zoorra-sin-servidor-grafico.html' title='ZOORRA sin servidor gráfico'/><author><name>Eloi [entfe001]</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1304276723658267731</id><published>2009-10-02T10:00:00.004+02:00</published><updated>2009-10-02T10:19:01.261+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Avanzando hacia KMKey Makhno</title><content type='html'>Seguimos avanzando a buen ritmo hacia la próxima versión de KMKey, que se llamará &lt;span style="font-weight: bold;"&gt;Makhno&lt;/span&gt;, y que tiene prevista su liberación en noviembre.   Recordamos la lista de objetivos que propusimos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) Gestión de Equipo&lt;/span&gt;.   Es sin duda la funcionalidad menos trabajada, por lo que va a ser la primera en abordarse.   Además, en lo referente a permisos, requiere simplificación de la configuración de los usos más comunes&lt;br /&gt;&lt;br /&gt;  1.1) La asignación de perfiles a usuarios  no puede ser más engorrosa, hay que rehacerla completamente, y de paso incorporar la asignación de perfiles a grupos enteros&lt;br /&gt;&lt;br /&gt;  1.2) Se deben poder asignar fácilmente a un expediente contactos ya existentes en la aplicación, independientemente de que se tengan o no permisos de gestión del equipo&lt;br /&gt;&lt;br /&gt;  1.3) En la vista de grupos relacionados sería conveniente poder desplegar, en árbol, los contactos asociados a cada grupo&lt;br /&gt;&lt;br /&gt;  1.4) En la vista de consulta de grupos se necesitas nuevos criterios de filtro, en especial uno por el tipo de grupo (de permisos, cliente, proveedor, etc)&lt;br /&gt;&lt;br /&gt;  1.5) En la vista de consulta de contactos también se requieren nuevos criterios de filtro, en especial uno por su condición de usuario / recurso / simple contacto&lt;br /&gt;&lt;br /&gt;  1.6) La definición de perfiles a usar, perfiles a bloquear en expedientes, perfiles a bloquear en el acceso al patrón, etc, debe ajustarse al tipo de patrón (de proyecto, de píldora, de contacto etc)&lt;br /&gt;de forma que se simplifique especialmente el caso de definición de la seguridad en patrones de proyectos&lt;br /&gt;&lt;br /&gt;  1.7) Las recomendaciones de configuración de permisos de http://kmkey-es.blogspot.com/2009/05/configuracion-basica-de-permisos.html se han mostrado especialmente útiles cuando existen varios departamentos o líneas de negocio disjuntos.   Deberíamos ajustar las configuraciones por defecto del programa para permitir realizarlas fácilmente desde la interfície del propio KMKey (ahora requieren uso del ZMI)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Usabilidad&lt;/span&gt;.   Hacer más fácil ciertos usos del programa, en especial es vital la agilidad para filtrar lo que deseamos ver&lt;br /&gt;&lt;br /&gt;   2.1) Mejorar definición de filtros.   Es muy engorroso definir nuevos filtros y usarlos.&lt;br /&gt;&lt;br /&gt;   2.2) Filtro por defecto y último filtro.   Recordar para cada usuario el último filtro usado, y poder definir en cada instalación qué filtro se quiere aplicar por defecto&lt;br /&gt;&lt;br /&gt;   2.3) Filtros rápidos.   El objetivo es que introduciendo una palabra en el propio navtree, sin necesidad de cambiar de pantalla, obtengamos un filtro de expedientes rápido&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) Nuevas vistas para los datos ya existentes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   3.1) En Control Gantt Real versus Gantt Previsto&lt;br /&gt;&lt;br /&gt;   3.2) En Control comparación entre esfuerzo real y horas planificadas&lt;br /&gt;&lt;br /&gt;   3.3) En Planificación / Recursos tener una vista con los recursos en el eje Y para visualizar más facilmente su ocupación detallada&lt;br /&gt;&lt;br /&gt;   3.4) Pantalla de tres ejes para economia, con las tareas en eje Y, el calendario en el eje X, y el total económico en el cruce, y pudiendo ver el detalle haciendo click en cada punto&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4) Cerrar el ciclo.&lt;/span&gt;   Se trata de vincular de alguna forma la información de los ejes.   O sea, que la planificación temporal se vincule con la planificación de esfuerzo, y ésta a su vez con la&lt;br /&gt;planificación económica en horas valoradas.   Estas vinculaciones deben ser opcionales, y en todo caso dejar a criterio de configuración / usuario la propagación de cambios&lt;br /&gt;&lt;br /&gt;Además de todo eso, va a haber importantes mejoras de rendimiento, sobretodo en lo que a grabación de datos se refiere, y alguna que otra mejora de usabilidad adicional.   También vamos a liberar la versión adaptada a KMKey del ZSQLCatalog, que permite usar un catálogo basado en postgresql, y que es muy recomendable para instalaciones con gran volumen de datos.&lt;br /&gt;&lt;br /&gt;Pepararse, que llega la revolución de &lt;span style="font-weight: bold;"&gt;KMKey Makhno&lt;/span&gt; (quede claro que no es un coñac)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1304276723658267731?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1304276723658267731/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/10/avanzando-hacia-kmkey-makhno.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1304276723658267731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1304276723658267731'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/10/avanzando-hacia-kmkey-makhno.html' title='Avanzando hacia KMKey Makhno'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6042268139359602644</id><published>2009-09-30T18:54:00.004+02:00</published><updated>2009-09-30T19:04:30.617+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Previsiones económicas. Ciclo Oferta/Presupuesto &gt;&gt; Factura</title><content type='html'>Con &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;podemos llevar a cabo ofertas/presupuestos y así mismo emitir y registrar las facturas que se necesiten.&lt;br /&gt;Para ello debemos utilizar las prestaciones que se encuentran en el TAB "&lt;span style="font-weight: bold;"&gt;PLANIFICAR&lt;/span&gt;" opción "&lt;span style="font-weight: bold;"&gt;Añadir Previsión&lt;/span&gt;" y generar una nueva.&lt;br /&gt;Debemos tener seleccionado el nombre del proyecto en el árbol de navegación.&lt;br /&gt;Seleccionar el TAB PLANIFICAR y a continuación seleccionar la opción: "Añadir Previsión".&lt;br /&gt;Se identifica esta "Previsión" con un nombre y se deben rellenar algunos campos más.&lt;br /&gt;A continuación podemos ir rellenando "item" por "item" los conceptos de los que consta dicha "oferta".&lt;br /&gt;Para poder imputar correctamente los "items" deberá haber una correspondencia con los "&lt;span style="font-weight: bold;"&gt;Conceptos Contables&lt;/span&gt;" definidos en la aplicación.&lt;br /&gt;Una vez rellenada la última línia de elementos, guardamos la previsión.&lt;br /&gt;Nos aparecen una serie de botones con opciones como: "&lt;span style="font-weight: bold;"&gt;Modificar&lt;/span&gt;", para modificar cualquier entrada o dato recogido; "&lt;span style="font-weight: bold;"&gt;Copiar&lt;/span&gt;", para dejar esta previsión como estaba e ir añadiendo elementos en la copia, y más concretamente nos fijamos en el botón: "&lt;span style="font-weight: bold;"&gt;Generar Doc.&lt;/span&gt;"&lt;br /&gt;Elegimos esta opción.&lt;br /&gt;Para que funcione correctamente se debe haber vinculado  previamente al patrón deseado una "&lt;span style="font-weight: bold;"&gt;plantilla&lt;/span&gt;" de este documento, que formalmente será una "oferta" o un "presupuesto".&lt;br /&gt;Nombramos el documento, elegimos la plantilla y generamos el documento.&lt;br /&gt;&lt;br /&gt;Una vez generado este documento (Oferta/Presupuesto) será muy sencillo enviarlo al cliente mediante correo electrónico, opción, "&lt;span style="font-weight: bold;"&gt;Añadir e-mail&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;En caso que el cliente acepte este presupuesto/oferta debemos indicarlo a &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt;.&lt;br /&gt;Para ello  seleccionamos el proyecto en el árbol de navegación.&lt;br /&gt;Volvemos a seleccionar el TAB "&lt;span style="font-weight: bold;"&gt;PLANIFICAR&lt;/span&gt;" y su opción "&lt;span style="font-weight: bold;"&gt;Previsiones&lt;/span&gt;", seleccionamos la previsión que nos sirvió para emitir el "Presupuesto/Oferta" y seleccionamos el botón: "&lt;span style="font-weight: bold;"&gt;Generar Factura&lt;/span&gt;".&lt;br /&gt;Seleccionamos la tarea donde queremos almacenar la acción.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;automáticamente realiza la imputación de una "&lt;span style="font-weight: bold;"&gt;pill&lt;/span&gt;" del tipo "&lt;span style="font-weight: bold;"&gt;Venta/Ingreso&lt;/span&gt;" en dicha tarea.&lt;br /&gt;&lt;br /&gt;Seleccionamos esta "pill" y observamos la opción "&lt;span style="font-weight: bold;"&gt;Emitir Factura&lt;/span&gt;".&lt;br /&gt;Una vez seleccionada, &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;nos deja elegir la fecha de emisión de la misma, restringiendo la posibilidad de emitir una factura con fecha "anterior" a la última realizada.&lt;br /&gt;Seleccionamos la Fecha y se genera la Factura. Observaremos el botón "&lt;span style="font-weight: bold;"&gt;Generar Doc.&lt;/span&gt;"&lt;br /&gt;Seleccionamos dicha opción y debemos elegir un nombre para la misma, así como la &lt;span style="font-weight: bold;"&gt;plantilla de "Factura"&lt;/span&gt; asociada al patrón.&lt;br /&gt;La factura correlativa, correctamente numerada y valorada queda incorporada a nuestro proyecto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ejemplos del ciclo Previsión &gt;&gt; Oferta/Presupuesto &gt;&gt; Factura.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.kmkey.com/ayuda/project/oferta_factura.swf/show_video?height=768&amp;amp;width=1024"&gt;Ver video:&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6042268139359602644?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6042268139359602644/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/09/previsiones-economicas-ciclo_30.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6042268139359602644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6042268139359602644'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/09/previsiones-economicas-ciclo_30.html' title='Previsiones económicas. Ciclo Oferta/Presupuesto &gt;&gt; Factura'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3361458428775394349</id><published>2009-09-28T12:18:00.000+02:00</published><updated>2009-09-28T12:19:51.622+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Posibilidades multiempresa de KMKey</title><content type='html'>En KMKey la unidad de trabajo es el proyecto (o expediente).    En cada proyecto se definen los participantes con sus perfiles correspondientes, determinando qué pueden o no hacer en cada uno de ellos.   A partir de ahí, cada usuario ve únicamente aquellos proyectos en que ha sido asignado.   Además de eso, existe una información común, visible por defecto a todos los usuarios, que es la agenda de contactos y grupos / empresas, con los datos de contacto, teléfonos, e-mails, etc.   Finalmente, existen los datos visibles únicamente a los administradores, como la configuración de patrones de trabajo.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;A partir de ahí, ¿ qué posibilidades existen para la implantación de KMKey en un grupo empresarial, donde existe un grupo raiz que se comunica con distintas empresas ?   Bien, existen 3 enfoques posibles, cada uno con sus ventajas e inconvenientes:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;b&gt;KMKey básico&lt;/b&gt;.    Se trata simplemente de aceptar el funcionamiento básico descrito  anteriormente.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;i&gt;Ventajas&lt;/i&gt;:   No  tiene coste adicional.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;i&gt;Inconvenientes:&lt;/i&gt;   Las distintas empresas del grupo comparten su información de  contactos, y los administradores lo son de todo el sistema, tanto a  nivel de usuarios y permisos como de patrones de trabajo, no hay  posibilidad de tener un administrador para cada empresa.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;b&gt;Control de grupos  por permisos&lt;/b&gt;.   Se basa en configurar el acceso a los contactos  y empresas de forma que cada empresa vea únicamente sus contactos.   Se puede llegar a conseguir que los usuarios del grupo vean los  contactos de todas las empresas si así se desea.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;i&gt;Ventajas&lt;/i&gt;: Permite  segmentar la agenda de contactos sin necesidad de programación.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;i&gt;Inconvenientes&lt;/i&gt;:   Requiere una configuración de permisos laboriosa, y no resuelve el  problema de los administradores descrito en el punto anterior.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;b&gt;KMKey jerárquico&lt;/b&gt;.   Consiste en estructurar el KMKey en un árbol de contenedores, de  forma que los usuarios del grupo estén un nivel por encima de los  usuarios de cada una de las empresas&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;i&gt;Ventajas:&lt;/i&gt;  La  agenda de contactos queda segmentada sin necesidad de configuración.    Puede haber administradores por empresa, que puedan dar de alta  usuarios y ajustar patrones  de trabajo sólo en su empresa.   Así  mismo, puede haber administradores del grupo que tengan acceso a  administrar todo el conjunto.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;i&gt;Inconvenientes&lt;/i&gt;:   Requiere un desarrollo específico para ajustar el funcionamiento  estandard&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3361458428775394349?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3361458428775394349/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/09/posibilidades-multiempresa-de-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3361458428775394349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3361458428775394349'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/09/posibilidades-multiempresa-de-kmkey.html' title='Posibilidades multiempresa de KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-634591830762494572</id><published>2009-09-18T09:47:00.002+02:00</published><updated>2009-09-18T09:56:10.415+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Permisos de acceso a opciones de menú</title><content type='html'>Con cierta frecuencia se da el caso de que los permisos predefinidos para acceder a una opción de menú de KMKey no se ajusten a las necesidades del cliente.   Por ejemplo, la opción de gestionar previsiones económicas está protegida por el mismo permiso que la opción de editar la planificación de un proyecto, porque en la mayoría de casos la misma persona planifica el proyecto y define su previsión económica.   Pero cuando esto no sea así, también temenos la opción de cambiarlo mediante configuración.&lt;br /&gt;&lt;br /&gt;Para ello debemos entrar en el ZMI de nuestro site (url/manage), ir a el objeto portal_actions, y buscar la opción de menú que deseamos cambiar.   Siguiendo el ejemplo anterior, sería la que se llama "Economics Plan".   Imaginemos que queremos restringir está opción a directores comerciales, dirección, financieros y responsables de área.   Tendríamos que editar al "Condition Expression" y añadir una expresión que nos diga si el usuario actual tiene alguno de esos perfiles en el contexto en el que estamos.   Eso se puede expresar de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;and member.getUser() and len([role for role in member.getUser().getRolesInContext(unit) if role in ['dir-comercial', 'direccion', 'financiero', 'resp-area']])&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O sea, el usuario está autentificado, y alguno de sus perfiles en el contexto actual coincide con los permitidos.  &lt;br /&gt;&lt;br /&gt;Finalmente, y no por ello menos importante, debemos marcar la opción de "&lt;span style="font-weight: bold;"&gt;Block import ?&lt;/span&gt;", cosa que nos garantiza que nuestra expresión personalizada no será substituida por futuras actualizaciones del programa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-634591830762494572?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/634591830762494572/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/09/permisos-de-acceso-opciones-de-menu.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/634591830762494572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/634591830762494572'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/09/permisos-de-acceso-opciones-de-menu.html' title='Permisos de acceso a opciones de menú'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3272252065818240111</id><published>2009-09-01T09:57:00.006+02:00</published><updated>2009-09-02T11:35:45.622+02:00</updated><title type='text'>Demos KMKey disponibles. Condiciones de uso</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Demos generales para probar funcionamiento y usabilidad&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Earcon SL&lt;/span&gt; pone a disposición de quien lo desee acceso al software de &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;en sus tres modalidades (Project, Quality y Help desk) con el fin de poder simular su uso y conocer la herramienta.&lt;br /&gt;Para ello se proporciona un url (dirección web) y algunos usuarios con funcionalidades limitadas. La demo contiene algunos ejemplos con los que trabajar y la posibilidad de generar expedientes nuevos, introducir y consultar información etc..&lt;br /&gt;Estas demos están siendo utilizadas por varios usuarios al mismo tiempo. La información introducida puede ser alterada por otro usuario o podemos encotrar temas no introducidos por nosotros. A pesar de que una misma instalación de &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;puede contener las tres funcionalidades (Project, Quality y Help desk) se proveen "url's" de demo diferentes para facilitar la comprensión de los procesos relativos a cada caso.&lt;br /&gt;Este tipo de demos tienen el siguiente aspecto:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;http://project.kmkey.com/empresa/&lt;br /&gt;http://quality.kmkey.com/empresa/&lt;br /&gt;http://helpdesk.kmkey.com/empresa/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Donde "Empresa" se sustituye por un nombre único cuando se facilita la demo&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Demos de uso exclusivo:&lt;/span&gt;&lt;br /&gt;Una vez comprobado el uso mediante una demo general, el usuario interesado puede solicitar una demo para uso exclusivo. Aunque el contenido es el mismo que en el caso anterior, se restringe el acceso solamente a la persona que lo solicita. En este caso toda la información contenida solo es vista, introducida o revisada por el interesado al que se concede la demo. También se dan privilegios de administrador para que pueda acceder a la parte de configuración.&lt;br /&gt;Este tipo de demos tienen el siguiente aspecto:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;http://demoX.kmkey.com/empresa/&lt;/span&gt;&lt;br /&gt;Donde X es un número del 1 al 5 dependiendo del servidor donde sea alojada y "Empresa" se sustituye por un nombre único cuando se le facilita la demo&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Condiciones de uso:&lt;/span&gt;&lt;br /&gt;-El objetivo de las demos es que el solicitante pueda probar &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;simulando casos reales de uso. En ningún momento está pensado para llevar casos reales.&lt;br /&gt;-Toda la información que se introduzca no tienen ninguna garantía de confidencialidad o de salvaguarda y será limpiada periódicamente. Deben utilizarse ejemplos ficticios.&lt;br /&gt;-El periodo de uso de la demostración es de un máximo de 30 dias. Podrá ser ampliado en caso de petición expresa.&lt;br /&gt;-&lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;no se hace responsable de los datos introducidos, ya que se supone que son irrelevantes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3272252065818240111?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3272252065818240111/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/09/demos-kmkey-disponibles-condiciones-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3272252065818240111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3272252065818240111'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/09/demos-kmkey-disponibles-condiciones-de.html' title='Demos KMKey disponibles. Condiciones de uso'/><author><name>Joan</name><uri>http://www.blogger.com/profile/00686177384014933502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qa9B0X0vPuk/SgQBsveUnVI/AAAAAAAAA_Y/w35jh5ANkXQ/S220/snu'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-2051240276024841489</id><published>2009-08-26T19:00:00.007+02:00</published><updated>2009-09-30T17:42:14.474+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Recursos y Esfuerzo. Planificación, Gestión y Control.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Planificación&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt;, la cantidad de esfuerzo prevista para una tarea se puede dejar fijada en la programación del patrón con el que se ejecute el proyecto.&lt;br /&gt;La instrucción "Planned hours" en el código XML del patrón, es uno de los elementos que pueden programarse para cada tarea del proyecto. De esta manera ya no es necesario tener que realizar esa previsión antes de cada proyecto y la cantidad de esfuerzo previsto queda fijada para cada tarea del proyecto.&lt;br /&gt;&lt;br /&gt;Es decir, antes de iniciarse los trabajos de la tarea, puede existir una "previsión" del esfuerzo que será necesario para llevarla a cabo. Una vez creado el proyecto, siempre que necesitemos modificar dicha cantidad de esfuerzo, lo podremos realizar mediante el TAB PLANIFICAR &amp;gt; Editar Planificación, o bien, seleccionar la tarea y en el mismo TAB usar la opción "Modificar".&lt;br /&gt;&lt;br /&gt;Una vez iniciada la tarea, esas horas de esfuerzo previsto se deberían distribuir para los recursos y duración empleadas en su desarrollo. Este procedimiento consiste en "asignar" partes de ese esfuerzo previsto (horas) a uno o varios recursos, hasta completar el total de horas previstas en el patrón para dicha tarea. En &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt;, está operación se efectua a través del TAB PLANIFICAR &amp;gt; Recursos&lt;br /&gt;&lt;br /&gt;La asignación de recursos se puede efectuar para:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; día a día,&lt;/li&gt;&lt;li&gt;para todos los días de una semana,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;o bien, de forma periódica, para un determinado período de tiempo.&lt;/li&gt;&lt;/ul&gt;En cada tarea, la suma de las horas de esfuerzo asignadas a uno o varios recursos deberían ser la misma que las horas totales previstas y, a partir de ahi, registrar las desviaciones respecto a las imputaciones que realice cada recurso personalmente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gestión&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Una vez efectuadas las asignaciones de esfuerzo, los distintos recursos deberán realizar las imputaciones de horas dedicadas al desarrollo de cada tarea, a medida que estas se vayan produciendo.&lt;br /&gt;&lt;br /&gt;Este procedimiento se lleva a cabo mediante el TAB GESTIÓN &amp;gt; AÑADIR HORAS y con él, cada recurso puede imputar a una tarea en concreto el esfuerzo desempeñado.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;permite realizar imputaciones de esfuerzo, incluso en aquellas tareas, en las que por cualquier motivo, no se hayan efectuado "asignaciones" en concreto.&lt;br /&gt;&lt;br /&gt;Es decir, es posible que un recurso que haya empleado cierta cantidad de esfuerzo en el desarrollo de una tarea, pueda realizar una imputación de esfuerzo a la misma, aunque no exista una asignación en concreto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Control&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;proporciona distintas visualizaciones en el TAB CONTROL especificamente diseñadas para tener a la vista los datos de esfuerzo, y poder discriminarlos por recurso, período, tarea y proyecto o grupo de los mismos.&lt;br /&gt;&lt;br /&gt;El uso de los filtros de proyecto (navtree) y de las opciones de visualización propias a cada opción permitirá la supervisión del esfuerzo empleado y el registro de las desviaciones, positivas o negativas, sobre la planificación inicial efectuada.&lt;br /&gt;&lt;br /&gt;Distintas visualizaciones como son ESFUERZO, ECONOMÍA y SEMÁFOROS, permitirán obtener informaciones pormenorizadas sobre la distribución del esfuerzo y sus desviaciones.&lt;br /&gt;Así mismo, en el TAB CONTROL, encontramos la opción de "Informes".&lt;br /&gt;&lt;br /&gt;En este apartado encontraremos aquellos informes generables que el usuario de &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;haya querido definir para obtener resúmenes y listados con todo tipo de detalles sobre la actividad desarrollada en cada tipo de proyecto o conjunto de los mismos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ejemplos de Planificación y Asignación de Esfuerzo a Recursos.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.kmkey.com/ayuda/project/esfuerzo_recursos.swf/show_video?height=768&amp;width=1024"&gt;Ver video:&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-2051240276024841489?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/2051240276024841489/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/08/recursos-y-esfuerzo-planificacion.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2051240276024841489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2051240276024841489'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/08/recursos-y-esfuerzo-planificacion.html' title='Recursos y Esfuerzo. Planificación, Gestión y Control.'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-557602888908155646</id><published>2009-07-27T18:44:00.009+02:00</published><updated>2009-07-27T21:05:11.117+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Vínculos e Imágenes</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;b&gt;INSERTAR VINCULO&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;S&lt;/b&gt;&lt;/span&gt; &lt;p style="margin-bottom: 0cm;"&gt;En &lt;b&gt;KMKey&lt;/b&gt; siempre que introducimos un documento o una nota, nos aparece una barra de controles de edición, situada en la parte inferior del campo “&lt;span style="font-weight: bold;"&gt;Descripción&lt;/span&gt;”.&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2LmDVLhFP24/Sm3ceVfg_dI/AAAAAAAAABY/JCbA88ZQ3GQ/s1600-h/barra.png"&gt;&lt;img style="cursor: pointer; width: 596px; height: 40px;" src="http://1.bp.blogspot.com/_2LmDVLhFP24/Sm3ceVfg_dI/AAAAAAAAABY/JCbA88ZQ3GQ/s400/barra.png" alt="" id="BLOGGER_PHOTO_ID_5363185144991645138" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Para Insertar un &lt;span style="font-weight: bold;"&gt;Vínculo&lt;/span&gt;, seleccionaremos, escribiremos , o copiaremos el texto que queramos hacer de él un vínculo. A continuación seleccionamos el icono &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2LmDVLhFP24/Sm3cu5rr7sI/AAAAAAAAABg/7Ferm2tuQB4/s1600-h/icono.png"&gt;&lt;img style="cursor: pointer; width: 23px; height: 23px;" src="http://2.bp.blogspot.com/_2LmDVLhFP24/Sm3cu5rr7sI/AAAAAAAAABg/7Ferm2tuQB4/s400/icono.png" alt="" id="BLOGGER_PHOTO_ID_5363185429584277186" border="0" /&gt;&lt;/a&gt;: &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Y nos aparece una pantalla como la siguiente:&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2LmDVLhFP24/Sm3dAtDjsfI/AAAAAAAAABw/hw0qnNeZiLs/s1600-h/vinculo+1.png"&gt;&lt;img style="cursor: pointer; width: 617px; height: 414px;" src="http://1.bp.blogspot.com/_2LmDVLhFP24/Sm3dAtDjsfI/AAAAAAAAABw/hw0qnNeZiLs/s400/vinculo+1.png" alt="" id="BLOGGER_PHOTO_ID_5363185735432385010" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;b&gt;TIPO DE VÍNCULO&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;El tipo de vínculo puede ser una URL, una referencia a la misma página o un e-mail. Estas dos ultimas opciones no se utilizan al tener &lt;b&gt;KMKey&lt;/b&gt; utilidades propias para esos servicios.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Así mismo podríamos elegir el protocolo entre: &lt;span style="font-style: italic;"&gt;http, https, ftp, news, u otros...&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;&lt;b&gt;DESTINO&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;En la pestaña “&lt;span style="font-weight: bold;"&gt;Destino&lt;/span&gt;” podemos elegir si queremos que nos abra el vínculo en una ventana nueva y sus parámetros:&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2LmDVLhFP24/Sm3dpd0yxTI/AAAAAAAAAB4/W-g0ks-cKbI/s1600-h/vinculo+2.png"&gt;&lt;img style="cursor: pointer; width: 622px; height: 464px;" src="http://3.bp.blogspot.com/_2LmDVLhFP24/Sm3dpd0yxTI/AAAAAAAAAB4/W-g0ks-cKbI/s400/vinculo+2.png" alt="" id="BLOGGER_PHOTO_ID_5363186435718563122" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Podremos seleccionar: Ventana emergente, Nueva ventana, Ventana Primaria, Misma Ventana, Ventana Padre, etc...&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;b&gt;INSERTAR IMÁGENES&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Para insertar una &lt;span style="font-weight: bold;"&gt;imagen &lt;/span&gt;en un documento o nota &lt;span style="font-weight: bold;"&gt;en primer lugar&lt;/span&gt; tendremos que “subir” la foto como un “documento” (&lt;span style="font-weight: bold;"&gt;Añadir Documento&lt;/span&gt;) y situarla en la tarea que deseamos. Podemos tener una tarea que sean: Fotos.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Una vez subida la foto, la seleccionamos y copiamos el “camino” o descriptor que aparece en la linea del navegador. Lo pegamos en el bloc de notas. A continuación seleccionamos el icono &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2LmDVLhFP24/Sm3eStac74I/AAAAAAAAACA/QX6H3a4SHb0/s1600-h/icono2.png"&gt;&lt;img style="cursor: pointer; width: 21px; height: 21px;" src="http://2.bp.blogspot.com/_2LmDVLhFP24/Sm3eStac74I/AAAAAAAAACA/QX6H3a4SHb0/s400/icono2.png" alt="" id="BLOGGER_PHOTO_ID_5363187144277684098" border="0" /&gt;&lt;/a&gt;:&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Nos aparecerá la siguiente pantalla:&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2LmDVLhFP24/Sm3edogm32I/AAAAAAAAACI/NG6AsMZ0jf4/s1600-h/image+1.png"&gt;&lt;img style="cursor: pointer; width: 625px; height: 556px;" src="http://4.bp.blogspot.com/_2LmDVLhFP24/Sm3edogm32I/AAAAAAAAACI/NG6AsMZ0jf4/s400/image+1.png" alt="" id="BLOGGER_PHOTO_ID_5363187331939884898" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;En el campo URL, pegamos el “camino” o descriptor de ruta de la imagen que habíamos subido.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Podemos hacer que la foto se acomode a unas medidas o fijar otras.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Si queremos hacer de la imagen un vínculo seleccionamos la pestaña “&lt;span style="font-weight: bold;"&gt;Vinculo&lt;/span&gt;” y nos aparece la siguiente pantalla de datos:&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2LmDVLhFP24/Sm3e6s9-PcI/AAAAAAAAACQ/UatniRwUs24/s1600-h/image+2.png"&gt;&lt;img style="cursor: pointer; width: 619px; height: 550px;" src="http://4.bp.blogspot.com/_2LmDVLhFP24/Sm3e6s9-PcI/AAAAAAAAACQ/UatniRwUs24/s400/image+2.png" alt="" id="BLOGGER_PHOTO_ID_5363187831352999362" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Rellenamos el campo URL, con la misma que ya teníamos y seleccionamos el tipo de destino que queremos (Ventana nueva, emergente, etc..).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-557602888908155646?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/557602888908155646/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/vinculos-e-imagenes.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/557602888908155646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/557602888908155646'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/vinculos-e-imagenes.html' title='Vínculos e Imágenes'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_2LmDVLhFP24/Sm3ceVfg_dI/AAAAAAAAABY/JCbA88ZQ3GQ/s72-c/barra.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1625005715056244655</id><published>2009-07-24T12:00:00.004+02:00</published><updated>2009-07-24T12:19:41.411+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Filosofadas'/><title type='text'>Software libre. GNU/Linux. La filosofía detrás de KMKey</title><content type='html'>&lt;span style="font-weight:bold;"&gt;KMKey&lt;/span&gt; como gestor del conocimiento tiene una dilatada historia. Su primera versión estuvo concebida a finales de los 90 del siglo pasado siguiendo los cauces habituales por la época del software privativo. Es decir, no se entregaban las fuentes al cliente, se cuotaba por usuarios, el desarrollo no estaba abierto a terceros etc..&lt;br /&gt;En resumen, lo habitual en la época y la manera "tradicional" de entender el negocio  TIC.&lt;br /&gt;Hace mas de seis años nos planteamos como empresa la posibilidad de dar un cambio radical en las reglas de juego y trabajar con &lt;span style="font-weight:bold;"&gt;software libre&lt;/span&gt;. El cambio, no solo era debido a las herramientas que utilizamos para desarrollar &lt;span style="font-weight:bold;"&gt;KMKey&lt;/span&gt;, sino a una nueva filosofía en la manera de entender el negocio, el trabajo y por ende la vida misma.&lt;br /&gt;Antes de decidirnos, bebimos en las fuentes de esta filosofía y tras hacer nuestros sus objetivos y valores las aplicamos en cada una de las areas del proyecto KMKey. &lt;br /&gt;Para aquellos que quieran profundizar en estas fuentes, que mejor que hacerlo bebiendo directamente de ellas:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;GNU Project:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.gnu.org/"&gt;http://www.gnu.org/&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Conferencia de Richard Stallman en el IES Puig i Castellar:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=9055201737702580581"&gt;Ver video:&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;La pastilla roja: libro de referencia en el software libre en hispania.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.lapastillaroja.net/"&gt;http://www.lapastillaroja.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1625005715056244655?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1625005715056244655/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/software-libre-gnulinux-la-filosofia.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1625005715056244655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1625005715056244655'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/software-libre-gnulinux-la-filosofia.html' title='Software libre. GNU/Linux. La filosofía detrás de KMKey'/><author><name>Joan</name><uri>http://www.blogger.com/profile/00686177384014933502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qa9B0X0vPuk/SgQBsveUnVI/AAAAAAAAA_Y/w35jh5ANkXQ/S220/snu'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-2166129646602353267</id><published>2009-07-23T18:40:00.004+02:00</published><updated>2009-07-23T18:45:55.330+02:00</updated><title type='text'>Añadir Contactos y Usuarios. Organización en grupos.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;CONTACTOS&lt;/span&gt;&lt;br /&gt;En &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;podremos mantener la gestión de nuestros contactos mediante el uso de la opción:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;TAB EQUIPO &gt; Añadir Contacto.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Los datos que se recogen en ese momento pueden definirse y/o adaptarse a las necesidades de cada organización y uso de &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt;.&lt;br /&gt;En general incluirán de los campos más habituales para su definición. Como son:&lt;br /&gt;Nombre y apellidos, sus direcciones y datos más habituales de contacto, teléfonos, direcciones e-mail, y otras.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GRUPOS&lt;/span&gt;&lt;br /&gt;Análogamente a la definición de contactos, en &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;podremos definir cuantos grupos se necesiten para diferenciarlas de otros mediante el uso de la opción:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;TAB EQUIPO &gt; Añadir Grupo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En la definición de estos grupos podremos incluir:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Clientes,&lt;/li&gt;&lt;li&gt;Proveedores.&lt;/li&gt;&lt;li&gt;Departamentos.&lt;/li&gt;&lt;li&gt;Empresas (en los casos de uso en grupos multiempresa)&lt;/li&gt;&lt;li&gt;Colaboradores Externos.&lt;/li&gt;&lt;li&gt;Auditores.&lt;/li&gt;&lt;li&gt;Jefes de Departamento.&lt;/li&gt;&lt;li&gt;Comités.&lt;/li&gt;&lt;li&gt;Grupos de trabajo, etc.&lt;/li&gt;&lt;/ul&gt;Así como tambien algunos &lt;span style="font-weight: bold; font-style: italic;"&gt;grupos especiales&lt;/span&gt; como los &lt;span style="font-weight: bold;"&gt;grupos de recursos o de permisos&lt;/span&gt;, propios de &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Por supuesto para la definición de cada uno de esos grupos el usuario podrá escoger los campos que necesite según la actividad de cada uno. Una vez creados se tratará ir nutriendo de integrantes (contactos o usuarios) en su composición.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;USUARIOS&lt;/span&gt;&lt;br /&gt;En la misma pantalla de definición de datos de contacto, a partir de un punto de la misma empiezan lo que son propiamente la definición de datos de usuario.&lt;br /&gt;&lt;br /&gt;Básicamente un contacto se convertirá en un usuario desde el momento en el que el administrador del sistema le otorgue un "nombre de usuario", un "password" y unos permisos mínimos.&lt;br /&gt;&lt;br /&gt;Así pues podremos tener contactos que no son usuarios, pero todos los usuarios deberán ser contactos.&lt;br /&gt;&lt;br /&gt;Una vez que damos de alta a un contaco como usuario deberemos rellenar (si así lo disponemos) otros datos que se corresponden a su &lt;span style="font-weight: bold;"&gt;posible asignación como recurso&lt;/span&gt; o no.&lt;br /&gt;&lt;br /&gt;Estos datos especiales pueden incluir, entre otros:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Coste económico por hora (Vinculado a los conceptos contables definidos).&lt;/li&gt;&lt;li&gt;Firmas propias personalizadas de e-mail.&lt;/li&gt;&lt;li&gt;Tipo de notificaciones que recibirá de &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;(Internas, e-mail, SMS).&lt;/li&gt;&lt;li&gt;Idioma del Interface de &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;(Disponible Castellano, Catalán, Inglés y Euskera)&lt;/li&gt;&lt;li&gt;Su pertenencia o no a grupos y/o a grupos de permisos ya definidos.&lt;/li&gt;&lt;li&gt;Su rol básico (Miembro, Manager)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Una vez definido como usuario también podremos realizar asignaciones de roles o perfiles personalizadas a un proyecto o expediente concreto, en función de los patrones en uso.&lt;br /&gt;&lt;br /&gt;O asignar grupos enteros a expedientes en concreto, facilitando así la labor de su gestión de accesos y permisos, mediante el uso de la opción:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;TAB EQUIPO &gt; Gestionar Contactos o Gestionar Grupos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hay que señalar que el alcance de los permisos y perfiles puede abarcar desde:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;el acceso general a la aplicación,&lt;/li&gt;&lt;li&gt;el acceso a patrones y expedientes generados con el mismo en concreto, o&lt;/li&gt;&lt;li&gt;el acceso a expedientes, agrupaciones o tareas de un proyecto o expediente en particular.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-2166129646602353267?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/2166129646602353267/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/anadir-contactos-y-usuarios.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2166129646602353267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2166129646602353267'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/anadir-contactos-y-usuarios.html' title='Añadir Contactos y Usuarios. Organización en grupos.'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-723099102523091655</id><published>2009-07-23T12:49:00.006+02:00</published><updated>2009-07-23T17:57:51.559+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Gestión de Nombres de Contactos/Usuarios y uso del campo: Iniciales.</title><content type='html'>Cuando damos de alta un &lt;span style="font-weight: bold;"&gt;contacto&lt;/span&gt; que a su vez se convertirá en un &lt;span style="font-weight: bold;"&gt;usuario&lt;/span&gt; (nombre de usuario + password), rellenamos los campos pertenecientes a su nombre y apellidos.&lt;br /&gt;&lt;br /&gt;Si este usuario a su vez es susceptible de incorporarse a un &lt;span style="font-weight: bold;"&gt;grupo de recursos&lt;/span&gt;, podemos tener algunos problemas de visualización en aquellos casos donde hayamos definido al contacto con su nombre y apellidos completos.&lt;br /&gt;&lt;br /&gt;Ejemplos como &lt;span style="color: rgb(0, 153, 0);"&gt;José Ramon&lt;/span&gt;, en el campo "&lt;span style="font-weight: bold;"&gt;nombre&lt;/span&gt;"; y &lt;span style="color: rgb(0, 153, 0);"&gt;Gonzalez de la Fresneda&lt;/span&gt; en el campo "&lt;span style="font-weight: bold;"&gt;apellido&lt;/span&gt;", provocará que en algunas representaciones o en algunas columnas de ciertas pantallas en &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt;, su nombre aparezca incompleto, o truncado, produciendo un cierto desorden en la información mostrada.&lt;br /&gt;&lt;br /&gt;Para evitar largas descripciones en las listas de recursos y en otras visualizaciones podemos rellenar a nuestra voluntad, el campo &lt;span style="font-weight: bold;"&gt;INICIALES&lt;/span&gt;, en la pantalla de datos del contacto.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TAB EQUIPO &gt; Añadir o Gestionar Contactos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En &lt;span style="font-weight: bold;"&gt;iniciales &lt;/span&gt;podemos incorporar "&lt;span style="font-style: italic;"&gt;estrictamente&lt;/span&gt;" las inciales, en el ejemplo: &lt;span style="font-weight: bold;"&gt;JRGdF&lt;/span&gt;, pero cuando las listas de recursos sólo muestran acrónimos o sólo iniciales, se convierten en algo dificil de recordar y de aplicar correctamente.&lt;br /&gt;&lt;br /&gt;Sin embargo nada nos impide introducir un &lt;span style="font-weight: bold;"&gt;corto descriptor&lt;/span&gt; del mismo usuario como José Ramon, o JR Gonzalez, o Ramón Gonzalez o J. Fresneda (quizás le conocen más por el 2º apellido), etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-723099102523091655?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/723099102523091655/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/gestion-de-nombres-de-usuarios-y-uso.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/723099102523091655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/723099102523091655'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/gestion-de-nombres-de-usuarios-y-uso.html' title='Gestión de Nombres de Contactos/Usuarios y uso del campo: Iniciales.'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7388362472225738567</id><published>2009-07-22T19:06:00.003+02:00</published><updated>2009-07-23T12:16:24.147+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Alta de expedientes y filtros.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Alta de expedientes/proyectos y uso de filtros de proyecto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para dar de alta un nuevo expediente o proyecto en &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt; es tan sencillo como elegir el &lt;span style="color: rgb(0, 0, 153);"&gt;patrón&lt;/span&gt; de la lista que se muestra al inicio de la aplicación.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La cantidad de patrones a los que tiene acceso cada usuario puede variar en función de los permisos que se le hayan concedido.&lt;/li&gt;&lt;/ul&gt;Una vez seleccionado aparecerá una pantalla de recogida de datos estructurada en tantos campos como el usuario necesite para &lt;span style="color: rgb(0, 0, 153);"&gt;"Definir"&lt;/span&gt; ese proyecto o expediente de los otros que ya gestiona.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Algunos de los campos (también seleccionados por el usuario) tendrán caracter de obligatorios y deberán rellenarse, con algún carácter o con una máscara y formato determinados.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Existe la posibilidad de editar o modificar a posteriori algunos de esos datos si no se conocen en el momento de rellenarlos, mediante el uso de la acción &lt;span style="font-weight: bold;"&gt;"Modificar"&lt;/span&gt; del &lt;span style="font-weight: bold;"&gt;TAB Definición&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Si no se indica otro inicio, &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt; tomará como fecha de inicio la fecha y hora actuales del sistema.&lt;/li&gt;&lt;/ul&gt;A partir de esa fecha y en función de la duración de las tareas que lo componen ya programadas o definidas en el patrón, se obtendrá la fecha prevista de final del proyecto.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;En algunos casos (patrones) se podría programar los calculos de duracion de las tareas de forma inversa. Es decir, fijando una fecha de final prevista como objetivo, con independencia de la fecha de inicio y &lt;span style="font-weight: bold;"&gt;KMKey &lt;/span&gt;se encargaría del resto.&lt;/li&gt;&lt;/ul&gt;Cuando se termina de rellenar todos los campos pulsamos la tecla "&lt;span style="color: rgb(0, 153, 0);"&gt;Intro&lt;/span&gt;" o sobre el botón "&lt;span style="color: rgb(0, 153, 0);"&gt;Siguiente&lt;/span&gt;" y el nuevo proyecto o expediente aparece en la lista del &lt;span style="font-weight: bold;"&gt;"navtree"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Algunos de los patrones, ya sea por su complejidad, o por su adecuación al paso del tiempo, no puede incorporar toda la información que necesita para la "&lt;span style="color: rgb(0, 153, 0);"&gt;Definición&lt;/span&gt;" del proyecto en el momento de su creación.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Normalmente eso se suele solucionar disponiendo de diferentes pantallas (o "&lt;span style="font-weight: bold;"&gt;sublayouts&lt;/span&gt;") de recogida de datos que se adaptarán a las necesidades del usuario y al desarrollo en el tiempo de la actividad/proyecto/expediente, etc...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FILTROS DE PROYECTO&lt;/span&gt;&lt;br /&gt;Es importante utilizar los filtros de Proyecto para tener a la vista sólo aquellos con los que queremos trabajar. En caso necesario podríamos crear filtros para ver un sólo proyecto a la vez.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;En principio existirán tantos filtros ya dispuestos como patrones hayan.&lt;/li&gt;&lt;/ul&gt;En la edición de filtros existe todo un apartado para la selección de tareas, por lo que es conveniente tener filtros preparados (&lt;span style="font-weight: bold;"&gt;cada usuario gestiona los suyos&lt;/span&gt;) para situaciones como:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;(Mostrar&lt;/span&gt;) Las tareas &lt;span style="color: rgb(0, 153, 0);"&gt;"activas"&lt;/span&gt; en las que el usuario es &lt;span style="color: rgb(0, 153, 0);"&gt;responsable&lt;/span&gt;, de todos los proyectos del &lt;span style="color: rgb(0, 153, 0);"&gt;tipo&lt;/span&gt; "OFERTA" o cualquier otros de los existentes.&lt;/li&gt;&lt;/ul&gt;Estos filtros se pueden ajustar tanto como se quiera, incorporando selectores de fechas y la posibilidad de incluir o exluir las de cierto rango.&lt;br /&gt;&lt;br /&gt;Con ello se consigue tener una pantalla ordenada, y la información coherentemente accesible.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7388362472225738567?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7388362472225738567/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/alta-de-expedientes-y-filtros.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7388362472225738567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7388362472225738567'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/alta-de-expedientes-y-filtros.html' title='Alta de expedientes y filtros.'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-9167405163305532999</id><published>2009-07-22T09:10:00.004+02:00</published><updated>2009-07-22T09:24:26.617+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Configuración avanzada de índices postgresql</title><content type='html'>Cuando creamos una tabla en postgresql es habitual crear índices por los campos que creemos van a usarse más para búsquedas.   Normalmente, lo hacemos con un simple:&lt;br /&gt;&lt;br /&gt;CREATE INDEX nombre_indice ON tabla(campo);&lt;br /&gt;&lt;br /&gt;Bien, eso puede bastar en ciertos casos, pero si campo es un tipo texto y queremos hacer búsquedas usando LIKE, nos encontramos con sorpresas:&lt;br /&gt;&lt;br /&gt;EXPLAIN ANALYZE SELECT * FROM tabla WHERE campo LIKE '%valor%';&lt;br /&gt;&lt;br /&gt;Nos dirá que está ejecutando un SCAN de toda la tabla !   Nuestro índice no se está usando para búsquedas tipo LIKE.    Para que lo use, necesitamos crear el índice de forma ligeramente distinta:&lt;br /&gt;&lt;br /&gt;CREATE INDEX nombre_indice ON tabla(campo text_pattern_ops);   (si campo es tipo TEXT)&lt;br /&gt;CREATE INDEX nombre_indice ON tabla(campo varchar_pattern_ops);  (si campo es tipo VARCHAR)&lt;br /&gt;&lt;br /&gt;Si repetimos el EXPLAIN ANALYZE veremos que ahora SI se usa el índice&lt;br /&gt;&lt;br /&gt;Otro caso típico que nos encontramos es con la normalización de los datos.   O sea, como trabajar acentos, eñes, mínusculas y mayúsculas para que el usuario encuentre lo que busca, para que una búsqueda 'proyect' encuentre cosas como 'Caja PROYECTOR', 'Proyectó 1' o 'Proyecté una peli'.   &lt;br /&gt;&lt;br /&gt;Para ello se pueden guardar los datos tal como vienen, y crear un índice normalizado, usando una función PL/PGSQL de tipo inmutable.   Por ejemplo:&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE FUNCTION str_normalize (value TEXT) RETURNS text AS $$&lt;br /&gt;BEGIN&lt;br /&gt; RETURN lower(translate(value, 'áàéèíìóòúùäëïöüÁÀÉÈÍÌÓÒÚÙÄËÏÖÜñÑçÇ"?¿¡[]`{},:;=&amp;%$#|!\ºª&lt;&gt;', 'aaeeiioouuaeiouAAEEIIOOUUAEIOUnNcC                        '));&lt;br /&gt;END;&lt;br /&gt;$$ LANGUAGE plpgsql;&lt;br /&gt;&lt;br /&gt;CREATE INDEX nombre_indice ON tabla(str_normalize(campo) text_pattern_ops);&lt;br /&gt;&lt;br /&gt;Ahora podemos comprobar que podemos hacer búsquedas normalizadas de lo más optimizado:&lt;br /&gt;&lt;br /&gt;EXPLAIN ANALYZE SELECT * FROM tabla WHERE str_normalize(campo) LIKE str_normalize('%valor%');&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-9167405163305532999?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/9167405163305532999/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/configuracion-avanzada-de-indices.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/9167405163305532999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/9167405163305532999'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/configuracion-avanzada-de-indices.html' title='Configuración avanzada de índices postgresql'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-568635987128118041</id><published>2009-07-03T09:57:00.002+02:00</published><updated>2009-07-03T10:08:27.634+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Pequeña ayudita para informes y listados</title><content type='html'>con esta dirección : http://My_KMKey/..../workspaces/kmkey/dump_fields_of_pattern?type_name=kmkey_accion-correctiva&lt;br /&gt;&lt;br /&gt;donde type_name es el nombre del portal_type asociado a un patrón, se os volcarà un archivo csv con la tabla de todos los campos del patrón, donde se indica el sublayout, la etiqueta y el nombre del campo con su correspondiente &lt;content&gt; para hacer el output en el informe, de este estilo :&lt;br /&gt;&lt;br /&gt;"Analisis ";"Analisis de Causas (breves descripción de estas)";"&lt;content&gt;"&lt;br /&gt;"Analisis ";"Fecha Prevista de Implantación";"&lt;content&gt;"&lt;br /&gt;"Analisis ";"Implementada por:";"&lt;content&gt;"&lt;br /&gt;"Descripcion";"Coordinada Por";"&lt;content&gt;"&lt;br /&gt;"Descripcion";"Detectada Por";"&lt;content&gt;"&lt;br /&gt;"Descripcion";"Gestión";"&lt;content&gt;"&lt;br /&gt;&lt;br /&gt;abriendo el csv con calc (o excel en su defecto...) podréis hacer fàcilmente un copy&amp;amp;paste de la etiqueta y el campo para realizar informes&lt;br /&gt;&lt;br /&gt;el skin se puede customizar y mejorar (por ejemplo, detectar el tipo de campo y utilizar el tag adecuadao (date, float, etc...), pero de momento nos facilita mucho el tener todos los campos disponibles&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-568635987128118041?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/568635987128118041/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/pequena-ayudita-para-informes-y.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/568635987128118041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/568635987128118041'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/pequena-ayudita-para-informes-y.html' title='Pequeña ayudita para informes y listados'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6848510299994159700</id><published>2009-07-02T19:23:00.002+02:00</published><updated>2009-07-02T19:28:25.199+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Estructura de información de soporte para KMKey. Help. Manual.</title><content type='html'>Tras un debate interno, mas complejo de lo que pudiera parecer, hemos decidido dar la siguiente forma a las herramientas de soporte ( lo que vendria a substituir al tradicional Manual)&lt;br /&gt;&lt;br /&gt;-Pàgina de índice con los temas de formación. En cada apartado, subapartado etc.. los links (permalinks) necesarios para ampliar. Estos links dirigen a lugares donde está la información desarrollada en diferentes formatos (principalmente videos, entradas de blog y documentos).&lt;br /&gt;&lt;br /&gt;-Pagina de videos en www.kmkey.com. Se procederá a remodelar la estructura y ordenar los videos&lt;br /&gt;&lt;br /&gt;-Entradas en el blog: http://kmkey-es.blogspot.com/  ya hay algunos disponibles. Los usuarios interesados se pueden hacer seguidores y recibir información de novedades. También se pueden  formular preguntas e insertar comentarios.&lt;br /&gt;&lt;br /&gt;-Lista de correo. Enfocada principalmente a temas técnicos y de desarrollo. &lt;br /&gt;Kmkey-spanish@lists.forge.osor.eu&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;De esta forma creemos que la dispersión de la información que hay en la actualidad quedará solventada. Dispondremos de dos maneras principales de acceder:&lt;br /&gt;-Busquedas en google.com del tópico. Por ejemplo: como indexar campo en KMKey  que te lleva directamente a la entrada del blog&lt;br /&gt;-Consultar el indice y buscar el tópico que nos interesa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6848510299994159700?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6848510299994159700/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/estructura-de-informacion-de-soporte.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6848510299994159700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6848510299994159700'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/07/estructura-de-informacion-de-soporte.html' title='Estructura de información de soporte para KMKey. Help. Manual.'/><author><name>Joan</name><uri>http://www.blogger.com/profile/00686177384014933502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qa9B0X0vPuk/SgQBsveUnVI/AAAAAAAAA_Y/w35jh5ANkXQ/S220/snu'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3257451546578432751</id><published>2009-06-22T13:34:00.004+02:00</published><updated>2009-06-22T13:39:26.602+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Como indexar un campo</title><content type='html'>Cuando creamos un patrón nuevo que contiene campos nuevos, y queremos usar algunos de esos campos para filtrar proyectos, ya sea a través de la configuración de filtros, ya sea a través de algún listado, necesitamos que ese campo se encuentre indexado en el catálogo de Zope.&lt;br /&gt;&lt;br /&gt;Por ejemplo, imaginemos que tenemos un campo 'contacto_relacionado' que queremos indexar.   Tendremos que irnos al ZMI, al objeto "portal_catalog", pestaña "Indexes", y añadir allí un índice del tipo "FieldIndex" indicando que el atributo a indexar sea "contacto_relacionado" y que su identificador sea ese mismo nombre.   Una vez creado el índice, marcamos el checkbox que se encuentra a su izquierda, y pulsamos en el botón "Reindex Index", tras lo cual ya podrá usarse ese índice&lt;br /&gt;&lt;br /&gt;En caso que el atributo a indexar sea más complejo, como un string que deba normalizarse, puede usarse índices del tipo "Managable FieldIndex", indicando así fórmulas de prenormalizado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3257451546578432751?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3257451546578432751/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/como-indexar-un-campo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3257451546578432751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3257451546578432751'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/como-indexar-un-campo.html' title='Como indexar un campo'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3525798819339979266</id><published>2009-06-22T10:45:00.002+02:00</published><updated>2009-06-22T10:54:37.072+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Encodings al editar usando ZMI</title><content type='html'>Cuando queremos editar configuraciones avanzadas recurrimos a la interficie que nos proporciona Zope, llamada Zope Managemente Interfaces (ZMI), típicamente accedida usando http://maquina:puerto/manage     Cuando se usa esa interfície, suelen aparecer problemas con los acentos y demás carácteres no ASCII.   Por ejemplo, si queremos configurar un mensaje de una notificación, dentro de un campo "KMKey User Role Field", y queremos que el título sea "Nueva Revisión", nos encontramos con sorpresas desagradables con frecuencia, porque se codifican mal los caracteres.&lt;br /&gt;&lt;br /&gt;Todo ello tiene fácil solución, pero poco documentada.   Se trata de ir a la pestaña "Properties" de nuestro sitio, y añadir una propiedad de tipo string que se llame "management_page_charset", con valor "iso-8859-15".    Después de eso la edición de acentos en propiedades usando ZMI dejará de ser un problema&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3525798819339979266?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3525798819339979266/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/encodings-al-editar-usando-zmi.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3525798819339979266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3525798819339979266'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/encodings-al-editar-usando-zmi.html' title='Encodings al editar usando ZMI'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-373980593618903335</id><published>2009-06-17T11:53:00.002+02:00</published><updated>2009-06-17T11:54:38.918+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Configuración opciones KMKey</title><content type='html'>Parámetros de configuración de un site.&lt;br /&gt;Estas opciones se dan de alta directamente a nivel de site des del ZMI --&gt; properties&lt;br /&gt;&lt;br /&gt;PERSONALIZACIÓN&lt;br /&gt;==================&lt;br /&gt;Title ---&gt; título del site&lt;br /&gt;logo_text --&gt; Texto que sale junto al logo en la pantalla de login&lt;br /&gt;logo_header ---&gt; Header de la pantalla de login&lt;br /&gt;logo_header_path --&gt; path de la imagen del logo&lt;br /&gt;logo_color --&gt; Color del logo_text&lt;br /&gt;navtree_sort_subitems_by  --&gt; lista de campos separados por coma para indicar el criterio de ordenación de las tareas en el árbol de navegación&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CORREO&lt;br /&gt;======&lt;br /&gt;pop3_server&lt;br /&gt;pop3_user&lt;br /&gt;pop3_password --&gt; servidor, usuario y password de la cuenta de correo utilizada para el mail_scan&lt;br /&gt;mail_reply_to --&gt; dirección de correo a la q se responderán los mensajes generados en KM&lt;br /&gt;mail_descriptive_name --&gt; nombre de la dirección de correo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CONTABILIDAD/ECONOMÍA&lt;br /&gt;==================&lt;br /&gt;subcuenta_iva_soportado_4&lt;br /&gt;subcuenta_iva_repercutido_4&lt;br /&gt;subcuenta_iva_soportado_7&lt;br /&gt;subcuenta_iva_repercutido_7&lt;br /&gt;subcuenta_iva_soportado_16&lt;br /&gt;subcuenta_iva_repercutido_16&lt;br /&gt;&lt;br /&gt;*Estas opciones definen las cuentas contables asociadas a cada tipo de iva para la exportación de la contabilidad a contaplus (Admin ---&gt; exportar contabilidad)&lt;br /&gt;&lt;br /&gt;same_date_for_invoice_lines --&gt; Si true --&gt; modifica automáticamente las fechas de todas las lineas de una factura con la fecha de emisión de la factura&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GESTIÓN DE RECURSOS&lt;br /&gt;===================&lt;br /&gt;kmkey_filter_resources_only_assigned --&gt; Por defecto 0. Si true --&gt; unicamente muestra los usuarios directamente asociados al expediente, no todos los q tienen acceso 'indirecto'&lt;br /&gt;kmkey_filter_resources --&gt; Por defecto 1. Si 1--&gt; muestra unicamente usuarios asignados. Si 0, muestra todos los usuarios, independientemente de la opción anterior&lt;br /&gt;&lt;br /&gt;GESTIÓN DE NOTIFICACIONES&lt;br /&gt;========================&lt;br /&gt;send_notification_at_task_begin --&gt; Envía una notificación al responsable de tarea al iniciarla&lt;br /&gt;send_notification_at_task_close --&gt; Idem, al cerrar tarea&lt;br /&gt;send_notification_at_task_create --&gt; Envía notificación al crear o modificar el reponsable de la tarea&lt;br /&gt;block_notifications --&gt; Por defecto 0. Si true --&gt; no envía ninguna notificación desde KM (útil para actualizaciones massivas q impliquen un commit de alguna pill o expediente q puede generar notificaciones)&lt;br /&gt;&lt;br /&gt;OTROS&lt;br /&gt;======&lt;br /&gt;task_name_to_create_purchases --&gt; Nombre de la tarea donde se crearan las compras al sincronizar desde km2. Si no se especifica, se crearan en el proyecto&lt;br /&gt;economic_plan_lines_sort_on --&gt; orden por defecto de las lineas en la view de una previsión&lt;br /&gt;gantt_period --&gt; período del gantt por defecto (days, months)&lt;br /&gt;execute_sql_reports --&gt; Indica si los listados genéricos (compras, ventas, etc)  se generarán via sql o via zodb&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-373980593618903335?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/373980593618903335/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/configura.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/373980593618903335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/373980593618903335'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/configura.html' title='Configuración opciones KMKey'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4646767149382359864</id><published>2009-06-17T09:48:00.003+02:00</published><updated>2009-06-17T10:20:47.798+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Documentos en el sistema de ficheros</title><content type='html'>Por defecto, cuando subimos archivos adjuntos, ya sea mediante la entrada de píldoras documento o mediante el envío de mails, estos acaban guardándose en la BBDD.   Eso puede significar en ZODB (sobre el storage que tenga configurado), o bien postgreSQL si tenemos configurado así el schema.   En cualquier caso, las BBDD y los archivos no se han llevado bién históricamente, por lo que lo más recomendable es poder almacenar esos archivos en una estructura de directorios y ficheros.&lt;br /&gt;&lt;br /&gt;Como no, KMKey incorpora la posibilidad de activar dicha funcionalidad de forma totalmente transparente al usuario.    Basta con acceder via ZMI (http://ip:puerto/manage), acceder a nuestro sitio, en el apartado "portal_schemas", y en la pestaña "Properties" añadir una propiedad que se llame "disk_storage_path", y que contenga el path del directorio base (que por supuesto debe tener permisos de escritura concedidos al usuario que ejecute el servidor de aplicaciones).   Por ejemplo, disk_storage_path = /var/zope/storages/adjuntos  creará una estructura de 2 niveles de profundidad para ir almacenando los archivos en disco.   &lt;br /&gt;&lt;br /&gt;Finalmente, no olvidemos configurar un backup apropiado del directorio al activar está opción.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4646767149382359864?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4646767149382359864/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/documentos-en-el-sistema-de-ficheros.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4646767149382359864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4646767149382359864'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/documentos-en-el-sistema-de-ficheros.html' title='Documentos en el sistema de ficheros'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1013769612765276698</id><published>2009-06-11T18:45:00.003+02:00</published><updated>2009-06-12T11:11:16.736+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Filosofadas'/><title type='text'>Lástima que la primera cita sea de Bill Gates...</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;br /&gt;&lt;param name="movie" value="http://www.youtube.com/v/Y6bbMQXQ180&amp;hl=es&amp;fs=1&amp;"&gt;&lt;br /&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;br /&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;br /&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Y6bbMQXQ180&amp;hl=es&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;br /&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1013769612765276698?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1013769612765276698/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/como-llego-patrick-ha-trabajar-para.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1013769612765276698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1013769612765276698'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/como-llego-patrick-ha-trabajar-para.html' title='Lástima que la primera cita sea de Bill Gates...'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-2603875418404863590</id><published>2009-06-10T13:33:00.008+02:00</published><updated>2009-06-10T13:48:22.129+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Plantillas Generables asociadas a un patrón</title><content type='html'>&lt;span style="font-size:85%;"&gt;KMKey permite generar documentos de plantillas OO a partir de un expediente, tarea, etc&lt;br /&gt;&lt;br /&gt;Una de las formas es vincular un documento generable a un patrón. Los pasos a seguir son los siguiente&lt;br /&gt;&lt;br /&gt;- Crear una Plantilla Open Office y guardarla dentro de un expediente. Normalemente el expediente,tarea o documento deberá tener acceso de lectura para todo el mundo&lt;br /&gt;&lt;br /&gt;- En el patrón que nos interese generar esta plantillas, en modificar, vermos el campo "Generable Objects" que nos permite indicar un xml con los objetos que podremos general , del estilo :&lt;objects tal="http://xml.zope.org/namespaces/tal"&gt;&lt;document default_title="Informe de visita a obra.doc" formats="doc#@sxw#@pdf#@oo" getdocid="1588407473" default_format="doc" view_class="Products.KMKeyDefault.reportsview.SpanishReportsView" view_context="context"&gt;&lt;/document&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;&lt;/span&gt;&lt;objects style="font-weight: bold;" tal="http://xml.zope.org/namespaces/tal"&gt;document&lt;br /&gt;default_title="Informe de visita a obra.doc"&lt;br /&gt;formats="doc#@sxw#@pdf#@oo"&lt;br /&gt;getDocid="1588407473"&lt;br /&gt;default_format="doc"&lt;br /&gt;view_class="Products.KMKeyDefault.reportsview.SpanishReportsView"&lt;br /&gt;view_context="context"&lt;/objects&gt;&lt;span style="font-weight: bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La entrada 'document' indica que el objeto generable será un documento, los parámetros :&lt;br /&gt;&lt;br /&gt;- default_title --&gt; título por defecto&lt;br /&gt;- formats --&gt; lista de formatos generables&lt;br /&gt;- getDocid --&gt; docid que hace referencia al documento plantillas que hemos colgado antes&lt;br /&gt;- default_format&lt;br /&gt;- view_class , por defecto siempre Products.KMKeyDefault.reportsview.SpanishReportsView, pero podemos especificar una view propia&lt;br /&gt;- view_context, por defecto 'context' --&gt; el contexto de trabajo&lt;br /&gt;&lt;br /&gt;Por norma general, lo único que modificaresmos será el título,los formatos y el getDocid&lt;br /&gt;&lt;br /&gt;una vez agregado este xml al patrón, si vamos a un expediente generado con este patrón, al añadir un documento, veremos que nos permite seleccionar la plantilla generable&lt;br /&gt;&lt;br /&gt;Ejemplo de plantilla generable sobre un expediente :&lt;br /&gt;&lt;br /&gt;Por ejemplo, generamos un nuevo documento de OO, lo titularemos "plantilla.sxw", y escribiremos directamente el siguiente contenido:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;define unit here['getParentProject']()/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;define datos view.datosLegibles(unit)/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;define dm datos['dm']/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;define boa view.getProyectoRelacionado(dm['xxx'])/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;content datos['Title']/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;content datos['Description']/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/objects&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;content datos['campo_numerico']/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;o&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;content dm['campo_numerico']/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;objects tal="http://xml.zope.org/namespaces/tal"&gt;&lt;br /&gt;&lt;br /&gt;Guardamos la plantilla, la colgamos dentro del expediente de plantillas, y luego vamos al expediente des de el que queremos generala, la generamos i... voilà! tenemos los datos volcados del expediente (título y descripción) en un documento de word  (o pdf, ya que podemos hacer cualquier conversión). Y lo mismo para excel&lt;br /&gt;&lt;br /&gt;Las instrucciones son bastante intuitivas:&lt;br /&gt;&lt;br /&gt;&amp;lt;define unit here['getParentProject']()/&amp;gt;&lt;br /&gt;** declara una variable llamada 'unit' que apunta al expediente&lt;br /&gt;&lt;br /&gt;&amp;lt;define datos view.datosLegibles(unit)/&amp;gt;&lt;br /&gt;** view es el python asociado a la plantilla, y es donde estan todas las funciones accesibles que nos facilitan mucho la vida.&lt;br /&gt;datosLegibles es una función que acepta un proxy, y nos devuelve un diccionario con todos los campos del objeto, formateados,  en modo vista (generados a partir del Layout)&lt;br /&gt;&lt;br /&gt;&amp;lt;define dm datos['dm']/&amp;gt;&lt;br /&gt;** datos['dm'] contiene el apuntador al datamodel, por si nos interesa acceder a los datos tal cual, sin estar formateados&lt;br /&gt;&lt;br /&gt;&amp;lt;define boa view.getProyectoRelacionado(dm['xxx'])/&amp;gt;&lt;br /&gt;** Esta función , getProyectoRelacionado, nos devuelve los datos legibles del proyecto relacionado del campo 'xxxx' del expediente.&lt;br /&gt;&lt;br /&gt;Para hacer el output del campo, utilizamos el tag 'content'&lt;/objects&gt;&lt;br /&gt;&amp;lt;content datos['campo_numerico']/&amp;gt; --&gt; salida de un campo numérico, formateado&lt;br /&gt;o&lt;br /&gt;&amp;lt;content dm['campo_numerico']/&amp;gt; --&gt; sin formatear, por si nos interesa hacer cálculos en un excel&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;objects tal="http://xml.zope.org/namespaces/tal"&gt;&lt;span style="font-size:85%;"&gt;En otra entrada del blog tenemos una referencia rápida de los tags disponibles :&lt;br /&gt;http://kmkey-es.blogspot.com/2009/06/usando-openoffice-para-hacer-listados-i.html&lt;br /&gt;&lt;br /&gt;En otra entrada publicaremos una referencia rapida de todas las funciones disponibles en el view, que de momento podéis consultar directamente en el .py ubicado en Products/KMKeyDefault/reportsview.py&lt;/span&gt;&lt;br /&gt;&lt;/objects&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-2603875418404863590?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/2603875418404863590/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/plantillas-generables-asociadas-un.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2603875418404863590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2603875418404863590'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/plantillas-generables-asociadas-un.html' title='Plantillas Generables asociadas a un patrón'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4866137415935916576</id><published>2009-06-09T17:31:00.005+02:00</published><updated>2009-06-09T18:37:38.361+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Filosofadas'/><title type='text'>Un buen plan hoy es mejor que un plan perfecto mañana</title><content type='html'>&lt;span style="font-weight:bold;"&gt;"A good plan today is better than a perfect plan tomorrow"&lt;/span&gt;&lt;br /&gt;&lt;a href="http://es.wikipedia.org/wiki/George_Patton"&gt;George S. Patton (1885-1945)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En KMKey estamos de acuerdo con uno de los mejores estrategas de los últimos tiempos  y hacemos de KMKey una herramienta útil y flexible para saber el estado de los proyectos HOY y como van a evolucionar MAÑANA.&lt;br /&gt;La programación "perfecta" no existe porque las empresas no son perfectas. Todas las herramientas de predicción, para ser fiables, necesitan que algunas de las variables que intervienen se puedan fijar. Ya sea el tiempo, los recursos disponibles o la economía prevista.&lt;br /&gt;Si mantener la predicciones en un solo proyecto ya es difícil, la realidad nos dice que cuando hay varios, los recursos son variables y las condiciones también, nos parece iluso hacer predicciones exactas de lo que va a acontecer.&lt;br /&gt;KMKey soluciona esta problemática permitiendo trabajar la planificación con dos niveles de ZOOM:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PRISMÁTICO:&lt;/span&gt;&lt;br /&gt;Donde tendremos una idea de lo que está previsto que ocurra en una franja temporal amplia. A menudo mediante porcentages.&lt;br /&gt;-Porcentage de ocupación de recursos (o recurso) en un periodo&lt;br /&gt;-Periodo de ejecución previsto de una tarea&lt;br /&gt;-Gastos previstos para un period&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;LUPA&lt;/span&gt;&lt;br /&gt;Cuando existe la certeza (o casi) de que un suceso acontecerá en una determinada fecha, se puede planificar en KMKey con todo lujo de detalles&lt;br /&gt;-Tal dia de 8 a 12 elSr Tal y el Sr Pascual estaran reunidos&lt;br /&gt;-Tengo previsto gastar X€ en el desplazamiento de la próxima semana&lt;br /&gt;-Voy a dedicar X horas a la tarea N del proyecto A.&lt;br /&gt;&lt;br /&gt;Esta dualidad nos permite escoger entre un "buen plan hoy" o "uno perfecto mañana".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4866137415935916576?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4866137415935916576/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/un-buen-plan-hoy-es-mejor-que-un-plan.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4866137415935916576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4866137415935916576'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/un-buen-plan-hoy-es-mejor-que-un-plan.html' title='Un buen plan hoy es mejor que un plan perfecto mañana'/><author><name>Joan</name><uri>http://www.blogger.com/profile/00686177384014933502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qa9B0X0vPuk/SgQBsveUnVI/AAAAAAAAA_Y/w35jh5ANkXQ/S220/snu'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-5247057925133143892</id><published>2009-06-09T11:54:00.012+02:00</published><updated>2009-06-09T13:07:34.755+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Usando OpenOffice para hacer listados (I)</title><content type='html'>KMKey dispone de un sistema de fabricación de listados poco habitual, pero muy útil.   Se trata de confeccionar los listados o documentos generables usando OpenOffice, e incorporar dentro del  documento, con el mismo OpenOffice, sentencias XML/python que permiten su dinamización y combinación con los datos de la aplicación.   El resultado final puede obtenerse en el mismo formato OpenOffice, en PDF o en formato MS/Office (doc / xls), gracias a las capacidades que OpenOffice nos ofrece.&lt;br /&gt;&lt;br /&gt;La forma de combinar datos puede variar en función de la configuración de schemas que tengamos en ZODB o en SQL (hay una entrada sobre este tema en este mismo blog).    En general, los documentos generables afectan datos de un sólo expediente, por lo que pueden abordarse sin problemas usando datos via ZODB, lo que los hace más  genéricos y reusables.    En cambio, los listados que se obtienen sobre un filtro de expedientes pueden manejar volúmenes importantes de datos, y suele valer la pena tener los schemas implicados en SQL y usar sentencias SQL para la recuperación de datos.&lt;br /&gt;&lt;br /&gt;En este primer capítulo, vamos a dar un breve repaso a las sentencias XML disponibles, y en capítulos posteriores abordaremos cómo realizar la instalación de los listados, o las expresiones python de uso más frecuente.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;define nombre_variable expresion_python /&amp;gt;&lt;/span&gt; Sirve para definir variables que vamos a usar posteriormente.  La expresión python puede ser una llamada a un método, una llamada a una setencia SQL a través de un conector, o simplemente un tratamiento de datos python.   Por ejemplo, para obtener el proyecto dentro de un documento generable, podemos usar &lt;span style="font-style: italic;"&gt;&amp;lt;define proyecto self.getContent().getKMProject() /&amp;gt;&lt;/span&gt;&lt;style type="text/css"&gt;  &lt;!--   @page { size: 21cm 29.7cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt; &lt;/style&gt;   &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;content expresion_python /&amp;gt;&lt;/span&gt;Escribe texto en el documento.   El texto escrito, óbviamente, es el resultado de evaluar la expresión python.   Puede ser un nombre de variable, un método, un atributo de un objeto, etc.   Siguiendo con el ejemplo anterior, para escribir el título del proyecto usaríamos &lt;span style="font-style: italic;"&gt;&amp;lt;content proyecto['Title']() /&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;date expresion_python /&amp;gt;&lt;/span&gt; Igual que &lt;span style="font-weight: bold;"&gt;content,&lt;/span&gt; pero se espera que el resultado de la expresión python se corresponda con una fecha del tipo DateTime.   Sólo es necesario usarla si estamos generando hojas de cáculo y queremos que el tipo de datos resultante sea una fecha, si nos vale con que sea string se puede usar &lt;span style="font-weight: bold;"&gt;content&lt;/span&gt; perfectamente.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;float expresion_python /&amp;gt;&lt;/span&gt;   Exactamente lo mismo que el caso de las fechas, pero con los tipos de datos numéricos.  Del mismo modo, sólo tiene sentido para generar hojas de cálculo&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;image expresion_path_imagen /&amp;gt;&lt;/span&gt;  Si la expresión python devuelve un path de imagen, ésta se incorpora en el documento generado&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;repeat nombre_variable expresion_python &amp;gt; ... &amp;lt;/repeat&amp;gt;.&lt;/span&gt;   Realiza un bucle sobre la expresión python, asignando nombre_variable en cada iteración.   Para que funcione adecuadamente, debe situarse en una hoja de cálculo, o en una tabla si estamos en el procesador de textos, de otra forma el sistema no es capaz de llevar a cabo el bucle de construcción del documento&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;if expresion_python &amp;gt; ... &amp;lt;/if&amp;gt;&lt;/span&gt;.   Sólo ejecuta el interior del condiciona si la expresion python devuelve un valor &lt;span style="font-style: italic;"&gt;True.   &lt;/span&gt;Igual que en el caso del repeat, debe usarse en una hoja de cálculo o en una tabla&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;checkboxs&lt;/span&gt;.   Para generar checkbox activos o inactivos, se puede activar el modo formulario de OpenOffice y definir como nombre de campo del chekbox una variable.   Si esa variable se encuentra definida y vale &lt;span style="font-style: italic;"&gt;True&lt;/span&gt;, entonces el checkbox aparecerá marcado.   En caso contrario, aparecerá desmarcado.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-5247057925133143892?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/5247057925133143892/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/usando-openoffice-para-hacer-listados-i.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5247057925133143892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5247057925133143892'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/usando-openoffice-para-hacer-listados-i.html' title='Usando OpenOffice para hacer listados (I)'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4722412197140823331</id><published>2009-06-09T10:50:00.004+02:00</published><updated>2009-06-09T11:22:02.142+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Activando el sistema de e-mails</title><content type='html'>Quizá no todo el mundo sepa que KMKey, entre otras muchas cosas, es capaz de enviar y recibir correos electrónicos, siempre asociados a proyectos o tareas.   Para conseguirlo, KMKey se sirve de una cuenta de correo propia, de forma que cuando el usuario &lt;span style="font-style: italic;"&gt;petito&lt;/span&gt; de la empresa &lt;span style="font-style: italic;"&gt;nuestrodominio&lt;/span&gt; envia una mail des de su KMKey, el mail sale con un FROM pepito@earcon.com, pero con un REPLY-TO pepito@earcon.com, kmkey@nuestrodominio.com.   O sea, las respuestas a ese e-mail llegaran a quien lo haya enviado, pero también llegarán a KMKey, que lo incorporará en la tarea o proyecto correspondiente.&lt;br /&gt;&lt;br /&gt;Además es posible reenviar a nuestro KMKey un correo electrónico que nos haya llegado directamente a nosotros, pero que tenga que ver con algún proyecto que estamos gestionando en KMKey.  En ese caso, podemos reenviar nuestro correo a kmkey@nuestrodominio.com.   Pero ¿ cómo sabe en qué proyecto o tarea queremos dejarlo ?   Muy fácil, hay que incluir el &lt;span style="font-style: italic;"&gt;Código E-mail&lt;/span&gt; en el título del mail.  Si en KMKey vamos a la pestaña Definición de un proyecto o tarea, veremos ese código e-mail, que suele ser del tipo p&lt;span style="font-style: italic;"&gt;roject_999999999&lt;/span&gt; o &lt;span style="font-style: italic;"&gt;task_999999999&lt;/span&gt;.   Lo copiamos y lo añadimos en el título del mail que estamos reenviando, y eso es todo, el e-mail llegará a KMKey, se añadirá donde le hayamos indicado, y además si tiene adjuntos estos serán incluidos como documentos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Para activar estas funcionalidades&lt;/span&gt; en nuestra instalación, es necesario seguir algunos pasos en el ZMI (accediendo a zope a través de http://site:puerto/manage):&lt;br /&gt;&lt;br /&gt;1)  Ir a la raiz del site KMKey, a la pestaña &lt;span style="font-style: italic;"&gt;Properties&lt;/span&gt; y añadir las siguientes propiedades de tipo string:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  pop3_server:  DNS o IP del servidor POP3 de donde leer correos&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  pop3_user:  usuaroi de pop3, puede ser con dominio o sin el&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  pop3_password: clave del usuario en el servidor pop3&lt;/li&gt;&lt;li&gt;mail_reply_to:  e-mail associado al kmkey, si es distinto del pop3_user&lt;/li&gt;&lt;li&gt;mail_descriptive_name:  Nombre descriptivo del e-mail del KMKey:  "KMKey Nombre Empresa"&lt;/li&gt;&lt;/ul&gt;2) Dentro del site KMKey, hay un objeto llamado MailHost, que se usa para los envíos de mails.   Entrar en él y definir:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  SMTP Host: IP o DNS del servidor smtp a usar&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  Authentication ID:  kmkey@midominio.com&lt;/li&gt;&lt;li&gt;  Password: Clave del usuario SMTP&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;fc&gt;&lt;e0&gt;&lt;e9&gt;&lt;/e9&gt;3) Finalmente sólo nos queda activar la lectura periódica de e-mails.   Para ello disponemos de los scripts email_scan.sh y email_scan.py, situados en el directorio KMKeyCore/utils.   Los podemos activar usando cron, por ejemplo cada 10 minutos, y ya tenemos el email integrado en nuestro KMKey&lt;br /&gt;&lt;/e0&gt;&lt;/fc&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4722412197140823331?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4722412197140823331/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/activando-el-sistema-de-e-mails.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4722412197140823331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4722412197140823331'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/activando-el-sistema-de-e-mails.html' title='Activando el sistema de e-mails'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-2351312590282569172</id><published>2009-06-03T17:55:00.003+02:00</published><updated>2009-06-03T18:18:52.518+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><category scheme='http://www.blogger.com/atom/ns#' term='Filosofadas'/><title type='text'>Liberado KMKey 3 versión "Durruti"</title><content type='html'>Nos complace anunciar la liberación de KMKey 3 versión “Durruti”.  KMKey (Knowledge Management Key) es una plataforma de gestión de proyectos / expedientes construida sobre un gestor documental, con tres usos principales (aunque no únicos): gestión de proyectos, gestión de calidad, y helpdesk.   Funciona en entorno web y facilita enormemente el trabajo colaborativo, permite la consolidación de datos en empresas multisede, implementa el trabajo basado en procedimientos, y además permite la gestión y el control de proyectos en todos sus ejes: temporal, de esfuerzo, informativo y económico.&lt;br /&gt;&lt;br /&gt;Es un producto desarrollado aquí, basado en la experiencia empresarial acumulada (ésta es la tercera reescritura de un software que empezó propietario hace más de 8 años),  pero sobretodo es un software usado en el día a día de un buen número de empresas y administraciones.   Su gran capacidad de configuración lo ha hecho útil para la mayoría de empresas de servicios, y muchas de ellas lo estan usando ya para mejorar su forma de trabajar y salir reforzadas de la crisis.   Para facilitar su expansión y poner así nuestro granito de arena, hemos configurado incluso un disco para VirtualBox con una instalación de KMKey preconfigurada para gestión de calidad, que está disponible via &lt;a href="https://forge.osor.eu/frs/download.php/404/kmkey-durruti.vdi.torrent"&gt;torrent&lt;/a&gt;.    Y además tiene licencia GPL.  ¿ A qué esperais para probarlo ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-2351312590282569172?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/2351312590282569172/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/liberado-kmkey-3-version-durruti.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2351312590282569172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2351312590282569172'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/liberado-kmkey-3-version-durruti.html' title='Liberado KMKey 3 versión &quot;Durruti&quot;'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4431733581849544364</id><published>2009-06-03T14:13:00.011+02:00</published><updated>2009-12-03T09:04:41.254+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>Como Instalarse KMKey Durruti</title><content type='html'>En primer lugar, dejar claro que KMKey &lt;span style="font-weight: bold;"&gt;requiere&lt;/span&gt; un servidor web con Zope 2.9.4, python 2.4 y sistema operativo GNU/Linux, preferentemente Debian.   Aunque algunas partes pueden llegar a funcionar sobre Windows, &lt;span style="font-weight: bold;"&gt;no&lt;/span&gt; se soporta este sistema operativo&lt;br /&gt;&lt;br /&gt;En las estaciones cliente, se soporta tanto Mozilla Firefox como IE &gt;= 6, sobre cualquier sistema operativo.&lt;br /&gt;&lt;br /&gt;Dicho esto, si alguien quiere instalarse KMKey en sus dependencias, tiene varias opciones:&lt;br /&gt;&lt;br /&gt;1) Usar la máquina virtual de virtualbox con kmkey preconfigurado.   Esta es la opción que tarda más en desacargar, pero la más rápida de poner en práctica, y la única si usais Windows.   Se trata de un disco para virtualbox con una Debian Lenny + KMKey instalado, y un site preconfigurado para gestión de calidad (aunque puede configurarse para otros menesteres, claro).   Sólo se necesita crear la máquina, adjuntar el disco, y acceder por http://ip.de.maquina a vuestro KMKey.    El password de root de la máquina es "demokm", y el usuario administrador de KMKey se llama "adminkmkey" con clave "demokm".    Podeis descargar la máquina desde megaupload &lt;a href="http://www.megaupload.com/?d=C2UKHM3J" target="_blank"&gt;http://www.megaupload.com/?d=C2UKHM3J&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Descargar los fuentes de &lt;a href="http://forge.osor.eu/projects/kmkey/"&gt;OSOR&lt;/a&gt;    Necesitais tener Linux y Zope2.9.4   A partir de ahí, descomprimir los fuentes en el directorio Products de Zope, y seguir las instrucciones de KMKeyCore/doc/INSTALL.   El site que se necesita también lo podeis descargar del mismo sitio, viene preconfigurado con patrones de gestión de calidad, su usuario administrador es "adminkmkey", y su clave "demokm"&lt;br /&gt;&lt;br /&gt;3) Instalar subversion y acceder a descargar la última rama stable, ejecutando "svn co https://svn.forge.osor.eu/svn/kmkey/bundles/kmkey-stable"    Los requisitos son los mismos que en el punto 2&lt;br /&gt;&lt;br /&gt;Espero que lo disfruteis&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4431733581849544364?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4431733581849544364/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/como-instalarse-kmkey.html#comment-form' title='17 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4431733581849544364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4431733581849544364'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/06/como-instalarse-kmkey.html' title='Como Instalarse KMKey Durruti'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6304600799818859832</id><published>2009-05-28T17:01:00.004+02:00</published><updated>2009-05-28T17:20:46.226+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Pasar schemas a SQL</title><content type='html'>Como sabrán los administradores más avanzados, todos los datos de KMKey se estructuran en types, que se componen de schemas de campos para su definición + layouts de widgets para su representación (se puede ver todo eso entrando en el Zope Management Interface, o ZMI, entrando en http://url_site/manage)&lt;br /&gt;&lt;br /&gt;El hecho de tener ZODB por debajo nos va de maravilla para tener esa flexibilidad de datos que caracteriza a KMKey, pudiendo definir patrones de trabajo con sus campos, etc.   Pero en ocasiones, una vez un patrón está definido, configurado y en funcionamiento, tener los datos en SQL nos iría mejor para su explotación.   Bien, pues también tenemos solución para eso:  se pueden configurar los schemas para que graben sus datos en postgresql&lt;br /&gt;&lt;br /&gt;Para ello se tiene que instalar el producto ZPsycopgDA en Zope.   En Debian lo más fácil es hacer un "apt-get install python-psycopg &amp;&amp; apt-get source python-psycopg", y cogerse el directorio ZPsycopgDA que habrá dentro del fuente, así cuadran las versiones.   Una vez puesto esto en el Products de nuestro zope y reiniciado éste, se crea una conexión Psycopg a la BBDD en el site, llamémosla 'db'.   &lt;br /&gt;&lt;br /&gt;Luego te vas a un portal_schemas, por ejemplo kmkey_work, pestaña "SQL", le indicas el nombre de la conexión 'db', y le das al botoncillo que dice "Migrate To SQL".   Ya tienes tus imputaciones de horas en SQL, y a partir de ahí pista libre ...  repetir para cada uno de los schemas que se quiera&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6304600799818859832?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6304600799818859832/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/pasar-schemas-sql.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6304600799818859832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6304600799818859832'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/pasar-schemas-sql.html' title='Pasar schemas a SQL'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3727200420858957283</id><published>2009-05-22T14:16:00.004+02:00</published><updated>2009-05-22T14:26:43.900+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Exportación / Importación de patrones</title><content type='html'>En la nueva versión de KMKey hemos incluido capacidades para exportar de forma completa patrones de trabajo, y para poder importarlos después desde otra instancia, todo ello desde el TAB Admin.   El formato de intercambio es un simple fichero .tgz que contiene toda una serie de ficheros XML, e incluye información relativa al patrón, sus campos, su layout, sus contadores, sus vocabularios asociados, incluso los grupos de permisos necesarios para utilizarlo.   &lt;br /&gt;&lt;br /&gt;Con ello esperamos:&lt;br /&gt;&lt;br /&gt;1) Facilitar la separación de entornos de desarrollo, pruebas y de producción, puediendo traspasar los patrones de una instancia a otra de forma sencilla, y no afectando así las configuraciones a los entornos de producción hasta que esten validadas&lt;br /&gt;&lt;br /&gt;2) Fomentar el intercambio de patrones de trabajo entre los miembros de la comunidad KMKey.   Porque, si uno dispone de un patrón de gestión comercial que le funciona, ¿ porqué no compartirlo y dejar de reinventar la rueda ?   Ese es el espíritu del sofware libre que puede ayudarnos a mejorar mucho a muchas pequeñas empresas, en lugar de mejorar sólo un poco cada una.    Intentaremos ubicar un repositorio de patrones de trabajo en esta misma página o en alguna vinculada&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3727200420858957283?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3727200420858957283/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/exportacion-importacion-de-patrones.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3727200420858957283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3727200420858957283'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/exportacion-importacion-de-patrones.html' title='Exportación / Importación de patrones'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1128358762900963194</id><published>2009-05-21T12:30:00.004+02:00</published><updated>2009-09-16T15:51:53.767+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>Darle cancha a postgresql</title><content type='html'>Como últimamente todas las instalaciones de KMKey van totalmente sobre postgresql gracias a relstorage, es aconsejable darle más máquina a la BBDD de la que viene por defecto al instalar el paquete de postgresql. &lt;br /&gt;&lt;br /&gt;El problema es que al intentar hacerlo nos encontramos con que da un error de máximo tamaño de buffers.    La receta para solucionarlo está perfectamente explicada, aquí:  http://www.postgresql-es.org/node/229   aunque lo principal, aparte de ajustar el postgresql.conf, es esto&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) Editar el fichero /etc/sysctl.conf, y añadir la linea:&lt;br /&gt; kernel.shmmax = 2147483648  (para 2 GB de RAM)&lt;br /&gt;                 268435456   (para 256 MB de RAM)&lt;br /&gt;536870912 (para 512 MB de RAM)&lt;br /&gt;&lt;br /&gt;2) Para instalar los cambios tenemos que ejecutar el comando&lt;br /&gt; sysctl -p /etc/sysctl.conf&lt;br /&gt;&lt;br /&gt;Respecto a los ajustes del postgresql.conf, para un servidor dedicado a KMKey con 2GB de RAM disponibles, podemos ajustar el shmmax a 512 MB y establecer los siguientes parámetros, a nivel orientativo:&lt;br /&gt;&lt;br /&gt;shared_buffers = 32768&lt;br /&gt;temp_buffers = 16384                 &lt;br /&gt;work_mem = 32768                     &lt;br /&gt;maintenance_work_mem = 16384&lt;br /&gt;max_stack_depth = 2048                &lt;br /&gt;&lt;br /&gt;max_fsm_pages = 200000             &lt;br /&gt;max_fsm_relations = 10000&lt;br /&gt;&lt;br /&gt;effective_cache_size = 8000&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1128358762900963194?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1128358762900963194/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/darle-cancha-postgresql.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1128358762900963194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1128358762900963194'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/darle-cancha-postgresql.html' title='Darle cancha a postgresql'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-732886843973160636</id><published>2009-05-21T10:55:00.002+02:00</published><updated>2009-05-21T11:07:03.360+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Extender el uso de patrones</title><content type='html'>Aunque hasta ahora el uso de patrones se ha limitado primoridalmente a patrones de trabajo (o sea, de proyectos / expedientes), ya hace tiempo que detectamos que este modelo es muy útil por su potencia y flexibilidad, así que poco a poco lo hemos ido incorporando a otras partes de la aplicación, creando patrones de contactos, de empresas, de gastos o de ventas.  En la nueva versión de KMKey vamos un pasó más allá, y vamos a abrir la posibilidad de personalizar, mediante patrones, casi todo tipo de contenido.   &lt;br /&gt;&lt;br /&gt;Se ha habilidado copiar patrones de todo tipo para poder peersonalizarlos.   Así por ejemplo, podemos duplicar el patrón de gasto y crear una píldora kilometrage, en la que luego ajustemos campos y valores por defecto.&lt;br /&gt;&lt;br /&gt;También se ha abierto la posibilidad de bloquear perfiles en la creación de dichos objetos, algo que hasta ahora sólo se aplicaba a proyectos.   De esta forma, se puede configurar que las píldoras de gastos sólo sean visibles a su Propietario y al responsable del proyecto, o crear un nuevo tipo de contactos de uso exclusivo de la Dirección, por citar algunos casos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-732886843973160636?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/732886843973160636/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/extender-el-uso-de-patrones.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/732886843973160636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/732886843973160636'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/extender-el-uso-de-patrones.html' title='Extender el uso de patrones'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4215863691028485445</id><published>2009-05-19T19:41:00.001+02:00</published><updated>2009-05-19T19:44:29.619+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Filosofadas'/><title type='text'>Apuesta por el Teletrabajo</title><content type='html'>Hará unos cinco años que teletrabajo a tiempo completo.  Fundamentalmente me dedico a desarrollar e implantar software libre y, como además el software es en entorno web, nos dijimos ¿ porqué no hacerlo a distancia ?   Pasado este tiempo, y en pleno debate del cambio de modelo productivo, me gustaría compartir algunas reflexiones sobre mi experiencia&lt;br /&gt;&lt;br /&gt;1) ¿ Que sentindo tiene perder una o dos horas de tu vida cada dia iendo y viniendo, cuando puedes realizar tu trabajo a distancia?   Eso es lo primero que uno aprecia cuando teletrabaja, el tiempo ganado a los trayectos.   Eso si, para evitar empleados demasiado listos, las empresas  tienen que disponer de algun sistema de control de los trabajos realizados (nosotros usamos KMKey, como no podía ser de otra manera).&lt;br /&gt;&lt;br /&gt;2) Puedes mudarte a un lugar tranquilo.  Pasado un tiempo, y viendo que la situación era estable, me mudé con mi familia a vivir a Menorca.   Ahora que empieza el calorcillo, plantarse en una playa paradisíaca en 15 minutos no tiene precio (no pongo fotos para no dar demasiada envídia)&lt;br /&gt;&lt;br /&gt;3) El sueldo importa, pero no es lo más importante.   Mi sueldo está lejos del de muchos compañeros de promoción, pero a veces hay que saber renunciar a algo de dinero para ganar en calidad de vida.   Mi rutina matutina es levantar a los niños, desayunar tranquilamente, llevarlos al colegio dando un paseo, tomarme un café con unos amigos, y aun me sobra tiempo para llegar paseando a mi “teleoficina” a las 9 de la mañana.   Cuando recuerdo como era la rutina matutina en un gran ciudad y trabajando con corbata, no lo cambiaría por nada del mundo.&lt;br /&gt;&lt;br /&gt;4) La conciliación de la vida familiar y laboral.   En mi caso eso es especialmente importante, porque con 4 hijos y una esposa que también trabaja, poder combinarse los horarios y tener una solución cuando un niño se pone enfermo a las 7 de la mañana es algo que se valora, y mucho.&lt;br /&gt;&lt;br /&gt;Bueno, esas son las cosas que más aprecido del teletrabajo yo personalmente.   Otros compañeros tienen otras preferencias, y aprovechan para trabajar algunos meses desde Argentina mientras aprenden tango, o desde Brasil tumbados al sol, en lugar de cambiarse permanentemente de residencia.   Cada loco con su tema, claro.&lt;br /&gt;&lt;br /&gt;En fin, que cuando oigo hablar tanto de aumento de eficiencia y competitividad, de fomentar  negocios basados en el conocimiento y las nuevas tecnologías, de conciliar vida familiar y laboral, no puedo evitar preguntarme porqué no se implanta de una vez el teletrabajo de forma extensiva en las empresas de servicios, eliminando todos esos absurdos trayectos estresantes, compensando a los empleados con otras ventajas que no sean más dinero, dispersando a la población ...  saldríamos todos ganando, porque cuando uno está contento trabaja mejor, porque acepta incluso cobrar un poco menos, porque la empresa puede buscar al mejor para cada puesto viva donde viva, etc. etc.   Dejemos de ver estas cosas como algo del futuro, son el presente inmediato.   &lt;br /&gt;&lt;br /&gt;Ah ¿ que donde trabajo ?  En Earcon S.L., una empresa 2.0, como lo han definido algunos de nuestros propios clientes :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4215863691028485445?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4215863691028485445/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/apuesta-por-el-teletrabajo.html#comment-form' title='9 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4215863691028485445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4215863691028485445'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/apuesta-por-el-teletrabajo.html' title='Apuesta por el Teletrabajo'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7612369147053908315</id><published>2009-05-15T14:09:00.004+02:00</published><updated>2009-05-22T11:20:03.297+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Configuración Básica de Permisos</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Configuración permisos KMKey&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Por defecto KMKey viene con los siguientes grupos de permisos asociados a roles de CPS, y  configurados como &lt;span style="font-style: italic;"&gt;Perfiles de Aplicación&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;- Lector Aplicación (WorkspaceReader)--&gt; Ver Contenido (y Listar)&lt;br /&gt;- Usuario Aplicación (WorkspaceMember)--&gt; Ver, Crear y Modificar&lt;br /&gt;&lt;div style="text-align: left;"&gt;- Responsable Aplicación (WorkspaceManager) --&gt;Ver,Crear,Modificar,Gestionar equipo y Planificar&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Estos permisos se pueden configurar desde la gestión de grupos, pero respetando la coherencia de cada uno de los grupos. Por ejemplo, por comodidad, podemos tener la tentación de dar permiso de escritura al 'Lector de Aplicación' , pero lo correcto es agregar los usuarios al grupo 'Usuario Aplicación'.&lt;br /&gt;&lt;br /&gt;Por defecto, Lector Aplicación está asociado a authenticated (vía ZMI), a nivel de site, de tal forma que cualquier usuario que se logine , podrá entrar al KM (pero no podrá ver expedientes, ya que por defecto, en los patrones, se bloquea Lector y Usuario)&lt;br /&gt;Opcionalmente, También podemos asociar authenticated a Usuario Aplicación si queremos que todo el mundo pueda crear expedientes.&lt;br /&gt;&lt;br /&gt;Por otro lado tenemos los siguientes grupos de permisos asociados a roles, pero no activados como Perfil de Aplicación, si no que serán &lt;span style="font-style: italic;"&gt;perfiles de Expediente&lt;/span&gt; (sólo actuarán a nivel de expediente)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;- Lector Expediente (Reader) --&gt; Ver Contenido&lt;br /&gt;- Propietario (Owner) --&gt; Ver,Crear,Modificar,Gestionar Equipo,Planificar&lt;br /&gt;- Responsable Expediente (Responsable) --&gt;  Ver,Crear,Modificar,Gestionar Equipo,Planificar&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Por defecto, cuando se crea un objeto dentro de KM, se asigna automáticamente el usuario que lo crea como Owner (si no, una vez creado, no podría acceder a él)&lt;br /&gt;Para dar acceso a un usuario dentro de un expediente, podemos agregarlo como 'Lector Expediente' y en este momento podrá verlo&lt;br /&gt;Para dar permisos de Modificación u otros a un usuario dentro de un expediente, crearemos los nuevos perfiles de expediente necesitemos (Técnico, Secretaria, etc...) intentando unificar y utilizar el menor número de perfiles posibles&lt;br /&gt;&lt;br /&gt;Con esta configuración mínima, ya podemos gestionar los siguientes casos:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;- Todo usuario podrá entrar a la aplicación y ver expediente, contactos y grupos&lt;br /&gt;- Todo el mundo que pertenezca a 'Usuario Aplicación' podrá crear cualquier tipo de expediente (ya pertenezca al grupo de forma implicita o vía asignación a authenticated)&lt;br /&gt;- Todo el mundo verá únicamente los expedientes donde esté asignado (Como creador , lector u otro)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Esta configuración contempla la mayoría de casos que necesitaremos&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configuraciones avanzadas&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Como hemos comentado antes, creando nuevos perfiles de expediente determinaremos qué podrá hacer cada usuario dentro de cada expediente (Técnico podrá añadir, pero no planificar, Responsable Delegación podrá planificar, etc... )&lt;br /&gt;&lt;br /&gt;En la configuración de patrones, tenemos las dos utilidades siguientes:&lt;br /&gt;&lt;br /&gt;1- Qué perfiles pueden participar y qué perfiles se bloquean (Opción 'Modificar') en los expedientes creados a partir de este patrón&lt;br /&gt;2- Qué perfiles pueden ver o no el propio patrón  (Acción 'Bloquear Perfiles')&lt;br /&gt;&lt;br /&gt;La opción 1 nos permite configurar, por ejemplo (viene por defecto en todo nuevo patrón) que 'Usuario Aplicación' y 'Lector Aplicación' NO puedan ver los expedientes creados con este patrón.&lt;br /&gt;&lt;br /&gt;La opción 2 nos permite bloquear el propio patrón, o sea, podemos bloquear el 'Usuario Aplicación' para que NO pueda crear expedientes de determinado tipo&lt;br /&gt;&lt;br /&gt;Estas configuraciones también son aplicables a los patrones de Píldoras, permitiendo seleccionar qué perfiles podrán o no crear ventas, horas, etc...&lt;br /&gt;&lt;br /&gt;Ejemplos:&lt;br /&gt;&lt;br /&gt;Caso: Queremos que TODO usuario loginado vea los expedientes de determinado tipo:&lt;br /&gt;Configuración : Patrón --&gt; Modificar --&gt; Roles Bloqueados --&gt; Desactivar 'Lector Aplicación' (Esto lo podemos hacer también a nivel de un expediente, en gestionar contactos, desactivando el perfil bloqueado)&lt;br /&gt;&lt;br /&gt;Caso : Queremos que únicamente el 'Responsable Aplicación' pueda crear expedientes con el patrón 'Oferta'&lt;br /&gt;Configuración : Patrón --&gt; Bloquear Perfiles --&gt; Columna de perfiles bloqueados --&gt; activarlos TODOS menos el de 'Responsable de Aplicación'. (Nota : Esta configuración tiene el 'problema' que, cuado añadamos un nuevo perfil de aplicación, deberemos revisar los patrones para bloquear este nuevo perfil, si es necesario, ya que no se hace de forma automática)&lt;br /&gt;&lt;br /&gt;La definición de los permisos se puede llegar a complicar bastante, así que és muy recomendable definirla bien desde el principio.&lt;br /&gt;&lt;br /&gt;El caso más 'problemático' sería la creación o cambios  de configuración en los Perfiles de Aplicación una vez ya se hayan introducido expedientes, lo que requiere, por un lado, revisar la configuración de los patrones, y por otro, reindexar todos los expedientes para que se apliquen los nuevos cambios (sólo en caso de modificación de un perfil existente)&lt;br /&gt;&lt;br /&gt;La recomendación es NO CREAR NINGÚN perfil de aplicación, utilizar únicamente los 3 que ya viene por defecto (Lector Aplicación, Usuario Aplicación y Responsable Aplicación) y gestionar los accesos a los patrones mediante los bloqueos de grupos de sistema, siguiendo la misma técnica q hemos comentado antes, ya que se puede aplicar a cualquier perfil, y solucionamos la problemática antes comentada&lt;br /&gt;&lt;br /&gt;finalmente tendríamos el caso de de que queramos dar acceso a un grupo determinado a los expedientes de determinado patrón. Esto la haremos creando un campo del tipo 'KM Relation' en el schema, con un default value y un write expression string:docid_de_grupo, y asociado al role Reader, de tal forma q se asignará  automáticamente al crear el expediente, una asoación entre el grupo y el perfil Reader, lo que dará acceso al expediente.&lt;br /&gt;&lt;br /&gt;De esta forma se pueden ir añadiendo funcionalidades y cada uno sigue&lt;br /&gt;viendo lo suyo, y solucionamos el problema que produce añadir un nuevo&lt;br /&gt;perfil de aplicación con respecto a los expedientes existentes de&lt;br /&gt;otros departamentos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7612369147053908315?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7612369147053908315/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/configuracion-basica-de-permisos.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7612369147053908315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7612369147053908315'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/configuracion-basica-de-permisos.html' title='Configuración Básica de Permisos'/><author><name>Albert Buyó</name><uri>http://www.blogger.com/profile/02441204950212620107</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-5438391983615251266</id><published>2009-05-13T10:18:00.003+02:00</published><updated>2009-05-13T10:34:13.703+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Mejoras de velocidad (II)</title><content type='html'>Siguiendo con el tema de las mejoras de velocidad del programa para volúmenes elevados de datos, hemos dado con un fallo heredado de Nuxeo CPS (gestor de contenidos sobre el que se basa KMKey).   El fallo estaba relacionado con la gestión de árboles de navegación, y afectaba especialmente el navtree de proyectos y tareas.&lt;br /&gt;&lt;br /&gt;Día y medio después de la puesta en funcionamiento de la correción en entorno beta, podemos decir que ha sido un de los mayores avances en el rendimiento de KMKey.   En conjunto, desde que se empezaron las mejoras en este sentido, el consumo de RAM se ha dividido por 5, el consumo de CPU ha pasado de un 100% frecuente a no superar el 40% prácticamente nunca, y la velocidad en uso de los usuarios ha mejora espectacularmente.&lt;br /&gt;&lt;br /&gt;A falta de mejoras en puntos específicos del programa (no ya de carácter general), podemos asegurar que la nueva versión de KMKey 3 responderá bien en empresas grandes, independientemente del volumen de datos, usando simplemente un servidor de gama media, y teniendo la tranquilidad de disponer de una arquitectura totalmente escalable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-5438391983615251266?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/5438391983615251266/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/mejoras-de-velocidad-ii.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5438391983615251266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5438391983615251266'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/mejoras-de-velocidad-ii.html' title='Mejoras de velocidad (II)'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3297264473101549421</id><published>2009-05-13T09:55:00.003+02:00</published><updated>2009-05-13T10:05:21.957+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Cambiar formato de un campo contador</title><content type='html'>Cuando a través de KMKey añadimos un campo a un patrón de trabajo del tipo "Contador", los expedientes creados a partir de ese patrón de trabajo tienen un formato por defecto (PM-00000), pero con frecuencia queremos que ese formato cambie en función del patrón.   &lt;br /&gt;&lt;br /&gt;Por ejemplo, si queremos que nuestras No Conformidades tengan contadores del tipo NC0000, tenemos que entrar al ZMI (http://url_kmkey/manage), e irnos al objeto portal_uid.   Allí encontraremos diversos contadores, con el nombre idpatron_idcampo.   Pinchamos en el que nos interesa, y nos vamos a la pestaña "Properties".   En el campo "Generation Expression" ponemos el formato que deseamos, en este ejemplo "python:'NC%04i' % number"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3297264473101549421?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3297264473101549421/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/cambiar-formato-de-un-campo-contador.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3297264473101549421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3297264473101549421'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/cambiar-formato-de-un-campo-contador.html' title='Cambiar formato de un campo contador'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-8770803975763227799</id><published>2009-05-12T14:13:00.004+02:00</published><updated>2010-05-06T10:01:59.714+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Reconstruir un portal_repository</title><content type='html'>Esta es una de las cosas en que nadie desea encontrarse: una corrupción de ZODB.   De hecho es la primera que se ha producido desde que KMKey existe, y ha sido debida a una conjunción de uso de BLOGS en postgresql (cosa que no debería hacerse nunca, porque existe la alternativa de gestionarlos como ficheros locales) + errores de conexión a postgresql (que se encontraba en otra máquina y ha dado diversos problemas de conexión por DNS y máximo de conexiones permitidas).   El hecho es que nos hemos encontrado con una corrupción de 11 objetos del portal_repository, que no había forma ni de borrar.   Finalmente todo se ha solucionado recuperando copias de seguridad, exportando los objetos afectados del portal_repository no corrupto, y reconstruyendo el BTree.   Después de eso, se han importado los objectos correspondientes el la BBDD de producción, y todo solucionado.   La parte realmente dificil ha sido reconstruir el BTree, así que pego aquí el script para que quede para la posteridad:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;repo = km.portal_repository&lt;br /&gt;from BTrees.OOBTree import OOBTree&lt;br /&gt;repo._tree_old = repo._tree&lt;br /&gt;repo._tree = OOBTree()&lt;br /&gt;i = 0&lt;br /&gt;no_procesados = []&lt;br /&gt;for mt in repo._mt_index.keys():&lt;br /&gt;   for id in repo._mt_index[mt]:       &lt;br /&gt;       try:&lt;br /&gt;           ob = repo._tree_old[id]&lt;br /&gt;           repo._tree[id] = ob&lt;br /&gt;       except KeyError:&lt;br /&gt;           print "No se procesa %s" % id&lt;br /&gt;           no_procesados.append(id)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-8770803975763227799?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/8770803975763227799/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/reconstruir-un-portalrepository.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8770803975763227799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8770803975763227799'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/reconstruir-un-portalrepository.html' title='Reconstruir un portal_repository'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-5830410788352679810</id><published>2009-05-11T23:27:00.006+02:00</published><updated>2009-05-12T10:21:19.781+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Formación KMKey HelpDesk</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;KMKey HelpDesk&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;En este punto se supone que se ha explicado la parte común del interface así como los procedimientos de funcionamiento operativo que son transversales a toda la aplicación.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Introducción:&lt;/span&gt;&lt;br /&gt;La estructura propia de &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt; lo hace idóneo para su configuración como software para la gestión de incidencias, servicios de mantenimiento, sistemas de ayuda al usuario, servicios de atención al cliente, servicios de gestión de averías, o Tickets I*net, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conceptos principales:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Entorno colaborativo.&lt;/li&gt;&lt;li&gt;Los participantes en &lt;span style="font-weight: bold;"&gt;KMKey HelpDesk&lt;/span&gt; (permisos y accesos) pueden estar definidos desde el operador que recibe la incidencia, hasta el gerente, pasando por los técnicos o miembros de los departamentos involucrados en la solución de la incidencia.&lt;/li&gt;&lt;li&gt;Los flujos de información y sus participantes pueden quedar definidas y automatizadas en el patrón.&lt;/li&gt;&lt;li&gt;Notificaciones automáticas (por e-mails e interna) a los participantes de cualquier acción.&lt;/li&gt;&lt;li&gt;Interface gráfico para la "visualización" de la evolución de cada incidencia/averia/ticket/queja, etc..&lt;/li&gt;&lt;li&gt;Registro de todas las actividades del sistema, listas para ser explotadas como listados de registros de incidencias, de actividad de los técnicos, de estado de las incidencias por categoria, etc.&lt;/li&gt;&lt;/ul&gt;Las acciones propias a todos estos servicios se pueden sistematizar y automatizar como distintos patrones de &lt;span style="font-weight: bold;"&gt;KMKey HelpDesk&lt;/span&gt;.&lt;br /&gt;La automatización puede extenderse a la división en distintas tareas de la acción, sus fechas y plazos de desarrollo, sus responsables, los documentos generables de registro asociados, etc.&lt;br /&gt;&lt;br /&gt;Más que en Project y en Quality, los efectos que "causan" en &lt;span style="font-weight: bold;"&gt;KMKey HelpDesk&lt;/span&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;la posibilidad de la sistematización de toda la secuencia de acciones en patrones de trabajo...&lt;/li&gt;&lt;li&gt;el hecho que estos patrones de trabajo puedan incluir un flujo de la información bien definido...&lt;/li&gt;&lt;li&gt;entre un número de participantes con&lt;/li&gt;&lt;li&gt;pocos roles intercambiables y perfiles de intervención, también, muy bién definidos&lt;/li&gt;&lt;/ol&gt;facilitan extraordinariamente las tareas de recogida de requerimientos y las labores de formación, en todo lo que respecta a las partes básicas de funcionamiento de la aplicación.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Prácticas de funcionamiento&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conceptos Previos:&lt;/span&gt;&lt;br /&gt;Introducción a la "filosofía" de proyectos/expedientes en 5 pasos, que coinciden con los TABS: DEFINICIÓN, EQUIPO, PLANIFICACIÓN, GESTIÓN Y CONTROL.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar (recordar) la vinculación entre patrones a la vista y filtros automáticos.&lt;/li&gt;&lt;li&gt;Recordar que no todos los usuarios del sistema tendrán las mismas posibilidades de "iniciar" Nuevos expedientes/acciones, o de intervenir en ellos.&lt;/li&gt;&lt;li&gt;Recordar que los campos de cualquier "Nuevo" son definibles según las necesidades del cliente.&lt;/li&gt;&lt;li&gt;En función del usuario que estemos utilizando aprovechar para entrar como "manager" y mostrar en el TAB: ADMIN la lista de patrones, su estructura XML y los campos de un patrón en concreto.&lt;/li&gt;&lt;li&gt;Recordar que en los patrones de las distintas acciones podemos dejar programado, TAMBIÉN, el flujo de trabajo del mismo:&lt;br /&gt;- quién lo inicia,&lt;br /&gt;- a quién lo envia,&lt;br /&gt;- a quién se notifica,&lt;br /&gt;- qué decisiones se toman,&lt;br /&gt;- cómo y cuando se supervisan,&lt;br /&gt;- quiénes son sus responsables, etc.&lt;/li&gt;&lt;/ul&gt;Así en &lt;span style="font-weight: bold;"&gt;KMKey Help Desk&lt;/span&gt; tenemos a disposición un sólo patrón para la demostración.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 1&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Iniciamos un patrón de Ticket I*net.&lt;/li&gt;&lt;li&gt;Utilizamos el usuario (eva).&lt;/li&gt;&lt;li&gt;Recogemos los datos.&lt;/li&gt;&lt;li&gt;Decidimos un Revisor de la Incidencia (raúl).&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;TAB DEFINICIÓN&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostramos que se ha inciado un expediente en el NAVTREE y lo abrimos mostrando la tarea asociada.&lt;/li&gt;&lt;li&gt;Salimos del usuario eva.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 2&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Entramos como raúl.&lt;/li&gt;&lt;li&gt;Mediante el sistema de Mensajes, mostramos como que da notificado de su afectación a ese expediente.&lt;/li&gt;&lt;li&gt;Mostramos que existen una serie de nuevos datos listos para ser recogidos a través de DEFINICIÓN &gt; Modificar.&lt;/li&gt;&lt;li&gt;Raúl rellena la parte que le corresponde y la envia al receptor rafa.&lt;/li&gt;&lt;li&gt;Salimos del usuario raúl.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 3&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Entramos con el usuario rafa.&lt;/li&gt;&lt;li&gt;Volvemos a mostrar como nuevos campos se añaden al TAB DEFINICIÓN.&lt;/li&gt;&lt;li&gt;Entramos en el expediente mediante el sistema de notificaciones que también habrá funcionado en este caso.&lt;/li&gt;&lt;li&gt;Rafa rellena la parte de información restante.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Prácica 4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TAB EQUIPO&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Podemos asignar un usuario al expediente y darle permisos mediante un rol.&lt;/li&gt;&lt;li&gt;Explicar que el usuario podrá definir los roles que necesite.&lt;/li&gt;&lt;li&gt;Mostrar un grupo que sea de Técnicos.&lt;/li&gt;&lt;li&gt;Asignar un grupo de técnicos al expediente.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TAB PLANIFICAR&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Podemos mostrar la posibilidad de que en otros patrones (mostrar ejemplos de Project o Quality) se puede modificar la planificación de la tareas y/o sus responsables.&lt;/li&gt;&lt;li&gt;No hace falta insistir demasiado en ese aspecto, aunque si en el siguiente.&lt;/li&gt;&lt;li&gt;Mostrar como podemos realizar (para patrones en los cuales el flujo no este tan definido internamente como en el de Ticket I*net) asignaciones en fecha, (día y hora) para un técnico concreto del equipo añadido anteriormente.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;TAB GESTIÓN&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Introducción a la filosofía de los 4 ejes de desarrollo, aunque, en la mayoría de casos no se utilizen los 4 ejes.&lt;/li&gt;&lt;li&gt;Insistir en el eje conocimiento/información.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Añadir Documento&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar la posibilidad del gestor documental y/o gestor de versiones. Sin insistir.&lt;/li&gt;&lt;li&gt;Añadir un documento generado a través de plantilla. Resumen de Incidencia.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 7&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Añadir Nota a uno o varios participantes.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 8&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enviar un e-mail desde el expediente.&lt;/li&gt;&lt;li&gt;Enviar un e-mail al expediente o tarea.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 9&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Añadir una imputación de horas.&lt;/li&gt;&lt;li&gt;Hacerla coincidir con la asignación realizada anteriormente.&lt;/li&gt;&lt;li&gt;Mostrar el resultado en  Historia.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 10&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Añadir un gasto personal o una venta sucedidos durante la solución de la incidencia.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;TAB CONTROL&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar los recursos gráficos obtenidos con la pantala específica de HelpDesk.&lt;/li&gt;&lt;li&gt;Mostrar la pantalla de fechas.&lt;/li&gt;&lt;li&gt;Mostrar las posibiliadades de obtener Listados de Tickets, Tareas no finalizadas, Gastos, etc.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-5830410788352679810?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/5830410788352679810/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/formacion-kmkey-helpdesk.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5830410788352679810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/5830410788352679810'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/formacion-kmkey-helpdesk.html' title='Formación KMKey HelpDesk'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6071165249973739985</id><published>2009-05-11T16:02:00.008+02:00</published><updated>2009-05-11T17:48:02.078+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Cerrando el círculo</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Objetivo:&lt;/span&gt; modificar las planificaciones de economía y esfuerzo al desplazar la planificación temporal.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problemática actual&lt;/span&gt;&lt;br /&gt;Dentro de las evoluciones previstas para KMKey Project está la de guardar versiones de la planificación. Esto nos ha de permitir ir modificando las fechas previstas sin perder el historial y poder recuperar versiones anteriores para poder ver la evolución de la planificación.&lt;br /&gt;En la actualidad estas modificaciones no tienen ningún efecto sobre las previsiones económicas y de esfuerzo que permanecen igual, aunque las fechas planificadas para la ejecución de la tarea cambien.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Evolución propuesta:&lt;/span&gt;&lt;br /&gt;Ligar las previsiones de esfuerzo y económicas a la planificación temporal.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modificaciones necesarias:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Esfuerzo:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 255);"&gt;Horas previstas por tarea.&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Hasta ahora, cada tarea tiene unas horas previstas para completar su realización. Lo lógico es que para calcular el esfuerzo necesario, lo hagamos entre las fechas de inicio y fin previstas de la tarea. Si estas cambian en el tiempo. Los días de aplicación del esfuerzo también. La versión actual de KMKey así lo contempla&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 255);"&gt;Recursos reservados.&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Sin embargo, cuando reservamos un recursos  en unas fechas determinadas, las horas de esfuerzo previstas pierden la relación con la planificación de la tarea. Si esta cambia, la reserva del recurso no se ve afectado. Esto es lo que seria lógico cambiar. Lo ideal es que proponga "las fechas previstas de realización de la tarea han cambiado. ¿Quiere aplicar el mismo cambio a los recursos reservados?". En caso afirmativo, ofrecer la pantalla de planificación de recursos para poder realizar la nueva asignación en el periodo previsto.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Economía:&lt;/span&gt;&lt;br /&gt;Actualmente se puede escoger las fechas previstas para las entradas económicas, tanto si se trata de un día como de un periodo. También pueden asignarse a todo el proyecto o una fase o tarea. Pero sin relación entre ambos.&lt;br /&gt;El cambio propuesto es sencillo. Por defecto, las líneas de entrada de conceptos económicos previstos, deberían tener las fechas de inicio y fin previstas en la planificación del momento. De nuevo, si estas cambian, hay que preguntar si se quieren actualizar las fechas previstas a las de la tarea.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6071165249973739985?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6071165249973739985/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/cerrando-el-circulo.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6071165249973739985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6071165249973739985'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/cerrando-el-circulo.html' title='Cerrando el círculo'/><author><name>Joan</name><uri>http://www.blogger.com/profile/00686177384014933502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qa9B0X0vPuk/SgQBsveUnVI/AAAAAAAAA_Y/w35jh5ANkXQ/S220/snu'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-6443488599454115827</id><published>2009-05-11T13:25:00.004+02:00</published><updated>2009-05-11T13:44:16.886+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Formación KMKey Quality</title><content type='html'>&lt;span style="font-style: italic;"&gt;En este punto se supone que se ha explicado la parte común del interface así como los procedimientos de funcionamiento operativo que son transversales a toda la aplicación.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Introducción:&lt;/span&gt;&lt;br /&gt;La estructura propia de KMKey lo hace idóneo para su configuración como software para la gestión de sistemas de calidad de cualquier norma ISO y otras.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Conceptos principales:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Entorno colaborativo.&lt;/li&gt;&lt;li&gt;Los participantes en el SGC (permisos y accesos) pueden estar definidos desde el operario de planta, hasta el gerente, pasando por el propio Dpto. de Calidad y el resto de los mismos.&lt;/li&gt;&lt;li&gt;Los flujos de información y sus participantes pueden quedar definidas y automatizadas en el patrón.&lt;/li&gt;&lt;li&gt;Notificaciones automáticas (por e-mails e interna) a los participantes de cualquier acción.&lt;/li&gt;&lt;li&gt;Interface gráfico para la "visualización" de la evolución de cada expediente.&lt;/li&gt;&lt;li&gt;Registro de todas las actividades del sistema, listas para ser explotadas como listados de registros de calidad, listados de documentos, informes, resúmenes de actividad, de acciones abiertas, cerradas, en trámite, etc.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;KMKey Quality&lt;/span&gt; incorpora un Gestor documental que contempla  el Ciclo: Edición, Revisión, Aprobación y un sistema de gestión de versiones (revisiones) que lo hace idóneo para demostrar la trazabilidad, accesibilidad, actualización y validación de todos los documentos propios de la normativa:&lt;br /&gt;tales como:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Procedimientos Documentados (Obligatorios o no).&lt;/li&gt;&lt;li&gt;Manual y Política de Calidad.&lt;/li&gt;&lt;li&gt;Objetivos e indicadores del sistema.&lt;/li&gt;&lt;li&gt;Organigramas.&lt;/li&gt;&lt;li&gt;Mapas de Procesos.&lt;/li&gt;&lt;li&gt;Instrucciones y hojas de trabajo&lt;/li&gt;&lt;li&gt;Formatos.&lt;/li&gt;&lt;/ul&gt;Las acciones propias a todo SGC (obligatorias por la norma o no) se pueden sistematizar y automatizar como distintos patrones de &lt;span style="font-weight: bold;"&gt;KMKey Quality&lt;/span&gt;.&lt;br /&gt;La automatización puede extenderse a la división en distintas tareas de la acción, sus fechas y plazos de desarrollo, sus responsables, los documentos generables de registro asociados, etc.&lt;br /&gt;asi como:&lt;br /&gt;Todo tipo de registros (obligatorios por la norma o no).&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Gestión completa de No Conformidades.&lt;/li&gt;&lt;li&gt;Acciones Correctivas/Preventivas.&lt;/li&gt;&lt;li&gt;Revisiones del Sistema.&lt;/li&gt;&lt;li&gt;Planes de Auditoría.&lt;/li&gt;&lt;li&gt;Planes de Mejora.&lt;/li&gt;&lt;li&gt;Planes y registro de Formaciones.&lt;/li&gt;&lt;li&gt;Seguimiento y Evaluación de Proveedores.&lt;/li&gt;&lt;li&gt;Gestión y Control de Indicadores.&lt;/li&gt;&lt;li&gt;y otros&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;font-size:130%;" &gt;Prácticas de funcionamiento&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Conceptos Previos&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Introducción a la "filosofía" de proyectos/expedientes en 5 pasos, que coinciden con los TABS: DEFINICIÓN, EQUIPO, PLANIFICACIÓN, GESTIÓN Y CONTROL.&lt;/li&gt;&lt;li&gt;Explicar (recordar) la vinculación entre patrones a la vista y filtros automáticos.&lt;/li&gt;&lt;li&gt;Recordar que no todos los usuarios del sistema tendrán las mismas posibilidades de "iniciar" Nuevos expedientes/acciones, o de intervenir en ellos.&lt;/li&gt;&lt;li&gt;Recordar que los campos de cualquier "Nuevo" son definibles según las necesidades del cliente.&lt;/li&gt;&lt;li&gt;En función del usuario que estemos utilizando aprovechar para entrar como "manager" y mostrar en el TAB: ADMIN la lista de patrones, su estructura XML y los campos de un patrón en concreto.&lt;/li&gt;&lt;li&gt;Recordar que en los patrones de las distintas acciones podemos dejar programado, TAMBIÉN, el flujo de trabajo del mismo:&lt;br /&gt;- quien lo incia,&lt;br /&gt;- a quien lo envia,&lt;br /&gt;- a quién se notifica,&lt;br /&gt;- que decisiones se toman,&lt;br /&gt;- como y cuando se supervisan,&lt;br /&gt;- quiénes son sus responsables,&lt;br /&gt;- etc.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Iniciamos&lt;/span&gt; (usuario santi) &lt;span style="font-weight: bold;"&gt;una NC de Proveedor&lt;/span&gt; para concentrar las explicaciones de patrón, campos, flujo de trabajo y equipo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;TAB DEFINICIÓN&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Vemos los datos rellenados.&lt;/li&gt;&lt;li&gt;Hacemos observación que NO TODOS los datos de la NC se han rellenado en ese paso, pues puede que el que incia la NC no los conozca o no tenga porqué conocerlos.&lt;/li&gt;&lt;li&gt;Avismos que los campos para la captura de los datos que todavía faltan, irán apareciendo en función del usuario y paso en el que se encuentre la acción.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;TAB EQUIPO&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Vemos los participantes incorporados con perfiles de Creador y Receptor&lt;/li&gt;&lt;li&gt;Damos a entender que este flujo podría completarse todavía con un aprovador/revisor o enlazarlo con otra acción del sistema como podría ser una AC/AP.&lt;/li&gt;&lt;li&gt;Salimos del usuario santi y entramos como Albert, o el que hayamos elegido como receptor.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;TAB DEFINICIÓN (2º participante)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Selecionamos el objeto en el NAVTREE y el TAB DEFINICIÓN &gt; MODIFICAR.&lt;/li&gt;&lt;li&gt;Rellenamos parte de los datos en los nuevos campos que aparecen.&lt;/li&gt;&lt;li&gt;Mostramos como podemos iniciar en esa parte del flujo (o en cualquier otra que definiese el cliente) una AC/AP.&lt;/li&gt;&lt;li&gt;Realizamos la práctica de vincular una y otra.&lt;/li&gt;&lt;li&gt;Mostramos el nuevo expediente de AC/AP incorporado al NAVTREE.&lt;/li&gt;&lt;li&gt;Si no se tiene preparado, montar un filtro en el que se muestren la NC (de proveedor) y las AC/AP.&lt;/li&gt;&lt;li&gt;Mostrar como podemos pasar de una a la otra NC &gt; AC/AP y de esta a la NC que la originó.&lt;/li&gt;&lt;li&gt;Mostrar como el flujo y los responsables/fechas/verificaciones/cierres se pueden adaptar a las necesidades de cada organización.&lt;/li&gt;&lt;li&gt;Mostrar como, además, con KMKey Quality tendremos la posibilidad de visualizar en cada momento el estado de cada "acción".&lt;/li&gt;&lt;li&gt;Mostrar como podemos dividir tanto la NC, como la AC/AP en tareas que aparecen en el NAVTREE.&lt;/li&gt;&lt;/ul&gt;En este punto hay que recordar que las explicaciones de Quality no deben hacer "demasiada" insistencia en las partes "fuertes" de KMProject que no se utilizan con el mismo "espiritu" en Quality.&lt;br /&gt;Así, por ejemplo, la división de una acción en distintas tareas, con desarrollo espaciado y secuenciado en el tiempo, con responsables de cada acción queda más evidente si elegimos iniciar una patrón de Auditoría Interna, aunque sólo sea como ejemplo.&lt;br /&gt;Eso es así, debido a que la mayoría de los otros patrones de Quality no dependen tanto de la división en tareas y su desarrollo "al modo" de un proyecto, como de un "flujo de trabajo y orden de intervenciónes" que sumado a unos roles bien definidos configuran toda la acción.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 2&lt;/span&gt;&lt;br /&gt;Por tanto,&lt;span style="font-weight: bold;"&gt; iniciamos un patrón de Auditoría Interna&lt;/span&gt;, más como un ejemplo para LOS TABS EQUIPO y PLANIFICAR, que como otra cosa.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostramos mediante la apertura del nuevo expediente su división en tareas, con fechas y responsables.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;TAB PLANIFICAR&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostramos, mediante la elección de una escala de visualización apropiada, el histograma GANTT del desarrollo de las tareas.&lt;/li&gt;&lt;li&gt;Mostramos como mediante "Editar Planificación" o mediante "Modificar" podríamos variar a voluntad las fechas de incio y final de tarea y adaptarlas a nuestras necesidades.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;TAB EQUIPO&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostramos como podemos crear un supuesto equipo de Auditores, como Grupo de Recursos/Permisos.&lt;/li&gt;&lt;li&gt;Añadimos integrantes a este equipo.&lt;/li&gt;&lt;li&gt;Añadimos el equipo creado al expediente nuevo de Auditoria.&lt;/li&gt;&lt;li&gt;Volvemos al TAB PLANIFICAR.&lt;/li&gt;&lt;li&gt;Mostramos como podemos variar el responsable de las tareas.&lt;/li&gt;&lt;li&gt;Mostramos (PLANIFICAR-RECURSOS) y como en un momento dado podríamos llegar a planificar: qué auditor hace qué en una tarea y dia concreto.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 3&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Realizamos una asignación&lt;/span&gt; y la mostramos en el TAB GESTIÓN &gt; Historia.&lt;/li&gt;&lt;li&gt;Advertimos de la posibilidad de que ciertos patrones tengan como opción que las tareas se incien automáticamente con la inclusión de un item de información o que por el contrario se abarn manualmente.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;TAB GESTIÓN&lt;/span&gt;&lt;br /&gt;Aprovechando la anterior explicación y el expediente de Auditoria recien creado, pasamos al ámbito del TAB GESTIÓN&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostramos los 4 tipos de elementos de información pertenecientes a los 4 ejes de desarrollo de todo proyecto/expediente. (INFORMACIÓN, TIEMPO, ECONOMÍA y ESFUERZO.&lt;/li&gt;&lt;li&gt;En este punto hay que advertir que permanecen a la vista los elementos temporales, económicos y de esfuerzo que aunque no sean demasiado "vitales" para los SGC, los mantemos a la vista como posibilidad. (Otros lientes nos los han solicitado)&lt;/li&gt;&lt;li&gt;Insistir en los elementos pertenecientes al eje conocimiento/información.&lt;/li&gt;&lt;li&gt;Volver a mencionar las prestaciones de KMKey en cuanto al mantenimiento de un sistema de gestión de documental, incorporando un ciclo (Edición, Revisión, Aprobación) totalmente nomativizado.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 4&lt;/span&gt;&lt;br /&gt;Por tanto, iniciamos un ejercicio de "&lt;span style="font-weight: bold;"&gt;Añadir documento&lt;/span&gt;" y advertimos que lo someteremos por completo al ciclo mencionado.&lt;br /&gt;Inciamos la práctica con el usuario santi, como editor.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sube un documento, genera una versión y la envia a revisión.&lt;/li&gt;&lt;li&gt;Mostrar los cambios que se producen en la visión de &lt;span style="font-weight: bold;"&gt;Historia&lt;/span&gt;. (Documento -copia- Bloqueada, y copia en "Revisión".&lt;/li&gt;&lt;li&gt;Salir de santi y entrar como albert. Mencionar los cambios en la cantidad de patrones que puede o no iniciar y que en ese momento están a la vista.&lt;/li&gt;&lt;li&gt;Mostrar el sistema de mensajería y de como queda avisado (notificado) de la necesidad de intervenir en ese expediente con una tarea en concreto: revisar el documento.&lt;/li&gt;&lt;li&gt;Acceder al documento desde Mensajes.&lt;/li&gt;&lt;li&gt;Visualizar el documento y enviarlo a aprobación.&lt;/li&gt;&lt;li&gt;Comentar que el revisor NO DEBE editar el documento por si mismo y que si encuentra algo anormal debe "rechazar" la versión.&lt;/li&gt;&lt;li&gt;Explicar que entonces volvería (con notificación incluída al editor.&lt;/li&gt;&lt;li&gt;Salir de albert y entrar como joan.&lt;/li&gt;&lt;li&gt;Acceso al expediente mediante Mensajes (Notificaiones).&lt;/li&gt;&lt;li&gt;Aprobar el documento.&lt;/li&gt;&lt;li&gt;Mencionar la "consolidación" en una sóla copia de trabajo.&lt;/li&gt;&lt;li&gt;Mostrar (con un usuario con suficientes permisos) todo el login de actividad del documento y el sistema de gestión de versiones.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modificar un documento.&lt;/span&gt;&lt;br /&gt;Con el fin de que este tipo de acciones que luego se convertirán en actividades frecuentes se repite la práctica anterior, pero ahora simulando que el documento ha sufrido una modificación (puede ser un logo, o un párrafo distinto)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tener preparadas 2 versiones del documento. Mostrar las diferencias entre la que ya está incorporada y la que vamos a "subir".&lt;/li&gt;&lt;li&gt;Reemprender la práctica desde el momento en que el editor solicita generar una nueva versión.&lt;/li&gt;&lt;li&gt;Modificar ese borrador cargando el documento con el logo o el párrafo cambiado.&lt;/li&gt;&lt;li&gt;Enviarlo a Revisión.&lt;/li&gt;&lt;li&gt;Entrar como revisor&lt;/li&gt;&lt;li&gt;Revisarlo y enviarlo a aprobación.&lt;/li&gt;&lt;li&gt;Entrar como aprobador.&lt;/li&gt;&lt;li&gt;Aprobarlo y desde un usuario con permisos acceder mostrar el nuevo login de actividad y el cambio en el numeral de la versión/revisión.&lt;/li&gt;&lt;li&gt;Acceder a la versión anterior.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Añadimos una nota.&lt;/span&gt;&lt;br /&gt;Cualquier usuario redacta y envia una nota.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar el resultado en Historia.&lt;/li&gt;&lt;li&gt;Mostrar el filtro de información propia de la opción.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Práctica 7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Añadimos un e-mail.&lt;/span&gt;&lt;br /&gt;Cualquier usuario (santi, albert, joan), aprovechando que ya hay documentos incorporados en el expediente de práctica:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enviar un e-mail a otro participante o a otro contacto.&lt;/li&gt;&lt;li&gt;Enviar un e-mail a un expediente o a una tarea KMKey.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Práctica 8&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Añadir un documento generado mediante plantilla.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Recordamos que ademas de conservar los registros en formato digital, con la información de los mismos podremos generar documentos mediante plantilla y que se pueden incorporar al expediente.&lt;/li&gt;&lt;li&gt;Mostrar una NC y generar un Informe/resumen de la misma.&lt;/li&gt;&lt;li&gt;Comentar las diferencias entre la información recogida en KMKey y la introducida mediante "Subir Dcocumento".&lt;/li&gt;&lt;li&gt;Comentar la posibilidad de generar el informe en distintos formatos.&lt;/li&gt;&lt;li&gt;Diferenciar este tipo de documentos de lo que son propiamente los Informes o Listados que obtenemos en el TAB CONTROL&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;TAB CONTROL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar visualizaciones de Fechas.&lt;/li&gt;&lt;li&gt;Informes. Extraer algún ejemplo de informe.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-6443488599454115827?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/6443488599454115827/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/formacion-lmley-quality.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6443488599454115827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/6443488599454115827'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/formacion-lmley-quality.html' title='Formación KMKey Quality'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7570818683202027923</id><published>2009-05-08T18:35:00.000+02:00</published><updated>2009-05-08T18:48:57.201+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Mejoras de velocidad (I)</title><content type='html'>A raiz del planteamiento de migración de instalaciones grandes de KMKey 2 hacia KMKey 3, se detectaron serios problemas de rendimiento de la versión 3 de KMKey cuando se trabaja con elevados volúmenes de datos.&lt;br /&gt;&lt;br /&gt;Hemos estado trabajando intensamente para acotar y solucionar estos problemas, y los avances ya son notables, aunque quedan algunos puntos por resolver.    Entre las actuaciones más destacadas, y que se verán incorporadas en la próxima versión estable de KMKey 3, se incluyen:&lt;br /&gt;&lt;br /&gt;1) La adaptación e integración del ZSQLCatalog de ERP 5, desarrollado por Nexedi.   Este catálogo permite reemplazar el catálogo standard de CMF por uno basado en SQL.   Se ha tenido que adaptar para que soporte postgresql y para que se integre con AdvancedQuery.   Finalmente se ha conseguido implantar en versión beta, y ya son pocos los efectos colaterales que quedan por solucionar.   El cambio de rendimiento general es muy notable, y los efectos no desados pocos, teniendo en cuenta que se ha reemplazado parte del núcleo principal de la aplicación&lt;br /&gt;&lt;br /&gt;2) Disminución en el consumo de RAM.   Había ciertos puntos, como la gestión de documentos, la generación de informes, o las relaciones entre objetos, que elevaban desmesuradamente el consumo de RAM.   Estos casos se han ido acotando y corrigiendo, y ahora la RAM disponible puede dedicarse a gestionar cachés de objetos o portlets, con la consiguiente mejora en velocidad&lt;br /&gt;&lt;br /&gt;3) Cambio de campos calculados por campos pre grabados.   Este punto todavía no se ha abordado, pero se perfila como el siguiente caballo de batalla para conseguir un rendimiento óptimo en instalaciones de elevado volumen de datos.   Se trata de cambiar la gestión de campos calculados en ciertos objetos por campos pregrabados, en especial de esos objetos que son consulados constantemente, como tareas o proyectos, porque cuando el volumen de datos aumenta suponen un problema importante&lt;br /&gt;&lt;br /&gt;Después de eso vendrán mejoras de rendimiento en pantallas y funcionalidades concretas, pero eso lo dejamos para un segundo capítulo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7570818683202027923?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7570818683202027923/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/mejoras-de-velocidad-i.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7570818683202027923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7570818683202027923'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/mejoras-de-velocidad-i.html' title='Mejoras de velocidad (I)'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-2628055459964100168</id><published>2009-05-08T18:26:00.000+02:00</published><updated>2009-05-08T18:45:49.774+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Introducción a KMKey PROJECT</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;KMKey PROJECT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Introducción&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Se supone que el hilo de la explicación/exposición, se reprende de distinta forma si explicamos Project, Quality o HelpDesk.&lt;/li&gt;&lt;li&gt;Creación de un expediente/proyecto nuevo.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;TAB DEFINICIÓN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rellenar campos. Campos obligatorios.&lt;/li&gt;&lt;li&gt;Mostrar el expediente/proyecto creado.&lt;/li&gt;&lt;li&gt;Desplegar las agrupaciones.&lt;/li&gt;&lt;li&gt;Uso de Modificar.&lt;/li&gt;&lt;li&gt;Ver Datos. Borrar.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;TAB EQUIPO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar diferencia entre contacto y usuario.&lt;/li&gt;&lt;li&gt;Alta de Contacto.&lt;/li&gt;&lt;li&gt;Mostrar lista de contactos.&lt;/li&gt;&lt;li&gt;Gestionar Contactos.&lt;/li&gt;&lt;li&gt;Explicar Perfiles de aplicación y roles de usuario.&lt;/li&gt;&lt;li&gt;Incorporar un usuario al nuevo proyecto.&lt;/li&gt;&lt;li&gt;Asignarle Rol.&lt;/li&gt;&lt;li&gt;Mostrar Grupos.&lt;/li&gt;&lt;li&gt;Explicar distinta naturaleza de Grupos: Clientes, Proveedores, Empresa, Departamento.&lt;/li&gt;&lt;li&gt;Grupo de Recursos. Grupo de Permisos.&lt;/li&gt;&lt;li&gt;Mostrar los distintos permisos y la posible combinatoria.&lt;/li&gt;&lt;li&gt;Explicar las diferencias entre permisos de aplicación, permisos de patrón y permisos de expediente.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;TAB PLANIFICAR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Opciones (Acciones)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir Tarea.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Seleccionar cualquier agrupación del proyecto creado y añadir una tarea.&lt;/li&gt;&lt;li&gt;Explicar las diferencias entre crear tareas o agrupaciones.&lt;/li&gt;&lt;li&gt;Buenas prácticas para encadenar Tareas nuevas correctamente numeradas y ordenadas.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Editar Planificación.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Seleccionar una agrupación del proyecto recien creado.&lt;/li&gt;&lt;li&gt;Mostrar como podemos modificar los datos que se han generado a partir del patrón en sus conceptos básicos:&lt;/li&gt;&lt;li&gt;Nombre de Tarea.&lt;/li&gt;&lt;li&gt;Orden. Concepto WBS.&lt;/li&gt;&lt;li&gt;Responsable.&lt;/li&gt;&lt;li&gt;Fecha de Inicio.&lt;/li&gt;&lt;li&gt;Fecha de Final.&lt;/li&gt;&lt;li&gt;Duración.&lt;/li&gt;&lt;li&gt;Esfuerzo.&lt;/li&gt;&lt;li&gt;Explicar la edición directa en esta pantalla.&lt;/li&gt;&lt;li&gt;Mover Tareas.&lt;/li&gt;&lt;li&gt;Desplazamientos positivos.&lt;/li&gt;&lt;li&gt;Desplazamientos Negativos.&lt;/li&gt;&lt;li&gt;Limitaciones.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Modificar.&lt;/span&gt;&lt;br /&gt;Explicar la diferencia (ventajas e inconvenientes) entre editar/modificar las tareas generadas mediante esta opción o mediante “Editar Planificación”. Acceso a Calendario.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Visualizaciones:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Gantt.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar el funcionamiento de las “opciones de visualización”.&lt;/li&gt;&lt;li&gt;Escala de visualización.&lt;/li&gt;&lt;li&gt;Fecha de Inicio.&lt;/li&gt;&lt;li&gt;Mostrar para el proyecto recien creado visiones de los histogramas con distintas escalas de visualización.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Fechas.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar la correspondencia de esta pantalla con los datos “patronables” del proyecto. Añadir a la explicación el concepto de: Estado (Activo, Inactivo, etc)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Recursos.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Comentar que esta es una de las pocas pantallas de la aplicación donde dentro de una “visualización” podemos interactuar con la aplicación de forma directa.&lt;/li&gt;&lt;li&gt;Diferenciar entre el esfuerzo planificado en la definición del patrón, con la Planificación de recursos y la asignación de horas a recursos por tarea.&lt;/li&gt;&lt;li&gt;Recordar la importancia de contar con Grupos de recursos y su adscripción a proyectos/expedientes (Equipo).&lt;/li&gt;&lt;li&gt;Mostrar las columnas resumen: Periodo / Tarea / Esfuerzo.&lt;/li&gt;&lt;li&gt;Explicar los recursos gráficos de alerta (rojo-Verde-Intermitencia) de las desviaciones registradas.&lt;/li&gt;&lt;li&gt;Mostrar la diferencia entre la Planificación con vistas por dias (semana) o por semanas (meses).&lt;/li&gt;&lt;li&gt;Comentar verbalmente la posibilidad de efectuar asignaciones periódicas.&lt;/li&gt;&lt;li&gt;Efectuar una asignación a Cristina (o Enric) en un día planificado (fondo azul).&lt;/li&gt;&lt;li&gt;Explicar las diferencias entre la asignación: “Lo antes posible” ó “Durante todo el periodo”.&lt;/li&gt;&lt;li&gt;Efectuar una asignación de 20 horas durante toda una semana.&lt;/li&gt;&lt;li&gt;Mostrar la distribución.&lt;/li&gt;&lt;li&gt;Mostrar los indicadores de sobreasignación de horas por recurso.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Previsiones.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Añadir Previsión.&lt;/li&gt;&lt;li&gt;Explicar brevemente los Conceptos Contables definibles.&lt;/li&gt;&lt;li&gt;Salir de usuario y entrar como manager para mostrarlos.&lt;/li&gt;&lt;li&gt;Explicar que son totalmente definibles por el usuario.&lt;/li&gt;&lt;li&gt;Explicar que podremos tener más de una previsión ecnonómica para poder realizar comparaciones.&lt;/li&gt;&lt;li&gt;Mostrar una Previsión ya efectuada.&lt;/li&gt;&lt;li&gt;Insitir en la posibilidad de diferenciar la previsión o en general para todo el proyecto o para tareas en concreto.&lt;/li&gt;&lt;li&gt;Editar Previsión.&lt;/li&gt;&lt;li&gt;Añadir una linea como ejemplo en la previsión mostrada.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;TAB GESTIÓN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Opciones (Acciones)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Iniciar Tarea&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Recordar la posibilidad de que por patrón, las tareas se inicien automáticamente con el añadido de cualquier píldora o bien, “manualmente”, mediante esta opción. Recordar que las tareas se tienen que abrir, en la fecha que se inician.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Reabrir Tarea&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar esta posibilidad.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Introducir la filosofía de los 4 ejes de desarrollo de todo proyecto:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Eje Información&lt;/li&gt;&lt;li&gt;Eje Temporal&lt;/li&gt;&lt;li&gt;Eje Económico&lt;/li&gt;&lt;li&gt;Eje Esfuerzo.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir Documento.&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Ejemplo de subida de un documento.&lt;/li&gt;&lt;li&gt;Explicar la diferencia entre elementos de información que incorporamos con datos externos (documentos externos) y aquellos que podemos generar, con datos recogidos en &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt;, a través de plantillas.&lt;/li&gt;&lt;li&gt;Ejemplo de generación de un documento mediante plantilla (mostrar alguna ya efectuado).&lt;/li&gt;&lt;li&gt;Explicar el sistema de gestión documental y gestión de versiones incorporado.&lt;/li&gt;&lt;li&gt;Hacer un ejercicio de generación de versión. Modificación. Validación de versión.&lt;/li&gt;&lt;li&gt;Explicar los estados: bloqueado, borrador, en trabajo.&lt;/li&gt;&lt;li&gt;Mostrar el registro de versiones.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir e-mail.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar la posibilidad de enviar e-mails directamente a los participantes incorporados como equipo al proyecto, y de la no necesidad de volver a tener que subir documentos ya incorporados a &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt; si queremos incorporarlos como adjuntos.&lt;/li&gt;&lt;li&gt;Mostrar también como enviar e-mails a tareas o proyectos de &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt;. Código de e-mail en DEFINICIÓN.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir Nota.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Si no se ha comentado anteriormente insistir entre la vinculación de añadir una nota y notificar (o no) a varios participantes del proyecto.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir Progreso.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar el concepto de progreso. Su estimación porcentual y su valoración subjetiva para el gestor del proyecto.&lt;/li&gt;&lt;li&gt;Diferenciar entre tarea cerrada (completada y cerrada) o aquellas que pueden estar completadas pero aún no cerradas. (Progreso al 100%)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir Compra.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Realizar un ejemplo.&lt;/li&gt;&lt;li&gt;Mostrar vinculación con conceptos contables.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir Gasto Personal.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Realizar un ejemplo.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir Venta.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Realizar un ejemplo.&lt;/li&gt;&lt;li&gt;Mostrar vinculación con conceptos contables.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Añadir Imputación de horas.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Si estamos con el usuario (enric) y anteriormente en la opción Recursos del TAB Planificar hemos realizado una asignación de esfuerzo a la usuario (cristina) para un dia concreto, es bueno salir de ese usuario, entrar como (cristina), entrar por Mensajes, o Agenda, localizar una asignación en concreto y realizar esa imputación de horas.&lt;/li&gt;&lt;li&gt;Mostrar el resultado final en la visualización Historia del TAB Gestión.&lt;/li&gt;&lt;li&gt;Mostrar el resultado en Agenda.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;Visualizaciones&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Historia.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar una tarea que contenga “pildoras” de todo tipo.&lt;/li&gt;&lt;li&gt;Mostrar el filtro de píldoras.&lt;/li&gt;&lt;li&gt;Efectuar alguna selección y devolver el filtro a su estado anterior.&lt;/li&gt;&lt;li&gt;Explicar el significado de los distintos colores utilizados.&lt;/li&gt;&lt;li&gt;Ejemplos de “sort” por columnas (ascendente/descendente).&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Agenda.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar un día pasado, con el registro de varias actividades, o un día futuro, con la planificación de varias asignaciones.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Documentos.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar la pantalla y su utilidad.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Info Items.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar la pantalla y escoger algún documento, nota o e-mail registrado en la tarea.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Por categoría.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Comentar que las categorías son definibles por el usuario.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Mensajes.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Recordar el sistema de mensajería interna explicado en sesiones anteriores. Mostrar ejemplos del funcionamiento.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;TAB CONTROL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Opciones (Acciones)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Listados&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar ejemplos de Listados.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;Visualizaciones&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Fechas&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar los códigos de colores y alertas gráficas.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Gantt&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar las diferencias con la visualización que obtenemos en PLANIFICAR.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Esfuerzo&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar el funcionamiento del filtro de opciones de visualización. Mostrar ejemplos y alguna comparación Planificado vs. Real.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Economía&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar el funcionamiento del filtro de opciones de visualización. Mostrar ejemplos y alguna comparación planificado vs. Real.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Semáforos&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicación de los códigos gráficos (Verde, Ámbar y Rojo) y de los tres apartados o visiones del proyecto desde el punto de vista de progreso, esfuerzo y economía.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-2628055459964100168?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/2628055459964100168/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/introduccion-kmkey-project.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2628055459964100168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/2628055459964100168'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/introduccion-kmkey-project.html' title='Introducción a KMKey PROJECT'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-708273266087674630</id><published>2009-05-08T17:54:00.000+02:00</published><updated>2009-05-08T18:23:22.313+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formaciones KMKey'/><title type='text'>Formación General en la Aplicación</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;Introducción al Interface.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Loggin&lt;/span&gt;&lt;br /&gt;Explicación de:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Usuario&lt;/li&gt;&lt;li&gt;Password&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Comentarios breves sobre conceptos tales como:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Aplicación desarrollada en software libre. 100% web.&lt;/li&gt;&lt;li&gt;Usuarios ilimitados y distribuidos.&lt;/li&gt;&lt;li&gt;Multiproyecto, multiempresa, multidioma.&lt;/li&gt;&lt;li&gt;El nombre de usuario condicionado por los permisos otorgados dispondrá la aplicación para responder de una forma adaptativa.&lt;/li&gt;&lt;li&gt;Misma plataforma distintas funcionalidades y accesos.&lt;/li&gt;&lt;li&gt;Se avisa que en transcurso de la sesión podremos observar como, entrando a la misma url, con distintos usuarios, la aplicación responderá con más o menos funciones.&lt;/li&gt;&lt;/ul&gt;       &lt;span style="font-weight: bold;font-size:130%;" &gt;Primera Pantalla KM&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Key&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Explicación de la división de la pantalla en tres áreas reconocibles.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cabecera.&lt;/li&gt;&lt;li&gt;Navtree.&lt;/li&gt;&lt;li&gt;Body.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;CABECERA&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Parte izquierda&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Nombre de Usuario y nº de Roles.&lt;/li&gt;&lt;li&gt;Comentario sobre concepto de “rol” y la posibilidad para el mismo usuario de intervenir con distintas funcionalidades en diferentes expedientes/proyectos (perfiles).&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Parte Central (1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Mensajes: (Nuevos Mensajes).&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Comentario sobre el sistema de mensajería interno de&lt;span style="font-weight: bold;"&gt; KMKey&lt;/span&gt; y la posibilidad de que cualquier acción que realizemos no sólo quedará registrada, sino que además podremos notificar a una o varias de las personas de las que intervienen en el expediente/proyecto de la realización de la misma.&lt;/li&gt;&lt;li&gt;Comentario sobre la posibilidad que estás notificaciones se realicen, para según que acciones y en función del proyecto/expediente, de forma automatizada.&lt;/li&gt;&lt;li&gt;Acceso a la lista de mensajes recibidos. (Disponer de alguno que funcione o no esté desactualizado y mostrar su funcionamiento).&lt;/li&gt;&lt;li&gt;Comentario breve sobre los tres sistemas de “notificaciones de KM (e-mail, internas y sms).&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Parte Central (2)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;font-size:130%;" &gt;SALIR&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Comentario sobre la buena práctica que representa “terminar” la sesión, al acabar nuestro trabajo con &lt;span style="font-weight: bold;"&gt;KMKey&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Verbalizar la ausencia de temor a perder cualquier tipo de dato.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Parte Derecha&lt;/span&gt;&lt;br /&gt;Línea para introducir “&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;BUSQUEDAS&lt;/span&gt;” indexadas.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Comentario sobre este sistema de búsqueda rápida de información.&lt;/li&gt;&lt;li&gt;Mostrar mediante ejemplo su funcionamiento y acceder a las piezas encontradas.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Indicador de Selección(Ojo)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicar que esta línea siempre nos describirá el objeto que tenemos seleccionado en el navtree.&lt;/li&gt;&lt;li&gt;Mostrar algún ejemplo abriendo un expediente/proyecto y seleccionar el raíz o cualquiera de sus tareas o agrupaciones. Sin profundizar en esos conceptos, sólo para ver como la línea cambia el descriptor.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Área de TABS&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicación sobre la división de las funcionalidades de la aplicación mediante su estructuración en 5 + 1 TABS.&lt;/li&gt;&lt;li&gt;Si no hemos entrado como manager avisar que existe un sexto TAB (ADMIN).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Introducción a la “metodología” 5 pasos.&lt;/span&gt;&lt;br /&gt;Explicación de la división de las funcionalidades de cada TAB en:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Opciones de visualización&lt;/span&gt; de la información (enmarcadas).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Acciones&lt;/span&gt; para interactuar con la aplicación.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Pasar brevemente por cada uno de los TABS y mostrar visiones y opciones.&lt;/li&gt;&lt;li&gt;Insistir en la importancia de la representación en pantalla de la información seleccionada, para preparar el concepto de &lt;span style="font-weight: bold;"&gt;Body&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Nuevo:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Breve introducción al concepto de “&lt;span style="font-weight: bold;"&gt;patrón de trabajo&lt;/span&gt;”.&lt;/li&gt;&lt;li&gt;Mostramos que con está acción INICIAMOS uno de esos patrones de trabajo. Cualquiera de los que estén a la vista. Sin profundizar en ese momento.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Filtros:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explicación de la relación entre “patrones en uso” y filtros automáticos por tipo de “patrón”.&lt;/li&gt;&lt;li&gt;Mostrar ejemplos de selección sobre expedientes/proyectos ya creados, para preparar la introducción el concepto de “&lt;span style="font-weight: bold;"&gt;Navtree&lt;/span&gt;”.&lt;/li&gt;&lt;li&gt;Mostrar la ventana de edición del Filtro.&lt;/li&gt;&lt;li&gt;Explicar las funcionalidades y la importancia de acostrumbrarse a las selecciones mediante filtros ad-hoc, y el uso avanzado (potencial) del mismo.&lt;/li&gt;&lt;li&gt;Filtro doble; Filtro Proyecto + Filtro Tareas.&lt;/li&gt;&lt;li&gt;Usar un filtro que muestre un solo proyecto (como ejemplo mínimo).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;NAVTREE&lt;/span&gt;&lt;br /&gt;Después de haber seleccionado un solo proyecto, introducir el concepto “&lt;span style="font-weight: bold;"&gt;Seleccionar Todo&lt;/span&gt;” y propiamente el de &lt;span style="font-weight: bold;"&gt;NAVTREE&lt;/span&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Flechas de desplazamiento y ayudas para la navegación.&lt;/li&gt;&lt;li&gt;Símbolos “+”, “-” y “­&gt;”.&lt;/li&gt;&lt;li&gt;Introducción de la división de los proyectos/expedientes en Tareas y/o Agrupaciones de las mismas.&lt;/li&gt;&lt;li&gt;Volver a seleccionar tareas o agrupaciones o cabeceras de expediente/proyecto y mostrar las diferencias de color en el ámbito de lo que está seleccionado y lo que no.Recordar Indicador de Selección (Ojo)&lt;/li&gt;&lt;li&gt;Volver a utilizar algún filtro.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;BODY&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Introducción al concepto cartesiano.&lt;/li&gt;&lt;li&gt;Reafirmar la explicación con el concepto de fila y columna de una “hoja de cálculo”, siendo el contenido de la fusión (“celda”) equivalente al de BODY.&lt;/li&gt;&lt;li&gt;Repasar el cambio de contenido del BODY habiendo dejado seleccionado un sólo objeto y seleccionando primero diferentes TABS, y a continuación (sin cambiar de selección), diferentes opciones de un TAB.&lt;/li&gt;&lt;li&gt;Dejar fijada esa selección de opción y TAB, para pasar a seleccionar diferentes objetos y mostrar como la información contenida en el BODY varia en función del objeto, pero no en su naturaleza.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;PATRONES&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Conceptos Básicos&lt;/span&gt;&lt;br /&gt;Definición de patrón&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Introducción del concepto “patrón” como: “Conjunto de tareas, recursos, sus planificaciones, elementos de información, y flujos de circulación de la misma, susceptibles de ser repetidas, ante cualquier acción que emprendamos en el ámbito de la organización donde queramos aplicar KMKey”.&lt;/li&gt;&lt;li&gt;Mostrar ejemplos utilizando los diversos patrones de KMKey Quality o Project.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Conceptos&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Nombre de Tarea.&lt;/li&gt;&lt;li&gt;Responsable.&lt;/li&gt;&lt;li&gt;Esfuerzo previsto.&lt;/li&gt;&lt;li&gt;Fecha de Inicio, Fecha de Final de tarea.&lt;/li&gt;&lt;li&gt;Campos.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Mostrar distintos campos de distintos patrones, necesarios para definir el mismo.&lt;/li&gt;&lt;li&gt;Enlazarlo con TAB DEFINICIÓN y mostrar un proyecto/expediente con estos datos rellenados.&lt;/li&gt;&lt;li&gt;Aprovechar la ocasión para demostrar que los campos de ese patrón pasarán a fromar parte de los criterios seleccionables para la generación de nuevos filtros de usuario.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;TAB ADMIN&lt;/span&gt;&lt;br /&gt;En este punto, sea cual sea el nivel o la plataforma que interese para la sesión, abandonamos el usuario en el que estemos y entramos en la misma “url” como manager.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mostrar la aparición del nuevo TAB ADMIN.&lt;/li&gt;&lt;li&gt;Mostrar la lista de patrones.&lt;/li&gt;&lt;li&gt;Mostrar brevemente la estructura XML de la composición de un patrón.&lt;/li&gt;&lt;li&gt;Mostrar brevemente cómo se realiza la introducción de los conceptos principales: Nombre de tarea, orden de la secuencia (WBS), fecha de inicio prevista, fecha de fin prevista, duración, esfuerzo previsto y responsable.&lt;/li&gt;&lt;li&gt;Mostrar brevemente la composición y distinta naturaleza de los campos que componen la pantalla de DEFINICIÓN.&lt;/li&gt;&lt;li&gt;Extender la explicación de aquellas acciones (en general) que son susceptibles de ser “patroneadas” y poder así ganar tiempo en su generación.&lt;/li&gt;&lt;li&gt;Mostrar el ejemplo contrario (tareas que tenemos que acondicionar y crear ad-hoc) mediante el uso de un patrón del tipo “Configurable”.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Salir del usuario manager y volver a entrar como (santi, enric, eva).&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;En este punto si el propósito de la sesión sigue siendo una visión general, podemos generar un proyecto/expediente con el patrón configurable y seguir con él la explicación básica del funcionamiento de los TABS.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Si por el contrario la sesión se va a dedicar a Project, lanzamos un patrón “Contrato” en Project, si es en Quality, elegimos una “NC de Proveedor”, si es en HelpDesk un “Ticket” (Incidencia).&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-708273266087674630?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/708273266087674630/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/formacion-general-en-la-aplicacion.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/708273266087674630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/708273266087674630'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/formacion-general-en-la-aplicacion.html' title='Formación General en la Aplicación'/><author><name>Manel</name><uri>http://www.blogger.com/profile/17459626657077045034</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_2LmDVLhFP24/SgGraMj3VvI/AAAAAAAAAAc/fuSX_ecFF-E/S220/foto1.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-9108783969031630863</id><published>2009-05-07T10:26:00.001+02:00</published><updated>2009-05-22T11:18:33.475+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Filosofadas'/><title type='text'>Mis proyectos bajo control. La solución: KMKey Project</title><content type='html'>	&lt;meta name="GENERATOR" content="OpenOffice.org 2.4  (Linux)"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 	--&gt; 	&lt;/style&gt;  &lt;p style="margin-bottom: 0cm; font-weight: bold;" lang="es-ES"&gt;1)La necesidad:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Quedan atrás los momentos en que era suficiente una estructura de “carpetas electrónicas” y una hoja de cálculo para ordenar la información de nuestra empresa. Con la aparición de las redes y de la red de redes el trabajo en entorno colaborativo no solo es una posibilidad si no una necesidad. Si entendemos como “conocimiento” toda la información que nuestra empresa necesita, produce, transmite y almacena para ayudarnos a alcanzar los objetivos previstos, su gestión se convierte en una tarea primordial. Diversas soluciones van apareciendo en el mercado para dar satisfacción a esta necesidad. Nos inundan con siglas y jerga, algunas de ellas se hacen un lugar en el diccionario de los informáticos. ¿Quien no ha oído hablar de ERP, CMS, CRM o de las mas modernas BI, Cloud computing o knowledege management?.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Pero nosotros trabajamos con PROYECTOS y lo que realmente nos importa es: COMO VAN           NUESTROS PROYECTOS. Nótese que hablamos en plural: PROYECTOS.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;" lang="es-ES"&gt;2)La realidad:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;¿Cuales son nuestros PROYECTOS?¿La construcción de un edificio?¿Investigación en biología molecular?¿El diseño de un submarino?¿O simplemente, la solicitud de una subvención?&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;A simple vista se pueden intuir las enormes diferencias a la hora de abordarlos, aunque también podemos vislumbrar que tendrán trazos en común.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Tenemos una primera variable a ponderar: de que tipo de proyectos estamos hablando.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Si se terminará ahí la problemática sería relativamente sencillo dar con una solución que de satisfacción a las diferentes posibilidades. Pero las dificultades en el escenario no han hecho mas que empezar.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;¿Lo vas a trabajar solo o en equipo?¿Están los miembros de tu equipo en el mismo lugar físico o distribuidos geográficamente?¿Pertenecen a la misma empresa o a varias?¿Todos utilizan el mismo idioma?¿Van a tener la misma relación con el proyecto o van a jugar diferentes roles?¿Y la frecuencia?¿Trabajaran siempre en el proyecto o muy de vez en cuando?¿Disponen todos de las mismas herramientas informáticas (SO, programarlo etc..)? ¿Nos relacionaremos con otros sistemas?&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Nos a surgido otra variable, o para ser mas exactos: diferentes variables que podemos agrupar en una: el entorno y no me refiero al que mentaba Cruyff.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;El tema se va volviendo mas complejo. ¿Y si además este entorno no es estable?¿Cambian las condiciones, los participantes, los lugares ..?&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;¿Con este escenario, seria cuerdo pensar que un solo programa puede dar la mejor respuesta a todas las necesidades?&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;La respuesta es NO.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Cada caso tiene su mejor respuesta.&lt;/p&gt; &lt;p style="margin-bottom: 0cm; page-break-before: always;" lang="es-ES"&gt; &lt;span style="font-weight: bold;"&gt;3)La solución: KMKey&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Conscientes de ello, desde el inicio del proyecto KMKey decidimos centrarnos en dar respuesta a un universo de empresas que pudieran necesitar un Software de Gestión de Proyectos que diera soluciones a necesidades reales. Cuando la Oficina de Proyectos Especiales de la Marina de Guerra del Departamento de Defensa de los E.E.U.U., como parte del proyecto, Polaris creo el sistema PERT, seguro que le fue de mucha utilidad. Probablemente a una empresa que quiera gestionar una promoción de viviendas unifamiliares no le sirva para nada.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Mas allá de como trabajan los programas que pretenden convertirse en standards, definimos las características que debía ofrecer nuestra solución:  &lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold; font-style: italic;" lang="es-ES"&gt;3.1)Características principales:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(51, 102, 255);" lang="es-ES"&gt;Libre&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Tanto KMKey com el 	software base utilizado en su instalación siguen los preceptos del 	software libre (Open Source Software). Se distribuye bajo licencia 	GPL. En resumen, estamos hablando de una aplicación cuyas fuentes 	se entregan al cliente, no se cobra por licencia y se puede 	modificar el código siempre que no se revenda cobrando. Esto nos 	garantiza el total acceso al programa y nos da independencia del 	proveedor ya que en caso necesario podemos actuar modificando hasta 	la última linea del programa.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(51, 102, 255);" lang="es-ES"&gt;Adaptable&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Exceptuando los 	principios básicos de usabilidad con los que funciona KMKey, la 	solución se puede adaptar a las necesidades del cliente mediante 	configuración. Los proyectos pueden seguir una metodología de 	trabajo pre-configurada en tantos &lt;i&gt;Patrones de trabajo&lt;/i&gt; como 	sea necesario. Entendemos como Patrón de trabajo el procedimiento 	que utilizaremos para abordar un tipo de proyecto. Pero no solo la 	distribución de tareas, sino los perfiles que lo trabajaran con sus 	permisos, los conceptos contables a utilizar, los documentos que 	podremos generar desde el expediente, las notificaciones y avisos 	etc..&lt;br /&gt;Es decir, una vez decidido como vamos a enfocar la gestión 	de un tipo de proyectos de terminados  lo reflejamos en un patrón 	que utilizaremos cada vez que nos enfrentemos a un proyecto de este 	tipo.&lt;br /&gt;Obviamente, una vez generado el expediente del proyecto si 	este no responde exactamente a como se ha diseñado el patrón, se 	pueden introducir cambios para adaptarlo a la realidad.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(51, 102, 255);" lang="es-ES"&gt;Integrable&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Es muy probable que KMKey 	no sea el único programa o sistema que use la empresa. Posiblemente 	puede darse la necesidad de compartir datos con otras aplicaciones. 	KMKey se puede enlazar de diferentes formas para compartir la 	información y en la actualidad lo está realizando con ERPs, CRMs 	sistemas de autentificación, BBDD etc..&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;También es posible 	intercambiar información con otras soluciones de gestión de 	proyectos como MS Project.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(51, 102, 255);" lang="es-ES"&gt;Usuarios ilimitados&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;KMKey no tiene 	restricciones en cuanto al número de usuarios. Ni usuarios 	contratados, ni concurrentes, ni módulos, ni nada.. Sencillamente 	lo pueden utilizar tantas personas como les facilitemos un usuario. 	Las únicas restricciones vienen por la capacidad del servidor de 	dar respuesta a las peticiones, sean estas de pocos usuarios muy 	activos o de muchos que lo utilizan de vez en cuando.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(51, 102, 255);" lang="es-ES"&gt;Multiproyecto&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;La realidad nos indica 	que son pocas las empresas que acometen un solo proyecto. Lo normal 	es que tanto empresas como usuarios estén involucrados en muchos 	proyectos que deben ser gestionados al mismo tiempo. KMKey asume en 	sus funcionalidades esta premisa y está pensado para dar respuesta 	a la gestión y control de multitud de proyectos simultáneos.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(51, 102, 255);" lang="es-ES"&gt;Multiempresa&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Multigrupo, sería la 	palabra correcta. Las personas se asocian en grupos. Estos pueden 	ser empresas, sedes, departamentos etc.. los componentes de uno de 	ellos pueden ver una serie de proyectos y los de otro grupo, otra 	serie totalmente diferente. La información está compartimentada 	según los permisos que se otorguen.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(51, 102, 255);" lang="es-ES"&gt;Multi idioma&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Cada usuario puede 	escoger el idioma de trabajo en KMKey. También, configurando 	correctamente, se puede escoger el idioma de trabajo de un proyecto 	en concreto incluyendo documentos generados automáticamente e 	informes.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(51, 102, 255);" lang="es-ES"&gt;100% Web&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;KMKey está pensado desde 	el primer momento y la primera línea para ser una aplicación 	totalmente Web. Es decir, se puede utilizar desde cualquier punto 	del globo que tenga un acceso a Internet y un navegador (Firefox o 	Iexplorer). Esto nos permite trabajar de una misma forma 	independientemente de donde nos encontremos, tanto el director de 	proyecto com el administrador del sistema, el técnico o el 	comercial.&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold; font-style: italic;" lang="es-ES"&gt;3.2)Ejes de trabajo:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;La características anteriormente expuestas nos garantizan el adecuado entorno de trabajo. Por si solo no sería suficiente si la aplicación no estuviera correctamente estructurada y fuera intuitiva y de fácil uso. De las multiples teorías de gestión de proyectos escogemos y adaptamos varios conceptos para ordenar la información de una forma lógica y comprensible. Esto nos permite planificar, gestionar y controlar los proyectos en sus cuatro ejes principales: tiempo, esfuerzo, economía e información.  &lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(255, 0, 0);" lang="es-ES"&gt;-Tiempo&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;El proyecto, subdividido 	en tareas y agrupaciones de tareas se puede planificar en el tiempo. 	Asignar fechas previstas de inicio y fin, duraciones, contingencias 	etc... Una vez en marcha el proyecto se introducirán las fechas 	reales en las que se realizan las tareas. La comparativa entre ambas 	nos darán idea de la marcha del proyecto, sus posibles retrasos 	etc.. Podremos visualizar el avance cronológico mediante gráficos 	Gantt, tablas de fechas, agendas..&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(255, 0, 0);" lang="es-ES"&gt;-Esfuerzo&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;A cada tarea se puede 	asignar un esfuerzo previsto en horas/hombre. Los diferentes 	usuarios a medida que van trabajando, introducen las horas que han 	invertido en sus intervenciones. Estas horas, que pueden ser de 	diferentes tipos, nos sirven para valorar los recursos empleados en 	el proyecto y su coste asociado.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(255, 0, 0);" lang="es-ES"&gt;-Economía&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;KMKey permite definir 	unos conceptos contables donde estructurar la economía de los 	proyectos. Establecer unas previsiones según estas estructuras y 	una vez imputadas las entradas económicas reales establecer 	comparativas. También dispone de facilidades para la generación de 	ofertas, facturas, gastos personales etc.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(255, 0, 0);" lang="es-ES"&gt;-Información&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Los tres primeros 	conceptos son los habituales en las teorías, nosotros añadimos uno 	nuevo: relacionar una base de datos del conocimiento al proyecto. Lo 	diseñamos mediante la facilidad de añadir “píldoras de 	información” en las tareas. Entendemos como píldoras unidades de 	información en cualquier formato: archivos, documentos, correos 	electrónicos, notas, mensajes .. La información que contienen es 	indexada de tal manera que se puede consultar con una búsqueda tipo 	“Google”.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold; font-style: italic;" lang="es-ES"&gt;3.3)Modelos:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;¿Como podremos disponer de KMKey? Teniendo claro que su uso es siempre a través de un navegador, su instalación se puede realizar mediante tres vías principales.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(0, 153, 0);" lang="es-ES"&gt;-Juan Palomo&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;"&gt;&lt;span lang="es-ES"&gt;Si somos usuarios 	avezados en programador libre o nos gusta la informática 	“bricolaje” nos podemos arremangar las mangas de la camisa y 	visitar &lt;a href="http://www.kmkey.org/"&gt;www.kmkey.org&lt;/a&gt; para hacer 	nuestra propia instalación. Apoyados por usuarios con mas 	experiencia en listas de correo, podremos paso a paso disponer de 	KMKey en el servidor que hayamos escogido a tal efecto.&lt;/span&gt;&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(0, 153, 0);" lang="es-ES"&gt;-SaaS&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;El Software as a Service 	(software como servicio, alias ASP, alias Cloud Computing) se impone 	día a día como una solución válida en las empresas. Sobretodo en 	aquellas distribuidas, con usuarios móviles, colaboradores externos 	etc. De forma muy resumida, podemos definirla como: alquilamos un 	proveedor (típicamente un ISP) que se encargue de todo (espacio en 	disco, comunicaciones, seguridad, copias..) y nosotros pagamos una 	mensualidad y nos olvidamos del tema&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; color: rgb(0, 153, 0);" lang="es-ES"&gt;-Home&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Para aquellas empresas 	con gerentes mas “tradicionales”, la instalación se puede 	realizar en un servidor en las dependencias del cliente. Ya sea 	Linux o Windows, en este caso, aplicación y datos residen en la 	propia empresa. Su acceso externo a través de Internet puede ser 	activado a conveniencia según la configuración de los dispositivos 	de comunicación.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" lang="es-ES"&gt;Hemos presentado, de forma my somera, una solución que puede ser útil a la mayoría de empresas que gestionan proyectos en un entorno colaborativo de trabajo. Es la combinación de todas las características presentadas lo que dan una ventaja competitiva frente a otras soluciones enfocadas de una forma mas sectorial o pensadas para un solo individuo o proyecto. El objetivo principal es dotar de una herramienta útil y eficaz. Dar la posibilidad de tener una rápida respuesta a mano cuando nos pregunten: ¿como van los proyectos?&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-9108783969031630863?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/9108783969031630863/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/mis-proyectos-bajo-control-la-solucion.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/9108783969031630863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/9108783969031630863'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/mis-proyectos-bajo-control-la-solucion.html' title='Mis proyectos bajo control. La solución: KMKey Project'/><author><name>Joan</name><uri>http://www.blogger.com/profile/00686177384014933502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qa9B0X0vPuk/SgQBsveUnVI/AAAAAAAAA_Y/w35jh5ANkXQ/S220/snu'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-4318549526403007787</id><published>2009-04-28T10:58:00.001+02:00</published><updated>2009-05-26T12:43:40.457+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion KMKey'/><title type='text'>Cambiar de enconding postgresql &gt;= 8.3</title><content type='html'>&lt;div class="post-body"&gt;             &lt;p&gt;Las versiones de postgresql más nuevas vienen con encoding por defecto UTF-8, y además obligan a que todas las BBDD del cluster tengan el mismo encoding.   Si nos interesa trabajar con LATIN9 (y en KMKey nos interesa), entonces tenemos que inicializar de nuevo el cluster.   Como no es algo que se encuentre a la primera en un man, dejo aquí un pequeño recetario de como hacerlo&lt;/p&gt; &lt;p&gt;Con usuario root, añadimos el locale:&lt;/p&gt; &lt;p&gt;En Ubuntu:&lt;/p&gt; &lt;p&gt;  localedef -i es_ES -f ISO-8859-15 es_ES@euro&lt;br /&gt;  locale-gen es_ES@euro&lt;/p&gt; &lt;p&gt;En Debian:&lt;/p&gt; &lt;p&gt;  dpkg-reconfigure locales&lt;br /&gt;/etc/init.d/postgresql stop&lt;/p&gt; &lt;p&gt;Con usuario postgresql:&lt;/p&gt; &lt;p&gt;su postgres&lt;br /&gt;cd /var/lib/postgresql/8.3&lt;br /&gt;mv main main_old  &lt;br /&gt;/usr/lib/postgresql/8.3/bin/initdb /var/lib/postgresql/8.3/main/ --locale=es_ES@euro --lc-ctype=es_ES@euro&lt;br /&gt;cp main_old/postmaster.opts main/&lt;br /&gt;/usr/lib/postgresql/8.3/bin/pg_resetxlog main&lt;br /&gt;cp main_old/*crt main&lt;br /&gt;cp main_old/*key main&lt;/p&gt; &lt;p&gt;Después de esto ya podemos iniciar postgresql de nuevo, y crear nuestas BBDD con LATIN9&lt;/p&gt;         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-4318549526403007787?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/4318549526403007787/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/cambiar-de-enconding-postgresql-83.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4318549526403007787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/4318549526403007787'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/cambiar-de-enconding-postgresql-83.html' title='Cambiar de enconding postgresql &gt;= 8.3'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3757254750678089364</id><published>2009-02-17T10:57:00.004+01:00</published><updated>2009-10-20T12:27:56.443+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>XML para definir objetos en patrones</title><content type='html'>&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:medium;"&gt;&lt;span style="text-decoration: underline;"&gt;Estructura básica de un XML de tareas de un patrón de proyectos:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;?xml version="1.0"&lt;br /&gt;encoding="iso-8859-1" ?&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;objects&lt;br /&gt;xmlns:tal="http://xml.zope.org/namespaces/tal"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;default_portal_type tag="task"&lt;br /&gt;portal_type="KMKey Task" /&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;task task_id="1" wbs="1"&lt;br /&gt;Title="1. Tareas Previas" responsible="role:responsable"&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;task task_id="1.1"&lt;br /&gt;wbs="1.1" Title="1. Información previa del&lt;br /&gt;proyecto" planned_start="root['planned_start']"&lt;br /&gt;planned_end="root['planned_start']+7"&lt;br /&gt;responsible="role:responsable" /&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;/task&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;lt;/objects&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-style: normal;"&gt;&lt;span style="font-size:medium;"&gt;&lt;span style="text-decoration: underline;"&gt;Atributos más usados del TAG task:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;strong&gt;task_id&lt;/strong&gt;:  ID interno de la tarea, sirve básicamente para filtrar documentos generables sólo desde determinadas tareas&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;strong&gt;wbs&lt;/strong&gt;: Es el orden WBS de las tareas (x.y.z).   Determina su orden por defecto en el navtree&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;strong&gt;Title&lt;/strong&gt;:  Es el nombre de la tarea&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;strong&gt;Description&lt;/strong&gt;:   Puede contener una descripción más larga de la tarea, como una explicación de lo debe hacerse en ella&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;strong&gt;planned_start&lt;/strong&gt;:   Es la fecha prevista de inicio.   Lo habitual es que sea calculada en función de la fecha de la tarea padre (parent) o de la fecha del proyecto (root).   Asi, lo normal es planned_start=”root['planned_start']+24” o planned_start=”root['planned_end']-150”&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;strong&gt;planned_end&lt;/strong&gt;:  Igual que la anterior pero con la fecha de fin prevista&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;strong&gt;planned_hours&lt;/strong&gt;:   Puede contener un valor entero que corresponderá al esfuerzo previsto, es decir, al número de horas que se prevé dedicar para  realizar la tarea&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;strong&gt;responsible&lt;/strong&gt;:  Es el responsable de la tarea.   Puede definirse un usuario concreto, en formato responsible=”user:nombreusuario” o bien a un perfil, en formato responsible=”role:tecnico”.  En este segundo caso, se designará como responsable de la tarea a la persona que tome el perfil “tecnico” en el proyecto&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;strong&gt;workflows&lt;/strong&gt;:  Lista de ID's de patrones a los que se puede enlazar desde esta tarea (tal y como aparecen en la pantalla de Admin / Patrones), separados por&lt;span style="font-style: italic;"&gt; #@&lt;/span&gt;.   Cuando el proyecto esté creado, el workflow se podrá ejecutar desde la pestaña Planificación / Flujo de Trabajo.   Existe la opción, además de enlazar con otro patrón de trabajo, de incluir nuevas tareas del propio patrón.  En ese caso, debe indicarse del modo &lt;span style="font-style: italic;"&gt;task999,&lt;/span&gt; siendo 999 el task_id de tarea incluible.   Finalmente, tanbién se puede decidir incluir tareas de otro patrón, pero sin cambiar el tipo de datos del proyecto actual.   Eso es muy útil si se quiere mantener la estructura de campos actual, pero incluir tareas y/o perfiles de otros patrones.   La sintaxis en ese caso sería &lt;span style="font-style: italic;"&gt;tasks(id_patron)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;strong&gt;conditional&lt;/strong&gt;:  Se usa para tareas que no se crean inicialmente con el proyecto, pero que pueden ser incluidas desde otras tareas, mediante la opción del workflow.   Es un atributo opcional, y puede tomar los valores "1" o "0"&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:medium;"&gt;&lt;span style="text-decoration: underline;"&gt;Otras opciones avanzadas usables en los patrones:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&amp;lt;&lt;span style="font-weight: bold;"&gt;default_value&lt;/span&gt; attribute="responsible" value="user:akiwit"/&amp;gt;&lt;br /&gt;Este tag nos permite definir valores por defecto a nivel de expediente. Esto es útil si no nos conviene&lt;br /&gt;definir valores por defecto en los campos de schema comunes (kmkey_project por ejemplo)&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;span style="font-weight: bold;"&gt;access&lt;/span&gt; usernames="akiwit,akiwit" roles="Owner,Reader"/&amp;gt;&lt;br /&gt;&amp;lt;access groups="41718292,4343413,134321" roles="Owner,Reader"/&amp;gt;&lt;br /&gt;Nos permite definir accesos de usuarios por defecto, a nivel de proyecto.&lt;br /&gt;La nomenclatura es usernames="user1,user2,user3..." roles="role_para_user1,role_para_user2,role_para_user3"&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;span style="font-weight: bold;"&gt;groups&lt;/span&gt; ids="41718292,4343413,134321"/&amp;gt; o &amp;lt;&lt;span style="font-weight: bold;"&gt;contacts&lt;/span&gt; ids="x,x,x,x"/&amp;gt;&lt;br /&gt;Nos permite asignar grupos y personas seleccionadas&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;span style="font-weight: bold;"&gt;objects_to_copy&lt;/span&gt; ids="914865118#@1321223613"/&amp;gt;&lt;br /&gt;ids es la lista de getDocids de los objetos que queremos copiar dentro del nuevo expediente.&lt;br /&gt;Útil para copiar documentos o previsiones, incluso una tarea de algún expediente modelo&lt;br /&gt;(se copia el objeto entero con todo su contenido)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-3757254750678089364?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/3757254750678089364/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/xml-para-definir-tareas-en-patrones.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3757254750678089364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/3757254750678089364'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/xml-para-definir-tareas-en-patrones.html' title='XML para definir objetos en patrones'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1198788416578576575</id><published>2008-08-12T10:56:00.000+02:00</published><updated>2009-05-08T12:01:51.060+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Bloquear perfiles según patrón</title><content type='html'>&lt;div class="post-body"&gt;             &lt;p&gt;El funcionamiento por defecto de la seguridad en proyectos de KMKey consiste en tener al menos los siguientes perfiles a nivel de aplicación:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;WorkspaceReader:  asignado a todo el mundo con usuario (Authenticated)&lt;/li&gt;&lt;li&gt;WorkspaceMember: asignado a aquellos usuarios con capacidad de creación de proyectos o contactos&lt;/li&gt;&lt;li&gt;WorkspaceManager: asignado únicamente al administrador&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Por defecto, al crear un nuevo proyecto, se bloquean los roles WorkspaceReader y WorkspaceMember, de forma que sólo WorkspaceManager + los usuarios asignados localmente al proyecto tienen acceso al mismo.&lt;/p&gt; &lt;p&gt;Como este esquema de perfiles de aplicación se amplía con frecuencia, existía en KMKey una propiedad del portal que permitía definir qué perfiles deben bloquearse cada vez que se cree un proyecto.   El problema se daba cuando ciertos usuarios debían ver todos los proyectos de un tipo, pero no todos los de otro tipo.   Para solucionar este caso, se ha trasladado al patrón de trabajo la configuración de qué perfiles deben ser bloqueados cada vez que se cree un proyecto basado en ese patrón, dando así respuesta a todos los casos planteados.&lt;/p&gt;         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1198788416578576575?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1198788416578576575/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/bloquear-perfiles-segun-patron.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1198788416578576575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1198788416578576575'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/bloquear-perfiles-segun-patron.html' title='Bloquear perfiles según patrón'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-1896004638876484995</id><published>2008-07-11T10:55:00.000+02:00</published><updated>2009-05-08T12:01:13.674+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Incluir links a objetos en un patrón de trabajo</title><content type='html'>&lt;div class="post-body"&gt;             &lt;p&gt;Desde la versión 08.07.01 KMKey incorpora la posibilidad de incluir en la definición de los patrones de trabajo enlaces a otros objetos existentes.    Ello se traduce en que cada vez que se crea un proyecto basado en ese patrón de trabajo, se crean también enlaces a esos objetos.&lt;/p&gt; &lt;p&gt;&lt;br /&gt;El caso concreto que fomentó este desarrollo era el de un cliente que tenía toda una serie de documentación de referencia y quería que dicha documentación fuera incluida automáticamente en ciertas tareas de cada proyecto, pero en forma de enlace, es decir, que en los proyectos no hubiera un duplicado del documento, sinó un apunte al documento original.&lt;/p&gt; &lt;p&gt;Para configurar esta funcionalidad, basta con incluir las sentencias correspondientes en el XML de creación de objetos del patrón de trabajo:&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;default_portal_type tag="proxy" portal_type="CPS Proxy Document"&gt; &lt;br /&gt;&lt;/em&gt;&lt;/p&gt; &lt;br /&gt;&lt;br /&gt;&lt;P STYLE="margin-bottom: 0cm"&gt;&lt;EM&gt;&amp;lt;default_portal_type tag=&amp;quot;proxy&amp;quot;&lt;br /&gt;portal_type=&amp;quot;CPS Proxy Document&amp;quot; /&amp;gt;&amp;nbsp; &lt;/EM&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;EM&gt;&amp;lt;task task_id=&amp;quot;2&amp;quot; Title=&amp;quot;2 Cables&amp;quot;&lt;br /&gt;responsible=&amp;quot;role:comercial&amp;quot;&lt;br /&gt;planned_start=&amp;quot;root['planned_start']+0&amp;quot;&lt;br /&gt;planned_end=&amp;quot;parent['planned_end']+0&amp;quot;&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;proxy&lt;br /&gt;id=&amp;quot;prova&amp;quot; docid=&amp;quot;2094376454&amp;quot;&lt;br /&gt;default_language=&amp;quot;es&amp;quot; language_revs=&amp;quot;{'es':1}&amp;quot;&lt;br /&gt;/&amp;gt;&lt;BR&gt;&amp;lt;/task&amp;gt;&lt;/EM&gt;&lt;/P&gt;&lt;br /&gt;&lt;P STYLE="margin-bottom: 0cm"&gt;&lt;BR&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Como se observa, la sentencia proxy debe incluir el id del nuevo objeto (puede ser cualquiera mientres no colisione), el docid del objecto orígen, el idioma (siempre "es"), y la revisión a la que se apunta (puede ser 1, 2, 3 ... en función de la versión del documento original a la que se quiera apuntar&lt;/p&gt;         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-1896004638876484995?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/1896004638876484995/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/incluir-links-objetos-en-un-patron-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1896004638876484995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/1896004638876484995'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/incluir-links-objetos-en-un-patron-de.html' title='Incluir links a objetos en un patrón de trabajo'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-8954547845000974515</id><published>2008-06-20T10:55:00.000+02:00</published><updated>2009-05-08T12:00:29.666+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><title type='text'>Bloquear partes de un upgrade</title><content type='html'>&lt;div class="post-body"&gt;             &lt;p&gt;De vez en cuando es necesario configurar de forma distinta, para un cliente en concreto, partes genéricas de la aplicación.   Por ejemplo, en clientes donde no se use la gestión de recursos, puede ser necesario deshabilitar el action correspondiente en el portal_actions.   Pero ese cambio desaparecería al realizarse el próximo import del step "Actions Provideers".    Para evitarlo se ha incluido, en la versión 08.06.01, un nuevo atributo "block_import", que permite marcar qué acciones deseamos que se importen de nuevo y cuales deseamos mantener sin cambios.&lt;/p&gt; &lt;p&gt;&lt;br /&gt;El mismo concepto se ha aplicado a los portal_layouts.   Cuando queremos bloquear las actualizaciones de un layout concret, podemos añadir al mismo una Property "block_import", de tipo Boolean, con valor True&lt;/p&gt;         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-8954547845000974515?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/8954547845000974515/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/bloquear-partes-de-un-upgrade.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8954547845000974515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/8954547845000974515'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/bloquear-partes-de-un-upgrade.html' title='Bloquear partes de un upgrade'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-7342496810526283157</id><published>2008-06-16T10:42:00.000+02:00</published><updated>2009-05-08T11:57:41.779+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Gestionar Traducciones en KMKey</title><content type='html'>&lt;div class="post-body"&gt;             &lt;p style="margin-bottom: 0cm;"&gt;KMKey está desarrollado sobre CPS y Zope 2.9.4, con lo que gestiona las traducciones por dos vías distintas:  la incorporada por CPS, usando Localizer al estilo Zope 2, y la incorporada por Five al estilo Zope 3.   Es importante tener claro qué partes del programa usan cada uno de los tipos de traducción:&lt;/p&gt; &lt;ol&gt;&lt;li&gt; &lt;p style="margin-bottom: 0cm;"&gt;En general, todo lo que forma  parte del código python o TAL se traduce con el sistema de  Zope 3, mediante un extractor capaz de localizar las cadenas e  incorporarlas en el directorio Producto/locales/idioma/LC_MESSAGES.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p style="margin-bottom: 0cm;"&gt;Las cadenas propias de la  configuración via ZMI, como nombres de TABs o Actions, de  menús, de campos, etc, se traducen mediante el antiguo  sistema de Zope 2.   En este caso se carece de extractor, y las  cadenas deben ir introduciéndose manualmente en el  i18n/default.pot&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Para extraer las cadenas a traducir necesitaremos una instancia de Zope 3, perferentemente superior o igual a 3.4.0.   Por ejemplo:&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; font-family: courier new;"&gt;&lt;span style="font-size:78%;"&gt;wget http://www.zope.org/Products/Zope3/3.4.0c1/Zope-3.4.0c1.tgz&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-family: courier new;"&gt;&lt;span style="font-size:78%;"&gt;tar xzf Zope-3.4.0c1.tgz&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-family: courier new;"&gt;&lt;span style="font-size:78%;"&gt;cd Zope-3.4.0c1&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-family: courier new;"&gt;&lt;span style="font-size:78%;"&gt;./configure –prefix=/usr/local/zope340c1&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-family: courier new;"&gt;&lt;span style="font-size:78%;"&gt;make&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-family: courier new;"&gt;&lt;span style="font-size:78%;"&gt;make install&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-family: courier new;"&gt;&lt;span style="font-size:78%;"&gt;/usr/local/zope340c1/bin/mkzopeinstance -d /usr/local/z3instance&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Ahora ya podemos realizar la extracción de cadenas de KMKey y traducirlas.   Por ejemplo:&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:78%;"&gt;cd Products/KMKeyDefault&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:78%;"&gt;/usr/local/z3instance/bin/i18nextract -p . -o locales -d kmkeydefault&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:78%;"&gt;/usr/local/z3instance/bin/i18nmergeall -l locales&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:78%;"&gt;cd locales/es/LC_MESSAGES/&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:78%;"&gt;poedit kmkeydefault.po&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Para ver en funcionamiento las nuevas traducciones, recordemos siempre que debemos regenerar los ficheros .mo:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:78%;"&gt;python2.4 ../KMKeyCore/utils/generate_mo_files.py&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Para incluir traducciones de Zope 2, deberemos editar manualmente el i18n/default.pot, y añadir las nuevas entradas, sin traducción.    Después debemos mezclar con cada uno de los idiomas y traducir.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:78%;"&gt;msgmerge -o es.po -s es.po default.pot&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:78%;"&gt;poedit es.po&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Para que este tipo de traducciones sean visibles desde la aplicación, es necesario realizar el import del step Localizer desde el ZMI portal_setup. pestaña imports&lt;/p&gt; &lt;p&gt; &lt;/p&gt;         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7941892531409037812-7342496810526283157?l=kmkey-es.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kmkey-es.blogspot.com/feeds/7342496810526283157/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/gestionar-traducciones-en-kmkey.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7342496810526283157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7941892531409037812/posts/default/7342496810526283157'/><link rel='alternate' type='text/html' href='http://kmkey-es.blogspot.com/2009/05/gestionar-traducciones-en-kmkey.html' title='Gestionar Traducciones en KMKey'/><author><name>Santi</name><uri>http://www.blogger.com/profile/03673928052357338802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_DQpfchcNTd8/TVBPuQrBsQI/AAAAAAAAAaQ/HWKP3ln9grc/s220/AIbEiAIAAABDCLrZnp7-9uPzaiILdmNhcmRfcGhvdG8qKDc5YWFhOWVlMTg1ZjU4MjI4ZDU4MTZjNDE5ODhkOWUwOWYzNGIzNzIwAUeD4x8NL8rWMbuhz9068yfN9k-S.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7941892531409037812.post-3473354484494044880</id><published>2008-02-04T10:50:00.000+01:00</published><updated>2009-05-08T11:59:42.351+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion KMKey'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo KMKey'/><title type='text'>Expresiones de fórmulas en KMKey</title><content type='html'>Cuando configuramos uszndo el ZMI (para usuarios avanzados), hay un montón de sitios donde podemos definir fórmulas usando expresiones TALES.   En cada caso, los objetos disponibles pueden ser diferentes, y es dificil recordarlos.   Aquí dejo una lista de los más usados:&lt;br /&gt;&lt;br /&gt;Expressions used in Default Value of Fields&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;        mapping = {&lt;br /&gt;           'field': self,&lt;br /&gt;           'datamodel': datamodel,&lt;br /&gt;           'user': getSecurityManager().getUser(),&lt;br /&gt;           'portal': getToolByName(self, 'portal_url').getPortalObject(),&lt;br /&gt;           'modules': SecureModuleImporter,&lt;br /&gt;           'DateTime': DateTime,&lt;br /&gt;           'nothing': None,&lt;br /&gt;           }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Expressions used in Fields&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;mapping = data.copy() # XXX there may be DEFAULT_VALUE_MARKER here&lt;br /&gt;&lt;br /&gt;# XXX hack replace DEFAULT_VALUE_MARKER&lt;br /&gt;for k, v in mapping.items():&lt;br /&gt;if v is DEFAULT_VALUE_MARKER:&lt;br /&gt;mapping[k] = '' # XXX should be field's default&lt;br /&gt;portal = getToolByName(self, "portal_url").getPortalObject()&lt;br /&gt;&lt;br /&gt;# Wrapping util in the current acquisition context&lt;br /&gt;util = fieldStorageNamespace.__of_
