[Resuelto] Carga Masiva de Opciones de un Dynamic Field
[Resuelto] Carga Masiva de Opciones de un Dynamic Field
Hola buen día, mi duda es la siguiente, si he creado un campo dinamico con un dropdown, puedo realizar de alguna forma masiva la carga de las opciones? he visto que el campo se guarda en base de datos pero las opciones no se donde se almacenan, pareciese que son cargadas en unos binarios, si alguien me puede ayudar agradeceria mucho..
Last edited by luisjf on 20 Mar 2012, 17:21, edited 1 time in total.
Production Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Development Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Development Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
-
- Znuny wizard
- Posts: 370
- Joined: 17 Nov 2011, 17:46
- Znuny Version: 6.0.10
- Real Name: Miguel
- Company: SIA
- Location: Madrid, Spain.
Re: Carga Masiva de Opciones de un Dynamic Field
No te he entendido muy bien, buscas cargas masivas de opciones desde un frontal (cliente por ejemplo) en funcion de las opciones elegidas (tipo, cola, servicio, etc)?
Los dinamicfield al igual que los antiguos freetext son guardados dentro de un Xml en /otrs/Kernel/Config/Files el Ticket.xml si mal recuerdo o DinamicField.xml, dentro se preparan las diversas opciones del dropdownlist que son recogidas por los archivos .dtl correspondientes antes de su insercion a la BBDD.
Estos archivos .dtl estan programados en Javascript y puedes modificarlos a placer, los tienes en /otrs/Kernel/Output/HTML/Standard. Para que nos entendamos son los responsables de mostrarte los deplegables en Creacion de Ticket en los frontales como el CustomerTicketMessage.dtl (nuevo ticket, forntal cliente). Si modificas su contenido en ese punto, omites lo que contuvieran en la configuracion xml permitiendote cargar opciones distintas en funcion de eventos sobre los dropdownlist iniciales basicos (Colas y Tipo de ticket)
Yo por ejemplo tengo un catalogo de peticiones que se hace visible y carga con su respectivo catalogo cuando se selecciona el tipo de ticket "Peticion" y la cola correspondiente.
No se si es lo que necesitas, espero que te sirva de ayuda.
Los dinamicfield al igual que los antiguos freetext son guardados dentro de un Xml en /otrs/Kernel/Config/Files el Ticket.xml si mal recuerdo o DinamicField.xml, dentro se preparan las diversas opciones del dropdownlist que son recogidas por los archivos .dtl correspondientes antes de su insercion a la BBDD.
Estos archivos .dtl estan programados en Javascript y puedes modificarlos a placer, los tienes en /otrs/Kernel/Output/HTML/Standard. Para que nos entendamos son los responsables de mostrarte los deplegables en Creacion de Ticket en los frontales como el CustomerTicketMessage.dtl (nuevo ticket, forntal cliente). Si modificas su contenido en ese punto, omites lo que contuvieran en la configuracion xml permitiendote cargar opciones distintas en funcion de eventos sobre los dropdownlist iniciales basicos (Colas y Tipo de ticket)
Yo por ejemplo tengo un catalogo de peticiones que se hace visible y carga con su respectivo catalogo cuando se selecciona el tipo de ticket "Peticion" y la cola correspondiente.
Code: Select all
switch ($('#Dest').val() ) {
case "3\|\|Junk":
switch ($('#TypeID').val()) {
case "2":
hide()
document.getElementById('TicketFreeText1').style.display = 'block';
document.getElementById('LabelTicketFreeText1').style.display = 'block';
document.forms['compose'].TicketFreeText1.options.length= null;
document.forms['compose'].TicketFreeText1.options[0]= new Option("Borrado cuentas","borrado","","");
document.forms['compose'].TicketFreeText1.options[1]= new Option("Alta cuentas","alta","","");
document.forms['compose'].TicketFreeText1.options[2]= new Option("Modificacion cuentas","modificacion","","");
[....]
}
[....]
}
Re: Carga Masiva de Opciones de un Dynamic Field
Hola miguelmz, gracias por tu respuesta, disculpa si no me explique bien, efectivamente lo que quiero es conseguir en que archivo son guardadas las opciones o valores de los Dynamic Fields, los FreeText eran guardados en Kernel/Config/Files/ZZZAAuto.pm y desde allí podía cargarlos sin problema, pero ahora no se donde son guardados estos campos nuevos, estuve revisando el Ticket.xml pero no están almacenados allí, si alguien sabe donde son almacenados lo agradecería mucho, en definitiva creo q sería ideal que esos valores fuesen guardados en una tabla en lugar de estar en el código.
Saludos
Saludos
Production Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Development Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Development Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Re: Carga Masiva de Opciones de un Dynamic Field
Yo también estoy buscando donde se guardan estos valores.
Necesito rellenar el combo con datos de una base externa.
Necesito rellenar el combo con datos de una base externa.
Re: Carga Masiva de Opciones de un Dynamic Field
Yo he buscado dentro del código después de crear un dropdown en una prueba que realice y el 'grep' no me devuelve coincidencias, solamente en unos archivos binarios eso realmente me preocupa un poco...
Production Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Development Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Development Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Re: Carga Masiva de Opciones de un Dynamic Field
Si, tal cual, hice lo mismo y el grep encontro lo q buscaba solo dentro de unos binarios.
Tine que haber una forma de levantar opciones desde una base de datos, tengo entendido que es una funcionalidad que viene en la última version.
Tine que haber una forma de levantar opciones desde una base de datos, tengo entendido que es una funcionalidad que viene en la última version.
-
- Znuny wizard
- Posts: 370
- Joined: 17 Nov 2011, 17:46
- Znuny Version: 6.0.10
- Real Name: Miguel
- Company: SIA
- Location: Madrid, Spain.
Re: Carga Masiva de Opciones de un Dynamic Field
Hola Luisjf,
el archivo ZZZAAuto.pm es resultado de la extracion de datos de configuracion de los xml alojados en su misma ruta, donde podias anteriormente encontrar los antiguos freetext que eran tratados desde su origen (los xml) para cortar o alterar su flujo normal posteriormente en dicha extraccion.
no obstante, si observas esos campos eran estaticos en la bbdd (columnas de la tabla ticket), ahora otrs parece hacer una alteracion de tablas en caliente a traves del frontal con la creacion de nuevos campos libres. Si tras crearlo no esta en ninguno de los ficheros de configuracion, es posible que se deba a que el perl del modulo directamente asociado con la alteracion de la tabla este directamente insertando esa columna y la informacion se este alojando en tablas auxiliares en la BBDD por relaciones.
Esto ahora mismo no puedo confirmartelo, pero podrias comprobarlo rapidamente buscando el perl de la creacion de formularios. Cuando estes en la creacion busca en la url la Action implicada y busca el perl en la ruta /opt/otrs/Kernel/Modules. Si no observas una alteracion a la bbdd desde ahi probablemente se encuentren directamente sobre /opt/otrs/Kernel/System como una funcion pilar del sistema (cosa que dudo). Haz busquedas directas de sentencias sql alter table en esa ruta para intentar esclarecer que hace.
A ver si saco algo mas de tiempo y lo miro mas detenidamente.
el archivo ZZZAAuto.pm es resultado de la extracion de datos de configuracion de los xml alojados en su misma ruta, donde podias anteriormente encontrar los antiguos freetext que eran tratados desde su origen (los xml) para cortar o alterar su flujo normal posteriormente en dicha extraccion.
no obstante, si observas esos campos eran estaticos en la bbdd (columnas de la tabla ticket), ahora otrs parece hacer una alteracion de tablas en caliente a traves del frontal con la creacion de nuevos campos libres. Si tras crearlo no esta en ninguno de los ficheros de configuracion, es posible que se deba a que el perl del modulo directamente asociado con la alteracion de la tabla este directamente insertando esa columna y la informacion se este alojando en tablas auxiliares en la BBDD por relaciones.
Esto ahora mismo no puedo confirmartelo, pero podrias comprobarlo rapidamente buscando el perl de la creacion de formularios. Cuando estes en la creacion busca en la url la Action implicada y busca el perl en la ruta /opt/otrs/Kernel/Modules. Si no observas una alteracion a la bbdd desde ahi probablemente se encuentren directamente sobre /opt/otrs/Kernel/System como una funcion pilar del sistema (cosa que dudo). Haz busquedas directas de sentencias sql alter table en esa ruta para intentar esclarecer que hace.
A ver si saco algo mas de tiempo y lo miro mas detenidamente.
-
- Znuny wizard
- Posts: 370
- Joined: 17 Nov 2011, 17:46
- Znuny Version: 6.0.10
- Real Name: Miguel
- Company: SIA
- Location: Madrid, Spain.
Re: Carga Masiva de Opciones de un Dynamic Field
Por cierto, si estas usando la 3.1 con el cambio intuyo deseas hacer, deberias echar un vistazo a esto
http://www.otrs.com/open-source/communi ... -desk-312/
Apartado bugfixes.
Bug#8282 - Dropdown and Multiselect Dynamic Fields without Possible values causes errors with LayoutObject BuildSelection function.
Bug#8277 - DynamicField values not deleted when ticket is deleted.
Bug#8274 - Dynamic Fields ACLs does not work correctly at Ticket Split.
Convendria que tuvieras esto en mente ya que te puede causar un problema en produccion, en mi empresa no nos lanzamos a la version 3.1 porque esta aun poco trasteada (no testeada) para los cambios radicales hechos en su codigo.
Un saludo.
http://www.otrs.com/open-source/communi ... -desk-312/
Apartado bugfixes.
Bug#8282 - Dropdown and Multiselect Dynamic Fields without Possible values causes errors with LayoutObject BuildSelection function.
Bug#8277 - DynamicField values not deleted when ticket is deleted.
Bug#8274 - Dynamic Fields ACLs does not work correctly at Ticket Split.
Convendria que tuvieras esto en mente ya que te puede causar un problema en produccion, en mi empresa no nos lanzamos a la version 3.1 porque esta aun poco trasteada (no testeada) para los cambios radicales hechos en su codigo.
Un saludo.
[Resuelto] Re: Carga Masiva de Opciones de un Dynamic Field
Resulta que a la final si conseguí la información en la base de datos, lo que sucede es que estaba buscándola con el PGADMIN y no me desplegaba todo por lo cual permanecía escondida a mi vista, en la tabla dynamic_field se encuentra la columna config, la cual alberga toda la información del dropdown que he definido como campo dinámico, es una columna de valor Text con Storage EXTENDED, me preocupa un poco su capacidad de almacenamiento, pero afortunadamente ya encontré los datos.
Saludos!
Saludos!
Production Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Development Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2
Development Environment: OTRS 3.1.12, ITSM-OTRS 3.1.2, Debian Squeeze, Postgresql 8.4, Apache 2