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

CSAP_MAT_BOM_MAINTAIN

Former Member
0 Likes
3,768

Hi All,

I am facing a problem with this function module for changing the BOM quantity.I am passing values to the parameters

ID_ITM_CTG,ID_ITEM_NO,ID_ITEM_NO in addition to this

I am passing the header details correctly.Always instead of changing the quantity it is adding new item always.

Please suggest somebody if anybody has done for the samerequirement.

Regards

Mahesh

3 REPLIES 3
Read only

Former Member
0 Likes
1,083

Hi Mahesh,

The following code works for updating the item in the BOM

&----


*& Report YBOM

*&

&----


*&

*&

&----


REPORT YBOM.

DATA: BEGIN OF TSTKO.

INCLUDE STRUCTURE STKO_API01.

DATA: END OF TSTKO.

*BOM header data structure

DATA: BEGIN OF TSTK2.

INCLUDE STRUCTURE STKO_API02.

DATA: END OF TSTK2.

*BOM items table

DATA: BEGIN OF TSTP3 OCCURS 0.

INCLUDE STRUCTURE STPO_API03.

DATA: END OF TSTP3.

DATA: FLG_WARNING LIKE CAPIFLAG-FLWARNING.

*Fill item data

*Exception: items that can be identified uniquely via their item

*number

*1. Item 0010: change quantity

CLEAR TSTP3.

TSTP3-ID_ITEM_NO = '0010'. "Item identification

TSTP3-COMP_QTY = '7.000'.

APPEND TSTP3.

*2. Item 0020: change quantity

CLEAR TSTP3.

TSTP3-ID_ITEM_NO = '0020'. "Item identification.

TSTP3-COMP_QTY = '7.000'.

APPEND TSTP3.

*3. item 0030 change quantity

CLEAR TSTP3.

TSTP3-ITEM_NO = '0030'.

TSTP3-COMP_QTY = '7.000'.

APPEND TSTP3.

*4. Item 0040: change quantity

CLEAR TSTP3.

TSTP3-ID_ITEM_NO = '0040'. "Item identification

TSTP3-COMP_QTY = '7.000'.

APPEND TSTP3.

*Change BOM

CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'

EXPORTING

MATERIAL = 'CPF10104'

PLANT = '0001'

VALID_FROM = '07.08.2003'

BOM_USAGE = '1'

ALTERNATIVE = '01'

FL_BOM_CREATE = ' '

FL_NEW_ITEM = ' '

I_STKO = TSTKO

IMPORTING

FL_WARNING = FLG_WARNING

O_STKO = TSTK2

TABLES

T_STPO = TSTP3

EXCEPTIONS

OTHERS = 1.

IF SY-SUBRC EQ 1.

*Error

*Please see log

WRITE: 'error'.

ELSE.

WRITE 'updated'.

ENDIF.

IF FLG_WARNING EQ 'X'.

*Please see log for information, warning messages, and *success messages.

ENDIF.

Please give only the Item number and the quantity to be updated in the Item Internal table.

Hope it help,

Regards,

Janani

Edited by: janani chakrapani on Jun 18, 2008 4:31 PM

Read only

Former Member
0 Likes
1,083

Hi,

I think you have to set a deletion flag (DELETE_IND) in the structure STKO_API01, that is there in the input parameters.

This would delete the old entries in the BOM, if any .

and new entries will be replaced then.

Read only

Former Member
0 Likes
1,083

Hello,

You need to retrieve the GUIDX of the item number from the table STPO and then populate it in the T_STPO structure for the field ID_GUID of the module function.

For me it works. It updates the item line instead of creating a new one.

Plz try it.