一步一步教你用SAP NCO3.0调用RFC(菜鸟必看)
来源:互联网 发布:windows编程教程 编辑:程序博客网 时间:2024/05/21 19:43
需要的工具:
开发工具:Microsoft Visual Studio 2010 C#环境
NCO3.0:sapnco30dotnet40P_8-20007347.zip(VS2010环境下必须这个版本)
可到此下载:http://download.csdn.net/detail/szlaptop/4635144
数据库:ORACLE10g
示例目的:将oracle的某表数据通过RFC插入SAP自建表。
第一步:在SAP里自建表
进入SAP界面:使用T- CODE:SE11 打开建表界面:表名为:ZCHANNEL_MESSAG
自建如下表:(详细建表过程略),针对自身业务,命名关键字段。
第二步:针对自建表ZCHANNEL_MESSAG创建RFC。
使用T- CODE:SE37 打开建RFC界面:命名为:ZCHANNEL_RFC_MESSAGE
RFC如下表:(建立RFC详细过程略),在TABLE参数里设置IT_CHANNELLIKE 刚才自建的表ZCHANNEL_MESSAG。
在EXPORT里设置出参R_SUBRC.
在SOURCE CODE里写代码:
- IF IT_CHANNEL[] IS NOT INITIAL.
- MODIFY ZCHANNEL_MESSAG FROM TABLE IT_CHANNEL[].
- IF SY-SUBRC = 0.
- R_SUBRC = 'OK'.
- ENDIF.
- ENDIF.
- ENDFUNCTION.
到此在SAP这边的工作已经就绪。
第三步:接下来,我们在oracle10g下建表WW_TRANS:与SAP自建表字段对应。
- create table WW_TRANS
- (
- WW_TXDATE VARCHAR2(50),
- WW_PLUID VARCHAR2(50),
- WW_QTYSOLD VARCHAR2(1000),
- WW_AMOUNT VARCHAR2(50),
- WW_TELEPHONE VARCHAR2(50)
- )
第四步:剩下的都在VS2010下完成:
打开VS2010新建一个WINDOWS窗体应用程序:WindowsFormsApplication2
拖动一个按钮控件到主窗体:
在解决方案资源管理器,引用里引用NCO3.0的sapnco.dll和sapnco_utils
右击项目名称WindowsFormsApplication2,点击“属性”,打开属性面板:将目标框架里默认的.NET Framework 4 Client Profile 改为:.NET Framework 4。(很重要)
在解决方案资源管理器里打开配置文件APP.CONFIG,配置如下:
- <?xmlversionxmlversion="1.0"?>
- <configuration>
- <configSections>
- <sectionGroupnamesectionGroupname="SAP.Middleware.Connector">
- <sectionGroupnamesectionGroupname="ClientSettings">
- <sectionnamesectionname="DestinationConfiguration"type="SAP.Middleware.Connector.RfcDestinationConfiguration,sapnco"/>
- </sectionGroup>
- </sectionGroup>
- </configSections>
- <SAP.Middleware.Connector>
- <ClientSettings>
- <DestinationConfiguration>
- <destinations>
- <addNAMEaddNAME="DEV"USER="WUWEI"PASSWD="WUWEI"CLIENT="500"
- LANG="EN"ASHOST="198.16.0.66"SYSNR="00"
- MAX_POOL_SIZE="10"IDLE_TIMEOUT="10"/>
- </destinations>
- </DestinationConfiguration>
- </ClientSettings>
- </SAP.Middleware.Connector>
- <startup>
- <supportedRuntimeversionsupportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.0"/>
- </startup>
- </configuration>
双击刚拖动的Button1按钮进入代码编辑器:
手工引用:using SAP.Middleware.Connector;
因为使用的是oracle数据库,所以也必须引用oracle10g的System.Data.OracleClient.dll,只要安装了oracle10g客户端
usingSystem.Data.OracleClient;
接下来看代码:
- OracleDataReader reader = sqlCmd.ExecuteReader();
- //读¨¢取¨?配?置?文?件t信?息¡é,ê?建¡§立¢¡é与®?SAP连¢?接¨®
- RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination("DEV");
- RfcRepository SapRfcRepository =SapRfcDestination.Repository;
- // Create and invhuoke function moduleZCHANNEL_RFC_MESSAGE
- IRfcFunction myfun =SapRfcRepository.CreateFunction("ZCHANNEL_RFC_MESSAGE");
- // Set some input values for the structure.
- IRfcStructure import = null;
- IRfcTable table = myfun.GetTable("IT_CHANNEL");
- while (reader.Read())
- {
- import = SapRfcRepository.GetStructureMetadata("ZCHANNEL_MESSAG").CreateStructure();
- import.SetValue("WW_TXDATE",reader.GetString(0));
- import.SetValue("WW_PLUID",reader.GetString(1));
- import.SetValue("WW_QTYSOLD",reader.GetString(2));
- import.SetValue("WW_AMOUNT",reader.GetString(3));
- import.SetValue("WW_TELEPHONE",reader.GetString(4));
- table.Insert(import);
- }
- myfun.Invoke(SapRfcDestination); //执¡ä行D函¡¥数ºy
- string RETURNStr = myfun.GetString("R_SUBRC");
- MessageBox.Show(RETURNStr);
执行结果:
- 一步一步教你用SAP NCO3.0调用RFC(菜鸟必看)
- 一步一步教你用SAP NCO3.0调用RFC(菜鸟必看)
- 一步一步教你用SAP NCO3.0调用RFC(菜鸟必看)
- step by step 教你用SAP NCO3.0调用RFC
- 一步一步教你写SAP RFC
- 一步一步教你写SAP RFC (实战项目)
- 一步一步教你写SAP RFC (实战项目)
- SAP接口编程之 NCo3.0系列(02) : RFC Client Programs
- RFC调用sap接口
- VBA调用SAP RFC
- VS2010+NCO3.0调用SAP BAPI获得定义的公司名单(源代码)
- .net 连接 SAP for NCO3.0(三)
- SAP RFC 函数创建 Java程序调用 学习总结 一步一步图文并茂
- VB调用SAP的RFC
- C# 调用 SAP RFC 方法
- PB调用SAP RFC函数
- VS.NET调用SAP RFC
- java调用SAP RFC函数
- The Internet Communications Engine (Ice) 跨平台异构通讯方案 第二弹-Hello world! - Uzumaki
- 换WAV格式
- python直接按行读取gz压缩文件中的文本文件的数据
- C语言笔记(四)
- Sharepoint Workflow 获取中文栏的问题
- 一步一步教你用SAP NCO3.0调用RFC(菜鸟必看)
- jquery select 上移下移
- Delegate,Action Sheet, Alert
- java简单的接口程序
- fwrite函数
- RepositionBars的用法和参数的意义(引用别人的)
- 异常处理8_5
- PHP 二维数组排序
- jekyll项目开发