Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => SE37 - Построитель функций => Тема начата: Uukrul от Июль 02, 2008, 06:12:31 pm
-
В общем-то довольно простая BAPI, позволяющая создать ЕО. В общем случае можно задать только тип единицы оборудования и запись будет создана.
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
-
Доброго времени суток уважаемые ABAP-еры и в частности автор темы. Очень удобный вроде бы функциональный модуль. Как раз я хотел сделать пакетник ведения ЕО и вроде бы всё понятно по нему. ЕО я буду делать с помощью BAPI_EQUI_CREATE, а классификацию с помощью BAPI_OBJCL_CREATE. И вроде бы все поля нашёл в этих двух ФМ, но не нашёл поля одного стандартного ракурса, который присваивается типу технического объекта, а конкретнее экрану 110-Гарантия. Стандартный экран вкладка присваиваемый типу ЕО. Не пойму как с ним быть? Может кто реализовывал подобное? может ещё какой ФМ нужен для этого? Буду весьма признателен за совет.
-
Ну с гарантией там немного мутно как-то. Если группа функций: BG00 - Обработка гарантии и там уже вагон каких-то функций по обработке гарантий, думаю если там посидеть подумать, то можно найти как с ними работать. Есть мысль что система сама их вызывает при присвоении экрана гарантий к ЕО. Короче, удочку выдал, если что накопаете интересное, напишите, если не сложно.
-
Спасибо за подсказку! Попробывал сделать с помощью ФМ BG00_WARRANTY_LINK_UPDATE. Просто запустил простой код чтобы посмотреть изменит ли он данные о гарантии у уже существующей ЕО, но программка почему то падает в дамп. Почему это происходит мне не понятно, вот собственно сам код
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.
-
Спасибо за подсказку! Попробывал сделать с помощью ФМ BG00_WARRANTY_LINK_UPDATE. Просто запустил простой код чтобы посмотреть изменит ли он данные о гарантии у уже существующей ЕО, но программка почему то падает в дамп.
Ну потому что это модуль обновления, его так вызвать нельзя. Его надо вызвать вот так:
CALL FUNCTION 'BG00_WARRANTY_LINK_UPDATE' IN UPDATE TASK
EXPORTING
n_bgmkobjtab = <значение>
O_BGMKOBJTAB = <значение>.
COMMIT WORK AND WAIT.
Фактическое выполнение модуля будет в момент вызова COMMIT, а так как вызов выполняется с AND WAIT, то это синхронный коммит поэтому на этой строке система дождется выполнения обновления, т.е. после коммита, теоретически гарантия должна быть уже обновлена.
-
Спасибо, буду знать! Но видимо всё же не тот ФМ модуль я выбрал из группы функций, которую Вы подсказали. Буду копать дальше.