‎2012 Jun 19 7:26 AM
Hi,
Im trying to upload BOM from Excel sheet using 'BAPI_BOM_UPLOAD_SAVE' ..
Im having 3 alternate BOM's for one material but after the creation of 1st alternate,
wen its trying to go for the 2nd alternate and so on , its says "BOM FOR MATERIAL ALREADY EXISTS!"
PLEASE HELP!
‎2012 Jun 20 8:21 AM
Hi , thanks every one ..My issue is resolved...The BAPI did'nt work out for me.
I used the FM "CAD_CREATE_BOM_WITH_SUB_ITEMS"...Served my purpose.
‎2012 Jun 19 7:58 AM
Hi ,
Can you please paste some code in order to be able to give you some hints ?
‎2012 Jun 19 8:08 AM
form UP_BOM using Fp_i_field TYPE TY_T_FIELD.
DATA : LW_FIELD TYPE TY_FIELD,
LW_FIELD2 TYPE TY_FIELD,
LW_MAST TYPE BAPIBOMMST,
LW_STZU TYPE BAPIBOMSTZ,
I_MAST TYPE STANDARD TABLE OF BAPIBOMMST,
I_STZU TYPE STANDARD TABLE OF BAPIBOMSTZ,
INDEX TYPE SY-INDEX,
LW_STKO TYPE BAPIBOMSTK,
I_STKO TYPE STANDARD TABLE OF BAPIBOMSTK,
LW_STPO TYPE BAPIBOMSTP,
LW_STAS TYPE BAPIBOMSTA,
I_STPO TYPE STANDARD TABLE OF BAPIBOMSTP,
I_STAS TYPE STANDARD TABLE OF BAPIBOMSTA,
bapi_return TYPE bapiret2,
LW_ERTAB TYPE TY_ERTAB,
I_ERTAB TYPE TY_T_ERTAB.
IF FP_I_FIELD IS NOT INITIAL.
.
LOOP AT FP_I_FIELD INTO LW_FIELD .
TRANSLATE LW_FIELD-COLID TO UPPER CASE.
* IF ITS A HEADER DATA THEN FILL THE STRUCTURE AND ONE ROW OF THE INTERNAL TABLE I_STKO I.E PASSED TO THE BAPI.
IF LW_FIELD-COLID = 'HEADER'.
CLEAR LW_MAST.
REFRESH I_STKO.
LW_MAST-MATERIAL = LW_FIELD-MATNR.
LW_MAST-PLANT = LW_FIELD-WERKS.
LW_MAST-BOM_USAGE = LW_FIELD-STLAN.
LW_MAST-ALT_BOM = LW_FIELD-STLAL.
LW_STAS-ALT_BOM = LW_FIELD-STLAL.
LW_STZU-BOM_USAGE = LW_FIELD-STLAN.
LW_STZU-ALTERNAT = 'X'.
LW_STKO-ALT_BOM = LW_FIELD-STLAL.
LW_STKO-UNBASE = LW_FIELD-BMEIN.
LW_STKO-BASE_QTY = LW_FIELD-BMENG.
APPEND LW_STKO TO I_STKO.
APPEND LW_STAS TO I_STAS.
* IF ITS AN ITEM OF THE BOM THEN APPEND THE DATA TO THE INTERNAL TABLE CONTAINING ITEMS..
ELSEIF LW_FIELD-COLID = 'DETAIL'.
LW_STPO-BOM_ITM_NO = LW_FIELD-POSNR.
LW_STPO-COMPONENT = LW_FIELD-IDNRK.
LW_STPO-ITEM_CAT = LW_FIELD-POSTP.
LW_STPO-UNCOMP = LW_FIELD-MEINS.
LW_STPO-COMPON_QTY = LW_FIELD-MENGE.
LW_STPO-ITEM_TEXT1 = LW_FIELD-POTX1.
LW_STPO-ITEM_TEXT2 = LW_FIELD-POTX2.
LW_STPO-CO_PRODUCT = LW_FIELD-KZKUP.
LW_ERTAB-IDNRK = LW_FIELD-IDNRK.
APPEND LW_STPO TO I_STPO.
* HERE 'N' DENOTES THAT BOM FOR ONE MATERIAL HAS ENDED AND THE BAPI SHOULD BE CALLED WITH THE DATA IN THE STRUCTURES AND INTERNAL TABLES.
ELSEIF LW_FIELD-COLID = 'N'.
CALL FUNCTION 'BAPI_BOM_UPLOAD_SAVE'
EXPORTING
is_mast = LW_MAST
is_stzu = LW_STZU
IMPORTING
ES_RETURN = BAPI_RETURN
tables
it_stko = I_STKO
it_stpo = I_STPO
it_stas = I_STAS
.
LW_ERTAB-DESC = BAPI_RETURN-MESSAGE.
APPEND LW_ERTAB TO I_ERTAB.
CLEAR LW_STPO.
REFRESH I_STPO.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
* EXPORTING
* WAIT = 'X'
** IMPORTING
** RETURN =
* .
WAIT UP TO 1 SECONDS.
ENDIF.
ENDLOOP.
ENDIF.
endform.
* ON DEBUGGING I FIND THE MESSAGE IN THE BAPI- RETURNMESSAGE THAT 'BOM FOR MATERIAL ALREADY EXISTS..'
EACH TIME I DELETE THE BOM ALREADY CREATED BEFORE I RUN THE PROGRAM.
‎2012 Jun 19 8:47 AM
Hi Again,
I believe that you must call the bapi each time that you want to create a new alternative.
So, first of all, add a clear/ refresh statement for I_stko & i_stpo & i_stas.
The logic should be like this :
1 alternative
add items
call bapi
2 alternative
add items
call bapi
And not
1 alternative
2 alternative
add items
add items
call bapi.
Try clearing tables
I_STKO[]
I_STPO[]
I_STAS[]
and retry.
‎2012 Jun 19 9:44 AM
Thanks Laurent,
But im using the same logic
Alternative
add items
call bapi..
and i've also tried refreshing the i_stko i_stpo i_stas, but still im having the same issue.
‎2012 Jun 19 9:50 AM
Can you please try something else ?
Try removing 'X' indicator in field LW_STZU-ALTERNAT.
So first time indicator is space.
first alternative indicator = 'X'.
second alternatice indicator = 'X'.
etc.
And reply.
‎2012 Jun 19 10:25 AM
I've tried implementing this logic, made the
first time indicator space.
first alternative indicator = 'X'.
second alternatice indicator = 'X'.
But still the same consequence.
‎2012 Jun 19 9:50 AM
ONLY THE FIRST ALTERNATIVE IS BEING CREATED BUT NOT OTHERS ..
‎2012 Jun 19 9:54 AM
Can you please also post the internal tables contents in each call ?
i_stpo,i_stko,i_stas and structures LW_MAST & LW_STZU .
‎2012 Jun 19 11:03 AM
hi,
FOR THE 1ST MATERIAL
LW_MAST CONTAINS :
| MATERIAL | MATERIAL-FINISHED | |
| PLANT | ZMAD | |
| BOM_USAGE | 1 | |
| NBR_ST | ||
| ALT_BOM | 1 |
LW_STZU :
| OPERATION | ||
| BOM_CATEGO | ||
| NBR_ST | ||
| BOM_USAGE | 1 | |
| BOM_GROUP | ||
| ALTERNAT | ||
| VARIANTS | ||
| CONF_BOM |
I_STPO HAS:
| MATERIAL-SFINISHED | L | 10 | KGS | 10.000 | |||
| MATERIAL-MADHU | L | 20 | KGS | 1.000 |
I_STKO :
| 1 | 00000000 | 00000000 | 00000000 | 00000000 | 00000000 | KGS | 1.000 |
I_STAS :
| 1 | 00000000 | 00000000 | 00000000 | 00000000 |
FOR THE SECOND ALTERNATIVE.
LW_MAST :
| MATERIAL | MATERIAL-FINISHED | |
| PLANT | ZMAD | |
| BOM_USAGE | 1 | |
| NBR_ST | ||
| ALT_BOM | 2 |
LW_STZU :
| BOM_USAGE | 1 | |
| BOM_GROUP | ||
| ALTERNAT | X |
I_STKO:
| 2 | 00000000 | 00000000 |
I_STPO :
| MATERIAL-SFINISHE1 | L | 10 | KGS | 10.000 | |||
| MATERIAL-MADHU | L | 20 | KGS | 1.000 |
I_STAS :
| 2 | 00000000 | 00000000 | 00000000 |
‎2012 Jun 19 11:14 AM
Bapi calls user exits.
Call : OPEN_FI_PERFORM_CSUL_010_P.
Can you please check that the error is not triggered there ?
‎2012 Jun 19 11:19 AM
Also, try removing the alternative bom number from tha first call ( LW_MAST ).
‎2012 Jun 20 8:21 AM
Hi , thanks every one ..My issue is resolved...The BAPI did'nt work out for me.
I used the FM "CAD_CREATE_BOM_WITH_SUB_ITEMS"...Served my purpose.