Friday, December 21, 2012

Oracle FORMS and REPORTS Interview Qs

1.      Which triggers are created when master -detail relation? master delete property
NON-ISOLATED (default): on check delete master, on clear details, on populate details
      ISOLATED: on clear details, on populate details
      CASCADE:    pre-delete, on clear details, on populate details.

2.      Which system variables can be set by users?


3.      What are object group?
An object group is a container for a group of objects. You define an object group when you want to package related objects so you can copy or reference them in another module.

4.      What are referenced objects?
Referencing allows you to create objects that inherit their functionality and appearance from other objects.   Referencing an object is similar to copying an object, except that the resulting reference object maintains a link to its source object. A reference object automatically inherits any changes that have been made to the source object when you open or regenerate the module that contains the reference object.

5.      Can you store objects in library?

6.      Is forms 4.5 object oriented tool? Why?
Yes, partially. 1) PROPERTY CLASS - inheritance property
                       2) OVERLOADING:  procedures and functions.

7.      Can you issue DDL in forms?
Yes, but you have to use FORMS_DDL.

Referencing allows you to create objects that inherit their functionality and appearance from other objects. Referencing an object is similar to copying an object, except that the resulting reference object maintains a link to its source object. A reference object automatically inherits any changes that have been made to the source object when you open or regenerate the module that contains the reference object.
Any string expression up to 32K:
·    a literal
·  an expression or a variable representing the text of a block of dynamically created
          PL/SQL code
·  a DML statement or ·  a DDL statement
The statement you pass to FORMS_DDL may not contain bind variable references in the string, but the values of bind variables can be concatenated into the string before passing the result to FORMS_DDL. 

8.      What is SECURE property?
Hides characters that the operator types into the text item.  This setting is typically used   for  password protection.

9.      What are the types of triggers and how the sequence of firing in text item
Triggers can be classified as Key Triggers, Mouse Triggers,  Navigational Triggers.
Key Triggers:  Key Triggers are fired as a result of Key action.
    e.g.  Key-next-field, Key-up, Key-Down
      Mouse Triggers:  Mouse Triggers are fired as a result of the mouse navigation.
                     e.g. When-mouse-button-pressed, when-mouse-double clicked, etc
      Navigational Triggers:  These Triggers are fired as a result of Navigation.
                                E.g. Post-Text-item, Pre-text-item.
      We also have event triggers like when–new-form-instance and when-new-block-instance.  
      We cannot call restricted procedures like go_to(‘my_block.first_item’) in the Navigational   
      triggers But can use them in the Key-next-item.

      The Difference between Key-next and Post-Text is an very important question. The key-next
      is fired as a result of the key action while the post text is fired as a result of the
      mouse movement.  Key next will not fire unless there is a key event.
The sequence of firing in a text item are as follows:
a) pre - text
b) when new item
c) key-next
d) when validate
                          e) post text

10.  What are property classes? Can property classes have trigger?
Property class inheritance is a powerful feature that allows you to quickly define objects that conform to your own interface and functionality standards. Property classes also allow you to make global changes to applications quickly.  By simply changing the definition of a property class, you can change the definition of all objects that inherit properties from that class.

Yes, all type of triggers.

11.  If you have property class attached to an item and you have same trigger written for the item.  Which will fire first?
Item level trigger fires, if item level trigger fires, property level trigger won't fire. Triggers at the lowest level are always given the first preference. The item level trigger fires first and then the block and then the Form level trigger.

12.  What are record groups? * Can record groups created at run-time?
A record group is an internal Oracle Forms data structure that has a column/row framework similar to a database table.  However, unlike database tables, record groups are separate objects that belong to the form module in which they are defined.  A record group can have an unlimited number of columns of type CHAR, LONG, NUMBER, or DATE provided that the total number of columns does not exceed 64K.  Record group column names cannot exceed 30 characters.  Programmatically, record groups can be used whenever the functionality offered by a two-dimensional array of multiple data types is desirable.
Query Record Group:       A query record group is a record group that has an associated SELECT statement.  The columns in a query record group derive their default names, data types, and lengths from the database columns referenced in the SELECT statement.  The records in a query record group are the rows retrieved by the query associated with that record group.
Non-query Record Group: A non-query record group is a group that does not have an associated query, but whose structure and values can be modified programmatically at runtime. 
Static Record Group:        A static record group is not associated with a query; rather, you define its structure and row values at design time, and they remain fixed at    runtime.

13.  What are ALERT?
An ALERT is a modal window that displays a message notifying operator of some application condition.

14.  Can a button have icon and label at the same time?


15.  What is mouse navigate property of button?
When Mouse Navigate is True (the default), Oracle Forms performs standard navigation to move the focus to the item when the operator activates the item with the mouse. 
When Mouse Navigate is set to False, Oracle Forms does not perform navigation (and the resulting validation) to move to the item when an operator activates the item with the mouse.

16.  What is FORMS_MDI_WINDOW?
Forms run inside the MDI application window.   This property is useful for calling a form from another one.     

17.  What are timers ? when  when-timer-expired does not fire?
The When-Timer-Expired trigger can not fire during trigger, navigation, or transaction processing.

18.  Can object group have a block?
       Yes, object group can have block as well as program units.

19.  How many types of canvases are there.
There are 2 types of canvases called as Content and Stack Canvas.
Content canvas is the default and the one that is used mostly for giving the base effect.   Its like a plate on which we add items.
stacked canvas is used for giving 3 dimensional effect.
20.  What are user-exits?
It invokes 3GL programs.

21.  Can you pass values to-and-fro from foreign function? how?
Yes. You obtain a return value from a foreign function by assigning the return value to an Oracle Forms variable or item.  Make sure that the Oracle Forms variable or item is the same data type as the return value from the foreign function.  After assigning an Oracle Forms variable or item value to a PL/SQL variable, pass the PL/SQL variable as a parameter value in the PL/SQL interface of the foreign function.  The PL/SQL variable that is passed as a parameter must be a valid PL/SQL data type; it must also be the appropriate parameter type as defined in the PL/SQL interface. 

22.  What is IAPXTB structure?
The entries of Pro * C and user exits and the form which simulate the proc or user_exit are stored in IAPXTB table in d/b.

23.  Can you call WIN-SDK thruo' user exits?

24.  Does user exits supports DLL on MS-WINDOWS?

25.  What is path setting for DLL?
Make sure you include the name of the DLL in the FORMS45_USEREXIT variable of the ORACLE.INI file, or rename the DLL to F45XTB.DLL.  If you rename the DLL to F45XTB.DLL, replace the existing F45XTB.DLL in the \ORAWIN\BIN directory with the new F45XTB.DLL.

26.  How is mapping of name of DLL and function done?
The DLL can be created using the Visual C++ / Visual Basic Tools and then the DLL is put in the path that is defined the registery.

27.  What is pre-compiler?
It is similar to C pre-compiler directives.

28.  Can you connect to non - oracle data source? How?

29.  What are key-mode and locking mode properties? level?
Key Mode Property: Specifies how oracle forms uniquely identifies rows in the database.  This  property includes for application that will run against NON-ORACLE data sources .
Level   Key setting
      unique (default.)
Locking mode Property:
Specifies when Oracle Forms should attempt to obtain database locks on rows that correspond to queried records in the form.
Level   a) immediate
      b) delayed

30.  What are save point mode and cursor mode properties? level?
Save Point Mode:  Specifies whether Oracle Forms should issue savepoints during a session. This property is included primarily  for applications that will run against non-ORACLE data sources.   For applications that will run against ORACLE, use the default setting.

Cursor mode:  define cursor state across transaction
                          Level: Open/close.

31.  What is transactional trigger property?
Identifies a block as transactional control block. i.e. non - database block that oracle forms should manage  as transactional block.(NON-ORACLE data source) default - FALSE.

32.  What is OLE automation?
OLE automation allows an OLE server application to expose a set of commands and functions that can be invoked from an OLE container application.  OLE automation provides a way for an OLE container application to use the features of an OLE server application to manipulate an OLE object from the OLE container environment. (FORMS_OLE)

33.  What does invoke built-in do?
This procedure invokes a method.
(object obj_type,
method VARCHAR2,
list   list_type := 0);
object  Is an OLE2 Automation Object.
method        Is a method (procedure) of the OLE2 object.
list       Is the name of an argument list assigned to the OLE2.CREATE_ARGLIST function.

34.  What are OPEN_FORM, CALL_FORM, NEW_FORM? difference?
CALL_FORM: It calls the other form. but parent remains active, when called form  completes the operation ,  it releases lock and control goes back to the calling form.  When you call a form, Oracle Forms issues a savepoint for the called form.  If the CLEAR_FORM function causes a rollback when the called form is current, Oracle Forms rolls back uncommitted changes to this save point.
OPEN_FORM:  When you call a form, Oracle Forms issues a savepoint for the called form.  If the CLEAR_FORM function causes a rollback when the called form is current, Oracle Forms rolls back uncommitted changes to this savepoint.
NEW_FORM: Exits the current form and enters the indicated form.  The calling form is terminated as the parent form.  If the calling form had been called by a higher form, Oracle Forms keeps the higher call active and treats it as a call to the new form.  Oracle Forms releases memory (such as database cursors).      that the terminated form was using.
Oracle Forms runs the new form with the same Runform options as the parent form.  If the parent form was a called form, Oracle Forms runs the new form with the same options as the parent form.

35.  What is call form stack?
When successive forms are loaded via the CALL_FORM procedure, the resulting module hierarchy is known as the call form stack.

36.  Can u port applications across the platforms? how?
Yes we can port applications across platforms. Consider the form developed in a windows system.  The form would be generated in unix system by using f45gen my_form.fmb scott/tiger

37.  What is a visual attribute?
Visual attributes are the font, color, and pattern properties that you set for form and menu objects that appear in your application's interface.

38.  Diff. between VAT and Property Class?  Imp
Named visual attributes define only font, color, and pattern attributes; property classes can contain these and  any other properties. You can change the appearance of objects at runtime by changing the named visual attribute programmatically; property class assignment cannot be changed programmatically. When an object is inheriting from both a property class and a named visual attribute, the named visual attribute settings take precedence, and any visual attribute properties in the class are ignored.

39.  Which trigger related to mouse?

40.  What is Current record attribute property?
Specifies the named visual attribute used when an item is part of the current record.
Current Record Attribute is frequently used at the block level to display the current row in a multi-record If you define an item-level Current Record Attribute, you can display a pre-determined item in a special color  when it is part of the current record, but you cannot dynamically highlight the current item, as the input focus  changes. 

41.  Can u change VAT at run time?
Yes. You can programmatically change an object's named visual attribute setting to change the font, color, and pattern of the object at runtime.

42.  Can u set default font in forms?
Yes. Change windows registry(regedit). Set form45_font to the desired font.

43.  Can u have OLE objects in forms?

44.  Can u have VBX and OCX controls in forms?

45.  What r the types of windows (Window style)?
 Specifies whether the window is a Document window or a Dialog window.

46.  What is OLE Activation style property?
 Specifies the event that will activate the OLE containing item.

47.  Can u change the mouse pointer? How?
Yes. Specifies the mouse cursor style.  Use this property to dynamically change the shape of the cursor.

Forms 6i

1.      Which of the following tools assists with the formatting of items and is linked to the execution of the Data Block Wizard? 
Format Wizard 

2.      What is the most common trigger associated with a push button? 

3.      You are using a global variable in your application and you want to ensure that the global has been initialized before running the WHEN-NEW-FORM-INSTANCE.  You also want to make sure that you do not overwrite the current value if the global variable has a value. 
Referring to the situation above, what built-in can be used to initialize the global    variable? 
     Choice 1    SET_ITEM_PROPERTY 
     Choice 2    CREATE_VAR 
     Choice 3    DEFAULT_VALUE 
     Choice 4    INITIALIZE 
     Choice 5    COPY 

4.      What are Smart Triggers? 
 They are templates for creating triggers 

5.      What is the primary purpose of PL/SQL Libraries? 
To enhance compatibility between program units 

6.      How do you capture an ORA error to perform exception handling on it? 


What does the sample code above do? 
Updates :INVENTORY.PARTNO to reflect the number of parts ordered in                       ORDERS.PARTNO 

8.      XX denotes the forms version. For example FORMSXX_OUTPUT would be FORMS45_OUTPUT for Developer 1.6.1 and FORMS50_OUTPUT for Developer 2.1. 
Referring to the above sample. What environment variable tells Forms where to look     for all of its  dependent objects like FMXs, PLLs, and MMXs? 
9.      Which of the following list items allows the user to type a choice not offered in the list? 
      Combo Box 

10.  Which of the following is a valid Record Group data source? 
        Multi-dimensional arrays 

11.  What built-in would you use to open another form in a modal window?  CALL_FORM 

12.  How can you control text wrapping in a multi-line display item so that the line break automatically occurs after the last complete word and continues on the next line? 
     Set the Wrap Style property to Word 

13.  You want to use a poplist to allow the users to select a value from the list and populate text items based on the value that is chosen.  Currently, users have to manually enter this information. 
Referring to the situation above, what trigger could you use to populate text items when the user makes a selection from the list item? 

14.  What built-in will allow you to display that a particular line of code is firing and can be used to show the values of variables? 

15.  Which button do you press to run a form from within the Form Builder environment? 
      Green Light 

16.  Users have requested that they be able to open another form that has a separate database connection within the same application. This will allow them to undo changes to one form without affecting the information that has been entered in the other form. 
Referring to the above situation, which of the following parameter needs to be passed while opening the new form? 

17.  Which of the following can be used to maximize the forms MDI window? 

18.  Which of the following can be used to dynamically hide or display a tab within a tab canvas? 

19.  What is the standard data source type for a data block? 
20.  You have a text item that is in a data block but is not based on the database.  You are getting an error message when querying information in that data block. 
Referring to the situation above, what property needs to be changed to tell Forms that the text item is not based on the database? 
      Data Source 

21.  What PL/SQL Library file format contains both source code and compiled code? 

22.  You have decided to create a chart item manually. Which of the following file types can you use as a chart item? 

23.  PROCEDURE testit(p_number NUMBER) IS
Referring to the sample code above, what built-in contains the same basic functionality as this program unit? 

24.  Which of the following button properties can you change to display a picture instead of a label? 

25.  Which of the following is a surface on which you place the interface items and boilerplate objects that end users interact with when they run the form? 

  group_id   RecordGroup := Find_Group('rg_data');
  total_rows NUMBER;
  new_row    NUMBER;
  total_rows := Get_Group_Row_Count(group_id);
  Add_Group_Row(group_id, END_OF_GROUP);
  new_row := total_rows + 1;
  Set_Group_Char_Cell('rg_data.col1, new_row, 'xyz company');
  Set_Group_Char_Cell('rg_data.col2', new_row, 'district 12');
  Set_Group_Number_Cell('rg_data.col3', new_row, 400);
What does the sample code above do? 
Inserts a row of data into the Record Group 

27.  You created your form and laid out the items in a frame.  You decide to remove one item, add two others, show the items in a tabular format, change the number of rows displayed from 1 to 10, and add a vertical scrollbar. 
Referring to the situation above, which of the following tools can you use to make these changes with minimal effort? 
 Layout Formatting Wizard 

      The block.item location where focus is currently located 

29.  Which of the following can be set to prevent a number of system messages from being displayed? 

30.  How can you select more than one value at a time from a List of Values? 
      Hold down the CTRL button and click on the appropriate choices 

31.  You want to display a green circle when a record meets certain criteria and a red circle when it does not.  You have a primary application canvas and would like the circle to be displayed in the upper right corner of that canvas. 
Referring to the example above, Which of the following can be used to programmatically  display the circles? 

32.  You want to ensure that users enter a value that is in the List of Values.  You want to display the List of Values only if the user enters a value that is not in the List of Values or if they specifically request to display it. 
      Referring to the situation above, what property would you set to get this functionality? 
List of Values Property Palette -> Perform Validation 

33.  What are the Layout Editor buttons shown above used to do? 
To create chart objects 

34.  How can you enter more than one line of text in a push button? 
Press Enter between lines 

35.  Which of the following are NOT triggers? 

36.  In the Object Navigator, what does an asterisk (*) to the right of a program unit mean? 
It needs to be compiled 

37.  You need to display a picture of the product for each image.  The image file is a GIF file and is stored on a network file server.  Each client system has a drive mapped to the L: drive and the images are stored in the PRODUCTS directory. 
Referring to the above situation, what would you do to incorporate this functionality into your application? 
Import every GIF file using Import Image and control which one is displayed during runtime 

Referring to the menu selections above, which of the following menu items can be used to start the Layout Wizard? 

39.  What internal Forms data structure is like a two-dimensional array?
Record Group

40.  What file type is edited in Form Builder with the Menu Editor? 

41.  You are using a global variable in your application and you want to ensure that the global has been initialized before running the WHEN-NEW-FORM-INSTANCE.  You also want to make sure that you do not overwrite the current value if the global variable has a value. 
Referring to the situation above, what built-in can be used to initialize the global variable? 

42.  What built-in can be used to determine the name of the current form? 

43.  Which one of the following is the default validation unit? 

44.  Which tool can be used to make creating a master-detail relationship within the form easier? 
Data Block Wizard 

45.  You have received feedback from test users who say that they find the "FRM-40100: At first record" message distracting and would like to prevent it from being displayed. 
Referring to the situation above, what line of code could you add to a WHEN-NEW-FORM-INSTANCE to suppress the FRM-40100 message? 

46.  Which of the following built-in runs a report from forms? 

47.  Which of the following can you use to ensure that users enter data into a text item in a specific format such as 04/07/2001? 
Format Mask 

48.  Why are control blocks used? 
Control blocks are required for the creation of control items such as buttons, list items, radio groups, and display items 

49.  Referring to the user requirements above, how would you implement this in your application? 
Add the appropriate letter in the Access Key property for the button 

1.      Generating a form module compiles all of its code objects and creates .FMX runfile (True)
2.      The forms complier component is the runtime engine that form operators use to run finished forms application (False)
3.      Application built using Oracle forms are portable to a variety of G U I and character mode platforms (True)
4.      The items in a block can be arranged in any order on a form and can even be displayed in different windows (True)
5.      When you create an object, its properties are automatically set to default settings (True)
6.      The Visual View corresponds to the oracle forms object ownership hierarchy :form-black item (false)
7.      Each window can have multiple canvas_views and there can be multiple items on a single canvas view (True)
8.      Objects can be copied from one module to another, but cannot be moved from one module to another (True)
9.      A canvas_view is owned by the window in which it is displayed (false)
10.  Boilerplate objects are not named objects and they don’t appear in the object navigator (True)
11.  Modules can be saved to the file system or the database (True)
12.  The .PLL library file that you work with in the builder includes both the source code required at the design time and the compiled executable code required at runtime (True)
13.  An objects named visual attribute setting can be changed programmatically (True)
14.  A property class cannot itself be caused on a property class (True)
15.  Once an object is based on a class, you cannot override the setting of any inherited property (False)
16.  Any Change you make to the source object are inherited by the reference object when you open or regenerate the module that contains the reference object (True)
17.  When you copy an object to another module by posting from the clipboard, all object associations are lost. (True)
18.  When you reference an object you also reference any objects owned by the object (True)
19.  The items in a block can be placed in different canvas view and cannot be displayed in different canvas windows (false)
20.  All though the button palette is created at the same time as the base table block it is separate control block that is functionally independent of the base table block (True).
21.  The scope of the trigger is defined by the object to which a trigger is attached (True)
22.  Some triggers can be defined only at a particular definition level (True)
23.  The text of an oracle forms trigger is a named PL/SQL block (False)
24.  Restricted built-ins is illegal in triggers that fire in response to navigation (True)
25.  Key Triggers have one to one relationships with specific keys (True)
26.  At any given point of time only one item in the form has the input focus (True)
27.  The undefined state of a check-box is valid only in enter query mode (True)
28.  A Populate_List built in subprogram adds to the contents of the current list item, the values from a record group (False)
29.  In order to populate a list item from a record group, the record group must have two columns with type CHAR (True)

30.  Operations can navigate to display items or edit display item values.
31.  You can define a master-detail relationship only at the time of creation of the detail block. (False)
32.  To prevent operation from performing master less operations in the detail block of the relation you must set the prevent masterless operation property to true. (True)
33.  An alert message can be changed programmatically at runtime by executing the SET_ALERT_PROPERTY built-in procedure. (True)
34.  If one relation in a chain of related blocks is set to deferred coordination of all subsequent blocks will also be deferred. (True)
35.  You can specify editor attributes such as window display size, position, and title for a default editor. (False)
36.  You must assign atleast one canvas view to each window in a form (True)
37.  You might create a window that displays two stacked canvas view, A H toolbar canvas view (False)
38.  V Toolbars can be displayed along the left or the right side of a window (False)
39.  If the operator or the application scrolls the window explicitly, oracle forms does allow the item that currently has input focus to be scrolled out of the view. (True)
40.  Windows that do not contain navigable items must always be displayed programmatically. (True)
41.   An LOV is a modal window.  (True)
42.  An LOV can be attached to one or more text items in the form (True)
43.  A record group cannot be populated with an array of static values (False)
44.  If the SELECT statement used to create a record group, the INTO clause establishes the relationship between the LOV and the return items but does not affect the definition of the resulting record group. (True)
45.  You can set the optional LOV for validation property to have oracle forms validate the value of the text item against the values in the LOV. (True)
46.  You cannot pass data parameters to forms.
47.  Client memory can be conserved when displaying large image items by reducing the number of records that are buffered for the block by setting the buffered block property (True)
48.  Global variables are not formally declared the way PL/SQL local variables are (True)
49.  Global Variables can store CHAR,NUMBER, or DATE data types (False)
50.  Libraries can also be attached to other libraries (True)
51.  The default menu is form module (True)
52.  You can se the PL/SQL menu item commands to execute operating system commands (True)
53.  You can directly assign values to an Oracle forms object or use the copy built-in procedure(False)
54.  Oracle forms support four types of special menu items, check, radio and separator and magic (True)
55.  These can be more than one background menu in a menu module (False)
56.  The initial date column in the record group used to populates a hierarchical tree determines the depth of the node in the true (false)
57.  You can set the show play button and show record button properties to NO for a sound item control (false)
58.  You can display total item, elapsed time and remaining time information for the sound data (true)
59.  In-place activation is available for embedded objects, but it is not available for linked objects (true)
60.  The built-in set-custom-item property is used to communicating with the Java components (True)
61.  A non-Oracle foreign function cannot access Oracle database (True)

62.  An operating system text file can be read using a FFI-function (True)
63.  By Associating a PL/SQL subprogram with a foreign function you can invoke the foreign function (True)
64.  You cannot invoke a foreign function using an user exit (False)
65.  You can perform host language screen I/O from foreign functions (False)

Questions & Answers

1)      Libraries are collect of Pl/SQL Procedures & Functions
2)      The interface objects that display information to user and allow then to interact with your applications are items.
3)      The block of PL/SQL code that you attach to a specific object, and that executes in response to a specific event is called Trigger.
4)      Which of the following are interface items supported by Oracle forms OLE Container, Image Items and VBX controls
5)      The started application functions performed by the built-in procedures and functions in Oracle Forms are navigation, commit processing, set object properties, and Get Object properties
6)      The components of Oracle Forms used to built applications are Forms Designer, Forms Generator and forms run-time
7)      Items are logically grouped using Blocks and are visually grouped canvas using views
8)      User-Named Procedures, Functions or Packages are collectively known as Program Units
9)      PL/SQL is the language used for both client side Oracle Forms applications and server side database triggers and database triggers and procedures.
10)  The three types of module in Oracle forms applications are Forms, menus and Libraries.
11)  Which of the following is part of the top-level nodes in the navigator
      Built in Packages, Database Objects and Libraries
12)  Which of the following would invoke a property palette
Tools>Properties, Double clicking the object icon, Double Clicking the item in the layout editor.
13)  A list of values (LOV) is a Modal window
14)  The tool where you enter and compile code object is PL/SQL editor
15)  The symbol that indicates that a navigator entry is collapsed is a  +(plus)
16)  The Object Navigator provides a hierarchical display of the objects in all open modules.
17)  You can toggle property palette synchronization on and off by clicking the freeze/unfreeze button on the property palette toolbar.
18)  The Properties window is where you set the properties of objects you create in form and menu modules.
19)  The Layout Editor is the graphical design facility for creating and arranging interface items and boilerplate text and graphics in form.
20)  A window where you must either select an option or dismiss it before you can perform other operations is called a Model Window.
21)  When an Object is inheriting from both A named visual attribute and Property Class
22)  To undo changes that are being made to a module since the last time it was saved, select file -> revert
23)  To attach a library to a form, menu or to another library, you need only ensure that the library has been compiled and it can be located in the default run times search path.
24)  Which of the following can be inherited from a property class Navigation Properties.
25)  The built-in procedure which can be used to set the properties of any type of items is set_relation_property

26)  If an item is inheriting visual attributes from a property class setting those attributes in layout editor overrides the inherited settings.
27)  When you create an application with multiple modules you must deliver all of the .FMX,MMX and .PLL files required for runtime deployment.
28)  You attach a custom menu module to a form by setting the property Menu module form property.
29)  The Visual Attribute is the separate object in a form or menu module that defines a collection of visual attribute properties.
30)  You can specify whether you want modules to be saved to a loaded from the file system or the database by setting the Module access design preference.
31)  The copy object options dialogue allows you to specify whether objects that are associated with the object being copied should also be copied.
32)  A read only text box whose value must be fetched or assigned programmatically is a display item.
33)  Buttons and chart items are control items, hybrid items.
34)  Which of the following triggers may be created if you select the integrity constrain when you create a base table block when-validate-item or record and when-remove-record.
35)  In the multiple record block the items displayed prorate of an item cannot be set greater than the blocks records displayed property setting.
36)  If you copy reference objects, the resulting object is also a preference object.
37)  There are two type of blocks base table and control table.
38)  The DO-KEY built in tells Oracle forms to execute the key trigger define for the function key, or if no such trigger exists execute the built in subprogram directly.
39)  Oracle Forms displays Multiple Instances of each item in a multi record block.
40)  Setting the Sequence ID option can specify the Position of the new block in the default block navigation sequence.
41)  Key-Next Item is not an internal processing unit.
42)  When an event occurs that is within the scope of more than one trigger, the trigger with the lowest definition level takes precedence.
43)  The When-Timer-Expired trigger can be defined only at the Form Level
44)  A user named trigger can only be executed by calling it from within a Built in Trigger, Menu Item command and User named subprogram
45)  The sequence in which the following triggers linked to a text item are fired the sequence is Pre-Text-Item, When-new-item-instance and Post-text-Item.
46)  Interface events can be divided into External Interface events and Internal Processing events
47)  To call a user named trigger, use the Execute-Trigger built in procedure.
48)  Any built in subprogram that initiates navigation is called a restricted subprogram.
49)  DDL commands can be issued in a forms application by calling the Forms-DDL built in procedure.
50)  The master-detail triggers generated automatically by oracle forms when you define a master-detail relationship between blocks are on-check-delete master, on clear details and on popular details.
51)  Radio group it displays a fixed numbers of options and the options are manually exclusive
52)  DELETE_LIST_ELEMENT and CONVERT_OTHER_VALUE built-in’s can be used to delete elements from a list item.
53)  Record Group is an internal Oracle forms data structure
54)  Auto Skip, Secure and Format Mark properties are apply to single-line text items.
55)  WHEN_LIST_ACTIVATED and WHEN_LIST_CHANGED triggers can be used to respond to interface events that occur when the operator manipulates a list item.
56)  Oracle Forms supports two button styles.  They are Text and Iconic

57)  A Check box is a low state control that indicates whether a certain condition or value is on or off.
58)  The check box other value property applies only to check box values fetched from the database or assigned programmatically at run time.
59)  The various list styles available in oracle forms are poplist , textlist and combo box

60)  You can specify that a text item accept only values that fall within a valid range by setting the range low and range high rate properties.
61)  Isolated option for the master deletes property would allow the master record to be deleted and does not effect the associated detail records in the database.
62)  When a coordination causing event occurs, Oracle Forms defers fetching the associated detail records until the operator navigates to the detail block, if the coordination properties deferred on auto query are set to True, False.
63)  Either Deferred with auto query or  Deferred with no auto query  triggers are generated when the master deletes property is set to cascading.
64)  SHOW_ALERT built-in subprogram, is a function, it returns a numeric constant and it helps indicate which alert button the operator selected.
65)  On-clear-details triggers are required for all master detail relations
66)  The mechanism that oracle forms used to co-ordinate the population of the details block with the current record in the master block is the copy value from item.
67)  An alert is a modal window that displays a message notifying the operator of some application condition.
68)  The property of a relation which allows you to specify how the deletion of a record in the master block should affect records in the detail block is Master Deletes property.

69)  The three kinds of alerts styles available in oracle forms are Stop, Caution and note.
70)  Any event that makes a different record in the master block, the current record is a coordination causing event.
71)  Windows which are free floating and can be moved by the operator outside the application window are called dialog window
72)  You can replace a window’s current content view programmatically without hiding any stacked canvas-view in the window with the REPLACE_CONTENT_VIEW
73)  SET_VIEW_PROPERTY and HIDE_VIEW procedures can be used to hide a view programmatically
74)  During navigation Oracle forms raises the canvas-view only if the target item is hidden behind another canvas-view in the same window if Raise on Entry is false
75)  Remove on Exit and V/H Scroll bar properties are not valid for a modal dialog window.
76)  Canvas View are the background objects on which you place the interface items and boilerplate objects that operators interact with as they run your form.
77)  The four types of canvas view are content, stacked, vertical and Horizontal toolbar,tab
78)  The MDI-Application window is created by the window manager at runtime, and does not appear in the forms list of windows.
79)  To specify whether a modeless window should remain displayed when the operator navigates to another window you can set the  remove on ext property.
80)  You can designate a primary canvas view for a window by setting the optional view property.
81)  An Item in the current form, A global variable and A from parameter qualify as on LOV return item
82)  The built-in subprograms which can be used to display an LOV programmatically at runtime are LIST_VALUES and SHOW_LOV.
83)  A record group whose structure and row values are defined of design time and remain fixed at runtime is a Static Record Group

84)  ADD_GROUP_COLUMN built in subprogram cannot be used with a record group creates of design time.
85)  GET_GROUP_ROW_COUNT built-in functions can be used to find the number of rows in a record group.
86)  At runtime, Oracle forms displays the <LIST> LAMP on the status line whenever an LOV is available.
87)  LOV values are derived from an internal data structure called a Record Group.
88)  Operators can use the LOV Auto Reduction and search features to locate a value in a list.
89)  A hidden column is any column that was included in the LOV structure but whose value are not displayed in the LOV window.
90)  To specify the record group columns which are to be included in the LOV structure you set the column mapping property.
91)  To scale image that are larger than the image item border to fil wihin the image item set sizing style (adjust)
92)  You can assign a value to the system variables are SYSTEM.MESSAGE_LEVEL and SYSTEM.SUPRESS_WORKING
93)  Form bind variable like system and global variable are always outside the scope of Library modules
94)  Attached libraries are read only
95)  The field in the attach dialog used to attach libraries, which specifies where oracle forms should look for the library file(the database/file system/both form
96)  Parameter list is a named programmatic construct that is simply a list of parameter names and their values.
97)  A parameter you include in a parameter list can be either a text parameter or a date parameter.
98)  The READ IMAGE-FILE built-in subprogram procedure can be used to get an image from the file system.
99)  To destroy a global variable and release its memory, use erase built-in procedure
100)  A built-in allows you to reuse code without having to entire it in multiple  
101)  Menu Items name must follow the PL/SQL naming conventions.
102)  The command type property for a menu item having submenus is Menu
103)  The built-in substitution parameters UN in Oracle forms stands for current 
             User name.
104)  You must explicitly invoke the enter parameter values dialog when you reference
             a substitution parameter in a PL/SQL type menu item command by calling the   
105)  Which of the following built-in subprograms apply only to a full-screen menus     
106)  Menudif.mmb is the menu module library file for the default menu that ships with 
             oracle forms.
107)  Menus can be created in Pull down, full screen and bar style display styles
108)  The run-product built-in procedure can be called form a PL/SQL menu item
             command to invoke Oracle forms run form, Oracle reports Oracle graphics
109)  In a menu module the value of an oracle forms object is determined using the
             name-in built-in function.
110)  You can populate a hirearchial tree with values contained in A record group &
             query Text.
111)  The order of the triggers are fired is When-Tree-Node-Select , When-Tree-Node-
112)  The default format in which the sound item will be stored is WAVE
113)  For a java bean to work with a form, the wrapper’s class definitations must extent  
             the Vbean class
114)  You an override any method by using Set Property & Get progerty
115)  All the built-ins related to a Hierarchical tree are located in the FTREE built-in 
116)  If you plan to store data in the database, reduce the effect on network
             performance by setting the Update change Columns property to yes for the
             second items block.
117)  An ActiveX is stand alone software component that provides a user interface and
             sends events to clients all according to the standards defined by COM
118)  Form builder displays the imported methods for ActiveX controls under the
             Program Units node in the object navigator
119)  The Java Bean container sends events to the server via the custom listner, which
             follows the standard a not event mechanism.
120)  Foreign functions can interact with Oracle Database & form variables
121)  FFI does not support you to write programs with one of the languages(Basic)
122)  To initialize a  foreign function you cannot use on the function
123)  The PRAGMA statement invokes foreign function by passing control to the
             memory location in forms builder that can communicate with DLL
124)  The invoice foreign functions from a PL/SQL interface you should use API
125)  Float type arguments should be converted to double
126)  Foreign functions invoked from PL/SQL must be contained in DLL
127)  The ORA_FFI package provides an foreign function for invoking c functions in
            dynamic library
128)  Initializing a foreign functions identifies the dynamic libraries
129)  Foreign functions are subprograms written in 3GL programming language
130)  The three levels of the standard pull-down menu are main, individual and             
131)  Can an oracle forms fmx be moved from windows to unix
FMX files are operating system dependent. FMB's are not. So, you have to regenerate them when ever you change the OS or the Version of Developer 2000 etc.
132)  How to suppress or customize the error messages in Oracle Forms
You can either set the message level using the system variable SYSTEM.MESSAGE_LEVEL or trap the errors using the ON-ERROR or ON-MESSAGE triggers.

133)  How can I execute Operating System commands in Forms
You can use the HOST command to shell out to the operating system to run an executable, batch script or os command.  you can also go about the hard way and implement it using dbms_pipe to a stored procedure that can execute an external procedure

134)  why doesn't my Messages do not show on the screen?
This is because messages are displayed asynchronously. To display messages immediately, use the
message('...'); synchronize;

This can also be used to execute a query while the user is looking at the results of a previous query.

135)  How can we iterate through items in a specified block?
Use the following code

Ship := TO_NUMBER(:System.Trigger_Record);

-- do processing
IF (:System.Last_Record = 'TRUE') THEN
136)  How can I create a custom tool bar?
Create a new block, let's name it "TOOLBAR" and a canvas named "C_TOOLBAR" (for illustration purposes). Put some iconic buttons on your canvas. Use the following properties for these buttons:

Enabled: True
Navigable: False
Mouse Navigate: False
Now set the "Canvas Type" in the canvas property palette to "Horizontal Toolbar" and the "Form
Horizontal Toolbar Canvas" in the module property palette to your canvas name (C_TOOLBAR in our case).

137)  How can I minimise/maximise a window in forms?
You can use SET_WINDOW_PROPERTY on the window called FORMS_MDI_WINDOW to resize this MDI (or any other named) window.

set_window_property(FORMS_MDI_WINDOW, POSITION, 7, 15);
set_window_property('my_window', WINDOW_STATE, MAXIMIZE);

138)  What happened to the Sql menu from Forms V4.5?

From Forms V4.5, SQL*Menu is fully integrated into Oracle Forms. Application menus can be created by creating Menu Modules (*.MMB) and generate it to Menu Module Executables (*.MMX).

139)  How can we issue DDL statements through forms?

DDL (Data Definition Language) commands like CREATE, DROP and ALTER are not directly supported from Forms because Forms are not suppose to manipulate the database structure.  

A statement like CREATE TABLE My_table (Ship_id number); will result in error:

Encountered the symbol "CREATE" which is a reserved word.  However, you can use the FORMS_DDL built-in to execute DDL statements. Eg:

FORMS_DDL('CREATE TABLE my_table (ship_id NUMBER)'

140)  How can I read/write OS files from forms?

OS files can be read/written from Forms using the TEXT_IO package in Forms. The TEXT_IO package has a datatype FILE_HANDLE.  It also has procedures FCLOSE, GET_LINE, NEW_LINE, PUT, PUT_LINE & PUTF and
a function FOPEN. Example:

str VARCHAR2(80);
file1 := TEXT_IO.FOPEN ( 'input.txt','r' );
file2 := TEXT_IO.FOPEN( 'output.txt', 'w' );
TEXT_IO.GET_LINE( file1, str );
TEXT_IO.PUT_LINE( file2, str );
TEXT_IO.FCLOSE( file1 );
TEXT_IO.FCLOSE( file2 );

141)  What should I do when Forms does not allow me to use restricted built-in's?

1. Create a TIMER at the point where you want the navigation to occur. Eg. create_timer('TIMER_Y', 5, NO_REPEAT);

2. Code a WHEN-TIMER-EXPIRED trigger to handle the navigation

tm_name VARCHAR2(20);
tm_name := Get_Application_Property(TIMER_NAME);
IF tm_name = 'TIMER_y' THEN

142)  Can I execute dynamic SQL from Forms?

Use the FORMS_DDL built-in or call the DBMS_SQL database package from Forms.

Ex: FORMS_DDL('INSERT INTO Y VALUES (' || col_list || ')');
Just note that FORMS_DDL will force an implicit COMMIT and may de-synchronize the Oracle Forms
COMMIT mechanism.

143)  How can I generate all my forms in a batch?

@echo off
@echo. +----------------------------------------------------------
@echo. +----------------------------------------------------------
@echo. |
@echo. | Create runtime FMXs from source FMBs
@echo. | Will convert ALL of the fmbs in the current direcotry
@echo. | Usage : FMXALL.BAT username/password@connect string
@echo. |
@echo. +----------------------------------------------------------
@echo. Username/Password@connect_string = %1

IF %1 == "" GOTO END

@echo Removing old FMX files
del *.fmx

@echo Creating the new FMX files
rem Change f45gen32 to f45gen if in 16 bit environment.
FOR %%F in (*.fmb) DO start /w f45gen32 userid=%1 batch=y module=%%F

@echo Done!!! Remember to move the FMX files into your runtime directory.


144)  How can I run a form on Unix?

You need to design your form on your workstation. FTP or copy the Forms's FMB file to the Unix box.   If you generate for a terminal environment (character based), the syntax is:

f45gen USERID=userid/passwd@db_name MODULE_TYPE=FORM MODULE=module_name

If you want to generate a Library file, replace FORM with LIBRARY. Use f45genm to generate your form in a Motif environment.

Use the "f45run" command to run your form.

145)  How can I change the mouse pointer in forms?

The SET_APPLICATION_PROPERTY build-in in Oracle Forms allow you to change the mouse pointer.


146)  Can you tell me a more easier way to put repeating frame around some fields?

You have two options. First, you can place the new repeating frame in the correct place and then use the techniques shown above in the "I moved this field but am still getting a frequency error" to reassign the fields into the new frame. There is also a second choice (which can also be used as a solution to the above). Go ahead and draw the new frame around the fields you want to have placed in it. Now if you try to click on one of the fields you will not be able to as they are fully covered by the new frame. Now go to the "Arrange" menu. You will find the options Send to back, bring to front, move forwards, move backwards. These are used to alter an object position in the Reports layer ordering. You use the "send backwards" option to move the frame backwards until all of the fields have popped to the front and are now enclosed in it. Oracle reassigns the new repeating frame as each object's parent as they pop to the front.

Note that you can only move an object back and forth amongst it's siblings. You cannot set it back below it's parent, nor in front of it's children. This means that once an object has popped to the front and had a reassignment of parent, you cannot move it back using these tools.

147)  what is a schema?
It is a logical grouping of database objects based on the user that owns the object.


1.      Though I set the page size to 11x8.5, but the printer still prints in portrait?

There is a another variable in the system parameters section under the data model in the object navigator called orientation. This sets the printer orientation. Oracle starts by setting it to "default" which means that no matter how you set the page size, the user's default printer setup will be used. You can also set it to either "Landscape" or "Portrait" to force the printer orientation no matter what the user has set as default.

2.      Though I moved a field into that repeating frame, but I'm still getting a "frequency below it's group" error?

Moving fields around does not change what enclosing object is considered it's parent group. Oracle carefully remembers what repeating frame a field was originally placed in and assigns that as it's parent. If you then reference a column further down the line of the query structure it will return that error. If you are not exactly sure which repeating frame a field belongs to, try dragging it out of all of them. Whichever frame will not allow it to escape is it's parent. To change a field's parent, first click on the lock button on the speed button bar. It should now look like an unlocked padlock. Now all of the fields on the layout can be repositioned regardless of their original parent items. When you are satisfied with the repositioning click the lock button again to lock the layout. Oracle will parse the layout and assumes that any item fully enclosed in a repeating frame is a child object of that frame. This can be confirmed again by trying to drag an object out of it's parent. (Cntrl - Z or edit..undo will put it back where it came from) Sometimes, for unknown and mysterious reasons, this method does not work. The alternative in this case is to highlight the field (or fields), cut it (cntrl-x), and then paste it into the desired frame. The paste does not initially set it into the right frame, but if you drag and drop it there before clicking on any other objects, and then click on something else, Oracle will usually figure what your intent was and assign the object(s) as a child of that frame. This is my preferred method of changing a field's parent as it works much more consistently then the unlock/lock method. One note though, if you are reassigning a group of fields, make sure the frame you are going to move them into is large enough to accept the whole group at once before you do the cut/paste. If you do the paste and then try to grow the frame to fit, you will have to cut and paste again. Once you de-select an object that has just been pasted, Oracle will assign it as a child of whatever it is in at the time. If this technique also fails, you are probably going to have to delete and then recreate the objects within the desired frame. If the object has triggers attached, save yourself some typing by creating the new object in the right frame, copying over the trigger code, and then deleting the old object .

3.      Only a part of the row goes to the next page and not all of it, Why is it so?

This is due to the way the scan works when Oracle is parsing the layout. If the tops of all
the fields in a row are aligned and the fields are all of the same height and font, they should all stay together. I suspect, however, that Reports bases it's decision on the printed size rather than the field size you define to determine which objects are too large and must be shifted to the next page. This means that even if you set two fields top-aligned with the same height and font but one of them is bolded, the bolded field could get shifted to the next page due to it's bigger footprint. The solution is to put the whole row into a regular frame which is page protected

4.      What does the 'Print condition' do?

The print condition type First, All, All but first, Last, All but last refer to the frequency with which you want to appear based upon the setting of the print condition object. A print condition object of Enclosing Object is whichever object encloses the current object (could be the parent or a frame within the parent), while Anchoring Object is the parent object (unless you have explicitly anchored the object in which case it is the object to which it is anchored). The key here is that this is about the pages on which the Print Condition Object appears, not the current object. Oracle views First as the first page on which any part of the Print Condition Object is printed, likewise Last is the last page on which any part of the Print Condition Object is printed. For objects inside a repeating frame, this condition is re-evaluated for each instance of the frame

5.      Can I highlight and change all the format masks and print conditions of a bunch of fields all at once?

You can. If you highlight a bunch of objects and then right click and select "properties..", Oracle gives you a stacked set of the individual properties forms for each of the selected objects. While this may be useful for some things, it requires changing values individually for each object. However, instead you can select the group of fields and then select "Common properties" from the "Tools" menu which will allow you to set the format mask , print conditions etc. for the whole set of objects at once.

6.      How do I change the printed value of a field at runtime?

Triggers are intended to simply provide a true or false return value to determine whether an object should be printed. It is generally not allowed to change any values held in the cursor, make changes to the database, or change the value of it's objects value. That being said, there is a highly unpublicized method of doing just that using the SRW.Set_Field_Char procedure. The syntax is SRW.Set_Field_char(0,) and the output of the object that the current trigger is attached to will be replaced by . There are also SRW.set_fileld_num, and SRW.set_field_date for numeric or date fields.  While these options do work, they should only be used if a suitable NVL or DECODE statement in the original query is not possible as they are much, much slower to run. Also, note that this change of value only applies to the formatted output. It does not change the value held in the cursor and so can not be used for evaluating summary totals.

7.      The data modal defines only data and its hierarchy (True)

8.      Oracle reports create one database column for each column/expression in the select list of a query (True)

9.      You cannon create your own columns to perform computations (false)

10.  Master / detail data models are very similar to break report data models (True)

11.  Queries are generally linked via a common column (True)

12.  Oracle reports window displays report output is Previews

13.  A layout editor used fasten edge of one object to an edge of another object ensuring that they maintain their relative position is a Anchor

14.  Product control break report, Product matrix reports, Summarize data at intermediate levels

15.  A column whose value you set via formula columns is Placeholder column

16.  The system parameter which refers to the type of device to which to send the report output is DESTYPE

17.  External Quries, PL/SQL Libraries and Reports are three types of modules in Oracle reports

18.  A data module object used to define a master/detail relationship between a group and a query is called a data link.

19.  The file extension .rdf stands for Report definition file

20.  There are two types of parameters system and user-created

21.  A Break report data model is created using one query and atleast two groups

22.  Repeated frames can enclose, or surround, and layour object,excluding other repeating frames (false)

23.  Frames do not have print direction, as do repeating frames (True)

24.  You cannot create additional default layouts without disturbing the existing one in the layout editors

25.  Oracle reports supplies six default tabular layout styles (True)

26.  Using a user-created group filter rather than a packaged filter allows you to parameterize your cutoff values (true)

27.  Movement of a frame or repeating moves all objects enclosed in it, this can be overridden by switching off confine mode

28.  A filter created by writing Pl/SQL code for the condition is called last filter

29.  A matrix report must have at least 4 groups

30.  Any processing that will affect the data retrieved by the report should be performed in which of the following triggers After form

31.  SRW is an oracle reports package

32.  Repeating frames print once for each record of a group and control record-level-formatting

33.  Flex mode determines whether the parent object pushes to accommodate any child object being moved within it either vertically or horizontally to expand or shrink.

34.  Anchors determines the relative positioning of all objects in the report output

35.  There are two types of anchors Implicit and explicit anchors

36.  A group filter allows you to choose which record you want to process for on group in the data model.

37.  How many types of columns are there and what are they
Formula columns : For doing mathematical calculations and returning one value
Summary Columns : For doing summary calculations such as summations etc.
Place holder Columns : These columns are useful for storing the value in a variable

38.  Can u have more than one layout in report
It is possible to have more than one layout in a report by using the additional   layout option in the layout editor.

Can u run the report with out a parameter form

Yes it is possible to run the report without parameter form by setting the PARAM value to Null

39.  What is the lock option in reports layout
By using the lock option we cannot move the fields in the layout editor outside the frame. This is useful for maintaining the fields .

40.  What is Flex
Flex is the property of moving the related fields together by setting the flex property on

Are there database views of information contained in the Repository? If so, can I use these Repository views to generate custom reports?
Yes.  The Enterprise Manger Configuration Assistant creates repository views whenever a new repository is created. These views are created on top of the repository tables. They enable users to view information from the repository without the danger of manipulating data the wrong way. Release 9i repository views are documented in an Appendix of the Enterprise Manager Administrator's Guide.
Q:  I've heard people talk of some new reporting capabilities in Enterprise Manager 9i.  What's that all about?
Enterprise Manager 9i offers comprehensive reporting capabilities by providing a rich set of pre-defined reports out-of-the-box for enabling users to quickly view and analyze information about their managed systems. Pre-defined reports, such as Availability by Service and Outstanding Alerts, identify the current status of the environment. Other pre-defined reports, such as Events in Library and Database Instance Configuration, detail the setup and configuration of the environment. These reports are accessible from a single location in the Console or from a central reporting website. In addition, with a Diagnostics Pack license, administrators also have access to Application Health Assessment reports, which show performance in real time, performance history, and project trends into the future. These additional reports are generated from Diagnostics Pack applications, which post reports directly to the Enterprise Manager Reporting Web Site. 
Furthermore, Enterprise Manager release 9i provides a consistent user interface and the underlying "framework" for customizing, scheduling, and publishing reports to the Enterprise Manager Reporting Web Site. This new functionality - central to all Enterprise Manager applications - allows Administrators to create user-defined reports to satisfy unique business needs; publish reports to a central web site for general viewing, and to specify whether published reports should be generated on demand for constant access to up-to-date information or on a specific schedule to run time-consuming and/or CPU-intensive reports during non-peak hours. 
Q: In the Console's Navigator tree, I see something called Report Definitions.  What is a report definition?
A key concept to understand is that all reports are generated from report definitions. An administrator creates a report definition that generates the desired report. A report definition defines what type of report is generated, its content and appearance, or whether it is published on the reporting website. It also includes various attributes such as an optional schedule. A report is uniquely identified by its definition name. Specifically, a report definition allows you to define the following attributes: 
  • Definition Name  
  • Owner  
  • Report type  
  • Report content  
  • When a report should be generated  
By default, Enterprise Manager supplies a wide array of predefined report definitions, allowing you to generate reports without having to create new report definitions. 
Q: Can I create my own custom reports?
Yes. You can create a user-defined report by selecting ?Create Report?? from the Object main menu.  From the Create Report dialog, you can:
  • Use SQL queries to specify what data your reports should contain  
  • Specify how data should be displayed 
    • In a table or chart (pie, bar or line) 
    • Vertical or horizontal orientation 
  • Include GIF images in reports 
  • Customize reports further with HTML and JavaScript functions 
  • Specify whether the report should be published to the reporting website 
    • Generated on demand  
    • Scheduled at predefined intervals 
For details on how to create user-defined reports, refer to the Oracle Enterprise Manager Administrators Guide.
Q: As I create a custom report, I must specify report elements.  What is a report element?
Report elements are the building blocks of any report definition, and by extension, the generated report itself. By selecting and ordering report elements, you construct the format and content of your report. Enterprise Manager provides three general categories of report elements: 
  • HTML: Customize the HTML for a generated report and call SQL and Javascript functions for additional row-level processing.  
  • Queries: Specify SQL queries to generate charts or tables.  
  • Service Levels: Specify time-based statistics for monitored services.  
The actual elements that are listed depend on both the report type selected and the element category. 
Q:  As I create a custom report, I must choose between 'Creating individual reports for all targets of a selected type' and 'Creating a single report for preselected targets'.  What is the difference between these two?
Reports generated using the former method (i.e. creating individual reports for all targets of a selected type) do not require that you choose specific targets before publishing or saving the report. In this situation, the administrator who views the report chooses the target(s). For example, a super administrator wants to publish a report listing the number of active jobs submitted against a target. They would like this report to be used by other administrators as a helpful utility to allow them to determine the job loads for targets they are managing. Since there are over 560 targets in their managed environment, it is not practical to generate a report for all 560 targets. Instead, the super administrator specifies in the report definition that an individual report be created for all targets of a selected type and then publishes the report to the Enterprise Manager reporting website. A regular administrator goes to the reporting website to find out how many jobs are active for the five targets they are managing. They click on the hyperlink to generate a report. They are then prompted by the system to specify the exact targets they wish to run the report against. They choose the targets and the report is generated for those targets only. 
Reports generated using the latter method (i.e. creating a single report for preselected targets) allows the report owner to select specific targets in the report definition before generating the report. Hence, the administrator who clicks on that report's hyperlink in the reporting website will see a report for all targets chosen by the owner of the report definition. 
Q:  When should I publish a report generated on demand (i.e. whenever a web page is viewed)  versus scheduled at a predefined interval?
You should choose to publish a report on demand if it is critical that the reporting website always contains up-to-date information.  This on demand capability allows end users, via the reporting website, to generate reports real-time.  With on demand reports, users know that they are viewing current information on their monitored enterprise.  You should choose to publish a report on a scheduled basis if it isn?t critical that the reporting website remain up-to-date.  In addition, scheduling a report to run on a regular or repeated schedule allows administrators to run time- and/or CPU-expensive reports during non-business hours.
Q: How do I configure the Enterprise Manager Reporting Web Site?
When you install the Management Server, a preconfigured Oracle HTTP Server is automatically installed and started for you, and this HTTP Server will serve as the reporting web server (this is the same web server as is used for browser-based Enterprise Manager). In addition, reporting functionality is also automatically installed. However, there are additional, manual steps you must perform in order to access the Enterprise Manager Reporting Web site.
Steps to perform from the Console: 
1) Change the default password of oem_temp for EM administrator REPORTS_USER. 

2) If you want to see database reports from the central Enterprise Manager Reporting Web Site, then you need to set preferred credentials for REPORTS_USER.  Any future database reports that other EM administrators create will also have to set their own database preferred credentials. 

3) If you want to see worthwhile info in the Service Level Reports, then you need to register target up/down events for the corresponding targets you want valuable SLRs against. 

4) If you want to see a Trending tab with trending information on the Reporting Web Site, you will need to have collections and affiliated analyses available from Capacity Planner.  If you don't have these, the Trending tab won't appear.

Steps to perform from OMS/HTTP Server machine: 

1) Ensure OMS process is started. 

2) If the machine is UNIX:
a)  Execute the xhost +<host> command on the X Window machine where you are accessing reports from a web browser.  For example, if your reporting web server is running on host servlet1 and the X Window is running on host xserv1, then execute the following command on xserv1:   xhost +servlet1 

b) If the machine is UNIX, specify the DISPLAY environment variable with the X Window machine name on the host where the reporting web server is running.  For  example, if your reporting web server is running on host servlet1 and the X Window is running on host xserv1, then execute the following command on servlet1: 
               if the command shell is C Shell:  setenv DISPLAY xserv1:0.0 
               if the command shell is B or K Shell:  DISPLAY=xwerv1:0.0; export DISPLAY 
c)  Verify that the X Window environment has been configured properly. For example, execute the xclock command.  If you see the xclock window on your X Server (i.e. reporting web server), your X Window environment has been configured properly. 
3)  Stop and restart the Oracle HTTP Server via the command apachectl stop and apachectl start. 

4) Review the oem.conf file located in $ORACLE_HOME/oem_webstage/ directory, and note the ServerName directive value. 

5) From the OMS/HTTP Server $ORACLE_HOME/bin directory, run oemctl configure rws.  You will be prompted to supply the following: 
    • Webserver host name - specify the same name EXACTLY as what is used as the ServerName directive in oem.conf from Step 2 above. 
    • Webserver port number - default is 3339. 
    • OMS host name - specify the same name EXACLTY as what is used as the ServerName directive in oem.conf from Step 2 above. 
    • Password for REPORTS_USER - password specified cannot be oem_temp; you must modify the password as indicated in Step 1 in  Steps to perform from the Console. 
    • Whether you would like to specify an alternate location for historical data (default is no, store historical data in OMS repository), and if yes, the username, password, and service alias for the alternate database. 
Access Reporting Web Site URL: 
1) Enter the URL http://<webserver host name>:3339 
2) Click on Access Reports button

Q:  What is the URL to access the Enterprise Manager Reporting Web Site?

After configuring the Reporting Web Site, you can access its home page directly via the URL http://<webserver host name>:3339/em/OEMNavigationServlet.  You can also access the Reporting Web Site Home Page through the home page or index page of browser-based Enterprise Manager (i.e. emwebsite.html) via the URL http//<webserver hostname>:3339 and then clicking on the Access Reports button.
Q:  Can I run the Enterprise Manager Reporting Web Site on a port other than the default 3339?
Yes.  You must perform the following manual configuration steps for this to work:
1) Open $OH/oem_webstage/oem.conf and replace all 3339 with whatever port you would like to use.
2) Run ?oemctl configure rws? again and enter the new port number when prompted.
3) Stop and start the Oracle HTTP Server and Oracle Management Server.

Q:  What should I do if when accessing Enterprise Manager reports from a web browser, I see a blank page or the following error:  "Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, you@your.address and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log."?
You should review the Oracle HTTP Server error.log file for the following exception:  "Xlib: Client is not authorized to connect to Server java.lang.NoClassDefFoundError: sun/awt/motif/MToolkit".  The Oracle HTTP Server log file is located in the $ORACLE_HOME/Apache/Apache/logs/ directory.  If this exception occurred, perform the following steps to fix the problem: 
(1)  Execute the xhost +<host> command on the X Window machine where you are accessing reports from a web browser.  For example, if your reporting web server is running on host servlet1 and the X Window is running on host xserv1, then execute the following command on xserv1:   xhost +servlet1 

(2)  Specify the DISPLAY environment variable with the X Window machine name on the host where the reporting web server is running.  For example, if your reporting web server is running on host servlet1 and the X Window is running on host xserv1, then execute the following command on servlet1: 

          if the command shell is C Shell:  setenv DISPLAY xserv1:0.0 
          if the command shell is B or K Shell:  DISPLAY=xwerv1:0.0; export DISPLAY 

(3)  Verify that the X Window environment has been configured properly. For example, execute the xclock command.  If you see the xclock window on your X Server (i.e. reporting web server), your X Window environment has been configured properly. 

(4)  Restart the Oracle HTTP Server via the command apachectl restart. 

If the exception indicated above doesn't occur in the log file, then make sure there is no other Oracle HTTP Server and JServ process running which may be reserving the default ports. If there is an Oracle HTTP Server and JServ already running, you will have to use a different port for the current Oracle HTTP Server and JServ configuration. See the next Q&A to see how you can configure JServ to run on a port other than the default. To modify the default Oracle HTTP Server port, edit the ?port? attribute in $OH/Apache/Apache/conf/httpd.conf.
Q:  Can non-default port number be used for JServ for Enterprise Manager Reporting?
Yes.  You must perform the following manual configuration steps for this to work:
(1)  Modify the file located in $ORACLE_HOME/Apache/JServ/etc/ directory by changing the port property.

(2)  Modify the jserv.conf file located in $ORACLE_HOME/Apache/JServ/etc/ directory by changing the ApJServDefaultPort property.

(3)  Modify the oem.conf file located in $OH/oem_webstage/ directory to reflect the new port by changing the line 
"ApJServMount /em  /oemreporting"

"ApJServMount /em  apjv12://localhost:<new port number>/oemreporting"
where <new port number > is the new port JServ is listening on.  For example, "ApJServMount /em  ajpv12://localhost:18007/oemreporting"
Q:  I see a cryptic error - something about the Management Server is using a different webserver for reporting services - when accessing the Enterprise Manager Reporting Web Site .  What do I do?
If after installing the Oracle HTTP Server you manually edit the ServerName property in its oem.conf file and then access the Enterprise Manager Reporting Web Site, you may encounter the following error: 
     "The management server <hostname> is using a different webserver <hostname> for Enterprise Manager reporting services. This webserver <hostname> will be deconfigured and will no longer support Enterprise Manager reporting. To access Enterprise Manager Reports in the future, please use the webserver <hostname>." 
To fix this problem, edit the oem.conf file located in the $ORACLE_HOME/oem_webstage/ directory by setting the ServerName property to the hostname of the machine running the Oracle HTTP Server for the Enterprise Manager Reporting Web Site.  For example, if you've supplied as the OMS and webserver name for oemctl configure rws, then you need to set ServerName property to in oem.conf.
Q:  Why must xhost be executed for reporting to function properly?
The problem is the servlet requires that xhost+ has been activated on the machine (its a java restriction when generating graphics). For more information, go to <Note:220170.1>
Q:  I see garbled, non-legible text in the Enterprise Manager Reporting Web Site in a non-English environment from Microsoft Internet Explorer release 5.0.  How can I fix this?
This is bug 1773959.  To workaround this problem, view the reports from Microsoft Internet Explorer release 5.5 or from Netscape Navigator release 4.7. 
Q:  I see garbled, non-legible characters in the Enterprise Manager Reporting Web Site in a Japanese or Simplified Chinese environment.  What do I do?
This is bug 1701315.  To fix this problem, perform the following steps: 
(1) Add the following lines to the file located in the $ORACLE_HOME/Apache/Jserv/etc/ directory: 

             # An environment name with value copied from caller to Java Virtual Machine 
             # Syntax: wrapper.env.copy=[name] (String) 
             # Default: NONE 

(2) Define the environment variables NLS_LANG and LANG with proper values.  For example, if you are using a Japanese environment, specify Japanese_Japan.JA16EUC for NLS_LANG and ja for LANG. 
(3) Restart the Oracle HTTP Server via the command apachectl restart.
Q:  I see the following exception in $OH/Apache/Apache/logs/error_log file:   "Probably the process is hanging and can not respond.  In most cases, the JVM is either heavily loaded or doing GC. Please increase the JVM timeout value or decrease the JVM heap size to reduce the time of doing GC. The process is about to be restarted." What do I do?
This is bug 2260896.  Try doing the following: 
1) Increase the time out value by updating the following line in $OH/Apache/Jserv/etc/jserv.conf :
ApJServVMTimeout timeoutvalue 
This directive is used to set the timeout for pinging, startup, etc. You could try setting this value to be something around 30 or 35. 
2) Set the java heap size by adding/updating the following lines in :
3) Restart Oracle HTTP Server. 
Q:  When I try to schedule the generation of a report, the 'trigger report generation' job fails with the following error: "http://dbtest01:3339/em/OEMGenerationServletreportName=Large_Tables&triggeringMode=fromJob can't find package http".  How can I fix this?
Most likely, you are trying to schedule the job against a non supported version of the Intelligent Agent.  To schedule a report job, you must use a 9i Agent.

Q:  When accessing an Enterprise Manager Reporting Web Site from URL through a firewall, all the image gifs in the Reporting Home Page are missing. How do I fix this?
This is bug 2246104.  To fix the problem, perform the following steps:
1) In $OH/oem_webstage/oem.conf, modify directive ?ServerName? such that it has the domain name along with it. For example ?ServerName rather than just ?ServerName xxx?
2) Stop and restart Oracle HTTP Server.
Q:  I'm not able to access any Trending reports on my Enterprise Manager Reporting Web Site.  Why not?
The problem is usually that there is no historical data available for the reports (charts) that they are selecting.  If they initiate collection of the appropriate data the report will work.  They can verify this by trying to bring up the same chart from within Capacity Planner.  If they can view the chart from Capacity Planner, they should be able to view it from the Reporting Web Site.
Q:  Can I publish user-defined charts from Performance Manager to the central Reporting Web Site?
No.  This is not currently supported.  However, system-defined charts are automatically published to the Reporting Web Site.
Q:  Can I use a different web server other than the default Apache web server that gets installed for running the Enterprise Manager Reporting Web Site?
Q:  I have a separate repository in which to store my collections.  Will this be a problem for Enterprise Manager Reporting Release 9.2?
No.  Beginning with Release 9.2, you can configure reporting such that it is aware of the historical database repository.  You do so by running the emctl configure rws script on the machine where the Management Server and reporting web server are installed. This script will prompt if you use a separate repository for your data collections, and if so what the connection details are for that database.
This capability was not available in release 9.0.1.
Q:  Is there away to customize the headers/logos of reports to some corporate identity?
Yes.  You just need to replace the oem.gif file located in the $ORACLE_HOME/oem_webstage/sysman/reporting/gif/ directory on the reporting webserver machine.  Because all reports look for oem.gif file, you will have to keep the same file name (oem.gif,) but just use your own corporate logo or whatever instead.  Of course, the reporting website may look a bit strange if the corporate logo isn't the same size as the original Enterprise Manager logo....may be too much white space or something.  Remember to clean the browser's cache in order to see the new image since the oem.gif image is cached. 
Q:  I don't really see any useful information in the Service Level Reports available out-of-the-box.  Why not?
You need to have up/down events registered against the targets for which you want Service Level Reports.
Note:  The node up/down event is not used in calculating availability for the Service Level Reports for targets other than nodes.
Q:  My node was down for a day last week, but the Service Level Report didn't indicate this.  Why not?
Service Level Reports will not indicate downtime for a node.  If a node is down, the Intelligent Agent cannot be contacted; therefore, the node's status is unknown. 
Note:  If you have a group which includes a node, database, listener, and all three are detected as down then the Overall Availability for the group would be down because downtime takes higher precedence then unknown.
Q:  I have several targets with command-line blackouts specified.  Are blackouts represented in the Service Level Reports?
No.  Downtime does not take into account command line blackouts at the Intelligent Agent side because they are not stored in the repository. 
Q:  Can I create a single chart in Capacity Planner that shows metrics across a number of systems, and then publish that to the Reporting Web Site?
Yes.  You can create a single chart in Capacity Planner that shows a metric (or metrics) across a number of systems, and they would not necessarily have to be the same target type either, e.g. you can mix hosts and databases.  If you go into Capacity Planner and create a chart by selecting a metric for one target, and then selecting a metric for a different target, you can use the "Add to Chart" button.  The new charts will be automatically published.
Note:  You can't however, create a custom report of this type for realtime data through Performance Manager. 
Q:  How can I restrict access to the Enterprise Manager Reporting Web Site?
By default, anyone who knows the URL to the Reporting Web Site can access it and see all reports published to the Web Site.   However, should you need to restrict access, you should be able to do so via basic authentication in the Oracle HTTP Server; however, no such testing has been performed by the development/QA teams, but there should be no technical reason for why basic authentication in Oracle HTTP Server shouldn't work.  We would recommend to take backups of $OH/oem_webstage/oem.conf and other HTTP Server configuration files before making such changes. 
To restrict access to the Reporting Web Site Homepage, perform the following:

1)  CD $ORACLE_HOME/Apache/Apache/bin 
2)  Enter the command: htpasswd -c <new user> 
3)  Enter the password for this user when prompted 
4)  Edit $ORACLE_HOME/oem_webstage/oem.conf by adding the following text above </VirtualHost> 
 <Location /em/> 
    AuthName "the reporting framework" 
    AuthType Basic 
    AuthUserFile "/usr/orasoft/product/9.0.1/Apache/Apache/bin/" 
    Require valid-user 
5)  Stop and restart Oracle HTTP Server

Now when you access the Reporting Web Site Homepage, you will be prompted for a username and password.

Q:  I don't want users to be able to refresh the Performance reports every 30 seconds.  Is there a way to remove this capability?
No.  The Performance reports have the refresh capability by default and there is no way to remove the refresh links within the reports.  However, users can choose the 'None' option so that the report doesn't automatically refresh.
Q:  How can I enable HTTPS with the Enterprise Manager Reporting Web Site (using port 3339)?
1)  Edit the oem.conf file located in the $ORACLE_HOME/oem_webstage/ directory by adding the following lines between the <VirtualHost_default_:3339> and </VirtualHost> section: 
SSLEngine on 
SSLCertificateFile ... 
SSLCertificateKey ...

2)  Edit the httpd.conf file located in the $ORACLE_HOME/Apache/Apache/conf/ directory by commenting out the <VirtualHost _default_:443> section. In fact you may want to comment out all references to 443 in this file. 
3)  Restart using apachectl startssl 
Q:  I get the following exception in Jserv.log and reporting hangs on my UNIX machine. What should I do?
OEMDirectoryServlet/java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName0(Compiled Code)
 at java.lang.Class.forName(Compiled Code)
 at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(
 at$ Source)
 at Code)

This is a problem with your Xserver configuration. Follow these steps:
a)  Execute the xhost +<host> command on the X Window machine where you are accessing reports from a web browser.  For example, if your reporting web server is running on host servlet1 and the X Window is running on host xserv1, then execute the following command on xserv1:  xhost +servlet1 
b) If the machine is UNIX, specify the DISPLAY environment variable with the X Window machine name on the host where the reporting web server is running.  For example, if your reporting web server is running on host servlet1 and the X Window is running on host xserv1, then execute the following command on servlet1: 
               if the command shell is C Shell:  setenv DISPLAY xserv1:0.0 
               if the command shell is B or K Shell:  DISPLAY=xwerv1:0.0; export DISPLAY 
c)  Verify that the X Window environment has been configured properly. For example, execute the xclock command.  If you see the xclock window on your X Server (i.e. reporting web server), your X Window environment has been configured properly. 
d)  Stop and restart the Oracle HTTP Server via the command apachectl stop and apachectl start. 
Q:  I get the following exception in the error_log file and reporting does not seem to work on my UNIX machine. What should I do?

There may be another Apache running on the box,  so ports may already be in use.   There are two important ports:  JServ port (default 8007) and the Enterprise Manager listen port (default 3339).  If there is another Apache running on the machine then it probably means that JServ is already listening on port 8007 and Enterprise Manager listening on port 3339.  So starting another Apache gives this type of error.  So you may have to tweak one or more of these ports to get both Apaches up and running. 
To change the JServ port number, you must perform the following manual configuration steps:
(1)  Modify the file located in $ORACLE_HOME/Apache/JServ/etc/ directory by changing the port property.

(2)  Modify the jserv.conf file located in $ORACLE_HOME/Apache/JServ/etc/ directory by changing the ApJServDefaultPort property.

(3)  Modify the oem.conf file located in $OH/oem_webstage/ directory to reflect the new port by changing the line 
"ApJServMount /em  /oemreporting"

"ApJServMount /em  ajpv12://localhost:<new port number>/oemreporting"
where <new port number > is the new port JServ is listening on.  For example, "ApJServMount /em  ajpv12://localhost:18007/oemreporting"
To change the Enterprise Manager port number, you must perform the following manual configuration steps:
1) Open $OH/oem_webstage/oem.conf and replace all 3339 with whatever port you would like to use.
2) Run ?oemctl configure rws? again and enter the new port number when prompted.
3) Stop and start the Oracle HTTP Server and Oracle Management Server.

Q:  When a node experiences an outage, the Service Availability reports show the outage as "unknown time", not downtime.  Why is this?
This is consistent with the node's state that you will see in the EM Console or Reporting Home Page.   This is due to the fact that node availability is determined by pinging the Agent, not the node.  When the Agent is unreachable the node is in an unknown state.  There may be a network latency or outage or the node may be down.
Q:  What determines the value of the timezone that is displayed on reports?
The Oracle HTTP Server running on the middle tier.  If you want to change the timezone used, modify the file located in the $ORACLE_HOME/Apache/Jserv/etc/ directory.  Specify the following:
For example, wrapper.bin.parameters=-Duser.timezone=GMT

In some cases, this does not solve the issue and the following is needed
1.Set a TZ environment variable to the proper time. For example:. 
TZ = PDT+9
See Note:131207.1 - How to Set Unix Environment Variables
<P>2.Add the following in the file in the $ORACLE_HOME/Apache/Jserv/etc directory:
wrapper.env.copy=TZ In the file, there is already a similar DISPLAY line. Just add the TZ line directly afterwards. For example: wrapper.env.copy=DISPLAY wrapper.env.copy=TZ wrapper.bin.parameters=-Duser.timezone=GMT
Q:  I read this FAQ on reporting, and am still not able to get the Enterprise Manager Reporting Web Site to work. What should I do?
Send the log files to customer support. Here is what you need to do: 
1)  Stop the Oracle HTTP Server.
2)  Stop the Oracle Management Server.
3)  Enable tracing on reporting by adding the following 3 lines in the $OH/sysman/config/ file.  Note:  The values for TRACING.ENABLED and LOGGING.ENABLED are case sensitive and must be lowercase. 

4)  Remove the following log files:
5)  Start the Oracle Management Server.
6)  Start the Oracle HTTP Server.
7)  Reproduce the problems you are experiencing.
8)  Stop the Oracle HTTP Server.
9)  Stop the Oracle Management Server.
10) Send the following five log files to support: 


No comments:

Post a Comment

Best Blogger TipsGet Flower Effect