没有选择行项目查看长文本.docx
《没有选择行项目查看长文本.docx》由会员分享,可在线阅读,更多相关《没有选择行项目查看长文本.docx(15页珍藏版)》请在冰豆网上搜索。
没有选择行项目查看长文本
没有选择行项目(查看长文本)
目录
一、问题发现1
二、初步解决2
三、进一步解决7
四、进一步查找原因8
五、进一步解决211
六、附件13
一、问题发现
用FS10N查询某科目,双击查看总账科目行项目显示,提示“没有选择行项目(查看长文本)”,不能穿透查询。
没有选择项目(查看长文本)
消息号MSITEM033
诊断
不能读取满足选择标准的行项目。
可能是因为下列原因:
1.)尚未过帐相应项目。
2.)未授权显示该数据。
3.)已归档项目。
二、初步解决
经过查询,发现BSEG凭证行项目数据表有数据,是正常的,但是BSIS未清项凭证表(总账)没有数据。
奇怪。
用FS00,检查该公司代码下的科目,显示行项目是打上勾的,正常
网上查询,发现表SKB1-XLGCLR值为“/”引起的
SE16N查表SKB1
查看帮助
详细的帮助看附件
使用程序RFSEPA01进行修复,运行SE38,输入RFSEPA01,输入公司代码和科目代码
提示:
帐户1002020204没有被冻结记帐
所以使用FS00,对该科目进行冻结后再来操作
再回到程序RFSEPA01操作,运行后提示
凭证编号行项目年度标记
10000000112010选择的凭证
10000000112010文件已修改
10000000112010在表BSIS中生成行项目
此时再查表BSIS,发现记录已经产生。
然后用FS10N查看该科目,双击查看该科目总账科目行项目显示,发现可以穿透查询,问题解决了!
三、进一步解决
经过刚才的处理,问题似乎解决了,但是新问题又来了,历史的记录是修复了,但是用该科目新做的凭证,发现还是查不出行项目,BSIS表中依然产生不了数据。
估计是在SKB1-XLGCLR值为“/”的问题引起的,前面的方法只能修复历史数据。
得想办法要去掉科目里面的这个“/”,使用SE16N+&SAP_EDIT,直接修改标准表里面的记录,将其置为空。
经过测试,去掉“/”后,新做的凭证都正常了,BSIS记录产生了,行项目查询也正常了。
所以,去掉SKB1-XLGCLR的“/”成为关键。
但是直接修改标准表存在风险,所以还是不要这样搞的为好。
经过网上查询,发现有别人写的好的程序(REPORT),也有要求升级包的,都被否决了。
问题的根源还是要查出原来是怎么搞进去的,该字段在屏幕上也是没有的。
四、进一步查找原因
经过追溯,发现原来导入凭证的时候,是用LSMW的StandardBatch/DirectMethod的方式导入的。
且在第13步CreateBatchInputSession,不知道为何产生不了Session会话,是以马上更新文件方式导入的,这样似乎SAP不经过校验就导入了。
在检查文件的时候,发现有这样的提示:
对于'空字段'的特殊字符是/,问题似乎在这里。
消息文本
文件XQFG_FICO_FI_FSSO.lsmw.conv正在
会话1:
对于'空字段'的特殊字符是/
会话1会话名FSSO:
没有找到结束
五、进一步解决2
可能的原因是:
由于原来的屏幕上并没SKB1-XLGCLR这个字段,MaintainSourceFields里面也没有这个字段,所以SAP会默认传一个/值进入。
所以我们想,能不能把这个字段手动加进去,然后给它赋值一个空值,然后用原来的方式导入,看能不能将空值导进去。
增加字段XLGCLR。
映射一下这个字段,赋值常量空值。
BSKB1-XLGCLR=''.
读入数据,转换后显示一下看看
果然,转换的值为空,很好。
然后用CreateBatchInputSession马上更新文件的方式导入。
导入后,查表字段SKB1-XLGCLR,OK。
问题解决。
建议:
导入的时候,最好能以产生Session会话的方式导入,用上述马上更新文件的方式导入存在风险,SAP似乎不校验,这个似乎是SAP的一个BUG。
不过不知道当时为何产生不了Session会话。
六、附件
--测试数据-------------------------------
科目
1002020203
1002020204
公司代码
HZH1
2010
凭证号100000000100000001
BSIS
SKB1
BSEG
SE16N&SAP_EDIT
若SE16N没有权限进入的话,可用SA38运行程序RK_SE16N进入。
查询了一下,还有类似的程序
名称标题
RFSEPA01通过更改主记录打开行项目显示
RFSEPA02通过更改主记录打开未清项目管理
RFSEPA03通过更改主记录关闭未清项目管理
RFSEPA04主数据更改之后的减少的行项目显示
处理的先后顺序是:
先去掉“/”,然后冻结科目,运行程序修复,再解冻科目。
若数据量大的话,可以采用批导的方式,若多个公司代码下的科目是相同的,可以先修复一个公司代码下的问题,然后用FS15发送科目主数据到其他公司代码。
估计启用新总账可能没有这个问题。