ASP.Net MVC3连接SAP实践
程序员文章站
2023-08-25 23:57:25
[csharp]
using system;
using system.collections.generic;
using system.linq;
using...
[csharp]
using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.m;
using sap.middleware.connector;
using system.data;
namespace sapmvc.controllers
{
public class homecontroller : controller
{
string matnr = string.empty;
public actionresult index()
{
viewbag.message = "welcome to asp.net mvc!";
nco();
//nco2();
return view();
}
public void nco2()
{
rfcconfigparameters rfcpar = new rfcconfigparameters();
//rfcpar.add(rfcconfigparameters.name, "con");
//rfcpar.add(rfcconfigparameters.appserverhost, "192.168.1.3");
//rfcpar.add(rfcconfigparameters.client, "800");
//rfcpar.add(rfcconfigparameters.user, "userid");
//rfcpar.add(rfcconfigparameters.password, "password");
//rfcpar.add(rfcconfigparameters.systemnumber, "02");
//rfcpar.add(rfcconfigparameters.language, "en");
rfcpar.add(rfcconfigparameters.name, "con");
rfcpar.add(rfcconfigparameters.appserverhost, "192.168.1.3"); //sap主机ip
rfcpar.add(rfcconfigparameters.systemnumber, "00"); //sap实例
rfcpar.add(rfcconfigparameters.user, "mengxin"); //用户名
rfcpar.add(rfcconfigparameters.password, "5239898"); //密码
rfcpar.add(rfcconfigparameters.client, "888"); // client
//rfcpar.add(rfcconfigparameters.language, "zh"); //登陆语言
//rfcpar.add(rfcconfigparameters.poolsize, "5");
//rfcpar.add(rfcconfigparameters.maxpoolsize, "10");
//rfcpar.add(rfcconfigparameters.idletimeout, "60");
rfcdestination dest = rfcdestinationmanager.getdestination(rfcpar);
rfcrepository rfcrep = dest.repository;
irfcfunction myfun = null;
myfun = rfcrep.createfunction("sap里面的函数名称");
myfun.setvalue("vtype", "0");//sap里面的传入参数
myfun.invoke(dest);
irfctable irftable = myfun.gettable("it_zmytb2");
//提前实例化一个空的表结构出来
datatable dt = new datatable();
dt.columns.add("userid");
dt.columns.add("userpwd");
dt.columns.add("useraddress");
//循环把irfctable里面的数据放入table里面,因为类型不同,不可直接使用。
for (int i = 0; i < irftable.count; i++)
{
irftable.currentindex = i;
datarow dr = dt.newrow();
dr["userid"] = irftable.getstring("userid");
dr["userpwd"] = irftable.getstring("userpwd");
dr["useraddress"] = irftable.getstring("useraddress");
dt.rows.add(dr);
}
}
public void nco()
{
idestinationconfiguration id = new mybackendconfig();
rfcdestinationmanager.registerdestinationconfiguration(id);
rfcdestination prd = rfcdestinationmanager.getdestination("prd_000");
rfcdestinationmanager.unregisterdestinationconfiguration(id);
nco(prd);
}
public void nco(rfcdestination prd)
{
rfcrepository repo = prd.repository;
irfcfunction companybapi = repo.createfunction("zrfc_mara_info"); //调用函数名
companybapi.setvalue("matnr", matnr); //设置import的参数
companybapi.invoke(prd); //执行函数
irfctable table = companybapi.gettable("it_mara"); //获取相应的品号内表
string maktx = companybapi.getvalue("maktx").tostring(); //获取品名
datatable dt = new datatable(); //新建表格
dt.columns.add("品号"); //表格添加一列
for (int i = 0; i < table.rowcount; i++)
{
table.currentindex = i; //当前内表的索引行
datarow dr = dt.newrow();
dr[0] = table.getstring("matnr"); //获取表格的某行某列的值
dt.rows.add(dr); //填充该表格的值
}
if (matnr == "")
{
for (int i = 0; i < dt.rows.count; i++)
{
//this.combobox1.items.add(dt.rows[i][0].tostring()); //填充下拉框
}
}
//this.label1.text = maktx; //显示品名
prd = null;
repo = null;
}
public actionresult about()
{
return view();
}
//登陆sap前的准备工作
public class mybackendconfig : idestinationconfiguration
{
public rfcconfigparameters getparameters(string destinationname)
{
if ("prd_000".equals(destinationname))
{
rfcconfigparameters parms = new rfcconfigparameters();
//parms.add(rfcconfigparameters.name, "prd_000");
parms.add(rfcconfigparameters.appserverhost, "192.168.1.3"); //sap主机ip
parms.add(rfcconfigparameters.systemnumber, "00"); //sap实例
parms.add(rfcconfigparameters.user, "mengxin"); //用户名
parms.add(rfcconfigparameters.password, "5239898"); //密码
parms.add(rfcconfigparameters.client, "888"); // client
parms.add(rfcconfigparameters.language, "zh"); //登陆语言
parms.add(rfcconfigparameters.poolsize, "5");
parms.add(rfcconfigparameters.maxpoolsize, "10");
parms.add(rfcconfigparameters.idletimeout, "60");
return parms;
}
else return null;
}
public bool changeeventssupported()
{
return false;
}
public event rfcdestinationmanager.configurationchangehandler configurationchanged;
}
}
}
using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.m;
using sap.middleware.connector;
using system.data;
namespace sapmvc.controllers
{
public class homecontroller : controller
{
string matnr = string.empty;
public actionresult index()
{
viewbag.message = "welcome to asp.net mvc!";
nco();
//nco2();
return view();
}
public void nco2()
{
rfcconfigparameters rfcpar = new rfcconfigparameters();
//rfcpar.add(rfcconfigparameters.name, "con");
//rfcpar.add(rfcconfigparameters.appserverhost, "192.168.1.3");
//rfcpar.add(rfcconfigparameters.client, "800");
//rfcpar.add(rfcconfigparameters.user, "userid");
//rfcpar.add(rfcconfigparameters.password, "password");
//rfcpar.add(rfcconfigparameters.systemnumber, "02");
//rfcpar.add(rfcconfigparameters.language, "en");
rfcpar.add(rfcconfigparameters.name, "con");
rfcpar.add(rfcconfigparameters.appserverhost, "192.168.1.3"); //sap主机ip
rfcpar.add(rfcconfigparameters.systemnumber, "00"); //sap实例
rfcpar.add(rfcconfigparameters.user, "mengxin"); //用户名
rfcpar.add(rfcconfigparameters.password, "5239898"); //密码
rfcpar.add(rfcconfigparameters.client, "888"); // client
//rfcpar.add(rfcconfigparameters.language, "zh"); //登陆语言
//rfcpar.add(rfcconfigparameters.poolsize, "5");
//rfcpar.add(rfcconfigparameters.maxpoolsize, "10");
//rfcpar.add(rfcconfigparameters.idletimeout, "60");
rfcdestination dest = rfcdestinationmanager.getdestination(rfcpar);
rfcrepository rfcrep = dest.repository;
irfcfunction myfun = null;
myfun = rfcrep.createfunction("sap里面的函数名称");
myfun.setvalue("vtype", "0");//sap里面的传入参数
myfun.invoke(dest);
irfctable irftable = myfun.gettable("it_zmytb2");
//提前实例化一个空的表结构出来
datatable dt = new datatable();
dt.columns.add("userid");
dt.columns.add("userpwd");
dt.columns.add("useraddress");
//循环把irfctable里面的数据放入table里面,因为类型不同,不可直接使用。
for (int i = 0; i < irftable.count; i++)
{
irftable.currentindex = i;
datarow dr = dt.newrow();
dr["userid"] = irftable.getstring("userid");
dr["userpwd"] = irftable.getstring("userpwd");
dr["useraddress"] = irftable.getstring("useraddress");
dt.rows.add(dr);
}
}
public void nco()
{
idestinationconfiguration id = new mybackendconfig();
rfcdestinationmanager.registerdestinationconfiguration(id);
rfcdestination prd = rfcdestinationmanager.getdestination("prd_000");
rfcdestinationmanager.unregisterdestinationconfiguration(id);
nco(prd);
}
public void nco(rfcdestination prd)
{
rfcrepository repo = prd.repository;
irfcfunction companybapi = repo.createfunction("zrfc_mara_info"); //调用函数名
companybapi.setvalue("matnr", matnr); //设置import的参数
companybapi.invoke(prd); //执行函数
irfctable table = companybapi.gettable("it_mara"); //获取相应的品号内表
string maktx = companybapi.getvalue("maktx").tostring(); //获取品名
datatable dt = new datatable(); //新建表格
dt.columns.add("品号"); //表格添加一列
for (int i = 0; i < table.rowcount; i++)
{
table.currentindex = i; //当前内表的索引行
datarow dr = dt.newrow();
dr[0] = table.getstring("matnr"); //获取表格的某行某列的值
dt.rows.add(dr); //填充该表格的值
}
if (matnr == "")
{
for (int i = 0; i < dt.rows.count; i++)
{
//this.combobox1.items.add(dt.rows[i][0].tostring()); //填充下拉框
}
}
//this.label1.text = maktx; //显示品名
prd = null;
repo = null;
}
public actionresult about()
{
return view();
}
//登陆sap前的准备工作
public class mybackendconfig : idestinationconfiguration
{
public rfcconfigparameters getparameters(string destinationname)
{
if ("prd_000".equals(destinationname))
{
rfcconfigparameters parms = new rfcconfigparameters();
//parms.add(rfcconfigparameters.name, "prd_000");
parms.add(rfcconfigparameters.appserverhost, "192.168.1.3"); //sap主机ip
parms.add(rfcconfigparameters.systemnumber, "00"); //sap实例
parms.add(rfcconfigparameters.user, "mengxin"); //用户名
parms.add(rfcconfigparameters.password, "5239898"); //密码
parms.add(rfcconfigparameters.client, "888"); // client
parms.add(rfcconfigparameters.language, "zh"); //登陆语言
parms.add(rfcconfigparameters.poolsize, "5");
parms.add(rfcconfigparameters.maxpoolsize, "10");
parms.add(rfcconfigparameters.idletimeout, "60");
return parms;
}
else return null;
}
public bool changeeventssupported()
{
return false;
}
public event rfcdestinationmanager.configurationchangehandler configurationchanged;
}
}
}