SAP .net连接器错误请输入出售给派对或运送到派对 [英] SAP .net connector error Please enter sold to party or ship to party

查看:95
本文介绍了SAP .net连接器错误请输入出售给派对或运送到派对的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆