Zinvg053 c

13
*&---------------------------------------------------------------------* ** Copyright (C) Sony China 2007,2008 All Rights Reserved. * ************************************************************************ * Program : ZINVG053 * * Title : Hold-actual inventory correction program * * Analyst : Cao Leon * * Developer : Srinivasa Baba Prasad * * Date : 2009/06/24 * * Description : Hold-actual inventory correction program * * Special Instruction: * ************************************************************************ * MODIFICATION LOG * *----------------------------------------------------------------------* * Da te Correction No. Chan ge d by Descr ip tion * *----------------------------------------------------------------------* * 2009/06/24 CD1K904343 BABA Initial development * * 2009/06/26 CD1K904365 BABA E0001 Status added * * 2009/06/30 CD1K904374 BABA Process type A while * * fatching order information * *----------------------------------------------------------------------* REPORT zinvg053 NO STANDARD PAGE HEADING  LINE-SIZE 270  LINE-COUNT 65. TABLES: tj30t,comm_product,crm d_orderadm_i. *&---------------------------------------------------------------------* * SELECTION-SCREEN *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. SELECT-OPTIONS: s_estat FOR tj30t-estat VISIBLE LENGTH 10 NO-EXTENSION NO INTE RVALS NO-DISPLAY. SELECT-OPTIONS: p_prod FOR comm_product-product_id NO INTERVALS . *PARAMETERS: p_limit TYPE i DEFAULT '999' . " CD1K904374 BABA SELECTION-SCREEN END OF BLOCK b1. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-019. PARAMETER p_chg AS CHECKBOX. SELECTION-SCREEN END OF BLOCK b2. SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-020. PARAMETER: p_rd1 RADIOBUTTON GROUP gp1,  p_rd2 RADIOBUTTON GROUP gp1. * p_rd3 RADIOBUTTON GROUP gp1. SELECTION-SCREEN END OF BLOCK b3. *&---------------------------------------------------------------------* * DATA-DELECRATIONS *----------------------------------------------------------------------* TYPES: BEGIN OF t_product, product_guid TYPE comt_product_guid, product_id TYPE crmt_ordered_prod_db, END OF t_product. DATA: it_product TYPE TABLE OF t_product,  wa_product TYPE t_product. TYPE-POOLS: slis. TYPES:BEGIN OF t_order_h,

Transcript of Zinvg053 c

Page 1: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 1/13

*&---------------------------------------------------------------------*** Copyright (C) Sony China 2007,2008 All Rights Reserved. ************************************************************************** Program : ZINVG053 ** Title : Hold-actual inventory correction program ** Analyst : Cao Leon ** Developer : Srinivasa Baba Prasad ** Date : 2009/06/24 ** Description : Hold-actual inventory correction program ** Special Instruction: ************************************************************************** MODIFICATION LOG **----------------------------------------------------------------------** Date Correction No. Changed by Description **----------------------------------------------------------------------** 2009/06/24 CD1K904343 BABA Initial development ** 2009/06/26 CD1K904365 BABA E0001 Status added ** 2009/06/30 CD1K904374 BABA Process type A while ** fatching order information **----------------------------------------------------------------------*REPORT zinvg053 NO STANDARD PAGE HEADING  LINE-SIZE 270  LINE-COUNT 65.

TABLES: tj30t,comm_product,crmd_orderadm_i.

*&---------------------------------------------------------------------** SELECTION-SCREEN*----------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.SELECT-OPTIONS: s_estat FOR tj30t-estat VISIBLE LENGTH 10 NO-EXTENSION NO INTERVALS NO-DISPLAY.SELECT-OPTIONS: p_prod FOR comm_product-product_id NO INTERVALS .*PARAMETERS: p_limit TYPE i DEFAULT '999' . " CD1K904374 BABA

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-019.PARAMETER p_chg AS CHECKBOX.SELECTION-SCREEN END OF BLOCK b2.SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-020.PARAMETER: p_rd1 RADIOBUTTON GROUP gp1,  p_rd2 RADIOBUTTON GROUP gp1.* p_rd3 RADIOBUTTON GROUP gp1.SELECTION-SCREEN END OF BLOCK b3.*&---------------------------------------------------------------------** DATA-DELECRATIONS*----------------------------------------------------------------------*

TYPES: BEGIN OF t_product,product_guid TYPE comt_product_guid,product_id TYPE crmt_ordered_prod_db,END OF t_product.

DATA: it_product TYPE TABLE OF t_product,  wa_product TYPE t_product.TYPE-POOLS: slis.

TYPES:BEGIN OF t_order_h,

Page 2: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 2/13

  guid LIKE crmd_orderadm_h-guid, "guid?  object_id LIKE crmd_orderadm_h-object_id, "???  process_type TYPE crmt_process_type_db,  created_at LIKE crmd_orderadm_h-created_at, "????  created_by TYPE crmt_created_by,  stat(5),  "????* txt30 TYPE j_txt30, "??????  itm_guid TYPE crmt_object_guid,  parent TYPE crmt_object_guid,  number_int LIKE crmd_orderadm_i-number_int, "???  itm_type LIKE crmd_orderadm_i-itm_type, "????  itm_usage LIKE crmd_orderadm_i-itm_usage, "???????  ordered_prod LIKE crmd_orderadm_i-ordered_prod, "??ID  description LIKE crmd_orderadm_i-description, "WEB????  quantity TYPE p,  zzpro_type TYPE zpro_type,  END OF t_order_h.TYPES:BEGIN OF t_order_h1,  guid LIKE crmd_orderadm_h-guid, "guid?  object_id LIKE crmd_orderadm_h-object_id, "???  process_type TYPE crmt_process_type_db,  created_at LIKE crmd_orderadm_h-created_at, "????

  created_by TYPE crmt_created_by,  stat(5),  inact TYPE crm_j_inact ,

"????* txt30 TYPE j_txt30, "??????  itm_guid TYPE crmt_object_guid,  parent TYPE crmt_object_guid,  number_int LIKE crmd_orderadm_i-number_int, "???  itm_type LIKE crmd_orderadm_i-itm_type, "????  itm_usage LIKE crmd_orderadm_i-itm_usage, "???????  ordered_prod LIKE crmd_orderadm_i-ordered_prod, "??ID  description LIKE crmd_orderadm_i-description, "WEB????

  quantity TYPE p,  zzpro_type TYPE zpro_type,END OF t_order_h1.

TYPES:BEGIN OF t_orderadm_i,  guid LIKE crmd_orderadm_i-guid, "guid?  header LIKE crmd_orderadm_i-header,  ordered_prod LIKE crmd_orderadm_i-ordered_prod,END OF t_orderadm_i.

*TYPES:BEGIN OF t_order_h1,* guid LIKE crmd_orderadm_h-guid, "guid?

* parent TYPE crmt_object_guid,* number_int LIKE crmd_orderadm_i-number_int, "???* itm_type LIKE crmd_orderadm_i-itm_type, "????* itm_usage LIKE crmd_orderadm_i-itm_usage, "???????* ordered_prod LIKE crmd_orderadm_i-ordered_prod, "??ID* description LIKE crmd_orderadm_i-description, "WEB????**END OF t_order_h1.

TYPES: BEGIN OF t_prod_qty,

Page 3: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 3/13

  product_id TYPE comt_product_id,  quantity TYPE crmt_schedlin_quan,  e0001_qty TYPE crmt_schedlin_quan,  e0006_qty TYPE crmt_schedlin_quan,  e0007_qty TYPE crmt_schedlin_quan,  e0008_qty TYPE crmt_schedlin_quan,  END OF t_prod_qty.

*ALV data declarationsDATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,  gd_tab_group TYPE slis_t_sp_group_alv,  gd_layout TYPE slis_layout_alv,  gd_repid LIKE sy-repid.TYPES:BEGIN OF t_order_h5,  guid TYPE crmd_schedlin-guid,  item_guid TYPE crmd_schedlin-item_guid,  event_type_appl TYPE crmd_schedlin-event_type_appl,  event_type TYPE crmd_schedlin-event_type,  quantity TYPE crmd_schedlin-quantity,  stat(5),  ordered_prod TYPE crmt_ordered_prod_db,END OF t_order_h5.

DATA: it_prod_qty TYPE TABLE OF t_prod_qty,

  wa_prod_qty TYPE t_prod_qty.

DATA: it_order_data TYPE TABLE OF t_order_h,

 it_order_data1 TYPE TABLE OF t_order_h1,  it_order_data5 TYPE TABLE OF t_order_h5,

  gt_orderadm_i TYPE TABLE OF t_orderadm_i,  wa_order_data TYPE t_order_h.DATA: it_zt0018 TYPE TABLE OF zt0018,  wa_zt0018 TYPE zt0018.FIELD-SYMBOLS : <wa> TYPE t_order_h1,  <wa1> TYPE t_order_h5.

TYPES: BEGIN OF t_zt0018_final,  serial_no TYPE i.  INCLUDE STRUCTURE zt0018.

TYPES: hold_actual_inv TYPE zt0018-h_act_invent,  e0001_qty TYPE i,  e0006_qty TYPE i,  e0007_qty TYPE i,  e0008_qty TYPE i,  message(100),  END OF t_zt0018_final.

DATA: it_zt0018_final TYPE TABLE OF t_zt0018_final,

  it_zt0018_f TYPE TABLE OF zt0018, "unni  wa_zt0018_f TYPE zt0018,  wa_zt0018_final TYPE t_zt0018_final.

DATA:t1 TYPE t,  t2 TYPE t,  t3 TYPE t,  t4 TYPE i,  t5 TYPE i,  t6 TYPE i

Page 4: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 4/13

  .

*&---------------------------------------------------------------------** INITIALIZATION*----------------------------------------------------------------------*

INITIALIZATION.

  s_estat-low = 'E0006'.  s_estat-option = 'EQ'.  s_estat-sign = 'I'.

  APPEND s_estat.  s_estat-low = 'E0007'.  s_estat-option = 'EQ'.  s_estat-sign = 'I'.

  APPEND s_estat.

  s_estat-low = 'E0008'.  s_estat-option = 'EQ'.  s_estat-sign = 'I'.

  APPEND s_estat.

  s_estat-low = 'E0001'.  s_estat-option = 'EQ'.  s_estat-sign = 'I'.

  APPEND s_estat.

*&---------------------------------------------------------------------** START-OF-SELECTION*----------------------------------------------------------------------*

START-OF-SELECTION.

  PERFORM data_retrieval.  PERFORM data_process.  PERFORM build_fieldcatalog.  PERFORM build_layout.  PERFORM display_alv_report.

*&---------------------------------------------------------------------**& Form data_retrieval*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM data_retrieval.

  DATA: lv_index TYPE sy-tabix.

  TYPES : BEGIN OF t_crmd_customer_h,  guid TYPE crmd_customer_h-guid,  zzpro_type TYPE crmd_customer_h-zzpro_type,  END OF t_crmd_customer_h.

  TYPES:BEGIN OF t_crmd_schedlin,  guid TYPE crmd_schedlin-guid,

Page 5: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 5/13

  item_guid TYPE crmd_schedlin-item_guid,  event_type_appl TYPE crmd_schedlin-event_type_appl,  event_type TYPE crmd_schedlin-event_type,  quantity TYPE crmd_schedlin-quantity,  END OF t_crmd_schedlin.

  TYPES: BEGIN OF t_crmd_orderadm_i,  guid TYPE crmd_orderadm_i-guid,  header TYPE crmd_orderadm_i-header,  product TYPE crmd_orderadm_i-product,  ordered_prod TYPE crmd_orderadm_i-ordered_prod,  END OF t_crmd_orderadm_i.

  TYPES: BEGIN OF t_crm_jest,  objnr TYPE crm_jest-objnr,  stat TYPE crm_jest-stat,  inact TYPE crm_jest-inact,  END OF t_crm_jest.

  DATA: gt_crmd_schedlin TYPE TABLE OF t_crmd_schedlin,  gt_crmd_orderadm_i TYPE TABLE OF t_crmd_orderadm_i,"t_crmd_schedlin,  wa_crmd_orderadm_i TYPE t_crmd_orderadm_i,"t_crmd_schedlin,  gt_crm_jest TYPE TABLE OF t_crm_jest,"t_crmd_schedlin,

  wa_crm_jest TYPE t_crm_jest,"t_crmd_schedlin,  wa_crmd_schedlin TYPE t_crmd_schedlin,  wa_crmd_schedlin1 TYPE t_crmd_schedlin,  gt_crmd_customer_h TYPE TABLE OF t_crmd_customer_h,  wa_crmd_customer_h TYPE t_crmd_customer_h.

  DATA: lw_logsys TYPE logsys.

  REFRESH: it_zt0018_final.

  SELECT * FROM zt0018 "CD1K904374 BABA  INTO TABLE it_zt0018

  WHERE zzpro_type = 'A'  AND material IN p_prod.

  SORT it_product BY product_id.

  IF it_zt0018[] IS NOT INITIAL.

  SELECT SINGLE logsys FROM t000  INTO lw_logsys WHERE  mandt = sy-mandt.

  SELECT product_guid

  product_id  INTO TABLE it_product  FROM comm_product  FOR ALL ENTRIES IN it_zt0018  WHERE product_id = it_zt0018-material  AND product_type = '01'  AND object_family = space  AND logsys = lw_logsys .

  SELECT product_guid product_id INTO TABLE it_product

Page 6: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 6/13

  FROM comm_product  FOR ALL ENTRIES IN it_zt0018  WHERE product_id = it_zt0018-material .

  ENDIF.

  IF it_product[] IS NOT INITIAL.

  SORT it_product BY product_id.

* New code

* IF p_rd1 IS NOT INITIAL.* SELECT a~guid* a~object_id* a~process_type* a~created_at* a~created_by* d~stat* f~guid* f~parent* f~number_int* f~itm_type* f~itm_usage

* f~ordered_prod* f~description* h~quantity* b~zzpro_type* INTO TABLE it_order_data* FROM crmd_orderadm_h AS a** LEFT OUTER JOIN crmd_customer_h AS b "CD1K904374 BABA* ON a~guid = b~guid** INNER JOIN crm_jest AS d* ON a~guid = d~objnr*

* INNER JOIN crmd_orderadm_i AS f* ON a~guid = f~header** LEFT OUTER JOIN crmd_schedlin AS h* ON f~guid = h~item_guid* AND h~event_type_appl = 'CRMS'* AND h~event_type = 'ORDER'** FOR ALL ENTRIES IN it_product* WHERE* f~ordered_prod = it_product-product_id AND* d~stat IN s_estat AND* d~inact = ''.

*** ENDIF.

  IF p_rd1 IS NOT INITIAL.  SELECT  guid  header  product  ordered_prod

Page 7: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 7/13

  FROM crmd_orderadm_i  INTO TABLE gt_crmd_orderadm_i  FOR ALL ENTRIES IN it_product  WHERE product = it_product-product_guid.* where ordered_prod = it_product-product_id.  ENDIF.  IF p_rd2 IS NOT INITIAL.

  SELECT  guid  header  product  ordered_prod  FROM crmd_orderadm_i  INTO TABLE gt_crmd_orderadm_i  FOR ALL ENTRIES IN it_product  WHERE ordered_prod = it_product-product_id.  ENDIF.  IF gt_crmd_orderadm_i[] IS NOT INITIAL.

  SELECT  objnr  stat  inact

  FROM crm_jest  INTO TABLE gt_crm_jest  FOR ALL ENTRIES IN gt_crmd_orderadm_i  WHERE objnr = gt_crmd_orderadm_i-header  AND stat IN s_estat.

  IF gt_crm_jest[] IS NOT INITIAL.  DELETE gt_crm_jest WHERE inact NE ''.  ENDIF.

  SELECT guid  zzpro_type  FROM crmd_customer_h

  INTO TABLE gt_crmd_customer_h  FOR ALL ENTRIES IN gt_crm_jest  WHERE guid = gt_crm_jest-objnr.  IF gt_crmd_customer_h IS NOT INITIAL.  DELETE gt_crmd_customer_h WHERE zzpro_type <> 'A'.  ENDIF.  ENDIF.

  SORT gt_crmd_customer_h BY guid.  DATA: lv_tabix TYPE sy-tabix.  LOOP AT gt_crmd_orderadm_i INTO wa_crmd_orderadm_i.  lv_tabix = sy-tabix.  READ TABLE gt_crmd_customer_h TRANSPORTING NO FIELDS WITH KEY guid = wa_ 

crmd_orderadm_i-header BINARY SEARCH.  IF sy-subrc <> 0.  DELETE gt_crmd_orderadm_i INDEX lv_tabix.  ENDIF.  ENDLOOP.

  SELECT guid  item_guid  event_type_appl  event_type

Page 8: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 8/13

  quantity  FROM crmd_schedlin  INTO TABLE it_order_data5  FOR ALL ENTRIES IN gt_crmd_orderadm_i  WHERE item_guid = gt_crmd_orderadm_i-guid.

  IF it_order_data5[] IS NOT INITIAL.  DELETE it_order_data5 WHERE  event_type_appl <> 'CRMS' .  DELETE it_order_data5 WHERE  event_type <> 'ORDER'.

  ENDIF.

  LOOP AT it_order_data5 ASSIGNING <wa1>.  READ TABLE gt_crmd_orderadm_i INTO wa_crmd_orderadm_i WITH KEY guid = <wa1>-item_guid.  IF sy-subrc = 0.  <wa1>-ordered_prod = wa_crmd_orderadm_i-ordered_prod.  READ TABLE gt_crm_jest INTO wa_crm_jest WITH KEY objnr = wa_crmd_orderadm_i-header.  IF sy-subrc = 0.  <wa1>-stat = wa_crm_jest-stat.  ENDIF.

  ENDIF.  wa_order_data-guid = <wa1>-guid .  wa_order_data-itm_guid = <wa1>-item_guid .  wa_order_data-quantity = <wa1>-quantity .  wa_order_data-stat = <wa1>-stat .  wa_order_data-ordered_prod = <wa1>-ordered_prod .  APPEND wa_order_data TO it_order_data.  ENDLOOP.

  ENDIF.

* ENDIF.* CD1K904374 BABA

* IF it_order_data[] IS NOT INITIAL.* DELETE it_order_data WHERE zzpro_type NE 'A'.* ENDIF.

* "CD1K904374 BABA

ENDFORM. "data_retrieval

*&---------------------------------------------------------------------**& Form data_process*&---------------------------------------------------------------------** text

*----------------------------------------------------------------------*FORM data_process.

  LOOP AT it_order_data INTO wa_order_data.  wa_prod_qty-product_id = wa_order_data-ordered_prod.  wa_prod_qty-quantity = wa_order_data-quantity.

  IF wa_order_data-stat = 'E0006'.  wa_prod_qty-e0006_qty = wa_order_data-quantity.  ELSEIF wa_order_data-stat = 'E0007'.

Page 9: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 9/13

  wa_prod_qty-e0007_qty = wa_order_data-quantity.  ELSEIF wa_order_data-stat = 'E0008'.  wa_prod_qty-e0008_qty = wa_order_data-quantity.  ELSEIF wa_order_data-stat = 'E0001'.  wa_prod_qty-e0001_qty = wa_order_data-quantity.  ENDIF.

  COLLECT wa_prod_qty INTO it_prod_qty.

  CLEAR: wa_order_data,wa_prod_qty.  ENDLOOP.

  SORT it_prod_qty BY product_id.  SORT it_zt0018 BY material.

  DATA: l_count TYPE i.  LOOP AT it_zt0018 INTO wa_zt0018.

  READ TABLE it_prod_qty INTO wa_prod_qty WITH KEY product_id = wa_zt0018-material BINARY SEARCH.  IF sy-subrc = 0.  IF wa_zt0018-h_act_invent NE wa_prod_qty-quantity.  l_count = l_count + 1.

  wa_zt0018_final-serial_no = l_count.  MOVE-CORRESPONDING wa_zt0018 TO wa_zt0018_final.  wa_zt0018_final-hold_actual_inv = wa_prod_qty-quantity.  wa_zt0018_final-e0001_qty = wa_prod_qty-e0001_qty.  wa_zt0018_final-e0006_qty = wa_prod_qty-e0006_qty.  wa_zt0018_final-e0007_qty = wa_prod_qty-e0007_qty.  wa_zt0018_final-e0008_qty = wa_prod_qty-e0008_qty.  IF p_chg IS NOT INITIAL.  UPDATE zt0018 SET h_act_invent = wa_zt0018_final-hold_actual_inv WHERE material = wa_zt0018_final-material  AND zzpro_type = 'A'.  IF sy-subrc = 0.  COMMIT WORK.

  wa_zt0018_final-message = 'Successfully Updated'(013).  ELSE.  wa_zt0018_final-message = 'Error while updating'(014).  ENDIF.  ENDIF.  APPEND wa_zt0018_final TO it_zt0018_final.  ENDIF.  ELSEIF wa_zt0018-h_act_invent = '0'.

  ELSE.

  MOVE-CORRESPONDING wa_zt0018 TO wa_zt0018_final.  l_count = l_count + 1.

  wa_zt0018_final-serial_no = l_count.  wa_zt0018_final-hold_actual_inv = '0'.  wa_zt0018_final-e0001_qty = '0'.  wa_zt0018_final-e0006_qty = '0'.  wa_zt0018_final-e0007_qty = '0'.  wa_zt0018_final-e0008_qty = '0'.  IF p_chg IS NOT INITIAL.  UPDATE zt0018 SET h_act_invent = wa_zt0018_final-hold_actual_inv WHERE material = wa_zt0018_final-material  AND zzpro_type = 'A'.

Page 10: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 10/13

  IF sy-subrc = 0.  COMMIT WORK.  wa_zt0018_final-message = 'Successfully Updated'(013).  ELSE.  wa_zt0018_final-message = 'Error while updating'(014).  ENDIF.  ENDIF.  APPEND wa_zt0018_final TO it_zt0018_final.  ENDIF.

  CLEAR: wa_zt0018,wa_prod_qty,wa_zt0018_final.  ENDLOOP.

ENDFORM. "data_process

*&---------------------------------------------------------------------**& Form BUILD_FIELDCATALOG*&---------------------------------------------------------------------** Build Fieldcatalog for ALV Report*----------------------------------------------------------------------*FORM build_fieldcatalog.

  fieldcatalog-fieldname = 'SERIAL_NO'.  fieldcatalog-seltext_m = 'Serial No'(012).  fieldcatalog-col_pos = 0.  fieldcatalog-outputlen = 10.  fieldcatalog-emphasize = 'X'.  fieldcatalog-key = 'X'.  APPEND fieldcatalog TO fieldcatalog.  CLEAR fieldcatalog.

  fieldcatalog-fieldname = 'MATERIAL'.  fieldcatalog-seltext_m = text-002.  fieldcatalog-col_pos = 1.  APPEND fieldcatalog TO fieldcatalog.

  CLEAR fieldcatalog.

  fieldcatalog-fieldname = 'ACT_INVENT'.  fieldcatalog-seltext_m = text-004.  fieldcatalog-col_pos = 2.  APPEND fieldcatalog TO fieldcatalog.  CLEAR fieldcatalog.

  fieldcatalog-fieldname = 'H_ACT_INVENT'.  fieldcatalog-seltext_m = text-005.  fieldcatalog-col_pos = 3.  APPEND fieldcatalog TO fieldcatalog.  CLEAR fieldcatalog.

  fieldcatalog-fieldname = 'HOLD_ACTUAL_INV'.  fieldcatalog-seltext_m = text-006.  fieldcatalog-col_pos = 4.  APPEND fieldcatalog TO fieldcatalog.  CLEAR fieldcatalog.

  fieldcatalog-fieldname = 'E0001_QTY'.  fieldcatalog-seltext_m = 'Ready to Confirm'(020).  fieldcatalog-col_pos = 5.

Page 11: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 11/13

  APPEND fieldcatalog TO fieldcatalog.  CLEAR fieldcatalog.

  fieldcatalog-fieldname = 'E0006_QTY'.  fieldcatalog-seltext_m = 'Have Stock'(015).  fieldcatalog-col_pos = 5.  APPEND fieldcatalog TO fieldcatalog.  CLEAR fieldcatalog.

  fieldcatalog-fieldname = 'E0007_QTY'.  fieldcatalog-seltext_m = 'Pending For Approval'(016).  fieldcatalog-col_pos = 6.  APPEND fieldcatalog TO fieldcatalog.  CLEAR fieldcatalog.

  fieldcatalog-fieldname = 'E0008_QTY'.  fieldcatalog-seltext_m = 'Ready for R/3'(017).  fieldcatalog-col_pos = 7.  APPEND fieldcatalog TO fieldcatalog.  CLEAR fieldcatalog.

  fieldcatalog-fieldname = 'MESSAGE'.  fieldcatalog-seltext_m = 'Success/Error Message'(018).  fieldcatalog-col_pos = 8.

  APPEND fieldcatalog TO fieldcatalog.  CLEAR fieldcatalog.ENDFORM. " BUILD_FIELDCATALOG

*&---------------------------------------------------------------------**& Form BUILD_LAYOUT*&---------------------------------------------------------------------** Build layout for ALV grid report*----------------------------------------------------------------------*FORM build_layout.  gd_layout-no_input = 'X'.  gd_layout-colwidth_optimize = 'X'.

  gd_layout-totals_text = 'Totals'(201).

ENDFORM. " BUILD_LAYOUT

*&---------------------------------------------------------------------**& Form DISPLAY_ALV_REPORT*&---------------------------------------------------------------------** Display report using ALV grid*----------------------------------------------------------------------*FORM display_alv_report.  gd_repid = sy-repid.  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

  EXPORTING  i_callback_program = gd_repid  i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM* i_callback_user_command = 'USER_COMMAND'* i_grid_title = outtext  is_layout = gd_layout  it_fieldcat = fieldcatalog[]* it_special_groups = gd_tabgroup* IT_EVENTS = GT_XEVENTS  i_save = 'X'

Page 12: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 12/13

* is_variant = z_template  TABLES  t_outtab = it_zt0018_final  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.  REFRESH: it_zt0018_final.ENDFORM. " DISPLAY_ALV_REPORT

*-------------------------------------------------------------------** Form TOP-OF-PAGE **-------------------------------------------------------------------** ALV Report Header **-------------------------------------------------------------------*FORM top-of-page.*ALV Header declarations  DATA: t_header TYPE slis_t_listheader,  wa_header TYPE slis_listheader,

  t_line LIKE wa_header-info,  ld_lines TYPE i,  ld_linesc(10) TYPE c.

* Title  wa_header-typ = 'H'.  wa_header-info = 'Hold-actual inventory correction program'.  APPEND wa_header TO t_header.  CLEAR wa_header.

* Date  wa_header-typ = 'S'.  wa_header-key = 'Run Date: '.

  CONCATENATE sy-datum+6(2) '.'  sy-datum+4(2) '.'  sy-datum(4) INTO wa_header-info. "todays date  APPEND wa_header TO t_header.  CLEAR: wa_header.

* Time  wa_header-typ = 'S'.  wa_header-key = 'Run Time: '.  CONCATENATE sy-uzeit+0(2) '.'  sy-uzeit+2(2) '.'  sy-uzeit+4(2) INTO wa_header-info. " time  APPEND wa_header TO t_header.

  CLEAR: wa_header.

* Total No. of Records Selected  DESCRIBE TABLE it_zt0018_final LINES ld_lines.  ld_linesc = ld_lines.  CONCATENATE 'Total No. of Materials Selected: ' ld_linesc  INTO t_line SEPARATED BY space.  wa_header-typ = 'A'.  wa_header-info = t_line.  APPEND wa_header TO t_header.

Page 13: Zinvg053 c

7/18/2019 Zinvg053 c

http://slidepdf.com/reader/full/zinvg053-c 13/13

  CLEAR: wa_header, t_line.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'  EXPORTING  it_list_commentary = t_header.* i_logo = 'Z_LOGO'.ENDFORM. "top-of-page