Выкладываю класс который позволяет преобразовать набор (SET создаваемый через транзакцию gs01) в range.
Пример использования:
*** Определяем новый RANGE *** Метод для чтения набора в RANGE call method zcl_set_tools=>get_set_to_range exporting im_setname = 'SET_TS' changing ch_range = lr_bwasl.
class ZCL_SET_TOOLS definition public final create public . public section. class-methods GET_SET_TO_RANGE importing !IM_SETNAME type C changing !CH_RANGE type TABLE . protected section. private section. * <SIGNATURE>---------------------------------------------------------------------------------------+ * | Static Public Method ZCL_SET_TOOLS=>GET_SET_TO_RANGE * +-------------------------------------------------------------------------------------------------+ * | [--->] IM_SETNAME TYPE C * | [<-->] CH_RANGE TYPE TABLE * +--------------------------------------------------------------------------------------</SIGNATURE> method get_set_to_range. lt_set_values type table of rgsb4, lr_ref type ref to data. <l_range> type any, <l_sign> type any, <l_option> type any, <l_low> type any, <l_high> type any. *--------------------------------------------------------------------- create data lr_ref like line of ch_range. call function 'G_SET_GET_ID_FROM_NAME' exporting shortname = im_setname importing new_setid = l_new_setid exceptions no_set_found = 1 no_set_picked_from_popup = 2 wrong_class = 3 wrong_subclass = 4 table_field_not_found = 5 fields_dont_match = 6 set_is_empty = 7 formula_in_set = 8 set_is_dynamic = 9 others = 10. call function 'G_SET_GET_ALL_VALUES' exporting setnr = l_new_setid set_values = lt_set_values exceptions set_not_found = 1 others = 2. <l_sign> = 'I'. <l_low> = <l_set_values>-from. <l_option> = 'EQ'. else. <l_option> = 'BT'. <l_high> = <l_set_values>-to. read table ch_range with key table_line = <l_range> binary search transporting no fields.