Автор Тема: BAPI_EQUI_CREATE - Создание единицы оборудования/Серийного номера  (Прочитано 15169 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
В общем-то довольно простая BAPI, позволяющая создать ЕО. В общем случае можно задать только тип единицы оборудования и запись будет создана.
Код: You are not allowed to view links. Register or Login
REPORT yuuk_test_000.
DATA: data_general LIKE bapi_itob,
      data_specific LIKE bapi_itob_eq_only,
      data_install LIKE bapi_itob_eq_install,

      equipment LIKE bapi_itob_parms-equipment,
      data_general_exp LIKE bapi_itob,
      data_specific_exp LIKE bapi_itob_eq_only,

      lt_return LIKE bapiret2.

data_specific-equicatgry = 'M'.                  "Тип объекта

CALL FUNCTION 'BAPI_EQUI_CREATE'
     EXPORTING
          data_general      = data_general
          data_specific     = data_specific
          valid_date        = sy-datum
     IMPORTING
          equipment         = equipment
          data_general_exp  = data_general_exp
          data_specific_exp = data_specific_exp
          return            = lt_return.

IF lt_return-type = space. COMMIT WORK. ENDIF.
equipment - Номер созданной единицы оборудования. Остальные данные можно посмотреть в словаре, в принципе они соответствуют полям карточки ЕО, которую можно просмотреть через транзакцию IE03

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Доброго времени суток уважаемые ABAP-еры и в частности автор темы. Очень удобный вроде бы функциональный модуль. Как раз я хотел сделать пакетник ведения ЕО и вроде бы всё понятно по нему. ЕО я буду делать с помощью BAPI_EQUI_CREATE, а классификацию  с помощью BAPI_OBJCL_CREATE. И вроде бы все поля нашёл в этих двух ФМ, но не нашёл поля одного стандартного ракурса, который присваивается типу технического объекта, а конкретнее экрану  110-Гарантия. Стандартный экран вкладка присваиваемый типу ЕО. Не пойму как с ним быть? Может кто реализовывал подобное? может ещё какой ФМ нужен для этого? Буду весьма признателен за совет.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Ну с гарантией там немного мутно как-то. Если группа функций: BG00 - Обработка гарантии и там уже вагон каких-то функций по обработке гарантий, думаю если там посидеть подумать, то можно найти как с ними работать. Есть мысль что система сама их вызывает при присвоении экрана гарантий к ЕО. Короче, удочку выдал, если что накопаете интересное, напишите, если не сложно.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Спасибо за подсказку! Попробывал сделать с помощью ФМ BG00_WARRANTY_LINK_UPDATE. Просто запустил простой код чтобы посмотреть изменит ли он данные о гарантии у уже существующей ЕО, но программка почему то падает в дамп. Почему это происходит мне не понятно, вот собственно сам код
Код: You are not allowed to view links. Register or Login
data: it_itob  like BGMKOBJ OCCURS 0 WITH HEADER LINE.

it_itob-J_OBJNR = 'IE000000000010000007'.
it_itob-GAART = '2'.
it_itob-GWLDT = sy-datum.
it_itob-GWLEN = '20160915'.
it_itob-GAERB = 'X'.
it_itob-WAGET = 'X'.


CALL FUNCTION 'BG00_WARRANTY_LINK_UPDATE'
  EXPORTING
    N_BGMKOBJTAB       = it_itob
*   O_BGMKOBJTAB       =
          .

Я АБАПер не опытный, может в мелочах делаю что то не так. Наверное придётся делать с помощью SHDB.
« Последнее редактирование: Сентябрь 29, 2015, 01:52:49 pm от themax »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Спасибо за подсказку! Попробывал сделать с помощью ФМ BG00_WARRANTY_LINK_UPDATE. Просто запустил простой код чтобы посмотреть изменит ли он данные о гарантии у уже существующей ЕО, но программка почему то падает в дамп.
Ну потому что это модуль обновления, его так вызвать нельзя. Его надо вызвать вот так:
Код: You are not allowed to view links. Register or Login
CALL FUNCTION 'BG00_WARRANTY_LINK_UPDATE' IN UPDATE TASK
  EXPORTING
    n_bgmkobjtab       = <значение>
    O_BGMKOBJTAB       = <значение>.

COMMIT WORK AND WAIT.
Фактическое выполнение модуля будет в момент вызова COMMIT, а так как вызов выполняется с AND WAIT, то это синхронный коммит поэтому на этой строке система дождется выполнения обновления, т.е. после коммита, теоретически гарантия должна быть уже обновлена.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Спасибо, буду знать! Но видимо всё же не тот ФМ модуль я выбрал из группы функций, которую Вы подсказали. Буду копать дальше.

Sapforum.Biz