Mostrando entradas con la etiqueta JDevelper. Mostrar todas las entradas
Mostrando entradas con la etiqueta JDevelper. Mostrar todas las entradas

viernes, 1 de abril de 2022

[JD Edwards - BSSV] Import external JAVA library (ENG)

Hi jde friends,

Sometimes, we find ourselves with need to extend JD Edwards functionalities and we find many functionalities in JAVA packages or libraries, JAVA is one of the most languages and platform used in technologies. For example, recently I worked in a project to implement Bidimensional code QR. So, what is the JDE solution?


Well, we use a JAVA library to facilitate the coding. In this case IdAutomation (that is license paid, but there are other as Google (Zxing) and many other open source, depending on each case and use). So, this provider provides a java library in witch it has a class and a method for facility implementation, that we pass the string to be encoded and it return as array string encoded. Later, to this array we put a font in BIPublisher and we already have our encoded QR code. Easy right?

Then, we generated our BSSV object (and we cannot forget our BSFN in C to communicate our report or application with BSSV component), with our class and main method. But, how import IdAutomation QR library to our JD Developer project?

1. On our project, we press the rigth button and in the context menu click on Project Properties:

2. Press in Librares and Classpath menu and next press button Add JAR Directory

3. Select the JAVA library (I recommend leaving in the JDE Path JDE system\Classes (later I explain the reason)

4. Press on Open button in the dialog, and it is added to the project:

5. Press OK and save the project. We can use library classes and method importing to our java class.

               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);

And we have everything ready in our project!!!

To deploy, we have to configure system to use a external library for when compiling and generating deploy package it imports the external library in jar jde deploy package. This configuration is done in deploy server (although I also configure it in my fat client).

1. Copy the library to system\Classes folder:

2. Modify the file sbffoundation.ini inside the same folder, in the section [Foundation] y and add a line "LIB" + "next sequence" + "=" + "library name"

And with this we already our BSSV project with an external library ready to deploy!

Pd: I have also used an external library for Datamatrix code, integrate with Webcenter Content through RIDC standard java package, and recently to create a proxy client webservice through an external library with java wsimport command to integrate with Salesforce that you can see here.

Good code JDE Friends!

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!