A Forum for Oracle E-business suite, Fusion professionals. It is an effort to make my blog a Knowledge repository and Solution Center which provides unique technical and functional solutions for EBS professionals.
Thursday, December 19, 2013
FND_MESSAGE Displaying only message code and not message text
--Application: The short name of the application this message is associated with. This short name references the application
--you associate with your message when
--you define it using the Messages form.
--
--Name: The message name that identifies your message. This name is identical to the name you use when you define your message
--using the Messages form. Message Dictionary names are not case sensitive (for example, MESSAGE_NAME is the same name as message_name).
--
--Procedure FND_MESSAGE.SET_NAME(application IN varchar2,
-- name IN varchar2);
DECLARE
l_message VARCHAR2 (4000);
BEGIN
FND_MESSAGE.SET_NAME ('XXTST', 'XX_TEST_MSG_NAME');
l_message := FND_MESSAGE.GET; DBMS_OUTPUT.put_line(l_message);
END;
--Note:-IF FND_MESSAGE.GET displays only the message code whatever
--is passed in the 2nd parameter and not message text, then, it
--means either the "Application Short Name" or the "Message Name" is
--incorrect
--Also, make sure the "Generate Messages" Concurrent Program is run
--from "Application Developer" responsibility
SELECT Statement to retrieve Oracle AOL Descriptive Flexfield Segment(DFF) Details
SELECT Statement to retrieve Oracle AOL Descriptive Flexfield Segment(DFF) Details
-- Application Developer > Navigate > Flexfields > Descriptive > Segments-- Search for relevant Title, second half of the screen, under "Context Field Values"
-- lists the main parts of the Flexfield
-- Click into a name on the "Context Field Values" section in the lower part of the
-- screen, and click "Segments"
-- This lists the bits users see in Core Applications when they click into the DFF
-- plus shows if there is a LOV linked to the field
-- Following SELECT statement retrieves DFF details related to an application,DFF
-- title, DFF Context or
-- the entire application if no parameter is passed
-- Optional Parameters:-
-- P_TITLE -- DFF Title
-- P_APPLICATION -- Application Name
-- P_DESC_FLEX_CD, DFF Context
SELECT fat.application_name
, fdfv.title
, fdfcv.descriptive_flex_context_code context
, fdfcuv.column_seq_num num
, fdfcuv.end_user_column_name name
, fdfcuv.application_column_name column_
, ffvs.flex_value_set_name value_set
, ffvs.description value_set_description
, fdfcuv.required_flag
, fdfcuv.display_flag
, fdfcuv.enabled_flag
, fdfcuv.security_enabled_flag
, fdfcuv.default_value
FROM apps.fnd_descriptive_flexs_vl fdfv
, applsys.fnd_application_tl fat
, apps.fnd_descr_flex_contexts_vl fdfcv
, apps.fnd_descr_flex_col_usage_vl fdfcuv
, applsys.fnd_flex_value_sets ffvs
WHERE fdfv.application_id = fat.application_id
AND fdfcv.descriptive_flexfield_name = fdfv.descriptive_flexfield_name
AND fdfcv.descriptive_flexfield_name = fdfcuv.descriptive_flexfield_name
AND fdfcv.descriptive_flex_context_code =
fdfcuv.descriptive_flex_context_code
AND fdfcuv.flex_value_set_id = ffvs.flex_value_set_id(+)
AND fdfv.title = NVL(:P_TITLE,fdfv.title)
AND fat.application_name = NVL(:P_APPLICATION,fat.application_name)
AND fdfcv.descriptive_flex_context_code =
NVL(:P_DESC_FLEX_CD,fdfcv.descriptive_flex_context_code)
ORDER BY fat.application_name
, fdfv.title
, fdfcv.descriptive_flex_context_code
, fdfcuv.column_seq_num;
Tuesday, December 10, 2013
How to enable the MOAC parameter “Operating Unit” for a Concurrent Program in Oracle EBS R12
You can notice that the new field “Operating Unit” which
is new field in R12 and by default is in disabled mode:-
With the introduction of multi-org access control in release
12, an applications responsibility
can access multiple operating units. Some concurrent programs have been enhanced to process multiple operating units simultaneously, while for other requests the operating unit must be specified when you run the program.
can access multiple operating units. Some concurrent programs have been enhanced to process multiple operating units simultaneously, while for other requests the operating unit must be specified when you run the program.
To support this, concurrent programs are defined with an
operating unit mode of 'S' for single operating unit or 'M'(concurrent program
will be in this mode by default) for multiple operating units. If the
'Operating Unit Mode' is not set for the concurrent program it will fail.
The “Operating Unit” field/parameter is known as “Reporting
Context” in MOAC(Multi Org Access Control) terminology.
For a concurrent program though there may be a need to only
run for Single Operating Unit, though the Responsibility has access to Multiple
Operating Units’ data based on the “MO: Security Profile” profile option.
Running a particular concurrent program for only a Single
Operating Unit can be achieved by a simple update statement or from the
front-end application:-
--Execute
the following update statement in the database for the particular concurrent
program you want set to run for "Single Operating Unit"
UPDATE fnd_concurrent_programs
SET
multi_org_category = 'S'
WHERE concurrent_program_name =
'<your program
name>';
Now we will see how we can achieve from the Oracle Applications
front-end.
1. Login into application with System
Administration responsibility (NOT System
Administrator)
2. Navigate: Concurrent -> Programs
Administrator)
2. Navigate: Concurrent -> Programs
3. Query for
short name of the concurrent program
4. Click on
Update pencil icon of your program
5. Under 'Update Concurrent Program' region, select Request
tab
6. Under 'Request Setting' region, select 'Single' from the drop down of 'Operating Unit
Mode' field
7. Save changes by clicking on 'Apply' button
6. Under 'Request Setting' region, select 'Single' from the drop down of 'Operating Unit
Mode' field
7. Save changes by clicking on 'Apply' button
8. Change
responsibility to the responsibility where the “Concurrent Program” can be run,
in
this example
“TESTOU” is assigned to “AR Super User” responsibility
9. Select the “Concurrent Program” from the “SRS Window”, now
you can see that “Operating
Unit” field is enabled and you can see the
Operating Units in the LOV
10. This particular selected Operating Unit value can be
accessed using the standard MOAC API: MO_GLOBAL.get_current_org_id
Note:- The return value for the “Operating Unit” reporting
context is corresponding “ORG_ID” for the selected “Operating Unit Name”
Tuesday, November 26, 2013
How to update a Sales Order Line using OE_ORDER_PUB
-- OE_ORDER_PUB.PROCESS_ORDER
will be used to update sales order line details in this example the Bill-to
Site of the sales order line is updated.
DECLARE
l_header_rec oe_order_pub.header_rec_type;
l_line_tbl oe_order_pub.line_tbl_type;
l_action_request_tbl oe_order_pub.request_tbl_type;
l_header_adj_tbl oe_order_pub.header_adj_tbl_type;
l_line_adj_tbl oe_order_pub.line_adj_tbl_type;
l_header_scr_tbl oe_order_pub.header_scredit_tbl_type;
l_line_scredit_tbl oe_order_pub.line_scredit_tbl_type;
l_request_rec oe_order_pub.request_rec_type;
l_return_status VARCHAR2(1000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(1000);
p_api_version_number NUMBER := 1.0;
p_init_msg_list VARCHAR2(10) := fnd_api.g_false;
p_return_values VARCHAR2(10) := fnd_api.g_false;
p_action_commit VARCHAR2(10) := fnd_api.g_false;
x_return_status VARCHAR2(1);
x_msg_count NUMBER;
x_msg_data VARCHAR2(100);
p_header_rec oe_order_pub.header_rec_type := oe_order_pub.g_miss_header_rec;
x_header_rec oe_order_pub.header_rec_type := oe_order_pub.g_miss_header_rec;
p_old_header_rec oe_order_pub.header_rec_type := oe_order_pub.g_miss_header_rec;
p_header_val_rec oe_order_pub.header_val_rec_type := oe_order_pub.g_miss_header_val_rec;
p_old_header_val_rec oe_order_pub.header_val_rec_type := oe_order_pub.g_miss_header_val_rec;
p_header_adj_tbl oe_order_pub.header_adj_tbl_type := oe_order_pub.g_miss_header_adj_tbl;
p_old_header_adj_tbl oe_order_pub.header_adj_tbl_type := oe_order_pub.g_miss_header_adj_tbl;
p_header_adj_val_tbl oe_order_pub.header_adj_val_tbl_type := oe_order_pub.g_miss_header_adj_val_tbl;
p_old_header_adj_val_tbl oe_order_pub.header_adj_val_tbl_type := oe_order_pub.g_miss_header_adj_val_tbl;
p_header_price_att_tbl oe_order_pub.header_price_att_tbl_type := oe_order_pub.g_miss_header_price_att_tbl;
p_old_header_price_att_tbl oe_order_pub.header_price_att_tbl_type := oe_order_pub.g_miss_header_price_att_tbl;
p_header_adj_att_tbl oe_order_pub.header_adj_att_tbl_type := oe_order_pub.g_miss_header_adj_att_tbl;
p_old_header_adj_att_tbl oe_order_pub.header_adj_att_tbl_type := oe_order_pub.g_miss_header_adj_att_tbl;
p_header_adj_assoc_tbl oe_order_pub.header_adj_assoc_tbl_type := oe_order_pub.g_miss_header_adj_assoc_tbl;
p_old_header_adj_assoc_tbl oe_order_pub.header_adj_assoc_tbl_type := oe_order_pub.g_miss_header_adj_assoc_tbl;
p_header_scredit_tbl oe_order_pub.header_scredit_tbl_type := oe_order_pub.g_miss_header_scredit_tbl;
p_old_header_scredit_tbl oe_order_pub.header_scredit_tbl_type := oe_order_pub.g_miss_header_scredit_tbl;
p_header_scredit_val_tbl oe_order_pub.header_scredit_val_tbl_type := oe_order_pub.g_miss_header_scredit_val_tbl;
p_old_header_scredit_val_tbl oe_order_pub.header_scredit_val_tbl_type
:= oe_order_pub.g_miss_header_scredit_val_tbl;
x_line_tbl oe_order_pub.line_tbl_type := oe_order_pub.g_miss_line_tbl;
p_old_line_tbl oe_order_pub.line_tbl_type := oe_order_pub.g_miss_line_tbl;
p_line_val_tbl oe_order_pub.line_val_tbl_type := oe_order_pub.g_miss_line_val_tbl;
p_old_line_val_tbl oe_order_pub.line_val_tbl_type := oe_order_pub.g_miss_line_val_tbl;
p_line_adj_tbl oe_order_pub.line_adj_tbl_type := oe_order_pub.g_miss_line_adj_tbl;
p_old_line_adj_tbl oe_order_pub.line_adj_tbl_type := oe_order_pub.g_miss_line_adj_tbl;
p_line_adj_val_tbl oe_order_pub.line_adj_val_tbl_type := oe_order_pub.g_miss_line_adj_val_tbl;
p_old_line_adj_val_tbl oe_order_pub.line_adj_val_tbl_type := oe_order_pub.g_miss_line_adj_val_tbl;
p_line_price_att_tbl oe_order_pub.line_price_att_tbl_type := oe_order_pub.g_miss_line_price_att_tbl;
p_old_line_price_att_tbl oe_order_pub.line_price_att_tbl_type := oe_order_pub.g_miss_line_price_att_tbl;
p_line_adj_att_tbl oe_order_pub.line_adj_att_tbl_type := oe_order_pub.g_miss_line_adj_att_tbl;
p_old_line_adj_att_tbl oe_order_pub.line_adj_att_tbl_type := oe_order_pub.g_miss_line_adj_att_tbl;
p_line_adj_assoc_tbl oe_order_pub.line_adj_assoc_tbl_type := oe_order_pub.g_miss_line_adj_assoc_tbl;
p_old_line_adj_assoc_tbl oe_order_pub.line_adj_assoc_tbl_type := oe_order_pub.g_miss_line_adj_assoc_tbl;
p_line_scredit_tbl oe_order_pub.line_scredit_tbl_type := oe_order_pub.g_miss_line_scredit_tbl;
p_old_line_scredit_tbl oe_order_pub.line_scredit_tbl_type := oe_order_pub.g_miss_line_scredit_tbl;
p_line_scredit_val_tbl oe_order_pub.line_scredit_val_tbl_type := oe_order_pub.g_miss_line_scredit_val_tbl;
p_old_line_scredit_val_tbl oe_order_pub.line_scredit_val_tbl_type := oe_order_pub.g_miss_line_scredit_val_tbl;
p_lot_serial_tbl oe_order_pub.lot_serial_tbl_type := oe_order_pub.g_miss_lot_serial_tbl;
p_old_lot_serial_tbl oe_order_pub.lot_serial_tbl_type := oe_order_pub.g_miss_lot_serial_tbl;
p_lot_serial_val_tbl oe_order_pub.lot_serial_val_tbl_type := oe_order_pub.g_miss_lot_serial_val_tbl;
p_old_lot_serial_val_tbl oe_order_pub.lot_serial_val_tbl_type := oe_order_pub.g_miss_lot_serial_val_tbl;
p_action_request_tbl oe_order_pub.request_tbl_type := oe_order_pub.g_miss_request_tbl;
x_header_val_rec oe_order_pub.header_val_rec_type;
x_header_adj_tbl oe_order_pub.header_adj_tbl_type;
x_header_adj_val_tbl oe_order_pub.header_adj_val_tbl_type;
x_header_price_att_tbl oe_order_pub.header_price_att_tbl_type;
x_header_adj_att_tbl oe_order_pub.header_adj_att_tbl_type;
x_header_adj_assoc_tbl oe_order_pub.header_adj_assoc_tbl_type;
x_header_scredit_tbl oe_order_pub.header_scredit_tbl_type;
x_header_scredit_val_tbl oe_order_pub.header_scredit_val_tbl_type;
x_line_val_tbl oe_order_pub.line_val_tbl_type;
x_line_adj_tbl oe_order_pub.line_adj_tbl_type;
x_line_adj_val_tbl oe_order_pub.line_adj_val_tbl_type;
x_line_price_att_tbl oe_order_pub.line_price_att_tbl_type;
x_line_adj_att_tbl oe_order_pub.line_adj_att_tbl_type;
x_line_adj_assoc_tbl oe_order_pub.line_adj_assoc_tbl_type;
x_line_scredit_tbl oe_order_pub.line_scredit_tbl_type;
x_line_scredit_val_tbl oe_order_pub.line_scredit_val_tbl_type;
x_lot_serial_tbl oe_order_pub.lot_serial_tbl_type;
x_lot_serial_val_tbl oe_order_pub.lot_serial_val_tbl_type;
x_action_request_tbl oe_order_pub.request_tbl_type;
x_debug_file VARCHAR2(100);
l_msg_index_out NUMBER(10);
l_line_tbl_index NUMBER;
BEGIN
dbms_output.ENABLE(1000000);
fnd_global.Apps_initialize(1318, 21623, 660);
-- pass in user_id,
responsibility_id, and application_id
oe_msg_pub.initialize;
oe_debug_pub.initialize;
mo_global.Init ('ONT'); -- Required for R12
fnd_global.Set_nls_context ('AMERICAN');
mo_global.Set_policy_context ('S', 87); -- Required for R12
--X_DEBUG_FILE :=
OE_DEBUG_PUB.Set_Debug_Mode('FILE');
--oe_debug_pub.SetDebugLevel(5);
--dbms_output.put_line('START
OF NEW DEBUG');
--This is to update a line to
an existing order
l_line_tbl_index :=1;
-- Changed attributes
l_line_tbl(l_line_tbl_index) := OE_ORDER_PUB.G_MISS_LINE_REC;
l_line_tbl(l_line_tbl_index).invoice_to_org_id := 322;
-- Primary key of the entity
i.e. the order line
l_line_tbl(l_line_tbl_index).line_id := 388459;
l_line_tbl(l_line_tbl_index).change_reason := 'Not provided';
-- Indicates to process order
that this is an update operation
l_line_tbl(l_line_tbl_index).operation := OE_GLOBALS.G_OPR_UPDATE;
-- CALL TO PROCESS ORDER
oe_order_pub.Process_order ( p_api_version_number => 1.0 ,
p_init_msg_list => fnd_api.g_false ,
p_return_values => fnd_api.g_false ,
p_action_commit => fnd_api.g_false ,
x_return_status => l_return_status ,
x_msg_count => l_msg_count ,
x_msg_data => l_msg_data ,
p_header_rec => l_header_rec ,
p_line_tbl => l_line_tbl ,
p_action_request_tbl => l_action_request_tbl
-- OUT PARAMETERS
, x_header_rec => x_header_rec
, x_header_val_rec => x_header_val_rec
, x_header_adj_tbl => x_header_adj_tbl
, x_header_adj_val_tbl => x_header_adj_val_tbl
, x_header_price_att_tbl => x_header_price_att_tbl
, x_header_adj_att_tbl => x_header_adj_att_tbl
, x_header_adj_assoc_tbl => x_header_adj_assoc_tbl
, x_header_scredit_tbl => x_header_scredit_tbl
, x_header_scredit_val_tbl => x_header_scredit_val_tbl
, x_line_tbl => x_line_tbl
, x_line_val_tbl => x_line_val_tbl
, x_line_adj_tbl => x_line_adj_tbl
, x_line_adj_val_tbl => x_line_adj_val_tbl
, x_line_price_att_tbl => x_line_price_att_tbl
, x_line_adj_att_tbl => x_line_adj_att_tbl
, x_line_adj_assoc_tbl => x_line_adj_assoc_tbl
, x_line_scredit_tbl => x_line_scredit_tbl
, x_line_scredit_val_tbl => x_line_scredit_val_tbl
, x_lot_serial_tbl => x_lot_serial_tbl
, x_lot_serial_val_tbl => x_lot_serial_val_tbl
, x_action_request_tbl => x_action_request_tbl
);
--dbms_output.put_line('OM
Debug file: ' ||oe_debug_pub.G_DIR||'/'||oe_debug_pub.G_FILE);
-- Retrieve messages
dbms_output.Put_line('Line Id: ' ||x_line_tbl(l_line_tbl_index).line_id);
FOR i IN 1 .. l_msg_count
LOOP
oe_msg_pub.Get ( p_msg_index => i ,
p_encoded => fnd_api.g_false ,
p_data => l_msg_data ,
p_msg_index_out => l_msg_index_out
);
dbms_output.Put_line('message is: ' || l_msg_data);
dbms_output.Put_line('message index is: ' || l_msg_index_out);
END LOOP;
-- Check the return
status
IF l_return_status = fnd_api.g_ret_sts_success
THEN
dbms_output.put_line('Line Quantity Update
Sucessful');
ELSE
dbms_output.put_line('Line Quantity update Failed');
END IF;
END;
/
COMMIT;
--Note:- In R12 it is very important to have different
input and output parameter/s to pass to the oe_order_pub API so as to
successfully update the record
Subscribe to:
Posts (Atom)