El wms de jda fue desarrollado de tal manera que quien adquiera el software pueda realizar modificaciones a nivel de usuario, para que sin necesidad de pagos extras y sin habilidades de desarrollo de software se pueda agregar valor a la aplicación que puedan cumplir las necesidades operativas.
Definición
Las aplicaciones DDA por sus siglas en inglés (Data Driven Application) son todas aquellas aplicaciones creadas para el cliente windows que solo tienen dependencia de comandos moca.
Si aún no estás familiarizado con el tema de los comandos moca de invito a leer:
Creación de comandos moca en el WMS de JDA
Existen otras pantallas las cuales tienen componentes en lenguaje C# o Java las cuales no son consideradas DDA ya que para que una aplicación pueda considerarse DDA esta debió ser creada con el asistente de creación de pantallas incluido dentro de la aplicación.
Características
Las DDA permiten a los usuarios:
- Realizar tareas de consulta y mantenimiento de la información en la base de datos.
- Tomar acciones en la información obtenida por medio de comandos moca.
Beneficios
Esta tecnología permite a los equipos de implementación y a usuarios finales el utilizar la información de la base de datos en una pantalla con interfaz de usuario, la cual contiene elementos para la manipulación y control de los datos.
Tipos
Existen 2 tipos de DDA, las que son para la aplicación windows y las que son para la aplicación web, para versiones anteriores a la 9 las DDA de tipo web eran visibles dentro del servidor waffle, en el caso de las versiones 9 en adelante existen las pantallas en la aplicación windows y para la aplicación web se realizan por medio de una nueva funcionalidad llamada page builder, la cual no será utilizada en esta entrada.
Clasificación
Dependiendo de la funcionalidad que le otorgamos a las DDA le asignaremos su clasificación la cual nos ayudará a clasificarlas y a identificarlas dependiendo su funcionalidad las cuales describo a continuación:
Acción: Son utilizadas para enlazar una acción a un conjunto de resultados los cuales pueden ser obtenidos de otra DDA.
Nota: Si la DDA requiere que el usuario introduzca valores para la ejecución de algún comando moca, puede ser creada como tipo acción y hacer los campos editables y restringir al usuario los valores de entrada.
Cascada: Es aquella utilizada para desplegar los resultados en diferentes niveles dentro de una misma aplicación por medio de una estructura de árbol.
Nota: Los datos dentro de los diferentes niveles pueden ser heredados entre las diferentes aplicaciones en las DDAS de cascada.
Dinámica: Es utilizada cuando en la aplicación se define como acción la ejecución de una diferente DDA la cual puede ser llamada con un botón para la realización de diferentes objetivos de manera dinámica.
Ejecución: Es utilizada para soporta entrada de datos para una rápida modificación, permite a los usuarios el ingresar valores en los campos haciendo una búsqueda inmediata sin la necesidad de hacer uso de un botón de buscar.
Este tipo de DDA no muestra datos en cambio muestra los campos con los cuales los usuarios pueden ejecutar diferentes acciones basados en su búsqueda.
Mantenimiento: Son utilizadas para crear y mantener servicios definidos en comandos de listado, en las dda de mantenimiento se muestran cuadrículas con los resultados obtenidos en las cuales los datos pueden ser modificados.
Nota: Para poder habilitar todas las funcionalidades de las DDA de mantenimiento es necesario definir y crear las acciones de crear, cambiar y eliminar.
Mantenimiento (Creación): Las DDA de tipo creación son utilizadas para definir el servicio de la DDA de mantenimiento padre como acción de creación de datos, cuando una DDA de mantenimiento de tipo creación es agregada a una DDA padre de mantenimiento un botón con el nombre de «Add» es agregado a la pantalla padre con el cual se invocará este tipo de DDA, normalmente las DDA de tipo creación contienen comandos moca de inserción de datos en la base de datos.
Mantenimiento (Cambio): Son utilizadas para definir en las DDA de mantenimiento un servicio para realizar alteración de datos, las DDA de cambio son llamadas desde sus DDA de mantenimiento padre cada que algún elemento de la cuadrícula de datos es modificado, normalmente contienen comandos que realizan updates en la base datos.
Mantenimiento (Eliminación): De igual manera que las pantallas de cambio y creación, esta es hija de una pantalla de mantenimiento siendo esta la utilizada para eliminar datos, cuando una DDA de eliminación de datos se asociada a un padre de mantenimiento, un botón con el nombre de «Delete» es agregado a la pantalla padre la cual normalmente hace invocación de comandos moca que realizan eliminación de datos en la base de datos.
Query: El tipo query o consulta, es utilizado para definir y realizar búsquedas de datos dinámicos por medio de valores insertados por medio de campos, estos valores son presentados en una cuadrícula y pueden ser exportados en diferentes formatos por ejemplo excel, tiene la ventaja de que puede utilizar los campos como filtros de búsqueda para el comando moca que realizara la obtención de la información, normalmente este tipo de DDA solo hace uso de sentencias «SELECT» dentro de los comandos moda.
Single Row: Este tipo de DDA limita al usuario a tener como datos de entrada una sola línea es utilizada normalmente para obtención de datos mostrados en una cuadrícula la cual no es modificada y es creada para una búsqueda mucho más rápida y sin costo de recursos.
Pasos para la creación de una DDA
En el siguiente diagrama muestro los pasos para poder crear pantallas DDA:
Diagrama 1 : Proceso para la creación de una aplicación DDA.
Conclusiones
La creación de aplicaciones DDA no es complicado, existe un wizard bastante fácil de utilizar con el cual se pueden crear sin complicaciones.
La parte que podría ser la más complicada y la que pueda ocasionar algunos dolores de cabeza es la creación de los comandos moca y la validación de los datos, ya que muchas veces realizando las pruebas de las nuevas pantallas es donde podemos encontrar algunas excepciones no validadas en la creación de los comandos.
Se que es mucha información que incluso para mi es complicado el entender todas estas definiciones, sin embargo les comento que me encuentro trabajando en un caso práctico a solicitud de uno de los lectores del blog en el cual estaré explicando paso a paso la creación de una DDA para el siguiente propósito: «Una DDa que me permita ver la parte alternativa de los artículos y además contenga la información de la huella predeterminada del articulo y que desde esta se puede actualizar la parte alternativa si fuere necesario», llevo bastante avance en esta DDA y espero poder compartir los pasos y el resultado de la misma a mediados de la siguiente semana.
Por favor no dudes en comentar y/o contactarme en caso de que existan dudas o en caso de que te gustaría que habláramos de un tema en específico en el blog.
Muchas gracias por pasarte por mi blog y espera muy pronto la siguiente entrada: «Caso práctico: Creando una pantalla DDA para la consulta y alteración de los numero de parte alternativos»
Nota: La información presentada en este blog es solo para uso didáctico, ni el autor ni la página se hacen responsables por el uso indebido de la información presentada.
Muy buen aporte como siempre sencillo pero muy clara la explicacion, y aplicable a mi trabajo actual, ya que donde trabajo en colombia usamos DLX de JDA.
Me gustaLe gusta a 1 persona
Wilfer, estuve intentando crear ese comando (Cambiar los detalles de la huella de un producto)pero está muy complicado, la lógica del sistema es eliminar toda la huella y después volver a crearla intente crear un comando que hiciera la actualización pero esta demasiado complicado, por tal motivo este proceso de actualizar los valores de las huellas en su detalle quedara fuera de está DDA por el momento, tomaré este como un reto a resolver en el futuro.
Me gustaMe gusta
Hola david super muchas gracias
Me gustaMe gusta
David estuve trabajando en la DDa ya la tengo creada ya esta el comando, claro sin la modificacion de la huella, pero aun no he podido que se visualice en el menu de dlx
Me gustaMe gusta
Hola, yo tambien he estado trabajando en ella y ya llevo alrededor de un 50% de esta, te comento que incluso tengo un borrador en el blog donde estoy metiendo los pasos a pasos de cómo la he ido creando, me puedes apoyar en compartirme lo que hiciste si es posible exportar tus dda para que las revise y pueda ir viendo si te falto algo ?
Gracias
Me gustaMe gusta
Por cierto creo que tu problema esta en el menú donde la quieres visualizar por favor exportala para que yo la ponga en mi ambiente y pueda ver que es lo que hace que no la veas.
Me gustaMe gusta
Hola Wilfer, gracias por tu comentario, te comento que para el ejemplo de la DDA va a ser necesario crear el siguiente comando moca: «Comando que cambie la huella de un producto», sería un buen ejercicio que lo intentaras realizar, que opinas lo realizar y me lo compartes para agregarlo al caso práctico ?, solo se necesita un comando que realice update en la huella de un ítem en específico con los argumentos de entrada siendo el ítem , el código de la huella y el valor a actualizar.
Me gustaMe gusta
David dime a que correo te la envio
Me gustaMe gusta
Por favor enviarlo a :
Me gustaMe gusta
David ya tengo la DDa termida y funcionando, pero tengo un problema meti esto en el codigo para mostrar un errror cuando consulten un ean o un articulo que no este y cuando lo hago por lex edit lo hace bien pero ya en la DDa no me funciona
publish data
where wh_id = ‘BM01’
and client_id = ‘860002392’
|
[select prt.prt_client_id,
prt.wh_id_tmpl,
alt.alt_prtnum,
prt.prtnum,
lngdsc,
alt.alt_prt_typ,
prt.stkuom,
prt.prtfam,
prt.abccod,
prt.untcst,
alt.mod_usr_id,
alt.moddte,
alt.ins_dt,
alt.last_upd_dt,
alt.ins_user_id,
alt.last_upd_user_id,
decode(alt.alt_prtnum, prt.dsp_prtnum, 1, 0) dsp_prt_flg
from alt_prtmst alt
inner
join prtmst prt
on prt.prtnum = alt.prtnum
and prt.prt_client_id = alt.prt_client_id
inner
JOIN prtdsc
ON prtdsc.colval = prt.prtnum + ‘|’ + prt.prt_client_id + ‘|’ + prt.wh_id_tmpl
where alt.prt_client_id = @client_id
and prt.wh_id_tmpl = @wh_id
and @+prt.prtnum
and @+alt.alt_prtnum
and prtdsc.locale_id = nvl(@locale_id, @@locale_id)] catch(-1403)
|
if (@? != -1403)
{
publish data
where client_id = @prt_client_id
and wh_id = @wh_id_tmpl
AND prtnum = @prtnum
and alt_prtnum = @alt_prtnum
and lngdsc = @lngdsc
and alt_prt_typ = @alt_prt_typ
and stkuom = @stkuom
and prtfam = @prtfam
and abccod = @abccod
and untcst = @untcst
and mod_usr_id = @mod_usr_id
and moddte = @moddte
and ins_dt = @ins_dt
and last_upd_dt = @last_upd_dt
and ins_user_id = @ins_user_id
and last_upd_user_id = @last_upd_user_id
and dsp_prt_flg = @dsp_prt_flg
}
else
{
set return status
where status = 80259
}
Me gustaLe gusta a 1 persona
Le puedes sacar un trace y compartirlo porfa
Me gustaMe gusta
Me parece que estas concatenando mal
Me gustaMe gusta
Hola!!
Muchas gracias por toda la información!
Tengo una consulta. ¿Sabes si puedo crear un campo tipo lista desplegable dentro de una DDA?
Me gustaMe gusta