Download - Ofb Document
-
8/8/2019 Ofb Document
1/27
DEVELOPMENT OF AN ANALYSIS AND REPORTING
TOOL FOR ORACLE FORMS SOURCE CODES
by
aatay YILDIRIM
June, 2008
ZMR
-
8/8/2019 Ofb Document
2/27
CONTENTS
Page
PROJECT EXAMINATION RESULT FORM...........................................................ii
ACKNOWLEDGEMENTS........................................................................................iii
ABSTRACT................................................................................................................ iv
Z................................................................................................................................. v
CHAPTER ONE - INTRODUCTION ....................................................................4
CHAPTER TWO - RELATED INFORMATION .................................................. 4
2.1. What is Oracle Forms........................................................................................4
2.2. Oracle Forms Architecture ................................................................................ 5
2.3. Oracle Forms Object Hierarchy......................................................................... 5
2.4. Development Environment Features ................................................................. 8
CHAPTER THREE - PROBLEM.......................................................................... 10
3.1. Development Problems.................................................................................... 10
3.2. Lacks of Development Environment............................................................... 10
CHAPTER FOUR - SOLUTION............................................................................ 10
4.1. Requirement Analysis for Solution .................................................................10
4.2. Design of Solution ........................................................................................... 11
4.3. Solution Methods............................................................................................. 14
4.3.1. Search Method ..........................................................................................14
4.3.2. Compare Method ...................................................................................... 17
4.3.3. Explore Method ........................................................................................18
4.3.4. Statistics Method.......................................................................................20
4.3.5. List Method ............................................................................................... 214.3.6. Convert Method ........................................................................................22
-
8/8/2019 Ofb Document
3/27
4.4. Solution Features ............................................................................................. 24
4.4.1. Windows and Web Platform..................................................................... 24
4.4.2. Multi Language User Interface .................................................................24
4.4.3. Theme Support for Web Platform............................................................. 25
CHAPTER FIVE - FUTURE WORK.................................................................... 25
CHAPTER SIX - CONCLUSION .......................................................................... 26
REFERENCES........................................................................................................... 31
-
8/8/2019 Ofb Document
4/27
1. Introduction
Oracle Forms is a rapid application development tool that is suitable for developing database
application. This development environment has some difficulties for observing and analyzing
application source codes because of binary source code files. Also this development
environment has limited search feature. In response to these problems a solution is developed
for analyzing, searching, comparing, exploring text base source codes.
2. Preview/Advance Information/Related Information
For understanding the application advance information should be known. Oracle Forms
development environment, its architecture, and its features is explained in this part.
2.1. What is Oracle Forms
Oracle Forms is one of the Oracle Developer Components. Oracle Forms is a interaction
application development environment that can present information through textual items, GUI
objects, and bitmapped images. Users can perform database transactions by interacting with
these objects.
Oracle Developer Components have an internet based computing architecture. There
are three tiers: Database Server, Application Server, and User Client. User accesses the
application through internet. Applications that are built with Oracle Forms are stored in
Oracle Application Server and serves to the users. Oracle Forms Applications interact with
the Oracle Database Server and makes database transactions.
Graphic 2.1 Oracle Developer Components interaction
-
8/8/2019 Ofb Document
5/27
2.2. Oracle Forms Architecture
Oracle Forms has developer, compiler and runtime applications. These are: Form Builder,
Form Compiler, and Forms Runtime.
Oracle Form Builder application is designed for developing form base database
application that includes GUI object for making an user-friendly interaction. This form
applications are stored on disk as a binary source code.
Oracle Form Compiler is a command based application that converts source codes to
run able applications. That application is both exits in Oracle Developer Suite and Oracle
Application Server. Form Builder is uses this application before debugging for compilingsource code.
Oracle Forms Runtime is a java applet that runs over web browsers. Forms Runtime
calls the forms application from application server and runs it on user client. Application on
the user client interacts with the application server for every database transaction.
Graphic 2.2 Oracle Forms Architecture
2.3. Oracle Forms Object Hierarchy
-
8/8/2019 Ofb Document
6/27
There are three main modules that are developed on oracle forms builder: Form, Menu, and
Library. Form includes data objects and graphics. There is a common template for developing
forms applications. Menu is a generic menu object that is used in form applications and that
can be attach to any GUI object. Library can be used for storing commonly used pl/sql codes
or objects that can be inherit by form objects.
Graphic 2.3- Oracle Form Modules
Form Modules can use several Data Sources, Database, Oracle Developer Components
and ActiveX/DDE/OLE2 libraries. Data sources and Database can be Oracle Database or any
ODBC based database for example: MsAccess, MySQL, SQLServer, DB2, Firebird etc. Also
developers can embed ActiveX/DDE/OLE2 library objects into form modules.
-
8/8/2019 Ofb Document
7/27
Graphic 2.4 Oracle Form Object Hierarchy
Oracle Forms form modules main object is Module. Module object includes Block,
Window, and Canvas data and view objects. In addition Form module includes Alert,
Attached Library, Menu, LOV, Program Unit, Object Library, Record Group, and Visual
Attribute objects. Module object has trigger and program units properties.
Block object includes item and relation data objects. Block object has Trigger
properties. Item objects have also Trigger properties. Item objects can match with database
table columns and become database items.
Window object is an object that shows Canvas objects. Canvas objects are the floor
object for GUI objects. All GUI objects that are shown should be an Canvas object.
Form Modules are stored as binary source code files with the file extension fmb.
Menu Modules are stored as binary source code files with the file extension mmb. Library
Modules are stored as binary source code files with the extension olb. The compiled Form
Modules are binary files with the extension fmx. The compiled Menu Modules are binary
files with the extension mmx. Library Modules are not compile-able files.
-
8/8/2019 Ofb Document
8/27
2.4. Development Environment Features
Oracle Forms development environment has several builder components that are also in
Oracle Report Builder, Discoverer Builder, and Graphic Builder. Main builder components
are Object Navigator, Layout Manager, Property Palette, and PL/SQL Editor.
Object Navigator list the objects in form with an order of forms architecture. Multiple forms,
menu files of library can be listed on object navigator. Also Database objects are listed on
object navigator.
Layout Manager is the main GUI developer. All graphical objects layout can be
edited with layout manager. Developers can design the style, color, size, and arrangement ofvisual objects in the application. The layout can include graphical objects and bitmapped
images when running in a GUI environment.
Graphic 2.4 Oracle Builder Components
-
8/8/2019 Ofb Document
9/27
Property palette show all properties and values of selected object. Developers can edit
properties of object with it. Also developers can copy and paste properties of object between
same type objects.
PL/SQL Editor component enables writing pl/sql codes for objects triggers. This
editor also compiles pl/sql code and helps developer for fixing problems on pl/sql source
codes.
-
8/8/2019 Ofb Document
10/27
3. Problem
The reason for developing an application for analysis and report forms source codes is
problems that developers faced some problems while developing forms applications. These
can be development problems or lacks of development environment.
3.1. Development Problems
Oracle Forms Developers are developing form application, designing forms and writing
pl/sql codes but the source code is binary and inaccessible from another application. Most of
development environment stores source codes as text files. So that Reporting or analyzing
source codes is impossible. This problem causes writing reports for applications manually or
analyzing source codes or comparing source codes manually over the Oracle Forms Builder.
3.2. Lacks of Development Environment
Oracle Forms Builder has a limited search feature. Search operation only can be done on
trigger pl/sql codes. This limited search is not covering needs.
4. Solution
Solution is an application for analyzing and reporting oracle forms source codes and covering
lacks of development environment. The solution is limited and shaped with making a
requirement analysis with oracle forms developers. Then the design of the solution is made.
Finally the application is coded according to design. During coding phase some of the
additions are done and design is renewed.
4.1. Requirement Analysis for Solution
The requirement analysis before designing application is done that includes bothquestionnaire and oral examination. Firstly requirement analysis is done with making
questionnaires with Oracle Forms developers. The questionnaire includes several questions.
These questions are about problems that they come face-to-face while developing forms,
reporting forms source codes, and analyzing source codes. At the end of requirement analysis
the scope of the application is determined.
-
8/8/2019 Ofb Document
11/27
4.2. Design of Solution
Design of solution is done according to information taken from requirement analysis. The
application is designed for running both on Windows OS and Web Based. The components of
the two different platform applications are changing.
Graphic 4.1 Solution components on different platforms
Web based application includes List, Search, Explore, and Statistics components.
Windows based application includes Convert, Compare, Search, and Explore components.
Some of the components are common some of them not that is necessity. List
component on the web application lists application according to developers authenticated
projects. Statistical component shows information about source code statistics that are
dynamically changing according to user project authentication.
-
8/8/2019 Ofb Document
12/27
Convert component is only in windows based application because it makes source
code convert operation through windows command line applications. Compare component
compares two source codes and generates difference of two source codes as a result. Also
compare operation needs reading two source code files selected by application that can be
done in windows based application.
Explore component shows the source codes as an object tree and objects properties, its
data blocks, and canvas views. Search component makes search over every object and their
properties. The search result is given as an object tree.
Graphics 4.2 Web and Windows application common and uncommon components
Design of applications can be examined in three layers: Data Layer, Business Layer,
and UI Layer. In data layer for making user authentication and listing project we use existing
Oracle Database. Only read operations can be done to this database. For making source code
analysis source codes should be as primarily. Primary source codes are FMB source code.
Application can convert FMB source codes to XML source codes. Analysis and reporting
operations are being done over XML source codes.
Business layer includes all working components. These components are divided in two
groups according to platforms that is told before. Also there is another helper component User
Authentication component for making authentication.
UI layer includes graphic user interface elements. There are four windows platform
interface and five web based interface. Windows platform interfaces are Convert, Compare,
-
8/8/2019 Ofb Document
13/27
Search and Explore interfaces. Web based interfaces are Login Page, Application List Page,
Form Data Structure Explore Page, Form Graphics Explore Page, Search Page, and Statistics
Page. Detailed information about these interfaces is given in Solution Methods section.
Graphic 4.3 Layers of applications
Windows application is coded with C# programming language in Visual Studio 2008 IDE.
Web application is coded with php in Zend Php IDE. Web page authentication is done
through Oracle Database 9i. XML parsing and operating with C# solved with Linq-to-Xml.
-
8/8/2019 Ofb Document
14/27
4.3. Solution Methods
Main methods of applications are Search, Compare, Explore, Statistics, List, and Convert.
These methods are explained with details in this section.
4.3.1. Search Method
Search Method is can be examined in two platforms: Search method on windows and search
method in web. Both these methods have simple and advance search options.
Windows applications search method has a simply interface. User adds form files
with xml extension using Files tab below search keyword entrance. After adding xml form
files user enters key word to textbox near the magnifier icon then clicks magnifier icon. As
the result of search operation a object tree is generated on the middle on the interface. The
object tree shows where the keyword is found. If user clicks on the object name on the tree,
objects properties are listed on the right column of the interface. User can easily find a value
or key in this way.
Graphic 4.4 Simple search in windows application
-
8/8/2019 Ofb Document
15/27
In advance search on windows application there is only one difference from the simple
search. Near the Files tab there is Advanced Settings tab. In Advanced Settings tab user
can select in which objects the search operation is being done. With this feature user can limit
the search scope on the form files.
Graphic 4.5 Advanced search in windows application
Web based search method is so similar to windows search method but the difference is
web users can only search over the authenticated oracle form files. This authentication is
based on which projects the developer is working. Also web based search generates an outputas a result like a list. First of all the list includes in which files the key word is found. Then the
details of the result are listed.
Advanced search in web application is done by selecting related objects through the
object tree and selecting projects from project list. By the way the search operation is only
done on a limited scope both in projects and forms objects. Simple search method search
through all objects and all authenticated projects so that the time spent in simple search is
longer than advanced search.
-
8/8/2019 Ofb Document
16/27
Graphic 4.6 Search method in web application
Graphic 4.7 Search result in web application
-
8/8/2019 Ofb Document
17/27
4.3.2. Compare Method
Compare method only exist in windows application because compare operation is more
complex for a web application. Compare method compares two selected form xml sourcecodes and finds the differences between these files. Differences between each other listed as
result and the results can be saved as oracle xml source codes.
The reason for making compare method is finding the differences between versions of
an form application. If developer wants to find the difference between two versions of a form
application, developer can easily find the difference between versions with this method.
Graphic 4.8 Compare method interface in windows application
Compare algorithm is recursively takes an object on the right side and tries to find that
object in left side. If object is not found on the left side the object is listed on the right side. As
correspondence compare algorithm recursively takes an object on the left side and tries to find
that object in the right side. If object is not found on the right side the object is listed on the
left side.
-
8/8/2019 Ofb Document
18/27
4.3.3. Explore Method
Simply explore method enables users to explore the source code easily with object tree and
graphical description (Only in web application). Explore method exists in both windows andweb application.
Explore method in windows application shows forms objects in tree style. When user
selects an object through the tree, object properties will be listed on the right side on property
grid. This method enables viewing source code easily like in the Oracle Form Builder. For
text based examinations or observations can easily be done.
Graphic 4.9 Explore method interface in windows application
On web application explore method is more complex then windows application
explore method because graphical interface of the form can be generated on web application.
Simple data object tree is generated with xsl file. This xsl file is styles the oracle form xmlsource code file. This xsl file is taken from http://www.geocities.com/oranails/.
-
8/8/2019 Ofb Document
19/27
Graphic 4.10 Explore method data explore interface in web application
On web application graphical explore of oracle forms source code is done by creating
SVGs of every canvas object in form. SVG is language for describing two dimensional
objects in xml standards. Most of the web browsers render svg files and shows the graphic.
By the way the generated graphics of every canvas shows user interface of forms to the
developer.
Graphic 4.11 Explore method graphical explore interface in web application
-
8/8/2019 Ofb Document
20/27
Graphic 4.12 Developer primary needs with forms source codes
4.3.4. Statistics Method
Statistic method only exists in web application because this method should be read all
available forms source codes that are categorized according to projects. Statistical information
about projects and project form source codes is listed in statistics method. This statistics are
being dynamically created. In runtime statistical information can be generated. This method
can be organized according to DBA or developer needs.
Graphic 4.13 Statistics method interface in web application
-
8/8/2019 Ofb Document
21/27
Graphic 4.14 Developer and DBA needs statistical information about projects
4.3.5. List Method
List method lists authenticated projects to the developer. Through the authenticated project
developer can list form names of the project and then developer can access to the data and
graphical definition of the form.
Graphic 4.15 List method in web application
-
8/8/2019 Ofb Document
22/27
Graphic 4.16 List methods form list in web application
The list method is a general router from the project to the source code. This method
can be defined as a dynamically generated online report for the developers. Also this method
can be used as a reference for the applications or source code repository of the projects.
Graphic 4.17 Developers list authorized applications.
4.3.6. Convert Method
Convert method is one of the core methods that enables users to convert form source code
files with fmb extension to oracle form source code files with xml extension. The conversion
only can be done where the application developer suite is installed because this method needsfrmf2xml command line convert of Oracle Developer Suite. That command line application is
-
8/8/2019 Ofb Document
23/27
released in 10g version of Oracle Developer Suite. Conversion also can be in reverse
direction.
Graphic 4.18 Convert method in windows application
Custom converter selection is needed if the system variables path doesnt include
Oracle Developer Suites bin directory or the version of developer suite is different. This
option can be selected through File menu on Settings item.
Graphic 4.19 Convert method settings in windows application
For up-to-date web based reporting in web application administrator of the webapplication should be convert fmb source code files frequently. By the way web application
can be as the expected state.
Graphic 4.20 Admin of the web application frequently converts fmb files to xml files
-
8/8/2019 Ofb Document
24/27
4.4. Solution Features
Solution has several technical and non technical features. These are: windows and web
platform, multi language user interface, and theme support for web application.
4.4.1. Windows and Web Platform
Application has developed to work in different platform according to user requirements and
technical states. Convert component is only in windows based application because it makes
source code convert operation through windows command line applications. In compare
method, compare operation needs reading two source code files selected by application that
can be done in windows based application.
List component on the web application lists application according to developers
authenticated projects. Statistical component shows information about source code statistics
that are dynamically changing according to user project authentication.
4.4.2. Multi Language User Interface
Multi language user interface feature exists in both windows and web applications. Windows
application multi language user interface feature is developed with .Net Globalization and
.Net multi language resource libraries. In windows application user selects language on File
menu Settings item Language section. Primarily English and Turkish language support
exists in windows application. Web application multi language user interface is formed
storing all texts in language files. In web application user selects interface language on
Settings page. In web application primarily English and Turkish language support exists
too.
Graphic 4.21 Multi Language user-interface support.
-
8/8/2019 Ofb Document
25/27
4.4.3. Theme Support for Web Platform
This feature is a web based user customization feature because with this feature every user
can use application with selected theme and this option is saved as user option. Also these
styles can be edited by web designers. Styles are stored in \style directory. When a new
style is added to style folder automatically it will listed in settings page. Language and style
selection on web application is stored on db\config_xxx.xml files.
Graphic 4.21 Theme support for web platform
5. Future Work
Developer requirements could be changed when new problems are occurred. Neverthelessadditions to these applications can be done or improvements could be done according to
changing user requirements. Also this application will be a base application for developing a
custom Oracle Forms development environment.
-
8/8/2019 Ofb Document
26/27
6. Conclusion
Solution is an application for analyzing and reporting oracle forms source codes and covering
lacks of development environment. The solution is limited and shaped with making a
requirement analysis with oracle forms developers. This project makes detailed search, source
code exploration (graphical and data sturcture), source code convertion (binary to text text
to binary), source code comparision, application listing, and gathering source code statistics.
Both web and window applications have multi language user interface. Also web
application has theme feature.
-
8/8/2019 Ofb Document
27/27
7. References
Oracle Forms 10g (10.1.2) Documentation
http://www.oracle.com/technology/documentation/10g_forms.html
Oracle Forms Developer and Forms Server Documentation
http://www.oracle.com/technology/documentation/forms.html
Php Documentation
http://www.php.net/docs.php
Michael Champion, .NET Language-Integrated Query for XML Data, February 2007
http://msdn.microsoft.com/en-us/library/bb308960.aspx
Language-Integrated Query (LINQ) LINQ to XML Overview
http://msdn.microsoft.com/en-us/library/bb387061.aspx
Oracle Forms XSL
http://www.geocities.com/oranails/