Showing posts with label oracle apps R12. Show all posts
Showing posts with label oracle apps R12. Show all posts
 SELECT   
ooha.header_id order_header_id, 
ottt.NAME order_type_name,
ooha.order_number, 
ooha.ordered_date,
ooha.transactional_curr_code order_currency, 
hp.party_id,
hp.party_number, 
hp.party_name customer_name,
hca.cust_account_id customer_id, 
hca.account_number customer_number,
oola.line_id order_line_id, 
oola.line_number, 
oola.inventory_item_id,
msib.segment1 item_number, 
msib.description item_desc,
oola.attribute15 superseded_item, 
oola.order_quantity_uom,
oola.ordered_quantity, 
oola.unit_selling_price
    FROM OE_ORDER_HEADERS_ALL OOHA,
         OE_ORDER_LINES_ALL OOLA,
         OE_TRANSACTION_TYPES_TL OTTT,
         MTL_SYSTEM_ITEMS_B MSIB,
         MTL_PARAMETERS MP,
         ORG_ORGANIZATION_DEFINITIONS OOD,
         HZ_PARTIES HP,
         HZ_CUST_ACCOUNTS HCA
   WHERE ooha.header_id = oola.header_id
     AND ottt.transaction_type_id(+) = ooha.order_type_id
     AND ottt.LANGUAGE = USERENV ('LANG')
     AND hca.cust_account_id(+) = ooha.sold_to_org_id
     AND hp.party_id = hca.party_id
     AND ooha.org_id = oola.org_id(+)
     AND msib.inventory_item_id = oola.inventory_item_id
     AND msib.organization_id = mp.master_organization_id
     AND mp.organization_id = ood.organization_id
     AND mp.master_organization_id = mp.organization_id
     AND ood.operating_unit = fnd_profile.VALUE ('ORG_ID')
     AND ooha.order_number = :P_sales_order_number;

 List of Receipts API in Oracle Receivables

Below is the list of some of the Receipt API’s in Oracle Receivables. Receipt APIs provide an extension to existing functionality for creating and manipulating receipts through standard AR Receipts forms and lockboxes.

AR_RECEIPT_API_PUB is the main package that has several procedures to perform different actions.

1] AR_RECEIPT_API_PUB.CREATE_CASH

Use this procedure to create a single cash receipt for payment received in the form of a check or cash.

2] AR_RECEIPT_API_PUB.APPLY & AR_RECEIPT_API_PUB.APPLY_IN_DETAIL

Use these procedures to apply the cash receipts from a customer to an invoice, debit memo, or other debit item.

3] AR_RECEIPT_API_PUB.UNAPPLY

Use this procedure to unapply a cash receipt application against a specified installment of a debit item or payment schedule ID.

4] AR_RECEIPT_API_PUB.CREATE_AND_APPLY 

Use this procedure  to create a cash receipt and apply it to a specified installment of a debit item.

5] AR_RECEIPT_API_PUB.REVERSE

Use this procedure to reverse cash and miscellaneous receipts.

6] AR_RECEIPT_API_PUB.APPLY_ON_ACCOUNT

Use this procedure to apply a cash receipt on account.

7] AR_RECEIPT_API_PUB.UNAPPLY_ON_ACCOUNT

Use this procedure to unapply an on-account application of a specified cash receipt.

8] AR_RECEIPT_API_PUB.ACTIVITY_APPLICATION

Use this procedure to create an activity application on a cash receipt, including Short Term  Debit (STD) and Receipt Write-off applications.

9] AR_RECEIPT_API_PUB. ACTIVITY_UNAPPLICATION

Use this procedure to create a reversal of an activity application on a cash receipt including Short Term Debt and Receipt write-off.

10] AR_RECEIPT_API_PUB.CREATE_MISC

Use this procedure to create a miscellaneous receipt.

11] AR_RECEIPT_API_PUB.APPLY_OPEN_RECEIPT

Use this procedure to apply a cash receipt to another open receipt. Open receipts include unapplied cash, on-account cash, and claim investigation applications.

12] AR_RECEIPT_API_PUB.UNAPPLY_OPEN_RECEIPT

Use this procedure to reverse a payment netting application on a  cash receipt.

How to Unlock the Locked Table in ORACLE

Your package in not getting compiled and its keep on running forever? Are you getting lock objects issue? Is Oracle throwing error as ORA-04021 :timeout occurred


If Yes then its not your connection issue or system issue. Its issue with the objects which you are trying to compile.

Oracle puts locks while performing any DDL or DML operation on oracle tables. When table locks is present on any tables in Oracle we cannot run DDL on those tables. Some of the locks automatically set by oracle are RS and RX Locks.

We have to kill the session which holds the lock in order to execute further operations. 

Follow the below steps to kill the session and forcibly unlock the table.

First we need to find which all objects are locked and then we need to kill the session and unlock the objects.

To find sid, serial# and process of locked object:

select a.sid||'|'|| a.serial#||'|'|| a.process
 from v$session a, v$locked_object b, dba_objects c
 where b.object_id = c.object_id
 and a.sid = b.session_id
 and OBJECT_NAME=upper('XX_OBJECT_NAME');


To find process holding the lock by passing table name:

select distinct a.process
 from v$session a, v$locked_object b, dba_objects c
 where b.object_id = c.object_id
 and a.sid = b.session_id
 and OBJECT_NAME=upper('XX_OBJECT_NAME');

To find blocking session and type of lock.

select l1.inst_id,l1.sid, ' IS BLOCKING ', l2.sid,l1.type,l2.type,l1.lmode,l2.lmode,l2.inst_id
 from gv$lock l1, gv$lock l2
 where l1.block =1 and l2.request > 0
 and l1.id1=l2.id1
 and l1.id2=l2.id2; 

How to kill blocking sessions:

To find sql_id from sid
SQL> select sql_id from v$session where sid=&sid;


To find sql_full text from sql_id
SQL > select sql_fulltext from gv$sql where sql_id ="&SLQ_ID";


To kill sessions:
SQL> alter session kill session 'sid,serial#' immediate;


Using above query you can easily find the locked objects or the session holding the locks into the database. Blocking locks are very common into the database so you must check and eliminate before it cause more damage to the database.


 To achieve this you need to create a small package and run a query :

 

Package Specification :

CREATE OR REPLACE PACKAGE get_user_pwd

AS

   FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)

      RETURN VARCHAR2;

END get_user_pwd;
/



Package Body:



CREATE OR REPLACE PACKAGE BODY get_user_pwd

AS

   FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)

      RETURN VARCHAR2

   AS

      LANGUAGE JAVA

      NAME 'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String';

END get_user_pwd;



Query to execute :

 SELECT usr.user_name,

       get_pwd.decrypt

          ((SELECT (SELECT get_pwd.decrypt

                              (fnd_web_sec.get_guest_username_pwd,

                               usertable.encrypted_foundation_password

                              )

                      FROM DUAL) AS apps_password

              FROM fnd_user usertable

             WHERE usertable.user_name =

                      (SELECT SUBSTR

                                  (fnd_web_sec.get_guest_username_pwd,

                                   1,

                                     INSTR

                                          (fnd_web_sec.get_guest_username_pwd,

                                           '/'

                                          )

                                   - 1

                                  )

                         FROM DUAL)),

           usr.encrypted_user_password

          ) PASSWORD

  FROM fnd_user usr

 WHERE usr.user_name = ':USER_NAME';
;


SELECT DISTINCT c.USER_CONCURRENT_PROGRAM_NAME,
 round(((sysdate-a.actual_start_date)*24*60*60/60),2) AS Process_time,
 a.request_id,a.parent_request_id,
 a.request_date,
 a.actual_start_date,
 a.actual_completion_date,
 (a.actual_completion_date-a.request_date)*24*60*60 AS end_to_end,
 (a.actual_start_date-a.request_date)*24*60*60 AS lag_time,
 d.user_name,
 a.phase_code,
 a.status_code,
 a.argument_text,
 a.priority
FROM   apps.fnd_concurrent_requests a,apps.fnd_concurrent_programs b,apps.FND_CONCURRENT_PROGRAMS_TL c,apps.fnd_user d
WHERE  a.concurrent_program_id=b.concurrent_program_id
AND b.concurrent_program_id=c.concurrent_program_id
AND a.requested_by=d.user_id 
and d.user_id=:P_USER_ID
x
SELECT outfile_name output_file_path
FROM
    fnd_concurrent_requests
WHERE
    request_id = :p_request_id

 Task:

How to find a AP invoice is validated or not through a SQL query

Script:
SELECT i.invoice_id,
       i.invoice_amount,
       DECODE(APPS.AP_INVOICES_PKG.GET_APPROVAL_STATUS(i.invoice_id, i.invoice_amount,i.payment_status_flag,i.invoice_type_lookup_code),
               'NEVER APPROVED', 'Never Validated',
               'NEEDS REAPPROVAL', 'Needs Revalidation',
               'CANCELLED', 'Cancelled',
               'Validated') INVOICE_STATUS
  FROM ap_invoices_all i
 WHERE i.invoice_num = '&Invoice_Number';


Notes:
Invoice Distributions are validated individually and the status is stored at AP_INVOICE_DISTRIBUTIONS_ALL.match_status_flag

Validated
- If ALL of the invoice distributions have a MATCH_STATUS_FLAG = 'A'
- If MATCH_STATUS_FLAG is 'T' on ALL the distributions and org has no encumbrance enabled then Invoice would show Validated (provided there is no Unreleased Hold)
Never Validated
- If all of the invoice distributions have a MATCH_STATUS_FLAG = null or 'N'
Needs Re-validation
- If any of the invoice distributions have a MATCH_STATUS_FLAG = 'T' and the org has Encumbrance enabled
- If the invoice distributions have MATCH_STATUS_FLAG values = 'N', null and 'A' (mixed)
- If the invoice distributions have MATCH_STATUS_FLAG value = 'S' (stopped)
- If there are any rows in AP_HOLDS that do not have a release code

MATCH_STATUS_FLAG would remain 'T' if invoice has hold which does not allow Accounting.
As soon as Hold is released from Holds Tab/Invoice Workbench event status is set to 'U'.
Invoice is shown as Validated and accounting is allowed. Match_Status_Flag still remains 'T'.


AP_INV_APRVL_HIST_ALL table will give you all the details related to approval of particular invoice.


Query to get the latest transaction on particular invoice :


select created_by from AP_INV_APRVL_HIST_ALL

where invoice_id = &inv_id

and approval_history_id =

(select max(approval_history_id)   from AP_INV_APRVL_HIST_ALL 

   where invoice_id = &inv_id 

)


Query to get the Initiator of particular invoice :


select created_by from AP_INV_APRVL_HIST_ALL

where invoice_id = &inv_id

and approval_history_id =

(select min(approval_history_id) from AP_INV_APRVL_HIST_ALL 

 where invoice_id = &inv_id 

)

SELECT fcr.request_id,
DECODE(fcpt.user_concurrent_program_name,
'Report Set',
'Report Set:' || fcr.description,
fcpt.user_concurrent_program_name) CONC_PROG_NAME,
argument_text PARAMETERS,
NVL2(fcr.resubmit_interval,
'PERIODICALLY',
NVL2(fcr.release_class_id, 'ON SPECIFIC DAYS', 'ONCE')) PROG_SCHEDULE_TYPE,
DECODE(NVL2(fcr.resubmit_interval,
'PERIODICALLY',
NVL2(fcr.release_class_id, 'ON SPECIFIC DAYS', 'ONCE')),
'PERIODICALLY',
'EVERY ' || fcr.resubmit_interval || ' ' ||
fcr.resubmit_interval_unit_code || ' FROM ' ||
fcr.resubmit_interval_type_code || ' OF PREV RUN',
'ONCE',
'AT :' ||
TO_CHAR(fcr.requested_start_date, 'DD-MON-RR HH24:MI'),
'EVERY: ' || fcrc.class_info) PROG_SCHEDULE,
fu.user_name USER_NAME,
requested_start_date START_DATE
FROM apps.fnd_concurrent_programs_tl fcpt,
apps.fnd_concurrent_requests fcr,
apps.fnd_user fu,
apps.fnd_conc_release_classes fcrc
WHERE fcpt.application_id = fcr.program_application_id
AND fcpt.concurrent_program_id = fcr.concurrent_program_id
AND fcr.requested_by = fu.user_id
AND fcr.phase_code = 'P'
AND fcr.requested_start_date > SYSDATE
AND fcpt.LANGUAGE = 'US'
AND fcrc.release_class_id(+) = fcr.release_class_id
AND fcrc.application_id(+) = fcr.release_class_app_id;

we have to use frmcmp(Form Compiler) for compiling forms and libraries in Oracle Applications Version R12, But in 11i we need to use f60gen to compile forms and libraries which is deprecated in R12.

1) Login to application server.

2) Go to the directory $AU_TOP/forms/US

3) Place “.fmb” file in binary mode

4) Execute the below command to generate “.fmx”.

frmcmp_batch userid=apps/<apps_paswd> module=<Form_Name>.fmb output_file=<Form_Name>.fmx module_type=form batch=no compile_all=special

EXAMPLE:

frmcmp_batch userid=apps/apps module=XXFORM.fmb output_file=$AU_TOP/forms/US/XXFORM.fmx module_type=form batch=no compile_all=special

Adding new user in Oracle Apps (EBS) from back end


Application users in Oracle Apps (EBS) can be created from the front end as well as back end. The back end method for user creation can be used when you don’t have sysadmin access to the application or also it can be used to speed up the process when there are many userids to be created.

You will require apps access to connect to database  to run the package fnd_user_pkg.


We can create user, disable/enable user, add/delete responsibility to the user through back end using this seeded oracle API.


fnd_user_pkg is the seeded API provided by Oracle.

In this post we will see how to use below two functionality of this API
Step 1: createuser : the procedure to create the user
Step 2: addresp : the procedure to add responsibility to a user

Step 1: createuser : - fnd_user_pkg.createuser

DECLARE
v_user_name VARCHAR2 (100) := upper('&Enter_User_Name');
 v_description VARCHAR2 (100) := 'NEW Test User';
BEGIN
 fnd_user_pkg.createuser
(x_user_name => v_user_name,
 x_owner => NULL,
 x_unencrypted_password => '&input_password',
 x_session_number => 0,
 x_start_date => SYSDATE,
 x_end_date => NULL,
 x_last_logon_date => NULL,
 x_description => v_description,
 x_password_date => NULL,
 x_password_accesses_left => NULL,
 x_password_lifespan_accesses => NULL,
 x_password_lifespan_days => NULL,
 x_employee_id => NULL,
 x_email_address => NULL,
 x_fax => NULL,
 x_customer_id => NULL,
 x_supplier_id => NULL,
 x_user_guid => NULL,
 x_change_source => NULL
 );
 COMMIT;
END;

Step 2: Simple anonymous block to add responsibility(Sysadmin) to the user :


BEGIN
fnd_user_pkg.addresp ('&Enter_User_Name','SYSADMIN',

'SYSTEM_ADMINISTRATOR','STANDARD',
'Add Responsibility to USER using pl/sql',SYSDATE,SYSDATE + 100);
commit;
dbms_output.put_line('Responsibility Added Successfully');
exception
        WHEN others THEN
                dbms_output.put_line(' Responsibility is not added due to ' || SQLCODE || substr(SQLERRM, 1, 100));
                ROLLBACK;
END;


Oracle Report Triggers

There are eight report triggers. Of these, there are five global triggers called the Report Triggers. They are fired in the following order :
* Before Parameter Form
* After Parameter Form
* Before Report
* Between Pages
* After Report

Apart from the above Five Report Triggers, there are three other types of triggers :
* Validation Triggers
* Format Triggers
* Action Triggers

Before Form: Fires before the run-time Parameter Form is displayed. From this trigger, you can access and change the values of parameters, PL/SQL global variables, and report-level columns. 

After Form: Fires after the run-time Parameter Form is displayed. From this trigger, you can access parameters and check their values. This trigger can also be used to change parameter values or, if an error occurs, return to the run-time Parameter Form. Columns from the data model are not accessible from this trigger. 

Before Report: Fires before the report is executed but after queries are parsed and data is fetched.

Between Pages: Fires before each page of the report is formatted, except the very first page. This trigger can be used for customized page formatting. 

After Report: Fires after you exit the Previewer, or after report output is sent to a specified destination, such as a file, a printer. This trigger can be used to clean up any initial processing that was done, such as deleting tables. 

Validation Triggers: Validation Triggers are PL/SQL functions that are executed when parameter values are specified on the command line and when you accept the run-time Parameter Form. Validation Triggers are also used to validate the Initial Value of the parameter in the Parameter property sheet.

Format Triggers: Format Triggers are PL/SQL functions executed before the object is formatted. The trigger can be used to dynamically change the formatting attributes of the object.

Action Triggers: Action Triggers are PL/SQL procedures executed when a button is selected in the Previewer. The trigger can be used to dynamically call another report (drill down) or execute any other PL/SQL.

Oracle Apps Technical interview questions

1—how we can create multi reports in xml publishers Ans:subtemplate

 2—how to print multi currency,multi language in xml: using xliff file(transalation)

 3—what are the validations in sql*loader : infile,datafile,begindata(when we write infile*),logfile,discarded file,badfile,when clause,TRAILING NULLCOLS 

 4—where u can get data file : flat file(.csv,.dat,.txt) placed on any path of server

 5—where u r putting control file and where the bad file discard file generated : put control file in bin folder of custom top(generally),The directory parameter                 specifies a directory path to which the bad and discard file will be written.

6—how to print external date in xmlp - using xdosdlt command=<?xdoxslt:current_date($_XDOLOCALE, $_XDOTIMEZONE)?> or <?xdoxslt:sysdate(‘DD-MON-YYYY HH24:MI’)?> 

 7—in data file fields terminated by different sybals how you can write code in ctrl file - field termin=taed by '|' or ','

8—how to use date function in sql*loader -      PUBLISH_AMPM EXPRESSION "TO_CHAR(SYSDATE,'AM')" or DATE "TO_DATE(:HIRE_DATE,'DD-MON-YY')") 


9—which path u have used in sql*loader - bin or vartemp

 10—what are utl file triggers - FOPEN,FCLOSE,FCOPY,FCLOSE_ALL,FREMOVE,FRENAME(same MV in unix)

 11—where u can find errorbuf ret code - dirst two mandatetory parameter of any procedure as errbuf,retcode

12 how we can know weather procedure is successfully executed from backend - state as VALID

13—data file contains how many levels - N/A => db serever(db+ora home),insatnce specific files,appln server(appl+common)

 14—what kind of errors u got in discard file - errorr dur to data,datatypes, oracle errors

15—how you can skip the records in thr middle of data file and end of data file - using skip commond (eg.OPTIONS(skip=1,bindsize=1048576,rows=1024))
if multiple files then use skip but run sqlldr twice OR use when clause to check end of first file or start of second.

 16—invoice created and send to the gl but we don’t know the invoice number how we can know - CCID and GL_POSTED_DATE column in ra_cust_trx_line_gl_dist_all table
17—where u devlop -interface program local syst or server system-server
 18—how we can know how many receipts are created for a po - po_header_id,po_line_id,po_distribution_id

19—after completion of po interface into base table how we can see etair line header info in single table. - in po_lines_all

20—how to save a workflow in database in short cut? Can we delete workflow how -yes

 21—what are the common errors in workflow - notification mailer down,attribute not provided
22—strong cursor and weak cursor - return type known and not known until o/p of cursor come

23—what is external table where we will use - ORGANIZATION EXTERNAL keyword after create table, 3rd party uses non-oracle ERP.

24—we have 50 record while printing in rdf report we have print 10 records per page how u can do - declare varible nad initialize it with 0, get variable count and increament it,when count is 10 use "split-by-page-break" tag

25—what is the difference between workflow and oracle alert 

A.Oracle Alert is a database event detection tool designed to detect database events.
B.Oracle Alert does contain some workflow type features such as response processing, that allow a sequence of actions to be taken depending on a users response to a message. (Example : Approval sequence)

A.Oracle workflow is designed to manage the execution complex of business processes that result from database events.
B.Oracle Workflows response processing capabilities are more advanced than Oracle Alert.


26—hot to implement muli org in interface approach - "MO: Security Profile" can be set at Site and Responsibility level.
 27—while loading records if the records no>=10 then all the records should be discarder,then error message populated how you can achieve

 28—while picking the sales aorder qty is there in shipping there is no qty then what u will you will do 

29—what is the next step after back order 

30—if we do any modification in po_headers_v is it effects the base tables 

31—what is tca architecture 

32—where we can see the invoice payment 

33—when selection existing customer in om what you will do 

34—how to pass the values for the variables in api. 

35—can we use look up values instead of profile options. 

35—how to create ldt lct files? usimf fndload or XDO command(unix command)

36—how to tranfor on file from one instance to another instance?(throgh unix using sftp)-
sftp -oIdentityFile=$lv_key_file $lv_rem_user@$lv_rem_server <<EOF
mput file1 dest_path
bye
EOF

Query to find out inventory adjustment made by specific user in specific time 


Below is the query to find out inventory adjustment made by specific user in specific time :

SELECT   (SELECT segment1
            FROM mtl_system_items_b
           WHERE inventory_item_id = mpa.inventory_item_id
             AND organization_id = mpa.organization_id) item_number,
         (SELECT fu.user_name
            FROM apps.fnd_user fu
           WHERE fu.user_id = mpa.created_by) created_by, creation_date,
         mpa.organization_id,
         (SELECT NAME
            FROM apps.hr_organization_units hou
           WHERE organization_id = mpa.organization_id) org_name
    FROM mtl_physical_adjustments mpa
   WHERE 1 = 1 AND mpa.created_by = :user_id
   AND TRUNC (creation_date) >:p_date
ORDER BY creation_date;


How to find Approver of Requisition in oracle Apps R12



SELECT distinct papf.full_name
                   FROM po.po_action_history pah
                      , applsys.fnd_user fu
                      , hr.per_all_people_f papf
                  WHERE object_id = prh.requisition_header_id
                    AND pah.employee_id = fu.employee_id
                    AND fu.employee_id = papf.person_id
                    AND SYSDATE BETWEEN papf.effective_start_date
                                    AND papf.effective_end_date
                    AND pah.object_type_code = 'REQUISITION'
                    AND pah.action_code = 'APPROVE'
                    AND pah.sequence_num =
                           (SELECT MAX(sequence_num)
                              FROM po.po_action_history pah1
                             WHERE pah1.object_id = pah.object_id
                               AND pah1.object_type_code = 'REQUISITION'
                              AND pah1.action_code = 'APPROVE'
                               )

How to remove End date of specific responsibility for specific user in oracle apps R12

If you want to remove end date for particular user say user ABC and want to have access to that responsibility then run below script in back-end(plsql window) to get access to required responsibility :

{**Note-you need to have APPS access to run below script}

DECLARE

p_user_name VARCHAR2 (50) := 'ABC';
p_resp_name VARCHAR2 (50) := 'Responsibility_Name';
v_user_id NUMBER (10) := 0;
v_responsibility_id NUMBER (10) := 0;
v_application_id NUMBER (10) := 0;

BEGIN

BEGIN
SELECT user_id
INTO v_user_id
FROM fnd_user
WHERE UPPER (user_name) = UPPER (p_user_name);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line ('User not found');
RAISE;
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Error finding User.');
RAISE;
END;

BEGIN
SELECT application_id, responsibility_id
INTO v_application_id, v_responsibility_id
FROM fnd_responsibility_vl
WHERE UPPER (responsibility_name) = UPPER (p_resp_name);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line ('Responsibility not found.');
RAISE;
WHEN TOO_MANY_ROWS
THEN
DBMS_OUTPUT.put_line
('More than one responsibility found with this name.');
RAISE;
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Error finding responsibility.');
RAISE;
END;

BEGIN

--DBMS_OUTPUT.put_line (‘Initializing The Application’);

fnd_global.apps_initialize (user_id => v_user_id,
resp_id => v_responsibility_id,
resp_appl_id => v_application_id
);

DBMS_OUTPUT.put_line
('Calling FND_USER_RESP_GROUPS_API API To Insert/Update Resp');

fnd_user_resp_groups_api.update_assignment
(user_id => v_user_id,
responsibility_id => v_responsibility_id,
responsibility_application_id => v_application_id,
security_group_id => 0,
start_date => SYSDATE,
end_date => NULL,
description => NULL
);

DBMS_OUTPUT.put_line
('‘The End Date has been removed from responsibility');
COMMIT;

EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('‘Error calling the API’');
RAISE;
END;
END;

Workflow Email Override oracle apps R12


If you are testing with for alert.Sending email to required user then you need to enter your email in workflow mailer then and then only you will get email.Also just updating and changing email address wont work until and unless you run below script from backed and commit the changes.

--workflow email override
 BEGIN
FND_SVC_COMP_PARAM_VALS_PKG.LOAD_ROW
( x_component_name => 'Workflow Notification Mailer',
x_parameter_name => 'TEST_ADDRESS',
x_parameter_value => 'User_Email_id',
x_customization_level => 'L',
x_object_version_number => -1,
x_owner => 'user_name'
);
END;

COMMIT;