/********************************************************************************
*PURPOSE: To delete concurrent program definition and executable from back-end *
*AUTHOR: Shailender Thallam *
*********************************************************************************/
SET SERVEROUTPUT ON;
DECLARE
l_prog_short_name VARCHAR2 (240);
l_exec_short_name VARCHAR2 (240);
l_appl_full_name VARCHAR2 (240);
l_appl_short_name VARCHAR2 (240);
l_del_prog_flag VARCHAR2 (1) := 'Y'; --Set flag whether to delete Concurrent program or not
l_del_exec_flag VARCHAR2 (1) := 'Y'; --Set flag whether to delete executable or not
BEGIN
--
-- set concurrent program and executable short name
--
l_prog_short_name := 'XX_TEST_CP'; -- Concurrent program short name
l_exec_short_name := 'XX_TEST_EXEC'; -- Executable short name
l_appl_full_name := 'XX Custom Application'; -- Application full name
l_appl_short_name := 'XXCUST'; -- Application Short name
--
-- Check if the program exists. if found, delete the program
--
IF fnd_program.program_exists (l_prog_short_name, l_appl_short_name)
AND fnd_program.executable_exists (l_exec_short_name, l_appl_short_name)
THEN
IF l_del_prog_flag = 'Y'
THEN
--
--API call to delete Concurrent Program
--
fnd_program.delete_program (l_prog_short_name, l_appl_full_name);
--
END IF;
--
IF l_del_exec_flag = 'Y'
THEN
--
--API call to delete Executable
--
fnd_program.delete_executable (l_exec_short_name, l_appl_full_name);
--
END IF;
COMMIT;
--
DBMS_OUTPUT.put_line ('Concurrent Program '||l_prog_short_name || ' deleted successfully');
DBMS_OUTPUT.put_line ('Executable '||l_exec_short_name || ' deleted successfully');
--
-- if the program does not exist in the system
--
ELSE
DBMS_OUTPUT.put_line (l_prog_short_name ||' or '||l_exec_short_name|| ' not found');
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Error while deleting: ' || SQLERRM);
END;
To Delete XMLP Publisher Template and Data Definition, see this article “How to Delete XML Publisher Definition and Template“