Thursday, October 1, 2015

Submit request set thorugh backend

DECLARE
   l_request_set_exist   BOOLEAN := FALSE;
   l_request_id          INTEGER := 0;
   l_set_mode            BOOLEAN := FALSE;
   l_CONC_PROG_SUBMIT    BOOLEAN := FALSE;
   srs_failed            EXCEPTION;
   submitprog_failed     EXCEPTION;
   setmode_failed        EXCEPTION;
   submitset_failed      EXCEPTION;
   l_start_date          VARCHAR2 (250);
   l_req_data            VARCHAR2 (10);
   l_wait_for_req        BOOLEAN;
   l_phase               VARCHAR2 (100);
   l_status              VARCHAR2 (100);
   l_dev_phase           VARCHAR2 (100);
   l_dev_status          VARCHAR2 (100);
   l_message             VARCHAR2 (4000);
  
BEGIN
      l_set_mode := fnd_submit.set_mode (FALSE);
      IF (NOT l_set_mode)
      THEN
         RAISE setmode_failed;
      END IF;
       l_req_data := fnd_conc_global.request_data;
      IF (l_req_data IS NOT NULL)
      THEN
         p_status := 'N';
         RETURN;
      END IF;

      l_request_set_exist :=
         FND_SUBMIT.set_request_set (application   => 'OFA', -- Application short name
                                     request_set   => 'FNDRSSUB46' -- Request set shot name
          );
      IF (NOT l_request_set_exist)
      THEN
          RAISE srs_failed;
      END IF;
       dbms_output.put_line('Calling submit program first stage');
      l_conc_prog_submit :=
         fnd_submit.submit_program ('OFA',  -- Application short name
                                    'FAMAPT', -- Concurrent program shot name
                                    'STAGE10', -- Stage
                                    'FA CROP', --parameter for concurrent program
                                    'NORMAL' -- --parameter for concurrent program
         );
    
      IF (NOT l_conc_prog_submit)
      THEN
         RAISE submitprog_failed;
      END IF;
   dbms_output.put_line('Calling submit program second stage');
      l_conc_prog_submit :=
         fnd_submit.submit_program ('OFA', -- Application short name
                                    'FAS824',  -- Concurrent program shot name
                                    'STAGE20', -- Stage
                                    'FA CROP', --parameter for concurrent program
         );
      IF (NOT l_conc_prog_submit)
      THEN
         RAISE submitprog_failed;
      END IF;
      l_request_id := fnd_submit.submit_set (NULL, FALSE);
   
      COMMIT;
      IF (l_request_id = 0)
      THEN
         RAISE submitset_failed;
      END IF;

      l_wait_for_req :=
         fnd_concurrent.wait_for_request (request_id   => l_request_id,
                                          interval     => 2,
                                          max_wait     => 120,
                                          phase        => l_phase,
                                          status       => l_status,
                                          dev_phase    => l_dev_phase,
                                          dev_status   => l_dev_status,

EXCEPTION
   WHEN setmode_failed
   THEN
      dbms_output.put_line('Call to set mode failed');
   WHEN srs_failed
   THEN
      dbms_output.put_line('Call to set_request_set failed');
   WHEN submitprog_failed
   THEN
     dbms_output.put_line('Call to submit_program failed');
   WHEN submitset_failed
   THEN
      dbms_output.put_line( 'Call to submit_set failed');
   WHEN OTHERS
   THEN
      dbms_output.put_line('Request set submission failed');
     
END; 

1 comment:

  1. hello i have a problem in fnd_concurrent.wait_for_request API, i'm execute a concurrent program that call a request set, but when i excetue a concurrent progrma the waitng not end.

    ReplyDelete