VS2008 连接 SAP 4.6C RFC 经验分享(折腾了两天)
2008-11-26 12:35 通用C#系统架构 阅读(8989) 评论(32) 编辑 收藏 举报这几天做杭州炼油厂的SAP地磅接口、力控开发系统下的Rosemount流量计接口。SAP版本是4.6C,应该是比较早期的版本,中石化统一的版本吧。
连接SAP有一个叫SAP .NET Connector 2.0,NND,必须需要VS2003的开发环境才可以安装,现在都2008年年底了,我哪里还去找VS2003,
而且电脑里装得软件已经很多,基本上没有地方好装VS2003了,还不知道已经装了VS2008还能否安装VS2003了,不是一般的闹心,是非常的闹心。
已安装了Microsoft Visual Studio 2008、Oralce、SQL2000、SQL2005、MySql, 为了调试还装了SAP的客户端SAP Front End。
真的不想再折腾了,再去下载VS2003, 安装这个,简直是杀人啊。
SAP .NET Connector 2.0 是无法用了,想找到这个包的相关DLL,也没能找到,没办法,就直接引用了SAP的客户端的Com组件,想通过直接调用
客户端的组件来登录到SAP,然后调用RFC,这些接近折腾了1天,终于连接是可以了,但是死活调用不了RFC函数调用的功能,一对Connection赋值
就会抛出异常 Bad variant type,http://topic.csdn.net/u/20080219/14/83e2d29e-899b-4186-9910-e98fd6daac35.html
搞死人,折腾了一晚上,用C#, VB.net的都无法搞定,都同样会抛出异常,看了别人的解决方法,还是VS2003B编译什么的,我哪里去找VS2003了。
第二天,其实是有些绝望了,到处打电话咨询,找救兵,也没太多实质性的进展,我这个人有一个最大的优点,就是有些自信,而且不愿意放弃,
更不愿意认输,继续找找看吧,找来找去,感觉微软有一个新的连接SAP的方法,SQL2005 NET Data Provider for mySAP Business Suite,DataProviderSAP.exe 下载这个看看,感觉是比较新的,应该在VS2008里可以用,找了下载找得稍微有点儿晕,最终还是找到了,哈哈,安装也成
功了,接下来再找了例子程序,引用了相关的DLL,结果奇迹发生了,能调用SAP里的RFC函数了,不知道都调要了啥功能,总算能连接SAP,还能执
行RFC函数了。这时早已过了下班时间了,SAP的工程师都回去了,我们想调试自己写的RFC函数,死活就是不回来正确的结果。
第三天,经过跟SAP工程师的协调,发现SAP里,数据库里标准格式是 char10,我们传输过去的参数有8位的长度,应该是长度不够导致结果不
正常,SAP也比较怪一些,需要在前面补2个零。哦,结果正常,好开心啊,连接SAP成果,参数传递正确,调用RFC成功,读取结果正确。
以上文章,希望给有同样折腾中的人,少走点儿弯路,不浪费时间,提高生活质量吧,多陪陪家人。
总结: 可能很多技术问题都不难,折腾过了,走过一些弯路了,心里就有数了,这就是所谓的经验吧。多折腾了,经验就更多了,人也值钱了。
RFC 就像数据库里的 存储过程一样的调用就可以了,之前都不知道这个是什么东东云里雾里,原来还可以这么简单就可以调用了。