<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8332897805510780163</id><updated>2012-02-06T12:19:12.427+06:00</updated><category term='Usefull code to get new value of select one Radio by ValueChangeListener Bean'/><category term='OracleBI'/><category term='Oracle Fusion Middleware'/><category term='Rendering BLOB Image in ADF 11g JSP pages'/><category term='Oracle Publisher 11g'/><category term='oracle forms'/><category term='ERP'/><category term='My Learning-Iron Speed Designer'/><category term='oracle DB lock'/><category term='Oracle'/><category term='accounting software'/><category term='outlook automation/crm'/><title type='text'>ZAKIR's Blog</title><subtitle type='html'>About 
Business Analysis: ERP solutions, Software Implementations, Technology Updates, Programming: Java/ADF11g,Oracle JDeveloper11g, Oracle SOA suite, Oracle Multimedia,Oracle DICOM,ASP.net,C#,Iron Speed Designer.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-1286571836370706417</id><published>2012-02-06T12:09:00.003+06:00</published><updated>2012-02-06T12:19:12.440+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle forms'/><title type='text'>WebUtil: How to Read an Excel file into an Oracle Form</title><content type='html'>Description of included files (listed below):&lt;br /&gt;Read Excel to Forms.dox – This document in Microsoft Word 2003 format&lt;br /&gt;create_planets.sql – script to create the table used by this sample code&lt;br /&gt;planets_ole_excel_read.fmb – sample form which demonstrates the concept&lt;br /&gt;planets.xls – Excel (version 2003) sample spreadsheet&lt;br /&gt; &lt;br /&gt;Setup steps:&lt;br /&gt;Log into your database and run the “create_planets.sql” script&lt;br /&gt;Ensure your environment is properly configured to run WebUtil.  This document does not cover this configuration – there is plenty of information available in the OTN forums as well on the Internet that covers configuring WebUtil so I will not included it here.&lt;br /&gt;Place “planets.xls’ some place on the client computer.  I have modified Oracle’s original form to display a “File Select dialog” rather than hard code the file name and location in the code as Oracle demo did.&lt;br /&gt;Ensure you have configured the Forms Builder to allow running a form from the Forms Builder.  This document does not cover how to perform this configuration.&lt;br /&gt;Run the form from the Forms Builder or on the client computer and push the “Read from Excel” button.  Choose the ‘planets.xls’ file from the “Select Client filename to Open” dialog and the data will be read from the Excel spreadsheet into the form.  You can then push the save button in the toolbar to commit the data to the table.&lt;br /&gt;Here is the code behind the “Read from Excel” button with some explanatory comments:&lt;br /&gt;DECLARE&lt;br /&gt;   application    Client_OLE2.Obj_Type;&lt;br /&gt;   workbooks      Client_OLE2.Obj_Type;&lt;br /&gt;   workbook       Client_OLE2.Obj_Type;&lt;br /&gt;   worksheets     Client_OLE2.Obj_Type;&lt;br /&gt;   worksheet      Client_OLE2.Obj_Type;&lt;br /&gt;   worksheet2     Client_OLE2.Obj_Type;  &lt;br /&gt;   cell           Client_OLE2.OBJ_TYPE;&lt;br /&gt;   args           Client_OLE2.OBJ_TYPE;&lt;br /&gt;   cell_value     varchar2(100);&lt;br /&gt;   num_wrkshts    NUMBER;&lt;br /&gt;   wksht_name     VARCHAR2(250);&lt;br /&gt;   eod            Boolean := false;&lt;br /&gt;   j              integer := 1;&lt;br /&gt;   v_fName        VARCHAR2(250);&lt;br /&gt;BEGIN&lt;br /&gt;   -- Get the name of the file to open&lt;br /&gt;   --v_fName :=   &lt;br /&gt;     'D:\MyDevelopment\Forms\Samples\WebUtil\Read_Excel\planets3.xls';&lt;br /&gt;   -- My Way: Use a File Open Dialog to let the user select the file.&lt;br /&gt;   v_fName := WebUtil_File.File_Open_Dialog(&lt;br /&gt;                  directory_name =&gt; 'C:\'&lt;br /&gt;                  ,File_Filter =&gt; null&lt;br /&gt;                  ,Title =&gt; 'Select Client filename to Open.'&lt;br /&gt;            );&lt;br /&gt;&lt;br /&gt;   -- Make sure the user selected a file&lt;br /&gt;   IF ( v_fName IS NOT NULL ) THEN&lt;br /&gt;      -- The following sets up communication with the excel spreadsheet&lt;br /&gt;      -- --------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;      -- Open the OLE application&lt;br /&gt;      application := Client_OLE2.create_obj('Excel.Application');&lt;br /&gt;      -- Keep the application hidden&lt;br /&gt;      Client_OLE2.set_property(application,'Visible','false');&lt;br /&gt;     &lt;br /&gt;      workbooks := Client_OLE2.Get_Obj_Property(application, 'Workbooks');&lt;br /&gt;      args := Client_OLE2.CREATE_ARGLIST;&lt;br /&gt;     &lt;br /&gt;      -- Open the selected File&lt;br /&gt;      -- ----------------------&lt;br /&gt;      Client_OLE2.add_arg(args,v_fName);&lt;br /&gt;      workbook := Client_OLE2.GET_OBJ_PROPERTY(workbooks,'Open',args);&lt;br /&gt;      Client_OLE2.destroy_arglist(args);&lt;br /&gt;     &lt;br /&gt;      worksheets := Client_OLE2.GET_OBJ_PROPERTY(workbook, 'Worksheets');&lt;br /&gt;           &lt;br /&gt;      -- Get number of worksheets&lt;br /&gt;      -- ------------------------&lt;br /&gt;      num_wrkshts := Client_OLE2.GET_NUM_PROPERTY(worksheets, 'Count');&lt;br /&gt;      worksheet := Client_OLE2.GET_OBJ_PROPERTY(&lt;br /&gt;                        application,'activesheet');&lt;br /&gt;                       &lt;br /&gt;      --Go to the first record&lt;br /&gt;      go_block('planets');&lt;br /&gt;      first_record;&lt;br /&gt;     &lt;br /&gt;      -- Loop through the Block and create a new row if needed.        &lt;br /&gt;      loop&lt;br /&gt;         If :system.record_status &lt;&gt; 'NEW' then&lt;br /&gt;            create_record;&lt;br /&gt;         end if;&lt;br /&gt; &lt;br /&gt;         -- Exit when the last row of the spreadsheet is reached.      &lt;br /&gt;         exit when eod;&lt;br /&gt;                 &lt;br /&gt;         -- Loop through the spreadsheet and get cell values&lt;br /&gt;         for k in 1..3 loop  --3 fields per record&lt;br /&gt;                              -- You have to know fields there are&lt;br /&gt;            args:= Client_OLE2.create_arglist;&lt;br /&gt;            Client_OLE2.add_arg(args, j);&lt;br /&gt;            Client_OLE2.add_arg(args, k);&lt;br /&gt;            cell:= Client_OLE2.get_obj_property(worksheet, 'Cells', args);&lt;br /&gt;            Client_OLE2.destroy_arglist(args);&lt;br /&gt;            cell_value :=Client_OLE2.get_char_property(cell, 'Value');&lt;br /&gt;     &lt;br /&gt;            -- Check for End of Data…&lt;br /&gt;            if upper(cell_value) = 'EOD' then&lt;br /&gt;                  eod:=true;&lt;br /&gt;                  Message('End of Data');&lt;br /&gt;                  exit;&lt;br /&gt;            end if;&lt;br /&gt;           &lt;br /&gt;            -- Copy the value from Excel to the Forms block item&lt;br /&gt;            -- This is how the Oracle example copied values      &lt;br /&gt;            /*if k =1 then&lt;br /&gt;                  :dept.deptno:=cell_value;&lt;br /&gt;            end if;&lt;br /&gt;           &lt;br /&gt;            if k =2 then&lt;br /&gt;                  :dept.dname:=cell_value;&lt;br /&gt;            end if;&lt;br /&gt;           &lt;br /&gt;            if k =3 then&lt;br /&gt;                  :dept.loc:=cell_value;&lt;br /&gt;            end if;    &lt;br /&gt;            */&lt;br /&gt;     &lt;br /&gt;            -- This is my way; which is more efficient and less code&lt;br /&gt;            copy(cell_value,name_in('system.cursor_item'));&lt;br /&gt;            next_item;&lt;br /&gt;     &lt;br /&gt;         end loop; --for&lt;br /&gt;                 &lt;br /&gt;            j:=j+1;&lt;br /&gt;      end loop;  --main loop&lt;br /&gt;           &lt;br /&gt;      -- Release the Client_OLE2 object handles&lt;br /&gt;      IF (cell IS NOT NULL) THEN&lt;br /&gt;            Client_OLE2.release_obj(cell);&lt;br /&gt;      END IF;&lt;br /&gt;      IF (worksheet IS NOT NULL) THEN&lt;br /&gt;            Client_OLE2.release_obj(worksheet);&lt;br /&gt;      END IF;&lt;br /&gt;      IF (worksheets IS NOT NULL) THEN&lt;br /&gt;            Client_OLE2.release_obj(worksheets);&lt;br /&gt;      END IF;&lt;br /&gt;      IF (worksheet2 IS NOT NULL) THEN&lt;br /&gt;            Client_OLE2.release_obj(worksheet2);&lt;br /&gt;      END IF;&lt;br /&gt;      IF (workbook IS NOT NULL) THEN&lt;br /&gt;            Client_OLE2.release_obj(workbook);&lt;br /&gt;      END IF;&lt;br /&gt;      IF (workbooks IS NOT NULL) THEN&lt;br /&gt;            Client_OLE2.release_obj(workbooks);&lt;br /&gt;      END IF;&lt;br /&gt;      Client_OLE2.invoke(application,'Quit');&lt;br /&gt;      Client_OLE2.release_obj(application);&lt;br /&gt;   ELSE&lt;br /&gt;      Message('No File selected.');&lt;br /&gt;      message(' ');&lt;br /&gt;      RAISE Form_Trigger_Failure;&lt;br /&gt;   END IF;&lt;br /&gt;END;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-1286571836370706417?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://sites.google.com/site/craigsoraclestuff/oracle-forms-webutil/read-excel-into-forms' title='WebUtil: How to Read an Excel file into an Oracle Form'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/1286571836370706417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2012/02/httpssites.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/1286571836370706417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/1286571836370706417'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2012/02/httpssites.html' title='WebUtil: How to Read an Excel file into an Oracle Form'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-2546749014243995426</id><published>2011-10-31T14:13:00.000+06:00</published><updated>2011-10-31T14:13:40.081+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='accounting software'/><title type='text'></title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;iframe src="https://docs.google.com/present/embed?id=d5jf4cz_27grq49w8j&amp;size=l" frameborder="0" width="700" height="559"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-2546749014243995426?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/2546749014243995426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/10/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/2546749014243995426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/2546749014243995426'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/10/blog-post.html' title=''/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-4067003289980615559</id><published>2011-10-02T17:17:00.000+06:00</published><updated>2011-10-02T17:17:33.416+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OracleBI'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Fusion Middleware'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Publisher 11g'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle BI Tutorial - Getting Started with Oracle BI Publisher 11g</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h1 class="obe_title"&gt;&lt;a href="" id="top" name="top"&gt;Getting Started with Oracle BI Publisher  &lt;/a&gt;11&lt;span class="style1"&gt;g&lt;/span&gt;&lt;/h1&gt;&lt;br /&gt;&lt;div id="obe_maintopics" style="display: block;"&gt;This tutorial contains the following sections:&lt;br /&gt;&lt;div class="obe_toc_printview" id="obe_toc"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#s1"&gt;Purpose&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#s2"&gt;Time to Complete&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#s3"&gt;Overview&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#s6"&gt;Prerequisites&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle"&gt;&lt;img alt="expand" onclick="javascript:toggleSubtopics(this);toggleVisible('sub_t1');" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/library/expand.gif" /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t1"&gt; Getting Started with BI Publisher&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr id="sub_t1" style="display: none;"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t1s1"&gt; Logging in to Oracle BI Publisher and Navigating the Home Page&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t1s2"&gt;Browsing the Catalog and Viewing the Reports&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t1s3"&gt;Setting Preferences&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2"&gt;Configuring the Data Sources&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2s1"&gt;Types of Supported Data Sources&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2s2"&gt;Defining a JDBC Connection&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2s3"&gt;Configuring File Data Location&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2s4"&gt;Defining a JNDI (Java Naming and Directory Interface) Connection&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle"&gt;&lt;img alt="expand" onclick="javascript:toggleSubtopics(this);toggleVisible('sub_t3');" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/library/expand.gif" /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t3"&gt; Creating a Data Model &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr id="sub_t3" style="display: none;"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t3s1"&gt;Defining Default Data Source,     and Output Options&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t3s2"&gt;Creating a SQL Query Data       Set &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t3s4"&gt;Viewing the XML Output and Saving the Sample Data&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t4"&gt;Creating a Report &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle"&gt;&lt;img alt="expand" onclick="javascript:toggleSubtopics(this);toggleVisible('sub_t5');" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/library/expand.gif" /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t5"&gt; Building a Layout Using Layout Editor&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr id="sub_t5" style="display: none;"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t5s1"&gt; Launching the Layout Editor and Adding a Grid Layout&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t5s2"&gt; Working with Charts&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t5s3"&gt; Adding a Data Table to the Layout &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t5s4"&gt; Formatting the Data, and Working with the Page Layout Features&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle"&gt;&lt;img alt="expand" onclick="javascript:toggleSubtopics(this);toggleVisible('sub_t6');" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/library/expand.gif" /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t6"&gt;Scheduling a Report&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr id="sub_t6" style="display: none;"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t6s1"&gt; Confirming that the Scheduler is Configured &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t6s4"&gt; Defining Delivery Destinations&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t6s2"&gt; Creating  Scheduled Report Jobs&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t6s3"&gt; Managing Job History  and Jobs&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#s7"&gt;Summary&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#s8"&gt;Resources&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s1" name="s1"&gt;Purpose&lt;/a&gt;&lt;/h2&gt;This tutorial covers how to get started with Oracle BI Publisher 11g to create simple reports based on Oracle Database. Also, it teaches you how to create report layouts using the Layout Editor online, and how to schedule reports.&lt;br /&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s2" name="s2"&gt;Time to Complete&lt;/a&gt;&lt;/h2&gt;Approximately 1 hour.&lt;br /&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s3" name="s3"&gt;Overview&lt;/a&gt;&lt;/h2&gt;&lt;div class="bodycopy" style="margin-bottom: 0pt;"&gt;Oracle BI Publisher is a strategic enterprise reporting product from Oracle that provides the ability to create and manage highly formatted reports from a wide range of data sources. Oracle BI Publisher is available as part of the Oracle BI Enterprise Edition Suite and also as a stand alone reporting tool. Oracle BI Publisher report formats can be designed using Microsoft Word or Adobe Acrobat, the tools that are easy to use, and most users are already familiar with. Oracle BI Publisher also allows you to create reports from different types of data sources such as Oracle Database, Files, BI EE, Web services, and Discoverer.&lt;/div&gt;Release 11&lt;em&gt;g&lt;/em&gt; of Oracle BI Publisher has enhanced, easy- to-use user interface (UI), many enhanced features, and newly introduced salient features such as - &lt;span class="obe_emphasis"&gt;Data Model Editor &lt;/span&gt;- a graphical user interface for building data models within the BI Publisher interface; &lt;span class="obe_emphasis"&gt;and Layout Editor&lt;/span&gt; - a design tool that enables you to create report layouts within the BI Publisher interface.&lt;br /&gt;&lt;div class="bodycopy"&gt;In this tutorial you will be guided to create simple reports in BI Publisher based on Oracle Database. You will also be guided to work with the Layout Editor to create the layouts for the reports.&lt;/div&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s6" name="s6"&gt;Prerequisites&lt;/a&gt;&lt;/h2&gt;Before starting this tutorial, you should: &lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1.&lt;/th&gt;     &lt;td valign="top"&gt;          &lt;div class="bodycopy"&gt;Have access to Oracle BI Publisher 11g or installed BI Publisher 11g as stand alone or as part of Oracle BI Enterprise Edition 11g. &lt;/div&gt;&lt;div class="bodycopy"&gt;Also, it is recommended to use the following versions of borrowers - Internet Explorer 7.0 (or above), Mozilla Firefox 3.6.3 (or above).&lt;/div&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2.&lt;/th&gt;           &lt;td&gt;         &lt;div class="bodycopy"&gt;Have access to an Oracle Database11g (or 10g) with the sample schemas HR and OE installed and unlocked.&lt;/div&gt;&lt;div class="bodycopy"&gt;The exercises in this tutorial use the HR and OE schemas included in the Oracle Database.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th&gt;          &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3          .&lt;/th&gt;      &lt;td&gt;          &lt;div class="bodycopy"&gt;Have executed the Repository Creation Utility ( RCU) scripts in Oracle Database 11g. This should be done before installing Oracle BI EE. RCU creates the BI Publisher scheduler repository.&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;strong&gt;Note: &lt;/strong&gt;BI Enterprise Edition (BI EE) installer comes with these out of the box RCU scripts, that create the necessary schemas and the repositories in the Database for various components of BI EE including BI Publisher. You need an Oracle 11g Database to run these RCU scripts. &lt;/div&gt;However, you can establish a JDBC connection and create data models and reports through BI publisher using both 10g and 11g Databases.&lt;br /&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h2 class="obe_topic"&gt;&lt;a href="" id="t1" name="t1"&gt; Getting Started with BI Publisher&lt;/a&gt;&lt;/h2&gt;This topic guides you to login to BI Publisher and get started. It has the following subtopics:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Logging in to BI Publisher and Navigating the Home Page &lt;/li&gt;&lt;li&gt;Browsing the catalog and Viewing reports&lt;/li&gt;&lt;li&gt;Setting Preferences&lt;/li&gt;&lt;/ul&gt;&lt;div id="t1_div"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t1s1"&gt; Logging in to Oracle BI Publisher and Navigating the Home Page&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t1s2"&gt;Browsing the Catalog and Viewing the Reports&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t1s3"&gt;Setting Preferences&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2"&gt;Configuring the Data Sources&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2s1"&gt;Types of Supported Data Sources&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2s2"&gt;Defining a JDBC Connection&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2s3"&gt;Configuring File Data Location&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t2s4"&gt;Defining a JNDI (Java Naming and Directory Interface) Connection&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h3 class="obe_subtopic"&gt; &lt;a href="" id="t1s1" name="t1s1"&gt; Logging in to Oracle BI Publisher and Navigating the Home Page&lt;/a&gt;&lt;/h3&gt;&amp;nbsp; &lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;                     &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1           .&lt;br /&gt;&lt;/th&gt;       &lt;td&gt;          &lt;div class="bodycopy"&gt;Enter the URL for BI Publisher in the browser window,            which is of the format-&lt;br /&gt;http://&lt;hostname&gt;: &lt;port&gt;/xmlpserver/. For example- http:/localhost:9704/xmlpserver/&lt;/port&gt;&lt;/hostname&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;This opens the Oracle BI Publisher Enterprise login            page-&lt;/div&gt;&lt;img class="imgborder_on" id="t10101" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10101.gif" /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;                      &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2           .&lt;br /&gt;&lt;/th&gt;       &lt;td&gt;           &lt;span class="bodycopy"&gt;Login as a user with BI Administrator privileges.&lt;/span&gt;&lt;br /&gt;&lt;span class="bodycopy"&gt;When you login to BI publisher, the &lt;strong&gt;Home            &lt;/strong&gt;page is displayed- &lt;/span&gt; &lt;br /&gt;&lt;img class="imgborder_on" id="t10102" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10102.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;                     &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3           .&lt;br /&gt;&lt;/th&gt;       &lt;td&gt;          The Home page is a task-oriented, centralized workspace combined with            a global header, allowing access to Oracle BI Publisher objects, their            respective editors, and help documentation. &lt;br /&gt;&lt;div class="bodycopy"&gt;Observe the various sections of the Home page ( greatly            enhanced in 11g release to enable the users get started quickly with            BI Publisher) : &lt;/div&gt;&lt;div class="bodycopy"&gt;For example you can see -&lt;/div&gt;&lt;ul&gt;&lt;li class="bodycopy"&gt;A Create section on the left that has options to              help you create reports, data models, and other objects.&lt;/li&gt;&lt;li class="bodycopy"&gt;A Browse/Manage section on the left to help you              browse and manage the catalog, jobs, and job history.&lt;/li&gt;&lt;li class="bodycopy"&gt;A Get Started section on the left to help you get              started with BI Publisher, with links to various BI Publisher tools,              Online Help, and Oracle Technology Network.&lt;/li&gt;&lt;li class="bodycopy"&gt;A Recent section on the right, personalized to              each user so that the users can open/view the reports that have been              accessed recently (when you login initially, you may not see any objects            listed in the Recent section).&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t10102a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10102a.gif" /&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;Also, try the enhanced &lt;span class="obe_emphasis"&gt;Search &lt;/span&gt;capability that enables you to search for objects by type.&lt;/div&gt;&lt;img class="imgborder_on" id="t10103" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10103.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;                     &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4           .&lt;br /&gt;&lt;/th&gt;       &lt;td&gt;          &lt;div class="bodycopy"&gt; On the upper right side you can see the links for the &lt;span class="obe_enter_click_or_select"&gt;Home&lt;/span&gt; page, &lt;span class="obe_enter_click_or_select"&gt;Catalog&lt;/span&gt;, drop-down lists &lt;span class="obe_enter_click_or_select"&gt;New&lt;/span&gt;, and &lt;span class="obe_enter_click_or_select"&gt;Open&lt;/span&gt;. &lt;/div&gt;&lt;img class="imgborder_on" id="t10104" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10104.gif" /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;: &lt;span class="bodycopy"&gt;All these features make          the navigation within BI Publisher easy for report developers and users.      &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t1s2" name="t1s2"&gt;Browsing the Catalog and Viewing the Reports&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1            .&lt;/th&gt;        &lt;td&gt;           &lt;span class="bodycopy"&gt;Follow the steps listed here to browse the catalog and open a sample report (predefined).&lt;/span&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;Click the Catalog link in the Browse/ Manage section ( or Click the Catalog link found on the right side of the Home page).  &lt;/div&gt;&lt;img class="imgborder_on" id="t10201" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10201.gif" /&gt;   &lt;img class="imgborder_on" id="t10201b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10201b.gif" /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2            .&lt;/th&gt;        &lt;td&gt;          &lt;div class="bodycopy"&gt;The Catalog page is displayed as a tree structure on the left side of the page with the details on the right.&lt;/div&gt;&lt;div class="bodycopy"&gt;See that the objects such as reports, data models are organized into folders. &lt;/div&gt;&lt;img class="imgborder_on" id="t10201a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10201a.gif" /&gt;&lt;br /&gt;&lt;strong&gt;Note: &lt;/strong&gt;&lt;span class="bodycopy"&gt;The Samples folder found in Shared Folders contains a set of predefined sample reports. You will open one of these reports.&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3          .&lt;/th&gt;        &lt;td&gt;&lt;span class="bodycopy"&gt;Also see the tool bar with New drop-down menu that enables you to create new reports, scheduled jobs, data models and so on. &lt;/span&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t10202" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10202.gif" /&gt;&lt;br /&gt;Note that the tool bar also has other options such as copy, cut, paste, and other options that can be used when creating or managing the catalog objects such as data models, and reports.&lt;br /&gt;&lt;img class="imgborder_on" id="t10202a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10202a.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;   &lt;th width="25"&gt;          &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4        .&lt;/th&gt;        &lt;td&gt;           &lt;div class="bodycopy"&gt;Navigate to the  Human Resources folder in Samples. (This displays all the objects in the Human Resources folder.)&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t10202c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10202c.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;You can also search for a report (or other objects) using some key word and view it. For example, in the Catalog page, select the &lt;strong&gt;Reports&lt;/strong&gt; check box from the &lt;strong&gt;Search&lt;/strong&gt; drop-down list, and enter a key word in the Text field beside it. In the example below, the search results in a list of reports that have "Sales" in name.&lt;/div&gt;&lt;img class="imgborder_on" id="t10203" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10203.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;           &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;5       .&lt;/th&gt;        &lt;td&gt;          &lt;div class="bodycopy"&gt;Click Open link below the &lt;strong&gt;Salary Report&lt;/strong&gt;. &lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t10202b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10202b.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;          &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;6          .&lt;/th&gt;        &lt;td&gt;          &lt;div class="bodycopy"&gt;The Salary Report is opened in view mode. The report data is displayed using the Default layout. All the predefined layouts for the report are displayed as different tabs. &lt;/div&gt;&lt;img class="imgborder_on" id="t10205" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10205.gif" /&gt;&lt;br /&gt;You can also view the report using any of the supported formats. Click View icon displayed on the top of the report viewer towards the right. (Highlighted in the screen below).&lt;br /&gt;&lt;img class="imgborder_on" id="t10205d" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10205d.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th width="25"&gt;           &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;7       .&lt;/th&gt;        &lt;td&gt;       &lt;span class="bodycopy"&gt;Also, note the parameters defined in the report -Department and Employee, that display drop down lists for department names and the employees working in the corresponding departments. &lt;/span&gt;&lt;br /&gt;For example, when you select Finance as the Department, and the Employee list shows the employees working in Finance department.&lt;br /&gt;&lt;img class="imgborder_on" id="t10205" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10205a.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;    &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;8            .&lt;/th&gt;        &lt;td&gt;        &lt;div class="bodycopy"&gt;You can click &lt;strong&gt;Financial Style&lt;/strong&gt;, and &lt;strong&gt;Pivot Table&lt;/strong&gt; tabs to view the data in report using these predefined layouts. &lt;/div&gt;&lt;div class="bodycopy"&gt;The following screens shows data for the Finance department using Financial Style layout:&lt;/div&gt;&lt;img class="imgborder_on" id="t10206" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10206.gif" /&gt;&lt;br /&gt;The followings screen displays data for the Sales department using  Pivot Table layout. &lt;br /&gt;&lt;div class="bodycopy"&gt; &lt;img class="imgborder_on" id="t10206a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10206a.gif" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t1s3" name="t1s3"&gt;Setting Preferences&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;          &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1          .&lt;/th&gt;      &lt;td&gt;          &lt;div class="bodycopy"&gt;To set the Preferences      , Click on the link Signed in as &lt;user&gt;, and select &lt;strong&gt;My    Account&lt;/strong&gt; from the drop-down list.&lt;/user&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t10301" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10301.gif" /&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;          &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2          .&lt;/th&gt;      &lt;td&gt;          &lt;div class="bodycopy"&gt;This displays the &lt;strong&gt;Preferences&lt;/strong&gt; screen     with the General, My Group tabs/ links as shown in the screen    below:&lt;/div&gt;&lt;img class="imgborder_on" id="t10302a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10302a.gif" /&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;You can set the &lt;strong&gt;Report Locale, &lt;/strong&gt;&lt;strong&gt;UI Language&lt;/strong&gt;, &lt;strong&gt;TIme Zone&lt;/strong&gt;, and  &lt;strong&gt; Accessibility Mode&lt;/strong&gt; in the &lt;strong&gt;General Preferences&lt;/strong&gt; section.     &lt;/div&gt;&lt;ul&gt;&lt;li&gt; &lt;span class="bodycopy"&gt;&lt;strong&gt;Report Locale&lt;/strong&gt;- A locale is a language and territory combination (for example, English (United States) or French (Canada)). BI Publisher uses the report locale selection to determine the template translation to apply , the number formatting and date formatting to apply to the report data.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="bodycopy"&gt;.&lt;/span&gt;&lt;span class="bodycopy"&gt;&lt;strong&gt;UI Language-&lt;/strong&gt; The UI language is the language that your user interface displays in. The language that you selected at login will be selected as the default. However, you can choose from the languages that are available for your installation through this option.&lt;/span&gt;&lt;/li&gt;&lt;li class="bodycopy"&gt;&lt;strong&gt;Time Zone &lt;/strong&gt;- Select the time zone to apply to your reports. Reports run by you (this user) will display the time according to the time zone preference selected here.&lt;/li&gt;&lt;li&gt;            &lt;span class="bodycopy"&gt;&lt;strong&gt;Accessibility Mode&lt;/strong&gt;- Setting this to "On" will display the report catalog in a tree structure that is accessible via keyboard strokes&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Note:&lt;/strong&gt; If running BI Publisher integrated with a Security Model other than BI Publisher, these preferences may be inherited from the other security model and you will not be able to change these values.&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3            .&lt;/th&gt;      &lt;td&gt;          &lt;div class="bodycopy"&gt;Click the &lt;b&gt;My Groups&lt;/b&gt; tab to view a list of the application roles to which you are assigned. You cannot modify this list. &lt;/div&gt;&lt;img class="imgborder_on" id="t10302b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t10302b.gif" /&gt;&lt;br /&gt;&lt;span class="bodycopy"&gt;To change your password, click the &lt;b&gt;Password&lt;/b&gt; tab of the My Account dialog.&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; Password tab is visible only when you use BI Publisher Security.&lt;br /&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;/tbody&gt;  &lt;/table&gt;&lt;br /&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t2" name="t2"&gt;Configuring the Data Sources&lt;/a&gt;     &lt;/h3&gt;&lt;h3 class="obe_subtopic"&gt; &lt;a href="" id="t2s1" name="t2s1"&gt;Types of Supported Data Sources&lt;/a&gt;&lt;/h3&gt;Oracle BI Publisher supports various types of Data Sources such as JDBC data       sources (Oracle Database, and other Databases), XML Files, BI EE Reports (Answers),       JNDI data sources, OLAP data sources, Fusion Application Data sources, Web       Services, HTTP data sources, and Discoverer.&lt;br /&gt;Before you create a data model based on these data sources, you need to configure a connection to these data sources first. In this topic, you will learn how to configure a JDBC connection to an Oracle Database, and also you learn how to define a File data source. &lt;br /&gt;This topic has the following subtopics- &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Defining a JDBC Connection &lt;/li&gt;&lt;li&gt;Configuring File Data Location&lt;/li&gt;&lt;li&gt;Defining a JNDI Connection&lt;/li&gt;&lt;/ul&gt;&lt;h3 class="obe_subtopic"&gt; &lt;a href="" id="t2s2" name="t2s2"&gt;Defining a JDBC Connection&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1.&lt;/th&gt;        &lt;td&gt;            &lt;span class="bodycopy"&gt;To define a JDBC connection click the &lt;strong&gt;Administration&lt;/strong&gt;             link found on the right side of the BI Publisher page.&lt;/span&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t20101" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20101.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;This displays the BI Publisher Administration page as shown below (Observe the Data Sources section in the screen below):&lt;/div&gt;&lt;img class="imgborder_on" id="t20101a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20101a.gif" /&gt;&lt;br /&gt;&amp;nbsp;        &lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2.&lt;/th&gt;        &lt;td&gt;           &lt;div class="bodycopy"&gt;Click the &lt;strong&gt;JDBC Connection &lt;/strong&gt;link found             under the &lt;strong&gt;Data Sources&lt;/strong&gt; section in the &lt;strong&gt;Administration             &lt;/strong&gt;page. &lt;/div&gt;&lt;img class="imgborder_on" id="t20102" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20102.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3.&lt;/th&gt;        &lt;td&gt;          &lt;div class="bodycopy"&gt;This displays the &lt;strong&gt;Data Sources&lt;/strong&gt; page.             In the JDBC section, click&lt;span class="obe_enter_click_or_select"&gt; Add             Data Source&lt;/span&gt; to create a JDBC connection to your database. &lt;/div&gt;&lt;img class="imgborder_on" id="t20103" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20103.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;  &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4.&lt;/th&gt;        &lt;td&gt;           &lt;div class="bodycopy"&gt;In the Add Data Source page that is displayed, enter             the details as given below -&lt;/div&gt;&lt;ul&gt;&lt;li class="bodycopy"&gt;&lt;strong&gt;Data Source Name &lt;/strong&gt;- OE&lt;/li&gt;&lt;li class="bodycopy"&gt;&lt;strong&gt;Driver Type&lt;/strong&gt; - Select a driver               type to suit your Database (for example, you can select  Oracle 10g or Oracle 11g to suit your Database).             &lt;/li&gt;&lt;li class="bodycopy"&gt;&lt;strong&gt;Database Driver Class &lt;/strong&gt;- oracle.jdbc.driver.OracleDriver               (Define a driver class to suit your Database) &lt;/li&gt;&lt;li class="bodycopy"&gt;Connection String - Provide the database connection               details. For example hostname:port:sid. &lt;/li&gt;&lt;li class="bodycopy"&gt;&lt;strong&gt;User name -&lt;/strong&gt; OE (Database user               name) &lt;/li&gt;&lt;li class="bodycopy"&gt;&lt;strong&gt;Password &lt;/strong&gt;- OE (Database user password)&lt;/li&gt;&lt;/ul&gt;&lt;div class="bodycopy"&gt;&lt;em&gt;Do not &lt;/em&gt;click &lt;strong&gt;Apply &lt;/strong&gt;or &lt;strong&gt;Cancel&lt;/strong&gt;             after defining the above details. Click &lt;strong&gt;Test Connection&lt;/strong&gt;.           &lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t20104" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20104.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;strong&gt;Note&lt;/strong&gt;: To continue with this tutorial             exercises, the sample schemas OE, and HR should be installed in your             Oracle Database as mentioned in the Prerequisites. Else, you will not             be able to define this JDBC connection. &lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;5            .&lt;/th&gt;        &lt;td&gt;          &lt;div class="bodycopy"&gt;If the connection to the database is established,             a confirmation message is displayed indicating the success.        &lt;/div&gt;&lt;div class="bodycopy"&gt;( As shown in the screen below).          &lt;/div&gt;&lt;div class="bodycopy"&gt;Then click&lt;strong&gt; Apply&lt;/strong&gt;.&lt;/div&gt;&lt;img class="imgborder_on" id="t20105" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20105.gif" /&gt; &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;6            .&lt;/th&gt;        &lt;td&gt;          &lt;div class="bodycopy"&gt;You can see this newly defined connection (OE) in             the list of JDBC Data Sources.&lt;/div&gt;&lt;img class="imgborder_on" id="t20106" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20106.gif" /&gt;&lt;br /&gt;&amp;nbsp; &lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th&gt;&amp;nbsp;&lt;/th&gt;        &lt;td&gt;       &lt;span class="bodycopy"&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;/span&gt;&lt;span class="bodycopy"&gt;        You can also set up the the default connection &lt;strong&gt;demo&lt;/strong&gt; to           point to OE schema in your database, as the samples use this connection.           Then the demo connection can be used as the default data source for this           tutorial too. &lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t2s3" name="t2s3"&gt;Configuring File Data Location&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;                  &lt;th width="25"&gt;  &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1.&lt;/th&gt;     &lt;td&gt;            &lt;span class="bodycopy"&gt;BI Publisher ships with a repository of various             sample files and reports. These are available in BI Publisher home.&lt;/span&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;To define a File data source, click the&lt;strong&gt; File&lt;/strong&gt;             tab in the BI Publisher &lt;strong&gt;Administration &lt;/strong&gt;page. &lt;/div&gt;&lt;div class="bodycopy"&gt;Click the &lt;strong&gt;demo files&lt;/strong&gt; link to update             the file location.&lt;/div&gt;&lt;img class="imgborder_on" id="t20201" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20201.gif" /&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt; ( If you want to create a File data source with a             different name, you can click &lt;strong&gt;Add Data Source&lt;/strong&gt;. )&lt;/div&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;  &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2.&lt;/th&gt;                  &lt;td&gt;           &lt;div class="bodycopy"&gt;Define the top level directory which has all the sample             files (repository). &lt;/div&gt;&lt;img class="imgborder_on" id="t20202" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20202.gif" /&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;( Using this demo files data source, users can access             all the files in the top level directory and also it's subdirectories).&lt;/div&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;/tbody&gt;    &lt;/table&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t2s4" name="t2s4"&gt;Defining a JNDI (Java Naming and Directory Interface) Connection&lt;/a&gt;&lt;/h3&gt;BI Publisher supports connecting to a JDBC data source via a connection pool. Using a connection pool increases efficiency by maintaining a cache of physical connections that can be reused. When a client closes a connection, the connection gets placed back into the pool so that another client can use it. &lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; JNDI Connection concept is briefly introduced here,       as you need to first set up the connection pool in your application server       and access it via Java Naming and Directory Interface (JNDI). Then, you can       define the JNDI connection in BI Publisher by entering the required fields       in the JNDI connection definition page, so that BI Publisher can utilize the       pool to establish connections.&lt;br /&gt;&lt;h2 class="obe_topic"&gt;&lt;a href="" id="t3" name="t3"&gt; Creating a Data Model &lt;/a&gt;&lt;/h2&gt;In release 11&lt;em&gt;g&lt;/em&gt;, Oracle BI Publisher introduces the Data Model Editor, a graphical user interface for building data models within the BI Publisher interface. It enables you to perform the following tasks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; &lt;em&gt;Create Data Sets&lt;/em&gt; -  Access data from a wide range of sources: RDBMS, OLAP, WebServices, BI Analyses, XML files, Excel and others.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Query data&lt;/em&gt; – Build SQL or MDX queries to extract data from relational or multidimensional (OLAP) data sources.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Structure data&lt;/em&gt; – Define master-detail relationships between data sets to group data at multiple levels to optimize document generation.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Aggregate data&lt;/em&gt; – Create group level totals and subtotals.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Customize data&lt;/em&gt; – Modify data field names to conform to business terms and reporting requirements.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Create calculations&lt;/em&gt; – Compute data values that are not stored in the underlying data sources that are required for reporting.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Advanced tasks&lt;/em&gt; – Define parameters and lists of values (LOV), triggers, and other advanced elements as required by reports and report users.&lt;/li&gt;&lt;/ul&gt;In this topic, you are guided to create Data Model based on SQL query using         the JDBC connection you defined in the previous topic. Also, you will learn         how to add parameters and LOVs to the data model. &lt;br /&gt;&lt;div id="t3_div"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t3s1"&gt;Defining Default Data Source,     and Output Options&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t3s2"&gt;Creating a SQL Query Data       Set &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t3s4"&gt;Viewing the XML Output and Saving the Sample Data&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t3s1" name="t3s1"&gt;Defining Default Data Source,     and Output Options&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1.&lt;/th&gt;         &lt;td&gt;                     &lt;strong&gt;&lt;span class="bodycopy"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span class="bodycopy"&gt;:             Before starting the creation of Data Model, you will first create a             folder to save all your objects such as reports, data models and so             on. &lt;/span&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;In the &lt;strong&gt;Home&lt;/strong&gt; page, click &lt;strong&gt;Catalog&lt;/strong&gt;             link under the &lt;strong&gt;Browse/Manage&lt;/strong&gt; section. &lt;br /&gt;In the &lt;strong&gt;Catalog&lt;/strong&gt; page that is displayed, select the &lt;strong&gt;My             Folders &lt;/strong&gt;node, click the &lt;strong&gt;New&lt;/strong&gt; icon on the tool             bar. &lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t30101" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30101.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;Select &lt;strong&gt;Folder &lt;/strong&gt;from the drop-down             menu to create a new folder.&lt;/div&gt;&lt;img class="imgborder_on" id="t30101a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30101a.gif" /&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;Enter &lt;strong&gt;Learn &lt;/strong&gt;as the name of the folder,             (optionally enter a description), and click &lt;strong&gt;Create.&lt;/strong&gt;           &lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t30101b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30101b.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt; You can see that the folder gets listed in &lt;strong&gt;My             Folders&lt;/strong&gt;.&lt;/div&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;  &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2.&lt;/th&gt;                 &lt;td&gt;            &lt;span class="bodycopy"&gt;Now, you can invoke the Data Model editor in             one of the following ways-&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li class="bodycopy"&gt; From the Home page &lt;strong&gt;Create&lt;/strong&gt; section,               select &lt;strong&gt;Data Model&lt;/strong&gt;.&lt;/li&gt;&lt;li class="bodycopy"&gt; From the Catalog page, click &lt;strong&gt;New&lt;/strong&gt;               icon and select &lt;strong&gt;Data Model&lt;/strong&gt; from the drop-down menu.&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t30102" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30102.gif" /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t30102a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30102a.gif" /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3         .&lt;/th&gt;                 &lt;td&gt;           &lt;div class="bodycopy"&gt;Observe the&lt;strong&gt; Data Model Properties&lt;/strong&gt;             page that is displayed on the right. &lt;br /&gt;Select a &lt;strong&gt;Default Data Source&lt;/strong&gt; (that points to the OE schema in your database). Optionally, add a description to the data model.&lt;/div&gt;&lt;img class="imgborder_on" id="t30103" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30103.gif" /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;br /&gt;&lt;ul&gt;&lt;li class="bodycopy"&gt;Ensure that in the XML Output Options, the Include               Parameter Tags is checked, and the Include Empty Tags for Null Elements, and Include Group List Tag check boxes             are not checked.&lt;br /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t30103" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30103a.gif" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="bodycopy"&gt;For defining the Default Data Source, you can also               edit the default demo data source to point to the OE schema in your               Database, and use it. &lt;/li&gt;&lt;li class="bodycopy"&gt;Also, note that on the Properties page you can               set many options in addition to specifying a default data source.               For example, you can specify DB default package, and DB fetch size               (the data engine’s default is 300), XML output options based               on what XML tags you require in the resulting XML output.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4         .&lt;/th&gt;                 &lt;td&gt;           &lt;div class="bodycopy"&gt;To save the data model with a name, click &lt;strong&gt;Save             As&lt;/strong&gt; icon found at the top right corner of the page.&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t30104" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30104.gif" /&gt;           &lt;/div&gt;&lt;div class="bodycopy"&gt;Navigate to the folder that you want to save the data             model object ( Learn in this example), enter an appropriate name for             the Data Model , and click&lt;strong&gt; Save&lt;/strong&gt;. &lt;/div&gt;&lt;img class="imgborder_on" id="t30104a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30104a.gif" /&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t3s2" name="t3s2"&gt;Creating a SQL Query Data       Set &lt;/a&gt;with Parameters and LOVs &lt;/h3&gt;&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1         .&lt;/th&gt;                 &lt;td width="789"&gt;&lt;span class="bodycopy"&gt;From the Data Model task pane on           the left, select &lt;strong&gt;Data Sets&lt;/strong&gt;. &lt;/span&gt;           &lt;br /&gt;&lt;img class="imgborder_on" id="t30201" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30201.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2             .&lt;/th&gt;                 &lt;td width="789"&gt;&lt;span class="bodycopy"&gt;From the Data Set drop-down menu,           select SQL query as the type of data set.&lt;/span&gt;           &lt;img class="imgborder_on" id="t30202" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30202.gif" /&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;     &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3         .&lt;/th&gt;                        &lt;td width="789"&gt;          &lt;div class="bodycopy"&gt;In the &lt;strong&gt;Create Data set -SQL&lt;/strong&gt; dialog             box that appears, enter an appropriate name for the data set, accept             the default data set option (as you have already defined it in the Data             Model), and click &lt;b&gt;Query Builder&lt;/b&gt; to create a query.&lt;/div&gt;&lt;img class="imgborder_on" id="t30203" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30203.gif" /&gt;&lt;br /&gt;&amp;nbsp; &lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4         .&lt;/th&gt;                 &lt;td width="789"&gt;          &lt;span class="bodycopy"&gt;The &lt;strong&gt;Query Builder&lt;/strong&gt; window appears           displaying the &lt;strong&gt;OE &lt;/strong&gt;schema objects on the left side.&lt;/span&gt;&lt;br /&gt;&lt;span class="bodycopy"&gt; Click &lt;strong&gt;DEPARTMENTS&lt;/strong&gt;&lt;strong&gt;, &lt;/strong&gt; and &lt;strong&gt;EMPLOYEES&lt;/strong&gt; tables                       to add them to the &lt;strong&gt;Model&lt;/strong&gt; canvas on the right. &lt;/span&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t30204" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30204.gif" /&gt; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;        &lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;5         .&lt;/th&gt;                 &lt;td width="789"&gt;          &lt;div class="bodycopy"&gt;Now, define a join between these two tables as follows: &lt;br /&gt;Click the box beside &lt;strong&gt;DEPARTMENT_ID&lt;/strong&gt; column in the &lt;strong&gt;DEPARTMENTS&lt;/strong&gt; table. &lt;br /&gt;Similarly click the box beside &lt;strong&gt;DEPARTMENT_ID&lt;/strong&gt; column in the &lt;strong&gt;EMPLOYEES&lt;/strong&gt; table.&lt;br /&gt;(These boxes, when marked for joins turn light gray. ) &lt;br /&gt;Also note that a fine line joining the tables appears in the Model canvas.&lt;/div&gt;&lt;img class="imgborder_on" id="t30205" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30205.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;                        &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;6            .&lt;br /&gt;&lt;/th&gt;                 &lt;td width="789"&gt;          &lt;div class="bodycopy"&gt;Select the following columns from the tables (by selecting             the check boxes beside the column names):&lt;br /&gt;-Select &lt;strong&gt;DEPARTMENT_NAME&lt;/strong&gt; from the &lt;strong&gt;DEPARTMENTS&lt;/strong&gt; table&lt;br /&gt;-Select&lt;strong&gt; FIRST_NAME, LAST_NAME, HIRE_DATE&lt;/strong&gt;, and &lt;strong&gt;SALARY&lt;/strong&gt; columns from the &lt;strong&gt;EMPLOYEES&lt;/strong&gt; table&lt;br /&gt;(See the screen below) &lt;/div&gt;&lt;img class="imgborder_on" id="t30206" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30206.gif" /&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;7         .&lt;/th&gt;         &lt;td&gt;Click the &lt;strong&gt;Conditions&lt;/strong&gt; Tab . Change the column names and remove "_" to have more appropriate aliases. Change the aliases for the columns as below:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; &lt;span class="bodycopy"&gt;&lt;strong&gt;DEPARTMENT_NAME&lt;/strong&gt;&lt;/span&gt; to DepartmentName&lt;/li&gt;&lt;li&gt;&lt;span class="bodycopy"&gt;&lt;strong&gt;FIRST_NAME&lt;/strong&gt;&lt;/span&gt; to &lt;span class="bodycopy"&gt;FirstName&lt;/span&gt;&lt;/li&gt;&lt;li&gt; &lt;span class="bodycopy"&gt;&lt;strong&gt; LAST_NAME&lt;/strong&gt;&lt;/span&gt; to LastName&lt;/li&gt;&lt;li&gt; &lt;span class="bodycopy"&gt;&lt;strong&gt;HIRE_DATE&lt;/strong&gt;&lt;/span&gt; to HireDate&lt;/li&gt;&lt;li&gt;&lt;span class="bodycopy"&gt;&lt;strong&gt;SALARY&lt;/strong&gt;&lt;/span&gt; to Salary&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t30206a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30206a.gif" /&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;8         .&lt;/th&gt;         &lt;td&gt;Also, type "&lt;span class="obe_code_enter"&gt;IN (:P_DNAME)&lt;/span&gt;" in the &lt;strong&gt;Condition&lt;/strong&gt; field for the department name column, as shown in the screen below . This will define a parameter &lt;strong&gt;P_DNAME&lt;/strong&gt; on the department name column. &lt;br /&gt;&lt;img class="imgborder_on" id="t30206b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30206b.gif" /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; The &lt;em class="obe_code_element"&gt;IN condition&lt;/em&gt; is being used here for the parameter to accept All or Multiple values for the department name column. &lt;br /&gt;The aliases and display names can be changed in the Data Model page, either in the Diagram or in the Structure too:&lt;br /&gt;&lt;img class="imgborder_on" id="t30206c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30206c.gif" /&gt; &lt;br /&gt;&lt;img class="imgborder_on" id="t30206d" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30206d.gif" /&gt;&lt;br /&gt;&amp;nbsp; &lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;9         .&lt;/th&gt;                 &lt;td width="789"&gt;          &lt;div class="bodycopy"&gt;Click &lt;strong&gt;Results &lt;/strong&gt;to see how the query results           appear in Query Builder.This will prompt you to enter a department name for the parameter, enter &lt;strong&gt;Sales&lt;/strong&gt; and click OK.&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t30207b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30207b.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;          View results. Click &lt;strong&gt;Save&lt;/strong&gt; to save the query. &lt;/div&gt;&lt;img class="imgborder_on" id="t30207a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30207a.gif" /&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;                       &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;10         .&lt;/th&gt;                 &lt;td width="789"&gt;           &lt;div class="bodycopy"&gt;This takes you back to the &lt;strong&gt;Create Data set -SQL&lt;/strong&gt;             dialog box, and observe that the query you created is reflected in the&lt;strong&gt;             SQL Query &lt;/strong&gt;area.&lt;br /&gt;Enter an appropriate name such as &lt;strong&gt;Emp_DataSet&lt;/strong&gt;, and click &lt;strong&gt;OK&lt;/strong&gt; to add this data set to your data model. &lt;/div&gt;&lt;img class="imgborder_on" id="t30208" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30208.gif" /&gt; &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;11         .&lt;/th&gt;                 &lt;td width="789"&gt;          &lt;div class="bodycopy"&gt;A    message asks whether you want to create a           bind variable. Click OK. to create the parameter &lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t30208a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30208a.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;Note that the parameter created is listed on the left under Parameters node in Data Model:&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t30208b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30208b.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;Every time you make changes to the Data Model (changes to the data set, adding parameters or any other changes), click&lt;strong&gt; Save &lt;/strong&gt;icon (found at the top right corner) to save the Emp_DM data Model . &lt;/div&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;12         .&lt;/th&gt;                 &lt;td width="789"&gt;          &lt;div class="bodycopy"&gt;In the Data Model pane, click &lt;strong&gt;List of Values&lt;/strong&gt; node. In the List of Values pane click the the + sign to&lt;b&gt; &lt;/b&gt;Create new List of Values.&lt;/div&gt;&lt;div class="bodycopy"&gt;Select the following Options:&lt;/div&gt;&lt;ul&gt;&lt;li class="bodycopy"&gt;Enter &lt;strong&gt;DepName&lt;/strong&gt; as the &lt;strong&gt;Name &lt;/strong&gt;of the LOV&lt;/li&gt;&lt;li class="bodycopy"&gt;Select &lt;strong&gt;SQL Query&lt;/strong&gt; as the &lt;strong&gt;Type&lt;/strong&gt; from the drop-down list&lt;/li&gt;&lt;li class="bodycopy"&gt;Ensure that &lt;strong&gt;OE&lt;/strong&gt; is selected as the Data Source &lt;/li&gt;&lt;li class="bodycopy"&gt;Click &lt;strong&gt;Query Builder&lt;/strong&gt; to define the query that returns department names for the LOV&lt;/li&gt;&lt;/ul&gt;&lt;span class="bodycopy"&gt;Save the Data Model. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t30306" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30306.gif" /&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;              &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;13         .&lt;/th&gt;                 &lt;td width="789"&gt;          &lt;div class="bodycopy"&gt;In the Query Builder page, select &lt;strong&gt;DEPARTMENT_NAME&lt;/strong&gt; from the &lt;strong&gt;DEPARTMENTS&lt;/strong&gt; table. Click &lt;strong&gt;Save&lt;/strong&gt;. &lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t30307" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30307.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;Click Save to save the Data Model. The query for the LOV should look like this:&lt;/div&gt;&lt;img class="imgborder_on" id="t30307a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30307a.gif" /&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;                       &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;14         .&lt;/th&gt;                 &lt;td width="789"&gt;           &lt;div class="bodycopy"&gt;Now, set the properties for the P_DNAME parameter to use this LOV:&lt;/div&gt;&lt;div class="bodycopy"&gt;Select &lt;strong&gt;P_DNAME&lt;/strong&gt; parameter listed under the &lt;strong&gt;Parameters&lt;/strong&gt; node. &lt;/div&gt;&lt;div class="bodycopy"&gt;Enter Default value as &lt;strong&gt;*&lt;/strong&gt; (the character star) , and select &lt;strong&gt;Menu&lt;/strong&gt; as the &lt;strong&gt;Parameter Type&lt;/strong&gt; (the default parameter type is Text)&lt;strong&gt;.&lt;/strong&gt;&lt;/div&gt;&lt;img class="imgborder_on" id="t30308a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30308a.gif" /&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;  &lt;th width="25"&gt;                       &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;15         .&lt;/th&gt;         &lt;td&gt;&lt;div class="bodycopy"&gt;Ensure that&lt;strong&gt; DepName&lt;/strong&gt; is selected as the &lt;strong&gt;List of Values&lt;/strong&gt; for the parameter. &lt;br /&gt;Ensure that&lt;strong&gt; Multiple Selection&lt;/strong&gt;, &lt;strong&gt;Can select all, &lt;/strong&gt;and&lt;strong&gt; All Values Passed &lt;/strong&gt;options are selected.&lt;br /&gt;(These options allow you to select all / multiple values for the department.) &lt;/div&gt;&lt;div class="bodycopy"&gt;Also, change the Display Label to an appropriate one like- &lt;strong&gt; Department&lt;/strong&gt;: &lt;/div&gt;&lt;img class="imgborder_on" id="t30309a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30309a.gif" /&gt;&lt;br /&gt;Click &lt;strong&gt;Save&lt;/strong&gt; to save the Data Model. &lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr valign="top"&gt;  &lt;th width="25"&gt;                       &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;16         .&lt;/th&gt;         &lt;td&gt;&lt;div class="bodycopy"&gt;You can edit the query manually further to concatenate Last Name and First Name columns as Employee Name. Edit the query to look like this: &lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;span class="obe_file_or_directory"&gt;Select DEPARTMENTS.DEPARTMENT_NAME as "Department Name",&lt;br /&gt;EMPLOYEES.FIRST_NAME || ' '||EMPLOYEES.LAST_NAME as "Employee Name",&lt;br /&gt;EMPLOYEES.HIRE_DATE as "Hire Date",&lt;br /&gt;EMPLOYEES.SALARY as Salary&lt;br /&gt;from OE.DEPARTMENTS DEPARTMENTS,&lt;br /&gt;OE.EMPLOYEES EMPLOYEES &lt;br /&gt;where DEPARTMENTS.DEPARTMENT_ID=EMPLOYEES.DEPARTMENT_ID &lt;br /&gt;and DEPARTMENTS.DEPARTMENT_ID IN (:P_DNAME)&lt;/span&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;Click OK and save the data model.&lt;br /&gt;The query should look like this in Query Builder:&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t30308c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30308c.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;strong&gt;Note&lt;/strong&gt;: &lt;em&gt;Once you edited the query manually, you will not be able to edit in the Query Builder.&lt;/em&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t3s4" name="t3s4"&gt;Viewing the XML Output and Saving the Sample Data&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                       &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1            .&lt;br /&gt;&lt;/th&gt;        &lt;td&gt;           You may have observed that In the current version of the BI Publisher,             you can preview the XML data for the data model.&lt;br /&gt;Click the&lt;strong&gt; XML &lt;/strong&gt;icon (found at the right top corner             of the page), to see the XML output for the data model you defined in             previous topic. &lt;br /&gt;&lt;img class="imgborder_on" id="t30401" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30401.gif" /&gt;&lt;br /&gt;Note that &lt;strong&gt; All&lt;/strong&gt; is selected for the Department parameter (as this is the default value ).&lt;br /&gt;Select &lt;strong&gt;All&lt;/strong&gt; for the number of rows,          and click &lt;strong&gt;Run                       &lt;/strong&gt;to see the XML data output for all the departments:&lt;br /&gt;( A portion of the XML data is displayed here in the screen) &lt;br /&gt;&lt;img class="imgborder_on" id="t30310" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30310.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                        &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;           To save this  as sample data, click the Open Menu drop-down list             icon, and select &lt;strong&gt;Save as Sample Data&lt;/strong&gt;. &lt;br /&gt;&lt;img class="imgborder_on" id="t30402" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30402.gif" /&gt;&lt;br /&gt;You can see that the sample.xml is listed in the Sample Data section           of the Data Model ( as shown below):&lt;br /&gt;&lt;img class="imgborder_on" id="t30402a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30402a.gif" /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; It is very important to save sample data for a data model, else when creating Layouts, the previews do not appear correctly. &lt;br /&gt;You can select various values (multiple/ single) for Department to see the data. You can also restrict the number of rows that you want to see:&lt;br /&gt;&lt;img class="imgborder_on" id="t30310b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30310b.gif" /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t30310a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t30310a.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h2 class="obe_topic"&gt;&lt;a href="" id="t4" name="t4"&gt;Creating a Report &lt;/a&gt;&lt;/h2&gt;&lt;div class="bodycopy"&gt;In this topic, you learn to create a report using the Data Model that you defined in the previous topic. You also create a simple layout using Layout Editor, and edit parameters. &lt;/div&gt;&lt;h3 class="obe_subtopic"&gt;&amp;nbsp;&lt;/h3&gt;&lt;div class="bodycopy"&gt; &lt;strong&gt;Note:&lt;/strong&gt; The steps in this topic are all continuous, so do not close any window or logout from BI Publisher unless you are asked to do so. &lt;/div&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;         &lt;th height="225" width="25"&gt;                       &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy" height="225"&gt;           If not logged in, login into BI Publisher, and go to My Folders&amp;gt;             Learn folder in Catalog pane. &lt;br /&gt;Click New (found at the top left corner of page) to see the drop-down menu                       and click Report to create a new report.&lt;br /&gt;&lt;img class="imgborder_on" id="t40101a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40101a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                      &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;           Navigate to&lt;strong&gt; My Folders&amp;gt; Learn&lt;/strong&gt;. Select &lt;strong&gt;Emp_DM&lt;/strong&gt;             data model and click &lt;strong&gt;Open&lt;/strong&gt;. &lt;br /&gt;&lt;img class="imgborder_on" id="t40102" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40102.gif" /&gt;&lt;br /&gt;It displays the options to create, use a shared template, or upload a  report layout.&lt;br /&gt;Select Blank (Portrait) under the Basic Templates section to create a simple report layout. &lt;br /&gt;&lt;img class="imgborder_on" id="t40102b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40102b.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note: &lt;/strong&gt;You can define a Layout for the report at the time of creating report, or create it at a later point of time.&lt;strong&gt;&lt;em&gt; Creating report layouts using the Layout Editor is covered in detail in the next topic. &lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;                 &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3.&lt;/th&gt;             &lt;td class="bodycopy"&gt;This opens Layout Editor, with a blank page:&lt;br /&gt;&lt;img class="imgborder_on" id="t40103a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40103a.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4.&lt;/th&gt;             &lt;td class="bodycopy"&gt;Click Insert &amp;gt; Data Table from the menu to insert a data table in the layout page. &lt;br /&gt;&lt;img class="imgborder_on" id="t40104d" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40104d.gif" /&gt; &lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;5.&lt;/th&gt;             &lt;td class="bodycopy"&gt;Select and drag the elements in the following order from the &lt;strong&gt;Data Source&lt;/strong&gt; pane to the [Drop a Data Item Here] area of the table:          &lt;ul&gt;&lt;li&gt;DEPARTMENT_NAME&lt;/li&gt;&lt;li&gt;EMP_NAME&lt;/li&gt;&lt;li&gt;HIRE DATE&lt;/li&gt;&lt;li&gt;SALARY&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t40105d" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40105d.gif" /&gt;&lt;br /&gt;As you drag an element, position each successive item directly to the right of the previous element and release to create each column, so that the data table, after adding all the columns it looks like this:&lt;br /&gt;&lt;img class="imgborder_on" id="t40105e" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40105e.gif" /&gt; &lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;6.&lt;/th&gt;             &lt;td class="bodycopy"&gt;       Click the &lt;strong&gt;Save&lt;/strong&gt; icon found on the top right corner to save this layout.                  &lt;br /&gt;Enter &lt;strong&gt;Default Layout&lt;/strong&gt; as the name of the layout, and click &lt;strong&gt;Save&lt;/strong&gt;.&lt;br /&gt;&lt;img class="imgborder_on" id="t40105f" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40105f.gif" /&gt; &lt;br /&gt;&amp;nbsp; &lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;7.&lt;/th&gt;             &lt;td class="bodycopy"&gt;This brings you back to the Layout Editor. &lt;br /&gt;Click the &lt;strong&gt;Preview&lt;/strong&gt; icon drop-down list (highlighted in the screen) to preview the data in Interactive format (this is also the default format).&lt;br /&gt;&lt;img class="imgborder_on" id="t40105h" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40105h.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t40105g" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40105g.gif" /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;: You can perform sorts and selection interactively here. Close the Interactive Viewer.&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;8.&lt;/th&gt;             &lt;td class="bodycopy"&gt;.Click &lt;strong&gt;Return&lt;/strong&gt; in Layout Editor to return to the &lt;strong&gt;Edit &lt;/strong&gt;mode of the report. &lt;br /&gt;Observe the various links on this page that will help you edit the data model, parameters, properties, and layouts for the report. You can also display the layouts as Thumbnails or as a List.&lt;br /&gt;&lt;img class="imgborder_on" id="t40105i" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40105i.gif" /&gt; &lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;: &lt;strong&gt;Parameters&lt;/strong&gt; link is displayed, only when the data model you selected for a report has parameters defined.&lt;br /&gt;&amp;nbsp; &lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;9.&lt;/th&gt;             &lt;td class="bodycopy"&gt;Click &lt;strong&gt;Save&lt;/strong&gt; icon (found at the top right corner of the page) to save the report. (You can also click Save As icon ). &lt;br /&gt;&lt;img class="imgborder_on" id="t40104" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40104.gif" /&gt;&lt;br /&gt;Navigate to &lt;strong&gt;My Folders&amp;gt; Learn&lt;/strong&gt;. Enter &lt;strong&gt;Employee Salaries By Department&lt;/strong&gt; as the report name and click &lt;strong&gt;Save&lt;/strong&gt;. &lt;br /&gt;&lt;img class="imgborder_on" id="t40104a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40104a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                       &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;10            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;Click the &lt;strong&gt;Parameters&lt;/strong&gt; link and it shows the details for the parameters.             You can make changes to  the parameter values. Also, you can opt to show or not to show the parameter in the report.&lt;br /&gt;Clear the&lt;strong&gt; Show&lt;/strong&gt; check box not to show the parameter.&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;: The report parameters are edited here not to show them in layouts. (This is not mandatory, but this is being done here to depict all the data in the layout graphs that you will create in the next topic.) &lt;br /&gt;&lt;img class="imgborder_on" id="t40103" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t40103.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h2 class="obe_topic"&gt;&lt;a href="" id="t4" name="t5"&gt; Building a Layout Using Layout Editor&lt;/a&gt;&lt;/h2&gt;Release 11&lt;em&gt;g&lt;/em&gt; of Oracle BI Publisher introduces an online Layout Editor, a design tool to create and publish report layouts from within BI Publisher interface. The Layout Editor provides an intuitive drag-and-drop interface for adding common components to your report layout from within your web browser. The Layout Editor uses the sample data in the data model to immediately populate your layout components with report data during design-time. It also provides many advanced features to fully customize your reports.&lt;br /&gt;The Layout Editor provides a new Interactive output type in addition to output types like PDF, RTF, Excel, PowerPoint, and HTML.&amp;nbsp; Interactive output enables lightweight interactions with the report data from within the browser such as Excel-like filtering and sorting of tabular data with fixed headers and footers &lt;br /&gt;In this topic, you will design a layout with graphs and using the Layout Editor, for the &lt;strong&gt;Employee Salaries by Department &lt;/strong&gt;report that you created in the previous topic. &lt;br /&gt;&lt;div id="t5_div"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t5s1"&gt; Launching the Layout Editor and Adding a Grid Layout&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t5s2"&gt; Working with Charts&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t5s3"&gt; Adding a Data Table to the Layout &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t5s4"&gt; Formatting the Data, and Working with the Page Layout Features&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t5s1" name="t5s1"&gt; Launching the Layout Editor and Adding a Grid Layout&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                       &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;          Click Return to return to the &lt;strong&gt;Edit&lt;/strong&gt; mode of the report.            (If the report &lt;br /&gt;Now, click&lt;strong&gt; Add New Layout &lt;/strong&gt;link to create a new layout            for the report.&lt;br /&gt;&lt;img class="imgborder_on" id="t50101c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50101c.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                        &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;           The &lt;strong&gt;Layout Editor&lt;/strong&gt; is invoked, and displays the available             &lt;strong&gt;Basic&lt;/strong&gt; and&lt;strong&gt; Shared templates &lt;/strong&gt; (templates for report layouts) to choose             from. &lt;br /&gt;&lt;img class="imgborder_on" id="t50102" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50102.gif" /&gt;&lt;br /&gt;It displays the options to create, use a shared template, or upload a report layout.&lt;br /&gt;Click &lt;strong&gt;Blank (Portrait&lt;/strong&gt;) from the &lt;strong&gt;Basic Templates&lt;/strong&gt; section to manually design the layout. &lt;br /&gt;&lt;img class="imgborder_on" id="t50102a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50102a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;: It is a good practice to use Pre-built templates for reports because:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; They encourage consistent look and feel for layouts&lt;/li&gt;&lt;li&gt; They make report authors much more productive by taking care comment of elements like headers and footers.&lt;/li&gt;&lt;/ul&gt;However, here a blank portrait is being used to show how to create a template from scratch.  &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;                       &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;          This shows blank page (portrait) in Layout Editor . Click &lt;strong&gt;Layout Grid &lt;/strong&gt;to insert a grid. &lt;br /&gt;&lt;img class="imgborder_on" id="t50103" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50103.gif" /&gt;&lt;br /&gt;In the &lt;strong&gt;Insert  a Layout Grid&lt;/strong&gt; screen, enter &lt;strong&gt;2&lt;/strong&gt; as the number of rows and &lt;strong&gt;2&lt;/strong&gt; as the number of columns for the grid. Click &lt;strong&gt;OK&lt;/strong&gt;.&lt;br /&gt;&lt;img class="imgborder_on" id="t50103a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50103a.gif" /&gt;&lt;br /&gt;(You will add various report components such as charts, tables, and pivot tables in the the grid rows and columns in the next subtopics.)&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; Using Layout Grids to control pixel perfect placement of objects in the layout is a best practice.&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4.&lt;/th&gt;             &lt;td class="bodycopy"&gt;The layout grid with 2 rows and 2 columns is added:&lt;br /&gt;&lt;img class="imgborder_on" id="t50104" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50104.gif" /&gt;&lt;br /&gt;Now, merge the cells in the second row. Use &lt;ctrl&gt; key to select both the cells in the second row of the grid, (when the cells are selected, the color turns yellow) click &lt;strong&gt;Join Selected Cells&lt;/strong&gt; option available in the &lt;strong&gt;Layout Grid&lt;/strong&gt; menu. &lt;/ctrl&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t50104a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50104a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t5s1" name="t5s2"&gt; Working with Charts&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;5.&lt;/th&gt;             &lt;td class="bodycopy"&gt;Select the first cell in the first row of the grid layout, and click &lt;strong&gt;Chart&lt;/strong&gt; from the &lt;strong&gt;Insert&lt;/strong&gt; menu in the ribbon. &lt;br /&gt;&lt;img class="imgborder_on" id="t50201" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50201.gif" /&gt;&lt;br /&gt;This action inserts a chart template with prompts as shown below:&lt;br /&gt;&lt;img class="imgborder_on" id="t50201a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50201a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                        &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;6            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;           From the&lt;strong&gt; Data Source &lt;/strong&gt; pane on the left-&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Select and drag the &lt;strong&gt;SALARY&lt;/strong&gt; element to the &lt;strong&gt;Drop               Value Here&lt;/strong&gt; prompt in the empty chart &lt;/li&gt;&lt;li&gt;Next, select and drag the &lt;strong&gt;DEPARTMENT_NAME&lt;/strong&gt; element               to the &lt;strong&gt;Drop Series Here &lt;/strong&gt;prompt. &lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t50202" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50202.gif" /&gt;&lt;br /&gt;This would populate the chart with some sample data.&lt;br /&gt;&lt;img class="imgborder_on" id="t50202a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50202a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                        &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;7            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;           Next, change the &lt;strong&gt;Properties&lt;/strong&gt; of the &lt;strong&gt;SALARY&lt;/strong&gt;             element in the chart to average the value. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;To do this, first select the &lt;strong&gt;SALARY&lt;/strong&gt; item in the               chart, then click the drop-down menu next to Summation under Formula, and select&lt;strong&gt; Average&lt;/strong&gt; from the drop-down menu.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t50203" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50203.gif" /&gt;&lt;br /&gt;The chart changes to reflect the average salaries by department.&lt;br /&gt;&lt;img class="imgborder_on" id="t50203a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50203a.gif" /&gt;&lt;br /&gt;You can leave the default style for the chart or select from the supported chart styles.&lt;br /&gt;&lt;img class="imgborder_on" id="t50206b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50206b.gif" /&gt;&lt;br /&gt;To add a title for the chart, first, Add a row above this chart in the grid layout. Select any of the the grid cells in the first row, and click the &lt;strong&gt;Add a Row Above&lt;/strong&gt; icon.&lt;br /&gt;&lt;img class="imgborder_on" id="t50204" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50204.gif" /&gt;&lt;br /&gt;&lt;br /&gt;Now select the cell right above the chart, and click &lt;strong&gt; Insert tab &lt;/strong&gt;, and then click &lt;strong&gt;Text Item&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t50204a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50204a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                        &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;8            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;           Next, add a title for the chart. &lt;br /&gt;Double click the text item to select it, then click again to edit it.           &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Delete the default text and type &lt;strong&gt;Average Salary by Department&lt;/strong&gt;               as the Title.&lt;/li&gt;&lt;li&gt;Select the text and choose &lt;strong&gt;Tahoma &lt;/strong&gt; as font, &lt;strong&gt;12               &lt;/strong&gt;as the font size, and &lt;strong&gt;Bold&lt;/strong&gt; as the style.             &lt;/li&gt;&lt;li&gt; Center the title by clicking the &lt;strong&gt;Center Alignment&lt;/strong&gt;               icon.&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t50205" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50205.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                        &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;9            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;                     Click &lt;strong&gt;Save As&lt;/strong&gt; icon in the toolbar, and save the Layout as &lt;strong&gt;Departmental Salaries&lt;/strong&gt;. &lt;br /&gt;&lt;img class="imgborder_on" id="t50208" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50208.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t50208a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50208a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;         &lt;th width="25"&gt;                        &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;10            .&lt;br /&gt;&lt;/th&gt;        &lt;td class="bodycopy"&gt;Return to complete the layout in the Layout Editor. &lt;br /&gt;Now, select the cell beside the bar chart that you have inserted. Follow               the above steps to insert a&lt;strong&gt; Pie chart&lt;/strong&gt;. &lt;br /&gt;The steps are briefly listed here:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Select the cell beside the chart that you have inserted, and then               click the &lt;strong&gt;Insert&lt;/strong&gt; tab. Click &lt;strong&gt;Chart&lt;/strong&gt;.             &lt;/li&gt;&lt;li&gt;To change the chart type to a pie chart, expand the &lt;strong&gt;Chart               Types &lt;/strong&gt;menu.&lt;/li&gt;&lt;li&gt;Select the &lt;strong&gt;Pie&lt;/strong&gt; chart to insert an empty pie chart               with prompts in the grid cell.&lt;br /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t50207" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50207.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To populate your pie chart: From the &lt;strong&gt;Data Source&lt;/strong&gt;               pane, select and drag SALARY to &lt;strong&gt;Drop Value Here, and &lt;/strong&gt;select               and drag DEPARTMENT_NAME to &lt;strong&gt;Drop Series Here&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Add &lt;strong&gt;Percentage Salary by Department &lt;/strong&gt;as the Title.&lt;/li&gt;&lt;li&gt; Use &lt;strong&gt;Tahoma&lt;/strong&gt; as the font, &lt;strong&gt;12 &lt;/strong&gt;as the size, and&lt;strong&gt; Bold &lt;/strong&gt;as the style.               Align the title in the center.&lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;Preview &lt;/strong&gt;icon,and select &lt;strong&gt;PDF&lt;/strong&gt; from the drop down list to preview your chart :              &lt;img class="imgborder_on" id="t50206a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50206a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;The preview should now look like this:&lt;br /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t50207a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50207a.gif" /&gt;               &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Click &lt;strong&gt;Save&lt;/strong&gt; icon in the toolbar to save the changes to the &lt;strong&gt;Departmental Salaries&lt;/strong&gt; layout. &lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t5s3" name="t5s3"&gt; Adding a Data Table to the Layout &lt;/a&gt;&lt;/h3&gt;&lt;div class="obe_subtopic"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1.&lt;/th&gt;        &lt;td class="bodycopy"&gt;           &lt;span class="bodycopy"&gt;Select the lower row (which has the cells merged). &lt;/span&gt;&lt;br /&gt;&lt;div class="bodycopy"&gt;Click &lt;strong&gt;Insert&lt;/strong&gt; tab. Click &lt;strong&gt;Data Table&lt;/strong&gt; to insert the data table component into the layout.&lt;/div&gt;&lt;img class="imgborder_on" id="t50301" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50301.gif" /&gt; &lt;br /&gt;&amp;nbsp;     &lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2.&lt;/th&gt;        &lt;td class="bodycopy"&gt;Select and drag the elements in the following order from the &lt;strong&gt;Data Source&lt;/strong&gt; pane to the [Drop a Data Item Here] area of the table:          &lt;ul&gt;&lt;li&gt;DEPARTMENT_NAME&lt;/li&gt;&lt;li&gt;EMP_NAME&lt;/li&gt;&lt;li&gt;HIRE DATE&lt;/li&gt;&lt;li&gt;SALARY&lt;/li&gt;&lt;/ul&gt;As you drag an element, position each successive item directly to the right of the previous element and release to create each column. &lt;br /&gt;After you insert all the columns notice that a Grand Total row is automatically inserted  .          &lt;img class="imgborder_on" id="t50302a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50302a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3        .&lt;/th&gt;        &lt;td class="bodycopy"&gt;Click &lt;strong&gt;Preview in PDF&lt;/strong&gt; icon in the toolbar to preview the layout -&lt;br /&gt;&lt;img class="imgborder_on" id="t50303a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50303a.gif" /&gt;&lt;br /&gt;Click&lt;strong&gt; Save &lt;/strong&gt;to to save the &lt;strong&gt;Departmental Salaries&lt;/strong&gt; layout.&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can edit the layout that is saved in one of the following ways:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Click Actions and select Edit Layout in the view mode of the report&lt;br /&gt;or &lt;/li&gt;&lt;li&gt;Open the report in Edit mode (click Edit link below the report in catalog page) and select the layout to be edited in the Layout section, and click Edit (pencil icon) &lt;/li&gt;&lt;/ol&gt;&amp;nbsp; &lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t5s4" name="t5s4"&gt; Formatting the Data, and Working with the Page Layout Features&lt;/a&gt;&lt;/h3&gt;&lt;div class="bodycopy"&gt;Layout Editor enables you perform many formatting tasks such as  -&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Change the back ground, text colors, and other text attributes&lt;/li&gt;&lt;li&gt;Apply number formats&lt;/li&gt;&lt;li&gt;Define groups/totals/ subtotals, and sorts &lt;/li&gt;&lt;li&gt;Apply conditional formats&lt;/li&gt;&lt;li&gt;Define page layout using headers, footers and page breaks. &lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Note&lt;/strong&gt;: Most of the above formatting tasks can be done using the options in the menu ribbons. The most commonly used formatting properties are found in the context sensitive menu ribbons on the tool bar.&amp;nbsp; For more fine grained properties, you can use the property pane on the left. &lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1            .&lt;/th&gt;        &lt;td class="bodycopy"&gt;&lt;strong&gt;Changing Background, Text colors, and other Attributes : &lt;/strong&gt;&lt;br /&gt;In the table select a column header, for example &lt;strong&gt;DEPARTMENT NAME&lt;/strong&gt;. &lt;br /&gt;From the menu ribbon,   change the properties as below: &lt;strong&gt;&lt;br /&gt;Font &lt;/strong&gt; to &lt;strong&gt;Arial&lt;/strong&gt;, &lt;strong&gt;Font Size&lt;/strong&gt; to 10, and&lt;strong&gt; Font Weight&lt;/strong&gt; to &lt;strong&gt;Bold&lt;/strong&gt;. &lt;br /&gt;&lt;img class="imgborder_on" id="t50401" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50401.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2            .&lt;/th&gt;        &lt;td class="bodycopy"&gt;Click &lt;strong&gt;Background Color&lt;/strong&gt; icon from the properties listed in the &lt;strong&gt;Appearance&lt;/strong&gt; section. Select a color (light blue is selected in the example here) from the &lt;strong&gt;Color Picker&lt;/strong&gt; screen and click&lt;strong&gt; OK. &lt;/strong&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t50401a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50401a.gif" /&gt;&lt;br /&gt;&lt;br /&gt;Similarly, click the Font color icon (highlighted in the screen) to change the text color for this column header. Select a color (like Dark blue) from the&lt;strong&gt; Color Picker&lt;/strong&gt;.  &lt;br /&gt;Change the background and text colors for all the column headers in-line with the DEPARTMENT_NAME. &lt;br /&gt;&lt;strong&gt;Hint&lt;/strong&gt;: Use the &lt;ctrl&gt; and &lt;shift&gt; keys to select the remaining columns headers, and change the background and text colors to the same colors you used for the &lt;strong&gt;DEPARTMENT NAME&lt;/strong&gt; column header. Similarly, select the column footers (totals ) and change the colors .&lt;/shift&gt;&lt;/ctrl&gt;&lt;br /&gt;Note that the Properties pane (on the left) changes accordingly:&lt;br /&gt;&lt;img class="imgborder_on" id="t50403" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50403.gif" /&gt; &lt;br /&gt;Similarly, apply same formats as above to the footer row (Totals row).&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;  Change the all the column (data cells) fonts to &lt;strong&gt;Arial&lt;/strong&gt; with size&lt;strong&gt; 10&lt;/strong&gt;. &lt;br /&gt;Click&lt;strong&gt; Save &lt;/strong&gt;to to save the &lt;strong&gt;Departmental Salaries&lt;/strong&gt; layout.&lt;br /&gt;The table should appear like this after the above formatting changes:&lt;br /&gt;&lt;img class="imgborder_on" id="t50405b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50405b.gif" /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;You can also modify the other properties such as Text Alignment. Ensure that the data in the numeric columns - such as SALARY is justified to the right . &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;&lt;div class="bodycopy"&gt;&lt;strong&gt;Adding Number Formats:&lt;/strong&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;You can add appropriate formats to the numeric or date columns such as SALARY, YEAR, HIRE DATE etc. &lt;br /&gt;To change the format for SALARY, click anywhere below the column header in the data area to select SALARY column. From the &lt;strong&gt;Data Formatting&lt;/strong&gt; drop down list, that is displayed in the ribbon, select &lt;strong&gt;$1,234.57 (Currency) &lt;/strong&gt;as the format.&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50406" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50406.gif" /&gt; &lt;/div&gt;&lt;div class="bodycopy"&gt;Similarly, select the same format for the Salary Total (last row). Click Save icon to save the changes to the Layout.&lt;/div&gt;&lt;div class="bodycopy"&gt;Now, adjust the decimal places to the right. Click&lt;strong&gt; Move Right &lt;/strong&gt;twice to remove the decimals in Salary column and the Totals.&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50406b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50406b.gif" /&gt;&lt;/div&gt;&lt;div class="bodycopy"&gt;The table should now look like this (observe the formats for Salary column):&lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50406a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50406a.gif" /&gt; &lt;/div&gt;&lt;div class="bodycopy"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;5          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;Similarly, click HIRE DATE column and apply the appropriate date formats:&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50407b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50407b.gif" /&gt;&lt;/span&gt;&lt;br /&gt;The table looks like this:&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50407c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50407c.gif" /&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;6          .&lt;/th&gt;        &lt;td class="bodycopy"&gt; &lt;strong&gt;Defining Groups/Totals, and Sorts: &lt;/strong&gt;&lt;br /&gt;In the table you can add groups, totals, and sorts. &lt;br /&gt;Click the data in the &lt;strong&gt;DEPARTMENT NAME&lt;/strong&gt; column to select the same, and select &lt;strong&gt;Group Above&lt;/strong&gt; from the &lt;strong&gt;Grouping&lt;/strong&gt; drop-down list that appears in the &lt;strong&gt;Column &lt;/strong&gt;menu. &lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50407" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50407.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; Instead of using menu options, you can also drag DEPARTMENT NAME out of the table and drop it just above the table to add a repeating group. &lt;br /&gt;A  total for the grouped column is automatically added at the end of the group in the table:&lt;br /&gt;Change the font, style, background and text colors as appropriate for DEPARTMENT NAME from the menu options in the ribbon. &lt;br /&gt;The table should appear like this after you defined a group on DEPARTMENT NAME column, and applied appropriate formats: &lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50407a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50407a.gif" /&gt;&lt;/span&gt; &lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; Every time you make changes, do not forget to click &lt;strong&gt;Save &lt;/strong&gt; and  save the changes to the template.&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;7          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;Click Preview in HTML icon to see the data in HTML. &lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50408" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50408.gif" /&gt;&lt;/span&gt; &lt;br /&gt;Scroll down to see the table:&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50408a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50408a.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;8          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;You can also define sorts on the columns in the table. You can define an ascending or descending sorts on columns. &lt;br /&gt;Select the data in &lt;strong&gt; EMPLOYEE NAME &lt;/strong&gt; column and click &lt;strong&gt;Ascending Order&lt;/strong&gt; (A-Z) icon in the &lt;strong&gt;Sort &lt;/strong&gt;menu. The products are arranged in alphabetical order.&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50409" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50409.gif" /&gt;&lt;/span&gt;&lt;br /&gt;A portion of the data table, the data for the Purchasing department is shown below, note that the data is sorted by Employee Name:&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50409a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50409a.gif" /&gt;&lt;/span&gt;&lt;br /&gt;(You can also sort by salary, in which case a numeric sort is applied as appropriate.)&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;9          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;&lt;strong&gt;Applying Conditional Formats:&lt;/strong&gt;&lt;br /&gt;Conditional formats help you to highlight the data in fields based on a condition. For example, you may want to do a pay revision to reduce attrition rates, and may want to see which employees are earning very good salaries, and which employees are not earning so well (say less than 3000 USD). &lt;br /&gt;To apply simple conditional formats on&lt;strong&gt; SALARY&lt;/strong&gt; select the data in the column and from the&lt;strong&gt; Conditional Formatting&lt;/strong&gt; menu, click&lt;strong&gt; Highlight&lt;/strong&gt;. &lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50410" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50410.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;10          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;In the Highlight screen that appears, select&lt;strong&gt; is less than or equal to&lt;/strong&gt; from the&lt;strong&gt; Operator&lt;/strong&gt; drop-down list. Enter &lt;strong&gt;3000&lt;/strong&gt; as the Value. Set &lt;strong&gt;Bold&lt;/strong&gt; as the Text style. &lt;br /&gt;Click the box beside the Background Color field.&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50411" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50411.gif" /&gt;&lt;/span&gt;&lt;br /&gt;In the Color Picker, select Red as the background color. Click &lt;strong&gt;OK . &lt;/strong&gt;&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50411a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50411a.gif" /&gt;&lt;/span&gt;&lt;br /&gt;This takes you back to the &lt;strong&gt;Highlight&lt;/strong&gt; definition dialog, preview how conditional format looks like and click &lt;strong&gt;OK&lt;/strong&gt;.&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50411b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50411b.gif" /&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;11          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;Define two more conditional formats as given below:&lt;br /&gt;&lt;br /&gt;1. One with  the Operator - &lt;strong&gt;is greater than&lt;/strong&gt;, and enter the &lt;strong&gt; Value&lt;/strong&gt; as &lt;strong&gt;9000&lt;/strong&gt;. Apply &lt;strong&gt;Green&lt;/strong&gt; as the back ground color, and set &lt;strong&gt;Bold&lt;/strong&gt; as font style. (See the screens below).&lt;br /&gt;Click OK. &lt;br /&gt;&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50412" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50412.gif" /&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;2. Also define a conditional format with the Operator -&lt;strong&gt; is between &lt;/strong&gt;, and enter the Values as &lt;strong&gt;3000&lt;/strong&gt; and&lt;strong&gt; 5000 &lt;/strong&gt;. Apply &lt;strong&gt;yellow&lt;/strong&gt; as the background color, and &lt;strong&gt;Bold &lt;/strong&gt;as font style. (See the screen below).&lt;br /&gt;Click OK.        &lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50412b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50412b.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Click &lt;strong&gt;Save &lt;/strong&gt;icon to save the &lt;strong&gt;Departmental Salaries&lt;/strong&gt; template.&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;12          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;Click &lt;strong&gt;Preview in HTML &lt;/strong&gt; icon to see the data in HTML ( a portion of the table data is shown below, note that all the three conditional formats that you defined are applied on the SALARY column) . &lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50413a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50413a.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; Some of the salient features of Layout Editor that are helpful in creating report templates are briefly covered here. If you have time, try experimenting with other components , and other features such as section, pivot table, gauges, images, and Group Left with subtotals.&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;13          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;&lt;strong&gt;Working with Page Layout Features:&lt;/strong&gt;&lt;br /&gt;&lt;span class="bodycopy"&gt;In the layout that you have created with the report components such as charts and table, you may want to add page breaks after each component, and in the table after each year. The next few steps guide you to add page breaks, headers , and/or footers to the report layout.&lt;/span&gt;&lt;br /&gt;In the grid layout , select the second row which has charts. Click &lt;strong&gt;Insert&lt;/strong&gt;, and select &lt;strong&gt;Page Break &lt;/strong&gt;from the&lt;br /&gt;&lt;strong&gt;Page Elements &lt;/strong&gt;section in the menu. &lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50414" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50414.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Similarly, add a page break in the next row before the end of the  section for &lt;strong&gt;DEPARTMENT NAME &lt;/strong&gt;(group). Click inside the table just before the end of the  section. &lt;br /&gt;Select &lt;strong&gt;Insert&amp;gt; Page break&lt;/strong&gt; from the &lt;strong&gt;Page Elements &lt;/strong&gt;section in the menu. (This inserts a page break after each department data in the table.) &lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50414a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50414a.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;14          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;To see if the page breaks are inserted at right places, preview the layout in PDF. Click &lt;strong&gt;Preview in PDF&lt;/strong&gt;  icon.&lt;br /&gt;Notice the page breaks in the PDF file:&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50415" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50415.gif" /&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Scroll down to see the second page. Note that a page break is inserted after each department data:&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50415a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50415a.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;15          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;To insert page/report header and footers, click &lt;strong&gt;Page Layout&lt;/strong&gt;. This displays all the menu options for Page Layout in the ribbon. Click&lt;strong&gt; Report Header.&lt;/strong&gt;&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50416d" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50416d.gif" /&gt;&lt;/span&gt;&lt;br /&gt;A report header (place holder) is inserted into the layout. &lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50416" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50416.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Insert a Text Item in the header, and double click the text item to edit it. Enter &lt;strong&gt;Employee Salary  Analysis by Department &lt;/strong&gt; as the report header. Apply appropriate formats for the report header.&lt;br /&gt;Preview the output in Interactive viewer.&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50416b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50416b.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50416a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50416a.gif" /&gt;&lt;/span&gt;&lt;br /&gt;Observe that you can interactively select a department to view the data. &lt;br /&gt;Also, when you click the interactive ' v ' shaped icon for each column you can see the MS Excel like, interactive filtering and sorting features.&lt;br /&gt;&lt;img class="imgborder_on" id="t50416c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50416c.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;16          .&lt;/th&gt;        &lt;td class="bodycopy"&gt;Similarly click &lt;strong&gt;Page Footer &lt;/strong&gt;to insert a footer in the layout. An icon for the page footer at the end of the grid.&lt;br /&gt;Insert elements such as page numbers, simple text, time and date into these columns. An example is given here: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;First, select the page footer, and insert a Grid of a single row with 3 columns. Insert text items into each of these columns.&lt;/li&gt;&lt;li&gt;Edit the first column in the Grid in the page footer item so that the text is in the format - " &lt;strong&gt;&lt;page no=""&gt; of &lt;total no.="" of="" pages=""&gt;&lt;/total&gt;&lt;/page&gt;&lt;/strong&gt;&amp;gt;.&lt;/li&gt;&lt;li&gt;Double click this text item in the first column, and click &lt;strong&gt;Page Number&lt;/strong&gt; icon from the &lt;strong&gt;Text&lt;/strong&gt; menu in the ribbon&lt;/li&gt;&lt;li&gt; Beside the page number icon that is inserted into the Page Header, type "&lt;strong&gt;of &lt;/strong&gt;"&lt;/li&gt;&lt;li&gt; Now, click &lt;strong&gt;Page Total&lt;/strong&gt; icon from the &lt;strong&gt;Text&lt;/strong&gt; menu.&lt;/li&gt;&lt;li&gt;Similarly, insert simple Text such as "Confidential" in the second Grid column, and Date and Time in the third column of the footer. &lt;/li&gt;&lt;/ol&gt;The footer should look like this:&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50417" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50417.gif" /&gt;&lt;/span&gt;&lt;br /&gt;The report with the headers and footers defined should look like this in PDF:&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50417a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50417a.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="bodycopy"&gt;&lt;img class="imgborder_on" id="t50417b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t50417b.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you have time, you can experiment with various elements such as gauges, images etc. &lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h2 class="obe_topic"&gt;&lt;a href="" id="t6" name="t6"&gt;Scheduling a Report&lt;/a&gt;    &lt;/h2&gt;This topic guides you through the following subtopics:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Confirming that the scheduler is configured &lt;/li&gt;&lt;li&gt;Defining Delivery Destinations &lt;/li&gt;&lt;li&gt;Creating  Scheduled Report Jobs&lt;/li&gt;&lt;li&gt;Managing Job History and Jobs&lt;/li&gt;&lt;/ul&gt;&lt;div id="t6_div"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t6s1"&gt; Confirming that the Scheduler is Configured &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t6s4"&gt; Defining Delivery Destinations&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t6s2"&gt; Creating  Scheduled Report Jobs&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/gettingstarted.htm?print=preview&amp;amp;imgs=visible#t6s3"&gt; Managing Job History  and Jobs&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t6s1" name="t6s1"&gt; Confirming that the Scheduler is Configured &lt;/a&gt;&lt;/h3&gt;Oracle BI Publisher Enterprise enables you to schedule reports, and deliver the executed output to various destinations. BI Publisher Scheduler is configured as a part of Oracle BI Enterprise Edition installation process. However, ensure that the scheduler is configured properly, before you start scheduling the reports. &lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1          .&lt;/th&gt;        &lt;td&gt; Log in (if not logged in) to &lt;strong&gt;BI Publisher&lt;/strong&gt; (Web) as a user with BI Administrator privileges.       &lt;br /&gt;Click &lt;strong&gt;Administration &lt;/strong&gt;link (found at the right top corner of the BI Publisher page): &lt;br /&gt;&lt;img class="imgborder_on" id="t20101" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t20101.gif" /&gt;&lt;br /&gt;In the &lt;strong&gt;Administration&lt;/strong&gt; page, click the &lt;strong&gt;Scheduler Configuration&lt;/strong&gt; link in the &lt;strong&gt;System Maintenance&lt;/strong&gt; section &lt;br /&gt;&lt;img class="imgborder_on" id="t60101" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60101.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2          .&lt;/th&gt;        &lt;td&gt;In the &lt;strong&gt;Scheduler Configuration&lt;/strong&gt; page that appears, click &lt;strong&gt;Test Connection&lt;/strong&gt; in the Database Connection section to check if the scheduler is configured properly.&lt;br /&gt;&lt;img class="imgborder_on" id="t60102c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60102c.gif" /&gt;&lt;br /&gt;This should display the following message indicating the connection was successful:&lt;br /&gt;&lt;img class="imgborder_on" id="t60102a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60102a.gif" /&gt; &lt;br /&gt;Now, you are ready to schedule your reports.&lt;br /&gt;&amp;nbsp; &lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t6s4" name="t6s4"&gt; Defining Delivery Destinations&lt;/a&gt;&lt;/h3&gt;Oracle BI Publisher enables you to setup different delivery destinations such as - Email, Printer, Fax, WebDAV, HTTP, and other destinations, so that you can deliver your reports to these destinations. This topic guides you how to set up your Email and WebDAV destinations using BI Publisher Administration page. &lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1          .&lt;/th&gt;        &lt;td&gt;       In the BI Publisher&lt;strong&gt; Administration&lt;/strong&gt; page, ( you need to login to BI Publisher with BI Administrator privileges to access this page) you see a list of destinations in the&lt;strong&gt; Delivery &lt;/strong&gt;section. &lt;br /&gt;Click&lt;strong&gt; Email &lt;/strong&gt;link in the &lt;strong&gt;Delivery&lt;/strong&gt; section.&lt;br /&gt;&lt;img class="imgborder_on" id="t60401" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60401.gif" /&gt; &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2          .&lt;/th&gt;        &lt;td&gt;In the Email configuration page that appears, Click&lt;strong&gt; Add Server.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t60402" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60402.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3.&lt;/th&gt;             &lt;td&gt;In the Add Server page that appears, &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enter an appropriate name for the mail server in the &lt;strong&gt;Server Name &lt;/strong&gt;field &lt;/li&gt;&lt;li&gt; Enter the Email server  in the &lt;strong&gt;Host&lt;/strong&gt; field&lt;/li&gt;&lt;li&gt;Enter the values in the following fields if applicable—              &lt;ul&gt;&lt;li&gt; General field: Port&lt;/li&gt;&lt;li&gt;Security fields: User Name and Password &lt;/li&gt;&lt;/ul&gt;Click&lt;strong&gt; Apply&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t60403" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60403.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Important Note: &lt;/strong&gt;You must enter a unique name for each server regardless of the type (printer, fax, email, WebDAV, or FTP). &lt;br /&gt;&amp;nbsp; &lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;&lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4.&lt;/th&gt;             &lt;td&gt;Similarly, you can add a WebDAV server as one of the delivery destinations. Click &lt;strong&gt;WebDAV &lt;/strong&gt;link in the Administration page, and click &lt;strong&gt;Add Server&lt;/strong&gt;. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enter An Appropriate name in the &lt;strong&gt;Server Name&lt;/strong&gt; field&lt;b&gt;, &lt;/b&gt;and&lt;b&gt; Host&lt;/b&gt; for the WebDAV server&lt;/li&gt;&lt;li&gt;Enter the following fields if applicable— &lt;ul&gt;&lt;li&gt;General fields: Port&lt;/li&gt;&lt;li&gt;Security fields: Authentication Type (None, Basic, Digest) and Encryption Type (None, SSL).&lt;/li&gt;&lt;li&gt;Proxy Server fields: Host, Port, User Name, Password, Authentication Type (None, Basic, Digest)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t60404" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60404.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t6s2" name="t6s2"&gt; Creating  Scheduled Report Jobs&lt;/a&gt;&lt;/h3&gt;&lt;div class="obe_subtopic"&gt;&amp;nbsp; &lt;/div&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1          .&lt;/th&gt;        &lt;td&gt; Login (If not logged in) to BI Publisher and go to My Folders&amp;gt; Learn folder in Catalog.&lt;br /&gt;Click &lt;strong&gt;Schedule&lt;/strong&gt; link found under the &lt;strong&gt;Employee Salaries by Department&lt;/strong&gt; report.         &lt;br /&gt;&lt;img class="imgborder_on" id="t60201" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60201.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you do not see the Schedule link it is likely that you do not have Scheduler privileges or that the Scheduler is not configured properly. &lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2          .&lt;/th&gt;        &lt;td&gt; This displays the&lt;strong&gt; Schedule Report Job&lt;/strong&gt; page. &lt;br /&gt;In the &lt;strong&gt;General&lt;/strong&gt; tabbed page, you can select report name and parameter values (select&lt;strong&gt; All &lt;/strong&gt;as the value for the Department report parameter).&lt;br /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t60202" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60202.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3          .&lt;/th&gt;        &lt;td&gt;       Click &lt;strong&gt;Output&lt;/strong&gt; tab to define the output options. Ensure that "Use Bursting Definition to Determine Output&amp;amp; Delivery Destination" check box is &lt;strong&gt;not &lt;/strong&gt;selected.&lt;br /&gt;Select the following options: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enter&lt;strong&gt; DeptSal&lt;/strong&gt; as the Name, Select &lt;strong&gt;Departmental Salaries&lt;/strong&gt; from the Layout drop-down list, and select an appropriate output format as &lt;strong&gt;PDF &lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Accept default values for locale, calendar, and select an Appropriate time zone from the drop-down list&lt;/li&gt;&lt;li&gt;Ensure that the &lt;strong&gt;Save Output&lt;/strong&gt; check box is selected&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t60203" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60203.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4          .&lt;/th&gt;        &lt;td&gt;Also, ensure that the &lt;strong&gt;Make Output Public &lt;/strong&gt;option is not selected (if you select this option, all users can see the output of your scheduled report) , and &lt;strong&gt;Save Data for Republishing&lt;/strong&gt; option is selected ( so that you can later republish the report with a different layout and output types).&lt;br /&gt;You can also add a delivery destination for the scheduled report. In the Destination section, select &lt;strong&gt;Email&lt;/strong&gt; as the &lt;strong&gt;Destination Type&lt;/strong&gt; and click &lt;strong&gt;Add Destination. &lt;/strong&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t60203b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60203b.gif" /&gt;&lt;br /&gt;This shows an Email section below the Destination section. Add the mail ids in the To, CC, and Reply To fields as required, add a Subject to the mail, and type the message. &lt;br /&gt;&lt;img class="imgborder_on" id="t60203c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60203c.gif" /&gt;&lt;br /&gt;&lt;strong&gt;Note: &lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For adding destinations for scheduled reports, you should have first configured them in the Administration page. &lt;/li&gt;&lt;li&gt;You can define multiple outputs for a single scheduled job and deliver each to separate destinations. For example, you might want to deliver a PDF output as an attachment to an email to a list of managers. You might also want to deliver the Excel output of the same report to a content management server (via WebDAV) at the same time. &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;5          .&lt;/th&gt;        &lt;td&gt;       Click &lt;strong&gt;Schedule&lt;/strong&gt; tab to define the scheduling options. &lt;br /&gt;Select &lt;strong&gt;Run Now&lt;/strong&gt; option to run the job immediately. Select the &lt;strong&gt;Frequency&lt;/strong&gt; as &lt;strong&gt;Once&lt;/strong&gt; from the drop-down list. &lt;br /&gt;&lt;img class="imgborder_on" id="t60204" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60204.gif" /&gt;&lt;br /&gt;You can also add Email Notification options, (as you have already defined Email  delivery destination).&lt;br /&gt;&lt;img class="imgborder_on" id="t60204a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60204a.gif" /&gt;&lt;br /&gt;Click &lt;strong&gt;Submit&lt;/strong&gt; to submit the schedule. &lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;6          .&lt;/th&gt;        &lt;td&gt;Enter &lt;strong&gt;Employee Salaries by Department-Sched&lt;/strong&gt; as the Job Name and click Submit again.&lt;br /&gt;&lt;img class="imgborder_on" id="t60205a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60205a.gif" /&gt; &lt;br /&gt;&lt;br /&gt;A message is displayed indicating that the job is submitted successfully. Click OK. &lt;br /&gt;&lt;img class="imgborder_on" id="t60205b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60205b.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;7          .&lt;/th&gt;        &lt;td&gt;&lt;strong&gt;Scheduling a Report Job to run Weekly: &lt;/strong&gt;&lt;br /&gt;Follow the steps 1 – 3 listed above to create this job. In step 4, click &lt;strong&gt;Schedule&lt;/strong&gt; tab, and select the following options—&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Select&lt;strong&gt; Weekly&lt;/strong&gt; from the Frequency drop-down list&lt;/li&gt;&lt;li&gt;Ensure that you have entered option to run the report Every week &lt;/li&gt;&lt;li&gt;Select Monday to run the report on every Monday&lt;/li&gt;&lt;li&gt;In the Start and End fields enter the start and end dates for the report, and make sure that the time is 8 am &lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t60205c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60205c.gif" /&gt;&lt;br /&gt;Click Submit to submit the job, and after specifying a name for the job click Submit again. &lt;br /&gt;Select some of the different Frequency patterns available for scheduling the jobs. Note that the &lt;strong&gt;Specific Dates&lt;/strong&gt; option allows you to create a completely custom pattern to meet whatever calendar requirements you have. &lt;br /&gt;&lt;img class="imgborder_on" id="t60204b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60204b.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2 class="obe_section"&gt;&amp;nbsp;&lt;/h2&gt;&lt;h3 class="obe_subtopic"&gt;&lt;a href="" id="t6s3" name="t6s3"&gt; Managing Job History  and Jobs&lt;/a&gt;&lt;/h3&gt;&lt;div class="obe_subtopic"&gt;&amp;nbsp; &lt;/div&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;row=1;document.write(row++);&lt;/script&gt;1          .&lt;/th&gt;        &lt;td&gt;Click &lt;strong&gt;Open&lt;/strong&gt; (found at the top right corner of the page) and select &lt;strong&gt;Report Job History&lt;/strong&gt;. &lt;br /&gt;&lt;img class="imgborder_on" id="t60206b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60206b.gif" /&gt;&lt;br /&gt;The &lt;b&gt;Report Job History&lt;/b&gt; page displays information about running and completed report jobs. You can see the report job that you created in the list as shown in the screen below. ( Note that the job status indicates success). Click the job name link ( Employee Salaries by Department -Sched) . &lt;br /&gt;&lt;img class="imgborder_on" id="t60206c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60206c.gif" /&gt;&lt;br /&gt;You can also enter appropriate Search criteria to search for reports or search for the job history for a specific report. Observe the various search criteria that you can use. &lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;            &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;2          .&lt;/th&gt;        &lt;td&gt;           General job information and other job execution details are deplayed             for the specific report. Click &lt;strong&gt;DeptSal&lt;/strong&gt; (in the Output             Name column) , to see the scheduled report output using the Departmental             Salaries layout that you created.&lt;br /&gt;&lt;img class="imgborder_on" id="t60207a" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60207a.gif" /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t60207b" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60207b.gif" /&gt;&lt;br /&gt;Click&lt;strong&gt; Return&lt;/strong&gt; in BI Publisher. &lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt;: You can also click the &lt;strong&gt;Republish&lt;/strong&gt; option to republish the scheduled job with a different layout and output options.&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th&gt; &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;3          .&amp;nbsp;&lt;/th&gt;        &lt;td&gt;          Similarly, click &lt;strong&gt;Report Jobs&lt;/strong&gt; to see the &lt;strong&gt;Manage             Report Jobs&lt;/strong&gt; page. This page page displays information about             jobs that are scheduled for future dates, and also recurring report             jobs. You can pause, resume, edit, or delete report jobs from this page.&lt;br /&gt;&lt;img class="imgborder_on" id="t60302" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60302.gif" /&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t60302f" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60302f.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th&gt; &lt;script language="JavaScript" type="text/javascript"&gt;document.write(row++);&lt;/script&gt;4          .&amp;nbsp;&lt;/th&gt;        &lt;td&gt; Click in the column beside a job name to select that job .Click &lt;strong&gt;Pause&lt;/strong&gt; to suspend  the job. (Observe that the job status changes to Paused.)&lt;br /&gt;&lt;img class="imgborder_on" id="t60302c" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60302c.gif" /&gt;&lt;br /&gt;If you want to resume the same, click &lt;strong&gt;Resume&lt;/strong&gt;. Similarly, click &lt;strong&gt;Delete &lt;/strong&gt;if you would like to delete the job. &lt;br /&gt;&lt;img class="imgborder_on" id="t60302d" onclick="toggleImage(this)" src="http://st-curriculum.oracle.com/obe/fmw/bi/bip/bip11g/gettingstarted/images/t60302d.gif" /&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="obe_section"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s7" name="s7"&gt;Summary&lt;/a&gt;&lt;/h2&gt;In this tutorial, you have learned how to: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Configure Data Sources &lt;/li&gt;&lt;li&gt;Create Data Model based on SQL query &lt;/li&gt;&lt;li&gt;Create and view simple reports&lt;/li&gt;&lt;li&gt; Build layouts using Layout Editor&lt;/li&gt;&lt;li&gt;Schedule Report Jobs &lt;/li&gt;&lt;li&gt;Manage Job History and Jobs &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-4067003289980615559?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/4067003289980615559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/10/oracle-bi-tutorial-getting-started-with.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/4067003289980615559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/4067003289980615559'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/10/oracle-bi-tutorial-getting-started-with.html' title='Oracle BI Tutorial - Getting Started with Oracle BI Publisher 11g'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-6619977373417424668</id><published>2011-08-23T12:01:00.003+06:00</published><updated>2011-08-23T22:20:20.777+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outlook automation/crm'/><title type='text'>Outlook Email Extractor</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="item"&gt;&lt;div class="item"&gt;&lt;h1 class="fn" id="ctl00_TitleArea_ArticleTitle"&gt;&lt;a href="http://www.codeproject.com/KB/office/Outlook_Addons_Part_I.aspx"&gt;Outlook Addons Programming - Part I&lt;/a&gt;&lt;/h1&gt;&lt;div class="item"&gt;&lt;h1 class="fn" id="ctl00_TitleArea_ArticleTitle"&gt;&lt;a href="http://www.codeproject.com/KB/office/commandbars.aspx"&gt;Adding CommandBars to Outlook 2003 using C#&lt;/a&gt;&lt;/h1&gt;&lt;/div&gt;&lt;h1 class="fn" id="ctl00_TitleArea_ArticleTitle"&gt;&amp;nbsp;&lt;a href="http://www.codeproject.com/script/Articles/ArticleVersion.aspx?aid=20832&amp;amp;av=52011"&gt;Outlook Email Extractor&lt;/a&gt;&lt;/h1&gt;&lt;/div&gt;&lt;div class="item"&gt;&lt;h1 class="fn" id="ctl00_TitleArea_ArticleTitle"&gt;&lt;a href="http://www.codeproject.com/KB/cs/Form1.vb.aspx?display=Print"&gt;Outlook Mail Content Reading and Exporting it in to Text File&lt;/a&gt;&lt;/h1&gt;&lt;h1 class="fn" id="ctl00_TitleArea_ArticleTitle"&gt;&lt;a href="http://www.codeproject.com/KB/office/OutlookSidekick.aspx"&gt;Outlook Automation&lt;/a&gt;&lt;/h1&gt;&lt;h1 class="fn" id="ctl00_TitleArea_ArticleTitle"&gt;&lt;a href="http://www.codeproject.com/KB/office/MiniCRM.aspx"&gt;MiniCRM&lt;/a&gt;&lt;/h1&gt;&lt;h1 class="fn" id="ctl00_TitleArea_ArticleTitle"&gt;&amp;nbsp;&lt;/h1&gt;&lt;h1 class="fn" id="ctl00_TitleArea_ArticleTitle"&gt;&amp;nbsp;Introduction&lt;/h1&gt;Sooner or later, we all have to face the problem of an overloaded  number of emails and mail attachments to our Outlook account. Some of  them are important to our business, as well, so we really need to save  these email messages and attachments. Manually saving messages and  attachments is a time-consuming process. So, we need to export these  emails and other Outlook items to PST (Personal Storage File) files. The  PST file is an archive for all items in an Outlook account. So, after  exporting this file to storage media, we can process the PST file to get  loose data and messages out of it. In this article, I am going to show  you how we can extract this PST file through a .NET application.&lt;br /&gt;&lt;h2&gt;Background &lt;/h2&gt;Basically, to deal with Outlook in a .NET application, we need an  interface named MAPI. MAPI stands for Messaging Application Programming  Interface and is provided by Microsoft for Outlook programming. Using  MAPI, we can access folders like &lt;i&gt;Inbox&lt;/i&gt;, &lt;i&gt;Drafts&lt;/i&gt;, &lt;i&gt;Sent Items&lt;/i&gt;  and so on that reside in a PST file. We can even create sessions and  namespace to fetch items from Outlook or, say, from a PST file.  Currently, MAPI is the only namespace provided by Microsoft to extract  PST files. For further information on MAPI, I suggest newbies visit the  relevant &lt;a href="http://msdn2.microsoft.com/en-us/library/aa142548.aspx"&gt;MSDN article&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;.....................&lt;br /&gt;http://www.addtoany.com/buttons/&lt;/div&gt;&lt;h1 class="fn" id="ctl00_TitleArea_ArticleTitle"&gt;&lt;/h1&gt;&lt;/div&gt;&lt;div class="a2a_kit a2a_default_style"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkurl=www.zakirpro.blogspot.com&amp;amp;linkname=cloudIT"&gt;Share&lt;/a&gt;&lt;br /&gt;&lt;span class="a2a_divider"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a class="a2a_button_facebook" href=""&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="a2a_button_twitter" href=""&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="a2a_button_google_gmail" href=""&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="a2a_button_google_buzz" href=""&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="a2a_button_email" href=""&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="a2a_button_linkedin" href=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;script type="text/javascript"&gt;var a2a_config = a2a_config || {};a2a_config.linkname = "cloudIT";a2a_config.linkurl = "www.zakirpro.blogspot.com";&lt;/script&gt;&lt;br /&gt;&lt;script src="http://static.addtoany.com/menu/page.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-6619977373417424668?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/6619977373417424668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/08/outlook-email-extractor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/6619977373417424668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/6619977373417424668'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/08/outlook-email-extractor.html' title='Outlook Email Extractor'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-5131998242009952151</id><published>2011-08-20T10:50:00.001+06:00</published><updated>2011-08-23T21:48:06.596+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outlook automation/crm'/><title type='text'>Synchronizing a Local Data Store with Microsoft Outlook</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="topicContainer"&gt;&lt;div class="topic"&gt;&lt;h1 class="title"&gt;Synchronizing a Local Data Store with Microsoft Outlook&lt;/h1&gt;&lt;br /&gt;&lt;div id="nstext"&gt;Applies to:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft Office Outlook 2003&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft Visual Studio 2005&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft Visual Studio 2005 Tools for the Microsoft Office System&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft SQL Server 2005, Express Edition&lt;br /&gt;&lt;b&gt;Summary:&lt;/b&gt; Utilize a SQL Express database as a local  data cache and the programmability of Microsoft Outlook to integrate  enterprise CRM data within the Outlook user interface. (25 printed  pages)&lt;br /&gt;Click &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=078124E9-1E88-4F51-8C98-3C1999CFE743&amp;amp;displaylang=en"&gt;here&lt;/a&gt; to download The CRM Integration for Outlook sample.&lt;br /&gt;&lt;br /&gt;&lt;h4 class="dtH1"&gt;Contents&lt;/h4&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa479346.aspx#otlkldssynch_topic1"&gt;Executive Summary&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa479346.aspx#otlkldssynch_topic2"&gt;Introduction&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa479346.aspx#otlkldssynch_topic3"&gt;Local Data Store&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa479346.aspx#otlkldssynch_topic4"&gt;Data Synchronization Requirements&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa479346.aspx#otlkldssynch_topic5"&gt;Implementation Commentary&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa479346.aspx#otlkldssynch_topic6"&gt;Conclusion&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa479346.aspx#otlkldssynch_topic7"&gt;Companion Resources&lt;/a&gt;&lt;br /&gt;&lt;h2 class="dtH1"&gt;Executive Summary&lt;/h2&gt;Many organizations have made multi-million dollar investments in  customer relationship management (CRM) systems and line of business  (LOB) applications over the last decade. Although many of these  applications have delivered significant business benefits, some  organizations have found that these bespoke systems have not provided  the expected returns on investment. One of the argued reasons for this  is that specialized enterprise systems, databases, and applications do  not integrate well with information worker workflows.&lt;br /&gt;This paper is the second in a series of papers that presents an  architectural design guide and sample application that demonstrates an  approach for integrating enterprise CRM and other LOB applications with  Microsoft Outlook. The guidance in this paper originated from  Microsoft's Project Elixir, an internal Microsoft IT initiative to  integrate critical customer data with Outlook. The design uses Microsoft  Visual Studio 2005 Tools for Office (VSTO), Microsoft SQL Server 2005  Express Edition (SQL Server Express), and Web services. &lt;br /&gt;To support disconnected operation, and to improve performance and  keep the size of the user's mailbox to a minimum, the sample solution  uses a local data cache in a SQL Server Express database. This paper  discusses the structure of the SQL Server Express database and examines  how data is synchronized between the data files in Outlook and the local  database. For more information about the overall solution architecture,  see &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/OtlkLOBCRM.asp"&gt;Extending Enterprise Applications with Microsoft Outlook: Architectural Design Guide&lt;/a&gt;. For more information about the other papers in the series and links to the sample code, see the &lt;a href="http://msdn.microsoft.com/en-us/library/aa479346.aspx#otlkldssynch_topic7"&gt;Companion Resources&lt;/a&gt; section at the end of this paper.&lt;br /&gt;&lt;h2 class="dtH1"&gt;Introduction&lt;/h2&gt;In most industries in which people work with information, Microsoft  Office is an integral part of daily work. Over four hundred million  people rely on Microsoft Office applications to capture, publish, and  process critical business information. It is an essential tool for  creating content, making decisions, and communicating with one another.  In large organizations, this critical business information often resides  in large databases. For example, customer contact information is often  maintained in dedicated, centralized CRM applications.  &lt;br /&gt;Unfortunately, many of these LOB applications provide a poor user  experience, with cumbersome and unintuitive client interfaces. Often the  applications do not integrate well with the desktop productivity  applications that information workers use constantly, such as Microsoft  Office, and Outlook in particular. Users increasingly require  application interfaces that are:   &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Easy to learn and use.&lt;/li&gt;&lt;li&gt;Tailored to specific job functions and roles.&lt;/li&gt;&lt;li&gt;Compatible with daily workflows.&lt;/li&gt;&lt;li&gt;Integrated with their other applications.&lt;/li&gt;&lt;/ul&gt;Information workers need to be able to analyze, manipulate, and act  on the information in business systems. Information restricted to  corporate databases with limited and awkward access is of little  benefit. The challenge is to provide a coherent and aggregated view of  business data for information workers to enable them to collaborate more  effectively with coworkers; to exercise oversight; and to make quicker,  more localized decisions to help drive the business.&lt;br /&gt;This paper describes a sample Outlook add-in solution that Microsoft  developed to provide access to back-office data held in a fictitious CRM  system through the Outlook user interface. The sample add-in provides  custom forms and custom processing inside the familiar Outlook user  interface (UI).&lt;br /&gt;The solution architecture adopted by the sample supports disconnected  operations to enable information workers to continue using the system  even without network connectivity. To support this, data from the  fictitious CRM system is cached in a local SQL Server Express database.  Some of the CRM data in the local cache corresponds to information  already cached in the local data file in Outlook. Other cached CRM data,  although related to the Outlook data, is not normally kept in this  file. This paper describes the operation of the local synchronization of  data between Outlook and the SQL Server Express cache.&lt;br /&gt;The sample CRM add-in solution code discussed in this paper is available for download at &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=078124E9-1E88-4F51-8C98-3C1999CFE743&amp;amp;displaylang=en"&gt;the Microsoft CRM Integration Sample for Outlook Source Setup download page&lt;/a&gt;.&lt;br /&gt;&lt;h3 class="dtH1"&gt;Architecture&lt;/h3&gt;The solution architecture consists of a custom Outlook add-in built  with Visual Studio Tools for Office, a local SQL Server Express database  that serves as a local data cache, and a remote synchronization agent  (CRM Sync Agent). The add-in contains a local synchronization engine  (Sync Engine) that synchronizes data between Outlook and the local SQL  Server Express cache, while the CRM synchronization agent synchronizes  data between the local cache and the back-office CRM system. Figure 1  shows the high-level solution architecture for the sample CRM add-in. &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/Aa479346.otlkldssynch01%28l=en-us%29.gif"&gt;&lt;img alt="Click here for larger image" id="otlkldssynch01S" src="http://i.msdn.microsoft.com/dynimg/IC132666.gif" title="Click here for larger image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 1. Overview of the sample CRM add-in system components (Click on the image for a larger picture)&lt;/b&gt;&lt;/div&gt;The sample CRM add-in that accompanies this whitepaper provides  source code for all aspects of the described architecture except for the  CRM Sync Agent. Due to the complexity and diversity of enterprise  back-office CRM systems, it was not possible to provide a simple,  generic CRM Sync Agent.&lt;br /&gt;&lt;h3 class="dtH1"&gt;Outlook Add-in&lt;/h3&gt;A core component of the sample solution architecture is the Outlook  VSTO add-in, which extends the Outlook UI by displaying a custom toolbar  and custom forms to display CRM data. The add-in is registered with  Outlook when the solution is deployed.&lt;br /&gt;The add-in integrates with Outlook four types of CRM data retrieved  from a Web service that provides an interface to the remote CRM System.  The data includes CRM accounts, CRM activities, CRM contacts, and CRM  opportunities. The data is exposed as a variety of Outlook objects  within the folder hierarchy of the Outlook folder list. Each CRM account  is associated with a custom folder in the Outlook folder list window.  Each account folder contains a set of CRM activities, CRM contacts, and  CRM opportunities related to it. At the root of the CRM folder hierarchy  is the CRM Today folder, which provides an overall summary of all the  CRM information.&lt;br /&gt;When the user starts Outlook, the registered sample add-in is loaded and the initialization code performs the following tasks:  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Determines whether the CRM Today folder exists. If it does not, the code creates the folder.&lt;/li&gt;&lt;li&gt;Folders and items in Outlook are synchronized with data that has  been loaded into the local SQL Server Express database from the remote  CRM system.&lt;/li&gt;&lt;li&gt;Account folders in the local database are synchronized with Outlook  data, and for each account folder, items and their properties in the  local database are synchronized with the Outlook data.&lt;/li&gt;&lt;li&gt;A custom CRM toolbar and buttons are added to the standard Outlook UI.&lt;/li&gt;&lt;li&gt;Additional custom forms display within Outlook to show the CRM data.&lt;/li&gt;&lt;/ul&gt;The add-in itself handles the data synchronization between the  Outlook objects and the local database file. To do this, the internal  architecture of the add-in separates the code into the following three  main areas, as shown previously in Figure 1.  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Managed&lt;/b&gt; &lt;b&gt;Utility Classes.&lt;/b&gt; These  classes simplify common Outlook development tasks and enhance the ease  with which a managed code Outlook add-in can be built. The classes were  designed to complement and extend the baseline Outlook extensibility  provided by the native Outlook object model.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Sync Engine.&lt;/b&gt; The engine performs synchronization  between data rows in the SQL Server Express database and Outlook objects  in the Outlook data store.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Data Access Code.&lt;/b&gt; This code handles data access to the local SQL Server Express database.&lt;/li&gt;&lt;/ul&gt;The &lt;b&gt;AddInLoader&lt;/b&gt; component, also shown in figure 1,  uses the Visual Studio 2005 Tools for Office (VSTO 2005) run-time engine  to provide a standard mechanism for loading both document-level  customizations and application-level add-ins into Office applications.  For more information about the &lt;b&gt;AddInLoader&lt;/b&gt; component, see the paper, &lt;a href="http://msdn.microsoft.com/en-us/library/ms406188.aspx"&gt;Architecture of the Outlook Add-in Support in Visual Studio 2005 Tools for Office&lt;/a&gt;.&lt;br /&gt;The Outlook add-in template in VSTO 2005 creates a project that  references the VSTO runtime and Office interop assemblies to enable the  add-in code to work with the COM Outlook object model. However, the  organization of the COM Outlook object model is generally not familiar  to .NET programmers. So the sample CRM add-in solution architecture adds  a further layer of managed utility classes. This managed utility  classes layer was developed with reuse in mind to simplify common  Outlook development tasks, and could be useful in other Outlook add-in  solutions.&lt;br /&gt;For more information about how the Outlook UI was customized and  extended to display CRM data and custom forms for this sample add-in see  "Outlook Customization for Integrating with Enterprise Applications" at  &lt;a href="http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnbda/html/OtlkCustInEntApp.asp"&gt;http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnbda/html/OtlkCustInEntApp.asp&lt;/a&gt;.&lt;br /&gt;&lt;h2 class="dtH1"&gt;Local Data Store&lt;/h2&gt;Many add-in users, such as an organization's mobile sales force, need  to be able to use the add-in while not connected to the corporate  network. To support disconnected operations, the sample CRM add-in uses a  local data store to enable Outlook and the add-in to operate even when  the remote CRM system is not available. When operating offline, the  add-in saves changes to the local data store. Then, when the network is  detected, the CRM synchronization agent synchronizes changes with the  back-end CRM system.&lt;br /&gt;Depending on the amount of data changes, the synchronization activity  can be time consuming and resource intensive. Using a local data store  enables the add-in and synchronization agent for the CRM system to  operate independently. This configuration can provide enhanced  performance, because the CRM synchronization agent can run when spare  local processing and network capacity are available.&lt;br /&gt;You have a number of possible options for local data storage. The  following section examines the rational for the sample implementation  using a SQL Server Express database, as well as other alternatives  available to you.&lt;br /&gt;&lt;h3 class="dtH1"&gt;Choosing a Local Data Store&lt;/h3&gt;The following choices represent the main options for a local data store:  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Outlook data file&lt;/li&gt;&lt;li&gt;Local data file&lt;/li&gt;&lt;li&gt;Local database&lt;/li&gt;&lt;/ul&gt;The pros and cons of each approach are discussed below.&lt;br /&gt;&lt;h4 class="dtH1"&gt;Outlook Data File&lt;/h4&gt;Using the Outlook data file might be an instinctive choice. For  example, if you wanted to synchronize a limited number of contacts from a  CRM system with the standard Outlook contacts, using this approach  might be appropriate because the Outlook object model gives you the  ability to create, modify, and delete Outlook objects. &lt;br /&gt;In many CRM synchronization scenarios, the data fields in the CRM  objects to be synchronized (for example, contacts, activities, and so  on) have corresponding fields in the native Outlook objects. However,  there are some additional fields associated with a CRM object that must  be integrated with Outlook, but do not exist in a standard Outlook data  file. Fortunately, you can extend Outlook data by using custom  properties. For example, you could create an additional property, such  as Sales Pipeline Status, to a standard Outlook &lt;b&gt;Task&lt;/b&gt;  object to accommodate an additional data field from a CRM system. You  can access and display these new properties from the add-in custom  forms. Similarly, you can program the add-in to connect to the remote  CRM system by using Outlook custom fields to track the synchronization  of data.&lt;br /&gt;Unfortunately, using the Outlook data file is not always an efficient  option. As the quantity of data increases, performance can be impacted.  In addition, the Outlook object model is not relational. This results  in slow iterations of collections and requires you to develop and  maintain large amounts of code.&lt;br /&gt;Another potential issue with using the Outlook file occurs when you  use Outlook in conjunction with a Microsoft Exchange server. As the  Outlook file grows, the performance of the Exchange replication process  decreases. You might, for example, need to change the Exchange setup to  increase mailbox size to accommodate the extra data. Such a change might  be unpopular within some organizations that want to maintain the  stability of their Exchange installation by minimizing adjustments to  it.&lt;br /&gt;&lt;h4 class="dtH1"&gt;Local Data File&lt;/h4&gt;A local data file external to Outlook can provide advantages over  using the Outlook data file itself. The Outlook add-in and agents of the  remote CRM system can access an external file without having to run  inside the Outlook add-in. This means that the synchronization can take  place at different times, resulting in improved performance for users.&lt;br /&gt;The local data file could be a simple Extensible Markup Language  (XML) file, or a customized binary format. XML has the advantage of  interoperability with other systems, but has the disadvantages of size  and inefficient parsing and processing. Also, the .NET Framework  provides rich support for XML processing. Although a custom binary file  could offer performance advantages over XML, the development complexity  increases.&lt;br /&gt;&lt;h4 class="dtH1"&gt;Local Database&lt;/h4&gt;Using a local database as a local data store provides an "open" data  structure and relational processing capability. Using a local database  also means that you can use SQL for data operations. In addition, Visual  Studio supports the development of data access code for many database  systems that you can use locally.&lt;br /&gt;&lt;h4 class="dtH1"&gt;Choosing to Use SQL Server Express&lt;/h4&gt;The sample CRM add-in uses SQL Server Express to implement the data  store because SQL Server Express provides several key benefits:  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Extensive support in Visual Studio.&lt;/b&gt; This provides a  seamless development experience to create and structure the database,  and to implement and debug the data access code that the add-in  requires.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Ease of deployment.&lt;/b&gt; You can prepare a SQL Server  Express data file with the required schema and then deploy it with the  add-in using a simple file copy.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Performance.&lt;/b&gt; SQL Server Express runs SQL and performs fast relational processing that is automatically tuned.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Synchronization support.&lt;/b&gt; SQL Server Express can  take part in SQL Server database replication, which provides one  possible synchronization option for the back-end CRM data.&lt;/li&gt;&lt;/ul&gt;The openness of SQL Server Express also makes it easier to develop  additional agents in the future to synchronize data with additional LOB  applications. The database can be extended as required for each remote  system.&lt;br /&gt;&lt;h3 class="dtH1"&gt;SQL Server Express Database Schema&lt;/h3&gt;You can prepare a SQL Server Express data file with the schema for a  custom CRM add-in to use, and then deploy it by using the add-in. This  section shows you the structure of the CRM database from the sample  solution that you can use as a model. You can use Visual Studio both to  create a SQL Server Express database and to add tables and data columns.&lt;br /&gt;For more information about how to use and administer SQL Server Express, see &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=BE6A2C5D-00DF-4220-B133-29C1E0B6585F&amp;amp;displaylang=en"&gt;SQL Server Express Books Online&lt;/a&gt;.&lt;br /&gt;Figure 2 shows the schema of the sample SQL Server Express database.  This is an example of how the client database could be structured for a  CRM system.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/Aa479346.otlkldssynch02%28l=en-us%29.gif"&gt;&lt;img alt="Click here for larger image" id="otlkldssynch02S" src="http://i.msdn.microsoft.com/dynimg/IC118792.gif" title="Click here for larger image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 2. The local SQL Server Express database schema for the sample CRM add-in (Click on the image for a larger picture)&lt;/b&gt;&lt;/div&gt;The sample local database holds the CRM data in a normalized schema with the following tables:  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Accounts.&lt;/b&gt; Stores customer account data.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Activities.&lt;/b&gt; Stores CRM activity data; relates to accounts.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Contacts.&lt;/b&gt; Stores customer contact information; relates to accounts.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Opportunities.&lt;/b&gt; Stores CRM opportunity data; relates to accounts.&lt;/li&gt;&lt;li&gt;&lt;b&gt;ActivityContact.&lt;/b&gt; Stores the relationship between a CRM activity and its contacts (for the same account).&lt;/li&gt;&lt;li&gt;&lt;b&gt;OpportunityActivity.&lt;/b&gt; Stores the relationship between a CRM activity and its opportunities (for the same account).&lt;/li&gt;&lt;li&gt;&lt;b&gt;OpportunityContacts.&lt;/b&gt; Stores the relationship between a CRM opportunity and its contacts (for the same account).&lt;/li&gt;&lt;/ul&gt;&lt;h4 class="dtH1"&gt;Primary and Foreign Keys&lt;/h4&gt;Each table in the local database has three keys.  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;LocalID.&lt;/b&gt; The table primary key. &lt;b&gt;LocalID&lt;/b&gt;  has been designed as a SQL type unique identifier. This means that each  row can have its own globally unique identifier (GUID) generated.&lt;/li&gt;&lt;li&gt;&lt;b&gt;OutlookID.&lt;/b&gt; Holds copies of the keys that Outlook  uses. Outlook maintains a key on all its folders and items, and this is  represented in the local database in the column &lt;b&gt;OutlookID&lt;/b&gt; of type &lt;b&gt;varchar&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RemoteID.&lt;/b&gt; Indicates the position of a key for a remote CRM system.&lt;/li&gt;&lt;/ul&gt;Details about the keys and synchronization data held in the local  database from the remote CRM system are beyond the scope of this paper.  The columns &lt;b&gt;RemoteID&lt;/b&gt;, &lt;b&gt;RemoteVersion&lt;/b&gt;, and &lt;b&gt;SyncStatus&lt;/b&gt; indicate the kind of columns that might be used during synchronization with a remote CRM system.&lt;br /&gt;&lt;h4 class="dtH1"&gt;Additional Columns&lt;/h4&gt;Some of the other table columns are present in the schema to provide a  local store for data that is also kept in the Outlook data file, but  this needs to be synchronized with the remote CRM system so that they  become available to other users. For example, in the &lt;b&gt;Activities&lt;/b&gt; table column, &lt;b&gt;Name&lt;/b&gt;, &lt;b&gt;DueDate&lt;/b&gt;, and &lt;b&gt;Comments&lt;/b&gt; correspond to the Outlook fields &lt;b&gt;Subject&lt;/b&gt;, &lt;b&gt;DueDate&lt;/b&gt;, and &lt;b&gt;Body&lt;/b&gt;.&lt;br /&gt;The sample add-in solution implements a generic local synchronization  engine that has been designed to work in a broad array of Outlook data  synchronization scenarios. The mapping between data columns and Outlook  item properties works declaratively with custom C# attributes that are  used to indicate the relationship between data columns and their  corresponding Outlook fields. The synchronization engine reads the  custom attributes at runtime.&lt;br /&gt;Other columns are present in the schema, but have no equivalent in  Outlook. These columns provide local storage for data used in the custom  forms that the add-in provides, and they are also synchronized with the  remote CRM system. For example, in the Activities table, the columns &lt;b&gt;Type&lt;/b&gt;, &lt;b&gt;Category&lt;/b&gt;, and &lt;b&gt;Purpose&lt;/b&gt; exist in the CRM system, but have no corresponding fields in a standard Outlook installation.&lt;br /&gt;&lt;h2 class="dtH1"&gt;Data Synchronization Requirements&lt;/h2&gt;In the sample CRM application, changes made to the data in the  Outlook add-in are saved in the Outlook data file and the local  database. To keep the enterprise data systems and other CRM users  up-to-date, it is assumed that the local changes are then written to the  back-end CRM system, but an implementation of this remote synch code is  not included in the sample.&lt;br /&gt;Similarly, changes that other user make are loaded into the local  database by the agent and are synchronized with the Outlook data when  the add-in starts. Through this mechanism, changes to the CRM data are  synchronized between users of the add-in and users of the back-end CRM  system. The route that the data takes through the local database and the  CRM synchronization agent operates independently of any synchronization  of data between Outlook and Exchange.&lt;br /&gt;This section describes the general data synchronization patterns for  an Outlook add-in using a local SQL Server Express database as a local  cache of CRM data, and includes:  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Start-up synchronization for Outlook and local database.&lt;/li&gt;&lt;li&gt;Standard form data synchronization.&lt;/li&gt;&lt;li&gt;Custom form data synchronization for the data that the add-in custom forms use.&lt;/li&gt;&lt;li&gt;The generalized synchronization engine.&lt;/li&gt;&lt;/ul&gt;You can use the results of the analysis presented in the subsequent  sections to help guide your implementation of local data  synchronization.&lt;br /&gt;&lt;h3 class="dtH1"&gt;Start-up Synchronization&lt;/h3&gt;When planning data flows, there are three primary considerations:  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Data location.&lt;/b&gt; You need to determine if the data  will be stored in both the Outlook file and the local database, or only  stored in the local database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Data operations.&lt;/b&gt; You need to establish the operations that will be performed on the data (read, write, delete).&lt;/li&gt;&lt;li&gt;&lt;b&gt;Data modifiers.&lt;/b&gt; You need to determine which components will accomplish the data operations (the add-in, Outlook, or both).&lt;/li&gt;&lt;/ul&gt;Figure 3 shows part of the start-up synchronization process in which  the rows of the Activities data table are being synchronized into &lt;b&gt;Task&lt;/b&gt; objects in Outlook.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/Aa479346.otlkldssynch03%28l=en-us%29.gif"&gt;&lt;img alt="Click here for larger image" id="otlkldssynch03S" src="http://i.msdn.microsoft.com/dynimg/IC135379.gif" title="Click here for larger image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 3. Start-up synchronization of Activities (Click on the image for a larger picture)&lt;/b&gt;&lt;/div&gt;In this scenario, the data rows are taken to contain the master copy  of the data. The database may contain some rows with an existing &lt;b&gt;OutlookID&lt;/b&gt;  key; for these rows, the fields in the corresponding Outlook items can  be updated to match any new values. The dotted arrows in Figure 3 show  the mapping between data columns and Outlook field names.&lt;br /&gt;The database may also contain new rows without &lt;b&gt;OutlookID&lt;/b&gt; key values. These need to be added as new Outlook items. When adding a new item to Outlook, a new value of the Outlook key (&lt;b&gt;EntryID&lt;/b&gt;)  will be generated, and you must store this in the database. Finally,  items in Outlook without matching data rows need to be removed.&lt;br /&gt;&lt;h3 class="dtH1"&gt;Standard Form Data Synchronization&lt;/h3&gt;The sample add-in uses the standard Outlook contact form to edit and  add contacts data, and this keeps the Outlook data file up-to-date.  Figure 4 shows that synchronization in the direction from Outlook to the  local database is required whenever the standard Contact form is saved.  &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/Aa479346.otlkldssynch04%28l=en-us%29.gif"&gt;&lt;img alt="Click here for larger image" id="otlkldssynch04S" src="http://i.msdn.microsoft.com/dynimg/IC153791.gif" title="Click here for larger image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 4. Standard Outlook Contact form data is synchronized into the local database (Click on the image for a larger picture)&lt;/b&gt;&lt;/div&gt;&lt;h3 class="dtH1"&gt;Custom Form Data Synchronization&lt;/h3&gt;The sample add-in provides custom forms to allow the user to add and  edit CRM data. So in addition to the start-up synchronization, the  add-in needs to synchronize data from custom forms with the local  database and Outlook.&lt;br /&gt;Figure 5 shows a custom form using data from the local database. Three different uses of data are identified:  &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Read-only data.&lt;/li&gt;&lt;li&gt;Data for editing with no corresponding field in Outlook.&lt;/li&gt;&lt;li&gt;Data for editing with a corresponding field in Outlook.&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/Aa479346.otlkldssynch05%28l=en-us%29.gif"&gt;&lt;img alt="Click here for larger image" id="otlkldssynch05S" src="http://i.msdn.microsoft.com/dynimg/IC101218.gif" title="Click here for larger image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 5. Custom form using data from the local database (Click on the image for a larger picture)&lt;/b&gt;&lt;/div&gt;Where CRM data is required for display only (A), the add-in requires  read-only access to the data in the database. When a custom form enables  the user to edit some CRM data, but the data column has no  corresponding data field in Outlook (B), then the add-in requires  read-write access to the database.&lt;br /&gt;If a custom form enables the user to edit some CRM data that has a  corresponding data field in Outlook (C), updates are required both into  the database data and the Outlook item.&lt;br /&gt;&lt;h3 class="dtH1"&gt;Generalized Synchronization Engine&lt;/h3&gt;Although the proceeding scenarios appear to be different at the  outset, a common synchronization pattern does emerge. The custom form  synchronization turns out to be a single example of synchronization for a  specific type of Outlook item, whereas the start-up synchronizations  are performed for every item in a folder, and there are several  different Outlook item types. By designing a generalized way to handle  an Outlook item, the same synchronization engine can be used for both  synchronization scenarios.&lt;br /&gt;In addition, the internal architecture of the sample add-in (see  Figure 1) uses a separate utility layer to manage the Outlook objects.  This enables the generalized synchronization engine to be separated from  the detail of handling different Outlook item types, and allows the  creation of a generalized component that can process any of the  synchronizations required by the add-in and can be reused in future  developments.&lt;br /&gt;&lt;h2 class="dtH1"&gt;Implementation Commentary&lt;/h2&gt;In order to create the local database access required by the CRM  add-in as quickly as possible, the productivity tools available in  Visual Studio were utilized. This section shows how the data access and  synchronization requirements identified in the previous section have  been implemented in the sample CRM add-in.&lt;br /&gt;&lt;h3 class="dtH1"&gt;Data Access&lt;/h3&gt;The synchronization requirements identify data that you can update to  enable a filtered selection (in some cases) and to add and delete rows.  The &lt;b&gt;System.Data.DataSet&lt;/b&gt; type was selected as the basis  for the data manipulation performed by the add-in. The .NET Framework  data provider for SQL Server (the types in the &lt;b&gt;System.Data.SqlClient&lt;/b&gt; namespace) was selected to move data in and out of the database.&lt;br /&gt;An alternative approach for data access would be to use custom  business objects instead of data sets. This approach is particularly  attractive if custom business objects are already available. &lt;br /&gt;&lt;h3 class="dtH1"&gt;Typed Data Sets&lt;/h3&gt;To provide type safety and ease of maintenance for the data  manipulation code, the team chose to use typed dataset objects, and  chose Visual Studio to generate the code for the properties of the &lt;b&gt;DataTable&lt;/b&gt; and &lt;b&gt;DataRow&lt;/b&gt;  classes. The typed dataset is created in the Visual Studio dataset  designer, which makes the data access implementation as easy to write  and maintain as possible.&lt;br /&gt;&lt;h3 class="dtH1"&gt;Data for Folder Synchronization&lt;/h3&gt;The first task for the add-in when it starts is to synchronize the  data for customer account folders in the local database with the folders  in Outlook.&lt;br /&gt;To get the data needed for folder synchronization, the sample  solution has added data tables to a typed dataset designer for all of  the tables in the SQL Server Express database. The data are selected by  using SQL, and commands for update, insert, and delete are generated by  the designer. Note that the generated classes are split between two  source files by using the &lt;b&gt;partial&lt;/b&gt; keyword. One file contains the generated code, and the other contains space for you to adapt and extend the generated classes.&lt;br /&gt;For example, Figure 6 shows the data table for the Accounts table and its adapter. The designer has generated the &lt;b&gt;Fill&lt;/b&gt; and &lt;b&gt;GetData&lt;/b&gt; methods for the table adapter.&lt;br /&gt;&lt;div class="fig"&gt;&lt;img alt="Aa479346.otlkldssynch06(en-us,MSDN.10).gif" id="otlkldssynch06" src="http://i.msdn.microsoft.com/dynimg/IC5028.gif" title="Aa479346.otlkldssynch06(en-us,MSDN.10).gif" /&gt;&lt;/div&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 6. The Accounts table adapter&lt;/b&gt;&lt;/div&gt;Although all of the Accounts table's records are needed for the  folder synchronization with Outlook, when the data for synchronizing  activities, contacts, and opportunities is fetched, it must be selected  for each of the accounts in turn.&lt;br /&gt;To provide the data for synchronizing activities, contacts, and  opportunities, the solution adds additional SQL queries to the table  adapters. For example, Figure 7 shows the Activities table adapter under  development.&lt;br /&gt;&lt;div class="fig"&gt;&lt;img alt="Aa479346.otlkldssynch07(en-us,MSDN.10).gif" id="otlkldssynch07" src="http://i.msdn.microsoft.com/dynimg/IC169243.gif" title="Aa479346.otlkldssynch07(en-us,MSDN.10).gif" /&gt;&lt;/div&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 7. The Activities table adapter&lt;/b&gt;&lt;/div&gt;The &lt;b&gt;FillByAccountID&lt;/b&gt; and &lt;b&gt;GetDataByAccountID&lt;/b&gt; methods use a SQL query with a parameter (in this sample, the parameter is &lt;b&gt;@accountID&lt;/b&gt;).&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode0"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;SELECT AccountID, Category, Comments, Description, &lt;br /&gt;DueDate, LocalID, Name, OutlookID, Purpose, RemoteID, &lt;br /&gt;RemoteVersion, Status, SyncStatus, Type&lt;br /&gt;FROM Activities&lt;br /&gt;WHERE (AccountID = @accountID)&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The method generated from this SQL query can then be called by using a  single parameter. This sample code illustrates the ease of coding and  maintenance that results from using the dataset designer and its code  generation.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode1"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;CrmDataSetTableAdapters.ActivitiesTableAdapter activitiesAdapter&lt;br /&gt;        = new CrmDataSetTableAdapters.ActivitiesTableAdapter();&lt;br /&gt;CrmDataSet.ActivitiesDataTable activitiesTable&lt;br /&gt;        = activitiesAdapter.GetDataByAccountID(account.LocalID);&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="dtH1"&gt;Managed Utility Classes&lt;/h3&gt;The sample add-in solution includes a set of managed utility classes  to help handle the COM interop code that the VSTO 2005 Outlook template  adds. These classes help handle the folders and items that are required  by the synchronization in a generalized way, simplifying common Outlook  development tasks. Table 1 lists the classes that are used in the  examples in this paper.&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Table 1. Outlook Utility Classes&lt;/b&gt;&lt;/div&gt;&lt;div class="tablediv"&gt;&lt;table class="dtTABLE"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Class&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Folder&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Helps return and create Outlook folders. Also helps to navigate the folder tree, for example by returning a root folder.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;ItemAdapter&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Provide a generic Outlook  item type to enable polymorphic access to the baseline functionality  provided by all Outlook item types (for example, e-mail, tasks,  contacts, and so on). Implements a small subset of methods shared by all  Outlook items: &lt;b&gt;Save&lt;/b&gt;, &lt;b&gt;Class&lt;/b&gt;, and &lt;b&gt;EntryID&lt;/b&gt;. Refer to the ItemAdapter section in this paper for further information."&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h3 class="dtH1"&gt;Generalized Synchronization Engine&lt;/h3&gt;The sample CRM add-in implementation also includes classes that form a  generalized synchronization engine shown in the solution architecture  in Figure 1 as the &lt;b&gt;Sync Engine&lt;/b&gt; component.&lt;br /&gt;This section describes how the sample CRM add-in code uses the  generalized synchronization engine. Table 2 lists the synchronization  engine classes.&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Table 2. Synchronization Engine Classes&lt;/b&gt;&lt;/div&gt;&lt;div class="tablediv"&gt;&lt;table class="dtTABLE"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Class&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SyncDirection (enum)&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Contains &lt;b&gt;ItemToOutlook&lt;/b&gt; and &lt;b&gt;OutlookToItem&lt;/b&gt; values.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SyncEngine&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Contains methods to perform synchronization between folders and row data, and between items and row data.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SyncInfo&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Helps by collecting information about an item from the item's attributes.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;The &lt;b&gt;SyncEngine&lt;/b&gt; class contains methods to perform  synchronization between managed utility classes and data rows. Table 3  shows some of the methods used by the sample CRM add-in.&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Table 3. Synchronization Engine Methods&lt;/b&gt;&lt;/div&gt;&lt;div class="tablediv"&gt;&lt;table class="dtTABLE"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Method&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SyncFolders&lt;/b&gt;&lt;/td&gt;&lt;td&gt;This method ensures that  the folders underneath the specified parent folder match the list of  folder items in the specified collection. Folders underneath the parent  that are not in the collection are deleted. Folders that are in the  collection are synchronized by calling the &lt;b&gt;SyncOutlookFolder&lt;/b&gt; delegate.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SyncItems&lt;/b&gt;&lt;/td&gt;&lt;td&gt;This method ensures that the  items in the folder specified and the items in the collection specified  are in sync. Items missing from the folder are added. Items existing in  the folder are updated as needed. Items in the folder that are not in  the database are processed by the calling code through the &lt;b&gt;ProcessOutlookItem&lt;/b&gt; delegate. If no delegate is provided, the extra items are deleted.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SyncItem&lt;/b&gt;&lt;/td&gt;&lt;td&gt;This method iterates through the properties marked with the &lt;b&gt;OutlookFieldSync&lt;/b&gt; attribute and updates the version of each property in Outlook if it differs from the data row. Returns &lt;b&gt;true&lt;/b&gt; if changes are made to the Outlook item, &lt;b&gt;false&lt;/b&gt; if no changes were made.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;The synchronization engine defines two delegates for running  functions in the calling program during the synchronization process: &lt;b&gt;ProcessOutlookItem&lt;/b&gt; and &lt;b&gt;SyncOutlookFolder&lt;/b&gt;.&lt;br /&gt;&lt;h4 class="dtH1"&gt;Interface for Data Synchronization&lt;/h4&gt;The synchronization engine defines the interface &lt;b&gt;IOutlookSyncItem&lt;/b&gt; to implement on the generated typed data row classes. The interface has a single property of type &lt;b&gt;string&lt;/b&gt; to return the Outlook key value. You can implement the interface for each of the data row classes and set and return the &lt;b&gt;OutlookID&lt;/b&gt; property.&lt;br /&gt;For example, the implementation for a row in the Activities table is shown here.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet2"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode2"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;partial class ActivitiesRow : Utility.IOutlookSyncItem&lt;br /&gt;{&lt;br /&gt;   string Utility.IOutlookSyncItem.EntryID&lt;br /&gt;   {&lt;br /&gt;      get { return this.OutlookID; }&lt;br /&gt;      set { this.OutlookID = value; }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 class="dtH1"&gt;Attributes for Data Mapping&lt;/h4&gt;The synchronization engine uses custom attributes, attached to the  data rows that it has passed, to retrieve information that maps the row  properties onto corresponding properties of Outlook objects. Table 4  table shows the custom attributes.&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Table 4. Synchronization Engine Custom Attribute Classes&lt;/b&gt;&lt;/div&gt;&lt;div class="tablediv"&gt;&lt;table class="dtTABLE"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Attribute&lt;/th&gt;&lt;th&gt;Targets&lt;/th&gt;&lt;th&gt;Properties&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;OutlookCustomSyncInfo&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;td&gt;&lt;b&gt;MethodName.&lt;/b&gt; Returns the name of the data row method to call to get the mapping data.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;OutlookItemSync&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;td&gt;&lt;b&gt;ItemType.&lt;/b&gt; Returns the Outlook item type.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;OutlookFieldSync&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Property&lt;/td&gt;&lt;td&gt;&lt;b&gt;FieldName.&lt;/b&gt; Returns the Outlook field name &lt;b&gt;IsUserProp.&lt;/b&gt; Returns whether the property is user defined.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;OutlookFolderSync&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;td&gt;&lt;b&gt;FolderType.&lt;/b&gt; Returns the Outlook folder type. This property is defaulted to the &lt;b&gt;OlFolderInbox&lt;/b&gt; type. &lt;b&gt;FolderNameProperty.&lt;/b&gt; Returns the name of the folder.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;The original design used the &lt;b&gt;OutlookItemSync&lt;/b&gt; attribute on the class and the &lt;b&gt;OutlookFieldSync&lt;/b&gt;  attribute on the properties. However, when working with strongly typed  datasets, the properties are automatically generated, so you cannot add  the &lt;b&gt;OutlookFieldSync&lt;/b&gt; attribute. Therefore, the &lt;b&gt;OutlookCustomSyncInfo&lt;/b&gt; approach was developed and now each data row class has one &lt;b&gt;OutlookItemSync&lt;/b&gt; or &lt;b&gt;OutlookFolderSync&lt;/b&gt; attribute and one &lt;b&gt;OutlookCustomSyncInfo&lt;/b&gt; attribute. For example, the accounts folder simply states the name of the property used for synchronization: &lt;b&gt;Name&lt;/b&gt;. The folder type remains in its default &lt;b&gt;OlFolderInbox&lt;/b&gt; type. The following attribute has been added to the accounts data row class.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet3"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode3"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;[Utility.OutlookFolderSync("Name")]&lt;br /&gt;partial class AccountsRow : Utility.IOutlookSyncItem&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The activities, contacts, and opportunities data rows have &lt;b&gt;OutlookItemSync&lt;/b&gt; and &lt;b&gt;OutlookCustomSyncInfo&lt;/b&gt; attributes. For example, the following attributes have been added to the &lt;b&gt;ActivitiesRow&lt;/b&gt; class.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet4"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode4"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;[Utility.OutlookItemSync(Outlook.OlItemType.olTaskItem)]&lt;br /&gt;[Utility.OutlookCustomSyncInfo("GetSyncInfo")]&lt;br /&gt;partial class ActivitiesRow : Utility.IOutlookSyncItem&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The &lt;b&gt;OutlookCustomSyncInfo&lt;/b&gt; attribute names the method &lt;b&gt;GetSyncInfo&lt;/b&gt;. This is defined as a static member of the data row class. For example, the following definition of &lt;b&gt;GetSyncInfo&lt;/b&gt; has been added to the &lt;b&gt;ActivitiesRow&lt;/b&gt; class to describe the mapping "data row to Outlook field."&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet5"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode5"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;public static IDictionary&lt;string, utility.outlookfieldsyncattribute=""&gt; GetSyncInfo()&lt;br /&gt;{&lt;br /&gt;   Dictionary&lt;string, utility.outlookfieldsyncattribute=""&gt; syncInfo &lt;br /&gt;      = new Dictionary&lt;string, utility.outlookfieldsyncattribute=""&gt;();&lt;br /&gt;   syncInfo.Add("Name", &lt;br /&gt;                 new Utility.OutlookFieldSyncAttribute("Subject"));&lt;br /&gt;   syncInfo.Add("Comments", &lt;br /&gt;                 new Utility.OutlookFieldSyncAttribute("Body"));&lt;br /&gt;   syncInfo.Add("DateNullCheck", &lt;br /&gt;                 new Utility.OutlookFieldSyncAttribute("DueDate"));&lt;br /&gt;   return syncInfo;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/string,&gt;&lt;/string,&gt;&lt;/string,&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Table 5 shows the mapping table provided by these attributes.&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Table 5. Activities Data Mapping&lt;/b&gt;&lt;/div&gt;&lt;div class="tablediv"&gt;&lt;table class="dtTABLE"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;String (key)&lt;/td&gt;&lt;td&gt;&lt;b&gt;OutlookFieldSyncAttribute&lt;/b&gt; object&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data row property name&lt;/td&gt;&lt;td&gt;Outlook Field Name&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt;Subject&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comments&lt;/td&gt;&lt;td&gt;Body&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DateNullCheck&lt;/td&gt;&lt;td&gt;DueDate&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;Note that if the alternative business objects design is used instead  of datasets, then the business objects' classes need to be modified to  implement the &lt;b&gt;IOutlookSyncItem&lt;/b&gt; interface and the custom attributes added for data mapping. An advantage of a business objects design is that the &lt;b&gt;OutlookFieldSync&lt;/b&gt; attribute can be added to the properties, and there is no need for the &lt;b&gt;OutlookCustomSyncInfo&lt;/b&gt; approach. For example, code in a business object representing an activity might look similar to the code shown here.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet6"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode6"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;[Utility.OutlookItemSync(Outlook.OlItemType.olTaskItem)]&lt;br /&gt;public class CRMActivity&lt;br /&gt;{&lt;br /&gt;  [Utility.OutlookFieldSync("Subject")]&lt;br /&gt;  public string Name&lt;br /&gt;  {&lt;br /&gt;    get { &lt;br /&gt;       ... &lt;br /&gt;    }&lt;br /&gt;    ...&lt;br /&gt;  }&lt;br /&gt;  ...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 class="dtH1"&gt;Running the Synchronization Engine&lt;/h4&gt;With the data row class implementing the &lt;b&gt;IOutlookSyncItem&lt;/b&gt;  interface, and with the data table and data row class and property  attributes added, the solution now passes the data table's array of data  rows to the synchronization engine for synchronization. The call also  passes the Outlook folder containing the items for synchronization and a  direction.&lt;br /&gt;You can use the managed utility classes to help retrieve folders and  items from Outlook for passing into the synchronization engine. For  example, to obtain a reference to the Accounts folder that is under the  CRM Today folder, you need to navigate from the root, creating the  folders if required, as shown here.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet7"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode7"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;Outlook.MAPIFolder root = Utility.Folder.GetRootFolder(this.Session);&lt;br /&gt;Outlook.MAPIFolder crmFolder = Utility.Folder.CreateFolder(&lt;br /&gt;               root, "CRM Today");&lt;br /&gt;Outlook.MAPIFolder accountsFolder = Utility.Folder.CreateFolder(&lt;br /&gt;                                 crmFolder, "Accounts");&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Now you can synchronize the account folders by passing the accounts folder and the rows of the Accounts table into the &lt;b&gt;SyncFolders&lt;/b&gt; method, as shown here.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet8"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode8"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;CrmDataSetTableAdapters.AccountsTableAdapter adapter &lt;br /&gt;   = new CrmDataSetTableAdapters.AccountsTableAdapter();&lt;br /&gt;CrmDataSet.AccountsDataTable table = adapter.GetData();&lt;br /&gt;Utility.SyncEngine.SyncFolders&lt;crmdataset.accountsrow&gt;(&lt;br /&gt;                                 accountsFolder, &lt;br /&gt;                                 table.Rows, SyncAccountFolder);&lt;br /&gt;adapter.Update(table);&lt;br /&gt;&lt;br /&gt;&lt;/crmdataset.accountsrow&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;To synchronize the contents of a folder with, for example, activities, the activity folder and data rows are passed into the &lt;b&gt;SyncItems&lt;/b&gt; method shown here.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet9"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode9"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;Utility.SyncEngine.SyncItems&lt;crmdataset.activitiesrow&gt;(&lt;br /&gt;                                  activityFolder, &lt;br /&gt;                                  activitiesTable.Rows, &lt;br /&gt;                                  Utility.SyncDirection.ItemToOutlook);&lt;br /&gt;activitiesAdapter.Update(activitiesTable);&lt;br /&gt;&lt;br /&gt;&lt;/crmdataset.activitiesrow&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The &lt;b&gt;SyncDirection.ItemToOutlook&lt;/b&gt; enumerated value  tells the synchronization engine to move changes from the data rows into  the Outlook items before updating the data rows with any missing  Outlook keys. The updated data table is then written back to the SQL  Server Express Database by using the designer-generated data adapter's &lt;b&gt;Update&lt;/b&gt; method.&lt;br /&gt;&lt;h3 class="dtH1"&gt;Read-only Summary Table&lt;/h3&gt;The sample add-in includes a &lt;b&gt;CRM Today&lt;/b&gt; custom form  that displays information in summary tables, as shown in Figure 8. This  section shows how the solution binds the custom form to the data that it  requires. &lt;br /&gt;The data requirement for a summary table is that the data is  retrieved by using SQL, bound to a grid, and then becomes read-only.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/Aa479346.otlkldssynch08%28l=en-us%29.gif"&gt;&lt;img alt="Click here for larger image" id="otlkldssynch08S" src="http://i.msdn.microsoft.com/dynimg/IC6097.gif" title="Click here for larger image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 8. The CRM Today summary tables (Click on the image for a larger picture)&lt;/b&gt;&lt;/div&gt;&lt;div class="fig"&gt;&lt;img alt="Aa479346.otlkldssynch09(en-us,MSDN.10).gif" id="otlkldssynch09" src="http://i.msdn.microsoft.com/dynimg/IC9078.gif" title="Aa479346.otlkldssynch09(en-us,MSDN.10).gif" /&gt;&lt;/div&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 9. The Accounts Summary data table and table adapter&lt;/b&gt;&lt;/div&gt;To retrieve the summary data, the solution adds a data table and  adapter to the dataset designer. The selection of the data is made by  SQL and includes calculated columns for the counts. Because the data  only needs to be read, only the select command is needed; commands for  update, insert, and delete are omitted.&lt;br /&gt;&lt;div class="fig"&gt;&lt;img alt="Aa479346.otlkldssynch10(en-us,MSDN.10).gif" id="otlkldssynch10" src="http://i.msdn.microsoft.com/dynimg/IC152544.gif" title="Aa479346.otlkldssynch10(en-us,MSDN.10).gif" /&gt;&lt;/div&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 10. Data access objects added to Accounts Summary form designer&lt;/b&gt;&lt;/div&gt;To complete the data access implementation for the summary table,  table adapter objects and a dataset have been added to the Accounts  Summary form designer. To enable grid data binding, &lt;b&gt;System.Data.BindingSource&lt;/b&gt; objects have been added and connected to the data tables.&lt;br /&gt;To display the data from the local SQL Server Express database when the custom form loads, the data tables are simply filled.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet10"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode10"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;accountsSummaryTableAdapter.Fill(crmDataSet.AccountsSummary);&lt;br /&gt;activitiesSummaryTableAdapter.Fill(crmDataSet.ActivitiesSummary);&lt;br /&gt;opportunitiesSummaryTableAdapter.Fill(crmDataSet.OpportunitiesSummary);   &lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="dtH1"&gt;Read-only Bound Controls&lt;/h3&gt;The &lt;b&gt;Account Profile&lt;/b&gt; custom form shown in Figure 11  uses data-bound label and link label controls to display information  about a single selected account.&lt;br /&gt;&lt;div class="fig"&gt;&lt;img alt="Aa479346.otlkldssynch11(en-us,MSDN.10).gif" id="otlkldssynch11" src="http://i.msdn.microsoft.com/dynimg/IC133592.gif" title="Aa479346.otlkldssynch11(en-us,MSDN.10).gif" /&gt;&lt;/div&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 11. The Account Profile form designer&lt;/b&gt;&lt;/div&gt;The label and link label controls are bound to a binding source that binds the &lt;b&gt;Accounts&lt;/b&gt; data table from the dataset. The solution fills the data table when the form loads by using the Accounts table adapter object.&lt;br /&gt;&lt;h3 class="dtH1"&gt;CRM Contacts Form&lt;/h3&gt;The sample CRM add-in uses the standard Outlook Contact form to edit  and add contacts data. This keeps the Outlook data file up-to-date, but  synchronization in one direction into the local database is required.  The sample add-in sets up an event handler for the contact write event,  as shown here.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet11"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode11"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;Outlook.MAPIFolder contactFolder = Utility.Folder.CreateFolder(&lt;br /&gt;                      accountFolder,&lt;br /&gt;                      Properties.Resources.ContactsFolderName,&lt;br /&gt;                      Outlook.OlDefaultFolders.olFolderContacts);&lt;br /&gt;_itemManager.RegisterWriteHandler(contactFolder, &lt;br /&gt;                         new CancelEventHandler(OnContactWrite));&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The new event handler calls the &lt;b&gt;SyncItem&lt;/b&gt; method by using the &lt;b&gt;SyncDirection.OutlookToItem&lt;/b&gt;  enumerated value to indicate that the synchronization engine should  move changes from the Outlook item into the data row, as shown here.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet12"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode12"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;Utility.SyncEngine.SyncItem&lt;crmdataset.contactsrow&gt;(&lt;br /&gt;                 (CrmDataSet.ContactsRow)contactsTable.Rows[0],&lt;br /&gt;                  item,&lt;br /&gt;                  Utility.SyncDirection.OutlookToItem);&lt;br /&gt;&lt;br /&gt;&lt;/crmdataset.contactsrow&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3 class="dtH1"&gt;CRM Item Custom Forms&lt;/h3&gt;The sample CRM add-in uses two custom forms created by using Windows  Forms. These have been designed for adding new and editing existing CRM  items. There are forms for both CRM activities and CRM opportunities.  The custom forms are coded to handle both new scenarios, edits to them,  and also the creation of a new CRM item from an existing Outlook item.  For example, the new activity form is run from the &lt;b&gt;Create CRM Activity&lt;/b&gt; toolbar button. &lt;br /&gt;The same form is used both to add new CRM items and to edit existing items. Figure 12 shows the custom CRM &lt;b&gt;Activity&lt;/b&gt; form displaying data from an existing CRM activity item, ready for the user to make changes. &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/Aa479346.otlkldssynch12%28l=en-us%29.gif"&gt;&lt;img alt="Click here for larger image" id="otlkldssynch12S" src="http://i.msdn.microsoft.com/dynimg/IC89965.gif" title="Click here for larger image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="label"&gt;&lt;b&gt;Figure 12. Custom CRM activity form (Click on the image for a larger picture)&lt;/b&gt;&lt;/div&gt;&lt;h4 class="dtH1"&gt;Edit Existing Item&lt;/h4&gt;When an existing item is edited, some of the data exists in Outlook,  and there is an existing Outlook key. The form needs to retrieve any  additional data from the local database that belongs to the item that is  being edited.&lt;br /&gt;&lt;b&gt;ItemAdapter&lt;/b&gt;&lt;br /&gt;To assist handling Outlook item synchronization, the managed utility  classes provide a generic Outlook item type to enable polymorphic access  to the baseline functionality provided by all Outlook item types in a  class called &lt;b&gt;ItemAdapter&lt;/b&gt;. &lt;b&gt;ItemAdapter&lt;/b&gt; implements a small subset of methods shared by all Outlook items: &lt;b&gt;Save&lt;/b&gt;, &lt;b&gt;Class&lt;/b&gt;, and &lt;b&gt;EntryID&lt;/b&gt;, where &lt;b&gt;EntryID&lt;/b&gt; is the Outlook item key.&lt;br /&gt;When a custom form is editing an existing Outlook item, the solution passes an &lt;b&gt;ItemAdapter&lt;/b&gt; object to the form constructor. This is stored as a private field called _&lt;b&gt;activity&lt;/b&gt;. When the remainder of the data is required, the Activities table adapter's &lt;b&gt;FillByOutlookID&lt;/b&gt; method is called and passed the &lt;b&gt;EntryID&lt;/b&gt; property. (This gets the Outlook item key.) For example, to fill the Activities table for a certain record.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet13"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode13"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;this.activitiesTableAdapter.FillByOutlookID(&lt;br /&gt;                            this.crmDataSet.Activities, _activity.EntryID);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;The form controls are bound to the Activities data table, so when you click the &lt;b&gt;Save and Close&lt;/b&gt;  button, the solution code saves the changed item to both to the local  database and to the Outlook item by using the synchronization engine's &lt;b&gt;SyncItem&lt;/b&gt; method. The &lt;b&gt;SyncItem&lt;/b&gt; method returns &lt;b&gt;true&lt;/b&gt; if the Outlook item was updated, so you can tell whether the Outlook item needs to be saved, as shown here.&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet14"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode14"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;if (Utility.SyncEngine.SyncItem&lt;crmdataset.activitiesrow&gt;(&lt;br /&gt;     row, _activity, Utility.SyncDirection.ItemToOutlook))&lt;br /&gt;{&lt;br /&gt;    _activity.Save();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/crmdataset.activitiesrow&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 class="dtH1"&gt;New CRM Item&lt;/h4&gt;When a new CRM item is added, some of the data is new in both Outlook  and the local database. A new GUID is generated and a new Outlook key  created when the item is added to Outlook. As for edited data, a portion  of the data is kept in the local database but not in the Outlook data  file.&lt;br /&gt;When the form is loaded there is no existing data row, so you need to add a new row and generate a new GUID. For example:&lt;br /&gt;&lt;div class="LW_CodeSnippetContainer"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=8332897805510780163&amp;amp;postID=5131998242009952151" name="CodeSpippet15"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;&lt;div class="LW_CodeSnippetContainerCode" id="CodeSnippetContainerCode15"&gt;&lt;div style="color: black;"&gt;&lt;pre&gt;activitiesBindingSource.AddNew();&lt;br /&gt;CurrentRow.LocalID = Guid.NewGuid();&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;After a new data row has been added, the form code can continue in  the same way as the preceding "Edit Existing Item" example. This  includes using the &lt;b&gt;SyncItem&lt;/b&gt; method that will create a new Outlook item when one does not exist.&lt;br /&gt;&lt;h4 class="dtH1"&gt;New CRM Item from Outlook Item&lt;/h4&gt;If a new CRM item is to be created from an existing Outlook item,  then you need to create a new data row (as show previously). As before,  the form can then continue the same way as the preceding "Edit Existing  Item," and call the &lt;b&gt;SyncItem&lt;/b&gt; method when you click &lt;b&gt;Save and Close&lt;/b&gt;. In this scenario, &lt;b&gt;SyncItem&lt;/b&gt; will copy data from the new data row to the existing Outlook item and return &lt;b&gt;true&lt;/b&gt;.&lt;br /&gt;&lt;h3 class="dtH1"&gt;CRM Item Associations &lt;/h3&gt;CRM custom forms contain a custom control to display related items  called associations to an activity. All the data for this control are  kept in the local database, so you do not need to make calls to the  synchronization engine. When the control is loaded, existing  relationship records are loaded into a data table and then displayed in a  list.&lt;br /&gt;When the data in the control are ready to be saved, the solution  makes a new copy of the data table. The data table rows that correspond  to unselected items in the list are deleted, and data rows are created  for selected list items without an existing corresponding data row.  Finally, the local database is updated by using a data adapter.&lt;br /&gt;&lt;h2 class="dtH1"&gt;Conclusion&lt;/h2&gt;This paper has discussed the local synchronization approach utilized  in the sample CRM add-in solution to access a CRM system. By examining  the sample CRM add-in, the paper has illustrated how and why a local SQL  Server Express database is an optimal choice to store additional field  data for a custom Outlook add-in, and how synchronization between  Outlook data and local database data can be performed.&lt;br /&gt;The internal architecture of the solution contains a layer that helps  manipulate Outlook folders and items, and a generalized synchronization  engine with methods that perform data synchronization between Outlook  folders and items and data rows. Visual Studio provides graphical  designers for data objects and high performance database access, and  code generated classes that provide type safety and low maintenance  code.&lt;br /&gt;These technologies, when used in combination, minimize implementation  and code maintenance costs, and deliver a good return on investment.&lt;br /&gt;&lt;h2 class="dtH1"&gt;Companion Resources&lt;/h2&gt;Microsoft has developed a sample Outlook add-in solution that  demonstrates how the Outlook UI can be extended and customized to create  a front-end for a CRM system. For more information about the "CRM  Integration Add-in Sample for Microsoft Outlook" see &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=078124E9-1E88-4F51-8C98-3C1999CFE743&amp;amp;displaylang=en"&gt;http://download.microsoft.com/download/9/9/C/99CD8598-2A46-48A8-9A5B-7A30D46C0856/CRM  Integration Sample for Outlook Source Setup.msi&lt;/a&gt;. &lt;br /&gt;For more information about the overall integration scenario and the technical architecture used in the sample, see the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/OtlkLOBCRM.asp"&gt;Extending Enterprise Applications with Microsoft Outlook: Architectural Design Guide whitepaper&lt;/a&gt;.&lt;br /&gt;For a more detailed discussion on how Outlook can be customized to integrate with data from an enterprise application, see the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/OtlkCustInEntApp.asp"&gt;Outlook Customization for Integrating with Enterprise Applications whitepaper&lt;/a&gt;.&lt;br /&gt;For more information about the internal Microsoft IT project  (code-named Project Elixir) to create an Outlook front-end to  Microsoft's internal CRM systems, see &lt;a href="https://members.microsoft.com/customerevidence/search/EvidenceDetails.aspx?EvidenceID=13848&amp;amp;LanguageID=1"&gt;https://members.microsoft.com/customerevidence/search/EvidenceDetails.aspx?EvidenceID=13848&amp;amp;LanguageID=1&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-5131998242009952151?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/en-us/library/aa479346.aspx' title='Synchronizing a Local Data Store with Microsoft Outlook'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/5131998242009952151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/08/synchronizing-local-data-store-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/5131998242009952151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/5131998242009952151'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/08/synchronizing-local-data-store-with.html' title='Synchronizing a Local Data Store with Microsoft Outlook'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-5496963184125645401</id><published>2011-06-02T09:16:00.000+06:00</published><updated>2011-06-02T09:16:56.783+06:00</updated><title type='text'>Oracle 11g Security - Getting started with standard auditing</title><content type='html'>&lt;div class="blog-content content-entryindent blog-content-mce"&gt;       &lt;p class="bodytext"&gt;Auditing of an Oracle database has became big  business. So much so that entire companies have dedicated complete  solutions to the process. Let’s first get a level-set of what auditing  is, at least from Oracle’s perspective. Within the 2-Day+ Security  Guide, Oracle defines auditing as the monitoring and recording of  selected user database actions.  Within Oracle you can:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Use standard auditing (using initialization parameters and the AUDIT  and NOAUDIT) to audit SQL statement, privileges, schemas, objects, and  network and multitier activity. &lt;/li&gt;&lt;li&gt;Look at activities within the Oracle database that are always  audited regardless of whether you want to mess with turning on auditing  such as administrator level privileged connections, database startups  &amp;amp; shutdowns. &lt;/li&gt;&lt;li&gt;Implement what is known as fine-grained auditing that enables you to  create policies that define specific conditions that must be meat for  auditing to occur—enabling the security administrator to audit access  based on the content and triggering events. &lt;/li&gt;&lt;/ul&gt; &lt;p class="bodytext"&gt;It would seem logical, in this day and age, why we  need to audit databases. But it does stand to reason that many of us  still need to be convinced that malicious intent runs ramped throughout  the enterprise as well as from external threats. But probably the  biggest reason to understand and implement auditing is to satisfy an  audit. Let’s face the facts, regulatory requirements (Sarbanes-Oxely,  HIPAA, Basel II, etc.) are all very real and we must be able to prove  compliancy in order to avoid hefty fines and extended litigation.  In  addition to regulatory requirements there is a strong need for  accountability within the enterprise. I don’t know how many times I’ve  implemented my own specific fine-grain auditing to prove my own actions  and point, yes point the finger, towards someone else. This just doesn’t  go for DBA practices, procedures, and tasks. Auditing of user activity,  either through SQL*Plus, a programming tools, or end-user applications  does wonders for pinpointing where problem users are and the data  they’ve either deleted, inserted, or selected or tables they’ve dropped,  created, or altered. And let’s not forget that usage patterns can tell a  lot as well. How many employees do you think you have that ONLY work  between the hours of 10am to 2pm? Auditing can help prove use, misuse,  or non-use of company resources. Auditing is a powerful tool.&lt;/p&gt; &lt;p class="bodytext"&gt;When thinking about auditing an Oracle database,  it’s easiest to first take a look at standard auditing and see what it  has to offer. Setup is easy and you can at most requires just a reboot  of the database. Standard auditing will provide information about the  operation being audited, the user performing the operation, and a data  and time associated with the operation. Placement of the auditing  records can either be placed within the database (called a database  audit trail and uses the DBA_AUDIT_TRAIL view/sys.aud$ table), on the  operating system in a set of files (called an operating system audit  trail), or in the DBA_COMMON_AUDIT_TRAIL view which is a combination of  standard and fine-grained audit log records.  Also included for standard  auditing is a set of views that can be used to track suspicious  activities.&lt;/p&gt; &lt;p class="bodytext"&gt;Setting up or enabling the standard audit trail quite easy and is outlined in the 2-Day+ Security Guide as follows:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Start Database Control&lt;/li&gt;&lt;li&gt;Log in as SYS with SYSDBA privileges&lt;/li&gt;&lt;li&gt;Click Server to display the Server subpage&lt;/li&gt;&lt;li&gt;Click Initialization Parameters in the Database Configuration section&lt;/li&gt;&lt;li&gt;Click SPFile to display the SPFile subpage. If you don’t use an SPFile just continue to the next step&lt;/li&gt;&lt;li&gt;Enter audit_trail in the Name field to find the AUDIT_TRAIL parameter and then click Go&lt;/li&gt;&lt;li&gt;Enter the type of auditing you want in the Value field where value can be: &lt;/li&gt;&lt;/ol&gt; &lt;p class="bodytext"&gt;DB – Enables Database Auditing where records will primarily be written to the sys.aud$&lt;/p&gt; &lt;p class="bodytext"&gt;OS – Enables auditing records to be written to the  operating system where you must also specify AUDIT_FILE_DEST which tells  Oracle where to write the audit record.&lt;/p&gt; &lt;p class="bodytext"&gt;NONE – Will disable standard auditing&lt;/p&gt; &lt;p class="bodytext"&gt;DB, EXTENDED – does all that the type of DB does  plus populating the SQL bind and SQL text CLOB-type columns of the  sys.aud$ table when available&lt;/p&gt; &lt;p class="bodytext"&gt;XML – will write to the operating system audit records in XML format&lt;/p&gt; &lt;p class="bodytext"&gt;EXTENDED – will write to the operating system audit  records in XML format but also populates the SQL bind and SQL text  CLOB-types columns of the sys.aud$ table when available&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Click Apply&lt;/li&gt;&lt;li&gt;Restart the      Oracle instance&lt;/li&gt;&lt;/ol&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;While setting up standard auditing from the control panel is quite  acceptable, this is one of tasks that can also easily be accomplished  through the standard PL*SQL interface.&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Log in as SYS      with SYSDBA privileges&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Sqlplus / as sysdba&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Check the      current settings&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;SQL&amp;gt; show parameter audit&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;NAME                                 TYPE        VALUE&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;---------------------- ----------- ------------------------------&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;audit_file_dest        string      /opt/app/oracle/admin/db11/adump&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;audit_sys_operations   boolean     FALSE&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;audit_syslog_level     string&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;audit_trail            string      DB&lt;/strong&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Set  the type of auditing you want by setting the audit_trail parameter&lt;/li&gt;&lt;/ol&gt; &lt;p class="bodytext"&gt;        &lt;strong&gt;SQL&amp;gt; alter system set audit_trail=OS scope=spfile;&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;   System altered.&lt;/strong&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Set the      auditing destination&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;SQL&amp;gt; alter system set audit_file_dest='/opt/app/oracle/admin/db11/adump' scope=spfile;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;System altered.&lt;/strong&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Restart the      Oracle instance&lt;/li&gt;&lt;/ol&gt; &lt;p class="code"&gt;SQL&amp;gt; SHUTDOWN&lt;/p&gt; &lt;p class="code"&gt;SQL&amp;gt; STARTUP&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Also note that there are two additional parameters  audit_sys_operations and audit_syslog_level that you should consider  setting if you are concerned about the SYS account activity.&lt;/p&gt; &lt;ol&gt;&lt;li&gt;audit_sys_operations - this initialization parameter tells Oracle to  turn on auditing of the SYS connections, and users connecting with the  SYSDBA or SYSOPER privilege. It has either a TRUE or FALSE value&lt;/li&gt;&lt;li&gt;audit_syslog_level – this initialization parameter enables SYS and  standard OS auditing records to be written to the system using the  SYSLOG utility&lt;/li&gt;&lt;/ol&gt; &lt;p class="bodytext"&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Now that we’ve enables operating system auditing it  is always nice to see exactly what we’ve accomplished. While this is not  an exhaustive example it does touch the surface of what we are trying  to accomplish here. Suppose now that we have an un-authorized access  attempt (failed login) to our database through the use of the  SCOTT/TIGER account.&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Being good DBAs we’ve locked this account and any attempts will be now be met with ‘the account is locked’ message:&lt;/li&gt;&lt;/ol&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;       [oracle@ludwig adump]$ sqlplus scott/tiger&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;SQL*Plus: Release 11.1.0.6.0 - Production on Thu Dec 10 06:51:43 2009&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;ERROR:&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;ORA-28000: the account is locked&lt;/strong&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;And now, because of auditing, this attempt will not go unnoticed and will be reported in the audit_file_dest location:&lt;/li&gt;&lt;/ol&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;[oracle@ludwig ~]$ cd $ORACLE_HOME/adump&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;[oracle@ludwig adump]$ more ora_3817.aud&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Audit file /opt/app/oracle/admin/db11/adump/ora_3817.aud&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;ORACLE_HOME = /opt/app/oracle/product/11.1.0/db_1&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;System name:    Linux&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Node name:      ludwig&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Release:        2.6.18-8.el5&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Version:        #1 SMP Thu Mar 15 19:57:35 EDT 2007&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Machine:        i686&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Instance name: db11&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Redo thread mounted by this instance: 1&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Oracle process number: 18&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Unix process pid: 3817, image: oracle@ludwig (TNS V1-V3)&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;Thu Dec 10 06:48:46 2009&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;SESSIONID: "280057" ENTRYID: "1" STATEMENT:  "1" USERID: "SCOTT" USERHOST: "ludwig" TERMINAL: "pts/1" ACTION: "100"  RETURNCODE: "2800&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;strong&gt;0" COMMENT$TEXT: "Authenticated by: DATABASE" OS$USERID: "oracle"&lt;/strong&gt;&lt;/p&gt; &lt;p class="bodytext"&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Now that you have the settings changed you can start  monitoring the activity on the SYS account. Remember standard auditing  can monitor and record various user database actions such as SQL  statements, privileges, schemas, objects, and network and multitier  activity.  Now is the time to dig in, see how far standard auditing can  take you to gain compliancy and then fill in the gaps. The issue becomes  whether you can provide auditors everything they need to pass your  audit. If you can monitor all database traffic and take appropriate  action then you will pass, otherwise you are in for a lot of work. But  more on that latter.&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-5496963184125645401?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://it.toolbox.com/blogs/database-solutions/oracle-11g-security-getting-started-with-standard-auditing-46464?sms_ss=blogger&amp;at_xt=4de7001fecbde2e8%2C0' title='Oracle 11g Security - Getting started with standard auditing'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/5496963184125645401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/06/oracle-11g-security-getting-started.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/5496963184125645401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/5496963184125645401'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/06/oracle-11g-security-getting-started.html' title='Oracle 11g Security - Getting started with standard auditing'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-6164657742982261747</id><published>2011-05-26T13:10:00.000+06:00</published><updated>2011-05-26T13:10:29.882+06:00</updated><title type='text'>Iron Speed Designer&gt;Working with Microsoft Visual Studio .NET</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h2&gt;Opening a Generated Application in Visual Studio .NET&lt;/h2&gt;&lt;h4&gt;Microsoft Visual Studio 2003&lt;/h4&gt;Follow these steps to open an &lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt;-generated application in Microsoft Visual Studio .NET 2003:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Step 1&lt;/b&gt;: In Visual Studio .NET 2003, select File, Open, Project to display the Open Project dialog.  &lt;img height="417" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure1.jpg" width="440" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Step 2&lt;/b&gt;: Select an application folder from the Open Project dialog, and click the Open button.  &lt;img height="393" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure2.jpg" width="475" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Step 3&lt;/b&gt;: Select the *&lt;i&gt;.CSPROJ&lt;/i&gt; or *&lt;i&gt;.VBPROJ&lt;/i&gt; file, and click the Open button.  &lt;img height="394" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure3.jpg" width="475" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Microsoft Visual Studio 2005&lt;/h4&gt;Follow these steps to open an &lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt;-generated application in Microsoft Visual Studio .NET 2005:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Step 1&lt;/b&gt;: In Microsoft Visual Studio .NET, select File, Open, Web Site...  &lt;img height="390" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure4.jpg" width="425" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Step 2&lt;/b&gt;: Select an application folder, and click the Open button.  &lt;img height="372" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure5.jpg" width="464" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Visual Studio Project Files&lt;/h2&gt;&lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt;  automatically generates Visual Studio project files for Visual Studio  2003 applications (.NET Framework 1.1). These CSPROJ and VBPROJ files  are created when &lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt; initializes your application, and they can be opened in Visual Studio 2003. &lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt; automatically updates your application’s project file every time the application is built in &lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt;  does not create a SLN file (“solution” file), because Visual Studio  .NET automatically creates one if you open any Visual Studio project  file.&lt;br /&gt;Note: Visual Studio 2005 does not use project files, so &lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt;  does not generate them for Visual Studio 2005 (.NET Framework 2.0)  applications. To open a generated application in Visual Studio 2005,  open it as a "web project."&lt;br /&gt;&lt;h2&gt;Custom Controls Generated by Iron Speed Designer&lt;/h2&gt;The custom controls in the application classes are designed to  integrate with Visual Studio .NET's Visual Designer, and are used in the  user controls (the ASCX files) generated by &lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt;.  This means that if you open one of the generated ASCX files using the  Visual Studio .NET Visual Designer, you will be able to see the &lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt; custom controls, edit their custom properties using their property sheets, add them to your Visual Studio .NET Toolbox, etc.&lt;br /&gt;The web controls in the application classes contain special .NET  meta-tags in their code to enable this integration with Visual Studio  .NET. You need take no special action to use these controls. These  controls are already used in the web pages generated by &lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt;, so the web pages may be opened directly in Visual Studio .NET.&lt;br /&gt;&lt;h2&gt;Enabling and Disabling Strict Compilation Mode&lt;/h2&gt;You can enable or disable "strict mode" compilation in Visual Studio .NET. Locate the &lt;i&gt;CompileApplication.rsp&lt;/i&gt; file in your application folder:&lt;br /&gt;&lt;pre lang="text"&gt;...\&lt;app folder=""&gt;\CompileApplication.rsp&lt;/app&gt;&lt;/pre&gt;&lt;i&gt;CompileApplication.rsp&lt;/i&gt; may contain the &lt;code&gt;optionstrict&lt;/code&gt; tag. To enable strict mode, change this setting to:&lt;br /&gt;&lt;pre lang="text"&gt;/optionstrict+&lt;/pre&gt;To disable strict mode, change the setting to:&lt;br /&gt;&lt;pre lang="text"&gt;/optionstrict-&lt;/pre&gt;&lt;h2&gt;Compiling Applications in Debug Mode&lt;/h2&gt;&lt;a href="http://www.codeproject.com/redir.aspx?id=5947"&gt;Iron Speed Designer&lt;/a&gt;  creates a standard .NET application so you can use the debugging  features of Microsoft Visual Studio .NET to debug your applications.  When an application is created, a VBPROJ or a CSPROJ file is created  along with the source files. You can open this project file in Visual  Studio .NET, compile your application with debugging information, and  set breakpoints to stop at any point in your application.&lt;br /&gt;Note: Visual Studio .NET requires an application resident on the local machine for debugging purposes.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Step 1&lt;/b&gt;: Open your application in Visual Studio .NET. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Step 2&lt;/b&gt;: In Microsoft Visual Studio, select Build, Configuration Manager. This displays the Configuration Manager dialog. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Step 3&lt;/b&gt;: Select a &lt;new...&gt; Active Solution configuration.  &lt;img height="300" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure6.jpg" width="450" /&gt;&lt;br /&gt;&lt;/new...&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Step 4&lt;/b&gt;: Give it a name such as "Debug", and click "OK".  &lt;img height="190" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure7.jpg" width="290" /&gt;&lt;br /&gt;&lt;b&gt;Visual Basic .NET applications:&lt;/b&gt;&lt;br /&gt;In the Solution Explorer, right-click the solution’s name and select  Properties. Then, select the Configuration Properties and the Build  option in this group. You will notice a check box titled "Generate  Debugging Information" in the panel to the right. Make sure you check  this control.&lt;br /&gt;&lt;img height="340" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure8.jpg" width="475" /&gt;&lt;br /&gt;&lt;b&gt;C# applications&lt;/b&gt;:&lt;br /&gt;In the Solution Explorer, right-click the solution’s name and select  Properties. Select the Configuration Properties and the Build option in  this group. You will notice a property titled "Generate Debugging  Information" in the panel to the right. Make sure the value for this  property is set to True.&lt;br /&gt;&lt;img height="404" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure9.jpg" width="475" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Step 5&lt;/b&gt;: Click the "Close" button in the  Configuration Manager. Notice that the project can now be compiled in  "Debug" mode via Visual Studio .NET.  &lt;img height="80" src="http://www.codeproject.com/KB/showcase/WorkingWithVSNET/Figure10.jpg" width="460" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Step 6&lt;/b&gt;: Change your application’s &lt;i&gt;Web.config&lt;/i&gt; file for debugging mode:  &lt;pre lang="xml"&gt;&lt;span class="code-keyword"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code-leadattribute"&gt;compilation&lt;/span&gt; &lt;span class="code-attribute"&gt;defaultLanguage&lt;/span&gt;&lt;span class="code-keyword"&gt;="&lt;/span&gt;&lt;span class="code-keyword"&gt;c#"&lt;/span&gt; &lt;span class="code-attribute"&gt;debug&lt;/span&gt;&lt;span class="code-keyword"&gt;="&lt;/span&gt;&lt;span class="code-keyword"&gt;true"&lt;/span&gt; &lt;span class="code-keyword"&gt;/&lt;/span&gt;&lt;span class="code-keyword"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;or&lt;br /&gt;&lt;pre lang="xml"&gt;&lt;span class="code-keyword"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code-leadattribute"&gt;compilation&lt;/span&gt; &lt;span class="code-attribute"&gt;defaultLanguage&lt;/span&gt;&lt;span class="code-keyword"&gt;="&lt;/span&gt;&lt;span class="code-keyword"&gt;vb"&lt;/span&gt; &lt;span class="code-attribute"&gt;debug&lt;/span&gt;&lt;span class="code-keyword"&gt;="&lt;/span&gt;&lt;span class="code-keyword"&gt;true"&lt;/span&gt; &lt;span class="code-keyword"&gt;/&lt;/span&gt;&lt;span class="code-keyword"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;Set compilation &lt;code lang="text"&gt;debug="true"&lt;/code&gt; to insert debugging symbols (*&lt;i&gt;.pdb&lt;/i&gt;  information) into the compiled page. Because this creates a larger file  that executes more slowly, you should set this value to &lt;code lang="text"&gt;true&lt;/code&gt; only when debugging, and to &lt;code lang="text"&gt;false&lt;/code&gt; at all other times. For more information, refer to the documentation about debugging ASP.NET files.&lt;br /&gt;Note: For faster performance, we recommend your application be compiled in Release mode.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-6164657742982261747?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codeproject.com/KB/showcase/WorkingWithVSNET.aspx?display=PrintAll' title='Iron Speed Designer&gt;Working with Microsoft Visual Studio .NET'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/6164657742982261747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/05/iron-speed-designerworking-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/6164657742982261747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/6164657742982261747'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/05/iron-speed-designerworking-with.html' title='Iron Speed Designer&gt;Working with Microsoft Visual Studio .NET'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-7615863138886575080</id><published>2011-05-26T11:09:00.002+06:00</published><updated>2011-05-26T11:09:58.177+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle forms'/><title type='text'>way to get connection for oracle developer 6i with oracle 10g +</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;way to get connection for oracle developer 6i with oracle 10g +&lt;br /&gt;&lt;br /&gt;&amp;gt;sys as sysdba&lt;br /&gt;SQL&amp;gt; startup restrict&lt;br /&gt;&amp;gt;alter database character set internal_use UTF8;&lt;br /&gt;SQL&amp;gt; shutdown immediate&lt;br /&gt;SQL&amp;gt; startup&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\admin&amp;gt;sqlplus "/ as sysdba"&lt;br /&gt;C:\Documents and Settings\admin&amp;gt;lsnrctl&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-7615863138886575080?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/7615863138886575080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/05/way-to-get-connection-for-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/7615863138886575080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/7615863138886575080'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/05/way-to-get-connection-for-oracle.html' title='way to get connection for oracle developer 6i with oracle 10g +'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-5358529925464187752</id><published>2011-05-24T14:00:00.000+06:00</published><updated>2011-05-24T14:00:24.742+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle DB lock'/><title type='text'>What's blocking my lock?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="color: red;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;What's blocking my lock?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;If you've ever gotten a phone call from an annoyed user whose  transaction just won't go through, or from a developer who can't  understand why her application sessions are blocking each other, you  know how useful it can be to identify not just whose lock is doing the  blocking, but what object is locked.  Even better, you can identify the  exact row that a session is waiting to lock.  &lt;br /&gt;&lt;h3&gt;&lt;a href="" name="Create_a_blocking_lock"&gt;Create a blocking lock&lt;/a&gt;&lt;/h3&gt;To begin, create a situation where one user is actively blocking  another.  Open two sessions.  Issue the following commands in Session 1  to build the test table:&lt;br /&gt;&lt;pre class="bb-code-block"&gt;SQL&amp;gt; create table tstlock (foo varchar2(1), bar varchar2(1));&lt;br /&gt;&lt;br /&gt;Table created.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; insert into tstlock values (1,'a'); &lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; insert into tstlock values (2, 'b');&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select * from tstlock ;&lt;br /&gt;&lt;br /&gt;FOO BAR&lt;br /&gt;--- ---&lt;br /&gt;1   a&lt;br /&gt;2   b&lt;br /&gt;&lt;br /&gt;2 rows selected.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; commit ;&lt;br /&gt;&lt;br /&gt;Commit complete.&lt;/pre&gt;Now grab a lock on the whole table, still in Session 1:&lt;br /&gt;&lt;code class="bb-code"&gt;SQL&amp;gt; select * from tstlock for update ;&lt;/code&gt;&lt;br /&gt;And in Session 2, try to update a row:&lt;br /&gt;&lt;pre class="bb-code-block"&gt;SQL&amp;gt; update tstlock set bar=&lt;br /&gt;  2  'a' where bar='a' ;&lt;/pre&gt;This statement will hang, blocked by the lock that Session 1 is holding on the entire table.&lt;br /&gt;&lt;h3&gt;&lt;a href="" name="Identify_the_blocking_session"&gt;Identify the blocking session&lt;/a&gt;&lt;/h3&gt;Oracle provides a view, DBA_BLOCKERS, which lists the SIDs of all  blocking sessions.  But this view is often, in my experience, a good bit  slower than simply querying V$LOCK, and it doesn't offer any  information beyond the SIDs of any sessions that are blocking other  sessions.  The V$LOCK view is faster to query, makes it easy to identify  the blocking session, and has a lot more information.&lt;br /&gt;&lt;pre class="bb-code-block"&gt;SQL&amp;gt; select * from v$lock ;&lt;br /&gt;&lt;br /&gt;ADDR     KADDR           SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK&lt;br /&gt;-------- -------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------&lt;br /&gt;AF9E2C4C AF9E2C60        479 TX     131078      16739          0          6        685          0&lt;br /&gt;ADDF7EC8 ADDF7EE0        422 TM      88519          0          3          0        697          0&lt;br /&gt;ADDF7F74 ADDF7F8C        479 TM      88519          0          3          0        685          0&lt;br /&gt;ADEBEA20 ADEBEB3C        422 TX     131078      16739          6          0        697          1&lt;br /&gt;....     ....            ... ...      ....       ....       ....       ....        ....      ....&lt;/pre&gt;Note the BLOCK column.  If a session holds a lock that's blocking  another session, BLOCK=1.   Further, you can tell which session is being  blocked by comparing the values in ID1 and ID2.  The blocked session  will have the same values in ID1 and ID2 as the blocking session, and,  since it is requesting a lock it's unable to get, it will have REQUEST  &amp;gt; 0.&lt;br /&gt;In the query above, we can see that SID 422 is blocking SID 479.    SID 422 corresponds to Session 1 in our example, and SID 479 is our  blocked Session 2.&lt;br /&gt;To avoid having to stare at the table and cross-compare ID1's and ID2's, put this in a query:&lt;br /&gt;&lt;pre class="bb-code-block"&gt;SQL&amp;gt; select l1.sid, ' IS BLOCKING ', l2.sid&lt;br /&gt;  2  from v$lock l1, v$lock l2&lt;br /&gt;  3  where l1.block =1 and l2.request &amp;gt; 0&lt;br /&gt;  4  and l1.id1=l2.id1&lt;br /&gt;  5  and l1.id2=l2.id2&lt;br /&gt;SQL&amp;gt; /&lt;br /&gt;&lt;br /&gt;       SID 'ISBLOCKING'         SID&lt;br /&gt;---------- ------------- ----------&lt;br /&gt;       422  IS BLOCKING         479&lt;br /&gt;&lt;br /&gt;1 row selected.&lt;/pre&gt;Even better, if we throw a little v$session into the mix, the results are highly readable:&lt;br /&gt;&lt;pre class="bb-code-block"&gt;SQL&amp;gt; select s1.username || '@' || s1.machine&lt;br /&gt;  2  || ' ( SID=' || s1.sid || ' )  is blocking '&lt;br /&gt;  3  || s2.username || '@' || s2.machine || ' ( SID=' || s2.sid || ' ) ' AS blocking_status&lt;br /&gt;  4  from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;  5  where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;  6  and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;  7  and l1.id1 = l2.id1&lt;br /&gt;  8  and l2.id2 = l2.id2 ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;BLOCKING_STATUS&lt;br /&gt;----------------------------------------------------------------------------------------------------&lt;br /&gt;BULKLOAD@yttrium ( SID=422 )  is blocking BULKLOAD@yttrium ( SID=479 )&lt;br /&gt;&lt;br /&gt;1 row selected.&lt;/pre&gt;There's still more information in the v$lock table, but in order to  read that information, we need to understand a bit more about lock types  and the cryptically-named ID1 and ID2 columns.&lt;br /&gt;&lt;h3&gt;&lt;a href="" name="Lock_type_and_the_ID1__ID2_columns"&gt;Lock type and the ID1 / ID2 columns&lt;/a&gt;&lt;/h3&gt;In this case, we already know that the blocking lock is an exclusive  DML lock, since we're the ones who issued the locking statement.   But  most of the time, you won't be so lucky.  Fortunately, you can read this  information from the v$lock table with little effort.&lt;br /&gt;The first place to look is the TYPE column.  There are dozens of lock  types, but the vast majority are system types.  System locks are  normally only held for a very brief amount of time, and it's not  generally helpful to try to tune your library cache, undo logs, etc. by  looking in v$lock!  (See the V$LOCK chapter in the Oracle Database  Reference for a list of system lock types.)  &lt;br /&gt;There are only three types of user locks, TX, TM and UL.  UL is a  user-defined lock -- a lock defined with the DBMS_LOCK package.  The TX  lock is a row transaction lock; it's acquired once for every transaction  that changes data, no matter how many objects you change in that  transaction.  The ID1 and ID2 columns point to the rollback segment and  transaction table entries for that transaction.&lt;br /&gt;The TM lock is a DML lock.  It's acquired once for each object that's  being changed.  The ID1 column identifies the object being modified.  &lt;br /&gt;&lt;h3&gt;&lt;a href="" name="Lock_Modes"&gt;Lock Modes&lt;/a&gt;&lt;/h3&gt;You can see more information on TM and TX locks just by looking at  the lock modes.  The LMODE and REQUEST columns both use the same  numbering for lock modes, in order of increasing exclusivity:  from 0  for no lock, to 6 for exclusive lock.  A session must obtain an  exclusive TX lock in order to change data; LMODE will be 6.  If it can't  obtain an exclusive lock because some of the rows it wants to change  are locked by another session, then it will request a TX in exclusive  mode; LMODE will be 0 since it does not have the lock, and REQUEST will  be 6.  You can see this interaction in the rows we selected earlier from  v$lock:&lt;br /&gt;&lt;pre class="bb-code-block"&gt;ADDR     KADDR           SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK&lt;br /&gt;-------- -------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------&lt;br /&gt;AF9E2C4C AF9E2C60        479 TX     131078      16739          0          6        685          0&lt;br /&gt;ADEBEA20 ADEBEB3C        422 TX     131078      16739          6          0        697          1&lt;/pre&gt;Note that ID1 and ID2 in Session 2, which is requesting the TX lock  (LMODE=0, REQUEST=6), point back to the rollback and transaction entries  for Session 1.  That's what lets us determine the blocking session for  Session 2.&lt;br /&gt;You may also see TX locks in mode 4, Shared mode.  If a block  containing rows to be changed doesn't have any interested transaction  list (ITL) entries left, then the session acquires a TX lock in mode 4  while waiting for an ITL entry.  If you see contention for TX-4 locks on  an object, you probably need to increase INITRANS for the object.&lt;br /&gt;TM locks are generally requested and acquired in modes 3, aka  Shared-Row Exclusive, and 6.  DDL requires a TM Exclusive lock.  (Note  that CREATE TABLE doesn't require a TM lock -- it doesn't need to lock  any objects, because the object in question doesn't exist yet!)  DML  requires a Shared-Row Exclusive lock.   So, in the rows we selected  earlier from v$lock, you can see from the TM locking levels that these  are DML locks:&lt;br /&gt;&lt;pre class="bb-code-block"&gt;ADDR     KADDR           SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK&lt;br /&gt;-------- -------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------&lt;br /&gt;ADDF7EC8 ADDF7EE0        422 TM      88519          0          3          0        697          0&lt;br /&gt;ADDF7F74 ADDF7F8C        479 TM      88519          0          3          0        685          0&lt;/pre&gt;&lt;h3&gt;&lt;a href="" name="Identifying_the_locked_object"&gt;Identifying the locked object&lt;/a&gt;&lt;/h3&gt;Now that we know that each TM row points to a locked object, we can use ID1 to identify the object.&lt;br /&gt;&lt;pre class="bb-code-block"&gt;SQL&amp;gt; select object_name from dba_objects where object_id=88519 ;&lt;br /&gt;&lt;br /&gt;OBJECT_NAME&lt;br /&gt;--------------&lt;br /&gt;TSTLOCK&lt;/pre&gt;Sometimes just knowing the object is enough information; but we can  dig even deeper.  We can identify not just the object, but the block and  even the row in the block that Session 2 is waiting on.&lt;br /&gt;&lt;h3&gt;&lt;a href="" name="Identifying_the_locked_row"&gt;Identifying the locked row&lt;/a&gt;&lt;/h3&gt;We can get this information from v$session by looking at the v$session entry for the blocked session:&lt;br /&gt;&lt;pre class="bb-code-block"&gt;SQL&amp;gt; select row_wait_obj#, row_wait_file#, row_wait_block#, row_wait_row#&lt;br /&gt;  2* from v$session where sid=479 ;&lt;br /&gt;&lt;br /&gt;ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW#&lt;br /&gt;------------- -------------- --------------- -------------&lt;br /&gt;        88519             16          171309             0&lt;/pre&gt;This gives us the object ID, the relative file number, the block in  the datafile, and the row in the block that the session is waiting on.   If that list of data sounds familiar, it's because those are the four  components of an extended ROWID.  We can build the row's actual   extended ROWID from these components using the DBMS_ROWID package.  The  ROWID_CREATE function takes these arguments and returns the ROWID:&lt;br /&gt;&lt;pre class="bb-code-block"&gt;SQL&amp;gt; select do.object_name,&lt;br /&gt;  2  row_wait_obj#, row_wait_file#, row_wait_block#, row_wait_row#,&lt;br /&gt;  3  dbms_rowid.rowid_create ( 1, ROW_WAIT_OBJ#, ROW_WAIT_FILE#, ROW_WAIT_BLOCK#, ROW_WAIT_ROW# )&lt;br /&gt;  4  from v$session s, dba_objects do&lt;br /&gt;  5  where sid=543&lt;br /&gt;  6  and s.ROW_WAIT_OBJ# = do.OBJECT_ID ;&lt;br /&gt;&lt;br /&gt;OBJECT_NAME     ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# DBMS_ROWID.ROWID_C&lt;br /&gt;--------------- ------------- -------------- --------------- ------------- ------------------&lt;br /&gt;TSTLOCK                 88519             16          171309             0 AAAVnHAAQAAAp0tAAA&lt;/pre&gt;And, of course, this lets us inspect the row directly.&lt;br /&gt;&lt;pre class="bb-code-block"&gt;SQL&amp;gt; select * from tstlock where rowid='AAAVnHAAQAAAp0tAAA' ;&lt;br /&gt;&lt;br /&gt;FOO BAR&lt;br /&gt;--- ---&lt;br /&gt;1   a&lt;/pre&gt;&lt;h3&gt;&lt;a href="" name="Conclusion"&gt;Conclusion&lt;/a&gt;&lt;/h3&gt;We've seen how to identify a blocking session, and how to inspect the  very row that the waiting session is waiting for.  And, I hope, learned  a bit about v$lock in the process.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-5358529925464187752?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.orafaq.com/node/854' title='What&apos;s blocking my lock?'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/5358529925464187752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/05/whats-blocking-my-lock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/5358529925464187752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/5358529925464187752'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/05/whats-blocking-my-lock.html' title='What&apos;s blocking my lock?'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-5296396527912375571</id><published>2011-05-22T19:42:00.000+06:00</published><updated>2011-05-22T19:42:45.843+06:00</updated><title type='text'>Oracle DBMS_LOCK Locks Locking</title><content type='html'>&lt;a href="http://psoug.org/reference/dbms_lock.html"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:officedocumentsettings&gt;   &lt;o:allowpng/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-GB&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:enableopentypekerning/&gt;    &lt;w:dontflipmirrorindents/&gt;    &lt;w:overridetablestylehps/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;  mso-fareast-language:EN-US;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;/a&gt;&lt;table class="MsoNormalTable" style="width:100.0%;mso-cellspacing:.6pt;background:#D8D8C4;mso-yfti-tbllook:  1184;mso-padding-alt:1.2pt 1.2pt 1.2pt 1.2pt" width="100%" border="1" cellpadding="0" cellspacing="1"&gt;  &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:olive;mso-fareast-language:   EN-GB"&gt;General Information&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;   font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:1"&gt;   &lt;td style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Source&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;{ORACLE_HOME}/rdbms/admin/dbmslock.sql&lt;/span&gt;&lt;span style="font-size:   12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:2"&gt;   &lt;td style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;First   Available&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;7.3.4&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:3"&gt;   &lt;td style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" valign="top" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;br /&gt;  Constants&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;div align="center"&gt;   &lt;table class="MsoNormalTable" style="width:100.0%;mso-cellspacing:0cm;background:white;mso-yfti-tbllook:    1184;mso-padding-alt:0cm 0cm 0cm 0cm" width="100%" border="1" cellpadding="0" cellspacing="0"&gt;    &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;Name&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;Description&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:     12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:45.6pt;padding:0cm 0cm 0cm 0cm" width="76"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;Data Type&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:     12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:22.2pt;padding:0cm 0cm 0cm 0cm" width="37"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;Value&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:1"&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;nl_mode&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;NuLl&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:45.6pt;padding:0cm 0cm 0cm 0cm" width="76"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;INTEGER&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:22.2pt;padding:0cm 0cm 0cm 0cm" width="37"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;1&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:2"&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;ss_mode&lt;/span&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Sub     Shared: used on an aggregate object to indicate that share locks are being     acquired on subparts of the object&lt;/span&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:45.6pt;padding:0cm 0cm 0cm 0cm" width="76"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;INTEGER&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:22.2pt;padding:0cm 0cm 0cm 0cm" width="37"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;2&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:3"&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;sx_mode&lt;/span&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Sub     eXclusive: used on an aggregate object to indicate that exclusive locks are     being acquired on sub-parts of the object&lt;/span&gt;&lt;span style="font-size:     12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:45.6pt;padding:0cm 0cm 0cm 0cm" width="76"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;INTEGER&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:22.2pt;padding:0cm 0cm 0cm 0cm" width="37"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;3&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:4"&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;s_mode&lt;/span&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Shared:     indicates that the entire aggregate object has a share lock, but some of     the sub-parts may additionally have exclusive locks&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:45.6pt;padding:0cm 0cm 0cm 0cm" width="76"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;INTEGER&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:22.2pt;padding:0cm 0cm 0cm 0cm" width="37"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;4&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:5"&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;ssx_mod&lt;/span&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Shared     SubeXclusive&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:45.6pt;padding:0cm 0cm 0cm 0cm" width="76"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;INTEGER&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:22.2pt;padding:0cm 0cm 0cm 0cm" width="37"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;5&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:6;mso-yfti-lastrow:yes"&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;x_mode&lt;/span&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:0cm 0cm 0cm 0cm"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;eXclusive&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:45.6pt;padding:0cm 0cm 0cm 0cm" width="76"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:10.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;INTEGER&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:22.2pt;padding:0cm 0cm 0cm 0cm" width="37"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;6&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;   &lt;/div&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:4"&gt;   &lt;td style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" valign="top" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;br /&gt;  Dependencies&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;SELECT referenced_name&lt;br /&gt;  FROM dba_dependencies&lt;br /&gt;  WHERE name = 'DBMS_LOCK'&lt;br /&gt;  UNION&lt;br /&gt;  SELECT name&lt;br /&gt;  FROM dba_dependencies&lt;br /&gt;  WHERE referenced_name = 'DBMS_LOCK';&lt;/span&gt;&lt;span style="font-size:12.0pt;   font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:5"&gt;   &lt;td style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Exceptions&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;div align="center"&gt;   &lt;table class="MsoNormalTable" style="width:356.4pt;mso-cellspacing:0cm;background:white;mso-yfti-tbllook:    1184;mso-padding-alt:0cm 0cm 0cm 0cm" width="594" border="1" cellpadding="0" cellspacing="0"&gt;    &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;     &lt;td style="width:63.0pt;padding:0cm 0cm 0cm 0cm" width="105"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;Error Number&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:     12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:291.0pt;padding:0cm 0cm 0cm 0cm" width="485"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;Description&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:     12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:1"&gt;     &lt;td style="width:63.0pt;padding:0cm 0cm 0cm 0cm" width="105"&gt;     &lt;p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:     auto;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;ORA-20000&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:291.0pt;padding:0cm 0cm 0cm 0cm" width="485"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Unable     to find or insert lock &lt;lockname&gt; into catalog dbms_lock_allocated.&lt;/lockname&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:2;mso-yfti-lastrow:yes"&gt;     &lt;td style="width:63.0pt;padding:0cm 0cm 0cm 0cm" width="105"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;ORU-10003&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:291.0pt;padding:0cm 0cm 0cm 0cm" width="485"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Unable     to find or insert lock &lt;lockname&gt; into catalog dbms_lock_allocated.&lt;/lockname&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;   &lt;/div&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:6"&gt;   &lt;td rowspan="2" style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Object   Privileges&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;GRANT execute ON dbms_lock TO &lt;schema_name&gt;&lt;/schema_name&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:7"&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;GRANT execute ON dbms_lock TO uwclass;&lt;/span&gt;&lt;span style="font-size:   12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:8"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:9"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:olive;mso-fareast-language:   EN-GB"&gt;ALLOCATE_UNIQUE&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;font-family:   &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:10"&gt;   &lt;td rowspan="2" style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Allocates   a unique lock identifier (in the range of 1073741824 to 1999999999) given a   lock name. Lock identifiers are used to enable applications to coordinate   their use of locks&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;dbms_lock.allocate_unique(&lt;br /&gt;  lockname        IN  VARCHAR2,&lt;br /&gt;  lockhandle      OUT VARCHAR2,&lt;br /&gt;  expiration_secs IN  INTEGER DEFAULT 864000);&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:11"&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;See dbms_lock demo&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:   &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:12"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:13"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:olive;mso-fareast-language:   EN-GB"&gt;CONVERT&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:14"&gt;   &lt;td rowspan="2" style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" valign="top" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;br /&gt;  Converts a lock from one mode to another&lt;br /&gt; &lt;br /&gt;  Overload 1&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;dbms_lock.convert(&lt;br /&gt;  id       IN INTEGER,&lt;br /&gt;  lockmode IN INTEGER,&lt;br /&gt;  timeout  IN NUMBER DEFAULT maxwait)&lt;br /&gt;  RETURN INTEGER;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;table class="MsoNormalTable" style="width:45.0%;mso-cellspacing:0cm;background:white;mso-yfti-tbllook:    1184" width="45%" border="1" cellpadding="0" cellspacing="0"&gt;    &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;     &lt;td colspan="2" style="width:100.0%;padding:.75pt .75pt .75pt .75pt" width="100%"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;Return Values&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:     12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:1"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;0&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Success&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:2"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;1&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Timeout&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:3"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;2&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Deadlock&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:4"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;3&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Parameter     error&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:5"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;4&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Don't     own lock specified by id or lockhandle&lt;/span&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:6;mso-yfti-lastrow:yes"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;5&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Illegal     lock handle&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:15"&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;See dbms_lock demo&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:   &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:16"&gt;   &lt;td rowspan="2" style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" valign="top" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;br /&gt;  Overload 2&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;dbms_lock.convert(&lt;br /&gt;  lockhandle IN VARCHAR2,&lt;br /&gt;  lockmode   IN INTEGER,&lt;br /&gt;  timeout    IN NUMBER DEFAULT maxwait)&lt;br /&gt;  RETURN INTEGER;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:17"&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;See dbms_lock demo&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:   &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:18"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:19"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:olive;mso-fareast-language:   EN-GB"&gt;RELEASE&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:20"&gt;   &lt;td rowspan="2" style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" valign="top" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;br /&gt;  Explicitly releases a lock previously acquired using the REQUEST function&lt;br /&gt; &lt;br /&gt;  Overload 1&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;dbms_lock.release(id IN INTEGER) RETURN INTEGER;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;table class="MsoNormalTable" style="width:45.0%;mso-cellspacing:0cm;background:white;mso-yfti-tbllook:    1184" width="45%" border="1" cellpadding="0" cellspacing="0"&gt;    &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;     &lt;td colspan="2" style="width:100.0%;padding:.75pt .75pt .75pt .75pt" width="100%"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;Return Values&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:     12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:1"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;0&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Success&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:2"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;3&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Parameter     error&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:3"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;4&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Don't     own lock specified by id or lockhandle&lt;/span&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:4;mso-yfti-lastrow:yes"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;5&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Illegal     lock handle&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:21"&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;See dbms_lock demo&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:   &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:22"&gt;   &lt;td rowspan="2" style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Overload   2&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;dbms_lock.release(lockhandle IN VARCHAR2) RETURN INTEGER;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:23"&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;See dbms_lock demo&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:   &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:24"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:25"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:olive;mso-fareast-language:   EN-GB"&gt;REQUEST&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:26"&gt;   &lt;td rowspan="2" style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" valign="top" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;br /&gt;  Requests a lock with a given mode&lt;br /&gt; &lt;br /&gt;  Overload 1&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;dbms_lock.request(&lt;br /&gt;  id                  IN INTEGER,&lt;br /&gt;  lockmode          IN INTEGER   DEFAULT x_mode,&lt;br /&gt;  timeout           IN   INTEGER DEFAULT maxwait,&lt;br /&gt;  release_on_commit IN BOOLEAN DEFAULT FALSE)&lt;br /&gt;  RETURN INTEGER;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;table class="MsoNormalTable" style="width:45.0%;mso-cellspacing:0cm;background:white;mso-yfti-tbllook:    1184" width="45%" border="1" cellpadding="0" cellspacing="0"&gt;    &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;     &lt;td colspan="2" style="width:100.0%;padding:.75pt .75pt .75pt .75pt" width="100%"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;Return Values&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:     12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:1"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;0&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Success&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:2"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;1&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Timeout&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:3"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;2&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Deadlock&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:4"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;3&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Parameter     error&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:5"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;4&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Don't     own lock specified by id or lockhandle&lt;/span&gt;&lt;span style="font-size:12.0pt;     font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:6;mso-yfti-lastrow:yes"&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;span style="font-size:12.0pt;     font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;5&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:     &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="padding:.75pt .75pt .75pt .75pt"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Illegal     lock handle&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:27"&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;See dbms_lock demo&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:   &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:28"&gt;   &lt;td rowspan="2" style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" valign="top" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;br /&gt;  Overload 2&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;dbms_lock.request(&lt;br /&gt;  lockhandle        IN VARCHAR2,&lt;br /&gt;  lockmode          IN INTEGER   DEFAULT x_mode,&lt;br /&gt;  timeout           IN   INTEGER DEFAULT maxwait,&lt;br /&gt;  release_on_commit IN BOOLEAN DEFAULT FALSE)&lt;br /&gt;  RETURN INTEGER;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:29"&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;See dbms_lock demo&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:   &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:30"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:31"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:olive;mso-fareast-language:   EN-GB"&gt;SLEEP&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:32"&gt;   &lt;td rowspan="2" style="width:25.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Suspends   the session for a given period of time&lt;/span&gt;&lt;span style="font-size:12.0pt;   font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="width:75.0%;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;dbms_lock.sleep(seconds IN NUMBER);&lt;/span&gt;&lt;span style="font-size:12.0pt;   font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:33"&gt;   &lt;td style="width:75.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="75%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;exec dbms_lock.sleep(1.00);&lt;/span&gt;&lt;span style="font-size:12.0pt;   font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:34"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:35"&gt;   &lt;td colspan="2" style="padding:1.2pt 1.2pt 1.2pt 1.2pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:olive;mso-fareast-language:   EN-GB"&gt;Demo&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:36;mso-yfti-lastrow:yes"&gt;   &lt;td colspan="2" style="width:25.0%;background:#80FFFF;padding:1.2pt 1.2pt 1.2pt 1.2pt" width="25%"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;color:teal;   mso-fareast-language:EN-GB"&gt;-- create demo table&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;   mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;br /&gt; &lt;br /&gt;  CREATE TABLE lock_test (&lt;br /&gt;  action VARCHAR2(10),&lt;br /&gt;  when   TIMESTAMP(9));&lt;br /&gt; &lt;br /&gt;  GRANT insert ON lock_test TO public;&lt;br /&gt; &lt;br /&gt;  CREATE OR REPLACE PACKAGE lock_demo IS&lt;br /&gt;   v_lockname   VARCHAR2(12) := 'control_lock';&lt;br /&gt;   v_lockhandle VARCHAR2(200);&lt;br /&gt;   v_result     PLS_INTEGER;&lt;br /&gt; &lt;br /&gt;  &lt;span style="color:teal"&gt;-- obtain a lock&lt;/span&gt;&lt;br /&gt;  PROCEDURE request_lock(p_ltype INTEGER, p_retval OUT INTEGER);&lt;br /&gt;  &lt;span style="color:teal"&gt;-- release an existing lock&lt;/span&gt;&lt;br /&gt;  PROCEDURE release_lock(p_retval OUT INTEGER);&lt;br /&gt;  &lt;span style="color:teal"&gt;-- view the stored handle&lt;/span&gt;&lt;br /&gt;  FUNCTION see_handle RETURN VARCHAR2;&lt;br /&gt;  &lt;span style="color:teal"&gt;-- decode lock request&lt;/span&gt;&lt;br /&gt;  FUNCTION decode_req(p_result PLS_INTEGER) RETURN VARCHAR2;&lt;br /&gt;  &lt;span style="color:teal"&gt;-- decode lock release&lt;/span&gt;&lt;br /&gt;  FUNCTION decode_rel(p_result PLS_INTEGER) RETURN VARCHAR2;&lt;br /&gt; &lt;br /&gt;  END lock_demo;&lt;br /&gt;  /&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;  CREATE OR REPLACE PACKAGE BODY lock_demo IS&lt;br /&gt; &lt;br /&gt;  PROCEDURE request_lock(p_ltype IN INTEGER, p_retval OUT INTEGER) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    IF v_lockhandle IS NULL THEN&lt;br /&gt;      &lt;span style="color:blue"&gt;dbms_lock.allocate_unique&lt;/span&gt;(v_lockname,   v_lockhandle);&lt;br /&gt;      p_retval := &lt;span style="color:blue"&gt;dbms_lock.request&lt;/span&gt;(v_lockhandle,   p_ltype);&lt;br /&gt;    END IF;&lt;br /&gt;  END request_lock;&lt;br /&gt;  ------------------------------------------------------------&lt;br /&gt;  PROCEDURE release_lock(p_retval OUT INTEGER) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    IF v_lockhandle IS NOT NULL THEN&lt;br /&gt;      p_retval := &lt;span style="color:blue"&gt;dbms_lock.release&lt;/span&gt;(v_lockhandle);&lt;br /&gt;    END IF;&lt;br /&gt;  END release_lock;&lt;br /&gt;  ------------------------------------------------------------&lt;br /&gt;  FUNCTION see_handle RETURN VARCHAR2 IS&lt;br /&gt;  BEGIN&lt;br /&gt;    IF v_lockhandle IS NOT NULL THEN&lt;br /&gt;      RETURN v_lockhandle;&lt;br /&gt;    ELSE&lt;br /&gt;      RETURN 'Not Allocated';&lt;br /&gt;    END IF;&lt;br /&gt;  END see_handle;&lt;br /&gt;  ------------------------------------------------------------&lt;br /&gt;  FUNCTION decode_req(p_result PLS_INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;   retval VARCHAR2(20);&lt;br /&gt;  BEGIN&lt;br /&gt;    SELECT DECODE(p_result,0,'Success',1,'Timeout',2,'Deadlock',&lt;br /&gt;    3,'Parameter Error',4,'Already owned',5,'Illegal Lock Handle')&lt;br /&gt;    INTO retval&lt;br /&gt;    FROM dual;&lt;br /&gt; &lt;br /&gt;    RETURN retval;&lt;br /&gt;  END decode_req;&lt;br /&gt;  ------------------------------------------------------------&lt;br /&gt;  FUNCTION decode_rel(p_result PLS_INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;   retval VARCHAR2(20);&lt;br /&gt;  BEGIN&lt;br /&gt;    SELECT DECODE(p_result,0,3, 'Parameter Error',4, 'Already owned',&lt;br /&gt;    5, 'Illegal Lock Handle')&lt;br /&gt;    INTO retval&lt;br /&gt;    FROM dual;&lt;br /&gt; &lt;br /&gt;    RETURN retval;&lt;br /&gt;  END decode_rel;&lt;br /&gt;  ------------------------------------------------------------&lt;br /&gt;  END lock_demo;&lt;br /&gt;  /&lt;br /&gt; &lt;br /&gt;  GRANT execute ON lock_demo TO public;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;  set serveroutput on&lt;br /&gt; &lt;br /&gt;  &lt;span style="color:teal"&gt;-- get an exclusive lock in the current session   (Session 1)&lt;/span&gt;&lt;br /&gt;  DECLARE&lt;br /&gt;   s VARCHAR2(200);&lt;br /&gt;  BEGIN&lt;br /&gt;    lock_demo.request_lock(6, s);&lt;br /&gt;    dbms_output.put_line(s);&lt;br /&gt;  END;&lt;br /&gt;  /&lt;br /&gt;  &lt;span style="color:teal"&gt;&lt;br /&gt;  /* Two session request a shared lock (ss_mode). The shared lock cannot be   acquired because  session 1 holds an exclusive lock. Execution will stop   on the request until the the exclusive lock is released. */ &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;table class="MsoNormalTable" style="width:100.0%;mso-cellspacing:0cm;border-top:solid #8D9598 1.0pt;    border-left:none;border-bottom:solid #8D9598 1.0pt;border-right:none;    mso-border-top-alt:solid #8D9598 .75pt;mso-border-bottom-alt:solid #8D9598 .75pt;    mso-yfti-tbllook:1184;mso-padding-alt:0cm 0cm 0cm 0cm" width="100%" border="1" cellpadding="0" cellspacing="0"&gt;    &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;     &lt;td style="width:50.0%;border-top:none;border-left:none;     border-bottom:solid #8D9598 1.0pt;border-right:solid #8D9598 1.0pt;     mso-border-bottom-alt:solid #8D9598 .75pt;mso-border-right-alt:solid #8D9598 .75pt;     padding:0cm 0cm 0cm 0cm" width="50%"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     12.0pt;font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Session     2&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:34.0%;border:none;border-bottom:solid #8D9598 1.0pt;     mso-border-bottom-alt:solid #8D9598 .75pt;padding:0cm 0cm 0cm 0cm" width="34%"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:     .0001pt;text-align:center;line-height:normal" align="center"&gt;&lt;b&gt;&lt;span style="font-size:     12.0pt;font-family:Courier;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;Session     3&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr style="mso-yfti-irow:1;mso-yfti-lastrow:yes"&gt;     &lt;td style="width:50.0%;border:none;border-right:solid #8D9598 1.0pt;     mso-border-right-alt:solid #8D9598 .75pt;padding:0cm 0cm 0cm 0cm" width="50%"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;set serveroutput on&lt;br /&gt;   &lt;br /&gt;    DECLARE&lt;br /&gt;      s VARCHAR2(200);&lt;br /&gt;    BEGIN&lt;br /&gt;      uwclass.lock_demo.request_lock(&lt;br /&gt;      dbms_lock.ss_mode, s);&lt;br /&gt;   &lt;br /&gt;      dbms_output.put_line(s);&lt;br /&gt;   &lt;br /&gt;      INSERT INTO uwclass.lock_test&lt;br /&gt;      (action, when)&lt;br /&gt;      VALUES&lt;br /&gt;      ('started', SYSTIMESTAMP);&lt;br /&gt;   &lt;br /&gt;      &lt;span style="color:blue"&gt;dbms_lock.sleep&lt;/span&gt;(5);&lt;br /&gt;   &lt;br /&gt;      INSERT INTO uwclass.lock_test&lt;br /&gt;      (action, when)&lt;br /&gt;      VALUES&lt;br /&gt;      ('ended', SYSTIMESTAMP);&lt;br /&gt;      COMMIT;&lt;br /&gt;    END;&lt;br /&gt;    /&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="width:50.0%;border:none;padding:0cm 0cm 0cm 0cm" valign="top" width="50%"&gt;     &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;     line-height:normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;     mso-fareast-language:EN-GB"&gt;set serveroutput on&lt;br /&gt;   &lt;br /&gt;    DECLARE&lt;br /&gt;      s VARCHAR2(200);&lt;br /&gt;    BEGIN&lt;br /&gt;      uwclass.lock_demo.request_lock(&lt;br /&gt;      dbms_lock.ss_mode, s);&lt;br /&gt;   &lt;br /&gt;      dbms_output.put_line(s);&lt;br /&gt;   &lt;br /&gt;      INSERT INTO uwclass.lock_test&lt;br /&gt;      (action, when)&lt;br /&gt;      VALUES&lt;br /&gt;      ('started', SYSTIMESTAMP);&lt;br /&gt;   &lt;br /&gt;      &lt;span style="color:blue"&gt;dbms_lock.sleep&lt;/span&gt;(5);&lt;br /&gt;   &lt;br /&gt;      INSERT INTO uwclass.lock_test&lt;br /&gt;      (action, when)&lt;br /&gt;      VALUES&lt;br /&gt;      ('ended' , SYSTIMESTAMP);&lt;br /&gt;      COMMIT;&lt;br /&gt;    END;&lt;br /&gt;    /&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;     mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;color:teal;   mso-fareast-language:EN-GB"&gt;&lt;br /&gt;  -- Session 1 releases its lock&lt;br /&gt;  &lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:Courier;mso-fareast-font-family:   &amp;quot;Times New Roman&amp;quot;;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:   EN-GB"&gt;DECLARE&lt;br /&gt;    s VARCHAR2(200);&lt;br /&gt;  BEGIN&lt;br /&gt;    lock_demo.release_lock(s);&lt;br /&gt;    dbms_output.put_line(s);&lt;br /&gt;  END;&lt;br /&gt;  /&lt;span style="color:teal"&gt;&lt;br /&gt; &lt;br /&gt;  -- Execution resumes when the exclusive lock is released&lt;/span&gt;&lt;br /&gt;  SELECT TO_CHAR(when,'dd.mm.yyyy hh24:mi:ss'), action&lt;br /&gt;  FROM lock_test&lt;br /&gt;  ORDER BY when;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-fareast-language:EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-5296396527912375571?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://psoug.org/reference/dbms_lock.html' title='Oracle DBMS_LOCK Locks Locking'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/5296396527912375571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/05/oracle-dbmslock-locks-locking_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/5296396527912375571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/5296396527912375571'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/05/oracle-dbmslock-locks-locking_22.html' title='Oracle DBMS_LOCK Locks Locking'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-9041352159546877565</id><published>2011-05-21T16:40:00.000+06:00</published><updated>2011-05-21T16:40:13.494+06:00</updated><title type='text'>Reference Guide to Supply Chain Management (SCM) Features and Functions</title><content type='html'>&lt;a href="http://www.technologyevaluation.com/research/articles/reference-guide-to-supply-chain-management-scm-features-and-functions-20849/?sms_ss=blogger&amp;amp;at_xt=4dd7963bb49c92ac%2C0"&gt;Reference Guide to Supply Chain Management (SCM) Features and Functions&lt;/a&gt;&lt;br /&gt;&lt;h1&gt;&lt;span id="lblArticleTitle"&gt;Reference Guide to Supply Chain Management (SCM) Features and Functions&lt;/span&gt;&lt;/h1&gt;     &lt;span class="red"&gt;&lt;span id="lblArticleAuthor"&gt;Anne Le Bris and Melissa Vaes, with contributions from TEC analyst data&lt;/span&gt;&lt;/span&gt; - &lt;span id="lblArticlePublishDate"&gt;5/4/2010 1:24:00 PM&lt;/span&gt;    &lt;br /&gt;&lt;br /&gt;    &lt;span id="lblArticleBody"&gt;&lt;p&gt;This SCM reference guide provides insight into the &lt;em&gt;supply chain management &lt;/em&gt;(SCM)  features and functions currently accessible on today’s market. This  guide will help you understand which features are essential for your  organization and which are not. &lt;/p&gt; &lt;p&gt;You can also download a comprehensive guide in Excel format, with all of the nearly 2,600 SCM functions and features, at TEC’s &lt;a href="http://rfp.technologyevaluation.com/store.asp?catid=5&amp;amp;productId=879"&gt;Supply Chain Management (SCM) RFP Template page&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Before we get started, here is a short definition of the role of SCM software in supply chain activities:&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt; &lt;span style="font-size:130%;color:#000000;"&gt;   What Is SCM Software?  &lt;/span&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;SCM software manages product flows from supplier, to manufacturer, to  customer. In brief, it manages supply and demand for an organization.  According to &lt;a href="http://www.apics.org/default.htm"&gt;APICS&lt;/a&gt;, SCM software refers to &lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;the design, planning, execution, control, and monitoring of supply  chain activities with the objective of creating net value, building a  competitive infrastructure, leveraging worldwide logistics,  synchronizing supply with demand, and measuring performance globally. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;SCM systems integrate all features of procurement processes, &lt;em&gt;warehouse management system&lt;/em&gt; (WMS) features and functions, transportation, and logistics, as well as other product planning modules. &lt;/p&gt; &lt;p&gt;To learn more about the distinction between &lt;em&gt;advance planning and scheduling&lt;/em&gt; (APS), SCM, and &lt;em&gt;enterprise resource planning&lt;/em&gt; (ERP), read TEC’s article &lt;a href="http://www.technologyevaluation.com/research/articles/comparative-analysis-are-you-still-confused-about-aps-scm-and-erp--20533/"&gt;Comparative Analysis: Are You Still Confused About APS, SCM, and ERP?&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt; &lt;span style="font-size:130%;color:#000000;"&gt; &lt;/span&gt; &lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt; &lt;span style="font-size:130%;color:#000000;"&gt;   About This SCM Guide  &lt;/span&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Our SCM &lt;em&gt;request for information&lt;/em&gt; (SCM RFI) template is composed of almost 2,600 criteria; consequently, we’ll focus here on the “big picture” features only.&lt;/p&gt; &lt;p&gt;We’ve brought SCM features together by broad category:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;em&gt;Warehouse management system&lt;/em&gt; (WMS) &lt;/li&gt;&lt;li&gt;&lt;em&gt;Transportation management system&lt;/em&gt; (TMS) &lt;/li&gt;&lt;li&gt;&lt;em&gt;International trade logistics&lt;/em&gt; (ITL) &lt;/li&gt;&lt;li&gt;&lt;em&gt;Supplier relationship management&lt;/em&gt; (SRM) &lt;/li&gt;&lt;li&gt;Demand management &lt;/li&gt;&lt;li&gt;Supply chain analytics &lt;/li&gt;&lt;li&gt;Order management &lt;/li&gt;&lt;li&gt;Service parts planning &lt;/li&gt;&lt;li&gt;Product technology &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;These categories correspond to a high-level functional breakdown of  software features. In this reference guide, we give a short explanation  of how each category impacts your supply chain management processes. &lt;/p&gt; &lt;p&gt;If you would like more information about full listings of enterprise  software functions and features (SCM, ERP, and other enterprise software  categories), please see TEC’s &lt;a href="http://rfp.technologyevaluation.com/"&gt;RFP Templates&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;strong&gt; &lt;span style="font-size:130%;color:#000000;"&gt;   &lt;hr /&gt;   &lt;/span&gt;&lt;p&gt;&lt;span style="font-size:130%;color:#000000;"&gt;Supply Chain Management (SCM) Software Functions and Features  &lt;/span&gt; &lt;/p&gt; &lt;/strong&gt;&lt;p&gt;&lt;strong&gt; &lt;span style="font-size:130%;"&gt; &lt;/span&gt; &lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;SCM functions and features, submodule #1: warehouse management system (WMS) &lt;/strong&gt;&lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;&lt;strong&gt;Functionality &lt;br /&gt;&lt;/strong&gt;This category includes the general warehouse management  functionalities such as warehouse configuration, bin location and  product setup, inventory control, license plate tracking, quality  control, picking, packing and shipping, etc. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Adaptability &lt;br /&gt;&lt;/strong&gt;The adaptability module in SCM software covers business processes, decision support, and reporting. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Warehouse management system (WMS) technology configuration &lt;br /&gt;&lt;/strong&gt;The technology configuration addresses WMS-specific functionality such as &lt;em&gt;radio-frequency identification&lt;/em&gt;  (RFID), security, and internationalization supported by each vendor. It  also touches on programming and other technologies used in the  development of the WMS application.&lt;/p&gt;&lt;/blockquote&gt; &lt;hr /&gt; &lt;p&gt;&lt;strong&gt;SCM functions and features, submodule #2: transportation management system (TMS) &lt;/strong&gt;&lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;&lt;strong&gt;System definition and implementation &lt;br /&gt;&lt;/strong&gt;The TMS should include tools and applications to enable to  create profiles for all your contracts, associated carriers, and trade  lanes for inter-modal and multi-leg moves. This should support regional  as well as international transportation movements. The key to the  successful operation of the TMS is a robust foundation created during  the system implementation. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Transportation management operation functionality &lt;br /&gt;&lt;/strong&gt;Transportation management operation functionality allows  distributors to align their transportation operations with their supply  chain strategies and overall business objectives. This includes areas  that take into consideration the entire shipment life cycle, from  planning, network optimization, and execution, to shipment tracking and  analysis. &lt;/p&gt;&lt;/blockquote&gt; &lt;hr /&gt; &lt;p&gt;&lt;strong&gt;SCM functions and features, submodule #3: international trade logistics (ITL)&lt;/strong&gt;&lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;&lt;strong&gt;Collaboration &lt;br /&gt;&lt;/strong&gt;True collaboration across a global and disparate set of  entities and information systems requires a neutral and secure  environment. This type of environment enables all players to engage in  an electronic dialogue to collaborate in acquiring, transferring,  transporting, and settling with regional and international trading  partners. In addition, the data model should take into account the  different roles of all participants and manage these through a set of  rule-based processes. As such, the system implementation should include  clear definitions in terms of buy-sell relationships, financial terms,  and service level agreements, as well as related contact details and  user profiles for suppliers, customers, and related service providers. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Content &lt;br /&gt;&lt;/strong&gt;The system should support all the data and information  required in order to establish a true total cost of goods sold at the  time of the initial buy-sell transaction. The SCM software should also  enable users to track incremental costs as the shipment is processed  from point of origin to final point of receipt. All costs and activities  should be available at the transaction initiation point and can be  classified by the primary components, which are product costs,  compliance costs, and logistics costs. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Commerce &lt;br /&gt;&lt;/strong&gt;Starting with the initial request for goods—whether this is an RFI, a &lt;em&gt;request for quotation&lt;/em&gt;  (RFQ), or a formal purchase order, all information that is exchanged  during the shipment life cycle should be facilitated by the &lt;em&gt;international trade logistics&lt;/em&gt;  (ITL) system. This requires a synchronized system and process, where  the product and shipment requirements are integrated into an automated  order fulfillment environment. The product item master and associated  tables will determine the cost of the product as well as the  relationship between the product and any duties or tariffs that are  applicable. Tables related to customs duties and tariffs as well as  associated rates of exchange and transportation costs should be  available as part of the system functions. This will enable the user to  obtain an estimated total cost of goods sold as well as a final cost of  goods sold, to highlight any variances or discrepancies. This implies a  data model that includes an understanding of all the data exchanged and  processed at the product and item level, between order management  systems, as well as the data exchanged with warehouse management and  transportation systems.&lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt; &lt;hr /&gt; &lt;/strong&gt;&lt;p&gt;&lt;strong&gt;SCM functions and features, submodule #4: supplier relationship management (SRM) &lt;/strong&gt;&lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;&lt;strong&gt;Design &lt;br /&gt;&lt;/strong&gt;Best practice dictates that strategic suppliers be involved  in the new product process from the very beginning—i.e., the concept,  requirements, and design definition phase. &lt;em&gt;Supplier relationship management&lt;/em&gt; (SRM) suites support this with functionality for requirements collaboration tools, component selection tools, and &lt;em&gt;bills of materials&lt;/em&gt; (BOMs) grading. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Sourcing &lt;br /&gt;&lt;/strong&gt;Many consider sourcing to be the heart of SRM and commodity  management to be the heart of sourcing. Advanced sourcing suites are  rich in analysis and decision support technology to absorb huge amounts  of data quickly and make intelligent sourcing decisions. They also lay  the foundation of execution through RFI, RFQ, and RFP processes, and  manage performance against contracts. Risk management is an area which  spans the full life cycle, in particular association with the sourcing  function. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Procurement &lt;br /&gt;&lt;/strong&gt;Procurement is generally divided into &lt;em&gt;material requirements planning&lt;/em&gt;  (MRP)-driven procurement (sometimes referred to as direct materials  procurement) and requisition-driven procurement (sometimes referred to  as indirect or &lt;em&gt;maintenance, repair, and operations&lt;/em&gt; [MRO]  procurement), although some long-lead-time, first-run direct materials  are ordered via requisitions. This division reflects substantial  differences in the two methods of procurement. Management of catalogs  supports requisition-driven procurement and the sourcing processes that  precede MRP-driven procurement. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Fulfillment &lt;br /&gt;&lt;/strong&gt;The bulk of fulfillment functionality is traditionally  performed by ERP and related systems such as order management, warehouse  management, and distribution management systems. As companies  virtualize and suppliers become increasingly involved in the fulfillment  process, some functionality is appropriate within SRM. SRM systems  should support a range of modern inbound inventory management practices,  such as kanban and &lt;em&gt;vendor-managed inventory&lt;/em&gt; (VMI) and provide  visibility into the inbound pipeline. Returns management becomes  important in SRM for situations where components are being returned to  and repaired or replaced by suppliers. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Manufacturing &lt;br /&gt;&lt;/strong&gt;As with fulfillment, the bulk of manufacturing  functionality is traditionally performed by ERP systems. However, the  important supplier-facing processes of quality and &lt;em&gt;engineer change order&lt;/em&gt; (ECO) management may be done outside the ERP system as part of an SRM suite. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Settlement &lt;br /&gt;&lt;/strong&gt;The primary SRM-related function for settlements is in  reconciliation between the original order, actual received goods, and  the invoice. Advanced settlement processes may also be supported, such  as evaluated receipts or electronic invoice presentation and payment. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Utilities &lt;br /&gt;&lt;/strong&gt;There are several areas that span across the lifecycle  categories. Specifically, you need project management utilities during  design, sourcing, and manufacturing. The same is true for managing BOMs  and managing cost.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Infrastructure &lt;br /&gt;&lt;/strong&gt;SRM is by nature an integrative function and requires the  infrastructure to support that integration, as well as to manage the  massive volume of related content, alerts, and data. &lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt; &lt;hr /&gt; &lt;/strong&gt;&lt;p&gt;&lt;strong&gt;SCM functions and features, submodule #5: demand management &lt;/strong&gt;&lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;&lt;strong&gt;Promotion planning &lt;br /&gt;&lt;/strong&gt;Promotion management systems allow your organization to  plan promotions with your trading partners, including simulating,  executing, and evaluating the promotion performance. Some performance  planning issues to be aware include the following: &lt;/p&gt; &lt;ul&gt;&lt;li&gt;Promotion plans are frequently not integrated into the demand stream. &lt;/li&gt;&lt;li&gt;Promotions are launched without the requisite tracking of  real-time events to monitor and modify the promotions in action, during  the promotion cycle. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Pricing and profit optimization &lt;br /&gt;&lt;/strong&gt;The pricing and profit module manages profitable and  sellable prices for products by dimensions such as markets,  demographics, and channel partners. The module also enables future  evaluation by maintaining pricing logic and results. The challenge in  pricing is that the source and adjustments to price come from various  organizations within the enterprise and the channel partners, which  impacts actual pricing and profitability. Thus, the ability to track and  report history is equally important for managing pricing activities. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Forecasting &lt;br /&gt;&lt;/strong&gt;Reliable forecasts are based not only on algorithms that  are appropriate to the business setting, but also on an inclusive,  highly integrative process that gathers all data that can impact the  ultimate demand placed upon the supply chain. Data granularity is  critical to ensuring that the right product at the item level is  produced or distributed. Superior forecast processes require the  evaluation of historical data as well as the current demand activity,  and the ability to adjust forecasts on the most current data and  assumptions. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Merchandise planning &lt;br /&gt;&lt;/strong&gt;Merchandise planning analyzes demand at the item level. It  allows organizations like merchants (retailers) to understand demand  based on issues ranging from demographics, store locations, shelves, and  support, to purchasing as well as the positioning of merchandise in the  retail channel. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Life cycle planning &lt;br /&gt;&lt;/strong&gt;Life cycle planning is becoming a more popular capability.  Demand characteristics change over the life of a product and require  close attention to demand patterns to ensure that markets are not  starved during ramp-up, or supplied with excess in later stages. In  addition, firms are frequently left with excess inventory thanks to ECOs  or other product changes, as well as at end-of-life, due to poor  planning and visibility into demand cycles and communication of product  phase-outs. Life cycle planning provides the ability to view sell-in and  sell-through point of sale (POS) data and will recommend alternate  curves based on early actual sales information. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Consensus planning &lt;br /&gt;&lt;/strong&gt;Consensus planning is a method to create a "one number"  forecast for the enterprise. Within complex organizational structures,  many professionals are responsible for planning in different areas, such  as product marketing for product and product families; sales for  territory sales plans; channel and alliance management for channel  forecasts; finance for revenue and corporate strategic plans; and  manufacturing for shipment or off-the-dock plans. The wide range of  professionals involved often creates confusion, poor coordination, and  missed business opportunities when sales are missed or excess  inventories mount. Ultimately, a process must produce a forecast—one  number—upon which the supply chain will act. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Collaborative planning &lt;br /&gt;&lt;/strong&gt;Collaboration among trading partners has become standard  practice in many industries as more supply chain activities are being  outsourced. Within the demand management module, collaborative  forecasting must comply with process and data standards that have been  validated by the &lt;a href="http://www.vics.org/"&gt;Voluntary Interindustry Commerce Solutions (VICS) Council&lt;/a&gt;, &lt;a href="http://www.rosettanet.org/"&gt;RosettaNet&lt;/a&gt;,  and other industry bodies that have modeled these processes for their  industries. In addition, a collaborative software system must allow the  ability for joint sharing and modeling of demand supply gaps between  trading partners. It must allow trading partners to view, drive  alternative solutions and simulations, and resolve issues around price  and unit availability, which include flexibility and target  replenishment levels (re-order points). &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Sales and operation planning (S&amp;amp;OP) &lt;br /&gt;&lt;/strong&gt;S&amp;amp;OP is a process that employs enabling technology to  balance demand and supply to create a feasible forecast that meets an  enterprise's global organizational needs. Cross-functional organizations  from marketing to manufacturing require visibility, simulation, and  consensus building for meeting revenue, cost, and delivery needs. The  ability to reallocate and reprioritize based on customer, profit, and  other factors are important elements of S&amp;amp;OP today. It is important  to determine whether the vendor supports the S&amp;amp;OP process with  information from multiple systems. S&amp;amp;OP processes also ask questions  around investment to improve responsiveness, customer service, reduce  risk, and increase market share. Integration is important because the  data to answer these questions may reside in other modules such as APS  or inventory planning. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Vendor-managed inventory (VMI) replenishment &lt;br /&gt;&lt;/strong&gt;VMI replenishment allows the co-management of inventory by  both customers and suppliers. Best practices allow for joint creation  and analysis of the current level of inventory to support demand and  keep cost down. In addition, VMI dynamically detects when inventory  levels fall bellow required (agreed-to) levels and place a refill  (replenishment) order. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Event planning &lt;br /&gt;&lt;/strong&gt;Event planning for various marketing events has become more  complex as more firms use a rich set of trading partners, which include  media, channel partners, and retailers. Product launches, special media  and advertising, promotional events, or new store openings need finely  tuned planning to be successful. Today, systems must move from  PowerPoint-level tools to strong profit analytics for ensuring market  success and &lt;em&gt;return on investment&lt;/em&gt; (ROI). &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Metrics and reporting &lt;br /&gt;&lt;/strong&gt;Metrics and reporting capabilities today must be  forward-looking to report (but more importantly, prevent) negative  business performance. Beyond excellent modeling and simulation  capabilities, metrics systems must be real-time and predictive. They  must not only record real-time events and their impacts, but also use  techniques such as pattern recognition to determine processes out of  tolerance and provide early detection. Preventing late orders is better  than reporting late orders, naturally. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Demand management systems architecture &lt;br /&gt;&lt;/strong&gt;Demand management tools have unique and high levels of  integration requirements. These requirements should be factored into  your evaluation of SCM functions and features if your organization  places a high priority on demand management functionality. &lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt; &lt;hr /&gt; &lt;/strong&gt;&lt;p&gt;&lt;strong&gt;SCM functions and features, submodule #6: supply chain analytics &lt;/strong&gt;&lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;&lt;strong&gt;Supply chain optimization &lt;br /&gt;&lt;/strong&gt;Supply chain optimization modules allow you to design the  best-fit (optimal) supply chain by time, cost, and other factors, in  order to create responsive and lean supply chains. Each module has a  unique specialty such as logistics or inventory. In addition, the  optimized network blends and trades off all these factors. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Supply chain event management &lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Supply chain event management&lt;/em&gt; (SCEM) or supply chain  network systems are a new class of solutions designed to monitor,  notify, analyze, measure, and control business process and execution  types of activities. These systems take advantage of new architectural  principles brought about by several forces: high-availability,  publish-and-subscribe architectures; tools like Java; the maturity of &lt;em&gt;artificial intelligence&lt;/em&gt; (AI) rule-based programming capabilities; emerging agent technologies; and Web architectures and standards such as &lt;em&gt;simple object access protocol&lt;/em&gt; (SOAP) and &lt;em&gt;extensible markup language&lt;/em&gt;  (XML). These solutions allow open, real-time views into global  information, as well as the ability to pinpoint and drill into key  information, sensing deviations in business plans versus execution  expectations (unplanned events). &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Production and supply planning &lt;br /&gt;&lt;/strong&gt;Today's supply chain planning systems have significant advantages over the &lt;em&gt;manufacturing resource planning&lt;/em&gt;  (MRP II) systems of the past. These systems incorporate up-to-date  algorithms and philosophies on how supply chains work. In addition, they  have a technology advantage over MRP II, in that they are  memory-resident, which allows the solutions to solve simulation issues  extremely quickly, with very large arrays (models). These large models  solve simultaneous, multi-level, and multi-node problems that MRP II  systems cannot. &lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt; &lt;hr /&gt; &lt;/strong&gt;&lt;p&gt;&lt;strong&gt;SCM functions and features, submodule #7: order management &lt;/strong&gt;&lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;&lt;strong&gt;Order promising &lt;br /&gt;&lt;/strong&gt;The order promising submodule includes criteria for &lt;em&gt;available-to-promise&lt;/em&gt;  (ATP) and configuration management across multiple databases,  integration of configuration management with multiple unique BOMs, and  integration with demand and replenishment orders. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Inventory management and visibility &lt;/strong&gt;&lt;br /&gt;Many organizations want to provide real-time promising, so inventory visibility from multiple sources is critical. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Sourcing &lt;/strong&gt;&lt;br /&gt;A primary attribute of a distributed order fulfillment system is the  ability to perform multi-stage sourcing and assembly. This requires a  very open architecture to integrate seamlessly with various systems and  supply chain nodes, in a real-time fashion. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Execution visibility &lt;/strong&gt;&lt;br /&gt;Once an order has been promised, keeping track while the order is  built and shipped has become a critical function in the supply chain. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Inbound and assembly coordination or multi-site staging &lt;/strong&gt;&lt;br /&gt;Many orders are sourced and built by a network of partners.  Frequently, notification of cancellations does not occur. Keeping these  orders synchronized is critical toward meeting schedules as well as  avoiding over-building or building ahead of demand. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Shipping and outbound management &lt;br /&gt;&lt;/strong&gt;Once an order has been created and built, it must be  shipped. Notification of advance shipments to customers is key to  seamless transportation, as well as tracing, tracking, and receiving the  orders. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Order management-specific technology &lt;br /&gt;&lt;/strong&gt;A distributed architecture is key to a successful order  management system, whether supply chain nodes are internal or external  to the enterprise. &lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt; &lt;hr /&gt; &lt;/strong&gt;&lt;p&gt;&lt;strong&gt;SCM functions and features, submodule #8: service parts planning &lt;/strong&gt;&lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;&lt;strong&gt;Planning &lt;br /&gt;&lt;/strong&gt;Service parts planning deals with the creation and replenishment of a supply network for service operations. This can include &lt;em&gt;original equipment manufacturers&lt;/em&gt; (OEMs) and service partners, as well as service logistics providers. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Service delivery and execution &lt;br /&gt;&lt;/strong&gt;The service delivery and execution submodule includes  functionality for integration with call center systems (for dispatching  requirements), service response prioritization and optimization,  allocation of scarce parts, and dispatch. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Workforce optimization &lt;br /&gt;&lt;/strong&gt;Workforce optimization is used for determining the right  skill mix and location of personnel to support service demands. This can  include on-site, co-managed personnel at the customer site. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Logistics transportation and reverse logistics &lt;br /&gt;&lt;/strong&gt;Transportation planning and execution has a significant  role to play in the service supply chain. As in traditional models,  there is always a trade-off in time and cost between fixed assets and  delivery responsiveness in serving customers. Dynamic repair needs such  as emergency breakdowns in remote settings can exacerbate delivery  problems. In addition, reverse logistics issues, such as pickup of parts  for delivery to third-party locations for repair, are addressed in this  submodule. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Analytics and reporting &lt;br /&gt;&lt;/strong&gt;The service planning system is a wealth of information for  many organizations which are accountable for product planning and  design, asset and capital management, and general customer relationship  management. Therefore analytics and reporting features are not just  designed to enable functional excellence, but also to feed these other  key areas of the value chain. &lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt; &lt;hr /&gt; &lt;/strong&gt;&lt;p&gt;&lt;strong&gt;SCM functions and features, submodule #9: product technology&lt;/strong&gt;&lt;/p&gt; &lt;blockquote style="MARGIN-RIGHT: 0px" dir="ltr"&gt; &lt;p&gt;&lt;strong&gt;Architecture &lt;br /&gt;&lt;/strong&gt;Architecture refers to the framework for organizing the  planning and implementation of data resources. It also refers to the way  the system is designed and the manner in which all components are  connected to one another. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;User interface &lt;/strong&gt;&lt;br /&gt;User interface refers to the manner in which people access and  interact with the software. The user interface should facilitate the  user's easy operation of the software.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Platforms &lt;br /&gt;&lt;/strong&gt;The platform refers to the framework, both the hardware  (e.g., type of processor) and the operating system that allows a  computer or set of computers to function.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Application tools&lt;/strong&gt; &lt;br /&gt;Application tools are the components that provide the ability for an application or program to work. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Reporting &lt;/strong&gt;&lt;br /&gt;Functionality for reporting refers to technical options for generating and delivering reports. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;SaaS and hosting options &lt;/strong&gt;&lt;br /&gt;This category refers to features for &lt;em&gt;software-as-a-service&lt;/em&gt; (SaaS) or hosted solutions&lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt; &lt;hr /&gt; &lt;/strong&gt;&lt;p&gt;&lt;strong&gt; &lt;span style="font-size:130%;color:#000000;"&gt;   Final Thoughts  &lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;A comprehensive SCM RFP will also include other general considerations, including reseller and &lt;em&gt;value-added reseller&lt;/em&gt; (VAR) channels, along with vendor viability considerations. &lt;/p&gt; &lt;p&gt;We hope you’ve found this reference guide helpful. For more  information about SCM features and functions, as well as functionality  for other classes of enterprise software, please visit TEC’s &lt;a href="http://rfp.technologyevaluation.com/"&gt;RFP Templates page&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;For more information and to start your own custom solution evaluation  of SCM software, including the ability to assess and prioritize the SCM  functions and features that are important to your organization, please  visit TEC’s &lt;a href="http://scm.technologyevaluation.com/"&gt;SCM Software Evaluation Center&lt;/a&gt;.&lt;/p&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-9041352159546877565?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.technologyevaluation.com/research/articles/reference-guide-to-supply-chain-management-scm-features-and-functions-20849/?sms_ss=blogger&amp;at_xt=4dd7963bb49c92ac%2C0' title='Reference Guide to Supply Chain Management (SCM) Features and Functions'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/9041352159546877565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/05/reference-guide-to-supply-chain.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/9041352159546877565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/9041352159546877565'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/05/reference-guide-to-supply-chain.html' title='Reference Guide to Supply Chain Management (SCM) Features and Functions'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-1028736383921972675</id><published>2011-05-11T14:15:00.002+06:00</published><updated>2011-05-11T14:15:56.170+06:00</updated><title type='text'>RetrieveTreeHierarchy / SQL server / SQL/T-SQL</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;General way to handle trees. Fails when the sequence varchar length is exceeded - in this case 100 levels. &lt;br /&gt;Author Nigel Rivett &lt;br /&gt;&lt;pre&gt;-- create test data&lt;br /&gt;create table #z (id int, name varchar(20), Parent int null)&lt;br /&gt;insert #z select   1,  'foo', null&lt;br /&gt;insert #z select     2,  'foo2',   null&lt;br /&gt;insert #z select     3,  'foo2a',      2&lt;br /&gt;insert #z select    11,  'foo2aa',     3&lt;br /&gt;insert #z select    12,  'foo2aaa',   11&lt;br /&gt;insert #z select    13,  'foo2ab',     3&lt;br /&gt;insert #z select    14,  'foo2ac',     3&lt;br /&gt;insert #z select     4,  'foo2b',      2&lt;br /&gt;insert #z select     5,  'foo3',   null&lt;br /&gt;insert #z select     6,  'foo3b',      5&lt;br /&gt;insert #z select     7,  'foo3ba',     6&lt;br /&gt;insert #z select     8,  'foo4',   null&lt;br /&gt;insert #z select     9,  'fooa',       1&lt;br /&gt;insert #z select    10,  'foo2ba',     4&lt;br /&gt;&lt;br /&gt;-- Get the hierarchy&lt;br /&gt;create table #tree (id int, sequence varchar(1000), levelNo int)&lt;br /&gt;-- insert top level (to get sub tree just insert relevent id here)&lt;br /&gt;insert #tree select id, right(space(10) + convert(varchar(10),id),10), 1 from #z where Parent is null&lt;br /&gt;declare @i int&lt;br /&gt;select @i = 0&lt;br /&gt;-- keep going until no more rows added&lt;br /&gt;while @@rowcount &amp;gt; 0&lt;br /&gt;begin&lt;br /&gt;     select @i = @i + 1&lt;br /&gt;     insert #tree&lt;br /&gt;     -- Get all children of previous level&lt;br /&gt;     select #z.id, sequence + right(space(10) + convert(varchar(10),#z.id),10), @i + 1&lt;br /&gt;     from #z, #tree &lt;br /&gt;     where #tree.levelNo = @i&lt;br /&gt;     and #z.Parent = #tree.id&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;-- output with hierarchy formatted&lt;br /&gt;select space((levelNo-1)*4) + #z.name &lt;br /&gt;from #tree, #z &lt;br /&gt;where #tree.id = #z.id&lt;br /&gt;order by sequence&lt;br /&gt;&lt;br /&gt;drop table #tree&lt;br /&gt;drop table #z&lt;br /&gt;&lt;br /&gt;/*  OUTPUT&lt;br /&gt;foo&lt;br /&gt;    fooa&lt;br /&gt;foo2&lt;br /&gt;    foo2a&lt;br /&gt;        foo2aa&lt;br /&gt;            foo2aaa&lt;br /&gt;        foo2ab&lt;br /&gt;        foo2ac&lt;br /&gt;    foo2b&lt;br /&gt;        foo2ba&lt;br /&gt;foo3&lt;br /&gt;    foo3b&lt;br /&gt;        foo3ba&lt;br /&gt;foo4&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-1028736383921972675?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.nigelrivett.net/SQLTsql/RetrieveTreeHierarchy.html' title='RetrieveTreeHierarchy / SQL server / SQL/T-SQL'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/1028736383921972675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/05/retrievetreehierarchy-sql-server-sqlt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/1028736383921972675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/1028736383921972675'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/05/retrievetreehierarchy-sql-server-sqlt.html' title='RetrieveTreeHierarchy / SQL server / SQL/T-SQL'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-8870286171616229123</id><published>2011-05-11T14:09:00.001+06:00</published><updated>2011-05-11T14:59:09.331+06:00</updated><title type='text'>Using a Tree View/Asp.net/C#/IronSpeed</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span id="post_message_39735899"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h3 align="left" style="margin: auto 0in auto 1.5in;"&gt;&lt;a href="http://www.blogger.com/post-create.do" name="_Ref48632608" target="_blank"&gt;&lt;span style="color: #5f5f5f; font-family: Arial; font-size: x-small;"&gt;Using a Tree View&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;&lt;b&gt;A  Tree View can be used in an Iron Speed Designer application to display  hierarchical data from the database, and when the user selects one of  the nodes, the relevant information can be displayed to the user on the  right.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;In the example below, a tree view is used to display a list of products organized hierarchically within each category.&amp;nbsp; The user can expand any Category and then select a Product.&amp;nbsp; The details of the selected Product will be displayed on the right.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new,courier,mono;"&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964627" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;Iron  Speed Designer allows a tree view control to be easily integrated into  applications, and populate it with data from the database.&amp;nbsp; The Selected Node Changed event handler is implemented to display the selected product to the right of the tree view.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;In  this example, an ASP:TreeView control is added to the spreadsheet grid  within the Design Mode for a page. The tree control is populated  dynamically when a user expands or collapses a particular section of the  tree.&amp;nbsp; A Populate function is called to fill the sub-tree whenever the user expands a section of the tree.&amp;nbsp; The Populate function will populate the tree with either Categories or with the list of Products within a Category.&amp;nbsp; An  event handler is implemented to handle the selection of a specific node  to display information about the product on the right. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;This example extends a Show Product record page built using Iron Speed Designer.&amp;nbsp; The Southwind database included with Iron Speed Designer is used for this application.&amp;nbsp; Normally,  the Show Product record page displays the Product based on the URL  parameter. This page will be extended to display the Product selected in  the Tree View.&amp;nbsp; The initial display of the product specified by the URL will continue to work as-is.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;The  first few steps insert the tree view into the page layout, and the  following steps implement the callback functions to populate the tree,  and handle the selection of a node.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;h4 style="margin: auto 0in auto 2in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;span style="font-size: x-small;"&gt;Layout Changes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Step 1&lt;/b&gt;:&amp;nbsp; &lt;b&gt;Create space for a tree view: &lt;/b&gt;&amp;nbsp;Go to the Design mode on the Show Product page. Zoom out to the ShowProduct.aspx.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964628" /&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;/span&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Step 2: &lt;/b&gt;Move  the ProductsRecordControl two columns to the right to allocate space on  the page for the Tree View control in the Quick Layout. The second  column will be used to add a HTML space character&amp;nbsp; (&amp;nbsp;&amp;nbsp; )&amp;nbsp; to  separate the tree view from the product record control.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964629" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;/span&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Step 3. &lt;/b&gt;(Optional) Delete all the controls in the Cell with the ProductsTabContainer and replace it with a HTML space&amp;nbsp;&amp;nbsp;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;( &amp;nbsp; )&lt;/span&gt; in the cell editor.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;br /&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964630" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;span style="color: #5f5f5f; font-family: 'Arial','sans-serif'; font-size: 10pt; line-height: 125%;"&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Step 4: Insert Tree View: &lt;/b&gt;Select the top-left cell A1. Copy and paste the following asp:TreeView Control into the Cell Editor.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;div style="margin-bottom: 2px; text-align: left; width: 630px;"&gt;Code:&lt;/div&gt;&lt;pre style="border-bottom: 1px solid #E8E8E8; border-right: 1px solid #E8E8E8; border: 1px inset; height: 401px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 630px;"&gt;&lt;div style="border: 1px solid #aaaaaa; height: 225px; overflow: auto; width: 270px;"&gt;&lt;asp:treeview collapseimageurl="../Images/icon_expandcollapserow.gif" expanddepth="1" expandimageurl="../Images/icon_expandcollapserow2.gif" font-names="Verdana, Arial" forecolor="#666666" id="tvCategories" onselectednodechanged="Node_Changed" ontreenodepopulate="Node_Populate" runat="Server" selectednodestyle-backcolor="Blue" selectednodestyle-forecolor="White"&gt;&lt;br /&gt;     &lt;nodes&gt;&lt;br /&gt;        &lt;asp:treenode populateondemand="true" text="Categories" value="0"&gt;&lt;br /&gt;     &lt;/asp:treenode&gt;&lt;/nodes&gt;&lt;br /&gt;       &lt;levelstyles&gt;&lt;br /&gt;          &lt;asp:treenodestyle font-size="10px"&gt;&lt;br /&gt;          &lt;asp:treenodestyle font-size="10px"&gt;&lt;br /&gt;            &lt;asp:treenodestyle font-size="10px"&gt;&lt;br /&gt;        &lt;/asp:treenodestyle&gt;&lt;/asp:treenodestyle&gt;&lt;/asp:treenodestyle&gt;&lt;/levelstyles&gt;&lt;br /&gt; &lt;/asp:treeview&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;TreeView Properties:&lt;/b&gt; The inserted tree view specifies a number properties as described below:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-bottom: medium none; border-collapse: collapse; border-left: medium none; border-right: medium none; border-top: medium none; mso-border-alt: solid #BFBFBF .5pt; mso-border-insideh: .5pt solid #BFBFBF; mso-border-insidev: .5pt solid #BFBFBF; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #bfbfbf 1pt solid; mso-border-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div align="center" class="MsoNormal" style="margin: auto 0in; text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;Property&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #bfbfbf 1pt solid; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div align="center" class="MsoNormal" style="margin: auto 0in; text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;Id of the tree view control (tvCategories).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;Indicates the ability to access this control in the code-behind.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;Font-Names&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;Font used to display entries in the tree view.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;ForeColor&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;The foreground text color.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;ExpandDepth&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;The initial expansion shown to the user.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;ExpandImageUrl&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;The image shown to indicate a node can be expanded.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;CollapseImageUrl&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;The image shown to indicate a node can be collapsed.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;OnTreeNodePopulate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;The code-behind function to be called when a user clicks the node for expansion.&amp;nbsp; This function will populate the products within a category.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;OnSelectedNodeChanged&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;The code-behind function to be called when a user selects a leaf node.&amp;nbsp; This function updates the product record on the right.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;SelectedNodeStyle-BackColor&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;The background color to use to display a selected node.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 11;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;SelectedNodeStyle-ForeColor&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;The foreground color to use to display a selected node.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 12;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;Nodes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;A substructure that specifies the initial list of nodes in the tree view.&amp;nbsp; Only  the top-level node is included at this point, and the sub-nodes will be  added by NodePopulate function when it is called when the user expands a  node.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 13; mso-yfti-lastrow: yes;"&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #bfbfbf 1pt solid; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 1.45in;" valign="top" width="139"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;LevelStyles&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-bottom: #bfbfbf 1pt solid; border-left: #d4d0c8; border-right: #bfbfbf 1pt solid; border-top: #d4d0c8; mso-border-alt: solid #BFBFBF .5pt; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-top-alt: solid #BFBFBF .5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 4.7in;" valign="top" width="451"&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial; font-size: xx-small;"&gt;The styles for each of the levels. There will be three levels, so the styles for each of the three levels are defined.&amp;nbsp; Currently they are the same styles, but could be different.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Step 5: Align Tree View to the top of the cell:&amp;nbsp; &lt;/b&gt;By default, all content in the cell is shown center-aligned vertically.&amp;nbsp; To display the tree view at the top, right-click and select Align, Top. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964631" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h4 style="margin: auto 0in auto 2in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial; font-size: x-small;"&gt;Code Changes&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;The  following steps populate the tree view nodes, and handle the selection  of a product and display the updated record control on the right.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Step 6: Implement Node_Populate:&amp;nbsp; &lt;/b&gt;The Node_Populate method is called to populate any of the nodes in the tree control.&amp;nbsp; Node_Populate will be called either for the second-level (Category) or the third-level (Products within a Category).&amp;nbsp; Based  on the level, either the FillCategories or the  FillProductsForCategories is called to populate the tree view  appropriately.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;The name of the populate method (Node_Populate) is specified on the OnTreeNodePopulate property set on the Tree View control on the layout changes.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;This code is inserted into the Section 1 of the code-behind file for the page (not the Controls code-behind file).&amp;nbsp; Click the ShowProducts.aspx.vb tab, and expand the region “Section 1”.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964643" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;Copy and paste the code below:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;[C#]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;div style="margin-bottom: 2px; text-align: left; width: 630px;"&gt;Code:&lt;/div&gt;&lt;pre style="border-bottom: 1px solid #E8E8E8; border-right: 1px solid #E8E8E8; border: 1px inset; height: 513px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 630px;"&gt;public void Node_Populate(object sender, System.Web.UI.WebControls.TreeNodeEventArgs e) &lt;br /&gt;{ &lt;br /&gt;if (e.Node.ChildNodes.Count == 0) { &lt;br /&gt;switch (e.Node.Depth) { &lt;br /&gt;case 0: &lt;br /&gt;// If the parent is the top-level node, then fill with Categories &lt;br /&gt;FillCategories(e.Node); &lt;br /&gt;break; // TODO: might not be correct. Was : Exit Select &lt;br /&gt;&lt;br /&gt;case 1: &lt;br /&gt;// If the parent is a category (depth=1), then fill with Products for the selected Catetory &lt;br /&gt;FillProductsForCategories(e.Node); &lt;br /&gt;break; // TODO: might not be correct. Was : Exit Select &lt;br /&gt;&lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;private void FillCategories(TreeNode parent) &lt;br /&gt;{ &lt;br /&gt;// Get all records - whereClause is Nothing &lt;br /&gt;foreach (CategoriesRecord rec in CategoriesTable.GetRecords(null)) { &lt;br /&gt;// Make sure to populate the Text as the Name, and the Value as the ID so we can &lt;br /&gt;// use it later when reading the Products for the selected Category ID. &lt;br /&gt;TreeNode node = new TreeNode(rec.CategoryName, rec.CategoryID.ToString()); &lt;br /&gt;// Populate when needed - this will ensure that only the first level is populated &lt;br /&gt;// when tree is first displayed. &lt;br /&gt;node.PopulateOnDemand = true; &lt;br /&gt;// Expand when selected. &lt;br /&gt;node.SelectAction = TreeNodeSelectAction.Expand; &lt;br /&gt;&lt;br /&gt;parent.ChildNodes.Add(node); &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;private void FillProductsForCategories(TreeNode parent) &lt;br /&gt;{ &lt;br /&gt;// parent.Value will be CategoryId &lt;br /&gt;// So create a WhereClause that looks like: &lt;br /&gt;// CategoryId = 34 &lt;br /&gt;// If CategoryId is 34. &lt;br /&gt;string whereStr = ProductsTable.CategoryID.UniqueName + " = " + parent.Value;&lt;br /&gt;foreach (ProductsRecord rec in ProductsTable.GetRecords(whereStr))&lt;br /&gt;{ &lt;br /&gt;// Populate the tree node with the name of the product and Product ID. &lt;br /&gt;// ProductID will be used in the CreateWhereClause to display the correct product. &lt;br /&gt;TreeNode node = new TreeNode(rec.ProductName, rec.ProductID.ToString()); &lt;br /&gt;// No sub nodes to populate, so the PopulateOnDemand is False &lt;br /&gt;node.PopulateOnDemand = false; &lt;br /&gt;// Display as Selected &lt;br /&gt;node.SelectAction = TreeNodeSelectAction.Select; &lt;br /&gt;parent.ChildNodes.Add(node); &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;public void Node_Changed(object sender, EventArgs e) &lt;br /&gt;{ &lt;br /&gt;// We need to refresh the Products Record panel on the right - so &lt;br /&gt;// first null out the current record by setting the RecordUniqueId = Nothing &lt;br /&gt;// Then load data on the page again. &lt;br /&gt;this.ProductsRecordControl.RecordUniqueId = null; &lt;br /&gt;LoadData(); &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;[VB]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;div style="margin-bottom: 2px; text-align: left; width: 630px;"&gt;Code:&lt;/div&gt;&lt;pre style="border-bottom: 1px solid #E8E8E8; border-right: 1px solid #E8E8E8; border: 1px inset; height: 513px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 630px;"&gt;Public Sub Node_Populate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs)&lt;br /&gt;If e.Node.ChildNodes.Count = 0 Then&lt;br /&gt;Select Case e.Node.Depth&lt;br /&gt;Case 0&lt;br /&gt;' If the parent is the top-level node, then fill with Categories&lt;br /&gt;FillCategories(e.Node)&lt;br /&gt;Exit Select&lt;br /&gt;Case 1&lt;br /&gt;' If the parent is a category (depth=1), then fill with Products for the selected Catetory&lt;br /&gt;FillProductsForCategories(e.Node)&lt;br /&gt;Exit Select&lt;br /&gt;End Select&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub FillCategories(ByVal parent As TreeNode)&lt;br /&gt;Dim rec As CategoriesRecord&lt;br /&gt;' Get all records - whereClause is Nothing&lt;br /&gt;For Each rec In CategoriesTable.GetRecords(Nothing)&lt;br /&gt;' Make sure to populate the Text as the Name, and the Value as the ID so we can&lt;br /&gt;' use it later when reading the Products for the selected Category ID.&lt;br /&gt;Dim node As TreeNode = New TreeNode(rec.CategoryName, rec.CategoryID.ToString)&lt;br /&gt;' Populate when needed - this will ensure that only the first level is populated&lt;br /&gt;' when tree is first displayed.&lt;br /&gt;node.PopulateOnDemand = True&lt;br /&gt;' Expand when selected.&lt;br /&gt;node.SelectAction = TreeNodeSelectAction.Expand&lt;br /&gt;&lt;br /&gt;parent.ChildNodes.Add(node)&lt;br /&gt;Next&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub FillProductsForCategories(ByVal parent As TreeNode)&lt;br /&gt;Dim rec As ProductsRecord&lt;br /&gt;' parent.Value will be CategoryId&lt;br /&gt;' So create a WhereClause that looks like:&lt;br /&gt;' CategoryId = 34&lt;br /&gt;' If CategoryId is 34.&lt;br /&gt;Dim whereStr As String = ProductsTable.CategoryID.UniqueName &amp;amp; " = " &amp;amp; parent.Value&lt;br /&gt;For Each rec In ProductsTable.GetRecords(whereStr)&lt;br /&gt;' Populate the tree node with the name of the product and Product ID.&lt;br /&gt;' ProductID will be used in the CreateWhereClause to display the correct product.&lt;br /&gt;Dim node As TreeNode = New TreeNode(rec.ProductName, rec.ProductID.ToString)&lt;br /&gt;' No sub nodes to populate, so the PopulateOnDemand is False&lt;br /&gt;node.PopulateOnDemand = False&lt;br /&gt;' Display as Selected&lt;br /&gt;node.SelectAction = TreeNodeSelectAction.Select&lt;br /&gt;parent.ChildNodes.Add(node)&lt;br /&gt;Next&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub Node_Changed(ByVal sender As Object, ByVal e As EventArgs)&lt;br /&gt;' We need to refresh the Products Record panel on the right - so&lt;br /&gt;' first null out the current record by setting the RecordUniqueId = Nothing&lt;br /&gt;' Then load data on the page again.&lt;br /&gt;Me.ProductsRecordControl.RecordUniqueId = Nothing&lt;br /&gt;LoadData()&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Step 7: Implement Node_Changed:&amp;nbsp; &lt;/b&gt;The Node_Changed method is called to whenever a user selects a leaf-node.&amp;nbsp; The intermediate nodes such as the selection of a category will not raise the&amp;nbsp; Node_Changed event.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;The name of the selected index changed method (Node_Changed) is specified on the OnSelectedNodeChanged property set on the Tree View control on the layout changes.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;This code is inserted into the Section 1 of the code-behind file for the page (not the Controls code-behind file).&amp;nbsp; This code can be inserted right below the Node_Populate method described above.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;The Node_Changed event simply sets the UniqueId of the Product Record Control to Nothing or NULL, and calls LoadData.&amp;nbsp; The page-level LoadData function will call the LoadData for the Product Record Control and load the data for it once again.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;A  function defined in the next step will ensure that the currently  selected product’s data will be displayed in the product record control.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;[C#]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;div style="margin-bottom: 2px; text-align: left; width: 630px;"&gt;Code:&lt;/div&gt;&lt;pre style="border-bottom: 1px solid #E8E8E8; border-right: 1px solid #E8E8E8; border: 1px inset; height: 193px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 630px;"&gt;public void Node_Changed(object sender, EventArgs e) &lt;br /&gt;{ &lt;br /&gt;// We need to refresh the Products Record panel on the right - so &lt;br /&gt;// first null out the current record by setting the RecordUniqueId = Nothing &lt;br /&gt;// Then load data on the page again. &lt;br /&gt;this.ProductsRecordControl.RecordUniqueId = null; &lt;br /&gt;LoadData(); &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;[VB]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;div style="margin-bottom: 2px; text-align: left; width: 630px;"&gt;Code:&lt;/div&gt;&lt;pre style="border-bottom: 1px solid #E8E8E8; border-right: 1px solid #E8E8E8; border: 1px inset; height: 162px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 630px;"&gt;Public Sub Node_Changed(ByVal sender As Object, ByVal e As EventArgs)&lt;br /&gt;' We need to refresh the Products Record panel on the right - so&lt;br /&gt;' first null out the current record by setting the RecordUniqueId = Nothing&lt;br /&gt;' Then load data on the page again.&lt;br /&gt;Me.ProductsRecordControl.RecordUniqueId = Nothing&lt;br /&gt;LoadData()&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;b&gt;Step 8: Modify CreateWhereClause:&amp;nbsp; &lt;/b&gt;When  LoadData for the ProductsRecordControl is called, it in turns calls  CreateWhereClause function to create a where clause to load the data  from the products table.&amp;nbsp; Normally the generated CreateWhereClause simply uses the Product Id specified by the “Products” URL parameter.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;We  will insert a few lines of code at the top of the CreateWhereClause to  check if a product node is selected in the tree control.&amp;nbsp; If a product node is selected, we will instead use the product ID of this selected node to form the where clause.&amp;nbsp; Otherwise  we will let the remainder of the generated code of CreateWhereClause  handle the creation of the clause by calling the base CreateWherClause.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;To  override the CreateWhereClause, go to the ShowProducts.aspx page in the  Application Explorer and zoom to the ShowProducts.aspx in the bread  crumbs. Next, select the ProductsRecordControl in the Quick Layout.&amp;nbsp; A series of code tabs are displayed at the bottom next to the Cell Editor.&amp;nbsp; Select the CreateWhereClause() tab.&amp;nbsp; The default generated CreateWhereClause is displayed as shown below:&lt;/span&gt;&lt;/div&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964633" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;Copy and paste the entire CreateWhereClause function below to replace the existing CreateWhereClause.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;[C#]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;div style="margin-bottom: 2px; text-align: left; width: 630px;"&gt;Code:&lt;/div&gt;&lt;pre style="border-bottom: 1px solid #E8E8E8; border-right: 1px solid #E8E8E8; border: 1px inset; height: 369px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 630px;"&gt;public override WhereClause CreateWhereClause() &lt;br /&gt;{ &lt;br /&gt;WhereClause wc = new WhereClause(); &lt;br /&gt;ProductsTable.Instance.InnerFilter = null; &lt;br /&gt;wc = new WhereClause(); &lt;br /&gt;&lt;br /&gt;// Find the tree view and see if a node is selected.&lt;br /&gt;// If a node is selected, formulate a where clause and return it.&lt;br /&gt;TreeView tv = (TreeView) this.Page.FindControlRecursively("tvCategories"); &lt;br /&gt;if (!((tv == null)) &amp;amp;&amp;amp; !((tv.SelectedNode == null)) &amp;amp;&amp;amp; !((tv.SelectedNode.Value == null))) { &lt;br /&gt;wc.iAND(ProductsTable.ProductID, &lt;br /&gt;BaseFilter.ComparisonOperator.EqualsTo, &lt;br /&gt;tv.SelectedNode.Value); &lt;br /&gt;return wc; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;// Otherwise return the where clause specified by the generated function.&lt;br /&gt;return base.CreateWhereClause(); &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;[VB]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;div style="margin-bottom: 2px; text-align: left; width: 630px;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;Code:&lt;/span&gt;&lt;/div&gt;&lt;pre style="border-bottom: 1px solid #E8E8E8; border-right: 1px solid #E8E8E8; border: 1px inset; height: 385px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 630px;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;Public Overrides Function CreateWhereClause() As WhereClause&lt;br /&gt;&lt;br /&gt;Dim wc As WhereClause&lt;br /&gt;ProductsTable.Instance.InnerFilter = Nothing&lt;br /&gt;wc = New WhereClause()&lt;br /&gt;&lt;br /&gt;' Find the tree view and see if a node is selected.&lt;br /&gt;' If a node is selected, formulate a where clause and return it.&lt;br /&gt;Dim tv As TreeView = CType(Me.Page.FindControlRecursively("tvCategories"), TreeView)&lt;br /&gt;If Not(IsNothing(tv)) AndAlso Not(IsNothing(tv.SelectedNode)) AndAlso _&lt;br /&gt;Not(IsNothing(tv.SelectedNode.Value)) Then&lt;br /&gt;wc.iAND(ProductsTable.ProductID, _&lt;br /&gt;BaseFilter.ComparisonOperator.EqualsTo, _&lt;br /&gt;tv.SelectedNode.Value)&lt;br /&gt;Return wc&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;' Otherwise return the where clause specified by the generated function.&lt;br /&gt;Return MyBase.CreateWhereClause()&lt;br /&gt;End Function &lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="color: #5f5f5f; font-family: Arial;"&gt;Build and run the application to see tree view and the selected product on the right.&lt;/span&gt;&lt;/div&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964634" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Step 9: &lt;/b&gt;(Optional) To  reformat the Product Panel to align with the bottom of the TreeView  simply cut and paste the two columns containg the SupplierIDLabel and  field value to ReorderLevelLabel and field value as shown below.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964635" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;And paste the controls under the Discontinued Label as shown below.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964636" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: auto 0in;"&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;The final result will be a nicely formatted page with the TreeView and Products Record Panel.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: #5f5f5f;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;img align="bottom" alt="" border="0" hspace="0" src="http://sjc.ironspeed.com/file?id=964637" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;Attached Images:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://sjc.ironspeed.com/file?id=964627" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView.JPG, Views: 925, Size: 21.56 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964627" title="Click image for larger version - Name: TreeView.JPG, Views: 925, Size: 21.56 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964628" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView1.JPG, Views: 920, Size: 55.79 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964628" title="Click image for larger version - Name: TreeView1.JPG, Views: 920, Size: 55.79 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964637" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView10.JPG, Views: 879, Size: 31.74 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964637" title="Click image for larger version - Name: TreeView10.JPG, Views: 879, Size: 31.74 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964629" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView2.JPG, Views: 915, Size: 54.08 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964629" title="Click image for larger version - Name: TreeView2.JPG, Views: 915, Size: 54.08 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964630" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView3.JPG, Views: 911, Size: 43.27 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964630" title="Click image for larger version - Name: TreeView3.JPG, Views: 911, Size: 43.27 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964631" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView4.JPG, Views: 901, Size: 30.48 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964631" title="Click image for larger version - Name: TreeView4.JPG, Views: 901, Size: 30.48 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964643" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView5.JPG, Views: 891, Size: 96.37 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964643" title="Click image for larger version - Name: TreeView5.JPG, Views: 891, Size: 96.37 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964633" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView6.JPG, Views: 893, Size: 100.09 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964633" title="Click image for larger version - Name: TreeView6.JPG, Views: 893, Size: 100.09 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964634" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView7.JPG, Views: 889, Size: 34.90 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964634" title="Click image for larger version - Name: TreeView7.JPG, Views: 889, Size: 34.90 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964635" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView8.JPG, Views: 884, Size: 47.73 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964635" title="Click image for larger version - Name: TreeView8.JPG, Views: 884, Size: 47.73 KB" /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href="http://sjc.ironspeed.com/file?id=964636" target="_blank"&gt;&lt;img alt="Click image for larger version - Name: TreeView9.JPG, Views: 884, Size: 59.99 KB" border="0" class="thumbnail_container" src="http://sjc.ironspeed.com/thumb?id=964636" title="Click image for larger version - Name: TreeView9.JPG, Views: 884, Size: 59.99 KB" /&gt;&lt;/a&gt; &amp;nbsp;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Attached Files:&lt;/b&gt;&lt;br /&gt;&lt;img alt="doc" height="16" src="http://sjc.ironspeed.com/images/icons/file_types/doc.gif" style="margin-top: 6px;" width="16" /&gt; &lt;a href="http://sjc.ironspeed.com/file?id=964645" target="_blank"&gt;Using_Tree_View.doc&lt;/a&gt; (379.00 KB, 109 views)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-8870286171616229123?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sjc.ironspeed.com/post?id=4667331' title='Using a Tree View/Asp.net/C#/IronSpeed'/><link rel='enclosure' type='' href='http://sjc.ironspeed.com/file?id=964645' length='0'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/8870286171616229123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/05/using-tree-viewaspnetcironspeed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/8870286171616229123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/8870286171616229123'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/05/using-tree-viewaspnetcironspeed.html' title='Using a Tree View/Asp.net/C#/IronSpeed'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-17642674401942053</id><published>2011-04-21T17:03:00.000+06:00</published><updated>2011-04-21T17:03:55.601+06:00</updated><title type='text'>How do you open a Popup from Oracle Forms</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="MsoNormal"&gt; &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;; font-size: 10.0pt; mso-bidi-font-family: Courier;"&gt;Using &lt;/span&gt;&lt;span style="font-family: Courier; font-size: 10.0pt; mso-bidi-font-family: Courier;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &lt;/span&gt;web.javascript_eval_expr &lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;; font-size: 10.0pt; mso-bidi-font-family: Courier;"&gt;Statement&lt;/span&gt;&lt;span style="font-family: Courier; font-size: 10.0pt; mso-bidi-font-family: Courier;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;; font-size: 10.0pt; mso-bidi-font-family: Courier;"&gt;Example&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Courier; font-size: 10.0pt; mso-bidi-font-family: Courier;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;web.javascript_eval_expr('window.showModelessDialog("help/SomeFile.html",  "''", "dialogLeft:120px; dialogTop:260px; dialogWidth:800px;  dialogHeight:455px; scroll-y:on; resizable:yes; status:no;  help:no;");');&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Courier; font-size: 10.0pt; mso-bidi-font-family: Courier;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;web.javascript_eval_expr('window.showModalDialog("help/SomeFile.html",  "''", "dialogLeft:120px; dialogTop:260px; dialogWidth:800px;  dialogHeight:455px; scroll-y:on; resizable:yes; status:no;  help:no;");');&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Courier; font-size: 10.0pt; mso-bidi-font-family: Courier;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;web.javascript_eval_expr('window.open("help/SomeFile.html",  "WinHelp",  "location=no,menubar=no,left=220,top=260,width=800,height=455,toolbar=no,resizable=yes,scrollbars=yes");');&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-17642674401942053?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://rs0ftware.blogspot.com/2010/07/how-do-you-open-popup-from-oracle-forms.html' title='How do you open a Popup from Oracle Forms'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/17642674401942053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/04/how-do-you-open-popup-from-oracle-forms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/17642674401942053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/17642674401942053'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/04/how-do-you-open-popup-from-oracle-forms.html' title='How do you open a Popup from Oracle Forms'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-1936224482169074969</id><published>2011-04-21T15:54:00.000+06:00</published><updated>2011-04-21T15:54:51.777+06:00</updated><title type='text'>Integrating Oracle Forms 11g with JavaScript</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h1 class="obe_title"&gt;&lt;a href="" id="top" name="top"&gt;Integrating Oracle Forms 11&lt;span class="obe_emphasis"&gt;g&lt;/span&gt; with JavaScript&lt;/a&gt;&lt;/h1&gt;&lt;br /&gt;&lt;div id="obe_maintopics"&gt;&amp;lt;&lt;strong&gt;Do not delete&lt;/strong&gt; this text because it is a placeholder for the generated list of "main" topics when run in a browser&amp;gt;&lt;/div&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s1" name="s1"&gt;&lt;/a&gt;Purpose&lt;/h2&gt;&lt;span class="bodycopy"&gt;In this tutorial you set up and run an  application that demonstrates Oracle Forms and JavaScript integration.  The application uses Cascading Style Sheets (CSS) and a popular third  party JavaScript library called jQuery.&lt;/span&gt;&lt;br /&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s2" name="s2"&gt;Time to Complete&lt;/a&gt;&lt;/h2&gt;Approximately 30 minutes &lt;br /&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s3" name="s3"&gt;Overview&lt;/a&gt;&lt;/h2&gt;The demonstration application integrates simple forms with a dHTML  menu system that controls both the form and other dHTML objects  appearing in the same browser window, such as a date picker and an image  viewer. With this application you can demonstrate how Oracle Forms can  call out to these browser widgets and call into the Oracle Forms Runtime  via the Forms client applet. &lt;br /&gt;The resulting application, with  the menu and the date picker visible, looks like this: &lt;br /&gt;&lt;img class="imgborder_on" id="js11" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/js11.gif" /&gt;&lt;br /&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s6" name="s6"&gt;Prerequisites&lt;/a&gt;&lt;/h2&gt;Before starting this tutorial, you should:  &lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;     &lt;th width="25"&gt;1.&lt;/th&gt;    &lt;td valign="top"&gt; Have access to or have installed Oracle Forms  version 11.1.1. You may use either Release 1 (R1) or Patch Set 1 (PS1),  although the directory structures of these releases are somewhat  different. &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr valign="top"&gt;      &lt;th width="25"&gt;2.&lt;/th&gt;          &lt;td&gt;Have access to an Oracle database with the &lt;span class="obe_code_element"&gt;scott&lt;/span&gt; schema ( &lt;span class="obe_code_element"&gt;EMP&lt;/span&gt; and &lt;span class="obe_code_element"&gt;DEPT&lt;/span&gt; ) installed. &lt;br /&gt;Warning: For security reasons, it may not be advisable to  install the sample schemas into a production database. If you do install  them, you should use passwords other than default passwords, although  default passwords are used in the examples shown in tutorials provided  by Oracle. When you are finished using the sample schemas for tutorial  and demo purposes, you may drop them by issuing the following SQL*Plus  command for each installed sample schema: &lt;br /&gt;&lt;span class="obe_code_enter"&gt;DROP USER &lt;schema_name&gt; CASCADE;&lt;/schema_name&gt;&lt;/span&gt; &lt;br /&gt;If you are using the sample schemas for the first time, you may find that you must unlock the schema user, and then grant &lt;span class="obe_code_element"&gt;CONNECT&lt;/span&gt; and &lt;span class="obe_code_element"&gt;RESOURCE&lt;/span&gt; roles to it. You can do this by using Oracle Enterprise Manager, which is part of Oracle. &lt;br /&gt;Alternatively, you can issue the following SQL*Plus commands: &lt;br /&gt;&lt;span class="obe_code_enter"&gt;ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK; &lt;br /&gt;GRANT CONNECT, RESOURCE to scott;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;     &lt;th width="25"&gt;3.&lt;/th&gt;     &lt;td&gt;Use Internet Explorer 7 or later. Version 6 of IE and any  version of Firefox does not allow the application's JavaScript menu (a  Milonic menu) to show in front of the Forms applet. However, the Milonic  menu &lt;span class="obe_emphasis"&gt;can&lt;/span&gt; be used with frames; see &lt;a href="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/setup.htm#s8"&gt;Resources&lt;/a&gt;.&lt;br /&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s4" name="s4"&gt;Definitions&lt;/a&gt;&lt;/h2&gt;This demonstration uses a few Web standards that may be unfamiliar to Forms developers, such as:&lt;br /&gt;&lt;ul&gt;&lt;li class="bodycopy"&gt;&lt;span class="boldbodycopy"&gt;dHTML&lt;/span&gt;: This  acronym stands for dynamic HTML, an umbrella term for using client side  languages like JavaScript, or server side languages like PHP and Java  Server Pages, to create dynamic (as opposed to static) Web pages. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="boldbodycopy"&gt;JavaScript&lt;span class="bodycopy"&gt;: JavaScript  has emerged as the dominant client side scripting language. Like  PL/SQL, it is pointerless, but while PL/SQL is compiled to byte code,  JavaScript is interpreted. It is imperative, weakly typed, and object  oriented (but prototype based rather than class based), and its  functions are first-class entities. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="boldbodycopy"&gt;CSS&lt;span class="bodycopy"&gt;: CSS stands for  Cascading Style Sheets, which you can use to define the style of a Web  site. You use it in the demonstration application to make the applet  appear to be a part of the larger browser page. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="boldbodycopy"&gt;DOM&lt;span class="bodycopy"&gt;: An understanding  of the DOM, or Document Object Model, is crucial in order to be  effective when programming in JavaScript. The DOM is the model by which  HTML objects are represented and manipulated. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;See &lt;a href="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/setup.htm#s8"&gt;Resources&lt;/a&gt; for more information on these topics.&lt;br /&gt;&lt;br /&gt;&lt;h2 class="obe_topic"&gt;&lt;a href="" id="t1" name="t1"&gt;Setting Up the Application&lt;/a&gt;&lt;/h2&gt;Use following steps to setup the application:&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;1.&lt;/th&gt;       &lt;td&gt;From the expanded &lt;a href="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/files/jsdemo.zip"&gt;zip file&lt;/a&gt;, copy the &lt;span class="obe_file_or_directory"&gt;.fmb&lt;/span&gt; files ( &lt;span class="bodycopy"&gt;found in the &lt;/span&gt;&lt;span class="obe_file_or_directory"&gt;JSInteg\Solutions\jsdemo&lt;/span&gt;&lt;code&gt;&lt;span class="bodycopy"&gt; folder) &lt;/span&gt;&lt;/code&gt;to a directory of your choice. &lt;br /&gt;&lt;img class="imgborder_off" id="t10101" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t10101.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th&gt;           2           .&lt;/th&gt;       &lt;td&gt; Open the modules in Forms Builder, connect as &lt;span class="obe_file_or_directory"&gt;scott&lt;/span&gt;, and compile the forms to the same directory as the &lt;span class="obe_file_or_directory"&gt;.fmb&lt;/span&gt; files.&lt;br /&gt;&lt;img class="imgborder_on" id="t10102" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t10102.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th width="25"&gt;3.&lt;/th&gt;       &lt;td&gt; Copy the&lt;span class="obe_file_or_directory"&gt; js.html&lt;/span&gt;  file to the Forms configuration directory. The path for this directory  is defferent depending on the release of JDeveloper that you are using: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;For Release 1 (R1): &lt;br /&gt;&lt;span class="obe_code_element"&gt;&lt;middleware_home&gt;\user_projects\domains\&lt;domain&gt;\servers\             WLS_FORMS\stage\formsapp\11.1.1\formsapp\config&lt;/domain&gt;&lt;/middleware_home&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;For Patch Set 1 (PS1):&lt;br /&gt;&lt;span class="obe_file_or_directory"&gt;&lt;oracle_instance&gt;\config\FormsComponent\forms\server\&lt;/oracle_instance&gt;&lt;/span&gt; &lt;/li&gt;&amp;nbsp;&lt;/ul&gt;&lt;img class="imgborder_on" id="t10103" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t10103.gif" /&gt;&lt;br /&gt;&amp;nbsp;          &lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th width="25"&gt;4.&lt;/th&gt;       &lt;td&gt; Copy  these directories:             &lt;span class="obe_file_or_directory"&gt;img&lt;/span&gt;&lt;span class="bodycopy"&gt;, &lt;/span&gt;&lt;span class="obe_file_or_directory"&gt;JSCal2&lt;/span&gt;&lt;span class="bodycopy"&gt;, &lt;/span&gt;&lt;span class="obe_file_or_directory"&gt;lightbox05&lt;/span&gt;&lt;span class="bodycopy"&gt;, &lt;/span&gt;&lt;span class="obe_file_or_directory"&gt;menu&lt;/span&gt; , &lt;span class="obe_file_or_directory"&gt; &lt;/span&gt; &lt;span class="obe_file_or_directory"&gt; &lt;/span&gt; and &lt;span class="obe_file_or_directory"&gt; transEffects&lt;/span&gt; &lt;span class="obe_file_or_directory"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and these files&lt;span class="bodycopy"&gt;: &lt;/span&gt;&lt;span class="obe_file_or_directory"&gt; jquery.js&lt;/span&gt;&lt;span class="bodycopy"&gt;, &lt;/span&gt;&lt;span class="obe_file_or_directory"&gt;jsdemo.css&lt;/span&gt;&lt;span class="bodycopy"&gt;, &lt;/span&gt;&lt;span class="obe_file_or_directory"&gt;jsdemo.html&lt;/span&gt;&lt;span class="bodycopy"&gt;, &lt;/span&gt;&lt;span class="obe_file_or_directory"&gt;and&lt;/span&gt; &lt;span class="obe_file_or_directory"&gt;jsdemo.js&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to the following directory: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;For  Release 1 (R1): &lt;br /&gt;&lt;span class="obe_file_or_directory"&gt;&lt;middleware_home&gt;\user_projects\domains\&lt;domain&gt;\servers\&lt;br /&gt;WLS_FORMS\stage\formsapp\11.1.1\formsapp\formsweb.war\&lt;/domain&gt;&lt;/middleware_home&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For Patch Set 1 (PS1):&lt;br /&gt;&lt;span class="obe_file_or_directory"&gt;&lt;middleware_home&gt;\user_projects\domains\&lt;domain&gt;\servers\&lt;br /&gt;WLS_FORMS\tmp\_WL_user\formsapp_11.1.1\e18uoi\war\&lt;/domain&gt;&lt;/middleware_home&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;img class="imgborder_on" id="t10104" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t10104.gif" /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th width="25"&gt;5.&lt;/th&gt;       &lt;td&gt;Edit &lt;span class="obe_file_or_directory"&gt;jsdemo.html&lt;/span&gt; and modify the &lt;span class="obe_code_element"&gt;hostname&lt;/span&gt; and &lt;span class="obe_code_element"&gt;port&lt;/span&gt; values according to your installation. These values are located toward the end of the file. &lt;br /&gt;&lt;img class="imgborder_on" id="t10105" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t10105.gif" /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th width="25"&gt;6.&lt;/th&gt;       &lt;td&gt;Create a new configuration section called &lt;span class="obe_code_enter"&gt;[javascript]&lt;/span&gt; in the &lt;span class="obe_file_or_directory"&gt;formsweb.cfg&lt;/span&gt; file. In 11&lt;span class="obe_emphasis"&gt;g&lt;/span&gt;,  you could do this by using Enterprise Manager, but you can also edit  the file manually.  For the sake of simplicity, this tutorial shows  manually editing the file. &lt;br /&gt;Add some parameters to the configuration section. The defaults for &lt;span class="obe_code_element"&gt;height&lt;/span&gt; and &lt;span class="obe_code_element"&gt;width&lt;/span&gt; are a little too big for the application. The new color scheme called &lt;span class="obe_code_element"&gt;swan&lt;/span&gt; looks good for this application, so  set &lt;span class="obe_code_element"&gt;colorscheme&lt;/span&gt; and &lt;span class="obe_code_element"&gt;lookAndFeel&lt;/span&gt; to accomplish that. Make sure that JavaScript support is turned on, and also name the applet.&lt;br /&gt;Use the following settings:&lt;br /&gt;&lt;div class="obe_code_element"&gt;[javascript]&lt;br /&gt;width=440 &lt;br /&gt;height=300 &lt;br /&gt;splashScreen=no &lt;br /&gt;background=no &lt;br /&gt;colorScheme=swan &lt;br /&gt;lookAndFeel=oracle &lt;br /&gt;logo=no &lt;br /&gt;applet_name=forms_applet &lt;br /&gt;enableJavascriptEvent=true &lt;br /&gt;baseHTMLjpi=js.html          &lt;/div&gt;&lt;br /&gt;&lt;img class="imgborder_on" id="t10106" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t10106.gif" /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th&gt;           7           .&lt;/th&gt;       &lt;td&gt;Edit the &lt;span class="obe_file_or_directory"&gt;default.env&lt;/span&gt; file: Add the directory where you saved the forms to the environment variable &lt;span class="obe_code_element"&gt;FORMS_PATH&lt;/span&gt;. &lt;br /&gt;For example, append to &lt;span class="obe_code_element"&gt;FORMS_PATH&lt;/span&gt;: &lt;span class="obe_code_enter"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;D:\Data\MyForms\JSIntegDemo&lt;/span&gt; &lt;br /&gt;&lt;img class="imgborder_on" id="t10107" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t10107.gif" /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;h2 class="obe_topic"&gt;&lt;a href="" id="t2" name="t2"&gt;Running the Application &lt;/a&gt;&lt;/h2&gt;To demonstrate the features of the application, perform the following steps: &lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="0" style="width: 650px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;1.&lt;/th&gt;       &lt;td&gt;              Run the application by issuing the following URL in your browser, substituting the value for &lt;span class="obe_code_element"&gt;&lt;host&gt;&lt;/host&gt;&lt;/span&gt;: &lt;br /&gt;&lt;span class="obe_code_element"&gt;http://&lt;host&gt;:9001/forms/jsdemo.html&lt;/host&gt;&lt;/span&gt; You do not need to invoke the servlet URL (&lt;span class="obe_code_element"&gt;frmservlet&lt;/span&gt;) because the iframe in the application calls the Forms servlet. &lt;br /&gt;&lt;img class="imgborder_on" id="t20101" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t20101.gif" /&gt;&lt;br /&gt;&amp;nbsp;        &lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;        &lt;th width="25"&gt;2.&lt;/th&gt;       &lt;td&gt;  Use the self-explanatory JavaScript menu to navigate to submenus and perform different operations. &lt;br /&gt;For example, invoke the &lt;span class="obe_enter_click_or_select"&gt;Query&lt;/span&gt; menu, enter an employee name, such as &lt;span class="obe_code_enter"&gt;WARD&lt;/span&gt;, in the search box, and click &lt;span class="obe_enter_click_or_select"&gt;Go&lt;/span&gt;.&lt;br /&gt;&lt;img class="imgborder_on" id="t20102" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t20102.gif" /&gt;&lt;br /&gt;The form displays the record for the specified employee. &lt;br /&gt;&lt;img class="imgborder_on" id="t20102b" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t20102b.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th width="25"&gt;3.&lt;/th&gt;       &lt;td&gt;         To redisplay all the records, select &lt;span class="obe_enter_click_or_select"&gt;Query &amp;gt; Execute&lt;/span&gt; from the menu. &lt;br /&gt;&lt;img class="imgborder_on" id="t20103b" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t20103b.gif" /&gt;&lt;br /&gt;Navigate to the &lt;span class="obe_code_element"&gt;hiredate&lt;/span&gt;  field in Employees form. Use the up- and down- arrow keys to scroll  between records, noticing the corresponding change in the date picker  calendar. &lt;br /&gt;&lt;img class="imgborder_on" id="t20103" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t20103.gif" /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th width="25"&gt;4.&lt;/th&gt;       &lt;td&gt;          Select a date from the calendar, which  updates the &lt;span class="obe_code_element"&gt;hiredate&lt;/span&gt; of the employee record. &lt;br /&gt;&lt;img class="imgborder_on" id="t20104" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t20104.gif" /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th&gt;           5           .&lt;/th&gt;       &lt;td&gt;          Select            &lt;span class="obe_enter_click_or_select"&gt;View &amp;gt; Departments&lt;/span&gt; to navigate to the Department form.&lt;br /&gt;&lt;img class="imgborder_on" id="t20105" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t20105.gif" /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr valign="top"&gt;       &lt;th&gt;           6           .&lt;/th&gt;       &lt;td&gt;          Scroll up and down to navigate between different departments, noticing the changes in various images.&lt;br /&gt;&lt;img class="imgborder_on" id="t20106" src="http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/images/t20106.gif" /&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s7" name="s7"&gt;Summary&lt;/a&gt;&lt;/h2&gt;In this tutorial, you learned to set up and run the sample  application that demonstrates JavaScript integration in Oracle Forms 11&lt;span class="obe_emphasis"&gt;g.&lt;/span&gt;&lt;br /&gt;The application hides the Forms standard menu and replaces its  functionality with a JavaScript-based menu system. This menu is  connected to the Forms applet. The application implements  Javascript-based UI widgets as extensions to the Forms widget set,  seamlessly making use of these widgets. &lt;br /&gt;&lt;h2 class="obe_section"&gt;&lt;a href="" id="s8" name="s8"&gt;Resources&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt; JavaScript Integration   topic in Forms Builder online help &lt;/li&gt;&lt;li&gt;Related information on external Web sites:       &lt;ul&gt;&lt;li&gt; &lt;a href="http://support.milonic.com/demos/frames/index.htm" target="_blank"&gt;Using Milonic DHTML Menus across Standard Frames&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Dynamic_HTML" target="_blank"&gt;DHTML&lt;/a&gt; &lt;span class="boldbodycopy"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/JavaScript" target="_blank"&gt;JavaScript&lt;/a&gt; &lt;span class="boldbodycopy"&gt;&lt;span class="bodycopy"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="boldbodycopy"&gt;&lt;span class="bodycopy"&gt;&lt;a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets" target="_blank"&gt;CSS&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Document_Object_Model" target="_blank"&gt;DOM&lt;/a&gt; &lt;span class="boldbodycopy"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;To learn more about             Oracle Forms, refer to  the &lt;a href="http://otn.oracle.com/products/forms" target="_blank"&gt;OTN&lt;/a&gt; Web site &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8332897805510780163-1936224482169074969?l=zakirpro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/11g/jsinteg/formsjsinteg/setup.htm' title='Integrating Oracle Forms 11g with JavaScript'/><link rel='replies' type='application/atom+xml' href='http://zakirpro.blogspot.com/feeds/1936224482169074969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zakirpro.blogspot.com/2011/04/integrating-oracle-forms-11g-with.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/1936224482169074969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8332897805510780163/posts/default/1936224482169074969'/><link rel='alternate' type='text/html' href='http://zakirpro.blogspot.com/2011/04/integrating-oracle-forms-11g-with.html' title='Integrating Oracle Forms 11g with JavaScript'/><author><name>Mohammad Zakir Hossain</name><uri>http://www.blogger.com/profile/09250063615312107598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_Lmsi1cwgXJ0/SgfVBesDpnI/AAAAAAAAAEU/-hfzs_PYnPc/S220/ZSC0320.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8332897805510780163.post-3983685899528360386</id><published>2011-04-21T15:51:00.003+06:00</published><updated>2011-04-21T16:01:55.035+06:00</updated><title type='text'>Forms 11g new features: Javascript-API / WHEN-CUSTOM-JAVASCRIPT-EVENT</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title"&gt; &lt;/h3&gt;Forms 11g allows the direct communication between the generic  java-applet in the browser and the world around. The new JavaScript-API  implements this functionality.&lt;br /&gt;&lt;br /&gt;In Forms 11g we have a new trigger, system-variables and built-ins for the communication with the JavaScript-API.&lt;br /&gt;&lt;br /&gt;The trigger &lt;span style="font-weight: bold;"&gt;WHEN-CUSTOM-JAVASCRIPT-EVENT&lt;/span&gt;  fires each time, when JavaScript raises an event to forms. In the  trigger we can use the payload which is stored in two system-variables. &lt;span style="font-weight: bold;"&gt;system.javascript_event_name&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;:system.javascript_event_value&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_lwLEB0H9sdo/R-pIE8U06fI/AAAAAAAAArM/W1-Z5NayL-k/s1600-h/Forms11g_Javascript_01.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5182033570993334770" src="http://bp3.blogger.com/_lwLEB0H9sdo/R-pIE8U06fI/AAAAAAAAArM/W1-Z5NayL-k/s400/Forms11g_Javascript_01.JPG" style="cursor: hand; cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;Informations, which were transfered from HTML to Forms, can be easily used:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_lwLEB0H9sdo/R-pIPsU06gI/AAAAAAAAArU/TQiA0HiaBSw/s1600-h/Forms11g_Javascript_02.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5182033755676928514" src="http://bp2.blogger.com/_lwLEB0H9sdo/R-pIPsU06gI/AAAAAAAAArU/TQiA0HiaBSw/s400/Forms11g_Javascript_02.JPG" style="cursor: hand; cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;In  this little example we transfer in the payload the event-name "NewForm"  and in the event-value the name of a form. The data is transfered from  the internet-page in this way::&lt;br /&gt;&lt;pre&gt;&amp;lt; INPUT id="outside_field_id"&amp;gt;&lt;br /&gt;&amp;lt; SCRIPT&amp;gt;&lt;br /&gt;  function set_field (field_id, myValue) {&lt;br /&gt;    document.getElementById(field_id).value=myValue;&lt;br /&gt;  };&lt;br /&gt;  function clickEvent1()&lt;br /&gt;  {&lt;br /&gt;    document.forms_applet.raiseEvent("NewForm", "payload");&lt;b
