Wednesday, July 8, 2009

Oracle documentation methodology

Oracle Corporation formalized an Application Implementation Method (AIM) in
1994 to support its rapidly growing consulting organization and the first
shipments of release 10 to the Applications. Prior to AIM, Oracle
consultants used something called Application Implementation Plan (AIP) for
release 9 implementation projects. Because AIP was nothing more than a huge
list of project tasks, AIM was a big improvement.

AIM provides the Oracle consultant with an integrated set of templates,
procedures, PowerPoint presentations, spreadsheets, and project plans for
implementing the applications. AIM was such a success, Oracle created a
subset of the templates called it AIM Advantage and made it available as a
product to customers and other consulting firms.

Regular and Customer specific pricing in iStore (using advanced pricing)

BEST PRICE

  • Set IBE: Use Price list associated with Specialty Site = NO
  • Set – Event Phases - > Search flag - > YES
  • Use Party_Id and Cust_Account_Id for Qualifying

o ASO_PRICING_INT.G_HEADER_REC.cust_acct_id

    • ASO_PRICING_INT.G_HEADER_REC.party_id
    • ASO_PRICING_INT.G_LINE_REC.cust_acct_id
    • ASO_PRICING_INT.G_LINE_REC.party_id
  • Customer specific pricing shows up in Catalog pages.
  • No caching.

LIST PRICE

  • Set IBE: Use Price list associated with Specialty Site = YES
  • Can use secondary price lists – reduces performance depending on the # of sec price lists and qualifiers
  • Item price cache used

CUSTOMER ACCOUNT PRICE

  • Set IBE: Use Customer Account Price List = YES
  • Pricelist defined in customer account – receivables is used.

Pricing APIs:

oracle.apps.ibe.catalog.StoreMinisite.getPriceListID()

oracle.apps.ibe.catalog.Item.getListAndBestPrices()

oracle.apps.ibe.catalog.PriceAdapter.sendRequest()

IBEVPRCB.pls

ENTER - button to submit form

One of the most common requirement for any ecommerce site is to submit a form when a user fills the details and hits "Enter". This is a common practice, but in iStore most pages donot support this.

There a several ways to handle this, I will give you the most simple way with an example:

You could add the following javascript to the ibeCAcdLogin.jsp



And change the password input to add an onKeyPress handler like so:

Logging in iStore / CRM framework

Initial Setup

The following steps are required to be able to log the debug information.

1. Ensure the Logging Parameters are set:

a. Go to the $APACHE_TOP/Jserv/etc directory and open the jserv.properties file
b. Ensure the following parameters are set:
wrapper.bin.parameters=-Dframework.Logging.system.filename=/&directory/fwsys.log
wrapper.bin.parameters=-Dservice.Logging.common.filename=/&directory/ibe.log

Note:
- Replace /&directory/ with a valid directory on your server and make sure it has the proper permissions.
- This will not be the name of the log file generated from iStore, see below for the exact name of the log file.

2. Ensure the Debug Properties are turned on for the application:

a. Login to jtflogin.jsp as sysadmin user
b. Navigate to Settings > System > Advanced
c. Choose JTF from the dropdown list
d. Verify the following properties are set:

framework.Logging.system.filename -> fwsys_jtf_log
framework.Logging.system.level -> debug
service.Logging.common.filename -> jtf_log
service.Logging.common.level -> debug
service.Logging.common.mode -> file

Note:
- The two *.filename properties are to be set to a name of file, do not enter a directory.
- The directory is defined from the parameters set in the jserv.properties.
- This will not be the name of the log file generated from iStore, see below for the exact name of the log file.

3. Set the "OM: Debug Log Directory" system profile:

Set the "OM: Debug Log Directory" profile at the site level to a directory that is writable by the database server. The profile value must be one of the directories listed in the utl_file_dir parameter.

Note:
- To find the utl_file_dir value set, the following query may be executed:
select value from v$parameter where name = 'utl_file_dir'
- Refer to Note 204016.1 for instructions on updating the utl_file_dir in the init.ora file.

Generate Debug Log Files from iStore

1. Set the "OM: Debug Level" profile to 5 at the Site level.

2. Set the "IBE : Enable Debug" and "ASO : Enable ASO Debug" profiles to Yes at the user level.
Both profiles are needed to be set as iStore will call some Order Capture API's.

2. If the problem needs Pricing information: check the "QP: Debug" profile.
- If the profile has 'No' and 'Yes' as values, set the profile to 'Yes' at the user level.
- If the profile has the 3 values regarding the Request Viewer, set the profile to 'Request Viewer Off'.
At this point, the Pricing Debug information will be generated when the "OM: Debug Level" profile is set.

3. If the problem needs the Tax information, different steps are required based on Financials Family Pack applied.
For customers who are on Financials Family Pack E/11.5.9 or lower - should set both FND Logging Profiles and Tax Debug profiles for debugging. The debug log will be generated in directory specified by profile option Tax:Debug File Directory

For customers who are on Financials Family Pack F/11.5.10 or higher - only the FND Logging Profiles are needed.

4. If the problem needs the ATP information, the following steps need to be followed:
- Set the "MSC: ATP Debug Mode" profile to 'Debug Only' at the site level.
- Make sure user level is set to NULL.
- A session-* log file will be generated in the 'utl_file_dir' directory.

5. Open a new browser window and replicate the issue in iStore.

6. Unset the profiles to stop the debugging.

Where are the Log files?

1. The iStore pl/sql log file will be generated in the directory (located in the Database Tier) specified in the Order Management 'OM: Debug Log Directory' System Profile and has the syntax of IBE_.log

2. The iStore java layer log file will be generated in the directory defined by JVM parameter "framework.Logging.system.filename" in the jserv.properties file and has the syntax of IBE__.log

Note:
Based on the action being done, there might also be a Quoting debug log file generated in the same directory which will have the following syntax: QOT_.log
Make sure to upload the iStore debug log file and the Quoting if one was generated.

Generating Configurator Log Files

If Configurator is involved in the replication steps, some configurator log files can (and should) be obtained for further debugging.

Generating Log Files as the guest

To generate the iStore debug log files while you are the guest user, you will just need to append '?&log=t' (without the single quotes) to the end of the URL before the step you want to debug while you are the guest user.
There is no need to set all profiles from section III.

For example: http://:/OA_HTML/?&log=t

This will generate both log files for any actions done in the browser after that. It is not necessary to append the parameter again for that session.
Once you close the browser, it stops the debugging. If new browser is started and append the parameter again, it starts a new set of log files.

The logs will be generated the same way for the guest user:
1. The pl/sql file name will have a syntax of "IBE_.log" and be generated in the directory specified in the "OM: Debug Log Directory" system profile.
2. The java layer file name will have a syntax of "IBE__.log" and be generated in the directory specified in the 'Dframework.Logging.system.filename' parameter of the jserv.properties.

Friday, September 26, 2008

Tips & Tricks for Customizing iStore pages

Tips to develop JSPs:

1. Two types of block comments – JSP and HTML.

1.1. JSP Comments - "<%"-- these comments will not show in source code of HTML page --%>

1.2. HTML comments - 2. In iStore, pages you want to modify for template purposes almost always end in I.

2.1. IStore Naming Convention: ibeCZzdError.jsp

2.2. Ibe is the prefix indicating it’s an iStore page. (I think this may tie to being a customer facing page as well but I can’t confirm it)

2.4. The zd indicates it’s a display page. If it had tp it would indicate a processing page.

2.5. In display template pages, the JSPs are paired, with a processing page (e.g. ibeCZtpSpecialPage.jsp) and a display page (e.g. ibeCZzdSpecialPageI.jsp). The pairs are normally named the same with a differentiation on the zd and the appended I. The processing page will also reference the display page programatically through its Programattic Access Name, stored within oracle iStore. (you can find the programmatic display name via the processing JSP - find DisplayManager.getTemplate and you’ll see the programmatic accessname in all caps)

3. Directories where JSPs are held - $OA_HTML

4. Flags to set in zone.properties to speed development of JSP –

4.1. Autoreload.classes = true

4.2. Autoreload. file=true

4.3. developer_mode=true

Tricks to develop pages:

1) Always see if a profile option can do the trick. Lots of the iStore bins can be turned on and off via templates or profile options. Read Appendix A and D in the IBE Administrator guide prior to making changes to the JSP.

2) When modifying JSPs, set all border=0 to border=1 in the JSP. This will allow you to see the layout while you make changes.

3) Errors such as Catch without Try or If statement errors normally point to a missing closing bracket or semicolon.

Creating Templates in iStore Administrator:

Templates in iStore consists of two types of JSPs:

1) A processing page – e.g. ibeCCtpLfStMsL.jsp

2) A display page (also known as the INCLUDE) – e.g. ibeCCtdLfStMsLI.jsp

When creating a new template, you must create BOTH pages.

I. Processing Page:

This page calls the display programatically. There is a specific change to be made in the processing page, found under DisplayManager.getTemplate(SOME_NAME).

SOME_NAME must be changed to the programmatic access name of the display page. (This name is selected by you, but when entering the display page in the Display Manager, it must correspond to the name you have entered in the processing page)

Additioonally, when creating a new template type for the processing page, you must choose the type of template it is –

· Section Contains Products Only

· Section contains Navigational Subsections only

· Section contains Featured Subsection

There’s a few others that are available, but the top two will be the most commonly used. As you gain sophistication in iStore and web sales in general, you may determine a need for featured sections, which can also be created here.

II. Display Page

This page displays the items or sections as you determine.

When adding this page into the template manager, ensure that:

· Its template type is “Others”

· Its Programattic Access Name corresponds to the name chosen in the Processing Page.

Wednesday, June 4, 2008

iStore Public APIs

Oracle iStore supports only the following public APIs,

1) StoreMinisite - Miisite Info API
2) StoreProfile - Store Profiles setups
3) DisplayManager - Template Mappings and Other Mappings
4) Catalog - iStore Catalog - Section, display template etc.
8) ShoppingCart - Quote, Shopping cart
9) AK Objects reltd APIs - Postsales data
10) IbeAtpPvt - ATP - Availability