Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

validation..

Former Member
0 Likes
779

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

5 REPLIES 5
Read only

Former Member
0 Likes
751

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.

Read only

0 Likes
751

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

Read only

Former Member
0 Likes
751

Hi,

Put the above code in AT SELECTION-SCREEN ON <FLD> event.........

Reward all helpful answers.

Thanks

Read only

Former Member
0 Likes
751

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

Read only

Former Member
0 Likes
751

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.