‎2011 Jun 22 11:17 AM
Hi expert,
i must create a new boms from model, exist a bapi for creation?
i don't want use SHDB but Bapi.
Hi Francesco.
‎2011 Jun 22 1:46 PM
Actually the user use cs01, i should do report that creates more BOM in background.
i am searching a Bapi for create BOM from model
‎2011 Jun 22 2:14 PM
Hi.,
check this BAPI., CSAI_BOM_CREATE
this may help u.,
for Equipment BOM you have to pass WA_STKOB-STLTY = 'E'. check for model.,
thanks & Regards,
Kiran
‎2011 Jun 23 1:23 PM
‎2011 Jun 23 1:40 PM
Hi,
check this:
DATA:
WA_CSIN LIKE CSIN,
WA_STKOB LIKE STKOB,
WA_STZUB LIKE STZUB ,
FL_NO_CHANGE_DOC LIKE CAPIFLAG-NO_CHG_DOC, "SPACE
FL_COMMIT_AND_WAIT LIKE CAPIFLAG-COMM_WAIT, " SPACE
FL_NO_COMMIT_WORK LIKE CSDATA-XFELD," SPACE
FL_ALE LIKE CSDATA-XFELD, " SPACE
FL_DEFAULT_VALUES LIKE CSDATA-XFELD. " 'X'
DATA: G_FLWARNING LIKE CAPIFLAG-FLWARNING,
G_WARN_STLNR LIKE STZUB-STLNR,
TAB_STPOB TYPE STANDARD TABLE OF STPOB,
WA_STPOB LIKE STPOB,
LS_MESSAGE TYPE BAPIRET2,
IT_RET LIKE LS_MESSAGE OCCURS 0 WITH HEADER LINE.
DATA: ITM_NO(4) TYPE C,
CNT TYPE INT2,
COUNT TYPE STRING.
DATA: MSG_TEXT TYPE STRING,
LV_MSG TYPE STRING.
DATA: V_FILE TYPE DBMSGORA-FILENAME,
LV_FNAME TYPE RLGRAP-FILENAME,
FNAME TYPE SDBAH-ACTID,
EXT TYPE SDBAD-FUNCT,
EXT1 TYPE SDBAD-FUNCT VALUE 'XLS'.
TYPES : BEGIN OF T_FINAL,
EQUNR TYPE RC29N-EQUNR,
WERKS TYPE RC29N-WERKS,
STLAN TYPE RC29N-STLAN,
IDNRK TYPE RC29P-IDNRK,
MENGE(16) TYPE C,
* MENGE TYPE RC29P-menge,
POSTP TYPE RC29P-POSTP,
POTX1 TYPE RC29P-POTX1,
POTX2 TYPE RC29P-POTX2,
END OF T_FINAL.
DATA :IT_FINAL TYPE STANDARD TABLE OF T_FINAL,
WA_FINAL TYPE T_FINAL,
WA_FINAL1 TYPE T_FINAL.
DATA: CO_X TYPE I VALUE '1',
CO_Y TYPE I VALUE '2',
CO_Z TYPE I VALUE '46',
CO_5000 TYPE I VALUE '50000',
FLAG TYPE C.
DATA:IT_FILE TYPE STANDARD TABLE OF ALSMEX_TABLINE,
WA_FILE TYPE ALSMEX_TABLINE.
DATA GV_FILENAME TYPE STRING.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: PA_EQ TYPE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_EQ.
PERFORM F_HELP_EQ.
START-OF-SELECTION.
PERFORM EXCEL_SHEET_DATA.
SORT IT_FINAL BY EQUNR ASCENDING.
LOOP AT IT_FINAL INTO WA_FINAL.
WA_FINAL1 = WA_FINAL.
AT NEW EQUNR.
CLEAR WA_CSIN.
CLEAR: COUNT, ITM_NO, CNT.
* wa_csin-aennr = '009900159470'.
WA_CSIN-DATUV = SY-DATUM.
WA_CSIN-EQUNR = WA_FINAL1-EQUNR.
WA_CSIN-WERKS = WA_FINAL1-WERKS.
WA_CSIN-STLAN = WA_FINAL1-STLAN. " 4
WA_CSIN-STLTY = 'E'.
*wa_csin-werks = '1000'.
CLEAR WA_STKOB.
WA_STKOB-STLTY = 'E'.
CLEAR WA_STZUB.
WA_STZUB-STLTY = 'E'.
CNT = 10.
ENDAT.
COUNT = CNT.
IF CNT < 100.
CONCATENATE '00' COUNT INTO ITM_NO.
ELSE.
CONCATENATE '0' COUNT INTO ITM_NO.
ENDIF.
CLEAR WA_STPOB.
WA_STPOB-STLTY = 'E'.
WA_STPOB-IDNRK = WA_FINAL1-IDNRK.
WA_STPOB-POSTP = 'I'.
WA_STPOB-POSNR = ITM_NO.
WA_STPOB-MENGE = WA_FINAL1-MENGE.
WA_STPOB-POTX1 = WA_FINAL1-POTX1.
WA_STPOB-POTX2 = WA_FINAL1-POTX2.
WA_STPOB-DATUV = SY-DATUM.
APPEND WA_STPOB TO TAB_STPOB.
CLEAR WA_STPOB.
AT END OF EQUNR.
CALL FUNCTION 'CSAI_BOM_CREATE'
EXPORTING
ECSIN = WA_CSIN
ESTKOB = WA_STKOB
ESTZUB = WA_STZUB
* FL_NO_CHANGE_DOC = ' '
* FL_COMMIT_AND_WAIT = ' '
* FL_NO_COMMIT_WORK = ' '
* FL_ALE = ' '
* fl_default_values = 'X'
IMPORTING
FL_WARNING = G_FLWARNING
ASTLNR = G_WARN_STLNR
TABLES
T_STPOB = TAB_STPOB
EXCEPTIONS
ERROR = 1
OTHERS = 2.
CLEAR: WA_STPOB,TAB_STPOB.
IF SY-SUBRC <> 0.
LS_MESSAGE-ID = SY-MSGID.
LS_MESSAGE-TYPE = SY-MSGTY.
LS_MESSAGE-NUMBER = SY-MSGNO.
LS_MESSAGE-MESSAGE_V1 = SY-MSGV1.
LS_MESSAGE-MESSAGE_V2 = SY-MSGV2.
LS_MESSAGE-MESSAGE_V3 = SY-MSGV3.
LS_MESSAGE-MESSAGE_V4 = SY-MSGV4.
APPEND LS_MESSAGE TO IT_RET.
CLEAR LS_MESSAGE.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = SY-MSGID
LANG = 'E'
NO = SY-MSGNO
V1 = SY-MSGV1
V2 = SY-MSGV2
V3 = SY-MSGV3
V4 = SY-MSGV4
IMPORTING
MSG = LV_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
MESSAGE LV_MSG TYPE 'E'.
*CONCATENATE lv_msg WA_FINAL1-equnr 'Not Created.!' INTO msg_text SEPARATED BY ''.
*
*MESSAGE msg_text TYPE 'W'.
*continue.
ELSE.
MSG_TEXT = 'Equipment BOM created'.
MESSAGE MSG_TEXT TYPE 'S'.
CONTINUE.
ENDIF.
ENDAT.
CNT = CNT + 10.
CLEAR: WA_FINAL,WA_FINAL1.
ENDLOOP.I created this for Equipment BOM.,
based on BOM type STLTY need to change .,
for Equipment BOM.
WA_STKOB-STLTY = 'E'.
WA_STZUB-STLTY = 'E'.
hope this helps u.,
Thanks & Regards,
Kiran
‎2011 Jun 23 4:36 PM
My problem is that i should create a BOM copy from Existing BOM and get all component of Existing BOM.
Edited by: francesco aiello on Jun 23, 2011 5:44 PM
‎2011 Jun 24 5:25 AM
Hi.,
For that go for BDC., Create a Recording in SHDB and use BDC Program.,
hope this helps u.,
Thanks & Regards,
Kiran