//发料接口
/// <summary>
/// 根据发料单号获取发料单内所包含的物料信息,根据生产订单的编号,发料至生产订单
/// </summary>
/// <param name="prd"></param>
/// <param name="OrderNum">发料单号</param>
/// <param name="errMsg">错误信息</param>
/// <returns></returns>
public static int SendOutStorageMtrReq(RfcDestination prd, List<MaterialDetail> list, out string errMsg)
{
errMsg = "";
try
{
RfcRepository SapRfcRepository = prd.Repository;
IRfcFunction function = SapRfcRepository.CreateFunction("Z_SAP_PP_MTRRSM");
//IRfcStructure strCode = function.GetStructure("GOODSMVT_CODE");
//strCode.SetValue("GM_CODE", "03");
//IRfcStructure strHeader = function.GetStructure("GOODSMVT_HEADER");
//ln.Write("1", DateTime.Today.ToString("yyyy-MM-dd"));
//strHeader.SetValue("PSTNG_DATE", DateTime.Today.ToString("yyyy-MM-dd"));
//strHeader.SetValue("DOC_DATE", DateTime.Today.ToString("yyyy-MM-dd"));
//IRfcFunction functioncmt = SapRfcRepository.CreateFunction("BAPI_TRANSACTION_COMMIT");
RfcSessionManager.BeginContext(prd);
//functioncmt.SetValue("WAIT", "X");
IRfcTable iTable = function.GetTable("GOODSMVT_ITEM");//获取表结构
for (int i = 0; i < list.Count; i++)
{
iTable.Append();
iTable.SetValue("ORDERID", list[i].ORDERID);//生产批次号
iTable.SetValue("MATERIAL", list[i].MATERIAL);//物料编号
iTable.SetValue("ENTRY_QNT", list[i].ENTRY_QNT);//领料数量
iTable.SetValue("ENTRY_UOM", list[i].ENTRY_UOM);//物料的单位
iTable.SetValue("PLANT", list[i].PLANT);//工厂
iTable.SetValue("STGE_LOC", list[i].STGE_LOC);//库存地 线边仓的对应SAP编号
iTable.SetValue("MOVE_TYPE", "261");//移动类型
iTable.SetValue("RESERV_NO", list[i].RESERV_NO);
iTable.SetValue("RES_ITEM", list[i].RES_ITEM);
}
function.Invoke(prd);
//functioncmt.Invoke(prd);
RfcSessionManager.EndContext(prd);
IRfcTable Return = function.GetTable("RETURN");
if (Return.RowCount > 0)
{
if (Return.GetString("TYPE").ToString().Trim() == "I")
{
//Suess.Text = RETURN.GetString("MESSAGE").ToString();
errMsg = "凭证号:" + function.GetString("NUMBER").Trim();
prd = null;
return 0;
}
else if (Return.GetString("TYPE").ToString().Trim() == "E")
{
errMsg = Return.GetString("MESSAGE").ToString();
prd = null;
return -1;
}
else
return -1;
}
else
{
IRfcStructure strReturn = function.GetStructure("GOODSMVT_HEADRET");
errMsg = strReturn.GetValue("MAT_DOC").ToString();
return 0;
}
}
catch (System.Exception ex)
{
errMsg = ex.Message;
return -1;
}
}
SAP发料接口实现(C#版)
猜你喜欢
转载自blog.csdn.net/shenjqiang/article/details/84548848
今日推荐
周排行