Проверка и получение уровня партии

Автор Паганель, Вересень 14, 2010, 12:14:35 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Паганель

В ходе работы с классификацией партий http://sapforum.biz/index.php/topic,170.msg7719.html#new
нашел ФМ, которая кроме того что возвращает уровень партии (табличка TCUCH), так и еще и проверяет на целостность данных, т.е. другими словами не поменяли ли что настройщики после заведения ОД и не нужно ли переносить данные ((OMCT) spro- Общая логистика - Управление партиями - Уровень партии - Уровень партии преобразование)

DATA: gv_batch_level        LIKE tcuch-kzdch.         "Batch-Level

CALL FUNCTION 'VB_BATCH_DEFINITION'
       IMPORTING
         kzdch = gv_batch_level.


Возвращает:
0 -   Партии однозначно ведутся на уровне завода
1 -   Партия однозначно ведется на уровне материала
2 -   Партия однозначно ведется на уровне манданта


Паганель

Итак, не большое резюме с дополнениями, кроме уровня партии, надо учитывать таблицы и вид класса (023, 022).
Все эти данные возвращает все та же функция VB_BATCH_DEFINITION.


DATA: l_objecttable  TYPE bapi1003_key-objecttable. " OBTAB  Таблица TCLT-OBTAB
DATA: gv_batch_level LIKE tcuch-kzdch.              " Batch-Level
DATA: classtype TYPE tcla-klart.     " Вид класса


" Макрос
" См. http://sapforum.biz/index.php/topic,222.0.html

DEFINE ext_to_int.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      INPUT  = &1
    IMPORTING
      OUTPUT = &2.
END-OF-DEFINITION.

" Формируем ключ, зависит от уровня и таблицы
CALL FUNCTION 'VB_BATCH_DEFINITION'
        IMPORTING
          kzdch = gv_batch_level
          klart = classtype
          obtab = l_objecttable.

CASE gv_batch_level.
WHEN 0.
    "l_objecttable = 'MCHA'.
    ext_to_int:     rs_mseg-matnr l_objectkey(18),
                    rs_mseg-werks l_objectkey+18(4),
                    rs_mseg-charg l_objectkey+18(10).

WHEN 1.
      "l_objecttable = 'MCH1'.
      ext_to_int:      rs_mseg-matnr l_objectkey(18),
                       rs_mseg-charg l_objectkey+18(10).

WHEN 2.
      "l_objecttable = 'MCH1'.
      ext_to_int: rs_mseg-charg l_objectkey+18.
ENDCASE.


" Дальше ключ можно использовать в BAPI выбора или изменения значений признаков,
" например: BAPI_OBJCL_CHANGE