Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE37 - Построитель функций => Тема начата: Uukrul от Март 14, 2015, 01:03:53 pm

Название: CLAP_DDB_GET_CLASSIFICATION - Прочитать параметры классификации объекта
Отправлено: Uukrul от Март 14, 2015, 01:03:53 pm
Данная функция позволяет прочитать имена классов которым классифицирован объект, а затем прочитать параметры классификации и значения признаков для заданного объекта.
Код: You are not allowed to view links. Register or Login
DATA: l_object_read   LIKE rmclf-objek,
      lt_allocations LIKE api_kssk OCCURS 1 WITH HEADER LINE.

l_object_read = '000000000500003609'.   "Код объекта, для 001 типа класса = полный номер ОЗМ
CALL FUNCTION 'CLAP_DDB_GET_CLASSIFICATION'
  EXPORTING
    object                 = l_object_read
    obtab                  = 'MARA'
    date_of_change         = sy-datum
    classtype              = '001'
    sort_posnr             = 'X'
  TABLES
    allocations            = lt_allocations
  EXCEPTIONS
    no_allocation          = 1
    foreign_lock           = 2
    system_failure         = 3
    set_aennr              = 4
    change_nr_not_exist    = 5
    date_in_past           = 6
    error_class            = 7
    error_date_restriction = 8
    error_status           = 9
    OTHERS                 = 10.

* Прочитать параметры классификации объекта для каждого класса
LOOP AT lt_allocations.
  CALL FUNCTION 'CLAP_DDB_SHOW_CLASSIFICATION'
    EXPORTING
      class                    = lt_allocations-class
      object                   = l_object
      classtype                = lt_allocations-klart
    EXCEPTIONS
      allocation_not_available = 1
      class_not_found          = 2
      OTHERS                   = 3.
ENDLOOP.

Далее для доступа к значениям классов и признаков, можно воспользоваться ниже приведенной функцией:
Код: You are not allowed to view links. Register or Login
* Получить параметры класса и значения признаков, заданные на экране классификации
DATA: lt_exp_ausp_tab TYPE rmclausp OCCURS 1 WITH HEADER LINE,
      lt_exp_kssk_tab TYPE rmclkssk OCCURS 1 WITH HEADER LINE.

CALL FUNCTION 'CLFM_GET_INTERNAL_TABLES'
  EXPORTING
    i_allausp    = 'X'
    i_allkssk    = 'X'
  TABLES
    exp_ausp_tab = lt_exp_ausp_tab     "Данные признаков для классов, указанные на экране
    exp_kssk_tab = lt_exp_kssk_tab.    "Данные классов указаннные на экране классификации

Пример использования функциональности находится в теме: http://sapforum.biz/index.php/topic,170.msg13951.html#msg13951