Plantillas y workflows - RESUELTO

OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
Forum rules
Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
Post Reply
tomsp
Fresh Boarder
Fresh Boarder
Posts: 9
Joined: Fri Nov 16, 2018 5:06 pm

Plantillas y workflows - RESUELTO

Post by tomsp » Tue Dec 18, 2018 3:58 pm

Hola! Realicé unas plantillas y varios workflows, por lo que ya estoy familiarizado con su funcionamiento.

Escribo para saber si me pueden ayudar con lo suigiente:
Necesito realizar un workflow en el cual se pida un solo dato (como por ejemplo la ID de una persona) y luego se cree un documento a partir de una plantila con los todos datos que se tengan de esa persona (nombre, direccion, etc). La plantilla ya está definida con su grupo de metadatos correspondiente y los datos se completan por medio de inputs del usuario.
Lo que necesito saber que cómo puedo lograr la creación del nuevo documento por medio de un workflow para así autocompletar los datos y facilitarle la vida al usuario.

Estaba pensando en ejecutar el TemplateWizard desde el workflow, pero no śe cómo.
¿O tal vez usar el método createFromTemplate? ¿Qué me recomiendan?

Saludos!
Last edited by tomsp on Thu Feb 07, 2019 3:37 pm, edited 2 times in total.

jllort
Moderator
Moderator
Posts: 10501
Joined: Fri Dec 21, 2007 11:23 am
Location: Sineu - ( Illes Balears ) - Spain
Contact:

Re: Plantillas y workflows

Post by jllort » Wed Dec 19, 2018 6:07 pm

Tienes que utilizar el método del API createFromTemplate ( olvídate del wizard de la interfaz de usuario, que no te sirve para nada en este escenario ).

tomsp
Fresh Boarder
Fresh Boarder
Posts: 9
Joined: Fri Nov 16, 2018 5:06 pm

Re: Plantillas y workflows

Post by tomsp » Thu Dec 20, 2018 2:05 pm

Gracias! Encontré dos métodos createFromTemplate (estoy usando OpenKM Community v6.3.6):
  • el primero es GWTDocument createFromTemplate(String docPath, String destinationPath, List<GWTFormElement> formProperties, Map<String,List<Map<String,String>>> tableProperties)
    Aquí tengo dudas con el último parámetro, qué vendría a ser tableProperties?
  • el segundo es void createFromTemplate(String docPath, String fldPath, String name, GWTExtendedAttributes attributes)
    En este caso, attributes solamente debería tener como true el setPropertyGroup?
Tengo entendido que debo usar el primer método, pero tengo dudas respecto al último parámetro, como dije.

jllort
Moderator
Moderator
Posts: 10501
Joined: Fri Dec 21, 2007 11:23 am
Location: Sineu - ( Illes Balears ) - Spain
Contact:

Re: Plantillas y workflows

Post by jllort » Mon Dec 24, 2018 3:33 pm

Tienes que mirar sobre la linea 845 del DocumentServlet. El tema de fondo es que los parametros en la plantilla tienen este format okp_consulting.name cuando el campo de metadatos tiene el valor okp:consulting.name en la definicion. La lista de formElement y el mapa en realidad son 2 formas de rellenar los valores en la plantilla ( puedes pasarle una lista de formElement vacia y todo en el Mapa o a la inversa ).

Code: Select all

for (GWTFormElement formElement : formProperties) {
	String key = formElement.getName().replace(".", "_").replace(":", "_");
	Object value = GWTUtil.getFormElementValue(formElement);
	values.put(key, value);
}

for (String key : tableProperties.keySet()) {
	values.put(key, tableProperties.get(key));
}

tomsp
Fresh Boarder
Fresh Boarder
Posts: 9
Joined: Fri Nov 16, 2018 5:06 pm

Re: Plantillas y workflows

Post by tomsp » Thu Dec 27, 2018 2:01 pm

Bien, ahora logré crear la platinlla, pero los metadatos no se completaron. Utilicé el mapa solamente:
Map<String,List<Map<String,String>>>.

La lista quedó, por ejemplo, lista.add("okp:consulting.name","Alicia") y el argumento final (quiźas aquí esté el error) Map<"okp:consulting.name", lista>
Aquí adjunto el código

Code: Select all

OKMPropertyGroup.getInstance().addGroup(token, template_path, "okg:consulting");
Map<String, String>  map = new HashMap<String, String>();
map.put("okp:consulting.name","Alicia");
OKMPropertyGroup.getInstance().setPropertiesSimple(token, template_path, "okg:consulting", map);
		
List<Map<String,String>> lista = new ArrayList<>();
lista.add(map);
	
List<GWTFormElement> elementos = new ArrayList<>();
	
Map<String,List<Map<String,String>>> mapa = new HashMap<>();
mapa.put("okp:consulting.name", lista);
				
ds.createFromTemplate(template_path, path_documento, elementos, mapa);

jllort
Moderator
Moderator
Posts: 10501
Joined: Fri Dec 21, 2007 11:23 am
Location: Sineu - ( Illes Balears ) - Spain
Contact:

Re: Plantillas y workflows

Post by jllort » Sat Dec 29, 2018 12:37 pm

Igual lo mas sencillo para ti sea debugar la parte del servlet que se utiliza para crear un documento a partir de una plantilla.

Aquí tienes un ejemplo de una plantilla https://docs.openkm.com/kcenter/view/ok ... plate.html configurarlá en OpenKM. Y acto seguido ( en el entorno de desarrollo -> imagino que es lo que estas utilizando, sino desde la zona de descargas te aconsejo instalarlo https://www.openkm.com/en/download.html )

Una vez tengas la plantilla configurada te sugiero debugar la clase DocumentServlet -> https://github.com/openkm/document-mana ... .java#L610

tomsp
Fresh Boarder
Fresh Boarder
Posts: 9
Joined: Fri Nov 16, 2018 5:06 pm

Re: Plantillas y workflows

Post by tomsp » Thu Feb 07, 2019 3:37 pm

Ya logré hacerlo a través de un Workflow. Muchas gracias por la ayuda, pude hacerlo siguiendo el debug como recomendaste.

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests