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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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