Debugging with Patwel's Object Browser

DBohner-(db)

Legendary Poster
Debugging with Patwel\'s Object Browser

Here's a tidbit I discovered, today... Since I didn't notice it documented anywhere else, I thought it would be fair to share the new knowledge.

First, if you have used Patwel's Tools, you need to start (http://www.patwel.com). They should be a requirement for all E1 Developers!

Object Browser allows you to run Business Functions and see the results in real-time. Find the Object Source, right-click the Function in the tree and select "Test Function". A new pane opens and you can plug in values, hit the 'test' icon and see the results. It's very useful when you want to see how the inbound values effect the outbound results.

Until recently, I hadn't seen a way to Debug the function - when running through the Object Browser.... I could be in debug mode, but the break points are never triggered. I figured the issue was similar to trying to debug functions on Standalone when called through an Application (you have to attach the JDE Net Process to the Debugger)....

Turns out that attaching the "ObjectBrowser.exe" process to your C Debugger, allows you to debug functions that are being tested through Object Browser! SAWEEET! Now we don't have to build a dummy app, just to put a function in Debug.

To know more, look at:
Oracle Document: BSFN: Debugging Business Functions Using Visual Studio .NET 2003, 2005, 2008 and 2010 (Doc ID 639903.1)
- Debugging Business Function called from application running on local web server of a Standalone Client (Demo Client)
- Instead of jdenet_n.exe, use ObjectBrowser.exe

Thank you Patwel!

(db)
 
Re: Debugging with Patwel\'s Object Browser

Yep, that was one of the original uses of the tool. Someday I'll create a manual
tongue.gif


One other tip, after finding the object in the Object Search pane, hit the Test button on the toolbar (4th button, thick lightning bolt). That will bring you straight to the function tester. That also works for other objects types, depending on the type the action is different.

Table or View brings up the data browser
APP brings up App tester
UBE brings up UBE launcher

It saves a few clicks.

thanks for mentioning,
Craig
 
Hi Craig, and thanks for publishing these tools. I agree with DB, they are essentials!

Now about that manual :)

But I do have one question about the Data Browser, I see that there is a {...,...,...} QBE notation to allow a selection list of values... is there a way to select ranges? {...-...} gives a Set Selection failure.

Cheers
JohnO
 
Oh, I found the answer... two dots such as {1234..5678} for between 1234 and 5678.

I really must remember to stop using UTB, but old habits die hard...
 
Thank You Patwel!! Undoubtedly, your tool is essential.
Thanks (db) for sharing that.
 
Thanks for the support.

A couple of data browser tips:

1. Double click column heading to implement sorting, it will cyclue thru A (ascending), D (descending) and blank (not sorted). The left to right order of the columns is the sort order.

2. When re-arranging the columns (dragging a column), hold down the Shift key to increase the scroll speed.

3. QBE multiple values {value1,value2,...}

4. QBE range {value1..value2}

5. Menu Data->Save Query to save the grid layout and QBE values to a file for re-use.

Craig
 
Hi Craig,

can you simply layout the steps to use Object Browser to debug a C BSFN

just simple steps for a beginner developer

Thanks,
Ahmad


Yep, that was one of the original uses of the tool. Someday I'll create a manual
cache.php


One other tip, after finding the object in the Object Search pane, hit the Test button on the toolbar (4th button, thick lightning bolt). That will bring you straight to the function tester. That also works for other objects types, depending on the type the action is different.

Table or View brings up the data browser
APP brings up App tester
UBE brings up UBE launcher

It saves a few clicks.

thanks for mentioning,
Craig
 
Ahmad,

This is what I have done to get this to work -

I got it to work in both 8.12 and 9.1, my steps are as follows -

1. Logged into E1 and through OMW, pulled in my BF into my Default Project and checked it out.
2. Selected the BF under my Default Project and then selected Design.
3. This is the step I was probably missing before or maybe you have to do them both.. However, I was originally selected Busbuild Standalone and then changing to Debug and building and the break points were never hit. I figured, this time around I would just select Build Business Function instead. So I did and it was on Debug and built the BF.
4. I then opened Object Browser, found the BF I wanted to Debug and put into "Test Function" mode.
5. I then opened VS; I'm using VS 2008 in 8.12 and VS2010 in 9.1, and opened the .C file for my BF.
6. In VS I then attached to the ObjectBrowser.exe by selecting Debug --> Attach to Process.
7. I then set my break points in the .C file
8. Plugged in the values in my BF within the Test Function of Object Browser and hit Execute.
9. My breakpoints were now being hit and I can successfully debug the BF in 8.12 or 9.1.

I hope this will help you if you haven't figured it out yet.
 
Craig's JDE Trace and JDE Object Browser are the first two things I install when I turn up on a new site - they're like caffeine; can't function without 'em!

To add to the discussion about debugging business functions started by DB... a couple of other very handy features I don't think anyone mentioned are:

- Having spent ages setting up the right parameters to test, you can save these parameters (and also the whole workspace/set of tabs open) so after your fat client cr@ps itself, as it does, and you have to exit and restart it, you can restore your carefully crafted test case.
- You can copy BSFN parameters from a call viewed in JDETrace and paste it into the Object Browser. No need to type in all 87 parameters into your SOE MBF!
 
This is easily the best thread I have read in a long time. I just tracked down a BSFN issue in under 2 minutes using this process.

Just a thought as an addition...

Create a jdedebug log to gather parameters for your call, then use the save/load parameters functionality within object browser to allow for repeatable tests with little setup time.
 
Bumping an old thread because I just found it while searching a problem. This is such an unbelievable benefit I can't believe I am only learning about it now! I use Object Browser everyday and I still find new ways to praise it. Way to go Patwel!
 
What about jdedebug log ? does the Object Browser write the jdedebug log. Does not seem to be the case in my end. any one have luck with this ?
 
Yes. Object Browser will write to the debug log. You will need to have debug logging turned on in your jde.ini. After changing the setting, try closing and re-opening both JDE and Object Browser to make sure they both see the setting change.
 
Yep, and you can use our JDETrace tool to enable/disable debug logging on the fly. Plus a few other useful things.
 
Back
Top