ITPub博客

首页 > 数据库 > Oracle > Scheduling a Concurrent program

Scheduling a Concurrent program

原创 Oracle 作者:pan_tian 时间:2014-07-02 12:28:53 0 删除 编辑
EBS中的Program是可以根据需求周期性运行的,比如‘Purge Logs and Closed System Alerts’ Program,我们需要每天运行来清理日渐庞大的日志表,周期性运行Program的方法。

路径:Submit Request > Schedule
1.As Soon as Possible:立即运行你的Program


2.Once:在一个具体的时间点上运行Program

3.Periodically:周期的运行你的Program,每分钟/每小时/每天/每周/每月,并制定开始时间和结束时间。

4.On Specific Days:在特定的那几天运行


然后你在Request列表里就能看到你的Scheduled Program。Status为Scheduled,Phase:Pending

或者你用下边脚本,也能看到你的Scheduled Program
select r.request_id,  
       p.user_concurrent_program_name ||
       case 
          when p.user_concurrent_program_name = \'Report Set\' then 
            (select \' - \' || s.user_request_set_name  
              from apps.fnd_request_sets_tl s  
             where s.application_id = r.argument1  
               and s.request_set_id = r.argument2  
               and language = \'US\'
            )  
          when p.user_concurrent_program_name = \'Check Periodic Alert\' then 
            (select \' - \' || a.alert_name  
              from apps.alr_alerts a  
             where a.application_id = r.argument1  
               and a.alert_id = r.argument2  
               and language = \'US\'
            )  
       end concurrent_program_name,  
       decode(c.class_type,  
              \'P\', \'Periodic\',  
              \'S\', \'On Specific Days\',  
              \'X\', \'Advanced\',  
              c.class_type
             ) schedule_type,   
       case 
          when c.class_type = \'P\' then 
            \'Repeat every \' ||  
            substr(c.class_info, 1, instr(c.class_info, \':\') - 1) ||  
            decode(substr(c.class_info, instr(c.class_info, \':\', 1, 1) + 1, 1),  
                   \'N\', \' minutes\',  
                   \'M\', \' months\',  
                   \'H\', \' hours\',  
                   \'D\', \' days\') ||  
            decode(substr(c.class_info, instr(c.class_info, \':\', 1, 2) + 1, 1),  
                  \'S\', \' from the start of the prior run\',  
                  \'C\', \' from the completion of the prior run\')  
          when c.class_type = \'S\' then 
             nvl2(dates.dates, \'Dates: \' || dates.dates || \'. \', null) ||  
             decode(substr(c.class_info, 32, 1), \'1\', \'Last day of month \') ||  
             decode(sign(to_number(substr(c.class_info, 33))),  
                    \'1\',  \'Days of week: \' ||  
                    decode(substr(c.class_info, 33, 1), \'1\', \'Su \') ||  
                    decode(substr(c.class_info, 34, 1), \'1\', \'Mo \') ||  
                    decode(substr(c.class_info, 35, 1), \'1\', \'Tu \') ||  
                    decode(substr(c.class_info, 36, 1), \'1\', \'We \') ||  
                    decode(substr(c.class_info, 37, 1), \'1\', \'Th \') ||  
                    decode(substr(c.class_info, 38, 1), \'1\', \'Fr \') ||  
                    decode(substr(c.class_info, 39, 1), \'1\', \'Sa \'))  
       end schedule,  
    r.requested_start_date next_run,  
       case 
          when p.user_concurrent_program_name != \'Report Set\' and 
               p.user_concurrent_program_name != \'Check Periodic Alert\' then 
               r.argument_text  
       end argument_text,  
       r.hold_flag on_hold,  
       c.date1 start_date,  
       c.date2 end_date,  
       c.class_info, user_name
  from apps.fnd_concurrent_requests r,  
       applsys.fnd_conc_release_classes c,  
       apps.fnd_concurrent_programs_tl p,  
       apps.fnd_user                    usr,
       (SELECT release_class_id,  
               substr(max(SYS_CONNECT_BY_PATH(s, \' \')), 2) dates  ,a
          FROM (select release_class_id,  
                       rank() over(partition by release_class_id order by s) a,  
                       s  
                  from (select c.class_info,  
                               l,  
                               c.release_class_id,  
                               decode(substr(c.class_info, l, 1), \'1\', to_char(l)) s  
                          from (select level l
                                  from dual
                               connect by level <= 31),  
                               apps.fnd_conc_release_classes c  
                         where c.class_type = \'S\')  
                  where s is not null)  
         CONNECT BY PRIOR 
                     (a || release_class_id) = (a - 1) || release_class_id  
        group by release_class_id,a) dates
  where r.phase_code = \'P\' 
    and c.application_id = r.release_class_app_id  
    and c.release_class_id = r.release_class_id  
    and nvl(c.date2, sysdate + 1) > sysdate  
    and c.class_type is not null 
    and p.concurrent_program_id = r.concurrent_program_id  
    and p.application_id = r.program_application_id  
    and p.language = \'US\' 
    and dates.release_class_id(+) = r.release_class_id  
    and usr.user_id = requested_by
  order by requested_by,on_hold, next_run;


转载请注明出处:http://blog.csdn.net/pan_tian/article/details/7699981

======EOF======

<!-- Baidu Button BEGIN -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26687597/viewspace-1203806/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 关于TNS_ADMIN环境变量
下一篇: [Script]Oracle EBS中,如何通过Form,Report的执行文件来查找对应的功能名称,或者如何反向查找
请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2012-02-18

最新文章