• Oracle EBS APP-FND-02938 多组织例程初始化产品报错


    Oralce EBS R12中引入了MOAC的控制,所有多OU的表对象都添加了数据库VPD的控制策略,需要访问这些对象中的数据,首先需要进行多组织环境的初始化,但是如果客户化的应用中也需要具备多OU的能力,那也需要按照EBS的规范来创建数据库对象,同时访问客户化数据库对象数据时也需要对客户化应用进行多组织环境的初始化.

    如下所示初始化我的客户化应用CUX:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    BEGIN
      MO_GLOBAL.init('CUX');
    END;
     
    ORA-20001: SQL_PLSQL_ERROR: N, ROUTINE, MO_GLOBAL.INIT, N, ERRNO, -20001, N, REASON,
    ORA-20001: SQL_PLSQL_ERROR: N, ROUTINE, MO_GLOBAL.SET_ORG_ACCESS, N, ERRNO, -20001, N, REASON,
    ORA-20001: APP-FND-02938: 多组织例程初始化产品:  &PRODUCT 的会话失败。请通知您的支持代表。
    ORA-06512: 在 "APPS.FND_MESSAGE", line 509
    ORA-06512: 在 "APPS.MO_GLOBAL", line 36
    ORA-06512: 在 "APPS.MO_GLOBAL", line 757
    ORA-06512: 在 "APPS.MO_GLOBAL", line 700
    ORA-06512: 在 line 3

    运行下面的SQL来检查一下客户化应用的情况:

    1
    2
    3
    4
    5
    6
    7
    8

    SELECT COUNT(*)
      FROM fnd_mo_product_init t
     WHERE application_short_name = 'CUX'
       AND status = 'Y';
     
      COUNT(*)
    ----------
             0

    从上面的SQL结果可以看出由于客户化应用并没有注册为多组织的应用,因此初始化失败,通过下面的脚本来注册客户化应用使得多组织访问有效:

    1
    2
    3
    4
    5
    6

    BEGIN
      fnd_mo_product_init_pkg.register_application('CUX',
                                                   'SYSADMIN',
                                                   'Y');
      COMMIT;
    END;

    上面语句执行后,客户化应用就具备了多组织访问的能力了,再次进行多组织的初始化就没有问题了。

    当然如果你想去掉客户化应用的多组织能力,可以运行下面的代码来移除它:

    1
    2
    3
    4

    BEGIN
      fnd_mo_product_init_pkg.remove_application('CUX');
      COMMIT;
    END;

     

     

    土豆君
  • 相关阅读:
    [C++空间分配]new运算符、operator new、placement new的区别于联系
    [C++STL]stl源码剖析
    [C++基础]在构造函数内部调用构造函数
    Eclipse Memory Analyzer
    zookeeper 学习 zookeeper下载部署
    Doracle.jdbc.J2EE13Compliant=true
    zookeeper 学习 状态机复制的共识算法
    java -d
    轮盘选择法
    OPENJDK 源码编译
  • 原文地址:https://www.cnblogs.com/jenrry/p/10006450.html
Copyright © 2020-2023  润新知