Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE37 - Построитель функций => Тема начата: Паганель от Октябрь 03, 2010, 11:53:17 pm

Название: CUOB_GET_NUMBER - получение внутреннего номера объекта классификации
Отправлено: Паганель от Октябрь 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

Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*&      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
Название: Re: CUOB_GET_NUMBER - получение внутреннего номера объекта классификации
Отправлено: Паганель от Октябрь 04, 2010, 12:29:08 am
Для вызова использую такую конструкцию (в основном для приведения типов),
предположим, что есть параметр

Код: You are not allowed to view links. Register or Login
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.