SAP系统应用常见问题分析及解决方法
SAPSAPSAPSAP系统应用常见问题分析及解决方法
1.客户主数据里点 Other Communication...按钮进去维护电话和 Fax号以满足要求的格式。
2.程序调用 FM:CHANGEDOCUMENT_READ_HEADERS如果不传 USERNAME这个参数,
进入到 FM之后会给一个默认值(当前用户名),如果刚好这个用户没增删改的记录,就会
返回空的结果。所以程序在调用这 FM时最好传一个空值给 USERNAME参数。
3.问题:在 smartform里调整了字体大小和粗细,但如果用一个 BEZA的...
SAPSAPSAPSAP系统应用常见问
分析及解决方法
1.客户主数据里点 Other Communication...按钮进去维护电话和 Fax号以满足要求的格式。
2.程序调用 FM:CHANGEDOCUMENT_READ_HEADERS如果不传 USERNAME这个参数,
进入到 FM之后会给一个默认值(当前用户名),如果刚好这个用户没增删改的记录,就会
返回空的结果。所以程序在调用这 FM时最好传一个空值给 USERNAME参数。
3.问题:在 smartform里调整了字体大小和粗细,但如果用一个 BEZA的专为 A5纸张打印
标签配的 output device 无论预览还是打到纸上都看不到字体变大变粗,而如果用 output
device LOCL试,却能看到预期效果。
原因: smartform里使用的字体在 BEZA里不能认(不知道怎么查所有可认的字体),换一
个别的字体就行。
4.问题:一个 Inbound IDOC到达 ECC后看到状态是 51,错误消息为 "An IDOC without a
message type was passed to ALE Layer"但实际上 IDOC里的 message type是有的,WE02里就
能看到。
原因:Inbound Process里调用了 MASTER_IDOC_DISTRIBUTE发送 IDOC,这个错误消息
是因为向这个 FM传的参数里没有给正确的 outbound IDOC的 message type
本文是由塞依教育编辑整理,了解更多 SAP
信息,请进入
http://www.saiyisap.com/news/industry/
5.Master_Idoc_distribute发送 IDOC状态如果是 30(黄色),可以先查看 Partner Profile有没
有设定 output mode :collect IDOCs,如果设置没问题,可以在调用完 FM之后用以下语句:
Form f_dequeue TABLES fp_i_communication TYPE ty_t_communication
.
data: begin of int_edidd occurs 0.
include structure edidd.
data: end of int_edidd.
call function 'EDI_OUTPUT_NEW'
exporting
onl_option = 'O' "Online"
tables
i_edidc = fp_i_communication
i_edidd = int_edidd
exceptions
others = 1.
commit work.
call function 'DEQUEUE_ALL'
* EXPORTING
* _SYNCHRON = ' '
exceptions
others = 1.
ENDFORM.
6.
程序 RFFOUS_C的选择界面有个选项“No Form Summary Section”,选中可以不打印
SAPScript里面的 Last Page
7.用工具导入的主数据,里面可能会出现空格的ASCII是 160而不是通常的ASCII32的情况。
8 根据 Function顾问要求查看了两个编码检查的逻辑如下
1.物料主数据里 Additional EANs里输入的 EAN/UPC的检查
如果在 IMG后台“Define Attributes of EANs/UPCs”定义了算法 1或 6,当MM02修改物料
主数据时, SAPLMGD1 SUBScreen 8023 的 MODULE(PAI) CHECK_EAN_ZUS (Inlude
LMGD1I6K) 调 用 的 FM MARA_EAN11, 调 用 FM EAN_SYSTEMATIC -> FORM
EAN_FORMAT_PRUEFEN 会按如下算法对输入的 EAN/UPC进行检查:13位编码的(奇
数位相加之和+偶数位之和×3)/10, 所除的结果为整数则通过,否则系统报错。
2.FM:FI_CHECK_BANK_ACCOUNT_IT for Bank account number check Italy
Step1.构造一个 22个字符长度的串,最左边是输入参数中的 Bank Key,最右边是输入参数
中的 Bank Account,中间用 0填充
Step2.在代码行 71-150 构造了两个数组 umstab1和 umstab2,都包含 c1和 c2两个 field(不
知道 C2的值是按什么规律)
Step3.针对第 1步的串,逐位做如下处理
如果是奇数位,该位的值为 p,则将 umstab2里 c1=p的记录的 c2值累加到变量 summe 上
如果是偶数位,该位的值为 q,则将 umstab1里 c1=q的记录的 c2值累加到变量 summe 上
e.g. 0622562520000000612227 的 第 1位,值为 0,umstab2里 c1=0的那条记录的 C2=1,
summe = 0 + 1 = 1.
第 2位,值为 6,umstab1里 c1=6的那条记录的 C2=6, summe = 1 + 6 = 7.
第 3位,值为 2,umstab2里 c1=2的那条记录的 C2=5, summe = 7 + 5 = 12.
以此类推算,累加 22次,例子中 summe 最后值为 86
Step4.将第 3步的 summe 除以 26后取余数 t,取 26个字母表中第 t+1个字母,如果不等于
输入参数中的 control key,则报错。
3.FM:FI_CHECK_BANK_ACCOUNT_ES for Bank account number check Espain
Step 1. Bank Acc 必须 10 numbers, Bank Num 必须 8 numbers, Control Key 必须 2
numbers
Step 2. Bank Acc的每一位上的数值分别乘上数值串“1248519736”上对应的数值后累加,
但其中第 6位乘的是 10而不是 1
e.g. Bank Acc 1234669801 ,本步骤需计算出
1*1+2*2+3*4+4*8+6*5+6*10+9*9+8*7+0*3+1*6=282
Step 3. 将上述结果除 11取余数,然后用 11减去这个余数。如果得到的结果是 11,将它的
值改为 0,如果是 10,将它的值改为 1
e.g. 对于 282 mod 11 = 7 ; 11 – 7 =4 本步骤结果为 4。如果第 2步得到 242 ,由于 11
- 242 Mod 11 = 11,那么本步骤的结果应该为 0
Step 4. 第 3步得到的结果如果和 Control Key的第 2位不一致,则报错。
Step 5. Bank number的每一位上的数值分别乘上数值串“48519736”上对应的数值后累加,
但其中第 4位乘的是 10而不是 1
Step 6. 将上述结果除 11取余数,然后用 11减去这个余数。如果得到的结果是 11,将它的
值改为 0,如果是 10,将它的值改为 1
e.g. 同第 3步
Step 7.第 6步得到的结果如果和 Control Key的第 1位不一致,则报错。
据此:If Bank Acc=1234669801 Bank Num=34521092 则 Control Key 应该为 64
本文档为【SAP系统应用常见问题分析及解决方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。