Sunday, January 22, 2012

Oracle Configurator CZInfo.jsp page

I have found CZInfo.jsp a very useful page while working with Oracle applications.
It can be accessed on any EBS instance by directly typing following URL (replace your instance host name and port number)
http://cztest.corp.mycompany.com:8001/OA_HTML/CZInfo.jsp
You will be able to see output of the page only when FND: Diagnostics (profile option) are enabled.

This page will list following:
  • System Properties
    • It will list all Java System Properties. Many times useful to check if any changes in jserv.properties (11.5.10) or in oc4j.properties (R12) have taken effect or not and to observe many other things.
    • You can observe java classpath, few environment variables, and DBC file location. Explore this more to find what more you can do :)
  • Publication Lookup
    • Useful to do publication lookup for given inventory_item_id/organization_id or product_key.
    • It will give publication_id, published model_id and ui_def_id.
  • JRAD documents for a given UI
    • If you have ever wondered that how XML pages of Configurator UI page (developed in Configurator Developer) are structured or what is stored in MDS repository, you can use this feature to find its details.
    • Enter the ui_def_id of the UI. It will display pages and templates used by the UI. You can get ui_def_id from cz_ui_defs table.
    • Sometimes very useful for debugging UI corruption issue.
  • JRAD documents by Path
    • Here you can specify any JRAD document for Oracle application and can see its XML structure. 
    • Sometimes useful to find personalization of the page and other details.
  • ARCS version of class loaded in the JVM
    • This is the most useful feature.
    • You can find any java class located on the system (in classpath). It will display the location on the class in middle-tier.
    • Sometimes your CX archive class may be present in file system and due to that, you will not be able to see changes from your archive uploaded in Configurator developer. You can check if the same class is there on the file system.
    • It will also list arcs (Oracle source control) version of the file. Many times useful and asked by Oracle Support to check the version of specific class to validate if the new fix has been applied properly on the instance.

Tuesday, January 3, 2012

Adobe Reader PDF launch performance

Recently I have observed that whenever I open any PDF file in Adobe Reader (Version 10.1), it takes lot of time to display PDF file.
Looks like it does some processing of document for loading plugins. I just renamed the plugin's folder under installation directory of Adobe (typically it is C:\Program Files\Adobe\Reader 10.0).
I found two folders for plugin in my machine.
   plug_ins3d
   plug_ins
Just renamed them to some other name.
Now the Adobe is launching PDF very quickly.

Now you will face problem while searching in pdf file - because you have disabled all plugins :(
So now selectively add plugin as you need by creating above folder and finding plugins from renamed folder. They are self explanatory by name, so should not be difficult to find out their usage.

Monday, December 12, 2011

PLSQL block for Publication process

If there is any issue entering parameters for Concurrent program or if you want to automate your publishing process, go for following plsql block:

DECLARE
  P_API_VERSION NUMBER;
  P_PUBLICATION_ID NUMBER;
  P_USER_ID NUMBER;
  P_RESP_ID NUMBER;
  P_APPL_ID NUMBER;
  X_RUN_ID NUMBER;
  X_STATUS NUMBER;
BEGIN
  P_API_VERSION := 1.0;
  P_PUBLICATION_ID := 64689;
  P_USER_ID := 1001530;  --EBUSINESS
  P_RESP_ID := 22687;  --Oracle Configurator Administrator
  P_APPL_ID := 708; --Configurator

  CZ_MODELOPERATIONS_PUB.PUBLISH_MODEL(
    P_API_VERSION => P_API_VERSION,
    P_PUBLICATION_ID => P_PUBLICATION_ID,
    P_USER_ID => P_USER_ID,
    P_RESP_ID => P_RESP_ID,
    P_APPL_ID => P_APPL_ID,
    X_RUN_ID => X_RUN_ID,
    X_STATUS => X_STATUS
  );
  DBMS_OUTPUT.PUT_LINE('X_RUN_ID = ' || X_RUN_ID);
  DBMS_OUTPUT.PUT_LINE('X_STATUS = ' || X_STATUS);
END;

Ensure you enable dbms output to check the return status.
Successful submission would return 0 as x_status.
You can also check in Configurator Developer  >  Publication tab for this publication, it should show as Complete.

P.S. All Configurator process APIs are listed in Implementation Guide of Configurator.
Change user_id, resp_id, appl_id as per your requirement.
For errors, refer cz_db_logs table.

Tuesday, December 6, 2011

Query to extract Oracle Configurator CX rule information


We can use following query to find out all the CX rules in the Configurator model. The query will display the information for the rules like rule_name, java class associated with it, event name, event scope, and oncommand event name.

SELECT DISTINCT RU.RULE_ID, 
  RU.NAME, 
  (SELECT NAME FROM CZ_SIGNATURES WHERE SIGNATURE_ID=EN.ARGUMENT_SIGNATURE_ID) AS EVENTNAME, 
  CLASS_NAME, 
  DECODE(EN.EVENT_EXECUTION_SCOPE, 1, 'Global', 2, 'Base Node SubTree', 4, 'Base Node', 'Unknown') AS SCOPE, 
  EN.DATA_VALUE oncommandEventName
FROM CZ_RULES RU, 
  CZ_EXPRESSION_NODES EN
WHERE DEVL_PROJECT_ID IN (131343) --for given devl_project_id
  AND RU.RULE_ID=EN.RULE_ID
  AND RU.RULE_TYPE=300 --for CX rules
  AND EN.ARGUMENT_SIGNATURE_ID IS NOT NULL --with valid event
  AND RU.DELETED_FLAG=0 --ignore deleted nodes
  AND EN.DELETED_FLAG=0
  AND EN.EXPR_PARENT_ID IS NULL --definition is only on parent node of expression tree
;

This query is useful at times to find out all CX rules with base node subtree event scope which may usually cause performance issue if its unwanted. You can always add other parameters/clauses to filter information as per your need.