Retail系统验证&问题&解决
Retail R12系统安装后验证
NOTE:427812.1 用于安装成功与否的验证
请按照Testcase 验证系统的可用性, TestCase下载:
oracle_retail_merchandising_installation_test_cases_
如果大家在流程测试过程中遇到问题可直接回复本贴,大家一起来解决.
已知问题:
测试流程:Test Name: f) RMS to RPM – Store Add 遇到如下问题:
问题1 运行batch storeadd ,在log中报错: Terminated – no threads available ; storeadd 没成功
解决方法:
Update restart_program_status
Set program_status = ‘ready for start’
Where program_name = ‘storeadd’
关于作者:
昵称:商云方 档案信息:顾问, HAND张江技术中心 联系方式:你可以通过yunfang.shang@hand-china.com联系作者 点击查看商云方发表过的所有文章... 本文永久链接: http://blog.retailsolution.cn/archives/96 |
对本文的评价:
zzz
测试流程:Test Name: f) RMS to RPM – Store Add 遇到如下问题:
问题1 运行batch storeadd时在log中报如下错误
Terminated – no threads available
检查确认restart_program_status表中program_name=’storeadd’行的program_status为’ready for start’,尝试手工对其Update不成功,storeadd运行不成功
1 每次手工跑storeadd 这个batch前都要执行一下,因为每次成功跑完batch ,状态会变成Complete ;
2 请确认你的update 动作已经被正确执行,如果plsql中一直处于excuting….状态,说明记录被锁,有多人同时在做update动作,而没有commit
如下SQL 可帮助你找到哪些人在锁这些表:
SELECT a.* FROM v$locked_object a,
all_objects b
WHERE a.OBJECT_ID = b.object_id
AND b.object_name =’RESTART_PROGRAM_STATUS’
重新启动数据库后恢复正常
测试流程:Test Name: e) RMS to RPM – Department Creation 遇到如下问题:
按照Test Cases在 RMS 商品结构–部门 中创建新的部门,创建完成后RMS中可以查看、编辑该部门,但在RPM中看不到这个部门(Step 7),无法完成Step 7
若干分钟后在RPM中查询时看到之前在RSM中创建的Department,RPM与RSM不同步?
我也遇到过这种问题,应该是有些延迟。
在RPM创建促销时,选择根据现有资料创建促销组成时会报这样一个错误:程序单位位RPM_PROM_COMP_AGG_SQL.GET_VALUES返回错误
测试流程:Test Name: g) RMS to RPM – Item location ranging 遇到如下问题:
运行RPM Batch不成功
解决方法:
1.设置环境变量PATH:export PATH=$PATH:.
2.设置环境变量JAVA_HOME: export JAVA_HOME=/d01/app/oracleas10gr3/jdk
3.首先进入目录/d01/app/oracleas10gr3/j2ee/rpm/rpm-batch/scripts/,再执行相应RPM Batch,否则会出现找不到Class的错误
测试流程:Test Name: h) RMS to RPM – Item Reclassification遇到如下问题:
完成测试流程,成功运行两个Batch后,在RMS中查询看到对应货品的重新分类成功,但是在RPM中的价格查询中无法查询出对应货品的价格(Step 9)
Test Name: i) RPM – Create Price Events
现象:step3 区域组LOV为空,区域LOV为空 导致无法完成创建价格变动
解决方法:
详情查看 metalink上的 Doc ID: NOTE:580426.1
简要步骤说明:
1. 登录rsm
2. 选择角色管理->编辑数据权限
3. 双击administrator role
4. 点击新建
5. 应用程序选择RPM
6. 数据元素选择地点层次
7. 选择自己需要的区域和区域组
8. 点击修改,应用,完成
9. 重新登陆进入rpm可以发现,刚才添加的区域和区域组出现在LOV中
问题已不存在,可能与访问权限有关
创建审计规则
路径:操作>>销售审计>>控制>>审计规则维护
后击新建后,在第3个页面出错。信息如下:
Sa_tran_head或 v_total 必须作为驱动表一部分包括在内 SA_STORE_DAY
新建采购订单
路径:订购>>订单>>新建
1.在订单头选择地点类型为门店
2.任意选择门店1121后,点击货品。添加货品lp_test3 输入数量,应用后。点击确定报错信息如下:
未找到货品 100042161和地点1121的区域ID
此问题已解决:
这不是一个普遍问题,产生问题的原因是由于操作错误
我的操作流程:
1.在RMS的Dept1中新建Item1,运行Batch newItemLocBatch.sh将Item同步至RPM
2.在RMS中基于Item1建立Item2
3.在RMS中将Item2重分类至Dept2
4.运行batch reclsdly & itemReclassBatch.sh
由于第二步没有将Item2同步至RPM,则RPM中本就不存在Price,进行Reclassification后亦没有Price
解决方法:运行Batch newItemLocBatch.sh后,即使Item Price可在RPM中查询到
问题已不存在,原因不明
现象:今日登陆RSM ,提示错误:此帐户已锁定。请与管理员联系。
当前登陆用户是rsm.admin;
分析:rsm所使用的dbuser登陆数据库也没有问题。使用Valid.user 可以登陆应用服务器。说明是Application Server的用户被锁定。
metalink 查询”users_rsm.xml”可得到部分信息:但未提及此类问题。
临时解决方案:使用Valid.user登陆。
select * from rsm12dev.User_Login_Info
有一条记录:
ID user_id curr_auty_failures last_fail_date
29 admin.rsm 5 2008-10-9
create table User_Login_Info_bak1010 as select * FROM rsm12dev.User_Login_Info
DELETE FROM rsm12dev.User_Login_Info
再次使用rsm.admin 可以登陆。
所以解除锁定的方法就是 User_Login_Info 中把该用户的curr_auty_failures的记录删除。
现在有个问题什么情况下会产生 curr_auty_failures 的记录?
现象: 退货至供应商-新建-报错:找不到ID
报错:FRM-41607 Can not find menu item :Invalid ID
操作路径:库存-退货至供应商-新建
分析:
错误发生的form是rtv.fmb(在出错窗口的title上可以看出来)
下载rtv.fmb 从new_form_instance 开始用emessage() 函数调试,可跟踪到如下路径when-new-form-instance–>P_FORM_STARTUP–>P_INITIALIZE–>P_GET_LABELS–>Set_Menu_Item_Property
对 gui_translation_sql.get_label_prompt_akey 进行TEST(在PLSQL DEVELOPER中进行,form参数: FM_RTV)
可知道Set_Menu_Item_Property要操作的 Menuitem
declare
— Boolean parameters are translated from/to integers:
— 0/1/null false/true/null
result boolean;
— Non-scalar parameters require additional processing
o_list_user_form_elements gui_translation_sql.list_user_form_elements;
o_list_user_menu_elements gui_translation_sql.list_user_menu_elements;
begin
— Call the function
result := gui_translation_sql.get_label_prompt_akey(o_error_message => :o_error_message,
o_list_user_form_elements => o_list_user_form_elements,
o_list_user_menu_elements => o_list_user_menu_elements,
i_form => :i_form);
— Convert false/true/null to 0/1/null
:result := sys.diutil.bool_to_int(result);
FOR i IN 1 .. o_list_user_menu_elements.count
LOOP
dbms_output.put_line(o_list_user_menu_elements(i).MENU_NAME || ‘-‘ ||o_list_user_menu_elements(i).MENU_ITEM_NAME || ‘-‘|| o_list_user_menu_elements(i).label);
END LOOP;
end;
原因: 比对界面的Menu 和 TEST输出的Menu项,可发现TEST输出项中要多一个 OPTIONS_MENU-SHIP-Sh&ip,这多出的一个在rtv.fmb对应的rtvmenu.mmb中没有定义,自然是找不到menu ID的.
解决方法:
把多出来的Menu Item 删除
CREATE TABLE menu_elements_bak0928 AS SELECT * FROM menu_elements;
DELETE FROM menu_elements WHERE menu_filename = ‘rtvmenu’ AND menu_name =’OPTIONS_MENU’ AND menu_item_name =’SHIP’
测试: 再次运行,错误消失,OK
测试流程:Test Name: i) RPM – Create Price Events
遇到如下问题:
测试的 Price Event (价格变动、促销)均在approve时进行冲突检查时遭遇未知冲突
在 RPM 系统选项-系统选项编辑-背景冲突检查中Uncheck价格变动/清仓,则在Approve时产生Java Error:
com.retek.platform.exception.RetekUnknownSystemException: javax.naming.NameNotFoundException: com/retek/rib/binding/publisher/RIBMessagePublisher not found
检索metalink得到文档NOTE:553443.1
配合文档rpm-1207-og.pdf Disabling RIB Publishing in RPM章节
配置/d01/app/oracleas10gr3/opmn/conf/opmn.xml (备份opmn.xml.bak20081010DJ)
重新在RPM中Approve时产生Java Error:
com.retek.platform.exception.RetekUnknownSystemException: java.lang.IllegalStateException: Invalid rib publish configuration. No config for clearance.
检索metalink得到文档NOTE:434719.1
向RPM_RIB_PROPERTIES表插入三条记录(原表为空)
再次尝试Approve成功,问题解决
测试流程:Test Name: j) RPM – Price Publish Batch
遇到如下问题:
运行RPM Batch时出现JAVA ERROR,Error信息存放在/d01/app/oracleas10gr3/j2ee/rpm/rpm-batch/scripts/test.txt文件中
测试流程:Test Name: 2. a) RMS – Create a Deal
遇到如下问题:
完成Step3打开Form dealmain,弹出如下三条错误消息
FRM: 40105-Unable to resolve reference to item B_PROMOTION.PROMOTION_ID
FRM: 41052-Cannot Find Window: invalid ID
FRM: 40105-Unable to resolve reference to item B_PROMOTION.PROMO_COMP_ID
从该Form 的new_form_instance 开始用emessage() 函数调试,可跟踪到如下路径when-new-form- instance–>P_FORM_STARTUP–>P_INITIALIZE–>P_GET_LABELS
可知时对界面元素的多语言对应出了问题
在PL/SQL Developer中对 gui_translation_sql.get_label_prompt_akey 进行测试,可知是由于数据库中存储的Item对应的数据块在Form中以其他名称存在造成的(数据库中为B_PROMOTION,Form中为B_DEAL_COMP_PROMO)
解决方法:
不调用系统的stand45.pll中的P_GET_LABELS,而是将stand45.pll中的P_GET_LABELS复制至Form中对其进行修改
更改数据库中的内容使其符合Form中的名称,这种做法更加好一点.
测试流程:Test Name: 2. c) RMS – Inventory Adjustments and Transfers
在 库存 – 转移 – 新建 (Form TSF)中出现同样问题。用同方式解决
创建地点类型为店铺的订单时
如果出现未找到货品 ×××××和地点的区域ID ××××
可以通过以下SQL查找可用的价格成本区域
SELECT itm.item,
itm.item_desc,
decode(czgl.loc_type,
‘W’,
‘warehouse’,
‘S’,
‘store’),
czg.description cost_group_name,
cz.description zone_name,
czgl.location
FROM item_master itm,
cost_zone_group_loc czgl,
cost_zone cz,
cost_zone_group czg
WHERE czgl.zone_group_id = itm.cost_zone_group_id
AND cz.zone_id = czgl.zone_id
AND czgl.zone_group_id = czg.zone_group_id
AND czgl.loc_type = ‘S’
AND itm.item_desc LIKE ‘%lptest%’;
上例中”lptest”替换成当前正在做订单的Item description 即可。
依据商老大建议删除数据库表 form_elements 及 form_elements_langs 中的对应数据(fm_name = ‘FM_PMAPI’ and ITEM_NAME IN (‘W_YOUR_FORM’, ‘PROMOTION_ID’, ‘PROMO_COMP_ID’))同样可解决问题。原数据备份在 form_elements_bak1014 以及 form_elements_langs_bak1014
根据FORM:ORDMTXWS.FMB程序单元P_EXIT,查找问题到数据库包ORDER_SETUP_SQL--〉ORDER_EXPENSE_SQL -〉ITEM_ATTRIB_SQL 中的函数GET_COST_ZONE 发现其中的游标
cursor C_COST_ZONE_GROUP_LOC is
select zone_id
from cost_zone_group_loc
where zone_group_id = L_zone_group_id
and location = I_loc;
查询的结果为空,经辨识发现,我们自己建立的店铺都没有和成本区域组建立关联,而建立的仓库则不存在此问题。
现在问题转变为 确定店铺和成本区域组的关联的流程是什么?
现在的意见有两种
一:店铺建立的时候就决定了成本区域组,取决于建立时的分区地点
二:货品建立时先选择了成本区域组,在地点的设定里建立了关联
可能性:
1。我们在以前建立店铺都是不完善的,仍有流程被丢失
2。系统现在是不完善的,还有BACH需要运行等
3。我的查找是错误的....希望不是如此
问题已解决 :
出错原因 当要为店铺65441003定货品100044174时,店铺65441003的成本区域组为1000,那么货品100044174的成本区域组也必须是1000才能够在 cost_zone_group_loc中查找到数据(其中查询的zone_group_id 取决于货品100044174的成本区域组,而查询的是店铺65441003的zone_id).
提示:
店铺/仓库的成本区域组取决于店铺/仓库"建立” 时选择的” 分区地点” 时的 成本地点 的成本区域组(依赖关系 比如 店铺65441003的成本地点为1008 而1008的成本区域组为1000, 那么65441003的成本区域组就为1000).
货品的成本区域组取决于货品建立时的选择.
对于订单中,如果货品地点中没有相应店铺不影响订单生成,而且订单成功批准后,货品的地点中会自动加上相应店铺.
附: 查询店铺建立时 成本地点 的成本区域组
SELECT czgl.zone_group_id
FROM cost_zone_group_loc czgl
WHERE czgl.location=’***’ (*** 为店铺或仓库 如65441003)
再执行 问题又在存在
暂时解决方法:
在第三部中 从过滤器中选择 SA_TRAN_HEAD 加入到 所选领域 中,即可继续执行。(SA_STORE_DAY 会自动跟随加入)
这只是通过报错的操作,具体的原因还不明确
rms->控制->系统->系统变量
对应form名称: sys_ctrl.fmb
现象1: sys_ctrl.fmb使用数据源为System_Options, pl/sql 查System_Options 得到完整数据。但是在rms中打开系统变量设置,不能显示数据源数据,填充所有required field,点击保存数据,通过跟踪发现通过验证,提示”无法更改保存至数据库,如有必要请联系相应技术人员“。
现象2:打开sys_ctrl.fmb源代码,在form builder 编译出现错误。
提示:“poplist 没有initial value”, 为该poplist添加initial value. 编译才能通过,上传到bin目录,现象1依然出现。无法解决。
可能的原因:form 应该有问题,因为编译源文件sys_ctrl.fmb就不能通过,sys_ctrl.fmx不知道是怎么编译生成的。界面无法显示数据源提供的数据,最明显的就是country_id. sys_options表里的值为CN, 而在界面上为空。点击 第一个页面的“配送规则”(Poplist) 后提示“必须输入字段值”,然而在点击确定后,居然能进入下一个步骤。因此判断该form存在问题。
通过查看Form源代码发现,审计规则维护 和 总计定义维护 两个Form的第四步中均要求选取SA_STORE_DAY,这应该是系统要求而非BUG
测试流程:第5部分
遇到如下问题:
打开retail零售配货系统,使用RETEK用户登录后只能看到
您的登录身份为:Retek Default User
以及 主页、关于、注销及页面设置四个按钮,看不到菜单等内容
参考: http://syfr12.vicp.net/blog/index.php/rms-form-compile
对该Form进行编译看看报什么错? 另外这个问题让黄鸿和你一起看看
有个按纽按一下就可以出来内容的.
定价部分
例:
rms中大分类上按零售价加价百分比定义为10%,rpm中对此分类在某区域组的初始加价百分比是按零售价加价50%,rms中货品的单位成本定义的是100.结果零售价为200。
问题1:
RMS>操作>商品层次 大分类dept定义时在成本价加价%中输入值,下面的零售价加价&会自动带出来,但是对应关系,希望知道这个对应关系是在哪里设置的。目前试验了几组值:1.00-0.99,2.00-1.96,3.00-2.91,4-3.85,5.00-4.96,10-9.09,20-16.67,50-33.33,100-50,前面是成本价加价%,后者是零售价加价%,其中零售价加价%不能超过100.
问题2:
RPM中的主要区域组为货品提供了初始加价百分比(二类:按零售价,按成本),那么零售价的最终形成公式是怎么样?目前的测试排除掉了“(1+主要区域组上的加价%)*成本价(或零售价)”的情况,即使“(1+主要价格区域组上的加价%)*(1+大分类上的加价%)*成本价(或零售价)”也不对。
ReIM问题,登录后显示没有货币代码
原因: 数据库中的货币代码(表IM_CURRENCY_LOCALE)只针对Country=US, Language=en的情况,而ReIM的登录用户设置为(表IM_USER_AUTHORIZATION)Country=ZH, Language=CN
解决方法:暂时修改ReIM的Admin用户的国家、语言为US、en
关于问题1:
如果 成本价加价 * 100 / (成本价加价 + 100) < -99.99 则
弹出消息 “这将导致零售价加价百分比超出范围”
否则
零售价加价 = 成本价加价 * 100 / (成本价加价 + 100) 结果进行四舍五入(精确到小数点后四位)
此关系不可以被定义。
RPM的地点移动BATCH不能跑,会报错
如下:
Classpath …
……
../lib/oc4jclient.jar:../lib/commons-collections.jar:../lib/pvxTable.jar:../lib/rsm11-api.jar:../lib/jdom.jar at com.retek.platform.service.ServiceAccessor.getNamedService(ServiceAccessor.java:456)
at com.retek.platform.service.ServiceAccessor.callRemoteMethod(ServiceAccessor.java:294)
… 8 more
是的,但是除此限制条件以外,两个百分比的关系还是不清楚的
问题已经解决
参考文档metalink NOTE:729781.1
问题原因:
项目当前系统的/etc/hosts文件中未配置rpm-test的host. LocationMoveBatch无法找对RPM系统所在的系统地址
导致产生com.retek.platform.exception.RetekNetworkException
解决流程
step1. 进入root权限 (su root pwd….)
step2. vi /etc/hosts
stem3. 在新的一行添入文本192.168.11.41 rpm-test
step4. 重启network
step 4.1 键入 /etc/rc.d/init.d/network restart
step5. 进入rpm-batch目录
step5.1 cd /d01/app/oracleas10gr3/j2ee/rpm/rpm-batch/scripts/
step6. source /home/oracle/rmsformserver.env
step7. export JAVA_HOME=/d01/app/oracleas10gr3/jdk
step8. export PATH=$PATH:/d01/app/oracleas10gr3/j2ee/rpm/rpm-batch/scripts/
step9. sh locationMoveBatch.sh Valid.User PaSsW0rD
错误消失,首次跑batch处理了三组数据.自此,问题已成功解决
问题二:
step1. rpm->区域结构->维护主要区域组
step2. 查看疑惑item的所在的部门、分类、子分类对应的那条记录
step3. 查看价格计算方式
step3.1 如果”加价类型”是”零售价加价”则价格公式为:
价格 = 单位成本 / (1 – 主要区域加价百分比) * (1 + 税率)
step3.2 如果”加价类型”是”成本加价”则价格公式为:
价格 = 单位成本 * (1 + 主要区域加价百分比) * (1 + 税率)
零售价加价 = 成本价加价 * 100 / (成本价加价 + 100);
成本价加价 = 零售价加价 * 100 / (100 – 零售价加价);
第一个公式约束:查看#37
第二个公司的约束: -99.99<=零售价加价 * 100 / (100 – 零售价加价)<=999.999;
条件:大分类-按零售价加价,不含税;主要价格区域组-按成本价加价,20%;货品成本-100;
测试结果:零售价为120,货品界面上的加价%为16.67%;
零售价=单位成本/(1+主要区域加价百分比)*(1+税率) —税率未测试
猜测:货品上的加价百分比是按照上一公式得到的零售价反推出来的,100*(1-16.67%)=120,未证实
希望往表fif_gl_acct插入大量数据,可以做一个CSV格式的数据文件,但不知道如何往表里导。
商云方 说:
现在RMS中已经不能手工建立供应商了,是否因为RMS和EBS的连接已经启用的原因?
陈磊 说:
现在还没有启用啊
陈磊 说:
而且bpel流程也没有计划运行
陈磊 说:
rib_app都没有安装,我觉得rib和rms之间估计还没有安装好,应该不影响在rms创建供应商的
RMS与EBS连接没有启用,那有没有修改系统参数呢?
那有没有打过PATCH呢?如果打过的话会自动修改系统参数的吧?
Daniel回复如下:
因为有更新system_options的选项,现在只能从EBS导入供应商信息
我来检查一下,先改回来
客户化采购接收
procedure name: cux_po_ship_and_receive_pc
parameter:
1. po number required
2. price received optional
3. quantity received optional
主要修改部分:
修正了两处bug
1. 字符串长度定义出错
2. Table类型数据未初始化
3. 在rms系统下采购订单类型的处理逻辑,在位于update 数量的sql语句中加入了更新价格的部分。
测试结果:
1. ordloc 表中unit_cost和输入值同步,装运界面上未出现异常,接收数量和输入数量同步
2. 财务->平均成本 中的平均成本价格随着每次PO接收价格的变动而变动。
修改版本已经可用