Report for POs
Hi Friends,
we just want a report that shows the Document date, the Invoice date, the PO number, the vendor and the value if possible,
Thanks in advance
Hi,
You can check ME2L report.
Regards,
Eli
Similar Messages
-
Report for POs pending Release (approval) and POs overdue (past deliv date)
Hi All,
In ME2N - std report for POs. How do I set the selection critieria in order to get the following information
1. POs pending Approval (subject to Release Strategy)
2. POs pending delivery from Vendor where the delivery date requested in the POs is past. (How does Selection parameter WE101 help in this report.? How to show how many days past requested delivery date in the PO?)
Thanks in advanceDear,
1. POs pending Approval (subject to Release Strategy) : -
Enter ME2N, select Dynamic Selection.
Here click on Purchasing Document Header,
Double click on Release Indicator field and assign "X" ,
Then souble click on Subject to release and also give "Yes" indicator then click on execute you get list of purchase order which is unrelease.
2) POs pending delivery from Vendor: -
Enter ME2N, Select selection parameter WE101,
Here you can find list of pending purchase order, You can see document date or delivery date from change layout to find out how it is past.
Regards,
Mahesh Wagh -
Report for POs which are unpaid
Dear All,
I need report where all POs whether material or Service, which are unpaid. Reasons could be fund,Material not received or bill not booked. I tried ME80FN but I am unable to get the same.
Please let me know where I can get this and in which report.
Thanking you.
With Best Regards,
RajeshHi Rajesh,
Use ME2M, ME2N, ME2L reports. In the selection parameters field in the input screen select the apropriate key
eg: RECHNUNG for Open Invoices, WE101 for open goods receipt etc.
Hope the above answers your query, else revert.
If helpful award points
Regards,
Vivek -
Hi All,
Is there any report/table which can list down all the purchasing documents based on the requisitioner who created it and/or buyer. Just like we haveme2m classifies Pdocs based on materials,me2l per vendor etc.
Moreover what is the t-code to list down all the reports?(standard/z)
Thanks in advance!Hi,
u can use buyers negotiation sheet for this purpose.(t-code - me1x).
u have to configure buyers negotiation sheet under menu path:
SPRO > IMG > MATERIAL MANAGEMENT > PURCHASING > BUYERS NEGOTIATION SHEET.
regards
jash -
Hi
While creating a non planned service order I get an error message on line item 71
No work for Pos 0000000071 found, see IMG-Tab. OFIC_PLANT_SRV (E report CRM_SRV_LOGISTIC_EXT 001)
Because of this it is not replicating into ECC.
Any idea where to check?Hi Chandra Shekar,
The workd around is as follows;
1)Define a dummmy service technician that can be populated in the Service order. This will help you in avoiding the error you are getting and a Preq will be created in R/3. This is necessary as an employee responsible is a required partner function to create a PReq in R/3.
2)In future when you are sure of the technician involved and enter the changes on the order, this will reflect in the PReq in R/3.
In the table OFIC_PLANT_SRV maintain entries as Wild card entries, as best practices - to avoid any specific data entry errors.
Cheers,
Hope this helps,
Shiloo -
Report for list of POs for with Invoice has not been posted
Hi All
Can anybody tell me the report for list of PO' for which GR has already been done but Invoice is not posted
Thnks
RanjithHi
Try Report ME2M,
With input selection parameter "WE101".
Hope this helps.
Harish -
hi guy's,
i am doing report for the stock statement .... my issue is in MB5B if i reverse some document it shows as it move's to issue QTY and my receipt is same but my closing stock is correct ...is there any std report avalible ....
thank's in advanceUse this code :
TABLES : MSEG,MKPF,MARA,MAKT,BEWART,MSLB,BSIM.
TYPE-POOLS : SLIS.
DATA : IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
IT_LIST_HEADER TYPE SLIS_T_LISTHEADER,
IT_EVENTS TYPE SLIS_T_EVENT,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
WA_SORT TYPE SLIS_SORTINFO_ALV,
IT_SORT TYPE SLIS_T_SORTINFO_ALV,
REPID LIKE SY-REPID,
FRM_DATE(10),TO_DATE(10),
DISPTEXT(255),DISPTEXT2(255).
TYPES : BEGIN OF ST_OPBAL,
MATNR LIKE MSEG-MATNR,
MAKTX LIKE MAKT-MAKTX,
BATCH LIKE MSEG-CHARG,
BWART LIKE MSEG-BWART,
MENGE LIKE MSEG-MENGE,
ZEILE LIKE MSEG-ZEILE,
WERKS LIKE MSEG-WERKS,
SOBKZ LIKE MSEG-SOBKZ,
BUDAT LIKE MKPF-BUDAT,
SHKZG LIKE MSEG-SHKZG,
DMBTR LIKE MSEG-DMBTR,
MBLNR LIKE MSEG-MBLNR,
LGORT LIKE MSEG-LGORT,
END OF ST_OPBAL.
DATA : OPBAL TYPE ST_OPBAL OCCURS 0 WITH HEADER LINE,
TMP_OPBAL TYPE ST_OPBAL OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF BAL_NOREF OCCURS 0,
MATNR LIKE MARA-MATNR,
SHKZG LIKE MSEG-SHKZG,
DMBTR LIKE MSEG-DMBTR,
END OF BAL_NOREF.
DATA : BEGIN OF OPBAL2 OCCURS 0,
SNO(3) TYPE N,
MATNR LIKE MSEG-MATNR,
MAKTX LIKE MAKT-MAKTX,
OP_BAL LIKE MSEG-MENGE,
OP_STKVAL LIKE MSEG-DMBTR, "NEW
REC LIKE MSEG-MENGE,
T_OPBAL_REC LIKE MSEG-MENGE,
REC_STKVAL LIKE MSEG-DMBTR, "NEW
ISS LIKE MSEG-MENGE,
ISS_STKVAL LIKE MSEG-DMBTR, "NEW
SALES LIKE MSEG-MENGE,
T_ISS LIKE MSEG-MENGE,
CL_BAL LIKE MSEG-MENGE,
BATCH LIKE MSEG-CHARG,
SUBCON LIKE MSEG-MENGE,
CL_STKVAL LIKE MSEG-DMBTR,
END OF OPBAL2.
DATA SERNO(4) TYPE C.
DATA OPTOT TYPE P DECIMALS 3.
DATA RECTOT TYPE P DECIMALS 3.
DATA ISSTOT TYPE P DECIMALS 3.
DATA TOTALL TYPE P DECIMALS 3.
DATA FLG TYPE N.
DATA FLAG TYPE N.
DATA STOCKVAL TYPE MSEG-DMBTR.
DATA REC_STOCKVAL TYPE MSEG-DMBTR.
DATA ISS_STOCKVAL TYPE MSEG-DMBTR.
DATA CL_STKVAL TYPE MSEG-DMBTR.
SELECTION-SCREEN BEGIN OF BLOCK X WITH FRAME.
SELECT-OPTIONS: P_MATNR FOR MSEG-MATNR,
P_MGRP FOR MARA-MATKL,
P_DATE FOR MKPF-BUDAT,
P_PLANT FOR MSEG-WERKS DEFAULT 'NB01' OBLIGATORY NO INTERVALS
NO-EXTENSION .
SELECT-OPTIONS: P_STLOC FOR MSEG-LGORT NO INTERVALS NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK X.
INITIALIZATION.
REPID = SY-REPID.
PERFORM FILL_FLDCAT USING IT_FLDCAT.
PERFORM FILL_EVENTS USING IT_EVENTS.
PERFORM FILL_LAYOUT USING GS_LAYOUT.
START-OF-SELECTION.
CONCATENATE P_DATE-LOW6(2) '.' P_DATE-LOW4(2) '.' P_DATE-LOW+0(4)
INTO FRM_DATE.
CONCATENATE P_DATE-HIGH6(2) '.' P_DATE-HIGH4(2) '.' P_DATE-HIGH+0(4)
INTO TO_DATE.
CONCATENATE TEXT-003 FRM_DATE' TO : ' TO_DATE INTO DISPTEXT.
CONCATENATE TEXT-004 P_PLANT-LOW ' Storage Location : ' P_STLOC-LOW
INTO DISPTEXT2.
PERFORM FILL_HEADER USING IT_LIST_HEADER.
SELECT A~MATNR
F~MAKTX
A~CHARG
A~BWART
A~MENGE
A~ZEILE
A~WERKS
A~SOBKZ
D~BUDAT
A~SHKZG
A~DMBTR
A~MBLNR
A~LGORT
INTO TABLE OPBAL
FROM MKPF AS D JOIN MSEG AS A
ON DMBLNR = AMBLNR AND
DMJAHR = AMJAHR
JOIN MARA AS E
ON EMATNR = AMATNR
JOIN MAKT AS F
ON FMATNR = AMATNR
WHERE A~MATNR IN P_MATNR
AND A~WERKS IN P_PLANT
AND A~KZBEW IN (' ','B')
AND E~MATKL IN P_MGRP
AND A~BWART NOT IN ('541','542','321','322','121')
AND A~KZVBR NOT IN ('A')
AND D~BUDAT LE P_DATE-HIGH.
LOOP AT OPBAL WHERE BWART EQ '544' AND LGORT EQ ''.
TMP_OPBAL = OPBAL.
APPEND TMP_OPBAL.
ENDLOOP.
DELETE OPBAL WHERE ( BWART EQ '309' AND DMBTR EQ 0 ).
DELETE OPBAL WHERE ( BWART NE '543' AND LGORT EQ '' ).
LOOP AT TMP_OPBAL.
OPBAL = TMP_OPBAL.
APPEND OPBAL.
ENDLOOP.
STOCKVAL = 0.
SORT OPBAL BY MATNR BATCH BUDAT.
LOOP AT OPBAL.
SELECT SINGLE LBLAB INTO MSLB-LBLAB FROM MSLB
WHERE MATNR = OPBAL-MATNR.
IF OPBAL-BUDAT LT P_DATE-LOW.
IF OPBAL-SHKZG = 'H'.
OPTOT = OPTOT - OPBAL-MENGE.
ELSEIF OPBAL-SHKZG = 'S'.
OPTOT = OPTOT + OPBAL-MENGE.
ENDIF.
For the duration II part *****************
ELSEIF OPBAL-BUDAT IN P_DATE.
IF OPBAL-SHKZG = 'H'.
ISSTOT = ISSTOT + OPBAL-MENGE.
ELSEIF OPBAL-SHKZG = 'S'.
RECTOT = RECTOT + OPBAL-MENGE.
ENDIF.
ENDIF.
AT END OF BATCH. " modified for chek
READ TABLE OPBAL INDEX SY-TABIX.
CLEAR BAL_NOREF. REFRESH BAL_NOREF.
SELECT MATNR SHKZG SUM( DMBTR )
INTO TABLE BAL_NOREF
FROM BSIM
WHERE BUDAT LT P_DATE-LOW AND
MATNR EQ OPBAL-MATNR AND
BWTAR EQ OPBAL-BATCH AND
BWKEY IN P_PLANT AND
BLART IN ('RE','WE','WA','PR')
GROUP BY MATNR SHKZG.
LOOP AT BAL_NOREF.
IF BAL_NOREF-SHKZG = 'H'.
STOCKVAL = STOCKVAL - BAL_NOREF-DMBTR.
ELSE.
STOCKVAL = STOCKVAL + BAL_NOREF-DMBTR.
ENDIF.
ENDLOOP.
CLEAR BAL_NOREF. REFRESH BAL_NOREF.
SELECT MATNR SHKZG SUM( DMBTR )
INTO TABLE BAL_NOREF
FROM BSIM
WHERE BUDAT IN P_DATE AND
MATNR EQ OPBAL-MATNR AND
BWTAR EQ OPBAL-BATCH AND
BWKEY IN P_PLANT AND
BLART IN ('RE','WE','WA','PR')
GROUP BY MATNR SHKZG.
LOOP AT BAL_NOREF.
IF BAL_NOREF-SHKZG = 'H'.
ISS_STOCKVAL = ISS_STOCKVAL + BAL_NOREF-DMBTR.
ELSE.
REC_STOCKVAL = REC_STOCKVAL + BAL_NOREF-DMBTR.
ENDIF.
ENDLOOP.
" MSLB-LBLAB (STOCK WITH SUBCONTRACTOR).
CL_STKVAL = STOCKVAL + REC_STOCKVAL - ISS_STOCKVAL.
TOTALL = OPTOT + RECTOT - ISSTOT.
IF OPTOT = '0' AND RECTOT = '0' AND ISSTOT = '0'.
FLG = 1.
ENDIF.
IF FLG = 1.
CLEAR FLG.
ELSE.
SERNO = SERNO + 1.
OPBAL2-SNO = SERNO.
OPBAL2-MATNR = OPBAL-MATNR.
OPBAL2-MAKTX = OPBAL-MAKTX.
OPBAL2-OP_BAL = OPTOT.
OPBAL2-REC = RECTOT.
OPBAL2-T_OPBAL_REC = OPTOT + RECTOT.
OPBAL2-ISS = ISSTOT.
OPBAL2-T_ISS = ISSTOT.
OPBAL2-CL_BAL = TOTALL.
OPBAL2-BATCH = OPBAL-BATCH.
OPBAL2-SUBCON = MSLB-LBLAB.
OPBAL2-OP_STKVAL = STOCKVAL.
OPBAL2-ISS_STKVAL = ISS_STOCKVAL.
OPBAL2-REC_STKVAL = REC_STOCKVAL.
OPBAL2-CL_STKVAL = CL_STKVAL.
APPEND OPBAL2.
ENDIF.
OPTOT = 0.
RECTOT = 0.
ISSTOT = 0.
STOCKVAL = 0.
ISS_STOCKVAL = 0.
REC_STOCKVAL = 0.
CL_STKVAL = 0.
ENDAT.
ENDLOOP.
WA_SORT-SPOS = 1.
WA_SORT-FIELDNAME = 'MATNR'.
WA_SORT-UP = 'X'.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO IT_SORT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IT_FIELDCAT = IT_FLDCAT
IT_EVENTS = IT_EVENTS
IS_LAYOUT = GS_LAYOUT
IT_SORT = IT_SORT
TABLES
T_OUTTAB = OPBAL2.
FORM FILL_FLDCAT USING P_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.
PERFORM FILL_PARAM_FLDCAT USING 1 'SNo' 'SNO' ' ' 'X'
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 2 'Material No.' 'MATNR' ' ' 'X'
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 3 'Description' 'MAKTX' ' ' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 4 'Op.Bal' 'OP_BAL' 'X' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 5 'Op.Stock Val' 'OP_STKVAL' 'X' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 6 'Receipts' 'REC' 'X' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 7 'Total' 'T_OPBAL_REC' 'X' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 8 'Rect.Val.' 'REC_STKVAL' 'X' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 9 'Issues' 'ISS' 'X' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 10 'Iss. Val.' 'ISS_STKVAL' 'X' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 11 'Cl. Bal.' 'CL_BAL' 'X' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 12 'Cl.Stock Val' 'CL_STKVAL' 'X' ' '
'OPBAL2' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 13 'BATCH ' 'BATCH' ' ' ' '
'OPBAL2' P_FLDCAT.
ENDFORM.
FORM FILL_PARAM_FLDCAT USING VALUE(P_COL) VALUE(P_TEXT) VALUE(P_FLDNAME)
VALUE(P_DOSUM) VALUE(P_NOZERO) VALUE(P_TABNAME)
PP_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : WA_FLDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = P_COL.
WA_FLDCAT-SELTEXT_M = P_TEXT.
WA_FLDCAT-FIELDNAME = P_FLDNAME.
WA_FLDCAT-TABNAME = P_TABNAME.
WA_FLDCAT-DO_SUM = P_DOSUM.
WA_FLDCAT-NO_ZERO = P_NOZERO.
APPEND WA_FLDCAT TO PP_FLDCAT.
ENDFORM.
FORM FILL_HEADER USING P_IT_LIST_HEADER TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-INFO = TEXT-002.
APPEND LS_LINE TO P_IT_LIST_HEADER.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-INFO = DISPTEXT.
APPEND LS_LINE TO P_IT_LIST_HEADER.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-INFO = DISPTEXT2.
APPEND LS_LINE TO P_IT_LIST_HEADER.
ENDFORM.
FORM FILL_EVENTS USING P_IT_EVENTS TYPE SLIS_T_EVENT.
DATA LS_EVENT TYPE SLIS_ALV_EVENT.
MOVE 'TOP_OF_PAGE' TO LS_EVENT-FORM.
MOVE 'TOP_OF_PAGE' TO LS_EVENT-NAME.
APPEND LS_EVENT TO P_IT_EVENTS.
ENDFORM.
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LIST_HEADER.
ENDFORM.
FORM FILL_LAYOUT USING P_GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
P_GS_LAYOUT-ZEBRA = 'X'.
P_GS_LAYOUT-FLEXIBLE_KEY = 'X'.
ENDFORM.
FOR TESTING PURPOSE.
*SORT OPBAL BY BUDAT.
*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IT_FIELDCAT = IT_FLDCAT
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = OPBAL.
*FORM FILL_FLDCAT USING P_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.
PERFORM FILL_PARAM_FLDCAT USING 1 'MBLNR' 'MBLNR'
'OPBAL' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 2 'CREDIT/DEBIT' 'SHKZG'
'OPBAL' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 3 'MOV.TYP.' 'BWART'
'OPBAL' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 4 'ST.LOC.' 'LGORT'
'OPBAL' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 5 'STOCK VAL' 'DMBTR'
'OPBAL' P_FLDCAT.
PERFORM FILL_PARAM_FLDCAT USING 6 'POS.DATE' 'BUDAT'
'OPBAL' P_FLDCAT.
*ENDFORM. -
1. I want a report which diplays POs & PRs created through MRP & created manually. How?
2. Through Document type we can easily distinguish between the Purchase Requisitions that have been generated through MRP and those created manually. How?
Regards
VSYOu can get the report for req created by MRP/Manually or any other criteria by using transaction ME5A
Use ME5A then from dynamic selection (On Maib screen color button) select the creation indicator by double clicking on it and entr the value B for MRP same way for any other REqs
This will give you the exact reports which you are looking for it so you don;t need to create the new document type for this purpose
rewards the points -
Hi,
1.
I need to have a report for the paid delivey costs(planned and unplanned) for the given pos.
2.
Is there any std transaction which can give the list of fast moving items based on movement types?
Please help me, it is very urgent.
Your help is appreciated.
Regards,
Subbu.Hi,
For Delivery Cost look in Table EKBZ ,EKBZH.For Fast moving item use the T Code MCBE (also MCBA,MCBC)in which you can find the fields like number of valuated stock receipts and issue and also number of movements .Selecting a given period range if the number of movemnets is sorted in descending order the maximum moved material can be found.
Dhruba
Message was edited by:
Dhruba Charan Behera -
Report for inactive vendors from past 2 years
Hi,
We have a request to create a report for the vendors who are not active for last 2 years. Can anyone please advise me the points I should keep in mind to consider a particular vendor inactive. eg. if a vendor has 0 balance in table LFC1 for last 2 years, will be considered as inactive but, that vendor could have some PO's activity on it in these 2 years, which are not appearing on FI side.
Please also tell me if there is a table to find open and close POs for vendors for last 2 years.
If anyone please advise, the points to keep in mind and important tables to refer for create this report.
Quick response will be appreciated.
Thanks & RegardsHi,
Thanks for your prompt reply, Can you please tell me where is the parameter SALDO0 in report RFKSLD00.
Quick response will be appreciated.
Thanks & Regards -
Report for PO wise balance order quantity with delivery due date
Dear Sir,
How can we get a Report for all POs ,showing Vendor wise / PO wise / Item wise balance item quantity along with the Delivery Due Date
With Thanks and Regards
B MittalDear Mr Charlie
ME2L with Parameter WE101 and Scope EINT , do not give balance PO item quantity .We look for areport which can give PO wise balance item quantity and delivery schedule date .
Rgds
B Mittal -
DEAR FRIENDS,
I am making a program for tracking the materials given (mb1b 541 movt.) for subcontracting and taken by me (101 for actual good receipt, 543 for the given material- stock type inward, 545 for the scrap returns). but while i made the program i am unable to pick up the materials BOM from the PO which is essential to take the difference between these and the supplied quantities taken-in by GR.
following is the program.
Please suggest the changes. Thanks,
Deepak
*& Report ZMM_SUBCONTRACTING_PO_REPORT
*& Author:
*& Date :
*& Reason: Sub Contracting PO Report.
*& Find Discreprancy in PO and BOM. according to 543 and 545
REPORT ZMM_SUBCONTRACTING_PO_REPORT NO STANDARD PAGE HEADING
LINE-SIZE 157.
*& TABLES DECLARATION
TABLES: EKKO,
EKPO,
EKBE,
ENT5303.
*& SELECTION-SCREEN.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_MATNR FOR EKPO-MATNR,
S_WERKS FOR EKBE-WERKS OBLIGATORY.
PARAMETERS: P_BUKRS LIKE EKKO-BUKRS OBLIGATORY.
SELECT-OPTIONS: S_BUDAT FOR EKBE-BUDAT OBLIGATORY,
S_EBELN FOR EKKO-EBELN,
S_BELNR FOR EKBE-BELNR,
S_GJAHR FOR EKBE-GJAHR.
SELECTION-SCREEN: END OF BLOCK B1.
*& INTERNAL TABLES DECLARATION.
DATA: BEGIN OF IT_EKKO OCCURS 0,
EBELN LIKE EKKO-EBELN,
END OF IT_EKKO.
DATA: BEGIN OF IT_EKBE OCCURS 0,
EBELN LIKE EKBE-EBELN,
EBELP LIKE EKBE-EBELP,
GJAHR LIKE EKBE-GJAHR,
BELNR LIKE EKBE-BELNR,
BUZEI LIKE EKBE-BUZEI,
BEWTP LIKE EKBE-BEWTP,
BWART LIKE EKBE-BWART,
BUDAT LIKE EKBE-BUDAT,
MENGE LIKE EKBE-MENGE,
DMBTR LIKE EKBE-DMBTR,
LFBNR LIKE EKBE-LFBNR,
MATNR LIKE EKBE-MATNR,
WERKS LIKE EKBE-WERKS,
BUKRS LIKE WB2_V_EKKO_EKPO2-BUKRS,
MENGE_I LIKE WB2_V_EKKO_EKPO2-MENGE_I,
LIFNR LIKE WB2_V_EKKO_EKPO2-LIFNR,
COUNT TYPE P DECIMALS 4,
BMENGE LIKE EKBE-MENGE,
MENGE101 LIKE EKBE-MENGE,
MENGE543 LIKE EKBE-MENGE,
MENGE545 LIKE EKBE-MENGE,
DIFFER LIKE EKBE-MENGE,
TMENGE LIKE EKBE-MENGE,
RATE LIKE EKBE-DMBTR,
NAME1 LIKE LFA1-NAME1,
LINE_COLOR(4),
END OF IT_EKBE.
DATA: WA LIKE IT_EKBE.
DATA: BEGIN OF IT_FINAL OCCURS 0.
INCLUDE STRUCTURE IT_EKBE.
DATA: END OF IT_FINAL.
DATA: BEGIN OF IT_FINAL_TEMP OCCURS 0.
INCLUDE STRUCTURE IT_EKBE.
DATA: END OF IT_FINAL_TEMP.
DATA: BEGIN OF IT_BOM OCCURS 0.
INCLUDE STRUCTURE CAPP_ITM.
DATA: END OF IT_BOM.
DATA: BEGIN OF IT_BOM_HEAD OCCURS 0.
INCLUDE STRUCTURE CAPP_BOM.
DATA: END OF IT_BOM_HEAD.
*& DATA DECLARATION.
DATA: COUNT TYPE P DECIMALS 4,
V_CNT TYPE P DECIMALS 4 VALUE '0.0001' ,
V_MENGE LIKE EKBE-MENGE,
V_DELETE.
TYPE-POOLS: slis.
DATA: l_date(12) TYPE c,
l_date1(12) TYPE c,
l_time(10) TYPE c,
l_list(60) TYPE c.
DATA: CATALOG TYPE SLIS_FIELDCAT_ALV, "FIELDCAT
TCATALOG TYPE SLIS_T_FIELDCAT_ALV, "IT FIELDCAT
EVENT TYPE SLIS_ALV_EVENT, "EVENT
TEVENT TYPE SLIS_T_EVENT, "IT EVENT
LAYOUT TYPE SLIS_LAYOUT_ALV, "LAYOUT
PG_TOP TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
PG_HEAD TYPE SLIS_T_LISTHEADER,
EXIT1 TYPE SLIS_EXIT_BY_USER,
VAR1 LIKE DISVARIANT,
VAR2 LIKE DISVARIANT.
*& START-OF-SELECTION.
START-OF-SELECTION.
PERFORM PROCESS_SELECTION.
PERFORM DELETE_CANCELLED_DOCUMENTS.
PERFORM EXPLODE_BOM_FOR_101.
SORT IT_FINAL BY COUNT.
PERFORM DISPLAY_OUTPUT.
FREE IT_FINAL_TEMP.
*& ALV FORMATTING
*& ALV DISPLAY
PERFORM GENERATE_ALV_FIELDCAT.
PERFORM EVENTS USING TEVENT.
PERFORM TEXT USING PG_HEAD.
PERFORM ALV_SHOW.
*& FORM PROCESS_SELECTION.
FORM PROCESS_SELECTION.
SELECT
A~EBELN
A~EBELP
A~GJAHR
A~BELNR
A~BUZEI
A~BEWTP
A~BWART
A~BUDAT
A~MENGE
A~DMBTR
A~LFBNR
A~MATNR
A~WERKS
B~BUKRS
B~MENGE_I
B~LIFNR
FROM
EKBE AS A
JOIN
WB2_V_EKKO_EKPO2 AS B
ON
AEBELN = BEBELN AND
AEBELP = BEBELP_I
INTO
CORRESPONDING FIELDS OF TABLE IT_EKBE
WHERE
A~MATNR IN S_MATNR AND
A~WERKS IN S_WERKS AND
A~BUDAT IN S_BUDAT AND
A~EBELN IN S_EBELN AND
A~BELNR IN S_BELNR AND
A~GJAHR IN S_GJAHR AND
A~VGABE IN ('1', '7') AND
A~BEWTP IN ('E', 'O') AND
( A~BWART IN ('101', '545', '543') OR
( ABWART = '102' AND ABEWTP = 'E' ) ) AND
B~BUKRS = P_BUKRS AND
B~BSTYP = 'F' AND
B~BSART = 'SUBC'."AND
B~LOEKZ <> 'X'.
SORT IT_EKBE BY EBELN EBELP GJAHR BELNR BUZEI.
ENDFORM.
*& FORM DELETE_CANCELLED_DOCUMENTS.
FORM DELETE_CANCELLED_DOCUMENTS.
DELETE IT_EKBE WHERE BWART = '102' AND BEWTP <> 'E'.
LOOP AT IT_EKBE WHERE BWART = '102'.
READ TABLE IT_EKBE INTO WA WITH KEY BELNR = IT_EKBE-LFBNR.
IF SY-SUBRC = 0.
DELETE IT_EKBE WHERE BELNR = WA-BELNR.
ENDIF.
ENDLOOP.
CLEAR WA.
DELETE IT_EKBE WHERE BWART = '102'.
ENDFORM.
*& FORM EXPLODE_BOM_FOR_101.
FORM EXPLODE_BOM_FOR_101.
CLEAR COUNT.
LOOP AT IT_EKBE WHERE BWART = '101' OR
BWART = '543'.
IF NOT IT_EKBE-MATNR IN S_MATNR.
V_DELETE = 'X'.
ELSE.
CLEAR V_DELETE.
ENDIF.
IF V_DELETE <> 'X'.
COUNT = COUNT + 1.
IT_EKBE-COUNT = COUNT.
V_MENGE = IT_EKBE-MENGE.
MODIFY IT_EKBE.
IT_FINAL = IT_EKBE.
APPEND IT_FINAL.
ENDIF.
call function 'CABM_READ_BOM'
exporting
I_MATNR = IT_EKBE-MATNR
I_WERKS = IT_EKBE-WERKS
I_STLAL = '01'
I_STLAN = '3'
I_DATUV = IT_EKBE-BUDAT
TABLES
EXP_BOM_DATA = IT_BOM_HEAD
EXP_ITM_DATA = IT_BOM
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2
if SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
*START RK 18.06.2007
DELETE IT_BOM WHERE DATUV > IT_EKBE-BUDAT.
END : 18.06.2007
IF V_DELETE = 'X'.
LOOP AT IT_BOM.
DELETE IT_EKBE WHERE MATNR = IT_BOM-IDNRK.
ENDLOOP.
REFRESH IT_BOM.
ELSE.
PERFORM CHECK_BOM_GR.
ENDIF.
endif.
ENDLOOP.
FREE IT_EKBE.
ENDFORM.
*& FORM CHECK_BOM_GR.
FORM CHECK_BOM_GR.
DATA: WACNT TYPE P DECIMALS 4.
WACNT = COUNT.
LOOP AT IT_BOM.
READ TABLE IT_EKBE INTO WA WITH KEY EBELN = IT_EKBE-EBELN
MATNR = IT_BOM-IDNRK.
IF SY-SUBRC = 0.
WACNT = WACNT + V_CNT.
WA-COUNT = WACNT.
WA-BMENGE = IT_BOM-MENGE.
WA-TMENGE = V_MENGE.
APPEND WA TO IT_FINAL.
DELETE IT_EKBE WHERE EBELN = WA-EBELN AND
EBELP = WA-EBELP AND
MATNR = WA-MATNR AND
BELNR = WA-BELNR AND
BUZEI = WA-BUZEI.
**START : ADDED BY .... KUMAR ON 14.06.2007
ELSE.
WACNT = WACNT + V_CNT.
WA-COUNT = WACNT.
WA-BMENGE = IT_BOM-MENGE.
WA-MATNR = IT_BOM-IDNRK.
WA-TMENGE = V_MENGE.
APPEND WA TO IT_FINAL.
**END ADDED BY .... KUMAR ON 14.06.2007
ENDIF.
CLEAR WA.
ENDLOOP.
REFRESH IT_BOM.
ENDFORM.
*& FORM DISPLAY_OUTPUT.
FORM DISPLAY_OUTPUT.
Populate color variable with colour properties
Char 1 = C (This is a color property)
Char 2 = 3 (Color codes: 1 - 7)
Char 3 = Intensified on/off ( 1 or 0 )
Char 4 = Inverse display on/off ( 1 or 0 )
i.e. wa_ekko-line_color = 'C410'
IT_FINAL_TEMP[] = IT_FINAL[].
LOOP AT IT_FINAL.
CLEAR IT_FINAL-DMBTR.
********added by .... .... on 17.02.2007
if it_final-bmenge < 0.
IT_FINAL-DIFFER = IT_FINAL-TMENGE * IT_FINAL-BMENGE * -1.
else.
*********end by .... .... on 17.02.2007
IT_FINAL-DIFFER = IT_FINAL-TMENGE * IT_FINAL-BMENGE.
********added by .... .... on 17.02.2007
endif.
*********end by .... .... on 17.02.2007
IF IT_FINAL-BWART = '101'.
IT_FINAL-LINE_COLOR = 'C210'.
IT_FINAL-MENGE101 = IT_FINAL-MENGE.
IT_FINAL-DIFFER = 0.
LOOP AT IT_FINAL_TEMP WHERE BELNR = IT_FINAL-BELNR AND
EBELN = IT_FINAL-EBELN AND
EBELP = IT_FINAL-EBELP.
IF IT_FINAL_TEMP-BWART <> '545'.
IT_FINAL-DMBTR = IT_FINAL-DMBTR + IT_FINAL_TEMP-DMBTR.
ELSE.
IT_FINAL-DMBTR = IT_FINAL-DMBTR - IT_FINAL_TEMP-DMBTR.
ENDIF.
ENDLOOP.
IT_FINAL-RATE = IT_FINAL-DMBTR / IT_FINAL-MENGE101.
SELECT SINGLE
NAME1
INTO
IT_FINAL-NAME1
FROM
LFA1
WHERE
LIFNR = IT_FINAL-LIFNR.
IF SY-SUBRC <> 0.
CLEAR IT_FINAL-NAME1.
ENDIF.
ELSEIF IT_FINAL-BWART = '543'.
IT_FINAL-MENGE543 = IT_FINAL-MENGE.
IT_FINAL-LINE_COLOR = 'C200'.
IT_FINAL-DIFFER = IT_FINAL-DIFFER - IT_FINAL-MENGE543.
CLEAR: IT_FINAL-LIFNR,
IT_FINAL-EBELN,
IT_FINAL-BELNR,
IT_FINAL-MENGE_I,
IT_FINAL-BUDAT.
ELSEIF IT_FINAL-BWART = '545'.
******added by .... on 17.02.2007
IT_FINAL-MENGE = IT_FINAL-MENGE * -1.
IT_FINAL-MENGE = IT_FINAL-MENGE.
*******end by .... on 17.02.2007
IT_FINAL-MENGE545 = IT_FINAL-MENGE.
IT_FINAL-LINE_COLOR = 'C200'.
IT_FINAL-DIFFER = IT_FINAL-DIFFER - IT_FINAL-MENGE545.
CLEAR: IT_FINAL-LIFNR,
IT_FINAL-EBELN,
IT_FINAL-BELNR,
IT_FINAL-MENGE_I,
IT_FINAL-BUDAT.
ELSE.
IT_FINAL-LINE_COLOR = 'C200'.
CLEAR: IT_FINAL-LIFNR,
IT_FINAL-EBELN,
IT_FINAL-BELNR,
IT_FINAL-MENGE_I,
IT_FINAL-BUDAT.
ENDIF.
MODIFY IT_FINAL.
ENDLOOP.
ENDFORM.
*& Form GENERATE_ALV_FIELDCAT
text
FORM GENERATE_ALV_FIELDCAT.
DATA: POS TYPE I.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'COUNT'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'S. No.'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MATNR'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Mat. No.'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'BMENGE'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'BOM Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'EBELN'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'PO No.'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MENGE_I'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'PO Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'BELNR'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Gr. No.'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
CATALOG-HOTSPOT = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'BUDAT'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'GR Date'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MENGE101'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = '101 Gr Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MENGE543'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = '543 Gr Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MENGE545'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = '545 Gr Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'DIFFER'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Difference'.
CATALOG-NO_ZERO = ' '.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'LIFNR'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Vendor'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'NAME1'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Vendor Name'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'RATE'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Rate'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'DMBTR'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Value'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
ENDFORM.
*& Form ALV_SHOW
text
FORM ALV_SHOW.
LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
LAYOUT-BOX_TABNAME = 'IT_FINAL'.
LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
LAYOUT-ZEBRA = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = TCATALOG
IS_VARIANT = VAR1
I_SAVE = 'A'
IT_EVENTS = TEVENT[]
TABLES
T_OUTTAB = IT_FINAL.
ENDFORM . "ALV_SHOW
*& FORM USER_COMMAND.
FORM USER_COMMAND USING
R_UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
DATA: TABIX LIKE SY-TABIX,
WA LIKE IT_FINAL.
TABIX = SELFIELD-TABINDEX.
READ TABLE IT_FINAL INTO WA INDEX TABIX.
IF NOT WA-BELNR IS INITIAL.
set parameter id : 'MBN' FIELD WA-BELNR.
CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN .
ENDIF.
ENDFORM.Hi,
U can try this standard report for subcontracting:
J1IFR (Transaction name),
Not sure how much this will be useful to u.
regards,
Viji -
Report for PO price more than standard cost
We are currently without MM support at our plant, so I hope some one of you can help me.
The new supply chain director want a report of POs that are placed where the PO price is not equal to the standard and will thus generate a price variance upon receipt.
Query would be tough due to Unit of purchase vs MatMstr unit of measure. I'm hoping for a standard report?
The buyer does get a warning that the two are not equal, but they enter through them. Is there a report of warnings issues??
Any help would be great
Thanks
AltheaThere is not such stadard report for this but you can check the PO price in ME80FN.
But for comparison and the diff report you have to have right the Query using
EKKO, EKPO and MBEW table
and the UOM you need to select the Order unit of the PO. -
PR and PO should be display in IWBK report for stock item.
Hi Exterts,
Our client requirement is to display PR and PO number in IWBK report for stock item as well.
I know PR and PO can be display in IWBK report for non-stock item but how we can display PR and PO for stock item,as PR is generated through MRP for stock item.
Please share your ideas on this.
Regards
VishuVishu,
In typical MRP settings you "procure to stock" not "procure to order".
This means that there is no direct link between the PM/CS orders and any PR/POs created via MRP.
Subsequently you will not be able to show this data in IWBK.
However, we are currently designing a customer-specific report similar to IWBK that also counts the number of open POs for a given material on a PM/CS work order. The user can then navigate to ME2M (PO list) or MD04 (stock requirements list) to get further details.
PeteA -
Dear SAP Friends,
I have a requirement to create a report program for Tax paid and accrued for POs.
User need the information below:
Plant Location
PO #
Line#
Line Item
Vendor Name
Invoice #
Invoice Date
General Ledger Date
Date Paid
Clearing Document #
Cost center or WBS for payment
Account code for payment
Gross Payment (including Sales Tax)
Sales Tax Paid to Vendor
Use (Sales ) Tax Accrued
Base Amount
Can anyone help me from where I can get all the above information to send ABAPer for program creation.
Thanks & Regards,
PaulHi,
Use Report MIR5
MIR5 - Display List of Invoice Documents
You can use the report Display List of Invoice Documents (RMMR1MDI; transaction code MIR5) to display a list of the invoice documents.
In addition to the existing program Invoice Overview (transaction code MIR6), here you have extended selection criteria and display options:
o Gross invoice amount
o Unplanned delivery costs
o Currency key
o Exchange rate
o Entry date
o Entry time
o Choice between invoice and credit memo
o One-time customer with a one-time account
In the Invoice Overview program you can also change invoices, whereas in this report you only have display options.
By entering the following data you can increase your selection criteria:
o Entry type
o Invoice status
o Restrictions
Output: -
In the output list, the report displays the numbers of the posted and the parked invoice documents. The system does not display invoice documents that do not have a corresponding FI document, for example, invoice documents that are planned for verification in the background, or that have already been verified with errors.
From the output list, you can display the following:
o Invoice document
o FI document or list of FI documents
If more than one FI document is assigned to an invoice document, then you can display a list of all corresponding FI documents.
o List of all follow-on documents for an invoice document.
Maybe you are looking for
-
How do I transfer my recent purchases to my nano?
This used to be very easy but a lot has changed for the worst with this itunes 11. Who created this giant mess and when are they going to fix it?? I made 25 recent purchases from the store (something that I'll stop doing). How do you get those purcha
-
Pesky pesky reoccuring "iTunes Setup assitant".
what I have: -iTunes v. 7.6.0.29 -Windows vista -iPod touch I have the most recent iTunes build version 7.6.0.29 on my Vista Machine. No hacks, nothing unusual. Everything has worked fine until recently. I did not do anything that I can think in rega
-
IS-U view on equipments transfered by IDOC (ALE)
Hi all I'm using an ALE to transfer equipments when they are create by transaction IQ04(mass create). Its almost everything working fine. The problem is when the equipments created by IQ04 comes to the receiver client(mandt) they dont have the IS-U v
-
How do i delete garage band?
i have an 11inch air and am trying to make more room on it. how do i delete programs i don't use such as garage band?
-
Initiate Application Installation from App Catalog via Command Line / PowerShell
Hey Guys - We have a single, fairly extensive OSD task sequence which covers systems for all departments. Due to it being a single TS for all, PC Lab techs must manually install some apps after it finishes via the Application Catalog. In past envi