EBS:请求组API

1、判断请求组是否存在函数:

FND_PROGRAM.request_group_exists() 

返回:BOOLEAN类型,TRUE/FALSE 。

参数:

(1)、request_group: 请求组名称。

(2)、application:请求组的应用简称,如:BOM 物料清单系统

2、增加请求组过程

FND_PROGRAM.request_group()

参数:

(1)、request_group: 请求组名称。

(2)、application:请求组的应用简称,如:BOM 物料清单系统

(3)、code: 请求代码,默认为空

(4)、description: 请求组说明,选填。 

例子: 复制四个请求组。


/*********************
** 1、导入请求组API 
****/
declare 
  v_count number;
  CURSOR c_grp is 
  select frg.application_id,
         (select fa.application_short_name from 
         apps.fnd_application_vl fa 
         where fa.application_id = frg.application_id
         )as application_short_name,
         frg.request_group_id,
         frg.request_group_name,
         frg.request_group_code,
         frg.description 
  from apps.fnd_request_groups frg 
  where frg.REQUEST_GROUP_NAME in ('MRP_MU',
        'PO_KEY_RG',
        'OM_KEY_RG',
        'INV_KEY_RG'
        );
   v_new_request_group_name fnd_request_groups.REQUEST_GROUP_NAME%type;
BEGIN
  FOR R1 IN C_GRP LOOP
    -- 在原请求组名后加“_ou”结尾。
     v_new_request_group_name := r1.request_group_name ||'_OU' ;
    -- 请求组命名规则 : 为业事部或子公司提供请求组时,以"_OU"结尾 。
    -- 导入请求组(不存在则导入,存在则更新)
    if FND_PROGRAM.request_group_exists(request_group => v_new_request_group_name,
	              application => r1.application_short_name ) = false then
        APPS.FND_PROGRAM.request_group(
          request_group => v_new_request_group_name,
          application => r1.application_short_name,
          code => null, --r1.request_group_code,
          description => r1.description ||'(OU)' 
        );
    end if; 
  END LOOP;
END;  

3、在请求组里添加并发程序的API过程

FND_PROGRAM.ADD_TO_GROUP()

参数:

(1)、program_short_name:并发程序代码,例如: CUXBOM0001

(2)、program_application:并发程序的应用简称,如:BOM 物料清单系统

(3)、request_group: 请求组名称,例如: CUX_REQUESTS

(4)、group_application:请求组的应用简称,如:BOM 物料清单系统

3.1、判断并发程序是否存在请求组里的函数

FND_PROGRAM.program_in_group()

返回:BOOLEAN类型,TRUE/FALSE 。

参数:

(1)、program_short_name:并发程序代码,例如: CUXBOM0001

(2)、program_application:并发程序的应用简称,如:BOM 物料清单系统

(3)、request_group: 请求组名称,例如: CUX_REQUESTS

(4)、group_application:请求组的应用简称,如:BOM 物料清单系统

4、在请求组里添加应用程序的API过程

FND_PROGRAM.ADD_APPLICATION_TO_GROUP()

参数:

(1)、application_name:并发程序代码,例如: CUX,

(2)、request_group: 请求组名称,例如: CUX_REQUESTS

(3)、group_application:请求组的应用简称,如:BOM 物料清单系统

4.1、判断应用程序是否存在请求组里的函数,

FND_PROGRAM.application_in_group()

返回:

返回:BOOLEAN类型,TRUE/FALSE 。

参数:

(1)、application_name:并发程序代码,例如: CUX,

(2)、request_group: 请求组名称,例如: CUX_REQUESTS

(3)、group_application:请求组的应用简称,如:BOM 物料清单系统

例子:将指定请求组导入新的请求组。


/**
-----******************************************----
** 2、导入请求组的并发程序清单 
**/

DECLARE v_request_group_name varchar2(150);  -- 请求组名称 
        v_request_group_name_new varchar2(150);  -- 请求组名称 
   CURSOR c_grp is 
  select frg.application_id,
         (select fa.application_short_name from 
         apps.fnd_application_vl fa 
         where fa.application_id = frg.application_id
         )as application_short_name,
         frg.request_group_id,
         frg.request_group_name,
         frg.request_group_code,
         frg.description 
  from apps.fnd_request_groups frg 
  where frg.REQUEST_GROUP_NAME in ('MRP_MU',
        'PO_KEY_RG',
        'OM_KEY_RG'
        );        
        
  CURSOR C_FRGU( P_REQUEST_GROUP_NAME IN VARCHAR2) IS 
--N: 系统管理员>>安全性>>责任>>请求
-- 程序 
SELECT FRG.APPLICATION_ID,  -- 请求组-应用ID 
       FA.APPLICATION_SHORT_NAME, -- 请求组-应用简称
       FA.APPLICATION_NAME,  -- 请求组-应用名称
       FRG.REQUEST_GROUP_ID,  -- 请求组ID 
       FRG.REQUEST_GROUP_NAME,  -- 请求组-名称 
       FRG.DESCRIPTION AS REQUEST_GROUP_DESC, -- 请求组-说明 
       FRG.REQUEST_GROUP_CODE, -- 请求组-代码 
       FRGU.REQUEST_UNIT_TYPE,
       DECODE(FRGU.REQUEST_UNIT_TYPE,'P','程序','S','集',
        'A','应用',FRGU.REQUEST_UNIT_TYPE ) AS "请求-类型",
       FRGU.REQUEST_UNIT_ID, 
       FCP.CONCURRENT_PROGRAM_NAME AS PROGRAM_NAME, -- "请求-名称代码",
       FCP.USER_CONCURRENT_PROGRAM_NAME AS "请求-名称",
       FCP.DESCRIPTION AS "请求-说明",
       FRGU.UNIT_APPLICATION_ID AS "请求-应用ID", 
       FA2.APPLICATION_SHORT_NAME AS "PROGRAM_APPLICATION" ,-- "请求-应用简称",
       FA2.APPLICATION_NAME AS "请求-应用名称"
       --'' AS SS2
  FROM apps.FND_REQUEST_GROUPS frg, -- 请求组
       APPS.FND_APPLICATION_VL FA,  -- 应用程序 
       APPS.FND_REQUEST_GROUP_UNITS FRGU,  -- 请求组单元
       APPS.FND_CONCURRENT_PROGRAMS_VL FCP,  -- 并发程序 
       APPS.FND_APPLICATION_VL FA2  -- 应用程序 
 WHERE FRG.APPLICATION_ID = FA.APPLICATION_ID
   AND FRG.REQUEST_GROUP_ID = FRGU.REQUEST_GROUP_ID
   AND FRGU.REQUEST_UNIT_ID = FCP.CONCURRENT_PROGRAM_ID
   AND FRGU.UNIT_APPLICATION_ID = FCP.APPLICATION_ID
   AND FRGU.UNIT_APPLICATION_ID = FA2.APPLICATION_ID 
 --  AND FRGU.REQUEST_UNIT_TYPE = 'P'  -- P: 程序 
   AND FRG.REQUEST_GROUP_NAME = P_REQUEST_GROUP_NAME  
--   AND FCP.USER_CONCURRENT_PROGRAM_NAME LIKE 'CUX销售订单和订单%' --AS "请求-名称",
-- ORDER BY  FRG.REQUEST_GROUP_NAME,  FCP.USER_CONCURRENT_PROGRAM_NAME

 UNION ALL 
 -- 应用
SELECT FRG.APPLICATION_ID,  -- 请求组-应用ID 
       FA.APPLICATION_SHORT_NAME, -- 请求组-应用简称
       FA.APPLICATION_NAME,  -- 请求组-应用名称
       FRG.REQUEST_GROUP_ID,  -- 请求组ID 
       FRG.REQUEST_GROUP_NAME,  -- 请求组-名称 
       FRG.DESCRIPTION AS REQUEST_GROUP_DESC, -- 请求组-说明 
       FRG.REQUEST_GROUP_CODE, -- 请求组-代码 
       FRGU.REQUEST_UNIT_TYPE,
       DECODE(FRGU.REQUEST_UNIT_TYPE,'P','程序','S','集',
        'A','应用',FRGU.REQUEST_UNIT_TYPE ) AS "请求-类型",
       FRGU.REQUEST_UNIT_ID, 
       FA3.APPLICATION_SHORT_NAME AS PROGRAM_NAME, -- "请求-名称代码",
      -- FCP.USER_CONCURRENT_PROGRAM_NAME AS "请求-名称",
      -- FCP.DESCRIPTION AS "请求-说明",
       FA3.APPLICATION_NAME AS "请求-名称",
       FA3.DESCRIPTION AS "请求-说明",
       FRGU.UNIT_APPLICATION_ID AS "请求-应用ID", 
       FA2.APPLICATION_SHORT_NAME AS "PROGRAM_APPLICATION" ,-- "请求-应用简称",
       FA2.APPLICATION_NAME AS "请求-应用名称"
       --FRGU.*
  FROM apps.FND_REQUEST_GROUPS frg, -- 请求组
       APPS.FND_APPLICATION_VL FA,  -- 应用程序 
       APPS.FND_REQUEST_GROUP_UNITS FRGU,  -- 请求组单元
       --APPS.FND_CONCURRENT_PROGRAMS_VL FCP,  -- 并发程序 
       APPS.FND_APPLICATION_VL FA3,
       APPS.FND_APPLICATION_VL FA2  -- 应用程序 
 WHERE FRG.APPLICATION_ID = FA.APPLICATION_ID
   AND FRG.REQUEST_GROUP_ID = FRGU.REQUEST_GROUP_ID
   AND FRGU.REQUEST_UNIT_ID = FA3.APPLICATION_ID --FCP.CONCURRENT_PROGRAM_ID
 --  AND FRGU.UNIT_APPLICATION_ID = --FCP.APPLICATION_ID
   AND FRGU.UNIT_APPLICATION_ID = FA2.APPLICATION_ID 
   AND FRGU.REQUEST_UNIT_TYPE = 'A'  -- P: 程序 , A:应用, S:集
   AND FRG.REQUEST_GROUP_NAME  = P_REQUEST_GROUP_NAME 

UNION ALL  
-- 程序集 
SELECT FRG.APPLICATION_ID,  -- 请求组-应用ID 
       FA.APPLICATION_SHORT_NAME, -- 请求组-应用简称
       FA.APPLICATION_NAME,  -- 请求组-应用名称
       FRG.REQUEST_GROUP_ID,  -- 请求组ID 
       FRG.REQUEST_GROUP_NAME,  -- 请求组-名称 
       FRG.DESCRIPTION AS REQUEST_GROUP_DESC, -- 请求组-说明 
       FRG.REQUEST_GROUP_CODE, -- 请求组-代码 
       FRGU.REQUEST_UNIT_TYPE,
       DECODE(FRGU.REQUEST_UNIT_TYPE,'P','程序','S','集',
        'A','应用',FRGU.REQUEST_UNIT_TYPE ) AS "请求-类型",
       FRGU.REQUEST_UNIT_ID, 
       FRS.REQUEST_SET_NAME AS PROGRAM_NAME, -- "请求-名称代码",
      -- FCP.USER_CONCURRENT_PROGRAM_NAME AS "请求-名称",
      -- FCP.DESCRIPTION AS "请求-说明",
       FRS.USER_REQUEST_SET_NAME AS "请求-名称",
       FRS.DESCRIPTION AS "请求-说明",
       FRGU.UNIT_APPLICATION_ID AS "请求-应用ID", 
       FA2.APPLICATION_SHORT_NAME AS "PROGRAM_APPLICATION" ,-- "请求-应用简称",
       FA2.APPLICATION_NAME AS "请求-应用名称"
       --FRGU.*
  FROM apps.FND_REQUEST_GROUPS frg, -- 请求组
       APPS.FND_APPLICATION_VL FA,  -- 应用程序 
       APPS.FND_REQUEST_GROUP_UNITS FRGU,  -- 请求组单元
       --APPS.FND_CONCURRENT_PROGRAMS_VL FCP,  -- 并发程序 
      -- APPS.FND_APPLICATION_VL FA3,
       APPS.FND_REQUEST_SETS_VL  FRS,  -- 请求集 
       APPS.FND_APPLICATION_VL FA2  -- 应用程序 
 WHERE FRG.APPLICATION_ID = FA.APPLICATION_ID
   AND FRG.REQUEST_GROUP_ID = FRGU.REQUEST_GROUP_ID
   AND FRGU.REQUEST_UNIT_ID = FRS.REQUEST_SET_ID --FCP.CONCURRENT_PROGRAM_ID
   AND FRGU.UNIT_APPLICATION_ID = FRS.APPLICATION_ID
   AND FRGU.UNIT_APPLICATION_ID = FA2.APPLICATION_ID 
   AND FRGU.REQUEST_UNIT_TYPE = 'S'  -- P: 程序 , A:应用, S:集
   AND FRG.REQUEST_GROUP_NAME = P_REQUEST_GROUP_NAME 
      
 ;
    
BEGIN 
  for r_grp in c_grp loop
  v_request_group_name := r_grp.REQUEST_GROUP_NAME; -- 'MRP_MU';
  v_request_group_name_NEW := v_request_group_name || '_OU';
  
  FOR R_FRGU IN C_FRGU(v_request_group_name) LOOP
    IF R_FRGU.REQUEST_UNIT_TYPE = 'P' THEN
      if FND_PROGRAM.program_in_group (        
        program_short_name => r_frgu.PROGRAM_NAME, 
        program_application => r_frgu.program_application,
        request_group =>  v_request_group_name_new ,
        group_application => r_frgu.APPLICATION_SHORT_NAME
        ) = FALSE THEN  -- 判断不存在时导入
      -- 1、并发程序 
      FND_PROGRAM.ADD_TO_GROUP(
        program_short_name => r_frgu.PROGRAM_NAME, 
        program_application => r_frgu.program_application,
        request_group =>  v_request_group_name_new ,
        group_application => r_frgu.APPLICATION_SHORT_NAME
      );
      END IF; 
    ELSIF  R_FRGU.REQUEST_UNIT_TYPE = 'A' THEN
     IF FND_PROGRAM.application_in_group(
      application_name => r_frgu.PROGRAM_NAME, 
      request_group =>  v_request_group_name_new ,
      group_application => r_frgu.APPLICATION_SHORT_NAME
     ) = FALSE THEN  -- 判断不存在时导入
      -- 2、应用程序 
     FND_PROGRAM.ADD_APPLICATION_TO_GROUP(
      application_name => r_frgu.PROGRAM_NAME, 
      request_group =>  v_request_group_name_new ,
      group_application => r_frgu.APPLICATION_SHORT_NAME
     );
     END IF;
     -- 3、请求集, 没有API过程 
    END IF;  
  END LOOP; 
 end loop; 
  
END; 

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值