SAP .NET コネクタを使用して SAP を .NET Web アプリケーションと統合しようとしています。
SAP システムに正常に接続しましたが、SAP を使用して販売注文を作成しようとすると、BAPI_SALESORDER_CREATEFROMDAT1
次のエラーが発生します。
販売先または出荷先を入力してください。
私が使用するコードスニペット:
public class CreateSalesOrder
{
public string CreateOrder(RfcDestination destination)
{
try
{
RfcRepository repo = destination.Repository;
IRfcFunction salesDoc = repo.CreateFunction("BAPI_SALESORDER_CREATEFROMDAT1");
IRfcFunction salesDocCommit = repo.CreateFunction("BAPI_TRANSACTION_COMMIT");
IRfcStructure salesHeader = salesDoc.GetStructure("ORDER_HEADER_IN");
IRfcTable salesItems = salesDoc.GetTable("ORDER_ITEMS_IN");
IRfcTable salesPartners = salesDoc.GetTable("ORDER_PARTNERS");
IRfcStructure salesItemsStruct = salesItems.Metadata.LineType.CreateStructure();
IRfcStructure salesPartnersStruct = salesPartners.Metadata.LineType.CreateStructure();
IRfcStructure salesPartnersStructRow2 = salesPartners.Metadata.LineType.CreateStructure();
//Sales Header
salesHeader.SetValue("DOC_TYPE", "ZDLR");
salesHeader.SetValue("SALES_ORG", "1000");
salesHeader.SetValue("DISTR_CHAN", "00");
salesHeader.SetValue("DIVISION", "00");
salesHeader.SetValue("SALES_OFF", "1001");
//Sales Items
salesItemsStruct.SetValue("ITM_NUMBER", "323");
salesItemsStruct.SetValue("PLANT", "1001");
salesItemsStruct.SetValue("MATERIAL", "20000206");
salesItemsStruct.SetValue("TARGET_QTY", "200");
salesItemsStruct.SetValue("REQ_QTY", "200");
// Partner
salesPartnersStruct.SetValue("PARTN_ROLE", "SP");
salesPartnersStruct.SetValue("PARTN_NUMB", "102003");
RfcSessionManager.BeginContext(destination);
salesDoc.Invoke(destination);
salesDocCommit.Invoke(destination);
RfcSessionManager.EndContext(destination);
return "";
}
catch (RfcCommunicationException e)
{
return e.ToString();
}
catch (RfcLogonException e)
{
// user could not logon...
return e.ToString();
}
catch (RfcAbapRuntimeException e)
{
// serious problem on ABAP system side...
return e.ToString();
}
catch (RfcAbapBaseException e)
{
return e.ToString();
// The function module returned an ABAP exception, an ABAP message
// or an ABAP class-based exception...
}
}
}
電話で私が間違っていることを教えてください。次のコード スニペットでパートナーの詳細を適切に渡します。
// Partner
salesPartnersStruct.SetValue("PARTN_ROLE", "SP");
salesPartnersStruct.SetValue("PARTN_NUMB", "102003");
ありがとう、ナビード