Block Stock to QM Stock
Hi Gurus,
We have a requirement for moving Block stock to QM stock ( with stock posting).
Once the materials is received the stock will be posted to block stock and when needed the blockstock will be moved to Qulaity and checked and posted accordingly.( right now Notification is not activated).
Is there any way for this?
regards
Santha
If you post material to Block Stock mvt is 350
If you want to post back to QI >Mvt type 349 though MB1B->activate 08 inspection type before doing mvt
This will create a lot of 08----
>make posting from QA32 accrodingly
Similar Messages
-
Report for material moved from blocked stock to unrestricted stock
Hi,
Is there a standard report in WM showing list and qty of materials moved from blocked stock to unrestricted stock.
Regards,
PratapIt would have been easy if there was a specific WM movement type for such transfer but due to the reason that the WM 309 is connected to various IM movement types, there is no direct report to get this information.
Conversely, you may use MB51 with the combination of the WM managed storage location and movement type for your purpose. If there are multiple storage locations assinged to the same warehouse then you may put a range in the selection criteria. -
Blocking of delivery if stock is not available
Hi
How to do Blocking of delivery if stock is not available ?You can control this via availability check control
In the transaction OVZ9
Select your Checking Group ( 01 or 02 ) and the Checking Rule B ( SD Delivery)
and inside this mark the following
1) Check without RLT
2) Include Deliveries
Then in that case the system will create the delivery only if you have physical stock. and also the system will take into consideration whether any open deliveries exist for the stock for ex . if the physical stock is 10 Pieces and you have already created a delivery note for 8 Pieces but neither nor pgied. then in that case the next delivery will only be created for 2 pieces and not more.
Check this out and let me know if you have any questions.
Thanks
Srini -
Transfer of stock from Returns stock type to Unrestricted/Blocked
Hi,Friends
How to transfer of stock from Returns stock type to Unrestricted/Blocked
what movement type will trigger by transfering this stock,
Thanks & Regards
KrishnaHi,
use MB1B Mvt Type 453 returns to unrestricted
Unrestriced to Blocked stock use - 344
Thanks & Regards,
kiran -
Block UD saving, If stock posting is not done
Dear Experts,
My requirement is to block UD when a stock posting activity not completed. In standard setting, the system allows to save UD without stock posting completion.
Is there any customization is possible to do this activity?
So that, the system should not allow UD saving without stock posting completion.
VRMP.Hi VRMP,
Gajesh is guiding you in 100% correct way. Status Profile will work for you exactly as per your requirement.
You will be in need to use the STD Profile "QM_L_001 - Inspection Lot Profile 1" will surely work for you. Herewith attaching some guiding links that are prepared to establish the control to prevent UD if RR is not done. Similarly look into for some business transaction that prevent UD before Stock posting.
[Thread - 1 |Re: User Profile created to block the UD, if RR is not done.]
[Thread - 2|Re: Result recording mandatory before UD]
[Thread - 3|Re: How to prevent UD when Result Recording is not carried out]
Or the at the other hand you can do it smarter way also.
Make the Posting proposal for UD code in Back ground in QS51 for each UD code. By doing this if the user will perform UD and save, system will; perform the Stock posting in background automatically.
Reagrds,
Shyamal -
RE: VELO Return blocked stock to unrestricted stock
Dear experts.
I have a situation where once again i would appreciate any help.
We are doing returns in VMS for an automotive company. All my code is working and my program creates a return, return delivery, goods reciept and credit memo in vms. My problem at this stage is when i try to move this vehicle from blocked stok to unrestricted stock (Action REUS) the Bapi returns with a message complaining about a notification class. However if i run transaction velo for the exact same vehicle and try to do action REUS the log tells me that the account requires an assignment to a CO object. I can however not just include this in config as our FI consultant says this would influence all movements into and out of this account. I need to code it into my program. And pass the profit centre to the bapi. I am using BAPI_VEHICLE_CHANGE_MULTIPLE but can not find any place to pass the profit centre.
ANY HELP?????
PLEASE.
Kind RegardsHi Griphen
I think that is a CO configuration problem, VMS donu2019t influence the determination profit center , ask: you are returning the vehicle at the same plant?
Best regards
Pablo Aguila -
Storage location extension for Blocked and Quality inspection stocks
Hi All,
Could any one explain how to extend a Storage location (which is actually maintained for the Returns) to make use for the Blocked and Quality inspection stocks. Does this require any config settings.
Thanks in advance.
KalyanHi,
Thanks for the Reply.
Let me be more clear,in describing my requirement. Actually the present Storage location is maintained for only Returns. But in addition to this I require to make use of this storage location for the purpose of the maintianing Blocked Stock or QI stock.
Therfore to achieve above what are necessary steps or do i need to maintain any config settings for this.
Thank You,
Kalyan. -
Pointers Needed on Movement from Blocked Stock to Unrestricted Stock !
Hi Gurus,
I have a scenario wherein I need to take care of "Movement from Blocked Stock to Unrestricted Stock using Movement type 343 and in the next step need to do Material to Material transfer using movement type 309"
My Query is:
1. What does it mean when we say Movment from Blocked stock to Unrestricted stock ?
2. What does it mean when we say Material to Material transfer ?
Please help me with pointers on finding a BAPI to do the above stock movements or material to material transfer.
Many Thanks,
MadanHi,
Please help me with pointers on the mapping parameters for this BAPI.
Here are the details which I am using, but gettin error message -
T ID NUM MESSAGE
E /CWM/MM 001 Transfer the parallel entry quantity/entry unit of measure
I have filled below fields:
GOODSMVT_HEADER
PSTNG_DATE 11/25/2009
DOC_DATE 11/25/2009
PR_UNAME MyName
HEADER_TXT TEST
GM
04 (Transfer Posting)
GOODSMVT_ITEM
MATERIAL 100001374
PLANT 1AAE
STGE_LOC B100
BATCH 0111331309
MOVE_TYPE 343
ENTRY_QNT 10.000
ENTRY_UOM EA
ENTRY_UOM_ISO EA
MOVE_MAT 100001374
MOVE_PLANT 1AAE
MOVE_STLOC B100
MOVE_BATCH 0111331309
Need your help to resolve this.
Many Thanks,
Madan -
Blocked stock to unrestricted stock in wm
Dear all,
i want to move the stock from blocked stock to unrestricted stock in WM.our issue is there is no stock availability of Blocked stock in IM.
Is there any manual transfer available in wm for the same. what could be possibilty for the above issue.i.e stocks available in wm not in IM.
Kindly guide me
Regards,
veluIn WM
Posting change from blk.to un rest.
1) LU01- MOV TYP 309,
2) LT05
Question?
A)have you already done the transfer posting in IM? otherwise where is the stock in IM and why it is available in WM?
b) If you have already done in IM try to find the mat. doc?In the mat.doc you see in the WM View posting change number,enter the posting change number in LT05 !
If not solved pls check LS 26,let me know the Stock status...
Regards,
eswarmanu...
Edited by: eswarmanu on Nov 18, 2008 6:40 AM -
Transfer Blocked stk to Quality stock & then post some quantity to sample
Hi all,
For one material, there is blocked stock. now user want , part of this stock to post to quality stock .
After the stock came to quality, they want to post some quantity to sample also. can anybody tell me
how i can achieve this ?
Thanks
pabiHello,
To post the stock from block stock to quality stock you can use movement type 349
Go to MB1B.
Enter movement type as 349, plant as per your setting and storage location.
Now press enter and enter the material and save. This will move stock from block stock to quality inpscetion stock
Now to issue stock for sampling you have to use movement type 331 in T-code MB1B
Br,
Tushar -
Opening Stock and Closing Stock Calculation
Hi,
My report requirement is to display the material, opening stock for the lower date, closing stock for the higher date and the in between all stock operations..how to fetch the opening stock and closing stock for a particular material ???.. what are the tables and fields for calculating them??..
Thanks,
Sri
Edited by: Sri on Feb 13, 2009 8:33 AMHi
We have done a similar reports. One showing opening stock/Closing stock and another one showing all the transactions for a particular day. What we did was we developed a program to fetch data from MARD table for unrestricted, blocked & Qulaity stock(Our requirement talks only about these 3 stocks). And we scheduled the program exactly at system time 00.00 hrs with A class job.(today's closing day stock is nothing but tomorrow's opening stock)
And for the second report which needs to pick all the transaction for a particular day, we picked it from MB51 entries. It is nothing but query between MKPF and MSEG.
I hope this helps. -
Opening Stock and Closing Stock
Hi,
I have one requirement to get a opening stock and closing stock of all materials, based on the plant date and mat type.
Could u tell me the flow of tables one by one
Its is possible to get the opening stock and closing stock of all materials.
Please Guide Me.
Thanks & Regards,
Dhanush.S.Tgo through this....
*& Report Z_OPEN_CLOSE *
REPORT Z_OPEN_CLOSE MESSAGE-ID YW2 LINE-SIZE 231 LINE-COUNT 45
NO STANDARD PAGE HEADING.
Type Declaration *
TYPE-POOLS SLIS.
Tables *
TABLES: MKPF, " Material Document: Header Data
MSEG, " Material Document: Item Data
MARA,
MARD,
S031,
EKKO,
EKPO,
LIKP,
MAKT,
J_1IWRKCUS,
T001W,
WB2_V_MKPF_MSEG2,
MMIM_REP_PRINT,
YW2_STKMOVEMENTS,
YPLNT,
MARDH.
Internal Tables *
DATA: I_WERKS LIKE J_1IWRKCUS OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF I_YPLNT OCCURS 0,
PPLNT LIKE YPLNT-PPLNT,
WPLNT LIKE YPLNT-WPLNT,
END OF I_YPLNT.
DATA: BEGIN OF I_MKPF OCCURS 0,
MBLNR LIKE MKPF-MBLNR,
MJAHR LIKE MKPF-MJAHR,
BUDAT LIKE MKPF-BUDAT,
VGART LIKE MKPF-VGART,
BWART LIKE MSEG-BWART,
MATNR LIKE MSEG-MATNR,
WERKS LIKE MSEG-WERKS,
LGORT LIKE MSEG-LGORT,
MENGE LIKE MSEG-MENGE,
MEINS LIKE MSEG-MEINS,
KUNNR LIKE MSEG-KUNNR,
ZEILE LIKE MSEG-ZEILE,
XAUTO LIKE MSEG-XAUTO,
SHKZG LIKE MSEG-SHKZG,
MATNR1 LIKE MSEG-MATNR,
END OF I_MKPF.
DATA: BEGIN OF I_MARDH OCCURS 0,
WERKS LIKE MARDH-WERKS,
MEINS LIKE MARA-MEINS,
MATNR LIKE MARDH-MATNR,
LGORT LIKE MARDH-LGORT,
LABST LIKE MARDH-LABST,
LFGJA LIKE MARDH-LFGJA, "Added -MB
LFMON LIKE MARDH-LFMON, "Added -MB
PERIO(6),
INSME LIKE MARDH-LABST,
EINME LIKE MARDH-LABST,
SPEME LIKE MARDH-LABST,
RETME LIKE MARDH-LABST,
O_STK LIKE MARDH-LABST, " Opening Stock
C_STK LIKE MARDH-LABST, " Closing Stock
END OF I_MARDH.
DATA: BEGIN OF I_MARD OCCURS 0,
WERKS LIKE MARD-WERKS,
MATNR LIKE MARD-MATNR,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
INSME LIKE MARD-LABST,
MEINS LIKE MARA-MEINS,
EINME LIKE MARD-LABST,
SPEME LIKE MARD-LABST,
RETME LIKE MARD-LABST,
END OF I_MARD.
DATA: I_MARD1 LIKE I_MARD OCCURS 0 WITH HEADER LINE.
DATA: I_MARDH1 LIKE I_MARDH OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF I_MKPF1 OCCURS 0,
MBLNR LIKE MKPF-MBLNR,
WERKS LIKE MSEG-WERKS,
MATNR LIKE MSEG-MATNR,
BUDAT LIKE MKPF-BUDAT,
BWART LIKE MSEG-BWART,
MJAHR LIKE MKPF-MJAHR,
VGART LIKE MKPF-VGART,
LGORT LIKE MSEG-LGORT,
MENGE LIKE MSEG-MENGE,
MEINS LIKE MSEG-MEINS,
XAUTO LIKE MSEG-XAUTO,
SHKZG LIKE MSEG-SHKZG,
END OF I_MKPF1.
DATA: BEGIN OF I_MKPF2 OCCURS 0,
WERKS LIKE MSEG-WERKS,
MATNR LIKE MSEG-MATNR,
BUDAT LIKE MKPF-BUDAT,
BWART LIKE MSEG-BWART,
MJAHR LIKE MKPF-MJAHR,
VGART LIKE MKPF-VGART,
LGORT LIKE MSEG-LGORT,
MENGE LIKE MSEG-MENGE,
MEINS LIKE MSEG-MEINS,
XAUTO LIKE MSEG-XAUTO,
END OF I_MKPF2.
DATA: BEGIN OF I_FINAL5 OCCURS 0,
WERKS LIKE MSEG-WERKS, " Plant
MATNR LIKE MSEG-MATNR, " Material
LGORT LIKE MSEG-LGORT, " Storage Location
BUDAT LIKE MKPF-BUDAT, " Posting Date
MTART LIKE MARA-MTART, " Material Type
SPMON LIKE S031-SPMON, " Month
MAKTX LIKE MAKT-MAKTX, " Description
meins(3), " UOM
MEINS LIKE MSEG-MEINS,
O_STK LIKE MARDH-LABST, " opening stock
TRECEP LIKE MARDH-LABST, " total receipts
PRODU LIKE MARDH-LABST, " Net Receipts - Production
RECEP LIKE MARDH-LABST, " Net Receipts - Receipts
SAL_RET LIKE MARDH-LABST, " Net Receipts - Sales Return
TDISP LIKE MARDH-LABST, " total dispatches
CUSTMR LIKE MARDH-LABST, " Net Dispatches - Customers
OPLANT LIKE MARDH-LABST, " Net Dispatches - To Other Plant
TLOSS LIKE MARDH-LABST, " Total Loss
TRLOSS LIKE MARDH-LABST, " Transit Loss
WHLOSS LIKE MARDH-LABST, " Warehouse Loss
C_STK LIKE MARDH-LABST, " Closing Stock
TRFSTK LIKE MARDH-LABST, "Transfer stock
MENGE LIKE MSEG-MENGE,
OTHADJ LIKE MARDH-LABST,
END OF I_FINAL5.
DATA: BEGIN OF I_FINAL OCCURS 0,
WERKS LIKE MSEG-WERKS, " Plant
MATNR LIKE MSEG-MATNR, " Material
BUDAT LIKE MKPF-BUDAT, " Posting Date
MTART LIKE MARA-MTART, " Material Type
SPMON LIKE S031-SPMON, " Month
MAKTX LIKE MAKT-MAKTX, " Description
meins(3), " UOM
MEINS LIKE MSEG-MEINS,
O_STK LIKE MARDH-LABST, " opening stock
TRECEP LIKE MARDH-LABST, " total receipts
PRODU LIKE MARDH-LABST, " Net Receipts - Production
RECEP LIKE MARDH-LABST, " Net Receipts - Receipts
SAL_RET LIKE MARDH-LABST, " Net Receipts - Sales Return
TDISP LIKE MARDH-LABST, " total dispatches
CUSTMR LIKE MARDH-LABST, " Net Dispatches - Customers
OPLANT LIKE MARDH-LABST, " Net Dispatches - To Other Plant
TRFSTK LIKE MARDH-LABST, "Material Transfer stock
TRLOSS LIKE MARDH-LABST, " Transit Loss
WHLOSS LIKE MARDH-LABST, " Warehouse Loss
TLOSS LIKE MARDH-LABST, " Total Loss
C_STK LIKE MARDH-LABST, " Closing Stock
OTHADJ LIKE MARDH-LABST,
END OF I_FINAL.
DATA: I_FINAL1 LIKE I_FINAL OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF I_FINAL_TEMP OCCURS 0,
WERKS LIKE MSEG-WERKS, " Plant
MATNR LIKE MSEG-MATNR, " Material
MTART LIKE MARA-MTART, " Material Type
MAKTX LIKE MAKT-MAKTX, " Description
MEINS LIKE MSEG-MEINS,
O_STK LIKE MARDH-LABST, " opening stock
TRECEP LIKE MARDH-LABST, " total receipts
PRODU LIKE MARDH-LABST, " Net Receipts - Production
RECEP LIKE MARDH-LABST, " Net Receipts - Receipts
SAL_RET LIKE MARDH-LABST, " Net Receipts - Sales Return
TDISP LIKE MARDH-LABST, " total dispatches
CUSTMR LIKE MARDH-LABST, " Net Dispatches - Customers
OPLANT LIKE MARDH-LABST, " Net Dispatches - To Other Plant
TRFSTK LIKE MARDH-LABST, "Material Transfer stock
TRLOSS LIKE MARDH-LABST, " Transit Loss
WHLOSS LIKE MARDH-LABST, " Warehouse Loss
TLOSS LIKE MARDH-LABST, " Total Loss
C_STK LIKE MARDH-LABST, " Closing Stock
OTHADJ LIKE MARDH-LABST,
END OF I_FINAL_TEMP.
For Materials
DATA: BEGIN OF I_MARA OCCURS 0,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MEINS LIKE MARA-MEINS,
LABST TYPE MARD-LABST,
MAKTX LIKE MAKT-MAKTX,
END OF I_MARA.
DATA: BEGIN OF I_STKMVMNTS OCCURS 0,
BWART LIKE MSEG-BWART,
SHKZG LIKE MSEG-SHKZG,
VZBEW LIKE YW2_STKMOVEMENTS-VZBEW,
END OF I_STKMVMNTS.
DATA: BEGIN OF I_FINALT OCCURS 0,
WERKS LIKE MSEG-WERKS, " Plant
MATNR LIKE MSEG-MATNR, " Material
BUDAT LIKE MKPF-BUDAT, " Posting Date
MTART LIKE MARA-MTART, " Material Type
SPMON LIKE S031-SPMON, " Month
MAKTX LIKE MAKT-MAKTX, " Description
meins(3), " UOM
MEINS LIKE MSEG-MEINS,
O_STK LIKE MARDH-LABST, " opening stock
TRECEP LIKE MARDH-LABST, " total receipts
PRODU LIKE MARDH-LABST, " Net Receipts - Production
RECEP LIKE MARDH-LABST, " Net Receipts - Receipts
SAL_RET LIKE MARDH-LABST, " Net Receipts - Sales Return
TDISP LIKE MARDH-LABST, " total dispatches
CUSTMR LIKE MARDH-LABST, " Net Dispatches - Customers
OPLANT LIKE MARDH-LABST, " Net Dispatches - To Other Plant
TRFSTK LIKE MARDH-LABST, "Material Transfer stock
TRLOSS LIKE MARDH-LABST, " Transit Loss
WHLOSS LIKE MARDH-LABST, " Warehouse Loss
TLOSS LIKE MARDH-LABST, " Total Loss
C_STK LIKE MARDH-LABST, " Closing Stock
OTHADJ LIKE MARDH-LABST,
MONTH(8) ,
END OF I_FINALT.
DATA: IMKPFT LIKE I_MKPF OCCURS 0 WITH HEADER LINE.
DATA: IMKPFT1 LIKE I_MKPF1 OCCURS 0 WITH HEADER LINE.
DATA: IMARDT LIKE I_MARD OCCURS 0 WITH HEADER LINE.
DATA: IMARDHT LIKE I_MARDH OCCURS 0 WITH HEADER LINE.
DATA: T_FINAL LIKE I_MKPF OCCURS 0 WITH HEADER LINE.
DATA: IMKPFT2 LIKE I_MKPF OCCURS 0 WITH HEADER LINE.
FCAT is used for the field catalog
DATA: FCAT TYPE TABLE OF SLIS_FIELDCAT_ALV WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
for excluding the ICONs from the application toolbar
FEXC TYPE TABLE OF SLIS_EXTAB WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FS_LAYO is used for Grid Layout
FS_LAYO TYPE SLIS_LAYOUT_ALV,
FEVENTS to handle the events TOP OF PAGE & USER_COMMAND
FEVENTS TYPE TABLE OF SLIS_ALV_EVENT WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FHEADER is used for List header
FHEADER TYPE TABLE OF SLIS_LISTHEADER WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
sort is used for sorting
FSORT TYPE TABLE OF SLIS_SORTINFO_ALV WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FCAT1 TYPE TABLE OF SLIS_FIELDCAT_ALV WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FS_LAYO1 TYPE SLIS_LAYOUT_ALV,
GT_LIST_TOP_OF_PAGE1 TYPE SLIS_T_LISTHEADER,
FEVENTS1 TYPE TABLE OF SLIS_ALV_EVENT WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
FHEADER1 TYPE TABLE OF SLIS_LISTHEADER WITH NON-UNIQUE DEFAULT
KEY WITH HEADER LINE INITIAL SIZE 0,
G_STATU_071 TYPE SLIS_FORMNAME VALUE 'Z_PFSTATUS',
ALV_VARIANT1 LIKE DISVARIANT.
Variable Declaration *
TYPES: TRFF_TYPE_DEC_6_5(6) TYPE P DECIMALS 5.
DATA: FYEAR(4),
MON(2),
FYEAR1(4),
MON1(2),
OBAL LIKE MARD-LABST,
CBAL LIKE MARD-LABST,
INDEX TYPE I,
COUNT,
COUNT1 TYPE I,
O_STK TYPE P DECIMALS 3,
C_STK TYPE P DECIMALS 3,
V_MJAHR LIKE MKPF-MJAHR,
MONTHS TYPE TRFF_TYPE_DEC_6_5,
MONTH TYPE I.
Global variables for handling ALV functionality
DATA: ALV_KEYINFO TYPE SLIS_KEYINFO_ALV,
ALV_VARIANT LIKE DISVARIANT,
ALV_LAYOUT TYPE SLIS_LAYOUT_ALV,
ALV_REPID LIKE SY-REPID,
ALV_PRINT TYPE SLIS_PRINT_ALV,
ALV_DETAIL_FUNC(30),
ALV_DEFAULT_VARIANT LIKE DISVARIANT-VARIANT,
ALV_COLOURIZE_FIELDS LIKE MMIM_REP_PRINT-COLOR.
RANGES: R_BUDAT FOR MKPF-BUDAT.
*Added by Prabhu for year on 26.4.05.
DATA: IDATE LIKE R_BUDAT OCCURS 0 WITH HEADER LINE.
Selection Screen Elements *
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_WERKS FOR MARD-WERKS OBLIGATORY NO INTERVALS.
PARAMETER: P_SPMON LIKE S031-SPMON NO-DISPLAY .
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR OBLIGATORY,
S_LGORT FOR MSEG-LGORT NO-EXTENSION NO INTERVALS,
S_MBLNR FOR MKPF-MBLNR,
S_BUDAT FOR MKPF-BUDAT OBLIGATORY .
SELECTION-SCREEN END OF BLOCK BLK.
SELECTION-SCREEN BEGIN OF BLOCK BLK3 WITH FRAME TITLE TEXT-004.
PARAMETER : MTART LIKE MARA-MTART DEFAULT 'FERT' NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK BLK3.
SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-003.
SELECTION-SCREEN END OF BLOCK BLK2.
ADDED BY PRABHU FOR DAY-WISE REPORT.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-007.
PARAMETERS: D1 RADIOBUTTON GROUP P1 DEFAULT 'X',
M1 RADIOBUTTON GROUP P1,
Y1 RADIOBUTTON GROUP P1.
SELECTION-SCREEN END OF BLOCK B3.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-006.
PARAMETERS: ALV_DEF LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK B2.
DATA: S_BUDAT1 LIKE S_BUDAT OCCURS 0 WITH HEADER LINE."prabhu
Initialization *
INITIALIZATION.
PERFORM ALV_INIT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR ALV_DEF.
PERFORM ALV_F4.
At Selection Screen
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_spmon.
PERFORM monat_f4.
At Selection Screen *
AT SELECTION-SCREEN.
checking for the layout
PERFORM ALV_CHECK.
authorisation check for the Plant
PERFORM auth_check.
Validation for the Plant
PERFORM VALIDITY_CHECK.
IF MTART NE 'FERT'.
MESSAGE E041 WITH 'Material Type must be FERT Only...'.
ENDIF.
IF D1 = 'X'." On 26.4.05.
P_SPMON0(4) = S_BUDAT-LOW0(4).
P_SPMON4(2) = S_BUDAT-LOW4(2).
ELSE.
P_SPMON0(4) = S_BUDAT-LOW0(4).
P_SPMON4(2) = S_BUDAT-LOW4(2).
ENDIF.
LOOP AT S_BUDAT.
IF S_BUDAT-HIGH IS INITIAL.
S_BUDAT-HIGH = S_BUDAT-LOW.
MODIFY S_BUDAT.
ENDIF.
ENDLOOP.
IDATE-LOW = S_BUDAT-LOW.
IDATE-HIGH = S_BUDAT-HIGH.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
I_DATE_FROM = IDATE-LOW
I_DATE_TO = IDATE-HIGH
IMPORTING
E_DAYS =
E_MONTHS = MONTH
E_YEARS =
DATA: I(3) TYPE C.
I = S_BUDAT-LOW+4(2).
CLEAR: R_BUDAT.
REFRESH: R_BUDAT.
*added by Prabhu for Only for Oneday.on 18.5.5
IF MONTH EQ '0'.
MONTH = MONTH + 1.
ENDIF.
*added by Prabhu for Only for Oneday.on 18.5.5
DO MONTH TIMES.
R_BUDAT-LOW = S_BUDAT-LOW.
APPEND R_BUDAT.
ENDDO.
I = 0.
LOOP AT R_BUDAT.
R_BUDAT-LOW4(2) = S_BUDAT-LOW4(2) + I.
I = I + 1.
R_BUDAT-LOW+6(2) = '01'.
MODIFY R_BUDAT.
ENDLOOP.
LOOP AT R_BUDAT.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = R_BUDAT-LOW
IMPORTING
LAST_DAY_OF_MONTH = R_BUDAT-HIGH
EXCEPTIONS
DAY_IN_NO_DATE = 1
OTHERS = 2
MODIFY R_BUDAT.
ENDLOOP.
LOOP AT R_BUDAT.
IF R_BUDAT-LOW4(2) = S_BUDAT-LOW4(2).
R_BUDAT-LOW = S_BUDAT-LOW.
MODIFY R_BUDAT.
ENDIF.
IF R_BUDAT-HIGH4(2) = S_BUDAT-HIGH4(2).
R_BUDAT-HIGH = S_BUDAT-HIGH.
MODIFY R_BUDAT.
ENDIF.
For Summary on 26.4.05.
IF Y1 = 'X'.
CLEAR R_BUDAT.
REFRESH R_BUDAT.
R_BUDAT-LOW = S_BUDAT-LOW.
R_BUDAT-HIGH = S_BUDAT-HIGH.
APPEND R_BUDAT.
CLEAR R_BUDAT.
ENDIF.
ENDLOOP.
At Selection Screen *
AT SELECTION-SCREEN OUTPUT.
Start of Selection *
START-OF-SELECTION.
V_MJAHR = P_SPMON+0(4).
Get plant distinction warehouse/production
PERFORM GET_PLANT_DISTINCTION.
Collect the data from various tables
PERFORM GETDATA_FG_STOCK.
here the number of rows in the output table is found
PERFORM OUTPUT_TABLE_CHECK.
here the top of the page code is written, that is to be displayed
in the output
PERFORM Z_TOP_OF_PAGE.
here ALV layout properties are set
PERFORM Z_LAYOUT_SETTINGS.
ALV EVENTS for TOP OF PAGE and for USER COMMAND
PERFORM Z_ALV_EVENTS.
The field catalog is defined for the Primary List is defined in
the subroutine CREATE_FIELD_CATALOG include program ZPRRDOCR_FCAT
PERFORM Z_CREATE_FIELD_CATALOG.
This is for displaying the output
PERFORM Z_REUSE_ALV_GRID_DISPLAY.
*& Form getdata_fg_stock
Getting data from standard tables
FORM GETDATA_FG_STOCK.
For getting the Start date & end date of the month
PERFORM get_month_dates.
Getting the Opening Stock from MARDH table
IF MON EQ '01'.
MON1 = MON.
FYEAR1 = FYEAR.
MON = '12'.
FYEAR = FYEAR - 1.
ELSE.
MON1 = MON.
FYEAR1 = FYEAR.
MON = MON - 1.
FYEAR = FYEAR.
ENDIF.
PERFORM GET_RECORDS_FROM_DB.
*added for Month Summary on 26.4.05.
LOOP AT R_BUDAT.
S_BUDAT-LOW = R_BUDAT-LOW.
S_BUDAT-HIGH = R_BUDAT-HIGH.
*for Month
P_SPMON0(4) = S_BUDAT-LOW0(4).
P_SPMON4(2) = S_BUDAT-LOW4(2).
*for summary.
IF Y1 = 'X'.
LOOP AT S_BUDAT.
S_BUDAT1-SIGN = 'I'.
S_BUDAT1-OPTION = 'NB'.
S_BUDAT1-LOW = S_BUDAT-LOW.
S_BUDAT1-HIGH = S_BUDAT-HIGH.
APPEND S_BUDAT1.
CLEAR S_BUDAT1.
ENDLOOP.
ENDIF.
IMKPFT[] = I_MKPF[].
IMKPFT2[] = I_MKPF[].
IMARDT[] = I_MARD[].
IMARDHT[] = I_MARDH[].
PERFORM MONTH_WISE.
PERFORM PROCESS_MOVEMENTS.
PERFORM CALCULATE_OPENING_STOCK.
PERFORM UPDATE_NON_TRANSACTION_ITMS.
PERFORM DELETE_EMPTY_RECORDS.
CLEAR: IMARDHT,IMARDT,IMKPFT1,IMKPFT,I_FINAL,I_FINAL5.
REFRESH: IMARDHT,IMARDT,IMKPFT1,I_FINAL,I_FINAL5,IMKPFT.
ENDLOOP.
CLEAR: R_BUDAT.
REFRESH: R_BUDAT.
*end of changes for month.
ENDFORM. " getdata_fg_stock
FORM MONAT_F4 *
F4-Hilfe für Monat *
FORM MONAT_F4.
DATA: BEGIN OF MF_DYNPFIELDS OCCURS 1.
INCLUDE STRUCTURE DYNPREAD.
DATA: END OF MF_DYNPFIELDS.
DATA: MF_RETURNCODE LIKE SY-SUBRC,
MF_MONAT LIKE ISELLIST-MONTH,
MF_HLP_REPID LIKE SY-REPID.
FIELD-SYMBOLS: .
Wert von Dynpro lesen
GET CURSOR FIELD MF_DYNPFIELDS-FIELDNAME.
APPEND MF_DYNPFIELDS.
MF_HLP_REPID = SY-REPID.
DO 2 TIMES.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = MF_HLP_REPID
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MF_DYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 01
INVALID_DYNPROFIELD = 02
INVALID_DYNPRONAME = 03
INVALID_DYNPRONUMMER = 04
INVALID_REQUEST = 05
NO_FIELDDESCRIPTION = 06
UNDEFIND_ERROR = 07.
IF SY-SUBRC = 3.
Aktuelles Dynpro ist Wertemengenbild
MF_HLP_REPID = 'SAPLALDB'.
ELSE.
READ TABLE MF_DYNPFIELDS INDEX 1.
Unterstriche durch Blanks ersetzen
TRANSLATE MF_DYNPFIELDS-FIELDVALUE USING '_ '.
EXIT.
ENDIF.
ENDDO.
IF SY-SUBRC = 0.
Konvertierung ins interne Format
CALL FUNCTION 'CONVERSION_EXIT_PERI_INPUT'
EXPORTING
INPUT = MF_DYNPFIELDS-FIELDVALUE
IMPORTING
OUTPUT = MF_MONAT
EXCEPTIONS
ERROR_MESSAGE = 1.
IF MF_MONAT IS INITIAL.
Monat ist initial => Vorschlagswert aus akt. Datum ableiten
MF_MONAT = SY-DATLO(6).
ENDIF.
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
EXPORTING
ACTUAL_MONTH = MF_MONAT
IMPORTING
SELECTED_MONTH = MF_MONAT
RETURN_CODE = MF_RETURNCODE
EXCEPTIONS
FACTORY_CALENDAR_NOT_FOUND = 01
HOLIDAY_CALENDAR_NOT_FOUND = 02
MONTH_NOT_FOUND = 03.
IF SY-SUBRC = 0 AND MF_RETURNCODE = 0.
ASSIGN (MF_DYNPFIELDS-FIELDNAME) TO <MF_FELD>. " ==>> note 148804
<MF_FELD> = MF_MONAT.
CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT'
EXPORTING
INPUT = MF_MONAT
IMPORTING
OUTPUT = MF_DYNPFIELDS-FIELDVALUE.
COLLECT MF_DYNPFIELDS.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
DYNAME = MF_HLP_REPID
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MF_DYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 01
INVALID_DYNPROFIELD = 02
INVALID_DYNPRONAME = 03
INVALID_DYNPRONUMMER = 04
INVALID_REQUEST = 05
NO_FIELDDESCRIPTION = 06
UNDEFIND_ERROR = 07. "<<== note 148804
ENDIF.
ENDIF.
ENDFORM. "MONAT_F4
*& Form get_month_dates
Calculating the Month Start & End Date
FORM GET_MONTH_DATES.
IF M1 = 'X'.
FYEAR = P_SPMON+0(4).
MON = P_SPMON+4(2).
CONCATENATE FYEAR MON '01' INTO R_BUDAT-LOW.
R_BUDAT-SIGN = 'I'.
R_BUDAT-OPTION = 'BT'.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = R_BUDAT-LOW
IMPORTING
E_DATE = R_BUDAT-HIGH.
APPEND R_BUDAT.
CLEAR S_BUDAT.
REFRESH S_BUDAT.
S_BUDAT-SIGN = 'I'.
S_BUDAT-OPTION = 'BT'.
S_BUDAT-LOW = R_BUDAT-LOW.
S_BUDAT-HIGH = R_BUDAT-HIGH.
APPEND S_BUDAT.
ELSE.
FYEAR = P_SPMON+0(4).
MON = P_SPMON+4(2).
CONCATENATE FYEAR MON '01' INTO R_BUDAT-LOW.
R_BUDAT-SIGN = 'I'.
R_BUDAT-OPTION = 'BT'.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = R_BUDAT-LOW
IMPORTING
E_DATE = R_BUDAT-HIGH.
APPEND R_BUDAT.
ENDIF.
ENDFORM. " get_month_dates
*& Form output_table_Check
checking for records for output
FORM OUTPUT_TABLE_CHECK .
DESCRIBE TABLE I_FINALT LINES INDEX.
IF INDEX EQ 0.
MESSAGE I041 WITH TEXT-005.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. "OUTPUT_TABLE_CHECK
*& Form Z_TOP_OF_PAGE
for setting the details in the top of page *
has no formal paramters *
FORM Z_TOP_OF_PAGE.
DATA: V_MON(2),
V_YR(40),
V_FIN(18),
V_FIN1(48),
LOW(10),
HIGH(10).
V_MON = P_SPMON+4(2).
V_YR = P_SPMON+0(4).
FHEADER-TYP = 'H'.
FHEADER-INFO = 'Stock Register Report (FG Stock)'.
APPEND FHEADER.
CLEAR FHEADER.
*if m1 = 'X'.
CONCATENATE 'Month = ' v_mon '.' v_yr INTO v_fin.
fheader-typ = 'H'.
fheader-info = v_fin.
APPEND fheader.
CLEAR fheader.
*endif."prabhu on 18.5.5
IF D1 = 'X'.
CLEAR S_BUDAT.
LOOP AT S_BUDAT.
CONCATENATE S_BUDAT-LOW6(2) '/' S_BUDAT-LOW4(2) '/'
S_BUDAT-LOW+0(4) INTO LOW.
CONCATENATE S_BUDAT-HIGH6(2) '/' S_BUDAT-HIGH4(2) '/'
S_BUDAT-HIGH+0(4) INTO HIGH.
CONCATENATE 'Date = ' LOW ' - ' HIGH INTO V_FIN1.
FHEADER-TYP = 'H'.
FHEADER-INFO = V_FIN1.
APPEND FHEADER.
CLEAR FHEADER.
ENDLOOP.
ENDIF.
ENDFORM. " Z_TOP_OF_PAGE
*& Form Z_LAYOUT_SETTINGS
this is done for setting the properties for the layout of the *
grid *
has no formal paramters *
FORM Z_LAYOUT_SETTINGS.
FS_LAYO-ZEBRA = 'X'. " Output in Zebra pattern
FS_LAYO-DETAIL_POPUP = 'X'. " A popup window appears to give
FS_LAYO-DETAIL_TITLEBAR = TEXT-022.
FS_LAYO-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " Z_LAYOUT_SETTINGS
*& Form Z_ALV_EVENTS
This is used for handling the events TOP OF PAGE and the USER *
COMMAND event *
has no formal paramters *
FORM Z_ALV_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = FEVENTS[].
READ TABLE FEVENTS WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
FEVENTS-FORM = 'Z_TOPOFPAGE'.
MODIFY FEVENTS INDEX SY-TABIX.
CLEAR FEVENTS.
ENDIF.
READ TABLE FEVENTS WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC = 0.
FEVENTS-FORM = 'Z_USER_COMMAND'.
MODIFY FEVENTS INDEX SY-TABIX.
CLEAR FEVENTS.
ENDIF.
ENDFORM. "Z_ALV_EVENTS
*& Form Z_CREATE_FIELD_CATALOG
here the field catalog is created for the primary list *
no formal parameters *
FORM Z_CREATE_FIELD_CATALOG.
for the Plant
FCAT-FIELDNAME = 'WERKS'.
FCAT-KEY = 'X'.
FCAT-OUTPUTLEN = '000005'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Plant'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Material Type
FCAT-FIELDNAME = 'MTART'.
FCAT-KEY = 'X'.
FCAT-OUTPUTLEN = '000006'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'MatTyp'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Material No.
FCAT-FIELDNAME = 'MATNR'.
FCAT-KEY = 'X'.
fcat-hotspot = 'X'.
FCAT-OUTPUTLEN = '000018'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Material'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Material Description
FCAT-FIELDNAME = 'MAKTX'.
FCAT-KEY = ''.
FCAT-OUTPUTLEN = '000040'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Description'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Unit of Measure
FCAT-FIELDNAME = 'MEINS'.
FCAT-KEY = ''.
FCAT-OUTPUTLEN = '03'.
FCAT-JUST = 'C'.
FCAT-SELTEXT_M = 'UOM'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'UNIT'.
APPEND FCAT.
CLEAR FCAT.
for the Plant
FCAT-FIELDNAME = 'MONTH'.
FCAT-KEY = 'X'.
FCAT-OUTPUTLEN = '08'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'MONTH'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'C'.
FCAT-DATATYPE = 'CHAR'.
APPEND FCAT.
CLEAR FCAT.
for the Opening Stock
FCAT-FIELDNAME = 'C_STK'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Opening Stock'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
fcat-do_sum = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
for the Total Receipts
FCAT-FIELDNAME = 'TRECEP'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Total Receipts'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
for the Production
FCAT-FIELDNAME = 'PRODU'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Production'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
for the Other Plant Receipts
FCAT-FIELDNAME = 'RECEP'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Othr Plnt Recpts'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
Sales Return
FCAT-FIELDNAME = 'SAL_RET'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Sales Return'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT.
Total Dispatches
FCAT-FIELDNAME = 'TDISP'.
FCAT-HOTSPOT = ' '.
FCAT-OUTPUTLEN = '000016'.
FCAT-JUST = 'L'.
FCAT-SELTEXT_M = 'Total Dispatches'.
FCAT-DDICTXT = 'M'.
FCAT-INTTYPE = 'Q'.
FCAT-DATATYPE = 'QUAN'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'R'.
FCAT-NO_ZERO = 'X'.
APPEND FCAT.
CLEAR FCAT. -
Opening Stock and Closing Stock fields and Calculation
Hi,
My report requirement is to display the material, opening stock for the lower date, closing stock for the higher date and the in between all stock operations..how to fetch the opening stock and closing stock for a particular material ???.. what are the tables and fields for calculating them??..
Thanks,
Srithis is the code i wrote..
I had selected the data for the date entered and the previous date(l_date) also..
previous date for the opening stock.
now i am getting only receipts and issues correctly.. opening stock and the remaining
balance fields are not coming properly..please help me..
here rmenge for receipts,imenge for issues.
REPORT ZSTOCK no standard page heading line-size 180.
types: begin of ty_date,
budat type budat,
end of ty_date,
begin of ty_mard,
matnr type matnr,
lgort type lgort_d,
labst type labst,
UMLME TYPE UMLMD,
INSME TYPE INSME,
EINME TYPE EINME,
SPEME TYPE SPEME,
RETME TYPE RETME,
end of ty_mard,
begin of ty_makt,
matnr type matnr,
maktx type maktx,
end of ty_makt,
begin of ty_mbew,
matnr type matnr,
bwkey type bwkey,
lbkum type lbkum,
salk3 type salk3,
end of ty_mbew,
begin of ty_mkpfmseg,
mblnr type mblnr,
budat type budat,
bwart type bwart,
matnr type matnr,
lgort type lgort_d,
shkzg type shkzg,
dmbtr type dmbtr,
menge type mseg-menge,
end of ty_mkpfmseg,
begin of ty_opstock,
matnr type matnr,
rdmbtr type dmbtr,
idmbtr type dmbtr,
bdmbtr type dmbtr,
bmenge type menge_d,
end of ty_opstock,
begin of ty_output,
mblnr type mblnr,
budat type budat,
matnr type matnr,
maktx type maktx,
bwart type bwart,
lgort type lgort_d,
shkzg type shkzg,
rmenge type mseg-menge,
rdmbtr type dmbtr,
imenge type mseg-menge,
idmbtr type dmbtr,
dmbtr type dmbtr,
bdmbtr type dmbtr,
bmenge type menge_d,
end of ty_output.
data: t_date type standard table of ty_date initial size 0,
t_mard type standard table of ty_mard initial size 0,
t_makt type standard table of ty_makt initial size 0,
t_mkpfmseg type standard table of ty_mkpfmseg initial size 0,
t_opstock type standard table of ty_opstock initial size 0,
t_out type standard table of ty_output initial size 0,
w_date type ty_date,
w_mard type ty_mard,
w_makt type ty_makt,
w_mkpfmseg type ty_mkpfmseg,
w_opstock type ty_opstock,
w_out type ty_output,
g_matnr type mara-matnr,
g_lgort type t001l-lgort.
selection-screen begin of block b1 with frame.
parameters:p_werks type t001l-werks obligatory memory id pw.
select-options:s_lgort for g_lgort no-extension no intervals.
select-options: s_matnr for g_matnr.
parameters:p_date type mkpf-budat obligatory.
selection-screen end of block b1.
at selection-screen.
perform sub_validate_date.
start-of-selection.
data: l_date type sy-datum,
l_row type i.
refresh t_date.
select budat from mkpf into table t_date.
sort t_date.
delete adjacent duplicates from t_date.
clear w_date.
read table t_date into w_date with key budat = p_date.
l_row = sy-tabix.
l_row = l_row - 1.
clear w_date.
read table t_date into w_date index l_row.
l_date = w_date-budat.
select k~mblnr
k~budat
s~bwart
s~matnr
s~lgort
s~shkzg
s~dmbtr
s~menge
into table t_mkpfmseg
from mkpf as k inner join mseg as s
on kmblnr = smblnr and
kmjahr = smjahr
where k~budat between l_date and p_date and
s~matnr in s_matnr and
s~werks = p_werks and
s~lgort in s_lgort.
if t_mkpfmseg is not initial.
sort t_mkpfmseg by budat ascending
matnr ascending.
select matnr
lgort
labst
umlme
insme
einme
speme
retme
from mard
into table t_mard
for all entries in t_mkpfmseg
where matnr = t_mkpfmseg-matnr and
werks = p_werks and
lgort in s_lgort.
select matnr
maktx
from makt
into table t_makt
for all entries in t_mkpfmseg
where matnr = t_mkpfmseg-matnr.
endif.
loop at t_mkpfmseg into w_mkpfmseg where budat = l_date.
loop at t_mard into w_mard where matnr = w_mkpfmseg-matnr.
w_opstock-matnr = w_mkpfmseg-matnr.
if w_mkpfmseg-shkzg = 'S'. " Receive
w_opstock-rdmbtr = w_mkpfmseg-dmbtr.
w_opstock-bmenge = w_mard-labst + w_mard-insme + w_mard-speme
+ w_mard-einme + w_mard-retme
- w_mkpfmseg-menge.
elseif w_mkpfmseg-shkzg = 'H'. " Issue
w_opstock-idmbtr = w_mkpfmseg-dmbtr.
w_opstock-bmenge = w_out-bmenge + w_mkpfmseg-menge.
endif.
w_opstock-bdmbtr = w_out-rdmbtr - w_out-idmbtr.
append w_opstock to t_opstock.
clear w_opstock.
endloop.
endloop.
loop at t_mkpfmseg into w_mkpfmseg where budat = p_date.
loop at t_mard into w_mard where matnr = w_mkpfmseg-matnr.
clear w_makt.
read table t_makt into w_makt with key matnr = w_mkpfmseg-matnr.
if sy-subrc = 0.
w_out-budat = w_mkpfmseg-budat.
w_out-matnr = w_mard-matnr.
w_out-maktx = w_makt-maktx.
w_out-lgort = w_mard-lgort.
w_out-mblnr = w_mkpfmseg-mblnr.
w_out-bwart = w_mkpfmseg-bwart.
w_out-shkzg = w_mkpfmseg-shkzg.
if w_mkpfmseg-shkzg = 'S'. " Receive
w_out-rmenge = w_mkpfmseg-menge.
w_out-rdmbtr = w_mkpfmseg-dmbtr.
w_out-imenge = 0.
w_out-bmenge = w_mard-labst + w_mard-insme + w_mard-speme
+ w_mard-einme + w_mard-retme
- w_mkpfmseg-menge.
elseif w_mkpfmseg-shkzg = 'H'. " Issue
w_out-imenge = w_mkpfmseg-menge.
w_out-idmbtr = w_mkpfmseg-dmbtr.
w_out-rmenge = 0.
w_out-bmenge = w_out-bmenge + w_mkpfmseg-menge.
endif.
w_out-bdmbtr = w_out-rdmbtr - w_out-idmbtr.
append w_out to t_out.
clear w_out.
endif.
endloop.
endloop.
write: / 'Material' , 12 'Description' ,40 'Location', 50 'Opening stock',70 'MvT',
83 'Receipts' , 102 'Issues', 118 'Amount',135 'Balance Quan', 155 'Balance Amount'.
loop at t_out into w_out.
write: / w_out-matnr, 12 w_out-maktx, 40 w_out-lgort.
clear w_opstock.
read table t_opstock into w_opstock with key matnr = w_out-matnr.
if sy-subrc = 0.
write: 45 w_out-bmenge.
endif.
write: 70 w_out-bwart,75 w_out-rmenge,92 w_out-imenge,
110 w_out-bdmbtr, 130 w_out-bmenge, 150 w_out-bdmbtr.
endloop.
*& Form SUB_VALIDATE_DATE
FORM SUB_VALIDATE_DATE.
select budat
from mkpf
into table t_date
where budat = p_date.
if t_date is initial.
message e001(zks) with 'select another date range'.
endif.
ENDFORM. " SUB_VALIDATE_DATE
Edited by: Sri on Feb 18, 2009 8:31 AM -
How to create a query to see Opening stock and closing stock as on particul
Hi All,
How to create a query to see Opening stock and closing stock as on particul.
Regards
AlbaikHi,
In BI 0IC_C03 will provide u the required information and also having standard queries provided by the SAP.
Plz find the list of Queries provided by the SAP.
=======================================================================================================
Inventory turnover 0IC_C01_Q0001
Range of coverage - quantity 0IC_C01_Q0002
Range of Coverage - Value 0IC_C01_Q0003
Range of coverage of finished goods - quantity 0IC_C01_Q0004
Range of Coverage of Finished Goods - Value 0IC_C01_Q0005
Range of coverage of raw materials - quantity 0IC_C01_Q0006
Range of Coverage of Raw Materials - Value 0IC_C01_Q0007
Obsolete Stock on Hand 0IC_C01_Q0008
Period-dependent requirement coverage 0IC_C01_Q0009
Value of stock on hand 0IC_C01_Q0010
Quantity of stock on hand 0IC_C01_Q0011
Material consumption 0IC_C01_Q0012
Material Movements 0IC_C01_Q0013
Consignment stock: receipts and issues 0IC_C01_Q0014
Valuated stock: receipts and issues 0IC_C01_Q0015
Material stock and movements 0IC_C01_Q0016
Material Movements (Healthcare) 0IC_C01_Q0020
Material Consumption (Healthcare) 0IC_C01_Q0021
Material Availability 0IC_C01_Q0022
Inventory Turnover Frequency (Value) 0IC_C01_Q0023
Consignment Stock Received and Issued per Unit 0IC_C01_Q0024
Material Consumption (Quantity) 0IC_C02_Q0001
Valuated Stock Receipts and Issues (Quantity) 0IC_C02_Q0002
Range of Valuated Stock (Quantity) 0IC_C02_Q0003
Inventory Turnover 0IC_C02_Q0004
Receipt and Issue Consignment Stock at Customer 0IC_C03_Q0001
Receipt and Issue Quality Inspection Stock 0IC_C03_Q0002
Vendor Consignment Stock Receipt and Issue 0IC_C03_Q0003
Receipt and Issue Stock in Transit 0IC_C03_Q0004
Receipt and Issue of Blocked Stock 0IC_C03_Q0005
Valuated Stock 0IC_C03_Q0006
Stock in Quality Inspection 0IC_C03_Q0007
Stock in Transit 0IC_C03_Q0008
Blocked Stock 0IC_C03_Q0009
Vendor Consignment Stock 0IC_C03_Q0010
Consignment Stock at Customer 0IC_C03_Q0011
Stock Overview 0IC_C03_Q0012
Stock Overview (as of 3.1 Content) 0IC_C03_Q0013
Quantities of Valuated Project Stock (as of 3.1 Content) 0IC_C03_Q0014
Valuated Stock (as of 3.1 Content) 0IC_C03_Q0015
Quantities of Valuated Sales Order Stock (as of 2.1 Cont.) 0IC_C03_Q0016
Inventory Turnover 0IC_C03_Q0017
Days' Supply 0IC_C03_Q0018
SUS: Vendor Consignment Stock 0IC_C03_Q0019
Scrap 0IC_C03_Q0020
Inventory Aging 0IC_C03_Q0021
Stock Overview - extended 0IC_C03_Q0022
Demand Supply Match 0IC_C03_Q0023
Warehouse Stock Analytics Inventory Turnover 0IC_C03_Q0024
Warehouse Analytics - Obsolescence and Variance 0IC_C03_Q0025
Stock Overview: Materials 0IC_C03_Q0030
Average Stock Value Over Time 0IC_C03_Q0031
Stock Overview Over Time 0IC_C03_Q0032
Range of Coverage Over Time 0IC_C03_Q0033
==================================================================================================
Regards
Ram.
Edited by: Ramakanth Deepak Gandepalli on Jan 18, 2010 8:06 AM -
Tables for Stock and project stock
Hi Friends,
I have to create a report consists of Material No. Stock Qty, WBS Element, Batch NO..So Please convey the Tables and fields.
RegardsHi Prasanna,
Find below the details for
1. Project stock:
Material No. MSPR-MATNR
Stock Qty -> MSPR-PRLAB (Unrestricted), MSPR-PRINS (QI stock), MSPR-PRSPE (Blocked), MSPR-PREIN (Total stock of all restricted stock)
WBS Element -> MSPR-PSPNR
Batch NO -> MSPR-CHARG
2. Stock:
Material No. MARD-MATNR
Stock Qty -> MARD-LABST (Unrestricted), MSPR-INSME (QI stock), MARD-SPEME (Blocked), MARD-EINME (Total stock of all restricted batches)
Hope the above helps.
Regards,
Vivek
Maybe you are looking for
-
hi, Can i connect MySql and MS Sql Server from JDeveloper and develop few pages ?. How can i access Quickbook Data from JDeveloper ?. Thank you ADF Beginer
-
The web file manager in NSS322 does not work correctly. The admin button doesnt work. I get some limited use when I click compatibility view but not ideal
-
Report that filters certain records
Hi I need to create a report in Bex where the status codes have changed from a "5" to a "10". This occurs from previous period to current period. I need to see all records that have changed in status only. I have created a structure where it consist
-
In my application I have two canvases on the one window. Each of the canvas has multiple pages. At some point I need to make all pages of one of the canvas not visible. I use SET_TAB_PAGE_PROPERTY(tab_page_id,visible, property_false), but I'm getting
-
Error when installing LR 4.3 / uninstalling LR 4.1
Hello, I get an error during the execution of Lightroom 4.3 installer program, on Win7 64 bits. I already have Lightroom 4.1, which has been always perfectly working . The part "extracting Adobe_Lightroom_x64.msi" is OK Then i have to choose "next",