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!
Plantillas y workflows - RESUELTO
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.
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.
Plantillas y workflows - RESUELTO
Last edited by tomsp on Thu Feb 07, 2019 3:37 pm, edited 2 times in total.
-
- Moderator
- Posts: 10451
- Joined: Fri Dec 21, 2007 11:23 am
- Location: Sineu - ( Illes Balears ) - Spain
- Contact:
Re: Plantillas y workflows
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 ).
Re: Plantillas y workflows
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?
-
- Moderator
- Posts: 10451
- Joined: Fri Dec 21, 2007 11:23 am
- Location: Sineu - ( Illes Balears ) - Spain
- Contact:
Re: Plantillas y workflows
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));
}
Re: Plantillas y workflows
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
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);
-
- Moderator
- Posts: 10451
- Joined: Fri Dec 21, 2007 11:23 am
- Location: Sineu - ( Illes Balears ) - Spain
- Contact:
Re: Plantillas y workflows
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
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
Re: Plantillas y workflows
Ya logré hacerlo a través de un Workflow. Muchas gracias por la ayuda, pude hacerlo siguiendo el debug como recomendaste.
Who is online
Users browsing this forum: No registered users and 3 guests