Oracle EBS APP-MRP-22064: 出现内部错误 (mrlups_update_supply,5)

本文详细介绍了如何解决在使用基于内存的计划员时遇到的配置文件问题,特别是关于日历界限内的保留日期设置不正确导致的内部错误。通过切换到系统管理员职责,定位到配置文件并设置正确的地点值,最终成功解决了并发程序失败的问题。

  近来,请提交请求"启动 DRP 供应链计划流程",自动带其它并发请求,其中有一个请求“基于内存的计划员”提示错误,内容如下:

+---------------------------------------------------------------------------+
主计划/MRP 管理系统: Version : 11.5.0 - Development

Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.

MRCNEW module: 基于内存的计划员
+---------------------------------------------------------------------------+

当前的系统时间为 10-06-2011 21:02:22

+---------------------------------------------------------------------------+

Page Length = 59, Page Width = 132

===================================================================
调试模式:禁用
输出至终端:否
变元方法:数据库取记录
跟踪模式:禁用

===================================================================
变元 1 (ORG_ID) = 122
变元 2 (COMPILE_DESIG) = DRP
变元 3 (SNAPSHOT_REQ_ID) = 3271147
变元 4 (BATCH_PROCESS) = 1
变元 5 (IN_PIPE) =
变元 6 (OUT_PIPE) =

===================================================================
配置文件选项 'MRP_CALC_EXCESS_EXCEPT' 的值为 N
配置文件选项 'MRP_FIRM_ORDER_TF' 的值为 Y
配置文件选项 'MRP_RETAIN_DATES_WTIN_CAL_BOUNDARY' 的值为

SELECT  TO_NUMBER(TO_CHAR(MIN(calendar_date),'j')),
TO_NUMBER(TO_CHAR(MAX(calendar_date),'j'))
FROM    bom_calendar_dates
WHERE   calendar_code = :calendar_code
AND    seq_num IS NOT NULL
 AND     exception_set_id = :exception_set_id

装入 工作日日历。请等待 ..
SELECT TO_CHAR(calendar_date, 'j')
FROM   bom_calendar_dates
WHERE  calendar_code = :calendar_code
AND    exception_set_id = :exception_set_id
AND seq_num IS NOT NULL
 ORDER BY calendar_date
装入 工作日日历。请等待 ...

装入 工作日日历。请等待 .                                                   0:00
配置文件选项 'MRP_RETAIN_DATES_WTIN_CAL_BOUNDARY' 的值为

SELECT  TO_NUMBER(TO_CHAR(MIN(period_start_date),'j')),
TO_NUMBER(TO_CHAR(MAX(period_start_date),'j'))
FROM    bom_period_start_dates
WHERE   calendar_code = :calendar_code
 AND     exception_set_id = :exception_set_id

装入 期间。请等待 ..
SELECT TO_CHAR(period_start_date, 'j')
FROM   bom_period_start_dates
WHERE  calendar_code = :calendar_code
AND    exception_set_id = :exception_set_id
  ORDER BY period_start_date
装入 期间。请等待 ...

装入 期间。请等待 .                                                         0:00
选择 org parameters                                                    5    0:01
..选择 files                                                           7    0:00
..选择 物料                                                        3,093    0:00
..选择 MRP_ITEM_SOURCING                                           1,888    0:00
..选择 Components                                                 31,538    0:00
..选择 毛需求                                                        585    0:00
..选择 E_ON_HAND                                                   1,290    0:00
..选择 Low level code                                              3,092    0:00
..选择 MRP_ITEM_SUPPLIERS                                             41    0:00
..已完成 mrursp_update_req_supply_pointers                                  0:00
..已完成 Create transactions tree                                           0:00
.已完成 Load data                                                           0:00
配置文件选项 'MRP_EXPL_DEM_THROUGH_PHANTOM' 的值为 Y
APP-MRP-22064: 出现内部错误 (mrlups_update_supply,5)

原因:当前例行程序遇到指定的内部错误。

措施:请与客户支持代表联系。

gthsk1=2868
gthsk2=4
gthsk3=1
gthsk4=1
gthsk5=1
gthsk6=1
合计内存使用:6484

***** 程序终止 - 基于内存的计划员 *****
+---------------------------------------------------------------------------+
FND_FILE 中日志消息开始
+---------------------------------------------------------------------------+
+---------------------------------------------------------------------------+
FND_FILE 中日志消息结束
+---------------------------------------------------------------------------+


+---------------------------------------------------------------------------+
未请求任何完成选项。


未打印输出文件,因为:
已禁用此报表的打印选项。
并发程序毫无理由地失败返回。

+---------------------------------------------------------------------------+
已完成并发请求
当前的系统时间为 10-06-2011 21:02:23

+---------------------------------------------------------------------------+

 

原因:MRP计算有一个配制文件(MRP:日历界限内的保留日期/MRP:Retain Dates Within Calendar Boundary)没有设置好

 

解决过程:

1.切换到“系统管理员”职责

2.定位到“配制文件”-->“系统”

3.配制文件中输入或查询:MRP:日历界限内的保留日期

4.设置地点值为“是”

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<think>好的,用户遇到了APP-AR-96282错误,原因是p_customer_trx_id为null。我需要先理解这个错误发生的背景。通常在Oracle EBS的应收账款模块中,当调用某个API或执行某个流程时,如果必填的参数没有提供,系统就会抛出这样的错误。p_customer_trx_id应该关联到具体的客户事务处理,比如发票或交易。 首先,用户需要确认在调用相关程序时是否传入了正确的p_customer_trx_id。可能的情况包括:数据导入时该字段缺失,或者代码逻辑中没有正确获取到该ID。检查调用代码或接口文件,确保这个参数被正确赋值。如果是通过并发请求触发的,检查请求参数的配置是否正确。 其次,如果参数确实传入了,但依然报错,可能是传入的值在数据库中不存在。这时候需要验证传入的customer_trx_id是否有效,是否在ra_customer_trx_all表中存在对应的记录。可以写一个查询语句来检查该ID是否存在。 另外,事务处理可能处于不正确的状态,比如未完成或未激活,导致系统无法识别。需要检查ra_customer_trx_all中的状态字段,如complete_flag是否为Y,确保事务处理已经完成。 触发器或验证逻辑的问题也可能导致错误。例如,可能在保存数据时有自定义的触发器检查该字段是否为null。需要审查相关的数据库触发器和应用逻辑,确认是否有额外的验证步骤。 权限问题也不能忽视,用户是否有权限访问该customer_trx_id相关的数据。检查责任和菜单的权限设置,确保当前用户有权操作该事务处理。 如果以上步骤都确认无误,可能需要收集更详细的日志信息,比如启用调试模式或查看跟踪文件,以确定错误发生的具体位置。同时,参考Oracle官方文档或支持文档,查找APP-AR-96282的具体解决方案,或者是否有补丁需要应用。 最后,如果问题依然无法解决,联系Oracle支持并提供详细的操作步骤、参数值以及日志信息,以便他们进一步诊断。 现在要确保回答结构清晰,分步骤说明解决方案,并生成相关问题帮助用户进一步排查。同时注意使用正确的中文表达和LaTeX格式,但用户的问题中没有数学公式,可能不需要使用。但根据系统指令,行内表达式需要用$...$,不过在这个问题中可能用不到。不过生成的回答中可能涉及到代码块,需要正确格式化。</think>### APP-AR-96282 错误解决方案分析 该错误通常发生在Oracle EBS应收账款模块中,当接口表`RA_INTERFACE_LINES_ALL`处理交易时检测到`p_customer_trx_id`参数未正确传递或关联事务处理记录失效。以下是分步骤解决方案: --- #### 第一步:验证参数传递 1. **检查API调用代码** 确认调用`RA_CUSTOMER_TRX_PUB`相关API时,`p_customer_trx_id`参数是否赋值且不为空。例如: ```sql -- 示例代码片段 l_return_status := RA_CUSTOMER_TRX_PUB.Create_Customer_Trx( p_api_version => 1.0, p_customer_trx_id => l_trx_id, -- 必须有效且非空 ... ); ``` 2. **检查数据源** 如果通过接口表导入数据(如`RA_INTERFACE_LINES_ALL`),需确保字段`CUSTOMER_TRX_ID`已正确赋值且关联有效事务处理[^1]。 --- #### 第二步:验证事务处理有效性 1. **查询事务处理记录** 在`ra_customer_trx_all`表中验证传入的ID是否存在: ```sql SELECT COUNT(*) FROM ra_customer_trx_all WHERE customer_trx_id = <传入的ID>; ``` 若结果为0,说明事务处理记录缺失,需重新创建或修复关联。 2. **检查事务处理状态** 确认事务处理状态字段`complete_flag`是否为`Y`(已完成): ```sql SELECT complete_flag FROM ra_customer_trx_all WHERE customer_trx_id = <传入的ID>; ``` 若为`N`,需通过`AutoInvoice`或手动完成事务处理。 --- #### 第三步:排查数据依赖 1. **检查关联实体** 确保事务处理关联的`bill_to_customer_id`、`ship_to_customer_id`等字段非空且有效: ```sql SELECT bill_to_customer_id, ship_to_customer_id FROM ra_customer_trx_all WHERE customer_trx_id = <传入的ID>; ``` 2. **验证开放会计期间** 确保事务处理日期对应的应收账款期间已打开: ```sql SELECT closing_status FROM gl_period_statuses WHERE application_id = 222 -- AR应用ID AND period_name = '<期间名称>'; ``` 若状态为`C`(已关闭),需通过`GL`模块打开期间。 --- #### 第四步:修复数据异常 1. **清理无效接口记录** 若错误发生在接口表处理阶段,删除无效记录后重新提交请求: ```sql DELETE FROM ra_interface_lines_all WHERE interface_line_attribute1 = '<错误批次标识>'; ``` 2. **重置事务处理** 若事务处理状态异常,尝试通过标准流程(如`AutoInvoice`)重新生成。 --- #### 第五步:调试与日志 1. **启用调试模式** 在并发请求定义中启用调试选项,检查日志中具体报错位置。 2. **检查触发器与约束** 确认无自定义触发器对`customer_trx_id`添加额外验证: ```sql SELECT trigger_name FROM all_triggers WHERE table_name = 'RA_CUSTOMER_TRX_ALL'; ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlanChen

您的鼓励是我创作的源泉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值