Mostrando entradas con la etiqueta Alfresco. Mostrar todas las entradas
Mostrando entradas con la etiqueta Alfresco. Mostrar todas las entradas

20 de abril de 2022

:: Alfresco. Eliminar restricción del tamaño de 2GB en la descarga de un .zip


Desde la interfaz de usuario, podemos descargar una carpeta en formato .zip. Sin embargo, por defecto, el tamaño máximo de descarga viene configurado a 2GB, por lo que si la información que pretendemos descargar ocupa más de ese tamaño, obtendremos un mensaje indicando el problema.


Para eliminar esta restricción, debemos editar el fichero: "alfresco-global.properties" e insertar la siguiente línea:

### No restringuir el tamaño máximo de descarga en ZIP
download.maxContentSize=-1

Tras reiniciar el servicio, podremos descargar un .zip de más de 2 GB.

19 de agosto de 2021

:: Alfresco. Consultar la versión de Alfresco instalada


Una forma rápida de recuperar la versión de Alfresco que tenemos instalada, es a través de la API, de la siguiente manera:


https://localhost:8080/share/proxy/alfresco/api/server


Un ejemplo de la salida podría ser la siguiente:

{

   "data":

   {

      "edition": "Community",

      "version": "5.0.0 (d r99759-b2)",

      "schema": "8022"

   }

}

16 de diciembre de 2019

:: Alfresco. Compartir carpeta

Como prueba de concepto y a modo de recordatorio, si la opción Quick Share no está deshabilitada, podemos compartir un fichero por medio de una url.

En el caso de necesitar compartir una carpeta, la url de la misma se encuentra en los detalles de esta. Para ello los pasos a seguir serán los siguientes:

.- Sobre la carpeta que queremos compartir, pulsaremos en la opción: "Ver los detalles"

.- En los detalles de esta, disponemos de un enlace para compartir la página actual, y será este el que utilicemos


10 de diciembre de 2019

:: Alfresco. Configuración Euskera

Como prueba de concepto, describiremos a continuación cómo configurar nuestro Alfresco 5.2 en Euskera.

.- Accederemos a la siguiente url para descargar los paquetes de idiomas disponibles:
http://alf-trans.ossportal.org/

.- En nuestro caso, descargaremos los ficheros "alfresco-eu.jar" y "share-eu.jar"

.- Copiaremos los ficheros en la carpeta "${alfresco}/tomcat/shared/lib", siendo ${alfresco} la ruta donde lo tengamos instalado

.- Reiniciaremos el servicio de Alfresco para que los cambios sean efectivos

Podemos comprobar el correcto funcionamiento si configuramos nuestro navegador (en el caso de que no lo tengamos) al Euskera.

15 de octubre de 2019

:: Alfresco. Aumentar el número de categorías mostradas



En esta prueba de concepto, la situación es la siguiente:
Tenemos definidas más de 100 categorías, pero a la hora de editar las propiedades de un contenido "Classificable", en la lista de categorías no nos aparecen más de 100 categorías.

En este caso, el número de elementos a mostrar para las categorías, está definido en la vista denominada: "picker.inc.ftl" ubicada en la ruta: "{Alfresco}\tomcat\webapps\awe\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\form\controls\common"

El parámetro que controla el número de elementos a mostrar es: "maxSearchResults": ${field.control.params.maxSearchResults!'100'}"

Para llevar a cabo la prueba, sustituiremos el valor: "100" por "5" y guardaremos la plantilla de freemaker (.ftl).

Como podemos ver en la siguiente captura de pantalla, el selector de categorías únicamente nos muestra 5 elementos; de esta manera, si necesitásemos mostrar más de 100 elementos, este sería el valor a modificar.



6 de septiembre de 2019

:: Tip Alfresco. Aumentar el tiempo de sesión

En el caso de que necesitemos modificar el tiempo de sesión en Alfresco, esta tarea se realiza a nivel de: Tomcat, Alfresco y Share.

La línea a añadir es la siguiente:
<session-timeout>20</session-timeout>

Los ficheros a modificar son los siguientes:
<alfresco_home>/tomcat/conf/web.xml
<alfresco_home>/tomcat/webapps/alfresco/WEB-INF/web.xml
<alfresco_home>/tomcat/webapps/share/WEB-INF/web.xml
</alfresco_home></alfresco_home></alfresco_home>

Más información: https://community.alfresco.com/thread/205313-cambiar-tiempo-sesi%C3%B3n

8 de julio de 2019

:: Tip Alfresco. Obtener la relación de documentos bloqueados

Para obtener la relación de documentos bloqueados en Alfresco, una forma sencilla de lograrlo es haciendo uso del buscador. En este debemos especificar lo siguiente:

ASPECT:"cm:lockable"

Tras la búsqueda, obtendremos un listado de todos aquellos documentos que se encuentran bloqueados por algún usuario.

31 de marzo de 2019

:: Tip. Alfresco en modo lectura

En el caso de que necesitemos ejecutar  Alfresco en modo de sólo lectura, tendremos que modificar el fichero: "alfresco-global.properties"

En este añadiremos  la siguiente línea:

server.allowWrite=false

De esta manera, no se podrían llevar a cabo operaciones de escritura sobre el repositorio de Alfresco.

25 de marzo de 2019

:: Integración Liferay y Alfresco


Los pasos a seguir para integrar Liferay y Alfresco a través del protocolo CMIS, son los siguientes:

1.- Modificaremos el fichero "portal-ext.properties" añadiendo las siguientes líneas:


### Integración con Alfresco

session.store.password=true

company.security.auth.type=screenName


2.- En el panel de administración web, seleccionaremos la entrada: "Documentos y Multimedia" y en el botón: "Añadir" seleccionaremos: "Repositorio"


3.- Cumplimentaremos el formulario que nos aparece con la siguiente información:
- Nombre
- Descripción
- Url de AtomPub


4.- La url de AtomPub la obtendremos de Alfresco, y será del tipo:

http://localhost:8383/alfresco/api/-default-/public/cmis/versions/1.1/atom



5.- Una vez definido este nuevo repositorio, podremos mostrarlo en la parte pública. Para ello, añadiremos un portlet "visor de documentos y multimedia" y lo configuraremos para que muestre la información pertinente.


Una vez configurado, en este visor tendremos la estructura de carpetas y documentos presentes en el repositorio de Alfresco.



NOTA: Para llevar a cabo esta integración, debemos tener el mismo usuario definido en Alfresco  y en Liferay o bien tener configurado un sistema SSO (Single Sign On)

5 de febrero de 2019

:: Tip. Script en Groovy para consulta de propiedades de un tipo de datos de Alfresco

Únicamente a modo de apunte, haciendo uso de la herramienta CMIS Workbench podemos conectar con el repositorio de Alfresco. En este teníamos definidos una serie de datos personalizados, y necesitamos obtener los valores asociados a estos metadatos.

Un breve script que podemos ejecutar desde la consola de la herramienta, podría ser similar al siguiente:


import org.apache.chemistry.opencmis.commons.*
import org.apache.chemistry.opencmis.commons.data.*
import org.apache.chemistry.opencmis.commons.enums.*
import org.apache.chemistry.opencmis.client.api.*

Document doc = (Document) session.getObject("d779ee5c-7aa0-46ab-a31f-d8340f9114d0;1.0");

println(doc.name);
println(doc.description);

println("");
println(doc.properties['id']);
println("");

println(doc.getPropertyValue('aso:fecha').format('DD/MM/YYYY'));
println(doc.getPropertyValue('aso:tema'));
println(doc.getPropertyValue('aso:organismo'));


Como salida obtendremos en la consola, diversa información sobre el nodo (uno específico) que estamos consultando.

29 de enero de 2019

:: Tip. Búsqueda por etiquetas en Alfresco

Si en nuestro gestor documental etiquetamos los documentos, podemos llevar a cabo búsquedas sobre estos, haciendo uso de las etiquetas. Para ello, en el buscador, debemos especificar:


TAG:"nombre-de-la-etiqueta"


Por ejemplo, para buscar los documentos que contengan la etiqueta "cmis", la búsqueda a realizar sería:


TAG:"cmis"


22 de octubre de 2018

:: Alfresco. Aspecto: "Enviado por email" (TIP)

Dentro de Alfresco, disponemos de una regla de contenido que nos permite añadir un aspecto a por ejemplo: todos los documentos que entren en esta carpeta.
De esta manera, para estos documentos, se les añadirán los siguientes campos de sólo lectura (no son editables):
  • De
  • Fecha de envío
  • Para
  • CC
  • Asunto
Si los documentos que subimos a nuestro Alfresco no son de tipo "eml", tendremos que generar un script que asigne la meta información oportuna. En el caso de que estemos utilizando la herramienta de importación: FileSystem Bulk Import, podríamos preparar un fichero de propiedades.
Si el fichero a subir se llama por ejemplo: "correo.html", nuestro fichero de propiedades deberíamos nombrarlo: "correo.html.metadata.properties".

El contenido de este último podría ser algo similar a lo siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
  <entry key="cm:originator">noreply@gmail.com</entry>
  <entry key="cm:addressee">netic360@gmail.com</entry>
  <!--<entry key="cm:addressees">Impresora multifunción</entry>-->
  <entry key="cm:subjectline">Aceptación presupuesto: IN1213421435</entry>
  <entry key="cm:sentdate">2018-01-01</entry>
  <entry key="cm:description">Documento de tipo correo electrónico</entry>
</properties>


15 de octubre de 2018

:: Alfresco. Configuración del buscador avanzado sobre un tipo de datos personalizado

Una vez tenemos definido un tipo personalizado de datos, por ejemplo: facturas con los siguientes campos:
-  Número de factura
- Año
- Fecha
- NIF
- Número de proveedor
- Concepto

y el buscador para este tipo de datos, es posible que necesitemos configurar este para que únicamente nos permita llevar a cabo búsquedas por unos determinados campos. Por ejemplo, para que nos permita buscar -únicamente- por el número de factura.

Para llevar cabo esta parametrización, debemos realizar las siguientes modificaciones:

En el fichero "share-config-custom.xml" ubicado en la carpeta: "tomcat/shared/classes/alfresco/web-extension" donde tenemos definido el formulario a mostrar para el tipo de datos personalizado, debemos definir el correspondiente que se mostrará en la búsqueda:

Si el formulario que tenemos definido para el tipo de datos siguiente:

<config evaluator="model-type" condition="fac:facturanetic360">
    <forms>
   <form>
   <field-visibility>
      <show id="fac:nfactura" />
      <show id="fac:anio" />
      <show id="fac:fecha" />
      <show id="fac:nif" />
      <show id="fac:nproveedor" />
      <show id="fac:concepto" />
    </field-visibility>
    <appearance>
    <set id="facturanetic360set" appearance="fieldset" label-id="set.fac_facturanetic360set"/>
    
    <field id="fac:nfactura" label-id="prop.fac_nfactura" set="facturanetic360set" />
    <field id="fac:anio" label-id="prop.fac_anio" set="facturanetic360set" />
    <field id="fac:fecha" label-id="prop.fac_fecha" set="facturanetic360set" />
    <field id="fac:nif" label-id="prop.fac_nif" set="facturanetic360set" />
    <field id="fac:nproveedor" label-id="prop.fac_nproveedor" set="facturanetic360set" />
    <field id="fac:concepto" label-id="prop.fac_concepto" set="facturanetic360set"/>
   </appearance>
   </form>
    </forms>
 </config>


Tendremos que añadir el formulario para la búsqueda:

<form id="search">
   <field-visibility>
      <show id="fac:nfactura" />
    </field-visibility>
    <appearance>
    <set id="facturanetic360set" appearance="fieldset" label-id="set.fac_facturanetic360set"/>
    
    <field id="fac:nfactura" label-id="prop.fac_nfactura" set="facturanetic360set" />
   </appearance>
   </form>



Más información: https://community.alfresco.com/docs/DOC-6013-share-advanced-search

6 de septiembre de 2018

:: Alfresco. Importación de metadatos

Cuando llevamos a cabo una importación de documentos en Alfresco utilizando la herramienta: "Bulk FileSystem Import" necesitamos asociar una serie de metadatos a cada uno de los documentos.

Para este proceso de asociación de metadatos en la carga masiva de documentos, necesitaremos generar el fichero con la metainformación oportuna.

Si por ejemplo tenemos un fichero: "fichero-1.pdf" de tipo factura (el tipo de datos ya lo tendremos definido en nuestro Alfresco), para asociarles la metainformación, necesitaremos disponer de fichero .xml  que se llame: "fichero-1.pdf.metadata.properties.xml" con el siguiente contenidos


< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
< properties>
  < entry key="fact:proveedor">epson</entry>
  < entry key="fact:fecha">2018-05-18</entry>
  < entry key="fact:concepto">Impresora multifunción</entry>
  < entry key="fact:nif">0000000</entry>
  < entry key="fact:nfactura">152</entry>
  < entry key="cm:description">Documento de tipo factura.</entry>
< /properties>

Una vez tengamos todos los ficheros .xml preparados con la metainformación a asociar, accederemos a la herramienta "Bulk FileSystem Import" y especificaremos las rutas necesarias:

http://{Alfresco}/alfresco/service/bulkfsimport




31 de agosto de 2018

:: Alfresco. Creación de un "tenant"

¿Qué es Multitenant en Alfresco?
De una forma sencilla, podríamos decir que con una única instalación de Alfresco, podemos tener "alfrescos" independientes para nuestros clientes. Es decir, a partir de un único .war, tendremos distintos repositorios físicos independientes.



Creación de un tenant
Para definir un "tenant" en Alfresco, debemos seguir una serie de pasos que describiremos a continuación:
1.- Como usuario administrador, accederemos a la consola de administración
http://localhost:8383/alfresco/

Seleccionaremos la entrada denominada: "Alfresco Administration Console"



2.- En la consola de administración, seleccionamos la entrada: "Consola de  inquilino"


3.- Tras seleccionar esta entrada, nos mostrará la consola desde la que podemos llevar a cabo la creación del tenant.
Disponemos de un comando de ayuda: "help" el cual nos mostrará la sintaxis y operaciones que podemos llevar a cabo desde la consola

4.- Insertaremos la siguiente instrucción:
create netic360.com netic360$18

De esta manera, crearemos un tenant denominado: "netic360.com" con la clave de administración: "netic360$18)"


5.- Una vez creado este tenant, podemos ejecutar la instrucción: "show tenant" para comprobar que efectivamente se ha creado.


6.- Cerramos sesión y a continuación nos loguearemos en el tenant creado.
Las credenciales de acceso serán:
usuario: admin@netic360.com
clave: netic360$18


Sobre el nuevo tenant creado, trabajaremos con normalidad, creando sitios, definiendo reglas, tipos de contenidos, ....

Más información sobre MT en Alfresco y características no soportadas:
https://docs.alfresco.com/5.2/concepts/mt-not-implemented.html


20 de agosto de 2018

:: Alfresco. Importación de metadatos con Bulk Filesystem Import Tool

Alfresco dispone de una herramienta para llevar a cabo la importación masiva de documentos, denominada: Bulk Filesystem Import Tool.

En esta herramienta debemos especificar la ruta origen (visible desde el servidor) y la ruta destino donde se ubicarán los documentos importados.
http://{servidor-alfresco}/alfresco/service/bulkfsimport



Además de los documentos, podemos preparar previamente una serie de ficheros de metadatos, denominados "shadow metadata files" que contendrán la metainformación de cada uno de ellos.

De esta manera, si por ejemplo los ficheros a importar son facturas y disponemos de esta metainformación, podemos generar un fichero xml asociado el fichero.

Como caso de prueba, disponemos de un tipo de datos personalizado, denominado: "factura" con los siguientes campos:
- Proveedor
- Fecha
- Concepto
- Nif
- Nº factura

Si el documento (factura) se llama "fichero 1.pdf" tendremos que generar un fichero xml nombrado: "fichero 1.pdf.metadata.properties.xml". Este fichero xml contendrá la siguiente información:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
  <entry key="fact:proveedor">epson</entry>
  <entry key="fact:fecha">2018-05-18</entry>
  <entry key="fact:concepto">Impresora multifunción</entry>
  <entry key="fact:nif">0000000</entry>
  <entry key="fact:nfactura">152</entry>
  <entry key="cm:description">Documento de tipo factura.</entry>
</properties>


Una vez finalizada la importación de los ficheros, tendremos en Alfresco la información asociada a estos:

Más información: https://github.com/pmonks/alfresco-bulk-import/wiki/Preparing-the-Source-Content

1 de agosto de 2018

::Alfresco. Algunas tablas útiles

En posts anteriores describimos cómo podíamos extraer el modelo de datos que está por detrás de Alfresco, siempre y cuando tengamos acceso a la base de datos.

En ocasiones, puede resultar de utilidad realizar alguna consulta directa sobre determinadas tablas, para obtener información detallada. Algunas de las tablas interesantes a tener en cuenta son las siguientes:

alf_store: Contiene información sobre los almacenes disponibles en Alfresco

alf_node: Contiene información sobre los distintos nodos de Alfresco; hay que recordar que en Alfresco todo está representado por nodos

alf_qname: Contiene los nombres de los tipos de propiedades

alf_node_properties: Contiene información sobre las propiedades de los modelos de datos de Alfresco (documentos, carpetas, usuarios,...)


20 de julio de 2018

:: CMIS. Documentos de una determinada carpeta

Como prueba de concepto, necesitamos obtener los documentos de una determinada carpeta mediante una consulta CMIS:

SELECT cmis:objectId, cmis:name FROM cmis:document  WHERE 

CONTAINS('PATH:"//app:company_home/st:sites/cm:netic360/cm:documentLibrary/cm:Facturas/*"')


Podemos hacer uso de CMIS Workbench:
http://chemistry.apache.org/java/developing/tools/dev-tools-workbench.html

Información adicional sobre la especificación CMIS:
http://docs.oasis-open.org/cmis/CMIS/v1.1/CMIS-v1.1.html#x1-110001r109

16 de julio de 2018

:: Alfresco. Crear documento desde plantilla con un número incremental

Como prueba de concepto, queremos que los usuarios creen documentos a partir de una plantilla, y que estos tengan el mismo nombre y un código numérico (incremental), indicando el número de documento.

Para ello, los pasos a seguir son los siguientes:

.- La plantilla del documento la copiaremos en: ""
De esta manera, a nuestros usuarios les aparecerá la opción de seleccionar la plantilla oportuna, en la opción: "Crear documento a partir de plantilla"

.- Sobre la carpeta contenedora, definiremos una regla de contenido que al crear o entrar documentos ejecute un script

.- El contenido del script: "rename_doc.js" podría ser algo similar a esto:

var folder=document.parent;
var documents=folder.children;
var docNumber=documents.length;

document.name=document.name+"_"+docNumber+".docx";
document.properties["cm:title"]=document.name+"_"+docNumber+".docx";
document.properties["cm:description"]="DocNumber: "+docNumber;
document.save();


4 de julio de 2018

:: Alfresco. Evitar el autocompletado de contraseñas en la página de login

Como prueba de concepto vamos a crear una página de login personalizada, para lo que seguiremos los pasos que describiremos a continuación.

1.- Localizamos el fichero: "login.get.html.ftl" ubicado en: "\tomcat\webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\guest"

2.- Copiamos el fichero anterior a la siguiente ubicación: "\tomcat\shared\classes\alfresco\web-extension\site-webscripts\org\alfresco\components\guest"
En caso de que alguna de las carpetas no exista, será necesario crearlas.

3.- Sobre este fichero, llevaremos a cabo las modificaciones necesarias


<@markup id="form">
         <form id="${el}-form" accept-charset="UTF-8" method="post" action="${loginUrl}" class="form-fields login ${edition}" autocomplete="off">
            <@markup id="fields">
            <input type="hidden" id="${el}-success" name="success" value="${successUrl?replace("@","%40")?html}"/>
            <input type="hidden" name="failure" value="${failureUrl?replace("@","%40")?html}"/>
            <div class="form-field">
               <label for="${el}-username">${msg("label.username")}</label><br/>
               <input type="text" id="${el}-username" name="username" maxlength="255" value="<#if lastUsername??>${lastUsername?html}</#if>" />
            </div>
            <div class="form-field">
               <label for="${el}-password">${msg("label.password")}</label><br/>
               <input type="password" id="${el}-password" name="password" maxlength="255" />
            </div>
   <div class="form-field">
    <input type="checkbox" id="showpassword" onclick="showPassword('${el}-password')"/>
    <label for="showpassword"> Mostrar clave</label><br/>
   </div>
            </@markup>
            <@markup id="buttons">
            <div class="form-field">
               <input type="submit" id="${el}-submit" class="login-button" value="${msg("button.login")}"/>
            </div>
            </@markup>
         </form>
      </@markup>


Tras reiniciar el servicio de Alfresco, como formulario de login se mostrará este que hemos modificado.


Información adicional: https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

:: Liferay DXP 2026. Habilitar RSS

En la versión Liferay DXP 2026 para habilitar las fuentes de datos RSS debemos seguir los pasos siguientes: 1.- Accederemos a la Configuraci...