‎2008 May 12 1:46 PM
hi all,
give me one ex. any one under pp module phase wise release report .
thanks.
‎2008 May 12 4:01 PM
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 .