Friday, December 18, 2009

How to place the stacked canvas in TAB page canvas?

We can’t place the stacked canvas in TAB page canvas. But we can show the stacked canvas in all/required tab pages.

For an example, (Requirement like this ...) we need to show the ITEM DETAILS (Line sequence num, Item number and description) in all TAB pages (Item details, OSP WIP Job, PO Details, Container and notes).

As per requirement you did content and TAB page canvas design; once you are going to create the stacked canvas the developer suite will throw an error …


To avoid this error, go to VIEW >> STACKED VIEWS >> just un-select your TAB page canvas (CTRL +select/unselect). Now you can view the content canvas only.


Do the design/place the stacked canvas and place the items whatever you want.

Once you done the stacked canvas design; goto VIEW >> STACKED VIEWS >> choose the all canvas views and verify the position of items.



Thursday, December 17, 2009

DataLoad - Loading data thro’ Oracle EBS Forms

DataLoad is powerful tool used by non-technical and technical users alike to load data and configuration in to ERP, CRM and operational systems such as Oracle E-Business Suite.

Tool Download: http://www.dataload.com/downloads/index.html  

DataLoad

Select the appropriate window and command group

Place the data with KEY STROKES

DataLoad Commands: http://www.dataload.com/help/macro/commands.htm
DataLoad KeyStrokes: http://www.dataload.com/help/macro/keystrokes.htm
 
Once you done the datas with key strokes; Press StartLoad key

Ensure the form fields are getting correct value ...


                                                       ** DataLoad completed successfully!

How to use the ampersand symbol in PLSQL apart from that’s SQL environment functionalities?

Scenario: How to get the request group ID for the request group “US SHRMS Reports & Processes”?


ORA-01403: NO DATA FOUND
Solution: Use CHR function


Concurrent Executable and Program Creations and Deletions(Using by API(s))

* User cannot delete the concurrent program through oracle applications. (FRONT END)
* User can disable / enable the concurrent program.
* Oracle gives the deleting access through the following API(s).

API(s) for create the concurrent executable, program and attaching to the request group.

fnd_program.executable Create the concurrent executable.
fnd_program.register Create the concurrent program.
fnd_program.add_to_group Attach the program into request group.

API(s) for deleting the concurrent executable, program and remove the same from request group.

fnd_program.remove_from_group Remove the concurrent program entry in the request group.
fnd_program.delete_program Remove the program in case it is already registered before.
fnd_program.delete_executable Remove the Executable in case it is already registered before.

(Sample Script for the same)

SET SERVEROUTPUT ON

DECLARE
v_application_name apps.fnd_application_tl.application_name%TYPE;
vc_sub_query VARCHAR2 (100);
BEGIN
BEGIN
SELECT application_name
INTO v_application_name
FROM apps.fnd_application_tl fat,
apps.fnd_application fa
WHERE fat.application_id = fa.application_id
AND application_short_name =
'APPLN_SHORT_NAME';
/* APPLN_SHORT_NAME -> CUSTOM APPLICATION SHORT NAME */
DBMS_OUTPUT.put_line ( 'Application name is '
|| v_application_name
);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error getting the application name'
|| v_application_name
);
END;

/* STEP 1 -- Remove the request group incase it is already registered before */
BEGIN
apps.fnd_program.remove_from_group
(program_short_name => 'CONC_PRGM_SHORT_NAME',
program_application => v_application_name,
request_group => 'REQUEST_GROUP_NAME',
group_application => 'APPLN_NAME'
);
/*
'CONC_PRGM_SHORT_NAME'-> CUSTOM CONCURRENT PROGRAM SHORT NAME
User can change the appropriate request group and application
*/
DBMS_OUTPUT.put_line
( ' Removed the program from the request group.'
|| 'CONC_PRGM_SHORT_NAME'
);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error getting then remove the program from Request group.'
|| SQLERRM
);
END;

/* STEP 2 -- Remove the conc program incase it is already registered before */
BEGIN
apps.fnd_program.delete_program
(program_short_name => 'CONC_PRGM_SHORT_NAME',
application => v_application_name
);
/* 'CONC_PRGM_SHORT_NAME'-> CUSTOM CONCURRENT PROGRAM SHORT NAME */
DBMS_OUTPUT.put_line ( 'Program Deleted.'
|| 'CONC_PRGM_SHORT_NAME'
);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error deleting program: '
|| SQLERRM
);
END;

/* STEP 3-- Remove the conc executable incase it is already registered before */
BEGIN
apps.fnd_program.delete_executable
(executable_short_name => 'CONC_EXEC_SHORT_NAME',
application => v_application_name
);
DBMS_OUTPUT.put_line ( 'Executable Deleted. '
|| 'CONC_EXEC_SHORT_NAME'
);
/* 'CONC_EXEC_SHORT_NAME'-> CUSTOM CONC EXEC SHORT NAME */
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error deleting program: '
|| SQLERRM
);
END;

/* STEP 4 --- Concurrent executable creations */
BEGIN
apps.fnd_program.executable
(executable => 'CONC_EXEC_SHORT_NAME',
application => v_application_name,
short_name => 'CONC_EXEC_SHORT_NAME',
description => 'CONC_EXEC_DESCRIPTION',
execution_method => 'PL/SQL Stored Procedure',
execution_file_name => 'PKG.PROCEDURE_NAME',
subroutine_name => ''
);
DBMS_OUTPUT.put_line
( 'Created the Executable. '
|| 'CONC_EXEC_SHORT_NAME'
);
/*
'CONC_EXEC_SHORT_NAME' -- Concurrent executable name/short name
'CONC_EXEC_DESCRIPTION'-- Concurrent executable descriptiom
'PL/SQL Stored Procedure'-- execution mehod (like Oracle Report, etc)
'PKG.PROCEDURE_NAME'-- Concurrent execution file name
*/
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error Creating Executable: '
|| SQLERRM
);
END;

/* STEP 5 --- Concurrent Program creations */
BEGIN
apps.fnd_program.REGISTER
(program => 'CONC_PRGM_SHORT_NAME',
application => v_application_name,
enabled => 'Y',
short_name => 'CONC_PRGM_SHORT_NAME',
description => 'CONC_PRGM_DESCRIPTION',
executable_short_name => 'CONC_EXEC_SHORT_NAME',
executable_application => v_application_name,
priority => '',
save_output => 'Y',
PRINT => 'Y',
cols => '',
ROWS => '',
style => '',
style_required => 'N',
printer => '',
use_in_srs => 'Y',
allow_disabled_values => 'N',
run_alone => 'N'
);
DBMS_OUTPUT.put_line
( 'Concurrent progrma created. '
|| 'CONC_PRGM_SHORT_NAME'
);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error in Registering the Program'
|| SQLERRM
);
END;

/* STEP 6 ---------- Adding Parameters (If Any) */
BEGIN
apps.fnd_program.parameter
(program_short_name => 'CONC_PRGM_SHORT_NAME',
application => v_application_name,
SEQUENCE => 10,
parameter => 'PARAMETER_1',
description => 'PARAMETER_1',
enabled => 'Y',
value_set => 'VALUE_SET_NAME',
default_type => '',
DEFAULT_VALUE => '',
required => 'N',
display => 'Y',
display_size => 10,
description_size => 50,
concatenated_description_size => 25,
prompt => 'PARAMETER_1',
token => ''
);
DBMS_OUTPUT.put_line ('Added "PARAMETER_1"');
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error while adding "PARAMETER_1".'
|| SQLERRM
);
END;

/* STEP 7 -- Attache the concurrent Program to the request group */
BEGIN
apps.fnd_program.add_to_group
(program_short_name => 'CONC_PRGM_SHORT_NAME',
program_application => v_application_name,
request_group => 'REQUEST_GROUP_NAME',
group_application => 'APPLN_NAME'
);
DBMS_OUTPUT.put_line
('"CONC_PRGM_SHORT_NAME" attched to the request group.'
);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error while adding concurrent program to request group: '
|| SQLERRM
);
END;

/* COMMIT */
COMMIT;
END;
/

Monday, December 14, 2009

SQL Report - Submenu and Function Details (Responsibility Level)

This QUERY will retrieve the Function(s) and Submenu(s) which those all are attached to the given input responsibility.

SELECT        NVL2 (fme.sub_menu_id, '+', '-')
           || LPAD (NVL ((SELECT prompt
                            FROM apps.fnd_menu_entries_vl
                           WHERE menu_id = fme.menu_id
                             AND sub_menu_id = fme.sub_menu_id
                             AND fme.function_id IS NULL),
                         (SELECT prompt
                            FROM apps.fnd_menu_entries_vl
                           WHERE menu_id = fme.menu_id
                             AND function_id = fme.function_id
                             AND fme.sub_menu_id IS NULL)
                        ),
                      LENGTH (NVL ((SELECT prompt
                                      FROM apps.fnd_menu_entries_vl
                                     WHERE menu_id = fme.menu_id
                                       AND sub_menu_id = fme.sub_menu_id
                                       AND fme.function_id IS NULL),
                                   (SELECT prompt
                                      FROM apps.fnd_menu_entries_vl
                                     WHERE menu_id = fme.menu_id
                                       AND function_id = fme.function_id
                                       AND fme.sub_menu_id IS NULL)
                                  )
                             )
                    + (LEVEL * 5),
                    '-'
                   ) tree_structure
      FROM apps.fnd_menu_entries fme
START WITH fme.menu_id =
              (SELECT menu_id
                 FROM apps.fnd_responsibility fr,
                      apps.fnd_responsibility_tl frt
                WHERE fr.responsibility_id = frt.responsibility_id
                  AND frt.responsibility_name = &responsibility_name)  -- 'Application Developer'
CONNECT BY PRIOR fme.sub_menu_id = fme.menu_id

Query Output:

TREE_STRUCTURE
+-----Flexfield
+----------Key
----------------Register
----------------Segments
----------------Aliases
----------------CrossValidation
----------------Values
----------------Groups
----------------Accounts
+----------Descriptive
----------------Register
----------------Segments
----------------Values
-----------Flexfield Test
+-----Concurrent
-----------Program
-----------Executable
-----------Library
+-----Application
-----------Register
-----------Form
-----------Function
-----------Menu
-----------Messages
+----------Database
----------------Table
----------------Sequence
----------------View
+----------Lookups
----------------Application Object Library
----------------Common
----------------CE lookups
----------------GCS Lookups
----------------IA Lookups
----------------igi lookups
----------------XLA Lookups
----------------XLE Lookups
----------------FUN Lookups
----------------Service Lookups
+----------Validation
----------------Set
----------------Values
------Profile
+-----Attachments
-----------Document Entities
-----------Document Categories
-----------Attachment Functions
-----------Repositories
+-----Other
+----------Requests
----------------Run
----------------View
----------------Set
-----------Profile
-----------Concurrent
-----------Change Organization
-----------Running Jobs
+----------EDI
----------------EDI Setup
----------------EDI Data