‎2008 Jun 03 5:43 AM
hi frnds,
PARAMETERS : P_ZZLTYP LIKE VBAK-ZZLTYPE DEFAULT 'SVCS' OBLIGATORY.
zzltype is the license type in vbak.
Read the licence type value from the input file. Validate the value with the licence type table values. If the value exists then populate this in to the sales order header.
how to code this..
'
help me out..
thnx
daniel
‎2008 Jun 03 5:51 AM
Hi,
REPORT YVCASS5 LINE-SIZE 132 MESSAGE-ID ZERHIER
DATA:V_lt TYPE licencetypevalue.
SELECT SINGLE ZZLTYPE
FROM VBAK
INTO V_lt
WHERE ZZLTYPE = P_ZZLTYP .
IF SY-SUBRC <> 0.
MESSAGE E000.
ENDIF.
‎2008 Jun 03 5:55 AM
REPORT YVCASS5 LINE-SIZE 132 MESSAGE-ID ZERHIER
DATA:V_lt TYPE licencetypevalue.
AT SELECTION-SCREEN.
perform sub_valid_zzltype.
form sub_valid_zzltype
SELECT SINGLE ZZLTYPE
FROM VBAK
INTO V_lt
WHERE ZZLTYPE = P_ZZLTYP .
IF SY-SUBRC <> 0.
MESSAGE E000.
ENDIF.
endform
‎2008 Jun 03 5:56 AM
Hi,
Put the above code in AT SELECTION-SCREEN ON <FLD> event.........
Reward all helpful answers.
Thanks
‎2008 Jun 03 5:57 AM
Hi,
Even if possible go through with below coding.
&----
*& Report Z_VCE_INVENTORYREP_PR *
*& *
&----
*& AUTHOR : PRAVEEN *
*& DESCRIPTION : Adding 5 new fields to the standard MB51 report *
*& TRANSPORT NUMBER: REDK900585 *
*& DATE : 29.05.2007
*& VERSION : V1.0 *
&----
REPORT YVCASS5 LINE-SIZE 132 MESSAGE-ID ZERHIER
.
&----
*& STRUCTURE DECLARATION *
&----
*STRUCTURE DECLARATION OF SLIS.
TYPE-POOLS:SLIS.
*STRUCTURE DECALRATION FOR Document Segment: Material & Header: Material Document
TYPES: BEGIN OF TY_MKPF_MSEG,
*FOR HEADER DATA
MBLNR TYPE MBLNR, "Material Document Number
MJAHR TYPE MJAHR, "Material Document Year
VGART TYPE VGART, "Transaction/Event Type
BUDAT TYPE BUDAT, "Posting date in document
USNAM TYPE USNAM, "USER NAME
XBLNR TYPE XBLNR1, "Refrence Document number
*FOR ITEM DATA
ZEILE TYPE MBLPO, "Item in Material Document
BWART TYPE BWART, "Movement Type
MATNR TYPE MATNR, "Material Number
WERKS TYPE WERKS_D, "Plant
LGORT TYPE LGORT_D, "Storage Location
CHARG TYPE CHARG_D, "Batch Number
LIFNR TYPE ELIFN, "Account Number of Vendor
KUNNR TYPE EKUNN, "Account Number of Customer
SOBKZ TYPE SOBKZ, "Special Stock Indicator
ERFMG TYPE ERFMG, "Quantity in Unit of Entry.
ERFME TYPE ERFME, "Unit of Entry
END OF TY_MKPF_MSEG,
*STRUCTURE DECALRATION FOR General Material Data
BEGIN OF TY_MARA,
MATNR TYPE MATNR, "Material Number
BISMT TYPE BISMT, "Old Material Number
END OF TY_MARA,
*STRUCTURE DECALRATION FOR Document Header for Serial Numbers for Goods Movements
BEGIN OF TY_SER03,
OBKNR TYPE OBJKNR, "Object List Number
MBLNR TYPE MBLNR, "Material Document Number
MJAHR TYPE MJAHR, "Material Document Year
END OF TY_SER03,
*STRUCTURE DECALRATION FOR Material Descriptions
BEGIN OF TY_MAKT,
MATNR TYPE MATNR, "Material Number
MAKTX TYPE MAKTX, "Material Description
END OF TY_MAKT,
*STRUCTURE DECALRATION FOR Plants/Branches
BEGIN OF TY_T001W,
WERKS TYPE WERKS, "Plant
NAME1 TYPE NAME1, "Name1
END OF TY_T001W,
*STRUCTURE DECALRATION FOR Movement Type Text
BEGIN OF TY_T156T,
BWART TYPE BWART, "Movement Type
BTEXT TYPE BWTXT, "Movement Type Text
END OF TY_T156T,
*STRUCTURE DECALRATION FOR Plant Maintenance Object List
BEGIN OF TY_OBJK,
OBKNR TYPE OBJKNR, "Object List Number
SERNR TYPE GERNR, "Serial Number
END OF TY_OBJK,
*STRUCTURE DECALRATION FOR HEADER TABLE.
BEGIN OF TY_HEADER,
MBLNR TYPE MBLNR, "Material Document Number
BISMT TYPE BISMT, "Old Material Number
MATNR TYPE MATNR, "Material Number
MAKTX TYPE MAKTX, "Material Description
WERKS TYPE WERKS_D, "Plant
NAME1 TYPE NAME1, "Name
END OF TY_HEADER,
*STRUCTURE DECALRATION FOR ITEM TABLE.
BEGIN OF TY_ITEM,
LGORT TYPE LGORT_D, "Storage Location
BWART TYPE BWART, "Movement Type
MBLNR TYPE MBLNR, "Material Document Number
CHARG TYPE CHARG_D, "Batch Number
SERNR TYPE GERNR, "Serial Number
ERFMG TYPE ERFMG, "Quantity in Unit of Entry.
ZEILE TYPE MBLPO, "Item in Material Document
BUDAT TYPE BUDAT, "Posting date in document
ERFME TYPE ERFME, "Unit of Entry
BTEXT TYPE BWTXT, "Movement Type Text
MATNR TYPE MATNR, "Material Number
WERKS TYPE WERKS_D, "Plant
END OF TY_ITEM.
&----
*& *
*& INTERNAL TABLE DECALRATIONS *
*& *
&----
*INTERNAL TABLE FOR MKPF&MSEG.
DATA: T_MKPF_MSEG TYPE STANDARD TABLE OF TY_MKPF_MSEG INITIAL SIZE 0,
*WORK AREA FOR MKPF&MSEG.
W_MKPF_MSEG TYPE TY_MKPF_MSEG,
*INTERNAL TABLE FOR MARA.
T_MARA TYPE STANDARD TABLE OF TY_MARA INITIAL SIZE 0,
*WORK AREA FOR MARA
W_MARA TYPE TY_MARA,
*INTERNAL TABLE FOR SER03 .
T_SER03 TYPE STANDARD TABLE OF TY_SER03 INITIAL SIZE 0,
*WORK AREA FOR SER03
W_SER03 TYPE TY_SER03,
*INTERNAL TABLE FOR MAKT.
T_MAKT TYPE STANDARD TABLE OF TY_MAKT INITIAL SIZE 0,
*WORK AREA FOR MAKT
W_MAKT TYPE TY_MAKT,
*INTERNAL TABLE FOR T001W.
T_T001W TYPE STANDARD TABLE OF TY_T001W INITIAL SIZE 0,
*WORK AREA FOR T001W
W_T001W TYPE TY_T001W,
*INTERNAL TABLE FOR T156T.
T_T156T TYPE STANDARD TABLE OF TY_T156T INITIAL SIZE 0,
*WORK AREA FOR T156T
W_T156T TYPE TY_T156T,
*INTERNAL TABLE FOR OBJK.
T_OBJK TYPE STANDARD TABLE OF TY_OBJK INITIAL SIZE 0,
*WORK AREA FOR OBJK
W_OBJK TYPE TY_OBJK,
*INTERNAL TABLE FOR HEADER DATA .
T_HEADER TYPE STANDARD TABLE OF TY_HEADER INITIAL SIZE 0,
*WORK AREA FOR HEADER
W_HEADER TYPE TY_HEADER,
*INTERNAL TABLE FOR ITEM DATA .
T_ITEM TYPE STANDARD TABLE OF TY_ITEM INITIAL SIZE 0,
*WORK AREA FOR ITEM
W_ITEM TYPE TY_ITEM,
*FIELD CATALOG
W_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
*FOR LINKING THE HEADER AND ITEM .
W_KEYINFO TYPE SLIS_KEYINFO_ALV.
&----
*& GLOBAL FIELDS DECLARATIONS(FOR HEADER ) *
&----
DATA:
*FOR POSTING DATE
G_BUDAT TYPE BUDAT, "Posting Date
*FOR USER NAME
G_USNAM TYPE USNAM, "USer Name
FOR Transaction/Event Type
G_VGART TYPE VGART, "Trans/EVent Type
*FOR Reference Document Number
G_XBLNR TYPE XBLNR1, "Refrence
*FOR Material
G_MATNR TYPE MATNR, "Material
*FOR Plant
G_WERKS TYPE WERKS_D, "Plant
&----
*& GLOBAL FIELDS DECLARATIONS(FOR ITEM ) *
&----
*FOR STORAGE LOCATION
G_LGORT TYPE LGORT_D, "Storage Location
*FOR BATCH
G_CHARG TYPE CHARG_D, "Batch Number
*FOR VENDOR NUMBER
G_LIFNR TYPE ELIFN, "Vendor Number
*FOR CUSTOMER NUMBER
G_KUNNR TYPE EKUNN, "Customer Number
*FOR Movement Type (Inventory Management)
G_BWART TYPE BWART, "Movement Type
*FOR Special Stock Indicator
G_SOBKZ TYPE SOBKZ. "Special Stock
&----
*& SELECTION SCREEN DECALRATION *
&----
*SELECTION SCREEN FOR item DATA
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:S_MATNR FOR G_MATNR, "Material
S_WERKS FOR G_WERKS, "Plant
S_LGORT FOR G_LGORT, "For Storage Location
S_CHARG FOR G_CHARG, "For Batch
S_LIFNR FOR G_LIFNR, "Vendor Number
S_KUNNR FOR G_KUNNR, "Customer Number
S_BWART FOR G_BWART, "Movement type
S_SOBKZ FOR G_SOBKZ. "Special Stock Indicator
SELECTION-SCREEN END OF BLOCK B1 .
*SELECTION SCREEN FOR HEADER DATA
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS:S_BUDAT FOR G_BUDAT, "Posting Date
S_USNAM FOR G_USNAM, "UserName
S_VGART FOR G_VGART, "Transaction/Event Type
S_XBLNR FOR G_XBLNR. "Refrence Document Number
SELECTION-SCREEN END OF BLOCK B2.
*SELECTION SCREEN FOR DISPLAY MODE.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003 .
PARAMETERS: ALV RADIOBUTTON GROUP G1 DEFAULT 'X',
NORMAL RADIOBUTTON GROUP G1 .
SELECTION-SCREEN END OF BLOCK B3 .
&----
*& INITIALIZAION *
&----
INITIALIZATION.
*Deleting Workarea contents
CLEAR:W_MKPF_MSEG,
W_MARA,
W_SER03,
W_MAKT,
W_T001W,
W_T156T,
W_OBJK,
W_HEADER,
W_ITEM.
*Deleting Internal Table contents
REFRESH:T_MKPF_MSEG,
T_MARA,
T_SER03,
T_MAKT,
T_T001W,
T_T156T,
T_OBJK,
T_HEADER,
T_ITEM.
&----
*& AT SELECTION-SCREEN *
*& FIELD VALIDATIONS FOR HEADER & ITEM SELECT-OPTIONS *
&----
AT SELECTION-SCREEN.
MATNR FIELD VLADTATION ROUTINE .
PERFORM SUB_VALID_MATNR.
WERKS FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_WERKS.
LGORT FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_LGORT.
CHARG FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_CHARG.
LIFNR FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_LIFNR.
KUNNR FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_KUNNR.
BWART FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_BWART.
SOBKZ FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_SOBKZ.
BUDAT FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_BUDAT.
USNAM FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_USNAM.
VGART FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_VGART.
XBLNR FIELD VLADTATION ROUTINE.
PERFORM SUB_VALID_XBLNR.
VALIDATION FOR NO INPUT IN ALL FIELDS.
PERFORM SUB_VALID_ALL.
&----
*& Form SUB_VALID_ALL
&----
Validattion of selection screen if no input
----
FORM SUB_VALID_ALL.
IF S_MATNR AND S_WERKS AND
S_LGORT AND S_CHARG AND
S_LIFNR AND S_KUNNR AND
S_BWART AND S_SOBKZ AND
S_BUDAT AND S_USNAM AND
S_VGART AND S_XBLNR
IS INITIAL.
MESSAGE E012.
ENDIF.
ENDFORM. "SUB_VALID_ALL
&----
*& Form SUB_VALID_MATNR
&----
Validation for MATNR
----
FORM SUB_VALID_MATNR.
DATA:V_MATNR TYPE MATNR.
SELECT SINGLE MATNR
FROM MSEG
INTO V_MATNR
WHERE MATNR IN S_MATNR.
IF SY-SUBRC <> 0.
MESSAGE E000.
ENDIF.
ENDFORM. "SUB_VALID_MATNR
&----
*& Form SUB_VALID_WERKS
&----
Validation for WERKS
----
FORM SUB_VALID_WERKS .
DATA : V_WERKS TYPE WERKS_D.
SELECT SINGLE
WERKS
FROM T001W
INTO V_WERKS
WHERE WERKS IN S_WERKS.
IF SY-SUBRC <> 0.
MESSAGE E001.
ENDIF.
ENDFORM. "SUB_VALID_WERKS
&----
*& Form SUB_VALID_LGORT
&----
Validation for LGORT
----
FORM SUB_VALID_LGORT .
DATA : V_LGORT TYPE LGORT_D.
SELECT SINGLE
LGORT
FROM T001L
INTO V_LGORT
WHERE LGORT IN S_LGORT.
IF SY-SUBRC <> 0.
MESSAGE E002.
ENDIF.
ENDFORM. "SUB_VALID_LGORT
&----
*& Form SUB_VALID_CHARG
&----
Validation for CHARG
----
FORM SUB_VALID_CHARG .
DATA : V_CHARG TYPE CHARG_D.
SELECT SINGLE
CHARG
FROM MCHA
INTO V_CHARG
WHERE CHARG IN S_CHARG.
IF SY-SUBRC <> 0.
MESSAGE E003.
ENDIF.
ENDFORM. "SUB_VALID_CHARG
&----
*& Form SUB_VALID_LIFNR
&----
Validation for LIFNR
----
FORM SUB_VALID_LIFNR .
DATA : V_LIFNR TYPE ELIFN.
SELECT SINGLE
LIFNR
FROM LFA1
INTO V_LIFNR
WHERE LIFNR IN S_LIFNR.
IF SY-SUBRC <> 0.
MESSAGE E004.
ENDIF.
ENDFORM. "SUB_VALID_LIFNR
&----
*& Form SUB_VALID_KUNNR
&----
Validation for KUNNR
----
FORM SUB_VALID_KUNNR .
DATA : V_KUNNR TYPE EKUNN.
SELECT SINGLE
KUNNR
FROM KNA1
INTO V_KUNNR
WHERE KUNNR IN S_KUNNR.
IF SY-SUBRC <> 0.
MESSAGE E005.
ENDIF.
ENDFORM. "SUB_VALID_KUNNR
&----
*& Form SUB_VALID_BWART
&----
Validation for BWART
----
FORM SUB_VALID_BWART .
DATA : V_BWART TYPE BWART.
SELECT SINGLE
BWART
FROM T156
INTO V_BWART
WHERE BWART IN S_BWART.
IF SY-SUBRC <> 0.
MESSAGE E006.
ENDIF.
ENDFORM. "SUB_VALID_BWART
&----
*& Form SUB_VALID_SOBKZ
&----
Validation for SOBKZ
----
FORM SUB_VALID_SOBKZ .
DATA : V_SOBKZ TYPE SOBKZ.
SELECT SINGLE
SOBKZ
FROM T148
INTO V_SOBKZ
WHERE SOBKZ IN S_SOBKZ.
IF SY-SUBRC <> 0.
MESSAGE E007.
ENDIF.
ENDFORM. "SUB_VALID_SOBKZ
&----
*& Form SUB_VALID_BUDAT
&----
Validation for BUDAT
----
FORM SUB_VALID_BUDAT .
DATA : V_BUDAT TYPE BUDAT.
SELECT SINGLE
BUDAT
FROM MKPF
INTO V_BUDAT
WHERE BUDAT IN S_BUDAT.
IF SY-SUBRC <> 0.
MESSAGE E008.
ENDIF.
ENDFORM. "SUB_VALID_BUDAT
&----
*& Form SUB_VALID_USNAM
&----
Validation for USNAM
----
FORM SUB_VALID_USNAM .
DATA : V_USNAM TYPE USNAM.
SELECT SINGLE
USNAM
FROM MKPF
INTO V_USNAM
WHERE USNAM IN S_USNAM.
IF SY-SUBRC <> 0.
MESSAGE E009.
ENDIF.
ENDFORM. "SUB_VALID_USNAM
&----
*& Form SUB_VALID_VGART
&----
Validation for VGART
----
FORM SUB_VALID_VGART .
DATA : V_VGART TYPE VGART.
SELECT SINGLE
VGART
FROM T158V
INTO V_VGART
WHERE VGART IN S_VGART.
IF SY-SUBRC <> 0.
MESSAGE E010.
ENDIF.
ENDFORM. "SUB_VALID_VGART
&----
*& Form SUB_VALID_XBLNR
&----
Validation for XBLNR
----
FORM SUB_VALID_XBLNR .
DATA : V_XBLNR TYPE XBLNR1.
SELECT SINGLE
XBLNR
FROM MKPF
INTO V_XBLNR
WHERE XBLNR IN S_XBLNR.
IF SY-SUBRC <> 0.
MESSAGE E011.
ENDIF.
ENDFORM. "SUB_VALID_XBLNR
&----
*& START-OF-SELECTION *
*& *
&----
START-OF-SELECTION.
*DATA RETRIEVAL FROM MSEG AND MKPF.
PERFORM SUB_GET_MKPF_MSEG.
*DATA RETRIEVAL FROM MARA .
PERFORM SUB_GET_MARA.
*DATA RETRIEVAL FROM SER03 .
PERFORM SUB_GET_SER03.
*DATA RETRIEVAL FROM MAKT .
PERFORM SUB_GET_MAKT.
*DATA RETRIEVAL FROM t001w .
PERFORM SUB_GET_T001W.
*DATA RETRIEVAL FROM T156T .
PERFORM SUB_GET_T156T.
*DATA RETRIEVAL FROM OBJK .
PERFORM SUB_GET_OBJK.
*EXTRACTING THE HEADER AND ITEM .
*EXTRACTING THE HEADER .
PERFORM SUB_GET_HEADER.
*EXTRACTING THE ITEM .
PERFORM SUB_GET_ITEM.
*DISPLAY MODES (alv & normal )
IF ALV = 'X'.
*ALV MODE DISPLAY
PERFORM SUB_HIER_DISPLAY.
ELSE.
*NORMAL MODE DISPLAY
PERFORM SUB_NORM_DISP.
ENDIF.
&----
*& Form SUB_GET_MKPF_MSEG
&----
EXTRACTS DATA FROM MSEG & MKPF TABLE INTO T_MKPF_MSEG.
----
FORM SUB_GET_MKPF_MSEG.
SELECT MKPF~MBLNR "Number of Material Document
MKPF~MJAHR "Material Document YeaR
MKPF~VGART "Transaction/Event Type
MKPF~BUDAT "Posting Date in the Document
MKPF~USNAM "User name
MKPF~XBLNR "Reference Document Number
MSEG~ZEILE "Item in Material Document
MSEG~BWART "Movement Type (Inventory Management)
MSEG~MATNR "Material
MSEG~WERKS "Plant
MSEG~LGORT "STORAGE LOCATION
MSEG~CHARG "Batch Number
MSEG~LIFNR "Vendor Number
MSEG~KUNNR "Customer Number
MSEG~SOBKZ "Special Stock Indicator
MSEG~ERFMG "Quantity in unit of entry
MSEG~ERFME "Unit of entry
FROM MKPF INNER JOIN MSEG
ON MKPFMBLNR = MSEGMBLNR AND
MKPFMJAHR = MSEGMJAHR
INTO TABLE T_MKPF_MSEG
WHERE MSEG~MATNR IN S_MATNR AND
MSEG~WERKS IN S_WERKS AND
MSEG~LGORT IN S_LGORT AND
MSEG~CHARG IN S_CHARG AND
MSEG~LIFNR IN S_LIFNR AND
MSEG~KUNNR IN S_KUNNR AND
MSEG~BWART IN S_BWART AND
MSEG~SOBKZ IN S_SOBKZ AND
MKPF~BUDAT IN S_BUDAT AND
MKPF~USNAM IN S_USNAM AND
MKPF~VGART IN S_VGART AND
MKPF~XBLNR IN S_XBLNR.
ENDFORM. "SUB_GET_MKPF_MSEG
&----
*& Form SUB_GET_MARA
&----
Extracts data from MARA into t_mara
----
FORM SUB_GET_MARA.
IF T_MKPF_MSEG IS NOT INITIAL.
SELECT MATNR "Material
BISMT "Old material number
FROM MARA
INTO TABLE T_MARA
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE MATNR = T_MKPF_MSEG-MATNR.
ENDIF.
ENDFORM. "SUB_GET_MARA
&----
*& Form SUB_GET_SER03
&----
Extracts data from SER03 into t_ser03.
----
FORM SUB_GET_SER03.
IF T_MKPF_MSEG IS NOT INITIAL.
SELECT OBKNR "Object list number
MBLNR "Number of Material Document
MJAHR "Material Document Year
FROM SER03
INTO TABLE T_SER03
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE MBLNR = T_MKPF_MSEG-MBLNR AND
MJAHR = T_MKPF_MSEG-MJAHR.
ENDIF.
ENDFORM. "SUB_GET_SER03
&----
*& Form SUB_GET_MAKT
&----
Extracts data from MAKT into t_makt
----
FORM SUB_GET_MAKT.
IF T_MKPF_MSEG IS NOT INITIAL.
SELECT MATNR "Material
MAKTX "Material Description
FROM MAKT
INTO TABLE T_MAKT
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE MATNR = T_MKPF_MSEG-MATNR.
ENDIF.
ENDFORM. "SUB_GET_MAKT
&----
*& Form SUB_GET_T001W
&----
Extracts data from MSEG into t_mseg.
----
FORM SUB_GET_T001W.
IF T_MKPF_MSEG IS NOT INITIAL.
SELECT WERKS "Plant
NAME1 "Plant Name
FROM T001W
INTO TABLE T_T001W
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE WERKS = T_MKPF_MSEG-WERKS.
ENDIF.
ENDFORM. "SUB_GET_T001W
&----
*& Form SUB_GET_T156T
&----
Extracts Data from T156T into t_t156t
----
FORM SUB_GET_T156T.
IF T_MKPF_MSEG IS NOT INITIAL.
SELECT BWART "Movement Type (Inventory Management)
BTEXT "Movement Type Text (Inventory Management)
FROM T156T
INTO TABLE T_T156T
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE BWART = T_MKPF_MSEG-BWART.
ENDIF.
ENDFORM. "SUB_GET_T156T
&----
*& Form SUB_GET_OBJK
&----
Extracts data from OBJK into t_objk
----
FORM SUB_GET_OBJK.
IF T_SER03 IS NOT INITIAL.
SELECT OBKNR "Object list number
SERNR "Serial number
FROM OBJK
INTO TABLE T_OBJK
FOR ALL ENTRIES IN T_SER03
WHERE OBKNR = T_SER03-OBKNR.
ENDIF.
ENDFORM. "SUB_GET_OBJK
&----
*& Form SUB_GET_HEADER
&----
GET HEADER DATA INTO T_HEADER
----
FORM SUB_GET_HEADER.
LOOP AT T_MKPF_MSEG INTO W_MKPF_MSEG.
W_HEADER-MATNR = W_MKPF_MSEG-MATNR. "MATERIAL
W_HEADER-MBLNR = W_MKPF_MSEG-MBLNR. "Material Document Number
CLEAR W_MARA.
READ TABLE T_MARA INTO W_MARA WITH KEY MATNR = W_MKPF_MSEG-MATNR.
IF SY-SUBRC = 0.
W_HEADER-BISMT = W_MARA-BISMT. "Old Material Number
ENDIF.
CLEAR W_MAKT.
READ TABLE T_MAKT INTO W_MAKT WITH KEY MATNR = W_MKPF_MSEG-MATNR.
IF SY-SUBRC = 0.
W_HEADER-MAKTX = W_MAKT-MAKTX. "Material Description
ENDIF.
CLEAR W_T001W.
READ TABLE T_T001W INTO W_T001W WITH KEY WERKS = W_MKPF_MSEG-WERKS.
IF SY-SUBRC = 0.
W_HEADER-WERKS = W_T001W-WERKS. "Plant
W_HEADER-NAME1 = W_T001W-NAME1. "Plant Name
ENDIF.
APPEND W_HEADER TO T_HEADER.
CLEAR W_HEADER.
ENDLOOP.
*SORTING INTRNAL T_HEADER TABLE BASED ON MATNR
SORT T_HEADER BY MATNR.
*STATEMENT TO DELETE DUPLICATE ENTRIES FROM T_HEADER
DELETE ADJACENT DUPLICATES FROM T_HEADER COMPARING MATNR.
ENDFORM. "SUB_GET_HEADER
&----
*& Form SUB_GET_ITEM
&----
GET ITEM DATA INTO T_ITEM
----
FORM SUB_GET_ITEM.
LOOP AT T_MKPF_MSEG INTO W_MKPF_MSEG.
W_ITEM-LGORT = W_MKPF_MSEG-LGORT. "Storage Location
W_ITEM-BWART = W_MKPF_MSEG-BWART. "Movement Type
W_ITEM-MBLNR = W_MKPF_MSEG-MBLNR. "Material Document
W_ITEM-CHARG = W_MKPF_MSEG-CHARG. "Batch Number
W_ITEM-ERFMG = W_MKPF_MSEG-ERFMG. "Quantity in unit of entry
W_ITEM-ZEILE = W_MKPF_MSEG-ZEILE. "Item in Material Document
W_ITEM-BUDAT = W_MKPF_MSEG-BUDAT. "Posting Date in the Document
W_ITEM-ERFME = W_MKPF_MSEG-ERFME. "Unit of Entry
W_ITEM-MATNR = W_MKPF_MSEG-MATNR. "Material
W_ITEM-WERKS = W_MKPF_MSEG-WERKS. "Plant
CLEAR W_SER03.
READ TABLE T_SER03 INTO W_SER03 WITH KEY MBLNR = W_MKPF_MSEG-MBLNR.
IF SY-SUBRC = 0.
CLEAR W_OBJK.
READ TABLE T_OBJK INTO W_OBJK WITH KEY OBKNR = W_SER03-OBKNR.
IF SY-SUBRC = 0.
W_ITEM-SERNR = W_OBJK-SERNR. "Serial Number
ENDIF.
ENDIF.
CLEAR T_T156T.
READ TABLE T_T156T INTO W_T156T WITH KEY BWART = W_MKPF_MSEG-BWART.
IF SY-SUBRC = 0.
W_ITEM-BTEXT = W_T156T-BTEXT. "Movement Type Text (Inventory Management)
ENDIF.
CLEAR W_MAKT.
APPEND W_ITEM TO T_ITEM.
CLEAR W_ITEM.
ENDLOOP.
ENDFORM. "SUB_GET_ITEM
&----
*& Form SUB_HIER_DISPLAY
&----
text
----
FORM SUB_HIER_DISPLAY .
Creating fieldcatalog for header data
W_FIELDCAT-COL_POS = 1.
W_FIELDCAT-FIELDNAME = 'MATNR'.
W_FIELDCAT-SELTEXT_M = 'material'.
W_FIELDCAT-TABNAME = 'T_HEADER'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 2.
W_FIELDCAT-FIELDNAME = 'BISMT'.
W_FIELDCAT-SELTEXT_M = 'old matno'.
W_FIELDCAT-TABNAME = 'T_HEADER'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 3.
W_FIELDCAT-FIELDNAME = 'MAKTX'.
W_FIELDCAT-SELTEXT_M = 'mat.desc'.
W_FIELDCAT-TABNAME = 'T_HEADER'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 4.
W_FIELDCAT-FIELDNAME = 'WERKS'.
W_FIELDCAT-SELTEXT_M = 'plant'.
W_FIELDCAT-TABNAME = 'T_HEADER'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 5.
W_FIELDCAT-FIELDNAME = 'NAME1'.
W_FIELDCAT-SELTEXT_M = 'name1'.
W_FIELDCAT-TABNAME = 'T_HEADER'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
Creating fieldcatlog for item data
W_FIELDCAT-COL_POS = 1.
W_FIELDCAT-FIELDNAME = 'LGORT'.
W_FIELDCAT-SELTEXT_M = 'sto loc'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 2.
W_FIELDCAT-FIELDNAME = 'BWART'.
W_FIELDCAT-SELTEXT_M = 'mov typ'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 3.
W_FIELDCAT-FIELDNAME = 'MBLNR'.
W_FIELDCAT-SELTEXT_M = 'mat docu'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 4.
W_FIELDCAT-FIELDNAME = 'ERFMG'.
W_FIELDCAT-SELTEXT_M = 'qualunit'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 5.
W_FIELDCAT-FIELDNAME = 'CHARG'.
W_FIELDCAT-SELTEXT_M = 'batch no'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 6.
W_FIELDCAT-FIELDNAME = 'SERNR'.
W_FIELDCAT-SELTEXT_M = 'serno'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 7.
W_FIELDCAT-FIELDNAME = 'ZEILE'.
W_FIELDCAT-SELTEXT_M = 'item'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 8.
W_FIELDCAT-FIELDNAME = 'BUDAT'.
W_FIELDCAT-SELTEXT_M = 'post dat'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 9.
W_FIELDCAT-FIELDNAME = 'ERFME'.
W_FIELDCAT-SELTEXT_M = 'uni of mes'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = 10.
W_FIELDCAT-FIELDNAME = 'BTEXT'.
W_FIELDCAT-SELTEXT_M = 'trans desc'.
W_FIELDCAT-TABNAME = 'T_ITEM'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
Linking header and item table
W_KEYINFO-HEADER01 = 'MATNR'.
W_KEYINFO-ITEM01 = 'MATNR'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT =
IT_FIELDCAT = T_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
I_TABNAME_HEADER = 'T_HEADER'
I_TABNAME_ITEM = 'T_ITEM'
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
IS_KEYINFO = W_KEYINFO
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB_HEADER = T_HEADER
T_OUTTAB_ITEM = T_ITEM
EXCEPTIONS
PROGRAM_ERROR = 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.
ENDIF.
ENDFORM. " sub_disp_output
&----
*& Form SUB_NORM_DISP
&----
NORMAL DIAPLAY OF REPORT
----
FORM SUB_NORM_DISP.
WRITE:/ ' INVENTORY REPORT'.
ULINE.
WRITE:/ SY-VLINE,'MATERIAL'.
WRITE: AT 19 SY-VLINE.
WRITE: AT 21 'OLD MATNO'.
WRITE: AT 39 SY-VLINE.
WRITE: AT 41 'MAT DESC'.
WRITE: AT 59 SY-VLINE.
WRITE: AT 61 'PLANT'.
WRITE: AT 69 SY-VLINE.
WRITE: AT 71 'NAME1'.
WRITE: AT 132 SY-VLINE.
ULINE.
WRITE:/ SY-VLINE,'STO LOC'.
WRITE: AT 11 SY-VLINE.
WRITE: AT 13 'MOV TYP'.
WRITE: AT 22 SY-VLINE.
WRITE: AT 23 'MAT DOCU'.
WRITE: AT 32 SY-VLINE.
WRITE: AT 33 'QUAL UNI'.
WRITE: AT 39 SY-VLINE.
WRITE: AT 40 'BATCH NO'.
WRITE: AT 49 SY-VLINE.
WRITE: AT 50 'SERI NO'.
WRITE: AT 57 SY-VLINE.
WRITE: AT 58 'ITEM'.
WRITE: AT 63 SY-VLINE.
WRITE: AT 64 'PO DAT'.
WRITE: AT 69 SY-VLINE.
WRITE: AT 70 'QUAL UNI'.
WRITE: AT 79 SY-VLINE.
WRITE: AT 80 'UNI MES'.
WRITE: AT 87 SY-VLINE.
WRITE: AT 88 'TRANS DESC'.
WRITE: AT 132 SY-VLINE.
ULINE.
LOOP AT T_HEADER INTO W_HEADER.
ULINE.
WRITE:/ SY-VLINE,W_HEADER-MATNR.
WRITE: AT 25 SY-VLINE.
WRITE: AT 27 W_HEADER-BISMT.
WRITE: AT 50 SY-VLINE.
WRITE: AT 52 W_HEADER-MAKTX.
WRITE: AT 90 SY-VLINE.
WRITE: AT 91 W_HEADER-WERKS.
WRITE: AT 110 SY-VLINE.
WRITE: AT 111 W_HEADER-NAME1.
WRITE: AT 132 SY-VLINE.
ULINE.
LOOP AT T_ITEM INTO W_ITEM
WHERE MATNR = W_HEADER-MATNR.
WRITE:/ SY-VLINE,W_ITEM-MATNR.
WRITE: AT 25 W_ITEM-LGORT,
W_ITEM-BWART,
W_ITEM-MBLNR,
W_ITEM-ERFMG,
W_ITEM-CHARG,
W_ITEM-SERNR,
W_ITEM-ZEILE,
W_ITEM-BUDAT.
WRITE: AT 132 SY-VLINE.
ENDLOOP.
ULINE.
ENDLOOP.
ENDFORM. "SUB_NORM_DISP
‎2008 Jun 03 6:03 AM
Hi,
As u r using license type in your parameter and this is from vbak table. So you have to validate this value against the existing values of vbak-ZZLTYPE field.
REPORT Yxyz.
PARAMETERS : P_ZZLTYP LIKE VBAK-ZZLTYPE DEFAULT 'SVCS' OBLIGATORY.
AT SELECTION-SCREEN.
SELECT SINGLE ZZLTYPE
FROM VBAK
INTO V_lt
WHERE ZZLTYPE = P_ZZLTYP .
IF SY-SUBRC NE 0.
MESSAGE E000 WITH 'P_ZZLTYP IS NOT EXIST'.
ENDIF.