I spent another week of my life struggling through the F4211FSEditLine and End Doc business functions. I was having trouble keeping the price/cost in sync between the ST and the OT when modifying the order through the business functions.
According to Oracle documentation, changes must be made to the ST in order to have the OT take them. Changes first made to the OT do not sync back to the ST. Fortunately, I wasn’t doing this so it was not my problem. It was appearing almost as though the OT was ignoring the product cost and instead trying to figure out the unit cost by dividing the extended amount (which was from prior to the quantity modification) and coming up with a calculated unit cost that wasn’t accurate.
I am embarrassed to say that I spent almost my entire last work week troubleshooting this issue. I have created a JDEDebug.log file to XML converter (available on this site at JDELOG2XML) which helps my troubleshooting efforts tremendously.
I found a real simple answer to my problem and will show some of my lack of training in JDE as a result. In the F4211FSEditLine business function, there are two parameters I had wrong. They were szCMProgramID and szCMVersion. I was passing in the program that was calling the business function instead of the order entry program and version that I wanted.
As soon as I corrected this, my price/cost was updating correctly because I was now using appropriate settings for our system based upon the processing options set in P4210.
Like me, if you work with JD Edwards than you probably dream about turning Debug on and off in JD Edwards EnterpriseOne on the fly. Too often it is unacceptable to have to log out of JD Edwards and back in. Also, leaving debug mode on all the time is a performance issue.
There is a business function in JD Edwards that allows you to turn debug on and off on the fly. This business function is best utilized in an interactive application that can also tell you what mode the session is currently in.
JD Edwards Business Function to Change Debug Settings
The business function that can change the log setting is located in B9600482. In the actual code for B9600842 there is a function call ChangeLogSettingOnFly which invokes the changeLogSettings built in API function. This function takes two parameters. The first one specifies the parameter. In this case it is “Output”. The second parameter sets the value. In the case of this setting, a “1” means that debug is on and output=file and “0” means output=none.
If you are simply calling B9600482/ChangeLogSettingOnFly from your application, use an EV01 data type variable and pass in a “1” to turn on debug and a “0” to turn it off.
JD Edwards Business Function to Check Debug Settings
If you simply want to check whether or not debug mode is on and output is to file, you can call B9600482/ChangeLogSettingOnFly and pass in a “2” and it will return a “1” to the same variable if debug is on or a “0” if debug is off.
You can either program this function to turn debug on and off in a specific application that you would like to trace, or you can create and application that turns it on and off globally for a user. This simple application is seen in the screen shot below. On form load, it calls B9600482/ChangeLogSettingOnFly to check the current setting. Then, the event rule code for the button click toggles back and forth between passing a “0” and a “1” into the function.
Use this simple process to change JD Edwards debug on the fly in JD Edwards EnterpriseOne.
TeechMi.com is offering a free utility to make the lives of JDE EnterpriseOne developers easier. The JDE Debug log file contains a lot of useful information, but also a lot of non-useful information. This utility takes a JDEDebug.log file and converts it to a hierarchical XML file. Also, it strips it down to just function inputs and outputs and SQL statements executed. Turn thousands of lines of log file into something much more quickly read.
Download the file, extract it and view the readme for instructions.