BSFN Build Tool

craig_welton

Legendary Poster
Hey folks,

I've been playing with a new BSFN build tool. Unless I've missed something, building multiple BSFN objects takes a lot of clicks. You can create a project in BusBuild, but that is still manual. My POC is a way to query all the BSFN objects by project/status, select what to build, and have it kick off BusBuild to do the work for all functions. (see attached. pardon the GUI it's just a POC)

Any thoughts?

Craig
 

Attachments

  • busbuild+.jpg
    busbuild+.jpg
    13.7 KB · Views: 71

ONYX

Well Known Member
Hello Craig,
This looks amazing and certainly will be really valuable as a time-saver.

Please keep on providing us with your great tools.
I have been using all your tools for years and can't imagine my life without JDE Object Browser.

Thank you.
 

Deepesh

Active Member
This will be really helpful, to get the BSFN's built under a project, or set of projects.
It will be desirable to have the flags like if the BSFN is C/S
and if, to build in DEBUG mode, OPTIMIZE mode etc.
 

craig_welton

Legendary Poster
Brian, I included a copy of the ICUUC.dll because of issues with Win10. Can you please try deleting or renaming ICUUC.dll in the program folder and replacing it with your version in system\bin32?

thanks
Craig
 

BOster

Legendary Poster
Ok that worked. Quick test and it seems to work. I just happened to pick a project with BSFNs assigned to multiple DLLs and it was smart enough to launch busbuild for each DLL and compile the corresponding BSFNs for each.

Maybe move the OK button and call it Close???
 

craig_welton

Legendary Poster
Thanks for trying Brian. I was wondering if a search based on function/object would help (not just OMW project stuff), so you could get at them 2 ways. I also want to add a manageable list of processes that need to have their JDE DLLs unloaded before the build. Right now it will do that for ActivConsole.exe and ObjectBrowser.exe

regards,
Craig
 

BOster

Legendary Poster
For me I think searching based on OMW project is enough for most use cases, but you may want the option to simply search by individual BSFNs. Maybe the concept of a workspace (I know busbuild has this but I never use it), so you could have multiple OMW projects and BSFNs as a saved build set.

Out of curiosity is there a mechanic in the default build process when building from OMW (or busbuild) to unload the DLLs first? This feature alone would make this utility worth it. My workflow is setup so that I keep Visual Studio open all the time (with all the BSFN source files in a workspace) and have VS configured to launch activeconsole.exe and I always exit JDE after building. Unnecessary I know, but I re-launch JDE just to make sure DLLs get unloaded/reloaded.
 

craig_welton

Legendary Poster
Yeah, when you run busbuild from OMW it unloads the DLL from the current process (ActivConsole.exe). Busbuild+ has to do the same thing but from a different process so there's some code injection to make that work. I figured it should be configurable, hence a list of exe names. Similar to JDETrace, if you've used that. Currently, busbuild is automatically closed after the build completes. This was to facilitate multiple DLLs being selected to build, but I don't love it because a build could fail and you could potentially not notice. Still thinking about the best way to handle all that.

thanks again for your feedback,
Craig
 

BOster

Legendary Poster
Anyway to capture the output from busbuild/compiler and display it? That would solve the multiple dll busbuild close thing.
 

BOster

Legendary Poster
You may have solved the "display output from busbuild" thing (at home and have not tried your update). But I was thinking. If you could determine if a build error occurred you could keep busbuild open to display the error and only close if successful. For compile errors at least you could take a hash of the .obj files before the compile and compare to a hash of the .obj files after the compile, if any two hashes for a given .obj file are the same then I think you can assume a compile error HAS occurred (I believe a compile error preserves the original .obj file). Not sure how you would detect link errors??? Of course if you figured out how to capture the output from busbuild that would be the best solution...
 

craig_welton

Legendary Poster
Thanks again Brian, good thoughts. I was able to read the output from busbuild and get the build status, the results show as a column in the BusBuild+ grid. If any DLL fails, the process will keep busbuild open so the errors are visible.

Craig
 
Top