在SAP中执行RFC函数 "ZRFC_GETSTOCK_MM"正常,但是用VC#2010 + SAP Connector3.0 for MS .NET时取不到返回的结果stockc,始终为0.
而在非dotnet平台的ASP程序中则可以取到正确的数值.
不知什么原因?
以下是VC#代码。
//连接 sap
RfcConfigParameters rfc = new RfcConfigParameters();
rfc.Add(RfcConfigParameters.Name, "mycon");
rfc.Add(RfcConfigParameters.AppServerHost, "111.111.111.111");
rfc.Add(RfcConfigParameters.Client, "700");
rfc.Add(RfcConfigParameters.User, "RFCTEST");
rfc.Add(RfcConfigParameters.Password, "test");
rfc.Add(RfcConfigParameters.SystemNumber, "00");
rfc.Add(RfcConfigParameters.Language, "EN");
rfc.Add(RfcConfigParameters.PoolSize, "5");
rfc.Add(RfcConfigParameters.MaxPoolSize, "10");
rfc.Add(RfcConfigParameters.IdleTimeout, "500");
RfcDestination rfcdest = RfcDestinationManager.GetDestination(rfc);
//RFC调用函数
RfcRepository rfcrep = rfcdest.Repository;
IRfcFunction myfun = null;
myfun = rfcrep.CreateFunction("ZRFC_GETSTOCK_MM");
//赋值import
myfun.SetValue("I_MATNR", "0701020160006169");
myfun.SetValue("I_WERKS", "TTB2");
myfun.SetValue("I_LGORT", "0024");
myfun.SetValue("I_CHARG", "9");
//执行
myfun.Invoke(rfcdest);
//得到export结果
label1.Text= myfun.GetValue("STOCKC").ToString();
http://www.cnblogs.com/Teco/archive/2012/03/09/2387225.html
看看我的 博客。
outParameters[item] = Z_RFC_ZCOX.GetString(item); 試一下
可能是输入参数长度的问题,单步调试,在执行完myfun.Invoke(rfcdest);后,将myfun.ToString();可以看到里面的内容,自己分析一下就知道STOCKC有没有返回。
我也遇到过这样的情况,参数都传到了SAP那边,就是获取不到返回的结果,也没有异常,最后和SAP开发商一起调试,还是没有找到原因,最后用其他的解决方案来解决的。