SAP .net连接器错误请输入出售给派对或运送到派对 [英] SAP .net connector error Please enter sold to party or ship to party
问题描述
我正在尝试使用SAP nco 3 .net连接器将SAP与.net Web应用程序集成。我已成功连接到SAP系统,但当我尝试使用BAPIBAPI_SALESORDER_CREATEFROMDAT1在SAP中创建销售订单时,我收到以下错误:请输入出售给派对或运送到派对。以下是我正在使用的代码段:
I am trying to integrate SAP with a .net web application using SAP nco 3 .net connector. I have successfully connected to the SAP system but when i try to create a sales order in SAP using BAPI "BAPI_SALESORDER_CREATEFROMDAT1" i get the following error: "Please enter sold to party or ship to party". Following is the code snippet I am using:
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...
}
}
}
请在通话中告知我的错误。我在下面的代码片段中正确地传递了合作伙伴部分:
Please suggest what I am doing wrong in the call. I am properly passing the Partner detalis in the following code snippet:
// Partner
salesPartnersStruct.SetValue("PARTN_ROLE", "SP");
salesPartnersStruct.SetValue("PARTN_NUMB", "102003");
谢谢,
Naveed
Thanks,
Naveed
推荐答案
// Partner
salesPartnersStruct.SetValue("PARTN_ROLE", "SP");
salesPartnersStruct.SetValue("PARTN_NUMB", "102003");
将以上代码替换为
//合作伙伴
replace the above code with
// Partner
salesPartnersStruct.SetValue("PARTN_ROLE", "AG");
salesPartnersStruct.SetValue("PARTN_NUMB", "102003");
它会起作用。
It will work.
这篇关于SAP .net连接器错误请输入出售给派对或运送到派对的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!