on 08-07-2012 3:30 AM
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");
Hi,
After setting value to table you should set it to function ( before invocation ).
There's an example in :
Best regards,
Yarden Jacobson
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi yarden,
Thanks for your response. I read the linked article you provided and set the table to the function, I got the same error yet. Any suggestion? Thanks in advanced!
Here is the code.
//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");
SAPTableOrder_Cfgs_Ref.SetValue("COMPLETE", "T");
SAPTableOrder_Cfgs_Ref.SetValue("CONSISTENT", "T");
SAPTableOrder_Cfgs_Ref.SetValue("CBASE_ID", "501F2FBCEEA96C14E1000000C0A80089");
SAPTableOrder_Cfgs_Ref.SetValue("CBASE_ID_TYPE", "G");
//Set table to the function
changeOrderAPI.SetValue("ORDER_CFGS_REF", SAPTableOrder_Cfgs_Ref);
Hi,
If FM return this message it not necessarily because of empty parameters.
There's are certain ways you should invoke FM ( even when working on-line in ECC ).
I Suggest you check two things :
best regards,
Yarden
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.