Delete concurrent program from back-end
DECLARE
prog_short_name VARCHAR2(240);
appl_short_name VARCHAR2(240);
BEGIN
prog_short_name := 'XXCUSTDET'; --Concurrent Program Short name
appl_short_name := 'PO'; --Application Short name
--Checking for program and executable is exist or not
IF fnd_program.program_exists (prog_short_name, appl_short_name) AND
fnd_program.executable_exists (prog_short_name, appl_short_name)
THEN
--deleting the program
fnd_program.delete_program(prog_short_name, appl_short_name);
--deleting the executable
fnd_program.delete_executable(prog_short_name, appl_short_name);
COMMIT;
DBMS_OUTPUT.PUT_LINE (prog_short_name || ' deleted successfully');
ELSE
DBMS_OUTPUT.PUT_LINE (prog_short_name || ' not found');
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('Error: ' || SQLERRM);
END;