‎2011 Jan 28 3:54 AM
Hi All
I'm trying to use 'BAPI_ALM_ORDER_MAINTAIN' for 'IW32'.
I can't update Zfields using EXTENSION_IN parameter.
my code is below.
please check it.
-
IW_METHODS-OBJECTTYPE = SPACE.
IW_METHODS-METHOD = 'SAVE'.
IW_METHODS-OBJECTKEY = SPACE.
APPEND IW_METHODS TO IT_METHODS.
IW_EXTENSION_IN-STRUCTURE = 'BAPI_TE_AUFK'.
IW_EXTENSION_IN-VALUEPART1+0(12) = W_AUFNR.
IW_EXTENSION_IN-VALUEPART1+12(4) = W_ZZFIELD01. "Zfield
APPEND IW_EXTENSION_IN TO IT_EXTENSION_IN.
CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'
TABLES
IT_METHODS = IT_METHODS
EXTENSION_IN = IT_EXTENSION_IN
RETURN = IT_RETURN.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = COS_X.
-
I execute this program, and I checked IT_RETURN value.
there are only type 'S' message.
there isn't type 'E' message.
If you have gooe ideas, please let me know.
Regards.
Rie.
‎2011 Jan 28 5:54 AM
You will have to catch the Extension fields in BADI and then update it to the Internal table which has these Z Fields.
‎2011 Jan 28 5:54 AM
You will have to catch the Extension fields in BADI and then update it to the Internal table which has these Z Fields.
‎2011 Jan 28 6:15 AM
Thank you for reply, Pranu Pranu.
I made BADI 'IBAPI_ALM_ORD_MODIFY'.
but I can't update Zfield yet.
BADI method MODIFY_INPUT_DATA has CT_HEADER_INT (method parameter) and CT_HEADER_INT_UP,
I found my Zfield in CT_HEADER_INT.
but I cna't found Zfield in CT_HEADER_INT_UP.
How can I code in BADI?
if you know that, please let me know.
Regards,
Rie.
‎2011 Jan 28 6:27 AM
Implement the BADI - SE19.
Click on the method and it will take you to code.
Add your logic there.
Hope this helps.
‎2011 Jan 28 6:32 AM
Thank you your reply.
I added my code in SE19.
but I can't found my Zfield parameters.
(I can't transfer to Zfied value. I can catch EXTENSION_IN parameter value)
Do I need to entension any structure?
CI_AUFK has already has my Zfeild.
Regards.
Rie.
‎2011 Jan 28 6:44 AM
In which tabel you appended the Z fields?
That table should be available in the BADI.
Might be other BADI. Dont have a system to check now.
You said - CT_HEADER_INT has your Z fields. Just read the extension data and push the values in CT_HEADER_INT.
Edited by: Pranu Pranu on Jan 28, 2011 7:45 AM
‎2011 Jan 28 6:48 AM
I add my Zfield in CI_AUFK.
MODIFY_INPUT_DATA parameter CT_HEADER_INT has CI_AUFK fields.
but parameter CT_HEADER_INT_UP doesn't have CI_AUFK fields.
so I can't update CI_AUFK fields.
do you have any good idea?
Regards.
Rie.
‎2011 Jan 28 6:52 AM
‎2011 Jan 28 6:53 AM
>try appending CT_HEADER_INT.
I did it.
but It doesn't work. ;-<
‎2011 Jan 28 7:03 AM
Hi,
don't forget to set the flag in CT_HEADER_INT_UP for all changed field values in CT_HEADER_INT.
Regards
Klaus
‎2011 Jan 28 7:17 AM
Append structure - IBAPI_CAUFVD_UPDATE and set the flag as Klaus said.
Set the flags for Z fields.
‎2011 Feb 01 12:39 AM
Thank you for your advice, Pranu Pranu .
I appended the structure ( has flag-fieds) in IBAPI_CAUFVD_UPDATE, so finally I updated my Zfields.
I solved my problem.
I appreciate you help-ing me !
Regards.
Rie.
‎2011 Feb 01 1:06 AM
Hi Rie,
could you please show us your finished call to the bapi including all the parameter values as this will greatly help subsequent people with similar problems.
Thanks
Neil
‎2011 Feb 01 1:44 AM
Hi Neil.
I had to do three steps.
1: using BAPI 'BAPI_ALM_ORDER_MAINTAIN'
2: append structure in IBAPI_CAUFVD_UPDATE
3: create BADI from 'IBAPI_ALM_ORD_MODIFY'
my sample code is below.
by the way, CI_AUFK has my Zfields, so CAUFV has already had my Zfields.
I hope to help you.
-
*---- 1: using BAPI 'BAPI_ALM_ORDER_MAINTAIN'
IW_METHODS-OBJECTTYPE = SPACE.
IW_METHODS-METHOD = 'SAVE'.
IW_METHODS-OBJECTKEY = SPACE.
APPEND IW_METHODS TO IT_METHODS.
CLEAR: IW_METHODS.
IW_METHODS-REFNUMBER = '000001'.
IW_METHODS-OBJECTTYPE = 'HEADER'.
IW_METHODS-METHOD = 'CHANGE'.
IW_METHODS-OBJECTKEY = W_AUFNR.
APPEND IW_METHODS TO IT_METHODS.
IW_EXTENSION_IN-VALUEPART1+0(12) = W_AUFNR.
IW_EXTENSION_IN-VALUEPART1+12(2) = W_ZFIELD. "Zfield
APPEND IW_EXTENSION_IN TO IT_EXTENSION_IN.
CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'
TABLES
IT_METHODS = IT_METHODS
EXTENSION_IN = IT_EXTENSION_IN
RETURN = IT_RETURN.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = COS_X.
*----2: append structure in IBAPI_CAUFVD_UPDATE
*---- you need to create an APPEND structure in ALMB_CAUFVD_UP_TAB_INT.
*---- (of course you can create that in SE11)
*---- you need to set flag fields (CHAR1) in APPEND structure
*---- 3: create BADI from 'IBAPI_ALM_ORD_MODIFY'
*---- you need to create BADI from 'IBAPI_ALM_ORD_MODIFY' in SE19
*---- and you need to add some Codes in method of 'MODIFY_INPUT_DATA'
*---- my code is below
DATA: LW_HEADER_INT TYPE ALMB_CAUFVD.
DATA: LW_HEADER_INT_UP TYPE IBAPI_CAUFVD_UPDATE.
READ TABLE CT_HEADER_INT INTO LW_HEADER_INT
WITH KEY AUFNR = EXTENSION_IN-VALUEPART1+0(12).
IF SY-SUBRC = 0.
LW_HEADER_INT-ZFIELD = EXTENSION_IN-VALUEPART1+12(2). "set Zfield value
MODIFY CT_HEADER_INT FROM LW_HEADER_INT index SY-TABIX.
ELSE.
LW_HEADER_INT-AUFNR = EXTENSION_IN-VALUEPART1+0(12).
LW_HEADER_INT-ZFIELD = EXTENSION_IN-VALUEPART1+12(2). "set Zfield value
APPEND LW_HEADER_INT TO CT_HEADER_INT.
ENDIF.
READ TABLE CT_HEADER_INT_UP INTO LW_HEADER_INT_UP
WITH KEY AUFNR = EXTENSION_IN-VALUEPART1+0(12).
IF SY-SUBRC = 0.set Zfield value
LW_HEADER_INT_UP-ZFIELD = 'X'. "set Zfield flag
MODIFY CT_HEADER_INT_UP FROM LW_HEADER_INT_UP index SY-TABIX.
ELSE.
LW_HEADER_INT_UP-ZFIELD = 'X'.
APPEND LW_HEADER_INT_UP TO CT_HEADER_INT_UP. "set Zfield flag
ENDIF.
-
‎2011 Feb 01 2:19 AM
‎2011 Feb 23 9:10 AM
Thanks a lot, it helped a lot...it actully solved the problem..
‎2011 Feb 01 5:01 AM
Well,try to fill the IT_HEADER and IT_HEADER_UP in BAPI_ALM_ORDER_MAINTAIN. I think the BAPI doesnt know which order will be maintain.