Creation of Storage Location using BAPI
Hi ABAP Gurus,
I want to create a Storage Location using a BAPI , namely 'BAPI_MATERIAL_SAVEDATA'.
I am passing the required parameters like Material, Material Type,Base unit of measure ,Plant and
the parameter Storage Location(STGE_LOC) as well as corresponding X Structures for the fields.
But by using these parameters , the BAPI is not creating the Storage Location.
Please help regarding this.
Hi,
Please check are you passing like this.
PLANTDATA-plant = '3210'.
PLANTDATAX-plant = 'X'. or you try like this PLANTDATAX-plant = '3210'. (because the comp. type is WERKS_D)
Regards
GK.
Similar Messages
-
Automatically creation of storage location for material, in MF60
Hi all,
my collegue of PP module uses MF60 transaction.
When he puts XXXX as Replenishment storage location, the system tells him this error: To stge loc. XXXX does not exist for material M1010000182 in plant 0001.
In MM i have activate the automatic creation of storage location for plant 0001 and for all movement types.
Why MF60 does not respect this requirement?
If I try to do movement type 311 with MIGO, manually, there's no problem to transfer the material from a storage location to , XXXX s.loc.
Is there something more that I have to do?
Thanks in advance!
Best regards
AlbaThanks a lot...
the note says:
Summary
Symptom
A material without storage location view exists.
If within a single material document, this material is moved in such a way that no change in stock occurs in total, the system does not create a storage location automatically even if this is set in Customizing.
Additional key words
OMC3, XLAUT
Cause and prerequisites
All postings to a segment (for example, material, plant, storage location) are only executed if a change in stock occurs. Only in this case, storage locations are created automatically. This way it is made sure that no empty segments are created.
Solution
The system behaves correctly.
Header Data
Release Status:
Released on: 07.07.2000 22:00:00
BUT why IF i do 311 in MIGO, system creates automatically storage location (also if no change in stock occurs in total).
AND if doMF60 (that does mouvement 311), system does not create automatically the storage location?
Best regards
Alba -
Creation of sale order using bapi in webdynpro using table control
only first row is getting updated when checked in va03, the line items are not getting replaced, only first row is committed..
Here is the code for table control i used...
http://www.scribd.com/doc/51879492/creation-of-sale-order-using-bapi-in-webdynpro-using-table-control
pls help me out with this..Duplicate Posting. Original is here: Sales order creation with bapi in webdynpro using table control
-
Re: Creation of storage location for halb which was not assigned primarily
Creation of storage location for halb, every thing processed with raw materials for production orders reg fert and even settled. Later a storage location is to be created for halb. When I created storage location for halb and when I want to post initial stock through MB1C I am getting error saying material type and storage location not maintained. Can any one solve my problem. Thanks in advance.
Hi Vachanala,
Are the material masters of your materials extended to the new storage location / have you defined automatic creation (for movement) in customizing (SPRO > Material Manegement > Inventory management & PI > Automatic movements > Create Storage Location Automatically)?
If the material masters are not extended you can't book those materials to that SL.
BR
Csaba
<b>material master</b>
http://help.sap.com/saphelp_46c/helpdata/en/ff/515ee849d811d182b80000e829fbfe/frameset.htm
<b>automatic creation of storage data</b>
http://help.sap.com/saphelp_46c/helpdata/en/a5/6330f243a211d189410000e829fbbd/frameset.htm -
Problem regarding the creation of sales order using bapi.
Hai all,
I am creating sales order using bapi but i am, get following error messages :
TYPE ID NUMBER MESSAGE
E VP 112 Please enter sold-to party or ship-to party
E V4 219 Sales document was not changed
I have entered all the parameters.
my program is as follows :
*& Report ZSD_SALES_ORDER
REPORT ZSD_SALES_ORDER.
Tables
*table definitions
TABLES:vbak, "Sales Document: Header Data
knvv, "Customer Master Sales Data
mara, "General Material Data
t001l, "Plants/Branches
mvke, "Sales Data for Material
vbap, "Sales Document: Item Data
konv. "Conditions (Transaction Data)
Types
*type for upload data
TYPES :BEGIN OF ty_upload,
matnr(20) TYPE c, " Old material number
quantity(20) TYPE c, " Cumulative order quantity in sales units
VALUE TYPE BAPIKWERT1,
value(20) TYPE c, " Condition value
value TYPE konv-kwert, " Condition value
END OF ty_upload.
*type for final output table
TYPES :BEGIN OF ty_main,
bismt TYPE mara-bismt, "Old material number
matnr TYPE vbap-matnr, "Material Number
kunnr TYPE vbak-kunnr, "customer number
auart TYPE vbak-auart, "Sales Document Type
vkorg TYPE vbak-vkorg, "Sales Organization
vtweg TYPE vbak-vtweg, "Distribution Channel
spart TYPE vbak-spart, "Division
vbeln TYPE vbak-vbeln, "Sales document
werks TYPE marc-werks, " Plant
lgort TYPE mard-lgort, "Storage Location
posnr TYPE vbap-posnr, "Sales Document Item
parvw TYPE vbpa-parvw, "Partner function
kwmeng TYPE vbap-kwmeng, "Cumulative order quantity in sales units
kschl TYPE konv-kschl, "Condition type
kwert TYPE konv-kwert, "Condition value
KWERT TYPE BAPIKWERT1,
kwert(20) TYPE c, "Condition value
waers TYPE konv-waers, "Currency
END OF ty_main.
*type for old material number
TYPES: BEGIN OF ty_matnr,
matnr TYPE mara-matnr,
bismt TYPE mara-bismt,
END OF ty_matnr.
*type for order number
TYPES :BEGIN OF ty_output,
vbeln TYPE vbak-vbeln, "Sales Document
END OF ty_output.
Constants Begin with C_ *
CONSTANTS:
c_zpmu(4) TYPE c VALUE 'ZPMU',
c_zpmm(4) TYPE c VALUE 'ZPMM'.
DATA: c_ch(1) TYPE c VALUE 'X'.
Data Begin with W_ *
*global data for validations
DATA: w_count TYPE i,
w_vkorg TYPE vbak-vkorg,
w_vtweg TYPE vbak-vtweg,
w_spart TYPE vbak-spart,
w_werks TYPE t001l-werks,
w_check TYPE c,
w_itemno TYPE posnr_va,
W_COND TYPE C.
w_cond(3) TYPE c.
Internal tables Begin with IT_ *
*internal table definitions
DATA : it_upload TYPE STANDARD TABLE OF ty_upload ,
wa_upload TYPE ty_upload.
DATA : it_main TYPE STANDARD TABLE OF ty_main,
wa_main TYPE ty_main.
DATA: it_matnr TYPE STANDARD TABLE OF ty_matnr,
wa_matnr TYPE ty_matnr.
DATA : it_output TYPE STANDARD TABLE OF ty_output.
Internal table for BAPI.
DATA: it_bapisdhd1 TYPE STANDARD TABLE OF bapisdhd1, "Sales and Distribution Document Header
wa_bapisdhd1 TYPE bapisdhd1.
DATA: it_bapisditm TYPE STANDARD TABLE OF bapisditm , "Sales and Distribution Document Item
wa_bapisditm TYPE bapisditm.
DATA: it_bapiparnr TYPE STANDARD TABLE OF bapiparnr, "SD Document Partner: WWW
wa_bapiparnr TYPE bapiparnr.
DATA: it_bapischdl TYPE STANDARD TABLE OF bapischdl, "Schedule Lines
wa_bapischdl TYPE bapischdl.
DATA: it_bapicond TYPE STANDARD TABLE OF bapicond, "Communication Fields for Maintaining Conditions in the Order
wa_bapicond TYPE bapicond.
DATA: it_bapiret2 TYPE STANDARD TABLE OF bapiret2, "Return Parameter
wa_bapiret2 TYPE bapiret2.
Parameters Begin with PR_ *
*selection screen definition
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME .
PARAMETERS: pr_vkorg TYPE vbak-vkorg OBLIGATORY,
pr_vtweg TYPE vbak-vtweg OBLIGATORY,
pr_spart TYPE vbak-spart OBLIGATORY,
pr_kunnr TYPE kna1-kunnr OBLIGATORY,
pr_werks TYPE marc-werks OBLIGATORY,
pr_lgort TYPE mard-lgort OBLIGATORY.
PARAMETERS: pr_auart TYPE vbak-auart OBLIGATORY,
PR_AUGRU TYPE VBAK-AUGRU OBLIGATORY.
pr_augru TYPE vbak-augru.
SELECTION-SCREEN END OF BLOCK blk1.
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME.
PARAMETERS : pr_file TYPE ibipparms-path OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk2.
At selection-screen *
AT SELECTION-SCREEN.
PERFORM f006_validate_vkorg.
PERFORM f007_validate_vtweg.
PERFORM f008_validate_spart.
PERFORM f009_validate_kunnr.
PERFORM f010_validate_werks.
PERFORM f011_validate_lgort.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.
*for f4 help----
PERFORM f003_f4_help.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
*for material ,quantity and value upload
PERFORM f001_upload_file.
*get data
PERFORM f003_get_data.
*for check the data
PERFORM f002_check_data .
PERFORM f004_process.
*for posting
PERFORM f005_posting.
END-OF-SELECTION.
E N D O F S E L E C T I O N *
*& Form f001_upload_file
upload file
FORM f001_upload_file .
DATA : lw_fname TYPE string.
CLEAR lw_fname.
lw_fname = pr_file.
REFRESH it_upload.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lw_fname
filetype = 'ASC'
has_field_separator = c_ch
TABLES
data_tab = it_upload
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT it_upload INTO wa_upload.
wa_upload-value = ( wa_upload-value ) / 10.
MODIFY it_upload FROM wa_upload.
ENDLOOP.
ENDFORM. "F001_UPLOAD_FILE
*& Form f003_f4_help
f4 help
FORM f003_f4_help .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = pr_file.
ENDFORM. " f003_f4_help
*& Form check_data
text
FORM f002_check_data .
DATA: lw_lines TYPE i.
DESCRIBE TABLE it_main LINES lw_lines.
IF lw_lines LE 0.
RETURN.
ENDIF.
SELECT a~matnr
a~bismt FROM mara AS a INNER JOIN mvke AS b
ON amatnr = bmatnr
INTO CORRESPONDING FIELDS OF TABLE it_matnr
FOR ALL ENTRIES IN it_main
WHERE a~bismt = it_main-bismt.
IF sy-subrc = 0.
LOOP AT it_main INTO wa_main.
CLEAR : wa_matnr.
READ TABLE it_matnr INTO wa_matnr WITH KEY bismt = wa_main-bismt.
IF sy-subrc = 0.
MOVE: wa_matnr-matnr TO wa_main-matnr.
ENDIF.
MODIFY it_main FROM wa_main TRANSPORTING matnr WHERE bismt = wa_main-bismt.
ENDLOOP.
ELSE.
MESSAGE e000(zmsd) WITH text-001.
ENDIF.
ENDFORM. "CHECK_DATA
*& Form F009_validate_vkorg
text
FORM f006_validate_vkorg .
CLEAR w_vkorg.
SELECT SINGLE vkorg
INTO w_vkorg FROM tvko
WHERE vkorg EQ pr_vkorg.
IF sy-subrc <> 0.
MESSAGE e000(zmsd) WITH text-012 pr_vkorg.
ENDIF.
ENDFORM. " F009_validate_vkorg
*& Form f007_validate_vtweg
text
FORM f007_validate_vtweg .
CLEAR:w_vtweg.
SELECT SINGLE vtweg
INTO w_vtweg FROM tvtw
WHERE vtweg EQ pr_vtweg.
IF sy-subrc <> 0.
MESSAGE e089(zmsd).
ENDIF.
ENDFORM. " f007_validate_vtweg
*& Form f008_validate_spart
text
FORM f008_validate_spart .
CLEAR:w_spart.
SELECT SINGLE spart
INTO w_spart FROM tspa
WHERE spart EQ pr_spart.
IF sy-subrc <> 0.
MESSAGE e087(zmsd).
ENDIF.
ENDFORM. " f008_validate_spart
*& Form F010_validate_kunnr
text
FORM f009_validate_kunnr .
DATA: l_kunnr TYPE kunnr.
CLEAR: w_vkorg, w_vtweg,w_spart.
SELECT SINGLE kunnr FROM knvv
INTO l_kunnr
WHERE kunnr = pr_kunnr
AND vkorg = pr_vkorg
AND vtweg = pr_vtweg
AND spart = pr_spart.
IF sy-subrc <> 0.
MESSAGE e000(zmsd) WITH text-010 pr_kunnr text-011 pr_vkorg .
ENDIF.
ENDFORM. " F010_validate_kunnr
*& Form f010_validate_werks
text
FORM f010_validate_werks .
CLEAR:w_werks.
SELECT SINGLE werks
INTO w_werks FROM t001w
WHERE werks EQ pr_werks.
IF sy-subrc <> 0.
MESSAGE e088(zmsd).
ENDIF.
ENDFORM. " f010_validate_werks
*& Form F011_validate_lgort
text
FORM f011_validate_lgort .
CLEAR:w_werks .
SELECT SINGLE werks FROM t001l
INTO w_werks
WHERE werks = pr_werks
AND lgort = pr_lgort.
IF sy-subrc <> 0.
MESSAGE e000(zmsd) WITH text-007 pr_lgort text-008 pr_werks .
ENDIF.
ENDFORM. " F011_validate_lgort
*& Form f003_get_data
text
FORM f003_get_data .
CLEAR wa_main.
REFRESH it_main.
LOOP AT it_upload INTO wa_upload.
CLEAR : wa_main.
MOVE: wa_upload-matnr TO wa_main-bismt,
wa_upload-quantity TO wa_main-kwmeng,
wa_upload-value TO wa_main-kwert,
pr_vkorg TO wa_main-vkorg,
pr_vtweg TO wa_main-vtweg,
pr_spart TO wa_main-spart,
pr_kunnr TO wa_main-kunnr,
pr_werks TO wa_main-werks,
pr_lgort TO wa_main-lgort.
APPEND wa_main TO it_main.
ENDLOOP.
ENDFORM. " f003_get_data
*& Form f004_process
text
FORM f004_process .
CLEAR w_check.
LOOP AT it_main INTO wa_main.
IF wa_main-matnr = ''.
WRITE:/ text-006,
wa_main-bismt.
w_check = 1.
ENDIF.
IF wa_main-kwmeng = 0.
WRITE:/ text-005,
wa_main-bismt.
w_check = 1.
ENDIF.
IF pr_auart <> 'ZM01'.
IF wa_main-kwert IS INITIAL.
WRITE:/ text-004,
wa_main-bismt.
w_check = 1.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " f004_process
*& Form f005_posting
text
FORM f005_posting .
CLEAR: w_itemno,
w_cond.
w_itemno = 10.
w_cond = 1.
IF w_check = '' OR w_check = 1.
wa_bapisdhd1-doc_type = pr_auart.
wa_bapisdhd1-ord_reason = pr_augru.
LOOP AT it_main INTO wa_main.
IF w_cond = 1.
CLEAR: it_bapiret2,
it_bapisditm,
it_bapiparnr,
it_bapischdl,
it_bapicond.
REFRESH:it_bapiret2,
it_bapisditm,
it_bapiparnr,
it_bapischdl,
it_bapicond.
MOVE: wa_main-vkorg TO wa_bapisdhd1-sales_org,
wa_main-vtweg TO wa_bapisdhd1-distr_chan,
wa_main-spart TO wa_bapisdhd1-division.
wa_bapisdhd1-wbs_eleM = 'Y561.1'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = pr_kunnr
IMPORTING
OUTPUT = pr_kunnr.
wa_bapisdhd1-PURCH_NO_S = pr_kunnr.
wa_bapisdhd1-PURCH_NO_C = pr_kunnr.
ENDIF.
MOVE: w_itemno TO wa_bapisditm-itm_number,
wa_main-matnr TO wa_bapisditm-material,
wa_main-BISMT TO wa_bapisditm-material,
wa_main-werks TO wa_bapisditm-plant,
wa_main-lgort TO wa_bapisditm-store_loc.
wa_bapisditm-target_qty = '10'.
wa_bapisditm-PURCH_NO_S = pr_kunnr.
wa_bapisditm-PURCH_NO_C = pr_kunnr.
APPEND wa_bapisditm TO it_bapisditm.
IF w_cond = 1.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-itm_number = 10.
wa_bapiparnr-partn_role = 'SP'.
APPEND wa_bapiparnr TO it_bapiparnr.
wa_bapiparnr-partn_role = 'AG'.
APPEND wa_bapiparnr TO it_bapiparnr.
CLEAR wa_bapiparnr-partn_role.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-partn_role = 'RE'.
APPEND wa_bapiparnr TO it_bapiparnr.
CLEAR wa_bapiparnr-partn_role.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-partn_role = 'RG'.
APPEND wa_bapiparnr TO it_bapiparnr.
CLEAR wa_bapiparnr-partn_role.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-partn_role = 'WE'.
APPEND wa_bapiparnr TO it_bapiparnr.
ENDIF.
wa_bapischdl-itm_number = w_itemno.
wa_bapischdl-req_qty = wa_main-kwmeng.
wa_bapischdl-PURCH_NO_S = pr_kunnr.
APPEND wa_bapischdl TO it_bapischdl.
wa_bapicond-itm_number = w_itemno.
wa_bapicond-cond_type = 'ZECL'.
IF ( wa_bapisdhd1-doc_type = 'ZPMU' ) OR ( wa_bapisdhd1-doc_type = 'ZPMM' ).
wa_bapicond-cond_type = 'ZVAL'.
ELSE.
wa_bapicond-cond_type = 'ZMRP'. "+PK12122006
ENDIF.
wa_bapicond-cond_value = wa_main-kwert.
APPEND wa_bapicond TO it_bapicond.
w_itemno = w_itemno + 10.
w_cond = w_cond + 1.
ENDLOOP.
data : SALESDOCUMENTIN like BAPIVBELN-VBELN.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = wa_bapisdhd1
IMPORTING
salesdocument = SALESDOCUMENTIN
TABLES
return = it_bapiret2
order_items_in = it_bapisditm
order_partners = it_bapiparnr
order_schedules_in = it_bapischdl
order_conditions_in = it_bapicond.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = c_ch.
ENDIF.
LOOP AT it_bapiret2 INTO wa_bapiret2.
DATA : w_err(100) TYPE c,
w_matnr TYPE matnr.
IF wa_bapiret2-type = 'E' AND wa_bapiret2-id = 'V1' AND wa_bapiret2-number = 392.
UNPACK wa_bapiret2-message_v1 TO w_matnr.
READ TABLE it_matnr INTO wa_matnr WITH KEY matnr = w_matnr.
IF sy-subrc EQ 0.
CONCATENATE text-013 wa_matnr-bismt INTO w_err SEPARATED BY space.
MESSAGE w_err TYPE 'S'.
ENDIF.
ENDIF.
IF WA_BAPIRET2-TYPE = 'S'. " Comment
WRITE: 40 TEXT-009, WA_BAPIRET2-MESSAGE_V2+0(10).
ENDIF.
ENDLOOP.
ENDFORM. " f005_posting
I have given all the necessary parameters. it is telling that error is in parameter
sales_header_in.
I have checked it.
i have assigned purch_no_s and purch_no_c of the structure BAPISDHD1(ORDER_HEADER_IN)
in the bapi with customer number.
and also i have assigned the partnumber of the structure BAPIPARNR ORDER_PARTNERS
in the bapi with customer number.
but still , it is diplaying the error message, please enter the sold to or ship to party number.
how to resolve this error.
this is urgent requirement.
points will be awarded.
thanking u in advance,
a.srinivas.Hi,
Did u have a look at the standard programs which make use of BAPI_SALESORDER_CREATEFROMDAT1
Heres a list...
LWSSOU08
MV45WF0S
MWWMJF21_BAPI_SALESORDER_CREAT
RBUS2032
Regards,
Tanveer.
<b>Please mark helpful answers</b> -
How to change the storage location using BAPI_OUTB_DELIVERY_CHANGE
Hi !
I want to do batch split in the delivery using BAPI_OUTB_DELIVERY_CHANGE.
Can anyone tell me how to pass/change the storage location of each batch item.
Is there any other BAPI that can do the batch split and populate the storage location also for the split batches?
Regards,
Firoz.Hi all,
BAPI_OUTB_DELIVERY_CHANGE can be used to do batch split and updating storage loaction against each item of an outbond delivey.
I have done that in the folllowing way:
1 > Firstly i have updated the storage location for each delivery item using 'BAPI_OUTB_DELIVERY_CHANGE' passing some mininal parameters.
Fetch the item details from LIPS table based on the outbound delivery and pass the corresponding fields to item_data, item_control and item_data_spl parameters and passed into intenal table li_lips.
Loop at li_lips inti lw_lips.
lw_item_data-deliv_numb = lw_lips-vbeln.
lw_item_data-deliv_item = lw_lips-posnr.
lw_item_data-material = lw_lips-matnr.
lw_item_data-fact_unit_nom = lw_lips-umvkz.
lw_item_data-fact_unit_denom = lw_lips-umvkn.
lw_item_data-base_uom = lw_lips-meins.
lw_item_data-sales_unit = lw_lips-vrkme.
lw_item_control-deliv_numb = lw_lips-vbeln.
lw_item_control-deliv_item = lw_lips-posnr.
lw_item_data_spl-deliv_numb = lw_lips-vbeln.
lw_item_data_spl-deliv_item = lw_lips-posnr.
lw_item_data_spl-pick_denial = 'X'.
lw_item_data_spl-stge_loc = v_lgort.
"(This would be your Storage Location which you want to be updated)
Appending work areas into internal table to pass as parameter
APPEND lw_item_data_lgort TO li_item_data_lgort .
Appending work areas into internal table to pass as parameter
APPEND lw_item_control_lgort TO li_item_control_lgort.
Appending work areas into internal table to pass as parameter
APPEND lw_item_data_spl_lgort TO li_item_data_spl_lgort.
endloop.
Passing the delivery no in the work area of header data
lw_header_data-deliv_numb = v_delivery_no.
lw_header_control-deliv_numb = v_delivery_no.
lw_header_tech_control-upd_ind = 'U'.
Calling BAPI to change the Storage location
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = lw_header_data
header_control = lw_header_control
delivery = v_delivery_no
techn_control = lw_header_tech_control
TABLES
item_data = li_item_data
item_control = li_item_control
return = li_return_change
item_data_spl = li_item_data_spl.
Calling BAPI to committ the task
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .
2> Then i have used the same BAPI again 'BAPI_OUTB_DELIVERY_CHANGE' to do the batch split/update batch only(if required) and change the Actual Delivered Quantity.
Here you have to pass the same thing along with actual delivery qauntity and different batches to do batch split.
Here it is assumed that Batch numbers, actual delivered quantity are coming from an internal table i_lqua.
Looping through Internal table to get Bin details
LOOP AT i_lqua INTO w_lqua .
Clearing work area before use
CLEAR : lw_item_data, lw_lips, lw_item_control, lw_item_data_spl.
Reading table comparing metrial number
READ TABLE li_lips INTO lw_lips
WITH KEY matnr = w_lqua-matnr BINARY SEARCH.
If read is successful, passing values from table
IF sy-subrc EQ 0.
Passing the delivery details into Item level table
lw_item_data-deliv_numb = lw_lips-vbeln.
lw_item_data-deliv_item = lw_lips-posnr.
lw_item_data-material = lw_lips-matnr.
lw_item_data-batch = w_lqua-charg.
lw_item_data-dlv_qty = w_lqua-verme.
lw_item_data-dlv_qty_imunit = w_lqua-verme.
lw_item_data-base_uom = w_lqua-meins.
lw_item_data-hieraritem = lw_lips-posnr.
lw_item_data-usehieritm = 1.
lw_item_data-fact_unit_nom = lw_lips-umvkz.
lw_item_data-fact_unit_denom = lw_lips-umvkn.
lw_item_data-sales_unit = lw_lips-vrkme.
lw_item_control-deliv_numb = lw_lips-vbeln.
lw_item_control-deliv_item = lw_lips-posnr.
lw_item_control-chg_delqty = 'X'.
lw_item_data_spl-deliv_numb = lw_lips-vbeln.
lw_item_data_spl-deliv_item = lw_lips-posnr.
lw_item_data_spl-stge_loc = w_lqua-lgort.
lw_item_data_spl-pick_denial = 'X'
Appending work area into internal table to pass as parameter
APPEND lw_item_data TO li_item_data.
Appending work area into internal table to pass as parameter
APPEND lw_item_control TO li_item_control.
Appending work area into internal table to pass as parameter
APPEND lw_item_data_spl TO li_item_data_spl.
Clearing work areas after use
CLEAR : lw_item_data, w_lqua,lw_item_data_spl,lw_item_control,
lw_vbpok, lw_lips.
ENDIF.
ENDLOOP.
Passing the delivery no in the work area of header data
lw_header_data-deliv_numb = v_delivery_no.
lw_header_control-deliv_numb = v_delivery_no.
lw_header_tech_control-upd_ind = 'U'.
Calling BAPI to change the Batch/Batch-Split/Delivery Quantity
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = lw_header_data
header_control = lw_header_control
delivery = v_delivery_no
techn_control = lw_header_tech_control
TABLES
item_data = li_item_data
item_control = li_item_control
return = li_return_change
item_data_spl = li_item_data_spl.
Calling BAPI to committ the task
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .
This is the only way which i found as better way to do the Batch split and updating storage location togetherly.
I hope this code will help you. -
Automatic creation of Storage Location data with GR to Project stock (Q)
Hello,
during "normal" Plant stock GR (mvmt type 101) for a material, the Storage Location data gets automatically created, but this doesn't happen for Project stock (Q) material receipts.
Is there a way to influence this either through customizing (of mvmt type?) or through an exit/enhancement/BadI?
Thanks for the tips, br
LK369468 - Storage location segment (MARD) in the case of special stock
The special stocks sales order stock. and project stock. are not managed in a material/plant storage location segment (MARD). The existence of the MARD segment is thus irrelevant to a goods movement. Neither the checking nor the creation of the MARD segment is desirable with regard to performance and physical inventory aspects in particular. For this reason, this MARD segment is not read, checked or created automatically in the course of goods movements. We regard this as being in the best interests of our customers. -
Creation of sales order Using BAPI
Dear Friends,
I need a complete program for Sales order creation using BAPI with all mandatory fields.
I got some sample programs from our friends (SDN) but its not working perfectly.
( Complete working copy of Sales order creation using BAPI. )
Please help me, Expecting your quick reply.
Thanks in Advance.
ShankarHi,
Did u have a look at the standard programs which make use of BAPI_SALESORDER_CREATEFROMDAT1
Heres a list...
LWSSOU08
MV45WF0S
MWWMJF21_BAPI_SALESORDER_CREAT
RBUS2032
Regards,
Tanveer.
<b>Please mark helpful answers</b> -
Auto Creation of Storage Location at the time of Goods receipt
Dear All
Please tell me how can i create storage location automatically at the time of Goods receipt.
i already made the configuration in OMJ8 for movement type and required plant
still, at the time of creating PO its not getting created..
Please advice
Narendra C.Hello Narendra,
If you are trying for automatic creation of strorage location for goods movement to special stock, then ithe data will nit be created. This standard SAP functionality.
Also if you have maintained storage location in the preceeding documents, then it will automatically fetched during goods reciept.
BR,
Tushar
Edited by: Tushar Patankar on Feb 4, 2011 12:50 PM -
Deletion and Creation of storage location.
Dear Experts,
Plz advise how can we un-assign any storage location from any material & how can we create the new storage location.
Regards
Sumit KalyanHi Sumit,
System will allow the stock posting to storage location for which u have set Deletion until it has been achieved.
You can block the storage location of a material without affecting the rest of the location using the same material.
1.Create a Physical Inventory document for the storage location with transaction MI01 by Selecting the Posting Block checkbox.
This would prevent transactions from occuring until you either post or delete the physical inventory document.
or
2. U can create & delete the stoarge loaction at OX09. This will affect the all the material which has assigned to same storage lacation. Normally MM will do this,
Regards
Pradeep -
Material creation for All VIEW using BAPI Function modules
Dear All,
I want to create materials for all views using BAPI F.Ms. By using BAPI_MATERIAL_SAVEDATA i have extended materials for for only specified views. now my requirement is to create Material with All views including Classfication view also. For this i found BAPI_OBJCL_CREATEFM.
Tell me that shall i use both Fm's at time to create material.Will it work? According to my knowledge we need to create Characters first ,then we should assign this character to this class, then while creation of material we should select this class .
so pls guide me the procedure to follow for both FM's .
Note : Pls don't suggest me LSMW OR BDC procedure.
regards,
Prashanth Maturu.Hi prashanth,
U can use both the FM. using BAPI_MATERIAL_SAVEDATA u can create all the views and for classification view use BAPI_OBJCL_CREATE. before assigning class to material u hve to make sure that the characteristics are uploaded and is attched to the class using transaction CL03.
Regards,
Anil N. -
Creation of Purchase Requisition using BAPI
Hi Experts
Can anyone provide me the sample code for creating Purchase Requisition using BAPI
Thanks in advanceHi siri,
go throught this, hope
http://www.erpgenie.com/abap/bapi/example.htm
Also refer to the following links..
www.sappoint.com/abap/bapiintro.pdf
www.sap-img.com/bapi.htm
www.sap-img.com/abap/bapi-conventions.htm
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm
Checkout !!
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf
http://sap-img.com/bapi.htm
Thanks
Naveen khan
Message was edited by:
Pattan Naveen -
Creation of purchase order using bapi
hi gurus,
Can anyone give me an example of how to create purchase order using bapiHi use BAPI_PO_CREATE.. I have an eg. of changing a PO using BAPI. This is almost similar to create.. Go thru and let me know if u need more info..
Dont forget to use 'BAPI COMMIT' after the function call...
DATA:
*Update Short text, qty, net price, item no.,
*agreement no. and agreement line no.
it_po_item TYPE TABLE OF bapimepoitem,
*Select fields
it_po_item_x TYPE TABLE OF bapimepoitemx,
*Delivery date
it_po_schedule TYPE TABLE OF bapimeposchedule,
*Select fields
it_po_schedule_x TYPE TABLE OF bapimeposchedulx,
*Return parameters
it_return TYPE TABLE OF bapiret2,
*PO Account
it_po_account TYPE TABLE OF bapimepoaccount,
*Select fields
it_po_account_x TYPE TABLE OF bapimepoaccountx,
Condition Types
it_po_cond TYPE TABLE OF bapimepocond,
*Select fields
it_po_cond_x TYPE TABLE OF bapimepocondx,
it_po_text type table of BAPIMEPOTEXT.
Structures
DATA:
st_po_header TYPE bapimepoheader,
st_po_header_x TYPE bapimepoheaderx,
st_po_item LIKE LINE OF it_po_item,
st_po_item_x LIKE LINE OF it_po_item_x,
st_po_schedule LIKE LINE OF it_po_schedule,
st_po_schedule_x LIKE LINE OF it_po_schedule_x,
st_return TYPE bapiret2,
st_po_account LIKE LINE OF it_po_account,
st_po_account_x LIKE LINE OF it_po_account_x,
st_po_cond LIKE LINE OF it_po_cond,
st_po_cond_x LIKE LINE OF it_po_cond_x,
st_po_text like line of it_po_text.
Variables
DATA : po_number TYPE bapimepoheader-po_number,
w_item_no(10) TYPE n VALUE '1'.
START-OF-SELECTION.
test values
po_number = '94490'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = po_number
IMPORTING
OUTPUT = po_number
st_po_item-po_item = w_item_no.
st_po_item-quantity = '00.000'.
st_po_item-delete_ind = 'X'.
st_po_item-short_text = 'ZMU-test1'.
st_po_item-agreement = '0060000128'.
st_po_item-agmt_item = '1'.
st_po_item-net_price = '1'.
st_po_item_x-po_item = w_item_no.
st_po_item_x-po_itemx = 'X'.
st_po_item_x-delete_ind = 'X'.
st_po_item_x-quantity = 'X'.
st_po_item_x-short_text = 'X'.
st_po_item_x-agreement = 'X'.
st_po_item_x-agmt_item = 'X'.
st_po_item_x-net_price = 'X'.
st_po_schedule-po_item = w_item_no.
st_po_schedule-delivery_date = '9/19/2008'.
st_po_schedule-quantity = '1'.
st_po_schedule_x-po_item = w_item_no.
st_po_schedule_x-po_itemx = 'X'.
st_po_schedule_x-delivery_date = 'X'.
st_po_schedule_x-quantity = 'X'.
st_po_cond-itm_number = w_item_no.
st_po_cond-cond_type = 'PB00'.
st_po_cond-cond_value = '1.000'.
st_po_cond-currency = 'USD'.
st_po_cond-change_id = 'U'.
st_po_cond_x-itm_number = w_item_no.
st_po_cond_x-itm_numberx = 'X'.
st_po_cond_x-cond_type = 'X'.
st_po_cond_x-cond_value = 'X'.
st_po_cond_x-currency = 'X'.
st_po_cond_x-change_id = 'X'.
st_po_text-PO_NUMBER = po_number.
st_po_text-PO_ITEM = w_item_no.
st_po_text-TEXT_LINE = 'MU_TEST1 MU_TEST2'.
APPEND:
st_po_item_x TO it_po_item_x,
st_po_item TO it_po_item.
st_po_schedule_x TO it_po_schedule_x,
st_po_schedule TO it_po_schedule,
st_po_cond TO it_po_cond,
st_po_cond_x TO it_po_cond_x,
st_po_text to it_po_text.
st_po_text-PO_NUMBER = po_number.
st_po_text-PO_ITEM = w_item_no.
st_po_text-TEXT_LINE = 'MU_TEST2'.
st_po_text-TEXT_FORM = '03'.
append st_po_text to it_po_text.
PERFORM function_call.
LOOP AT it_return INTO st_return.
WRITE:/ st_return-message, 'Message type =', st_return-type,/.
ENDLOOP.
REFRESH:
it_return,
it_po_item,
it_po_item_x,
it_po_cond,
it_po_cond_x.
PERFORM update_price.
WRITE:/ 'After update - Messages'.
LOOP AT it_return INTO st_return.
WRITE:/ st_return-message, 'Message type =', st_return-type,/.
ENDLOOP.
data: begin of test occurs 0,
f1,
end of test.
FORM function_call *
FORM function_call.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = po_number
POHEADER =
POHEADERX =
POADDRVENDOR =
TESTRUN =
MEMORY_UNCOMPLETE =
MEMORY_COMPLETE =
IMPORTING
EXPHEADER =
TABLES
return = it_return
poitem = it_po_item
poitemx = it_po_item_x
POADDRDELIVERY =
poschedule = it_po_schedule
poschedulex = it_po_schedule_x
poaccount =
POACCOUNTPROFITSEGMENT =
poaccountx =
POCONDHEADER =
POCONDHEADERX =
pocond = it_po_cond
pocondx = it_po_cond_x
POLIMITS =
POCONTRACTLIMITS =
POSERVICES =
POSRVACCESSVALUES =
POSERVICESTEXT =
EXTENSIONIN =
EXTENSIONOUT =
POTEXTHEADER =
POTEXTITEM = it_po_text
POPARTNER =
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = st_return.
ENDFORM. -
Creation of outbound idoc using BAPI
Hi,
How can I create outbound IDOC using BAPI. If I go to BD64 and add the message type PREQCR,it gives the message that 'add this message type using BAPI'.I have added with the option ADD BABI.After that I dont know how to trigger?.Please give me the procedure how can i create outbound idoc using BAPI.
Thanks,
RaviYou will have to do the MESSAGE OUTPUT DETERMINATION to trigger the IDOC. Once you have done the config, internally it uses the method that you have configured.
Look at NACE transaction to do the config, for message output determination of a purchase order.
You can even do it in the config --
Go to SPRO transaction. SAP Customizing Implementation Guide --> Materials Management --> Purchasing --> Messages -->
regards,
Ravi
Message was edited by: Ravikumar Allampallam -
Can we delete material for particular storage location using MMSC
Hi,
Can we delete a Material for particular storage location of a plant usign MMSC Transaction?
Thanks in advance.
NDSHi, It is not possible to delete the storage location from MMSC once it is saved, Material gets extended for that storage location, U have to delete the material at the storage location level.
Now the only option to delete this assignment is with archiving.
T-code: SARA object MM_MATNR
Refer below link for procedure
[Deletion Storage Location From MMSC |Re: Deletion Storage Locaion From MMSC]
[Cannot delete Sloc in MMSC|Re: Cannot delete Sloc in MMSC]
Maybe you are looking for
-
Trouble downloading itunes, error mssg keeps appearing.
Hiya, Just brought a brand spanking new Ipod Video 30gb. As there is no installation cd I had to go online and download itunes. However, everytime I try to download i keep getting a message as follows - "Could not open key: HKEYLOCALMACHINES\Software
-
How can you tell which cabinet you are connected t...
As the title says, how can you tell once installed. the reason i ask is where i live there is only the bt-pcp and the drl-fttc cabinet and no others. from what i heard is that both BT and DRL occupy the same fttc cabinet, and this would suggest so ba
-
Anyone have a good tutorial for an AS3-XML image gallery?
I'm a pretty good Flash developer, but I've never worked with XML in Flash. I'm looking for a good tutorial on creating an XML driven image gallery, but I have yet to really find anything. Does anyone out there have a good tutorial? Thanks! Jesse
-
What is the result of this query?
select min(rowid) from table -- what does this give? Can anybody please answer?
-
hi friends, Im copying the data from a basic infocube to a transactional cube ...i do have some restrictions for data.Iam using IF in the fox code for defining the restrictions.When i give a single value in IF the data is getting copied correctly ,bu