viernes, 1 de julio de 2016

[JD Edwards] Insertar Javascript en Pantallas

En uno de los últimos proyectos realizados, una de las necesidades se podría resolver fácilmente con JavaScript. Pero nunca había insertado código javascript en una aplicación de JD Edwards (tampoco he tenido esa necesidad).

Lo que sí que sabía hasta el momento es que en los text blocks se podría insertar código HTML, pero si puedes insertar código HTML entonces se tenía que poder embeber código JavaScript!

Así que me puse a investigar y trabajar en ello, y pude añadir añadir Javascript!!!

Alert JavaScript from JD Edwards

En algunos post que leí comentan que para versiones superiores a 8.90 hay que habilitar seguridad para ello, en mi caso no fue necesario con JD Edwards 9.2.

Code Example:

     evt_HTML_A030
     evt_iSegmentID_INT01
     evt_Message_ALPH
     evt_WebcenterContentLogin_URL
     OPT: Using Defaults
0001 //
0002 // Initialize Variables
0003 //
0004 VA evt_HTML_A030 = ""
0005 VA evt_iSegmentID_INT01 = 1
0006 //
0007 // Notify the tool that the Information text block contains encoded text.
0008 //
0009 Encode(FC Text Block 100, VA evt_HTML_A030, VA evt_HTML_A030)
0010 //
0011 // HTML & Javascript Code
0012 //
0013 //  
0014 VA evt_Message_ALPH = ""Hello JavaScript!!!""
0015 VA evt_HTML_A030 = concat([VA evt_HTML_A030],"<script type="text/javascript">")
0016 VA evt_HTML_A030 = concat([VA evt_HTML_A030],"function abrirVentana(){")
0017 VA evt_HTML_A030 = concat([VA evt_HTML_A030],"alert(")
0018 VA evt_HTML_A030 = concat([VA evt_HTML_A030],concat([VA evt_Message_ALPH],");"))
0019 VA evt_HTML_A030 = concat([VA evt_HTML_A030],"}")
0020 VA evt_HTML_A030 = concat([VA evt_HTML_A030],"</script>")
0021 VA evt_HTML_A030 = concat([VA evt_HTML_A030],"<button onclick="abrirVentana();">")
0022 VA evt_HTML_A030 = concat([VA evt_HTML_A030],"Alert</button>")
0023 VA evt_HTML_A030 = concat([VA evt_HTML_A030],"<script>")
0024 //
0025 // Add HTML & JS to segment
0026 //
0027 Add Segment(FC Text Block 100, VA evt_HTML_A030, <Default,Default,0,Default>, <No>, VA evt_iSegmentID_INT01)

Los siguientes pasos será crear una librería JavaScript para tener el código por separado y que sea más sencillo y rápido poder acceder a las funciones JS.

Personalmente, creo que ésto abre un mundo de posibilidades.

Welcome to Custom JD Edwards, Javascript.

5 comentarios:

  1. Hola,
    Buena publicación, me he preguntadp ultimamente, si es posible colocar el codigo JavaScript dentro de las ERs de una aplicacion intercativa para llamar un Java Script e Invocar un Orchestration en E1 9.2?
    Estoy intentanto llamar a un Orchestration para invocar un REST API y obtener valores a insertarlos en Tabla o mostrarlos en una Aplicacion Interactiva, de momento no veo la opcion (BSFN u otro metodo nativo) para invocar un Orchestration desde las ERs

    ResponderEliminar
    Respuestas
    1. Hola Tomás, perdona, no sé por qué no no vi éste comentario. Además, justamente hoy estaba viendo algún vídeo tuyo de Orchestator ;) Muy bueno por cierto! No he tenido la oportunidad aún de comenzar con AIS y Orchestator pero quiero empezar a formarme para cuanto nos instalen las nuevas tools y éstos componentes empezar rápidamente a generar servicios y realizar algún proyecto interesante. Seguramente me toque realizarte las preguntas XD
      En cuanto a llamar a un REST API, desde javascript, al no poder utilizar librerías externas y demás, pues la petición habrá que realizarla mediante AJAX con XMLHttpRequest. Pero estaría bien saber la necesidad exacta para lo que lo quieres y si hay alguna otra manera más nativa de realizarlo (que ya has comentado que no ves BSFN o similar, se me ocurre tal vez con una BSFN custom en C o llamando a un proxy internal BSSV en JAVA sea más funcional y sencillo).
      Un saludo.

      Eliminar
    2. Actualizo Tomás, ahora que me pude informar un poco más. En JDE Tools 9.2.3.3 puedes lanzar eventos a Orchestator con Form Extension Manager. Échalo un vistazo: https://docs.oracle.com/cd/E84502_01/learnjde/announcements.html#readmore1

      Eliminar
  2. 카자 먹튀 먹튀 철는문 긴자 먹튀 철는문 긴자 먹튀 철는문 긴자 먹튀 철는문 긴자문 긴자문 긴자문 긴자문 긴자문 긴자문 긴자문 긴자문 긴 카지노사이트 카지노사이트 다파벳 다파벳 우리카지노 우리카지노 bet365 bet365 10bet 10bet rb88 rb88 カジノ シークレット カジノ シークレット 제왕카지노 제왕카지노 bk8 bk8 우리카지노 마틴 우리카지노 마틴 188 Bet365 New Customer Offer - Up to €100 + 100 FS

    ResponderEliminar
    Respuestas
    1. Muy interesante! aunque me he perdido donde ponía 긴자문 긴자문

      Eliminar