有一个客户需要在智遥工作流软件中调用公司内部的SAP Function,传入3个字符串参数:P1,P2,P3,然后返回一个结果内表Output1,并将内部数据在网页上显示出来。
但是无论他们怎么调用,输入什么参数,都显示没有找到任何记录。然而在SAP系统中进行调试,输入同样的参数,却显示有记录。
他们折腾半天找不出原因,只好找到我,经过我的检查发现:传入的P1是一个长度为10位的单号,这个必输参数,但是实际的单号只有8位,如:12345678。当在SAP中调试的时候,输入:12345678,系统在执行过程中会自动给参数补零,变成:0012345678。
但当我们用.Net 调用Function的时候,并不会自动给补零,传递的单号仍是:12345678,所以怎么查询,都是找不到任何记录的。
注:SAP很多设计理念和.Net,不一样。没有搞过SAP的.Net程序员,遇到这种问题,可以按一下几点进行检查:
1.补零问题:sap的单号往往是固定长度的,如果长度不够,前面自动补零
2.日期问题:sap中日期格式,可以自己定义,常见格式有:20130101,2013.01.01;这时候我们在工作流中调用的时候,就要将日期格式转成和他们一样
3.复选框问题:sap中选中后,值是:X 没选中则是空格;如果传入true,false肯定也是错的