FM/BAPI to create BOM where alternative can be passed as input
Hi
My requirement is to create BOM of a material where I need to input 'Alternative BOM' also like ijn CS01 t-code.
I got one FM CSAP_MAT_BOM_CREATE which is creating BOM , but it does not take 'Alternative BOM' as input parameter, rather it creates default alternative BOM. But I need a FM which will take alternative BOM as input.
Please help.
Dear Avishek,
In my understanding the system creates the first alternative BOM 01 for a BOM usage,whenever you
create through CS01 or by a functional module,no need of any input for this field.
come back with your queries,if you are facing some problem on this.
Regards
Mangalraj.S
Similar Messages
-
How to create interface where you can view metadata of several databases
How to create interface where we can view metadata of several databases:
Oracle Apex should display metadata of this particular DB (later on we can include multiple DB’s)
a. Report should first display DB name
b. When clicked on DB name, should display 3 schemas
c. When clicked on 1 schema, should display tables – when clicked on each table,
should display various column names and its corresponding metadata.
(similarly for other schema’s also)
d. In short, it should be like a drill down report.
Help required for craeting like above.
Appreciate your help.I did something similar a while back. I had an application reading from multiple schema's for reporting purposes..IN that case atleast we just would build the selects using a function reurning SQL select, so that we could have an application item with the selected schema they wanted to use to build into the select returned...
For forms, that would be an interesting idea, don't know how you can dynamically change the table owner name, since it is a drop down control in development..
Thank you,
Tony Miller
Webster, TX
I cried because I did not have an office with a door until I met a man who had no cubicle.
-Dilbert
If this question is answered, please mark the thread as closed and assign points where earned.. -
Can we pass runtime input varibles to Actives X componets
Hi,
Can we pass the runtime input variables to Active X componets, so the output can be varied depending upon the inpur variable we pass.
The main idea is : I am using Active X compnets to inteface with C code and Excel sheet where we have to pass the input varilable. I want to give the input while the program is exectuing. Can this be possible. if so how cani do this?
ThankQ for the help in Advance.Hello,
I think your question comes down to the interface provided by the component. Usually they come with a set of properties and methods which you can execute. Those setting properties and executing methods (which can take input variables) should be able to handle your desired functionality - whether the property or function you're looking for is already implemented is up to the developer of the component.
Does that make sense?
For example, if your component processes an excel spreadsheet, and you want to be able to pass a file name to it programmatically, it will have to have a property or method which allows you to do this.
I presume you are using LabVIEW. Keep in mind, LabVIEW reads the API as defined by the component - what properties and functions are available is not up to LabVIEW - those are decisions the component's developer made.
Best Regards,
JLS
Best,
JLS
Sixclear -
How can i pass the Input value to the sql file in the korn shell ??
Hi,
How can i pass the Input value to the sql file in the korn shell ??
I have to pass the 4 different values to the sql file and each time i pass the value it has to generate the txt file for that value like wise it has to generate the 4 files at each run.
can any one help me out.
RajaCan you please more elaberate., perhaps you should more elaberate.
sqlplus is a program. you start it from the korn shell. when it's finished, processing control returns to the korn shell. the korn shell and sqlplus do not communicate back and forth.
so "spool the output from .sql file to some txt file from k shell, while passing the input parameters to the sql file from korn shell" makes no sense. -
Hi all,
can u plz suggest a BAPI to create a BOM in sap.i need to upload a file containing BOM data & then i need to pass those datas to bapi to crteate a BOM.
what r the datas to be mandatory to create a BOM.
can u plz give some coding regarding the creation of BOM for reference?
it is urgent.
any idea will be highly appreaciated.
Thanks & reagrds
pabitraHi Eswar,
Thanks u all for ur help. i want to create a multi level BOM. which field of this bapi is responsible for level.
i want to input the LEVEL to this bapi.but i am not getting proper field in this BAPI for level.
plz suggest , how i can create a multi level BOM?
Regards
pabitra -
Create Bom with alternative using CSAP_MAT_BOM_MAINTAIN
Hi all,
I am trying to create a new alternative BOM and thought I had to use the function CSAP_MAT_BOM_MAINTAIN. Creating new BOMs with CSAP_MAT_BOM_CREATE works as well as maintaining them with CSAP_MAT_BOM_MAINTAIN, but I fail in creating a new alternative BOM. In the function
CS_DI_HEADER_OBJECT_CHECK (called within the maintain-function ) it says (close to the failure )
"*Anlegen von Alternativen über CSAP nicht erlaubt"
"creation of alternative using csap not allowed" ....
Well, sounds like I am using the wrong function, but which should I use instead ???
Thanx in advance,
KarstenHi,
Use : CS_BI_BOM_CREATE_BATCH_INPUT1 To Create a new BOM or New Alt. BOM.
Use : CS_BC_BOM_CHANGE_BATCH_INPUT to maintain the BOM. -
Hi All,
my requirement is i wll be getting the BOM data through a file interface and we need to create BOM using the data in the file.
we are planning to use BAPI to create BOM.
Can some one plz tell me is there any BAPI available to create BOM by coping from existing BOM.
can we use BDC if there is no BAPI available.
thanks
Chindam.thanks for your response but unfortunately did not solve my issue.
Yes the above 2 FM can be used to create a BOM but i want to know what are the various fields used to create BOM by copying from the existing BOM (Copy as).
thanks -
BAPI'S or Function Modules for creating BOM
Hi all,
Can any one please suggest me what is the exact function module or BAPI for creating BOM..
If any created the same through bapi's or FM your sample codes are also welcome..
Thanks and Regards,
KenyBAPI_DOCUMENT_CREATE2 and BAPI_MATERIAL_BOM_GROUP_CREATE
chk them -
Is there any standard BAPI to create Equipment BOM? Tcode - IB01
Hello,
I use that bapi for create BOM but not equipement BOM.
I find on forum, response wiche can help you :
Equipment BOM Upload BAPI
RFC / BAPI for Equipment BOM - IB01
http://wiki.sdn.sap.com/wiki/display/ABAP/ECCstandardBatchInputprograms
Thierry -
How can i read user input value to my User exist
Hi Guru's,
I am facing one problem in Variables in BPS.
I am calculating days from Month/year .I have one variable it is for Days,Second variable it is for Month/Year.
First variable is user exist (for calculating the days),Second varible is user defined variable(this is a Input to the first variable).
When i am giving the Month/Year(02/2008)variable i am getting the 29 days from the first variable.again i am changing the value of Month/Yera(03/2008) i am not getting the desired value.
my doubt is my user exist not able to read current value of variable(month/year).how can i pass my value to user exist because this value is user input value based on this value i am calculating the days and dynamically displaying the layout.
Here is the my sample code..
seq = '0000'.
ind = 0.
i_area = 'ZTEST1'.
area_var = 'ZVar2'.
PERFORM instantiate_object USING i_area
area_var
CHANGING lsr_var.
PERFORM get_current_value_of_variable
USING lsr_var
CHANGING lto_value.
READ TABLE lto_value INTO lso_value index 1 .
i_month = lso_value-low.
iv_month = i_month+4(2).
iv_year = i_month(4).
concatenate iv_year iv_month '01' into iv_date.
begindate = iv_date.
below bracket code calculating the leap year
( IF iv_date+4(2) = lc_feb.
lv_hlp_date_year = iv_date+0(4).
lv_hlp_rest = lv_hlp_date_year MOD 4.
IF lv_hlp_rest = 0.
EV_DAYS = lc_days_29.
lv_hlp_rest = lv_hlp_date_year MOD 100.
IF lv_hlp_rest = 0.
lv_hlp_rest = lv_hlp_date_year MOD 400.
IF lv_hlp_rest NE 0.
EV_DAYS = lc_days_28.
ENDIF.
ENDIF.
ELSE.
EV_DAYS = lc_days_28.
ENDIF.)
ELSE.
below bracket code calculating the days
( CASE iv_date+4(2).
WHEN lc_jan. EV_DAYS = lc_days_31.
WHEN lc_mar. EV_DAYS = lc_days_31.
WHEN lc_may. EV_DAYS = lc_days_31.
WHEN lc_jul. EV_DAYS = lc_days_31.
WHEN lc_aug. EV_DAYS = lc_days_31.
WHEN lc_oct. EV_DAYS = lc_days_31.
WHEN lc_dec. EV_DAYS = lc_days_31.
WHEN lc_apr. EV_DAYS = lc_days_30.
WHEN lc_jun. EV_DAYS = lc_days_30.
WHEN lc_sep. EV_DAYS = lc_days_30.
WHEN lc_nov. EV_DAYS = lc_days_30.
WHEN OTHERS. CLEAR EV_DAYS.
ENDCASE.)
ENDIF.
data: st_date(2) type c.
st_date = '01'.
ind = 0.
ind = ind + 1.
here i am passing the low value and high value.
yto_charsel-chanm = '0CALDAY'.
yto_charsel-seqno = 1.
yto_charsel-sign = 'I'.
yto_charsel-opt = 'EQ'.
yto_charsel-LOW = st_date.
yto_charsel-chanm = '0CALDAY'.
yto_charsel-seqno = 1.
yto_charsel-sign = 'I'.
yto_charsel-opt = 'BT'.
yto_charsel-high = ev_days.
INSERT yto_charsel INTO sto_charsel INDEX ind.
ETO_CHARSEL = sto_charsel.
lto_value = sto_charsel.
How can i pass user input value to read this exist ,some where again i have to write code or else??
This is very urgent can you help me..Hi,
Instead of two perform statements, use single perform.
PERFORM get_value USING i_area
i_variable
CHANGING lw_varsel.
Take the values from lw_varsel-low.
FORM statement for this perform is as follows.
DATA: li_varsel TYPE STANDARD TABLE OF upc_ys_api_varsel,
lv_varsel TYPE REF TO cl_sem_variable.
FORM get_value USING p_area TYPE upc_y_area
p_variable TYPE upc_y_variable
CHANGING
p_lw_varsel TYPE upc_ys_api_varsel.
CALL METHOD cl_sem_variable=>get_instance
EXPORTING
i_area = p_area
i_variable = p_variable
I_CREATE =
RECEIVING
rr_variable = lv_varsel.
EXCEPTIONS
NOT_EXISTING = 1
others = 2
IF sy-subrc <> 0.
EXIT.
ENDIF.
REFRESH li_varsel.
****Getting the Value*********
CALL METHOD lv_varsel->get_value
EXPORTING
i_user = sy-uname
i_restrict = 'X'
RECEIVING
rto_value = li_varsel.
CLEAR : p_lw_varsel.
READ TABLE li_varsel INTO p_lw_varsel INDEX 1.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDFORM. "get_value
Try this code.
Bindu -
Error while creating BOM using BAPI (urgent)
Hi all,
Thanks for ur help. i am getting some error while creting a BOM using that BAPI
BAPI_MATERIAL_BOM_GROUP_CREATE.
errors are
1) Error/warning when checking the structure of the BOM group with ID =
2)Alternative does not exist for material assignment to material BAPIBOMFG1
is it mandatory to pass the bom group id to this bapi?
In bomgroup structure , i am not passing anything to BOM_GROUP field.
is it mandatory to pass this data? i am giving my coding below.plz suggest , where i am making mistake. it is urgent.
regards
pabitra
report z_bom_create
line-size 132
line-count 65
no standard page heading.
*-- DATA DECLARATION--
include <icon> .
*---Tables
tables : s076, t100, marc .
*---Types
types : begin of t_upload, " Upload file data
col1(18),
col2(10),
col3(30),
col4(12),
col5(50),
end of t_upload,
begin of t_split,
location like stpu-ebort,
end of t_split.
data:begin of i_return occurs 10.
include structure bapiret2.
data:end of i_return.
types:begin of t_item."occurs 10.
include structure BAPI1080_ITM_C.
types:end of t_item.
types:begin of t_subitem." occurs 10.
include structure BAPI1080_SUI_C.
types:end of t_subitem.
types:begin of t_header." occurs 10.
include structure BAPI1080_MBM_C.
types:end of t_header.
types:begin of t_bomgroup." occurs 10.
include structure BAPI1080_BGR_C.
types:end of t_bomgroup.
types:begin of t_variant." occurs 10.
include structure BAPI1080_BOM_C.
types:end of t_variant.
*--- Tables
data: i_upload type standard table of t_upload, " to hold data
i_upload1 type standard table of t_upload,
i_split type standard table of t_split,
i_item type standard table of t_item,
i_subitem type standard table of t_subitem,
i_header type standard table of t_header,
i_bomgroup type standard table of t_bomgroup,
i_variant type standard table of t_variant.
data: wa_upload type t_upload, " to hold file data,
wa_upload1 type t_upload, " to hold plan data,
wa_split type t_split,
wa_item type t_item,
wa_subitem type t_subitem,
wa_header type t_header,
wa_bomgroup type t_bomgroup,
wa_variant type t_variant.
data:v_matnr like mara-matnr,
v_start like sy-index,
v_count(3) type c.
*--Constants
data: c_dot type c value '.',
c_x type c value 'X',
c_comma type c value ','.
-------Selection Screen Design -
*Selection screen for input of upload file address
selection-screen skip 2.
selection-screen begin of block blk1 with frame.
parameters : p_file like rlgrap-filename obligatory .
parameters : p_matnr like mara-matnr obligatory,
p_werks like marc-werks obligatory memory id wrk,
p_stlan like afko-stlan obligatory default '1' .
selection-screen end of block blk1.
---AT SELECTION SCREEN -
at selection-screen on value-request for p_file.
*--For popup to select file.
perform f_give_help.
at selection-screen on p_matnr.
perform f_check_matnr.
-----START OF SELECTION -
*--Data upload using WS_Upload.
perform f_get_data.
perform f_get_bom_data.
perform f_get_bom_data1.
perform f_call_bapi.
*& Form f_give_help
text
--> p1 text
<-- p2 text
FORM f_give_help.
call function 'WS_FILENAME_GET'
exporting
mask = ',.,..'
mode = 'O'
importing
filename = p_file
exceptions
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
others = 5.
if sy-subrc <> 0 and not sy-msgty is initial.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
ENDFORM. " f_give_help
*& Form f_check_matnr
text
--> p1 text
<-- p2 text
FORM f_check_matnr.
CALL FUNCTION 'BAPI_MAT_BOM_EXISTENCE_CHECK'
EXPORTING
MATERIAL = p_matnr
PLANT = p_werks
BOMUSAGE = '1'
VALID_FROM_DATE =
VALID_TO_DATE =
TABLES
RETURN = i_return.
ENDFORM. " f_check_matnr
*& Form f_get_data
text
--> p1 text
<-- p2 text
FORM f_get_data.
call function 'WS_UPLOAD'
exporting
CODEPAGE = ' '
filename = p_file
filetype = 'DAT'
tables
data_tab = i_upload
exceptions
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
others = 10
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
ENDFORM. " f_get_data
*& Form f_get_bom_data
text
--> p1 text
<-- p2 text
FORM f_get_bom_data.
delete i_upload where col1 is initial.
delete i_upload where col1 cs 'ITEM'.
read table i_upload into wa_upload with key col1 = 'FINISHED GOOD:'.
if sy-subrc = 0.
v_matnr = wa_upload-col2.
if v_matnr <> p_matnr.
message e001(zl) with p_matnr.
endif.
else.
message e000(zl).
endif.
ENDFORM. " f_get_bom_data
*& Form f_get_bom_data1
text
--> p1 text
<-- p2 text
FORM f_get_bom_data1.
loop at i_upload into wa_upload where col1 CS 'FINISHED GOOD'.
v_start = sy-tabix + 1.
loop at i_upload into wa_upload1 from v_start .
if wa_upload1-col1 cs 'FINISHED GOOD'.
exit.
else.
perform f_split_upload_data.
endif.
endloop.
endloop.
ENDFORM. " f_get_bom_data1
*& Form f_split_upload_data
text
--> p1 text
<-- p2 text
FORM f_split_upload_data.
if not wa_upload1-col5 is initial.
if wa_upload1-col5 cs c_comma.
split wa_upload1-col5 at c_comma into table i_split.
loop at i_split into wa_split.
v_count = v_count + 1.
endloop.
if wa_upload1-col4 <> v_count.
wa_upload1-col4 = v_count.
endif.
clear wa_upload1-col5.
clear wa_split.
loop at i_split into wa_split.
wa_upload1-col5 = wa_split-location.
append wa_upload1 to i_upload1.
endloop.
else.
append wa_upload1 to i_upload1.
endif.
else.
append wa_upload1 to i_upload1.
endif.
ENDFORM. " f_split_upload_data
*& Form f_call_bapi
text
--> p1 text
<-- p2 text
FORM f_call_bapi.
clear wa_upload1.
wa_header-material = p_matnr.
wa_header-plant = p_werks.
wa_header-bom_usage = p_stlan.
append wa_header to i_header.
wa_bomgroup-bom_usage = p_stlan.
wa_bomgroup-created_in_plant = p_werks.
append wa_bomgroup to i_bomgroup.
wa_variant-alternative_bom = 1.
wa_variant-base_qty = 1.
wa_variant-valid_from_date = sy-datum.
append wa_variant to i_variant.
loop at i_upload1 into wa_upload1.
wa_item-item_no = wa_upload1-col1.
wa_item-item_cat = wa_upload1-col2.
wa_item-component = wa_upload1-col3.
wa_item-comp_qty = wa_upload1-col4.
append wa_item to i_item.
wa_subitem-subitem_qty = '1'.
wa_subitem-installation_point = wa_upload1-col5.
append wa_subitem to i_subitem.
endloop.
CALL FUNCTION 'BAPI_MATERIAL_BOM_GROUP_CREATE'
EXPORTING
TESTRUN = ' '
ALL_ERROR = ' '
TABLES
BOMGROUP = i_bomgroup
VARIANTS = i_variant
ITEMS = i_item
SUBITEMS = i_subitem
MATERIALRELATIONS = i_header
ITEMASSIGNMENTS =
SUBITEMASSIGNMENTS =
TEXTS =
RETURN = i_return.
if i_return[] is initial.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
*write: /'BOM created:', stpo-stlnr.
else.
*if not i_return[] is initial.
loop at i_return.
IF i_return-TYPE = 'E'.
errmsg-type = i_return-type.
errmsg-line = i_return-message.
append errmsg.
ULINE /1(108).
write:/ icon_led_RED as icon, i_return-MESSAGE.
ULINE /1(108).
ENDIF.
IF i_return-TYPE = 'W'.
errmsg-type = i_return-type.
errmsg-line = i_return-message.
append errmsg.
ULINE /1(108).
write:/ icon_led_YELLOW as icon, i_return-MESSAGE.
ULINE /1(108).
ENDIF.
ENDLOOP.
*write: / i_return-id, i_return-number, i_return-message(80).
*endloop.
*write: /'Error'.
endif.
ENDFORM. " f_call_bapiHi shashi,
Thanks for ur help.i tried after passing the group but it is giving same error.
i am getting the error
"Error/warning when checking the structure of the BOM group with ID= test"
i am gettig the above error when i put bomgroup-bom_group_identification = 'TEST'.
whatever i am putting in this field, the same error is comming having different value.
if i put--- bomgroup-bom_group_identification = ' '. then i will get error
"Error/warning when checking the structure of the BOM group with ID=
if i omit that field, then also , i am getting same error.
plz suggest what r the fields i need to pass for BOMGROUP structure for that bapi?
regards
pabitra -
Is there any Enhancemnet in MM where we can create a Purchase order immedia
Dear ABApers,
Is there any Enhancemnet in MM where we can create a Purchase order immediately after saving the Purchase requisition.
I basically want the PO automatically after saving the PR.
Thanks & Regards,
Ashok.Hi Ashok,
The only way possible in this case is to goto SPRO-> Material Management->Purchasing->Bussiness Add-Ins for Purchasing->Badi:Customer Badi to enjoy Purchase Requisition Bapis.
In that bapi use the Function module after propor coding BAPI_PO_CREATE1. I think this will help you..
Cheers ,
Sany -
Is there a common RFC/BAPI so that using it I can create multi report in EP
Hi,
I am new to EP ..
I have to generate some 25 reports of R3 systems which shoudl be exposed to EP. After going thru the docs on EP..
It says that for every reports I need to create either an RFC or a BAPI. But It is a tedious job to create RFC functions for every report. Since these report is already there(Written) in the R3 System. I hate to convert these again as an RFC for every report.
Is there a common RFC /BAPI where I need to pass required parameters and the transaction code for a specific report instead of creating a new RFC for every reports. so that that specific RFC will do the job for me.
Is there a better/intelligent way to accomplish this task.
Please do not say use SAP trasnational iViews ... As this expose the SAP GUI directly to the user..thru this one can trigger new transactions ... Correct me if I am wrong.
thanks
Pkiranthanks mario,
very helpful answer
pkiran -
How do I create a slide where users can upload a file to server or email a file?
Could anyone guide me in how I could go about creating a slide where users can either email a file or upload it to my server?
Any help would be greatly appriciated...
SteveHello,
Welcome to Adobe Forums.
I am not sure how you can Upload a file, you might need a Javascript.
You can create a slide and a button of that slide can call the default Email client (MS Outlook, Outlook Express....)
1) On you Slide insert a button (Insert -> Standard Object -> Button
2) Double Click on that button and select "Open URL or file" for On Success (Under Properties Inspector)
3) Write "mailto:[email protected]" in the URL box (For Example : [email protected])
4) Publish the result, when you click on the button, it will call the default mail client.
Screenshot :
Note : This might not work if you have a Network Security which do not allow calling Mail Client through a Script (Clicking of Button calls the script)
Thanks,
Vikram -
Error while creating BOM using BAPI 'BAPI_BOM_UPLOAD_SAVE'
Hi All,
We are getting an error as 'Data is incomplete' while trying to create BoM using the bapi 'BAPI_BOM_UPLOAD_SAVE', if the item contains Item category as 'T'. But for other item category like 'L' or 'N', the bapi is sucessfull.
The values that we pass to fill the item category 'T' are operation, item_cat, bom_itm_no, COMPON_QTY, FIXED_QTY as 'X', UNMEAS as 'ST', ITEM_TEXT1 and ITEM_TEXT2.
Anyone who has faced same problem or has a solution to the problem, kindly provide a solution.
Regards,
VijayThe error you receive is because of different config for different Item Categories. Find out from the functional team what fields have they kept mandatory for the item category 'T'. You may not be passing one of those fields in the BAPI.
Try creating a BOM manually for item category 'T' and you may figure our which field you are missing.
Maybe you are looking for
-
Why can't I open iPhoto 11 in my mac with 10.8.6?
When I open iPhoto a window pops up and said 'there's a problem with the version'. Why?
-
CR 2008 UI display problems on Windows Vista
Hi all, I have just installed CR 2008 SP2 on my Windows Vista PC, and I am intermittantly having UI display problems when I go between "Design" and "Preview" views of my reports. It seems most often that the "Design" view has the screen redraw proble
-
How to stop user doesn't have "approver" to approve PR from "forward"
When we have an issue from our customers that an approver forward via email to the user doesn't have "approve" right. But this use be cable to approve this PR. Is there profile or setting to stop this ? we are using EBS 12.0.1 and database 11.1. Hope
-
Conditional Processing based on month and Year
Hi ALL, I have one package that Contain two DataFlow DFT1 DFT2 now What I need ,I need to Process the DFT1 on every week and DFT2 on every month Start. Please Help Me . How can I do this task. Thanks
-
What are these guides and how can I hide them?
Thank-you in advance!