C#如何通過(guò)RFC連接sap系統(tǒng)
先理解一下
RFC(Romote Function Call)遠(yuǎn)程函數(shù)調(diào)用
調(diào)用前提:
1.要想通過(guò)C# 通過(guò)RFC調(diào)用SAP端,SAP端要存在RFC遠(yuǎn)程調(diào)用的函數(shù)才行(例如SAP端通過(guò)SE37創(chuàng)建),要不然是無(wú)法調(diào)用的。
2.C#調(diào)用RFC要有NCO DLL支持(我們使用NCO3.0,VS2013,framework2.0才行否則會(huì)報(bào)錯(cuò))
注:好多人64位系統(tǒng),開(kāi)發(fā)的時(shí)候報(bào)錯(cuò),到處找支持64位的NCO3.0,這里可以說(shuō)一下,是木有的,報(bào)錯(cuò)是困為Framework的原因。NCO3.0只支持2.0,在開(kāi)發(fā)環(huán)境中改一下就好。
開(kāi)發(fā)背景:
因?yàn)橐鯯AP外圍系統(tǒng)IPM接口測(cè)試,這個(gè)是個(gè)異步接口
調(diào)用接口之后,返回結(jié)果要通過(guò)另外一支接口去獲得,由于某些原因不好實(shí)現(xiàn),所以采取別一種方法。
直接通過(guò)RFC在sap端查接口調(diào)用日志表ZIMPSTXS00330(手工查詢(xún)方法,sap端 se11事務(wù),輸入表名,找到MESSAGE字段S代表接口成功,E代碼失?。?/p>
——————下面直接上代碼,其實(shí)這個(gè)不難——————
引用NCO3.0后
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
//using System.Linq;
using System.Text;
using System.Windows.Forms;
using SAP.Middleware.Connector;
namespace WindowsFormsApplication7
{
 public partial class Form2 : Form
 {
  public Form2()
  {
   InitializeComponent();
  }
  private void button1_Click(object sender, EventArgs e)
  {
   //rfc配置
   RfcConfigParameters argsP = new RfcConfigParameters();
   argsP.Add(RfcConfigParameters.Name, "QS7");
   argsP.Add(RfcConfigParameters.AppServerHost, "10.5.91.131");
   argsP.Add(RfcConfigParameters.SystemNumber, "00");
   // argsP.Add(RfcConfigParameters.SystemID, "QS7");
   argsP.Add(RfcConfigParameters.User, "ATPSUSER");
   argsP.Add(RfcConfigParameters.Password, "q123456");
   argsP.Add(RfcConfigParameters.Client, "800");
   argsP.Add(RfcConfigParameters.Language, "zh");
   argsP.Add(RfcConfigParameters.PoolSize, "5");
   argsP.Add(RfcConfigParameters.MaxPoolSize, "10");
   argsP.Add(RfcConfigParameters.IdleTimeout, "60");
   //獲取rfc配置
   RfcDestination sapConfig = RfcDestinationManager.GetDestination(argsP); //NCO3.0如果framework不是2.0此處會(huì)報(bào)錯(cuò),跟系統(tǒng)64還32無(wú)關(guān)
   RfcRepository rfcRepository = sapConfig.Repository;
   
   //調(diào)用
   IRfcFunction invoke = rfcRepository.CreateFunction("SE11_FUNC"); //調(diào)用函數(shù)名 ZRFC_MARA_INFO
   invoke.Invoke(sapConfig); //執(zhí)行函數(shù)
   invoke.SetValue("PSPID", ""); //設(shè)置參數(shù) 項(xiàng)目編號(hào)
   IRfcTable rfcTable = invoke.GetTable("ZIMPSTXS00330"); //獲取內(nèi)表
   string message = rfcTable.GetValue("MESSAGE").ToString();
   MessageBox.Show(message);
  }
 }
}
NCO3.0下載,百度一搜很多的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
欄 目:C#教程
下一篇:C#使用HttpWebRequest與HttpWebResponse模擬用戶(hù)登錄
本文標(biāo)題:C#如何通過(guò)RFC連接sap系統(tǒng)
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/5779.html
您可能感興趣的文章
- 01-10C#通過(guò)反射獲取當(dāng)前工程中所有窗體并打開(kāi)的方法
 - 01-10C#通過(guò)重寫(xiě)Panel改變邊框顏色與寬度的方法
 - 01-10Extjs4如何處理后臺(tái)json數(shù)據(jù)中日期和時(shí)間
 - 01-10C#通過(guò)Semaphore類(lèi)控制線(xiàn)程隊(duì)列的方法
 - 01-10asp.net中XML如何做增刪改查操作
 - 01-10C#.NET中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中
 - 01-10C#通過(guò)正則表達(dá)式實(shí)現(xiàn)提取網(wǎng)頁(yè)中的圖片
 - 01-10解析C#中的常量及如何在C#編程中定義常量
 - 01-10如何使用C#從word文檔中提取圖片
 - 01-10c#檢測(cè)文本文件編碼的方法
 


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
 - 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
 - 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
 - 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
 - 5c語(yǔ)言計(jì)算三角形面積代碼
 - 6什么是 WSH(腳本宿主)的詳細(xì)解釋
 - 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
 - 8正則表達(dá)式匹配各種特殊字符
 - 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
 - 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
 
本欄相關(guān)
- 01-10C#通過(guò)反射獲取當(dāng)前工程中所有窗體并
 - 01-10關(guān)于ASP網(wǎng)頁(yè)無(wú)法打開(kāi)的解決方案
 - 01-10WinForm限制窗體不能移到屏幕外的方法
 - 01-10WinForm繪制圓角的方法
 - 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
 - 01-10WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新
 - 01-10C#停止線(xiàn)程的方法
 - 01-10C#實(shí)現(xiàn)清空回收站的方法
 - 01-10C#通過(guò)重寫(xiě)Panel改變邊框顏色與寬度的
 - 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
 
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
 - 01-10C#中split用法實(shí)例總結(jié)
 - 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
 - 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
 - 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
 - 01-10delphi制作wav文件的方法
 - 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
 - 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
 - 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
 - 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
 


