C# .net 调用ERP接口

public string GetVoucherNo(DataTable dt, string Plant, string Username)
{

try
{
string nowDate = DateTime.Now.ToString("yyyyMMdd");

RfcDestination dest = rfc_public.GetRfcDestination("SMP");
IRfcFunction func = dest.Repository.CreateFunction("ZGOODS_MOVE");


func.SetValue("I_OPTYPE", "A1");//操作类别

IRfcStructure rfcstr = func.GetStructure("I_GOODSMVT_HEADER");//所属结构 传入
rfcstr.SetValue("HEADER_TXT", "凭证抬头文本");//凭证抬头文本

rfcstr = func.GetStructure("ZLF_LOG");//所属结构 传入
rfcstr.SetValue("OP_USER", Username);//用户名
rfcstr.SetValue("MACHINE_NAME", Username);//电脑名
IRfcTable rfcTable = func.GetTable("T_GM_ITEM");//所属表 传入

for (int i = 0; i < dt.Rows.Count; i++)
{
string Material_Code = dt.Rows[i]["物料编码"].ToString();
string Count = dt.Rows[i]["数量"].ToString();
string CompanyNo = dt.Rows[i]["公司代号"].ToString();
DataSet dsCompanyNo = _bll.GetCompanyNo(CompanyNo);
string UNITCODE = dsCompanyNo.Tables[0].Rows[0]["UNITCODE"].ToString();

rfcTable.Insert();
rfcTable.CurrentRow.SetValue("MATERIAL", dt.Rows[i]["物料编码"].ToString());//物料号 物料编码
rfcTable.CurrentRow.SetValue("PLANT", UNITCODE);//工厂
rfcTable.CurrentRow.SetValue("STGE_LOC", "");//库存地点
rfcTable.CurrentRow.SetValue("BATCH", dt.Rows[i]["炉批号"].ToString());//批次
rfcTable.CurrentRow.SetValue("STCK_TYPE", "X");//库存类别
rfcTable.CurrentRow.SetValue("ENTRY_UOM", dt.Rows[i]["单位"].ToString());//单位
rfcTable.CurrentRow.SetValue("ENTRY_QNT", dt.Rows[i]["数量"].ToString());//数量
rfcTable.CurrentRow.SetValue("PO_NUMBER", dt.Rows[i]["订单号"].ToString());//采购订单
rfcTable.CurrentRow.SetValue("PO_ITEM", dt.Rows[i]["行号"].ToString());//采购订单行号
rfcTable.CurrentRow.SetValue("ITEM_TEXT", "");//项目文本

}

func.Invoke(dest);
rfcstr = func.GetStructure("O_GOODSMVT_HEADRET");//所属结构 传出
string VoucherNo = rfcstr.GetValue("MAT_DOC").ToString();//物料凭证编号
if (VoucherNo != "")
return VoucherNo;

rfcTable = func.GetTable("RETURN");//所属表 传出

if (rfcTable.RowCount > 0)
{
rfcTable.CurrentIndex = 0;
string type = rfcTable.GetString("TYPE");//返回消息类型
string message = rfcTable.GetString("MESSAGE");//消息文本
}
return "";
}
catch (Exception ex)
{
return "";
}

接口文档

}

原文地址:https://www.cnblogs.com/codejimmygao/p/14604775.html