jueves, 25 de febrero de 2021

[JD Edwards - BSSV] Importar librería JAVA externa (ESP)

 Hola amigos,

En ocasiones, nos encontramos con la necesidad de extender la funcionalidad de nuestro JDE y muchas funcionalidades nos la encontramos en paquetes o librerías externas JAVA ya que es uno de los lenguajes y plataformas más extendidos. Por ejemplo, recientemente trabajé en un proyecto para implementar códigos bidimensionales QR. Entonces, ¿cuál es la solución?


Pues utilizamos una librería JAVA para facilitar la codificación, en éste caso una de IdAutomation que es de pago, pero hay otras de Google (Zxing) y otras muchas open source, depende cada caso y uso.
Pues bien, éste proveedor facilita una librería java en el cuál tiene una clase y un método que le pasamos el string a codificar y nos devuelve un array codificado. Posteriormente, a éste array le ponemos una fuente y ya tenemos nuestro código QR codificado. Fácil ¿verdad?

Entonces, generamos nuestro objeto BSSV (y no nos olvidemos nuestra BSFN en C para luego comunicarnos desde nuestro report o aplicación), con nuestra clase y método principal. Pero ¿Cómo importamos nuestra librería en nuestro entorno JDeveloper

1. Sobre nuestro proyecto, pulsamos botón derecho y en el menú Project Properties...:

2. Pulsamos sobre el menú en Libraries and Classpath, y dentro de éste sobre Add JAR/Directory:


3. Seleccionamos nuestra librería (recomiendo dejarla en la ruta JDE system\Classes (y luego explico el motivo)

4. Pulsamos sobre Open/Abrir, se nos añade a nuestro proyecto

5. Pulsamos OK, y guardamos el proyecto. Ya podremos utilizar las clases y métodos de la librería externa importándolas a nuestro código.

               boolean bestMask = true;           // Best pattern mask
               
               String resultQREncode = qre.FontEncode(dataToEncode, applyTilde, encodingMode, errorCorrectionLevel, version, bestMask);
               internalVO.setSzQREncodedData(resultQREncode);
               
               printMsg(context, "Encoded => ");
               printMsg(context, resultQREncode);

Y ya tendríamos todo listo en nuestro proyecto!

Para desplegar, tenemos que configurar a nivel de sistema que usamos una librería externa para que a la hora de compilar y que genere el paquete de despliegue, importe nuestra librería. Ésta configuración se realiza en el servidor Deploy (aunque yo también la configuro en mi cliente pesado).

1. Copiamos nuestra librería en la carpeta system\Classes de nuestra instalación:

2. Modificamos el fichero sbffoundation.ini dentro de la misma carpeta, en la sección [Foundation] y añadimos una línea con "LIB" + "siguiente secuencia" + "=" + "Nombre de nuestra librería"

Y con esto ya tendríamos nuestro proyecto de BSSV con una librería externa lista para desplegar!

PD: he utilizado librería externa también para código Datamatrix, para integrar con Webcenter Content a través de RIDC, y recientemente para crear un webservice proxy client a través de una librería externa con wsimport que pondré próximamente en un post.

Buen código JDE Friends!

martes, 5 de noviembre de 2019

[JD Edwards] Asign Icon to Cell Grid

Hi Friends,

When we show data in grid in application, it could be very cross and relevants, but often not very attractive. In JDE we can assign icons to cells to make it visually more attractive and to have a more global idea about the information shown.


How do we do this?

On the one hand, we use Set Grid Cell Icon system function, but attention! this function is only availabe in Business Functions NER type. This function has only 2 parameters:



  •  Image File: image selected to show. We position ourselves in the parameters, click on <Image Picker> and select an icon of the available Bitmaps of the system. ¿Could we add custom images? Of course, but for that we would have to add them previously to the system bitmaps.
  •  Icon Tooltip: as tooltip  we can pass a literal text or assign the description of a data dictionary text (type Error Message).


But, How do I assign it to a column?

The first thing we will have to do is modify in the properties of the same column in Display Style is assign Type Icon.

With this option an event is enabled in the column "Grid Cell Display Changed" where we will call our BSFN to display the icon. Of course, remember that it will only be displayed on the web.

Do I have to do this for each icon I want to display?

The answer is depends on how you put it, there are currently numerous standard functions where they are already implemented. As examples:
  • N43S003 - Load Grid Cell Icon
  • N3201990 - Message Center Icons
  • N0900730 - Set Delete Icon
  • N40G1240 - Set Edit Icon
  • N98220 - Set Grid Icon Web
  • N986110B - Set Grid Icon
  • etc
Must of these functions already have input parameters to show some icons or others depending on the input parameters, or else you can create your own BSFN NER Custom!!!

An example of mine to show attachments with a custom structure at the header level:
JD Ewards Grid Cell Icon
JD Ewards Grid Cell Icon

I hope it will be you useful!

Let's go!






[JD Edwards] Asignar Icono a Columna en Grid

Hola amig@s,

Cuando mostramos en una aplicación los datos en un grid, éstos pueden ser muy transcendentales y relevantes pero a menudo no muy atractivo. En JDE podemos asignar iconos a columnas para hacerlo visualmente más atractivo y poder tener de un vistazo una idea más global acerca de la información mostrada.

¿Cómo hacemos ésto?

Por un lado, utilizamos la función de sistema Set Grid Cell Icon, pero atención! ésta función sólo está disponible en Business Functions tipo NER. Ésta función sólo tiene 2 parámetros:



  •  Image File: imagen seleccionada para mostrar. Nos posicionamos en el parámetros, clickamos sobre <Image Picker> y seleccionamos un icono de los Bitmaps disponibles del sistema. ¿Podemos añadir imágenes personalizadas? Por supuesto, pero para ello tendríamos que añadirlas previamente a los bitmaps del sistema.
  •  Icon Tooltip: como tooltip podremos pasar un texto literal o asignar la descripción de un diccionario de texto (tipo Erro Message).


¿Pero cómo se lo asigno a una columna?

Lo primero que tendremos que hacer es modificar en las propiedades de la misma columna en Display Style asignar tipo Icon.

Con ésta opción se nos habilita un evento en la columna "Grid Cell Display Changed" donde llamaremos a nuestra BSFN para mostrar el icono. Por supuesto, recordar que sólo se mostrará en web.

¿Tengo que hacer ésto para cada icono que quiera mostrar?

La respuesta es depende cómo lo plantees, actualmente existen numerosas funciones estándar donde ya están implementadas. Como ejemplos:


  • N43S003 - Load Grid Cell Icon
  • N3201990 - Message Center Icons
  • N0900730 - Set Delete Icon
  • N40G1240 - Set Edit Icon
  • N98220 - Set Grid Icon Web
  • N986110B - Set Grid Icon
  • etc
La mayoría de éstas funciones ya tienen parámetros de entrada para mostrar unos iconos u otros en función de los parámetros de entrada, y sino puedes montarte tu propia BSFN NER Custom!!!

Un ejemplo mío para mostrar anexos con una estructura custom a nivel de cabecera:
JD Ewards Grid Cell Icon
JD Ewards Grid Cell Icon

Espero les sea de utilidad!

Let's go!






jueves, 4 de enero de 2018

[JD Edwards BI Publisher] External Image

Hi friends, happy new year!!! This year I have proposed to write more posts, for work and projects last year I had't sufficient time to write much posts...

In this post I want to comment how publish a external image as URL in BI Publisher, as example, QR Code, a logo, etc. This problem is very common, and with standard Word image is not possible.

For it, we use XSL-FO with the next syntax:

<fo:block>
<fo:external-graphic src="https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=bidi_test"/>
</fo:block>

Simply with block we'll add URL of extenal image in the source of extenal-graphic tag, and it will be responsible for rendering the image in our template. The source is in XML attribute, assigned in same variable, etc.

We can add other properties as "height", "width", etc. for custom the image.

Thus, we could generate dynamic images!!

I hope you find it useful!

Let's go!

[JD Edwards BI Publisher] Imagen Externa

Hola amigos, feliz año!!! Éste año me he propuesto escribir más posts, ya que por motivos laborales y de proyectos no tuve el suficiente tiempo para postear más...

En éste post quiero comentar cómo publicar en BI Publisher una imagen externa a través de una URL, por ejemplo un código QR, un logo, etc. Ésta problemática es muy común y con las imágenes estándar de word no es posible.

Para ello tenemos podemos usar XSL-FO con la siguiente sintaxis:

<fo:block>
<fo:external-graphic src="https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=bidi_test"/>
</fo:block>

Simplemente con un bloque añadimos en el source de la etiqueta external-graphic la URL de la imagen externa y éste se encargará de renderizar en nuestro template. El source lo tendremos en nuestras propiedades del XML, o podemos asignar alguna variable, etc.
Podemos añadir otras propiedades como "height", "width", etc para personalizar la imagen.

De ésta forma, podremos generar imágenes de manera dinámica!

Espero os sea de utilidad.

Let's go!


viernes, 28 de abril de 2017

[JD Edwards] New LearnJDE!!!

LearnJDE is a official Oracle platform about JD Edwards resources.

Few days ago, the web has been renewed with more resources, UX, skinning and structure.

Probably it's the best platform and the most updated to learn JD Edwards, contains +1000  Documentation, +400 videos and tutorials, white papers, Digital Transformations (Mobile, IoT, UX One, JDE Cloud, etc).

You can see here: http://docs.oracle.com/cd/E84502_01/learnjde/home.html

Let's go!

viernes, 23 de diciembre de 2016

[JD Edwards] Tools 9.2.1 - Forms Personalitation

In new JD Edwards 9.2.1 tools, a new feature is Personal Forms. This feature allow customize forms to end user, as they could customize grid. It allow show or hide fields, move fields, resize fields,... on runtime. In the next video you can watch posibilites:


It's very powerfull tool, this will allow to developers and users be more productive.

Enable feature in system:

To enable this feature you have to activate it in UDO's, you can see this official document.

Go to Security Workbench P00950 -> Form -> Feature Security, find "PERSFORM" and enable access:

Later you go to UDO's page and enable for users:
In P00950 -> Form -> User Defined Object -> Action. Click in Add: Fill fields

You need clear the jdbj security cache in Server Manager and reset session to see this feature enabled.


Works with Personal Forms:

In any form, you can see Personal Form icon on top right:



Click and you can start to personalize your form:



If you click on less icon, the field hided and it'll appear in right panel for if you want show later. you can move fields, resize, change labels, etc.

For more information you can access this official document.