Текущее время: Вс, июл 20 2025, 19:18

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: создание нового модуля в Badi
СообщениеДобавлено: Ср, дек 07 2011, 12:08 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
Есть существующий модуль косвенной оценки (BAdI) ARBPL, вариант модуля S, он берет данные из таблицы T528 (ракурс V_T528C_B), а именно вид оплаты (LGART) и сумму (BETRG), и помещает их в 0008 инфо-тип (таблица pa0008).
Нужно создать новый модуль косвенный оценки (назвать, например, ZSHTR), который будет брать данные из 1005 инфо-типа (таблица HRP1005), а именно сумму (CPMAX); вид оплаты будет браться из вида оплаты, в котором будет указан данный модуль косвенной оценки (так же как в модуле TARIF). Полученные данные надо помещать в 0008 инфо-тип, так же как это делается в модуле ARBPL.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Ср, дек 07 2011, 12:10 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
поставлена такая задача, но литературы по бади билдеру никакой нет и как что там сделать, плохо понятно, если какая литература на русском,чтобы можно было понять что куда и как делать


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Ср, дек 07 2011, 14:51 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
qwerty072 написал(а):
Есть существующий модуль косвенной оценки (BAdI) ARBPL,
Это не Badi, и не даже реализация. Это згачение фильтра.
Если Вам необходимо Badi - см HR_IV_MODULE
Цитата:
вариант модуля S, он берет данные из таблицы T528 (ракурс V_T528C_B), а именно вид оплаты (LGART) и сумму (BETRG), и помещает их в 0008 инфо-тип (таблица pa0008).
Нужно создать новый модуль косвенный оценки (назвать, например, ZSHTR), который будет брать данные из 1005 инфо-типа (таблица HRP1005), а именно сумму (CPMAX); вид оплаты будет браться из вида оплаты, в котором будет указан данный модуль косвенной оценки (так же как в модуле TARIF). Полученные данные надо помещать в 0008 инфо-тип, так же как это делается в модуле ARBPL.

По поводу так же - см как сделаны другие реализации бади HR_IV_MODULE.
Теория - Business Add-Ins

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Чт, дек 08 2011, 14:45 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
а где смотреть, не могу понять из каких таблиц и как это реализовано, чтобы по аналогии создал, поменяв лишь обращение к таблицам
код
http://xmage.ru/images/3bqb.jpg

когда проваливаюсь в метод
method IF_EX_HR_INDVAL~DO_INDIRECT_VALUATION.
DATA: ls_valuation TYPE padiv_valuation_strct.
DESCRIBE TABLE if_ex_hr_indval~wgtp_stack.
ls_valuation = valuation_input.
CASE module_spec.
when 'N' or 'M'.
clear a_subrc.
free a_container.
a_pernr = pernr.
a_tclas = tclas.
a_MODULE_SPEC = module_spec.
a_molga = molga.
a_infty = infty.
a_lgart = lgart.
a_begda = begda.
a_endda = endda.
me->BONUS_MODEL( changing ps_valuation = ls_valuation ).
free a_container.
subrc = a_subrc.
if subrc eq 0.
valuation_output = ls_valuation.
endda = a_endda.
endif.
WHEN OTHERS.
CALL FUNCTION 'HR_RU_RP_PERFORM_MODULE'
EXPORTING
MODULE = FLT_VAL
MODULE_SPEC = MODULE_SPEC
MOLGA = MOLGA
BEGDA = BEGDA
TCLAS = TCLAS
PERNR = PERNR
INFTY = INFTY
LGART = LGART
CHANGING
amount = ls_valuation-amount
currency = ls_valuation-currency
number = ls_valuation-number
unit = ls_valuation-unit
ENDDA = ENDDA
EXCEPTIONS
ERROR_AT_INDIRECT_EVALUATION = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
SUBRC = 8.
CALL FUNCTION 'HR_INDVAL_MESSAGE_HANDLE'
EXPORTING
MODUL = FLT_VAL
MSGTY = SY-MSGTY
MSGID = SY-MSGID
MSGNO = SY-MSGNO
MSGV1 = SY-MSGV1
MSGV2 = SY-MSGV2
MSGV3 = SY-MSGV3
MSGV4 = SY-MSGV4.
ELSE.
SUBRC = 0.
valuation_output = ls_valuation.
ENDIF.
ENDCASE.
endmethod.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Чт, дек 08 2011, 14:55 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
полазил по другим, методов вних больше, в моей только один метод, по аналогии с которой надо создать, но обращения к таблице с данными не вижу или где в другом месте смотреть надо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Чт, дек 08 2011, 17:48 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
qwerty072 написал(а):
а где смотреть, не могу понять из каких таблиц и как это реализовано, чтобы по аналогии создал, поменяв лишь обращение к таблицам
...
Не надейтесь что получиться так просто решить задачу - если бы можно было механически заменять таблицы - ABAP-еры были бы не нужны.
В коде к картинке надо смотреть либо что происходит в me->BONUS_MODEL или в HR_RU_RP_PERFORM_MODULE. Вроде всё и так очевидно.
Цитата:
В первом сообщении у Вас упомянут был модуль ARBPL. Если судить по картинке, речь идёт про 33BON. Так аналогию чего требуется сделать?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Пт, дек 09 2011, 13:27 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
код из модуля ARBPL:


METHOD IF_EX_HR_INDVAL~DO_INDIRECT_VALUATION.
DATA: VALUATION TYPE PADIV_VALUATION_STRCT.
* ...
describe table IF_EX_HR_INDVAL~WGTP_STACK.

VALUATION = VALUATION_INPUT.

CALL FUNCTION 'RP_PERFORM_MODULE'
EXPORTING
MODULE = FLT_VAL
MODULE_SPEC = MODULE_SPEC "N0555480
MOLGA = MOLGA "N0555480
BEGDA = BEGDA "N0555480
TCLAS = TCLAS "N0555480
PERNR = PERNR "N0555480
INFTY = INFTY "N0555480
LGART = LGART "N0555480
CHANGING
AMOUNT = VALUATION-AMOUNT
CURRENCY = VALUATION-CURRENCY
NUMBER = VALUATION-NUMBER
UNIT = VALUATION-UNIT
ENDDA = ENDDA
EXCEPTIONS
ERROR_AT_INDIRECT_EVALUATION = 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.
SUBRC = 8.
CALL FUNCTION 'HR_INDVAL_MESSAGE_HANDLE'
EXPORTING
MODUL = FLT_VAL
MSGTY = SY-MSGTY
MSGID = SY-MSGID
MSGNO = SY-MSGNO
MSGV1 = SY-MSGV1
MSGV2 = SY-MSGV2
MSGV3 = SY-MSGV3
MSGV4 = SY-MSGV4
.
ELSE.
SUBRC = 0.
VALUATION_OUTPUT = VALUATION.
ENDIF.
ENDMETHOD.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Пт, дек 09 2011, 13:30 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
по аналогии него надо сделать то что в первом, т.е. подменить таблицы, откуда берутся данные, а я их как раз таки и не могу понять где прописывать или посмотреть в существующем


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Пт, дек 09 2011, 14:11 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
qwerty072 написал(а):
по аналогии него надо сделать то что в первом, т.е. подменить таблицы, откуда берутся данные, а я их как раз таки и не могу понять где прописывать или посмотреть в существующем

А посмотреть код функционального модуля RP_PERFORM_MODULE ? Он там небольшой, очень аскетичный.
Опять таки - чтобы узнать где выбираются данные из таблиц можно воспользоваться трассировкой (ST05\ST01) или отладчиком (остановка на операторе SELECT)

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Вт, дек 20 2011, 13:09 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
прошёлся отладчиком, понял где происходит выборка таблиц, в итоге, чтобы заработало как надо, необходимо подправить пару инклудов, но нельзя в стандартном функционале, поэтому решил добавить копирование, но что то больно много приходится править в сапе ради такой мелочи, может как то можно по-другому сделать, не зализая так глубоко?!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Ср, дек 21 2011, 13:16 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
нужен совет, самому не разобраться


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Ср, дек 21 2011, 13:31 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
qwerty072 написал(а):
нужен совет, самому не разобраться

В чём именно?
С чем проблемы? Что мешает реализовать всё необходимое для
"новый модуль косвенный оценки (назвать, например, ZSHTR), который будет брать данные из 1005 инфо-типа (таблица HRP1005), а именно сумму (CPMAX)"????

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Ср, дек 21 2011, 14:18 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
прошёлся отладчиком, понял где происходит выборка таблиц, в итоге, чтобы заработало как надо, необходимо подправить пару инклудов, но нельзя в стандартном функционале, поэтому решил добавить копирование, но что то больно много приходится править в сапе ради такой мелочи, может как то можно по-другому сделать, не зализая так глубоко?!

вот тут описано почему


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Ср, дек 21 2011, 18:48 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
qwerty072 написал(а):
прошёлся отладчиком, понял где происходит выборка таблиц, в итоге, чтобы заработало как надо, необходимо подправить пару инклудов, но нельзя в стандартном функционале, поэтому решил добавить копирование, но что то больно много приходится править в сапе ради такой мелочи, может как то можно по-другому сделать, не зализая так глубоко?!

вот тут описано почему

Вы прям как в том анекдоте про лотерейный билет : "- Да, я бы сделал пусть он хотя бы билет купит!!!"

Написали хотя бы какой функционал Вы собираетесь копировать, какие инклюды Вы думаете что неплохо бы их подправить?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание нового модуля в Badi
СообщениеДобавлено: Чт, дек 22 2011, 13:03 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 30 2011, 11:01
Сообщения: 12
узнал про такую штуку как расширения, решение моего вопроса:

ENHANCEMENT 1 Z_ZSHTR. "inactive version
SELECT SINGLE cpmax FROM HRP1005
into RESULT-AMOUNT
WHERE objid EQ P0001-PLANS
AND ENDDA GE PINDB-BEGDA
AND BEGDA LE PINDB-BEGDA.
ENDENHANCEMENT.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB