Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Updating BOM Sub Items using CS_BC_BOM_CHANGE_BATCH_INPUT

Former Member
0 Likes
1,289

Hello,

I am trying to update BOM sub items by using this function module. I am filling up all fields in all tables, still it is giving error.

Any body has any sample code for this function module...

Unfortunately there is no documentation for this FM and very little usage in standard programs...

Regards,

Krishna.

Hello,

I am trying to update BOM sub items by using this function module. I am filling up all fields in all tables, still it is giving error.

Any body has any sample code for this function module...

Unfortunately there is no documentation for this FM and very little usage in standard programs...

Regards,

Krishna.

4 REPLIES 4
Read only

Former Member
0 Likes
879

Hi,

Check this function CAD_CHANGE_BOM_WITH_SUB_ITEMS,I used CAD_CREATE_BOM_WITH_SUB_ITEMS to create BOMs for SD module i hope it will work.

CALL FUNCTION 'CAD_CREATE_BOM_WITH_SUB_ITEMS'

EXPORTING

I_BOM_HEADER = BOM_HEADER

IMPORTING

E_RETURN = E_RETURN

E_MESSAGE = E_MESSAGE

TABLES

BOM_ITEM = IT_BOM_ITEM

BOM_SUB_ITEM = IT_BOM_SUB_ITEM

DMS_CLASS_DATA = IT_DMS

SAP_FIELD_DATA = IT_SAP_FIELD.

WA_RET-MATNR = WA_DATA1-MATNR.

if e_return = 0 .

wa_ret-status = 'SUCCESS'.

ELSE.

wa_ret-status = 'ERROR'.

ENDIF.

Regards,

Manesh.R

Read only

0 Likes
879

Hello Manesh,

Thanks for update.

Could you pls provide some code ...

I am trying to use both create and change but getting some screen errors.

Thanks,

Krishna.

Read only

0 Likes
879

Hi,

My Code for create

DATA: BOM_HEADER TYPE CAD_BICSK ,"STRUCTURE FOR HEADER DATA

IT_BOM_ITEM TYPE TABLE OF CAD_BOM_ITEM,"INTERNAL TABLE FOR ITEM

WA_BOM_ITEM TYPE CAD_BOM_ITEM,"WORK AREA FOR ITEM

IT_BOM_SUB_ITEM TYPE TABLE OF CSSUBITEM ,"INTERNAL TABLE FOR SUB ITEM

WA_BOM_SUB_ITEM TYPE CSSUBITEM ,"WORK AREA FOR SUB ITEM

IT_DMS TYPE TABLE OF CLS_CHARAC,"INTERNAL TABLE FOR DMS_CLASS_DATA

WA_DMS TYPE CLS_CHARAC,"WORK AREA FOR DMS_CLASS_DATA

IT_SAP_FIELD TYPE TABLE OF RFCDMSDATA,"INTERNAL TABLE FOR SAP_FIELD_DATA

WA_SAP_FIELD TYPE RFCDMSDATA,"WORK AREA FOR SAP_FIELD_DATA

E_RETURN TYPE CAD_RETURN-VALUE,"STRUCTURE FOR RETURN

E_MESSAGE TYPE MESSAGE-MSGTX,"STRUCTURE FOR MESSAGE

E_MESSAGE_LEN TYPE CAD_RETURN-MESSAGE_LEN."STRUCTURE FOR MESSAGE LENGTH

LOOP AT IT_DATA INTO WA_DATA.

MOVE-CORRESPONDING WA_DATA TO WA_DATA1.

APPEND WA_DATA1 TO IT_DATA1.

ENDLOOP.

SORT IT_DATA1 BY MATNR WERKS.

DELETE ADJACENT DUPLICATES FROM IT_DATA1 COMPARING MATNR WERKS.

LOOP AT IT_DATA1 INTO WA_DATA1.

CLEAR: BOM_HEADER, WA_BOM_ITEM,WA_RET.

REFRESH: IT_BOM_ITEM.

  • FILL BOM HEADER

PERFORM DATE_FORMAT USING WA_DATA1-DATUV CHANGING BOM_HEADER-DATUV.

BOM_HEADER-MATNR = WA_DATA1-MATNR.

BOM_HEADER-WERKS = WA_DATA1-WERKS.

BOM_HEADER-STLAL = WA_DATA1-STLAL.

BOM_HEADER-STLAN = WA_DATA1-STLAN.

BOM_HEADER-ZTEXT = WA_DATA1-ZTEXT.

LOOP AT IT_DATA INTO WA_DATA WHERE MATNR = WA_DATA1-MATNR and werks = wa_Data1-werks.

  • FILL ITEM

if wa_data-postp = 'T'.

WA_BOM_ITEM-POSNR = WA_DATA-POSNR.

WA_BOM_ITEM-POSTP = WA_DATA-POSTP.

WA_BOM_ITEM-POTX1 = WA_DATA1-ZTEXT.

else.

WA_BOM_ITEM-IDNRK = WA_DATA-IDNRK.

WA_BOM_ITEM-POSNR = WA_DATA-POSNR.

WA_BOM_ITEM-POSTP = WA_DATA-POSTP.

WA_BOM_ITEM-MENGE = WA_DATA-MENGE.

endif.

APPEND WA_BOM_ITEM TO IT_BOM_ITEM.

ENDLOOP.

CALL FUNCTION 'CAD_CREATE_BOM_WITH_SUB_ITEMS'

EXPORTING

I_BOM_HEADER = BOM_HEADER

IMPORTING

E_RETURN = E_RETURN

E_MESSAGE = E_MESSAGE

TABLES

BOM_ITEM = IT_BOM_ITEM

BOM_SUB_ITEM = IT_BOM_SUB_ITEM

DMS_CLASS_DATA = IT_DMS

SAP_FIELD_DATA = IT_SAP_FIELD.

WA_RET-MATNR = WA_DATA1-MATNR.

if e_return = 0 .

wa_ret-status = 'SUCCESS'.

ELSE.

wa_ret-status = 'ERROR'.

ENDIF.

WA_RET-WERKS = WA_DATA1-WERKS.

WA_RET-MSG = E_MESSAGE.

APPEND WA_RET TO IT_RET .

ENDLOOP.

LOOP AT IT_RET INTO WA_RET.

if wa_ret-status = 'ERROR'.

APPEND wa_ret to it_erv.

ENDIF.

WRITE: /.

WRITE:(12) WA_RET-MATNR,(6) WA_RET-WERKS,(8) wa_ret-status,(70) WA_RET-MSG.

ENDLOOP.

Regards,

Manesh.R

Read only

Former Member
0 Likes
879

Hi,

Check this out:

You can maintain the sub item details in t_stpu.

call function 'CSAP_MAT_BOM_MAINTAIN'

exporting

material = api_mbom-matnr

plant = api_mbom-werks

bom_usage = api_mbom-stlan

alternative = api_mbom-stlal

valid_from = api_mbom-datuv

change_no = ale_aennr

  • REVISION_LEVEL =

i_stko = api_stko1

  • FL_NO_CHANGE_DOC = ' '

fl_bom_create = 'X'

fl_new_item = 'X'

fl_complete = 'X'

fl_default_values = ' ' "note506312

fl_identify_by_guid = g_flg_ident_by_guid "n567351

importing

fl_warning = api_warning

o_stko = api_stko2

tables

t_stpo = api_stpo3

t_dep_data = api_dep_dat

t_dep_descr = api_dep_des

t_dep_order = api_dep_ord

t_dep_source = api_dep_src

t_dep_doc = api_dep_doc

t_ltx_line = api_ltx_lin

t_stpu = api_stpu "note530922

exceptions

error = 1

others = 2.

BR,

Jimmy Qin