3 Replies Latest reply: Aug 19, 2012 6:05 AM by yarden jacobson RSS

using BAPI_SALESORDER_CHANGE to add configuration fail

sam zeng
Currently Being Moderated

Hi experts,

 

I am using BAPI_SALESORDER_CHANGE to change an sales order's infomation, I can change the header info, but the configuration was not changed. It show the message: No data was changed. here is my code, any help will be appricated.

 

                IRfcFunction changeOrderAPI = destination.Repository.CreateFunction("BAPI_SALESORDER_CHANGE");
                IRfcFunction changeCommit = destination.Repository.CreateFunction("BAPI_TRANSACTION_COMMIT");

                changeCommit.SetValue("WAIT", "X");

                changeOrderAPI.SetValue("SALESDOCUMENT", "3100102625");

                IRfcStructure SAPStrucOrder_Header_In = changeOrderAPI.GetStructure("ORDER_HEADER_IN");               
                SAPStrucOrder_Header_In.SetValue("PURCH_NO_C", "050505");
                SAPStrucOrder_Header_In.SetValue("PURCH_NO_S", "050505");

                IRfcStructure SAPStructureOrder_Header_Inx = changeOrderAPI.GetStructure("ORDER_HEADER_INX");
                SAPStructureOrder_Header_Inx.SetValue("UPDATEFLAG", "U");
                SAPStructureOrder_Header_Inx.SetValue("PURCH_NO_C", "X");
                SAPStructureOrder_Header_Inx.SetValue("PURCH_NO_S", "X");              


                //configuration
                IRfcTable SAPTableOrder_Cfgs_Ref = changeOrderAPI.GetTable("ORDER_CFGS_REF");
                SAPTableOrder_Cfgs_Ref.Append();
                SAPTableOrder_Cfgs_Ref.SetValue("POSEX", "000010");
                SAPTableOrder_Cfgs_Ref.SetValue("CONFIG_ID", "000001");
                SAPTableOrder_Cfgs_Ref.SetValue("ROOT_ID", "00000001");

                IRfcTable SAPTableOrder_Cfgs_Inst = changeOrderAPI.GetTable("ORDER_CFGS_INST");
                SAPTableOrder_Cfgs_Inst.Append();
                SAPTableOrder_Cfgs_Inst.SetValue("CONFIG_ID", "000001");
                SAPTableOrder_Cfgs_Inst.SetValue("INST_ID", "00000001");
                SAPTableOrder_Cfgs_Inst.SetValue("OBJ_TYPE", "MARA");
                SAPTableOrder_Cfgs_Inst.SetValue("CLASS_TYPE", "300");
                SAPTableOrder_Cfgs_Inst.SetValue("OBJ_KEY", "F13000020");
                SAPTableOrder_Cfgs_Inst.SetValue("QUANTITY", "6");
                SAPTableOrder_Cfgs_Inst.SetValue("QUANTITY_UNIT", "PC");

                IRfcTable SAPTableOrder_Cfgs_Part_Of = changeOrderAPI.GetTable("ORDER_CFGS_PART_OF");
                SAPTableOrder_Cfgs_Part_Of.Append();
                SAPTableOrder_Cfgs_Part_Of.SetValue("CONFIG_ID", "000001");
                SAPTableOrder_Cfgs_Part_Of.SetValue("INST_ID", "00000001");
                SAPTableOrder_Cfgs_Part_Of.SetValue("PARENT_ID", "00000001");
                SAPTableOrder_Cfgs_Part_Of.SetValue("OBJ_TYPE", "MARA");
                SAPTableOrder_Cfgs_Part_Of.SetValue("CLASS_TYPE", "300");
                SAPTableOrder_Cfgs_Part_Of.SetValue("OBJ_KEY", "F13000020");

                IRfcTable SAPTableOrder_Cfgs_Value = changeOrderAPI.GetTable("ORDER_CFGS_VALUE");
                SAPTableOrder_Cfgs_Value.Append();
                SAPTableOrder_Cfgs_Value.SetValue("CONFIG_ID", "000001");
                SAPTableOrder_Cfgs_Value.SetValue("INST_ID", "00000001");
                SAPTableOrder_Cfgs_Value.SetValue("CHARC", "MCP3301_08");
                SAPTableOrder_Cfgs_Value.SetValue("VALUE", "002");

               

                RfcSessionManager.BeginContext(destination);
                changeOrderAPI.Invoke(destination);
                changeCommit.Invoke(destination);
                RfcSessionManager.EndContext(destination);

                IRfcTable returnTable = changeOrderAPI.GetTable("RETURN");