Tuesday, March 29, 2011

OAF Basic points

Development Hierarchy

Workspace (JWS)
Java Project (JPR)

Server side components
BC4J Package
Application Module (AM)
View Object (VO)
Entity Object (EO)

Webui side components
Page
Region -- Controller for the region
Item

Tuesday, March 22, 2011

Ignore Pricing for Order Lines-Custom Hook

This is an enhancement to Oracle Advanced Pricing functionality and is released as a part of 11.5.10 and R12 releases. This functionality can be used to improve the performance of the system by avoiding lines from going through pricing engin if not required.

The Ignore Pricing custom hook provides users an opportunity to inform pricing engine to ignore such lines that could result in substantial performance gain

Implementing QP_custom_ignore.Ignore_itemline_for_pricing
If you intend to use ignore_itemline_for_pricing you must create a package body for qp_custom_ignore with the procedure ignore_itemline_for_pricing. Refer the package specification for further information on the package

Patches delivering the QP_CUSTOM_IGNORE.ignore_itemline_for_pricing functionality
Release 11.5.10 – Please apply patch 8203943
Release 12.0 - Please apply patch 8266809:R12.QP.A





Monday, October 18, 2010

How to incorporate the logic of viewing the concurrent request output from the custom form?

If the requirement is to incorporate the logic of viewing the concurrent request output from the custom form instead of viewing the output through standard view request form, apply the below approach.

1. Attach FNDCONC.pll file to the custom form.
2. In the WHEN-BUTTON-PRESS trigger of the object in the custom form call the following package
EDITOR_PKG.REPORT(req_id, save_output_flag);

Tuesday, October 5, 2010

Vendors with no Invoices

select segment1 VENDOR#,

vendor_name NAME,
vendor_site_code SITE_CODE,
end_date_active VEND_INACTIVE,
inactive_date SITE_INACTIVE
from po_vendors vend,
po_vendor_sites_all sites,
ap_invoices_all inv
where vend.vendor_id = sites.vendor_id
and sites.vendor_site_id = inv.vendor_site_id(+)
and inv.vendor_site_id is null;

Fetch Profile values at different levels

This query will give the values of the profile option set at different level. Use the profile option name or user profile option name which you see in the front end.

SELECT user_profile_option_name,SUBSTR(e.profile_option_name,1,25) PROFILE
,DECODE(a.level_id,10001,'Site',10002,'Application',10003,'Resp',10004,'User') "Level"
,DECODE(a.level_id,10001,'Site',10002,c.application_short_name,10003,b.responsibility_name,10004,d.user_name) LValue
,NVL(a.profile_option_value,'Is Null') Value
,SUBSTR(a.last_update_date,1,25) UPDATED_DATE
FROM fnd_profile_option_values a
, fnd_responsibility_tl b
, fnd_application c
,fnd_user d
, fnd_profile_options e
, fnd_profile_options_tl f
WHERE 1=1
AND f.user_profile_option_name in ('&User_Profile_Name')
AND e.profile_option_id = a.profile_option_id AND a.level_value = b.responsibility_id (+)
AND a.level_value = c.application_id (+) AND a.level_value = d.user_id (+)
AND f.PROFILE_OPTION_NAME(+)=e.profile_option_name
ORDER BY e.profile_option_name;

Reference

Wednesday, September 29, 2010

Adding New Processing constraint in Order Management

Add New business constraint in the Processing Constraint form (Setup : Rules : Security)

Entity : Choose the entity on which the constraint needs to be applied.
Constraints Block : Define the action or the constraint.
Condition Block : Define the condition upon which the Constraint needs to be fired.
Applicable To Block : Define the responsibilities to which the constrain is applicable.

Validation Template : New template needs to be defined in the Validation template form before attaching the same to the Processing constraint. (Setup : Rules : Security)

Validation Template Type can be of 3 types : API, Workflow or Table
1. API - Type the custom PLSQL package in the Package field and the procedure within the package in the procedure field. The procedure needs to be declared as below

Procedure xx_procedure_name ( p_application_id IN NUMBER,

p_entity_short_name in VARCHAR2,
p_validation_entity_short_name in VARCHAR2,
p_validation_tmplt_short_name in VARCHAR2,
p_record_set_tmplt_short_name in VARCHAR2,
p_scope in VARCHAR2,
p_result OUT NOCOPY NUMBER ) IS

All the IN parameters are passed by the system internally. The OUT parameter accepts two results 1 (TRUE) or 0 (FALSE). Based on the result from the validation Template, the condition is true or false.

2. Workflow : Enter the Item Type, Process Name, Status and the Result expected for the condition to be TRUE.

3. Table Type : Specify the Column Name, the Validation Operator and the string to which the column value needs to be compared to.

Tuesday, July 27, 2010

Wrapping PL/SQL Source Code

Wrapping is the process of hiding PL/SQL source code. Wrapping helps to protect your source code from business competitors and others who might misuse it.

You can wrap PL/SQL source code with either the wrap utility or DBMS_DDL subprograms.

Guidelines for Wrapping
Wrap only the body of a package or object type, not the specification
Wrap code only after you have finished editing it.
Wrapped code cannot be unwrapped. To change wrapped PL/SQL code, edit the original source file and then wrap it again.

Limitations of Wrapping
Wrapping does not hide the source code for triggers
Wrapping is not a secure method for hiding passwords
Wrapping does not detect syntax or semantic errors

1. To run the wrap utility
wrap iname=input_file [ oname=output_file ]

2. DBMS_DDL.WRAP