Open PO List as on particular date
Hi all,
I need a report which will give me the Open purchase orders as on particular date.
For example: the report of open PO as on 31st March shold be viewed on 25th April.
Is there any standard reports which will fulfill this requirement. I already checked with ME2L/ME2M where you have the option of giving delivery date. That won't meet my requirement.
Please help me out.
Thanks in advance,
Manju
Assume you have a PO that was created in April, received in June, invoiced in July.
today is August and you want list open POs of May.
So you have to read POs that where created before May, and have to check whether they are still open.
if so you can directly list.
if not open, then you have to find the documents that closed the PO, have to find the date when they got createdor changed and have to compare this with the date you want see the open POs. Depending they were created after this date you can consider the PO as open, ................
For what reason do you need such a report, what benefit will this report give to anybody?
Similar Messages
-
Functional Specification For Opening And closing stock On Particular Date
Dear Gurus,
I am creating report for opening and closing stock on particular date in which batch and storage location should also be included. I want to know the tables and fields for the same.I have searched the forum and got report on month basis but I want this report on posting day basis.kindly suggest tables and fields. Thanks in AdvanceDear sir,
There are many other colums that client wants to add which are not present in MB5B transaction.columns which client wants to add are as follows...
Material Number
Material Description
Material Type
Material Group
External material Group
Movement Type
Plant
Storage Location
Customer Number
Customer Name
Vendor Number
Vendor Name
Posting Date Receipt Doc. Number
Issue Doc. Number
Reference Issue Document Number
Opening Stock Quanity
Material Receipt Quantity
Material Issue Quantity
Material Closing Stock Quantity
Value Of Closing Stock
And for this I want tables and logic for the same. kindly provide the solution for the same. -
Stock/requirement list at a particular date
MD04 gives current stock/requirement list and MD05 gives planning result of last MRP run.
Hoe to see stock/requirement of a particular dateDear Harshad,
As explained there is no standard report to meet this requirement,but stock on a posting date is possible through MB5B.
If my understanding is correct then this stock/requirements list is a dynamic one(even on a particular date) this list gets updated
for each fixed/planned- receipts/issues.So on the same day there may be number of updated list.So there cant be only one
stock/requirements list on a given particular date.
Correct me if I'm wrong.
Regards
Mangalraj.S -
OPEN PO QTY IN PARTICULAR DATE
Hi Experts
I need to check the open qty of purchase order bcoz i have to upload the PO from old system to new system.
so i want to get the Open Purchase order qty from particular date say 1st april .
so that i can upload the same into new System with upload programme.
Thanks
Pankaj AgarwalHi
check following link
[Report including open purchase order quantity for one storage location;
[http://wiki.sdn.sap.com/wiki/display/sandbox/OPENPOQTYREPORT-CODE]
Regards
Kailas Ugale -
PO OPEN QTY AT PARTICULAR DATE
Hi Experts
I need to check the open qty of purchase order bcoz i have to upload the PO from old system to new system.
so i want to get the Open Purchase order qty from particular date say 1st april .
so that i can upload the same into new System with upload programme.
Thanks
Pankaj AgarwalIf the legacy system is also a SAP system, you may refer to ME2* series reports (eg: ME2M, ME2N, etc).
As regards to open, it depends on the definition of open PO, so PO's which are not delivered, those delivered but not invoiced etc. So use the selection parameter eg: WE101 to get the relevant data.
If you wish to do the same at table level, then some of the tables which should help are EKKO,EKPO,EKBE,EKET,MSEG.
However if the legacy system is not a SAP system, then get in touch with the client's IT team to do the extraction.
Also do search in MM forum to find similar threads. -
How to calculate Opening Stock for a particular date.
Hi Experts,
I have a sitution to calculate Opening stock for a particular date.
please help me with the necessary Fields & Tables required.
Appriciate If any Sample coding available.
Thanks & regards,
Venkat.Hi Venkat,
To Calculate Opening Stock & Closing stock there are different procedures.
It just depends of\n the client requirements & usage of the material.
For example, we have different types of stocks, like, Through Pipeline, Special, Unristricted, quality, safety,
and many types of stocks.... so all these types are indicated in MSEG tabe in SOBTZ field,...
Now Comimg to your Query, You need to calculate OPENING & CLOSING STOCK.
We have a similiar standard report in MB5B Tcode..
to get the same results in your report do like this...
For valuated stock go to the MARDH, MBEWH, MCHBH tables But I Prefer MBEWH.
here in MBEWH give the month & year and you get the result in LBKUM field...
For Special stock, You need to go to another table like MKOLH,,(I forgot still 2 more) and
give the month & year inputs and you will get the result in SLABS field.
and remaining MB5B refers to its deetails lists with different Movement types,
whcih you can get clearly from MSEG Table...
Hope you can write the select Queries accordingly.
Thanks & Regards,
Dileep .C -
How to get a opening stock of a material on a particular date
Hi,
Could you pls provide me the logic of how to get the opening stock of the material on a particular date. I searched the forum and found the logic to fetch the closing stock at a given period but not for a date.
An immediate response would be really appreciated.
Thanks
HarrisDear,
Please read following part of my code
FORM GET_OPENING .
IF IT_FINAL[] IS NOT INITIAL.
SELECT * FROM MARD
INTO CORRESPONDING FIELDS OF TABLE IT_MARD
FOR ALL ENTRIES IN IT_FINAL
WHERE MATNR = IT_FINAL-MATNR
AND WERKS = '1000'.
SELECT A~MBLNR A~MJAHR A~BUDAT B~WAERS B~ZEILE B~BWART B~MATNR B~WERKS B~LGORT B~CHARG B~SHKZG B~MENGE B~MEINS B~BUSTM B~XAUTO
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF
FROM MKPF AS A JOIN MSEG AS B
ON A~MANDT = B~MANDT
AND A~MBLNR = B~MBLNR
AND A~MJAHR = B~MJAHR
FOR ALL ENTRIES IN IT_FINAL
WHERE B~MATNR = IT_FINAL-MATNR
AND A~BUDAT GE P_BUDAT-LOW
AND B~WERKS = '1000'.
ENDIF.
AKTDAT = SY-DATLO + 30.
IF NOT ( P_BUDAT-HIGH IS INITIAL OR P_BUDAT-HIGH > AKTDAT ).
LOOP AT IT_MKPF INTO WA_MKPF WHERE BUDAT > P_BUDAT-HIGH.
MOVE-CORRESPONDING WA_MKPF TO IT_MKPF1.
APPEND IT_MKPF1.
DELETE IT_MKPF.
ENDLOOP.
ENDIF.
SORT IT_MKPF1 BY WERKS MATNR SHKZG.
LOOP AT IT_MKPF1.
IF ( IT_MKPF1-XAUTO IS INITIAL ) OR
( IT_MKPF1-BUSTM <> 'MA02' AND IT_MKPF1-BUSTM <> 'MA05' ) .
MOVE-CORRESPONDING IT_MKPF1 TO IT_MAT.
COLLECT IT_MAT.
ELSE.
DELETE IT_MKPF1.
ENDIF.
ENDLOOP.
SORT IT_MKPF BY WERKS MATNR SHKZG DESCENDING.
LOOP AT IT_MKPF INTO WA_MKPF.
IF ( WA_MKPF-XAUTO IS INITIAL ) OR
( WA_MKPF-BUSTM <> 'MA02' AND
WA_MKPF-BUSTM <> 'MA05' ).
MOVE-CORRESPONDING WA_MKPF TO T_MAT.
COLLECT T_MAT.
ELSE.
DELETE IT_MKPF.
ENDIF.
ENDLOOP.
LOOP AT IT_MARD.
CLEAR IT_MAT-MENGE.
MOVE-CORRESPONDING IT_MARD TO FINAL.
READ TABLE IT_MAT WITH KEY WERKS = IT_MARD-WERKS
LGORT = IT_MARD-LGORT
MATNR = IT_MARD-MATNR
SHKZG = 'S'.
FINAL-ENDMENGE = IT_MARD-LABST + IT_MARD-INSME + IT_MARD-SPEME + IT_MARD-EINME + IT_MARD-RETME - IT_MAT-MENGE.
CLEAR IT_MAT-MENGE.
READ TABLE IT_MAT WITH KEY WERKS = IT_MARD-WERKS
LGORT = IT_MARD-LGORT
MATNR = IT_MARD-MATNR
SHKZG = 'H'.
FINAL-ENDMENGE = FINAL-ENDMENGE + IT_MAT-MENGE.
COLLECT FINAL.
ENDLOOP.
LOOP AT FINAL.
CLEAR T_MAT-MENGE.
READ TABLE T_MAT WITH KEY WERKS = FINAL-WERKS
MATNR = FINAL-MATNR
SHKZG = 'S'.
MOVE T_MAT-MENGE TO FINAL-SOLL.
CLEAR T_MAT-MENGE.
READ TABLE T_MAT WITH KEY WERKS = FINAL-WERKS
MATNR = FINAL-MATNR
SHKZG = 'H'.
MOVE T_MAT-MENGE TO FINAL-HABEN.
FINAL-ANFMENGE = FINAL-ENDMENGE - FINAL-SOLL + FINAL-HABEN.
MODIFY FINAL.
ENDLOOP.
LOOP AT FINAL.
WA_FINAL1-MATNR = FINAL-MATNR.
WA_FINAL1-MEINS = FINAL-MEINS.
WA_FINAL1-OP_MENGE = FINAL-ANFMENGE.
WA_FINAL1-RE_MENGE = FINAL-SOLL.
WA_FINAL1-IS_MENGE = FINAL-HABEN.
WA_FINAL1-CL_MENGE = FINAL-ENDMENGE.
* WA_FINAL-LGORT = FINAL-LGORT.
* READ TABLE IT_MAKT WITH KEY MATNR = FINAL-MATNR.
* MOVE IT_MAKT-MAKTX TO WA_FINAL-MAKTX.
APPEND WA_FINAL1 TO IT_FINAL1.
ENDLOOP.
ENDFORM. " GET_OPENING -
Hi,
Please note we are using SQL Server 2008 for sharepoint. Does it matter for this issue?
Please help.
Thanks.Hi,
According to your post, my understanding is that you failed to open external list.
Please change the External Content’s connection properties’ Authentication Mode to BDC identity.
Then launch the SharePoint 2013 Management Shell and run the PowerShell commands to remove the error.
Here is a similar thread for your reference:
http://social.msdn.microsoft.com/Forums/sharepoint/en-US/69d937e6-f4a3-40e0-b57f-67cddb4ed12e/sharepoint-2013-unable-to-render-the-data-if-the-problem-persists-contact-your-web-server?forum=sharepointcustomization
Best Regards,
Linda Li
Linda Li
TechNet Community Support -
List View : Opening folder in folder changes modified date in list view
Since my office upgraded me to 10.5.4, when I flip open a folder in List View, then flip open a sub-folder, the modified date in the original folder changes to now. Opening subsequent folders again changes the modified date of the folder above it. I do not remember this happening in Tiger, and since part of my job involves finding and archiving old files, this is driving me crazy. Can I stop it?
Jeff WorkThat's interesting, and probably why the original poster had the same issue, but it does not work that way for me with Leopard 10.5.5.
In list view, the .DS_Store does not get updated when I flip down the folder. The .DS_Store file only gets updated if I open the folder in icon view. That makes sense because the .DS_Store file stores the relative position of the icons in the window.
However, when I go back to list view, even though the .DS_Store file is updated to the current data and time, the Date Modified of the parent folder does not change.
This different may be caused by some setting you are using in Finder that most people do not use, or maybe because of some other Mac OS X feature such as File Vault (which I do not use), or maybe some third party software that modifies Finder functionality. I don't know... -
ISU FICA: Fetching Key date based open item list
Hi,
Our production system has a setting to kill SELECT query if its running for more than 12 hours without any updates.
We want to fetch all open items from DFKKOP table for any given date (could be a past date), company code, business area and reconciliation account. We tried fetching this list using SAP report RFKKOP03 and also by writing custom SELECT query however because of large volume of DFKKOP table in our system, none of the report is getting completed within 12 hours and hence getting terminated by system.
It would be helpful if anyone can suggest us any other option to fetch the list of open items on any given key date.
Thanks,
AmolAmol,
You can use transaction FPO4P. It is run in parallel mode and you can get open items by several selection criteria, directly put in transaction or by creating predefined selection of partners, accounts or dunning related data using FPSELP and using FPSELP1 to define the layout of the resulting information.
You get the result in spools which can be unified, or aditional data set in binary or text format.
Hope this helps.
Regards,
Daniel -
To check all the lists for transports that went to PRD on a particular date
Hi!
I just wanted to check the list of all transports that went through in PRD on a particular date for some reason to verify my chnages. IS it possible to check that , I mean all the transports that went through on say 01/01/2010 or any other date?
ThanksHi,
you can also get it from SE03 --> Request/Task --> Find Request
Thanks ,
Amit -
Stock Posting List from Item Master Data
Hi,
We just encounter a strange problem. In SAP we could go to an Item record and right click to choose Stock Posting List which will bring out the stock posting report that list all the in and out records for this particular item. The report can be generated shortly.
Over the weekend we enter into a new fiscal year and suddenly the Stock Posting List from item master does not contain any entries from previous fiscal year and it takes very long to show the list.
We could however run the Stock Posting List as normal from Stock Reports which will show all the records.
The problem if the Stocking Posting List from the item master only shows entries in the current fiscal year why suddenly the performance degraded when there is actually less data to be displayed.
Any one encountered such situation as well?
We are on PL44
BR,
JimmyHi Jimmy,
This is the System behaviour in SAP 2007 A. Due to the changes in posting period functionality, it is not possible to choose posting period. That is the reason why if you right click on an Item Master Data, Inventory posting list only for the current year appears. If user wish to see transaction for the other years, he needs to open Inventory Posting List report and set dates in the Selection criteria window.
Regards,
Varun
SAP Business One Forum Team
Edited by: Varun Kumar on Mar 3, 2009 9:36 PM -
Closing stock of a particular date
how to get plant wise material closing stock on any particular date. say previous months end date. I am calculating that from MSEG table with the help of MSEGINSMK and MSEGSHKZG field. (with date filtaration by joining MBLNR of MKPF table) But stock is showing different with the closing stock showing in MB5B report for that date. I don't know which BWART of MSEG table to be excluded. My email id is [email protected]
Hi,
This is a stock aging report, you can use this for reference.
Logic: Based on current stock and value from MBEW table. The latest receipt dates were taken till the qty tallies off.Rejections and reversals are considered.
The movement types considered are ('101','102','105','106','122','123','131','132','301','302','309','310','501','502','531','532','561','562','701','702').
*& Report ZMM03_TRY *
REPORT ZMM03 LINE-SIZE 226
LINE-COUNT 35(2)
NO STANDARD PAGE HEADING..
TABLES : S032, "Current Stock And Grouping Terms
MBEW, "Material Valuation
T023T, "Material Group Desc.
MAKT, "Material Description
EKPO. "Purchasing Document Item.
DATA : BEGIN OF T_HEADER OCCURS 0,
MTART LIKE MARA-MTART,
MATNR LIKE MBEW-MATNR,
BWKEY LIKE MBEW-BWKEY,
MATKL LIKE MARA-MATKL,
MAKTX LIKE MAKT-MAKTX,
MEINS LIKE MARA-MEINS,
LBKUM LIKE MBEW-LBKUM,
SALK3 LIKE MBEW-SALK3,
VERPR LIKE MBEW-VERPR,
CLSTK LIKE MBEW-LBKUM,
CLVAL LIKE CKMLCR-SALK3,
UNIT LIKE CKMLCR-PVPRS,
END OF T_HEADER.
DATA : BEGIN OF T_MSEG OCCURS 0,
MATNR LIKE MSEG-MATNR,
WERKS LIKE MSEG-WERKS,
BUDAT LIKE MKPF-BUDAT,
MBLNR LIKE MKPF-MBLNR,
MJAHR LIKE MKPF-MJAHR,
ZEILE LIKE MSEG-ZEILE,
LFBNR LIKE MSEG-LFBNR,
LFBJA LIKE MSEG-LFBJA,
LFPOS LIKE MSEG-LFPOS,
BWART LIKE MSEG-BWART,
MENGE LIKE MSEG-MENGE,
EBELN LIKE MSEG-EBELN,
EBELP LIKE MSEG-EBELP,
XAUTO LIKE MSEG-XAUTO,
UMMAT LIKE MSEG-UMMAT,
UMWRK LIKE MSEG-UMWRK,
MARK(1),
END OF T_MSEG.
TYPE-POOLS : SLIS.
DATA : L_STOCK TYPE MSEG-MENGE.
DATA : WA_MSEG LIKE T_MSEG.
DATA : WA_MSEG1 LIKE T_MSEG.
DATA : T_ITEMS LIKE T_MSEG OCCURS 0 WITH HEADER LINE.
DATA : T_CUR_STOCK LIKE T_MSEG OCCURS 0 WITH HEADER LINE.
DATA : L_LBKUM TYPE MBEW-LBKUM.
DATA : BEGIN OF T_OUTPUT OCCURS 0,
WERKS LIKE MSEG-WERKS,
MATNR LIKE MSEG-MATNR,
BUDAT LIKE MKPF-BUDAT,
MENGE LIKE MSEG-MENGE,
PDAYS TYPE I,
PVAL TYPE MSEG-MENGE,
MAKTX LIKE MAKT-MAKTX,
CQTY LIKE MSEG-MENGE,
CPRC LIKE MBEW-SALK3,
END OF T_OUTPUT.
DATA: GRID_TAB TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA : T_SORT TYPE SLIS_T_SORTINFO_ALV,
WA_SORT TYPE SLIS_SORTINFO_ALV.
*AT SELECTION-SCREEN.
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-014.
SELECTION-SCREEN SKIP 1.
PARAMETERS : P_DATE LIKE S032-LETZTABG OBLIGATORY DEFAULT SY-DATUM.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK 1.
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-015.
PARAMETERS : P_WERKS TYPE S032-WERKS OBLIGATORY.
SELECT-OPTIONS : S_LGORT FOR S032-LGORT,
S_MATNR FOR S032-MATNR.
SELECTION-SCREEN END OF BLOCK 2.
SELECTION-SCREEN BEGIN OF BLOCK 3 WITH FRAME TITLE TEXT-016.
SELECT-OPTIONS : S_MTART FOR S032-MTART,
S_MATKL FOR S032-MATKL.
SELECTION-SCREEN END OF BLOCK 3.
IF P_DATE IS INITIAL AND
P_WERKS IS INITIAL AND
S_LGORT IS INITIAL AND
S_MATNR IS INITIAL AND
S_MTART IS INITIAL AND
S_MATKL IS INITIAL.
MESSAGE I398(00) WITH 'Enter Selection Critirea'(019).
SY-SUBRC = '1'.
ELSE.
SELECT AMATNR ABWKEY BMATKL BMTART CMAKTX BMEINS A~LBKUM
A~SALK3
INTO CORRESPONDING FIELDS OF TABLE T_HEADER
FROM MBEW AS A INNER JOIN MARA AS B ON AMATNR = BMATNR
INNER JOIN MAKT AS C ON AMATNR = CMATNR
WHERE A~MATNR IN S_MATNR
AND A~BWKEY EQ P_WERKS
AND MATKL IN S_MATKL
AND MTART IN S_MTART
AND BWTAR EQ ' '
AND C~SPRAS = SY-LANGU.
IF SY-SUBRC EQ 0.
SELECT ABUDAT AMBLNR AMJAHR BZEILE BMATNR BWERKS B~BWART
BMENGE BLFBNR BLFBJA BLFPOS BEBELN BEBELP B~XAUTO
BUMMAT BUMWRK
INTO CORRESPONDING FIELDS OF TABLE T_MSEG
FROM MKPF AS A INNER JOIN MSEG AS B ON AMBLNR = BMBLNR
AND AMJAHR = BMJAHR
FOR ALL ENTRIES IN T_HEADER
WHERE A~BUDAT <= P_DATE
AND B~MATNR = T_HEADER-MATNR
AND B~WERKS = T_HEADER-BWKEY
AND B~BWART IN ('101',
'102',
'105',
'106',
'122',
'123',
'301',
'302',
'701',
'702',
'131',
'132',
'309',
'310',
'501',
'502',
'531',
'532',
'561',
'562').
PERFORM GET_DEAD_STOCK.
PERFORM DISPLAY_OUTPUT.
ELSE.
MESSAGE S398(00) WITH 'No Data found for'(013)
'Given Selection Critirea'(017).
LEAVE LIST-PROCESSING.
ENDIF.
ENDIF.
*& Form get_dead_stock
text
FORM GET_DEAD_STOCK .
LOOP AT T_HEADER.
SORT T_MSEG BY MATNR WERKS BUDAT DESCENDING MBLNR DESCENDING.
LOOP AT T_MSEG WHERE MATNR = T_HEADER-MATNR
AND WERKS = T_HEADER-BWKEY
AND ( BWART = '101' OR
BWART = '105' OR
BWART = '501' OR
BWART = '531' OR
BWART = '561' OR
BWART = '701' OR
BWART = '309' OR
BWART = '301' OR
BWART = '131' ).
IF T_MSEG-BWART = 101.
READ TABLE T_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 102.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
READ TABLE T_MSEG INTO WA_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 122.
IF SY-SUBRC = 0.
READ TABLE T_MSEG INTO WA_MSEG1 WITH KEY LFBNR = WA_MSEG-MBLNR
LFBJA = WA_MSEG-MJAHR
LFPOS = WA_MSEG-ZEILE
BWART = 123.
IF SY-SUBRC EQ 0.
WA_MSEG-MARK = 'X'.
MODIFY T_MSEG FROM WA_MSEG.
CONTINUE.
ELSE.
IF T_MSEG-MENGE EQ WA_MSEG-MENGE.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ELSE.
T_MSEG-MENGE = T_MSEG-MENGE - WA_MSEG-MENGE.
MODIFY T_MSEG.
ENDIF.
ENDIF.
ENDIF.
ELSEIF T_MSEG-BWART = 105.
READ TABLE T_MSEG INTO WA_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 106.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
ELSEIF T_MSEG-BWART = 131.
READ TABLE T_MSEG INTO WA_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 132.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
ELSEIF T_MSEG-BWART = 501.
READ TABLE T_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 502.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
ELSEIF T_MSEG-BWART = 301.
READ TABLE T_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 302.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
ELSEIF T_MSEG-BWART = 531.
READ TABLE T_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 532.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
ELSEIF T_MSEG-BWART = 561.
READ TABLE T_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 562.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
ELSEIF T_MSEG-BWART = 701.
READ TABLE T_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 702.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
ELSEIF T_MSEG-BWART = 309.
READ TABLE T_MSEG WITH KEY LFBNR = T_MSEG-MBLNR
LFBJA = T_MSEG-MJAHR
LFPOS = T_MSEG-ZEILE
BWART = 310.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ELSEIF T_MSEG-XAUTO = ' '.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ELSEIF T_MSEG-MATNR EQ T_MSEG-UMMAT.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
ENDIF.
SELECT SINGLE EBELN INTO EKPO-EBELN FROM EKPO
WHERE EBELN = T_MSEG-EBELN
AND EBELP = T_MSEG-EBELP
AND KNTTP = 'K'.
IF SY-SUBRC = 0.
T_MSEG-MARK = 'X'.
MODIFY T_MSEG.
CONTINUE.
ENDIF.
TMENGE = TMENGE - t_mseg-MENGE.
ENDLOOP.
ENDLOOP.
DELETE T_MSEG WHERE MARK = 'X'.
DELETE T_MSEG WHERE ( BWART = '102' OR
BWART = '106' OR
BWART = '502' OR
BWART = '532' OR
BWART = '562' OR
BWART = '702' OR
BWART = '310' OR
BWART = '302' OR
BWART = '123' OR
BWART = '122' OR
BWART = '132' ).
SORT T_HEADER BY MATNR BWKEY.
DELETE ADJACENT DUPLICATES FROM T_HEADER COMPARING MATNR BWKEY.
T_CUR_STOCK[] = T_MSEG[].
SORT T_CUR_STOCK BY MATNR WERKS.
LOOP AT T_CUR_STOCK.
WA_MSEG = T_CUR_STOCK.
AT END OF WERKS.
ENDAT.
ENDLOOP.
LOOP AT T_HEADER.
CLEAR L_LBKUM.
L_LBKUM = T_HEADER-LBKUM.
REFRESH T_ITEMS.
CLEAR T_ITEMS.
LOOP AT T_MSEG WHERE MATNR EQ T_HEADER-MATNR
AND WERKS EQ T_HEADER-BWKEY.
T_ITEMS = T_MSEG.
APPEND T_ITEMS.
CLEAR T_ITEMS.
ENDLOOP.
SORT T_ITEMS BY BUDAT DESCENDING
MBLNR DESCENDING.
CLEAR L_LBKUM.
LOOP AT T_ITEMS.
L_LBKUM = T_ITEMS-MENGE - T_HEADER-LBKUM.
IF L_LBKUM GE 0.
T_OUTPUT-MATNR = T_HEADER-MATNR.
T_OUTPUT-WERKS = T_HEADER-BWKEY.
T_OUTPUT-BUDAT = T_ITEMS-BUDAT.
T_OUTPUT-MENGE = T_HEADER-LBKUM.
APPEND T_OUTPUT.
CLEAR T_OUTPUT.
EXIT.
ELSE.
T_HEADER-LBKUM = T_HEADER-LBKUM - T_ITEMS-MENGE.
T_OUTPUT-MATNR = T_HEADER-MATNR.
T_OUTPUT-WERKS = T_HEADER-BWKEY.
T_OUTPUT-BUDAT = T_ITEMS-BUDAT.
T_OUTPUT-MENGE = T_ITEMS-MENGE.
APPEND T_OUTPUT.
CLEAR T_OUTPUT.
CONTINUE.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDFORM. " get_dead_stock
*& Form DISPLAY_OUTPUT
text
FORM DISPLAY_OUTPUT .
DATA: L_DAYS TYPE I.
DATA : WA_OUTPUT LIKE T_OUTPUT.
DATA : T_FINAL LIKE T_OUTPUT OCCURS 0 WITH HEADER LINE.
DATA : WA_FINAL LIKE T_OUTPUT.
DATA : L_CQTY TYPE MSEG-MENGE,
L_CPRC TYPE MBEW-SALK3.
DATA : L_TITLE TYPE LVC_TITLE.
DATA : L_NAME1 TYPE T001W-NAME1.
*C-- Not to output when the quantity is zero.
DELETE T_OUTPUT WHERE MENGE EQ 0.
SORT T_OUTPUT BY WERKS MATNR BUDAT.
LOOP AT T_OUTPUT.
T_FINAL = T_OUTPUT.
AT NEW MATNR.
CLEAR T_HEADER.
READ TABLE T_HEADER WITH KEY MATNR = T_OUTPUT-MATNR
BWKEY = T_OUTPUT-WERKS.
ENDAT.
T_FINAL-MAKTX = T_HEADER-MAKTX.
IF T_HEADER-LBKUM GT 0.
T_FINAL-PVAL = ( T_OUTPUT-MENGE * T_HEADER-SALK3 / T_HEADER-LBKUM ).
ELSE.
CLEAR T_FINAL-PVAL.
ENDIF.
L_CQTY = L_CQTY + T_OUTPUT-MENGE.
IF T_HEADER-LBKUM GT 0.
L_CPRC = L_CPRC + ( T_OUTPUT-MENGE * T_HEADER-SALK3 / T_HEADER-LBKUM ).
ENDIF.
CALL FUNCTION 'HR_SGPBS_YRS_MTHS_DAYS'
EXPORTING
BEG_DA = T_OUTPUT-BUDAT
END_DA = P_DATE
IMPORTING
NO_CAL_DAY = L_DAYS
EXCEPTIONS
DATEINT_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE : 70 'Error While Calculating days'(018) .
ELSE.
T_FINAL-PDAYS = L_DAYS.
ENDIF.
T_FINAL-CQTY = L_CQTY.
T_FINAL-CPRC = L_CPRC.
APPEND T_FINAL.
AT END OF MATNR.
CLEAR : L_CPRC, L_CQTY.
ENDAT.
ENDLOOP.
PERFORM BUILD_FIELD_CATALOG.
WA_SORT-FIELDNAME = 'MATNR'.
WA_SORT-SPOS = '1'.
APPEND WA_SORT TO T_SORT.
SELECT SINGLE NAME1 FROM T001W INTO L_NAME1
WHERE WERKS = P_WERKS.
CONCATENATE 'Plant: ' P_WERKS ',' L_NAME1 INTO L_TITLE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
I_GRID_TITLE = L_TITLE
IT_FIELDCAT = GRID_TAB[]
IT_SORT = T_SORT
I_SAVE = 'A'
TABLES
T_OUTTAB = T_FINAL[].
SORT T_FINAL BY WERKS MATNR BUDAT.
LOOP AT T_FINAL.
WRITE : /10 T_FINAL-MATNR.
WRITE : 30 T_FINAL-WERKS.
WRITE : 40 T_FINAL-BUDAT.
WRITE : 50 T_FINAL-MENGE.
**C-- FM to find the number of days between
**C-- todays date and the posting date
CALL FUNCTION 'HR_SGPBS_YRS_MTHS_DAYS'
EXPORTING
BEG_DA = T_FINAL-BUDAT
END_DA = P_DATE
IMPORTING
NO_CAL_DAY = L_DAYS
EXCEPTIONS
DATEINT_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE : 70 'Error While Calculating days'(018) .
ELSE.
WRITE : 70 L_DAYS.
ENDIF.
AT END OF MATNR.
ULINE.
READ TABLE T_HEADER WITH KEY MATNR = T_FINAL-MATNR
BWKEY = T_FINAL-WERKS.
IF SY-SUBRC EQ 0.
WRITE : /1 'Total Valuated Stock', T_HEADER-LBKUM.
WRITE : /1 'Value of total valuated Stock', T_HEADER-SALK3.
ULINE.
ENDIF.
ENDAT.
ENDLOOP.
ENDFORM. " DISPLAY_OUTPUT
*& Form BUILD_FIELD_CATALOG
text
--> p1 text
<-- p2 text
FORM BUILD_FIELD_CATALOG .
DATA : CNT1 TYPE I.
CNT1 = CNT1 + 1.
GRID_TAB-COL_POS = CNT1.
GRID_TAB-SELTEXT_L = 'Material'.
GRID_TAB-FIELDNAME = 'MATNR'.
GRID_TAB-KEY = 'X'.
GRID_TAB-NO_ZERO = 'X'.
GRID_TAB-TABNAME = 'T_FINAL'.
APPEND GRID_TAB.
CLEAR GRID_TAB.
CNT1 = CNT1 + 1.
GRID_TAB-COL_POS = CNT1.
GRID_TAB-SELTEXT_L = 'Material Description'.
GRID_TAB-FIELDNAME = 'MAKTX'.
GRID_TAB-OUTPUTLEN = '30'.
GRID_TAB-KEY = 'X'.
GRID_TAB-NO_ZERO = 'X'.
GRID_TAB-TABNAME = 'T_FINAL'.
APPEND GRID_TAB.
CLEAR GRID_TAB.
CNT1 = CNT1 + 1.
GRID_TAB-COL_POS = CNT1.
GRID_TAB-SELTEXT_L = 'Date of Reciept'.
GRID_TAB-FIELDNAME = 'BUDAT'.
GRID_TAB-KEY = 'X'.
GRID_TAB-NO_ZERO = 'X'.
GRID_TAB-TABNAME = 'T_FINAL'.
APPEND GRID_TAB.
CLEAR GRID_TAB.
CNT1 = CNT1 + 1.
GRID_TAB-COL_POS = CNT1.
GRID_TAB-SELTEXT_L = 'Quantity'.
GRID_TAB-FIELDNAME = 'MENGE'.
GRID_TAB-KEY = 'X'.
GRID_TAB-NO_ZERO = 'X'.
GRID_TAB-TABNAME = 'T_FINAL'.
APPEND GRID_TAB.
CLEAR GRID_TAB.
CNT1 = CNT1 + 1.
GRID_TAB-COL_POS = CNT1.
GRID_TAB-SELTEXT_L = 'Pending Days'.
GRID_TAB-FIELDNAME = 'PDAYS'.
GRID_TAB-KEY = 'X'.
GRID_TAB-NO_ZERO = 'X'.
GRID_TAB-TABNAME = 'T_FINAL'.
APPEND GRID_TAB.
CLEAR GRID_TAB.
CNT1 = CNT1 + 1.
GRID_TAB-COL_POS = CNT1.
GRID_TAB-SELTEXT_L = 'Value'.
GRID_TAB-FIELDNAME = 'PVAL'.
GRID_TAB-KEY = 'X'.
GRID_TAB-NO_ZERO = 'X'.
GRID_TAB-TABNAME = 'T_FINAL'.
APPEND GRID_TAB.
CLEAR GRID_TAB.
CNT1 = CNT1 + 1.
GRID_TAB-COL_POS = CNT1.
GRID_TAB-SELTEXT_L = 'Cumulative Quantity'.
GRID_TAB-FIELDNAME = 'CQTY'.
GRID_TAB-KEY = 'X'.
GRID_TAB-NO_ZERO = 'X'.
GRID_TAB-TABNAME = 'T_FINAL'.
APPEND GRID_TAB.
CLEAR GRID_TAB.
CNT1 = CNT1 + 1.
GRID_TAB-COL_POS = CNT1.
GRID_TAB-SELTEXT_L = 'Value of Cumulative Quantity'.
GRID_TAB-OUTPUTLEN = '30'.
GRID_TAB-FIELDNAME = 'CPRC'.
GRID_TAB-KEY = 'X'.
GRID_TAB-NO_ZERO = 'X'.
GRID_TAB-TABNAME = 'T_FINAL'.
APPEND GRID_TAB.
ENDFORM. " BUILD_FIELD_CATALOG -
Dear All,
I am creating a customised report for showing all the importatnt data (like stock, consumption, production, sale in one report) at client level.
In this report I am required to show the stock of material on a particular date, entered by the user in the selection screen.
(In stanard SAP, report MB5B servers the purpose.)
Can you please suggest how can I get the same information in the customised report.?
(I do not prefer using method: month opening stock + total receipts - total consumption)
Is there any alternative way?
Thanks and regards
SarangHi
The MB5B report gives you all the data, if you donot want some of the data, copy the Report, & from the Output Parameters remove the Fields which you dont want.
if you want the ALV functionality add the same to that.
Thanks & Regards
Kishore -
Stock on particular date (performance issue)
Hi Folks,
I m calculating stock at all vendor on a particular date.
But it takes very long and time_out occurs.
I m calculating opening closing provided return and rejection based on movement types.
The report hangs up at following particular Join.
SELECT MKPFBUDAT MSEGBWART MSEGMATNR MSEGLIFNR SUM( MSEG~MENGE )
AS MENGE
INTO CORRESPONDING FIELDS OF TABLE IT_OPEN
FROM
MKPF INNER JOIN MSEG ON
MKPFMBLNR = MSEGMBLNR AND
MKPFMJAHR = MSEGMJAHR
WHERE MKPF~MJAHR = D_YEAR AND
MKPF~BUDAT GE D_DATE AND
MKPF~BUDAT LT S_BUDAT-LOW AND
MSEG~BWART IN ('541','542','543','544','551','702') AND
MSEG~XAUTO NE 'X' AND
MSEG~MATNR IN S_MATNR AND
MSEG~WERKS IN P_WERKS AND
MSEG~LIFNR IN P_LIFNR
GROUP BY LIFNR MATNR BUDAT BWART.
Is there any way to increase performance by breaking this inner join into select statements or anyhow.
Regards
SachinHI,
On seeing your code, it seems like,
SELECT MKPFBUDAT MSEGBWART MSEGMATNR MSEGLIFNR SUM( MSEG~MENGE )
AS MENGE
INTO CORRESPONDING FIELDS OF TABLE IT_OPEN
FROM
MKPF INNER JOIN MSEG ON
MKPFMBLNR = MSEGMBLNR AND
MKPFMJAHR = MSEGMJAHR
WHERE MKPF~MJAHR = D_YEAR AND
MKPF~BUDAT GE D_DATE AND
MKPF~BUDAT LT S_BUDAT-LOW AND
MSEG~BWART IN ('541','542','543','544','551','702') AND
MSEG~XAUTO NE 'X' AND
MSEG~MATNR IN S_MATNR AND
<b>MSEG~WERKS EQ P_WERKS</b> AND
<b>MSEG~LIFNR EQ P_LIFNR</b>
GROUP BY LIFNR MATNR BUDAT BWART.
Please see the code marked with bold as parameter passing in the select statement must be EQ and not IN.
Secondly, remove the aggregate function SUM from the select. First select all the records into an internal table and either use control break statements or Collect to sum up the entries.
Next, while selecting from the database use INTO TABLE IT_OPEN rather than into corresponding fields of table.
Also remove the movement types from the select and restrict it inside the Loop and Endloop.
Lakshminarayanan
Please mark all helpful answers for points
Maybe you are looking for
-
How to I get Facebook games to recognize Flash 11?
My computer advised me to update my Flash player, so I did and now I cannot get any Facebook games to load. Well, most any games for that matter. Alot of my kids games don't load either. It's like my computer doesn't recognize that I have the play
-
Webi Report Performance issue as compared with backaend SAP BW as
Hi We are having Backend as SAP BW. Dashboard and Webi reports are created with Backend SAP BW. i.e thru Universe on top of Bex query and then webi report and then dashboard thru live office. My point is that when we have created webi reprts with dat
-
How to get fourthly row (row4) first column value (col1) in matrix
Hi to all, In FMS, how to get fourthly row (row4) first column value (col1) in matrix in document. select $[$38.1.4] But it display the first row Please give me hint. Thank you
-
Export/Import Corruption ?
We have just moved an application from Oracle 9i to 10g via the Export/Import options. One of our pages now displays the Oracle error "failed to parse SQL query: ORA-00907: missing right parenthesis" in an SQL Query region after the import. It works
-
Standard SAP Table for PO Header Text and PO Item Text
Hi, I want to know the Standard SAP Table where the PO Header Text and the PO Item Text are stored. Thanks, RK