Hi Everyone,
Let us take multiple Boolean expressions in BRF+ Application as shown below.
Here we have two Boolean expressions EXP_TEST_1 and EXP_TEST_2 in Z_BOL_TEST_w application.
To display the Boolean expression (EXP_TEST_1) details like Boolean expression name , Boolean expression GUID, Last changed by ,Text as shown in below screen shots.
CONSTANTS: gc_appl_id TYPE if_fdt_types=>id VALUE '005056C000081ED58ADDAB4AA60FF5F2',
gc_semi_colon TYPE char01 VALUE ';',
gc_x TYPE char1 VALUE 'X',
gc_csv TYPE string VALUE 'csv'.
*types declarations
TYPES: BEGIN OF ty_id,
id TYPE if_fdt_types=>id,
END OF ty_id,
BEGIN OF ty_boolean,
name TYPE if_fdt_types=>name,
id TYPE if_fdt_types=>id,
last_user TYPE sy-uname,
text TYPE if_fdt_types=>text,
END OF ty_boolean,
tt_id TYPE STANDARD TABLE OF ty_id,
tt_boolean TYPE STANDARD TABLE OF ty_boolean.
*variable declarations
DATA: lref_boolean TYPE REF TO if_fdt_boolean,
lref_factory TYPE REF TO if_fdt_factory,
lv_bol_id TYPE if_fdt_types=>id,
it_id TYPE STANDARD TABLE OF ty_id,
wa_id TYPE ty_id,
it_boolean TYPE STANDARD TABLE OF ty_boolean,
wa_boolean TYPE ty_boolean,
lv_last_chged_user TYPE sy-uname,
lv_text TYPE if_fdt_types=>text,
lv_name TYPE if_fdt_types=>name.
*selection screen
SELECTION-SCREEN BEGIN OF BLOCK b1.
SELECT-OPTIONS:s_bol_id FOR lv_bol_id.
PARAMETERS:p_file TYPE string.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*for applicatin server file
PERFORM get_appl_server_filepath_input CHANGING p_file.
START-OF-SELECTION.
*fill boolean ids from the select options
LOOP AT s_bol_id WHERE option = 'EQ' AND sign ='I'.
wa_id-id = s_bol_id-low.
APPEND wa_id TO it_id.
ENDLOOP.
*generic factory instance
lref_factory = cl_fdt_factory=>if_fdt_factory~get_instance( gc_appl_id ).
*generic factory instance
lref_factory = cl_fdt_factory=>if_fdt_factory~get_instance( gc_appl_id ).
*get boolean details
PERFORM boolean_details USING it_id
CHANGING it_boolean .
* upload boolean details into application server file path
PERFORM upload_boolean_data USING it_boolean
p_file .
*f4 help for filepath
FORM get_appl_server_filepath_input
CHANGING p_ap_file TYPE string.
DATA:l_title TYPE string.
l_title = text-001.
CALL METHOD cl_rsan_ut_files=>f4
EXPORTING
i_applserv = gc_x
i_title = l_title
i_gui_extension = gc_csv
i_gui_ext_filter = gc_csv
CHANGING
c_file_name = p_ap_file
EXCEPTIONS
failed = 1
OTHERS = 2.
ENDFORM. "get_appl_server_filepath_input
*&---------------------------------------------------------------------*
*& Form boolean_details
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PIT_IT text
* -->PIT_BOOLEAN text
*----------------------------------------------------------------------*
FORM boolean_details USING pit_it TYPE tt_id
CHANGING pit_boolean TYPE tt_boolean.
**processing the boolean expression for details
LOOP AT pit_it INTO wa_id.
lref_boolean ?= lref_factory->get_expression(
iv_id = wa_id-id ).
*get boolean name
TRY.
lref_boolean->if_fdt_admin_data~get_name(
RECEIVING
rv_name = lv_name
).
CATCH cx_fdt_input .
IF sy-subrc EQ 0.
MESSAGE text-002 TYPE 'I'.
ENDIF.
ENDTRY.
* get last changed user
TRY.
lref_boolean->if_fdt_admin_data~get_change_info(
IMPORTING
ev_change_user = lv_last_chged_user
).
CATCH cx_fdt_input.
IF sy-subrc EQ 0.
MESSAGE text-003 TYPE 'I'.
ENDIF.
ENDTRY.
* get description
lref_boolean->if_fdt_admin_data~get_texts(
IMPORTING
ev_text = lv_text
).
*Fill the boolean expression details
wa_boolean-name = lv_name.
wa_boolean-id = wa_id-id.
wa_boolean-last_user = lv_last_chged_user.
wa_boolean-text = lv_text.
APPEND wa_boolean TO pit_boolean.
CLEAR wa_boolean.
ENDLOOP.
ENDFORM. "boolean_details
*&---------------------------------------------------------------------*
*& Form upload_boolean_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PIT_BOOLEAN text
* -->PIV_FILENAME text
*----------------------------------------------------------------------*
FORM upload_boolean_data USING pit_boolean TYPE tt_boolean
piv_filename TYPE string.
DATA: wa_boolean_tmp TYPE ty_boolean,
lv_var TYPE string.
IF pit_boolean IS NOT INITIAL.
* open file
OPEN DATASET piv_filename FOR OUTPUT IN TEXT MODE ENCODING UTF-8 .
IF sy-subrc EQ 0.
LOOP AT pit_boolean INTO wa_boolean_tmp.
CONCATENATE wa_boolean_tmp-name
wa_boolean_tmp-id
wa_boolean_tmp-last_user
wa_boolean_tmp-text INTO lv_var SEPARATED BY gc_semi_colon.
TRANSFER lv_var TO piv_filename.
ENDLOOP.
WRITE:'Data uploaded successfully in Application server'.
ENDIF.
*close file
CLOSE DATASET piv_filename.
CLEAR piv_filename.
ENDIF.
ENDFORM. "upload_boolean_data
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
11 | |
9 | |
7 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 |