Created
February 14, 2017 09:01
-
-
Save rijdz/9b91c8f22dd347940ed8cd1655b84103 to your computer and use it in GitHub Desktop.
Create Customize Logic for Datasource using Function Module
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FUNCTION zfm_fi_depi. | |
*"---------------------------------------------------------------------- | |
*"*"Local Interface: | |
*" IMPORTING | |
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR | |
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL | |
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL | |
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL | |
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL | |
*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF | |
*" TABLES | |
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL | |
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL | |
*" E_T_DATA TYPE ZTT_FI_DEPI OPTIONAL | |
*" EXCEPTIONS | |
*" NO_MORE_DATA | |
*" ERROR_PASSED_TO_MESS_HANDLER | |
*"---------------------------------------------------------------------- | |
TYPE-POOLS: sbiwa, rsap, srsc. | |
INCLUDE lrsalk01. | |
DATA: l_s_select TYPE srsc_s_select, | |
lt_date LIKE stko-datuv, | |
i_qty TYPE stpo-menge, | |
l_tabix LIKE sy-tabix. | |
DATA: lt_fi_depi LIKE zst_fi_depi OCCURS 0 WITH HEADER LINE. | |
DATA: ld_startdate LIKE sy-datum, | |
ld_starttime LIKE sy-uzeit, | |
ld_enddate LIKE sy-datum, | |
ld_endtime LIKE sy-uzeit, | |
ld_tstamp LIKE tzonref-tstamps. | |
RANGES: l_r_belnr FOR bkpf-belnr, | |
l_r_tmstmp FOR zst_bpc_prime_cost_all-tmstmp. | |
RANGES: l_r_erdat FOR aufk-erdat, | |
l_r_erfzeit FOR aufk-erfzeit. | |
* Maximum number of lines for DB table | |
STATICS: s_s_if TYPE srsc_s_if_simple, | |
s_counter_datapakid LIKE sy-tabix. | |
IF i_initflag = sbiwa_c_flag_on. | |
* Check DataSource validity | |
CASE i_dsource. | |
WHEN 'ZDS_FI_DEPI'. "name of datasource will be created | |
WHEN OTHERS. | |
IF 1 = 2. MESSAGE e009(r3). ENDIF. | |
log_write 'E' 'R3' '009' i_dsource ' '. | |
RAISE error_passed_to_mess_handler. | |
ENDCASE. | |
APPEND LINES OF i_t_select TO s_s_if-t_select. | |
s_s_if-requnr = i_requnr. | |
s_s_if-dsource = i_dsource. | |
s_s_if-maxsize = i_maxsize. | |
APPEND LINES OF i_t_fields TO s_s_if-t_fields. | |
ELSE. "Initialization mode or data extraction ? | |
************************************************************************ | |
* Data transfer: First Call OPEN CURSOR + FETCH | |
* Following Calls FETCH only | |
************************************************************************ | |
* First data package -> OPEN CURSOR | |
IF s_counter_datapakid = 0. | |
"Initialize Timestamp | |
LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'BELNR'. | |
MOVE-CORRESPONDING l_s_select TO l_r_belnr. | |
APPEND l_r_belnr. | |
ENDLOOP. | |
LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'TMSTMP'. | |
ld_tstamp = l_s_select-low. | |
CONVERT TIME STAMP ld_tstamp TIME ZONE sy-zonlo | |
INTO DATE ld_startdate TIME ld_starttime. | |
ld_tstamp = l_s_select-high. | |
CONVERT TIME STAMP ld_tstamp TIME ZONE sy-zonlo | |
INTO DATE ld_enddate TIME ld_endtime. | |
l_r_erdat-low = ld_startdate. | |
l_r_erdat-sign = l_s_select-sign. | |
l_r_erdat-option = l_s_select-option. | |
l_r_erdat-high = ld_enddate. | |
APPEND l_r_erdat. | |
l_r_erfzeit-low = ld_starttime. | |
l_r_erfzeit-sign = l_s_select-sign. | |
l_r_erfzeit-option = l_s_select-option. | |
l_r_erfzeit-high = ld_endtime. | |
APPEND l_r_erfzeit. | |
MOVE-CORRESPONDING l_s_select TO l_r_tmstmp. | |
APPEND l_r_tmstmp. | |
ENDLOOP. | |
"Add Your Code Here | |
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_fi_depi | |
FROM zta_fi_depi. | |
LOOP AT lt_fi_depi. | |
lt_fi_depi-waers = 'IDR'. | |
MODIFY lt_fi_depi TRANSPORTING waers. | |
ENDLOOP. | |
ENDIF. "First data package ? | |
APPEND LINES OF lt_fi_depi TO e_t_data. | |
s_counter_datapakid = s_counter_datapakid + 1. | |
REFRESH lt_fi_depi. | |
"End Of Add | |
* IF I_STPO IS INITIAL. | |
** IF SY-SUBRC <> 0. | |
* RAISE NO_MORE_DATA. | |
* ENDIF. | |
IF s_counter_datapakid > 1. | |
RAISE no_more_data. | |
ENDIF. | |
ENDIF. | |
ENDFUNCTION. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Import on FM | |
I_REQUNR TYPE SRSC_S_IF_SIMPLE-REQUNR | |
I_DSOURCE TYPE SRSC_S_IF_SIMPLE-DSOURCE | |
I_MAXSIZE TYPE SRSC_S_IF_SIMPLE-MAXSIZE | |
I_INITFLAG TYPE SRSC_S_IF_SIMPLE-INITFLAG | |
I_READ_ONLY TYPE SRSC_S_IF_SIMPLE-READONLY | |
I_REMOTE_CALL TYPE SBIWA_FLAG SBIWA_C_FLAG_OFF | |
Tables on FM | |
I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT | |
I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS | |
E_T_DATA TYPE ZTT_FI_DEPI Table Type of Deposito Transaction Flow |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment