1、传入传出都是表

 try{RfcDestination destination = RfcDestinationManager.GetDestination("DEV");RfcFunctionMetadata BAPI_COMPANYCODE_GETDETAIL_MD = destination.Repository.GetFunctionMetadata("ZMM_PR_CHANGE");  //RFC函数名称myfun = BAPI_COMPANYCODE_GETDETAIL_MD.CreateFunction();  //定义输入函数IRfcTable tSAP = myfun.GetTable("IT_PR");for (int i = 0; i < dt.Rows.Count; i++){IRfcStructure struSAP = tSAP.Metadata.LineType.CreateStructure();#regionstruSAP.SetValue("PREQ_NO", dt.Rows[i]["采购申请编号"].ToString());struSAP.SetValue("PREQ_ITEM", dt.Rows[i]["采购申请的项目编号"].ToString());struSAP.SetValue("DELETE_IND", dt.Rows[i]["采购凭证删除标识"].ToString());#endregiontSAP.Append(struSAP);}myfun.SetValue("IT_PR", tSAP); //table 参数myfun.Invoke(destination);IRfcTable dtSAPData = myfun.GetTable("IT_PR");string errRow = "", errMessage = "";for (int i = 0; i < dtSAPData.RowCount; i++){IRfcStructure stru = dtSAPData[i];#region sql = "update MM_purPurchaseApplyDetail set MTYPE = '" + stru.GetValue("MTYPE").ToString().Trim() + "',MESSAGE = '" + stru.GetValue("MESSAGE").ToString().Trim() + "' where BillNo = '" + txt_BillNo.Text.Trim() + "' and RowCode = '" + stru.GetValue("PREQ_ITEM").ToString().Trim() + "' ";if (!DB.AF.sqlExec(sql, sqlconnSAP, out errMsg)){XtraMessageBox.Show("更新PR明细失败!");}#endregionif (stru.GetValue("MTYPE").ToString().Trim() != "S"){errRow += stru.GetValue("PREQ_ITEM").ToString().Trim() + " ";errMessage += "第[" + stru.GetValue("PREQ_ITEM").ToString().Trim() + "]行:" + stru.GetValue("MESSAGE").ToString() + "\n";}}if (errRow.Length > 0){XtraMessageBox.Show("第[" + errRow + "]行Sap单据修改失败!失败原因为:" + "\n" + errMessage);}elseXtraMessageBox.Show("SAP单据修改成功!");}catch (Exception ex){XtraMessageBox.Show(ex.Message);}

2、传入表、返回结构

  RfcDestination destination = RfcDestinationManager.GetDestination("DEV");RfcFunctionMetadata BAPI_COMPANYCODE_GETDETAIL_MD = destination.Repository.GetFunctionMetadata("ZMM_BAPI_GOODSMVT_CREATE_N");  //RFC函数名称myfun = BAPI_COMPANYCODE_GETDETAIL_MD.CreateFunction();  //定义输入函数IRfcTable tSAP = myfun.GetTable("IT_RES");for (int i = 0; i < GV.RowCount; i++){IRfcStructure struSAP = tSAP.Metadata.LineType.CreateStructure();#regionstruSAP.SetValue("RSNUM", "");  //预留/相关需求的编号struSAP.SetValue("RSPOS", "");  //预留 / 相关需求的项目编号struSAP.SetValue("AUFNR", GV.GetRowCellValue(i, "订单号").ToString());  //订单号#endregiontSAP.Append(struSAP);}myfun.SetValue("IT_RES", tSAP); //table 参数try{myfun.Invoke(destination);}catch (Exception ex){XtraMessageBox.Show("调用接口失败!"+ex.Message);}IRfcStructure getstu = myfun.GetStructure("O_RETURN");DOCNO = getstu.GetValue("DOCNO").ToString();MTYPE = getstu.GetValue("MSGTP").ToString();MESSAGE = getstu.GetValue("MSTXT").ToString();

3、传入表、返回字段

   try{RfcDestination destination = RfcDestinationManager.GetDestination("DEV");RfcFunctionMetadata BAPI_COMPANYCODE_GETDETAIL_MD = destination.Repository.GetFunctionMetadata("ZMM_PR_CREATE");  //RFC函数名称myfun = BAPI_COMPANYCODE_GETDETAIL_MD.CreateFunction();  //定义输入函数//IRfcFunction func = rfcRep.CreateFunction("ZMM_IS_PR_CREATE");IRfcTable tSAP = myfun.GetTable("IT_PR");for (int i = 0; i < dt.Rows.Count; i++){IRfcStructure struSAP = tSAP.Metadata.LineType.CreateStructure();#regionstruSAP.SetValue("PREQ_ITEM", dt.Rows[i]["采购申请的项目编号"].ToString());struSAP.SetValue("PR_TYPE", dt.Rows[i]["订单类型"].ToString());struSAP.SetValue("PR_TEXT", dt.Rows[i]["备注"].ToString());struSAP.SetValue("PLANT", dt.Rows[i]["工厂"].ToString());struSAP.SetValue("PUR_GROUP", dt.Rows[i]["采购组"].ToString());#endregiontSAP.Append(struSAP);}myfun.SetValue("IT_PR", tSAP); //table 参数myfun.Invoke(destination);EV_NUMBER = myfun.GetString("EV_NUMBER");MTYPE = myfun.GetString("MTYPE");MESSAGE = myfun.GetString("MESSAGE");

4、传入字段、返回表

 sesstab.Clear();try{RfcDestination destination = RfcDestinationManager.GetDestination("DEV");RfcFunctionMetadata BAPI_COMPANYCODE_GETDETAIL_MD = destination.Repository.GetFunctionMetadata("ZMM_GET_STOCK_QUANTITY_MUL");  //RFC函数名称myfun = BAPI_COMPANYCODE_GETDETAIL_MD.CreateFunction();  //myfun.SetValue("IV_MATERIAL", "" + txt_MaterialID.Text.Trim() + "");   //物料编号myfun.SetValue("IV_PLANT", "" + ddl_Company.EditValue.ToString().Trim() + "");   //工厂myfun.SetValue("IV_STGE_LOC", "" + ddl_Warehouse.EditValue.ToString().Trim() + "");   //库存地点myfun.SetValue("IV_BATCH", "" + txt_BatchNo.Text.Trim() + "");   //批号myfun.Invoke(destination);MTYPE = myfun.GetString("MTYPE");MESSAGE = myfun.GetString("MESSAGE");IRfcTable tSAP = myfun.GetTable("ET_STOCK");XtraMessageBox.Show(MTYPE+":"+ MESSAGE);for (int i = 0; i < tSAP.RowCount; i++){IRfcStructure stru = tSAP[i];DataRow dr = sesstab.NewRow();dr["物料编号"] = stru.GetValue("MATERIAL").ToString();dr["工厂"] = stru.GetValue("PLANT").ToString();dr["库存地点"] = stru.GetValue("STGE_LOC").ToString();dr["批号"] = stru.GetValue("BATCH").ToString();dr["库存"] = stru.GetValue("LABST").ToString();dr["物料描述"] = stru.GetValue("MAKTX").ToString();dr["规格型号"] = stru.GetValue("GROES").ToString();dr["基本计量单位"] = stru.GetValue("MEINS").ToString();sesstab.Rows.Add(dr);}GC.DataSource = sesstab;}catch (Exception ex){XtraMessageBox.Show(ex.Message);}

C#与SAP接口对接相关推荐

  1. 2021.12.9 java代码对接sap接口(soap协议、webservice)

    2021.12.9 java对接sap接口(soap协议.webservice) 问题:对接sap接口,代码调试 执行: 1.soapui 软件测试是否能正确访问 未能正确访问,因为未在本地配置域名映 ...

  2. springboot 对接sap接口,不生成连接配置文件文件的方法。

    springboot 对接sap接口,不生成连接配置文件文件的方法. 网上大部分都是要生成两个连接文件,导致部署的时候,要考虑jar和文件怎么部署,很不方便.本文只记录,不生成连接文件这一种方式. 1 ...

  3. C#如何连接SAP调用SAP接口函数

    在项目中我们经常会遇到SAP与其他应用系统对接的情况,如OA对接SAP的FI.HR模块,生产系统对接SAP的MM模块等等.这里和大家介绍下C#如果调用SAP接口,从而调用SAP接口函数. 下面先贴出代 ...

  4. SAP接口调用公共方法

    在和SAP进行系统对接时,提供的是RFC接口,每个接口函数写一个调用方法的话会比较麻烦,现对其进行一些封装,通过字段映射的方式去实现接口的调用. 1.首先,新建一个类,以函数名作为类名,类成员为传参参 ...

  5. 电商适用电子面单接口对接案例

    电子面单接口现在有快递公司.菜鸟和快递鸟提供 快递公司是一家家合作,要接口文档,逐一对接 菜鸟和快递鸟是电子面单接口集成方,能打印多家快递电子面单,菜鸟目前支持15家,快递鸟支持20家,基本上都是常用 ...

  6. 金审系统与SAP接口

    https://blog.csdn.net/forever_crazy/article/details/51187636 会计信息是国家审计监督的重要内容,保证会计信息准确透明,遏制会计信息失真,是全 ...

  7. 用VB开发SAP接口程序

    SAP R/3系统是业界最先进.最稳定的ERP系统,国际和国内大型企业采用该系统的比例遥遥领先于其它ERP系统的总和.SAP R/3内建了二次开发平台,使用的开发语言叫做ABAP,是一种类似于COBO ...

  8. 系统接口对接的进度工作应该谁来干_第三方分账系统开发的那些坑,给你节省几十万...

    小猫接触过上百个平台经营者,他们在咨询第三方分账系统时,都会或多或少的抱怨原有合作产品的坑.比如"接口对接速度过慢,影响上线进度"."系统体验不好,导致平台用户流失严重& ...

  9. JEECG支付服务窗专题 - 平台与服务窗接口对接

    一.准备支付宝服务窗各种密钥,填写管理平台服务窗帐号信息 1. 私钥.应用公钥.支付宝公钥.APPID 私钥.应用公钥.支付宝公钥是由支付宝官方开放平台提供的,具体密钥配置请查看官方文档,本文暂不说明 ...

最新文章

  1. 绘制你的世界:探索构图和真实的深度感
  2. CCF真题 201312-2 ISBN号码
  3. 关于kafka生产者相关监控指标的理解(未解决)
  4. ubuntu20.04安装讯飞输入法(失败经历)
  5. eShopOnContainers 知多少[7]:Basket microservice
  6. 安装使用sublime 对比工具sublimerge
  7. 阿里开源首个移动AI项目,淘宝同款推理引擎
  8. 微信小程序input安卓手机获取焦点时候上移
  9. 51Nod-1049 最大子段和【DP】
  10. chromium的部署工具depot_tools和gclient
  11. 汇编语言输出斐波那契数列
  12. iOS AVPlayer的那些坑
  13. NS3 Tracing System详解
  14. Mac与Linux SSH无密登陆(互信)
  15. 转载:H.264 H.265 硬件解码芯片?
  16. Python 错误 RuntimeError: CUDA error (10): invalid device ordinal
  17. 小草音乐播放器[emlog插件]
  18. 5-3 人际资源整合-辨别同事、结交优质同事、拒绝烂同事
  19. 进入旅游营销时代,携程有什么“大招”?
  20. OpenDaylight系类教程(十二)-- Release Notes

热门文章

  1. 截取数组对应的长度值(形成一个新的数组)
  2. C#编译出现Program does not contain a static ‘Main‘ method suitable for an entry point 如何解决
  3. 各省(包括西藏)财政税收、收入、支出整理面板指标合集(1995-2021)
  4. 表格html适应手机端,纯CSS实现响应式表格适应移动端
  5. CRM 活动类型单据结束时间
  6. 如何用c语言return数组函数
  7. 关于日志打印的几点建议
  8. 【Android】5.0录音权限处理时遇到的问题
  9. CCS6软件及仿真器驱动安装
  10. APIJSON使用和搭建