Read positions of Objectid with function module
Hi experts!,
I would like to read User Id, First name and position number fields by ObjectId.
RH_READ_INFTY only show part of data.
Could you say me another Function Module to do this?
A lot of thanks in advance.
Best Regards.
Hi Juan,
So now u have the org unit ID.
Use the same FM RH_STRUC_GET now to get all the position IDs which are belongs to that org unit.
Pass act_otype = 'O',act_objid = ourg unit ID that u have,act_wegid = 'B003' and in the result_tab u will get all the positions under this org unit.
Now u use the same FM to get the pernr which holds these positions.
Loop in the result tab."as u need to get pernr for all those positions
Use the FM RH_READ_OBJECT to get the position validity begin date and validity end date.
Pas the values in the same order as above 'S',result_tab-objid,'A008' and in the result tab u will get pernrs.
Now use the FM HR_READ_INFOTYPE to get first name for IT0002-VORNA by providing the pernr.
Now use the FM HR_READ_SUBTYPE to get user ID from IT0105 subtype 0001 field USRID by providing the pernr.
Populate all these data to final itab.
Endloop.
Thanks
Hafizul
Similar Messages
-
How to read current line number in function module sourrce code?
Hi All,
How to read current line number in function module sourrce code?
regards,
AnujIf you have new editor you would be able to see the line number.
Or in the Dump screen - there is a button called Debugger - click that you would be able to see the code where dump has occured.. you would be able to find the line number from there.
To get the new editor with line number , you need to change the settingsin SE38.
Regards
Vivek -
VirtualProvider with Function Module
Hi,Experts
Can anyone tell me how to create a VirtualProvider with Function Module?
I have read the How to guide"How to Implement a VirtualProvider with service",but I can't go throw the source code.
Please give me a sample test code of yours!
Thanks a lot!
My Email:[email protected]Hi Jin
This question does not belong to this forum, close it and post it in the appropriate one.
Also, please remove your email address from the thread as it violates the forum guidelines. -
To update Employee Data with Function module
Hi
CRM employee master and HR employee master need to be mapped
for the labor cost posting function to work.
In BP transaction (Change in BP role : Employee),
I could update "Personnel number" and "User Name"
under Identification Tab
now I need to do same job with Function module in report program.
Anybody knows that what Function module should I use ?
I tryed to do it with Function "CRMXIF_PARTNER_SAVE"
but I only succesed to update imformations under Adress tab in BP transaction.
thank you.Use FM BAPI_BUPA_CREATE_FROM_DATA.
Rg,
Harshit -
How to copy a generic extractor with function module into a new system?
Dear Gurus,
i would like to know how i can copy a gneric datasource with function module from one system to the target system.
Thank you
CheersHi Anesh,
thank you for replying.
Since the Datasource will have a new new in the new system, i will create a new one.
Create a generic datasource base on the table is not the problem.
My problem is how could i copy the FM in the new system?
If you can help me on that, it will be fine.
Thanks -
Hierarchial Layout Saving with function modules
Hai to all
i am facing a problem while saving layout in Hierarchial list display with function module.
below error message is coming when i am going save my layout.
210 if l_def_variant-variant eq rs_variant-variant.
211 l_default = 'X'.
212 endif.
213 endif.
214
215 call function 'LT_FC_SAVE'
216 exporting
217 * I_TOOL = 'LT'
218 i_tabname = r_tabname
219 i_tabname_slave = r_tabname_slave
220 is_variant = rs_variant
221 it_fieldcat = rt_fieldcat[]
222 it_sort = rt_sort[]
223 it_filter = rt_filter[]
224 is_layout = rs_layout
225 i_default_variant = l_default
226 exceptions
227 fc_not_complete = 1
228 others = 2.
229 case sy-subrc.
230 when '0'.
231 message s018(0k).
232 when '1'.
>>>>> message x000(0k) with 'LT_FC_SAVE' sy-subrc
234 raising fc_not_complete.
235 endcase.
it is very urgent...
Subhash.Mdata: ls_vari type disvariant.
DATA: w_repid TYPE sy-repid.
ls_vari-report = w_repid.
ls_vari-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
i_callback_program = w_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
is_layout = wa_layout
it_fieldcat = i_fcat[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
it_sort = i_sort[]
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
i_default = 'X'
i_save = 'X'
IS_VARIANT = ls_vari
it_events = i_event[]
IT_EVENT_EXIT =
i_tabname_header = 'I_FINAL1'
i_tabname_item = 'I_FINAL2'
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
is_keyinfo = wa_key
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IR_SALV_HIERSEQ_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab_header = i_final1
t_outtab_item = i_final2
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
i have passed the parameters
but i am getting same dump again..
Subhash.M -
Generic Data Source with Function Module data mismatch in BI
Hi All,
I'm using Generic Data Source with Function Module, When I execute the Function Module (Which I have Created), I'm getting 16000 records and when run extractor(in RSA3) im getting different no.of records(infact they are more no.).
when I run the InfoPackage in BI im Getting more no. of records than what i got executing the function module..
and single record is divided into 2 records in BI side(not all the records), how can it be possible???
is there anything Im missing to explain you my issue???
if understood please help me out.
Thanks n Regards,
ravi.the datasource frame work starts the function module several times.
1. the initialization
2. the serval times, until you "raise no_more_data".
check you coding: have you refreshed necessary internal tables.
Sven -
Generic Data Source with Function Module data mismatch
Hi All,
I'm using Generic Data Source with Function Module, When I execute the Function Module (Which I have Created), I'm getting 16000 records and when run extractor(in RSA3) im getting different no.of records(infact they are more no.).
when I run the InfoPackage in BI im Getting more no. of records than what i got executing the function module..
and single record is divided into 2 records in BI side(not all the records), how can it be possible???
is there anything Im missing to explain you my issue???
if understood please help me out.
Thanks n Regards,
ravi.HI rkiranbi,
1. FIrst you excute function module according to your paramers, you will get some records. then goto tcode RSA3 --> excute
Provide your Data source name and under setting we have options like Data records/calls, Display extractor calls and selections --> fields .
in that options you have to increase the values. and then you have to pass paramers in RSA3 according to your function module
selections in SE37. Now you will get equal values in both functin module selection and RSA3 Selection. if it fail means you need to
check coding logic in function module.
2. if your are getting wrong values in BI System then check with
1. compare with PSA data and data target data (here you need to check with characterstic as well as keyfigures)
if you find any mistake you need change the coding in function module according to client requirement.
2. compare data with RSA3 and bi report data or data target data.
check it properly above steps, you will get solution.
thanks and regards,
malli -
VirtualProvider with Function module problem !
I implemented virtualprovider with function module. Unfortunately when I run query i get message error :
u201CFunction call of ZT0X failed; the obligatory parameter CHARACTERISTICS
An exception with the type CX_SY_DYN_CALL_PARAM_MISSING occurred, but was
I>> Row: 67 Inc: READ_DATA Prog: CL_RSDRV_VPROV_LOC_NOSIDu201D
Any suggestions ?
Below source code:
u201CFUNCTION ZT0X.
""Lokalny interfejs:
*" IMPORTING
*" VALUE(INFOCUBE) LIKE BAPI6200-INFOCUBE DEFAULT 'ZT03'
*" VALUE(KEYDATE) LIKE BAPI6200-KEYDATE OPTIONAL
*" EXPORTING
*" VALUE(RETURN) LIKE BAPIRET2 STRUCTURE BAPIRET2
*" TABLES
*" SELECTION STRUCTURE BAPI6200SL
*" CHARACTERISTICS STRUCTURE BAPI6200FD
*" KEYFIGURES STRUCTURE BAPI6200FD
*" DATA STRUCTURE BAPI6100DA
DATA:
l_r_srv TYPE ref to CL_RSDRV_REMOTE_IPROV_SRV,
l_th_mapping TYPE CL_RSDRV_REMOTE_IPROV_SRV=>TN_TH_IOBJ_FLD_MAPPING.
* break-point ID ZRSDRV_RC1.
* break DEVELOPER.
perform build_mapping_table
changing l_th_mapping.
create object l_r_srv
exporting
i_tablnm = '/BIC/PZPRD_ID'
i_th_iobj_fld_mapping = l_th_mapping.
l_r_srv->open_cursor(
i_t_characteristics = characteristics[]
i_t_keyfigures = keyfigures[]
i_t_selection = selection[] ).
l_r_srv->fetch_pack_data(
importing
e_t_data = data[] ).
return-type = 'S'.
ENDFUNCTION.
&---- <
*& Form build_mapping_table
&---- <
Form build_mapping_table
changing
c_th_mapping TYPE CL_RSDRV_EXTERNAL_IPROV_SRV=>TN_TH_IOBJ_FLD_MAPPING.
DATA:
l_s_map TYPE CL_RSDRV_EXTERNAL_IPROV_SRV=>TN_S_IOBJ_FLD_MAPPING.
l_s_map-iobjnm = 'ZPRD_ID'.
l_s_map-fldnm = '/BIC/ZPRD_ID'.
insert l_s_map into table c_th_mapping.
l_s_map-iobjnm = 'ZWARTOSC'.
l_s_map-fldnm = '/BIC/Z_CEN_W'.
insert l_s_map into table c_th_mapping.
+endform.u201DHello
I experienced the same issue. Were u able to solve it? If yes , kindly ask you to make posting here so that others can benefit as well.
Huge thanks -
How to use fieldtab with Function Module F4IF_INT_TABLE_VALUE_REQUEST
Hi,
I'm using the function module F4IF_INT_TABLE_VALUE_REQUEST to build a matchcode in a selection screen parameter.
The internal table that I use have 3 fields:
GROUPID like APQI-GROUPID,
CREDATE like APQI-CREDATE,
STATE type string.
STATE is not in ABAP dictionary, so the function doesn't show this field. I need this field having field label 'STATUS'
I have tried to use table FIELDTAB, but I cannot resolv the problem.
Can anyone help me?
Kind RegardsHi
See the following ex:
TYPES: BEGIN OF TY_MBLNR,
MBLNR LIKE MKPF-MBLNR,
END OF TY_MBLNR.
DATA: IT_MBLNR TYPE STANDARD TABLE OF TY_MBLNR WITH HEADER LINE.
data: it_ret like ddshretval occurs 0 with header line.
At selection-screen on value-request for s_mat-low.
Select MBLNR from mkpf into table it_mblnr.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
RETFIELD = 'MBLNR'
PVALKEY = ' '
DYNPPROG = ' '
DYNPNR = ' '
DYNPROFIELD = ' '
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
VALUE_TAB = IT_MBLNR
FIELD_TAB =
RETURN_TAB = IT_RET
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF SY-SUBRC = 0.
read table it_ret index 1.
move it_ret-fieldval to S_mat-low.
ENDIF.
Go through the test program.
REPORT Ztest_HELP .
TABLES : MARA.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_MATNR(10) TYPE C.
SELECTION-SCREEN END OF BLOCK B1.
DATA : BEGIN OF ITAB OCCURS 0,
MATNR TYPE MATNR,
END OF ITAB.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_MATNR.
SELECT MATNR
FROM MARA
INTO TABLE ITAB
UP TO 10 ROWS.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'MATERIAL NUMBER'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'P_MATNR'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = ITAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
Regards
Anji -
Problem with function module calling
Hi,
I have two questions here
i have a function moduel 'Z_GET_MATL_BALANCE'
in my code it called in the below said way
CALL FUNCTION 'Z_GET_MATL_BALANCE'
DESTINATION 'NONE'
STARTING NEW TASK 'A'
PERFORMING f_back ON END OF TASK
EXPORTING
ref_dte = s_datum-low
str_dte = s_datum-high
end_dte = s_datum-high
i_werks = p_werks
i_past = 'X'
i_future = 'X'
verselem = p_mrpver
plscn = p_scenar
r_outrec = r_outrec
supstk = p_supstk
days_ahead = w_days_ahead
shipnt = p_shipnt
TABLES
mat_bals = w_zmat_bals_a
i_zdatum = i_datum
mat_movmts = w_mat_movmts_a
mat_ship = i_mat_ship_a.
IF sy-subrc NE 0.
MESSAGE e005(ZMIM) WITH
text-009 text-166 text-054 sy-subrc.
ENDIF.
FORM f_back USING task.
CASE task.
WHEN 'A' .
RECEIVE RESULTS FROM FUNCTION 'Z_GET_MATL_BALANCE'
TABLES
mat_bals = w_zmat_bals_a
mat_movmts = w_mat_movmts_a
mat_ship = i_mat_ship_a
EXCEPTIONS
call_material_lesen_fail = 1
call_t450n_fail = 2
call_t399d_fail = 3
call_aufbauen_mdpsx_fail = 4
call_mdezx_aufbauen_fail = 5
call_t001w_fail = 6
call_zmrpelem_failed = 7
call_aufbauen_mdpsx_sim_fail = 8
OTHERS = 9.
IF SY-SUBRC NE 0.
RET_CODE1 = SY-SUBRC.
ENDIF.
now my first question is what is the difference between function modules calling normally and in the above said way
and the second question is
under tables parameter i have four internal tables defined where as while calling the same function module using recive results i have three internal tables. is this correct?
i am asking this because i am getting an error message while using this funciton module
please do not give generic answers, all the helpful answers will get a def rewardCall function starting new task is used to make Asynchronus RFC Call. In this case your function module will be called in a NEW SESSION and it will exceute independently from the Main program which is calling the FM. Also, the main program will continue its own processing and it will not wait for the RFC FM to complete.
Its not mandatory to have all the TABLES parameters in the RETURN Perform (..Receive results from ...) -
Rule creation with Function module to be executed.
Hi there,
I have been trying to create a function module and then use it in a rule... I have declared ACTOR_TAB, AC_CONTAINER, but still I get an error with the below statement.
swc_get_element ac_container 'PERNR' pernr.
The error I get is as below:
The field "PERNR" cannot be changed.
Note that, I have also declared PERNR as an import parameter for the function module....
Help on this would be great.
Thanks.
Sukumar.FUNCTION ZHR_TEST.
""Local Interface:
*" IMPORTING
*" REFERENCE(LV_PERNR) TYPE PERNR_D OPTIONAL
*" REFERENCE(LV_REINR) TYPE REINR OPTIONAL
*" REFERENCE(BEGDA) TYPE BEGDA DEFAULT SY-DATUM
*" REFERENCE(ENDDA) TYPE ENDDA DEFAULT SY-DATUM
*" TABLES
*" ACTOR_TAB STRUCTURE SWHACTOR OPTIONAL
*" AC_CONTAINER STRUCTURE SWCONT OPTIONAL
*" EXCEPTIONS
*" NOBODY_FOUND
include <cntn01>.
data: result_tab like swhactor occurs 0 with header line.
refresh: actor_tab.
clear: result_tab.
swc_get_element ac_container 'PERNR' lv_pernr.
Still it does not work. It keeps showing the error.
Thanks,
Sukumar. -
Select options with function modules.
Hello People,
I found few threads on this topic already, I tried solving with the help of those clues but in vain.
I want to create a function module which accepts a date range like in ACC_T_RA_DATE, and output a list of materials.
The list of materials correspond to the purchase orders that were created in the given date range.
Please kindly observe, I am not using a program to pass any value - I will be using only the function module throughout the process.
Please advice me on this.
Thanks in advance,
Disha.What is your exact requirement, FM should look like
FUNCTION z_mm_xxx.
*"*"Lokale Schnittstelle:
*" IMPORTING
*" REFERENCE(RANGE_DATE) TYPE ACC_T_RA_DATE
*" EXPORTING
*" REFERENCE(MATERIAL_LIST) TYPE /SAPXCQM/EKPO_TAB
*" EXCEPTIONS
*" INVALID_DATE_RANGE
*" NO_PURCHASE_ORDER
*" NO_ITEM_FOUND
DATA: lv_ebeln LIKE ekko-ebeln, "#EC NEEDED
lv_datum LIKE syst-datum.
FIELD-SYMBOLS <fs> TYPE acc_s_ra_date.
* Init
REFRESH material_list.
* Check date range
LOOP AT range_date ASSIGNING <fs>.
lv_datum = <fs>-low.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = lv_datum
EXCEPTIONS
plausibility_check_failed = 1.
IF sy-subrc NE 0.
RAISE invalid_date_range.
ENDIF.
IF <fs>-option EQ 'BT'
OR <fs>-option EQ 'NB'.
IF <fs>-high LT <fs>-low. "#EC PORTABLE
RAISE invalid_date_range.
ENDIF.
lv_datum = <fs>-high.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = lv_datum
EXCEPTIONS
plausibility_check_failed = 1.
IF sy-subrc NE 0.
RAISE invalid_date_range.
ENDIF.
ENDIF.
ENDLOOP.
* Check existence of PO
SELECT SINGLE ebeln INTO lv_ebeln
FROM ekko
WHERE aedat IN range_date.
IF sy-subrc NE 0.
RAISE no_purchase_order.
ENDIF.
* Read item
SELECT * INTO CORRESPONDING FIELDS OF TABLE material_list
FROM ekpo
JOIN ekko ON ekko~ebeln EQ ekpo~ebeln
WHERE ekko~aedat IN range_date.
IF sy-subrc NE 0.
RAISE no_item_found.
ENDIF.
ENDFUNCTION.
Regards,
Raymond -
Problem while working with function module RFC_READ_TABLE
Dear Experts,
I am facing a problem while working on the FM RFC_READ_TABLE, in which there is a tables parameter options which is of table type, to which I am passing the condition of selection. In the debugg mode I found the select quiry in the source code of function module is not executing the condition passed in the options parameter.
My actual requirement is to fetch all the custom programs in a remote server, the code I have written is below.
TYPES :
BEGIN OF ty_tadir,
pgmid TYPE pgmid,
object TYPE trobjtype,
obj_name TYPE sobj_name,
END OF ty_tadir.
DATA : it_tadir TYPE STANDARD TABLE OF ty_tadir,
wa_tadir TYPE ty_tadir.
data: stmp_dokhl like TAB512 occurs 100000 with header line.
data: options1 like rfc_db_opt occurs 10 with header line.
data: wa_options1 like line of options1.
data: nametab1 like rfc_db_fld occurs 10 with header line.
START-OF-SELECTION.
DATA : W_VALUE(5) TYPE C,
W_VALUE1(20) TYPE C.
W_VALUE1 = 'OBJ_NAME like'.
W_VALUE = 'z*'.
CONCATENATE 'OBJ_NAME LIKE' ' ''' W_VALUE '''' INTO OPTIONS1-TEXT.
CONCATENATE W_VALUE1 W_VALUE INTO wa_OPTIONS1-TEXT SEPARATED BY SPACE.
APPEND wa_OPTIONS1 to OPTIONS1.
CLEAR wa_OPTIONS1.
call function 'RFC_READ_TABLE'
destination 'zard'
exporting
query_table = 'TADIR' "'ZBANK_GUARANTEE'
tables
options = options1
fields = nametab1
data = stmp_dokhl
exceptions
table_not_available = 1
table_without_data = 2
option_not_valid = 3
field_not_valid = 4
not_authorized = 5
data_buffer_exceeded = 6
others = 7 .
Please give me some inputs on this,
With warm regards,
Murthy.
Edited by: pr murthy on Sep 18, 2008 1:49 PM
Edited by: pr murthy on Sep 18, 2008 2:14 PMHi
I have tried this and with small change this is working fine.
TYPES :
BEGIN OF ty_tadir,
pgmid TYPE pgmid,
object TYPE trobjtype,
obj_name TYPE sobj_name,
END OF ty_tadir.
DATA : it_tadir TYPE STANDARD TABLE OF ty_tadir,
wa_tadir TYPE ty_tadir.
data: stmp_dokhl like TAB512 occurs 100000 with header line.
data: options1 like rfc_db_opt occurs 10 with header line.
data: wa_options1 like line of options1.
data: nametab1 like rfc_db_fld occurs 10 with header line.
START-OF-SELECTION.
DATA : W_VALUE(5) TYPE C,
W_VALUE1(20) TYPE C.
W_VALUE1 = 'OBJ_NAME LIKE ''Z%'''.
wa_options1-text = w_value1.
APPEND wa_OPTIONS1 to OPTIONS1.
CLEAR wa_OPTIONS1.
call function 'RFC_READ_TABLE'
*destination 'zard'
exporting
query_table = 'TADIR' "'ZBANK_GUARANTEE'
tables
options = options1
fields = nametab1
data = stmp_dokhl
exceptions
table_not_available = 1
table_without_data = 2
option_not_valid = 3
field_not_valid = 4
not_authorized = 5
data_buffer_exceeded = 6
others = 7 . -
Delta extraction(date) with Function module problem
Hi All,
FUNCTION zrsax_biw_get_data_pr_d.
*"*"Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SBIWA_S_INTERFACE-REQUNR
*" VALUE(I_ISOURCE) TYPE SBIWA_S_INTERFACE-ISOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SBIWA_S_INTERFACE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SBIWA_S_INTERFACE-INITFLAG OPTIONAL
*" VALUE(I_UPDMODE) TYPE SBIWA_S_INTERFACE-UPDMODE OPTIONAL
*" VALUE(I_DATAPAKID) TYPE SBIWA_S_INTERFACE-DATAPAKID OPTIONAL
*" VALUE(I_PRIVATE_MODE) OPTIONAL
*" VALUE(I_CALLMODE) LIKE ROARCHD200-CALLMODE OPTIONAL
*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
*" TABLES
*" I_T_SELECT TYPE SBIWA_T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SBIWA_T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZPR_ST OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
* The input parameter I_DATAPAKID is not supported yet !
* Example: InfoSource containing TADIR objects
* TABLES: tadir.
*DATA: BEGIN OF zpr_st_copy,
* banfn TYPE zpr_st-banfn,
* bnfpo TYPE zpr_st-bnfpo,
* zebkn TYPE zpr_st-zebkn,
* knttp TYPE zpr_st-knttp,
* vbeln TYPE zpr_st-vbeln,
* ps_psp_pnr TYPE zpr_st-ps_psp_pnr,
* gsber TYPE zpr_st-gsber,
* werks TYPE zpr_st-werks,
* statu TYPE zpr_st-statu,
* ekgrp TYPE zpr_st-ekgrp,
* menge TYPE zpr_st-menge,
* frgdt TYPE zpr_st-frgdt,
* meins TYPE zpr_st-meins,
* loekz TYPE zpr_st-loekz,
* END OF zpr_st_copy.
* Auxiliary Selection criteria structure
DATA: l_s_select TYPE sbiwa_s_select.
* Maximum number of lines for DB table
STATICS: l_maxsize TYPE sbiwa_s_interface-maxsize.
* Select ranges
* RANGES: l_r_pgmid FOR tadir-pgmid,
* l_r_object FOR tadir-object,
RANGES: PRNO for zpr_st-banfn,
DATE1 FOR zpr_st-frgdt.
* Parameter I_PRIVATE_MODE:
* Some applications might want to use this function module for other
* purposes as well (e.g. data supply for OLTP reporting tools). If the
* processing logic has to be different in this case, use the optional
* parameter I_PRIVATE_MODE (not supplied by BIW !) to distinguish
* between BIW calls (I_PRIVATE_MODE = SPACE) and other calls
* (I_PRIVATE_MODE = X).
* If the message handling has to be different as well, define Your own
* messaging macro which interprets parameter I_PRIVATE_MODE. When
* called by BIW, it should use the LOG_WRITE macro, otherwise do what
* You want.
* Initialization mode (first call by SAPI) or data transfer mode
* (following calls) ?
IF i_initflag = sbiwa_c_flag_on.
* Initialization: check input parameters
* buffer input parameters
* prepare data selection
* The input parameter I_DATAPAKID is not supported yet !
* Invalid second initialization call -> error exit
IF NOT g_flag_interface_initialized IS INITIAL.
IF 1 = 2. MESSAGE e008(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'008' "message number
' ' "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDIF.
* Check InfoSource validity
CASE i_isource.
WHEN 'ZPR_ST_DS_D' OR ''.
WHEN OTHERS.
IF 1 = 2. MESSAGE e009(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'009' "message number
i_isource "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDCASE.
* Check for supported update mode
CASE i_updmode.
WHEN 'F' OR ''.
WHEN 'C'.
WHEN 'R'.
WHEN 'S'. " DELTA INITIALIZATION
WHEN 'I'. "DELTA INITIALIZATION FOR NON CUMULATIVE
WHEN 'D'. "DELTA
WHEN OTHERS.
IF 1 = 2. MESSAGE e011(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'011' "message number
i_updmode "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDCASE.
BREAK-POINT.
* Check for obligatory selection criteria
* READ TABLE i_t_select INTO l_s_select WITH KEY fieldnm = 'ZPR_ST-FRGDT'.
* IF sy-subrc <> 0.
* IF 1 = 2. MESSAGE e010(r3). ENDIF.
* log_write 'E' "message type
* 'R3' "message class
* '010' "message number
* 'PGMID' "message variable 1
* ' '. "message variable 2
* RAISE error_passed_to_mess_handler.
* ENDIF.
APPEND LINES OF i_t_select TO g_t_select.
* Fill parameter buffer for data extraction calls
g_s_interface-requnr = i_requnr.
g_s_interface-isource = i_isource.
g_s_interface-maxsize = i_maxsize.
g_s_interface-initflag = i_initflag.
g_s_interface-updmode = i_updmode.
g_s_interface-datapakid = i_datapakid.
g_flag_interface_initialized = sbiwa_c_flag_on.
* Fill field list table for an optimized select statement
* (in case that there is no 1:1 relation between InfoSource fields
* and database table fields this may be far from beeing trivial)
APPEND LINES OF i_t_fields TO g_t_segfields.
* Start tracing of extraction
* bice_trace_open g_r_tracer i_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 g_counter_datapakid = 0.
* Fill range tables for fixed InfoSources. In the case of generated
* InfoSources, the usage of a dynamical SELECT statement might be
* more reasonable. BIW will only pass down simple selection criteria
* of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
* LOOP AT g_t_select INTO l_s_select WHERE fieldnm = 'PGMID'.
* MOVE-CORRESPONDING l_s_select TO l_r_pgmid.
* APPEND l_r_pgmid.
* ENDLOOP.
* LOOP AT g_t_select INTO l_s_select WHERE fieldnm = 'OBJECT'.
* MOVE-CORRESPONDING l_s_select TO l_r_object.
* APPEND l_r_object.
* ENDLOOP.
LOOP AT g_t_select INTO l_s_select WHERE fieldnm = 'ZPR_ST-FRGDT'.
MOVE-CORRESPONDING l_s_select to DATE1.
DATE1-sign = 'I'.
DATE1-option = 'GE'.
clear DATE1-high.
APPEND DATE1.
ENDLOOP.
* Determine number of database records to be read per FETCH statement
* from input parameter I_MAXSIZE. If there is a one to one relation
* between InfoSource table lines and database entries, this is trivial.
* In other cases, it may be impossible and some estimated value has to
* be determined.
l_maxsize = g_s_interface-maxsize.
OPEN CURSOR WITH HOLD g_cursor FOR
* SELECT (g_t_fields) FROM tadir
* WHERE pgmid IN l_r_pgmid AND
* object IN l_r_object. "#EC CI_GENBUFF
*@ CODE FOR THE STRUCTURE TO FILL IN FROM EBAN AND EBKN@*
SELECT a~banfn a~bnfpo k~zebkn a~knttp k~vbeln k~ps_psp_pnr k~gsber a~werks a~statu a~ekgrp a~menge a~menge a~frgdt a~meins
* INTO CORRESPONDING FIELDS OF TABLE IT1
FROM eban AS a INNER JOIN ebkn AS k ON ( a~banfn = k~banfn AND a~bnfpo = k~bnfpo )
WHERE a~banfn GE '2000000000' AND a~banfn LE '2999999999' and a~loekz eq ' ' and a~frgdt ge '20130401' and a~FRGKZ eq '2'.
*BREAK-POINT.
ENDIF. "First data package ?
* Fetch records into interface table. There are two different options:
* - fixed interface table structure for fixed InfoSources have to be
* named E_T_'Name of assigned source structure in table ROIS'.
* - for generating applications like LIS and CO-PA, the generic table
* E_T_DATA has to be used.
* Only one of these interface types should be implemented in one API !
FETCH NEXT CURSOR g_cursor
APPENDING CORRESPONDING FIELDS
OF TABLE e_t_DATA
PACKAGE SIZE l_maxsize.
IF sy-subrc <> 0.
CLOSE CURSOR g_cursor.
* bice_trace_close g_r_tracer.
RAISE no_more_data.
ENDIF.
* bice_collect_table g_r_tracer e_t_data.
g_counter_datapakid = g_counter_datapakid + 1.
ENDIF. "Initialization mode or data extraction ?
ENDFUNCTION.
in the above I_t_fields and I_T_select structures are not getting data .....
can any one pleasee let me know what mistake i hvae done with my code?
and i m unbale to change data source value to F1 if i am trying to change my function module and extract structure are disappearing....
i m not getting why it is happening .......
thank you
vijayHi yasemin,
I m bit confused here with the line below
IF i_initflag = sbiwa_c_flag_on.(if we pass 'X' then it will enter loop and checks for F or D and then assigns values to I_T_SELECT and I_T_Fields structure)
accordfing to my code i feel it will work for any one not both(F or D).
one more doubt rsax_biw_get_data extraction method is F2 few of them are asking to change to F1.
so tried running a code then in RSO2 extact structure and FM both dissapeared i did not get why it happened ?
can you please let me know why it happend
thanks
vijay
Maybe you are looking for
-
Error while using session xsd format
Hi, I am new to toplink. I am trying to use the session.xml as follows <?xml version="1.0" encoding="UTF-8"?> <toplink-sessions version="11g Release 1 (11.1.1.0.0)" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSch
-
Beach Ball In safe Mode. Help! installed Fresh copy of os mavericks still getting the beach ball Help me out and how can i set SMC on macbook pro.i did by pressing the keys but there was no indication that it has resetted. help me troubleshoot my pro
-
Hi All, In our project we tried to configure the cache pooling tables, But as a DSN if we use the OCI/TNS names, the Cache purging not working. If i use ODBC DSN it is working fine. Is there any limitation from OBIEE that we have to ODBC DSN only for
-
Is there a way to open an MP3 stream and write it to a file? A java based way to record internet radio for later listens?
-
Change product information in GTS
Dear all, I am working in the Q06 System in GTS. I would like to change the product details of a product. Below you could find the screenshot (sry, that I have only the german picture). For me it´s important to change the below supplementary unit. Bu