SM37 is "Job Overview" It allows one to see what jobs are running based on certain selection criteria. While SM50 is "Process Overview", a job in SM37 may have spawned several processes simultaneously while it is running. The number of processes would be logged in SM50. They are based on the defined type such as dialog, batch, update, background, etc.. For instance as a user logs on they logon as a dialog user and are granted higher priority than a background user as far as a processor and memory times and sizes are concerned. Therefore there is less wait time for a dialog user.
Wednesday, June 25, 2014
Tuesday, June 24, 2014
Friday, April 25, 2014
BW - RSSDLINIT, RSSDLINITSEL, ROOSPRMSF and ROOSPRMSC
RSSDLINIT, RSSDLINITSEL, ROOSPRMSF and ROOSPRMSC
Wednesday, April 23, 2014
Sunday, April 20, 2014
ABAP - Constructor
Constructors are special methods that cannot be called using CALL METHOD.
Instead, they are called automatically by the system to set the starting state of a new object or class.
There are two types of constructors - instance constructors and static constructors.
To use them, you must declare them explicitly in the class.
ABAP - Inheritance
REPORT ZMYSAPLIBRARY.
*******************************************************
* Super class LCL_CompanyEmployees
*******************************************************
CLASS lcl_company_employees DEFINITION.
PUBLIC SECTION.
TYPES:
BEGIN OF t_employee,
no TYPE i,
name TYPE string,
wage TYPE i,
END OF t_employee.
METHODS:
constructor,
add_employee
IMPORTING im_no TYPE i
im_name TYPE string
im_wage TYPE i,
display_employee_list,
display_no_of_employees.
PRIVATE SECTION.
CLASS-DATA: i_employee_list TYPE TABLE OF t_employee,
no_of_employees TYPE i.
ENDCLASS.
*-- CLASS LCL_CompanyEmployees IMPLEMENTATION
CLASS lcl_company_employees IMPLEMENTATION.
METHOD constructor.
no_of_employees = no_of_employees + 1.
ENDMETHOD.
METHOD add_employee.
* Adds a new employee to the list of employees
DATA: l_employee TYPE t_employee.
l_employee-no = im_no.
l_employee-name = im_name.
l_employee-wage = im_wage.
APPEND l_employee TO i_employee_list.
ENDMETHOD.
METHOD display_employee_list.
* Displays all employees and there wage
DATA: l_employee TYPE t_employee.
WRITE: / 'List of Employees'.
LOOP AT i_employee_list INTO l_employee.
WRITE: / l_employee-no, l_employee-name, l_employee-wage.
ENDLOOP.
ENDMETHOD.
METHOD display_no_of_employees.
* Displays total number of employees
SKIP 3.
WRITE: / 'Total number of employees:', no_of_employees.
ENDMETHOD.
ENDCLASS.
*******************************************************
* Sub class LCL_BlueCollar_Employee
*******************************************************
CLASS lcl_bluecollar_employee DEFINITION
INHERITING FROM lcl_company_employees.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING im_no TYPE i
im_name TYPE string
im_hours TYPE i
im_hourly_payment TYPE i,
add_employee REDEFINITION.
PRIVATE SECTION.
DATA:no TYPE i,
name TYPE string,
hours TYPE i,
hourly_payment TYPE i.
ENDCLASS.
*---- CLASS LCL_BlueCollar_Employee IMPLEMENTATION
CLASS lcl_bluecollar_employee IMPLEMENTATION.
METHOD constructor.
* The superclass constructor method must be called from the subclass
* constructor method
CALL METHOD super->constructor.
no = im_no.
name = im_name.
hours = im_hours.
hourly_payment = im_hourly_payment.
ENDMETHOD.
METHOD add_employee.
* Calculate wage an call the superclass method add_employee to add
* the employee to the employee list
DATA: l_wage TYPE i.
l_wage = hours * hourly_payment.
CALL METHOD super->add_employee
EXPORTING im_no = no
im_name = name
im_wage = l_wage.
ENDMETHOD.
ENDCLASS.
*******************************************************
* Sub class LCL_WhiteCollar_Employee
*******************************************************
CLASS lcl_whitecollar_employee DEFINITION
INHERITING FROM lcl_company_employees.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING im_no TYPE i
im_name TYPE string
im_monthly_salary TYPE i
im_monthly_deducations TYPE i,
add_employee REDEFINITION.
PRIVATE SECTION.
DATA:
no TYPE i,
name TYPE string,
monthly_salary TYPE i,
monthly_deducations TYPE i.
ENDCLASS.
*---- CLASS LCL_WhiteCollar_Employee IMPLEMENTATION
CLASS lcl_whitecollar_employee IMPLEMENTATION.
METHOD constructor.
* The superclass constructor method must be called from the subclass
* constructor method
CALL METHOD super->constructor.
no = im_no.
name = im_name.
monthly_salary = im_monthly_salary.
monthly_deducations = im_monthly_deducations.
ENDMETHOD.
METHOD add_employee.
* Calculate wage an call the superclass method add_employee to add
* the employee to the employee list
DATA: l_wage TYPE i.
l_wage = monthly_salary - monthly_deducations.
CALL METHOD super->add_employee
EXPORTING im_no = no
im_name = name
im_wage = l_wage.
ENDMETHOD.
ENDCLASS.
*******************************************************
* R E P O R T
*******************************************************
DATA:
* Object references
o_bluecollar_employee1 TYPE REF TO lcl_bluecollar_employee,
o_whitecollar_employee1 TYPE REF TO lcl_whitecollar_employee.
START-OF-SELECTION.
* Create bluecollar employee obeject
CREATE OBJECT o_bluecollar_employee1
EXPORTING im_no = 1
im_name = 'Gylle Karen'
im_hours = 38
im_hourly_payment = 75.
* Add bluecollar employee to employee list
CALL METHOD o_bluecollar_employee1->add_employee
EXPORTING im_no = 1
im_name = 'Gylle Karen'
im_wage = 0.
* Create whitecollar employee obeject
CREATE OBJECT o_whitecollar_employee1
EXPORTING im_no = 2
im_name = 'John Dickens'
im_monthly_salary = 10000
im_monthly_deducations = 2500.
* Add bluecollar employee to employee list
CALL METHOD o_whitecollar_employee1->add_employee
EXPORTING im_no = 1
im_name = 'Karen Johnson'
im_wage = 0.
* Display employee list and number of employees. Note that the result
* will be the same when called from o_whitecollar_employee1 or
* o_bluecolarcollar_employee1, because the methods are defined
* as static (CLASS-METHODS)
CALL METHOD o_whitecollar_employee1->display_employee_list.
CALL METHOD o_whitecollar_employee1->display_no_of_employees.
Saturday, April 19, 2014
ABAP - Static Method/Attribute and Instance Method/Attribute
CLASS-METHODS: - Static Method
METHODS: - Instance Method
CLASS-DATA: - Static Attribute
DATA: - Instance Attribute
METHODS: - Instance Method
CLASS-DATA: - Static Attribute
DATA: - Instance Attribute
ABAP - Global Class and Local Class
The state of real-world objects is represented by attributes, and the behaviour of the real-world object is represented by methods. A method is a block of code, such as function module or subroutine, associated with the object.
A class describes an object, and the object is a runtime instance of that class. Objects are created using the syntax CREATE OBJECT. The statement CREATE OBJECT creates an object in the memory of the application.
You can create any number of objects based on a single class, and each instance (object) of the class has its own unique identity and its own set of values for its attributes.
Local classes are defined within an ABAP program and can be used only in the program in which they are defined.
Template for ABAP Local Class:
CLASS CL1 DEFINATION.
PUBLIC SECTION.
DATA: d1, d2.
METHODS: M1.
EVENTS: EV1.
PROTECTED SECTION.
DATA: d3, d4.
METHODS: M2.
EVENTS: EV2.
PRIVATE SECTION.
DATA: d5, d6.
METHODS: M3.
EVENTS: EV3.
ENDCLASS.
CLASS CL1 IMPLEMENTATION.
METHOD M1.
ENDMETHOD.
METHOD M2.
ENDMETHOD.
METHOD M3.
ENDMETHOD.
ENDCLASS.
Global classes are stored in a class library and are visible system-wide. Global classes can be used by every program in the system. Global classes are defined in the Class Builder (Transaction SE24) in the ABAP Workbench.
Friday, April 18, 2014
ABAP - ALV
REPORT ZMYSAPLIBRARY.
TYPE-POOLS: SLIS.
DATA: G_REPID LIKE SY-REPID,
GS_PRINT TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
COL_POS TYPE I.
DATA: BEGIN OF ITAB,
FIELD1(5) TYPE C,
FIELD2(5) TYPE C,
FIELD3(5) TYPE P DECIMALS 2,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB1.
DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB_FIELDCAT.
** Print Parameters
*PARAMETERS:
* P_PRINT AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE
* P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO
* P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE
* P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE
* P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO
* P_RESERV TYPE I. "NO OF FOOTER LINE
INITIALIZATION.
G_REPID = SY-REPID.
*PERFORM PRINT_BUILD USING GS_PRINT. "Print PARAMETERS
START-OF-SELECTION.
* TEST DATA
MOVE 'TEST1' TO ITAB1-FIELD1.
MOVE 'TEST1' TO ITAB1-FIELD2.
MOVE '10.00' TO ITAB1-FIELD3.
APPEND ITAB1.
MOVE 'TEST2' TO ITAB1-FIELD1.
MOVE 'TEST2' TO ITAB1-FIELD2.
MOVE '20.00' TO ITAB1-FIELD3.
APPEND ITAB1.
DO 50 TIMES.
APPEND ITAB1.
ENDDO.
END-OF-SELECTION.
PERFORM BUILD.
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.
PERFORM COMMENT_BUILD CHANGING GT_LIST_TOP_OF_PAGE.
PERFORM CALL_ALV.
FORM BUILD.
* DATA FIELD CATALOG
* Explain Field Description to ALV
DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD1'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-SELTEXT_L = 'HEAD1'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD2'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-NO_OUT = 'X'.
FIELDCAT_LN-SELTEXT_L = 'HEAD2'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD3'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
FIELDCAT_LN-REF_TABNAME = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY
APPEND FIELDCAT_LN TO GT_FIELDCAT.
* DATA SORTING AND SUBTOTAL
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD1'.
GS_SORT-SPOS = 1.
GS_SORT-UP = 'X'.
GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.
CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD2'.
GS_SORT-SPOS = 2.
GS_SORT-UP = 'X'.
*GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.
ENDFORM.
FORM CALL_ALV.
* ABAP List Viewer
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = 'ITAB1'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = GT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = GT_EVENTS[]
* IT_EVENT_EXIT =
IS_PRINT = GS_PRINT
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.
* HEADER FORM
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
* define END_OF_PAGE event
* READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
* INTO LS_EVENT.
* IF SY-SUBRC = 0.
* MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
* APPEND LS_EVENT TO LT_EVENTS.
* ENDIF.
ENDFORM.
FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GS_LINE TYPE SLIS_LISTHEADER.
CLEAR GS_LINE.
GS_LINE-TYP = 'H'.
GS_LINE-INFO = 'HEADER 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = 'STATUS 1'.
GS_LINE-INFO = 'INFO 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
GS_LINE-KEY = 'STATUS 2'.
GS_LINE-INFO = 'INFO 2'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
* CLEAR GS_LINE.
* GS_LINE-TYP = 'A'.
*
* GS_LINE-INFO = 'ACTION'.
* APPEND GS_LINE TO GT_TOP_OF_PAGE.
ENDFORM.
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.
ENDFORM.
FORM END_OF_PAGE.
WRITE at (sy-linsz) sy-pagno CENTERED.
ENDFORM.
* PRINT SETTINGS
*FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.
* LS_PRINT-PRINT = P_PRINT. "PRINT IMMEDIATE
* LS_PRINT-NO_PRINT_SELINFOS = P_NOSINF. "NO SELECTION INFO
* LS_PRINT-NO_COVERPAGE = P_NOCOVE. "NO COVER PAGE
* LS_PRINT-NO_NEW_PAGE = P_NONEWP.
* LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO
* LS_PRINT-RESERVE_LINES = P_RESERV.
*ENDFORM.
*END OF ZALV PROGRAM
Tuesday, April 15, 2014
ABAP - SELECT-OPTIONS FOR
REPORT ZMYSAPLIBRARY.
TABLES: sflight.
DATA: BEGIN OF t_report OCCURS 3,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
seatsmax LIKE sflight-seatsmax,
END OF t_report.
SELECT-OPTIONS s_carrid FOR sflight-carrid.
SELECT-OPTIONS s_connid FOR sflight-connid.
SELECT * FROM sflight
WHERE carrid IN s_carrid AND
connid IN s_connid.
t_report-carrid = sflight-carrid.
t_report-connid = sflight-connid.
t_report-fldate = sflight-fldate.
t_report-seatsmax = sflight-seatsmax.
APPEND t_report.
ENDSELECT.
IF sy-subrc NE 0. "sy-subrc = return code
WRITE 'Data not found'.
ENDIF.
LOOP AT t_report.
skip. "comment:Go to next line
WRITE t_report-carrid.
WRITE t_report-connid.
WRITE t_report-fldate.
WRITE t_report-seatsmax.
ENDLOOP.
Monday, April 14, 2014
ABAP - Operands
Operator | Description |
=, EQ | Equal: True, if the content of operand1 matches the content of operand2. |
<>, NE | Not Equal: True, if the content of operand1 does not match the content of operand2. |
<, LT | Lower Than: True, if the content of operand1 is smaller than the content of operand2. |
>, GT | Greater Than: True, if the content of operand1 is greater than the content of operand2. |
<=, LE | Lower Equal: True, if the content of operand1 is lower than or equal to the content of operand2. |
>=, GE | Greater Equal: True, if the content of operand1 is greater than or equal to the content of operand2. |
ABAP - Case Statement
REPORT ZMYSAPLIBRARY.
parameters : x type i,
y type i,
ch type i.
data z type i.
case ch.
when 1.
z = x + y. write :/ 'Sum is ',z.
when 2.
z = x - y. write :/ 'Difference is ',z.
when 3.
z = x * y.
write :/ 'Product is ',z.
when 4.
z = x / y. write :/ 'Division is ',z.
when others.
write :/ 'Invalid choice, please enter 1,2,3,4'.
endcase.
parameters : x type i,
y type i,
ch type i.
data z type i.
case ch.
when 1.
z = x + y. write :/ 'Sum is ',z.
when 2.
z = x - y. write :/ 'Difference is ',z.
when 3.
z = x * y.
write :/ 'Product is ',z.
when 4.
z = x / y. write :/ 'Division is ',z.
when others.
write :/ 'Invalid choice, please enter 1,2,3,4'.
endcase.
Friday, April 11, 2014
ABAP - Copy Table1 to Table2
*& Report ZMYSAPLIBRARY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMYSAPLIBRARY.
TABLES : sflight,
zsflight.
data : itab like sflight occurs 0 with header line.
select * from sflight into table itab.
loop at itab.
insert into zsflight values itab .
endloop.
Thursday, April 10, 2014
ABAP - ZMYSAPLIBRARY_Sample 2
DATA it_flight TYPE STANDARD TABLE OF sflight.
DATA wa_sflight TYPE sflight.
WRITE / 'Printout in tableorder of Database:'.
SELECT * FROM sflight
INTO wa_sflight
WHERE carrid = 'JL'.
WRITE: / wa_sflight-carrid,
wa_sflight-connid,
wa_sflight-fldate,
wa_sflight-price,
wa_sflight-currency,
wa_sflight-planetype.
ENDSELECT.
ULINE.
SELECT * FROM sflight
INTO TABLE it_flight
WHERE carrid = 'JL'.
sort it_flight by fldate.
WRITE / 'Printout in tableorder of sorted ITAB:'.
LOOP AT it_flight INTO wa_sflight.
WRITE: / wa_sflight-carrid,
wa_sflight-connid,
wa_sflight-fldate,
wa_sflight-price,
wa_sflight-currency,
wa_sflight-planetype.
ENDLOOP.
ABAP - ZMYSAPLIBRARY_Sample 1
*&---------------------------------------------------------------------*
*& Report ZMYSAPLIBRARY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMYSAPLIBRARY.
* Declarative Section
TYPES: BEGIN OF zsf_type,
carrid LIKE sflight-carrid,
carrname LIKE scarr-carrname,
currcode LIKE scarr-currcode,
minpay LIKE sflight-paymentsum,
maxpay LIKE sflight-paymentsum,
avgpay LIKE sflight-paymentsum,
totpay LIKE sflight-paymentsum,
END OF zsf_type.
DATA: i_tab_fl TYPE STANDARD TABLE OF zsf_type,
wa_tab_fl TYPE zsf_type,
time_beg TYPE i,
time_end TYPE i,
time_tot TYPE i.
* Program Statements
GET RUN TIME FIELD time_beg.
SELECT sflight~carrid scarr~carrname
MIN( paymentsum ) AS minpay
MAX( paymentsum ) AS maxpay
AVG( paymentsum ) AS avgpay
SUM( paymentsum ) AS totpay
FROM sflight JOIN scarr
ON sflight~carrid = scarr~carrid
INTO CORRESPONDING FIELDS OF TABLE i_tab_fl
GROUP BY sflight~carrid scarr~carrname
ORDER BY sflight~carrid.
GET RUN TIME FIELD time_end.
time_tot = ( time_end - time_beg ).
WRITE:/ 'Carriers Data'.
ULINE.
WRITE:/(8) 'CARRIER', (20) 'NAME',(23) 'MIN PAY',
(23) 'MAX PAY', (23) 'AVG PAY', (23) 'SUM PAY'.
ULINE.
LOOP AT i_tab_fl INTO wa_tab_fl.
WRITE:/(8) wa_tab_fl-carrid,
(20) wa_tab_fl-carrname,
(17) wa_tab_fl-minpay, wa_tab_fl-currcode,
(17) wa_tab_fl-maxpay, wa_tab_fl-currcode,
(17) wa_tab_fl-avgpay, wa_tab_fl-currcode,
(17) wa_tab_fl-totpay, wa_tab_fl-currcode.
ENDLOOP.
WRITE: /, / 'Runtime = ', time_tot.
*& Report ZMYSAPLIBRARY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMYSAPLIBRARY.
* Declarative Section
TYPES: BEGIN OF zsf_type,
carrid LIKE sflight-carrid,
carrname LIKE scarr-carrname,
currcode LIKE scarr-currcode,
minpay LIKE sflight-paymentsum,
maxpay LIKE sflight-paymentsum,
avgpay LIKE sflight-paymentsum,
totpay LIKE sflight-paymentsum,
END OF zsf_type.
DATA: i_tab_fl TYPE STANDARD TABLE OF zsf_type,
wa_tab_fl TYPE zsf_type,
time_beg TYPE i,
time_end TYPE i,
time_tot TYPE i.
* Program Statements
GET RUN TIME FIELD time_beg.
SELECT sflight~carrid scarr~carrname
MIN( paymentsum ) AS minpay
MAX( paymentsum ) AS maxpay
AVG( paymentsum ) AS avgpay
SUM( paymentsum ) AS totpay
FROM sflight JOIN scarr
ON sflight~carrid = scarr~carrid
INTO CORRESPONDING FIELDS OF TABLE i_tab_fl
GROUP BY sflight~carrid scarr~carrname
ORDER BY sflight~carrid.
GET RUN TIME FIELD time_end.
time_tot = ( time_end - time_beg ).
WRITE:/ 'Carriers Data'.
ULINE.
WRITE:/(8) 'CARRIER', (20) 'NAME',(23) 'MIN PAY',
(23) 'MAX PAY', (23) 'AVG PAY', (23) 'SUM PAY'.
ULINE.
LOOP AT i_tab_fl INTO wa_tab_fl.
WRITE:/(8) wa_tab_fl-carrid,
(20) wa_tab_fl-carrname,
(17) wa_tab_fl-minpay, wa_tab_fl-currcode,
(17) wa_tab_fl-maxpay, wa_tab_fl-currcode,
(17) wa_tab_fl-avgpay, wa_tab_fl-currcode,
(17) wa_tab_fl-totpay, wa_tab_fl-currcode.
ENDLOOP.
WRITE: /, / 'Runtime = ', time_tot.
ABAP - User Exit_Master Data
*&---------------------------------------------------------------------*
*& Include ZXRSAU02_0PM_MAINTPOS_ATTR
*&---------------------------------------------------------------------*
************************************************************************
* CR-A02996 WIKKER II
* 16/08/2013 MYSKOT RT Enhance 0PM_MAINTPOS_ATTR
*
************************************************************************
TYPES : BEGIN OF S_MPOS,
WAPOS TYPE WAPOS,
OBKNR TYPE OBJKNR,
PRIOK TYPE PRIOK,
STATUS TYPE MPSTAT,
AENAM TYPE AENAM,
AEDAT TYPE AEDAT,
ERNAM TYPE ERNAM,
ERSDT TYPE ERSDT,
END OF S_MPOS.
DATA: IT_MAINTP_ATTR TYPE STANDARD TABLE OF BWE_0PM_MAINTPOS,
IT_MPOS TYPE SORTED TABLE OF S_MPOS WITH UNIQUE KEY WAPOS,
W_MPOS LIKE LINE OF IT_MPOS.
FIELD-SYMBOLS : <FS_MAINTP_ATTR> TYPE BWE_0PM_MAINTPOS.
FREE: IT_MAINTP_ATTR.
IT_MAINTP_ATTR[] = I_T_DATA[].
FREE: I_T_DATA.
IF IT_MAINTP_ATTR[] IS NOT INITIAL.
SELECT WAPOS OBKNR PRIOK STATUS AENAM AEDAT ERNAM ERSDT
INTO TABLE IT_MPOS
FROM MPOS
FOR ALL ENTRIES IN IT_MAINTP_ATTR
WHERE WAPOS = IT_MAINTP_ATTR-WAPOS.
ENDIF.
IF IT_MPOS[] IS NOT INITIAL.
LOOP AT IT_MAINTP_ATTR ASSIGNING <FS_MAINTP_ATTR>.
READ TABLE IT_MPOS INTO W_MPOS
WITH KEY WAPOS = <FS_MAINTP_ATTR>-WAPOS
BINARY SEARCH.
IF SY-SUBRC = 0.
<FS_MAINTP_ATTR>-OBKNR = W_MPOS-OBKNR.
<FS_MAINTP_ATTR>-PRIOK = W_MPOS-PRIOK.
<FS_MAINTP_ATTR>-STATUS = W_MPOS-STATUS.
<FS_MAINTP_ATTR>-AENAM = W_MPOS-AENAM.
<FS_MAINTP_ATTR>-AEDAT = W_MPOS-AEDAT.
<FS_MAINTP_ATTR>-ERNAM = W_MPOS-ERNAM.
<FS_MAINTP_ATTR>-ERSDT = W_MPOS-ERSDT.
ENDIF.
ENDLOOP.
ENDIF.
I_T_DATA[] = IT_MAINTP_ATTR[].
*& Include ZXRSAU02_0PM_MAINTPOS_ATTR
*&---------------------------------------------------------------------*
************************************************************************
* CR-A02996 WIKKER II
* 16/08/2013 MYSKOT RT Enhance 0PM_MAINTPOS_ATTR
*
************************************************************************
TYPES : BEGIN OF S_MPOS,
WAPOS TYPE WAPOS,
OBKNR TYPE OBJKNR,
PRIOK TYPE PRIOK,
STATUS TYPE MPSTAT,
AENAM TYPE AENAM,
AEDAT TYPE AEDAT,
ERNAM TYPE ERNAM,
ERSDT TYPE ERSDT,
END OF S_MPOS.
DATA: IT_MAINTP_ATTR TYPE STANDARD TABLE OF BWE_0PM_MAINTPOS,
IT_MPOS TYPE SORTED TABLE OF S_MPOS WITH UNIQUE KEY WAPOS,
W_MPOS LIKE LINE OF IT_MPOS.
FIELD-SYMBOLS : <FS_MAINTP_ATTR> TYPE BWE_0PM_MAINTPOS.
FREE: IT_MAINTP_ATTR.
IT_MAINTP_ATTR[] = I_T_DATA[].
FREE: I_T_DATA.
IF IT_MAINTP_ATTR[] IS NOT INITIAL.
SELECT WAPOS OBKNR PRIOK STATUS AENAM AEDAT ERNAM ERSDT
INTO TABLE IT_MPOS
FROM MPOS
FOR ALL ENTRIES IN IT_MAINTP_ATTR
WHERE WAPOS = IT_MAINTP_ATTR-WAPOS.
ENDIF.
IF IT_MPOS[] IS NOT INITIAL.
LOOP AT IT_MAINTP_ATTR ASSIGNING <FS_MAINTP_ATTR>.
READ TABLE IT_MPOS INTO W_MPOS
WITH KEY WAPOS = <FS_MAINTP_ATTR>-WAPOS
BINARY SEARCH.
IF SY-SUBRC = 0.
<FS_MAINTP_ATTR>-OBKNR = W_MPOS-OBKNR.
<FS_MAINTP_ATTR>-PRIOK = W_MPOS-PRIOK.
<FS_MAINTP_ATTR>-STATUS = W_MPOS-STATUS.
<FS_MAINTP_ATTR>-AENAM = W_MPOS-AENAM.
<FS_MAINTP_ATTR>-AEDAT = W_MPOS-AEDAT.
<FS_MAINTP_ATTR>-ERNAM = W_MPOS-ERNAM.
<FS_MAINTP_ATTR>-ERSDT = W_MPOS-ERSDT.
ENDIF.
ENDLOOP.
ENDIF.
I_T_DATA[] = IT_MAINTP_ATTR[].
Subscribe to:
Posts (Atom)