Sei sulla pagina 1di 3

PROGRAM trans_routine.

*---------------------------------------------------------------------*
*
CLASS routine DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_transform DEFINITION.
PUBLIC SECTION.
*

Attributs
DATA:
p_check_master_data_exist
TYPE RSODSOCHECKONLY READ-ONLY,
*Instance for getting request runtime attributs;
*
Available information: Refer to methods of
*
interface 'if_rsbk_request_admintab_view'
p_r_request
TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.
PRIVATE SECTION.
TYPE-POOLS: rsd, rstr.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Rule specific types


TYPES:
BEGIN OF _ty_s_SC_1,
Field: ADDRNUMBER Address number.
ADDRNUMBER
TYPE C LENGTH 10,
Field: PERSNUMBER Person number.
PERSNUMBER
TYPE C LENGTH 10,
Field: DATE_FROM From.
DATE_FROM
TYPE D,
Field: CONSNUMBER Sequence number.
CONSNUMBER
TYPE N LENGTH 3,
Field: COUNTRY Country.
COUNTRY
TYPE C LENGTH 3,
Field: FLGDEFAULT Standard No..
FLGDEFAULT
TYPE C LENGTH 1,
Field: FLG_NOUSE Do not use.
FLG_NOUSE
TYPE C LENGTH 1,
Field: HOME_FLAG Home address.
HOME_FLAG
TYPE C LENGTH 1,
Field: TEL_NUMBER Telephone.
TEL_NUMBER
TYPE C LENGTH 30,
Field: TEL_EXTENS Extension.
TEL_EXTENS
TYPE C LENGTH 10,
Field: TELNR_LONG Telephone No..
TELNR_LONG
TYPE C LENGTH 30,
Field: TELNR_CALL Caller number.
TELNR_CALL
TYPE C LENGTH 30,
Field: DFT_RECEIV SMS-Enab..
DFT_RECEIV
TYPE C LENGTH 1,
Field: R3_USER Mobile phone.
R3_USER
TYPE C LENGTH 1,
Field: VALID_FROM Valid From.
VALID_FROM
TYPE C LENGTH 14,
Field: VALID_TO Valid Thru.
VALID_TO
TYPE C LENGTH 14,
Field: RECORD Record Number.

RECORD
TYPE RSARECORD,
END
OF _ty_s_SC_1.
TYPES:
_ty_t_SC_1
TYPE STANDARD TABLE OF _ty_s_SC_1
WITH NON-UNIQUE DEFAULT KEY.
*$*$ begin of global - insert your declaration only below this line
... "insert your code here
DATA : T_source_package TYPE STANDARD TABLE OF _ty_s_SC_1,
WA TYPE _ty_s_SC_1 .
*$*$ end of global - insert your declaration only before this line

*-*

*-*

METHODS
start_routine
IMPORTING
request
type rsrequest
datapackid
type rsdatapid
EXPORTING
monitor
type rstr_ty_t_monitors
CHANGING
SOURCE_PACKAGE
type _ty_t_SC_1
RAISING
cx_rsrout_abort.
METHODS
inverse_start_routine
IMPORTING
i_th_fields_outbound
TYPE rstran_t_field_inv
i_r_selset_outbound
TYPE REF TO cl_rsmds_set
i_is_main_selection
TYPE rs_bool
i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
i_r_universe_inbound
TYPE REF TO cl_rsmds_universe
CHANGING
c_th_fields_inbound
TYPE rstran_t_field_inv
c_r_selset_inbound
TYPE REF TO cl_rsmds_set
c_exact
TYPE rs_bool.
ENDCLASS.
"routine DEFINITION
*$*$ begin of 2nd part global - insert your code only below this line
... "insert your code here
*$*$ end of 2nd part global - insert your code only before this line

*
*

*---------------------------------------------------------------------*
*
CLASS routine IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_transform IMPLEMENTATION.
*----------------------------------------------------------------------*
*
Method start_routine
*----------------------------------------------------------------------*
*
Calculation of source package via start routine
*----------------------------------------------------------------------*
*
<-> source package
*----------------------------------------------------------------------*
METHOD start_routine.
*=== Segments ===
FIELD-SYMBOLS:
<SOURCE_FIELDS>
DATA:
MONITOR_REC

TYPE _ty_s_SC_1.
TYPE rstmonitor.

*$*$ begin of routine - insert your code only below this line
... "insert your code here
***
***
***
***
***
***
***
***
***
***
***
***
***
***
***
***
***

*-*

T_source_package[] = SOURCE_PACKAGE[].
refresh : SOURCE_PACKAGE.
LOOP AT SOURCE_PACKAGE INTO WA.
IF WA-R3_USER = 3 AND WA-CONSNUMBER LE 2.
WA-TELNR_CALL = WA-TEL_NUMBER.
ENDIF.
APPEND WA TO t_SOURCE_PACKAGE
clear wa.
ENDLOOP.

DELETE ADJACENT DUPLICATES FROM t_SOURCE_PACKAGE comparing


ADDRNUMBER.
SOURCE_PACKAGE[] = t_SOURCE_PACKAGE[] .

*-- fill table "MONITOR" with values of structure "MONITOR_REC"


*to make monitor entries
... "to cancel the update process
*
raise exception type CX_RSROUT_ABORT.
*$*$ end of routine - insert your code only before this line
*-*
ENDMETHOD.
"start_routine
*----------------------------------------------------------------------*
*
Method inverse_start_routine
*----------------------------------------------------------------------*
*
*
This subroutine needs to be implemented only for direct access
*
(for better performance) and for the Report/Report Interface
*
(drill through).
*
The inverse routine should transform a projection and
*
a selection for the target to a projection and a selection
*
for the source, respectively.
*
If the implementation remains empty all fields are filled and
*
all values are selected.
*
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
METHOD inverse_start_routine.
*$*$ begin of inverse routine - insert your code only below this line*-*
... "insert your code here
*$*$ end of inverse routine - insert your code only before this line *-*
ENDMETHOD.
ENDCLASS.

"inverse_start_routine
"routine IMPLEMENTATION

Potrebbero piacerti anche