Help topic not found.  Check the online help for related topics.


Creating a project with the Project Wizard

  Restrictions	  Next Step	  Related Topics

To create a project with the Project Wizard:

1	Click [image] in the toolbar or double-click the root Projects node.  A dialog is displayed asking if you want to create a project with the Project Wizard or through the New Project dialog.

2	Click the Project Wizard radio button.

3	Follow the steps to create a standalone project.  Refer to the Project Wizard help for additional guidance.


Creating a project without the Project Wizard

  Restrictions	  Next Step	  Related Topics

To create a project without the Project Wizard

1	Click [image] in the toolbar to display the New Project dialog.

2	If necessary, navigate to the directory where you’d like to store your project file.  Navigate as you normally would using the file dialog for your system.

3	Type the name of your project in the File name text box.  There is no default or required extension.

A project file of the specified name is created in the specified directory.


Restrictions:  Creating a project

You can only save project files to your file system.  You can’t save project files to a database.


Adding a type to your user or global registry

  Next Step	  Related Topics

To add a type to your user or global registry:

1	Select Tools [image] Module Type Wizard.

2	Follow the directions on the Module Type Wizard panels, using the help to guide you.


Adding an action to an item

  Example	  Next Step	  Related Topics

To add an action to an item:

1	In the Project Navigator, select the item you wish to modify.  Tip

2	From the pop-up menu, select New Action to display the New Action dialog.

3	Specify the following:

•	A name for the action in the Name text field.  Or, if you want to extend the definition of an existing action [image] say, create a Build action for a new compiler [image] select the action from the drop down list.

•	(Optional)  A description of the action in the Description text field.  If you add this action to the pop-up menu, the description furnishes the menu item.  If you choose not to enter a description, the name of the action appears in the pop-up menu instead.  If you want to use keyboard mnemonics, mark the key you want to use by placing an ampersand (&) in front of it; for example, if you specify &Print as the description, the P furnishes the mnemonic.  If you want to include a non-mnemonic ampersand in the command, use two ampersands (&&).

•	The type of item on which this action will run from the Acts on Type drop-down list.

Note:  If you add an action to a type in the user registry, all items of that type that reference the user registry inherits the new action.  If you add an action to an item, the action applies only to that item, unless that item is a project or subproject.  Then the action applies to all the items in the project that are the same type as specified in the Acts on Type field.

•	Click the Add to right-click menu check box if you want to include the action in the pop-up menu associated with the type or item.  If you choose not to include the action in the pop-up menu, it will be inaccessible; you can hide actions in this fashion without deleting them.

4	Define the action in the text box.  The definition of the action is the command issued to invoke it.  You can either type the command string directly into the text field, or use these tabs:  Note

•	Click the Application tab and select the application you want to use to perform the action from the resulting list or Browse dialog.  Click Insert into command.  The executable you select either replaces any selected text in the Command text box, or is inserted at the cursor position.

After you add the executable, be sure to add the required (or optional) parameters to the Command string.  If you don’t know what they are, consult the appropriate user guide.  (You may want to use the Project Builder pre-defined macros to represent certain parameters, such as {n} for filename.)

•	Click the Macros tab and select a macro from the list of all built-in macros, pre-defined macros, and macros you have defined for the item.  Click Insert into command.  The macro you select either replaces any selected text in the Command text box, or is inserted at the cursor position.  It will be expanded when the action is invoked.

•	The Insert Item tab is only available for global actions (Build, Deliver, or the source control actions) and is disabled for other types of actions.  However, if you are adding an action to overwrite or extend one of the global actions, click this tab to select the type of input item required.

An input item is the source file the action operates upon.  For example, .fmb, or files of the type Forms Document, are the input items required to build .fmx files.  If you don’t see the input item you want, define one or edit an existing item by clicking Add to list. . .  or Edit.  When you’ve selected the input item you want, click Insert into command.  The input item you select either replaces any selected text in the Command text box, or is inserted at the cursor position.  In the Command text box, the input item appears as the number corresponding to its entry on the Insert Item tab.  Only one number appears for each input item, even if the action accepts multiple inputs.

5	Click OK to close the dialog and associate the action with the type or item.


Adding an action to a type

  Related Topics

To add an action to a type:

1	In the Project Navigator, select the type you wish to modify.  Tip

2	Select Tools [image] Module Type Wizard.

3	Click the Actions tab.

4	Click Add to display the New/Edit action dialog.

5	Specify the following:

•	A name for the action in the Name text field.  Or, if you want to extend the definition of an existing action [image] say, create a Build action for a new compiler [image] select the action from the drop down list.

•	(Optional)  A description of the action in the Description text field.  If you add this action to the pop-up menu, the description furnishes the menu item.  If you choose not to enter a description, the name of the action appears in the pop-up menu instead.  If you want to use keyboard mnemonics, mark the key you want to use by placing an ampersand (&) in front of it; for example, if you specify &Print as the description, the P furnishes the mnemonic.  If you want to include a non-mnemonic ampersand in the command, use two ampersands (&&).

•	Click the Add to right-click menu check box if you want to include the action in the pop-up menu associated with the type or item.  If you choose not to include the action in the pop-up menu, it will be inaccessible; you can hide actions in this fashion without deleting them.

4	Define the action in the text box.  The definition of the action is the command issued to invoke it.  You can either type the command string directly into the text field, or use these tabs:  Note

•	Click the Application tab and select the application you want to use to perform the action from the resulting list or Browse dialog.  Click Insert into command.  The executable you select either replaces any selected text in the Command text box, or is inserted at the cursor position.

After you add the executable, be sure to add the required (or optional) parameters to the Command string.  If you don’t know what they are, consult the appropriate user guide.  (You may want to use the Project Builder pre-defined macros to represent certain parameters, such as {n} for filename.)

•	Click the Macros tab and select a macro from the list of all built-in macros, pre-defined macros, and macros you have defined for the item.  Click Insert into command.  The macro you select either replaces any selected text in the Command text box, or is inserted at the cursor position.  It will be expanded when the action is invoked.

•	The Inputs tab is only available for global actions (Build, Deliver, or the source control actions) and is disabled for other types of actions.  However, if you are adding an action to overwrite or extend one of the global actions, click this tab to select the type of input item required.

An input item is the source file the action operates upon.  For example, .fmb, or files of the type Forms Document, are the input items required to build .fmx files.  If you don’t see the input item you want, define one or edit an existing item by clicking Add to list. . .  or Edit.  When you’ve selected the input item you want, click Insert into command.  The input item you select either replaces any selected text in the Command text box, or is inserted at the cursor position.  In the Command text box, the input item appears as the number corresponding to its entry on the Insert Item tab.  Only one number appears for each input item, even if the action accepts multiple inputs.

5	Click OK to close the dialog and return to the Module Type Wizard.

6	If you want to make an action the default, highlight the action on the Actions tab, then click Make Default.


Be sure you understand the implications for inheritance before selecting a type or item.  For example, rather than define the same action for several different files of the same type, it’s easier to simply define the action for the type itself.


As you create your actions and macros, remember that the syntax of your commands is governed by your platform.  Porting such actions to a different platform will require that the syntax be modified to conform to the rules for the new platform.  Possible conflicts include but are not limited to filename lengths, case sensitivity, and forward and backward slashes.

For more information, see the section in the help entitled Forms or Reports Developer Platform-specific Information.


Example: Adding an action to a type

Project Builder provides an Open action for most file types.  However, suppose the Open action associated with text files doesn’t invoke the editor you want to use; for example, you prefer Wordpad to Notepad, or emacs to vi.  You can associate an Edit action with text files and choose Edit from the pop-up menu, instead of Open.

1	Ensure that you have a copy of the Text Files type in your user registry.  Select it.  Note

2	Select Tools [image] Module Type Wizard.  Because you chose the Text Files type in step 1, certain fields throughout the wizard will be populated with the appropriate information.

3	Click the Actions tab, then click Add to display the Add Action dialog.

4	Type Edit in the Add Action dialog’s Name field.

5	Select Text from the Acts on Type drop-down list.

6	Add a description.  This will furnish the pop-up menu entry.

7	Ensure that Add to Pop-up Menu is selected, so your description will appear on the pop-up menu.

8	In the Command text box, specify the command that invokes the tool you want to use, with a file of the relevant type in question.  This will require both an application (the command line invocation string) and a macro (to provide necessary parameters or options; for example, the filename of the file you want to open).

In this example, you’d like to specify Wordpad, but don’t know where the executable is.  Click the Application tab to display a list of previously selected executables.  If you don’t see Wordpad, click Browse and search the file system.  When you find the Wordpad executable, select it and click Open to dismiss the dialog and insert the file specification for the executable in the Command text box.

Next, you have to tell Wordpad what to open.  Type a space, then click the Macro tab to display a list of pre-defined macros.  The macro {n} expands to the fully qualified filename of the item being acted upon.  Double-click it to insert it into the action definition.

9	Click OK to dismiss the dialog and return to the Action tab in the Module Type Wizard.

10	If you want the Edit action to be the default action, select the Edit action, then click Make Default.  Now, when you select a text file in the Project Navigator and double-click it, the file will be opened in Wordpad.


Modifying the type definition found in the Global Registry is not recommended if you are not the Project Administrator.


Creating a macro

  Example	  Next Step	  Related Topics

To create a macro:

1	In the Project Navigator, make sure the project or item you want the macro to apply to is selected.

2	Choose New Macro from the pop-up menu to display the New Macro dialog.

3	Type a name for your macro in the Name text box.

4	Select the macro type from the Type drop-down list.  All macro types except Static Text display a pop-up during runtime, prompting the user to supply a value.

5	Enter the macro definition in the Value text box.

•	If your macro includes a file name, click Insert filename to display the Insert Application dialog for your file system.

•	If your macro can contain nested, or previously defined, macros, click Insert macro and select the macro(s) you want to include from the list.  Note

6	Fill in any additional fields required by the macro type you selected in step 4.

7	Click OK to create your macro and dismiss the dialog.


Example:  Creating a macro

Suppose you are responsible for developing Graphics Builder displays for both internal and external distribution.  Internal distribution requires exporting the displays to bitmaps for inclusion in hardcopy reports, and external distribution requires exporting the displays to .gif files for display on your company’s web site.

You can create a macro containing Graphics Builder runtime options to modify the Run action associated with a display.  When you want to generate a bitmap, set the macro to specify export to bitmap.  When you want to generate a .gif file, set the macro to specify export to .gif.

To do so:

1	Ensure that you have a copy of the Graphics Executable type in your user registry.  Select it.  Note

2	Choose New Macro from the pop-up menu to display the New Macro dialog.

3	Type EXPORT in the Name text field (it automatically appears in uppercase).

4	Select Static text from the Type drop-down list.

5	Define your macro in the Value text box.  One possibility:

exportimage={b}.gif

Note that in this example, exportimage is the runtime option, {b} is the base filename, and .gif is the extension corresponding to the format to which you wish to export.  The base filename is a macro itself, pre-defined by Project Builder.  To insert it in your macro definition, click Insert macro to display the list of pre-defined macros, select the macro you want to add, and click OK.  It is inserted at the location of the cursor.

6	Click OK.

Now you can use your EXPORT macro to modify the Run action associated with files of the Graphics Executable type (in other words, displays).  As written, the macro exports files to .gifs.  When you want to export to bitmaps, simply edit the EXPORT macro and change the file extension to .bmp.


Adding a file to a project or subproject

  Next Step	  Related Topics

To add a file to a project or subproject:

1	In the Project Navigator, make sure the node for the project to which you’re adding the files is selected.

2	Click [image] in the toolbar or double-click the project node to display the Add Files to Project dialog.

3	If necessary, navigate to the directory containing the files you’d like to add.

4	Select the files, using your platform’s method for sequential or non-sequential file selection, as necessary.

5	Click Open to add the files to your project or subproject.

Note:  In Windows, you can only select files from one directory at a time. In addition, Windows imposes a limit on the number of files you can select in the file dialog at any one time.  The maximum number of files depends on the length of the filenames.  You can select approximately 250 files with long file names, and approximately 600 files with names limited to the 8.3 notation.

If you select too many files, nothing will be added to your project.  Click [image] to display the file dialog, add fewer files, and repeat as necessary.


Defining a connect string

  Next Step	  Related Topics

To define a connect string:

1	Select the Connections node in the Project Navigator and choose New Connection from the pop-up menu to display the New Connection dialog.

2	Type a title in the Title text box.  The title provides the label for the connect string in the Project Navigator.

3	Type a username, password, and connect string in the corresponding text boxes.  Syntax generally takes the form:

username/password@network_protocol:network_node:source_name

Note that if you are connecting to an ODBC datasource, the syntax is:

username/password@ODBC:datasource[:dbname]

If dbname is not specified, the current datasource for the ODBC connection is used.

4	(Optional) Add comments in the Comment text field.

5	Click OK to accept the dialog and add the connection to your list of possible connections.

Warning:  Be aware when considering project security that a password stored in a project connection can be accessed by exporting the project and examining the resulting export file with a text editor.


Assigning a connect string to a project or project item

  Next Step	  Related Topics

To assign a connect string to a project or project item:

1	In the Project Navigator, expand the Connections node.  Select the connection you want to associate with the project or project item.

2	Drag and drop the connection on the project or project item.

The new connect string is inserted into the appropriate actions for all items in the project (if you assigned it to a project) or the project item.

Alternatively, you can select a project or project item, select Tools [image] Property Palette, and click the Name field under the Connection heading.  A drop-down list of currently defined connections is displayed; select the one you want to apply to the project/project item.


Editing a type in your user or global registry

  Next Step	  Related Topics

To edit a type in your user or global registry:

1	In the Project Navigator, choose the node for the type you’d like to edit.

2	Choose Property Palette from the pop-up menu to display the Property Palette.

3	Edit the properties as desired.  The exact method depends on the specific property being edited.  You may be presented with any one of the following:

•	A text field, displayed when the current property can be set by entering a text value.  For properties that require longer text values, there is an iconic button next to the text field that invokes a modal editor or the appropriate dialog.

•	A poplist, displayed for properties that are either True/False, or that have a fixed set of valid values.

•	A . . . button, displayed when the current property requires more complex values.  Selecting the button invokes a dialog where you enter the required information.


Editing an item's properties

  Related Topics

To edit an item’s properties:

1	In the Project Navigator, choose the node for the item you’d like to edit.

2	Choose Property Palette from the pop-up menu to display the Property Palette.

3	Edit the item as desired.  The exact method depends on the specific property being edited.  You may be presented with any one of the following:

•	A text field, displayed when the current property can be set by entering a text value.  For properties that require longer text values, there is an iconic button next to the text field that invokes a modal editor or the appropriate dialog.

•	A poplist, displayed for properties that are either True/False, or that have a fixed set of valid values.

•	A . . . button, displayed when the current property requires more complex values.  Selecting the button invokes a dialog where you enter the required information.


Editing an action

  Next Step	  Related Topics

To edit an action:

1	In the Project Navigator, choose the node for the item or type modified by the action you want to edit.

2	Choose Property Palette from the pop-up menu to display the Property Palette.

3	If necessary, expand the Actions node, then click to position the cursor in the text field for the action you want to edit and make the desired changes.  You can edit the action directly in the text field, or click . . . to invoke the Edit Action dialog, where you can make more extensive changes. Note

Note:  If you edit an action on a type in the user registry, all items of that type that reference the user registry inherit the new action.  If you add an action to an item, the action applies to that item, unless that item is a project or subproject.  Then the action applies to all the items in the project, assuming they  are the same type as that for which the action is defined.


Modifying an action using a macro

  Example	  Next Step	  Related Topics

To modify an action using a macro:

1	In the Project Navigator, choose the node for the item or type modified by the action you want to edit.

2	Choose Property Palette from the pop-up menu to display the Property Palette.

3	If necessary, expand the Actions node, then click to position the cursor in the text field for the action you want to modify and make the desired changes.  If you know the macro you want to add, you can edit the action directly in the text field, remembering to enclose the macro name in braces.  Or, click the . . . button to invoke the Edit Action dialog.  Note

4	Click to position the cursor in the Action definition text box at the location in the action where the string to which the macro is equated would normally go, then click the Macro tab.  Select a macro from the list.

5	Click Insert into Command to add the macro to the command string.

6	Click OK to accept the modifications to the action and close the dialog.

Note:  If you use a macro to modify an action on a type in the user registry, all items of that type that reference that user registry inherit the modified action.  If you modify an action on an item in this fashion, the action applies only to that item, unless that item is a project or subproject.  Then the action applies to the project’s child items, assuming the action pertains to the items’ type.


Example:  Modifying an action using a macro

Suppose you are responsible for developing Graphics Builder displays for both internal and external distribution.  Internal distribution requires exporting the displays to bitmaps for inclusion in hardcopy reports, and external distribution requires exporting the displays to .gif files for display on your company’s web site.

You’ve created a macro containing Graphics Builder runtime options that enables you to specify the file format to which you wish to export your display.  Now you can use it to modify the Run action associated with displays.

To do so:

1	Ensure that you have a copy of the Graphics Executable type in your user registry.  Select it.  Note

2	Choose Property Palette from the pop-up menu to display the Property Palette.

3	Under Actions, select the Run action.  Click . . . to display the Edit Action dialog.

4	Position the cursor at the end of the action string, click the Macros tab, choose your EXPORT macro, and click Insert into Command.  The macro is inserted into your action definition at the location of the cursor.  Click OK again to accept the change and dismiss the Edit Action dialog.

Now your displays will automatically export to .gif files.  When you want to export to bitmaps, simply edit the EXPORT macro and change the file extension to .bmp.

If you do not want this action to apply to all displays, you can modify the Run actions associated with individual displays in your project instead.


Editing a macro

  Example	  Next Step	  Related Topics

To edit a macro:

1	In the Project Navigator, choose the node for the item or type modified by the macro you want to edit.

2	Choose Property Palette from the pop-up menu to display the Property Palette.

3	If necessary, expand the Macros node, then click to position the cursor in the text field for the macro you want to edit and make the desired changes.  You can edit the macro directly in the text field, or click . . . to invoke the Edit Macro dialog, where you can make more extensive changes.  Note

Note:  If you edit a macro that modifies an action on a type in the user registry, all items of that type that reference that user registry inherit the modified action.  If you modify an action on an item in this fashion, the action applies only to that item, unless that item is a project or subproject.  Then the action applies to the project’s child items, assuming the action pertains to the items’ type.


Example:  Editing a macro

Suppose that all your team members use a generic, uninteresting C compiler, and you want something a bit more sophisticated.  Unfortunately, the Object File type in your project’s Global Registry already has a Build action associated with it, and it doesn’t use your compiler.

Fortunately, the reference to the compiler is included in a macro.  All you have to do is edit the macro to change its definition so it refers to your compiler instead.

To do so:

1	Ensure that you have a copy of the Object File type in your user registry.  Select it.  Note

2	Choose Property Palette from the pop-up menu to display the Property Palette.

3	Under Macros, select the CC macro, then click . . . to display the Edit Macro dialog.

4	Change the macro definition as desired.

5	Click OK to accept the new definition and close the Edit Macro dialog.

If you do not want this change to apply to all files, you can modify the CC macro associated with individual files in your project instead.


Invoking an action

  Related Topics

To invoke an action:

1	In the Project Navigator, select the item you want to work on.  Then:

•	If the action you want to take is the default, double-click the node, or

•	Choose the appropriate action from the right-click menu.

If an action does not appear on the right-click menu:

1	Select Tools [image] Property Palette.

2	Double-click on the action to display the Edit Action dialog.

3	Click the Add to pop-up menu check box.


Renaming a project item

  Next Step	  Related Topics

To rename a project item:

1	In the Project Navigator, select the item you’d like to rename.

2	Click again on the item’s name.  It becomes an editable text field.  Change it as desired.

3	Click anywhere in the Project Navigator to remove focus from the text field.

Note:  Renaming a project file changes the name under which it is displayed, but does not change the underlying filename.  To do so, rename the file using the standard method for your operating system.


Removing an item from the Project Navigator

  Next Step	  Related Topics

To remove an item from the Project Navigator:

If your item is a file:

1	In the Project Navigator, select the entry or entries for the file(s) you’d like to remove from your project.  Use your platform’s method for sequential or non-sequential file selection, as necessary.  Note:  Removing the entry for a file from the Project Navigator does not delete the underlying file from your file system.

2	Click [image] on the toolbar.

Note:  Clicking [image] also removes the selected file entry or entries, but does not prompt for confirmation.  Clicking [image] restores the deleted entry or entries in either case.

If your item is a type or connection:

1	In the Project Navigator, select the node(s) for the type(s) or connection(s) you’d like to remove.  Use your platform’s method for sequential or non-sequential file selection, as necessary.

2	Click [image] to remove the selected entry or entries.

Note:  does not prompt for confirmation.  If necessary, click [image] to restore the deleted item.

Important:  Avoid deleting the pre-defined types UPDANY, UPDTEXT, UPDPROJ, and UPDLNK, even if you’ve created your own definitions for them.  While you are not prevented from deleting these types, Project Builder’s inheritance scheme and ability to create projects and subprojects will be severely impacted if they are removed.


Removing a project from the Project Navigator

  Related Topics

To close a project:

1	In the Project Navigator, select the project you’d like to close.

2	Click [image] on the toolbar.  An alert appears.

3	To delete the project from the Project Navigator, and delete the underlying project registry file, click Yes.  To only delete the project from the Project Navigator, but leave the underlying project registry file, click No.

Notes:

•	If another user has the project open, the alert does not appear.  While you can remove the project from your Project Navigator (by completing step 2), you cannot remove the underlying project registry file while it is in use.  If you really want to delete the project registry file, wait until the other user(s) closes the project.

•	Choosing File [image] Close Project removes the selected project(s) without deleting the project definition.

•	Removing a project deletes the project registry file, but does not delete the underlying files represented by the project.   For example, if a project including the form grant.fmb is deleted, grant.fmb is not deleted.  To delete GRANT.FMB, use your file system’s standard delete command.


Saving a project

To save a project:

  No explicit saves are necessary.  Project Builder saves your projects for you automatically.


Creating a dependency manually

  Next Step	  Related Topics

To create a dependency manually:

1	In the Project Navigator, select the dependent item; for example, an .fmb which is dependent upon a specific PL/SQL library.

2	Click [image] in the toolbar to display the Add Files to Project dialog.

3	If necessary, navigate to the directory or files on which the item is dependent.

4	Select the files, using your platform’s method for sequential or non-sequential file selection, as necessary.

5	Click Open to add the files to your project or subproject, below the item selected in the Project Navigator.

Notes:

•	In Windows, you can only select files from one directory at a time. In addition, Windows imposes a limit on the number of files you can select in the file dialog at any one time.  The maximum number of files depends on the length of the filenames.  You can select approximately 250 files with long file names, and approximately 600 files with names limited to the 8.3 notation.

If you select too many files, nothing will be added to your project.  Click [image] to display the file dialog, add fewer files, and repeat as necessary.

•	You cannot create a manual dependency if the item on which another item is dependent already appears in the Project Navigator.  The only way to establish a dependency is through the Add Files dialog.


Creating a subproject with the Project Wizard

  Restrictions	  Next Step	  Related Topics

To create a subproject with the Project Wizard:

1	Click [image] in the toolbar to display the Project Wizard.

2	Follow the steps to create a subproject.  Refer to the Project Wizard help for additional guidance.


Creating a subproject without the Project Wizard

  Restrictions	  Next Step	  Related Topics

To create a subproject without the Project Wizard:

1	In the Project Navigator, select the project under which you’d like to create a subproject.

2	Choose New Subproject from the pop-up menu to display the New Subproject dialog.  Select the directory in which you’d like to store your subproject definition.

3	A new, empty subproject is created.  Rename it in the Project Navigator, and add files as desired.


Restrictions:  Creating a subproject

You can only save subprojects to your file system.  You can’t save subprojects to a database.


Changing file order via dragging and dropping

  Next Step	  Related Topics

To change the file order in a project or subproject:

1	In the Project Navigator, select the node for the file you want to move.

2	Drag the node to the appropriate location and release.

The file is moved in the Project Navigator to the new location.

Note:  You cannot drag an item between projects.  You can, however, drag a file into a project’s subproject or copy or cut the item from one project and paste it into another.


Cut/Copy/Pasting an item in a project

  Next Step	  Related Topics

To cut an item in a project:

  Select the node for the item you want to cut. Click [image].  The item is removed from the project, but copied to the Clipboard for pasting elsewhere.

To copy an item in a project:

  Select the node for the item you want to copy.  Click [image].  The item is copied to the Clipboard without being removed from the project, and is available for pasting elsewhere.

To paste an item in a project:

  Select the project in which you want to paste the item.  Click [image].  The item is pasted in the appropriate location in the project.

Note:  Clicking Click [image] undoes each of the above actions.


Building selected files

  Next Step	  Related Topics

To build selected files:

1	In the Project Navigator, select all the files you’d like to build.  Use your platform’s method for sequential or non-sequential file selection, as necessary.

2	Click [image] in the toolbar.  Project Builder builds the files based on the action defined as Build From <type> for each of the selected file types.

A confirmation dialog is displayed when the build process ends.


Building changed files

  Next Step	  Related Topics

To build changed files:

1	In the Project Navigator, select the node containing the files you’d like build.

2	Click [image] in the toolbar.

Project Builder detects which files have been changed since the last build by comparing the timestamps of the targets with those of the input items, then builds the out-of-date files based on the action defined as Build From <type> for each of the selected file types.

A confirmation dialog is displayed when the build process ends.


Building a project

  Next Step	  Related Topics

To build a project:

1	In the Project Navigator, select the node for the project you’d like to build.

2	Choose Build All from the pop-up menu.  Project Builder forces a build of all files, based on the action defined as Build From <type> for each relevant file type in the project.

A confirmation dialog, which tells you how many items were built, is displayed when the build process ends.


Customizing the Deliver action

  Related Topics

To customize the Deliver action:

1	In the Project Navigator, select the project you want to deliver.

2	Choose Property Palette from the pop-up menu to display the Property Palette.

3	Under Macros, locate PACKFILE.

4	Click once in the field to the right, then click the . . . button to display the Edit Macro dialog.

5	Type the name of your package file in the Macro Definition text box; for example, pack.zip.

6	Click OK to accept the definition and dismiss the Edit Macro dialog.

When you run the Deliver action for the project (using the Delivery Wizard), the project will be packaged in the file you specified in the PACKFILE macro.


Delivering a project

  Related Topics

To deliver a project:

 Choose Tools [image] Delivery Wizard.  The Delivery Wizard creates a staging area for you, then copies or FTPs your completed project files to that location.  The Delivery Wizard can also create the necessary scripts so that your product is installable through the Oracle Installer.

Note:  The Delivery Wizard expands the functionality provided by the Deliver action.  However, if you still wish to run the Deliver action, the Delivery Wizard provides an option to do so.


Before you package your application, you must edit the PACKFILE macro to specify a package file name.


Changing views

  Related Topics

To change views:

  Choose View [image] Dependency View to view the dependency view, or choose View [image] Project View to view the project view.


Setting a default action for a type

  Related Topics

To set a default action for a type:

1	Select the type for which you want to set a default action, then select Tools [image] Module Type Wizard.

2	Click the Actions tab.

3	Select the action you want to make the default.

4	Click Make Default.

5	Click Finish.

The action you selected will be invoked whenever the user double-clicks a file of this type.  In addition, the action will appear at the top of the right-click menu for items of this type.

Note:  If you set an action (default or otherwise) on a type, all items of that type which have not overridden the action inherit that action.


Overriding an inherited action

  Next Step	  Related Topics

To override an inherited action:

1	In the Project Navigator, select the project item whose action you want to override.

2	Choose Property Palette from the pop-up menu to display the Property Palette.

3	If necessary, expand the Actions node, then click to position the cursor in the text field for the action you want to override and make the desired changes.  You can edit the action directly in the text field, or click the . . . button to invoke the Edit Action dialog, where you can make more extensive changes.

Note:  The Inherit icon [image] changes to [image] to indicate that an inherited action is being overridden.


Inheriting an action

  Next Step	  Related Topics

To inherit an action:

1	In the Project Navigator, select the item you want to have inherit an action.

2	Choose Property Palette form the pop-up menu to display the Property Palette,

3	If necessary, expand the Actions node, select the action, then click [image] to inherit the action.

Note:  If you are specifying that the item re-inherit the action, note how the Override icon [image] has changed to [image] to indicated that the action is being inherited.


Adding a tool to the Launcher

  Next Step	  Related Topics

To add a tool to the Launcher:

1	Choose Tools [image] Preferences to display the Preferences dialog.

2	Click the Launcher tab to display Launcher preferences.

3	On the Launcher page, click Add to display the Add Launcher Entry dialog.  In this dialog, provide the following information:

•	Click the Item radio button to specify a single item instead of a group.

•	Click to position the cursor in the Command text box and type the launch string for the tool.  If necessary, click Insert Application to find the executable file for your tool, or Insert Connection to add a connection.  Note that launch strings have the same format as action definitions.  In addition, only built-in macros and environment variable macros are supported.

•	Type a label in the Icon Label text box and (optionally) provide a description in the Hint Text text box.

•	(Optional)  Choose an icon to represent the tool.  If necessary, click the From File checkbox, then click Browse and use the Open dialog to find the icon file you want to use.

•	Click OK to close the Add Launcher Entry dialog.

4	Click OK to accept the Preferences dialog and add the tool to the Launcher.


Adding a group to the Launcher

  Next Step	  Related Topics

To add a group to the Launcher:

1	Choose Tools [image] Preferences to display the Preferences dialog.

2	Click the Launcher tab to display Launcher preferences.

3	On the Launcher page, click Add to display the Add Launcher Entry dialog.  In this dialog, provide the following information:

•	Click the Group radio button to specify a group item, instead of a single item.

•	Type a label in the Icon Label text box and (optionally) provide a description in the Hint Text text box.

•	(Optional)  Choose an icon to represent the group.  If necessary, click the From File checkbox, then click Browse and use the Open dialog to find the icon file you want to use.

•	Click OK to close the Add Launcher Entry dialog.

4	If the tools you want to include in the new group are already on the Launcher, add them by dragging and dropping them on the group.  If the tools you want to include in the new group have not yet been added to the Launcher, select the group node in the Launcher Navigator, then add the tools as usual.


Changing the Launcher's docking location

  Next Step	  Related Topics

To change the Launcher’s docking location:

1	Choose Tools [image] Preferences to display the Preferences dialog.

2	Click the Launcher tab to display Launcher preferences.

3	Under Layout, click the radio button corresponding to where you want to position the Launcher:  Floating will create a modeless Launcher that you can move about the display.  Docked at Top will position the Launcher horizontally across the top of the Project Navigator.  Docked at Left will position the Launcher vertically along the left side of the Project Navigator.

4	Click OK to dismiss the Preferences dialog and accept the changes.


Editing a tool entry on the Launcher

  Next Step	  Related Topics

To edit a tool entry on the Launcher:

1	Choose Tools [image] Preferences to display the Preferences dialog.

2	Click the Launcher tab to display Launcher preferences.

3	On the Launcher page, select the tool whose entry you’d like to edit on the Launcher Navigator, then click Edit to display the Edit Launcher Entry dialog.

4	Edit as desired, then click OK to close the Edit Launcher Entry dialog.

5	Click OK to dismiss the Preferences dialog and accept the edits to the tool entry.


Moving a tool or group on the Launcher

  Next Step	  Related Topics

To move a tool or group on the Launcher:

1	Choose Tools [image] Preferences to display the Preferences dialog.

2	Click the Launcher tab to display Launcher preferences.

3	On the Launcher Navigator, click the tool or group you’d like to move, drag it to its new location, and drop it.

4	Click OK to dismiss the Preferences dialog and accept the changes.


Hiding a tool or group on the Launcher

  Related Topics

To hide a tool or group on the Launcher:

1	Choose Tools [image] Preferences to display the Preferences dialog.

2	Click the Launcher tab to display Launcher preferences.

3	On the Launcher page, select the tool or group you’d like to hide, then click Edit to display the Edit Launcher Entry dialog.

4	Select the Hidden check box.  Click OK to dismiss the dialog.

5	Click OK to dismiss the Preferences dialog and accept the change.  Note that the tool no longer appears on the Launcher.

Hidden tools and groups are not permanently removed from the Launcher.  To display them on the Launcher again, simply edit the appropriate entry and clear the Hidden checkbox.


Deleting a tool from the Launcher

  Related Topics

To delete a tool from the Launcher:

1	Choose Tools [image] Preferences to display the Preferences dialog.

2	Click the Launcher tab to display Launcher preferences.

3	On the Launcher page, select the tool you’d like to remove, then click Remove.  An alert appears, asking for confirmation.  Select Yes to remove the entry.

Tip:  If you change your mind, you have one more chance.  Cancel the Preferences dialog, and your Launcher entry will be saved.


Deleting a group from the Launcher

  Related Topics

To delete a group from the Launcher:

1	Choose Tools [image] Preferences to display the Preferences dialog.

2	Click the Launcher tab to display Launcher preferences.

3	On the Launcher page, select the group you’d like to remove, then click Remove.  An alert appears, asking for confirmation.  Select Yes to remove the group and all tools in it.  If you only want to remove the group, drag the tools out of the group and drop them elsewhere on the Launcher Navigator before deleting the group.

Tip:  If you change your mind, you have one more chance.  Cancel the Preferences dialog, and your Launcher entry will be saved.


Importing a project

  Next Step	  Related Topics

To import a project:

1	Choose File [image] Import Project to display the Import Options dialog.

2	In the dialog, specify the following:

•	To import all items in the project, click the Import Items check box.  To import all types associated with the project, click the Import Types checkbox.

•	If you want like-named files from the imported project to overwrite already-existing files, click Overwrite existing items.  If you want like-named types from the imported project to override already-existing types, click Override existing types.

•	Note that Import Into Project is selected.  To import your project as a stand-alone project, ensure that Projects is selected.

3	Click Import.  The Select File to Import dialog is displayed.

4	Navigate to the project you wish to import as you normally would using a file dialog for you system.  Select the file and click Open.

5	The Select File to Import dialog closes and your project is imported.  The Import Options dialog remains open to enable you to import multiple files, or combinations of item and type information, in one operation.  When you have finished importing, click Close.


Importing a project as a subproject

  Next Step	  Related Topics

To import a project as a subproject:

1	Choose File [image] Import Project to display the Import Options dialog.

2	In the dialog, specify the following:

•	To import all items in the project, click the Import Items check box.  To import all types associated with the project, click the Import Types checkbox.

•	If you want like-named files from the imported project to overwrite already-existing files, click Overwrite existing items.  If you want like-named types from the imported project to override already-existing types, click Override existing types.

•	Note that Import Into Project is selected.  Click the drop-down list to the right to see a list of all projects and subprojects currently open.  Select the project that you want to contain your new subproject.

3	Click Import.  The Select File to Import dialog is displayed.

4	Navigate to the project you wish to import as you normally would using a file dialog for you system.  Select the file and click Open.

5	The Select File to Import dialog closes and your project is imported.  The Import Options dialog remains open to enable you to import multiple files, or combinations of item and type information, in one operation.  When you have finished importing, click Close.


Importing type information

  Next Step	  Related Topics

To import type information:

1	Choose File [image] Import Project to display the Import Options dialog.

2	In the dialog, specify the following:

•	To import all types associated with the project, click the Import Types checkbox.

•	If you want like-named types from the imported project to override already-existing types, click Override existing types.

3	Click Import.  The Select File to Import dialog is displayed.

4	Navigate to the project you wish to import as you normally would using a file dialog for you system.  Select the file and click Open.

5	The Select File to Import dialog closes and the type information stored with your project registry file is imported.  The Import Options dialog remains open to enable you to import multiple files, or combinations of item and type information, in one operation.  When you have finished importing, click Close.


Exporting a project

  Related Topics

To export a project:

1	Choose File [image] Export Project to display the Export Options dialog.

2	Click Export project and all descendants from the Export Items radio list.

3	Choose the project you want to export from the drop-down list.

4	Select the types you want to export from the Export Types list.  If you want to export all type information, click Select All Types.

5	Click Export to display the Select File to Export dialog.  Select the file to which you’d like to export the project from the file list, or type a  name in the File name text box.

6	Click Save to export the project.

7	The Select File to Export dialog closes and your project is exported.  The Export Options dialog remains open to enable you to export multiple files, or combinations of item and type information, in one operation.  When you have finished exporting, click Close.


Exporting part of a project

  Related Topics

To export part of a project:

1	Ensure that the project items you want to export are selected in the Project Navigator.  Choose File [image] Export Project to display the Import Options dialog.

2	To export only the selected items, click the Import select item(s) only check box.  To export selected items and their descendants, click Export selected item(s) and all descendants checkbox.

3	Select the types you want to export from the Export Types list.  If you want to export all type information, click Select All Types.

4	Click Export to display the Select File to Export dialog.  Select the file to which you’d like to export the project from the file list, or type a  name in the File name text box.

5	Click Save to export the project.

6	The Select File to Export dialog closes and your project is exported.  The Export Options dialog remains open to enable you to export multiple files, or combinations of item and type information, in one operation.  When you have finished exporting, click Close.


Exporting type information

  Related Topics

To export all or part of a registry:

1	Choose File [image] Export Project to display the Export Options dialog.

2	Ensure that Don’t export any items is selected.

3	Select the types you want to export from the Export Types list.  If you want to export all type information, click Select All Types.

4	Click Export to display the Select File to Export dialog.  Select the file to which you’d like to export the project from the file list, or type a  name in the File name text box.

5	Click Save to export the project.

6	The Select File to Export dialog closes and your project is exported.  The Export Options dialog remains open to enable you to export multiple files, or combinations of item and type information, in one operation.  When you have finished exporting, click Close.


Generating and printing a project report

  Next Step	  Related Topics

To generate and print a project report:

1	In the Project Navigator, select the project for which you wish to print a report.

2	Select Project [image] Print Project Info to display the Print Project Reports dialog.

3	Select the project information you’d like to include in the report.

4	Select Print.  The Print dialog for your system appears.  Fill it out as necessary and accept it to print the report.


Setting project passwords

  Related Topics

To set a password for a project file:

1	In the Project Navigator, choose the node for the project you want to protect.

2	Choose File [image] Administration [image] Set Project Password to display the Set Project Password dialog.

3	Enter the password in the New password field.  The password may be of any length and may contain any characters.  The password does not expire.

4	Enter the password again in the Confirm password field to verify the spelling.

5	Click OK.

When you or another user attempts to open this project, a dialog prompts you to enter the password.


Changing project passwords

  Related Topics

To change a password for a project:

1	In the Project Navigator, choose the node for the project whose password you want to change.

2	Choose File [image] Administration [image] Set Project Password to display the Set Project Password dialog.

3	Enter the current password in the Old password field.

4	Enter the new password in the New password field. The password may be of any length and may contain any characters.  The password does not expire.

5	Enter the new password again in the Confirm password field to verify the spelling.

6	Click OK.

When you or another user attempts to open this project, a dialog prompts you to enter the password.


Removing a password from a project
Removing passwords from a project

  Related Topics

To remove a password from a project:

1	In the Project Navigator, choose the node for the project whose password you want to remove.

2	Choose File [image] Administration [image] Set Project Password to display the Set Project Password dialog.

3	Enter the current password in the Old password field.

4	Leave the New password and Confirm password fields blank.

5	Click OK.


Controlling project registry fragmentation

  Related Topics

To control how often Project Builder suggests de-fragmentation for project registry files:

1	In the Project Navigator, choose Tools [image] Preferences.

2	Choose the Projects tab.

3	In the De-fragment project registries when number percent fragmented field, use the spin controls to select a number.  The higher the number, the longer it takes for Project Builder to suggest de-fragmentation for a project registry.  A value of 100 prevents Project Builder from ever displaying the de-fragment alert (which, in effect, turns off the de-fragmenting feature).


Building selected items in batch mode

  Related Topics

To build selected items in batch mode:

1	Select Tools [image] Preferences, then select the Navigator tab.

2	Click the Enable batch output checkbox.

3	In the Output file name field, enter the name of the file to which output from the Build command, such as compiler errrors, should be logged.  If you want to append the output to an existing file, click the Append to file checkbox; to overwrite the contents of the log file, leave Append to file unchecked.

4	Click OK to confirm your settings and close the Preferences dialog.

5	In the Project Navigator, select all the files you’d like to build.  Use your platform’s method for sequential or non-sequential file selection, as necessary.

6	Click [image] in the toolbar.  Project Builder builds the files based on the action defined as Build From <type> for each of the selected file types.

No confirmation dialog is displayed when the build process ends.  Check the log file to review the output from the Build action.


Building a project in batch mode

  Related Topics

To build a project in batch mode:

1	Select Tools [image] Preferences, then select the Navigator tab.

2	Click the Enable batch output checkbox.

3	In the Output file name field, enter the name of the file to which output from the Build command, such as compiler errrors, should be logged.  If you want to append the output to an existing file, click the Append to file checkbox; to overwrite the contents of the log file, leave Append to file unchecked.

4	Click OK to confirm your settings and close the Preferences dialog.

5	In the Project Navigator, select the node of the project you’d like to build.

6	Choose Build All from the pop-up menu.  Project Builder forces a build of all files, based on the action defined as Build From <type> for each relevant file type in the project.

No confirmation dialog is displayed when the build process ends. Check the log file to review the output from the Build action.


Building changed items in batch mode

  Related Topics

To build changed items in batch mode:

1	Select Tools [image] Preferences, then select the Navigator tab.

2	Click the Enable batch output checkbox.

3	In the Output file name field, enter the name of the file to which output from the Build command, such as compiler errrors, should be logged.  If you want to append the output to an existing file, click the Append to file checkbox; to overwrite the contents of the log file, leave Append to file unchecked.

4	Click OK to confirm your settings and close the Preferences dialog.

5	In the Project Navigator, select the node containing the files you’d like build.

6	Click [image] in the toolbar.

Project Builder detects which files have been changed since the last build by comparing the timestamps of the targets with those of the input items, then builds the out-of-date files based on the action defined as Build From <type> for each of the selected file types.

No confirmation dialog is displayed when the build process ends. Check the log file to review the output from the Build action.


Removing filters

  Related Topics

To remove a filter:

1	Select Navigator [image] Manage Filters.

2	In the Available filters pane, select the filter you want to remove.

3	Click Remove Filter.

The filter is removed from the Available filters pane.


Applying filters

  Related Topics

To apply a filter:

1	Select Navigator [image] Filtered Views.

A list of currently defined filters appears.

2	Select the filter you want to apply.  (To show the full Project Navigator, with no filters applied, select <No filter>.)

Only the projects/project items that satisfy the filter criteria now appear in the Navigator.  If necessary, project nodes are expanded to reveal project items that satisfy the filter’s criteria.

The name of the currently applied filter always appears in the lower left corner of the Project Navigator’s Status area.


Creating filters

  Example	  Related Topics

To create a filter:

1	Select Navigator [image] Manage Filters.

2	Click Add Filter.

The Add Filter dialog box is displayed.

3	Enter a name for the filter in the Filter name field.

4	Use the tabs (General, File, Project, Delivery, Connection, and Macros) to specify values for the project or item properties you want the filter to locate. All properties are joined by AND; no provisions are made for OR conditions.  As you add criteria, the filter definition is recorded in the Current filter criteria field.

To remove criteria from your filter, select the property and its value in the Current filter criteria field and click Remove.

5	When you finish creating your filter, click OK.


Editing filters

  Related Topics

To edit a filter:

1	Select Navigator [image] Manage Filters.

2	In the Available filters pane, select the filter you want to edit.

3	Click Edit Filter.

The Edit Filter dialog box is displayed.

4	Use the tabs (General, File, Project, Delivery, Connection, and Macros) to add additional criteria to your filter.  All properties are joined with AND; no provisions are made for OR conditions.  As you add criteria, the filter definition is recorded in the Current filter criteria field.

To remove criteria from your filter, select the property and its value in the Current filter criteria field and click Remove.

5	When you finish editing your filter, click OK.


Examples:  Creating filters

These examples assume you have selected Navigator [image] Manage Filters, then clicked Add Filter to display the Add Filter dialog.

Example 1:  To create a filter that displays all the .fmb files:

1	Select Project

2	In the Add Filter dialog, enter Form Filter in the Filter name field.

3	Select FMB --  Form Builder document from the Type list.

4	Click OK.

Example 2:  To create a filter that displays all implied or explicit items that have not yet been created:

1	In the Add Filter dialog, enter Placeholders in the Filter name field.

2	On the File tab, make sure Include existing files with these attributes is unchecked .  This causes the filter to retrieve only files that have yet to be created, as opposed to those that already exist.

3	On the Project tab, click Both in the Implied Items radio group.

4	Click OK.


Testing an action

  Related Topics

To test an action in Preview Actions mode:

1	Select the Project menu and click the Preview Actions Mode menu item.

2	Run the action as you would normally.

The action appears in a pop-up, with parameter values supplied and macros fully expanded.  (For security purposes, all passwords appear as asterisks.)  The action is not actually executed; rather, Preview Actions mode allows you to see which action will be performed when you exit Preview Actions mode.

To exit Preview Actions mode, select the Project menu and de-select the Preview Actions Mode menu item.


An item that you create, as opposed to one that Project Builder creates for you.


Obtaining the master Launcher definition file

To obtain a copy of the master Launcher definition file:

1	Select Tools [image] Preferences.

2	Click the Launcher tab.

3	Click Defaults.

A confirmation dialog is displayed.

If you click Yes, the master Launcher definition file, which resides in the product installation area (usually ORACLE_HOME/PJ60), will be copied to your own Launcher definition file.  If you’ve made changes to your Launcher definition file that affect items also present in the master (for example, the command used to invoke Form Builder), those changes will be lost.  However, any items you’ve added to your Launcher file that do not appear in the master will remain intact.


Adding a directory to a project or subproject

To add a directory to a project or subproject:

1	In the Project Navigator, make sure the node for the project to which you’re adding the files is selected.

2	Select Project [image] Add Directory to Project.

3	Navigate to the directory containing the files you’d like to add.

4	Click OK to add the directory to your project or subproject.

Not only is the directory added to your project, but if the directory contains subdirectories, those directories are added as well.  For example, suppose you select the project Tools in step 1.  You then add the directory Hammer, which has a subproject called Awl.  When you click OK in step 4, Hammer is added as a subproject to Tools; Awl is added as a subproject beneath Hammer.


Displaying project dependencies

  Related Topics

To display the dependencies in your project:

Select Navigator [image] Dependency View.

Modules are now arranged in the Project Navigator in the order in which they depend on each other. Project nodes are at the highest point in the hierarchy, followed by target nodes, followed by buildable components of those targets (input items).


Creating read-only projects

To create a read only project:

1	Create a project registry file, either using the Project Wizard or the New Project dialog.

2	Change the read/write privileges for the name.upd file using the standard method for your file system.

The next time you invoke Project Wizard, the project registry file will be flagged with the read-only icon, [image].  Note that a project’s read-only status pertains to the project items within the project, not to the files represented by the project items.  For example, even if the form dev2.fmb belongs to a read-only project, the form itself can still be modified in Form Builder.  What can’t be modified are any properties associated with the dev2.fmb project item; for example, actions or macros associated with the item, the item’s delivery status, and so on.  In addition, project items cannot be added to or deleted from a read-only project.


Renaming a connect string

  Related Topics

To rename a connect string:

1	Under the Connections node in the Project Navigator, select the connect string you want to rename.

2	Click the connect string once.

3	Type the new name directly over the old name.


About projects

  Related Topics

Projects are collections of pointers to all the files you consider part of your application, or otherwise want to group together conceptually.  They constitute the basic data structures created by Project Builder.  Within projects, you can define the editors, compilers, and other tools you use to work with project files.

Project files are shareable and can be ported across platforms.  To do so, export them.


About project registries

  Related Topics

A project registry is a file that contains a project.  There is one project registry for each project.  As soon as you create a project registry, either with the Project Wizard or without, certain entities are automatically added to the project registry for your convenience.  These entities include the pre-defined actions, the built-in and pre-defined macros, and the Global Registry.


About subprojects

  Related Topics

Subprojects are projects contained within other project files, rather than being stored in their own files.

Subprojects are useful when you want to further group all items relating to a specific part of an application; for example, you can create a subproject containing the charts, menus, libraries, and documents that go to make up a large form.


About user registries

  Related Topics

User registries store configuration information on a per-user basis.  Each user registry inherits type information from the Global Registry.  You can also define your own types in your user registry, as well as override aspects of type definitions inherited from the Global Registry.  A user registry also stores environment and preference information such as preferred connect strings, UI settings, and certain general project information.


About types

  Related Topics

Types are descriptions of file types such as displays or text files, to which actions have been added.  In other words, each type definition can be modified by an action that would then apply to all files of that type in the project.  For example, you can define the Edit action for text files to always invoke your favorite text editor.

Each type description applies to a single file type, with the exception of three Project Builder-defined types which provide generic definitions for text files (Text type), the files in which project information is stored (Project type), and links to files within projects (Project Link type).  There is also one Project Builder-defined type that provides a generic definition that can apply to any file (the Any Type type).  To view these type definitions, go to the Global Registry in the Project Navigator, select one of the types, and either choose Edit Type or Property Palette from the pop-up menu.

When defining a new type, you don’t have to provide all the details yourself.  You can ask Project Builder to deduce information from an example file you provide.


About actions

  Related Topics

Actions are command strings that apply to files of given types.  An action is not restricted to a single file type; for example, if the action Build From <type> is defined for both forms and object files, selecting a project and choosing Build Selection from the menu compiles all .fmb and all source files using the appropriate tools.  Actions can either be defined against types in a registry, against the projects or subprojects themselves, or against individual files in the projects or subprojects.

There are two types of actions:

•	Pre-defined actions, which are actions shipped with Project Builder and which are automatically available via either menu items or tools on the toolbar.  When a pre-defined action is defined for a supported file type, the action is invoked for any selected item of that type when you call the action from Project Builder.  Note:  Pre-defined actions should only be edited by the project administrator.

•	User-defined actions, which are custom actions you define and which are made available via menu choices on the pop-up menus associated with the types of objects you apply the actions to.  Such actions may apply to any single file type, or to all file types.

In addition, Project Builder provides certain actions which are pre-defined but capable of working across projects and files, adapting themselves to varied file types.  Such actions, called global actions, generally have menu choices available on the main menu.  In addition, they may require input items, or source files that are acted upon to produce target files, such as executables or generated forms.  Global actions can detect if targets are up-to-date, in which case the actions are not necessary and are not performed.  Global actions include Build From <type> (provided via the menu choices Build Selection, Build Incremental, and Build All) and Deliver.


About default actions

  Related Topics

You can define a default action for each type defined to Project Builder.  When a user double-clicks an item of that type, the default action is invoked.

If you do not explicitly define a default action for a type, by default the Edit action is invoked when a user double-clicks an item.  If no Edit action exists, the Open action is invoked as the default action.


About using actions

  Related Topics

To use an action, go to the Project Navigator and select the item(s) you want to act on.  Then either display the right-click menu and choose the action, or choose the action from among the main menu selections.

When you define an action, remember that it is not available for use unless you specify that it appear on the right-click menu.  In addition, the global actions provided by Project Builder, such as Build, Deliver, and the source control actions, have menu choices available on the Project Builder main menu.

Depending on your platform, the action itself can be executed directly, or from within a shell or command interpreter.  For more information, see the section in the help entitled Platform Information.


About macros

  Related Topics

Macros are type-specific variables that may be used to customize and extend actions.  A macro may be either a constant or a simple expression (which, in turn, may contain other constants and/or expressions).

Macros are useful in that they add great flexibility in issuing command options, and they enable you to modify sets of commands by changing one property definition.

There are three types of macros:

•	Built-in, which are macros shipped with Project Builder.  They have one-character names and cannot be edited.  For more information, see Built-in macros.

•	Pre-defined, which are provided by Project Builder for your convenience but are fully customizable.  Such macros include the ORACONNECT macro, for use in actions that connect to a datasource.

•	User-defined, which are custom macros you define that may be used to modify both pre-defined and user-defined actions.  When you define a macro it can be used to modify as many different actions as applicable.  You don’t need to define a new macro for each action.


About the ORACONNECT macro

  Related Topics

The ORACONNECT macro is a pre-defined macro constructed of nested conditional macros which evaluate to the fields in a SQL*Net connection string.  It is provided by Project Builder for use in actions that connect to a datasource.

Syntax  {Username ? {Username}}{Password ? /{Password}}{Database ? @{Database}}

where

{Username ? {Username}}	Username, if defined.
{Password ? /{Password}}	/Password, if defined.
{Database ? @{Database}}	@Datasource, if defined.  Note:  If you are connecting to an ODBC datasource, the syntax is: @ODBC:datasource[:dbname] If dbname is not specified, the current datasource for the ODBC connection is used.
All values are taken from the properties Username, Password, and Database as displayed in the Property Palette.  You can assign these values by creating a connection item and dragging it onto the desired project item or by entering the values directly into the Property Palette.  These values follow the standard inheritance rules; they can be assigned at the global type level and overridden at any point below in the hierarchy.

For example, you can define a standard connect string for a project by setting the Username, Password, and Database by creating a connection item and dragging it onto the project, but if you create another set of test data on a different database, you can either override that connection item with the new one, or manually edit the values for Username, Password, and Database at the necessary level (either the project itself, or individual items in the project).

All macro values are also optional.  If a value is not defined, the corresponding nested macro evaluates to empty and is ignored.


About using macros

  Related Topics

In simplest terms, a macro can be thought of as a variable.  You can create such a variable and define a value for it prior to working with your project files.  During the course of working with your project files, you can reference the macro from an action.  The macro reference is replaced by the macro’s value, and the outcome of the action has been quickly and easily modified.

For example, if you use the same options when invoking a commonly-used tool, you can define a macro in the Add Macro dialog named options and set it equal to the string containing the command line options you use.  Next, you define an action that invokes your tool, and reference the macro from that action.  The next time you invoke the tool using the action, all of your options will already be set.

You can also redefine previously-created macros.  However, you cannot redefine the built-in macros supplied by Project Builder.


About deleting items

  Related Topics

When you delete an entry, note that you are not deleting a file from the filesystem; instead you are simply deleting the pointer to that file from within your project.  The contents of any files or directories remain unchanged.

In addition, when you delete an entry, you also delete the entries of all children of that entry.  For example, if you delete the entry for an .fmb, you also delete the entry for an .fmt.  Not only that, but you delete any entries for implied items, as well.  For example, if your project contains an .fmb but the corresponding .fmx has not yet been generated, if you delete the entry for the .fmb you will also delete the entry for the implied .fmx.


About properties

  Related Topics

A property is a characteristic of an object that determines the behavior or appearance of that object.


About dependencies

  Related Topics

Project dependencies refer to the order in which project entries depend on each other, with project nodes at the highest point in the hierarchy, followed by target nodes, which are followed by buildable components (input items) of those targets.  For example, an executable form depends on and will be followed by an .fmb file, which may depend on and be followed by a library used for a user exit procedure, and so on.

Project Builder automatically detects many dependencies based on the Deliverable Type property and the Build From <type> action of interdependent types.  For example, the type Form Document (.fmb files) has a Deliverable Type of Form Executable (.fmx files).  Therefore, Project Builder can deduce that any .fmx files in your project are dependent on the associated .fmb files, and if those .fmb files change, the .fmx files must be rebuilt based on the Build From <type> action defined for the Forms Executable (.fmx) type.  If there is no .fmx file already in your project, Project Builder will show it as an item which is implied by the existence of the .fmb.

Certain target types such as .obj files can have several different sources, or input types.  Such targets can be associated with multiple Build From <type> actions.  (For an example, display the properties of the global Object type in the Property Palette and examine the Build From <type> actions associated with it.)

If you select a project and choose Project [image] Build Incremental, Project Builder compares the times stamps of the target items (the .fmx files in the above example) with those of the source, or input items (the .fmb files in the above example) and rebuilds only the out-of-date files.


About creating dependencies manually

  Related Topics

Some types of dependencies cannot be detected by Project Builder; for example, when a display depends on a particular PL/SQL library.  To ensure such a dependency is taken into account in your project, you can set it manually.  To do so, add the dependency to your project below the item dependent upon it.


About inheritance

  Related Topics

Inheritance refers to the process whereby a project item obtains actions, macros, or properties from an ancestor node in the dependency tree.

•	The inheritance scheme for actions depends on a project item’s type.

•	Because macros function irrespective of type, a project item has access to all the macros defined for its subproject, project, and the root project.  In addition, a project item can access all the macros defined for the item’s type in the user or global registries, as can all items of that type.  If two macros by the same name exist at two different levels, the macro definition at the lowest level (closest to the project item) is used.

•	Both project items and types can inherit properties.  Project item properties can be inherited from an item’s corresponding type definition in the user or Global registries or, if they don’t exist, from the meta-type or Any type.  All project item properties can be inherited except Title, Type, Filename, and properties under the Delivery node.

Just like project files, types can inherit from farther up the dependency tree.  For example, if the .fmb type does not have a property defined, but the binary meta-type does, the .fmb type inherits that property from the meta-type because an .fmb is classified as a binary file.  All type properties can be inherited except Title, Filename format, File contents, and Deliverable type.

Whether or not a specific property has been inherited is shown in the Property Palette by the following icons:

•	The Inherit icon [image] indicates that a property is being inherited.

•	The Override icon [image] indicates that an inherited property is being overridden.

•	The Local icon [image] indicates that the property was defined in the Property Palette (as opposed to being inherited).

•	The Default icon [image] indicates that the property is not yet set.


About inheritance for actions

  Related Topics

At the bottom of the project tree is the item itself.  If an action or property is defined for an item, the definition pertains only to that item; no other items are affected.  From then on, the most important factor in determining how an item inherits actions is the item’s type.  For example, if the item does not have an action called STOPGEN defined, but the subproject in which the item resides does, the item inherits that action as long as STOPGEN is defined for the item’s type.  So, if STOPGEN is defined for executables and the item is a text file, the item does not inherit STOPGEN.

From the subproject, inheritance moves up to the project level, from which the item inherits all actions pertaining to the item’s type [image] assuming they don’t conflict with definitions at a lower (subproject or item) level.  Continuing up the dependency tree, the item inherits actions as follows:

•	From the top-level Projects node, then. . .

•	From the type definition in the user registry, if such a type exists; then. . .

•	From the type definition in the Global Registry.  If a type appears in both the Global Registry and your user registry, project items inherit actions from the type in the user registry.  Then. . .

•	From the item’s meta-type (text, binary, or non-file)

Finally, the item inherits actions from the Any type, as long as they don’t conflict with definitions at any of the lower levels.  That is, if the PUT action is defined on the Any type, but there is also a PUT action defined for .fmx files at the root project level, all .fmx files in any project use the definition at the root project level because it is lower in the tree.


An individual member of a project or subproject.


Any entity for which an action can be defined:  item, subproject, project, or type.


About meta-types

  Related Topics

Meta-types allow you to define actions that affect many types, and thus files, at once.  For example, both the tar and zip commands process text files differently from binary files.  By defining these actions at the meta-type level, all text and binary files inherit the action appropriate for their types.

All project items belong to one of three meta-types:  text, binary, or non-file:

•	A text item is any item that can be edited with an editor, such as vi or WordPad.  The internal name is UPDTEXT.  As soon as you create a file with an extension of .txt, it automatically belongs to the text meta-type.

•	A binary item is any file that can’t be read with a text editor, such as an executable or a library.  The internal name is UPDBINARY.

•	A non-file is an item that is not an actual file, such as a database table or a URL.  Because non-files don’t have time stamps, Project Builder always Builds the item when you run Build Incremental action against it.  The internal name is UPDNONFILE.

When you define a new type in the Module Type Wizard, you are asked to choose which meta-type the new type will inherit from.

Meta-types reside in the Global Registry. To see the properties for a meta-type, double click the meta-type’s node in the Global Registry, then select the Module Type Wizard.  The properties are fully customizable.


About implied items

  Related Topics

Implied items are project items, usually the result of automatic generation, for which Project Builder automatically creates entries in the Project Navigator.

Project Builder knows what implied items to create by correlating the value of the property Deliverable Type for each defined type with the input items, or source, required for each Build From <type> action.

For example, the Deliverable Type for an .fmb file is a Form Builder executable, or .fmx.  Now, examine the Build From <type> action for the Forms Executable type in your Global Registry.  It says Build From FMB.  This means .fmb files are the input items for creating .fmx files.  Project Builder can identify each .fmb file in your projects and know that an .fmx file is implied by the existence of the .fmb, whether or not the .fmx file actually exists yet.

In another example, suppose you add a C source file to a library file.  In this case, Project Builder will add files of whatever other types are necessary to get a complete path of Build From <type> actions from one file type to the other (like an object file).

Although resetting the properties of an implied item is of limited use (the next compilation destroys changes) such items can be useful, as they can be examined via actions such as Edit, View, and Print.


About targets

  Related Topics

A target is the logical final output for a file or group of files in your project.  For example, an executable is a (compile) target for a library; while a library is a target for a group of objects; and an object is a target for a source file.  Targets are built from input items; input items are delivered as targets.


About input items

  Related Topics

Input items are the source files used to build targets such as executable files:  for instance, an .fmb is the input for an .fmx.  Input items are delivered as targets; targets are built from input items.


About delivering applications

  Related Topics

Delivering an application refers to the process of preparing a completed application for distribution and deployment.  Use the Delivery Wizard to deliver your application.


About the dependency view

  Related Topics

The dependency view shows files in the Project Navigator in the order in which they depend on each other, with project nodes at the highest point in the hierarchy, followed by target nodes, which are followed by buildable components of those targets (input items).  For example, an executable form depends on and will be followed by an .fmb file, which may depend on and be followed by a library used for a user exit procedure, and so on.

Note that you can set dependencies manually, by adding files to a project below the item dependent on them.

The dependency view is useful primarily in checking dependencies between files.


About the project view

  Related Topics

The project view shows project items organized by their types and project-to-subproject relationships.  The projects are organized alphabetically by project file, then alphabetically by category.  The project view is useful primarily in tracking exactly how many files of what types are in your project.


About the Launcher

  Related Topics

The Launcher is the secondary toolbar located by default to the left of the Project Builder window.  It provides organization and application launching abilities.

The Launcher provides a convenient means of centralizing access to the tools you most use.


About groups

  Related Topics

Groups are collections of related items available via submenus off the Launcher.  Groups enable you to set up the Launcher much like the Windows 95 Start menu, with entries that pop up to reveal other applications and or collections of applications.  For example, you can define a group named "Admin Tools," containing a text editor, a scheduling program, and other administrative tools.


About project administration

  Related Topics

If you are a project administrator, certain options are available to you when installing Project Builder and making it available to members of your development team.  Project Builder depends on native file sharing protocols for its security; something to keep in mind as you are deciding which of the following configurations to use.

If your team is networked, you can install the Global Registry to a shared directory so that developers can access a single copy.  This ensures that all versions of the Global Registry in use are up-to-date.  If you choose this option, however, it is recommended that you install to a directory to which only you have write access.  This prevents the Global Registry from accidentally being corrupted.

Another option is to give all development team members their own local copies of the Global Registry.  Updates to the Global Registry could be propagated via Project Builder’s Export and Import facilities.  If you choose this option, be aware that the individual Global Registries are not safe from accidental overwrites or deletions.

You could also install all files on a network server and have team members share not only the Global Registry, but all user registries, project registry files, etc.  This might be sufficient if members of your development team were only editing the files themselves and not the projects.  However, if you select this option be aware many opportunities arise for conflicting modifications to types, actions, projects, and project files.


About the Global Registry

  Related Topics

The Global Registry stores information common to an entire Forms or Reports Developer installation.  This information is restricted to type definitions and their associated actions and properties, both built-in or user-defined.  The use of the Global Registry is optional; its functions can be performed by individual user registries.

The Global Registry should only be modified by the project administrator.


About exporting a project

  Related Topics

Exporting a project is the process of writing out a file containing project, type, action, and/or macro definitions in a portable format for distribution to others who may work on different platforms.

Exporting projects is useful for distributed development of applications.


About importing a project

  Related Topics

Importing a project is the process of reading in a file containing project information.

Importing projects is useful for distributed development of applications.


About project reports

  Related Topics

Project reports are reports containing such information about your projects as types defined for the projects, the actions modifying project types, items associated with your projects, connection definitions, and Launcher information.  Project Builder enables you to generate project reports automatically.

Project reports are useful in a team development environment.


About de-fragmenting project registries

  Related Topics

As you add and delete items from a project registry, storage fragmentation can occur.  To prevent fragmentation from adversely impacting system performance, Project Builder provides a de-fragmentation tool to reclaim unused storage.

You control how much fragmentation you will tolerate for project registry files by setting a percentage in the Preferences dialog.  The percentage indicates how much empty space can co-exist with your data.  Each time you open a project that exceeds that percentage, an alert prompts you to run the de-fragmentation process.

Choosing the percentage of fragmentation to tolerate means balancing the risks of possible performance degradation against the time spent in reacting to the de-fragmenting alert.  Choosing a high number means you’ll see the alert fairly infrequently, but your system may suffer the ill effects of fragmentation.  A low number means your system may be in good shape (assuming you choose to de-fragment when prompted), but you’ll have to spend the extra time required to de-fragment almost every time you open a project.  The default percentage is 10.


About sharing projects

  Related Topics

If you plan to share your projects with other users, you can conserve time by changing all absolute path names in your PJUSER.UPD to relative path names.  To do so, review the Project Directory, Parent Directory, and Filename fields in the Property Palette for each project, subproject, and item, manually editing absolute paths wherever they appear.  For example, if Filename appears as /HOME/COOKIES/SUGAR/crumb.fmb and the parent project is /HOME/COOKIES/SUGAR, you can strip off everything but crumb.fmb to make the filename relative.

By ensuring that all filename, parent project directory, and project directory entries contain relative path names, other users can share your projects simply by copying your .UPD file and your directory structure, then changing the root project name to reflect the appropriate root location.  If all file paths are relative, work on the files can begin immediately.  If absolute paths exist anywhere within your project, each person sharing your projects must manually replace your root location everywhere it occurs before they can work on the files.


About project and parent directories

  Related Topics

The Property Palette contains three fields which are important to understand if you plan to share your projects with other users:  Project directory, Parent directory, and Filename.

•	Project directory contains the name of the directory where the project files reside.  (This field is used only for projects and subprojects.)  For subprojects, the project directory refers to the subdirectory within the parent project’s structure.  (For example, if the subproject SUGAR resides in /HOME/COOKIES, the project directory is SUGAR and the parent directory is /HOME/COOKIES.)

To make your projects easier to manage (and share), it is recommended that your project files reside in the project directory, and that you create subprojects to mirror the subdirectories within the directory.

•	Parent directory is the name of the directory in which an item resides.  For most items, this is simply the project directory name.  If the item belongs to a subproject, the parent directory is the combination of the parent project directory and the project directory (that is, the subdirectory).  For example, if the item crumb.fmb resides in /HOME/COOKIES/SUGAR, that is also the name of its parent directory:  the parent project directory (/HOME/COOKIES), plus the project directory (SUGAR).

•	Filename is the name of the item itself.  Whether absolute or relative path names appear in this field depends upon where the file actually resides.  If the file resides in the project directory, the relative path name appears.  If the file belongs in a different directory, the full path name is used.

If the Project Directory field is blank, that means a directory wasn’t provided when the project was created.  In that case, all items added to the project are relative to the root project directory.  (To see the root project directory, select the Project node, bring up the Property Palette, and read the Project Directory field.)


About filters

  Related Topics

A filter allows you to display only those projects or project items in the Project Navigator that meet certain criteria.  When you apply a filter, the objects that do not match the criteria specified in the filter definition are hidden from view.  You can construct your filters from all, some, or just one of the properties that appear in the Property Palette.  For example, you might want to look at all the items that have the Deliver property set to Yes, regardless of which project the items belong to.  Or you might want to look at all .fmb files in your currently open projects.

Before applying a filter, be sure that all the projects you want to search are open.  Filters are just a way to narrow down the contents of the Project Navigator, and the Project Navigator displays only open projects.

The name of the currently applied filter always appears in the lower left corner of the Project Navigator’s Status area.


About Preview Actions mode

  Related Topics

Preview Actions mode allows you to test actions and see what values will be used for various parameters and macros without actually executing the action.  When you invoke an action in Preview Actions mode, the fully expanded action is displayed to the screen.  While you are in Preview Actions mode, all actions behave in this manner; you cannot actually execute an action until you disable Preview Actions mode.


About the Build action

  Related Topics

Project Builder allows you to choose between two methods for building projects, selected items, and changed items:

•	Interactively, through the Project [image] Build. . .menu items.  This method is more interactive, as both dialogs and error messages are displayed for your response.

•	Batch mode, which you enable through the Enable batch output checkbox on the Preferences dialog’s Navigator tab.  In batch mode, the Build action runs without your control or involvement.


Type Caption for New Topic Right Here


Pre-defined types

The types that are pre-defined for use in your projects are dependent upon the products you have installed.

To see your pre-defined types, expand the Types node under the Global Registry.


General macro usage

  Related Topics

Macros are variables that apply to project items of specific types.  To define a macro, use the Add Macro dialog to name your macro and equate it to the string you want to execute when you use the macro.

To use a macro, insert the macro name, enclosed by braces, in the string comprising an action or another macro definition.  Place the macro where you would normally enter the string to which the macro is equated.

To include a string that you want to enclose by braces but that you don’t want to expand, enclose the string, including braces, in single or double quotes.

In addition, you can nest macros within other macros, set conditions on macros (in effect creating a yes/no situation), and define an action to invoke another command interpreter and run batch files.  For more information on nesting macros, see Nesting macros.  For more information about conditionalizing macros, see Conditional macros.  For more information on invoking a platform-specific command interpreter and running batch files, see the section in the help entitled Forms Developer Platform-specific Information.

Usage Notes

•	Macros can be named using any combination of alphanumeric characters and underscores.  For example, My_Macr0 is valid, while My&macr@ is not.

•	Macros are recursively expanded; in other words, if the value of a  macro named bar is set to the already-defined macro {foo}, when bar is referenced from within an action or another macro, the value substituted for it will be the value of foo.

•	We recommend that you do not use one-character names when naming your macros.  Please reserve one-character macro names for additional built-in macros to be supplied by Project Builder in subsequent releases.


Macro types

  Related Topics

When you create a new macro, you are asked to define the macro’s type.  All of the macro types except Static text display a pop-up at runtime prompting the user to enter information or accept the default value.  The macro types are as follows:

Static text	Choose this type if the user does not need to supply or override any values at runtime.
Text	Choose this type to permit the user to see the entire macro definition at runtime and, if desired, to override or supply new values.
List	Choose this type if you want the user to select a value from a list that you define.  Example:  Selecting a printer ID to which to route output.
Edit List	Choose this type if you want the user to select a value from a list that you define or enter a new value in the combo box.
Number	Choose this type if you want the user to supply a number within a specified range.  Example:  Specifying the number of copies sent to a printer.
True/False	Choose this type if you want the user to determine whether a condition is true or false. Example:  Determining whether the compiler produces optimized code.  If the user clicks True, optimized code is produced.  If the user clicks False, debugged code is produced.
File	Choose this type if the user must supply a file name to satisfy the macro.  A Browse button is provided on the pop-up to assist the user. Example:  Naming the file into which a zip file is unpacked.
Directory	Choose this type if the user must supply a directory to satisfy the macro. A Browse button is provided on the pop-up to assist the user.  Example:  Naming the directory into which a zip file is unpacked.


Macros used in Project Builder

  Related Topics

Macros used with Project Builder can be one of [image] or any combination of [image] the following types:

•	simple macros

•	built-in macros

•	pre-defined macros

•	environment variables


Simple macros

  Example	  Related Topics

Description  Macros which equate to simple strings.  When you reference such a macro from an action or another macro, the macro is replaced by that string.

Usage

•	To reference a simple macro, insert the macro name, enclosed by braces, within the action or macro at the point in the command where the string would be executed.

•	To include a string that you want to enclose by braces, but do not want expanded, enclose it in single or double quotes.

•	To include a string that contains quotes, but that you do want expanded, enclose each quotation mark in quotes:  single quotes for a double-quote mark (‘ " ’), double quotes for a single quote mark (" ‘ ").

•	To include the characters ":" (colon), "?" (question mark), and "{" or "}" (opening brace or closing brace), enclose them in quotes.  These characters are used by Project Builder macros and will otherwise not be interpreted correctly.  For more information, see Conditionalizing macros.

Usage Notes  The syntax of the string is governed by your platform.  Porting such macros to a different platform will require that the syntax be modified to conform to the rules for the new platform.  Possible conflicts include but are not limited to:  filename lengths, case sensitivity, and forward and backward slashes.  For more information, see the section in the help entitled Forms Developer Platform-specific Information.


Example:  Using a simple macro

Suppose you use a standard format for printing reports, and you’d like to define a Print action to print your reports from Project Builder.

You can define a macro named myprinter, and set it equal to the name of the printer you want to use; for example, you can type “HPLASER_101” in the Value text box (notice the quotes enclosing the string).

Then, if your print executable is print.exe, you could define a Print action as follows:

print.exe {n}{myprinter}

where {n} is the built-in macro referring to the fully-qualified name of the current file.

When you select the report sales.rep in the Project Navigator and choose Print from the pop-up menu, Project Builder replaces {n} with the full name of sales.rep, and {myprinter} with HPLASER_101, and sends the resulting command

print.exe c:\projects\reports\sales.rep HPLASER_101

to the operating system.

Note:  In the example above, Project Builder expanded the macro n to the fully-qualified name of sales.rep.  However, if you create a macro which contains a DOS command line, remember to place the colon following the drive letter between quotes, as follows:  c':'\projects\reports\sales.rep so that the colon is evaluated correctly.


Built-in macros

  Example	  Related Topics

Description  Macros provided by Project Builder.

The following macros are provided by Project Builder for use with actions.

Macro	Meaning
1-9	Refers to the first through ninth input types required by an action.  Only the version control, Build, and Deliver actions accept inputs.
b	Refers to the base filename of the item, or file you want the action to be taken against (in other words, the filename without extension).
d	Refers to the directory in which the item is found.
f	Refers to the filename of the item.
i	Refers to all input items required by an action.  Only the version control, Build, and Deliver actions accept inputs.
l	Refers to a temporary log file with an automatically-generated filename.
n	Refers to the fully-qualified name of the target.
p	Refers to the project directory for the target’s containing project or subproject.
s	Refers to the delimiter used on the current platform (/ or \).  (This property is determined by the operating system.)
t	Refers to the short name for the target type; for example, FMB for a Form Builder document.
Usage  To reference a built-in macro, insert the macro name, enclosed by braces, within the action at the point in the action where the string would be executed.  You can also include built-in macros within other macros in the same fashion.

Usage Notes

•	You cannot redefine the value of a built-in macro.

•	As more built-in macros with one-character names will be included in later releases of Project Builder, we recommend that you do not use one-character names when naming your macros.

•	To see how various built-in macros resolve, try including them in actions, then running the actions in Preview Actions mode .


Example:  Using a built-in macro

Project Builder often uses built-in macros in pre-defined actions.  To view several examples, do the following:

1	If necessary, expand the Global types node to view the global types.

2	Select Any Type, then select Property Palette from the pop-up menu.

3	If necessary, expand the Actions node in the Property Palette and examine the various pre-defined source control actions, such as Check file into RCS and Check file out of RCS.  The file you want to check in or out (the input type) is indicated by the built-in macro 1 (enclosed by braces, of course).  The built-in macro n appear in other commands, and refers to the fully-qualified filename.

You can use built-in macros in your own macros or actions in the same fashion.  Remember to enclose built-in macros in braces.


Pre-defined macros

  Example	  Related Topics

Description  Customizable macros which are provided by Project Builder and assigned preliminary values.

Usage  Use pre-defined macros as you would use any other macros.

Usage Notes

•	The pre-defined macros available depend on both your platform and the Forms Developer tools you have installed.  To view macros currently available for a specific item (type, project or file), select the item in the Project Navigator, display the Property Palette, and, if necessary, expand the Macros section.  To see the pre-defined macros available to all items, select Any Type in the Global Registry and view the associated macros in the Property Palette.

•	The values assigned to pre-defined macros are preliminary and easily customized to suit your preferences.  Possible values depend on the tools available on your platform.  For example, on Windows platforms, the macro D2KEDITOR is defined as {EDITOR ? {EDITOR} : notepad}, which means that your default editor is Notepad, unless you define a macro named EDITOR and equate it to another word processing program available on Windows.  On Motif, D2KEDITOR is defined as {EDITOR ? {EDITOR} : vi}, which means that your default editor is vi, unless you define a macro named EDITOR and equate it to another word processing program available on Motif.

Note:  In the macros above, the spaces preceding and following the question mark and the colon are not required.


Example:  Using a pre-defined macro

If you have installed Form Builder, the macro F50GENOPTS is pre-defined for use with all Form Builder types.  It has been assigned a preliminary value of:

Batch=NO Help=NO Logon={ORACONNECT ? YES : NO} Module_Access=FILE Options_Screen=NO Statistics=NO

In other words, these are the command line options, with default keyword values, for F50GEN.

Suppose you have several files to run in batch.  You can edit the F50GENOPTS macro in the Property Palette to change the value of Batch to YES at the desired level in the Project Builder hierarchy:  modify the macro in Form Builder types at your user registry level to change it for all Form Builder documents in all projects, or select individual Form Builder documents within your projects to modify.

Note:  In the example above, the spaces preceding and following the question mark and the colon are not required.


Environment variables as macros

  Example	  Related Topics

Description  You can use environment variables, also known as logicals, as values for macros.  When Project Builder encounters a macro reference containing the name of an environment variable, it first searches the list of macros already defined for the item, then through the existing environment variables, and makes the appropriate substitution.

Environment variables are useful for establishing relative paths to different types of files, such as executables and icons.

Usage  To reference an environment variable as a macro, insert the name of the environment variable, enclosed by braces, within the action at the appropriate point.  You can include environment variables within other macros in the same fashion.

Usage Notes

•	If the environment variable you are attempting to reference is either not currently set or is set incorrectly, the macro will resolve to an empty string and be ignored.

•	The environment variables available for use in Project Builder macros are dependent on your platform.  For more information, see the section in the help entitled Forms Developer Platform-specific Information.


Example:  Using an environment variable as a macro

Project Builder uses environment variables in several pre-defined actions.  To see an example, do the following:

1	If necessary, expand the Global types node to view the global types.

2	Select the Forms Document type, then select Property Palette from the pop-up menu.

3	If necessary, expand the Actions node in the Property Palette, and examine the Build from FMT action.  Note the use of ORACLE_HOME.  There is no ORACLE_HOME macro listed under the Macros node, because the ORACLE_HOME used by this action is an environment variable.

Also note its location in the action.  It appears at the beginning of a path, and is used in this and other actions to establish the relative path to a needed executable.

Remember that you do not need to define environment variables as macros.  Simply type the environment variable name, enclosed by braces, in your action.


Conditionalizing macros

  Example	  Related Topics

You can set the value of a macro depending on a condition.  To do so, use the following expression:

{macroname ? expression1 : expression2}

where:

macroname	The name of the macro.
expression1	The expression to which the macro is evaluated if the macro has been defined and has an assigned value.
expression2	(Optional)  The expression to which the macro is evaluated if the macro has either not been previously defined, or has been defined but has no assigned value.
If you want to equate the macro to an empty string if it has not been previously defined and has no assigned value, simply leave out the final expression, in this fashion:

{macroname ? expression1}

In this case, if the macro macroname has been defined and assigned a value, it will evaluate to expression1.  If the macro has not been defined, or has been equated to an empty string, it will remain an empty string.

Note:  Spaces in a macro are ignored.  For example, in the first expression above, all spaces preceding and following the question mark and the colon are neither required nor evaluated.


Example:  Conditionalizing a macro

Suppose your compiler produces debugged code if you include the command line option -g, and optimized code if you include the command line option -O.  Most of the time [image] especially during the development cycle [image] you want to produce debugged code, but you do want to retain the option of producing optimized code easily.

To do this, define a static text macro named DEBUG and enter yes in the Value field.  (You can enter anything other than yes, just as long as the value is not empty.)  Then, in your compile action,  replace the DEBUG command line option with this conditionalized debug macro:

{DEBUG ? -g : -O}

Since the macro DEBUG has been defined and assigned a value of a non-empty string, it evaluates to -g, the first expression, and the compile produces debugged code.  When you’re ready to produce optimized code, simply delete the value yes from the DEBUG macro.  Because DEBUG no longer contains a non-empty string, it will evaluate to -O, the second expression, and the compiler will produce optimized code.

Note:  In the example above, the spaces preceding and following the question mark and the colon are not required.


When to conditionalize a macro or create a True/False macro

  Related Topics

Project Builder offers two methods for evaluating a situation at runtime and, depending on the outcome, choosing one of two actions:  conditionalizing a macro and creating a true/false macro.  Deciding which method to use is primarily a matter of how often you (or your users) want to make the decision.  If you want to decide between two options each time the action containing the macro is run, create a true/false macro.  However, if you usually make the same decision each time and only occasionally want to make the other choice, conditionalizing is probably a better solution.  Consider this example:

The F50RUNOPTS action, defined against the .fmx type, contains this conditionalized macro to generate performance statistics:

F50RUNOPTS. . . . {PERFORMANCE ? PECS=ON STATISTICS=YES}. . . .

Because there is no performance macro, by default performance statistics are not generated as part of the F50RUNOPTS action.  If you’re satisfied with this, you can leave the conditionalized statement as it is.  If and when you do decide you want to generate performance statistics, simply create a static text macro called performance and define it as any non-empty string.

However, suppose that when you run your forms you generate performance statistics about half the time.  In that case, it’s too cumbersome to change the definition of performance each time you run a form, and to do so in advance.  A true/false macro is the better option here.  To create such a macro:

1	In the Global Registry, select the .fmx type.

2	Select File [image] New [image] Macro to display the Add Macro dialog.

3	Name the macro F50STATS, selecting a macro type of True/False.  In the Caption field, enter ‘Generate performance statistics?’ or something similar.

4	Click the True radio button under Default.  In the Result, if true field, enter PECS=ON STATISTICS=YES; leave Result, if false blank.  Click OK to save the macro and close the Add Macro dialog.

5	In the Property Palette, double-click the F50RUNOPTS command definition to display the Edit Action dialog.

6	Replace {PERFORMANCE ? PECS=ON STATISTICS=YES}. with the name of the new macro {F50STATS}.

Each time you run a form, a pop-up asks if you’d like to generate performance statistics.  If you click True, the statistics will be generated.


Nesting macros

  Example	  Related Topics

You can nest a macro within another macro simply by inserting its name, enclosed by braces, in the string to which the outer macro is equated.

The innermost macro(s) is expanded first, followed by the next level, then the next, until the action containing the nested macros is evaluated and executed.  In addition, macros are recursively expanded; in other words, if the value of a  macro named bar is set to the already-defined macro {foo}, when bar is referenced from within an action or another macro, the value substituted for it will be the value of foo.


Example:  Nesting macros

One convenient way to keep track of the command line options for frequently-used tools is to include all of them in a single macro, as Project Builder does for you in the macro F50GENOPTS, for use when generating forms.

However, you may want an even finer control over your options list; if, for example, when you print a file your printer name may change but the remainder of the options remain the same, you can define a macro pname to contain the name of the printer, and nest it within the options_list macro definition, as follows:

option, option, {pname}, option, option, . . .

Now, if your Print action is defined as print.exe {n} {options_list}, when you select a file in the Project Navigator and choose Print from the pop-up menu, Project Builder sends a command resembling the following to the operating system:

print.exe filename option, option, printer_name, option, option. . .

where printer_name is the expansion of the macro pname.


Overriding project macro definitions for items

  Example

You can obtain the inherited value of a macro and use it in another macro definition simply by inserting a caret (^) in front of the referenced macro’s name.  In this way, you can maintain a macro definition at the project level and customize or extend the definition for individual items within the project.


Example:  Overriding project macro definitions for items

Example 1:  Suppose your project has a macro called OUTDIR, which is defined as c:/new/output, the location for the project’s compiler output.  Rather than using this general directory, you want to direct your own compiler output to a subdirectory of OUTDIR, wherever it happens to be.  For each item that you compile, you create a macro using the same name, OUTDIR, and define it as {^OUTDIR}/mydir.  The caret tells Project Builder to take the project’s definition of OUTDIR first, c:/new/output, then add the item’s definition of OUTDIR, mydir.  The final output directory, then, becomes c:/new/output/mydir.

Example 2:  For your project CDEV, you’ve defined the CFLAGS macro with the -Wall parameter, which generates warnings during the compilation of C files.  For your items and subprojects within CDEV, however, you want more extensive warnings, plus information if the source code isn’t completely ANSI-compliant.  For those items and subprojects, then, you specify {^CFLAGS} -ansi -pedantic.  The macro expands to CFLAGS -Wall -ansi -pedantic:  the project definition for CFLAGS, plus the two extra parameters you defined at the subproject and item level.


Select Data Tables dialog box

  Related Topics

Description  The Select Data Tables dialog box enables you to include datasource objects from the connected database into your query.

This dialog box contains:

Show	Specifies whether or not to display tables, views, queries, snapshots, and/or synonyms in the list box.
Drop-down box	Specifies from which datasource to display the objects.  You can also select a table from a separate account or database .
Select Data Tables	Lists the available datasource objects you can include in your query.  Tip
Info	Displays information on the selected object:  the kind, name, owner, date it was created, and comments.
Include	Includes the selected item into the Query Builder workspace.
Close	Closes the dialog box without including a datasource object.


Accessing other accounts in the current database

  Related Topics

To access tables in other accounts in the current database:

1	Click the current database name.  The Include button becomes an Open button, and the list box displays a list of accounts in the current database.

2	Click the name of the account you want to open.

3	Click Open, or simply double-click the account name.  Query Builder displays a list of tables in that account, and the Open button again becomes the Include button, enabling you to include tables in the usual manner.


Opening other accounts

  Related Topics

If the table you want is not listed in the current database, you can navigate to other accounts and databases and select tables from those accounts.

To navigate to other accounts and databases:

1	Click the box above the list of tables.  You will see two selections:  the name of the current database and the word Databases.

2	To access tables in other accounts in the current database, click here.

If you are unable to connect to a listed database, it may be due to an invalid link caused by a network problem or a changed remote password.  Contact your database administrator for assistance.


Including a table more than once

  Related Topics

If you include the same table more than once in a query, duplicate tables are automatically assigned system-generated alias names composed of the name for the base table, followed by an underscore and an alphanumeric sequence.


Select Related Tables dialog box

Description  The Select Related Tables dialog box enables you to include tables that are related to the selected table in the Query window.

This dialog box contains:

Show	This option is not available.
Drop-down box	Specifies whether or not to display all related tables.
Select Data Tables	Lists the available related tables.  Tip
Info	Displays information on the selected table:  the kind, name, owner, date it was created, and comments.
Include	Includes the selected table.
Close	Closes the dialog box without including a related table.


Rename Table dialog box

  Related Topics

Description  The Rename Table dialog box enables you to rename the currently active table.

This dialog box contains:

Default Table Name	Specifies the current name of the table.
List box	Lists the tables you have open to rename.
New Name	Specifies the new table name.
Define	Updates the table name while keeping the dialog box open.


Identifying a renamed table

In a stored query, it is not immediately apparent whether a particular table has a user-defined name or its original name.

To find out if a particular table has been renamed:

1	Click [image] in the Icon bar.

2	Click the table in question in the list of Available Tables.

If the table has been renamed, the alias name appears in the New Name: field and a different name (the original table name) in the Default Table Name: field.

SQL users can also identify renamed tables by clicking [image] in the Icon bar. This brings up the Show SQL dialog box, where any name changes appear in the SELECT statement in standard SQL syntax for table aliases.


Set Relationship dialog box

  Related Topics

Description  The Set Relationship dialog box enables you to create simple, self, composite, unmatched, and non-equal relationships between two tables.

This dialog box contains:

Relationship	Specifies the origin (in A->) and target (in B->) column names.
Operator	Specifies the type of relationship between the columns.
Use Relationship in Query	Specifies if your relationship will be used in the query.  Default is checked.
A not found in B radio button	Specifies that the data retrieved is all data common to both tables, in addition to data that is in table A, but not in table B.
B not found in A radio button	Specifies that the data retrieved is all data common to both tables, in addition to data that is in table B, but not in table A.
Suppress Mismatches radio button	Default.  Specifies that the data retrieved is common for both tables.


About relationships

  Related Topics

A relational database consists of a number of related tables.  Each table is made up of columns (sometimes called fields) which are arranged vertically.  Each column has a name, and contains a unique type of data.

Relationships, or joins, define how a column in one table relates to a column in another table.  In many cases, the relationships you need are already defined in the database.  Relationships also reduce data redundancy.  Whenever there is a relationship between columns in different tables, you can use the tables together in a query.  Note

Related columns do not always share the same names.  You can always relate columns that share the same datatype, and in some instances you can relate columns of different datatypes, if the relationship makes sense.  For example, you can always relate a Number datatype column with a Character column, since a number can also be interpreted as a character.  In fact, almost any column (except long text columns) can be related to Character columns.

Relationships can be user-defined (temporary) or established in the underlying data dictionary  Relationships in the data dictionary automatically appear when you include related tables (tables that have a primary/foreign key relationship).  You do not have to do anything to use these relationships, since they are always valid.  These can be created or modified using the Schema Builder.

User-defined relationships are valid only for the query in which you create them.  Creating a user-defined relationship does not establish a corresponding permanent relationship in the underlying table.  The main difference between the two is that in the case of a user-defined relationship, you must draw the relationship line; in a relationship stored in the database, Query Builder draws it for you.

Note (Report Builder only):  Report Builder data links are not the same as Query Builder relationships.  Data links are created between two or more queries, where Query Builder relationships (or joins) are created within a single query.  For more information, see the Report Builder online help.


Activating and deactivating a relationship

  Related Topics

Relationships that you create using the mouse are automatically activated and deactivated as they are needed in a query.  Active relationships are displayed with a heavy black line; inactive relationships are shown as grey lines.

To manually activate a relationship using the mouse:

  Double-click an inactive relationship line.

To deactivate a relationship:

  Double-click the active relationship line.


Define Column dialog box

Description  The Define Column dialog box enables you to create a new column in your query based on values in another column. Defined columns appear in both the Datasource panel and the Results window.

This dialog box contains:

Defined Columns	Specifies the name of the column you want to create.
List box	Lists existing defined columns.
Defined as	Specifies the expression of the selected column.
Define	Applies the definition to the column.
Remove	Deletes the selected column.
Paste Column	Displays the Paste Column dialog box.
Paste Func	Displays the Paste Function dialog box.
Note:  The defined column is only a part of your query and will not modify the table definition saved in the database.


Sort dialog box

Description  The Sort dialog box enables you to sort the data in your query according to columns in your table.

This dialog box contains:

Available Columns	Lists the table columns you can sort in the Results window.
Sorted Columns	Lists the table columns that are currently sorted in the Results window.
Copy	Copies the selected column from the Available Columns list to the Sorted Columns list.
Remove	Removes the selected column from the Sorted Columns list.
Sorting Order	Sorts the selected column in Ascending or Descending order. Default is Ascending.


Query Builder Help

  Related Topics

Building a new query

Adding conditions to a query

Creating a simple relationship

Defining a column

Sorting query data


About Query Builder

  Related Topics

Query Builder is an easy-to-use data access tool designed for analysts, managers, and other business professionals.  It provides a logical and intuitive means to access information from your organization's databases for analysis and reporting.

Query Builder is designed for professionals who do not have a computer programming or database background.  Because of its powerful query features and its support of Structured Query Language (SQL) statements, experienced database users and programmers will find that Query Builder serves many of their needs as well.

In Query Builder's graphical Query window , you can specify a request for data from your organization's database(s).  The request for data is called a query.

You can use Query Builder to define almost any query that you would build using a SQL SELECT statement.  Query Builder automatically generates the appropriate SELECT FROM [table.column] clause based on columns displayed in the Query Builder workspace.


Column Sequence dialog box

Description  The Column Sequence dialog box enables you to adjust your query results in the Query Builder workspace.

This dialog box contains:

Available Columns	Lists the table columns you can display in the Query Builder workspace.  Tip
Displayed Columns	Lists the table columns that are currently displayed in the Query Builder workspace.
Copy	Copies the selected column from the Available Columns list to the Displayed Columns list.
Remove	Removes the selected column from the Displayed Columns list.
Format	Displays the Format dialog box.
Totals	Displays the Totals dialog box.
Execute	Runs the query.


Paste Column dialog box

  Related Topics

Description  The Paste Column dialog box enables you to paste an existing column from a selected table into your query.

This dialog box contains:

List box	Lists the columns you can paste.  Tip


Paste Function dialog box

Description  The Paste Function dialog box enables you to paste a function into your condition or query.

This dialog box contains:

Show Categories	Specifies the types of functions that display in the list box:  number, character, date, conversion, group, other.
List box	Lists the available functions under the selected category.
Paste Arguments	Specifies whether or not to include the argument (the expression within the parentheses of a function that supplies information for the function to use).


Show SQL dialog box

  Related Topics

The Show SQL dialog box displays the SQL statements for your query thus far. You cannot edit or copy the SQL statements in the Show SQL dialog box.


The column or columns that uniquely identify each row of a table.  Primary keys appear in bold.


A column that refers to the primary key values in another table. Foreign keys appear in italics.


The sources from which a query retrieves data, including tables, views, queries, synonyms, and snapshots.


A datasource made up of columns from one or more database tables combined into one logical table.


A string consisting of a function or operation and the database column(s) to be operated on (for example, SALARY+COMMISSION).


To conform to naming conventions, each query name must begin with a letter and can contain up to 30 letters and numbers.  If you don't use naming conventions when naming database queries, Query Builder will convert the name to a "literal" value (enclosed in double quotes).


About the Conditions panel

The Conditions panel is a section of the Query window that contains the Condition field, where you enter expressions and conditions.  Query Builder conditions automatically generate WHERE or HAVING clauses, as appropriate.

The table and column names indicate which columns will be filtered in the condition.  You may omit the table name if the column name is unique.  Tip

Note:  When you activate the Condition field, the cursor will have  a (+) sign, indicating that any item you click on will be added to your condition.  To deactivate this, you can click [image] in the Icon Bar.


About the Query window

When you open a query, Query Builder displays it in the Query window, split into two panels:

•	the Conditions panel, where the Condition field is located.  It is used to refine the query.

•	the Datasource panel, which displays the tables (views, snapshots, and so forth) used in the query.

Depending on your preferences, the panels may be split vertically or horizontally.

Each table is displayed in a box containing the name of the table and the names of columns in that table.  There are a number of icons that help identify the current database object.  The icons indicate whether descriptive comments are attached, the type of datasource, the column's datatype, and whether indexes have been defined for tables in the query.

Lines are drawn to indicate the relationships between columns.  Relationships are set up between tables to identify how a column in one table relates to a column in another table.

A check mark to the left of the column name indicates the column has been included in the query.  This means that Query Builder will search for data corresponding to the column name when you run the query.  No check mark indicates that column's data will not be included.


About the Datasource panel

  Related Topics

The Datasource panel is the section of the Query window where items, such as tables and relationships, display.


About the Icon Bar

  Related Topics

The Icon Bar displays at the top of the Query Builder window.  Click on each icon to view a description.


Save icon

Saves your query to the specified file.


Cut icon

Cuts the selected text and places it on your operating system's clipboard.


Copy icon

Copies the selected text onto your operating system's clipboard while the original text remains intact.


Paste icon

Pastes the current clipboard items into the active location.  If there is nothing on the clipboard, nothing will be pasted.  You can paste any text that you have cut or copied.


Clear icon

Removes the selected item (i.e., text, table).  Unlike the Cut command, Clear does not place the removed item(s) on your operating system's clipboard.


Select All icon

Selects every item in the active window.  For example, if the Conditions panel is active, all conditions in the panel will be selected.


Select Data Tables icon

Displays the Select Data Tables dialog box.


Select Related Tables icon

Displays the Select Related Tables dialog box.  This icon is available only when the table you have selected has a related table in the connected database.


Rename Table icon

Displays the Rename Table dialog box.  This icon is available only when there is at least one table in the Query Builder workspace.


Get Info icon

Displays the Info dialog box and information on the selected database object.  This icon is available only if a datasource object is active.


Set Table Relationship icon

Displays the Set Relationship dialog box.  This icon is available only when there is more than one table in the Datsource panel to relate.


Show SQL icon

Displays the Show SQL dialog box and the SQL for the active query.


Column Sequence icon

Displays the Display dialog box.


Define Column icon

Displays the Define Column dialog box.


Sort icon

Displays the Sort dialog box.


And icon

Inserts the AND operator into your condition.  This icon is available only when the Condition field is active.  You can also type AND directly into the Condition field.


Or icon

Inserts the OR operator into your condition.  This icon is available only when the Condition field is active.  You can also type OR directly into the Condition field.


Not icon

Inserts the NOT operator into your condition to negate your condition.  This icon is available only when the Condition field is active.  You can also type NOT directly into the Condition field.


Ungroup Conditions icon

Ungroups conditions that are combined with logical operators, such as AND, OR, NOT.  This icon is available only when you have selected a logical operator in the Conditions panel.


Accept icon

Validates and accepts the active condition.  This icon is available only when the Condition field is active.  You can also press the Enter or Return key when the Condition field is active to accept and validate your condition.


Cancel icon

Cancels the current condition.  This icon is available only when the Condition field is active.


Paste Column icon

Displays the Paste Column dialog box.  This icon is available only when the Condition field is active.


Paste Function icon

Displays the Paste Function dialog box.  This icon is available only when the Condition field is active.


About datatypes

  Related Topics

The most common datatypes in Query Builder are:

CHAR or VARCHAR2	CHAR is used for fixed length character data, to a maximum size of 255 bytes and a default size of 1 byte.  VARCHAR2 is for variable length character strings to a maximum size of 2000 bytes.  You must specify size for VARCHAR2.
NUMBER	NUMBER indicates that the database column contains numbers (integers, decimals, or any other type of numeric values).  You can perform calculations on numbers represented in the NUMBER datatype, but not on numbers represented by the CHAR datatype.
DATE	DATE indicates that the database column contains date values.  Valid dates ranging from January 1, 9999 BC to December 31, 9999 AD.  Default format is DD-MON-YY as in '01-JAN-92'.
NUMBER(p,s)	The range of p (decimal precision) is 1 to 38. The range of s (scale) is -84 to 127.  Decimal precision is the number of digits to store.  The scale is the number of digits to the right of the decimal point.  If the scale is negative, the actual data is rounded to the specified number of places to the left of the decimal point.  For example, a specification of (10, -2) means round to the hundreds.
Additionally, Query Builder provides limited support for the following Oracle datatypes:

LONG	A LONG column contains alphanumeric data of variable length up to 2 gigabytes (or 231-1).  When you include a LONG column in a Query Builder query, the first 2000 characters are displayed.
RAW	Raw binary data.  Maximum size is 255 bytes.  Values must be inserted as character strings in hexadecimal notation.  Values are displayed in hexadecimal.  You must specify size for RAW datatypes.
LONG RAW	LONG RAW displays raw binary data up to 2 gigabytes (this appears in hexadecimal in the Results window).  LONG RAW datatypes are subject to the same limits as RAW datatype.
Note:  Query Builder supports datatype conversions in cases where conditions and expressions reference different datatypes in their comparison.  Refer to the Oracle8 Server SQL Language Reference Manual for additional information.


Datatype icons

  Related Topics

The following supported datatypes for all the columns in a datasource object are represented by icons located in the right hand column of the object in the Query Builder workspace.

Datatype	Icon	Description
Character		Use the Character datatype for fixed length character data, to a maximum size of 255 bytes and a default size of 1 byte. Note:  You can represent numbers using the Character datatype, but you can only perform calculations with numeric datatypes.
Varchar2		Use the Varchar2 datatype for variable length character strings, to a maximum size of 2000 bytes.  You must specify a size for the Varchar2 datatype.
Number		Use the Number datatype for integer or floating data. You must enter a precision length (number of digits) for integer data. Floating datatype is for decimal numbers. When you assign this datatype to a column, you must specify both the precision and the scale. The precision (total number of digits in the number) can range from 1 to 38.  The scale (number of digits to the right of the decimal point) can range from -84 to 127.  If the scale is negative, the actual data is rounded to the specified number of places to the left of the decimal point.  For example, a specification of (10,2) means 10 digits with 2 to the right of the decimal point.  A specification of (10,-2) effectively means a 10-digit integer, rounded to the nearest hundred.
Date		Use the Date datatype for any type of date.  Valid dates range from January 1, 4712 BC to December 31,4712 AD.  The default date format is DD-MON-YY, as in ‘01-JAN-97.’
Long		Use the Long datatype for long text fields of alphanumeric data of variable length, up to 2 gigabytes.
Raw		Use the Raw datatype for raw binary data.  The maximum size is 255 bytes.  Values must be inserted as character strings in hexadecimal notation, and values are displayed in hexadecimal.  You must specify a size for raw data.
Long Raw		The Long Raw datatype is for storing up to 2 gigabytes of raw binary data (which is entered and displayed in hexidecimal form).  Long Raw datatypes do not require a specified size.
MLSLABEL		Use the MLSLABEL datatype for storing the binary format of a label used on a secure operating system.  Labels are used by Trusted ORACLE to mediate access to information.  You can also define columns with this datatype if you are using the standard ORACLE Server.  For more information on Trusted ORACLE, including this datatype and labels, see the Trusted ORACLE8 Server Administrator's Guide.


Datasource object notation

  Related Topics

Shown below is an example of two datasource objects, linked by a relationship.

Click any icon, indicator, or part of these objects to display a description.


Object type indicator

The icon in the upper left corner of any datasource object indicates its type:

  Table

  View

  Query

  Snapshot

  Synonym


Object title

This is the name of the datasource object.  You can change the name by clicking on the object title.


Comment indicator

This icon indicates that this object (or column) has a comment associated with it.  Double-click this icon to open the Info dialog box, where you can view the comments.


Column Name

This is the name of one of the columns in this object.  If you double-click a column name, the column will be included in your query.


Datatype indicators

These icons indicate the datatypes of their respective columns. If you click and hold on one of these icons, a pop-up menu appears, and you can choose a different datatype.


Relationship line

A gray line drawn between two columns indicates that a relationship has been created between the columns at either end of the line. The line is drawn from the foreign key to the primary key.


Self-relationship indicator

This icon indicates that a self-relationship has been created between this column (foreign key) and another column (primary key) in the same table.


Primary key

A column name displayed in boldface indicates that this column has been defined as a primary key for the object.


Foreign key

A column name displayed in italics indicates that this column is a foreign key, related to a primary key in another column.  Setting up a relationship between two columns is the only way to define a foreign key.


User registry has been locked by another user.  Retry the registry or quit?

 Cause:	During initialization, Project Builder attempted to read your user registry but was unable to, probably because another user was in the process of modifying it and had locked the registry for a write operation.

 Action:	To try accessing the user registry again, click Retry.  Click Quit to exit Project Builder and try again at a later time.


Global registry has been locked by another user.  Retry the registry or quit?

 Cause:	During initialization, Project Builder attempted to read the Global Registry but was unable to, probably because another user was in the process of modifying it and had locked the registry for a write operation.

 Action:	To try accessing the Global Registry again, click Retry.  Click Quit to exit Project Builder and try again later.


Project registry has been locked by another user:  <registry file name>.  Retry this registry or continue with the next one?

 Cause:	Either during initialization or during an open project operation, Project Builder attempted to read the project registry named above but was unable to, probably because another user was in the process of modifying it and had locked the registry for a write operation.

 Action:	To try accessing the project registry again, click Retry.  Click Continue to skip over this project and continue with your Project Builder session.


User registry has been modified by another user; your most recent change has been discarded.

 Cause:	You attempted to modify your user registry, but were barred from doing so to forestall the possibility of your changes overwriting a previous modification.

 Action:	Click OK to refresh your copy of the user registry and pick up the most recent changes, then, if desired, make your changes again.


Global registry has been modified by another user; your most recent change has been discarded.

 Cause:	You attempted to modify the Global Registry but were barred from doing so to forestall the possibility of your changes overwriting a previous modification.

 Action:	Click OK to refresh your copy of the Global Registry and pick up the most recent changes, then, if desired, make your changes again.


Project registry has been modified by another user:  <registry file name>.  Your most recent change has been discarded.

 Cause:	You attempted to modify the product registry, but were barred from doing so to forestall the possibility of your changes overwriting a previous modification.

 Action:	Click OK to refresh your copy of the project registry and pick up the most recent changes, then, if desired, make your changes again.


User registry has been corrupted.  Try to recover data from the registry or quit?

 Cause:	The user registry file has become corrupted.

 Action:	Click Recover to reclaim as much informtion as possible, or click Quit to exit. If you have a backup copy, you can restore the file from the backup.


Global registry has been corrupted.  Try to recover data from the registry or quit?

 Cause:	The global registry file has become corrupted.

 Action:	Click Recover to reclaim as much informtion as possible, or click Quit to exit. If you have a backup copy, you can restore the file from the backup.


Project registry has been corrupted.  Try to recover data from the registry or quit?

 Cause:	The project registry file has become corrupted.

 Action:	Click Recover to reclaim as much informtion as possible, or click Cancel to leave the file unopened.  If you have a backup copy, you can restore the file from the backup.


User registry is an old version.  Should it be upgraded?

 Cause:	The user registry file is an old version.

 Action:	Click OK to upgrade it to the latest version, or click Cancel to leave it unchanged.

Note: If you don't upgrade this file, you may be missing some features.


Global registry is an old version.  Should it be upgraded?

 Cause:	The global registry file is an old version.

 Action:	Click OK to upgrade it to the latest version, or click Cancel to leave it unchanged.

Note: If you don't upgrade this file, you may be missing some features.


Project registry is an old version.  Should it be upgraded?

 Cause:	The project registry file is an old version.

 Action:	Click OK to upgrade it to the latest version, or click Cancel to leave it unchanged.

Note: If you don't upgrade this file, you may be missing some features.


User registry is <number> percent fragmented.  Should it be defragmented?

Cause:	You specified in the Preferences dialog (on the Projects tab) that you want to compress registries when a certain percentage of fragmentation has occurred.  That percentage has been reached for the specified registry.

 Action:	Click Yes to compress the user registry, or click No to defer compression.  If you click No, this alert will be displayed each time you start Project Builder until you either compress the registry or increase the fragmentation percentage.


Global registry is <number> percent fragmented.  Should it be defragmented?

Cause:	You specified in the Preferences dialog (on the Projects tab) that you want to compress registries when a certain percentage of fragmentation has occurred.  That percentage has been reached for the specified registry.

 Action:	Click Yes to compress the global registry, or click No to defer compression.  If you click No, this alert will be displayed each time you start Project Builder until you either compress the registry or increase the fragmentation percentage.


Project registry is <number> percent fragmented:  <registry file name>.  Should it be defragmented?

 Cause:	You specified in the Preferences dialog (on the Projects tab) that you want to compress project registries when a certain percentage of fragmentation has occurred.  That percentage has been reached for the specified registry.

 Action:	Click Yes to compress the project registry, or click No to defer compression.  If you click No, this alert will be displayed each time you start Project Builder until you either compress the registry or increase the fragmentation percentage.


Can't find a printer.  Check your printer configuration.

 Cause:	Project Builder could not find a printer installed on your system.

 Action:	Check your operating system documentation on, install a printer, and restart the Project Builder application.


Testing the following action:  <command line>

 Cause:	You are in Preview Actions Mode, and you invoked an action.  The commands that would be passed to the operating system to execute this action are being displayed, but not actually run.

 Action:	Click OK to continue debugging.


Database is invalid or corrupted.

 Cause:	Your project registry is invalid or has become corrupted.

 Action:	You may be able to recover some or all of the project registry by exporting it to a text file and then importing the text file back into Project Builder.  Choose File [image] Export Project to export the registry; then choose File [image] Import Project to import the text file.


Project password is invalid.

 Cause:	You typed an invalid password.

 Action:	Be sure you have the correct password and spelling; then try entering it again.


New launcher entries have been installed in the global area.  Would you like to copy them now?

 Cause:	A new product has been installed and has copied its Launcher information to the Global Registry.

 Action:	Click Yes to update your Launcher with the new information.  Click No to leave your Launcher in its current state.


Remove selected entries permanently, are you sure?

 Cause:	You’ve clicked Remove in the Launcher Preferences dialog with an entry selected.

 Action:	Click Yes to permanently delete the entry from the Launcher.  Click No to leave your Launcher in its current state.


:	Error in parsing: <string>.

 Cause:	Project Builder was unable to interpret the string listed.

 Action:	Debug your command and try again.


Error running launch string (Operating system code <nn>):  <Operating system message>.

 Cause:	Project Builder attempted to launch a tool but encountered the listed operating system error.

 Action:	Refer to the documentation for you platform for more information.


No entry selected.

 Cause:	You clicked Remove or Edit in the Launcher tab of the Preferences dialog with no Launcher entry selected.

 Action:	You must select a tool in the Launcher Navigator before removing or editing it.


Failed to create project

 Cause:	Project Builder was unable to create your project.  Possible causes are:

A.	You don’t have write access to your project file.

B.	Another user altered your project file while you were creating it.

C.	You’re out of memory

 Action:	You can take the following action(s) to correct this error:

If A.	Check with your administrator to make sure you have access to the directory in which you’re creating your project.

If B.	Refresh your project registry (one method is to switch views).

If C.	Close any unnecessary applications.


You must enter a name for the action.

 Cause:	You attempted to create/edit an action without naming it.

 Action:	You must enter a name for your action in the Name text field before continuing.


You must enter a filename for the batch output data.

 Cause:	You attempted to create a batch output file without naming it.

 Action:	You must enter a name for the batch output file in the Name text field before continuing.


You must enter a name for the connection.

 Cause:	Each connection must have a name.

 Action:	Type a name for the new connection in the Title text field, and then enter the connection information.


There is no destination for this item.

 Cause:	Every file in the delivered project must have a default destination directory.

 Action:	Click OK to return to the Delivery Wizard, then supply a default directory in the Destination directory and filename field.


The product name must contain less than or equal to 8 alphanumeric characters with no white spaces.

 Cause:	You entered a name longer than 8 characters, or a name containing special characters, or you included white space.

 Action:	Click OK to return to the Delivery Wizard, then enter a name that adheres to the naming conventions.


Please provide a staging directory.

 Cause:	The Delivery Wizard cannot copy or FTP your files without a staging location.

 Action:	Click OK to return to the Delivery Wizard, then enter a directory to serve as the staging location in the appropriate field.


Please provide a product name.

 Cause:	You need to enter a name for the product.

 Action:	Click OK to return to the Delivery Wizard, then enter a product name in the Name text field.  The name must be 8 characters or less with no special characters or white spaces.


Please enter the environment variable name or delete this row.

 Cause:	To complete a delivery, at least one file must appear in the Files to Deliver panel.

 Action:	Click OK to return to the Delivery Wizard, then use the arrows to move files from the Files set to Deliver=Yes panel to the the Files to Deliver panel.


Login failed!

 Cause:	Your FTP operation failed because Project Builder could not log in to the host machine.

 Action:	Click OK to return to the Delivery Wizard.  Make sure you have supplied the correct user name, password, host name, and account (if required), then try the delivery operation again.


The selected items have no files associated with them.  Should they be omitted from this release?

 Cause:	The Delivery Wizard found items with no files attached.

 Action:	Click Yes to omit the unattached files from this release, or click No and then cancel out of the Delivery Wizard to rebuild the project and include the missing files.


No items to be delivered.

 Cause:	To complete a delivery, at least one file must appear in the Files to Deliver panel.

 Action:	Click OK to return to the Delivery Wizard, then use the arrows to move files from the Files in project panel to the Files to Deliver panel.


You must enter a name for the connection.

Cause:	Each connection must have a name.

 Action:	Type a name for the new connection in the Title text field, and then enter the connection information.


You must enter a filename for the item.

 Cause:	You cleared or deleted the filename of an item in the Navigator or Property Palette.

 Action:	You must re-enter a filename for the item before continuing.


You must enter a name for the item.

 Cause:	You cleared or deleted the name of an item in the Navigator or Property Palette.

 Action:	You must re-enter a name for the item before continuing.


You must enter a name for the type.

 Cause:	You attempted to create/edit a type without naming it.

 Action:	You must enter a name for your type in the Type text field before continuing.


Macro names must contain only alphanumeric characters and underscores.

 Cause:	You used an illegal character in a macro name.

 Action:	Re-enter the macro name using only alphanumeric characters and underscores.


You must enter a name for the macro.

 Cause:	You attempted to create/edit a macro without naming it.

 Action:	You must enter a name for your macro in the Macro Name text field before continuing.


You cannot use the name of a pre-defined macro.

 Cause:	Certain single letters such as b, n, d and f are reserved for pre defined macros.

 Action:	Choose a different name for the macro.


The new and confirmed password do not match.  Please enter them again.

 Cause:	Most likely, you mistyped the confirming password.

 Action:	Enter both the new password and the confirming password again.


Warning:  Couldn’t save preferences

 Cause:	Project Builder attempted to write out your preferences to your preferences file, but was unable to.

 Action:	Make sure that the directory containing your preferences file can be written to.


Warning:  Couldn’t set project attributes.  (Make sure the project registry can be written to.)

 Cause:	Project Builder attempted to write out your project’s attributes to the project definition file, but was unable to.

 Action:	Ensure that the project definition file and the directory in which it’s located can both be written to.


This will copy the launcher entries installed in the global area into your launcher.  Continue?

 Cause:	You clicked Defaults in the Launcher tab of the Preferences dialog.

 Action:	Click Yes to update your Launcher with Launcher information from the Global Registry (portions of your Launcher information may be overwritten).  Click No to leave your Launcher in its current state.


Delete the project registry files, as well as the project items themselves?

 Cause:	You are about to delete an entire project.  You can choose to save the project registry file or delete it along with the project items?

 Action:	Click Yes to delete the project registry file.  Click No to save the project registry file and delete on ly the project items. Click Cancel to abort the project deletion.


Warning:  Couldn’t create a property palette.  Make sure you have sufficient memory.

 Cause:	Project Builder was unable to generate a Property Palette upon request, probably because insufficient memory was available.

 Action:	Increase the amount of available memory by closing down unnecessary applications.


Failed to create/modify the requested type.  Make sure the type’s registry is writeable, and that it’s not being modified by another user.

 Cause:	Project Builder attempted to write out your type’s properties to the proper registry, but was unable to.  Possible causes are:

A.	You don’t have write access to your project file.

B.	Another user altered your project file.

 Action:	You can take the following action(s) to correct this error:

If A.	Check with your administrator to make sure you have access to the directory in which you’re creating your project.

If B.	Make sure that no other users are writing to your project.


Please enter a filename for the project registry.

 Cause:	You clicked Next in the Project Wizard without entering a filename for the new project.

 Action:	You must enter a filename in the Project Registry Filename text box before you can continue.


Please enter a filename.

 Cause:	You attempted to continue to the next page of the Project Wizard without entering a filename for your project file.

 Action:	Either type a name for your project in the Project Database Filename text field, or browse and select a filename before continuing.


Please enter a directory.

 Cause:	You attempted to continue to the next page of the Project Wizard without specifying a default directory for your project file.

 Action:	Either type the name of your project’s default directory in the Project Directory text field, or browse and select a directory name before continuing.


Can’t save Launcher state.

 Cause:	Project Builder attempted to write out your Launcher preferences to your preferences file, but was unable to.

 Action:	Make sure that the directory containing your preferences file can be written to.


Delete the linked-to project files, as well as the links themselves?

 Cause:	You choose Cut or Clear with a project selected in the Project Navigator.

 Action:	Click Yes to not only remove the project from the Project Navigator, but to delete the project definition file from your file system.  Click No to keep the project.


This will remove the selected item(s) from your project.  Are you sure?

 Cause:	You choose Remove Files with files selected in the Project Navigator.

 Action:	Click Yes to confirm that you want the selected file(s) removed from your project (this action will not delete the item(s) from your file system).  Click No to keep the selected files.


Please provide a script name.

 Cause:	The Delivery Wizard must have a script name to generate Oracle Installer scripts.  The script name is used internally to track your product.

 Action:	Click OK to return to the Delivery Wizard, then enter a name in the Script field.


The Project Navigator

The Project Navigator displays everything in your currently-opened projects in a hierarchical fashion, and enables you to access these items.  Click a topic to learn more:

about the Project Navigator

about project hierarchy

about expanding and collapsing nodes

deleting an object

expanding nodes

collapsing nodes

setting bookmarks

going to bookmarks


About the Project Navigator

  Related Topics

The Project Navigator provides a hierarchical view of all open projects and all the items in them.

The Project Navigator has the following components:

nodes display area	Main component of the Project Navigator.  This is the area where all objects currently available to you are organized hierarchically.  (Projects marked with a [image] are read-only.)
current object	Displays the currently selected type, connection, project, subproject, or item.  Use the drop-down list to display the object with respect to the current hierarchy.  Open projects are always listed in order of appearance in the Project Navigator; other nodes are listed only if the current object belongs to that node.  Highlighting an object in the drop-down list also selects the object in the Project Navigator.
Find field	Searches the Project Navigator for the specified text string.  If the target subproject, type, or item appears in a collapsed node, the node will be expanded.  Use the [image] and [image] icons to repeat the Find action, either forward or backward in the hierarchy.
toolbar	Contains common commands also available from several of the menus, such as Open, Cut, Copy, Paste, Build Selection, and Build Incremental.  To identify a tool, place your mouse over the button.
Launcher	Is the secondary toolbar located by default along the left side of the Project Navigator.  It enables you to organize and launch the tools you use most frequently during the development process right from Project Builder.
Status area	Divided into three sections:   - Filter, which tells you which filter is currently applied to the Project Navigator - Connection, the connection for the currently selected project - The full path name for the current project registry file, OR help hints for toolbar and menu items


About project hierarchy

  Related Topics

The Project Navigator presents your projects and the items associated with them (such as types and datasource connect strings) in a hierarchical fashion.

At the top of the hierarchy is the Global Registry, provided by Project Builder as a basis for all projects, and containing descriptions for a wide variety of file types used in Forms and Reports Developer applications.  The information contained in these descriptions includes how to open and edit files and how to package files for delivery.

Below the Global Registry is a user registry.  The user registry contains definitions for user-specific types, as well as modifications of types provided by the Global Registry.  User registries can also contain information specific to a single user’s Project Builder sessions, such as connect strings used to access different datasources.

At the bottom of the hierarchy are the project and project entries, which are the actual pointers to the files.  Depending on how you choose to view your projects, the entries either appear in a hierarchy based on type, or in a hierarchy based on the dependencies between the files.  Individual files inherit the information stored in their type definitions; the definition in the user registry, if it exists, and if not, the definition in the Global Registry.  You can also override the type information on an individual file.


About expanding and collapsing nodes

  Related Topics

The Project Navigator initially appears with only its top-level nodes visible.  A plus sign     (+) signifies that the node contains hidden subobjects (i.e., the object is collapsed).  A minus sign     (-) signifies that all subobjects are visible (i.e., the object is expanded).

You can expand and collapse nodes one level at a time, or all levels at once.


Deleting items

  Related Topics

To delete an item:

1	Click the item’s node to select it.

2	Choose Navigator [image] Delete, or click [image] in the toolbar.

If you choose the menu command, you will receive an alert prompting you to confirm the deletion.  If you choose the tool, you will not be asked to confirm the deletion.


Expanding nodes

  Related Topics

To expand a node's first layer of subnodes:

  Click the node's plus sign (+).

To expand a node and display all of its subobjects:

1	Click a collapsed node.

2	Choose Navigator [image] Expand All from the menu.


Collapsing nodes

  Related Topics

To collapse a node and hide its first layer of subnodes:

  Click the node's minus sign (-).

To collapse a node and hide all of its subobjects:

1	Click an expanded node.

2	Choose Navigator [image] Collapse All from the menu.


Setting bookmarks

  Related Topics

To set a bookmark:

1	Click the node you wish to bookmark.

2	Choose Navigator [image] Add Bookmark from the menu.

Notes:

•	You can set only one bookmark in the Project Navigator.  Each subsequent bookmark that you create replaces the previously created bookmark.

•	Bookmarks are especially useful when you have the Property Palette open and want to quickly compare the properties of two items.


Going to bookmarks

  Related Topics

To go to a bookmark:

 Choose Navigator [image] Go to Bookmark from the menu.

Note:  Choosing Navigator [image] Go to Bookmark repeatedly toggles between the current selection and the bookmark.  This is especially useful when you have the Property Palette open and want to quickly compare the properties of two items.


Property Palette

The Property Palette enables you to access the properties of the currently selected item(s) in the Project Navigator.  Click a topic to learn more:

About the Property Palette

About making multiple selections in the Property Palette

About copying properties

About toolbar commands in the Property Palette

About the icons in the property palette

Invoking the Property Palette

Closing the Property Palette

Setting properties using the Property Palette

Comparing the properties of one object to another

Copying properties from one object to another

About project and parent directories


About the Property Palette

The Property Palette has an outline-style interface that enables you to view, locate, and set object properties.

When you select an item in the Project Navigator, the Property Palette is updated to show the properties of that object.  By default, the list of properties in the palette changes whenever you select a different object.  You can freeze a specific palette by clicking [image] on the Property Palette toolbar.  To unfreeze the Property Palette, click [image].

When you need to compare the properties of two objects, you can invoke additional palettes as needed.

To ensure that the Property Palette is always displayed on top of other windows (or to prevent it from doing so), choose Tools [image] Preferences, click the Navigator tab, then check (or un-check) the Keep Property Palette on top checkbox.

The Property Palette has the following features:

Property List

The property list is a 2-column list of property names and property values.  When no objects are selected, no properties are displayed in the list.  Properties are grouped under functional headings, such as Actions and Macros.  You can select properties in the list by clicking and by navigating with the Up/Down arrow keys.  You can set properties in the property list pane by selecting the property and then typing or double-clicking as required.

Name

The Name field, located directly beneath the toolbar, displays the name of the object currently selected in the Project Navigator.  The Name field is not displayed when no objects are selected or when multiple objects are selected at the same time.

Set Property Controls

When a property is selected in the properties list, a text field, pop-list, or . . . button is displayed beside the property, as follows:

•	A text field is displayed when the current property can be set by entering a text value.  For properties that require longer text values, there is an iconic button next to the text field that invokes a modal editor.

•	A poplist is displayed for properties that are either True/False, or that have a fixed set of valid values.

•	A . . . button is displayed when the current property requires more complex values.  Clicking the button invokes a dialog where you enter the required information.


About making multiple selections in the Property Palette

You can select multiple objects at the same time by using Shift+Click or Ctrl+Click in the Project Navigator.  When two or more objects are selected, Multiple Selection is displayed at the top of the Property Palette instead of a single object’s name.

The Intersection/Union tool [image] / [image] on the Property Palette toolbar determines which properties are displayed in the property list when more than one object is selected.  Toggling between Intersection and Union changes the list of properties displayed in the Property Palette, but does not affect the setting of any property.

Intersection  The default.  Only properties common to all selected objects are displayed.

Union  All properties of every object selected are displayed.

Properties that are common to two or more objects in a multiple selection are listed only once, and the property setting is displayed as follows:

•	If the property has the same setting for all of the selected objects that have it in common, the common setting is displayed.

•	If the property is set differently for the objects that have it in common, the string *** is displayed.


About copying properties

You can use [image] and [image] in the Property Palette toolbar to copy the property settings of one object to another object.

You will most often copy the properties of an object to one or more objects of the same type. However, it is also possible to copy the properties of an object to objects of a different type.  In this case, properties that do not apply to the target object are ignored.

When you copy the properties of a multiple selection, only properties that do not have conflicting values are copied to the clipboard.  For example, if you copy the properties of three text files selected in the Project Navigator, the Edit actions are copied only if all are the same.


About toolbar commands in the Property Palette

The toolbar provides quick access to commands.  Click once on the tool for the command you want to execute.

Copy Properties	Copies the property settings currently displayed in the Property Palette to the clipboard.
Paste Properties	Pastes the clipboard property settings to the list of properties in the Property Palette.  Properties that are on the clipboard but not in the property list are ignored.
Add Property	Displays either the Add Action or Add Macro dialog, depending on the location of the current selection when the tool is clicked.
Delete Property	Removes the property currently selected in the properties list.
Inherit	Re-sets the current property to its inherited value, or to the default value.
Intersection/ Union	Toggles the Property Palette between union and intersection display modes.  This option determines which properties appear when more than one object is selected at a time (a multiple selection).  In intersection mode (the default), only properties that the selected objects have in common are displayed.  In union mode, the properties of all objects in the current selection are displayed.
Freeze/Unfreeze	Toggles Property Palette synchronization on and off.  When Freeze is off (the default), the property list is updated to display the properties of items you select in the Project Navigator. When Freeze is on, the property list is pinned and does not get updated, allowing you to compare it to other property lists.


About the icons in the Property Palette

In addition to the tools in the Property Palette toolbar, there are icons that indicate specific information about project item properties:

•	The Inherit icon [image] indicates that a property is being inherited.

•	The Override icon [image] indicates that an inherited action is being overridden.

•	The Local icon [image] indicates that the property indicates that the property was defined in the Property Palette (as opposed to being inherited).

•	The Default icon [image] indicates that the property is not yet set.


Invoking the Property Palette

To invoke the Property Palette:

•	Choose Tools [image] Property Palette.

Or,

•	Click the desired item, then choose Properties from the pop-up menu.


Closing the Property Palette

To close the Property Palette:

  This is platform-specific; close the window as you normally would on your platform.


Setting properties using the Property Palette

To set properties using the Property Palette:

1	Select the item whose properties you want to set.

2	Choose Tools [image] Property Palette.

The Property Palette displays the properties of the selected item.

3	Select the property you want to set.

You can select properties by clicking or by navigating with the Up/Down arrow keys.  When a property is selected, a text field, poplist, or . . . button is displayed next to the property.

4	Set the selected property to the desired setting.


Setting properties of multiple selections

To set the properties of multiple selections:

1	In the Project Navigator, select the items whose properties you want to set. They can be of different types and can even be in different documents.

2	In the Property Palette, click [image] to see all properties of all object or leave the tool as [image] to see only the properties the objects have in common.

3	Set the properties as desired.

Any change you make to a property setting is applied to all of the items in the current selection to which that property applies.


Comparing the properties of one item to another

To compare the properties of one object to another:

1	In the Project Navigator, select the first item so that its properties are displayed in the Property Palette.

2	In the Property Palette, click [image] to turn synchronization off and "freeze" the Property Palette.

3	In the Project Navigator, select the second item, then choose Property Palette from the pop-up menu.

A second Property Palette is displayed.  If the second window is on top of the first, drag it to move it alongside the first window.


Copying properties from one item to another

To copy properties from one item to another:

1	Select the item(s) whose property settings you want to copy.

2	Click [image] on the toolbar.

3	Select the target item(s).

4	Click [image] to paste the properties from the clipboard.


Edit Menu

Undo

Cut

Copy

Paste

Clear

Select All


Undo

Reverses the most recent operation that you performed.  For example, if you accidentally deleted an object, Undo would retrieve it for you.

Note that certain operations cannot be undone.  When this situation arises, the Undo menu command will be inactive.

You cannot select Undo within a dialog box.  To undo changes made in a dialog, click Cancel or Close in the dialog without accepting your changes.


Cut

Deletes the currently selected item(s) or text and stores it on the Clipboard.  You can then use the Paste menu command to place the contents of the Clipboard elsewhere in the Project Navigator.

Each new Cut operation causes the contents of the Clipboard to be overwritten.  When you undo a Cut operation, the previous contents of the Clipboard are not restored.


Copy

Stores the currently selected item(s) or text on the Clipboard, without deleting it (as Cut does).  You can then use the Paste menu command to place the contents of the Clipboard elsewhere in your display.

Each new Copy operation causes the contents of the Clipboard to be overwritten.  A Copy operation cannot be undone.


Paste

Places the contents of the Clipboard (i.e., the most recently cut or copied item(s) or text) on the layout in the current window.

If the Clipboard is empty, or if a paste operation cannot be performed, the Paste menu item is inactive.

A Paste operation does not alter the contents of the Clipboard.  If you wish, you can paste contents of the Clipboard  multiple times.


Clear

Deletes the currently selected item(s) or text without storing it on the Clipboard (as Cut does).

A Clear operation does not alter the contents of the Clipboard.


Select All

Selects multiple items, depending on what item and what view (Dependency or Project) are selected in the Project Navigator when this menu command is chosen.

If nothing is selected in the Project Navigator when you choose Select All, every item from the user registry down in the Project Navigator hierarchy is selected.  If a project is selected when you choose Select All, all of the items in the project are selected.  If you select an item with children, all children are selected.  For example, if you select an .fmx file and choose Select All, the .fmb that is the input to the .fmx file’s generation is selected also (as long as you are looking at the Dependency View).


Help Menu

Project Builder Help Topics

Cue Cards

Quick Tour

Manuals

About Project Builder


Project Builder Help Topics

Invokes the Project Builder help system.  If applicable, the help system uses the standard help interface for your operating system.


Manuals

Invokes the Forms Developer online documentation.


Cue Cards

Invokes the Cue Cards, which are instructional cards providing assistance on performing many basic Project Builder tasks.


Quick Tour

Invokes the Quick Tour, an overview of tools available with Project Builder and the basic steps involved in the project-building process.


About Project Builder

Displays the About Project Builder dialog box, which contains information about the Project Builder executable, including the version number and copyright notice.  For more information, see About Project Builder Dialog Box.


File Menu

New

Open Project

Close Project

Import Project

Export Project

Administration

Print Project Info

Page Setup

Most Recently Accessed Files List

Exit


New

Creates a new project item.

This menu item shows the following submenu items:

Project	Displays the New Project dialog, in which you can define a new project file.  The New Project dialog is a standard file dialog; use it as you would any file dialog on your system.
Subproject	Displays the New Subproject dialog in which you can select a default directory for a new subproject.
Connection	Displays the Add Connection dialog, in which you can specify a new connection.
Type	Displays the Module Type Wizard , which helps you define a new type.
Action	Displays the Add Action dialog, in which you can define a new type.
Macro	Displays the Add Macro dialog, in which you can define a new type.


Open Project

Displays the Open Project dialog, which you can use to retrieve an existing project file.  Several projects can be open simultaneously.

The Open Project dialog is a standard file dialog.  Use it as you would any file dialog on your system.


Close Project

Dismisses the current project after automatically saving it.


Import Project

Displays the Import Options dialog.  Import Options enables you to import projects and registry information.  For more information, see Import Options Dialog Box.


Export Project

Displays the Export Options dialog.  Export Options enables you to export projects and registry information.  For more information, see Export Options Dialog Box.


Administration

This menu item shows the following submenu items:

Check Out	Invokes the check-out dialog for your source control system.
Check In	Invokes the check-in dialog for your source control system.
Source Control Options	Invokes the options dialog for your source control system.
Set Project Password	Invokes the Set Project Password dialog so you can set a password for the currently selected project.


Print Project Info

Displays the Print Project Reports dialog, which enables you to print a report containing information about selected projects.  For more information, see Print Project Reports Dialog Box.


Page Setup (Print Setup)

Displays your platform’s Print dialog.  Fill it out as you normally would.


Most Recently Accessed Files List

Lists the four most recently accessed project files, in descending order.


Exit (Quit)

Ends your Project Builder session.

All open projects are closed, and the session is ended.  Projects are automatically saved.


Project Menu

Add Files to Project

Add Directory to Project

Build Selection

Build Incremental

Build All

Preview Actions Mode


Add Files to Project...

Displays the Add files to Project Dialog Box.  This is a standard file dialog; use it as you would any file dialog on your system.

Note:  In Windows, you can only select files from one directory at a time. In addition, Windows imposes a limit on the number of files you can select in the file dialog at any one time.  The maximum number of files depends on the length of the filenames.  You can select approximately 250 files with long file names, and approximately 600 files with names limited to the “8.3” notation.

If you select too many files, nothing will be added to your project.  Click [image] to display the file dialog, add fewer files, and repeat as necessary.


Build Selection

Builds all files selected in the Project Navigator.  The files are built based on the particular actions (usually Compile) associated with their types.


Build Incremental

Detects all out-of-date files in the selected project(s) and builds them based on the particular actions (usually Compile) associated with their types.


Build All

Forces a build on all buildable files in the selected project(s).  The files are built based on the particular actions (usually Compile) associated with their types.


Add Directory to Project

Displays the Add Directory to Project dialog box, through which you can add an entire directory to the currently select project.


Preview Actions Mode

Click to enter Preview Actions mode, which you can use to test actions and macros.  While in Preview Actions mode, invoked actions are displayed to the screen, rather than actually executed.  In this way, you can review what the action will do before actually invoking it.


Tools Menu

Project Wizard

Delivery Wizard

Property Palette

Preferences


Project Wizard...

Displays the Project Wizard, which enables you to easily and quickly define new standalone projects and/or subprojects.  For more information, invoke the Project Wizard and review the online help.


Module Type Wizard...

Displays the Module Type Wizard, which enables you to easily and quickly define more types.  For more information, invoke the Module Type Wizard and review the online help.


Property Palette

Displays the Property Palette.  For more information, see About the Property Palette .


Preferences

Displays the Preferences dialog, which enables you to customize several aspects of your Project Builder session, including the project and Launcher defaults.  For more information, see Preferences Dialog Box.


Delivery Wizard

Displays the Delivery Wizard, which you can use to create a staging area for your finished product, then copy or FTP your files to it.  The Delivery Wizard can also create the necessary scripts to make your product is installable through the Oracle Installer.   For more information, see About the Delivery Wizard .


Navigator Menu

Project View

Dependency View

Filtered Views

Manage Filters

Expand

Collapse

Expand All

Collapse All

Create

Delete

Add Bookmark

Go To Bookmark


Project View

Toggles the view in the Project Navigator to the project view.  For more information about the project view, see About the project view.


Dependency View

Toggles the view in the Project Navigator to the dependency view.  For more information about the dependency view, see About the dependency view.


Expand

Expands the currently selected node (if collapsed) in the Project Navigator.


Collapse

Collapses the currently selected node (if expanded) in the Project Navigator.


Expand All

Fully expands all collapsed nodes in the Project Navigator.


Collapse All

Collapses all expanded nodes in the Project Navigator.


Create

Creates a new item that is the same type as the currently selected item.


Delete

Deletes the currently selected item following confirmation.


Add Bookmark

Places a reference mark at the currently selected node.  This allows you to work with other items in the Project Navigator, then return to the marked node by choosing the Go to Bookmark menu command.


Go To Bookmark

Selects the node that was previously marked by choosing the Add Bookmark menu command.


Filtered Views

Presents a list of currently defined filters which you can apply to the Project Navigator.


Manage Filters

Displays the Manage Filters dialog box, through which you can create, edit, and remove filters.


Can I update my project without closing and reopening it?

I’ve been informed by my project administrator that he’s updated a registry file.  How do I pick up the changes without closing my project and opening it again?

Change views; in other words, if the Project Navigator is displaying your project using the dependency view, choose Navigator [image] Project View, and if the Project Navigator is displaying your project using the project view, choose Navigator [image] Dependency View.


How do I associate my PL/SQL library with the correct type of document?

I have a PL/SQL library that’s referenced by a display, but it’s listed in my project as a Forms Library Document.  Why is this, and how do I correct it?

One of the strengths of Oracle Developer is its ability to share PL/SQL.  Documents created by each different tool can reference the same PL/SQL.  As a result, all PL/SQL looks the same to Project Builder, which has no way to differentiate between libraries referenced by forms, reports, or displays.  Project Builder’s response is to assign PL/SQL by default to Form Builder.

To correct this, you can create custom types for PL/SQL referenced by Graphics Builder and Report Builder, and manually assign the PL/SQL documents to the correct types.


How do I create a dependency not already detected by Project Builder?

My report references a PL/SQL library, but the project dependency tree only shows the relationship between the .rdf file and the .rep file.  How do I include the library in the dependency tree?

You can easily establish dependencies manually.  Select the file with the dependency (in this case, the .rdf file), then add the file it references (in this case, the library).  This establishes the dependency with Project Builder.


What's the best way to manage project files in a team environment?

My team needs to set up a project we can all work on, but we don’t want to be stepping on each others’ toes, developmentally speaking.  How should we set up our project?

Project Builder uses your operating system’s own security features to protect your project files from being deleted or overwritten, so it’s best to set up your project with that in mind.  If your team is networked, we recommend that you install the Global Registry to a shared directory so that developers can access a single copy.  This ensures that all versions of the Global Registry in use are up-to-date.  If you choose this option, however, installing to a directory to which only the Project Administrator has write access prevents the Global Registry from accidentally being corrupted.

For an even higher level of protection for your Global Registry, you can set the file to read-only.  That way, the type definitions would be available for your Project Builder sessions, but could not be modified by anyone, including the Project Administrator.

In addition, copying over outdated project files with an updated version is possible, but makes maintenance extremely difficult.  We recommend that developers import modifications to projects.


What are some good uses for macros?

We’ve just installed Project Builder, and we understand that macros can be very useful, but we’d like a few examples to get us started.

Macros have many uses.  Just a few ideas:

•	You can use macros to modify actions quickly and conveniently.  For example, you can define two different macros containing two different sets of runtime options for your C compiler, one for debugging purposes, and one for optimizing your code, then substitute one macro for the other in the Build action as necessary.  You can modify the action on the type, to affect all files, on the project, to affect project files, or on individual files themselves.

•	You can also use a macro to store all runtime options, and modify the macro as necessary.  Project Builder has done this for you already with the Form Builder runtime options, defining the macro F50RUNOPTS.  To see this macro, select the Forms Executable type in the Global Registry, display its properties, and examine the available macros.

•	You can set certain properties on a per-project basis.  For example, you can set the PACKFILE macro for individual projects (this macro specifies the name of the zip or tar file you want your application packaged as).

•	You can use a macro to specify command-line options that span filetypes.  Connecting to your datasource is one example.  Project Builder has already defined the macro ORACONNECT for you, and included that macro in relevant actions, such as invoking all the Oracle Developer tools.

You can define a macro to invoke the command line interpreter for your platform (for example, {SHELL} = c:\windows\command /c) and use it when defining actions that you want executed by the command line interpreter.


How do I indicate relative pathnames?

I’m going to be adding files stored on a server to my projects, and I doubt if everyone on my team has the Product disk mapped as drive Q.  How do I strip off the drive and only use the relative path?

If you select files to add to your project using the Add Files dialog, the dialog removes the directory reference from the path automatically if your files are in the project directory.  In effect, this ensures that the location of your files is relative to the project location.

In all other instances, the Add Files dialog forces the full path to be saved as the value of the Filename property for the project item you're adding to your project.  To specify a relative path, select the project item in the Project Navigator, open the Property Palette, and manually modify the path.

Note that the project location, like the filename and path of each included project item, is a property of the project.  If different members of your team have the project location mapped to different locations, they will need separate copies of the project file with different values for the Project directory: Q:\myproj, R:\, etc., as appropriate.  See About sharing projects for more information.


How can I check if my macros are working?

One of my macros appears to be causing an action to fail, but I can't really tell, since I can't see the string for the expanded macro.  What should I do?

You can see the string for the expanded macro.  Select the Project menu, then select Preview Actions Mode.  A check appears next to the menu item to indicate Preview Actions mode is activated.  When you invoke an action while in Preview Actions mode, the action is not actually executed.  Instead, the action is displayed to the screen, with all parameter values and macros fully expanded.


How do I get the Navigator to update properly?

Sometimes when I take an action that should be reflected in the Project Navigator, nothing happens.  How do I get the Navigator to update properly?

Change views; in other words, if the Project Navigator is displaying your project using the dependency view, choose Navigator [image] Project View, and if the Project Navigator is displaying your project using the project view, choose Navigator [image] Dependency View.


About error messages

Each component has a unique error message prefix:

Prefix	Component
FRM	Form Builder
OG	Graphics Builder
PDE	Procedure Builder
REP	Report Builder
BRW	Query Builder
BRS	Schema Builder
NX, XBD	Translation Builder
Note:  On UNIX, Report Builder sets the value of the $status variable that appears in some messages to be 0 (successful completion) or 1 (unsuccessful completion).

In addition to the Forms Developer or Reports Developer error messages, you may encounter error messages from other sources:

Prefix	Source	Help
ORA	Oracle Server	Oracle8 Error Messages manual
PLS	PL/SQL	Oracle8 Error Messages manual
NET	SQL*Net	Oracle Network Products Messages manual
The Oracle8 Error Messages manual contains error message codes and descriptions for all database utilities such as SQL*DBA, SQL*Loader,SQL*Module,Export, Import, and the Oracle Precompilers.

System-specific error messages are documented in your operating system documentation.


Calling Oracle Support Services

Some errors (that is, internal errors) will require that you call Oracle Support Services to report the error.  When you call Support Services, please have the following information at hand:

1	Your name, company, and Oracle Support ID number.

2	The hardware, operating system, and release number of the operating system you are using.

3	The complete version number of the component you were using when you encountered the error, including revision number and port release number, if any.  (If you are unsure of the component's version number, choose Help [image] About.)

4	All other products (and version numbers) in use when you encountered the error (for example, Oracle 8.0.4).

5	If you encountered one or more error messages, the exact message numbers and descriptions, in the order they appeared.

6	A description of the problem, including any unusual conditions.

7	The problem severity, according to the following codes:

•	1:  Program not usable.  Critical impact on operations.

•	2:  Program usable.  Operations severely restricted.

•	3:  Program usable with limited functions.  Not critical to overall operations.

•	4:  Problem circumvented by customer.  Minimal effect, if any, on operations.


Abnormal conditions

Sometimes you may encounter an error that is known as an abnormal condition, which may arise from one of the following causes:

•	Someone has done something that prevented your application from completing the requested task.  For example, if someone bypassed the user interface and changed data in a database table, they might have typed an invalid value.

•	A software bug prevented the requested task from completing.

Action   First contact your system administrator to determine if the message was caused by something other than Forms Developer or Reports Developer.  If you determine that the message was not the result of user error or a system problem, then contact Oracle Support Services.


File security and restrictions

  Related Topics

Project Builder uses your operating system environment to determine the security of modules stored in files.  The way in which you acquire permission to access modules stored in files is operating system-dependent.  For more information, refer to your system documentation.


Password security

  Related Topics

Password security has been significantly enhanced for Project Builder R6.0.  In this release, all passwords displayed in dialog or status boxes are represented by asterisks, and all passwords stored in project connections are encoded.  For example, both the status box for the Build action and the dialog displayed when you run an action in Preview Actions mode display the database password for the connection as asterisks.  In addition, if you export a project and examine the resulting export file with a text editor, the password is encoded.

Project files can also be protected by passwords, to prevent users from gaining access to Oracle passwords by opening the project database.  See Related Topics for more information.


PJ10

  Related Topics

Use the PJ10 executable to invoke Project Builder, where you create and maintain projects.

Syntax	pj10 {ws-options} {reg_file_name}

where:

{ws-options}	(Optional)  Are options recognized by your windowing system, such as -bg on Motif.  For more information on possible options, see the information for your windowing system.

{reg_file_name}	(Optional)  Is the name of your user registry file.  This defaults to pjuser<lang>.upd.

Note:  Actual invocation of Project Builder and the name of the executable are platform-dependent.  See the section in the help entitled Platform Information for more information about how to start Project Builder on your platform.


Project Builder registry files

  Related Topics

Project Builder ships two registry files:

Name	File
types<lang>.upd where <lang> indicates the current language.	The Global registry file, containing definitions of all global types.  This file may be globally writeable on your platform by default.  If you want to limit access to this file, make sure it is read-only or has limited permissions
pjuser<lang>.upd where  <lang> indicates the current language.	The default user registry file, in which your personal project information is stored.


File naming conventions

  Related Topics

The following extensions are assigned to Project Builder files on platforms where extensions are required:

Extension	Content Type
upd	The extension assigned to a Project Builder registry file.
upx	The extension assigned to a Project Builder export file, created when exporting project information using the Export Options dialog.


General action usage

  Related Topics

Actions are command strings that apply to project items of given types.  To define an action, use the Add Action dialog to name your action and equate it to the command string you want executed when you choose the action.  The content of the command string is platform-dependent with one exception:  you can also include Project Builder macros, enclosed by braces ({}).  For more information on using macros, see General macro usage.

To use an action, select the item in the Project Navigator you want to act on and right-click to display the pop-up menu.  Choose the menu item for the action.

If the action is a global action such as Build, Deliver, or one of the source control actions, you can also select the action from the main menu.

Usage Notes

•	Actions can be named using any combination of alphanumeric characters and underscores.  For example, My_Acti0n is valid, while My&acti@n is not.

•	If you want to use keyboard mnemonics, when typing the description for the action in the Add or Edit Action dialog mark the key you want to use by placing an ampersand (&) in front of it; for example if you specify &Print as the description, the P will furnish the mnemonic.  If you want to include a non-mnemonic ampersand in the command, use two ampersands (&&).


Action types

  Related Topics

There are three types of actions:

•	pre-defined actions such as Print and Open, which apply to specific types

•	user-defined actions

•	global actions such as Build and Deliver, which can act across file types. Global actions are a subset of pre-defined actions


Pre-defined actions

  Related Topics

Description  Actions shipped with Project Builder and automatically available via either menu items or tools on the toolbar.

Usage  In the Project Navigator, select the item you want the action to apply to, then choose the corresponding menu item from either the pop-up menu or the main menu.

Usage Notes

•	Pre-defined actions vary from type to type.  To determine what pre-defined actions are available for a specific type, select that type in the Project Navigator, display the Property Palette, and view the entries under the Actions node.

•	The command strings for pre-defined actions are platform-dependent and are either based on tools commonly available on the platforms, or take advantage of commands already registered by the operating system for the different types; for example, on Windows, the pre-defined action Open will invoke the Open command already associated with that file type in the Windows Explorer.  For more information on how actions are implemented on different platforms, see the section in the help entitled Forms Developer Platform-specific Information.

•	Unlike built-in macros, pre-defined actions are completely customizable.  You can edit pre-defined actions in the Edit Action dialog to change such characteristics as the tools invoked to perform the actions and the options included in the command strings.

•	The maximum length of the command string comprising an action is determined by platform requirements.  Refer to the documentation for your platform for more information.


User-defined actions

  Related Topics

Description  Custom actions you define.

Usage  When defining the action, make sure Add to right-click menu is selected.  In the Project Navigator, select the item you want the action to apply to, then choose the corresponding menu item from the pop-up menu.

Usage Notes

•	When exporting projects to different platforms, remember to edit your actions to conform to syntax requirements and to use tools available on the new platform.

•	The maximum length of the command string comprising an action is determined by platform requirements.  Refer to the documentation for your platform for more information.

•	If your platform already recognizes commands associated with file types, you can take advantage of these in your actions.  For example, if you want to create a Play action for video files on Windows and the Windows Explorer has already associated a command with video files, you can use the Windows command by enclosing it in square braces in your action definition, like this:  [play {n}] where {n} is the built-in macro which evaluates to the name of the item you’ve selected in the Project Navigator.  For more information, see the section in the help entitled Forms Developer Platform-specific Information.


Global actions

  Related Topics

Description  Actions included with Project Builder that work across projects and files, adapting themselves to varied file types.  The global actions are a subset of the pre-defined actions, and include the following:

•	build actions (Build Selection, Build Incremental, Build All)

•	packaging action (Deliver)

•	source control (Check In, Check Out, Get RCS Information, Lock File in RCS)

Global actions can accept input items (generally the files that are acted upon to create the result; for example, the input item for a .rep file is an .rdf file, while the input item for an .fmx file is a .fmb file).  Input items are built into targets; targets are built from input items.  The input item(s) are represented by one or more built-in macros in the action.

Usage  In the Project Navigator, select the item you want the action to apply to, then choose the corresponding menu item from either the pop-up menu or the main menu, or the toolbar (for Build Selection and Build Incremental).

Usage Notes

•	The maximum length of the command string comprising an action is determined by platform requirements.  Refer to the documentation for your platform for more information.

•	Global actions, like the other pre-defined actions, are completely customizable.  You can edit pre-defined actions in the Edit Action dialog to change such characteristics as the tools invoked to perform the actions and the options included in the command strings.  For example, you can install the source control package that best suits your needs, and edit the source control actions to invoke it.

•	Some global actions can take multiple input items, for example, the Build action for .exe files (appropriate types for input items include .obj files, .lib files, etc.).  For more information, see Input items.

•	Remember when packaging your files for delivery that the actual Deliver action accepts all file types; how you determine what actually gets packaged is by setting the Deliver File property to Yes for the item you want to include in the package.  (This is true even if you use the Delivery Wizard instead of the Deliver action to package your files.)  To do so, select the item in the Project Navigator, display the Property Palette, and edit the Deliver File property.


Input items

  Related Topics

Description:  Input items are the files used to build targets.  For example, an .fmb is the input type for an .fmx file.

Usage  Use with the global actions Build, Deliver, and the source control actions.  To specify an input item, select the project item you want to modify (it can be a type or file) and display the Property Palette.  Edit the action you want to modify.  In the Edit Action dialog, click the Inputs tab.  Choose the type you want to include from table, or if you don’t see the type you want, click Add to list and choose the type there.  When you’ve selected the proper type, click Insert into command.  The input item is added to the command string, represented by the number corresponding to the item in the table.  (Even if the executable can accept more than one input of this type, only one number appears in the command string.)

If the action will accept several different input types, repeat as necessary .  Be careful where your cursor is located, as the input item is inserted at that point.

Usage Notes

•	Because input items cannot have input items, you cannot specify any of the numeric built-in macros ({1} -{9}) as the argument format.  You can, however, use any of the remaining applicable built-in macros; for instance, you can specify an argument of {b} to add the input’s base filename to the command line.

•	Certain targets, such as object files, can be created using multiple input types.  Such targets have a separate Build From <type> action for each type of input item.


About the Delivery Wizard

  Related Topics

Once you’ve developed and tested your project (the application that is a collection of forms, reports, graphics, and PLSQL modules), you need a way to package and deploy it on your target environments.  The Delivery Wizard can help you accomplish these tasks by providing the means to:

•	Copy or FTP your completed project, or product, to a staging area .  From the staging area, you can copy or archive your files to a distribution medium, or make them available internally.

•	Generate the necessary scripts so your product is installable on Windows 95 and NT through the Oracle Installer.  You can also package the Forms or Reports Developer runtime environments with your project, so your users can install the entire package [image] your application, plus the required runtime environment [image] from a single invocation of the Oracle Installer.

•	Run your customized Deliver action against a project.  While in Release 1.0 you ran the Deliver action from the File [image] Administration menu, in later releases the Deliver action is activated exclusively through the Delivery Wizard.

When you finish delivering your files, the Delivery Wizard saves the information you supply as properties of the delivered project.  The next time you deliver the project, you won’t have to enter or modify information unless you want to.

If you deactivate the Show this page next time check box, then later change your mind, choose Tools [image] Preferences, then activate the Show Delivery Wizard Welcome check box.


The area on your pc or network where files are prepared, then copied to the distribution media.


The set of media (for example, tapes, CDs, or diskettes) from which users install your application.


Setting up your delivery

  Related Topics

1	Select the project you want to deliver.

The default project is the one that was selected when the Delivery Wizard was invoked.  (If an item was selected, the project closest to the item is considered the default.)  The drop-down list displays all the projects and subprojects you have open in your Project Navigator, indented to reflect project hierarchy.  If you don’t see the project you want to deliver, exit the Delivery Wizard and make sure the project is open.

Tip

2	Click the radio button that indicates whether you want to:

•	Deliver only the files that have changed since the last delivery.  The Delivery Wizard keeps track of the delivery timestamp for each delivered file within a project.

•	Deliver all the files in the project.  Only the files that have the Delivery property set to Yes in the Property Palette are eligible for delivery.

Regardless of which option you choose, you will have a chance to refine the list of files to deliver on a later panel.


If you haven’t already created a project for the files you want to deliver, it’s easy to do so.  Exit the Delivery Wizard, then choose Tools [image] Project Wizard.  The Project Wizard guides you through the necessary steps for creating a project.  When you finish, re-invoke the Delivery Wizard.


Choosing a delivery method

  Related Topics

1	Click the radio button that describes which delivery action you’d like to perform:

•	Create a local staging area and copy your project files to it.  From the staging area, you can copy the product to your distribution media, or make the files available internally.

•	Create a staging area, copy your files, and create Oracle Installer scripts to make your own product installable with the Oracle Installer.  The completed scripts are placed in your staging directory.

•	Use file transfer protocol (FTP) to copy the files from your Windows environment to a host machine.

•	Run your own customized Deliver action as defined in the Property Palette.

2	If you chose one of the first three bullets, enter a location for your staging area (the Deliver action operates on the project directory).  If your staging location is on Windows, you can click Browse to select a location.

Notes:

•	By default, the staging area is the directory of the project being delivered.

•	If you have delivered to this staging area before and you are creating Oracle Installer scripts,  be aware that the scripts are overwritten for each delivery, not updated.  Therefore, if you are creating a patch installation, it’s a good idea to designate a new staging area for the patch, rather than using the original staging area.  That way your customers can receive the latest version of your product by installing from the original staging area first, then the new patch staging area.


Generating Oracle Installer scripts

  Related Topics

1	Enter a unique name for your product in the Script field.  The name must be 8 characters or less.  By default, the script name is the same as the project name.

The script name is prefixed to the Oracle Installer scripts.  For example, if you enter the script name Prod, your Oracle Installer scripts are named prod.MAP, prod.VRF, prod.INS, and prod.DEI.

The script name is also entered as a variable name in the Windows Registry, under the Oracle key.  Its value is the final destination directory for your product, wherever the user installs it.

2	Optionally, enter a name for the product as you want it to appear on the Windows Start menu in the Program Group field.  You will have an opportunity to customize the Program Group’s submenu on a later panel, which asks you to provide names for individual files within the project.

3	Enter a version number for the product in the Version field.

Express the version as a numeric value in the form n(n)(.nn)(.nn)(.nn)(.nna).  By convention, the alphabetic character at the end is reserved for patches.

Examples: 1, 1.0, 16.41, and 1.1.1.1.1b are all valid values.

4	To package the Forms or Reports Developer runtime environments with your product, click Yes.

If you click Yes, when your users invoke the Oracle Installer they will see your application listed in the Available Products pane, as well as the Forms, Reports, and Graphics runtime environments.

Note:  To hide an entry [image] for example, your application does not include any reports so you don’t want to display Reports Runtime [image] edit the PRD file using any text editor and set the Visible? field to False.  See Related Topics for more information about the PRD file.


Selecting files for delivery

  Related Topics

Use the arrows to ensure that all the files you want to copy to the target location appear in the Files to deliver pane.  The files in the Files in project pane will not be delivered.

•	If you clicked Deliver Incremental, only the files that have been updated since your last delivery appear in the Files to deliver pane.  Of the rest of the files in the project, only the ones with the Delivery property set to Yes appear in the Files in project pane, because only those files are eligible for delivery.  If you wish to change this setting, exit the Delivery Wizard, use the Property Palette to change the setting, then re-invoke the Delivery Wizard.

•	If you clicked Deliver All on the first panel, by default all the deliverable files in the project appear in the Files to deliver pane.  If you decide not to copy a file, use the left arrow to move the file to the Files in project pane.


Specifying target locations

  Related Topics

Specify where you want the Oracle Installer to install your project files on the user’s machine.

1	If you wish, change the default destination in the Destination directory and filename field.

Along with %PROD_HOME%, you may include these Oracle Installer variables in this field:

•	%ORACLE_HOME%

•	%WIN_HOME%

2	If you want a file to appear on the Program Group’s submenu, enter a name in the Start menu label field.

For example, you may want to include just the name of the file, as in README.TXT, or you may want to create more descriptive labels, such as Forms 5.0 for F50gen32.exe.  Start menu labels must be unique within a Program Group.


Setting environment variables

Create environment variables for your product.  The Oracle Installer enters these in the Windows Registry under the Oracle key when users install your product.

1	Click Add Row to insert a row.

Note:  If you decide not to create a variable after inserting a row, be sure to delete the row using Remove Current Row.  The Delivery Wizard issues an alert when you try to move to the next screen with an empty row.

2	Enter a name for the variable in the Name field.

White spaces within variable names are not permitted.

3	Specify a value for the variable in the Value field.  If you want to include a macro defined for the project, click Insert Macro into Value.  The macro you select is appended to whatever is currently in the Value field, although you can add some characters after it.

As you enter a value, the Content field shows the expansion of the macros in the Value field, based on the project’s current settings in the Property Palette.

For example, suppose you define a variable called HelpFile and enter a value of {f}, which represents the help file name.  In the Property Palette, f is defined as upc60.hlp.  When the user installs your project, the Oracle Installer places a variable called HelpFile in the Windows Registry and sets it to the value pj10us.hlp.

4	To append the value to an existing value, enter Yes in the Append field.  To overwrite an existing value, or to explicitly define a value, enter No in this field.  A blank field is not permitted.

For example, if you’re adding a name to the user’s file path, you want to set Append to Yes.

To insert a row, select a row and click Add Row.  The new row is inserted after the selected row.

To delete a row, select the row and click Remove Current Row.


Choosing an FTP connection

Enter the information that describes the FTP connection to which you want to copy your files:

Username	Name of the FTP connection.  For an anonymous connection, enter anonymous.
Password	Password.  If you are using anonymous FTP, use your email address as the password.
Account	Optional.
Hostname or IP address	Name or IP address of the host machine. Examples:  xworld.us.oracle.com                       144.25.83.103
Port	Internet port number on the remote machine where the FTP service (daemon) is registered.


What's next?

The final panel summarizes the delivery information you have specified for this project or group of files.  You now have three choices:

•	Click Finish to copy or FTP your files to the staging area, run the Deliver action, or copy the files and create Oracle Installer scripts. The settings you specified in the wizard [image] except Deliver All vs. Deliver Incremental [image] are saved as part of your project.  The next time you select this project to be delivered, the Delivery Wizard panels will be filled in just as you specified them here.

Note:  Although the Delivery Wizard settings are saved as part of the project, they do not appear in the Property Palette.

•	Click Cancel to exit the Delivery Wizard without delivering the project and without saving the settings.

•	Click Back to return to the preceding panel in the wizard and further refine your settings.


About the Oracle Installer scripts

  Related Topics

The Oracle Installer scripts allow you to install an application through the Oracle Installer.  In Project Builder Release 1.0, you may have used the Oracle File Packager to create these scripts, or you may have created them manually.  The Delivery Wizard replaces and extends the capabilities of the Oracle File Packager.

The Oracle Installer scripts are prefixed with the name you supply in the Delivery Wizard’s Script field.  There are four scripts:

name.MAP	Lists all the files that make up an application, including the files to be copied to the user’s machine, the directories to which they are copied, the program group that will hold the program item(s), and so on.
name.VRF	VeRiFies that all the correct dependencies are identified and installed.  For example, by specifying that your application depends on Forms Runtime, your application’s installation process automatically detects whether Forms Runtime is already present on the user’s machine.  If it is not, Forms Runtime is installed.
name.INS	INStalls the files that make up an installable component, sets any needed environment variables, and registers the product with the Oracle Installer.
name.DEI	DEInstalls the files that make up an installable component.  It also removed environment variables and unregisters the component after successful deinstallation.
To see sample Oracle Installer scripts, see /DEPLOY/RELEASE/FORWIN95/YOURAPP/FORMSAPP. This directory is installed during Forms or Reports Developer installation, so if you don’t have it on your local machine, check your LAN area or the Forms or Reports Developer distribution media.


About the PRD file

  Related Topics

The PRD file lists all the installable components in a given staging area.  It also identifies the base filename and location for the Oracle Installer scripts of each component.  In other words, the PRD lists all the files that appear in the Available Products pane of the Oracle Installer.

There is one PRD staging area, per platform.  When you tell the Delivery Wizard to create Oracle Installer scripts for a delivery, two PRDs are created for you:  WIN95.PRD, for Windows 95, and NT.PRD, for Windows NT. Both PRDs are placed in your staging area.

The fields in the PRD file are as follows:

Column Name	Description
####	Product number.  You should not have to modify this field.
Product	The Script name, as specified in the Delivery Wizard.
Parent	Leave as root.
Filename	Base filename of your MAP, VRF, INS, and DEI installation scripts.  Same as the Script name field.
Version	Version number of your application.
Interface label	Name of your application as it appears in the Available Products window of the Oracle Installer.
Location	Relative path to the directory that contains the Oracle Installer scripts and all the files that make up your application.
Size	Total size of the installable component.
Visible?	Controls whether the component appears in the Available Products pane in the Oracle Installer.
Selected?	Controls whether the component is selected in the Available Products pane in the Oracle Installer.
Open?	Used for parent/child components.
Description	Describes your application.
Volume	Should match what appears in the Filename field.


Any product (for example, Form Runtime, the GUI common files, and so on) that has its own set of Oracle Installer scripts.


Delivering multiple applications

  Related Topics

If you have multiple applications for your customers to install through the Oracle Installer, here are some delivery options to consider:

•	Create a multi-step installation process .  Your internal customers install applications from many different staging areas, each of which has its own PRD file.  This option works well if you need to distribute many Forms and Reports Developer applications, and if you are not distributing externally.

•	Create a one-step installation process .  Your customers install the application and the Forms or Reports Developer Runtime environments from a single invocation of the Oracle Installer.  This approach is more convenient for your internal customers than a multi-step process; however, if you are delivering to external customers, it is the only option.


Creating a multi-step installation process

  Related Topics

To create a multi-step process:

1	Run the Delivery Wizard for each application, naming a different staging area for each.

Assuming the Forms or Reports Developer Runtime environments are not available elsewhere, tell the Delivery Wizard to include them with one of your applications.

2	Tell your customers to click ORAINST.EXE or SETUP.EXE to bring up the Oracle Installer, click From…, then navigate to your staging area.   Your product will appear in the Available Products pane.

Which is it, ORAINST.EXE or SETUP.EXE?  And how can we be sure that the ultimate users have access to it?


Creating a single step installation process

  Related Topics

To create a single step process:

1	Run the Delivery Wizard for the first application.  If delivering externally, or if your internal users do not have access to the Forms or Reports Developer Runtime environments elsewhere, include them as part of this delivery.

2	Run the Delivery Wizard for the next application, choosing a new staging area.

3	Copy the line from the second PRD into the first PRD, thus creating a master PRD.

4	Run the Delivery Wizard for each of the remaining applications, each time choosing a new staging area.  When the delivery process completes, copy the line from the new PRD into the master PRD you created in step 1.

5	When you have run the Delivery Wizard for each application, do one [image] or both [image] of the following:

•	Tell internal customers to double-click SETUP.EXE in the staging area you created in step 1.  Because the Oracle Installer is invoked where the master PRD resides, all of your applications will appear in the Available Products panel.

•	For external customers, copy all the staging areas, including the Oracle Installer scripts, to your distribution media.  Do not copy the PRDs from each staging area; rather, copy only the master PRD you created in step 1.  It includes all the information you need to install your applications with the Oracle Installer successfully.


About Oracle Installer variables

  Related Topics

While there are many Oracle Installer variables, only a few are important to understand:

Variable	Description
%ORACLE_HOME%	The directory in which all Oracle products are installed.  Defaults to ORAWIN95 on Windows 95 platforms and ORAWINT on NT platforms, although the user can override this in the Oracle Installer.   This variable is entered in the Windows Registry; thus, your applications can refer to it.
%PROD_HOME%	The directory into which a particular Oracle product is installed.   Defaults to %ORACLE_HOME%/script name, where script name is the name you enter in the Delivery Wizard’s Script field.  The user can override the default value in the Oracle Installer.   This variable is not entered into the Windows Registry. However, the variable script name, which has the same value, is.  For example, suppose you enter PROD in the Delivery Wizard’s Script field.  The default destination directory in the Oracle Installer is C:\ORAWIN95\PROD (assuming a Windows 95 install).  If the user changes the destination to C:\ORAWIN95\MYAPP, the variable PROD (as well as %PROD_HOME%) is set to C:\ORAWIN95\MYAPP.
%WIN_HOME%	The directory into which Windows 95 or Windows NT is installed.


About the Project Wizard

  Related Topics

The Project Wizard provides a quick and easy alternative to creating projects using various Project Builder dialogs.  The Project Wizard leads you, panel by panel, through the steps necessary to define a project or sub-project.  When you finish creating your project, Project Wizard can help you start adding files to it.

Note:  If you do not want to see the Welcome screen each time you invoke Project Wizard, make sure the Display this screen next time check box is unchecked.  (If you change your mind later and want to re-instate the Welcome screen, select Tools [image] Preferences, click the Display tab, then check the Show Project Wizard Welcome screen check box.)


Defining the project or subproject

•	Click the radio button that describes what you are creating:  a project or a subproject.  A sub-project is a project that falls under a larger project.  For example, you might create a sub-project for a particular form and its menus that make up a small part of a larger application.  Hint


It is recommended that you create sub-projects to mirror the sub-directories in your project directory.  For example, if your project directory contains two sub-directories, IMAGES and MENUS, you can create two sub-projects by those names to manage the files within those directories.


Naming the project registry

Your first job in creating a project is to define the project registry file, which stores both the project’s properties as well as information about project item relationships and dependencies.

•	Either type a name for your new project registry file, or click Browse and use the file dialog displayed to select a file to overwrite.  By default the extension for project registries is .UPD, which is added for you.


Choosing a title and directory

1	Enter a title for your project or sub-project in the Title field.  This is the name under which your project appears in the Project Navigator, and may be different from the internal project registry name you chose on the last panel.

2	Either type a name for your project’s default directory, or click Browse and select one using the directory listing provided.  The project directory is the location where your project files will reside.  Click OK to confirm your choice.

Note:  While this field is optional, it is strongly recommended that you provide a project directory.  If you do not, all files added to the project will be added under absolute path names, rather than relative path names.  This makes sharing your projects with other users difficult.  See About sharing projects for more information.


Specifying a connection

Specify the default database connection for your project.  For example, if the forms and reports in your project are based on information stored in the database SALES, specify a connection that accesses SALES.  When you double-click a form or report in the project, the form or report will open and automatically be populated with the appropriate SALES data.

Select one of these methods for choosing a connection:

•	Select a pre-defined connection from the Connection drop-down list.  The list contains all the connection previously defined through the New Connection dialog.

•	Enter the connection information in the Username, Password, and Database fields.  The connection will be stored with the project, but will not be available for use with other projects until you define it formally in the New Connection dialog.

Whichever method you choose, the connection you specify will be used for all project files unless you override it for individual files (either by changing the setting in the Property Palette, or by selecting a different connection from under the Connections node in the Project Navigator, dragging it down to the file, and dropping it).

If you don’t specify anything on this panel, the project either inherits its connection from a parent or the root project, or the default connection as defined in your Windows registry or UNIX environment variable is used.


Customizing the project

The fields on this panel are optional, but may be useful to others seeking information about the project.

1	Enter the name or user ID of the person responsible for managing the project in the Author field.

2	Enter any information other users might find helpful in the Comments field.  Others can view your comments in the project’s Property Palette.  (You can override or augment your comments later by double-clicking on the Comments field in the Property Palette.)


Naming the parent project

•	Choose the project to which the sub-project belongs (also known as the parent project) from the drop-down list.  The list contains all the currently open projects and sub-projects.  (You can nest sub-projects within sub-projects indefinitely.)  If the project you want to name as the parent project doesn’t appear in the list, exit the Project Wizard, open the project, then re-invoke the Project Wizard.


What's next?

When you’ve finished defining your new project, Project Wizard gives you three choices:

•	Click Create an empty project, then click Finish to exit the Project Wizard and display the Project Navigator immediately.  The Project Navigator will contain your new project, but the project won’t contain any files.

•	Click Select files to add to it, then click Finish to exit the Project Wizard and display a standard file dialog, with which you can immediately start adding files to your project (the default).

•	Click Add all files in project directory, then click Finish to exit the Project Wizard and display the Project Navigator immediately.  Your project will include all the files contained in the directory you specified on Choosing a title and directory .  If you want to include the files in the sub-directories as well, click the Include sub-directories check box.  A sub-project will be created for each sub-directory within the directory.  Note

If you choose to simply exit the Project Wizard without adding files, you can still work with your project, perhaps by adding types or creating macros in preparation for adding files.  When you want to begin adding files to your project, click [image] to display the file dialog.

If you choose to begin adding files immediately, simply use the file dialog to navigate to the desired directory and select the files you want to add.  Use your usual method for file selection, as necessary.

Note:  Windows imposes a limit on the number of files you can select in the file dialog at any one time.  The maximum number of files depends on the length of the filenames.  You can select approximately 250 files with long file names, and approximately 600 files with names limited to the 8.3  notation.

If you select too many files, nothing will be added to your project.  Click [image] to display the file dialog, add fewer files, and repeat as necessary.


If you choose this option, the Property Palette’s Filename field for each item will display the relative path name (which is just the item name), as opposed to the full, or absolute, path name.  When files belonging to the project directory are added to the project, relative path names are used; when files in a directory other than the project directory are added to the project, full path names are used.  See About project and parent directories for more information.


About the Module Type Wizard

The Module Type Wizard allows you to add and change Project Builder type definitions quickly and easily.  You can use the Module Type Wizard to define a new type when you acquire a new application and want to begin managing its files with Project Builder.  Or you can use the Module Type Wizard to change the default action for a particular type; for example, you may want to make CorelDraw! the default action for .JPEG files.  The Module Type Wizard makes it easy to complete these tasks.

Note:  If you do not want to see the Welcome screen each time you invoke the Module Type Wizard, make sure the Display this screen next time check box is unchecked.  (If you change your mind later and want to re-instate the Welcome screen, select Tools [image] Preferences, click the Display tab, then check the Show TypeWizard Welcome screen check box.)


Choosing a name and location

1	If you have access to a file of the new type, click Choose file for model and select the file from the Derive Type dialog.  Based on the file you select, Module Type Wizard populates several fields throughout the wizard with the appropriate information.

2	Enter an internal name for the type in the Internal Name field.  In most cases, this is simply the file’s unique extension (for example, FM for FrameMaker files).

3	Enter a description for the type in the Description field.  The name you enter appears under the Global Types or User Types node.

4	Click the Global Registry radio button if you want the type to be accessible to all users, or the User Registry radio button if you alone require access to the new type.


Defining the format and content

1	In the Filename format box, click the radio button that describes how you want Project Builder to recognize this type of file:  by Extension (enter the file extension), or by Pattern.  A pattern is any literal string, or combination of a literal string and one of the following built-in macros:  b, d, f, or n.  Tip

2	In the File content box, click the radio button that describes the content of the file:  Binary (for executables), Textual (for non-executables), or Non-file (for URLs, data base tables, or other entities not managed as files).

3	In the Options box, click the check boxes that describe other attributes for the type:

•	Click Version control files of this type to automatically set the Version control file property to Yes for all files of this type.  This also enables the Check In/Check Out actions under File [image] Administration.

•	Click Deliver files of this type to automatically set the Deliver file property to Yes for all files of this type.

•	If files of this type become another type as a result of the Build action (as .FMB files become .FMX files), select the target type from the Build files of this type into drop-down.  If you don’t see the file you want, make sure the target type has been defined.  You may have to finish defining this type, define the target type, then go back to the original type and select the target type from this drop-down list.


Here are some situations in which patterns are useful:

•	On UNIX platforms, when you need to restrict a file’s base name.  For example, suppose you have a UNIX library called libfoo.so, which conforms to the standard UNIX library naming convention.  You want to define a compiler action in Project Builder that references this library, but you need a way to strip off the prefix lib and use just the base name, foo.  To do this, you can define a pattern for the UNIX library type of lib{b}.so.  This ensures that just the base name is used whenever the library is referenced.

•	When you are defining a type for an implied item and want to create the item in a directory other than where the source resides.  For example, to create your .fmx items in a directory called US, define the type’s pattern as US/{b}.fmx.  You can also use a macro name in place of an explicit directory name.  To create the .fmx in the directory specified by the current value of the NLS_LANG macro, define the .fmx type’s pattern as {NLS_LANG}/{b}.fmx.

•	You want the filename itself to contain a macro; for example, you want your .fmx files to contain the name of the language at the end.  On the .fmx type, then, specify {b}{NLS_LANG}.fmx.


Defining actions

  Related Topics

Use this panel to define/modify the actions associated with this type.

•	To add an action to the type, click Add.  The New Action dialog is displayed.

•	To change an action’s name, description, or default setting, select the action and click Edit.  The Edit Action dialog is displayed.

•	To remove an action from the type definition, select the action and click Remove.

•	To make an action the type’s default, select the action and click Make Default.  This is the action that is invoked when you double-click an item of this type on the Project Navigator.  The action also appears at the top of the right-click menu for all items of this type.

Note:  If desired, click on the Name, Description, or Default headers to sort the list by these respective columns.  You can also resize the columns by placing the cursor on a column until the arrow appears and dragging the arrows to increase or decrease the size.  The first column ,which is unlabelled, contains the icons for the actions:  inherited, overridden, and default.


Choosing an icon

Select an icon to represent your type by using one of these methods:

•	Click the From file check box, then use the Browse button to select a file.  If you selected Choose file for model on the second panel of this wizard, the appropriate icon should be selected for you.  If you need to select a file, try to choose an executable or library file, which usually have icons associated with them.  If you choose a file that does not have an associated icon, an alert is displayed.

•	If you don’t have access to a file with an appropriate icon, you can choose one from the list of pre-defined icons.  Make sure the From file check box is unchecked, click the icon you want to associate with this type.

Click Finish to complete your creation or modification of this type.


Module Type Wizard

  Related Topics

The Module Type Wizard provides a quick and easy way for you to define new types for use with Project Builder, or to modify existing types.  To invoke the Module Type Wizard, select Tools [image] Module Type Wizard.  For more information, see Related Topics.


Password protection for projects

  Related Topics

You can now set passwords for projects to protect them from unauthorized viewing or modification.  When a user tries to open a password-protected project, a dialog prompts the user to enter the password.  If the user cannot supply the correct password, access to the project is denied. For more information, see Related Topics.


Preview Actions mode

  Related Topics

Preview Actions mode allows you to test actions and see what values will be used for various parameters and macros without actually executing the action.  For more information, see Related Topics.


User-supplied values in macros

  Related Topics

When you create a new macro, you are now asked to define the macro’s type.  Most of these macro types cause a pop-up to be displayed at runtime, prompting the user to enter information or accept the default value.  For more information, see Related Topics.


New meta-types

  Related Topics

Meta-types allow you to define actions that affect many types, and thus files, at once.  For example, both the tar and zip commands process text files differently from binary files.  By defining these actions at the meta-type level, all text and binary files inherit the action appropriate for their types.  For more information, see Related Topics.


Subdirectories added as subprojects

  Related Topics

Project Builder now provides the Project [image] Add Directory to Project menu item, which allows you to add entire directories to your project as subprojects.  If the directory contains subdirectories, those directories are added as well.  For more information, see Related Topics.


Filtered views of Project Navigator

  Related Topics

A filter allows you to display only those projects or project items in the Project Navigator that meet certain criteria.  When you apply a filter, the objects that do not match the criteria specified in the filter definition are hidden from view.  For more information, see Related Topics.


Automatic de-fragmentation

  Related Topics

As you add and delete items from a project registry, storage fragmentation can occur.  To prevent fragmentation from adversely impacting system performance, Project Builder provides a de-fragmentation tool to reclaim unused storage.  For more information, see Related Topics.


Override project macro definitions at item level

  Related Topics

You can obtain the inherited value of a macro and use it in another macro definition simply by inserting a caret in front of the referenced macro’s name.  In this way, you can preserve the macro definition for a project while customizing it for individual items within that project.  For more information, see Related Topics.


Accessing non-Oracle datasources

  Related Topics

Through the Oracle Open Client Adapter (OCA), your application can connect to any ODBC datasource.  For the datasources listed below, we provide specific information.

Click the datasource you want to access:

Personal Oracle Lite

Microsoft SQL Server  (Versions 4.2, 6.0, and 6.5)

Microsoft Access  (Version 2.0 and higher)

Oracle Rdb  (Versions 5.1, 6.1, and 7.0)

Sybase   (SQL Server Version 4.9, System 10, and System 11)

Tandem NonStop SQL

Informix   (SE and Online Versions 5.x, 6.x, and 7.x)


Preparing to use the Open Client Adapter
Preparing to use the Open Client Adapter (OCA)

  Related Topics

To set up your system to use the OCA:

1	Install the necessary database server and client software, including network libraries. Configure your database, create database accounts, grant the appropriate access privileges to the users.  Note that for some single-user, single-machine datasources, such as Microsoft Access, there is no notion of a database server and database client, and no special setup is required (you do, however, need to create the database file to store database tables).

2	Install the necessary ODBC drivers on your client machine and configure the datasource using the Microsoft ODBC Administrator (which is automatically installed with the drivers).  ODBC drivers from Intersolv (for SQL Server, Rdb, Sybase, Informix, Ingres and many other databases) are installable from the your installation CD.  You can also use drivers from Microsoft, IBM, and other ODBC driver vendors.


Accessing Personal Oracle Lite

  Related Topics 	  Open oca_info.pdf

To access Personal Oracle Lite:

1	Set up your system to use the Open Client Adapter (OCA).

2	Read through the release notes and the PDF document (oca_info.pdf).

3	Run the.SQL scripts to create data dictionary views on the server side that allow design-time components to display database object names for selection at design time.  Note

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Example

If dbname is not specified, the views will be created in the 'current' database for the ODBC connection.

4	Launch the Builder.

5	(Optional)  Run the.SQL scripts to create and populate demo tables.  Example

6	(Form Builder only)  Set the Primary Key property for each data item to Yes.  Data items correspond to columns in your datasource.

7	When you are ready to connect to the Personal Oracle Lite datasource, type the following connect string in the Connect dialog box:

[user[/password]]@ODBC:datasource[:dbname]  Example

For more information about accessing Personal Oracle Lite, see oca_info.pdf.


Init_Form is the OPENDB routine that automatically modifies your form-level properties so that your form can communicate with an ODBC datasource.


OCA.PLL is located in your ORACLE_HOME\oca20 directory.  For Form Builder to locate OCA.PLL, you must add the ORACLE_HOME\oca20 directory to the FORMS50_PATH environment variable in the registry.


Accessing Miscrosoft SQL Server
Accessing Microsoft SQL Server

  Related Topics	  Open oca_info.pdf

To access Microsoft SQL Server:

1	Set up your system to use the Open Client Adapter (OCA).

2	Read through the release notes and the PDF document (oca_info.pdf).

3	Run the.SQL scripts to create data dictionary views on the server side that enable the display of database object names for selection at design time.  Note

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Example

If dbname is not specified, the views will be created in the 'current' database for the ODBC connection.

4	Launch the Builder.

5	(Optional)  Run the.SQL scripts to create and populate demo tables.  Example

6	(Form Builder only)  Set the Primary Key property for each data item to Yes.  Data items correspond to columns in your datasource.

7	When you are ready to connect to the Microsoft SQL Server datasource, type the following connect string in the Connect dialog box:

[user[/password]]@ODBC:datasource[:dbname]  Example

For more information about accessing Microsoft SQL Server, see oca_info.pdf.


Accessing Rdb
Accessing Oracle Rdb

  Related Topics 	  Open oca_info.pdf

To access Oracle Rdb:

1	Set up your system to use the Open Client Adapter (OCA).

2	Read through the release notes and the PDF document (oca_info.pdf).

3	Run the.SQL scripts to create data dictionary views on the server side that enable the display of database object names for selection at design time.  Note

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Example

If dbname is not specified, the views will be created in the 'current' database for the ODBC connection.

4	Launch the Builder.

5	(Optional)  Run the.SQL scripts to create and populate demo tables.  Example

6	(Form Builder only).  Attach the OCA.PLL library to your application, then create a Pre-Form or When-New-Form-Instance trigger that includes the OPENDB.Init_Form routine.

7	When you are ready to connect to the Oracle Rdb datasource, type the following connect string in the Connect dialog box:

[user[/password]]@ODBC:datasource[:dbname]  Example

For more information about accessing Oracle Rdb, see oca_info.pdf.


Accessing Microsoft Access

  Related Topics	  Open oca_info.pdf

To access Microsoft Access:

1	Set up your system to use the Open Client Adapter (OCA).

2	Read through the release notes and the PDF document (oca_info.pdf).

3	(Optional) Run the.SQL scripts to create and populate demo tables using the UBT utility:

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Example

If dbname is not specified, the views will be created in the 'current' database for the ODBC connection.

4	Launch the Builder.

5	(Form Builder only)  Set the Primary Key property for each data item to Yes.  Data items correspond to columns in your datasource.

6	When you are ready to connect to the Microsoft Access datasource, type the following connect string in the Connect dialog box:

[user[/password]]@ODBC:datasource[:dbname]  Example

For more information about accessing Microsoft Access, see oca_info.pdf.


Accessing Sybase

  Related Topics 	  Open oca_info.pdf

To access Sysbase:

1	Set up your system to use the Open Client Adapter (OCA).

2	Read through the release notes and the PDF document (oca_info.pdf).

3	Run the.SQL scripts to create data dictionary views on the server side that enable the display of database object names for selection at design time.  Note

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Example

If dbname is not specified, the views will be created in the 'current' database for the ODBC connection.

4	Launch the Builder.

5	(Optional)  Run the.SQL scripts to create and populate demo tables.  Example

6	(Form Builder only)  Set the Primary Key property for each data item to Yes.  Data items correspond to columns in your datasource.

7	When you are ready to connect to the Sybase datasource, type the following connect string in the Connect dialog box:

[user[/password]]@ODBC:datasource[:dbname]  Example

For more information about accessing Sybase, see oca_info.pdf.


Accessing Tandem NonStop SQL

  Related Topics 	  Open oca_info.pdf

To access Tandem NonStop SQL:

1	Set up your system to use the Open Client Adapter (OCA).

2	Read through the release notes and the PDF document (oca_info.pdf).

3	Run the.SQL scripts to create data dictionary views on the server side that enable the display of database object names for selection at design time.  Note

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Example

If dbname is not specified, the views will be created in the 'current' database for the ODBC connection.

4	Launch the Builder.

5	(Optional)  Run the.SQL scripts to create and populate demo tables.  Example

6	(Form Builder only)  Set the Primary Key property for each data item to Yes.  Data items correspond to columns in your datasource.

7	When you are ready to connect to the Tandem NonStop SQL datasource, type the following connect string in the Connect dialog box:

[user[/password]]@ODBC:datasource[:dbname]  Example

For more information about accessing Tandem NonStop SQL, see oca_info.pdf.


Accessing Informix

  Related Topics 	  Open oca_info.pdf

To access Informix:

1	Set up your system to use the Open Client Adapter (OCA).

2	Read through the release notes and the PDF document (oca_info.pdf).

3	Run the.SQL scripts to create data dictionary views on the server side that enable the display of database object names for selection at design time.  Note

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Example

If dbname is not specified, the views will be created in the 'current' database for the ODBC connection.

4	Launch the Builder.

5	(Optional)  Run the.SQL scripts to create and populate demo tables.  Example

6	(Form Builder only)  Set the Primary Key property for each data item to Yes.  Data items correspond to columns in your datasource.

7	When you are ready to connect to the Informix datasource, type the following connect string in the Connect dialog box:

[user[/password]]@ODBC:datasource[:dbname]  Example

For more information about accessing Informix, see oca_info.pdf.


About the Open Client Adapter (OCA)

  Open oca_info.pdf

The Oracle Open Client Adapter (OCA) for ODBC allows applications on Microsoft Windows 3.1, Windows 95/98, and Windows NT to access ODBC-compliant datasources through ODBC drivers.  The OCA requires the ODBC driver to be ODBC level 1-compliant.  OCA also uses certain level 2 ODBC functionality to achieve greater performance if that capability is provided by the ODBC driver.

Using the OCA, an application can access different datasources in a consistent manner.  This allows an application developer to build an application that can run unmodified against one of several datasources.  Alternatively, the application can be targeted at a specific datasource, and take advantage of features particular to that system.

The OCA is installed through the Oracle Installer, which copies all necessary files to your ORACLE_HOME directory.  One of these files is oca.pll, which is a PL/SQL library of functions that you can use from within applications to:

•	Open auxiliary connections to other datasources in addition to the application's main connection.

•	Execute arbitrary SQL statements and Stored Procedure calls on any connection.

•	Retrieve results sets from non-Oracle stored procedures.

•	Obtain the DBMS and ODBC driver names and versions for a given connection.

•	Automatically adjust Form and Data Block properties at runtime to suit the datasource.

Click the [image] button at the top of this topic to learn more about these functions.

For details about other installed files, refer to the release notes.


By default, oca_info.pdf is installed in ORACLE_HOME\TOOLS\DOC60\US.  If you have the Adobe Acrobat Reader installed in the default directory, click the [image] button at the top of this topic to display this document.  Otherwise, start your PDF viewer and open oca_info.pdf.


About the UBT utility

The Oracle Open Client Adapter (OCA) for ODBC includes a SQL*Plus-like utility called Universal Backend Tester (UBT).  UBT enables you to manipulate SQL commands within the interpreter or through command files.

The UBT executable (UBT32.EXE for Windows NT and Windows 95/98, and UBT.EXE for Windows 3.1) is installed in ORACLE_HOME\BIN.

For more information about Oracle Client Adapater, see oca_info.pdf (includes UBT utility information)..


The OCA release notes are included in RELNOTES.TXT on the installation CD.


By default, information about accessing  Personal Oracle Lite is installed in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf.  If you have the Adobe Acrobat Reader installed in the default directory, click the [image] button at the top of this topic to display this document.  Otherwise, start your PDF viewer and open oca_info.pdf


This is optional for application development, and not required for runtime. For some databases (for example, Microsoft Access), data dictionary views cannot be created due to inadequate exposure of database catalog information and lack of support for creating views.  In this case, you can type in database object names at design time, rather than select them from a list.


By default, the SQL scripts for creating data dictionary views for Personal Oracle Lite are installed in ORACLE_HOME\OCA20\SQL\POLITE:

polvudrp.sql	removes any old versions of the views.

polvubld.sql	creates necessary views.


UBT32.EXE scott/tiger@ODBC:polite_ds @polvubld.sql


By default, the SQL script for creating demo tables for Personal Oracle Lite is installed in ORACLE_HOME\OCA20\SQL\POLITE:

poldmbld.sql	creates demo tables.

The SQL script for populating the demo tables is installed in ORACLE_HOME\OCA20\DEMO:

demodata.sql	inserts data into demo tables.


UBT32.EXE scott/tiger@ODBC:polite_ds @poldmbld.sql


scott/tiger@ODBC:polite_ds


By default, information about accessing Microsoft SQL Server is installed in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf.  If you have the Adobe Acrobat Reader installed in the default directory, click the [image] button at the top of this topic to display this document.  Otherwise, start your PDF viewer and open oca_info.pdf.


By default, the SQL scripts for creating data dictionary views for Microsoft SQL Server are installed in ORACLE_HOME\OCA20\SQL\SQLSRV:

sqsvudrp.sql	removes any old versions of the views.

sqsvubld.sql	for SQL Server Version 4.2, creates necessary views.

sqs60bld.sql	for SQL Server Version 6.0, creates necessary views.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsvubld.sql


By default, the SQL script for creating demo tables for Microsoft SQL Server is installed in ORACLE_HOME\OCA20\SQL\SQLSRV:

sqsdmbld.sql	creates demo tables.

The SQL script for populating the demo tables is installed in ORACLE_HOME\OCA20\DEMO:

demodata.sql	inserts data into demo tables.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsdmbld.sql


scott/tiger@ODBC:sqlserver_ds


By default, information about accessing Microsoft Access is installed in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf.  If you have the Adobe Acrobat Reader installed in the default directory, click the [image] button at the top of this topic to display this document.  Otherwise, start your PDF viewer and open oca_info.pdf.


By default, the SQL script for creating demo tables for Microsoft Access is installed in ORACLE_HOME\OCA20\SQL\ACCESS:

accdmbld.sql	creates demo tables.

The SQL script for populating the demo tables is installed in ORACLE_HOME\OCA20\DEMO:

demodata.sql	inserts data into demo tables.


UBT32.EXE scott/tiger@ODBC:access_ds @accdmbld.sql


scott/tiger@ODBC:access_ds


By default, information about accessing Oracle Rdb is installed in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf.  If you have the Adobe Acrobat Reader installed in the default directory, click the [image] button at the top of this topic to display this document.  Otherwise, start your PDF viewer and open oca_info.pdf.


By default, the SQL scripts for creating data dictionary views for Oracle Rdb are installed in ORACLE_HOME\OCA20\SQL\RDB:

rdbvudrp.sql	removes any old versions of the views.

rdbvubld.sql	creates necessary views.

rdbdual.sql	creates view dual (to support SYSDATE).


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbvubld.sql


By default, the SQL script for creating demo tables for Oracle Rdb is installed in ORACLE_HOME\OCA20\SQL\RDB:

rdbdmbld.sql	creates demo tables.

The SQL script for populating the demo tables is installed in ORACLE_HOME\OCA20\DEMO:

demodata.sql	inserts data into demo tables.


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbdmbld.sql


scott/tiger@ODBC:rdb_ds


By default, information about accessing Sybase is installed in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf.  If you have the Adobe Acrobat Reader installed in the default directory, click the [image] button at the top of this topic to display this document.  Otherwise, start your PDF viewer and open oca_info.pdf.


By default, the SQL scripts for creating data dictionary views for Sybase are installed in ORACLE_HOME\OCA20\SQL\SYBASE:

sybvudrp.sql	removes any old versions of the views.

sybvubld.sql	creates necessary views.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybvubld.sql


By default, the SQL script for creating demo tables for Sybase is installed in ORACLE_HOME\OCA20\SQL\SYBASE:

sybdmbld.sql	creates demo tables.

The SQL script for populating the demo tables is installed in ORACLE_HOME\OCA20\DEMO:

demodata.sql	inserts data into demo tables.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybdmbld.sql


scott/tiger@ODBC:sybase_ds


By default, information about accessing Tandem NonStop SQL is installed in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf.  If you have the Adobe Acrobat Reader installed in the default directory, click the [image] button at the top of this topic to display this document.  Otherwise, start your PDF viewer and open oca_info.pdf.


By default, the SQL scripts for creating data dictionary views for Tandem NonStop SQL are installed in ORACLE_HOME\OCA20\SQL\NONSTOP:

nssvudrp.sql	removes any old versions of the views.

nssvubld.sql	creates necessary views.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssvubld.sql


By default, the SQL script for creating demo tables for Tandem NonStop SQL is installed in ORACLE_HOME\OCA20\SQL\NONSTOP:

nssdmbld.sql	creates demo tables.

The SQL script for populating the demo tables is installed in ORACLE_HOME\OCA20\DEMO:

demodata.sql	inserts data into demo tables.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssdmbld.sql


scott/tiger@ODBC:nonstop_ds


By default, information about accessing Informix is installed in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf.  If you have the Adobe Acrobat Reader installed in the default directory, click the [image] button at the top of this topic to display this document.  Otherwise, start your PDF viewer and open oca_info.pdf.


By default, the SQL scripts for creating data dictionary views and demo tables for Informix are installed in ORACLE_HOME\OCA20\SQL\INFORMIX:

infvudrp.sql	removes any old versions of the views.

infvubld.sql	creates necessary views.


UBT32.EXE scott/tiger@ODBC:informix_ds @infvubld.sql


By default, the SQL script for creating demo tables for Informix is installed in ORACLE_HOME\OCA20\SQL\INFORMIX:

infdmbld.sql	creates demo tables.

The SQL script for populating the demo tables is installed in ORACLE_HOME\OCA20\DEMO:

demodata.sql	inserts data into demo tables.


UBT32.EXE scott/tiger@ODBC:informix_ds @infdmbld.sql


scott/tiger@ODBC:informix_ds


Troubleshooting

If an application that used to work against Oracle now fails against an ODBC datasource, the most likely explanation is that you have encountered a restriction or limitation of either ODBC or the datasource.

To view the SQL statements issued by OCA and the messages generated by the ODBC driver or the database:

1	Verify that the following entry is set in the ORACLE.INI file on Windows 3.1 or in the registry on Windows NT and Windows 95/98:

•	UB=ORACLE_HOME\OCA20

2	Add the following entries to the ORACLE.INI file on Windows 3.1 or to the registry under SOFTWARE\ORACLE on Windows NT and Windows 95/98:

•	OCA_DEBUG_SQL=TRUE

•	OCA_DEBUG_ERROR=TRUE

3	Run your application against the ODBC datasource to view SQL statements or error messages in the debug window.  Click OK to close the debug window and continue processing.

4	If you are unable to resolve the error, call Oracle Support Services.


OCA Messages

Code	Message Description

30000	General OCA error.

30001	NULL hostdef.

30002	Function not supported.

30003	NULL username in connect string.

30004	NULL hostname in connect string.

30005	All cursors are in use.

30006	Error creating parse tree.

30007	NULL SQL statement.

30008	Memory allocation failed.

30009	Error processing bind variables.

30010	Oracle to ODBC datatype conversion error.

30011	ODBC to Oracle datatype conversion error.

30012	Error binding reference value.

30013	No parameters to bind.

30014	Hostname too long.

30015	Stored procedures not supported for this datasource.

30016	Sequences not supported by this database.

30017	Error logging on to non-Oracle database.

30018	Username or password too long.

30019	Error handling non-Oracle stored procedures.

30020	Stored procedure name is missing.

30021	Error preparing/executing SQL statement.

30022	Error retrieving column.

30023	Error fetching result set.

30024	Error retrieving column descriptors.

30025	Error getting number of columns in result set.

30026	Error retrieving procedure descriptors.

30027	Error setting ODBC connection/statement option.

30028	Error at commit/rollback.

30029	Error binding column.

30030	Error binding parameter.

30031	Error retrieving information about driver/database.

30032	Error freeing memory.

30033	Row status error.

30034	Table not found.

30035	Column not found.

30036	Invalid authorization specification.

30037	Data source not available.

30038	Invalid column number.

30039	Illegal bundled operation combination.

30040	Invalid cursor context.

30041	Bind variable does not exist.

30042	No data found.

30043	Fetched column value is NULL.

30044	Fetched column value was truncated.

30045	Error returning result data.

30046	No data source name specified.

30047	Unsupported transaction isolation level.

30048	Binding arrays not supported.

30049	Not logged on.

30050 	Error freeing SQL statement.

30051	Error fetching data.  You must re-execute after a commit for this datasource.

30052	Parameter value was truncated at execution.

31000	General ODBC error issued by the ODBC driver in use.

If an error occurs and the application is unable to read the message from the message file, verify that the following entry is set in the ORACLE.INI file on Windows 3.1 or in the registry on Windows NT and Windows 95/98:

•	UB=ORACLE_HOME\OCA20


PDF file
PDF document

To view the PDF document,  you will need to start your PDF viewer and open oca_info.pdf from the directory in which it is installed.


Project Builder

  Related Topics

Project Builder helps you organize and maintain the many different files that make up an application.  Within a single project you can track everything from application documentation created using your favorite word processor, to forms, reports, and the charts they contain, to user exits and the routines they call.

Project Builder is able to provide a single point of contact for you by integrating with all the tools, files, and tasks that make up a development project, including forms, reports, graphics files, menus, .INI files, icons, SQL scripts, and web pages.


The Project Wizard

  Related Topics

The Project Wizard is a quick and easy way to create a project.  Use the Project Wizard to create a project registry file, which provides a means for you to associate the files that make up an application, thus enabling you to manage the application-building process more efficiently.

The Project Wizard leads you, page by page, through the steps necessary to define a project.  You’ll decide whether you want to define a new standalone project or a subproject which is a project that falls under a larger project, as a form and its menus might make up part of a larger application.  You’ll name your project, select the directory in which it will reside, and specify a default connection.  When you complete the Project Wizard, you’ll be ready to start adding files.


The Launcher

  Related Topics

The Launcher is the secondary toolbar located by default at the top of the Project Navigator.  It enables you to organize and launch the tools you use most frequently during the development process, right from Project Builder.


Type Caption for New Topic Right Here


Glossary

A

    action
    active window/view
    ActiveX
    Ada
    aggregation
    alert
    alignment
    alias
    All tool
    ancestor
    ancestor group
    anchor
    anchor point
    anonymous block
    antecedent
    applet
    application
    argument
    ASCII
    attached library
    attribute
    attribute columns
    attribute mask
    Attribute tool
    attribute value
    axis chart

 B

    background element
    background process
    baseline value
    Batch
    batch compile
    bind reference
    bind variable
    block
    body
    boilerplate
    border
    bounding box
    break chart
    break column
    break group
    break report
    break trigger
    breakpoint
    builder
    built-in datatype
    built-ins
    built-in macro
    buffer
    button
    button procedure

C

    cache (memory)
    call interface
    call stack
    canvas
    canvas view
    cartridge
    cascading style sheet
    category
    category axis
    cell
    CGI
    CGM
    CHAR datatype
    chart element
    chart item
    chart template
    check box
    checksum
    child
    child query
    classification
    clause
    client
    client/server architecture
    Clipboard
    CMDFILE
    collection type
    color palette
    column
    column object
    command line
    comment
    commit
    comparison operators
    compile
    component
    concurrency
    condition
    confine mode
    connect
    connect string
    constraint
    construct
    context area
    continuous axis
    control point
    coordinate plane
    coordinate system
    coordinates (x, y)
    copy
    correlated subquery
    cross product
    crosstab
    cursor
    custom measure
    cut

D

    damage
    data dictionary
    data link
    data model
    data structure node
    database
    database trigger
    datasource
    datatype
    DATE
    date axis
    debug
    debug action
    debug trigger
    Debugger
    deconstructed object
    default
    deliver
    dependency tree
    dependency view
    dependent data
    descendant
    designer
    Designer (Oracle)
    detail query
    dialog box
    DIANA
    dimension
    dimension hierarchy
    dimension value
    disabled
    discrete axis
    display
    display item
    downward-growing
    drag
    drill
    duplicate
    dynamic saved selection

E

    EBCDIC
    edge
    Edge/Fill/Text Display
    editor
    element
    element type
    Ellipsis button
    enabled
    enclosing object
    encryption
    environment
    exception
    Exception tool
    executable argument
    execute
    export
    export file
    expression
    external PL/SQL library
    external query

F

    family
    Family tool
    field
    field template
    file node
    fill area
    filter
    firewall
    flattened object
    flex mode
    focus
    foreground element
    foreign key
    form layout
    form letter layout
    format mask
    format trigger
    formula
    formula column
    frame
    function

G

    generate
    Generate
    Global Registry
    global variable
    grant
    gridlines
    group
    group filter
    group tree
    GUI

H

    handle
    header
    heading node
    hidden
    hierarchy
    HTML
    HTTP
    hyperlink
    hypertext

I

    ICD
    icon
    image
    implied item
    import
    independent data
    index
    inherit
    inner bounding box
    input item
    insert mode
    internet
    Interpreter script
    intranet
    IP (Internet Protocol) Address
    item
    item node

J

    JAR
    Java
    join
    justification

K

    keyword

L

    label
    Launcher
    level
    Level tool
    layout
    layout unit
    lexical reference
    library
    link
    link file
    list box
    list item
    list of values
    List tool
    local database
    local registry
    local variable
    logical operators
    logical page
    loop

M

    macro
    mailing label layout
    margin
    master/detail layout
    Match tool
    matrix cell
    matrix layout
    matrix report
    measure
    megabyte (Mb)
    message box
    method
    modal window
    modeless window
    module
    multi-line field

N

    NA value
    nested matrix
    NOCACHE
    node
    non-caching column
    NULL value
    numeric operators

O

    object
    object column
    object group
    object handle
    Object Navigator
    object table
    object type
    ODBC
    OLE
    OLE container
    OLE Server
    Oracle datatype
    Oracle Designer
    ORACLE_HOME
    organization node
    origin
    outer bounding box
    overflow

P

    packaged function
    package
    package body
    package specification
    page
    page break
    palette
    pane
    panel
    parameter
    parameter list
    parent
    paste
    pattern
    Pcode
    PDF
    physical page
    placeholder username
    plot type
    PL/SQL
    pld file
    pll file
    pls file
    plx file
    pop-up list
    port
    pre-defined action
    pre-defined type
    preference
    preview
    Previewer
    primary key
    primitive
    printer control code
    prt file
    procedure
    program unit
    project
    project file
    project item
    Project Navigator
    project node
    project registry
    project view
    Project Wizard
    property
    property class
    protocol

Q

    qualifying dimension
    query
    query filter function
    quit

R

    radio button
    radio group
    Range tool
    RC4
    RDBMS
    rdf file
    rep file
    read consistency
    record
    record group
    REF column
    reference line
    refresh
    register
    registry
    relational operator
    remote database
    repeating frame
    replace mode
    report-level objects
    Reports Background Engine (RWRBE60)
    Reports Queue Manager (RWRQM60)
    Reports Server (RWMTS60)
    Reports Web Cartridge
    Reports Web CGI (RWCGI60)
    rex file
    RGB
    root
    root node
    row
    row object
    RTF
    run
    runfile
    Runtime
    Runtime Parameter Form

S

    saved selection
    Saved Selection tool
    schema
    scope
    script
    section
    SELECT statement
    selection
    selection script
    Selector
    Selector tool
    session
    sibling
    socket
    Sort tool
    source
    specification
    split bar
    SQL
    sql file
    SQL script
    SQL statement
    stack
    statement
    static saved selection
    stored program unit
    stored subprogram
    style sheet
    subprogram
    subproject
    subproject node
    summary column
    SYLK
    syntax
    system variable

T

    table
    table type
    tabular
    target
    target node
    TCP
    tear-off menu
    text item
    title bar
    title page
    toggle
    tool
    toolbar
    tool palette
    Top/Bottom tool
    trailer
    transaction
    trigger
    type

U

    update
    URL
    user exit
    user-defined action
    user-defined type
    user-defined macro
    user registry

V

    valid XML
    value axis
    value construct
    variable
    varying array type
    VBX
    VBX control
    view
    virtual directory
    virtual file system
    visual attribute

W

    Web
    Web browser
    Web cartridge
    Web link
    Web server
    well-formed XML
    wildcard
    window
    WKS
    WRB
    WWW

X

    XML

Y

Z

    zoom


In Project Builder, a command string supplied either by Project Builder or by the user that applies to files of a given type.  An action is not restricted to a single file type; for example, if the action "Compile" is defined for both forms and C source files, selecting "Compile Project" will compile all .fmb and .c files using the appropriate tools.  See also:  pre-defined action, user-defined action.


A high-level programming language developed by the U.S. Department of Defense for use in embedded computer systems.


A window or view that can receive user input.


(Oracle Express) The consolidation of data for several dimension values into a single value, such as the total units sold for all the cities, or into a smaller set of values, such as the average units sold for cities in each region. Data is often collected at the lowest level of detail and is aggregated into higher level totals for analysis.


A modal window that notifies you of a condition that occurred because of your last action.  You must respond to an alert.


The way in which data is positioned in a field.  It may be positioned to the left, right, center, flush/left, flush/right, or flush/center of the defined width of a field.


A secondary name used in a SQL statement to reference a table, view, or column.


(Oracle Express) A Selector dialog box tool that allows you to select all of the values in a dimension, or all of the values in a dimension for a specific hierarchy.


(Oracle Express) A dimension value at any level above a particular value in a hierarchy. The ancestor value is the aggregated total of the values of its descendants.  The following example shows the dimension value "Europe" as the ancestor of "France," "Lyon," and "Paris" in the GEOGRAPHY dimension.


A group that owns another group, either directly or indirectly.


A layout object used to fix a spot on one object to a spot on another object, ensuring the position of the first object in relation to the second object.


(Oracle Express) A specific dimension value that is used when selecting dimension values based on their family relationship or when navigating through a hierarchy.


A PL/SQL program unit that has no name and does not require the explicit presence of the BEGIN and END keywords to enclose the executable statements.  Since they are unnamed, anonymous blocks cannot be referenced by other program units.


An object that appears in another object's group tree at any position above that other object.  Every object is an antecedent of its descendants.


A Java term for small programs that can be dynamically imported into Web pages or applications as needed.


One or more program modules used to achieve a specific result.  Applications can be nested within other applications.  For example, an application to control a company's inventory could consist of various Form Builder applications for input of data, and various Graphics Builder applications to display the data visually.


1. An optional expression passed to a program unit for the program unit to operate on.
2. Clauses containing keywords and their specified values.


Acronym for American National Standard Code for Information Interchange.


A read only collection of PL/SQL subprograms, usually provided with an application to supply necessary PL/SQL source.  Program units in an attached library are implicitly loaded when they are first called by another program unit at compile-time or runtime.  They remain loaded for quick reuse, which reduces runtime memory requirements and improves the performance of an application.  See also:  library .


1. See property.
2.  A part or component of an Oracle8 object type definition.  Each attribute has a name and an Oracle8 datatype.  When an object table is created based on the object type, the columns in the table correspond to the attributes in the object type definition.  When a column object in a relational table is created based on the object type, the column object contains the equivalent of sub-columns, each of which corresponds to an attribute in the object type definition.  Each Oracle8 object attribute in a table is treated as a separate data item, as if it were a separate column.  This is true for both object tables and column objects in relational tables.
3. (Oracle Express) A descriptive characteristic that is shared by dimension values. Attributes represent logical groupings that allow users to select data based on like characteristics. For example, in a database representing footwear, you can use a shoe color attribute to select all boots, sneakers, and slippers that share the same color.


The columns that compose a column object (Oracle8).


In Graphics Builder, the first element in an attribute descriptor.  It is a 32-bit mask that informs the toolkit of the attributes that will be set or retrieved by a subsequent function call.  Only those elements that have their corresponding bits set in the attribute mask are set or retrieved.


(Oracle Express) A Selector dialog box tool that allows you to select dimension values based on attributes and attribute values. For example, in a database representing soft drinks, you might select all products whose size is 1 liter. In this example, Size is an attribute and 1 liter is an attribute value.


(Oracle Express) The values in the database that make up an attribute. For example, in a database representing ice cream products, the following attribute values might belong to a flavor attribute in a Product dimension: vanilla, chocolate, and strawberry. Dimension values at various levels in the Product dimension -- brand, form, and size, for instance -- might share the same value for flavor.


A type of chart in which the data is plotted according to where it lies along the chart's edges, called axes.  An axis chart may contain two or three axes, each of which may be one of the following types:  discrete, continuous, or date.


The white part of a pattern.  You apply color to the background element using the Fill Color palette.


A non-interactive process that runs in an operating system environment and performs some service or action.  Certain Oracle products use background processes for different tasks, such as performing and coordinating tasks on behalf of concurrent users of the database, processing and delivering electronic messages, and managing printing services.


The value used as the starting point for plotting fields on the continuous axis of a chart.


The executable that executes an application in batch mode, without using a windowing system.


To translate, at once, several PL/SQL program units into a machine executable form.


A reference to a parameter used to replace a single literal value (e.g., a character string, number, or date) appearing anywhere in a PL/SQL construct or a SQL SELECT statement.  For a bind reference, you must precede the parameter name with a colon (:).


A global variable you can create and use outside of a PL/SQL package.


1. The basic program unit in PL/SQL, defined by the keywords DECLARE, BEGIN, EXCEPTION, and END.
2. In Form Builder, a logical container that relates to a database table or view.


1. Contains the same information as the program unit specification, and also includes the actual implementation of the subprogram (i.e., its sequence of actions).  In most cases, only a body must be defined for a subprogram.
2. In Report Builder, a region that contains the bulk of the report layout (text, graphics, data, and computations).  The report body appears between the report header and trailer pages.


Text and/or graphics that appear in a report every time it is run.  In some products this is called "constant" text or graphics.


A user-defined outline around a layout object, usually used to highlight its contents.  Borders are drawn such that half the width of the border lies outside the edge of the object, and half inside the edge.


See inner bounding box, outer bounding box.


An axis chart that displays two categories of data along one axis.


A query column assigned to a break group.


A group used to break or categorize report data.  All data in query columns assigned to a break group appear above the data in columns belonging to other groups.  Each record fetched for a break group appears only once, while multiple related records in other groups can be displayed.


A report that contains categories that break the report data into sets.


A PL/SQL block that executes each time a breakpoint is reached.  See also:  breakpoint.


A debug action you can place at any executable source line in a PL/SQL subprogram.  A breakpoint interrupts execution of the program unit and passes control to the PL/SQL Interpreter.  Breakpoints allow you to incrementally execute a subprogram and search for runtime errors.  See also:  break trigger.


Refers to a component used to create a specific type of document. For example, Form Builder is used to create forms, while Report Builder is used to create reports.


A datatype defined and supported by the Oracle Server.


A collection of extensions to the PL/SQL language that are designed to be used with the software.  Built-ins include datatypes, procedures, functions, exceptions, and constants.


In Project Builder, macro shipped with Project Builder.  See also:  macro.


A temporary storage area for data during the transfer of that data between the computer and a peripheral, or between parts of a computer.  A buffer prevents loss of information due to differences in the speed or timing of the transfer and speeds up certain functions.


1. An interface element used to select an action item, display a dialog box, or acknowledge the current condition.
2. An object in an application that has a PL/SQL procedure associated with it.  The procedure is generally executed upon a user mouse event.


A PL/SQL procedure associated with an application object, that is executed when a specific mouse event occurs on the item at runtime (e.g. clicking the button).  It does this by establishing a hierarchy for the fetched data containing a break group.


A temporary storage place for database data that is currently being accessed or changed by users, or for data that Oracle Server requires to support users. The terms are often used interchangeably.


An interface that enables you to invoke Forms Developer or Reports Developer component executables from other Oracle products, or a 3GL program.


A chain of subprogram calls, from the initial entry point down to the currently executing subprogram.  Each subprogram call is represented by a frame on the downward-growing call stack, in which newly entered subprograms are added to the bottom of the stack.


   See editor.


In Form Builder, the background object on which you place the interface objects that users will interact with in the runtime application.  A canvas view is usually associated with a window.


Manageable objects that plug in to the client, application server, or database through an open API.


See style sheet.


A label component that allows differentiation between information on the basis of non-hierarchical delineation or compartments rather than sensitivity levels.  With classification, they are used as a means of restricting access to information.


See discrete axis.


An instance of data in a spreadsheet (e.g., Microsoft Excel).


Acronym for Common Gateway Interface. The industry-standard technique for running applications on a Web server.  Whereas standard HTML documents retrieved from a Web server are static (the exact same text is retrieved every time) CGI enables a program running on the Web server to communicate with another computer to generate "dynamic" HTML documents in response to user-entered information.


Acronym for Computer Graphics Metafile.  A file format recognized internationally and used to store and transport object-oriented graphics from one system or program to another.


An Oracle datatype provided for ANSI/ISO compatibility.  A CHAR column is a fixed-length column and can contain any printable characters, such as A, 3, &, or blanks, and can have from 1 to 255 characters or can be null.


A bar, line, symbol, or other graphical object that represents a single value for a field.


A bordered rectangle of any size used to embed Graphics Builder charts in a form or report.


A collection of attributes and properties that defines the format of a chart.


A interface element, appearing as a small square, that a user can toggle on or off.


An error-checking algorithm.


1. An object that is a member of a group, and is immediately below that group object in its group tree.  The objects that compose a group object are children of that group.  Every object is a child of its parent.
2. (Oracle Express) A dimension value at the level immediately below a particular value in a hierarchy. Values of children are included in the calculation that produces the aggregated total for a parent.  A dimension value may be a child for more than one parent if the dimension has more than one hierarchy.  The following example shows the dimension values "Lyon" and "Paris" as the children of "France" in the GEOGRAPHY dimension.


See detail query.


A hierarchical level that denotes the sensitivity of the information that is labeled.  Classifications are used as a means of restricting access to information.


A part of a SQL statement that does not constitute the full statement; for example, a "WHERE clause."


A user, software application, or computer that requests the services, data, or processing of another application or computer (the "server").  In a two-task environment, the client is the user process.  In a network environment, the client is the local user process and the server may be local or remote.


Separation of processing between two CPUs, one acting as the server that provides services in a transaction and the other as the client in the transaction, requesting and receiving services.  All responsibilities of shared data management can be processed by the computer running the database management system while the workstations running the database application concentrate on the interpretation and display of data.


A memory buffer.  An object remains on the Clipboard until you cut or copy another object, or until you quit the application.


A user-defined datatype that describes a data unit made up of an indefinite number of elements, all of the same datatype.  Varying array types and table types are collection types.  (Oracle8)


An argument that allows you to specify a file that contains a set of command line arguments for Forms Developer executables.


Contains all the colors available to the windowing system, the drawing surface, or a window and its views.


1. A vertical space in a database table that represents a particular domain of data.  A column has a column name (e.g., ENAME) and a specific datatype (e.g., CHAR).  For example, in a table of employee information, all of the employees' names would constitute one column.  A record group column represents a database column.
2. In Report Builder, a data model object created automatically for each column expression in a query's SELECT list, or created manually to perform summaries, formulas, or act as a placeholder.


In an Oracle8 relational table or object table, a column whose definition is based on an object type.  The column is a composite, the parts of which correspond to the attributes of the object type.


An operating-system command line.  Most Oracle products can be invoked from a command line using a number of executable arguments.


A language construct for the inclusion of explanatory text in a program, the execution of which remains unaffected.


To make changes to data in the database permanent.  Before changes are stored, both the old and new data exist so that changes can be stored or the data can be restored to its prior state.


(Oracle Express)

>	Greater than

<	Less than

=	Equal to

<=	Less than or equal to

>=	Greater than or equal to

<>	Not equal to

For numbers, the operands are widened to the least common type (Integer is preferred over Long, which is preferred over Single, which is preferred over Double). For Strings, the comparison is case-sensitive and is based on the collating sequence used by the language specified in the Windows Control Panel. The result is 0 for FALSE and -1 for TRUE.


To translate a source program into a binary, executable format.  PL/SQL program units must be compiled before they can be executed.


A specific target object that is a part of a larger application; e.g. a form in an order entry system, or a library that is shared among many other elements.  See also:  target.


The simultaneous access of the same data by multiple users executing different database applications or the same application.  In database software concurrency requires additional logic to ensure that all users see consistent data and that all changes are made in the proper order.


An expression whose value is either true or false, such as X> 100.  For example, you can set a condition in a query when you want the query to display only those rows that evaluate as true in your expression.


Layout editor mode that prevents child objects from being moved or resized on or outside their parent objects.


To log on to a database.  You must connect if you want to create or modify queries or access an application stored in a database.


The set of parameters, including a protocol, that SQL*Net uses to connect to a specific Oracle instance on the network.


A rule or restriction concerning a piece of data (such as a NOT NULL restriction on a column) that is enforced at the database level, rather than the object or application level.


A PL/SQL code structure.  There are two types of constructs: non-value constructs do not return a value; value constructs return a value.


A work area in which Oracle Server stores the current SQL statement, and if the statement is a query, the result's column headings and one row of the result.  Also referred to as cursor.


An axis that plots values that begin with one value and continue until they reach another value.  Thus, these values are mathematically related.  Dependent data is usually plotted along this axis, also called the value axis.


The four corner points of the virtual rectangle that constitutes an object's ideal shape.  When you select an object on the layout, its control points appear.  Depending on the object selected, you may be able to modify it by dragging a control point.


The two-dimensional grid on which drawing takes place.


The type of x, y units used to place and size objects in the Layout Editor view.  The coordinate systems available are 1) character, which uses the platform's native character cell size, and 2) real, which can be in units of pixels, centimeters, inches, or points.


The location points for objects appearing in the layout.  x and y coordinates determine the horizontal (x) and vertical (y) placement of objects.


To store a replica of a selected object on the Clipboard, so that it may be pasted elsewhere in an editor if desired.


A subquery based on the same tables as the parent query (i.e., references columns in the tables included in its parent query).


Group that owns two or more other groups and performs a mathematical cross product (i.e., correlates values between them).


See matrix cell.


1. A small icon representing the position of the mouse.  The shape of the cursor varies, depending on the selected tool.
2. An internal pointer to data retrieved by a query.  A cursor points only to one row of data at a time; however, you can use built-in subprograms to move the cursor to any row in the data set.


(Oracle Express) A formula created by a user, which allows fine-tuning of data analysis. You create custom measures using base measures in the database. For example, if the database contains the existing measure Volume Share, you can use this measure to create a custom measure named Volume Share Year Ago. This custom measure would allow you to look at a product's absolute share from the previous year.


To delete one or more objects and store them in the Clipboard, so that they may be pasted elsewhere in an editor, if desired.


A view is damaged when it is totally or partially occluded by another view.


A set of tables and views owned by the database administrator.  It is a central source of information for Oracle Server and other relational databases.


A data model object used to define a master/detail (parent-child) relationship between a group and a query.


A relational model that defines what data should be fetched from the database, what values should be computed, and how data should be ordered in a report.  Report Builder objects that define the data model are queries, groups, columns, parameters, and links.


A source for data returned by a query, including database objects such as tables, views, synonyms, snapshots, and queries stored as views.


In Project Builder, a node in the Project Navigator denoting a project item that governs the structure of an open project.  For example, the Global Registry node denotes the Global Registry, which contains a list of local registries and a list of global type definitions.


A set of dictionary tables and user tables that are treated as a unit.


A stored PL/SQL block that is implicitly executed when a triggering INSERT, UPDATE, or DELETE statement is issued against the associated table in the database.  See also:  debug trigger.


A standard form of data.  Some common Oracle datatypes are CHAR, VARCHAR2, DATE, NUMBER, LONG, RAW, and LONG RAW.


An Oracle Server datatype.  A date column may contain a date and time between January 1, 9999 BC and December 31, 9999 AD.


An axis that plots date values that begin at one date and continue until they reach another date.


To detect, diagnose, and eliminate runtime errors in programs.


A user-specified event placed in a PL/SQL subprogram, usually for the purpose of troubleshooting runtime errors.


A conditional debug action you can place at any executable source line in a PL/SQL subprogram.  If the specified condition is met, the specified action is taken before execution of the subprogram resumes.  See also:  database trigger.


The Procedure Builder functionality within the software component used for testing and debugging.


In Oracle8, object types and objects are composites, built of parts or attributes.  Forms Developer or Reports Developer treats each part/attribute as an independent, individually-selectable data item.  This treatment results in a deconstructed object (sometimes also known as a flattened object).  The object is not an homogeneous entity within the Developer environment.


A piece of data that depends on other data for its value.  For example, an employee's  years of service may have the value 10, which is dependent upon the value of the employee's name.  Also called value data.


A value supplied by the system when a user does not specify a required command parameter or attribute.


To prepare and provide a completed application for distribution and deployment.


In Project Builder, the mechanism used by Project Builder to determine how to compile files that are referenced in projects.  Items toward the top left of the tree depend on items toward the lower right; so, for example, if a header file is either out of date or more recent than the executable file it is used to build, then the Project Builder will rebuild the executable file, given a Build command.  Dependencies also extend to subprojects.  For example, if a subproject consisting of a function library has been rebuilt, the Project Builder "knows" the dependent project will need to be rebuilt in order to use the updated library functions.  See also:  dependency view.


In Project Builder, shows files in the Project Navigator in the order in which they depend on each other, with project nodes at the highest point in the hierarchy, followed by target nodes, which are followed by buildable components of those targets.  For example, an executable form depends on and will be followed by an .fmb file, which may depend on and be followed by a library used for a USEREXIT procedure, and so on.  See also: project view, target.


1. An object that appears in another object's group tree at any position below that other object.  Every object is a descendant of its antecedents.
2. (Oracle Express) A dimension value at any level below a particular value in a hierarchy. Values of descendants are included in the calculation that produces the aggregated total for an ancestor.  The following example shows the dimension values "France," "Lyon," and "Paris" as descendants of "Europe" in the GEOGRAPHY dimension.


The interface used to design different components of a Forms Developer or Reports Developer application.


See Oracle Designer.


An application modeling, design and generation toolset.  Using Oracle Designer, you can generate forms and menus from module definitions recorded in the Oracle Repository.


When defining a master/detail report, the detail query retrieves all related records for each record retrieved by the master, or parent, query.


A partial screen or window that prompts you to enter information necessary to complete an operation.


An intermediate representation of a program unit, generated by the compiler.  The DIANA includes all of the syntactic and semantic information for a compiled program unit.  In order to compile a reference to a program unit, the compiler must have access to the referenced program unit's DIANA.  For example, if program unit A calls program unit B, the DIANA for B must be available before A can be compiled.


(Oracle Express) A type of database object that is a list of values that provide categories for data. A dimension acts as an index for identifying values of a variable. For example, if you have sales data with a separate sales figure for each month, then the data has a MONTH dimension; that is, the data is organized by month. A dimension is similar to a key in a relational database.

Any item of data within a multidimensional variable can be uniquely and completely selected by specifying one member from each of the variable's dimensions. For example, if a sales variable is dimensioned by MONTH, PRODUCT, and MARKET, specifying "January" for the MONTH dimension, "Stereos" for the PRODUCT dimension, and "Eastern Region" for the MARKET dimension uniquely specifies a single cell in the variable. Thus, dimensions offer a concise and intuitive way of organizing and selecting data for retrieval, updating, and performing calculations.

A dimension can be simple, with values that are single text or integer values, or it can be conjoint, with values that are combinations of values in other dimensions. A composite is not a dimension, but it is a conjoint-like internal object that Express treats like a dimension for the purpose of handling sparse data.


(Oracle Express) One element in the list that makes up a dimension. For example, a computer company might have dimension values in the PRODUCT dimension called "LAPPC" and "DESKPC." Values in the GEOGRAPHY dimension might include "Boston" and "Paris." Values in the TIME dimension might include "MAY96" and "JAN97."


An interface element state that means a menu item, button, etc., cannot be used in the current context; i.e., it does not respond to keyboard or mouse input.


An axis that plots distinct values at fixed intervals.  These values are not mathematically related.  Independent data is usually plotted along this axis, also called the category axis.


A Graphics Builder document containing any combination of charts, images, text objects and shapes.


In Form Builder, an item that stores or displays information that must be fetched or assigned programmatically with PL/SQL.


As it pertains to the call stack, in which newly entered subprograms are added to the bottom of the stack.  The earliest frame, corresponding to the initial program entry point, is at the top of the stack, while the latest frame, associated with the most deeply nested subprogram call, is at the bottom of the stack.


Press and hold down a mouse button while you slide the mouse pointer to a particular location in a window.


(Oracle Express) To navigate up and down through the levels of aggregation in a dimension that has a hierarchy. When selecting dimension values or viewing data, you can expand or collapse a dimension hierarchy by drilling down or up in it. Drilling down expands the view to include child values that are associated with parent values in the dimension hierarchy. Drilling up collapses the list of descendant values associated with a parent value in the dimension hierarchy.

You can click on a plus icon ( [image]) to drill down on (expand) the hierarchy or on a minus icon ( [image]) to drill up on (collapse) the hierarchy.

In the Selector, you can click on the drill icon ( [image]) to display the Drill dialog box so you can select a level of detail for the entire dimension.


An option that allows you to copy objects directly on the layout without affecting the contents of the Clipboard.


(Oracle Express) A saved selection that can have different dimension values each time it is evaluated. The selected dimension values might differ from use to use. In contrast, a static saved selection is an unchanging list of dimension values. A dynamic saved selection script might include "Select the last three Months", while the script for a static saved selection might have "Select February 1996, March 1996, and April 1996".


Acronym for Extended Binary-Coded Decimal Interchange Code.


The boundary of an object.


A display box on the Layout Editor tool palette that shows the current settings for the edge, fill, and text patterns and colors.


A work area in which you perform a specific set of tasks, such as creating a program unit or designing an application.


A thing of significance about which you may need to record information.  Elements are described by attributes and associations to other elements.


Any element held in the dictionary is classified as being of a particular type.  Examples of element type are entity, attribute, program module, table, diagram, text, softbox.  Occurrences or instances of these are called elements.


(Oracle Express) Displays a dialog box related to the task you are performing, usually so you can select one or more values that you need.


An interface element state that means that a menu item, button, etc., can be used in the current context, that is, it responds to keyboard or cursor/mouse input.


An object that contains another object.  An object is considered to be enclosed by another object only if all of the following are true:  both objects belong to the same region (Body, Margin, Header, or Trailer);  the outermost of the two objects is a frame or repeating frame;  the outermost of the two objects is behind the other object;  the innermost of the two objects lies entirely within the borders of the other object.


The practice of scrambling (encrypting) data in such a way that only an intended recipient can unscramble (decrypt) and read the data.


The user's computer-based workplace, including the tools typically used and their configurations. For Project Builder, this refers to the subset of tools that are used to complete various tasks related to developing Forms Developer applications.


A warming or error condition generated from a PL/SQL subprogram.


(Oracle Express) A Selector dialog box tool that allows the user to select dimension values associated with data that meets cutoff terms that the user specifies. For example, the user can select all products whose dollar sales were greater than $10,000 for the week ending December 23, 1995 in the Boston market.


An argument you can pass to a product executable, such as 'OPENFILE=my_disp' and 'PRINT=YES'.  These arguments usually are specified when the executable is invoked from a command line.


See run.


To store a copy of an object, module, selected text or image to a file or database.  In Project Builder, the process of writing out a file containing project, type, action, and/or macro definitions in a portable format for distribution to others who may work on heterogeneous platforms.  See also:  export file, import.


In Project Builder, the shareable, portable file created by exporting a project.


1. A PL/SQL construct combining variables, constants, literals, and operations on their values.
2. (Oracle Express) One or more data values that are specified in an Express language program. For example, you can specify expressions as arguments to programs or functions. An expression can be any of the following:

•	A single, literal value (for example, 10)

•	A variable or formula that contains one or more values

•	A function that returns one or more values

•	A calculation that combines values, such as variables, formulas, or functions, with arithmetic or Boolean operators


See library.


An ANSI-standard SQL SELECT statement that can be referenced by other Oracle products.


(Oracle Express) A group of related dimension values that correspond to the levels of the dimension hierarchy. Dimension values within a family can relate to each other as ancestor, parent, child, and descendant.  The following example shows family relationships for the dimension value "France" in the GEOGRAPHY dimension.


(Oracle Express) A Selector dialog box tool that allows the user to select a family of dimension values for a particular hierarchy. A family includes a parent and all of its descendant dimension values. For example, the user can select all of the family members below the Chicago market level in the Geography dimension.


1. An interface element in which you enter, edit, or delete data.  2. In Graphics Builder or Report Builder, a layout object that define how the data for a specific query column appears.


In Graphics Builder, a collection of attributes and properties that determines how dependent data (values) are represented as chart fields, such as bars or lines.


In Project Builder, a node in the Project Navigator denoting a file stored in the file system.  For example, the global and local registry nodes correspond to global and local registry files.


The area within an object to which a fill (color or pattern) should be applied.


A PL/SQL function or anonymous function that restricts the data displayed by a group.


A computer that regulates access to computers on a local area network from outside, and regulates access to outside computers from within the local area network.


See deconstructed object.


Layout Editor mode that automatically resizes or shrinks parent objects when child objects are moved or resized, and adjusts the positions of other layout objects that might otherwise be affected by the repositioning or resizing of the objects.


The state of an entity that is able to respond to input from the user or the client.  If an entity has the keyboard focus, it can receive events when the user presses a key.  If a drawn view has the drawing focus, it can respond to client routines that affect drawing.


The black part of a pattern.  You apply color to the foreground element using the Edge Color palette.


A value or column in one table that refers to a primary key in another table.


In Report Builder, a default layout style in which labels appear to the left of fields, and each record prints on a separate logical page.


In Report Builder, a default layout style that intermixes boilerplate and fields, wrapping lines at "word" breaks.


(Field Properties)  A setting that defines the appearance of the value of a field.  For example, a format mask is used to specify the display of currency amounts and dates.


A PL/SQL function that allows you to dynamically change the formatting attributes of an object.


(Oracle Express) A type of database object that represents a stored calculation, expression, or procedure that produces a value. A formula provides a way to define and save complex or frequently used relationships within the data without resaving the data itself. Each time you use a formula, Express performs the calculation or procedure that is required to produce the value.


A user-created column that gets its data from a PL/SQL function or expression, a user exit, a SQL statement, or any combination of these.


In Graphics Builder, the part of a chart template that defines the basic structure of a chart, but does not determine the way the data is plotted.
2. In Report Builder, a layout object used to enclose other layout objects and control the formatting, frequency, and positioning of several objects simultaneously.


A PL/SQL subprogram that performs a specified sequence of actions, and then returns a value.  Can reside and execute on the client and the database server.


To save an application to a file or database in a binary format that can be executed by Runtime and Batch executables.


The Form Builder executable used to save an application to a file or database in a binary format.


A Project Builder registry that stores information common to an entire Forms Developer or Reports Developer installation.  This information is restricted to type definitions, and their associated actions and pre-defined or user-defined properties.  The use of the Global Registry is optional; its functions can be performed by individual user registries.  See also: registry, user registry.


A logical container that exists across an application.  When an application uses a global variable, the application maintains the variable until the application is exited, or until another object explicitly removes it.


To give a user access to a module.  Only a module's creator can grant its access to other users.


In Graphics Builder, the lines that separate rows and columns in the Layout Editor.


1. An object that is composed of several other objects.
2. In Report Builder, a data model object that is created automatically to contain all the columns selected by a query, or created by the user to modify the hierarchy of the data appearing in a report;  it is used primarily for creating breaks in a report, as well as for resetting computations.
3. In Project Builder, collections of related items available via submenus off the Launcher.  Groups allow users to set up the Launcher much like the Windows 95 Start menu, with arbitrary "groups" as entries that pop up to reveal other items and/or groups.  For example, a user could define a group named "Project Docs", containing a project schedule, to-do list, component specifications, etc.; some files may be .TXT files, other .DOC files.


A PL/SQL function that restricts the data fetched by a group.


A hierarchical model-similar to a "family tree"-that describes the relationships between group objects and the objects that compose them.


Acronym for graphical user interface. The use of pictures rather than just words to represent the input and output of a program.  Programs with GUIs run under a windowing system (such as  X Windows, Microsoft Windows, Apple Macintosh, and so on).  GUI programs display icons, buttons, and so on, in windows on the screen;  users control the GUI programs mainly by moving a pointer on the screen (typically controlled by a mouse).  Also known as a bitmapped interface.


An internal pointer to an application object.  In order to reference an object in a PL/SQL program unit, you must pass its handle as an argument to the appropriate subprogram.


An optional report region that can contain introductory material for the report, including text, graphics, data, and computations.  The report header appears first, before the body and trailer.


A node in the Object Navigator denoting a type of object which can be contained within or associated with a report.  Selecting a heading node does not select an object in the report.


(Field Properties)  A property that specifies whether Report Builder will suppress the indicated field at its location in the layout.  If Hidden is specified, the field's value will appear only where referenced in text objects (using &fieldname).


(Oracle Express) A means of organizing and structuring data. A hierarchy exists when values within a dimension are arranged in levels, with each level representing the aggregated total of the data from the level below. Some dimensions have multiple hierarchies based on them.

The following example shows a hierarchy based on the GEOGRAPHY dimension, in which dimension values are arranged in five levels. Data at the Customers level is aggregated into the Cities level, which, in turn, is aggregated into the Countries/Areas, Continents/Regions, and Global levels.


Acronym for Hypertext Markup Language.  A tag-based ASCII language used to specify the content and links to other documents on Web servers on the Internet.  End users with Web browsers view HTML documents and follow links to display other documents.


Acronym for Hypertext Transfer Protocol. The protocol used to carry WWW traffic between a WWW browser computer and the WWW server being accessed.


A reference (link) from some point in one document to (some point in) another document or another place in the same document.  A Web browser usually displays a hyperlink in some distinguishing way (in a different color, font or style).  When users activate hyperlinks (by clicking on them with a mouse) the browser displays the target of the link.


A collection of documents containing cross-references which, with the aid of a Web browser, allow readers to move easily from one document to another.


Cross-references which, with the aid of a Web browser, allow readers to move easily from one document to another.


Acronym for interface C definition-a PL/SQL application programming interface to functionality implemented in C.


A graphic representation of a window or tool.


A bitmapped object that can be stored and loaded into an application.  The client cannot modify an imported image.


In Project Builder, a project item, usually the result of automatic generation, that Project Builder recognizes and for which it automatically creates entries in the Project Navigator.  For example, Project Builder can recognize .OBJ files, generated as an intermediate step during the compilation of C source files, and create entries for them in the Project Navigator.  Although resetting the properties of an implied item is of limited use (the next compilation will destroy changes) such items can be useful, as they can be examined via actions such as Edit, View, and Print.  See also: item, action.


1. To read a module from the file system or database, and incorporate it into an application.
2. To read in a file containing project information.


A piece of data that does not depend on other data for its value.  For example, an employee's name may have the value Jones, which is independent of the values of other employee's names or associated data.  Also called category data.


An optional structure associated with a table that is used by Oracle Server to locate rows of the table quickly, and (optionally) to guarantee that every row is unique.


In Project Builder, to obtain information for an action, type, macro, or property definition from an ancestor node in the dependency tree.  If related attributes exist in an ancestor node, they may be inherited.  Thus, filesystem items like forms and documents may inherit action definitions from subprojects, projects, the user registry, or the Global Registry; projects may inherit type definitions from the local or the Global Registry; and so on.


The virtual rectangle that constitutes an object's ideal shape and connects its four control points, regardless of edge thickness or other attribute settings.


The file used to build a target: for instance, an .FMB is the input for an .FMX.  Also called source.


A mode in which each character you enter is inserted at the cursor, pushing the following characters to the right.  The opposite of replace mode.


A worldwide TCP/IP-based network of computers.


A file containing any mixture of PL/SQL source, Procedure Builder commands, and SQL statements.


An internal TCP/IP network, access to which is restricted (via a firewall) to individuals inside the company or organization.  An intranet provides similar services within an organization to those provided by the Internet, but is not necessarily connected to the Internet.  A common example of an intranet is when a company sets up one or more Web servers on an internal network for distribution of information or applications within the company.


A four-part number with no more than three digits in each part that uniquely identifies a computer on the Internet.


In Project Builder, an object in the file system associated with the project, such as a form or a document, pointed to or represented by a node in the Project Navigator.


In Project Builder, an entry in the Project Navigator window, consisting of an icon and a descriptive title.  Nodes point to actual items in the filesystem, such as Form Builder files and documents.  See also: node, item.


Acronym for Java ARchive.  A file used for aggregating many files (Java class files, images, and so on)  into one file.


A computer language that supports programming for the Internet in the form of platform-independent "applets".


Combining data from two (or more) tables in a single SELECT statement.


  See alignment.


1. Part of a command line syntax that must be supplied with a corresponding argument.  2. A required part of a PL/SQL construct.


Text identifying the values or meaning of an application's visual objects.


(Oracle Express) A position in a dimension hierarchy. Each level above the base level represents the aggregated total of the data from the level below. For example, the TIME dimension might have ascending levels such as Month, Quarter, and Year. Within a dimension hierarchy, a dimension value at one level has a family relationship with the dimension values at the levels above and below that level.


(Oracle Express) A Selector dialog box tool that allows the user to select dimension values based on their level in a particular hierarchy. For example, the user can select all of the dimension values at the Key Account level in the Geography dimension.


The area of an editor in which you can create, modify, position, or delete objects.


A unit of measurement for ensuring a consistent measurement system across different display devices.  Used to specify a position on the layout, or the dimensions of an object.


A reference to a parameter used to represent a string of text in a SQL SELECT statement.  For a lexical reference, you must precede the parameter name with an ampersand (&).


A collection of one or more PL/SQL program units that are stored together in a file on the client file system or in the database.  Program units stored in a library can be referenced by several applications at once.  Unlike stored program units, which reside and execute in the database, program units in libraries always load and execute within the PL/SQL engine on the client side.  To reference program units that are stored in a library, you must first attach the library.  See also:  attached library.


A data model object used to define a master/detail (parent-child) relationship between a group and a query.


The name of a file to which a boilerplate object is associated.  At runtime, Report Builder imports the file's contents into your report layout.


A list of items within a dialog box.  Usually, the list box offers choices for selection, and it is scrollable.


In Form Builder, an item that displays a list of choices.


Also called LOV. A scrollable popup window that provides the user with a single or multi-column selection list.


(Oracle Express) A Selector dialog box tool that allows you to select dimension values from a list of the currently selected values in the dimension.


1. The database on the computer running the application.  2. The database to which an application is connected.  This database parses and executes all SQL statements generated by the application.


See user registry.


A PL/SQL variable declared only within the scope of the current program unit.


(Oracle Express)

Not	Unary Not -- Operand can be integer or long. The operation is performed bitwise (one's complement).

And	And -- Operands can be integer or long. The operation is performed bitwise.

Or	Inclusive Or -- Operands can be integer or long. The operation is performed bitwise.

Xor	Exclusive Or -- Operands can be integer or long. The operation is performed bitwise.

Eqv	Equivalence -- Operands can be integer or long. The operation is performed bitwise. (A Eqv B) is the same as (Not (A Xor B)).

Imp	Implication -- Operands can be integer or long. The operation is performed bitwise. (A Imp B) is the same as ((Not A) OR B).


One page of your actual report (it may be displayed on one or more physical pages).


In a PL/SQL subprogram, a conditional statement that is repeated until the condition is no longer met.


In Project Builder, a type-specific variable that may be used to customize and extend actions.  A macro may be either a constant or a simple expression (which, in turn, may contain other constants and/or expressions).  The use of macros adds great flexibility in issuing command options, and in allowing the user to modify sets of commands by changing one property definition.


A default layout that displays records in one or more columns on the page.  Fields appear directly beneath each other in a single repeating frame.


An optional report region that appears at the top and bottom of each logical page in the body region.  The margin may include any layout object, but typically contains boilerplate and fields (for page numbers, page totals, grand totals, and current date and time).


A default layout in which the detail records appear below the master records.  Master records appear in form layout style, while detail records appear in tabular layout style.


(Oracle Express) A Selector dialog box tool that allows the user to select dimension values by matching characters in dimension value names to characters that the user specifies. For example, the user can select all dimension values in the Product dimension at the Brand level that contain the characters "new."


A repeat direction that displays each record of a repeating frame as a cell of a matrix.


A default layout, resembling a grid, that formats the four sets of data necessary for a matrix report; one set of data displays as a row of labels, one as a column of labels, one set creates the grid, and one set fills the cells of the grid.


A cross-tabulation of four sets of data:  one set of data displays across the page; one set of data displays down the page; one set of data is the cross-product, determining all possible locations in which the across and down data relate and placing a cell in those locations; and one set of data displays as the "filler" of the cells.


(Oracle Express) Data that can be examined and analyzed, such as sales or cost data. You can select and display the data in a measure. Measures can be stored as variables or relations, or measures can be calculated by means of formulas.


A unit of memory equal to 1,048,576 bytes (1024 x 1024). Often rounded to one million bytes.


A modal window that notifies you of a condition that occurred because of your last action.  You must respond to a message box.


Executable code attached to an Oracle8 object through its object type definition.


A window that elicits a response from the operator before the application can continue.


An unrestricted window that can have as much functionality as the runtime window manager can support.


1. An object that can be shared by multiple applications.  External queries and PL/SQL libraries are examples of modules.  2. In Form Builder, a major component of an application (i.e., a menu module).


A field in a window or dialog that extends for several lines, allowing you to scroll vertically through the information.


(Oracle Express) A special data value that indicates that data is "not available" (NA). NA is the value of any cell to which a specific data value has not been assigned or for which data cannot be calculated.


Matrix report in which either the across and/or down dimension contains one or more master/detail relationships.  There is no limit to the amount of nesting allowed.


A datatype indicating that the data will be fetched when the page on which it appears is formatted (instead of fetched and cached until formatted).


1.  A specific location in the Object Navigator object hierarchy.  Nodes can be expanded to reveal information about an object, such as cross references to other objects.  2.  In Project Builder, an entry in the Project Navigator.  See also:  item, item node, organization node.


A report column that references a database column of datatype NOCACHE.


The absence of a value.


(Oracle Express)

^	Exponentiation,

-,+	Unary minus and plus,

*, /	Numeric multiplication or division. For division, the result is a double.

\	Integer division. The operands can be integer or long.

Mod	Modulus or Remainder. The operands can be integer or long,

-, +	Numeric addition and subtraction. The + operator can also be used for string concatenation.


1.  An item that can be placed on the layout.  The following are examples of objects:  rectangle, line, ellipse, arc, polygon, polyline, rounded rectangle, freehand, chart, text, symbol, and text field.  2.  In Oracle8, an instance of an object type.  An object can be a row in an object table, or the portion of a row contained in a column object in a relational table.


See column object.


A container for a group of objects, used to provide the ability to copy or reference related objects.


See handle.


The window containing a hierarchical list of objects for the current session.  The list appears in outline form, and enables the user to accomplish several tasks such as creating, editing, renaming, and deleting objects.


In Oracle8, a table whose definition is based on an object type.  Each attribute in the object type becomes a column in the object table.  Each row in the table is an individual Oracle8 object.


In Oracle8, a user-supplied definition or template, upon which objects can be built.  An object type is a composite, whose parts are attributes.  Each attribute has a name and a datatype, and the object type as a whole has a name.  An object type may also include one or more methods.


Acronym for Open Database Connectivity.  A standard for accessing different database systems.  An application can submit statements to ODBC using the ODBC flavor of SQL.  ODBC then translates these to whatever flavor the database understands.  Using the Oracle Open Client Adapter (OCA), an application can access different database management systems in one consistent manner.  This allows an application developer to develop, compile, and ship an application without targeting a specific DBMS.


Object Linking and Embedding.


An application that can store and display OLE objects.


An application that creates OLE objects.


See built-in datatype.


An environment variable that indicates the root directory of Oracle products.


An entry in the Project Navigator, such as "Types", "Projects", "Form Files", etc., used to help organize the Navigator and indicate the filetypes of child items.  It may also correspond to a data structure within certain types of filesystem objects.


Represented in x and y coordinates.  The origin of a view indicates the location of the view on its parent's canvas.  The origin of a canvas indicates the position of drawing on a drawn view.


The smallest virtual rectangle that completely surrounds an object.


When an object's contents cannot fit on the current logical page.  In the event of overflow, some of the contents are moved to the next logical page.


A PL/SQL function provided with the software that can be referenced anywhere within a program unit.


A method of encapsulating and storing related procedures, functions, variables, and other package constructs together as a unit in the database or on the client.  While packages provide the database administrator or application developer organizational benefits, they also offer increased functionality and database performance.  The software provides several built-in packages which contain PL/SQL constructs that can be referenced by client-side program units (e.g., TEXT_IO package).  Several packages are also supplied with the Oracle database server for referencing by stored program units (e.g., DBMS_OUTPUT package).


Includes the actual implementation of the package, which may include private subprograms and datatypes.  The body is optional if the package consists only of declarations.


Declares the public interface to the package-that is, the datatypes and subprograms that can be referenced by other program units.


(Oracle Express) 1. A slice of data included in a report. Additional pages display additional slices of data.

The following figure shows three pages of data.

2. In Express, a page can also refer to a unit of storage in an Express database.


(Oracle Express) A representation of how data selected for a query will appear in your spreadsheet. The page layout shows three edges -- Across, Down, and Page. The edges indicate how the multi-dimensional datacube defined by the query will appear in the two-dimensional spreadsheet. Dimension tiles display the names and positions of the dimensions. A dimension tile on the Across edge indicates that this dimension will appear as a column. A dimension tile on the Down edge indicates that this dimension will appear as a row. A dimension on the Page edge indicates that this dimension will appear in a page box at the top of the results.


A setting that controls whether to move the current object and its children to the next logical page.  You can set page breaks to occur before or after the current object appears in the report output.


An interface element that displays tools, colors, or patterns available in an editor.


A distinct portion of an editor where work is performed, usually resizeable.


The number of physical pages needed to print one logical page.


1. A PL/SQL construct used to pass information to a subprogram.  For example, in the subprogram call MYPROC (x),x is a parameter.  2. In Forms Developer, parameters are used to pass information between components such as Form Builder and Graphics Builder.  3. A variable you can change at runtime.


A group of parameter names and associated values used to pass information between Forms Developer components.


1. An object that is immediately above another object in its group tree.  A group object is the parent to each of the objects that compose it.  Every object is the parent of its children.
2. (Oracle Express) A dimension value at the level immediately above a particular value in a hierarchy. The parent value is the aggregated total of the values of its children.  The following example shows the dimension value "France" as the parent of "Lyon" and "Paris" in the GEOGRAPHY dimension.


To place the contents of the Clipboard (cut or copied objects) at the current cursor location.


A graphical property you can apply to the edge or fill of most objects.


The machine code or instruction list for a compiled program unit.


Acronym for Portable Document Format.  A file format (native for Adobe Acrobat) for representing documents in a manner that is independent of the original application software, hardware, and operating system used to create the documents.  A PDF file can describe documents containing any combination of text, graphics, and images in a device-independent and resolution independent format.


The size of a page that is output by your printer.


The type of element used to plot a field on a chart, such as bar, line, or symbol.


Oracle's proprietary extension to the SQL language.  Adds procedural and other constructs to SQL that make it suitable for writing applications.


A Procedure Builder Interpreter script file.


A PL/SQL library file that contains source code and compiled code. The file can be opened in Procedure Builder for editing.


A text file that contains the PL/SQL source of a single program unit.


A runtime PL/SQL library file that contains executable code only.  The file cannot be opened in Procedure Builder for editing.


A list that pops up when the user performs a particular action.


A number that TCP uses to route transmitted data to and from a particular program.


An action shipped with Project Builder and automatically available to the user via a menu item and/or a toolbar button.  Pre-defined actions include Build, Deliver, and several source control options.  When a pre-defined action is defined for a supported file type, the action is invoked for any selected item of that type when the user calls the action from Project Builder.  See also:  action, user-defined action.


See built-in datatype.


A setting that affects the behavior of the application's interface.


(Oracle Express) View the script that would be generated if you accept the current criteria. In the dialog box for any Selector tool you can preview your selection by choosing the Preview button.


The interface with which you view and scroll through report output online.


A column in a database table whose members consist of unique values that can be used to identify a row in a table.


See built-in datatype.


In a printer definition file, an escape sequence to which you assign a printer code that can be referenced in a report.


A file that contains a printer definition in text (e.g., ASCII or EBCDIC) format.


A PL/SQL subprogram that performs a specified sequence of actions. .  Can reside and execute on the client and the database server.


A PL/SQL code structure that can be independently recognized and processed by the PL/SQL compiler.  Anonymous blocks, subprogram specifications and bodies (procedures and functions), and package specifications and bodies are types of program units.  Program units can reside and execute on the client and the database server.  See also:  stored program unit.


The basic data structure created by Project Builder.  Projects are collections of pointers to all the files you consider part of your application, or otherwise want to group together conceptually.  You can define the editors, compilers, and other tools you use to work with the items contained within a project.  All project information is stored within a project registry.  See also:  project item, project file, export.


In Project Builder, project files are all the files associated with an application.  Project files can be of any type, including forms, reports, displays, 3GL modules, documentation, and test scripts. See also:  project, project item.


In Project Builder, anything for which properties may be defined, including all entities stored under the Projects node, types, actions, and macros. See also: project, project file.


The window containing a hierarchical list of project items for the current session.  The list appears in outline form, and enables the user to accomplish several tasks such as creating, editing, renaming, and deleting objects.  Although only one is visible at any time, the user can choose from two different schema by which to organize the objects.


The top-level node for a project.  It represents or points to the project file.  See also: project, project file.


In Project Builder, the file that stores all the information associated with a project:  files belonging to the project, types, actions, and macros defined for the project, and so on.


The project view shows objects organized by their type, and by their project/subproject relationships.  The projects are organized alphabetically by project file, then alphabetically by category.  See also:  dependency view, project, project file, view.


A dialog that assists the user in accomplishing the steps necessary to create a new project or sub project.


A characteristic of an object that determines the behavior or appearance of that object.


A named object that contains a list of properties and their settings used to globally control the appearance and functionality of objects based on that class.


A string you can enter when connecting to a database or server that allows you to connect to a remote database or server.


(Oracle Express) When you select values for one of the dimensions in a measure, the other dimensions that make up that measure are known as qualifying dimensions.

Suppose your Sales measure is dimensioned by Product, Month, and Geography. If you select the top ten cities based on Sales, you must also specify which product and month you want to consider when you compare Sales values. In this case, Product and Month are the qualifying dimensions.


A SQL SELECT statement that specifies the data you wish to retrieve from one or more tables or views of a database.


A PL/SQL function that, when executed, filters data retrieved by a query.  Only the data that meet the conditions in the function are charted.


An option that terminates the current session and returns the user to the operating system.  On some systems, Quit is Exit.


A control (similar to a check box), appearing in sets of two or more, only one of which may be either "on" or "off" at any given time.


A set of two or more radio buttons, only one of which may be either "on" or "off" at any given time.


(Oracle Express) A Selector dialog box tool that allows the user to select consecutive time periods as dimension values. These time periods can be based on any of the following:

•	A specific number of the most recent time periods

•	A beginning time period and a most recent time period

•	A beginning and ending time period

For example, the user can select dimension values for the range from the week ending November 25, 1996 through the week ending December 30, 1996.


A cipher designed by RSA Data Security, Inc. which can accept keys of arbitrary length, and is essentially a pseudo random number generator with the output of the generator being XORed with the data stream to produce the encrypted data.  For this reason, it is very important that the same RC4 key never be used to encrypt two different data streams.


Acronym for Relational Database Management System.  A database that allows the definition of data structures, storage and retrieval operations, and integrity constraints.  In such a database, data and relations between them are organized in tables.


A file that contains a single report definition in binary format.  .RDF files are used to both run and edit reports.


A file that contains a single report definition in binary format.  .rep files are used solely to run reports; you cannot edit a .rep file.


The ability to query the data throughout a database as of a single point in time.


One row fetched by a SQL SELECT statement.


An internal data structure object with a column/row framework, that belong to the form module in which they are defined.


A type of column that points to data in other column objects or object tables (Oracle8).


A line that appears at a specified value on a chart.


(Oracle Express) Fetch the most recent data from an Express database after query results are displayed in your report. When you open a saved Express query, the results are refreshed automatically.


To add the definition of a type or a new project to either the global or local registry.  Upon being registered, a new type can have actions defined for it, while a new project can have its referenced files identified as specific types, so that actions can be invoked against them.  See also:  registry.


A global and/or user-specific configuration file used to store project definitions and environment information.  See also:  Global Registry, user registry.


A symbol used in search criteria to indicate a comparison between two values, such as the equal sign in "WHERE DEPTNO = 10." Rows in which the comparison results in "true" are returned in the result (fetched), while rows in which the comparison returns "false" are rejected from the result.


A database on a computer other than the local database.  Usually a computer on the same network, but at a different node (i.e., a database that you use through a database link).


A layout object used to display rows of data that are fetched for a group.


A mode in which each character you type replaces the current character at the cursor.  The opposite of insert mode.


The objects that are used to define a report's data model and layout.  Report-level objects are assigned to a single report, and cannot be shared by other reports or other Oracle products. Objects include reports, queries, external queries, external PL/SQL libraries, groups, columns, parameters, links, frames, repeating frames, fields, boilerplate, and anchors.


Available on Windows NT and Windows 95 only, waits for any command lines to run a report, then places that report in its queue to run in the background on the local server.  Typically command lines are received from Form Builder or Graphics Builder via RUN_PRODUCT, or from another report via SRW.RUN_REPORT.  You can also use RWISV60 to submit a report to the Reports Background Engine.


Maintains timestamp and status information about reports managed by the Reports Server.


Available on Windows NT, Windows 95, and UNIX, enables running reports on a remote server.  Queues job requests and allows you to schedule when to run reports.  Use RWCLI60 to send a report to the Reports Server.


Provides an interface between your Web Server and Reports Runtime, enabling you to run reports dynamically from your Web browser.


Provides a connection between a Web Server and the Reports Server.


A file that contains a report definition stored in text (e.g., ASCII or EBCDIC) format.  .REX files are used to port reports from one platform to another. Note that .REX files are no longer required. They are available for backward compatibility.


Refers to the intensities of the red, green, and blue components of a color.


The group object to which all other objects in an application belong.


Top-level node for a project representing user's environment.  May correspond to the user registry or the Global Registry, depending on which registry has been chosen to set defaults.


1. One set of field values in a table; for example, the fields representing one employee in the example table EMP.  2.  To generate a runtime version of an application.


An object in an Oracle8 object table.  Each row in the table is an object.  However, in Forms Developer an object table is deconstructed into individual columns, so that the row object no longer exists as a single entity (only as its separate attributes).


To execute a runtime version of an application or program unit.


Acronym for Rich Text Format.  A non-platform-specific file format based on control words used to represent unformatted text and images in various applications and operating systems.  RTF uses the ANSI, PC-8, Macintosh, or IBM PC character set to control the representation and formatting of a document, both on the screen and in print.


See rep file.


The interface in which users view and interact with a runtime application.


A screen or window appearing optionally at runtime in which a user can modify print options and parameters prior to report execution.


(Oracle Express) A set of dimension values that has been saved either as a list of values or as a script. You can save selections that you build, or your database administrator can create saved selections and make them available to you.

Saved selections are a time-saving feature: each time that you need to re-use a selection, you can simply retrieve a saved selection without having to recreate it.


(Oracle Express) A Selector tool that allows you to retrieve a selection of dimension values that has been saved.


A collection of related database objects, usually grouped by database userid.  Schema objects includes tables, views, sequences, stored program units, synonyms, indexes, clusters, and database links.


The level at, or range in which, an object operates.  For Project Builder:  1.  Describes the range of files affected by Compile and Compile All commands invoked against compilable project items.  2:  Describes the range of files influenced by inheritable definitions.


See SQL script, Interpreter script.


In Report Builder, one of multiple layouts in the same report, each with a different target audience, output format, page layout, page size, or orientation.  For example, a single report can include an executive summary for senior management in one section and also a detailed breakdown for  individual managers in another section.


A SQL statement that specifies which rows and columns to fetch from one or more tables or views.


(Oracle Express) The set of dimension values currently chosen for a dimension, or the script that contains conditions or criteria to specify those values.


(Oracle Express) As shown on various dialog boxes in the Selector, a description of the choices that a user has made in selecting dimension values. It is a translation, in ordinary language, of the Express Language script.


(Oracle Express) A set of tools that you use to choose the dimension values to include, for instance, in a report, table, graph, or dimension list box. For example, you can use the Selector to choose the top 10 cities based on Sales or those cities whose Sales exceeded Quota by 15 percent. The Selector also allows you to sort dimension values and to create and retrieve saved selections.


(Oracle Express) A dialog box or group of dialog boxes that provides a particular way of selecting or sorting dimension values. Each Selector tool is part of the Selector. You can use Selector tools to select dimension values based on their level in the hierarchy, their attributes, the characters in the value name, and so on. You can also use Selector tools to sort the dimension values.


The period between invoking and quitting the executable.


One of two or more objects that have the same parent object in its group tree.  All objects that belong to one group object are siblings.


The combination of an IP address and a port number.


(Oracle Express) A Selector dialog box tool that allows you to rearrange the order of dimension values in a displayed selection. You can sort a selection in ascending or descending order by the following:

•	Alphabet

•	Order in the database

•	Data value

•	Order or level in the hierarchy

•	Time period

You can also sort a selection manually, by dragging and dropping dimension values.


In PL/SQL:  Statements provided in a subprogram or package.  You must have the source code for a program unit before you can compile it into executable form.  In Project Builder:  The input types required to build target types.


Defines only the names, parameters, and return type (applies to functions only) of the subprogram.


A small rectangle at the bottom of the vertical scrollbar and to the left of the horizontal scrollbar in an editor.  Dragging and releasing the mouse button creates a new pane, and divides the scroll bar into separate scroll bars for each pane.


A standard interface for storing and retrieving information in a relational database.  SQL is an acronym for Structured Query Language.


A that contains a query stored in text (e.g., ASCII or EBCDIC) format.


A file containing SQL statements that you can run to perform database administration quickly and easily.  Several SQL scripts are shipped with Oracle products.


A SQL instruction to Oracle.  A SELECT statement is one type of SQL statement.


See call stack.


A PL/SQL construct used for conditional, iterative, and sequential control, and for error handling.  A semi-colon (;) must terminate every PL/SQL statement.


(Oracle Express) A saved selection that contains the same dimension values every time it is evaluated. Static saved selections list the dimension values that are to be selected, rather than the selection criteria. For example, a static saved selection script might include "Select February 1996, March 1996, and April 1996", while the script for a dynamic saved selection might have "Select the last three Months".


A procedure, function, or package that resides and executes in the Oracle database server.


A procedure or function that resides and executes in the Oracle database server.


HTML extensions that provide powerful formatting flexibility in HTML documents.  To view an HTML document that takes advantage of style sheets, display it in a browser that supports style sheets.


A PL/SQL procedure or function.


In Project Builder, a project contained within another project file, rather than being stored in its own file.  See also:  project.


In Project Builder, a node denoting a subproject.  See also:  project, project node, subproject node.


A column, with a type of summary, which computes subtotals, grand totals, running totals, and other summaries of the data in a report, using one of the packaged summary functions provided by Report Builder.


The file format used by the Microsoft Excel program.


The orderly system by which commands, qualifiers, and parameters are combined to form valid command strings.


One of the variables that are provided with Reports Developer (e.g., &Logical Page, DESTYPE).


A named collection of related information, stored in a relational database or server, in a two-dimensional grid that is made up of rows and columns.


A collection type, which defines a data unit made up of an unordered set of elements, all of the same data type.  The corresponding data unit is a single column nested table, the column type of which is a built-in type or an object type.  (Oracle8)


A default layout displaying labels at the top of the page and rows of data underneath the labels.


In Project Builder, any item in the middle of the dependency tree; for example, an executable is a (compile) target for a library; while a library is a target for a group of objects; and an object is a target for a source file.


A node denoting a target.  See also: target.


Acronym for Transmission Control Protocol. The underlying communication protocol for exchanging HTTP requests between clients and Web servers.


A submenu that the user can remove from its source using a mouse or other pointing device and drag to another part of the display screen.


In Form Builder, an item that displays a character string value.


The horizontal area at the top of a window that displays the name of the application or interface element in that window.


See header.


To turn a setting alternately on or off.  For example, you can hide or show the Object Navigator.


An iconic button used to create and manipulate objects in an application.


Collection of iconic buttons that perform product commands.  Usually aligned horizontally along the top, or vertically down the side of a window.


A collection of tools.


(Oracle Express) A Selector dialog box tool that allows the user to select dimension values based on the top x, bottom y, or top x and bottom y data values. For example, the user can produce a dimension selection that contains products whose Volume Sales were among the top 10 percent of products in the Total U.S. for the four-week time period ending December 30, 1995.


A optional report region that can contain closing material for the report, including text, graphics, data, and computations.  The report trailer appears last, following the header and body.


A sequence of SQL statements treated as a single unit.


A PL/SQL procedure that is executed, or "fired," upon a specific event.


A description of a file type, such as a form, a document, etc., containing such information as type name and description. Each description applies to a single file type.  In addition, there are four meta-types: "updtext", which applies to all text files, “updproj” which applies to all project files, “updlink”, which applies to all project links, and "all" which applies to any file type.  Types are the foundation for defining actions and macros.


To change the values for table data, in particular, by altering data values using the SQL command UPDATE, but also by deleting values using the SQL command DELETE or by inserting values using the command INSERT.


Acronym for Uniform Resource Locator. The "address" used to specify a WWW server and home page.  For example:
http://www.acme.com/
which indicates that the host's address is www.acme.com. An URL most often is a filename (possibly with a long path to it and usually with an extension of .HTML, or .HTM (for PC-DOS filenames).


A way in which to pass control (and possibly arguments) from Forms Developer to another Oracle product or 3GL, and then return control (and possibly arguments) back to Forms Developer.


A custom action defined by a Project Builder user.  Such actions may apply to any single file type, or to all file types.  See also:  action, pre-defined action.


See object type.


A custom macro defined by a Project Builder user.  Such macros may be used to modify both built-in actions and user-defined actions.  See also:: macro, built-in macro, action, pre-defined action.


A project file storing configuration information on a per-user basis.  This enables users to customize their individual development environments.  The user registry inherits type information from the Global Registry, and may define new types as well as override aspects of type definitions stored in the Global Registry.  It also stores environment and preference information, such as the user's preferred connection string, UI settings such as "Display Toolbar" and certain general project information such as "Author."  See also:  registry, Global Registry.


See continuous axis.


A PL/SQL code structure that returns a value.  Value constructs include functions and expressions.


A named object that can be assigned a value and whose assigned value may change over time.


A collection type, which defines a data unit made up of an ordered set of elements, all of the same datatype.  The corresponding data unit is a varying array or VARRAY.  The number of elements in a VARRAY (size) is variable.  However, you must specify a maximum size when you declare a varying array type.


Visual Basic extension.  Used as the file extension for special dynamic link libraries distributed on files that contain predefined VBX controls.


A widget, built with the Microsoft Visual Basic language, used to enhance the user interface, obtain user input, and display output  (e.g. sliders, grids, and control knobs).


A virtual table whose rows do not actually exist in the database, but which is based on a table that is physically stored in the database.


A directory mnemonic (essentially a shortcut or synonym) that the virtual file system uses to map files stored in the file system on the host machine.


A mapping that associates the pathnames used in URL to the file system maintained by the host machine's operating system.


The font, color, and pattern properties that you set for objects that appear in your application interface.


See WWW.


A program that end users utilize to read HTML documents and programs stored on a computer (serviced by a Web server).


A program executed on a Web server via the Web Request Broker.


A server process (HTTP daemon) running at a Web site which sends out Web pages in response to HTTP requests from remote Web browsers.


A character used to mean 'any one character' or 'a contiguous set of characters' within a word or phase.


1. A rectangular area of the desktop that contains an application.  Each window has an area where you can interact with the application.  Windows can be opened, resized, moved, reduced to an icon, or enlarged to fill the entire desktop.  2. In Form Builder, an object type you can associate with a canvas view.


The file format used by some spreadsheet programs, such as SQL*Calc, or by Lotus 1-2-3 programs.


Acronym for Oracle Web Request Broker.  Provides a powerful distributed runtime environment for developing and deploying applications for the Web.  The WRB runtime platform enables application developers to write applications that are independent of, and work with a number of, Web servers.


Acronym for World Wide Web.  The network of servers on the Internet, each of which has one or more home pages, which provide information and links to other documents on that and (usually) other servers.


To expand an object to allow more room for editing the contents of the field.


The secondary toolbar docked (by default) to the left of the Project Navigator.  It provides simple organization and application launching abilities.


 the latest version of OLE controls (OCX)


XML output complying with general XML principles such as proper tagging, nesting, and the inclusion of an XML declaration, e.g. <?xml version="1.0" encoding="UTF-8"?>.


A placeholder username enables users to log on to the database using their personal username rather than the Oracle database username (e.g., $user_name@database) when running reports from a Web browser.


Extensible Markup Language -- a metalanguage using SGML to define and structure data. Report Builder supports XML output to enable Web publishing as well as electronic data exchange with third-party applications. You can also use XML to build report definitions that can be merged with other report definitions at runtime or run separately


XML output with structure and element content conforming to a document type definition (DTD). Valid XML is also well-formed.


About source control

  Related Topics

Source control is the process of managing and maintaining multiple revisions of the same file in an archive.

An archive is a user-defined directory that contains a text version of the file as well as information about each revision of the file, including a description of all file changes and when they were made.

Using an archive, a member of your development team can retrieve, modify, and return any revision of a file in a safe and consistent manner.

Components (e.g., Form Builder) provides source control in via a generic interface to any source control provider you want to use.  Plug-in modules are currently available for the Polytron Version Control System (PVCS) from INTERSOLV and Pure-Atria Clearcase, with others forthcoming.

For information on installing and using PVCS, refer to your INTERSOLV documentation.

PVCS also supports file locking and archive reporting.


About configuration files

There are four environment variables that should be set for optimum performance of the source control interface.  Under Windows 3.1 these are set in oracle.ini, while under Windows NT or Windows 95/98 these are set in the registry, in the SOFTWARE/ORACLE key.

DEV2000_SOURCECONTROL specifies which source control system to use.  This should be set to "PVCS".  Since components (e.g., Form Builder) defaults to use PVCS, omitting this variable will not have any noticeable effect in this release.  However, as support for more source control systems is added, setting this variable will ensure that the source control interface functions as intended.

DEV2000_PROJECT  replaces the TVCCFG variable from Forms Developer release 1.0 and 1.1, and identifies the PVCS project configuration (.CFG) file that should be used.  If you do not specify a project configuration file via an environment variable, you will need to choose one from the Source Control Options dialog box in each session.

DEV2000_SCVIEWER controls what program is used to view the results of a source control log or difference report operation.  To disable viewing the results, set this variable to null (no value).

DEV2000_SCCONVERT controls whether files are converted to ASCII before checking them in to PVCS, and converted back to binary before checking them out.  Unless you are upgrading from using PVCS with a prior version of Forms Developer, and want to preserve this behavior, you should leave this entry set to its default of FALSE.

A sample fragment of oracle.ini might be:

...

DEV2000_SOURCECONTROL=PVCS

DEV2000_PROJECT=C:\PROJECTS\MYPROJ\MYPROJ.CFG

DEV2000_SCVIEWER=NOTEPAD.EXE

DEV2000_SCCONVERT=FALSE

...


About PVCS implementation

When you check in certain objects (forms, menus, reports, displays, PL/SQL libraries) the binary file is automatically converted to the text-file equivalent, and the text file is checked in to the source control.  For example, if you checked in MYFORM.FMB, MYFORM.FMB would automatically convert to MYFORM.FMT (the text equivalent) and then check MYFORM.FMT in to source control.

Similarly, when you check out an archived file, it converts the text version of the file to the equivalent binary format that can be read by the designer interfaces.  If you were to check out MYFORM.FMT, it would be converted to MYFORM.FMB so that you could edit it.

Archiving is done on the text version of the file to permit more meaningful Difference Reports to be generated between different revisions of a file.  While PVCS does support archiving binary files, difference reporting between revisions of binary files is not possible.

This file conversion can lead to extra files being left in your working directory, depending on PVCS settings.  If your project is configured to make working files read-only after check-in, you will have both the binary file, and a read-only text-format file, present in your directory.  However, if your project is configured to delete working files after check-in, only the binary file will remain present in your working directory.


About checking in a file

  Related Topics

Each time you modify a file and check it into an archive, it becomes a new revision.  When you check in a file (e.g., a PL/SQL library file with an extension of .pll), PVCS performs a binary-to-text conversion automatically and archives the file in the specified location as a text file with the appropriate file extension (e.g., .pld).  PVCS uses the text file to generate archive reports.

A version label identifies a revision as one of a group of revisions that typically make up a complete version of your application.  Version labels enable you to operate on all of the files associated with a particular version at the same time by referencing a single name.  If you have already archived a version of the current module, the appropriate information automatically enters in the Archive field.


About checking out a file

  Related Topics

Checking a file out of an archive gives you access to it for browsing, editing, or printing.  By default, only one user at a time can check out a particular revision with a lock.

When you check out a file, the file automatically converts from the archived text version to the proper format (for example, the conversion of a PL/SQL library file from pld to .pll).  The file you check out of an archive is called a workfile.  Each time you check in a new variation of a workfile, it becomes a revision.


About creating archive reports

  Related Topics

PVCS enables you to generate reports that summarize the following archive activities:

•	creation of archives

•	attributes of archived files

•	successive revisions

•	label names

•	lines changed in the last revision

•	description of the workfile


About promotion models

A promotion model is a hierarchy of milestones in a development cycle.  You use promotion to control the development of source code from the design phase to final release.  Each milestone is represented by a promotion group.  Examples of promotion groups include Development, Quality Assurance, and Production.  A promotion model is an advanced feature, and is recommended for sites with formal software turnover procedures.

A promotion model can have one ore more lowest-level, or development, groups.  When a promotion model is in effect, users can only modify revisions that are associated with a development group.  To edit a revision associated with a higher group, a user must check it out and reassociate it with a development group at check out, then repromote it to a higher group after checking it back in.

If the promotion model only includes one development group, only one revision in the archive can be locked at a time.  To design a promotion model for parallel development, you must include at least two development groups.

You can define any number of intermediate promotion groups above the development group(s) for various stages of testing or preliminary releases.  At the highest level is the production group, which usually indicates that revisions are ready for final release.

Using a promotion model enables you to:

•	Quickly determine project status.  You can run an archive report on project in a project to immediately determine which modules have not reached a particular milestone in the development cycle.

•	Control revision access on non-development levels.  Because users cannot modify revisions associated with post-development promotion groups, you ensure that all revisions are thoroughly tested.

•	Custom-design your own model.  You can custom-design a promotion structure that is uniquely suited for each project, with any number of milestones in the promotion structure.


Creating an archive directory

  Next Step	  Related Topics

To create an archive directory:  Note:

1	Choose File [image] Administration [image] Source Control Options to display the Source Control:  Options dialog.

2	If it is not already selected, select the Project tab.

3	Specify the name and location of your archive directory In the New Archive Directory field.

4	Click Add new directory to list and then click Close to close the dialog.


You cannot add archive directories unless you have already defined the DEV2000_PROJECT parameter in the oracle.ini file.  On Microsoft Windows, define the DEV2000_PROJECT parameter as follows:

DEV2000_PROJECT=C:\PVCS\PROJECT1\PROJECT1.CFG

You edit the DEV2000_PROJECT parameter using the Oracle.ini file for Windows 3.1 and the Registry for Windows 95/98 and NT.


Checking in a file

  Next Step	  Related Topics

To check in a file:

1	Choose File [image] Administration [image] Check-In to display the Source Control: Check-In dialog.

2	Type the name of the file to archive in the Work File text box.

3	Specify the location of your archive in the To Archive field.

4	(Optional)  Provide a Version Label, Promotion Group, and Description.

5	(Optional)  Click the Retain lock after checkin check box if you want a writable copy of the archive file to remain locally even after the file is checked in.  Having a writable copy of the file allows you to modify and check in subsequent changes to the file without having to first check the file out.

6	Click OK to check in your file.

PVCS archives your file.


Checking out a file

  Next Step	  Related Topics

To check out a file:

1	Choose File [image] Administration [image] Check-Out to display the Source Control:  Check-Out dialog.

2	Specify the location of the source archive in the Source Archive field.

3	Type the name of the file you want to check out in the File Name text box.

4	Select the desired file revision in the Revisions field.

5	(Optional)  Specify the desired destination by entering a path in the Destination field.

6	(Optional)  If you intend to lock the file you are checking out, you must choose the Development-level Promotion Group that will be assigned to the revision you are checking out.

7	(Optional)  Click the Lock file at checkout check box.  Note:

8	(Optional)  Click the Open file after checkout check box.  If this box is checked, the file you checked out will be opened in the designer after it has been checked out of PVCS.

9	Click OK to check out your file.


If you intend to modify an archive file, you must enable the Lock file at checkout check box in order to check in your changes.  Otherwise, a read-only version of the file will be checked out.


Creating an archive report

  Related Topics

To create an archive report:

1	Choose File [image] Administration [image] Source Control Options.

2	Click the Reporting tab to display the Source Control:  Reporting Options page.

3	Specify the location of the archive in the Archive field.

4	Specify the name of the desired archive file in the Source File field.  PVCS will generate a report based on the comparison between this file and the target file.

5	Specify the name of a target file In the Target File field.  Note

6	Select the desired file revisions in the Source Revision and Target Revision fields, respectively.

7	Specify the name and location of your report in the Output File field, then click Run Report.

PVCS creates your report.  If a viewing program is specified via the DEV2000_SCVIEWER environment variable or oracle.ini parameter, it will be called to display the output.  Otherwise, use an editor to open your report file.


If you are comparing two revisions within the same archive, enter the name of the archive file that you entered in step 4.  If you are comparing different archive files, specify a different archive file in the Target File field.


Source control: Check In dialog

  Related Topics

Merges the desired file into the specified archive.

The Check-In dialog includes the following options:

Work File	Specifies the name of the file you are checking in.  Choose Browse to invoke a file dialog from which you can select a file.
To Archive	A drop-list of all available archives for the current project.  Select an archive from the list where the file is to be checked in.
Version Label	(Optional)  Specifies the file version label.
Promotion Group	If a promotion model is defined for your PVCS project, this list is enabled.  Choose the Development-level promotion group that is to be assigned to the revision you are checking in.
Description	Specifies a description of the changes made for this revision.  Although optional, it is recommended that you enter a change description to make it easier to identify revisions at check-out.
Retain lock after checkin	Specifies whether a writable copy of the archive file should remain locally even after it is checked in.  Having a writable copy of the file allows you to make subsequent changes to the file without having to first check the file out.


Source control: Check Out dialog

  Related Topics

Retrieves the specified file from an archive so you can edit it.

The Check-Out dialog includes the following options:

Source Archive	Specifies the directory name of the archive from which the file should be checked out.
File Name	Specifies the name of the file you want to retrieve from source control.  Choose Browse to invoke a file dialog from which you can select a file.
Revisions	Displays the available revisions and version labels of the file selected in the File Name field.
Description	Lists descriptions of the available revisions listed in the Revisions list.
Destination	(Optional)  Specifies the destination directory for the file being checked out.
Promotion Group	If a promotion model is defined for your PVCS project, this list is enabled.  If you intend to lock the file you are checking out, you must choose the Development-level promotion group that will be assigned to the revision that you are checking out.
Lock file at checkout	Specifies whether the file being checked out should be marked as locked.  A locked file is protected against update by other users.
Open file after checkout	If you check this box, the file you checked out will be opened in the designer after it has been checked out of PVCS.


Source control: Options dialog

  Related Topics

The Options dialog includes three tabs:

Project Options

Files Options

Reporting Options


Source control: Project Options page

  Related Topics

Enables you to add and remove archive directories from your project configuration file.

The Project Options page includes the following settings:

Current project	The name of the current PVCS project configuration file.  Its initial value is the value of DEV2000_PROJECT in the oracle.ini  file.  You can enter a file name directly, or click Browse to display your operating system file dialog.
New Archive Directory	Specifies a new archive directory to add to the list of available archive directories in the current project.  You can type a directory name or click Browse to display your operating system file dialog.
Archive Directory List	Shows the archive directories available in the current project.
Add new directory to list	After entering an archive directory in the New Archive Directory text box, click Add new directory to list to add the directory to the current project.  The directory will appear in the list once added.
Remove selected directory from list	Select an archive directory from the list and click Remove selected directory from list to remove the directory from the project.


Source control: Files Options page

  Related Topics

Enables you to lock or unlock an archive, or generate a log of activity on that archive.

The Files Options page includes the following settings:

Archive	A drop-down list of all archive directories in the current project configuration file.
File Name	Specifies the archive file to access.  You can enter the name directly, or choose a file with Browse.  If your PVCS project is configured to ignore workfile paths, you can specify either a work file or an archive file.  Otherwise, be sure to specify an archive file only.
Revision	This drop-down list shows all available revisions and version labels of the selected file, as well as having an empty entry indicating no selection.  If you select a specific revision, that revision will be locked or unlocked.  If you do not select a revision, the behavior for locking depends on whether there is a promotion model defined.  If no model is defined, the tip revision will be locked.  If a model is defined, the revision currently assigned to the designated promotion group will be locked.  The behavior for unlock with no revision selected is always to release all locks you own on the file.
Promotion Group	If a promotion model is defined for your PVCS project, this list is enabled, and displays all Development-level promotion groups in your promotion model.  When you lock a revision, the promotion group shown in this list will be assigned to it.
Log File Name	Specifies the name of the log file
Log Type	Specifies the type of updates that should be entered in the specified log file when a check-in our check-out occurs.
Lock Revision	Locks the file specified in the File Name field, without retrieving it from source control.  A locked file is protected against update by other users.  If you selected a specific revision from the Revision list, that revision will be locked.  If you did not select a revision, the tip revision (or the revision currently assigned to the designated promotion group) will be locked.  If a promotion model is defined for your PVCS project, the designated promotion group will be assigned to the revision being locked.
Unlock Revision	Unlocks the file specified in the File Name field, allowing other users to check out and modify the archive file.  If you selected a specific revision from the Revision list, that revision will be unlocked.  If you did not select a revision, all locks that you own on any revisions of the file will be released.
Generate Log	Generates a log file with the specified name.  The type of entries in the log file are determined by the setting of the Log Type option.  If a viewing program is specified via the DEV2000_SCVIEWER environment variable or oracle.ini parameter, it will be called to display the output.


Source control: Reporting Options page

  Related Topics

Enables you to define and create archive reports.

The Reporting Options page includes the following settings:

Archive	A drop-down list of all archive directories in the current project configuration file.
Source File	Specifies the first file to use for difference reporting.  You can enter the name directly, or choose a file with the adjacent Browse button.  If your PVCS project is configured to ignore workfile paths, you can specify either a work file or an archive file.  Otherwise, be sure to specify an archive file only.
Source Revision	A drop-down list of all available revisions and version labels of the source file.
Target File	Specifies the name of the target file.  PVCS generates a report based on a comparison of the source file and the target file.
Target Revision	A drop-down list of all available revisions and version labels of the target file.
Output File	Specifies the destination directory and file name that the differences report should be written to when comparing one file to another.
Run Report	Creates a report according to the options specified.  If a viewing program is specified via the DEV2000_SCVIEWER environment variable or oracle.ini parameter, it will be called to display the output.


Error messages

The following are error messages you may encounter while using the Source Control Interface Dialogs:

D2SCP-001:	File access denied by File System

 Cause:	You do not have file system access privileges to either read the archive file, write the work file, or write log or report output.

 Action:	If you believe you should have file system access to these files, contact your system administrator.

D2SCP-002:	Insufficient Version Manager access privileges

 Cause:	You do not have PVCS privileges to access the archive you had specified.  You will also see this error if changing archive directories has been disabled in the Master Project and you attempt to change them in the Project Options tab of the Options dialog.

 Action:	If you believe you should have access to that archive, contact your PVCS administrator.

D2SCP-003:	Archive already exists

 Cause:	This indicates an internal error and should not be encountered.

 Action:	If it persists after repeating the operation you attempted, contact Oracle Customer Support.

D2SCP-004:	Cannot find the specified archive

 Cause:	You entered or selected a file that was not an archive, when an archive file is required.  A common cause of this is selecting the work file instead of the archive file (for example, MYFORM.FMB instead of MYFORM.FMV).

 Action:	Use the Browse button to choose an archive file.

D2SCP-005:	Invalid filename: Drive or path is nonexistent, or filename contains invalid characters

 Cause:	The filename you entered is not a valid operating system file name.

 Action:	Check the file name syntax for errors.

D2SCP-006:	File is in use by another process

 Cause:	The file you are trying to access is in use by another PVCS user.

 Action:	If you retry the operation after a short wait, it will generally succeed.

D2SCP-007:	Conversion Failed.  Workfile may be read-only or an unsupported type.

 Cause:	The possible causes of this error include:

A.	Your work file may be read only.  This will happen if you check out the file without locking it, and then later lock it from the Options Dialog.

B.	You attempted to check in or out a file that is of a type that  is not recognized.

 Action:	You can take the following action(s) to correct this error:

If A.	Use the Windows File Manager or Explorer to make the file writeable before proceeding.

If B.	Check the file in or out using the stand-alone PVCS interface.

Note that you can check out any file, but can only check in files that are recognized.  This is because Forms Developer can only determine if it’s a supported file type from the workfile.  When checking in, you have the workfile. so Forms Developer tests the file before check-in.  When checking out, the file is first checked out to obtain the workfile.  Only then can Forms Developer test the file.  So you can safely ignore this error on checkout if you know that you are checking out a non-Forms Developer file type.

D2SCP-008:	Invalid or insufficient values

 Cause:	This indicates an internal error and should not be encountered.

 Action:	If it persists after repeating the operation you attempted, contact Oracle Customer Support.

D2SCP-010:	Specified version label already exists

 Cause:	You specified a version label in the Check-In dialog that already exists for the file you are checking in.  PVCS requires version labels to be unique.

 Action:	Change the label.  To see labels in use, use the Log feature from the File Options tab of the Options Dialog.

D2SCP-011:	Specified revision does not exist

 Cause:	This indicates an internal error and should not be encountered.

 Action:	If it persists after repeating the operation you attempted, contact Customer Support.

D2SCP-012:	Invalid configuration file specified

 Cause:	The possible causes of this error include:

A.	The file you chose in the Project Options tab of the Options Dialog is not a valid PVCS configuration file.

B.	If you encounter this error when attempting to access the Check-In or Check-Out dialogs, it means that the configuration file specified in the DEV2000_PROJECT environment variable is invalid.

 Action:	You can take the following action(s) to correct this error:

If A.	Select another, valid, file.

If B.	Modify the variable, or use the Project Options tab of the Options Dialog to set a valid configuration file.

D2SCP-013:	You must first choose a project from 'Source Control Options'

 Cause:	You tried to access the Check-In or Check-Out dialogs, but had not specified a project, either through the DEV2000_PROJECT variable in the ORACLE.INI file, or on the Project Options tab of the Options Dialog.

 Action:	You need to go to the Project Options tab and select a project before continuing.

D2SCP-014:	Unable to update project configuration file.

 Cause:	You tried to add or remove archive directories from the project configuration file, but do not have write permission to the file or directory where the file is located.

 Action:	Consult your PVCS or system administrator if you believe you should have this access permission.

D2SCP-015:	Revision is not locked.

 Cause:	You tried to check in a revision you do not have locked, or unlock a revision that you have not locked (from the File Options tab).

 Action:	If you have made modifications, lock the revision from the File Options tab before checking it in.

D2SCP-016:	Unable lock specified Revision.

 Cause:	You tried to check out a revision with a lock from the Check-Out dialog, or lock a revision from the File Options tab, but PVCS was unable to grant you the lock.  Possible causes for this error include:

A.	The revision is already locked by you or someone else.

B. 	Your project does not allow multiple locks, and the revision is already locked.

C. 	If your project has a promotion model, the promotion group you specified may already be assigned to a locked revision.

 Action:	You can take the following action(s) to correct this error:

If A.	Use the Log feature to see who has the lock, and if you have already locked the revision, check it out without requesting a lock.  If someone else has locked the file, wait for them to release the lock before checking out the file for modification.

If B.	Either wait for the revision or file to become available, or consider allowing multiple locks per file in the project.

If C.	Either wait for that promotion group to become available (not assigned to a locked revision) or use another development-level promotion group.

D2SCP-017:	Specified directory does not exist.

 Cause:	You specified a directory that does not exist.  A common cause of this error is checking out a file where the location from which it was checked in does not exist on your workstation.

 Action:	If this is the case, edit the destination field to point to an existing directory.

D2SCP-018:	Unable to redirect output to file

 Cause:	The file name you specified for the log or difference report output is invalid, or the file could not be opened for writing.

 Action:	Specify a valid, writeable file.

D2SCP-100:	PVCS Error number - keyword

 Cause:	An error was returned from PVCS that the source control interface could not process.

Action:	Consult your PVCS documentation using the error number or error keyword to look up the error, and take action accordingly.


Why doesn't the PVCS configuration manager interface show the new files or revisions?

After I check in files and assign version labels, the PVCS configuration manager interface doesn’t show the new files or revisions.  What do I do?

The project folder needs to be updated with the new information that’s in the archives (new files and revisions).  To do this, choose Update Project Folder... from the PVCS top-level Project menu.  The new files and revisions should then be visible in PVCS’ "Folders" window.


Why are the source control menu options only enabled in one product?

If I run more than one product simultaneously, the source control menu options are only enabled in one of them.  Why?

PVCS on Windows is not reentrant.  This means that only one program (either a PVCS-enabled program like Report Builder, or the PVCS interface itself) can access PVCS services at a time.  You will need to exit both the program that has the menus enabled, and the one from which  you wish to access PVCS services.  Then re-start the one in which you need PVCS access.


Why do I get an error that PVCS is unable to find the archive?

When trying to check out a Report, I chose the .RDV (archive file) but I still get an error that PVCS is unable to find the archive.  What’s going on?

Even though you have chose an .RDV file, it may not have been the archive. Report Builder writes its intermediate (ASCII) files to an extension .RDV before checking them in.  (See About PVCS Implementation for details.)  Be sure that you are selecting an .RDV file from the archive directory, and not the working directory.  There are three ways to help prevent this confusion:

•	Set the PVCS project option to delete work files after check-in.  This will prevent the Reports intermediate .RDV files from remaining on your disk.

•	Change the suffix rule, so that when an .RDV file is checked in, it is given a different suffix, say .VRD.  Then you can be sure to look for .VRD’s, not .RDV’s, when checking out.

•	Configure your project to ignore workfile paths when searching for archives.  This will allow you to specify the work file (in this case, .RDF) , and not the archive, at checkout.

These options are available from the PVCS configuration manager user interface, from the Configure Project... menu choice.


How can I make sure the proper username is used when I lock a file?

Whenever I lock a file (or check out with a lock) the User ID is set to “UNKNOWN”.  This lets other people check in or unlock the file.  How can I make sure the proper username is used?

There is a PVCS project configuration option, "Login Source" in the "network" section of the PVCS project configuration options (in the PVCS Version Manager Interface) which you can use to prevent this from happening.  With  this option, you’ll be able to define how PVCS determines the current user ID.  For example, if you use a NETWARE network, you can instruct PVCS to use the current NETWARE Login ID. On Windows NT, you can use the NT Login ID by choosing the "HOST" Login source.  Consult your PVCS documentation for further details.


Is there anything I can do to allow me to select work files for check-out?

Is there anything I can do to allow me to select work files, not archive files, for check-out?

There is a PVCS project configuration option, "Ignore Workfile Path" in the "Archive Searching" section of the PVCS project configuration options (in the PVCS Version Manager Interface) which you can use.  If you turn on this option, you’ll be able to select either work files or archive files in Check Out and Source Control Options dialogs.


Why did  I receive an error that VCSDIR is not allowed in the project configuration file?

I have configured my Master Project to disallow changing archive directories.  In the PVCS Version Manager interface, I can’t change archive directories in a sub-project, which is correct.  But in Forms Developer, I was able to.  Afterwards, from the PVCS version manager interface, I received an error that VCSDIR is not allowed in the project configuration file.  What’s going on?

The PVCS Version Manager interface looks for a default MASTER.CFG file in its root directory, and that’s probably what it found, and why it raised the error after you’ve changed archive directories. To make the master configuration file recognizable, you must configure PVCS using the VCONFIG command.  This encodes the name of your master configuration file in the PVCS libraries, and ensures that no one will be able to accidentally change the archive directory list.  Refer to the sections on "Master Configuration Files" and "VCONFIG command" in your INTERSOLV PVCS Command-Line Reference Guide.


• 9


Using the online help

The following guidelines will help you to make effective use of the online help system:

•	Familiarize yourself with the Contents tab to get an idea of the scope of the topics covered in the online help.

•	Click the Related Topics button directly below topic titles for a list of topics related to the current topic.

•	Click the Options button at the top of any topic to set Keep Help on Top, so that help topics remain on your screen as you develop applications.

•	Click the Glossary button at the top of any topic for definitions of unfamiliar terms.


Documentation roadmap

To get started and become proficient with building applications:

1	Review the Quick Tour for a brief overview of each component:

•	Choose Help [image] Quick Tour.

2	Step through the Cue Cards to learn how to perform the most common tasks:

•	Choose Help [image] Cue Cards.

3	Display the online manuals (also available in hardcopy form):

•	Choose Help [image] Manuals.

4	Access the online help system:

•	Choose Help [image] Help Topics.

•	For context-sensitive help, press [Help] (this is usually the F1 key on most platforms).


Environment variables

  Related Topics

CA_GPREFS

CA_UPREFS

CUE_PREFS

DEV2000_PROJECT

DEV2000_SOURCECONTROL

DOC60

FORMS60_DEFAULTFONT

FORMS60_EDITOR

FORMSnn_ERROR_DATE/DATETIME_FORMAT

FORMS60_JAVADIR

FORMS60_MAPPING

FORMS60_OUTPUT

FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

FORMS60_PATH

FORMSnn_PLSQLV1_NAME_RESOLUTION

FORMS60_REPFORMAT

FORMS60_TIMEOUT

FORMSnn_USER_DATE/DATETIME_FORMAT

FORMS60_USEREXITS

GRAPHICS60_PATH

INTERRUPT (DOS SQL*Net users only)

LOCAL

NLS_LANG

OleCreateObjPoolInMemory

OleDoNotUpdateLinks

OleUpdateLinksPrompt

ORACLE_HOME

ORACLE_PATH

ORAINFONAV_DOCPATH

REPORTS60_CGIDIAGBODYTAGS

REPORTS60_CGIDIAGHEADTAGS

REPORTS60_CGIHELP

REPORTS60_CGIMAP

REPORTS60_CGINODIAG

REPORTS60_CGIPATHONLYURL

REPORTS60_COOKIE_EXPIRE

REPORTS60_DB_AUTH

REPORTS60_ENCRYPTION_KEY

REPORTS60_OWSDIAGBODYTAGS

REPORTS60_OWSDIAGHEADTAGS

REPORTS60_OWSHELP

REPORTS60_OWSMAP

REPORTS60_OWSNODIAG

REPORTS60_OWSPATHONLYURL

REPORTS60_PATH

REPORTS60_REPORTS_SERVER

REPORTS60_SYS_AUTH

REPORTS60_TERMINAL

REPORTS60_TMP

REPORTS60_USEREXIT

REMOTE

UI_ICON

USERNAME

WIN_REMOTE_SESSIONS

XMITTR(DOS users only)


The Registry (Windows 95 and Windows NT)

  Environment Variables

The Oracle Installer creates a new ORACLE section in your registry.  The Oracle registry contains configuration parameters that control such things as the name of the Oracle home directory, the location of the product preference file, and the location of the help files.

Viewing and modifying the Registry

You can view and optionally edit the Microsoft Windows Registry by using the Registry Editor.  This editor is located in the directory where your Windows software is installed.  To start the editor, choose Start [image] Run, then type REGEDIT and click OK.

In the Registry Editor, expand the HKEY_LOCAL_MACHINE node, then expand the SOFTWARE node.  Click the ORACLE key to display the Oracle configuration parameters.

You can modify any parameter value by double-clicking the parameter name to display the Edit String dialog.  Change the value in the Value data text box, then click OK to accept the new value.


Configuration parameters

  Environment Variables

The Oracle Installer automatically sets many parameters.  Some of these parameters are required by Oracle products, and other parameters allow you to customize the products' behavior.

Required parameters

The parameters listed in this section are automatically set or removed by the Oracle Installer.  They are required by various Oracle products to function properly.

Caution: Do not change the settings of parameters listed in this section.  Doing so may cause one or more Oracle products to stop functioning correctly.

The appearance of nn in the parameters listed below specifies a product or component release number.  This number may change when you upgrade to a new release of an Oracle product.

Parameter	Default Value
BROWSERnn	ORACLE_HOME\BROWSE25
DEnn	ORACLE_HOME\TOOLS\COMMON60
FORMSnn	ORACLE_HOME\FORMS60
GRAPHICSnn	ORACLE_HOME\GRAPH60
MMnn	ORACLE_HOME\TOOLS\COMMON60
OCLnn	ORACLE_HOME\GRAPH60
PROnn	ORACLE_HOME\PRO18
RDBMSnn	ORACLE_HOME\RDBMS73
RWnn	ORACLE_HOME\REPORT60
TKnn	ORACLE_HOME\TOOLS\COMMON60
VGSnn	ORACLE_HOME\TOOLS\COMMON60
Customizeable parameters

The parameters listed in this section control various aspects of your Oracle products.  You may change the settings of these parameters to customize the product's behavior.

The sections below list the default setting (if any) of each parameter that is automatically set by the Oracle Installer.  Those parameters that aren't automatically set are also noted.  Descriptions of the valid values and examples of settings are also provided.


CA_GPREFS

Default:  ORACLE_HOME

Valid Values:  any directory on any drive

Example:

CA_GPREFS=C:\orawin95

This parameter specifies the location of the global preferences file, CAGPREFS.ORA.  Global preferences are shared among networked users.  In addition to searching the directory specified by the CA_GPREFS parameter, products will also search the current directory for the CAGPREFS.ORA file.

The CAGPREFS.ORA file is automatically created by the Oracle Installer.  To modify the global preference settings, use a text editor such as Notepad to manually edit this file.  Global preferences set in CAGPREFS.ORA can be overridden by the local preference file, CAUPREFS.ORA, which is defined by the parameter CA_UPREFS.


CA_UPREFS

Default:  ORACLE_HOME

Valid Values:  any directory on any drive

Example:

CA_UPREFS=C:\orawin95

This parameter specifies the location of the user preferences file, CAUPREFS.ORA.  The CAUPREFS.ORA file maintains the preferences that you set via Tools [image] Tools Options within your products.  In addition to searching the directory specified by the CA_UPREFS parameter, the product will also search the current directory for the CAUPREFS.ORA file.

Several Oracle products write their preference information to the CAUPREFS.ORA file.  To manually modify the user preference settings, use a text editor such as Notepad to edit this file.  User preferences set in CAUPREFS.ORA override global preferences set in the CAGPREFS.ORA file, which is defined by the parameter CA_GPREFS.


CUE_PREFS

Default:  ORACLE_HOME

Valid Values:  any directory on any drive

Example:

CUE_PREFS=C:\orawin95

This parameter specifies the location of the Cue Cards preferences file, CUEPREF.RES.  The CUEPREF.RES file maintains the Cue Card preferences that you can set from the Cue Cards Options dialog.

Your preferences are saved to the CUEPREF.RES file each time you exit from an application.  You cannot modify this file manually.


DEV2000_SOURCECONTROL

Default:  none

Valid Values:  keywords that specify which source control system should be used with Forms Developer or Reports Developer

Example:

DEV2000_SOURCECONTROL=PVCS

This parameter specifies which source control system you plan to use with with Forms Developer or Reports Developer.  Currently, you can either specify no source control system, or you can set this parameter to the value 'PVCS.'  As support for additional source control systems is added, you will be able to specify keywords for additional source control systems, as well.


DEV2000_PROJECT

Default:  none

Valid Values:  keywords that specify the project file of the source control system to be used with with Forms Developer or Reports Developer

Example:

DEV2000_PROJECT=c:\pvcs\project1\project1.cfg

This parameter specifies the name of the project file for the source control system you selected on the DEV2000_SOURCECONTROL parameter.


DOC60

Default:  Oracle_Home\tools\doc60

Valid Values:  any directory on any drive

Example:

DOC60=c:\orawin95\tools\doc60

This parameter specifies the location of the online documentation files, including online help, Cue Cards, and Quick Tours.


FORMS60_DEFAULTFONT

Default:  none

Valid Values:  A text string specifying any valid font.

Example:

FORMS60_DEFAULTFONT="MS Sans Serif.8"

This parameter specifies the default font used for boilerplate in the Form Builder Layout editor.


FORMS60_EDITOR

Default:  none

Valid Values:  the name and path of a system editor

Example:

FORMS60_EDITOR=C:\windows\notepad.exe

This parameter defines the editor that can be invoked by Form Builder multi-line items in the Designer or Runform components.  No user-defined editor will be launched unless this parameter is defined.

Note:  When exiting the editor, the file must be saved back as an "ASCII Only" file.  No native word processor formats are supported.


FORMSnn_ERROR_DATE/DATETIME_FORMAT

Purpose:  These two environment variables establish the format masks that Forms will use in producing runtime error messages that are issued when an end user enters an invalid value into a date or datetime item.

Default:  See the help topic About Format Masks for Dates.

Valid Values:  any valid date/datetime format mask.

Example:

FORMS65_ERROR_DATE_FORMAT YYYY/MM/DD


FORMS60_JAVADIR

Default:  Oracle_Home\forms60\java

Valid Values:  the name and path of the Oracle Java runtime environment

Example:

FORMS60_JAVADIR=C:\orant\forms60\java

This parameter defines the location of the Oracle Java runtime environment files required to use Java Bean areas and to preview web-based forms from Form Builder.


FORMS60_MAPPING

Default:  none

Valid Values: the virtual location of your temporary work directory

Example:

FORMS60_MAPPING=http://myhost.com/webtemp

To process images on the Web, the Forms Server transmits temporary compressed JPEG files. If you use images or icons in your Web Forms applications, you must create a temporary directory and a virtual directory (for example, C:\ORANT\WEBTEMP) that the Forms Server will use for images and other work files. You must also create the FORMS60_OUTPUT and FORMS60_MAPPING environment variables on the machine on which your Forms Server is running.


FORMS60_OUTPUT

Default:  none

Valid Values:  any directory on any drive on the machine on which the Forms Server is running

Example:

FORMS60_OUTPUT=C:\ORANT\WEBTEMP\

To process images on the Web, the Forms Server transmits temporary compressed JPEG files. If you use images or icons in your Web Forms applications, you must create a temporary directory (for example, C:\ORANT\WEBTEMP) that the Forms Server will use for images and other work files. You must also create the FORMS60_OUTPUT and FORMS60_MAPPING environment variables on the machine on which your Forms Server is running.


FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

Purpose:  These two environment variables establish the format masks that Forms will use for runtime ouput operations on any date and datetime items that do not have their own individual, specific masks.

Default:  See the help topic About Format Masks for Dates.

Valid Values:  any valid date/datetime format mask.

Example:

FORMS65_OUTPUT_DATETIME_FORMAT YYYY/MM/DD HH24:MI:SS


FORMS60_PATH

Default:  ORACLE_HOME\FORMS60\PLSQLLIB

Valid Values:  any directory on any drive

Example:

FORMS60_PATH=C:\oracle\apps\forms;C:\myfiles

This parameter specifies the search path for files used in a Form Builder runtime application.  These include form files (.fmx), menu files (.mmx), PL/SQL libraries (.pll), and other objects that the application attempts to load from a file at runtime.  For example, if you import the image file scooter.tif, Form Builder searches in the directories specified by FORMS60_PATH to find that file.

FORMS60_PATH can specify multiple directories.  Use a semi-colon (;) to separate directory names in a list of paths.


FORMSnn_PLSQLV1_NAME_RESOLUTION

Default:  OFF

Valid Values:  ON, OFF

Example:

FORMS6i_PLSQLV1_NAME_RESOLUTION=ON

This environment variable allows you to choose between R4.5 behavior and R5-and-later behavior for runtime program unit name resolution.  A value of ON selects R4.5 behavior.  A value of OFF (or not including this environment variable at all) selects R5-and-later behavior.

R4.5 Behavior:

When Forms encounters a call to a program unit, it first looks for the program unit in the current form or menu, then searches the attached libraries.  This behavior provides a simple style of dynamic name resolution, as the program unit that is called is not the same as the one which was resolved at compile time.  In addition, in situations where the same library is attached to multiple forms, each form maintains its own unique set of library information, including instantiations, package state, and dependencies.  This means that dependency information is not shared across forms.

R4.5 behavior has the following disadvantages:

•	No sharing of information across forms.  SHARE_LIBRARY_STATE will have no effect.

•	Increases in execution time and memory usage (as compared to R5+).

R5+ Behavior:

When Forms encounters a call to a program unit, it also first looks for the program unit in the current form or menu, then searches the attached libraries.  However, in those situations where the same library is attached to multiple forms, each form does not maintain its own unique set of library information.  Instead, the program unit instantiations are shared across forms.  This means that dependency information can be shared across forms.

Recommendation:

Because of the disadvantages noted above, and because this environment variable will not always be supported in future releases, it is recommended that you not choose the R4.5 behavior.

Instead, to obtain dynamic name resolution, use the Execute-Trigger built-in.  If arguments are needed, use global variables.


FORMS60_REPFORMAT

Default:  none

Valid Values:  HTML, PDF

Example:

FORMS60_REPFORMAT=HTML

If you are invoking a browser to run a report from a form via RUN_PRODUCT, you must set the FORMS60_REPFORMAT environment variable.  This parameter specifies the report format.


FORMS60_TIMEOUT

Default:  15

Valid Values:  1-1440 (1 day)

Example:

FORMS60_OUTPUT=1440

This parameter specifies the amount of time in elapsed minutes before the Forms server process is terminated if there is no client communication with the Forms server.


FORMSnn_USER_DATE/DATETIME_FORMAT

Purpose:  These two environment variables establish the format masks that Forms will use at runtime to extract values from items of type DATE and DATETIME, when those items do not have their own individual, specific masks.

Default:  See the help topic About Format Masks for Dates.

Valid Values:  any valid date/datetime format mask.  Multiple format masks may be specified, separated by vertical bars.  During runtime item conversion, the format masks are used in the order specified, until a conversion succeeds (or the masks are exhausted).

Example:

FORMS65_USER_DATE_FORMAT  FXFMDD-MM-RRRR


FORMS60_USEREXITS

Default:  none

Valid Values:  Any user exit dynamic link library (along w/ absolute path).

This parameter allows you to define multiple DLLs to contain foreign functions that can be invoked from a user exit interface.  The FORMS60_USEREXITS parameter includes a semicolon-delimited list of user interface DLLs.

FORMS60_USEREXITS can specify multiple DLLs.  Use a backslash (\) to separate directories in a path, and a semicolon (;) to separate complete paths.

If this value is not explicitly set, Form Builder assumes it to be ORACLE_HOME\BIN\F45XTB.DLL.

Example:

FORMS60_USEREXITS = C:\mathlib\add.dll;C:\mathlib\mult.dll


GRAPHICS60_PATH

Default:  none

Valid Values:  any directory on any drive

Example:

GRAPHICS60_PATH=C:\oracle\apps\graphics;C:\myfiles

This parameter specifies the search path for files used in a Graphics runtime application.  These include display files (.ogr), images, external queries, and other objects that the application attempts to load from a file at runtime.  For example, if you import the image file scooter.tif, Graphics Builder searches in the directories specified by GRAPHICS60_PATH to find that file.

GRAPHICS60_PATH can specify multiple directories.  Use a backslash (\) to separate directories in a path, and a semicolon (;) to separate complete paths.


INTERRUPT (DOS SQL*Net users only)

Default:  none

Valid Values:  same value specified in your DOS CONFIG.ORA file

This parameter specifies the interrupt vector address that DOS Oracle products will use.  If you use a DOS SQL*Net driver for Windows, check your CONFIG.ORA file located in the DOS Oracle home directory.  If the INTERRUPT parameter is set in CONFIG.ORA, you must set it to the same value in registry.  If this variable is not set in your DOS CONFIG.ORA files, you do not need to set it in the registry.

Note:  Do not set INTERRUPT to 103 when using a third-party memory management product such as QEMM, 386MAX, CEMM, or EMM386.  Doing so will result in unexpected behavior after you start SQLPME and SQL*Net.


LOCAL

Default:  none

Valid Values:  any valid SQL*Net driver prefix, including database string parameters.  For more information, see the Oracle Network Administrator's Guide.

This parameter specifies the SQL*Net driver and complete connect string that the product will use if you do not specify a communications driver when you connect to the database within the product.

If you add the LOCAL parameter, do not add the parameter to the end of the file.  Oracle products will not recognize the LOCAL parameter if it appears as the last parameter.

Note:  If you use a DOS SQL*Net driver for Windows, check to see whether the LOCAL parameter is set in your CONFIG.ORA file located in the DOS Oracle home directory.  If LOCAL is set in CONFIG.ORA, you must set it to the same value in the registry.


NLS_LANG

Default:  AMERICAN_AMERICA.WE8ISO8859P1

Valid Values:  See the NLS Reference Manual for a current list of available values, or see the following file on your CD: \bonus\nls\nlsd2r1.wri

Example:

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

This parameter sets the language in which message files appear.  The syntax for NLS_LANG is as follows:

NLS_LANG=<language>_<territory>.<char_set>

where:

language	specifies the language and its conventions for displaying messages and day and month names.
territory	specifies the territory and its conventions for calculating week and day numbers.
char_set	specifies the character set used for the UPPER, LOWER, and INITCAP functions, and the type of sort used by an ORDER BY query.  This argument also controls the character set used for displaying messages.


OleCreateObjPoolInMemory

Default:  0

Valid Values:  0 or 1

Example:

OleCreateObjPoolInMemory=0

For Report Builder, this parameter specifies whether to create the OLE2 object pool in temporary files (0) or in memory (1).  Creating the pool in memory improves performance by reducing disk access.  If you have a large number of OLE2 objects or large OLE2 objects (e.g., images), the amount of memory needed may be high.  In determining how many OLE2 objects you have, note that an OLE2 boilerplate object in a repeating frame contains one OLE2 object.  An OLE2 field contains one OLE2 object for each instance of the field.


OleDoNotUpdateLinks

Default:  0

Valid Values:  0 or 1

Example:

OleDoNotUpdateLinks=0

For Report Builder, this parameter enables (0) or disables (1) the updating of links when you open the Layout editor or run the report.  Linked OLE2 objects contain cached presentations of their source objects.  These cached presentations are updated by the corresponding OLE2 server based upon the persistent object data.

These updates occur automatically or manually, depending upon the link type.  Since updating the cached presentations requires launching the OLE2 server, you may want to disable the updating to improve performance, if you know the source objects have not changed or if you don't need the latest changes.  Note that even if you do not specify this option, you can still cancel updates from the standard dialog box that appears as the OLE2 objects are being updated.


OleUpdateLinksPrompt

Default:  0

Valid Values:  0 or 1

Example:

OleUpdateLinksPrompt=0

For Report Builder, this parameter specifies to prompt (0) or not prompt (1) when the source of a linked object is not found.  If the source of an object is not found during an update attempt, a dialog box is displayed from which you can re-specify the link source or ignore the error.  If you will not be there to accept the dialog box (e.g., you are running the report overnight), you may want to disable this prompt to ensure that the report execution completes.


ORACLE_HOME

Default:  C:\ORAWIN95

Valid Values:  any directory on any drive

Example:

ORACLE_HOME=C:\orawin95

This parameter specifies the home directory in which Windows Oracle products are installed.  This directory is the "top" directory in the Oracle directory hierarchy.

Usage Notes

•	If you are using Reports Runtime, the combined length of ORACLE_HOME and ORACLE_PATH should not exceed 255 characters


ORACLE_PATH

Default:  none

Valid Values:  any directory on any drive

Example:

ORACLE_PATH=C:\oracle\apps\forms;C:\oracle\apps\graphics;
C:\oracle\apps\reports

This parameter specifies the search path for files referenced by a Forms, Graphics, or Reports Runtime.  Note that the directories specified by ORACLE_PATH are searched after those specified by a product-specific parameter:  FORMS60_PATH, GRAPHICS60_PATH, or REPORTS60_PATH.

ORACLE_PATH can specify multiple directories.  Use a semi-colon (;) to separate directory names in a list of paths.

Usage Notes

•	If you are using Reports Runtime, the combined length of ORACLE_HOME and ORACLE_PATH should not exceed 255 characters


ORAINFONAV_DOCPATH

Default:  none

Valid Values:  any directory on any drive

Example:

ORAINFONAV_DOCPATH=C:\orawin95\oin

This parameter specifies the location of the table of contents and index for your online documentation.


REMOTE

Default:  none

Valid Values:  any valid SQL*Net driver prefix and parameters

Example:

REMOTE=P:PIPER

This parameter specifies the default and remote SQL*Net driver to use when connecting via a local database.  The parameter can include the default SQL*Net parameters (complete database string).

where P: is the network prefix for Named Pipes, and Piper is the database name.

If a user logs on and specifies a connection with an explicit driver prefix matching the one specified in REMOTE, but specifies no SQL*Net parameters, the parameters specified in REMOTE are used.  This parameter enables the DBA to define a "normal" network connection for which the SQL*Net user need not specify connection parameters.  You can reset this parameter on the command line at any time.

Note:  If you use a DOS SQL*Net driver for Windows, check to see whether the REMOTE parameter is set in your CONFIG.ORA file located in the DOS Oracle home directory.  If REMOTE is set in CONFIG.ORA, you must set it to the same value in the registry.


REPORTS60_CGIDIAGBODYTAGS

For the Reports Web CGI, specifies the HTML tags that will be inserted as <BODY…> tags in the RWCGI60 diagnostic/debugging output.  For  example, you can use this environment variable to set up text/background color and image.


REPORTS60_CGIDIAGHEADTAGS

For the Reports Web CGI, specifies HTML tags which will be inserted between <HEAD> … </HEAD> tags in the RWCGI60 diagnostic/debugging  output. For example, you may want to use this environment variable to set up <TITLE> or <META…> tags.


REPORTS60_CGIHLP

For the Reports Web CGI, defines URL/URI of the RWCGI60 help file, which will be navigated to when RWCGI60 is invoked with the empty request:

http://your_webserver/your_virtual_cgi_dir/rwcgi60.exe?

For example, setting REPORTS60_CGIHLP to http://www.yahoo.com will go to that URL; setting it to myhelpfile.htm will display the file:

http://your_webserver/myhelpfile.htm

If this variable is not defined, a default help screen will be displayed.


REPORTS60_CGIMAP

For the Reports Web CGI, defines fully qualified filename/location of the RWCGI60 map file if map file configuration is used:

c:\orant\report60\mymap.dat


REPORTS60_CGINODIAG

For the Reports Web CGI, when defined, disables all debugging/diagnostic output from RWCGI60.

http://your_webserver/cgi-bin/rwcgi60.exe/help?

Usage Note:

The parameter will not work when REPORTS60_CGINODIAG is defined.


REPORTS60_CGIPATHONLYURL

For the Reports Web CGI, when defined (the value does not matter), forces RWCGI60 to return any URLs to the browser as partial, path-only URLs; i.e., instead of returning:

Location: http://your_webserver:port/path

it will return only:

Location: /path

This variable can be used to resolve problems with Web server setups that use multiple ports, including a default port.


REPORTS60_COOKIE_EXPIRE

Default:  30

Valid Values:  any number of minutes

Example:

REPORTS60_COOKIE_EXPIRE=30

For Reports Server security, determines the idle time of the cookie (e.g., REPORTS60_COOKIE_EXPIRE=30).  Cookies save encrypted user names and passwords on the client-side.  When CGI receives a cookie from the client, CGI compares the time saved in the cookie with the current system time.

If the time is longer than the number minutes defined in the REPORTS60_COOKIE_EXPIRE parameter (e.g., 30 minutes), CGI rejects the cookie and returns the database authentication form and an error message to the client.  The user must re-authenticate to run the report.


REPORTS60_DB_AUTH

Default:  dbauth.htm

Valid Values: any html file that contains special authentication actions. It is recommended that you keep the default.

Example:

REPORTS60_DB_AUTH=dbauth.htm

Specifies the database authentication template used to log on to the database.


REPORTS60_SYS_AUTH

Default:  sysauth.htm

Valid Values: any html file that contains special authentication actions. It is recommended that you keep the default.

Example:

REPORTS60_SYS_AUTH=sysauth.htm

Specifies the authentication template used to authenticate the username and password when users run report requests to a restricted Reports Server.


REPORTS60_ENCRYPTION_KEY

Default:  Reports6.0

Valid Values:  any encryption key

Example:

REPORTS60_ENCRYPTION_KEY=reports6.0

Specifies the encryption key used to encrypt the user name and password.


REPORTS60_REPORTS_SERVER

Valid Values:  any Reports Server service entry name

Example:

REPORTS60_REPORTS_SERVER=repserver

Specifies the default Reports Server for Web Cartridge or Web CGI requests. When this parameter is set, you can omit the SERVER command line argument in report requests to process them using the default server, or you can include the SERVER command line argument to override the default.


REPORTS60_OWSDIAGBODYTAGS

For the Reports Web Cartridge, specifies HTML tags which will be inserted as a <BODY…> tag in  the RWOWS60 diagnostic/debugging output. For instance, you may want to use this environment to set up text/background color, image, etc.


REPORTS60_OWSDIAGHEADTAGS

For the Reports Web Cartridge, specifies HTML tags which will be inserted between <HEAD> …</HEAD> tags in the RWOWS60 diagnostic/debugging output. For instance, you may want to use this environment to set up <TITLE> or <META…> tags, etc.


REPORTS60_OWSHELP

Valid Values:  any path and file name or URL

For the Reports Web Cartridge, defines URL/URI of the RWOWS60 help file, which will be navigated  to when RWOWS60 is invoked with the empty request:

http://your_webserver/rwows60?

e.g., setting it to http://www.yahoo.com will go to that URL; setting it to myhelpfile.htm will display the file:

http://your_webserver/myhelpfile.htm

If this parameter is not defined, a default help screen will be displayed.


REPORTS60_OWSMAP

For the Reports Web Cartridge, defines fully qualified filename/location of the RWOWS60 map file (if map file configuration is used):

C:\ORANT\REPORTS60\MYMAP.DAT


REPORTS60_OWSNODIAG

For the Reports Web Cartridge, when defined, disables all debugging/diagnostic output from RWOWS60:

http://your_webserver/rwows60/help?

will not work when REPORTS60_OWSNODIAG is defined.


REPORTS60_OWSPATHONLYURL

For the Reports Web Cartridge, when defined (the value does not matter), it causes RWOWS60 to use path-only URLs (e.g., "/rscache/..." instead of "http://mywebsrv.com:1550/rscache/..." ) in HTTP redirection to report output and in the RWOWS60-generated diagnostic output. This is useful to force the client browser to retain the original URL request in its "Location:" field after retrieving the report output. Normally, RWOWS60 will switch the URL to the location of the report output (i.e., the directory specified by REPORTS60_WEBLOC), and will show the name of the report output file which, just having been generated, has a rather uninformative name such as 12345679.htm. By setting this parameter, this "URL switching" can be avoided. This will work only if all URLs are using the default port (typically 80).

The drawback to setting this parameter, however, is that any subsidiary files (such as image files) dependent on the main report output file will not be retrieved by the browser (although they are created successfully in the pointed to by REPORTS60_WEBLOC). This can be worked around either by specifying a <BASE HREF="..."> or <META HREF="..."> tag (with the main file location as a full or partial URL) in the report definition so that it is included in the main report output file, or by setting REPORTS60_WEBLOC to point to the location of the RWOWS60 executable.

Setting REPORTS60_OWSPATHONLYURL can also be used to workaround certain Intranet/Internet configurations where the same machine may have several different IP addresses simultaneously (with several network cards), because it removes the dependence of the HTTP redirection on the machine name or IP address.


REPORTS60_PATH

Default:  ORACLE_HOME\REPORT60\DEMO;ORACLE_HOME\REPORT60\DEMO\BITMAP;ORACLE_HOME\REPORT60\DEMO\REQFILES

Valid Values:  any directory on any drive

Example:

REPORTS60_PATH=C:\oracle\apps\reports;C:\myfiles

This environment variable is used to locate reports and external objects that you use in your reports, such as PL/SQL libraries, external queries, and external boilerplate.  It enables you to create reports that are easily portable across operating systems by preventing the need to hard-code directory paths.

Note: REPORTSPATH is limited to 256 characters.

Define REPORTS60_PATH in the same fashion you define other environment variables on your operating system, keeping in mind such platform-specific rules as path length, etc.

In addition to directory paths, you can specify the keyword DB when you define REPORTS60_PATH.  This instructs Report Builder to search the database to which you are currently connected.

Suppose you specified the following on a Unix platform:

setenv REPORTS60_PATH
/home/tkostin/pay:/home/tkostin/receive:DB

Report Builder will first search the directory /home/tkostin/pay.  If it cannot find the file in question, it will search /home/tkostin/receive.  If it still cannot find the file, it will search the database to which you connected when you began your Report Builder session.


REPORTS60_TERMINAL

Default:  none

Valid Values:  any directory on any drive

Example:

REPORTS60_TERMINAL=C:\mytermdefs

This environment variable is used to locate terminal definitions that you use in your character-mode reports.  The path you specify for this variable takes precedence over the ORACLE_TERMINAL environment variable.

Define REPORTS60_TERMINAL in the same fashion you define other environment variables on your operating system, keeping in mind such platform-specific rules as path length, etc.


REPORTS60_TMP

Default:  none

Valid Values:  any directory on any drive

Example:

REPORTS60_TMP=C:\tmp

This environment variable establishes the directory in which you wish to store Report Builder temporary files.  Report Builder will use only one directory for this purpose; do not define more than one.

Define REPORTS60_TMP in the same fashion you define other environment variables on your base operating system, keeping in mind such platform-specific rules as path length, etc.  If you don't define REPORTS60_TMP, it will default to the current working directory.


REPORTS60_USEREXIT

Default:  none

Valid Values:  any user exit dynamic link library (along with its absolute path)

Example:

REPORTS60_USEREXIT=C:\mydll.dll;d:\mynew.dll;e:\bin\speed.dll

This parameter allows you to define multiple DLLs for use by Report Builder and its related executables (e.g., Reports Runtime).  These DLLs are program modules created by you to be called by the Report Builder executables.

REPORTS60_USEREXITS can specify multiple DLLs.  Use a backslash (\) to separate directories in a path, and a semicolon (;) to separate complete paths.

If this value is not explicitly set, Report Builder looks for 60xtb32.dll according to the path variable of the system.


UI_ICON

Default:  none

Valid Values:  any accessible directory on any drive

Example:

UI_ICON=C:\icon

This environment variable establishes the directory in which you wish to store icons used for buttons in your layout.  Report Builder will use only one directory for this purpose; do not define more than one.

Define UI_ICON in the same fashion you define other environment variables on your base operating system, keeping in mind such platform-specific rules as path length, etc..


USERNAME

Default:  none

Valid Values:  any valid Oracle username (without the OPS$ prefix)

Example:

USERNAME=dsanvita

This parameter specifies the variable part of a default logon account.  See your database documentation for more information on setting the USERNAME parameter.


WIN_REMOTE_SESSIONS

Default:  none

Valid Values:  0-33

If you receive an error in the ORA-3100 to ORA-3199 range when you try to log on, there may not be enough real-mode memory to establish a communication buffer with an Oracle server.  NETINIT7.EXE solves this problem by reserving memory for server connections.

This parameter sets the number of connections to a remote server for which NETINIT7 should reserve memory.  Note the following rules when setting the WIN_REMOTE_SESSIONS parameter:

•	If you set WIN_REMOTE_SESSIONS to 0, NETINIT7 will not reserve any memory for remote server connections.

•	Setting WIN_REMOTE_SESSIONS to the values 1 through 33 will reserve memory for the specified number of connections.  Note that NETINIT7 reserves 12K of real-mode memory for each remote server connection.

•	A suggested default value for WIN_REMOTE_SESSIONS is 5.  Setting WIN_REMOTE_SESSIONS to 5 should create enough sessions to allow you to run several products.

•	If you do not add the WIN_REMOTE_SESSIONS parameter, NETINIT7 will reserve memory for one remote server connection.

To use NETINIT7, complete the following steps:

1	Configure the number of sessions by adding the WIN_REMOTE_SESSIONS parameter.

2	Create the NETINIT7 icon in your Oracle program group.  (For more information about creating icons, see your Microsoft Windows documentation.)  Enter the following path in the Command Line field of the Windows Program Item Properties dialog box:

ORACLE_HOME\bin\netinit7.exe

3	Start NETINIT7 by double-clicking the icon in the Oracle program group.  Make sure that you start NETINIT7 before you start a product.  If you want NETINIT7 to run automatically at Windows startup, include the NETINIT7 icon in the Windows Startup program group.

NETINIT7 attempts to reserve real memory for the configured number of server connections.  If NETINIT7 cannot allocate the required memory, it displays a warning message and indicates the actual number of sessions for which it has allocated memory.

After allocating memory, NETINIT7 minimizes itself.  Restoring NETINIT7 displays the total number of sessions configured and the total amount of memory used.  Closing NETINIT7 releases all unused session memory.  If an application is still using session memory, NETINIT7 notifies you that applications must log off before session memory can be freed.

Note:  If you start a product before NETINIT7, it will allocate its own session memory, which is not recognized by NETINIT7.  NETINIT7 attempts to allocate the configured session memory in addition to memory already allocated by the product you started.


XMITTR(DOS users only)

Default:  none

Valid Values:  same value specified in your DOS CONFIG.ORA file

This parameter applies only to users of Oracle DOS protected mode executables.  Check your CONFIG.ORA file, located in the DOS Oracle home directory.  If the XMMITR parameter is set in CONFIG.ORA, you must set it to the same value in the registry.  If this variable is not set in your DOS CONFIG.ORA files, you do not need to set it in the registry.

XMMITR (Extended Memory Manager Interrupt Vector) is a variable that indicates the interrupt vector to be used for the extended memory manager/mode transition driver XMM/MTD interrupt services entry point.  To set a different vector, the new interrupt vector is expressed as a decimal number.  XMMITR should be used only if another program in your system needs to use interrupt 100 decimal, or 64 hexadecimal.

Note:  Do not set XMMITR to 103 when using a third-party memory management product such as QEMM, 386MAX, CEMM, or EMM386.  Doing so will result in unexpected behavior after you load SQLPME and SQL*Net.


Oracle8 Server support

  Related Topics

The Oracle8 Server provides a number of new features.  In general, the features are in these categories:

•	Greater scalability.  For example, Oracle8 databases can contain tens of terabytes of data, and can support simultaneous access by up to 10000 users.  Tables themselves can now contain up to 1000 columns.  CHAR and VARCHAR2 datatypes can now be up to 2000 and 4000 bytes, respectively.

•	Greater performance and efficiency.  Use of these Oracle8 features is handled for you and requires no actions on your part.  You automatically receive the speed and reliability benefits of having your data on the Oracle8 Server.

•	Large objects (sometimes called LOBs)

•	User-defined objects.

Continued support for Oracle7

Oracle7 Server features are still supported (Release 7.3.4 and later).


Oracle8 datatypes supported

  Related Topics

This release continues to support the following Oracle8 datatypes:

Large objects (LOBs)

In Oracle8, programmers can define large objects, often called LOBs.  These can store such things as text, images, sound, or video.

This release supports the following Oracle8 large object datatypes:

•	BLOB, or binary large object

•	CLOB, or single-byte character large object

•	BFILE, or binary file (sometimes referred to as an external file).

User-defined objects

In Oracle8, programmers can define object types (also called user-defined types), which are composites based on the existing single-element datatypes supported by Oracle8.  Using these object definitions, programmers can then create various kinds of tables.

Currently supported Oracle8 objects include:

•	An object table, where the entire table is based on a single object type.

•	A column object in a relational table, where that column is based on an object type.

•	A REF column in either an object or relational table, where that column's values are pointers to rows in another object table.

New scalar datatypes

This release supports the new Oracle8 FLOAT datatype.  It maps this datatype to its own NUMBER datatype.


About Oracle8 large objects (LOBs)

You can access the Oracle8 large object datatypes: binary large objects (BLOBs), character large objects (CLOBs), and binary files (BFILEs).

On an Oracle8 server, these datatypes can store objects of up to 4 gigabytes in size.  They are similar in purpose to the familiar Oracle7 LONG and LONG RAW datatypes, but offer a number of additional advantages.

Comparison of LOBs with LONGs

LOBs	LONGs
Up to 4 gigabytes	Up to 2 gigabytes
Multiple LOB columns allowed in a single table	Only one LONG column allowed per table
Replication supported	No replication
Random data access supported	Only sequential access supported
Better table space management (only LOB locator is stored)	Less efficient (data is stored directly in table)
Allowed in user-defined object types	Not allowed
Easily passed to procedures and external calls	Not easily passed
LOBs in detail:

BLOBs are used to store large objects in binary format.  CLOBs are used to store character data.  These two types are also known as internal LOBs, because their data is stored within the server.  The data participates in transactions and integrity control, including commits and rollbacks.

BFILEs, in contrast, are stored outside of the server. The server stores only the operating system address of the file.  As a consequence, BFILEs can not participate in database transactions.

Compatibility

Because of the various advantages offered by LOBs (see the table above), you should used LOBs instead of LONGs in any new application.

However, for backward compatibility, LONGs are still fully supported.

Forms Types

Within a form, the LOB would usually be given a control type of Text, Image, or Sound, depending on its nature and usage.

Restrictions

•	BFILEs are read-only.

•	Although Forms will attempt to load the entire BFILE or BLOB when it is read at runtime, it is limited by the amount of runtime virtual memory available.

•	For CLOBs, Forms has a size limitation of 65534 bytes.


About Oracle8 user-defined objects

  Related Topics  [image]  Examples

In its support for the Oracle8 Server, this release provides you with access to Oracle8 user-defined objects.  These include object tables, column objects in relational tables, and the special kind of column object known as a REF column.

Object tables

In Oracle8, an object table is based on a user's object type definition.  This definition is itself a composite, each attribute or component of which is based on a familiar Oracle8 built-in datatype.  (An object type definition can be based on another object type definition, but ultimately the definitions rest on known Oracle8 built-in datatypes.)

Because of this, each column in an object table is treated as an individual data item, in a manner similar to the way it treats the columns of a relational table.

Column objects in relational tables

A database programmer can also base a column in a relational table on an object type definition.  This has the effect of embedding a composite object in the relational table.

The embedded column object is expanded into its composite parts, and each part is treated as a column in itself.

For example, if the Oracle8 Server held a 3-column relational table, and one of those columns was a column object, and that column object was based on an object definition having four parts or attributes, then the table would be treated as a 6-column table (the 2 relational columns plus the 4 columns that comprise the object).

In the event one of the individual attributes of the column object's definition was based on yet another object type, then that part is further expanded and treated as a set of individual columns.

REF columns

A column in either an object or relational table can be defined as having a type of REF.  A REF column does not hold data directly, but rather has pointers (references) to another object table that holds the actual data.

The reference can be resolved at runtime, so that the user sees the actual referenced data.


Oracle8 user-defined objects: examples

  Related Topics

To create objects in the Oracle8 Server, a database programmer first defines an object type, and then creates a specific object based on that type definition.  The resulting object can be either an object table or a column object in a relational table.

Examples

Consider the following definitions.  The first creates an object type.  The second creates a table of that type.

         CREATE TYPE  emp_type  AS OBJECT

                      (name     CHAR(30),

                       title    CHAR(20),

                       idnum    NUMBER);

         CREATE TABLE  emp  OF emp_type;

In the above example, we create an object table named emp.  It has three columns, and those columns have the names and datatypes that are established in the attributes of the emp_type object type definition.

The following is an example of a column object in a relational table:

         CREATE TYPE  address_type  AS OBJECT

                      (street    VARCHAR2(40),

                       city      VARCHAR2(25),

                       state     VARCHAR2(2)

                       zip       NUMBER);

         CREATE TABLE  customers

                       (cust_id  NUMBER,

                        name     VARCHAR(40),

                        address  address_type);

In this example, we create a relational table named customers.  The table has three columns.  The first two columns (cust_id and name) are the usual relational columns.  The third column (named address) is a column object.  It is built on the object type definition named address_type.  This address column has the structure and datatypes established by that object definition.  The address column can be thought of as having four parts or components (street, city, state, and zip).  Each of these components is of the datatype that was established in the address_type object type definition.  (In this case, all are of VARCHAR2 except for zip, which is of datatype NUMBER).

In the following illustration, the third column of a three-column relational table is based on an object type that itself has three parts or components.

Note that an Oracle8 object is a composite, built from parts or components.  Each of its parts has a name and is of a known Oracle8 datatype.  If the object is a table (actually, a row in an object table), it has as many columns or parts as there are attributes in the object type definition.  If a column in a relational table is based on an object, then each of the object's parts can be thought of an additional column in that table.  Because each of these parts is based on an attribute in the object type definition, these parts are sometimes called attribute columns.

How Developer treats objects

An object table is treated very much like a relational table.  Each column is individually selectable.  Although all columns may be selected, each is treated as a separate item within the application.  The table itself does not have any particular identity as an object within the environment.

Similarly, a column object in a relational table is not treated as a single, homogeneous entity.  Instead, it treats each of the column object's components as an individual, independent data item.  Each component of the column object is selectable.  Once selected, each is treated as an independent data item.  Even if all of the column object's components are selected, the column object itself does not have any particular identity as an object within the development environment.

Data items selected from an object are given the default name ColumnObjectName_ItemName.  Thus, if we select the component named zip from the column object named address in the above example, the data item will have the name address_zip within the application.


About Oracle8 REFs

  Related Topics

REF is a new datatype in Oracle8.  It establishes a column object as a pointer to data in another object table.  The REF column itself does not hold the data.

For example:

           CREATE TYPE  dept_type  AS OBJECT

                        (deptname     VARCHAR2(24),

                         deptnumber   NUMBER);

           CREATE TABLE  dept_table OF dept_type;

           CREATE TABLE  emp

                         (empname    VARCHAR2(50),

                          empnumber  NUMBER,

                          empdept    REF  dept_type);

In the relational table named emp, the column empdept is a REF column.  It points to an object of type dept_type.

Types versus tables

When a REF column is defined, it identifies an object type -- not a particular object table.  It is possible for a database to contain more than one object table based on a single object type definition.  Thus, the REF column definition itself does not identify the target table(s).

Pointer resolution

When the table holding the REF column is initialized, the values placed in the REF column will be pointers to rows in the specific table or tables that have the desired data.  Later at runtime, when users look at the REF column, they will see the pointed-to data (not the pointers).

How Developer displays REFs at design time

At design time, when you ask to see a table that contains a REF column, the REF column displays in its expanded form.  That is, it shows the attributes in the object type pointed to by the original REF definition.

In the above example, the empdept REF column would show as holding two components or attribute columns:  deptname and deptnumber.  These were the two attributes in the object type (dept_type) identified in the REF definition.

Just as with a regular column object, you can select any or all of the referred-to components/attribute columns to become data items in the application.  However, in contrast to regular column objects, you can also select the REF name itself to become a manipulatable item within your application.  That is, you can use the REF in your PL/SQL coding.  By default, the REF becomes part of the null canvas.

How you can display REF data to your users

As an application designer, you have a choice in how the runtime user will see the referenced data (the resolved REF):

•	data displayed in the data block in which the REF exists (sometimes called the look-up method)

•	data displayed in the data block pointed to by the REF (the master-detail method)

The first choice (displaying the data as part of the data block in which the REF exists) is the simplest.  You select the desired REF components as items into your data block, and at runtime Developer and Oracle8 will resolve the references and place the actual referred-to data in the display items.  The user need see only the one block.

The other choice (displaying the data in the pointed-to data block) requires setting up a master-detail link.  This is very similar to setting up a master-detail link for two blocks having a primary-key foreign-key relationship.  In this case, the REF creates the link between the two blocks.  The user will see both blocks, but will  see the REF data only in the referred-to block.

The Form Builder Data Block Wizard can be used to set up this master-detail relationship.


Icons for Oracle8 objects

The object navigator and wizards use icons to help you see what type of Oracle8 data you are accessing.   These icons, and their meanings, are as follows:

             normal table

             object type

             object view

             object table

             nested object

             nested table

             referenced object

             varying array

             method

             unknown type

             server-side stack mode

             server-side program unit

             file

             datatype of Date

             datatype of Number

             datatype of Character

             datatype of Raw

             datatype of BLOB

             datatype of BFILE

             datatype of CLOB

             rowid

             MLS label


Scalability and performance with Oracle8

Oracle8 Server gives you a number of scalability and performance improvements.  For the most part, you obtain these advantages automatically.

For example, you can access Oracle8's:

•	Larger sizes.  The database itself, the number of concurrent users, and its table column limits (now up to 1000 columns) have all increased.

•	Table and index partitioning

•	Client-side object caching

You can also make direct use of several other Oracle8 functions that provide it with improved performance:

•	Prefetch.  Forms uses this Oracle8 feature (along with the existing Array Size mechanism) to reduce both database round-trips and memory usage.  This is done automatically, without any need for user involvement.

•	Returning values clause.  Forms uses this new DML feature when doing inserts and updates.  The Returning clause eliminates the need for a second database query (to obtain any server-side trigger changes to the data), thus speeding up processing.  Users can control it with the DML Returning Value property.

•	INSTEAD-OF trigger for updating views.  This server-side trigger provides a mechanism for updating both relational and object views that would not otherwise be updatable.


Support for PL/SQL 8

  Related topics

This release uses PL/SQL 8 on the client and the server.  Client-side program units currently cannot support Oracle8 object-related functionality.  However, stored program units can use all the new PL/SQL 8 features.

Appendix A in the PL/SQL User's Guide and Reference Release 8 manual describes the new PL/SQL 8 features.  This manual is available online.  Choose Help -> Manuals, and navigate to Reference Manuals under Online Manuals.


Compatibility with earlier releases of PL/SQL

If you have client-side program units written in PL/SQL 1 or PL/SQL 2, you must convert the code to the new level.  The PL/SQL 1 conversion utility is provided to help automate the upgrading process.

Stored program units created with previous releases will run against the PL/SQL 8 engine on the database server, but may compile with errors.  These errors arise in some situations where there is syntax incompatibility between PL/SQL 8 and PL/SQL 2.  A compatibility flag in PL/SQL 8 allows you to choose a PL/SQL 2 compatibility mode, so that the PL/SQL 8 engine does not issue such errors when it compiles PL/SQL 2 code in the server.  Chapter 6 in the Oracle8 Server Migration manual describes the situations that are covered by this compatibility flag.


Oracle8 features not yet supported

  Related Topics

Not all Oracle8 features are currently supported across this release.  The major unsupported features are:

•	Collection types (nested tables and varying arrays, or varrays)

•	Stored procedures that return object values

•	Scalar datatypes NCHAR and NVARCHAR2.

You should also be aware that, although this release does support PL/SQL 8, client-side PL/SQL 8 does not yet fully support all the features in the Oracle8 Server.  (Server-side PL/SQL 8 support is complete.)


Oracle8 Object Support in the Object Navigator

Oracle8 functionality in the Object Navigator provides access to object datatypes, enabling you to program against Oracle8 data more easily. The added Oracle8 object support allows you to view user-defined datatypes in a hierarchical format, and to find and display tables, views, columns, triggers, attributes and methods associated with the user-defined datatypes.

The Database Objects node contains the schemas and their objects that you can access in the currently connected database. When connected to an Oracle8 database, the Object Navigator displays available user-defined datatypes (with their attributes and methods) in the Types node within each schema. Tables, views, columns and triggers associated with the user-defined datatypes are displayed in the Tables and Views nodes.

Specifically, Oracle8 functionality in the Object Navigator enables you to display and find:

•	object tables and column objects in the Tables node

•	object views in the Views node

•	Instead Of triggers for views in the Views node

•	object types, table types and varying array types in the Types node

•	attributes and methods of object types in the Types node

Icons are used to differentiate relational objects and Oracle8 objects in the Object Navigator. For example, separate icons are used to represent normal, relational tables and object tables, and normal views and object views.

For information about Oracle8 user-defined datatypes, see your Oracle8 documentation.

Learn more about

Object Type nodes

Table Type nodes

Varying Array Type nodes

Column Object nodes

Object Table nodes

Object View nodes

Expanding All

Oracle8 objects icons


Object Type nodes

  Example	  Related Topics

Object types appear within the Types node in the Object Navigator. An object type node represents a type created by the SQL statement, CREATE TYPE AS OBJECT. The object type is displayed in the Object Navigator as:

object-type-name ( Object Type [ * ] & Body [ * ] )

The Object Type label appears when a CREATE TYPE AS OBJECT statement has been issued to the database. An asterisk ( * ) appears when the type specification is invalid or if the type is incomplete. An incomplete type is a placeholder for defining types recursively.

The Object Body label appears when a type body has been created using the CREATE TYPE BODY statement. An asterisk ( * ) appears when the type body is invalid.

When both object type and object body have been successfully created, then the label appears as Object Type & Body.

Object type nodes are composite nodes; they have two subnodes, Attributes and Methods. An object type node can be expanded only if a valid type specification exists.

The attributes of an object type are represented as nodes under the Attributes subnode.

The methods of an object type are represented as nodes under the Methods subnode. The methods appear as procedures and functions. The method labels are displayed in the Object Navigator as:

method-name (Procedure)

and

method-name (Function)

If a map method or order method is specified for an object type, then the method label is displayed as:

method-name (Map Function)

or

method-name (Order Function)

Note:  The argument list of a method is not displayed.


Object Type node example

  Related Topics 	   All Examples

The following SQL statement creates the object type emp_typ.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

The subtree for emp_typ is:


Table Type nodes

  Example	  Related Topics

Table types appear within the Types node in the Object Navigator. A table type node represents a type created by the SQL statement, CREATE TYPE AS TABLE. The table type is displayed in the Object Navigator as:

table-type-name (TABLE OF table-subtype-name)

The table type node is not expandable if the subtype is a built-in type. If the subtype is an object type or REF object, the attributes of the object appear as subnodes.


Table Type node example

  Related Topics 	   All Examples

The following SQL statements create the object type emp_typ and the table type emp_tbl.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_tbl AS TABLE OF emp_typ;

The subtree for emp_tbl is:


Varying Array Type nodes

  Example	  Related Topics

Varying array types appear within the Types node in the Object Navigator. A varying array type node represents a type created by the SQL statement CREATE TYPE AS VARYING ARRAY. The varying array type is displayed in the Object Navigator as:

varying-array-type-name (VARRAY (size) varying-array-subtype-name)

The varying array type node is not expandable if the subtype is a built-in type. If the subtype is an object type or REF object, the attributes of the object appear as subnodes.


Varying Array Type node example

  Related Topics 	   All Examples

The following SQL statements create the object type emp_typ and the varying array type emp_ary.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_ary AS VARRAY(7) OF emp_typ;

The subtree for emp_ary is:


Column Object nodes

  Examples	  Related Topics

Column objects appear as nodes within the Columns node. Each object is labeled with a name and its type in parentheses. Column object nodes are composite nodes, with the attributes of the type appearing as subnodes.

There can be four subtypes of column objects-nested object type, table type, varying array type and REF object type. Column objects are labeled in the Object Navigator as follows:

column-name (nested-object-type)

column-name (table-type-name:TABLE OF table-subtype-name)

column-name (varying-array-type-name: VARRAY(size) OF varying-array-subtype-name)

column-name (REF reference-type-name)


Column Object node examples

  Related Topics 	   All Examples

In the following example, the emp_col column of table emp_tab is a nested object of type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TABLE emp_tab (emp_col emp_typ, dept VARCHAR2(2));

The subtree for emp_tab is:

In the next example, the emps column of table dept_tab is a nested table with subtype emp_tbl. The nested table contains rows of type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TYPE emp_tbl AS TABLE OF emp_typ;
CREATE TABLE dept_tab (dname VARCHAR2(20), emps emp_tbl)
  NESTED TABLE emps STORE AS emps_tab;

The subtree for dept_tab is:

In the following example, the emps column of table dept_tab_ary is a varying array with subtype emp_ary. The varying array contains rows of type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TYPE emp_ary AS VARRAY(7) OF emp_typ;
CREATE TABLE dept_tab_ary (dname VARCHAR2(20), emps emp_ary);

The subtree for dept_tab_ary is:

In the next example, the manager column of table dept_ref is a referenced object with type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TABLE dept_ref (dname VARCHAR2(20), manager REF emp_typ);

The subtree for dept_ref is:


Object Table nodes

  Example	  Related Topics

Object tables appear within the Tables node in the Object Navigator. An object table node represents a table created by the SQL statement CREATE TABLE OF. Object table nodes are labeled in the Object Navigator as:

object-table-name (object-type-name)

Each object table node has two subnodes, Triggers and Columns. The Triggers subnode contains all triggers associated with the object table. These triggers are displayed in the same manner as triggers associated with normal, relational tables. The Columns node contains all relational columns and column objects associated with a given object table. Each column is labeled with a name and its type in parentheses.


Object Table node example

  Related Topics 	   All Examples

The following SQL statements create the object type person_typ and the object table person_tab.

CREATE TYPE person_typ AS OBJECT
  (name VARCHAR2(30), address VARCHAR2(60));

CREATE TABLE person_tab OF person_typ;

The subtree for person_tab is:


Object View nodes

  Example	  Related Topics

Object views appear within the Views node in the Object Navigator. An object view node represents a view created by using the OF object_type clause. Object view nodes are labeled with a name and its type in parentheses. The attributes of the object are not displayed.

Each object view node has two subnodes, Triggers and Columns. The Triggers subnode contains all triggers associated with the object view, including Instead Of triggers. When an Instead Of trigger is associated with a view, the label is displayed as:

trigger-name (INSTEAD OF trigger-statements)


Object View node example

  Related Topics 	   All Examples

The following SQL statements create an object view.

CREATE TYPE emps_typ AS OBJECT (ename VARCHAR2(30), esalary number(5,2), deptno NUMBER(2));
CREATE TABLE emps (ename VARCHAR2(30), esalary number(5,2), deptno NUMBER(2));
CREATE VIEW dev_emps OF emps_typ
  WITH OBJECT OID (ename)
  AS SELECT ename, esalary, deptno FROM emps WHERE deptno = 10;

The subtree for the object view dev_emps is:


Expanding all Oracle8 object nodes

  Related Topics

The Expand All operation in the Object Navigator does not expand Oracle8 datatype and attribute nodes recursively.

For example, if an attribute called manager with type emp_typ appears as a descendent from another type emp_typ, then the manager attribute would not be expanded by Expand All.


Oracle8 objects examples

  Related Topics 	   All Examples

Object Type

Table Type

Varying Array Type

Column Object

Object Table

Object View


About the PL/SQL V1 conversion utility

  Related Topics

The PL/SQL V1 conversion utility helps automate the process of upgrading applications written in PL/SQL V1 or V2.

If the triggers, program units, and PL/SQL blocks in your forms, reports, and displays are written in PL/SQL V1 or V2, your code must be upgraded.  If it isn’t, two types of problems can occur:

•	Some PL/SQL V1 or V2 code is not syntactically valid in later versions and produces a compiler error.

•	Some PL/SQL V1 or V2 code is syntactically correct in later versions, but has a different meaning, causing unexpected or incorrect behavior.

The conversion utility addresses both types of problems.


How does the PL/SQL V1 conversion utility work?

  Related Topics

You can use the conversion utility interactively or in batch mode.  In either case, you control whether or not the utility actually updates your code.  Interactive mode provides a greater degree of flexibility, as you can let the utility make some changes and make others manually.  In batch mode, the utility either makes all of the conversions it can or none of them.  Regardless of whether the conversion occurs in interactive or batch mode, a summary of the conversion process is written to a log file called module.plg.

To run the utility interactively , open a saved form, report, display, or library containing PL/SQL V1 or V2 code in the associated Builder.

To run the utility in batch mode, refer to these topics:

•	Converting forms in batch mode

•	Converting reports in batch mode

•	Converting displays in batch mode

Tip

While the conversion utility can upgrade your code to resolve several V1 or V2 incompatibilities, there are some situations it can’t address.  These result in compiler errors, which are listed in the PL/SQL V1 Conversion Summary dialog box (interactive mode) or in the log file so you can address them manually.  See What can’t the utility convert?  for more information.

After the conversion utility converts and saves an application-even if you choose to ignore all suggested conversions-the utility is never again re-invoked for that application.  This prevents the utility from overwriting any changes you may have made manually.


Before deciding which mode to use, try converting a few modules of each type interactively.  That will give you an idea of the kinds of issues you’re facing in each type of module, and may help you decide how to proceed.  For example, you might discover that your forms require the close monitoring that interactive mode provides, while your reports and PL/SQL libraries can be safely converted in batch mode.


Using the PL/SQL V1 conversion utility interactively

  Related Topics

To run the conversion utility interactively, open a form, report, display, or library containing PL/SQL V1 or V2 code in the associated Builder, then save the application.

Important:

•	After the conversion utility converts and saves an application-even if you choose to ignore all suggested conversions-the utility can never again be invoked for that application.  This prevents the utility from overwriting any changes you may have made manually.

Each PL/SQL V1 or V2 statement in your trigger, PL/SQL block, or program unit is presented in the Conversion dialog box.  The dialog box also contains the action the conversion utility will take if you choose to convert.  You have complete control over whether you accept the proposed change, ignore it, convert the entire application , or stop the process entirely.  (You can also use the PL/SQL V1 Conversion Options dialog box to set parameters that control the conversion process behind the scenes.)

The utility keeps track of the changes you have made (and those you chose not to make) and summarizes them at the end of the conversion process in a log file called module.plg.   You can then invoke the PL/SQL editor to manually update the application.


Using the PL/SQL V1 conversion utility in batch mode

  Related Topics

To run the utility in batch mode, refer to these topics:

•	Converting forms in batch mode

•	Converting reports in batch mode

•	Converting displays in batch mode


Converting forms in batch mode

  Related Topics

To convert a form in batch mode:

1	Make sure you have converted all PL/SQL libraries attached to the form.

2	Do one of the following:

•	Run the GUI version of the Forms Compiler

•	Run the Forms Compiler from the command line

Regardless of the method you choose, a summary of the conversion process is automatically written to the log file module.plg, where module is the name of the form module converted.

Usage Note:

•	After the conversion utility converts and saves an application-even if you choose to ignore all suggested conversions-the utility can never again be invoked for that application.  This prevents the utility from overwriting any changes you may have made manually.


Converting forms using the GUI version of the Forms Compiler

To convert a form using the GUI version of the Form Compiler:

1	Double-click the Form Compiler icon.

2	Select the appropriate module type and module access.

3	Select the box Upgrade PL/SQL from V1 to V2.3?

4	Click OK.


Converting forms from the command line

  Related Topics

To convert a form using the Form Compiler on the command line:

  From the command line, issue:

<Form Compiler> MODULE=form BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

where:

<Form Compiler>	Is the name of the Form Compiler executable on your platform.
form	Is the name of the form you want to convert.
Usage Notes:

•	If you specify UPGRADE_PLSQL=YES without also specifying UPGRADE=YES, an error message is generated.  Because you cannot convert the PL/SQL in a form without upgrading the entire form to 6.0, UPGRADE=YES must be specified when UPGRADE_PLSQL= YES.

•	To convert many displays at once, use Project Builder.  See the Project Builder help topic Choosing an upgrade method.


Converting PL/SQL libraries attached to a form

To convert a PL/SQL library interactively:

  Open the library in Form Builder, then save it.

To convert a PL/SQL library using the GUI version of the Form Compiler:

1	Double-click the Form Compiler icon.

2	In the File field, select the PL/SQL Library you want to convert.

3	In the Write output to file field, make sure the target file has the extension .PLL.

4	Click OK.

To convert a PL/SQL library using the Form Compiler on the command line:

  From the command line, issue:

<Form Compiler> MODULE=library BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

where:

<Form Compiler>	Is the name of the Form Compiler executable on your platform.
library	Is the name of the library you want to convert.
Usage Note:

•	If you specify UPGRADE_PLSQL=YES without also specifying UPGRADE=YES, an error message is generated.  Because you cannot convert the PL/SQL in a form without upgrading the entire form to 6.0, UPGRADE=YES must be specified when UPGRADE_PLSQL= YES.

•	To convert many displays at once, use Project Builder.  See the Project Builder help topic Choosing an upgrade method.


Specifying Form Builder Compiler parameters

This table describes how different combinations of the BATCH, UPGRADE, and UPGRADE_PLSQL parameters affect the conversion process:

BATCH	UPGRADE_PLSQL	UPGRADE	Behavior
NO	YES	YES	PL/SQL in form is converted in batch mode (even though BATCH=NO).  The utility cannot be invoked interactively outside the Builder.
YES	YES	YES	PL/SQL in form is converted in batch mode.
NO	NO	YES	PL/SQL in form is not converted, but a list of suggested conversions is written to module.plg. The rest of the form is upgraded to Forms 6i.
YES	NO	YES	PL/SQL in form is not converted, but a list of suggested conversions is written to module.plg. The rest of the form is upgraded to Forms 6i.
NO	NO	NO	Used to compile a new FMX without modifying the FMB.  If the form contains 1.3 PL/SQL, you may see compiler errors, or the behavior of the code may be different.
YES	NO	NO	Used to compile a new FMX without modifying the FMB. If the form contains 1.3 PL/SQL, you may see compiler errors, or the behavior of the code may be different.
Important:

If you are upgrading from 45FMT to 60FMB and you do not specify the UPGRADE_PLSQL option, the PL/SQL in the form is not converted, but a list of suggested conversions is written to a log file. This log file is placed in the current working directory, which may be different from the directory in which the FMT file is located.


Converting reports in batch mode

To convert a report in batch mode:

1	Make sure you have converted all PL/SQL libraries attached to the report.

2	Do one of the following:

•	Run the GUI version of the Report Compiler

•	Run the Report Compiler from the command line

Regardless of the method you choose, a summary of the conversion process is automatically written to the log file module.plg, where module is the name of the report module converted.  A separate log is generated for each module.

Usage Note:

•	After the conversion utility converts and saves an application-even if you choose to ignore all suggested conversions-the utility can never again be invoked for that application.  This prevents the utility from overwriting any changes you may have made manually.


Converting reports using the GUI version of the Report Compiler

To convert one or more reports using the GUI version of the Report Compiler:

1	Double-click the Report Compiler icon.

2	In the Document Type field, select Report.

3	Choose the appropriate Source and Destination types.

4	Use the Source field Browse button to locate the report(s) you want to convert.

5	Use the Destination field Browse button to select the destination for the converted report.

6	Click OK.


Converting reports from the command line

To convert one or more reports from the command line:

  From the command line, issue:

<Report Compiler> SOURCE=rep1,rep2, UPGRADE_PLSQL=yes

where:

<Report Compiler>	Is the name of the Report Compiler executable on your platform.
rep1,rep2,	Is the name of the report(s) you want to convert.


Converting PL/SQL libraries attached to a report

To convert a PL/SQL library interactively:

  Open the library in Report Builder, then save it.

To convert a PL/SQL library using the GUI version of the Report Compiler:

1	Double-click the Report Compiler icon.

2	In the Document Type field, specify PL/SQL Library.

3	In the Source Type field, specify .PLL.

4	In the Destination Type field, specify .PLL or .PLX.  If you specify .PLD, the V1 or V2 PL/SQL will not be converted.

To convert a PL/SQL library using the Report Compiler on the command line:

  From the command line, issue:

<Report Compiler> SOURCE=lib1,lib2, UPGRADE_PLSQL=yes

where:

<Report Compiler>	Is the name of the Report Compiler executable on your platform.
lib1, lib2	Is the name of the library(s) you want to convert.
Usage Note:

•	To convert many displays at once, use Project Builder.  See the Project Builder help topic Choosing an upgrade method.


Converting displays in batch mode

To convert displays in batch mode:

1	Make sure you have converted all PL/SQL libraries attached to the display .

2	Issue this command:

<Graphics Builder> openfile=temp.ogd upgrade_plsql=yes savefile=temp1.ogd quit=yes

where:

<Graphics Builder>	Is the name of the Graphics Builder executable on your platform.
openfile=temp.ogd	Opens the display temp.ogd in Graphics Builder.
upgrade_plsql=yes	Converts the V1 or V2 PL/SQL.
savefile=temp1.ogd	Saves the converted display in temp1.ogd.
quit=yes	Closes Graphics Builder after the display is converted.
Usage Notes:

•	A summary of the conversion process is automatically written to the log file module.plg, where module is the name of the display converted.

•	To convert many displays at once, use Project Builder.  See the Project Builder help topic Choosing an upgrade method.

•	After the conversion utility converts an application-even if you choose to ignore all suggested conversions-the utility can never again be invoked for that application.  This prevents the utility from overwriting any changes you may have made manually.


Converting PL/SQL libraries attached to a display

To convert a PL/SQL library interactively:

  Open the library in Graphics Builder, then save it.

To convert a PL/SQL library in batch mode:

  Issue this command:

<Graphics Builder> openfile=temp.lib upgrade_plsql=yes savefile=temp1.lib quit=yes

where:

<Graphics Builder>	Is the name of the Graphics Builder executable on your platform.
openfile=temp.lib	Opens the library temp.lib in Graphics Builder.
upgrade_plsql=yes	Converts the V1 or V2 PL/SQL.
savefile=temp1.lib	Saves the converted library in temp1.lib.
quit=yes	Closes Graphics Builder after the library is converted.
Usage Notes:

•	A summary of the conversion process is automatically written to the log file module.plg, where module is the name of the library converted.

•	After the conversion utility converts an application-even if you choose to ignore all suggested conversions-the utility can never again be invoked for that application.  This prevents the utility from overwriting any changes you may have made manually.

•	To convert many displays at once, use Project Builder.  See the Project Builder help topic Choosing an upgrade method.


What does the PL/SQL V1 conversion utility convert?

  Related Topics

The situations that the conversion utility can resolve within your application are:

CHAR replaced by VARCHAR2

String length required for VARCHAR2

Default expressions for OUT and IN OUT disallowed

RETURN requires an expression

Obsolete built-ins replaced

Length function returns NULL for zero-length strings

Passing NULL to an overloaded subprogram does not resolve properly

Missing RETURN statement in function causes runtime error

Length constraints removed


CHAR replaced by VARCHAR2

In PL/SQL V1, the datatypes CHAR and VARCHAR2 could be used interchangeably.  In versions after V1, the CHAR datatype is right padded with blanks.

In PL/SQL V1, this statement:

var1 CHAR(10) := ‘hello’;

. . .is equal to ‘hello’.

In versions after V1, however, this statement resolves to ‘hello     ‘, (a total of ten characters).

To preserve the V1 behavior of CHAR variables, the conversion utility replaces all CHAR(n) declarations with the equivalent VARCHAR2(n) statement.  In the example above, var1 becomes VARCHAR2(10).

The conversion utility also replaces all VARCHAR statements with the equivalent VARCHAR2 expression.


String length required for VARCHAR2

Versions after PL/SQL V1 require a length for all VARCHAR2 variables.  If a length is already specified for a CHAR datatype, the conversion utility uses that length when replacing the declaration with VARCHAR2 (see CHAR replaced by VARCHAR2 for more information).  For example:

var1 CHAR(10);

. . .is converted to:

var1 VARCHAR2(10);

When the converter detects a CHAR or VARCHAR2 statement without a string length, it suggests a length of one character.  For example:

var2 CHAR;

. . .is converted to:

var2 VARCHAR2(1);

Similarly,

var3 VARCHAR2;

. . .is converted to:

var3 VARCHAR2(1);

If you do not supply a length for a VARCHAR2 declaration, the compiler generates this error message:

ERROR 215:  String length constraint must be in range (1 . . 32767)


Default expressions for OUT and IN OUT disallowed

  Example

In PL/SQL V1, OUT and IN OUT parameters could be followed by a default expression, although that expression was always ignored.  The conversion utility removes the default expressions for OUT and IN OUT parameters.

If you compile existing code that includes OUT and IN OUT parameters with default expressions, this error message is generated:

ERROR 230:  OUT and IN OUT formal parameters may not have default expressions


Removing default expressions example

  Related Topics 	   All Examples

The conversion utility converts this PL/SQL V1 code:

PROCEDURE p (p1 IN OUT NUMBER DEFAULT 25,
             p2 OUT NUMBER DEFAULT 16) IS

BEGIN
. . .
END;

. . . to this:

PROCEDURE p (p1 IN OUT NUMBER, p2 OUT NUMBER) IS

BEGIN
. . .
END;


RETURN requires an expression

  Example

In PL/SQL V1, you could use a RETURN statement without an expression to return a NULL value.  Since all functions should return values, versions after V1 consider the RETURN statement mandatory.  The conversion utility replaces all RETURN statements not followed by an expression with RETURN NULL.

If you compile existing code that includes a RETURN statement without an expression, this error message is generated:

ERROR 503:  RETURN statement required for this return from function


Adding NULL to RETURN example

  Related Topics 	   All Examples

The conversion utility converts this PL/SQL V1 code:

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN;
END IF;
RETURN x;
END;

. . . to this:

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN NULL;    NULL added here
END IF;
RETURN x;
END;


Obsolete built-ins replaced

  Example

The TO_PLS_INTEGER built-in, which converts character strings to PL/SQL integers, is obsolete in versions after V1.  The conversion utility replaces TO_PLS_INTEGER with the built-in TO_NUMBER.

If you do not replace the TO_PLS_INTEGER built-in, this compiler error is generated:

ERROR 201:  Identified TO_PLS_INTEGER must be declared

Note:  Other obsolete built-ins must be replaced manually.


Replacing obsolete built-in example

  Related Topics 	   All Examples

The conversion utility converts this PL/SQL V1 code:

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_PLS_INTEGER(24);
END;

. . .to this:

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_NUMBER(24);     TO_PLS_INTEGER replaced with TO_NUMBER
END;


Length function returns NULL for zero-length strings

  Example

In PL/SQL V1, the LENGTH function applied to a null expression resolves to zero.  In versions after V1, the LENGTH function applied to a null expression resolves to null.

To preserve V1 behavior, the PL/SQL conversion utility adds the NVL SQL predicate to ensure that the LENGTH function applied to a null expression resolves to zero.


Length function example

  Related Topics 	   All Examples

The conversion utility converts this PL/SQL V1 code:

c:=null;
l=LENGTH( c );         In V1, this resolves to 0

. . . to this:

c:=null;
l=NVL(LENGTH( c ),0);  Converter wraps LENGTH function
                                                      with NVL( ) built-in, forcing the
                                                      expression to resolve to 0


Passing NULL to an overloaded subprogram does not resolve properly

  Example

In PL/SQL V1, you could define the same subprogram in a package as two different data types: VARCHAR2 and a RECORD type.  This is called overloading the subprogram. If you then passed a NULL value to an overloaded subprogram, PL/SQL assumed a data type of VARCHAR2.  However, versions after V1, a NULL value passed to an overloaded subprogram within a package must have a defined type.

To preserve V1 behavior, the PL/SQL conversion utility takes one of the following actions, as appropriate, when it encounters a NULL passed to an overloaded subprogram:

•	Wrap NULL with TO_CHAR( )

•	Wrap NULL with TO_NUMBER( )

•	Wrap NULL with TO_DATE( )

•	Wrap NULL with NOT

If you pass a NULL value to an overloaded program unit without defining the desired data type, the compiler generates this error message:

ERROR 307:  Too many declarations of ‘PU name’ match this call . . .


Passing NULL to overloaded subprogram example

  Related Topics 	   All Examples

The conversion utility converts this PL/SQL V1 code:

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);
                              Subprogram p is overloaded::
  PROCEDURE p(a VARCHAR2);    a is defined as a variable of type VARCHAR2
  PROCEDURE p(a FOO);         a is also defined as another data type
END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(NULL);                In PL/SQL V1, the VARCHAR2
                                                                      datatype is assumed.
END;

. . . to this:

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);

  PROCEDURE p(a VARCHAR2);
  PROCEDURE p(a FOO);

END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(TO_CHAR(NULL));      Since a is type VARCHAR2, the NULL
                             value is wrapped with TO_CHAR( )
END;


Missing RETURN statement in function causes runtime error

  Example

Omitting the RETURN statement in a function in PL/SQL V1 does not cause a problem at runtime.  However, in versions after V1, this will cause a runtime error.

To preserve V1 behavior, the PL/SQL conversion utility adds a RETURN statement with a NULL argument to functions that are missing a RETURN statement.

Note:  A missing RETURN statement in a function will not generate a compiler error, but it will generate a runtime error in versions after V1.


Missing RETURN example

  Related Topics 	   All Examples

The conversion utility converts this PL/SQL V1 code:

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('The point of no return.');
  ENDIF;
                         RETURN statement is missing
END;

. . . to this:

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('The point of no return.');
  ENDIF;
  RETURN NULL;            RETURN NULL added by converter
END;


Length constraints removed

  Example

In PL/SQL V2, the length constraints on DATE, BOOLEAN, MLSLABEL, and ROWID are ignored.  However, this causes compilation errors in V8.

To preserve V2 behavior, the PL/SQL conversion utility removes the constraints.


Removing length constraints example

  Related Topics 	   All Examples

The conversion utility converts this code:

PROCEDURE badconstraint IS
d DATE(5);
b BOOLEAN(5);
d MLSLABEL(5); --V2 only
r ROWID(5); --V2 only
BEGIN
  null;
END;

. . . to this:

PROCEDURE badconstraint IS
d DATE;
b BOOLEAN;
d MLSLABEL; --V2 only
r ROWID; --V2 only
BEGIN
  null;
END;


What can't the PL/SQL V1 conversion utility convert?

  Related Topics

While the conversion utility can convert many of the PL/SQL incompatibilities it encounters, some situations require you to address them manually:

Unique names required within a package

Standard package function no longer used

New reserved words in PL/SQL V2.3 or later

%ROWTYPE or %TYPE required in variable declarations

The warning "Encountered a non-recoverable error; conversion aborted at line <line number> column <column>" displays when there is a fatal compiler error and the conversion process cannot continue.


Unique names required within a package

  Example

In PL/SQL V1, when you created a variable with the same name as a procedure or function in the same package, the variable was always used; the identically named procedure or function was ignored.  In versions after V1, variables, functions, and procedures within the same package must be unique.

To avoid an error, make sure all procedures within a package have unique names, either by doing so explicitly, or by appending the word Unused to the procedure name.

Note:  In V1, Procedure Builder erroneously allowed you to create a program unit with the same name as a built-in package.  In versions after V1, this is not allowed.  If Procedure Builder detects a program unit with the same name as a built-in package, Procedure Builder changes the name of the program unit during load time by appending two dollar signs to the end of the program unit name.  Thus, DEBUG becomes DEBUG$$.


Renaming procedure names uniquely in a package example

  Related Topics 	   All Examples

This example first presents V1 PL/SQL code that will generate a compiler error, then shows how you might edit the code to avoid the error.

Change this code:

PACKAGE pk1 IS
  v1 NUMBER;           v1 is established as a variable
  PROCEDURE v1;        v1 is also established as a procedure
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1 IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;

. . . to this:

PACKAGE pk1 IS
  v1 NUMBER;
  PROCEDURE v1Unused;	  The procedure v1 is declared Unused
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1Unused IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;


Standard package function no longer used

  Example

In PL/SQL V1, you could call the FLOOR function from your own package, p1, like this:

v : = p1.FLOOR(x).

If the p1 package did not have a function called FLOOR, PL/SQL used the FLOOR function in the standard package.  This was actually a PL/SQL coding error that has been fixed in PL/SQL V2.3 or later.  Therefore, in PL/SQL V2.3, the compiler does not check the standard package for the function name, but correctly reports the situation as an error:

ERROR 302:  component ‘CCCCC’ must be declared

. . . where ‘CCCCC’ is the function or procedure name that exists in a standard package or standard package extension.

The message "Incorrect references will resolve to built-in package V1" is written to the log.

To direct the compiler to the standard package, remove the incorrect package name.


Removing the package prefix example

  Related Topics 	   All Examples

This example first presents V1 PL/SQL code that will generate a compiler error, then shows how you might edit the code to avoid the error.

Change this code:

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := pk1.FLOOR(20.5);
END;

. . . to this:

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := FLOOR(20.5);     Prefix removed
END;


New reserved words in PL/SQL V2.3 or later

  Examples

The word VARIANCE is reserved in PL/SQL V2.3 or later and, if used, generates a compiler error.

See the example for information on how to use VARIANCE without generating an error.


Reserved word examples

  Related Topics 	   All Examples

The example first presents PL/SQL V1 code that will generate a compiler error, then shows how you might edit the code to avoid the error.

Example 1:

Change this code:

FUNCTION variance (y IN NUMBER)
RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

. . .to this:

FUNCTION varianceUniqueName (y IN NUMBER)
     /* A unique name was appended to Variance. */
RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

Example 2:

When calling a subprogram, change the code:

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := variance(someNumber);
END;

. . .to this:

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := varianceUniqueName(someNumber);
END;


%ROWTYPE or %TYPE required in variable declarations

  Examples

The PL/SQL V8 compiler will issue an error on the following illegal syntax (which the PL/SQL V2 compiler incorrectly allows):

return variable-expression

procedure (parameter IN <table_name>)

procedure (parameter IN <table_name>.<column_name>)

The correct syntax should be:

return variable-type

procedure (parameter IN <table_name>%ROWTYPE)

procedure (parameter IN <table_name>.<column_name>%TYPE)

To avoid an error, use the datatype of the expression, append %ROWTYPE to the table name, or append %TYPE to the column name.


Variable declarations examples

  Related Topics 	   All Examples

These examples first present PL/SQL V2 code that will generate a compiler error, then show how you might edit the code to avoid the error.

Example 1:

Change this code:

FUNCTION return_column RETURN dept.dname IS
. . .

. . .to this:

FUNCTION return_column RETURN dept.dname%TYPE IS
. . .

Change this code:

PROCEDURE foo (name IN dept.dname) IS
. . .

. . .to this:

PROCEDURE foo (name IN dept.dname%TYPE) IS
. . .

Example 2:

Change this code:

FUNCTION return_table RETURN dept IS
. . .

. . .to this:

FUNCTION return_table RETURN dept.%ROWTYPE IS
. . .

Change this code:

PROCEDURE foo (name IN dept) IS
. . .

. . .to this:

PROCEDURE foo (name IN dept%ROWTYPE) IS
. . .

Example 3:

This example shows an exception where you cannot use %TYPE.

When declaring parameters, change this code:

FUNCTION return_parm (x IN NUMBER)
  RETURN x IS
. . .

. . .to this:

FUNCTION return_parm (x IN NUMBER)
  RETURN number IS
. . .


Using Project Builder to upgrade to PL/SQL V2.3

  Related Topics

All triggers, program units, and PL/SQL blocks in your Release 1 forms, reports, displays, and PL/SQL libraries are written in PL/SQL Version 1.  Because later releases of Forms and Reports Developer are based upon PL/SQL Version 2.3, your Release 1 PL/SQL code must be upgraded to the new level.

To help automate the process of upgrading your Release 1 and pre-Release 1 applications to Forms Developer and Reports Developer, a PL/SQL conversion utility is provided.  For maximum efficiency, it is recommended that you run this utility through Project Builder, because you can convert several modules within a project simultaneously.  (If you aren’t currently managing your modules through Project Builder, you can use the Project Wizard to quickly create a project for PL/SQL conversion.)

To upgrade your modules using Project Builder, create a special Upgrade action for each document type (form, report, graphic, PL/SQL library).


Forms, reports, displays, or PL/SQL libraries.


Preparing for upgrading

  Related Topics

To prepare your projects for upgrading to PL/SQL V2:

1	Back up all the files you plan to upgrade.  Modules can be upgraded only once.

2	If you aren’t already managing your projects in Project Builder, use the Project Wizard to create a project and add the modules you want to upgrade.  You may want to consider grouping all the forms into one subproject, all the reports into another, and so on.  This makes it easy to apply the Upgrade or Deliver action to all modules of the same type.

3	Scan through the list of forms, reports, and displays you plan to upgrade and determine if there are PL/SQL libraries attached to any of them.  If there are, convert the libraries before converting the modules themselves.  See Related Topics.

4	Check for modules with identical names.  If you find any, make sure that the files are in different subdirectories.

For example, if you have a form called MAIN.FMB and a report called MAIN.RDF, the conversion utility changes for both will be written to a log file called MAIN.PLG.  Thus, one of the logs is overwritten.


Creating an Upgrade action

  Related Topics

To create an Upgrade action:

1	Prepare for upgrading .

2	Copy the types that you want to upgrade from the Global Registry to the User Registry.  This ensures that if you make a mistake you can easily restore the original type definitions.

3	In the User Registry, select one of the types you want to upgrade, then select New Action from the pop-up menu.

4	Use the Add Action dialog to create an Upgrade action for this type.

For example, an Upgrade action for forms looks like this:

<Form Compiler> MODULE=form BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

where:

<Form Compiler>	Is the name of the Form Compiler executable on your platform.
form	Is the name of the form you want to convert.
5	Repeat steps 3 and 4 for each type you want to upgrade. See Related Topics for the syntax of the Reports Developer Reports compiler and the Graphics Builder.

6	In the Project Navigator, select the files you want to upgrade.  All selected files must be of the same type.

7	From the pop-up menu, select the Upgrade command.

8	Examine the log files and make any necessary manual corrections.

A log file called module.plg is created for each module in the project.


A summary of the conversion process, listing what was converted and what wasn’t.