using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
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;
}
}
}
详细解决方案
ASP.Net MVC3联接SAP实践
热度:474 发布时间:2013-04-07 12:50:11.0
相关解决方案
- spring mvc3 使用jackson返回json时候无限循环
- 关于一个网站(基于EF 和 MVC3)用户实体的一个疑问解决方案
- 关于一个网站(基于EF 跟 MVC3)用户实体的一个疑问
- asp.net mvc3.0+sqlserver 高并发日记系统解决方案,求思路
- 打个小广告,mvc3 学习群:198031493 欢迎大伙儿加入
- MVC3 + jquery +ajax 来实现动态的下拉框,该怎么解决
- MVC3 页面跳转,该怎么处理
- ASP.NET MVC3 应用kindeditor编辑器获取不到值
- mvc3 的Rezor视图上如何实现递归生成树
- .NET MVC3 怎么将网站的前台和后台管理起来
- MVC3 怎么使用两种validation
- asp.net MVC3.0项目发布到IIS5.1有关问题
- MVC3 inputfile 坑爹有关问题
- 问一个VS2012的有关问题,VS2012 MVC3.0的智能提示,为英文,估计MVC4.0的也是,没有看,现在怎样解决啊
- MVC3.0 Model主外键关联有关问题 设置foreignkey后取不到数据,null
- mvc3+jquery validation怎么验证日期
- MVC3 前台 传到 后台
- MVC3 删除有关问题。
- vs2012 使用 mvc3.0 调用Response.Write有关问题
- MVC3、radio单选按钮有关问题,
- MVC3 平添和修改共用一个视图文件
- mvc3 razor发动机视图中从哪个部分开始是body部分
- mvc3.0 上中文乱码
- MVC3 开发交付表单
- MVC3 共用变量如何避免
- MVC3 输出时间格式解决方案
- MVC3.0 修改商品提交时出错。该如何处理
- MVC3.0+SQL语句解决方法
- mvc3.0 实业 controller view 关系
- .net mvc3 验证有关问题