170 likes | 313 Views
The Power of WebUtil Gerd Volberg, OPITZ CONSULTING. Why use Webutil?. Have you ever tried a migration from Forms6i C/S to Forms9i? Rewrite the client side integration with individual Java beans Change the form to use your Java bean Test and bug-fix your code! Problems
E N D
The Power of WebUtil Gerd Volberg, OPITZ CONSULTING
Why use Webutil? • Have you ever tried a migration from Forms6i C/S to Forms9i? • Rewrite the client side integration with individual Java beans • Change the form to use your Java bean • Test and bug-fix your code! • Problems • Client File Handling ( TEXT_IO) • Client Command Execution ( HOST) • Desktop Integration (OLE / DDE) • OS Integration (ORA_FFI) • Document Handling / Round Trips ?
Why use Webutil? • Any Forms developer can implement complex tasks on client machines through WebUtil • No need for Java, only PL/SQL ! Simplify migration!
WebUtil runtime install checklist WebUtil pre-requisites WebUtil-ZIP distribution Configuration database • Logging • File Up-/Downlowd • Work Area Configuration HTTP Server • formsweb.cfg • environment files WebUtil entries Configuration of Options Add required Objects in Forms Change Runtime environment Run and test Form
WebUtil extensibility • You can extend WebUtil! • New functions implemented are transparent for developers • Be aware of release problems! • Use packaged API‘s to define new functionality • Extended Logging and Error-Handling • Message Dispatching • Localisation / Language support • Object caching • Installation Helpers
WebUtil maintainability / scalability • Auto-Cleanup • Logging and Error Reporting • Java Console • Client side alerts • Server side logs • Multi-Lingual • Translation of Error Messages possible
Installation • Pre-Requisites • Windows-NT, Windows 2000, Windows XP • Oracle 9iDS Rel.2 v9.0.2 • JInitiator 1.3.1.8+ • WebUtil 1.02 • Install WebUtil to <ORAHOME Forms9i>\forms90 • signer.properties in <WEBUTIL-Utilities> • JDK_HOME=C:\oracle\oraForms9\jdk • JINIT_HOME=C:\Programme\Oracle\JInitiator 1.3.1.8 • Add DN-Parameters for your Company
Installation (2) • Certificate the JAR • Start makecert • Sign webutil.jar • Registry Changes • Modify FORMS90_BUILDER_CLASSPATH • Append C:\oracle\oraForms9\forms90\WEBUTIL\lib\webutil.jar • orion-web.xml in <ORAHOME Forms9i>\j2ee\Oracle9iDS\application-deployments\forms\forms90web • Add <virtual-directory virtual-path="/webutil" real-path="C:\oracle\oraForms9\forms90\WEBUTIL\lib" />
Installation (3) • forms90.conf in <ORAHOME Forms9i>\forms90\server • Add AliasMatch ^/forms90/webutil/(..*) "C:\oracle\oraForms9\forms90\WEBUTIL\lib/$1" • formsweb.cfgin <ORAHOME Forms9i>\forms90\server • Add webUtilArchive=/forms90/webutil/webutil.jar,/forms90/webutil/jacob.jar • default.env in <ORAHOME Forms9i>\forms90\server • Add #Webutil-Section WEBUTIL_CONFIG=C:\oracle\oraForms9\forms90\WEBUTIL\server\webutil.cfg
Installation (4) • default.env • Add to the CLASSPATH C:\oracle\oraForms9\forms90\WEBUTIL\lib\jacob.jar;C:\oracle\oraForms9\jdk\jre\bin\classic\jvm.dll • Add to the FORMS90_PATH C:\oracle\oraForms9\forms90\WEBUTIL\forms;C:\oracle\oraForms9\forms90 • Changes in Forms • Attach WebUtil.pll to the form • Subclass WebUtil Objectgroup from the webutil.olb
Demo • Simple Text I/O • OLE integration • File handling • Using WebUtil-package functions
Best practice: performance / tuning • Reduce network traffic • only enable the forms that use WebUtil components • use functions efficient (f.e. read files into a work area on server) • Disable logging / error recording at production time
Best practice • Try object reuse on the client to save destroying and recreating the objects • Free client resources when possible • Evaluate File transfer vs. File uploading
Experience • Forms 6i C/S to 6i Web (years ago) • C/S functions like text_io were rewritten in java code • Write java code • Integrate it in java bean areas • Interact with the bean with set-, get-functions and WHEN-CUSTOM-ITEM-EVENT-Trigger • Forms 6i C/S to 9i (actually) • Installing WebUtil • C/S functionality went 1:1 to Webutil with client_<code>
Thank you! Q & A