PortX JD Edwards Connector for Mule 4 - User Guide
- Introduction
- Preliminary Setup
- Creating JDE Library Bundle
- Install the JDE libraries bundle into your Maven repository
- Preparing Maven for PortX - JDE Connector
- Adding PortX JDE license to your Mule runtime
- JD Edwards EnterpriseOne™ Server configuration requirements
- Enterprise Server connection considerations
- Configuring the INI Files for JDE Connector
- AnyPoint Studio Project - PortX JDE Connector
- PortX JDE Connector – Demo Applications
- PortX JDE Connector – Support
- Appendix A : Required Files
- Appendix B : Additional Information
Introduction
The PortX JDE Connector leverages the internal capabilities of Oracle’s JD Edwards EnterpriseOne™ solution to a broader extent, and uses the power of Oracle’s Java Dynamic Connector to provide interoperability with JD Edwards EnterpriseOne™ and external systems.
After reading this guide, you should be able to accomplish the following scenarios:
-
Log into JD Edwards EnterpriseOne™
-
Invoke a Business Function (BSFN) on the server by passing it parameters.
-
Invoke a Business Function (BSFN) on the server using Transaction Processing.
-
Invoke a UBE by name.
-
Check a UBE call’s status asynchronously.
-
Poll Events.
-
Poll EDI Events.
-
Log out.
At design time, the PortX JDE Connector allows you to discover functions by name providing full access to all Business Function signatures. Given that discovery is a heavy duty process, the Connector manages a cache repository for all function’s metadata used at least once.
The results of a function call will be injected into the flow as a Map containing key-value pairs with the invocation’s output values. This approach gives the end user freedom of choice to construct complex flows and manage custom exception strategies.
Prerequisites
This document assumes that you are familiar with Oracle’s JD Edwards EnterpriseOne™ basics, Mule the Anypoint™ Studio interface.
Requirements
-
Mule 4.1 server Runtime or higher
-
Maven 3.3.9 or higher (do not use the embedded Maven for AnyPoint Studio)
-
For a easy installation tutorial see How to install Maven for Windows
-
-
Access to your Oracle’s JD Edwards EnterpriseOne™ installation java libraries
-
As the connector is based on Oracle’s JD Edwards EnterpriseOne interoperability solution, the below settings need to be reviewed/changed.
-
XML Dispatch Kernel
-
The XML CallObject kernel
-
The XML Transaction kernel
-
The XML List kernel
-
XMLLookupInfo section for XML Request type 7 inside jde.ini To activate Submit UBE.
-
This configuration will need to be done by the CNC Administrator for your JD Edwards EnterpriseOne™ system. For more information, refer to the JD Edwards EnterpriseOne™ Tools Interoperability Guide
Preliminary Setup
In addition to meeting the requirements listed in the Prerequisites section, a bundle has to be created to establish a connection to the JDE Enterprise Server. This bundle will be created only for the first time and it can be reused in other applications.
This adapter is a bundle of JAR files that comes with the JD Edwards EnterpriseOne™ distribution.
These steps illustrate how to create bundle connector component so that you can include in the flow that needs connect to JDE Enterprise Server for your specific JD Edwards EnterpriseOne™ Tools Release
Creating JDE Library Bundle
The PortX JDE Connector makes use of the libraries of the local JDE Tools release. In order to simplify dependency management for the Mule 4 application, you need to package JDE libraries together into a lib bundle using the provided JDE Libraries Bundle Builder Tool.
-
Download the JDE Libraries bundle builder tool using your username and password as credentials
-
Execute java -jar JDELibrariesBundleBuilderTool-1.0.0.jar with the following parameters (from terminal / command prompt)
-
The following parameters apply
-
--destDir for the path where the bundle will be created.
-
--jdbcDriver for the full path and filename of the JDBC Driver that applies to you JD Edwards EnterpriseOne™ installation.
-
--libDir for the full path containing your JDE Tool release libraries
-
--localRepo for the path to your local Maven repository (typically ~/.m2/repository)
-
--version for the bundle version (1.0.0 for current release candidate)
-
e.g.:
java -jar JDELibrariesBundleBuilderTool-1.0.0.jar --destDir "/tmp" --jdbcDriver "/opt/jde/JDBC_Vendor_Drivers/ojdbc7.jar" --libDir "/opt/jde/workingDir/ServerFiles" --version "1.0.0" --localRepo "/home/user/.m2/repository"
NOTE : All libraries in this path will be added to the library. It is recommended that you copy the required JARs as per your Tools Release, from the libraries path of either the JD Edwards EnterpriseOne™ Enterprise Server, or a Development Client that has been installed from your JD Edwards EnterpriseOne™ Enterprise Server installation).
See Appendix A] for a detailed list of all files required per your Tools Release
Once completed the resulting bundle will be located at, following the sample above, /tmp/jde-lib-bundle-1.0.0.jar
Install the JDE libraries bundle into your Maven repository
-
Execute the following to make the bundle available in your Maven Repository
mvn install:install-file -Dfile=/tmp/jde-lib-bundle-1.0.0.jar -DgroupId=com.jdedwards -DartifactId=jde-lib-bundle -Dversion=1.0.0 -Dclassifier=mule-4 -Dpackaging=jar
Preparing Maven for PortX - JDE Connector
-
Update your settings.xml file (typically ~/.m2 path)
-
In the servers section, add the following:
-
Replace the user name and password provided to you via email
-
<server>
<id>portx-repository-releases</id>
<username>youruser</username>
<password>yourpassword</password>
</server>
Adding PortX JDE license to your Mule runtime
PortX JDE Connector license can be added two ways.
-
Copy the license file in the project folder src/main/resources
-
Copy the license file to Mule installation folder mule/conf
JD Edwards EnterpriseOne™ Server configuration requirements
To ensure correct operation of all of the JDE Connector features the Enterprise Server requires the following jde.ini file settings:
Please refer to JD Edwards EnterpriseOne Tools Interoperability Guide to check updates, and also provides the different .dll extensions for other platforms.
The below .dll files, all relate to the Microsoft Windows platform. |
This configuration must be done by CNC administrator. Refer to JD Edwards EnterpriseOne Tools Interoperability Guide
-
Ensure that sufficient processes are available for the XML List Kernel
[JDENET_KERNEL_DEF16]
krnlName=XML List Kernel
dispatchDLLName=xmllist.dll
dispatchDLLFunction=_XMLListDispatch@28
maxNumberOfProcesses=3
numberOfAutoStartProcesses=1
-
Ensure that sufficient processes are available for the XML Dispatch Kernel
[JDENET_KERNEL_DEF22]
dispatchDLLName=xmldispatch.dll
dispatchDLLFunction=_XMLDispatch@28
maxNumberOfProcesses=1
numberOfAutoStartProcesses=1
-
Ensure that sufficient processes are available for the XML Service Kernel
[JDENET_KERNEL_DEF24]
krnlName=XML Service KERNEL
dispatchDLLName=xmlservice.dll
dispatchDLLFunction=_XMLServiceDispatch@28
maxNumberOfProcesses=1
numberOfAutoStartProcesses=0
-
Ensure that the LREngine has a suitable output storage location and sufficient disk allocation
[LREngine]
System=C:\JDEdwardsPPack\E920\output
Repository_Size=20
Disk_Monitor=YES
-
Ensure that the XML Kernels are correctly defined
[XMLLookupInfo]
XMLRequestType1=list
XMLKernelMessageRange1=5257
XMLKernelHostName1=local
XMLKernelPort1=0
XMLRequestType2=callmethod
XMLKernelMessageRange2=920
XMLKernelHostName2=local
XMLKernelPort2=0
XMLRequestType3=trans
XMLKernelMessageRange3=5001
XMLKernelHostName3=local
XMLKernelPort3=0
XMLRequestType4=JDEMSGWFINTEROP
XMLKernelMessageRange4=4003
XMLKernelHostName4=local
XMLKernelPort4=0
XMLKernelReply4=0
XMLRequestType5=xapicallmethod
XMLKernelMessageRange5=14251
XMLKernelHostName5=local
XMLKernelPort5=0
XMLKernelReply5=0
XMLRequestType6=realTimeEvent
XMLKernelMessageRange6=14251
XMLKernelHostName6=local
XMLKernelPort6=0
XMLKernelReply6=0
XMLRequestType7=ube
XMLKernelHostName7=local
XMLKernelMessageRange7=380
XMLKernelPort7=0
XMLKernelReply7=1
Enterprise Server connection considerations
-
Enable Predefined JDENET Ports in JDE.INI
When there is a firewall between the Mulesoft ESB and the Enterprise Server, set the PredfinedJDENETPorts setting to 1 in the JDE.INI file of the Enterprise Server. This setting enables JDENET network process to use a predefined range of TCP/IP ports. This port range starts at the port number that is specified by serviceNameListen and ends at the port that is calculated by the equation serviceNameListen = maxNetProcesses - 1. You must open these ports in a firewall setup to successfully connect the Mulesoft ESB to the Enterprise Server.
Please refer to JD Edwards EnterpriseOne Tools Security Administration Guide to check updates.
Configuring the INI Files for JDE Connector
The PortX JDE Connector relies on Oracle’s Java Dynamic Connector to establish the link to the server. In order to achieve this, setting the following standard configuration files are required. It is recommended that these be copied from the server to the development machine, as they will be required in all projects using the PortX JDE Connector.
-
jdbj.ini
-
jdeinterop.ini
-
jdelog.properties
-
tnsnames.ora (for Oracle RDBMS based installations only)
These files are distributed with both Development Clients and/or Enterprise Server modules. Addtional Configuration requirements per file are :
JDEINTEROP.INI There is addtional configurations needed inside JDEINTEROP.INI. You need to add the following section:
[EVENT]
Property |
Explanation |
lockEventsYN=N |
Flag used by the JDE Connector to lock transactions events before consumed. It must be used if the connector run in more that one Mule instance. |
specialEDITables=<F470462> |
List of EDI tables without EDLN in its column definitions (between < and >) |
validateEnterpriseServicesWith=BOTH |
(Optional) This options is used by the Test Connection to Validate Enterprise Servicies. The values are BSFN, UBE, BOTH or NONE. |
validateEnterpriseServicesUBEName=R0008P_XJDE0001 |
(Optional) This is the UBE used to validate the connection. |
eg.
[EVENT]
lockEventsYN=N
specialEDITables=<F470462>
validateEnterpriseServicesWith=BOTH
validateEnterpriseServicesUBEName=R0008P_XJDE0001
If you need to run the application on CloudHub, you will need to add the section OCM_SERVERS with the servers that the JDE Connector will use in the connection. The JDE Servers Names are in the column OMSRVR of F98611 table. To add these servers on the OCM_SERVERS section you will need to follow this format is simple: JDE Server Name = FQDN or IP
[OCM_SERVERS]
Property |
Explanation |
jdeserver01=jdeserver01.yourdomain.com |
The JDE Connector will ask to the DNS Server the IP of jdeserver01.yourdomain.com. Then, The JDE Connector will use this IP for each reference to jdeserver01 |
jdeserver02=10.168.45.1 |
The JDE Connector will use the IP 10.168.45.1 for each reference to jdeserver02 |
[OCM_SERVERS]
jdeserver01=jdeserver01.yourdomain.com
jdeserver02=10.168.45.1
NOTE : You can use the DNS name or the IP Address
JDELOG.PROPERTIES (optional)
NOTE : See JD Edwards EnterpriseOne™ documentation for usage
[E1LOG]
FILE=/tmp/jdelog/jderoot.log
LEVEL=SEVERE
FORMAT=APPS
MAXFILESIZE=10MB
MAXBACKUPINDEX=20
COMPONENT=ALL
APPEND=TRUE
#Logging runtime and JAS above APP level will be helpful for application developers.
#Application developers should use this log as a substitute to analyze the flow of events
#in the webclient.
[JASLOG]
FILE=/tmp/jdelog/jas.log
LEVEL=APP
FORMAT=APPS
MAXFILESIZE=10MB
MAXBACKUPINDEX=20
COMPONENT=RUNTIME|JAS|JDBJ
APPEND=TRUE
#Logging runtime and JAS at DEBUG level will be helpful for tools developers.
#Tool developers should use this log ato debug tool level issues
[JASDEBUG]
FILE=/tmp/jdelog/jasdebug.log
LEVEL=DEBUG
FORMAT=TOOLS_THREAD
MAXFILESIZE=10MB
MAXBACKUPINDEX=20
COMPONENT=ALL
APPEND=TRUE
AnyPoint Studio Project - PortX JDE Connector
It is recommended that you update AnyPoint Studio before starting with a PortX JDE Connector project. |
Using the Connector
You can use the connector to
-
Invoke a BSFN on JD Edwards Enterprise Server.
-
Invoke a BSFN on JD Edwards Enterprise Server using Transaction Processing.
-
Submit a UBE.
-
Get UBE Job Status for a UBE using JDE Job Id.
-
Get Outbound Events from a JD Edwards Application.
-
Get EDI Event from EDI Application.
Creating a new Mule Project
Create a new Mule Project with Mule Server 4.1.1 EE or greater as runtime:
Project Dependencies
In you pom.xml, add the following to you repositories section :
<repository>
<id>portx-repository-releases</id>
<name>portx-repository-releases</name>
<url>https://portx.jfrog.io/portx/portx-releases</url>
</repository>
Add the following to you dependencies section :
<dependency>
<groupId>com.modus</groupId>
<artifactId>mule-jde-connector</artifactId>
<version>2.0.0</version>
<classifier>mule-plugin</classifier>
</dependency>
<dependency>
<groupId>com.jdedwards</groupId>
<artifactId>jde-lib-bundle</artifactId>
<version>1.0.0</version>
<classifier>mule-4</classifier>
</dependency>
Add or update the following to you plugins section :
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>$\{mule.maven.plugin.version}</version>
<extensions>true</extensions>
<configuration>
<sharedLibraries>
<sharedLibrary>
<groupId>com.jdedwards</groupId>
<artifactId>jde-lib-bundle</artifactId>
</sharedLibrary>
</sharedLibraries>
</configuration>
</plugin>
Required files
Copy the JD Edwards EntrpriseOne™ configuration files to the following folders within the project:
-
Project Root
-
src/main/resources
If there is a requirement to use different configuration files per environment, you may create separate folders under src/main/resources corresponding to each environment as shown below. |
The mule-artifact.json file needs to be updated for each environment as below
{
"minMuleVersion": "4.1.4",
"classLoaderModelLoaderDescriptor": {
"id": "mule",
"attributes": {
"exportedResources": [
"JDV920/jdeinterop.ini",
"JDV920/jdbj.ini",
"JDV920/tnsnames.ora",
"JPY920/jdeinterop.ini",
"JPY920/jdbj.ini",
"JPY920/tnsnames.ora",
"jdelog.properties",
"log4j2.xml"
],
"exportedPackages": [
"JDV920",
"JPY920"
],
"includeTestDependencies": "true"
}
}
}
Other Considerations
To redirect the JD Edwards EntrpriseOne™ Logger to Mule Logger (allowing you to see the JDE activity in both Console and JDE files defined in the jdelog.properties, you may add the following Async Loggers to log4j2.xml file.
<AsyncLogger name="org.mule.modules.jde.internal.JDEConnector" level="DEBUG" />
<AsyncLogger name="org.mule.modules.jde.api.MuleHandler" level="DEBUG" />
Troubleshooting
If you are having trouble resolving all dependencies,
-
Shut down AnyPoint Studio
-
Run the following command in the project root folder from the terminal/command prompt,
mvn clean install
-
Open AnyPoint Studio and check dependencies again.
Configure the Global Element
To use the PortX JDE Connector in your Mule application, you must configure a global element that can be used by the connector (read more about Global Elements).
Open the Mule flow for the project, and select the Global Elements tab at the bottom of the Editor Window.
Click Create
Type “JDE” in the filter edit box, and select “JDE Config”. Click OK
On the General tab, enter the required credential and environment
Click Test Connection. You should see the following message appear.
Creating a HTTP Listener for your flow
NOTE : This use case example will create a simple flow to get the address book name from the Address Book table (A/B) invoking the Master Business Function (MBF) on Oracle’s JDE EnterpriseOne Server.
Go back to the Message Flow tab
From the Mule Palette (typically top right), select HTTP, and drag Listener to the canvas
Select the HTTP Listener component from the canvas, and inspect the properties window
The connector requires a Connector Configuration. Click on Add to create a connector configuration.
Give the HTTP endpoint a more descriptive name like get-AddressBookName-http-endpoint and press OK to go back to the global HTTP endpoint dialog box:
Add a path to the URL eg. getaddressbookname.
Click on the MIME Type link, and add a parameter for addressno.
Save the project. The connector will be ready to process requests.
Invoke a Business Functions
Locate the JDE Connector, and select Call BSFN. Drag this to the canvas.
Drag the connector over to the canvas. Select it and review the properties window. Give it a meaningful name eg. Call AddressBookMasterMBF.
Under the General section, click on the drop-down for Business Function Name.
NOTE : If it is the first time you are selecting a function, this might take a while, as no information has been cached yet. It will need to build a list of all functions available. Please be patient. The status bar (bottom right) will display the following while it is retrieving the metadata.
Troubleshooting
If the operation fails (possibly due to a timeout), you will see the below message
Please review the timeout settings in Anypoint Studio's Preferences.
To do this go the the Window > Preferences menu
Go to Anypoint Studio > DataSense and change the DataSense Connection Timeout setting as below
Go to Anypoint Studio > Tooling and change the Default Connection Timeout and Default Read Timeout settings as below
Setting Parameters
After the system has retrieved the required metadata, select AddressBookMasterMBF from the list. The specification metadata will be retrieved from the enterprise server, and put into the project metadata repository.
You may now assign the input parameters. You can do this by either entering the payload values manually, or via the “Show Graphical View” button.
Drag the inputs to outputs, or double-click the output parameter to add to your edit window, and change as required. Be sure to map your query parameter to the function mnAddressBookNumber
Set Payload Output
In the Mule Palette, you can either select Core, scroll down to Transformers or type “Payload” in the search bar.
Drag and drop the Set Payload to your canvas.
Select the Set Payload component, and review the properties.
Change the payload to reflect the desired output, and save the project
Testing the Mule Flow
To Test your flow, you need to start the Mule application. Go to the Run menu, and select Run.
After the project has been deployed, you can test you flow by typing the URL into a web browser eg. http://localhost:8081/getaddressbookname?addressno=1
PortX JDE Connector – Demo Applications
PortX JDE Connector – Support
Support Portal
Creating a support user
To log a support ticket, you will require a support portal user. If you do not already have one, you can follow the below steps to create a new user.
In a web browser, go to https://modusbox.atlassian.net/servicedesk/customer
Click Sign up
Enter your email address, and click on Send Link. This will send a confirmation email to the specified email address.
Go to you inbox and click on Sign up
Enter your full name and choose a password, and click Sign up
Logging a support ticket
To log a support ticket, you will require a support portal user. If you do not already have one, you can follow the below steps to create a new user.
In a web browser, go to https://modusbox.atlassian.net/servicedesk/customer, log into you support user account (see the Creating a support user section above)
Click Modusbox PortX Support
Click Enter Support Request
Enter your support request detail.
NOTE : Keep in mind that we will always ask your for your configuration files, and the related log files (see Support Required Files secion below), so to service the ticket more efficiently, it is always import to attach these when creating the ticket
Support Required Files
It is important to remember that we will always request your mule application’s jde configuration files, and any relevant log files.
To most effectively handle your support ticket, you can attach these when creating the ticket. The files that will always be required are :
-
jdbj.ini
-
jdeinterop.ini
-
tnsnames.ora (if using an Oracle database)
-
Relevant JDE log files (as created per your jdelog.properties file)
-
Relevant Mule log files
Support Optional/Helpful Files
In some cases we might request the configuration files for the environment in question. To obtain these, you will most likely need the assistance of JD Edwards CNC Administrator
JDE Tools Release 9.2.1 onwards
To retrieve your JD Edwards System Configuration for tools releases from 9.2.1 and above, you will need the following information
-
JD Edwards EnterpriseOne Server Manager
-
host name
-
port
-
username (user only requires view permissions)
-
password
-
-
Rest client (eg, POSTMAN from Chrome Apps)
Getting your JD Edwards Configuration
The following requests need to be executed, to retrieve your JDE configuration from JD Edwards EnterpriseOne Server Manager
Using a Rest Client, execute the below requests using basic authentication and the server manager user’s credentials (The default admin user is usually jde_admin)
The resulting json responses should be saved in separate, clearly identified files and returned to us for review. You are free to remove any sensitive information (eg. passwords) from the json files, before you send them to us.
In the below request urls, you will need to replace the below values with the relevant detail from your JDE Instances.
-
sm-host with the server manager host name
-
sm-port with the server manager port
-
instance (where applicable) with the instance name of the server JD Edwards EnterpriseOne Server Manager instance the request is being executed for.
Requests
-
Global
-
Instances Detail:
http://sm-host:sm-port/manage/mgmtrestservice/instancesinfo
-
-
Enterprise Server instance (Required for each Enterprise Server instance)
-
Configuration Summary by instance:
http://sm-host:sm-port/manage/mgmtrestservice/configsummary?instanceName=instance
-
Ini Configuration by Instance:
http://sm-host:sm-port/manage/mgmtrestservice/iniconfig?instanceName=instance
-
-
HTML/JAS Server instance (Required for each HTML/JAS instance)
-
Configuration Summary by instance:
http://sm-host:sm-port/manage/mgmtrestservice/configsummary?instanceName=instance
-
Ini Configuration by Instance:
http://sm-host:sm-port/manage/mgmtrestservice/iniconfig?instanceName=instance
-
NOTE : You will need to click Refresh Headers to add the encoded credentials to the request header if you haven’t already done so (see below)
The result should be similar to the image below.
JDE Tools Releases before 9.2.1.0
To retrieve your JD Edwards System Configuration for tools releases before 9.2.1, you will need the following
-
Server (OS Level) access to you HTML/Jas instance
Getting your JD Edwards Configuration
-
Log into the Server where your HTML/Jas Instance is running
-
Navigate to the directory/folder where your Server Manager Agent is installed eg. /u01/Oracle/jde_home/SCFHA or X:\Oracle\jde_home\SCFHA (example only, your’s may differ)
-
Under the SCFHA folder/directory, navigate to targets/web-instance-name/config/
-
Attach the following files to us for review (rename them to filename _server.ini as not to conflict with the files in your Mule project)
-
jdbj.ini (rename to jdbj_server.ini)
-
jdeinterop.ini (rename to jdeinterop_server.ini)
-
tnsnames.ora (rename to jdbj_server.ini)
-
Appendix A : Required Files
Required Configuration Files
You will most likely need the assistance of JD Edwards CNC Administrator to acquire these files
In most cases, it is best to get your configuration files from the relevant environment’s HTML/JAS server.
These files will be located in the JD Edwards Server Manager Agent’s config folder relating to the HTML/JAS instance
eg. /u01/Oracle/SCFHA/jde_home/targets/instanceName/config
-
The required files are
-
jdbi.ini
-
jdeinterop.ini
-
tnsnames.ora (if using an Oracle database)
-
jdelog.properties
-
where instanceName is the HTML/JAS instance name for the relevant environment.
Required JARs by Tools Release
Tools Release 8.98
Copy these files:
-
ApplicationAPIs_JAR.jar
-
ApplicationLogic_JAR.jar
-
Base_JAR.jar
-
BizLogicContainer_JAR.jar
-
BizLogicContainerClient_JAR.jar
-
BusinessLogicServices_JAR.jar
-
castor.jar
-
commons-httpclient-3.0.jar
-
commons-logging.jar
-
Connector.jar / Connector_JAR.jar
-
EventProcessor_JAR.jar
-
Generator.jar / Generator_JAR.jar
-
j2ee1_3.jar
-
JdbjBase_JAR.jar
-
JdbjInterfaces_JAR.jar
-
JdeNet_JAR.jar
-
jmxremote.jar
-
jmxremote_optional.jar
-
jmxri.jar
-
log4j.jar
-
ManagementAgent_JAR.jar
-
Metadata.jar
-
MetadataInterface.jar
-
PMApi_JAR.jar
-
Spec_JAR.jar
-
System_JAR.jar
-
SystemInterfaces_JAR.jar
-
xerces.jar
-
xmlparserv2.jar
Tools Releases 9.1 prior Update 4
Copy these files:
-
ApplicationAPIs_JAR.jar
-
ApplicationLogic_JAR.jar
-
Base_JAR.jar
-
BizLogicContainer_JAR.jar
-
BizLogicContainerClient_JAR.jar
-
BusinessLogicServices_JAR.jar
-
castor.jar
-
commons-httpclient-3.0.jar
-
commons-logging.jar
-
Connector.jar / Connector_JAR.jar
-
EventProcessor_JAR.jar
-
Generator.jar / Generator_JAR.jar
-
JdbjBase_JAR.jar
-
JdbjInterfaces_JAR.jar
-
JdeNet_JAR.jar
-
jmxremote.jar
-
jmxremote_optional.jar
-
jmxri.jar
-
ManagementAgent_JAR.jar
-
Metadata.jar
-
MetadataInterface.jar
-
PMApi_JAR.jar
-
Spec_JAR.jar
-
System_JAR.jar
-
SystemInterfaces_JAR.jar
-
xalan.jar
-
xerces.jar
-
xmlparserv2.jar
Tools Releases 9.1 Update 4 and later updates
Copy these files:
-
ApplicationAPIs_JAR.jar
-
ApplicationLogic_JAR.jar
-
Base_JAR.jar
-
BizLogicContainer_JAR.jar
-
BizLogicContainerClient_JAR.jar
-
BusinessLogicServices_JAR.jar
-
castor.jar
-
commons-codec.jar
-
commons-lang.jar / commons-lang2.6.jar
-
commons-logging.jar
-
Connector.jar / Connector_JAR.jar
-
EventProcessor_JAR.jar
-
Generator.jar / Generator_JAR.jar
-
httpclient.jar
-
httpcore.jar
-
httpmime.jar
-
j2ee1_3.jar
-
JdbjBase_JAR.jar
-
JdbjInterfaces_JAR.jar
-
JdeNet_JAR.jar
-
jmxremote.jar
-
jmxremote_optional.jar
-
jmxri.jar
-
ManagementAgent_JAR.jar
-
Metadata.jar
-
MetadataInterface.jar
-
PMApi_JAR.jar
-
Spec_JAR.jar
-
System_JAR.jar
-
SystemInterfaces_JAR.jar
-
xerces.jar
-
xml-apis.jar
-
xmlparserv2.jar
Tools Releases 9.2 and later
Copy these files:
-
ApplicationAPIs_JAR.jar
-
ApplicationLogic_JAR.jar
-
Base_JAR.jar
-
BizLogicContainer_JAR.jar
-
BizLogicContainerClient_JAR.jar
-
BusinessLogicServices_JAR.jar
-
commons-codec.jar
-
castor.jar
-
commons-lang.jar / commons-lang2.6.jar
-
commons-logging.jar
-
Connector.jar / Connector_JAR.jar
-
EventProcessor_JAR.jar
-
Generator.jar / Generator_JAR.jar
-
httpclient.jar
-
httpcore.jar
-
httpmime.jar
-
j2ee1_3.jar
-
JdbjBase_JAR.jar
-
JdbjInterfaces_JAR.jar
-
JdeNet_JAR.jar
-
jmxremote.jar
-
jmxremote_optional.jar
-
jmxri.jar
-
ManagementAgent_JAR.jar
-
Metadata.jar
-
MetadataInterface.jar
-
PMApi_JAR.jar
-
Spec_JAR.jar
-
System_JAR.jar
-
SystemInterfaces_JAR.jar
-
xerces.jar
-
xml-apis.jar
-
xmlparserv2.jar
Appendix B : Additional Information
Common Call Business Function parameters
There is four common parameters used to invoke a Business Function:
Parameter |
Input/Output |
Type |
Description |
_BSFNThrowExceptionWithErrorsYN |
Input |
STRING |
Values: Y, The flow will throw Runtime Exception with cause: org.mule.modules.jde.exceptions.CallBSFNException. |
_BSFNReturnCode |
Output |
INTEGER |
Values: 0: Processed Correctly, 1: There is warnings, 2: There is errors. |
_BSFNNumberOfErrors |
Output |
INTEGER |
Number of errors |
_BSFNDetailErrors |
Output |
STRING |
Detail of the error. It return a XML representation of CallObjectErrorList |
Usage :
Handling Errors
In Mule 4, all thrown errors will be displayed in the Type selection of the Error Handler. Simple select the errors you want to handle, and process them.
NOTE : All JD Edwards related errors will start with JDE:
This is an example of CallObjectErrorItem object:
<com.jdedwards.system.kernel.JdeNetCallObjectErrorList>
<mErrors>
<com.jdedwards.system.kernel.CallObjectErrorItem>
<mErrorId>0</mErrorId>
<mDDItem>1212</mDDItem>
<mLineNumber>315</mLineNumber>
<mFileName>b0100094.c</mFileName>
<mSubText>�</mSubText>
<mAlphaDescription>Error: Address Number Already Assigned</mAlphaDescription>
<mGlossaryText>CAUSE . . . . The Address Number entered is already assigned.
RESOLUTION. . Enter an Address Number that is not already assigned.
</mGlossaryText>
<mErrorLevel>1</mErrorLevel>
</com.jdedwards.system.kernel.CallObjectErrorItem>
<com.jdedwards.system.kernel.CallObjectErrorItem>
<mErrorId>11</mErrorId>
<mDDItem>018A</mDDItem>
<mLineNumber>544</mLineNumber>
<mFileName>rtk_ddvl.c</mFileName>
<mSubText>Search Type|Y|01|ST�</mSubText>
<mAlphaDescription>Error: Y not found in User Defined Code 01 ST�</mAlphaDescription>
<mGlossaryText>CAUSE . . . . Search Type Y was not found in User Defined Code
for system 01 , type ST� .
RESOLUTION. . Enter a valid Search Type or use Visual Assist to search
for a valid value.
</mGlossaryText>
<mErrorLevel>1</mErrorLevel>
</com.jdedwards.system.kernel.CallObjectErrorItem>
</mErrors>
<mBsfnErrorCode>2</mBsfnErrorCode>
</com.jdedwards.system.kernel.JdeNetCallObjectErrorList>
Defining Data Selection
-
The parameter Selection is used to define UBE Data Selection.
-
The sentence is similar to a WHERE clause of an SQL statement.
-
The Selection syntax is:
-
table.column_name operator [value|table.column_name];
-
-
The table must be a JDE table that belongs to the main view of the UBE.
-
Column Name must be a JDE Data Item Alias.
-
The following operators can be used in the Selection :
Operator | Description |
---|---|
= |
Equal |
<> |
Not equal |
<> |
Not equal |
> |
Greater than |
< |
Less than |
>= |
Greater than or equal |
⇐ |
Less than or equal |
BETWEEN |
Between an inclusive range |
NOT BETWEEN |
Not Between an exclusive range |
IN |
To specify multiple possible values for a column |
NOT IN |
To exclude multiple possible values for a column |
-
The values can be literals or other table columns.
-
Literals can be String or Number
-
The sentence can include the AND and/or the OR conditions
-
To override the default precedence you need to use parenthesis as
-
C1 AND (C2 OR C3)
-
The sentence only accept one level of Parenthesis.
-
For example, this is a valid sentence because the maximum level of Parenthesis opened is 1.
C1 AND (C2 OR C3) AND (C4 OR C5)
otherwise, this is an invalid sentences because the maximum level of Parenthesis opened is 2.
C1 AND (C2 OR (C3 AND C4))
Examples:
F4211.KCOO = '00001' AND F4211.DOCO > 10332
F4211.KCOO = '00001' AND F4211.DOCO >= 10332
F4211.KCOO = '00001' AND F4211.DOCO <= 10332
F4211.KCOO = '00001' AND F4211.DOCO <> 10332
F4211.KCOO = '00001' AND ( F4211.DCTO = 'SO' OR F4211.DCTO = 'SI' )
F4211.KCOO = '00001' AND F4211.DCTO IN ('SO','SI')
F4211.KCOO = '00001' AND F4211.DCTO NOT IN ('SO','SI')
F4211.KCOO = '00001' AND F4211.DOCO BETWEEN 1022 AND 400
F4211.KCOO = '00001' AND F4211.DOCO NOT BETWEEN 1022 AND 400
F4211.MCU = F4211.EMCU AND F4211.DOCO NOT BETWEEN 1022 AND 400