Friday, August 16, 2013

Submit Concurrent Program through DB Trigger

CREATE OR REPLACE TRIGGER "APPS"."XX_MERGE_BATCH_TRG"
   AFTER INSERT
   ON xx_merge_batch
   FOR EACH ROW
   WHEN (NEW.batch_status = 'PENDING')
DECLARE
   req_id                                            NUMBER;
   RESULT                                            BOOLEAN;
BEGIN
   RESULT                                                   := fnd_request.set_mode (TRUE);
   req_id                                                   :=
      apps.fnd_request.submit_request ('<CONC_PROG_APPL>'
                                     , '<CONC_PROG_SHORT_NAME>'
                                     , ''
                                     , TO_CHAR (SYSDATE + 30 / 86400, 'DD-MON-YYYY HH24:MI:SS')
                                     , FALSE
                                     , :NEW.batch_id
                                      );

   IF req_id = 0
   THEN
            raise_application_error ( -20160, apps.fnd_message.get);
   END IF;
EXCEPTION
   WHEN OTHERS
   THEN
      NULL;
END;
/