SAP 建立WebService
下面我們開(kāi)始介紹.NET調(diào)用WEB SERVICE的實(shí)現(xiàn)方法:
1. 在R3中創(chuàng)建remote enable的RFC
在R/3中創(chuàng)建一個(gè)通過(guò)參數(shù)CARRID獲取FLIGHTS數(shù)據(jù)的RFC:
定義屬性為Remote-Enabled
在IMPORT中定義過(guò)濾參數(shù)
在TABLES中定義返回?cái)?shù)據(jù)的表類型
在SOURCE CODE中,寫入取數(shù)邏輯:
2. 將RFC擴(kuò)展成為WEBSERVICE
Sap提供給我們根據(jù)RFC擴(kuò)展為WEBSERVICE的方式,簡(jiǎn)化定義webservice的過(guò)程:
修改RFC,路徑:Utlities->More Utlities->Create Web Service
定義webservice的名稱:
下一屏幕,采用默認(rèn)值:
下一屏幕,Profil屬性選擇MEDIUN
下一屏幕,選擇package,我們這里選擇LOCAL,然后點(diǎn)擊“繼續(xù)”,直到完成。
3. 維護(hù)webservice并獲得WSDL
執(zhí)行TCODE:SOAMANAGER,系統(tǒng)為我們打開(kāi)一個(gè)WEB頁(yè)面:
選擇“Application and scenario Communition”下的Single Service Administration鏈接:
在“Search Pattern”中,輸入我們的WEBSERVICE,選中查詢到的結(jié)果,并點(diǎn)擊“APPLY Selection”按鈕,頁(yè)面下面的內(nèi)容就是WEBSERVICE的定義,可以根據(jù)需要進(jìn)行修改。
選擇上圖中的“Open WSDL document for selected binding”鏈接,彈出WSDL的界面,保存地址欄中的地址:
4. 在VS2005中,調(diào)用webservice
在VS2005中,創(chuàng)建WEB項(xiàng)目:
在WEB項(xiàng)目中添加WEB引用:
輸入剛才創(chuàng)建的SAP webservice的WSDL地址,點(diǎn)擊“前往”:
按要求輸入驗(yàn)證用戶名及密碼:
鏈接成功后,系統(tǒng)提示找到了WEBSERVICE,點(diǎn)擊“添加引用”按鈕,完成web引用的添加。
我們可以在類視圖中查看到系統(tǒng)自動(dòng)添加的代理類:
接下來(lái),我們通過(guò)代理類,來(lái)調(diào)用WEBSERVICE提供的數(shù)據(jù):
在DEFAULT.ASPX中添加GRIDVIEW:
在Page_Load方法中添加以下代碼:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
public partial class _Default : System.Web.UI.Page?
{
protected void Page_Load(object sender, EventArgs e)
{
//authority
NetworkCredential credentials = new NetworkCredential("ZHAOCG", "password");
com.XXXXX.sap.bjbidev.ZFLIGHTService serv = new com.XXXXX.sap.bjbidev.ZFLIGHTService();
serv.Credentials = credentials;
com.XXXXX.sap.bjbidev.Sflight[] data;
data = new com.XXXXX.sap.bjbidev.Sflight[0];
//call function module for sflight
serv.Zflights("LH", ref data);
//define a table for keey data got
DataTable dt = new DataTable();
//define columns for table
dt.Columns.Add("Carrid");
dt.Columns.Add("Connid");
dt.Columns.Add("FLDATE");
dt.Columns.Add("Price");
dt.Columns.Add("CURRENCY");
dt.Columns.Add("PLANETYPE");
dt.Columns.Add("SEATSMAX");
dt.Columns.Add("SEATSOCC");
dt.Columns.Add("PAYMENTSUM");
dt.Columns.Add("SEATSMAX_B");
foreach (com.XXXXX.sap.bjbidev.Sflight flights in data)
{
DataRow dr = dt.NewRow();
dr[0] = flights.Carrid;
dr[1] = flights.Connid;
dr[2] = flights.Fldate;
dr[3] = flights.Price;
dr[4] = flights.Currency;
dr[5] = flights.Planetype;
dr[6] = flights.Seatsmax;
dr[7] = flights.Seatsocc;
dr[8] = flights.Paymentsum;
dr[9] = flights.SeatsmaxB;
dt.Rows.Add(dr);
}
GridView1.DataSource = dt.DefaultView;
GridView1.DataBind();
}
}
總結(jié)
以上是生活随笔為你收集整理的SAP 建立WebService的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SAP常用的科目字段状态组设置
- 下一篇: 从Run Simple到Run Live