KEMBAR78
CDS View Used in Select + Subquery | PDF
0% found this document useful (0 votes)
3K views7 pages

CDS View Used in Select + Subquery

CDS View in select

Uploaded by

topankajsharma
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)
3K views7 pages

CDS View Used in Select + Subquery

CDS View in select

Uploaded by

topankajsharma
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/ 7

**----------------------------------------------------------------------

**CONFIDENTIAL AND PROPRIETARY


**COPYRIGHT 2015, QATAR PETROCHEMICALS PROJECT
**ALL RIGHTS RESERVED
**----------------------------------------------------------------------*
**----------------------------------------------------------------------*
** PROGRAM NAME :zhr_py_r_0032_lock_FRM
** CREATED BY :Pankaj Kumar
** CREATION DATE :2016-08-01
** DER NUMBER :PY_R_0032
** TRANSPORT NUMBER :DERK907789
** DESCRIPTION :Locked_Work_Items Report
**----------------------------------------------------------------------*
** REVISION HISTORY-----------------------------------------------------*
** REFERENCE TYPE: <DER OR TPR OR SCR>
** REFERENCE NO:
** CHANGED BY:
** CHANGE DATE: YYYY-MM-DD
** TRANSPORT NUMBER:
** DESCRIPTION:
**----------------------------------------------------------------------*
FORM fetch_data.

SELECT
report_type,
request_number,
dependent_id,
dependent_name,
personnel_number,
quota_type,
quota_number,
request_status,
amount,
error " Posting Error Message
FROM
zhr_lock_data
INTO CORRESPONDING FIELDS OF TABLE @i_lock
WHERE request_status IN @s_sts.

ENDFORM.

FORM display_report.
*Local Data Declarations
DATA: lwa_layout TYPE slis_layout_alv.
CONSTANTS: lc_a TYPE char1 VALUE 'A'. " A of type CHAR1

lwa_layout-colwidth_optimize = abap_true.
lwa_layout-zebra = abap_true.

PERFORM field_catalog.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = sy-repid
is_layout = lwa_layout
it_fieldcat = i_fieldcat
i_default = 'X'
i_save = lc_a
* IS_VARIANT =
TABLES
t_outtab = i_lock
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF. " IF sy-subrc <> 0

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FIELD_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM field_catalog_build USING fp_tabname TYPE slis_tabname
fp_fieldname TYPE slis_fieldname
fp_seltext_l TYPE char100. " Seltext_l of type
CHAR100.

DATA: lwa_fld TYPE slis_fieldcat_alv.

CLEAR lwa_fld.

lwa_fld-tabname = fp_tabname.
lwa_fld-fieldname = fp_fieldname.
lwa_fld-seltext_l = fp_seltext_l.

APPEND lwa_fld TO i_fieldcat.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FIELD_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM field_catalog .

PERFORM field_catalog_build USING :


* Report Type
'I_LOCK'(014)
'REPORT_TYPE'(002)
'REPORT_TYPE'(002),
* Request Number
'I_LOCK'(014)
'REQUEST_NUMBER'(003)
'REQUEST_NUMBER'(003),
* Dependent ID
'I_LOCK'(014)
'DEPENDENT_ID'(004)
'DEPENDENT_ID'(004),
* Dependent Name
'I_LOCK'(014)
'DEPENDENT_NAME'(005)
'DEPENDENT_NAME'(005),
* Personnel Number
'I_LOCK'(014)
'PERSONNEL_NUMBER'(006)
'PERSONNEL_NUMBER'(006),
* Quota Type
'I_LOCK'(014)
'QUOTA_TYPE'(007)
'QUOTA_TYPE'(007),
* Quota Number
'I_LOCK'(014)
'QUOTA_NUMBER'(008)
'QUOTA_NUMBER'(008),
* Request Status
'I_LOCK'(014)
'REQUEST_STATUS'(009)
'REQUEST_STATUS'(009),
* Amount
'I_LOCK'(014)
'AMOUNT'(010)
'AMOUNT'(010),
* Error
'I_LOCK'(014)
'ERROR'(011)
'ERROR'(011).

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FETCH_ADMIN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fetch_admin .

CONSTANTS : lc_pad TYPE char3 VALUE 'PAD', " Pad of type CHAR3
lc_email TYPE char1 VALUE 'E', " Email of type CHAR1
lc_target TYPE char2 VALUE 'TO', " Target of type CHAR2
lc_subty TYPE char4 VALUE '0010'. " Subty of type CHAR4

DATA : lwa_recipient TYPE zut_email_recipient. " Email Recipient list Structure

SELECT usrid_long " Communication: Long Identification/Number


FROM pa0105 " HR Master Record: Infotype 0105 (Communications)
INTO TABLE @DATA(li_email)
WHERE pernr IN
(
SELECT pernr " Personnel number
FROM pa0001 " HR Master Record: Infotype 0001 (Org. Assignment)
WHERE sachp = @lc_pad "Personnel Administrator
AND begda LE @sy-datum
AND endda GE @sy-datum )
AND begda LE @sy-datum
AND endda GE @sy-datum
AND subty = @lc_subty.

IF s_pernr IS NOT INITIAL.


SELECT usrid_long " Communication: Long Identification/Number
FROM pa0105 " HR Master Record: Infotype 0105 (Communications)
APPENDING TABLE @li_email
WHERE pernr = @s_pernr
AND begda LE @sy-datum
AND endda GE @sy-datum
AND subty = @lc_subty.
ENDIF. " IF s_pernr IS NOT INITIAL

SORT li_email.
DELETE ADJACENT DUPLICATES FROM li_email.

IF li_email IS NOT INITIAL.


LOOP AT li_email ASSIGNING FIELD-SYMBOL(<lfs_email>) .
CLEAR lwa_recipient.

lwa_recipient-recipient_type = lc_email.
lwa_recipient-recipient_target = lc_target.
lwa_recipient-recipient = <lfs_email>-usrid_long.

APPEND lwa_recipient TO i_recipient.

ENDLOOP. " LOOP AT li_email ASSIGNING FIELD-SYMBOL(<lfs_email>)


ENDIF. " IF li_email IS NOT INITIAL

ENDFORM.
*&---------------------------------------------------------------------*
*& Form SEND_EMAIL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM send_email .

CONSTANTS : lc_sub TYPE tdobname VALUE 'LOCKED_WORKITEMS_SUB', " Name


lc_body TYPE tdobname VALUE 'LOCKED_WORKITEMS_BDY', " Name
lc_st_id TYPE tdid VALUE 'ST', " Text ID
lc_st_obj TYPE tdobject VALUE 'TEXT', " Texts:
Application Object
lc_raw TYPE so_obj_tp VALUE 'RAW'. " Code for
document class

DATA : li_lines TYPE bbpt_tline,


"Text Line
l_subject TYPE string,
lc_file_type TYPE zzexten VALUE 'XLS',
l_sender TYPE syst_uname,
"Sender
li_body TYPE bcsy_text,
"For body of email
lwa_body TYPE soli,
"For body of email
lwa_str TYPE zatcontent_st, "
Email Attachment Content
li_str TYPE STANDARD TABLE OF zatcontent_st INITIAL SIZE 0, "
Email Attachment Content
li_attachment TYPE STANDARD TABLE OF zatattachment_st INITIAL SIZE 0, "
Email Attachment
lwa_attachment TYPE zatattachment_st. "
Email Attachment

FIELD-SYMBOLS: <lfs_lines> TYPE tline. " SAPscript: Text Lines

*=========================================================
*Read email Subject from SO10 text
*=========================================================
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = lc_st_id " ST
language = sy-langu
name = lc_sub
object = lc_st_obj "TEXT
TABLES
lines = li_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc = 0.
LOOP AT li_lines ASSIGNING <lfs_lines>.
CONCATENATE <lfs_lines>-tdline sy-datum sy-uzeit
INTO l_subject
SEPARATED BY space.
ENDLOOP. " LOOP AT li_lines ASSIGNING <lfs_lines>
ENDIF. " IF sy-subrc = 0

CLEAR li_lines[].

*=========================================================
*Read email Body from SO10 text
*=========================================================
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = lc_st_id " ST
language = sy-langu
name = lc_body
object = lc_st_obj "TEXT
TABLES
lines = li_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc = 0.
LOOP AT li_lines ASSIGNING <lfs_lines>.
lwa_body = <lfs_lines>-tdline.
APPEND lwa_body TO li_body.
CLEAR lwa_body.
ENDLOOP. " LOOP AT li_lines ASSIGNING <lfs_lines>
ENDIF. " IF sy-subrc = 0

*=========================================================
* Create Attachment - Log
*=========================================================
PERFORM set_header CHANGING lwa_str-line.

APPEND lwa_str TO li_str.

DATA : lc_quota TYPE char20, " Quota of type CHAR20


lc_amount TYPE char20. " Amount of type CHAR20

LOOP AT i_lock ASSIGNING FIELD-SYMBOL(<lfs_lock>).

CLEAR : lc_quota,
lc_amount.
lc_quota = <lfs_lock>-quota_number.
lc_amount = <lfs_lock>-amount.

CONCATENATE <lfs_lock>-report_type
<lfs_lock>-request_number
<lfs_lock>-dependent_id
<lfs_lock>-dependent_name
<lfs_lock>-personnel_number
<lfs_lock>-quota_type
lc_quota
<lfs_lock>-request_status
lc_amount
<lfs_lock>-error
INTO lwa_str-line SEPARATED BY cl_abap_char_utilities=>horizontal_tab.

APPEND lwa_str TO li_str.


ENDLOOP. " LOOP AT i_lock ASSIGNING FIELD-SYMBOL(<lfs_lock>)

lwa_attachment-f_name = 'Locked Work Items'(012).


lwa_attachment-f_exten = lc_file_type.
lwa_attachment-f_content = li_str.
lwa_attachment-f_zip_flag = abap_true.
APPEND lwa_attachment TO li_attachment.
CLEAR lwa_attachment.

*===========================================================
* Set Sender
*===========================================================
l_sender = sy-uname.

*===========================================================
* Set Email
*===========================================================

IF i_recipient IS NOT INITIAL.


* Call this function module for sending emails
CALL FUNCTION 'Z_AT_SEND_EMAIL'
EXPORTING
im_format = lc_raw
im_senduser = l_sender
im_subject = l_subject
im_mail_attachment = li_attachment
TABLES
t_recepient_list = i_recipient
t_mail_body = li_body
EXCEPTIONS
email_error = 1
sender_conflict = 2
OTHERS = 3.

IF sy-subrc IS INITIAL.
COMMIT WORK.
ENDIF. " IF sy-subrc IS INITIAL

ENDIF. " IF i_recipient IS NOT INITIAL

ENDFORM.
*&---------------------------------------------------------------------*
*& Form SET_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_LWA_STR_LINE text
*----------------------------------------------------------------------*
FORM set_header CHANGING p_string.
CONCATENATE
'REPORT_TYPE'(002)
'REQUEST_NUMBER'(003)
'DEPENDENT_ID'(004)
'DEPENDENT_NAME'(005)
'PERSONNEL_NUMBER'(006)
'QUOTA_TYPE'(007)
'QUOTA_NUMBER'(008)
'REQUEST_STATUS'(009)
'AMOUNT'(010)
'ERROR'(011)
INTO p_string SEPARATED BY cl_abap_char_utilities=>horizontal_tab.

ENDFORM.

You might also like