In Oracle Apps R12 version we can assign one or multiple Operating Units to a single responsibility.
Let’s see how to assign Multiple Operating Units to a single Responsibility.
In R12 we have an option called “Security Profile” through which we can assign multiple OU’s to a responsibility.
Create one “security Profile” and assign as many “Operating units” as needed.
Navigation: Human Resources, Vision Enterprises > Security > Profile
Create security profile and add one or more Operating Units to it.
Assign the “Security Profile” that we created to any Responsibility.
Navigation: System Administrator > Profile > System
Select the responsibility and Profile as MO: Security Profile
Select the security profile you have created and save. (In 11i version we select Operating unit instead of security profile)
The “Purchasing, Vision Operations (USA) will import two operating units (ABC Operating Unit-1 and ABC Operating Unit-2) via Security profile (ABC MOAC).
For HR related responsibility, by assigning the standard "HR:Query Only Mode" profile option to Yes. Then the responsibility will automatically become Query Only.
For non HR related resp., we may have to create a Custom functions by setting the parameter value QUERY_ONLY=YES against the seeded function.
XML Bursting can be used to split one XML File into multiple XML Blocks. These individual xml blocks can then be used to generate reports and even use different layouts. You can also deliver the reports to multiple destinations based on a XML Element. The steps involved are listed below for your understanding:
Generate the XML File
Split the XML into multiple XML Blocks
Generate Report based on the individual XML Blocks
Deliver the report
Take a look at the below image and the process will be much more clearer:
After defining the XML Bursting Control File, we will upload the same to the Data Definition. But before that, lets take a look at the XML file that we have.
As you can see the above XML file has details of two Suppliers (VENDOR001 and VENDOR002). I want the invoice details of VENDOR001 to be emailed to contact@vendor1.com and invoice details of VENDOR002 to be emailed to contact@vendor2.com. In this case, I know that I have to split the XML File into two.
The first thing that we need to do is to identify the Level at which the file has to be split, so that we get two different XML files. If you take a closer look at the XML file, you will see that the <G_SUPPLIER> … </G_SUPPLIER> group is repeated twice. So to get two different XML Files, we will split the actual file at /INVOICEDATA/LIST_G_SUPPLIER/G_SUPPLIERLevel. The result is the below XML Files.
XML Files After Splitting
We also know that we need to deliver these reports by email. We will use the G_SUPPLIER/SUPPLIER_EMAIL element to get the email id from the XML file. Now let us take a look at the Bursting Control File.
For simplicity the above statement can be broken down as
location="xdo://Application Short Name.Template Code.Default Language.Default Territory/?getSource=true"
And you can use the below SQL Statement to get the details of the Template.
selectxtb.application_short_name||'.'||
xtb.template_code ||'.'||
xtb.default_language ||'.'||
xtb.default_territory
fromapps.xdo_templates_b xtb
wherextb.template_code ='<Template Code>';
Uploading the Bursting Control File
Once the bursting control file has been defined, you need to attach the same to the Data Definition. Query for the Data Definition and open the defintion. And then click on “Add File” button and upload the XML file that we have defined. Save the changes and you are all set to test the process.
Check the below image for more details:
Submitting the Bursting Process
Attaching the XML Bursting Control file will not burst the report just yet. You need to submit the “XML Publisher Report Bursting Program” Concurrent program after the XML Publisher Report is completed. You can either manually Submit the program or use the below SQL Code Snippet in the After Report Trigger to submit the bursting program once the XML Publisher Report is completed.
DECLARE
l_conc_id NUMBER;
g_request_id NUMBER;
BEGIN
l_conc_id :=
fnd_request.submit_request
(
application => 'XDO'
,program => 'XDOBURSTREP'
,description => NULL
,start_time => SYSDATE
,sub_request => FALSE
,argument1 => NULL
,argument2 => g_request_id -– Request ID ofXML Publisher Report
,argument3 => 'Y'-– debug Flag
);
COMMIT;
END;
In this post, I have tried to explain the XML Bursting process in detail. I hope this helps