0% found this document useful (0 votes)
33 views

Analysis

Analysis

Uploaded by

DeveshBabu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Analysis

Analysis

Uploaded by

DeveshBabu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 19

Report :

01FEB2014_01052014total
pgm nae: Z_sc_tat_report_2
Z_sc_tat_report_3
table name: zs3n_st_tat_report
zs3n_t_notif_mas,
zla_rs_kunnr, ZS3N_T_CUST_DET,QMEL,zget_material
FM : ZS3N_FM_GET_TAT_DETAIL2
**********Function module for *************
FUNCTION zs3n_fm_get_tat_detail2.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IM_DELIVERED) TYPE XFELD
*" REFERENCE(IM_DOA_CALL) TYPE XFELD
*" REFERENCE(IM_SEND_2_RF) TYPE XFELD
*" REFERENCE(IM_SKIP) TYPE XFELD
*" TABLES
*" ET_OUTPUT_DATA STRUCTURE ZS3N_ST_TAT_REPORT
*" IT_DATES STRUCTURE ZS3N_ST_RAN_DATE
*" IT_REQ_ID STRUCTURE ZS3_ST_RAN_REQ_ID
*" IT_FWD_REQ_ID STRUCTURE ZS3_ST_RAN_REQ_ID
*" IT_KUNNR STRUCTURE ZLA_RS_KUNNR
*" IT_QMNUM STRUCTURE ZS3N_ST_RAN_QMNUM OPTIONAL
*"----------------------------------------------------------------------
CREATE OBJECT lcl_cl_sevice_center.
CLEAR: ls_delivered, lr_delivered.
ls_delivered-option = 'EQ'.
ls_delivered-sign = 'I'.
ls_delivered-low = ''.
APPEND ls_delivered TO lr_delivered.
ls_delivered-option = 'EQ'.
ls_delivered-sign = 'I'.
ls_delivered-low = im_delivered.
APPEND ls_delivered TO lr_delivered.
SORT lr_delivered.
DELETE ADJACENT DUPLICATES FROM lr_delivered COMPARING ALL FIELDS.
CLEAR: ls_spl_doa, lr_spl_doa.
ls_spl_doa-option = 'EQ'.
ls_spl_doa-sign = 'I'.
ls_spl_doa-low = ''.
APPEND ls_spl_doa TO lr_spl_doa.
ls_spl_doa-option = 'EQ'.
ls_spl_doa-sign = 'I'.
ls_spl_doa-low = im_doa_call.
APPEND ls_spl_doa TO lr_spl_doa.
SORT lr_spl_doa.
DELETE ADJACENT DUPLICATES FROM lr_spl_doa COMPARING ALL FIELDS.
CLEAR: ls_qmart, lr_qmart.
ls_qmart-option = 'EQ'.
ls_qmart-sign = 'I'.
ls_qmart-low = 'Z3'.
APPEND ls_qmart TO lr_qmart.
ls_qmart-option = 'EQ'.
ls_qmart-sign = 'I'.
ls_qmart-low = 'Z4'.
APPEND ls_qmart TO lr_qmart.
ls_qmart-option = 'EQ'.
ls_qmart-sign = 'I'.
ls_qmart-low = 'Z5'.
APPEND ls_qmart TO lr_qmart.
ls_qmart-option = 'EQ'.
ls_qmart-sign = 'I'.
ls_qmart-low = 'Z6'.
APPEND ls_qmart TO lr_qmart.
ls_qmart-option = 'EQ'.
ls_qmart-sign = 'I'.
ls_qmart-low = 'Z7'.
APPEND ls_qmart TO lr_qmart.
********************************************************************************
*****
* Changed By Mayank on 28.05.2014 for part code maintain in pending call report
********************************************************************************
*****
***** fetch data
* SELECT notif~qmnum
* notif~imei_no
* notif~req_id
* notif~fwd_req_id
* notif~rcvd_frm_ssd_on
* notif~rcvd_frm_ssd_at
* notif~s2rf_on
* notif~s2rf_at
* notif~rcvd_frm_rf_on
* notif~rcvd_frm_rf_at
* notif~delivered_on
* notif~delivered_at
* notif~qmart
* notif~ssd_id
* notif~stndby_issued
* notif~stndby_model
* notif~stndby_imei
* notif~delivered
* notif~spl_doa
* notif~rcvd_frm_rf
* notif~s2rf
* notif~inbd_delevery
* cust_det~name
* cust_det~phone1
* notif~pcba_matnr
* INTO TABLE lt_notif_mas
* FROM zs3n_t_notif_mas AS notif
* LEFT OUTER JOIN zs3n_t_cust_det AS cust_det ON cust_det~imei = notif~imei_
no
* WHERE notif~qmart IN lr_qmart AND
* notif~spl_doa IN lr_spl_doa AND
* notif~ssd_id IN it_kunnr AND
* notif~req_id IN it_req_id AND
* notif~fwd_req_id IN it_fwd_req_id AND
* notif~delivered IN lr_delivered AND
* notif~created_on IN it_dates AND
* notif~qmnum IN it_qmnum.
**** fetch data
SELECT notif~qmnum
notif~imei_no
notif~req_id
notif~fwd_req_id
notif~rcvd_frm_ssd_on
notif~rcvd_frm_ssd_at
notif~s2rf_on
notif~s2rf_at
notif~rcvd_frm_rf_on
notif~rcvd_frm_rf_at
notif~delivered_on
notif~delivered_at
notif~qmart
notif~ssd_id
notif~stndby_issued
notif~stndby_model
notif~stndby_imei
notif~delivered
notif~spl_doa
notif~rcvd_frm_rf
notif~s2rf
notif~inbd_delevery
cust_det~name
cust_det~phone1
notif~pcba_matnr " New Line Added
INTO TABLE lt_notif_mas
FROM zs3n_t_notif_mas AS notif
LEFT OUTER JOIN zs3n_t_cust_det AS cust_det ON cust_det~imei = notif~imei_n
o
WHERE notif~qmart IN lr_qmart AND
notif~spl_doa IN lr_spl_doa AND
notif~ssd_id IN it_kunnr AND
notif~req_id IN it_req_id AND
notif~fwd_req_id IN it_fwd_req_id AND
notif~delivered IN lr_delivered AND
notif~created_on IN it_dates AND
notif~qmnum IN it_qmnum.
********************************************************************************
*****
* Changed By Mayank on 28.05.2014 for part code maintain in pending call report
********************************************************************************
*****
********************************************************************************
***********
* Delete Notification for QMART = "Z7" Added By Mayank on 27.05.2014
********************************************************************************
***********
DELETE lt_notif_mas WHERE qmart EQ 'Z7'.
********************************************************************************
***********
* Delete Notification for QMART = "Z7" Added By Mayank on 27.05.2014
********************************************************************************
***********
SORT lt_notif_mas BY inbd_delevery.
* DELETE lt_notif_mas WHERE inbd_delevery IS INITIAL AND qmart = 'Z3'.
SORT lt_notif_mas BY qmnum.
*Only those notifications which are Send to RF is requested.
*Delete rest of them.
IF im_send_2_rf IS NOT INITIAL.
DELETE lt_notif_mas WHERE s2rf_on IS INITIAL.
ENDIF.
IF lt_notif_mas[] IS INITIAL.
RETURN.
ENDIF.
IF lt_notif_mas IS NOT INITIAL.
SELECT zs3n_t_part_req~qmnum zs3n_t_part_req~matnr zs3n_t_part_req~created_o
n zs3n_t_part_req~ssd_id makt~maktx
FROM zs3n_t_part_req
INNER JOIN makt ON makt~matnr = zs3n_t_part_req~matnr AND
makt~spras = 'EN'
INTO TABLE lt_part_pend
WHERE qmnum IN it_qmnum.
IF sy-subrc NE 0.
*No data found.
ENDIF.
SELECT *
FROM qpct
INTO TABLE lt_qpct
WHERE katalogart IN ('S', 'R', 'T') AND
sprache = 'E'.
IF sy-subrc NE 0.
*No data found
ENDIF.
SELECT qmnum urgrp urcod
INTO TABLE lt_qmur
FROM qmur
FOR ALL ENTRIES IN lt_notif_mas
WHERE qmnum = lt_notif_mas-qmnum.
IF sy-subrc NE 0.
*No data found
ENDIF.
SORT lt_qmur BY qmnum.
SELECT qmnum fegrp fecod
INTO TABLE lt_qmfe
FROM qmfe
FOR ALL ENTRIES IN lt_notif_mas
WHERE qmnum = lt_notif_mas-qmnum.
IF sy-subrc NE 0.
*No data found
ENDIF.
SORT lt_qmfe BY qmnum.
SELECT imei
qmnum
sl_no
type
exp_delivery_dat
status
handset_warranty
wc_status
FROM zs3n_t_els INTO TABLE lt_zs3n_t_els
FOR ALL ENTRIES IN lt_notif_mas WHERE imei = lt_notif_mas-imei_no
AND qmnum = lt_notif_mas-qmnum
AND type = '1'.
SELECT pr~req_id
pr~courier_id
pr~docket_number " added By a.srinivasan(altimetrik)14/10/2013
lf~name1
pr~created_on
pr~created_at
pr~docket_date
pr~docket_time
FROM zs3n_t_pick_req AS pr
INNER JOIN lfa1 AS lf ON pr~courier_id EQ lf~lifnr
INTO TABLE lt_pick_req
FOR ALL ENTRIES IN lt_notif_mas
WHERE pr~req_id EQ lt_notif_mas-req_id OR
pr~req_id EQ lt_notif_mas-fwd_req_id.
SELECT qm~qmnum
qm~kunum
qm~erdat
qm~matnr
qm~aufnr
gm~model
qm~deviceid
qm~qmgrp
qm~qmcod
FROM qmel AS qm
LEFT OUTER JOIN zget_material AS gm ON qm~matnr EQ gm~mat_code
INTO TABLE lt_qmel
FOR ALL ENTRIES IN lt_notif_mas
WHERE qmnum EQ lt_notif_mas-qmnum.
SELECT kn~kunnr
kn~name1
kn~regio
tt~bezei
kn~ort01
bu~bu
FROM kna1 AS kn
INNER JOIN t005u AS tt ON kn~regio EQ tt~bland
INNER JOIN zbu_region AS bu ON bu~bland EQ kn~regio
INTO TABLE lt_kna1
FOR ALL ENTRIES IN lt_notif_mas
WHERE kn~kunnr EQ lt_notif_mas-ssd_id AND
tt~spras EQ sy-langu AND
tt~land1 EQ kn~land1.
SELECT kv~kunnr
kv~bzirk
tt~bztxt
FROM knvv AS kv
INNER JOIN t171t AS tt ON kv~bzirk EQ tt~bzirk
INTO TABLE lt_knvv
FOR ALL ENTRIES IN lt_notif_mas
WHERE kv~kunnr EQ lt_notif_mas-ssd_id AND
kv~vkorg EQ '1000' AND
kv~vtweg EQ '10' AND
kv~spart EQ '60' AND
tt~spras EQ sy-langu.
IF lt_qmel IS NOT INITIAL.
SELECT kn~kunnr
kn~name1
kn~regio
tt~bezei
kn~ort01
bu~bu
FROM kna1 AS kn
INNER JOIN t005u AS tt ON kn~regio EQ tt~bland
INNER JOIN zbu_region AS bu ON bu~bland EQ kn~regio
APPENDING TABLE lt_kna1
FOR ALL ENTRIES IN lt_notif_mas
WHERE kn~kunnr EQ lt_notif_mas-ssd_id AND
tt~spras EQ sy-langu AND
tt~land1 EQ kn~land1.
SELECT kv~kunnr
kv~bzirk
tt~bztxt
FROM knvv AS kv
INNER JOIN t171t AS tt ON kv~bzirk EQ tt~bzirk
APPENDING TABLE lt_knvv
FOR ALL ENTRIES IN lt_notif_mas
WHERE kv~kunnr EQ lt_notif_mas-ssd_id AND
kv~vkorg EQ '1000' AND
kv~vtweg EQ '10' AND
kv~spart EQ '60' AND
tt~spras EQ sy-langu.
SELECT knvv~kunnr t001w~name1
INTO TABLE lt_knvv_br
FROM knvv
INNER JOIN t001w ON t001w~werks = knvv~vwerk
FOR ALL entries IN lt_notif_mas
WHERE knvv~kunnr EQ lt_notif_mas-ssd_id AND
knvv~vkorg EQ '1000' AND
knvv~vtweg EQ '10' AND
knvv~spart EQ '60'.
SELECT knvp~kunnr lfa1~name1
INTO TABLE lt_knvp_asm
FROM knvp
INNER JOIN lfa1 ON lfa1~lifnr = knvp~lifnr
FOR ALL entries IN lt_notif_mas
WHERE knvp~kunnr EQ lt_notif_mas-ssd_id AND
knvp~vkorg EQ '1000' AND
knvp~vtweg EQ '10' AND
knvp~spart EQ '10' AND
knvp~parvw = 'AM'.
SELECT au~aufnr
au~objnr
au~erdat
au~erfzeit
FROM aufk AS au
INTO TABLE lt_aufk
FOR ALL ENTRIES IN lt_qmel
WHERE au~aufnr EQ lt_qmel-aufnr.
SELECT au~aufnr
au~objnr
jc~udate
jc~utime
FROM jcds AS jc
INNER JOIN aufk AS au ON jc~objnr EQ au~objnr
INTO TABLE lt_teco
FOR ALL ENTRIES IN lt_qmel
WHERE au~aufnr EQ lt_qmel-aufnr AND
jc~stat EQ 'I0045' AND
jc~inact NE 'X'.
ENDIF.
SELECT zxolo_srv_parts~notification zxolo_srv_parts~matnr makt~maktx
INTO TABLE lt_srv_parts
FROM zxolo_srv_parts
INNER JOIN makt ON makt~matnr = zxolo_srv_parts~matnr
FOR ALL entries IN lt_notif_mas
WHERE notification = lt_notif_mas-qmnum AND
spras = sy-langu.
ENDIF.
SORT lt_qmel BY qmnum.
LOOP AT lt_notif_mas INTO ls_notif_mas.
ls_notif_status-qmnum = ls_notif_mas-qmnum.
APPEND ls_notif_status TO lt_notif_status.
IF im_skip IS NOT INITIAL.
IF ls_notif_mas-delivered IS INITIAL AND
ls_notif_mas-s2rf IS INITIAL AND
ls_notif_mas-rcvd_frm_rf IS INITIAL AND
ls_notif_mas-qmart = 'Z3' AND
ls_notif_mas-spl_doa IS INITIAL.
CLEAR: ls_pc_notif_mas, ls_qmel.
ls_pc_notif_mas-qmnum = ls_notif_mas-qmnum.
ls_pc_notif_mas-kunnr = ls_notif_mas-ssd_id.
READ TABLE lt_qmel INTO ls_qmel WITH KEY qmnum = ls_notif_mas-qmnum BINA
RY SEARCH.
ls_pc_notif_mas-aufnr = ls_qmel-aufnr.
IF ls_pc_notif_mas-aufnr IS NOT INITIAL.
APPEND ls_pc_notif_mas TO lt_pc_notif_mas.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
CALL METHOD lcl_cl_sevice_center->get_notif_current_status_old
EXPORTING
it_notification = lt_notif_status
IMPORTING
et_notif_status = lt_notif_status.
CLEAR:rg_kunnr[],rg_matnr[],it_pending_list[],it_return[], lt_stock_details_cu
st[].
*Only those notifications which are Send to RF is requested.
*So need not check for part
IF im_send_2_rf IS INITIAL.
IMPORT p_1 TO it_pending_list FROM MEMORY ID 'PEND_CALLS'.
IMPORT p_2 TO lt_stock_details_cust FROM MEMORY ID 'STK_DET'.
IF it_pending_list[] IS INITIAL.
CALL FUNCTION 'ZS3N_FM_PENDING_CALL'
EXPORTING
im_pc_t_notif_mas = lt_pc_notif_mas
TABLES
rt_kunnr = rg_kunnr
rt_matnr = rg_matnr
et_pending_calls = it_pending_list
et_return = it_return
et_stock_details_cust = lt_stock_details_cust.
ENDIF.
ENDIF.
SORT it_pending_list BY qmnum.
IF it_pending_list[] IS NOT INITIAL.
SELECT matnr werks lgort labst
INTO TABLE lt_mard
FROM mard
FOR ALL ENTRIES IN it_pending_list
WHERE matnr = it_pending_list-matnr AND
werks = 'MNOI' AND
lgort = '1121'.
IF sy-subrc NE 0.
*No data found.
ENDIF.
SORT lt_mard BY matnr.
SELECT matnr ship_party received_qty
FROM zxolo_component
INTO TABLE lt_comp_det
FOR ALL ENTRIES IN it_pending_list
WHERE matnr = it_pending_list-matnr AND
ship_party = it_pending_list-kunnr AND
received = 'X'.
IF sy-subrc NE 0.
*No data found.
ENDIF.
SORT lt_comp_det BY matnr ship_party.
LOOP AT lt_comp_det INTO ls_comp.
COLLECT ls_comp INTO lt_comp.
ENDLOOP.
SORT lt_comp BY matnr ship_party.
SELECT zxolo_srv_parts~matnr zs3n_t_notif_mas~ssd_id zxolo_srv_parts~qty
INTO TABLE lt_serv_det
FROM zxolo_srv_parts
INNER JOIN zs3n_t_notif_mas ON zs3n_t_notif_mas~qmnum = zxolo_srv_parts~not
ification
FOR ALL entries IN it_pending_list
WHERE zxolo_srv_parts~matnr = it_pending_list-matnr AND
zs3n_t_notif_mas~ssd_id = it_pending_list-kunnr .
LOOP AT lt_serv_det INTO ls_serv.
COLLECT ls_serv INTO lt_serv.
ENDLOOP.
SORT lt_serv BY matnr ship_party.
ENDIF.
SORT lt_srv_parts BY notification.
SORT lt_qmel BY qmnum.
SORT lt_zs3n_t_els BY imei qmnum.
SORT lt_kna1 BY kunnr.
SORT lt_knvv BY kunnr.
SORT lt_knvv_br BY kunnr.
SORT lt_knvp_asm BY kunnr.
SORT lt_notif_status BY qmnum.
SORT lt_pick_req BY req_id.
SORT lt_aufk BY aufnr.
SORT lt_teco BY aufnr.
SORT it_pending_list BY qmnum.
SORT lt_stock_details_cust BY kunnr matnr.
IF lt_notif_mas IS NOT INITIAL.
SELECT qmnum stndb
FROM zs3n_t_stdby_sts
INTO TABLE lt_stdby_sts
FOR ALL ENTRIES IN lt_notif_mas
WHERE qmnum = lt_notif_mas-qmnum.
SELECT qmnum invoice_no rp_recieved
FROM zs3n_t_rp_stock
INTO TABLE lt_stock
FOR ALL ENTRIES IN lt_notif_mas
WHERE qmnum = lt_notif_mas-qmnum.
LOOP AT lt_notif_mas INTO ls_notif_mas.
READ TABLE lt_srv_parts INTO ls_srv_parts WITH KEY notification = ls_notif
_mas-qmnum BINARY SEARCH.
IF sy-subrc = 0.
lv_tabix = sy-tabix.
ENDIF.
LOOP AT lt_srv_parts INTO ls_srv_parts FROM lv_tabix.
IF ls_srv_parts-notification NE ls_notif_mas-qmnum..
CLEAR ls_srv_parts.
EXIT.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = ls_srv_parts-matnr
IMPORTING
output = ls_srv_parts-matnr.
CONCATENATE ls_srv_parts-matnr ',' ls_srv_parts-maktx INTO ls_output_dat
a-part_cons." added by srinivasan.a
ENDLOOP.
READ TABLE lt_qmel
INTO ls_qmel
WITH KEY qmnum = ls_notif_mas-qmnum BINARY SEARCH.
READ TABLE lt_qpct INTO ls_qpct_s WITH KEY katalogart = 'S'
codegruppe = ls_qmel-qmgrp
code = ls_qmel-qmcod.
READ TABLE lt_zs3n_t_els
INTO ls_zs3n_t_els
WITH KEY imei = ls_notif_mas-imei_no
qmnum = ls_notif_mas-qmnum BINARY SEARCH.
READ TABLE lt_kna1
INTO ls_kna1
WITH KEY kunnr = ls_notif_mas-ssd_id BINARY SEARCH.
READ TABLE lt_knvv
INTO ls_knvv
WITH KEY kunnr = ls_notif_mas-ssd_id BINARY SEARCH.
READ TABLE lt_knvv_br
INTO ls_knvv_br
WITH KEY kunnr = ls_notif_mas-ssd_id BINARY SEARCH.
READ TABLE lt_knvp_asm
INTO ls_knvp_asm
WITH KEY kunnr = ls_notif_mas-ssd_id BINARY SEARCH.
READ TABLE lt_notif_status
INTO ls_notif_status
WITH KEY qmnum = ls_notif_mas-qmnum BINARY SEARCH.
READ TABLE lt_pick_req
INTO ls_pick_req
WITH KEY req_id = ls_notif_mas-req_id BINARY SEARCH.
READ TABLE lt_pick_req
INTO ls_fwd_pick_req
WITH KEY req_id = ls_notif_mas-fwd_req_id BINARY SEARCH.
READ TABLE lt_aufk
INTO ls_aufk
WITH KEY aufnr = ls_qmel-aufnr BINARY SEARCH.
READ TABLE lt_teco
INTO ls_teco
WITH KEY aufnr = ls_qmel-aufnr BINARY SEARCH.
IF NOT ls_teco-udate IS NOT INITIAL.
IF ls_teco-udate LT ls_notif_mas-rcvd_frm_rf_on.
MOVE ls_notif_mas-rcvd_frm_rf_on TO ls_teco-udate.
MOVE ls_notif_mas-rcvd_frm_rf_at TO ls_teco-utime.
ENDIF.
ENDIF.
CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
EXPORTING
date1 = ls_notif_mas-s2rf_on
date2 = ls_qmel-erdat
IMPORTING
datediff = lv_ssd_tat
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.
CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
EXPORTING
date1 = ls_notif_mas-rcvd_frm_ssd_on
date2 = ls_pick_req-docket_date
IMPORTING
datediff = lv_cour_rl_tat
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.
CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
EXPORTING
date1 = ls_teco-udate
date2 = ls_notif_mas-rcvd_frm_ssd_on
IMPORTING
datediff = lv_rf_tat
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.
CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
EXPORTING
date1 = ls_notif_mas-rcvd_frm_rf_on
date2 = ls_fwd_pick_req-docket_date
IMPORTING
datediff = lv_cour_fl_tat
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.
CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
EXPORTING
date1 = ls_notif_mas-delivered_on
date2 = ls_aufk-udate
IMPORTING
datediff = lv_cust_await_tat
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.
CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
EXPORTING
date1 = ls_notif_mas-delivered_on
date2 = ls_qmel-erdat
IMPORTING
datediff = lv_lava_cust_tat
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.
MOVE ls_notif_mas-qmnum TO ls_output_data-qmnum.
MOVE ls_qmel-erdat TO ls_output_data-erdat.
MOVE ls_notif_mas-ssd_id TO ls_output_data-kunum.
MOVE ls_kna1-name1 TO ls_output_data-cname.
MOVE ls_kna1-bu TO ls_output_data-bu.
MOVE ls_knvv-bzirk TO ls_output_data-bzirk.
MOVE ls_knvv-bztxt TO ls_output_data-bztxt.
MOVE ls_kna1-regio TO ls_output_data-regio.
MOVE ls_kna1-bezei TO ls_output_data-bezei.
MOVE ls_kna1-ort01 TO ls_output_data-ort01.
MOVE ls_notif_mas-imei_no TO ls_output_data-mapar.
MOVE ls_qmel-model TO ls_output_data-model.
MOVE ls_zs3n_t_els-exp_delivery_dat TO ls_output_data-exp_delivery_dat
.
MOVE ls_pick_req-courier_id TO ls_output_data-courier_id.
MOVE ls_pick_req-courier_name TO ls_output_data-courier_name.
MOVE ls_notif_mas-s2rf_on TO ls_output_data-s2rf_on.
MOVE ls_pick_req-created_on TO ls_output_data-req_id_on.
MOVE ls_pick_req-created_at TO ls_output_data-req_id_at.
MOVE ls_pick_req-docket_date TO ls_output_data-cour_pick_on.
MOVE ls_pick_req-docket_time TO ls_output_data-cour_pick_at.
MOVE ls_pick_req-docket_number TO ls_output_data-docket_number."a
dded by srinivasan.a
MOVE ls_notif_mas-rcvd_frm_ssd_on TO ls_output_data-rf_recv_on.
MOVE ls_notif_mas-rcvd_frm_ssd_at TO ls_output_data-rf_recv_at.
MOVE ls_aufk-udate TO ls_output_data-under_rr_on.
MOVE ls_aufk-utime TO ls_output_data-under_rr_at.
MOVE '' TO ls_output_data-pend_qc_on. "Don
t Know!!!
MOVE '' TO ls_output_data-pend_qc_at. "Don
t Know!!!
MOVE ls_teco-udate TO ls_output_data-rd_dispatch_on.
MOVE ls_teco-utime TO ls_output_data-rd_dispatch_at.
MOVE ls_fwd_pick_req-docket_date TO ls_output_data-cour_pick_on_ssd
.
MOVE ls_fwd_pick_req-docket_time TO ls_output_data-cour_pick_at_ssd
.
MOVE ls_notif_mas-rcvd_frm_rf_on TO ls_output_data-ssd_recv_date.
MOVE ls_notif_mas-rcvd_frm_rf_at TO ls_output_data-ssd_recv_time.
MOVE ls_notif_mas-delivered_on TO ls_output_data-cust_delv_date.
MOVE lv_ssd_tat TO ls_output_data-ssd_tat.
MOVE lv_cour_rl_tat TO ls_output_data-cour_rl_tat.
MOVE lv_rf_tat TO ls_output_data-rf_tat.
MOVE lv_cour_fl_tat TO ls_output_data-cour_fl_tat.
MOVE lv_cust_await_tat TO ls_output_data-cust_await_tat.
MOVE lv_lava_cust_tat TO ls_output_data-lava_cust_tat.
MOVE ls_notif_mas-req_id TO ls_output_data-req_id.
MOVE ls_fwd_pick_req-docket_number TO ls_output_data-fwd_docket_no."a
dded by srinivasan.a
MOVE ls_fwd_pick_req-created_on TO ls_output_data-fwd_created_on."adde
d by srinivasan.a
MOVE ls_fwd_pick_req-created_at TO ls_output_data-fwd_created_at."adde
d by a.srinivasan.
MOVE ls_fwd_pick_req-courier_id TO ls_output_data-fwd_courier_id.
MOVE ls_fwd_pick_req-courier_name TO ls_output_data-fwd_courier_name."ad
ded by a.srinivasan.
MOVE ls_notif_mas-delivered_at TO ls_output_data-cust_delv_time." add
ed by a.srinivasan.
MOVE ls_notif_mas-stndby_issued TO ls_output_data-stndby_issued."added
by a.srinivasan.
MOVE ls_notif_mas-stndby_model TO ls_output_data-stndby_model."added
by a.srinivasan.
MOVE ls_notif_mas-stndby_imei TO ls_output_data-stndby_imei."added by
a.srinivasan.
MOVE ls_notif_mas-cust_name TO ls_output_data-cust_name.
MOVE ls_notif_mas-cust_phone TO ls_output_data-cust_phone.
MOVE ls_qmel-deviceid TO ls_output_data-deviceid."added by a.
srinivasan.
MOVE ls_qmel-qmgrp TO ls_output_data-qmgrp.
MOVE ls_qmel-qmcod TO ls_output_data-qmcod.
MOVE ls_qpct_s-kurztext TO ls_output_data-kurztext.
MOVE ls_notif_status-status TO ls_output_data-notifi_status.
MOVE ls_notif_mas-fwd_req_id TO ls_output_data-fwd_req_id.
MOVE ls_notif_mas-qmart TO ls_output_data-qmart.
MOVE ls_knvv_br-name1 TO ls_output_data-branch.
MOVE ls_knvp_asm-name1 TO ls_output_data-asm_name.
MOVE ls_notif_mas-s2rf_on TO ls_output_data-s2rf_on.
MOVE ls_notif_mas-s2rf_at TO ls_output_data-s2rf_at.
MOVE ls_notif_mas-ssd_id TO ls_output_data-ssd_id.
* MOVE ls_notif_status-description TO ls_output_data-bucket_stat.
********************************************************************************
**************
* Changed By Mayank for replacement status mismatch in pending call report o
n 26.05.2014
********************************************************************************
**************
CLEAR: ls_stdby_sts,ls_stock.
READ TABLE lt_stdby_sts INTO ls_stdby_sts
WITH KEY qmnum = ls_notif_mas-qmnum
stndb = 'R' BINARY SEARCH.
IF sy-subrc IS INITIAL. "Repalcement App
roced
READ TABLE lt_stock INTO ls_stock
WITH KEY qmnum = ls_notif_mas-qmnum BINARY SEARCH.
IF sy-subrc IS INITIAL. "Check for Repla
cement Dispatch/Recieved
IF ls_stock-invoice_no IS NOT INITIAL "Replacement Rec
ieved by ASP
AND ls_stock-rp_recieved IS NOT INITIAL.
ls_output_data-bucket_stat = 'Replacement Recieved By ASP'.
ELSEIF ls_stock-invoice_no IS NOT INITIAL "Replacement Dis
patched to ASP
AND ls_stock-rp_recieved IS INITIAL.
ls_output_data-bucket_stat = 'Replacement Dispatched To ASP'.
ELSEIF ls_stock-invoice_no IS INITIAL "Replacement App
roved
AND ls_stock-rp_recieved IS INITIAL.
ls_output_data-bucket_stat = 'Replacement Approved'.
ENDIF.
ELSE. "Only Replacemen
t Approved, Not Dispatched or Recieved
ls_output_data-bucket_stat = 'Replacement Approved'.
ENDIF.
ELSE. "Same status as
it is coming before
MOVE ls_notif_status-description TO ls_output_data-bucket_stat.
ENDIF.
********************************************************************************
**************
* Changed By Mayank for replacement status mismatch in pending call report o
n 26.05.2014
********************************************************************************
**************
READ TABLE lt_kna1 INTO ls_kna1 WITH KEY kunnr = ls_notif_mas-ssd_id BINAR
Y SEARCH.
IF sy-subrc = 0.
MOVE ls_kna1-name1 TO ls_output_data-ssd_name.
ENDIF.
CASE ls_notif_mas-qmart.
WHEN 'Z3'.
ls_output_data-call_type = 'Service call'.
WHEN 'Z4'.
ls_output_data-call_type = 'Inquiry'.
WHEN 'Z5'.
ls_output_data-call_type = 'Normal DOA'.
WHEN 'Z6'.
ls_output_data-call_type = 'Duration DOA'.
ENDCASE.
IF ( ls_zs3n_t_els-handset_warranty = 'X' AND
ls_zs3n_t_els-status = 'A') OR
( ls_zs3n_t_els-wc_status = 'A' ).
ls_output_data-warranty = 'Yes '.
ELSE.
ls_output_data-warranty = 'No'.
ENDIF.
CLEAR:ls_partcode,ls_partdesc.
CLEAR:wa_pending_list.
CLEAR lv_tabix.
CLEAR lv_tabix.
READ TABLE it_pending_list INTO wa_pending_list WITH KEY qmnum = ls_output
_data-qmnum BINARY SEARCH.
IF sy-subrc = 0.
lv_tabix = sy-tabix.
ENDIF.
LOOP AT it_pending_list INTO wa_pending_list FROM lv_tabix.
IF wa_pending_list-qmnum NE ls_output_data-qmnum.
CLEAR wa_pending_list.
EXIT.
ENDIF.
IF ls_notif_status-description = 'Work In Progress'.
IF wa_pending_list-matkl = '811201' OR
wa_pending_list-matkl = '811701' OR
wa_pending_list-matkl = '811602' OR
wa_pending_list-matkl = '810206' OR
wa_pending_list-matkl = '811702'." PCBA
ls_output_data-bucket_stat = 'Pending for PCBA'.
ELSE.
ls_output_data-bucket_stat = 'Pending for parts'.
ENDIF.
ENDIF.
CLEAR ls_stock_details_cust.
READ TABLE lt_stock_details_cust INTO ls_stock_details_cust WITH KEY kun
nr = ls_notif_mas-ssd_id
mat
nr = wa_pending_list-matnr BINARY SEARCH.
IF sy-subrc = 0.
ls_output_data-cfa_stock = ls_stock_details_cust-labst.
ENDIF.
CLEAR ls_mard.
READ TABLE lt_mard INTO ls_mard WITH KEY matnr = wa_pending_list-matnr B
INARY SEARCH.
IF sy-subrc = 0.
ls_output_data-mnoi_stock = ls_mard-labst.
ENDIF.
CLEAR: ls_comp, ls_serv.
READ TABLE lt_comp INTO ls_comp WITH KEY matnr = wa_pending_list-matnr s
hip_party = wa_pending_list-kunnr BINARY SEARCH.
IF sy-subrc = 0.
READ TABLE lt_serv INTO ls_serv WITH KEY matnr = wa_pending_list-matnr
ship_party = wa_pending_list-kunnr BINARY SEARCH.
IF sy-subrc = 0.
ls_output_data-asp_stock = ls_comp-qty - ls_serv-qty.
ENDIF.
ENDIF.
IF wa_pending_list-matnr IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = wa_pending_list-matnr
IMPORTING
output = wa_pending_list-matnr.
MOVE wa_pending_list-matnr TO ls_output_data-part_code.
MOVE wa_pending_list-maktx TO ls_output_data-part_desc.
ELSE.
IF ls_output_data-bucket_stat EQ 'Pending for PCBA'
AND ls_notif_mas-pcba_matnr IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = ls_notif_mas-pcba_matnr
IMPORTING
output = ls_notif_mas-pcba_matnr.
MOVE ls_notif_mas-pcba_matnr TO ls_output_data-part_code.
ELSEIF ls_output_data-bucket_stat EQ 'Pending for PCBA'
AND ls_notif_mas-pcba_matnr IS INITIAL.
ls_output_data-bucket_stat = 'Work In Progress'.
ENDIF.
ENDIF.
CLEAR ls_part_pend.
READ TABLE lt_part_pend INTO ls_part_pend WITH KEY qmnum = ls_output_dat
a-qmnum BINARY SEARCH.
MOVE ls_part_pend-created_on TO ls_output_data-pcba_req_on.
APPEND ls_output_data TO et_output_data.
ENDLOOP.
IF wa_pending_list-matnr IS INITIAL.
IF ls_output_data-bucket_stat EQ 'Pending for PCBA'
AND ls_notif_mas-pcba_matnr IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = ls_notif_mas-pcba_matnr
IMPORTING
output = ls_notif_mas-pcba_matnr.
MOVE ls_notif_mas-pcba_matnr TO ls_output_data-part_code.
ELSEIF ls_output_data-bucket_stat EQ 'Pending for PCBA'
AND ls_notif_mas-pcba_matnr IS INITIAL.
ls_output_data-bucket_stat = 'Work In Progress'.
ENDIF.
CLEAR ls_part_pend.
READ TABLE lt_part_pend INTO ls_part_pend WITH KEY qmnum = ls_output_dat
a-qmnum BINARY SEARCH.
MOVE ls_part_pend-created_on TO ls_output_data-pcba_req_on.
APPEND ls_output_data TO et_output_data.
ENDIF.
CLEAR : ls_notif_mas,
ls_qmel,
ls_qpct_t,
ls_qpct_s,
ls_qpct_r,
ls_kna1,
ls_knvv,
ls_knvv_br,
ls_knvp_asm,
ls_notif_status,
ls_pick_req,
ls_fwd_pick_req,
ls_aufk,
ls_teco,
lv_ssd_tat,
lv_cour_rl_tat,
lv_rf_tat,
lv_cour_fl_tat,
lv_cust_await_tat,
lv_lava_cust_tat,
ls_output_data,
ls_partcode,
ls_partdesc,
ls_zs3n_t_els,
ls_stock_details_cust.
ENDLOOP.
ENDIF.
IF im_send_2_rf IS NOT INITIAL.
DELETE et_output_data WHERE bucket_stat = 'Ready For Dispatch to Customer'.
ENDIF.
************ GET ACTION AND FAULT DETAIL
LOOP AT et_output_data ASSIGNING <fs_tat_report>.
CLEAR: ls_qmur, ls_qpct_t, ls_qmfe, ls_qpct_r.
READ TABLE lt_qmur INTO ls_qmur WITH KEY qmnum = <fs_tat_report>-qmnum BINAR
Y SEARCH.
IF sy-subrc = 0.
READ TABLE lt_qpct INTO ls_qpct_t WITH KEY katalogart = 'T'
codegruppe = ls_qmur-urgrp
code = ls_qmur-urcod.
IF sy-subrc = 0.
<fs_tat_report>-fault_txt = ls_qpct_t-kurztext.
<fs_tat_report>-fault_cod = ls_qmur-urcod.
ENDIF.
ENDIF.
READ TABLE lt_qmfe INTO ls_qmfe WITH KEY qmnum = <fs_tat_report>-qmnum BINAR
Y SEARCH.
IF sy-subrc = 0.
READ TABLE lt_qpct INTO ls_qpct_r WITH KEY katalogart = 'R'
codegruppe = ls_qmfe-fegrp
code = ls_qmfe-fecod.
IF sy-subrc = 0.
<fs_tat_report>-action_txt = ls_qpct_r-kurztext.
ENDIF.
ENDIF.
* CALL FUNCTION 'BAPI_ALM_NOTIF_GET_DETAIL'
* EXPORTING
* number = <fs_tat_report>-qmnum
* IMPORTING
* notifhdtext = ls_notifhdtext
* TABLES
* notitem = lt_notitem
* notifcaus = lt_notifcaus.
* " action
* READ TABLE lt_notitem INTO ls_notitem INDEX 1.
* <fs_tat_report>-action_txt = ls_notitem-txt_probcd.
** "symptom
** <fs_history>-symptom = ls_notifhdtext-code_text.
* "fault
* READ TABLE lt_notifcaus INTO ls_notifcaus INDEX 1.
* <fs_tat_report>-fault_txt = ls_notifcaus-txt_causecd.
* <fs_tat_report>-fault_cod = ls_notifcaus-cause_code.
* CLEAR : ls_notitem,lt_notitem[],lt_notifcaus[],ls_notifcaus.
ENDLOOP.
************
*************************************************************************
* Added By Mayank on 28.05.2014 for deleting duplicate enteries
*************************************************************************
SORT et_output_data.
DELETE ADJACENT DUPLICATES FROM et_output_data COMPARING ALL FIELDS.
* APPEND LINES OF et_output_data TO lt_output_data.
ENDFUNCTION.

You might also like