Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => SE37 - Построитель функций => Тема начата: Паганель от Октябрь 03, 2010, 11:53:17 pm
-
Аналогична CUOB_CHECK_EXISTENCE_OF_OBJECT (http://sapforum.biz/index.php/topic,1324.msg7846.html#msg7846)
проверяет существует ли объект и возвращает внутренний номер объекта классификации, комментарии думаю излишни, все понятно с кода, можно использовать в программе http://sapforum.biz/index.php/topic,1319.0.html, для удобства использования оформлена как form
*&---------------------------------------------------------------------*
*& Form get_object_number
*&---------------------------------------------------------------------*
* Получение внутреннего номера
*----------------------------------------------------------------------*
FORM get_object_number USING rs_matnr TYPE mara-matnr
CHANGING rs_object_number TYPE kssk-objek.
DATA: temp_object_id LIKE kssk-objek.
" Приводим номер материала к внутреннему формату
" На всякий случай
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = rs_matnr
IMPORTING
output = rs_matnr
EXCEPTIONS
length_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.
CALL FUNCTION 'CUOB_GET_NUMBER'
EXPORTING
class_type = pa_klart
object_id = rs_matnr
table = 'MARA'
"I_READ_DB_FIRST
IMPORTING
object_number = rs_object_number
EXCEPTIONS
lock_problem = 1
object_not_found = 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.
ENDFORM. " get_object_number
-
Для вызова использую такую конструкцию (в основном для приведения типов),
предположим, что есть параметр
PARAMETERS: pa_matnr type mara-matnr.
.......
DATA: L_OBJEK_ID TYPE KSSK-OBJEK.
DATA: temp_object_id LIKE kssk-objek.
MOVE so_matnr-low TO L_OBJEK_ID.
perform get_object_number USING L_OBJEK_ID
CHANGING temp_object_id.