step by step 教你用SAP NCO3.0调用RFC
2016-03-10 16:36
417 查看
需要的工具:
开发工具:Microsoft Visual Studio 2010 C#环境
NCO3.0:sapnco30dotnet40P_8-20007347.zip(VS2010环境下必须这个版本)
可到此下载:http://download.csdn.net/detail/easyboot/9457770
之后新建项目我这里新建的WPF
需要引用sapnco 和sapnco_utils
在代码中引用 SAP.Middleware.Connector
![](http://img.blog.csdn.net/20160310162200820?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;
using SAP.Middleware.Connector;
namespace SAPRFC
{
/// <summary>
/// MainWindow.xaml 的互動邏輯
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public void getSAPData()
{
RfcConfigParameters rfcPar = new RfcConfigParameters();
rfcPar.Add(RfcConfigParameters.Name, "DEV");
rfcPar.Add(RfcConfigParameters.AppServerHost, "192.168.2.1");
rfcPar.Add(RfcConfigParameters.Client, "602");
rfcPar.Add(RfcConfigParameters.User, "userid");
rfcPar.Add(RfcConfigParameters.Password, "userpwd");
rfcPar.Add(RfcConfigParameters.SystemNumber, "00");
rfcPar.Add(RfcConfigParameters.Language, "EN");
RfcDestination dest = RfcDestinationManager.GetDestination(rfcPar);
RfcRepository rfcrep = dest.Repository;
IRfcFunction myfun = null;
myfun = rfcrep.CreateFunction("Z_FI_TRANFER");
myfun.SetValue("COMPANYCODE", "2000"); //SAP传入参数 Single
myfun.SetValue("COMPANYNAME", "COMPANY"); //SAP传入参数 Single
IRfcStructure rfcstructSN = null;
IRfcStructure rfcstructX = null;
rfcstructSN = myfun.GetStructure("GENERALDATA"); //SAP传入参数 Structure
rfcstructSN.SetValue("SERIAL_NO", "TestValue"); //SAP传入参数 Structure
myfun.SetValue("GENERALDATA", rfcstructSN);
myfun.Invoke(dest);
IRfcStructure rfcReturn = myfun.GetStructure("RETURN"); //此处返回类型为Structure 如果是Single类型 则直接调用myfun.GetString("RETURN");
string s = rfcReturn.GetString("TYPE");
}
private void button1_Click(object sender, RoutedEventArgs e)
{
getSAPData();
}
}
}
开发工具:Microsoft Visual Studio 2010 C#环境
NCO3.0:sapnco30dotnet40P_8-20007347.zip(VS2010环境下必须这个版本)
可到此下载:http://download.csdn.net/detail/easyboot/9457770
之后新建项目我这里新建的WPF
需要引用sapnco 和sapnco_utils
在代码中引用 SAP.Middleware.Connector
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;
using SAP.Middleware.Connector;
namespace SAPRFC
{
/// <summary>
/// MainWindow.xaml 的互動邏輯
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public void getSAPData()
{
RfcConfigParameters rfcPar = new RfcConfigParameters();
rfcPar.Add(RfcConfigParameters.Name, "DEV");
rfcPar.Add(RfcConfigParameters.AppServerHost, "192.168.2.1");
rfcPar.Add(RfcConfigParameters.Client, "602");
rfcPar.Add(RfcConfigParameters.User, "userid");
rfcPar.Add(RfcConfigParameters.Password, "userpwd");
rfcPar.Add(RfcConfigParameters.SystemNumber, "00");
rfcPar.Add(RfcConfigParameters.Language, "EN");
RfcDestination dest = RfcDestinationManager.GetDestination(rfcPar);
RfcRepository rfcrep = dest.Repository;
IRfcFunction myfun = null;
myfun = rfcrep.CreateFunction("Z_FI_TRANFER");
myfun.SetValue("COMPANYCODE", "2000"); //SAP传入参数 Single
myfun.SetValue("COMPANYNAME", "COMPANY"); //SAP传入参数 Single
IRfcStructure rfcstructSN = null;
IRfcStructure rfcstructX = null;
rfcstructSN = myfun.GetStructure("GENERALDATA"); //SAP传入参数 Structure
rfcstructSN.SetValue("SERIAL_NO", "TestValue"); //SAP传入参数 Structure
myfun.SetValue("GENERALDATA", rfcstructSN);
myfun.Invoke(dest);
IRfcStructure rfcReturn = myfun.GetStructure("RETURN"); //此处返回类型为Structure 如果是Single类型 则直接调用myfun.GetString("RETURN");
string s = rfcReturn.GetString("TYPE");
}
private void button1_Click(object sender, RoutedEventArgs e)
{
getSAPData();
}
}
}
相关文章推荐
- 去除后台ckeditor的style="...."的样式
- 各种排序算法和查找算法
- Java实现用传统分治法解决矩阵相乘问题
- loadrunner解决“服务器正在运行中”方法
- Linux-非结构化数据同步-Linux下Sersync+Rsync实现非结构化增量差异数据的实时同步3
- 【网络流24题】试题库问题
- Linux-非结构化数据同步-Linux下Rsync+Rsync实现非结构化增量差异数据的同步2
- hashcode、equals和compareTo、compare方法的意义及作用
- 学习设计模式 (三)(总结)
- Spynner 安装
- Windows下Python的Django框架环境部署及应用编写入门
- 初学Servlet学习笔记之Listener
- 弹窗 (居中 滚动)
- 静态代码扫描平台SonarQube简介
- ios TableView那些事(三十 四)TableView 单选操作
- 利用backtrace和objdump进行代码分析
- java中 == 与 equal 的区别
- 八大算法之冒泡排序
- AndroidStudio怎样导入jar包
- Eclipse构建Maven项目