首页 > 解决方案 > 输入订单后暂停帐户(消息错误 EBS Oracle)

问题描述

我不知道 EBS Oracle 如何验证此信息,我不知道是什么函数或过程抛出此错误消息:

'ONTOE_PC_CREATE_VIOLATIONHeader orderReason Please, contact the Credit Department'

这里的问题是客户帐户在为他设置订单(输入订单)后被关闭。

涉及的包是这个:OE_PC_CONSTRAINTS_ADMIN_PUB包含这个过程:

PROCEDURE Set_Message
( p_operation           IN VARCHAR2
, p_group_number         IN VARCHAR2
, p_attribute_name       IN VARCHAR2
, p_object_name          IN VARCHAR2
)
IS
   l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
BEGIN

    IF p_operation = OE_PC_GLOBALS.UPDATE_OP THEN
        IF p_attribute_name IS NOT NULL THEN
       IF nvl(p_group_number,-1) = -1 THEN
         FND_MESSAGE.SET_NAME('ONT','OE_PC_UPDATE_FIELD_NO_CONDN');
       ELSE
         FND_MESSAGE.SET_NAME('ONT','OE_PC_UPDATE_FIELD_VIOLATION');
       END IF;
        FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_attribute_name);
    ELSE
       IF nvl(p_group_number,-1) = -1 THEN
         FND_MESSAGE.SET_NAME('ONT','OE_PC_UPDATE_NO_CONDN');
       ELSE
         FND_MESSAGE.SET_NAME('ONT','OE_PC_UPDATE_VIOLATION');
       END IF;
       FND_MESSAGE.SET_TOKEN('OBJECT',p_object_name);
        END IF;
    ELSIF p_operation = OE_PC_GLOBALS.CREATE_OP THEN
       IF nvl(p_group_number,-1) = -1 THEN
         FND_MESSAGE.SET_NAME('ONT','OE_PC_CREATE_NO_CONDN');
       ELSE
         FND_MESSAGE.SET_NAME('ONT','OE_PC_CREATE_VIOLATION');
       END IF;
       FND_MESSAGE.SET_TOKEN('OBJECT',p_object_name);
    ELSIF p_operation = OE_PC_GLOBALS.DELETE_OP THEN
       IF nvl(p_group_number,-1) = -1 THEN
         FND_MESSAGE.SET_NAME('ONT','OE_PC_DELETE_NO_CONDN');
       ELSE
         FND_MESSAGE.SET_NAME('ONT','OE_PC_DELETE_VIOLATION');
       END IF;
       FND_MESSAGE.SET_TOKEN('OBJECT',p_object_name);
    ELSIF p_operation = OE_PC_GLOBALS.CANCEL_OP THEN
       IF nvl(p_group_number,-1) = -1 THEN
         FND_MESSAGE.SET_NAME('ONT','OE_PC_CANCEL_NO_CONDN');
       ELSE
         FND_MESSAGE.SET_NAME('ONT','OE_PC_CANCEL_VIOLATION');
       END IF;
       FND_MESSAGE.SET_TOKEN('OBJECT',p_object_name);
    ELSIF p_operation = OE_PC_GLOBALS.SPLIT_OP THEN
       IF nvl(p_group_number,-1) = -1 THEN
         FND_MESSAGE.SET_NAME('ONT','OE_PC_SPLIT_NO_CONDN');
       ELSE
         FND_MESSAGE.SET_NAME('ONT','OE_PC_SPLIT_VIOLATION');
       END IF;
       FND_MESSAGE.SET_TOKEN('OBJECT',p_object_name);
    END IF;

END Set_Message;

看看这张图片(我还不能上传图片):

图片

你能解释一下这个函数是怎么调用的吗?在什么阶段?我的意思是,请记住订单已设置,然后他们暂停了帐号。

此外,我无法找到消息的另一部分:“标题 orderReason Please, contact the Credit Deparment'”。为什么?它存储在哪里?我认为这是一个串联的消息

标签: sqloracleplsqloracle11goracle-ebs

解决方案


这不是一个编程问题,因为它与 Oracle E-Business Suite 的功能有关。我希望我不会通过回答违反某些 SO 规则。

您的错误来自“处理约束”。您可以在 Order Management Super User 责任下找到这些定义,菜单Setup->Rules->Security->Processing Constraints。作为约束定义的一部分,您也将在那里看到该消息。

该屏幕中定义的约束由 Oracle EBS 编译成名为“OE_%PC%”的 PL/SQL 包。它们是从 Order Management Process Order API 调用的——基本上每当在应用程序中创建、更新、删除或取消销售订单或 RMA 时。


推荐阅读