Monday, October 26, 2015

Delete concurrent program and Executable through backed

BEGIN
fnd_program.delete_program('program short name','schema');
fnd_program.delete_executable('program short name','schema');
COMMIT;
END;

Tuesday, October 6, 2015

Add request set to request group from Back end

DECLARE     
   new_requet_group    VARCHAR2 (30)                             := 'test_RG';     
   new_rg_appl_name    VARCHAR2 (240)           := 'Custom Application';     
   old_request_group   VARCHAR2 (30)                       := 'Test_Pavan_RG';     
   ol_rg_appl_name     VARCHAR2 (240)           := 'Custom Application';     
   new_rg_short_name   VARCHAR2 (8);
   CURSOR c1    -- to get the application short name of the new request group     
   IS     
      SELECT fa.application_short_name     
        FROM applsys.fnd_request_groups frg,     
             applsys.fnd_application_tl fat,     
             applsys.fnd_application fa     
       WHERE fat.application_id = frg.application_id     
         AND fa.application_id = fat.application_id     
         AND fat.LANGUAGE = 'US'     
         AND frg.request_group_name = new_requet_group     
         AND fat.application_name = new_rg_appl_name;
   CURSOR c2     
         -- to get the concurrent programs of the  old or parent request group     
            (     
      request_group_name_var   IN   VARCHAR2,     
      application_name_var     IN   VARCHAR2     
   )     
   IS     
      SELECT fcp.concurrent_program_name, fat1.application_name     
        FROM applsys.fnd_request_groups frg,     
             applsys.fnd_application_tl fat,     
             applsys.fnd_application_tl fat1,     
             applsys.fnd_request_group_units fgu,     
             applsys.fnd_concurrent_programs_tl fcpt,     
             applsys.fnd_concurrent_programs fcp     
       WHERE fat.application_id = frg.application_id     
         AND fgu.request_group_id = frg.request_group_id     
         AND fcpt.concurrent_program_id = fgu.request_unit_id     
         AND fcp.concurrent_program_id = fcpt.concurrent_program_id     
         AND fcpt.application_id = fat1.application_id     
         AND fat.LANGUAGE = fcpt.LANGUAGE     
         AND fat1.LANGUAGE = fat.LANGUAGE     
         AND fat.LANGUAGE = 'US'     
         AND fgu.request_unit_type = 'P'     
         AND frg.request_group_name = request_group_name_var     
         AND fat.application_name = application_name_var;
   CURSOR c3     -- to get the request set of the  old or parent request group     
            (     
      request_group_name_var   IN   VARCHAR2,     
      application_name_var     IN   VARCHAR2     
   )     
   IS     
      SELECT frst.request_set_name, fat1.application_short_name     
        FROM applsys.fnd_request_groups frg,     
             applsys.fnd_application_tl fat,     
             applsys.fnd_application fat1,     
             applsys.fnd_request_group_units fgu,     
             applsys.fnd_request_sets frst     
       WHERE fat.application_id = frg.application_id     
         AND fgu.request_group_id = frg.request_group_id     
         AND frst.request_set_id = fgu.request_unit_id     
         AND frst.application_id = fat1.application_id     
         AND fat.LANGUAGE = 'US'     
         AND fgu.request_unit_type = 'S'     
         AND frg.request_group_name = request_group_name_var     
         AND fat.application_name = application_name_var;
   prg_name_var        applsys.fnd_concurrent_programs.concurrent_program_name%TYPE;     
   prg_app_name_var    applsys.fnd_application_tl.application_name%TYPE;     
   set_name_var        applsys.fnd_request_sets_tl.user_request_set_name%TYPE;     
   set_app_name_var    applsys.fnd_application_tl.application_name%TYPE;     
BEGIN     
   OPEN c1;
   IF c1%ISOPEN     
   THEN     
      LOOP     
         FETCH c1     
          INTO new_rg_short_name;
         EXIT WHEN c1%NOTFOUND;     
      END LOOP;     
   END IF;
   OPEN c2 (old_request_group, ol_rg_appl_name);
   IF c2%ISOPEN     
   THEN     
      LOOP     
         FETCH c2     
          INTO prg_name_var, prg_app_name_var;
         EXIT WHEN c2%NOTFOUND;     
         ---DBMS_OUTPUT.put_line (prg_name_var || '---' || prg_app_name_var);     
         begin     
   fnd_program.add_to_group (prg_name_var,     
                                   prg_app_name_var,     
                                   new_requet_group,     
                                   new_rg_appl_name     
                                  );     
              
         EXCEPTION     
   WHEN OTHERS     
   THEN     
   DBMS_OUTPUT.PUT_LINE ('Error in attaching '|| prg_name_var ||' to equest group :-' || SQLERRM);     
   END;
      END LOOP;     
   END IF;     
   OPEN c3 (old_request_group, ol_rg_appl_name);
   IF c3%ISOPEN     
   THEN     
      LOOP     
         FETCH c3     
          INTO set_name_var, set_app_name_var;
         EXIT WHEN c3%NOTFOUND;     
        -- DBMS_OUTPUT.put_line (set_name_var || '---' || set_app_name_var);     
  begin     
           fnd_set.add_set_to_group (request_set            => set_name_var,     
                                   set_application        => set_app_name_var,     
                                   request_group          => new_requet_group,     
                                   group_application      => new_rg_short_name);     
            
   EXCEPTION     
   WHEN OTHERS     
   THEN     
     DBMS_OUTPUT.PUT_LINE ('Error in attaching '|| set_name_var ||' to equest group :-' || SQLERRM);     
   END;                             
         END LOOP;     
   END IF;     
END;

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;