雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門(mén)教程網(wǎng)!

C#教程

當(dāng)前位置:主頁(yè) > 軟件編程 > C#教程 >

C#如何通過(guò)RFC連接sap系統(tǒng)

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C#教程|點(diǎn)擊:

先理解一下

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#向word文檔插入新段落及隱藏段落的方法

欄    目:C#教程

下一篇:C#使用HttpWebRequest與HttpWebResponse模擬用戶(hù)登錄

本文標(biāo)題:C#如何通過(guò)RFC連接sap系統(tǒng)

本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/5779.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有