forms 9i - dream and reality

120
Oracle Forms 9i Dream & Reality Peter Anzenberger [email protected] Anual conference 2003 - Vienna

Upload: tssr2001

Post on 29-Dec-2015

41 views

Category:

Documents


3 download

DESCRIPTION

Oracle Forms 9i - Dream and Reality in resolving the issues in it.Version : 9iDatabase : OracleForms Front End design changes

TRANSCRIPT

Page 1: Forms 9i - Dream and Reality

Oracle Forms 9iDream & Reality

Peter [email protected]

Anual conference 2003 - Vienna

Page 2: Forms 9i - Dream and Reality

2

Applications Evolving With Forms

BlockModeBlockMode

CharacterModeCharacterMode

Client ServerClient Server WebWeb ?? ??

Page 3: Forms 9i - Dream and Reality

3

History of Forms

Oracle Forms 10g

20046i

Page 4: Forms 9i - Dream and Reality

4

Oracle Forms 10g ???

Page 5: Forms 9i - Dream and Reality

5

The Problem and the Reality

! Many data entry applications don’t need desktop integration

! But many do….! Can be a significant barrier to Web deployment! There are ways…

Page 6: Forms 9i - Dream and Reality

6

The Problem and the Reality

! Should I Migrate to the Web Today?

Integration Migrate?

Occasional Upload Yes

Background Calculations Yes

Mail Merge Maybe

Document Storage in the DB Probably Not

Full on Outlook & Word Integration Probably Not

Integration with Testing Equipment Maybe

Integration Migrate?

Occasional Upload Yes

Background Calculations Yes

Mail Merge Maybe

Document Storage in the DB Probably Not

Full on Outlook & Word Integration Probably Not

Integration with Testing Equipment Maybe

Page 7: Forms 9i - Dream and Reality

7

The Problem and the Reality

Form Runs HereForm Runs Here•• HostHost•• OLEOLE•• Read_Image_FileRead_Image_File•• ORA_FFIORA_FFI

Generic Generic AppletApplet•• PJC PJC •• JavaBeansJavaBeans

DesktopDesktop

Application Application ServerServer

DatabaseDatabase•• Document StorageDocument Storage

DB ServerDB Server

Page 8: Forms 9i - Dream and Reality

8

The End of Client/Server?

Page 9: Forms 9i - Dream and Reality

9

A successful Migration

! Customer: voestalpine stahl Linz GmbH

! What to do:!C/S …. Forms 6i or!Web …. Forms 9i

! How much forms: approximately 150

Page 10: Forms 9i - Dream and Reality

10

History of the Project

! At the beginning was Forms 3.0! Terminals on SCO Unix Servers

! Migration with Designer 2.1 to Forms 5.0! Creation of an OLB for Designer! Creation of Templates! Reverse Engineering and Generation with Designer 2.1! Layout made new with FormBuilder

! We packed almost everything on Code into the Database

Page 11: Forms 9i - Dream and Reality

11

Conclusion of the Migration Process

! Migration worked only with FormBuilder! We needed only 1 Day to migrate 150 Forms! Tests took 2 weeks! Everything worked fine because we worked

fine in the past

Page 12: Forms 9i - Dream and Reality

12

Forms 4.5 to 9i Forms

! Conversion! Migration Wizard! Forms Builder

! OTN Web Site! Remember to start OC4J!

The migration from versions earlier than 6i is not supported.But may work!!! ☺

Page 13: Forms 9i - Dream and Reality

13

IT - Infrastructure

! The Migration Process is not the Main Problem! The real Problem is:

You need the Oracle IAS 9i now!

WHY?

Page 14: Forms 9i - Dream and Reality

14

Running on O9iAS

! Current client/server apps now need O9iAS ! licensing! administration

! Getting this wrong can kill your project! Complex configuration! Need experienced O9iAS admin

! Q: What killed the Reports Server?! A: Permissions on the /tmpdirectory

Page 15: Forms 9i - Dream and Reality

15

Infrastructure of C/S

Developer Client • Forms• Reports• GraphicsSQL*Net

Database Server

Page 16: Forms 9i - Dream and Reality

16

Form Startup

Client Application Server

HTTP Server (mod_oc4j)

WWWBrowser

HTML Startup File

File System

Forms Servlet

JInitiatorApplet Window

Forms Listener Servlet

Page 17: Forms 9i - Dream and Reality

17Application Server Database Server

Java Files

Forms Files

GIF Files

File System

Database

Client

Form Runtime

HTTP Server

Forms ListenerServlet

WWWBrowser

JInitiatorWindow

Forms Servlet

Forms RuntimeEngine

Forms RuntimeEngine

WWWBrowser

JInitiatorWindow

WWWBrowser

JInitiatorWindow Forms Runtime

Engine

Page 18: Forms 9i - Dream and Reality

18

Installation of iAS 9.0.2

! Now you are ready to install the Oracle9iAS Infrastructure. TheOracle9iAS Metadata Repository, Oracle Internet Directory and Oracle9iAS Single Sign-On will be installed.

! Note: If you will be installing Oracle9i Application Server Business Intelligence and Forms and the Oracle9i Database Release 2 on thesame machine, it is recommended that you clean off your machine.

! When you install Oracle9iAS Infrastructure, a database is also installed. This database stored the metadata repository for all theOracle9iAS products and components associated with a repository. The unique instance name will be used to identify this installation of Oracle9iAS infrastructure.

Page 19: Forms 9i - Dream and Reality

19

We are on the way

! Now that you have the Oracle9iAS Infrastructureinstalled, you will need to install the applicationsthat will use the infrastructure. In this case, youwant to utilize J2EE and Web Cache as well as Wireless, Portal and Discoverer so you will installthe Business Intelligence and Forms installoption.

! The Oracle Universal Installer should detect thatyou already have an Oracle9iAS Infrastructureinstalled and Single Sign-On is enabled.

Page 20: Forms 9i - Dream and Reality

20

Installation: Conclusion

! It takes much time to install the iAS 9i Rel 2! It also takes much nerves

! Sometime it works.

! The recomended Infrastructure for! iAS 9.0.2 with!Oracle 9.2 Database looks like this:

Page 21: Forms 9i - Dream and Reality

21

IT Infrastructure form iAS and Forms 9i

! 1st machine with Infrastructure DB (9.0.x)

! 2nd machine with iAS (Foms Server, ….)

! 3rd machine or somewhere else: 9.2 Database

! Will be better in newer Releases

Page 22: Forms 9i - Dream and Reality

22

Configuring Forms Services

! The Oracle Installer does the hard work! It configures iAS

! You only need to configure Forms itself…! formsweb.cfg! default.env! Registry.dat

! … And then run your application!

Page 23: Forms 9i - Dream and Reality

23

Configuring Forms Services

formsweb.cfg! Specifies runtime parameters for Forms apps! Client-server equivalent of command line options! All parameters listed in Oracle9iAS Forms

Services Deployment Guide on OTN.

Page 24: Forms 9i - Dream and Reality

24

Configuring Forms Services

formsweb.cfg! Runtime parameters! All settings can be set

in the default section! Application sections over-

ride default

formsweb.cfg File…userid=form=test.fmxbackground=width=640height=480

[order]userid=order/order@orclform=ordersbackground=order.jpg

Page 25: Forms 9i - Dream and Reality

25

formsweb.cfg File…userid=form=text.fmxbackground=width=640height=480

[order]userid=order/order@orclform=ordersbackground=order.jpg

Configuring Forms Services

formsweb.cfg! Runtime parameters! All settings can be set

in the default section! Application sections over-

ride default! You can have many

environments on one installation

Page 26: Forms 9i - Dream and Reality

26

Configuring Forms Services

default.env! Specifies runtime environment variables! Client-server equivalent of environment variables

or Windows Registry entries

Page 27: Forms 9i - Dream and Reality

27

Configuring Forms Services

default.env! Environment variables

formsweb.cfg File…userid=form=text.fmxbackground=width=640height=480envFile=default.env

[order]userid=order/order@orclform=ordersbackground=order.jpg

default.env File…ORACLE_HOME=C:\Oracle\Forms9iFORMS90_PATH=D:\Work…

Page 28: Forms 9i - Dream and Reality

28

Configuring Forms Services

default.env! Environment variables! Each app section can have

an env file

formsweb.cfg File…userid=form=text.fmxbackground=width=640height=480envFile=default.env

[order]userid=order/order@orclform=ordersbackground=order.jpgenvFile=orders.env

orders.env File…ORACLE_HOME=C:\Oracle\Forms9iFORMS90_PATH=D:\Orders…

Page 29: Forms 9i - Dream and Reality

29

Some Scenarios

But how will our System run withinsome Scenarios of failures?

Let‘s see ……

Page 30: Forms 9i - Dream and Reality

30

Agenda

! 1 machine – HTTP and Forms together! 2 machines – HTTP and Forms separate! Load Balancing Configurations

Page 31: Forms 9i - Dream and Reality

31

Application Tier Database TierClient Tier

One Machine (a)Simplest configuration

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 32: Forms 9i - Dream and Reality

32

Application Tier Database TierClient Tier

One Machine (b)Not dedicating memory and CPU to Forms Services

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 33: Forms 9i - Dream and Reality

33

One Machine (c)Single point of failure

Application Tier Database TierClient Tier

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 34: Forms 9i - Dream and Reality

34

Agenda

! 1 machine – HTTP and Forms together! 2 machines – HTTP and Forms separate! Load Balancing Configurations

Page 35: Forms 9i - Dream and Reality

35

Application Tier Database TierClient Tier

Two Machines (a)Not load balancing

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 36: Forms 9i - Dream and Reality

36

Application Tier Database TierClient Tier

Two Machines (b)HTTP server can be used for other purposes without taking resources from Forms Services

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 37: Forms 9i - Dream and Reality

37

Application Tier Database TierClient Tier

Two Machines (c)Useful if one machine is not powerful enough for all components

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 38: Forms 9i - Dream and Reality

38

Application Tier Database TierClient Tier

Two Machines (c)Configure MOD_OC4J in HTTP server to point to servlet engine on other machine

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 39: Forms 9i - Dream and Reality

39

Application Tier Database TierClient Tier

Two Machines (d)Single point of failure

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 40: Forms 9i - Dream and Reality

40

Two Machines (e)

Application Tier Database TierClient Tier

Single point of failure

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 41: Forms 9i - Dream and Reality

41

Agenda

! 1 machine – HTTP and Forms together! 2 machines – HTTP and Forms separate! Load Balancing Configurations

Page 42: Forms 9i - Dream and Reality

42

1. MOD_OC4J Load Balancing

Page 43: Forms 9i - Dream and Reality

43

Application Tier Database TierClient Tier

Load Balancing (1a)OC4J load balancing (built into Oracle9iAS)

FFOORRMMSS

OOCC44JJHH

TTTTPP

FFOORRMMSS

OOCC44JJ

Page 44: Forms 9i - Dream and Reality

44

Application Tier Database TierClient Tier

Load Balancing (1b)Load balancing only occurs for the first request

FFOORRMMSS

OOCC44JJHH

TTTTPP

FFOORRMMSS

OOCC44JJ

Page 45: Forms 9i - Dream and Reality

45

Application Tier Database TierClient Tier

Load Balancing (1c)Forms Services not a single point of failure

FFOORRMMSS

OOCC44JJHH

TTTTPP

FFOORRMMSS

OOCC44JJ

Page 46: Forms 9i - Dream and Reality

46

Application Tier Database TierClient Tier

Load Balancing (1d)May overload remaining machine

FFOORRMMSS

OOCC44JJHH

TTTTPP

FFOORRMMSS

OOCC44JJ

Page 47: Forms 9i - Dream and Reality

47

Application Tier Database TierClient Tier

Load Balancing (1e)iAS Release 2 can restart OC4J servlet engines

FFOORRMMSS

OOCC44JJHH

TTTTPP

FFOORRMMSS

OOCC44JJ

Page 48: Forms 9i - Dream and Reality

48

Load Balancing (1f)HTTP server still single point of failure

Application Tier Database TierClient Tier

FFOORRMMSS

OOCC44JJHH

TTTTPP

FFOORRMMSS

OOCC44JJ

Page 49: Forms 9i - Dream and Reality

49

Application Tier Database TierClient Tier

Load Balancing (1g)Add more Forms Services as needed

FFOORRMMSS

OOCC44JJHH

TTTTPP

FFOORRMMSS

OOCC44JJ

Page 50: Forms 9i - Dream and Reality

50

Application Tier Database TierClient Tier

Load Balancing (1h)Add more Forms Services as needed

FFOORRMMSS

OOCC44JJ

FFOORRMMSS

OOCC44JJ

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 51: Forms 9i - Dream and Reality

51

2. MOD_OC4J Load Balancing, but combining components

Page 52: Forms 9i - Dream and Reality

52

Load Balancing (2a)

Application Tier Database TierClient Tier

If one machine becomes fully utilized, add another machine for Forms Services

FFOORRMMSS

OOCC44JJ

HHTTTTPP

Page 53: Forms 9i - Dream and Reality

53

Load Balancing (2b)

Application Tier Database TierClient Tier

If one machine becomes fully utilized, add another machine for Forms Services

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

Page 54: Forms 9i - Dream and Reality

54

Load Balancing (2c)

Application Tier Database TierClient Tier

Better availability

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

Page 55: Forms 9i - Dream and Reality

55

Load Balancing (2c)

Application Tier Database TierClient Tier

Better availability

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

Page 56: Forms 9i - Dream and Reality

56

3. External load balancer

Page 57: Forms 9i - Dream and Reality

57

Application Tier Database TierClient Tier

Load Balancing (3a)Use hardware/software Load Balancer to route requests between HTTP servers

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 58: Forms 9i - Dream and Reality

58

Application Tier Database TierClient Tier

Load Balancing (3b)Load Balancer may be hardware or software

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 59: Forms 9i - Dream and Reality

59

Application Tier Database TierClient Tier

Load Balancing (3c)Load Balancer must support session binding

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 60: Forms 9i - Dream and Reality

60

Application Tier Database TierClient Tier

Load Balancing (3d)If you don’t have enough hardware, combine components

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 61: Forms 9i - Dream and Reality

61

Application Tier Database TierClient Tier

Load Balancing (3e)Load Balancer is a single point of failure, but less so than other components

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 62: Forms 9i - Dream and Reality

62

Application Tier Database TierClient Tier

Load Balancing (3f)Single point of failure cannot be eliminated; you need to weigh risk versus cost and hassle

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 63: Forms 9i - Dream and Reality

63

Application Tier Database TierClient Tier

Load Balancing (3g)If HTTP server goes down, not utilizing Forms Services behind it

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 64: Forms 9i - Dream and Reality

64

4. MOD_OC4J Load Balancing with external load balancer

Page 65: Forms 9i - Dream and Reality

65

Application Tier Database TierClient Tier

Load Balancing (4a)Use a combination of a Load Balancer, plus OC4J load balancing on each HTTP server

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 66: Forms 9i - Dream and Reality

66

Application Tier Database TierClient Tier

Load Balancing (4b)Only single point of failure is Load Balancer

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 67: Forms 9i - Dream and Reality

67

Application Tier Database TierClient Tier

Load Balancing (4c)If HTTP server or Forms Services goes down, requests routed to others

4b

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 68: Forms 9i - Dream and Reality

68

Application Tier Database TierClient Tier

Load Balancing (4d)If HTTP server or Forms Services goes down, requests routed to others

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 69: Forms 9i - Dream and Reality

69

Application Tier Database TierClient Tier

Load Balancing (4e)Any number of machines

FFOORRMMSS

OOCC44JJ

HHTTTTPP

FFOORRMMSS

OOCC44JJ

HHTTTTPP

LLBB

Page 70: Forms 9i - Dream and Reality

70

5. MOD_OC4J Load Balancing with external load balancer, plus a router

Page 71: Forms 9i - Dream and Reality

71

Load Balancing (5a)

Application Tier Database TierClient Tier

Allows for separate HTTP server for Forms, and for other requests

HHTTTTPP

FFOORRMMSS

OOCC44JJ

OOCC44JJ

FFOORRMMSS

HHTTTTPP

RROOUUTTEERR

HHTTTTPP

LLBB

Page 72: Forms 9i - Dream and Reality

72

Load Balancing (5b)

Application Tier Database TierClient Tier

This means you can size for Forms

HHTTTTPP

FFOORRMMSS

OOCC44JJ

OOCC44JJ

FFOORRMMSS

HHTTTTPP

RROOUUTTEERR

HHTTTTPP

LLBB

Page 73: Forms 9i - Dream and Reality

73

What to do?

! You see, you are depending on the count of Servers! To make sure the System is running you need at least:

! 1 (or 2) iAS machine! 1 DB machine (like until now)

! Small Projects will die! How will I explain my customer, that he needs for 5 or 10 clients 2 or 3 or

even more Servers?

! My customer decided as follows:! Critical Users will work with 6i Client/Server! Non Critcal Users will be changed to Intranet with 9i

OR

Page 74: Forms 9i - Dream and Reality

74

Kostenlose Werbungask: Weichselberger, Stmmer, Hofmann

Let‘s wait for the

GRID*

* BUT: how are the costs for the servers (hardware and administration)?

Page 75: Forms 9i - Dream and Reality

75

Migration

! But also the Migration is not so easy like it looks

! Let‘s see some points of Interest:

Page 76: Forms 9i - Dream and Reality

76

Components to be removed in Forms 9i

Page 77: Forms 9i - Dream and Reality

77

Oracle Graphics is dead, long live BI beans

38 page White Paper how to integrate Graphics and Forms 9i

Page 78: Forms 9i - Dream and Reality

78

Forms 9i New Features

Page 79: Forms 9i - Dream and Reality

79

Obsolete Features in Forms 9i

Page 80: Forms 9i - Dream and Reality

80

Where is my Menu?

Page 81: Forms 9i - Dream and Reality

81

Where are the Data for my LOV‘s?

Page 82: Forms 9i - Dream and Reality

82

Where are the Data for my LOV‘s?

Page 83: Forms 9i - Dream and Reality

83

How much Data may be entered?

Page 84: Forms 9i - Dream and Reality

84

Stricter Enforcement of Triggers and Built-Ins

Page 85: Forms 9i - Dream and Reality

85

Stricter Enforcement of Triggers and Built-Ins

Page 86: Forms 9i - Dream and Reality

86

Stricter Enforcement of Triggers and Built-Ins

Page 87: Forms 9i - Dream and Reality

87

Where are all my Icons* gone?

BUT .....

* In the Forms Builder still „ico“14 page White Paper how to deploy Icons in the Web

Page 88: Forms 9i - Dream and Reality

88

DatabaseDatabase

Client/Server architectureOLE2Host

Desktop drives

OLE Containers

ORA_FFI

Page 89: Forms 9i - Dream and Reality

89

DatabaseDatabase

Web-deployed architecture

OLE2

Host

ORA_FFI

unix

Page 90: Forms 9i - Dream and Reality

90

Going back to the application…

! The following features will not work with web deployment…! Third party workflow! Address validation! D2KWUTIL! Calls to .DLL and .EXE files! Integration with MS Word! Production of Excel spreadsheets! Upload files! Reading registry

…without making changes! This is not an upgrade, it is a migration

Page 91: Forms 9i - Dream and Reality

91

Porting to Unix

! Watch out for :! case sensitivity! embedded file names! directory separators

! O9iDS is less usable on Unix! Not supported on terminal

emulators

unix

Page 92: Forms 9i - Dream and Reality

92

Introducing WebUtil

! Oracle Beta Pre-Production software! Client side versions of old favourites

! CLIENT_HOST! CLIENT_TEXT_IO! CLIENT_OLE2! CLIENT_GET_FILE_DIR! CLIENT_TOOL_ENV! CLIENT_WIN_API_ENVIRONMENT

! New features! WEBUTIL_FILE_TRANSFER! WEBUTIL_HOST! WEBUTIL_C_API! WEBUTIL_CLIENTINFO! WEBUTIL_BROWSER

! All straight PL/SQL calls

Page 93: Forms 9i - Dream and Reality

93

Limitations of WebUtil

!Uses Pluggable Java Components!Require PJC instantiations

!Not useable in many triggers# Use timers!Can only use in Forms, not Reports or Menus# Create one-off Forms

!Cannot get a Windows handle!Not always the best approach

! CLIENT_TEXT_IO! CLIENT_OLE2

Page 94: Forms 9i - Dream and Reality

94

So, do I have to become a Java head?

! Must know how Java CLASSPATH works

! ORA_JAVA requires some familiarity with:! classes! inheritance

! May need to write your own Java class

Page 95: Forms 9i - Dream and Reality

95

Migrated functionality

! Through ORA_JAVA! Third party workflow! Address validation

! Through WEBUTIL_C_API! Complex technical calculations! Terrain mapping

! Through CLIENT_OLE2! Integration with MS Word! Production of Excel spreadsheets

! Through WEBUTIL miscellaneous! Upload files! Read registry

Page 96: Forms 9i - Dream and Reality

96

Lost functionality

! Help files! Using Notepad to edit items! Performance

! Using Forms to launch apps! Using timers instead of W-N-F-I! CLIENT_OLE2 time lag

! IDENTIFIED EXTERNALLY! DLL transactions

Page 97: Forms 9i - Dream and Reality

97

So What Alternatives To This?

Page 98: Forms 9i - Dream and Reality

98

JACOB & Others

! JAva COm Bridge! Open Source! http://danadler.com/jacob/! Similar APIs to ms.com classes (simple method) but

not dependant on Microsoft JVM! Intrinsyc (Linar) J/Integra

! Not free but trial available! Have an Add-in for Oracle9i JDeveloper

! jacoZoom – www.infozoom.de! Again not free but can evaluate

Page 99: Forms 9i - Dream and Reality

99

Some Design Considerations

! Move SQL code to the database!Good idea with any environment

! Do some of the standard Forms features make sense on the Web?!Toolbar buttons !Enter Query mode!MDI windows!Next Record, Next Block, Clear Form

! Set user expectations (use OLAF?)

Page 100: Forms 9i - Dream and Reality

100

OLAF

! “Oracle Look And Feel” ! Rounded everything: buttons, scrollbars! Animated alert icons! lookAndFeel=oracle

! Pre-designed color palettes for Oracle look and feel

! Blue, Khaki, Olive, Purple, Red, Teal, Titanium

! colorScheme=olive

! Background density! darkLook=true

Page 101: Forms 9i - Dream and Reality

101

Page 102: Forms 9i - Dream and Reality

102

Neat OLAF Parameters

! LOV button!Button appears automatically

if item has an LOV! In registry.dat file on the app server:

app.ui.lovButtons=true! Required items with yellow background (registry.dat)

! app.ui.requiredFieldVA=true! app.ui.requiredFieldVABGColor=255,242,203

! Read-only items with light gray background!ServerArgs again! readOnlyBackground=”true”

Page 103: Forms 9i - Dream and Reality

103

Fonts and Colors

! Fonts are different! Use fonts with a Java equivalent ! There are only a few fonts in Java

• Dialog, Serif, SansSerif, Monospaced, DialogInput• MS Sans Serif becomes Dialog

! Font substitutions in Deploying Forms Applications to the Web with Forms Server – design chapter 7

! Use 9 point – translates better than 8 point! Use Display Items if nothing else works! registry.dat contains font mappings

! Use visual attributes for buttons! The Windows manager does not color

them as it does in client/server

Page 104: Forms 9i - Dream and Reality

104

The Fastest-Loading Design

! Reduce the number of items! E.g., logon form

! After validating the user, issue a NEW_FORM to a menu form

! Small initial forms break up the startup time! Forms Server process startup! Loading form into memory! Loading library code

! Achieve startup times of 5 seconds!! From the URL click to the

form appearing

Page 105: Forms 9i - Dream and Reality

105

Use JavaBeans

! Unlimited design elements! Anything you want to use as an extension! File browser; spell checker; animated dogs

! Roll your own Pluggable Java Components (PJCs)! Replace objects such as buttons and items! Or use a Bean Area - layout object

• Use custom trigger and get and set properties• JDeveloper can help create these

! Lots of samples on OTN! Look for white paper: Oracle9i Forms in a Java World

! Import Java methods! Program | Import Java Classes

?

Page 106: Forms 9i - Dream and Reality

106

Why Use Java?

! Allows you to interact with the client machine! Do FFI or DDE! Use the ORA_JAVA built-in package in Forms 9i

! Include any Java component! Java components have many possibilities! Easily extended and customized

! Leverage existing Java code! For computation or business rules! OO handling of data

! Get experience with Java! Extending forms applications is a small step towards learning

about Java

Page 107: Forms 9i - Dream and Reality

107

System Variables

! Some values are different from client/server! :SYSTEM.MOUSE_BUTTON_SHIFT_STATE

$ In c/s,“Ctrl+” for control key and mouse button$ In Web Forms, it is “Control+”

! :SYSTEM.MOUSE_BUTTON_PRESSED• Normally “1” and “3”

For left and right button• Web Forms: “1” and nothing

! Use :SYSTEM.MOUSE_BUTTON_MODIFIERS! O/S non-specific; Info in help system Find tab

! Test for the environment:

The docs mention that this is

platform-specific

get_application_property(USER_INTERFACE) = ’WEB’

Page 108: Forms 9i - Dream and Reality

108

Operating System Calls

! Forms runs on the app server ! The host operating system is on the app server

! HOST built-in runs on the application server! Registry reads and writes go to the app server! Other operating system facilities:

! OCX and VBX! OLE and DDE ! User exits! HINT.PLL! Be careful when changing environments

(moving from Windows to UNIX)! Will not display on the client

OTN white paper describes a solution using Java COM Bridge

(JACOB).

Page 109: Forms 9i - Dream and Reality

109

Operating System Calls

! ORA_FFI operates on the app server ! FFI calls may break if you port to another O/S

! The same for TEXT_IO and printing! If the server can see the client machine, you can read and

write client files with TEXT_IO! For printing and TEXT_IO, use ORARRP

• Oracle utility• Works for Reports; OTN has details

! Use WEB.SHOW_DOCUMENT!Opens the browser and a URL

Preview on OTN: WebUtil.PLL for 9i that includes some functions of D2KWUTIL.PLL

Page 110: Forms 9i - Dream and Reality

110

Startup Parameters

! Placed in the HTML startup file (serverArgs)! Default is an MDI frame

! You can turn Multiple Document Interface off! usesdi=yes

! Run form in the browser window ! Not separate window! separateFrame=false

! Splash page that shows while Forms loads! Can “trick” the users! splashScreen=co_logo.gif

Page 111: Forms 9i - Dream and Reality

111

Other Tips and Differences

! Locate app server close to database server! Key mappings are different

! Uses FMRWEB.RES by default! Substitute FMRPCWEB.RES

for the same key mapping as client/server! These are editable ASCII files

! No magic menu items for Cut, Copy, Paste! Ctrl-X, Ctrl-C, Ctrl-V do work! Use CUT_REGION, COPY_REGION,

PASTE_REGION instead! Turn off menu buffering

SET_APPLICATION_PROPERTY(MENU_BUFFERING,'FALSE');

! Fewer network messages (menu is not resent)

In ORACLE_HOME/FORMS60 directory

Page 112: Forms 9i - Dream and Reality

112

Other Tips

! This doesn’t work:SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW,

WINDOW_STATE, MINIMIZE)

! Disappearing canvas tips! Increase space between stacked canvases if one

disappears• They might be slightly overlapped on the Web

!Use SHOW_VIEW() to display a shy canvas

! Update to the latest mouse drivers! Otherwise, the mouse buttons may not work if you switch the mouse

buttons for left-handed mousers! Logitech or Intellimouse

Page 113: Forms 9i - Dream and Reality

113

Tuning Options prior to Web Forms

! Database access! Optimize SQL access! Array fetches, etc

! Application tuning! Good coding practice! Efficient code, etc! Lots of advice out there

! Client hardware! The more memory and

CPU, the better

Page 114: Forms 9i - Dream and Reality

114

Additional Tuning Options for Web Forms

(Tips on the previous slide still apply)

! Network Tuning! Oracle Application Server Tuning

Page 115: Forms 9i - Dream and Reality

115

! Objects that display on a screen need to be initialized

! Less items on an initial screen speeds up performance!Have a lean first screen!Hide items that are not needed

Reduce Items on the Screen

Page 116: Forms 9i - Dream and Reality

116

! Tabbed canvases

All items aredownloaded to client

Results in a possiblelarge initial downloadtime

Reduce Items on the Screen:Tab canvases

Page 117: Forms 9i - Dream and Reality

117

Reduce Items on the Screen:Tab canvases

! Tabbed canvases

Use hidden stackedcanvas on each tabto defer download

Trade off: possibledelay when usernavigates to tab for thefirst time

Page 118: Forms 9i - Dream and Reality

118

Promote Similarities

! Similar items are likely to be handled by the Forms smart delta messaging! Only the differences are sent

across the network

! Promote similarity in the UI! Use Property classes and Object

groups! Use Inheritance where possible

Page 119: Forms 9i - Dream and Reality

119

Resources on the Web

! OracleWorld: www.oracle.com/oracleworld

! Oracle Technology Network: otn.oracle.com! Mostly 9i now, but links exist to 6i material

! otn.oracle.com/products/forms/techlisting9i.html

! otn.oracle.com/docs/products/forms

! Migrate to the Web• otn.oracle.com/products/forms/htdocs/upgrade

! Migration Assistant - from Forms 6i to 9i• otn.oracle.com/software/products/forms

! IOUG Technical Repository: www.ioug.org

! ODTUG web site: www.odtug.com

Page 120: Forms 9i - Dream and Reality

120