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

report

Former Member
0 Likes
309

hi all,

give me one ex. any one under pp module phase wise release report .

thanks.

1 REPLY 1
Read only

Former Member
0 Likes
273

hi check this..

REPORT z_pp_rep_000161 MESSAGE-ID zpp.

----


  • T Y P E S D E C L A R A T I O N *

----


TYPE-POOLS :slis.

TYPE-POOLS:abap. "Type Pool Declaration

  • Structure FOR AFKO

TYPES: BEGIN OF t_afko,

plnbez TYPE afko-plnbez,

aufnr TYPE aufnr, "Article

gamng TYPE gamng, "Total order quantity

END OF t_afko.

*Structure for Mara

TYPES: BEGIN OF t_mara,

matnr TYPE matnr, "Material Number

mtart TYPE mtart, "Size/fit

pstat TYPE pstat_d, "Variant

END OF t_mara.

*Structure for Final

TYPES: BEGIN OF t_final,

aufnr TYPE aufnr, "Production Order

gamng TYPE gamng, "Move Number

mtart TYPE mtart, "Size/fit

pstat TYPE pstat_d, "Variant

quantity TYPE meng8, "Quantity

barcode(40) TYPE c,

END OF t_final.

----


  • INTERNAL TABLE,WORK AREA and variable DECLARATION *

----


*Internal Table Declaration

data: gi_final TYPE STANDARD TABLE OF t_final, "Final Internal Table

gi_mara TYPE STANDARD TABLE OF t_mara, "Internal Table for MARA

gi_afko TYPE STANDARD TABLE OF t_afko, "Internal Table for AFKO

gi_fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv. "Internal Table for fieldcat ALV

  • WORK Area Declaration.

DATA: gwa_final TYPE t_final, "Work Area for FINAL

gwa_mara TYPE t_mara, "Work Area for MARA

gwa_afko TYPE t_afko, "Work Area for AFKO

gwa_fieldcat TYPE slis_fieldcat_alv, "Work Area For Fieldcat Structure

wa_variant TYPE disvariant,

wa_variant1 TYPE disvariant.

  • Local variable Declaration

DATA: v_aufnr TYPE caufvd-aufnr, "Variable for production order

v_txt04 TYPE tj02t-txt04, "Variable for production order Status

v_plnbez TYPE afko-plnbez, "variable for Article

lv_aufnr TYPE aufnr, "Local Variable for production order

lv_txt04 TYPE j_txt04, "Local Variable for production order Status

lv_plnbez TYPE matnr. "Local Variable for Article

----


  • CONSTANT DECLARATION *

----


CONSTANTS:c_x(1) TYPE c VALUE'X',

lc_a(1) TYPE c VALUE 'A',

c_p2(2) TYPE c VALUE 'P2',

c_dir TYPE string VALUE 'C:\',

c_ext TYPE string VALUE 'XLS'.

----


  • S E L E C TI O N S C R E E N *

----


*First Block

SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_po FOR v_aufnr, "Production Order.

s_pos FOR v_txt04, "Production Order Status.

s_art FOR v_plnbez . "Article

SELECTION-SCREEN: END OF BLOCK blk1.

*Second Block

SELECTION-SCREEN : BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.

PARAMETER : rd1 RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND change, "Radio Button For Display

rd2 RADIOBUTTON GROUP g1. "Radio Button for generate

SELECTION-SCREEN:END OF BLOCK blk2.

*Third Block

SELECTION-SCREEN : BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.

PARAMETER:p_var TYPE disvariant-variant MODIF ID p2. "Variant Part

SELECTION-SCREEN:END OF BLOCK blk3.

----


  • VARIANT PART *

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.

*Creating Variant for ALV

PERFORM alv_variant.

----


  • SELECTION SCREEN VALIDATION *

----


AT SELECTION-SCREEN.

*Validating Selection Screen Entries

PERFORM validate_entries.

AT SELECTION-SCREEN OUTPUT.

*Perform To Hide the Selection Screen Variant block after clicking generate button

PERFORM hide_block.

----


  • Start Of Selection *

----


*Perform for populating Internal table

START-OF-SELECTION.

PERFORM data_fetch.

----


  • End Of Selection *

----


END-OF-SELECTION.

  • TO Check Which radio button is pressed

IF rd1 = c_x.

PERFORM build_catalog. "Build Catalog

PERFORM alv_display. "Alv display

ELSE.

*For dynamic Internal Table

  • perform dynamic_table.

*For download of file

PERFORM sub_export_error. "File transfer

ENDIF.

----


  • S C R E E N D E S I G N *

----


SET TITLEBAR 'TITLE'. "Burberry Linen ticket Output

----


  • Form alv_variant

----


  • To Create variant and display the ALV according to it

----


FORM alv_variant .

wa_variant-username = sy-uname.

wa_variant-report = sy-repid.

*Constants

CONSTANTS: lv_a(01) TYPE c VALUE 'A'.

*For variant Part

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

is_variant = wa_variant

i_save = lv_a

IMPORTING

es_variant = wa_variant1

EXCEPTIONS

not_found = 1

program_error = 2

OTHERS = 3.

IF sy-subrc 0.

p_var = wa_variant-variant.

ELSE.

p_var = wa_variant1-variant.

ENDIF.

ENDFORM. " alv_variant

----


  • Form validate_entries

----


  • Validating The selection Screen input

----


FORM validate_entries .

*Validation For Production Order

IF s_po[] IS NOT INITIAL.

SELECT aufnr UP TO 1 ROWS

FROM aufk

INTO lv_aufnr

WHERE aufnr = s_po-low.

ENDSELECT.

IF lv_aufnr IS INITIAL.

MESSAGE e001. "Production order does not exist

ENDIF.

ENDIF.

*Validation For Production order Status

IF s_pos[] IS NOT INITIAL.

SELECT txt04 UP TO 1 ROWS

FROM tj02t

INTO lv_txt04

WHERE txt04 = s_pos-low.

ENDSELECT.

IF lv_txt04 IS INITIAL.

MESSAGE e002. "Production Order status not Found

ENDIF.

ENDIF.

*Validation for article Number

IF s_art[] IS NOT INITIAL.

SELECT matnr UP TO 1 ROWS

FROM mara

INTO lv_plnbez

WHERE matnr IN s_art.

ENDSELECT.

IF lv_plnbez IS INITIAL.

MESSAGE e003. "Article not found

ENDIF.

ENDIF.

ENDFORM. "Validate_entries

----


  • Form hide_block

----


*Form To Hide the Selection Screen block after clicking generate button

----


  • --> p1 text

  • <-- p2 text

----


FORM hide_block .

IF rd2 EQ c_x.

LOOP AT SCREEN.

IF screen-group1 NE c_p2.

screen-invisible = 0.

screen-active = 1.

ELSE.

screen-invisible = 1.

screen-active = 0.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

ENDFORM. " hide_block

----


  • Form data_fetch

----


  • Populating The Internal Table

----


FORM data_fetch .

*Fetching data from MARA and populating gi_mara

IF s_art[] IS INITIAL.

MESSAGE i008 DISPLAY LIKE 'E'.

LEAVE LIST-PROCESSING.

ELSE.

SELECT matnr "Material Number

mtart "Size/Fit

pstat "Variant

FROM mara

INTO TABLE gi_mara

WHERE matnr IN s_art.

ENDIF.

*Fetching DATA from AFKO and Populating gi_afko

SELECT plnbez "Article

aufnr "Production order

gamng "Move Number

FROM afko

INTO TABLE gi_afko

WHERE plnbez IN s_art AND aufnr IN s_po.

*Looping at Internal Table of afko

IF sy-subrc 0.

MESSAGE i007 .

LEAVE LIST-PROCESSING.

ELSE.

LOOP AT gi_afko INTO gwa_afko.

READ TABLE gi_mara INTO gwa_mara WITH KEY matnr = gwa_afko-plnbez. "Read internal table for mara for each record in internal table of afko

  • Checking for record in gi_mara

IF sy-subrc = 0.

MOVE gwa_mara-mtart TO gwa_final-mtart.

MOVE gwa_mara-pstat TO gwa_final-pstat.

MOVE gwa_afko-aufnr TO gwa_final-aufnr.

MOVE gwa_afko-gamng TO gwa_final-gamng.

APPEND gwa_final TO gi_final.

CLEAR gwa_final . "Clear Work Area for final

ENDIF.

CLEAR gwa_afko. "Clear Work Area for afko

ENDLOOP.

*Loop ing At final internal table

LOOP AT gi_final INTO gwa_final.

gwa_final-quantity = '1'.

MODIFY gi_final FROM gwa_final INDEX sy-tabix TRANSPORTING quantity.

*Concatenate two field AUFNR and PSTAT to generate barcode

CONCATENATE gwa_final-aufnr gwa_final-pstat INTO gwa_final-barcode .

MODIFY gi_final FROM gwa_final INDEX sy-tabix TRANSPORTING barcode.

CLEAR gwa_final.

ENDLOOP.

ENDIF.

ENDFORM. " data_fetch

----


  • Form sub_export_error

----


  • Form for data tranfer to excel

----


FORM sub_export_error .

DATA: fullpath TYPE string, "Full path of the file

filename TYPE string, "Name of the excel file

path TYPE string, "Path where the file will be stored

user_action TYPE i , "To catch User Action

l_title TYPE string. "To display title

  • encoding TYPE abap_encoding.

l_title = 'Save File'(006).

  • Open the save dialog

CALL METHOD cl_gui_frontend_services=>file_save_dialog

EXPORTING

window_title = l_title

default_extension = c_ext

initial_directory = c_dir

CHANGING

filename = filename

path = path

fullpath = fullpath

user_action = user_action

EXCEPTIONS

cntl_error = 1

error_no_gui = 2

not_supported_by_gui = 3

OTHERS = 4.

IF sy-subrc 0.

EXIT.

ENDIF.

    • Check which button is pressed

IF user_action cl_gui_frontend_services=>action_ok.

MESSAGE i006. "Action Cancelled By User

EXIT.

ENDIF.

  • Download error data collected from the internal table

CALL METHOD cl_gui_frontend_services=>gui_download

EXPORTING

filename = fullpath

filetype = 'ASC'

write_field_separator = '#'

CHANGING

data_tab = gi_final "dy_table

EXCEPTIONS

file_write_error = 1

no_batch = 2

gui_refuse_filetransfer = 3

invalid_type = 4

no_authority = 5

unknown_error = 6

header_not_allowed = 7

separator_not_allowed = 8

filesize_not_allowed = 9

header_too_long = 10

dp_error_create = 11

dp_error_send = 12

dp_error_write = 13

unknown_dp_error = 14

access_denied = 15

dp_out_of_memory = 16

disk_full = 17

dp_timeout = 18

file_not_found = 19

dataprovider_exception = 20

control_flush_error = 21

not_supported_by_gui = 22

error_no_gui = 23

OTHERS = 24.

  • If selection is successful

IF sy-subrc EQ 0.

MESSAGE s004 . " File created successfully

ELSE.

MESSAGE i005 . " File is not created successfully

ENDIF.

ENDFORM. " sub_export_error

&----


*& Form dynamic_table

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM dynamic_table .

FIELD-SYMBOLS:

<dyn_table> TYPE STANDARD TABLE.

TYPES: BEGIN OF lt_tarfc,

intlen TYPE i,

decimals TYPE i,

datatype TYPE abap_typekind,

inttype TYPE abap_typekind,

fieldname TYPE abap_compname,

END OF lt_tarfc.

DATA:

lt_fdetails TYPE abap_compdescr_tab,

lt_tarfc TYPE lvc_t_fcat,

wa_fdetails TYPE abap_compdescr,

wa_tarfc TYPE lvc_s_fcat,

  • li_tarfc type standard table of lt_tarfc,

wa_dd04 TYPE dd04v,

dy_table TYPE REF TO data,

lp_ref_table_des TYPE REF TO cl_abap_structdescr.

DATA: fullpath TYPE string, "Full path of the file

filename TYPE string, "Name of the excel file

path TYPE string, "Path where the file will be stored

user_action TYPE i , "To catch User Action

l_title TYPE string. "To display title

  • encoding TYPE abap_encoding.

l_title = 'Save File'(006).

    • Get the structure of the table.

lp_ref_table_des ?=

cl_abap_typedescr=>describe_by_name('MARA').

lt_fdetails[] = lp_ref_table_des->components[].

  • Making internal table compitable for Function module

LOOP AT lt_fdetails INTO wa_fdetails.

CLEAR wa_tarfc.

wa_tarfc-fieldname = wa_fdetails-name .

wa_tarfc-datatype = wa_fdetails-type_kind.

wa_tarfc-inttype = wa_fdetails-type_kind.

wa_tarfc-intlen = wa_fdetails-length.

wa_tarfc-decimals = wa_fdetails-decimals.

APPEND wa_tarfc TO lt_tarfc.

ENDLOOP.

  • Create dynamic internal table and assign to FS

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

it_fieldcatalog = lt_tarfc

IMPORTING

ep_table = dy_table.

  • Open the save dialog

CALL METHOD cl_gui_frontend_services=>file_save_dialog

EXPORTING

window_title = l_title

default_extension = c_ext

initial_directory = c_dir

CHANGING

filename = filename

path = path

fullpath = fullpath

user_action = user_action

EXCEPTIONS

cntl_error = 1

error_no_gui = 2

not_supported_by_gui = 3

OTHERS = 4.

IF sy-subrc 0.

EXIT.

ENDIF.

    • Check which button is pressed

IF user_action cl_gui_frontend_services=>action_ok.

MESSAGE i006. "Action Cancelled By User

EXIT.

ENDIF.

  • <dyn_table> = dy_table.

    • Download error data collected from the internal table

  • CALL METHOD cl_gui_frontend_services=>gui_download

  • EXPORTING

  • filename = fullpath

  • filetype = 'ASC'

  • write_field_separator = '#'

  • CHANGING

  • data_tab = dy_table

  • EXCEPTIONS

  • file_write_error = 1

  • no_batch = 2

  • gui_refuse_filetransfer = 3

  • invalid_type = 4

  • no_authority = 5

  • unknown_error = 6

  • header_not_allowed = 7

  • separator_not_allowed = 8

  • filesize_not_allowed = 9

  • header_too_long = 10

  • dp_error_create = 11

  • dp_error_send = 12

  • dp_error_write = 13

  • unknown_dp_error = 14

  • access_denied = 15

  • dp_out_of_memory = 16

  • disk_full = 17

  • dp_timeout = 18

  • file_not_found = 19

  • dataprovider_exception = 20

  • control_flush_error = 21

  • not_supported_by_gui = 22

  • error_no_gui = 23

  • OTHERS = 24.

*

    • If selection is successful

  • IF sy-subrc EQ 0.

  • MESSAGE s004 . " File created successfully

  • ELSE.

  • MESSAGE i005 . " File is not created successfully

  • ENDIF.

ENDFORM. " dynamic_table

----


  • Form alv_display *

----


  • Form for Alv_display *

----


FORM alv_display .

DATA : lwa_layout TYPE slis_layout_alv. " optimize column width

  • Optimize the column width so that all contents are displayed

lwa_layout-colwidth_optimize = c_x.

  • display variant

wa_variant-report = sy-repid.

IF NOT p_var IS INITIAL.

wa_variant-variant = p_var.

ENDIF.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_pf_status_set = 'PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

is_layout = lwa_layout

it_fieldcat = gi_fieldcat

is_variant = wa_variant

i_default = c_x

i_save = lc_a

TABLES

t_outtab = gi_final

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc 0.

ENDIF.

ENDFORM. " alv_display

************************************************************************

  • PF_STATUS FORM *

************************************************************************

FORM pf_status "#EC *

USING p_extab TYPE slis_t_extab.

SET PF-STATUS 'STAT1' EXCLUDING p_extab.

ENDFORM. "PF_STATUS

----


  • Form user_command

----


  • Form For user Command

----


  • -->R_UCOMM Input parameter

  • -->RS_SELFIELD Input parameter

----


FORM user_command USING p_ucomm TYPE sy-ucomm

p_selfld TYPE slis_selfield. "#EC *

CASE p_ucomm.

WHEN 'GENERATE'.

perform dynamic_table.

PERFORM sub_export_error.

ENDCASE.

ENDFORM. "USER_COMMAND

----


  • Form build_catalog

----


  • For bulding field Catalog

----


FORM build_catalog .

CONSTANTS:lc_aufnr(5) TYPE c VALUE 'AUFNR',

lc_table(8) TYPE c VALUE 'gi_final',

lc_color(4) TYPE c VALUE 'C210',

lc_gamng(5) TYPE c VALUE 'GAMNG',

lc_mtart(5) TYPE c VALUE 'MTART',

lc_pstat(5) TYPE c VALUE 'PSTAT',

"lc_pstat_head(8) TYPE c VALUE 'Variant',

lc_quantity(8) TYPE c VALUE 'QUANTITY',

lc_barcode(7) TYPE c VALUE 'BARCODE'.

gwa_fieldcat-fieldname = lc_aufnr.

gwa_fieldcat-seltext_l = text-013."lc_aufnr_head.

gwa_fieldcat-tabname = lc_table.

gwa_fieldcat-emphasize = lc_color.

APPEND gwa_fieldcat TO gi_fieldcat.

CLEAR gwa_fieldcat.

gwa_fieldcat-fieldname = lc_gamng.

gwa_fieldcat-seltext_l = text-015."lc_gamng_head.

gwa_fieldcat-tabname = lc_table.

gwa_fieldcat-emphasize = lc_color.

APPEND gwa_fieldcat TO gi_fieldcat.

CLEAR gwa_fieldcat.

gwa_fieldcat-fieldname = lc_mtart.

gwa_fieldcat-seltext_l = text-005."lc_mtart_head.

gwa_fieldcat-tabname = lc_table.

gwa_fieldcat-emphasize = lc_color.

APPEND gwa_fieldcat TO gi_fieldcat.

CLEAR gwa_fieldcat.

gwa_fieldcat-fieldname = lc_pstat.

gwa_fieldcat-seltext_l = text-009."lc_pstat_head.

gwa_fieldcat-tabname = lc_table.

gwa_fieldcat-emphasize = lc_color.

APPEND gwa_fieldcat TO gi_fieldcat.

CLEAR gwa_fieldcat.

gwa_fieldcat-fieldname = lc_quantity.

gwa_fieldcat-seltext_l = text-011."lc_quantity_head.

gwa_fieldcat-tabname = lc_table.

gwa_fieldcat-emphasize = lc_color.

APPEND gwa_fieldcat TO gi_fieldcat.

CLEAR gwa_fieldcat.

gwa_fieldcat-fieldname = lc_barcode.

gwa_fieldcat-seltext_l = text-017."lc_barcode_head.

gwa_fieldcat-tabname = lc_table.

gwa_fieldcat-emphasize = lc_color.

APPEND gwa_fieldcat TO gi_fieldcat.

CLEAR gwa_fieldcat.

ENDFORM. " build_catalog

regards,

venkat .