Текущее время: Пн, июл 28 2025, 10:23

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Метод IN_UPDATE
СообщениеДобавлено: Чт, апр 12 2007, 07:53 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 11 2007, 13:27
Сообщения: 10
Граждане, товарищи!
Кто-нибудь может подсказать, где собака порылась?
В Бизнес-Add Ins\Z_PA_UPDATE
в методе IN_UPDATE отлавливаю событие на изменение ИТ0082.
При этом мне необходимо прицепом сделать изменения в связанном ИТ2001:

Code:
  IF ipspar-infty = '0082'.
...
    IF i0082-subty = '....' AND ( ipspar-actio = 'MOD' OR ipspar-actio = 'LIS1' ).
...
        CALL FUNCTION 'HR_INFOTYPE_OPERATION'
          EXPORTING
            infty         = ls_pskey-infty
            number        = ls_pskey-pernr
            subtype       = ls_pskey-subty
            objectid      = ls_pskey-objps
            lockindicator = ls_pskey-sprps
            validityend   = ls_pskey-endda
            validitybegin = ls_pskey-begda
            recordnumber  = ls_pskey-seqnr
            record        = wa2001
            operation     = 'MOD'
            tclas         = 'A'
            dialog_mode   = '0'
*            NOCOMMIT      =
*     VIEW_IDENTIFIER      =
*     SECONDARY_RECORD     =
          IMPORTING
            return        = return.

HR_INFOTYPE_OPERATION отрабатывает без ошибок.

Прелести начинаются потом.
Вываливаемся в диалог "Изменить отсутсвия" и
выскакивает сообщение: «Запись, предназначенная для удаления, не найдена».
Для какого удаления?!...
Естественно, нужных нам автоматических изменений не проиходит.
Получается, где-то сорим.

Кто-нибудь сталкивался с такой неприятностью? Как ее побороть?
(В динамических мероприятиях вроде ничего особенного нет)
:?:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Метод IN_UPDATE
СообщениеДобавлено: Чт, апр 12 2007, 09:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Dronx написал(а):
Кто-нибудь сталкивался с такой неприятностью? Как ее побороть?
(В динамических мероприятиях вроде ничего особенного нет)
:?:

HR_INFOTYPE_OPERATION не надо использовать, я так понимаю, в результате получается некорректный рекурсивный вызов и портится буфер обновления инфотипов. Вариант - работать напрямую с этим буфером подпрограммами из SAPFP50P - INSERT_INFOTYP, UPDATE_INFOTYP, DELETE_INFOTYP.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Метод IN_UPDATE
СообщениеДобавлено: Чт, апр 12 2007, 10:09 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 11 2007, 13:27
Сообщения: 10
Спасибо!
Сейчас глянем.


Последний раз редактировалось Dronx Чт, апр 12 2007, 11:17, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Метод IN_UPDATE
СообщениеДобавлено: Чт, апр 12 2007, 11:15 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 11 2007, 13:27
Сообщения: 10
Сергей Королев написал:
Dronx написал(а):
Кто-нибудь сталкивался с такой неприятностью? Как ее побороть?
(В динамических мероприятиях вроде ничего особенного нет)
:?:

HR_INFOTYPE_OPERATION не надо использовать, я так понимаю, в результате получается некорректный рекурсивный вызов и портится буфер обновления инфотипов. Вариант - работать напрямую с этим буфером подпрограммами из SAPFP50P - INSERT_INFOTYP, UPDATE_INFOTYP, DELETE_INFOTYP.


Передаю UPDATE_INFOTYP в параметр изменяемую запись, но почему-то UPDATE не происходит. Ошибок тоже нет. Странно...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Метод IN_UPDATE
СообщениеДобавлено: Чт, апр 12 2007, 11:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Dronx написал(а):
Передаю UPDATE_INFOTYP в параметр изменяемую запись, но почему-то UPDATE не происходит. Ошибок тоже нет. Странно...

Надо в отладке поглядеть, меняется ли буфер...

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Метод IN_UPDATE
СообщениеДобавлено: Чт, апр 12 2007, 12:27 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 11 2007, 13:27
Сообщения: 10
Сергей Королев написал:
Надо в отладке поглядеть, меняется ли буфер...


Кстати, обновляется,... но при определенных стечениях обстоятельств.
Осталось разобраться - поискать, где мусорок закрался.
Спасибо БОЛЬШОЕ, Сергей!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Метод IN_UPDATE
СообщениеДобавлено: Пт, апр 13 2007, 13:03 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 11 2007, 13:27
Сообщения: 10
Сергей Королев написал:
Dronx написал(а):
Передаю UPDATE_INFOTYP в параметр изменяемую запись, но почему-то UPDATE не происходит. Ошибок тоже нет. Странно...

Надо в отладке поглядеть, меняется ли буфер...


Происходит следующее:
При первой записи ИТ0082 не происходит одновременной записи в ИТ2001(проверено в журнале изменений). Если повторно войти в режим редактирования ИТ0082 и попытаться сохранить, то все проходит нормально.

Как бы заставить проапдейтить ИТ2001 за первый заход?
;)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Метод IN_UPDATE
СообщениеДобавлено: Чт, апр 19 2007, 08:53 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 11 2007, 13:27
Сообщения: 10
Граждане, может кто подскажет, как заCOMMITить IN_UPDATE?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 19 2007, 10:36 
Специалист
Специалист

Зарегистрирован:
Чт, июн 23 2005, 18:05
Сообщения: 119
Можно попробовать очистить буфер ФМ: 'HR_PSBUFFER_INITIALIZE' .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 19 2007, 11:40 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 11 2007, 13:27
Сообщения: 10
kizif написал(а):
Можно попробовать очистить буфер ФМ: 'HR_PSBUFFER_INITIALIZE' .

Спасибо!
Но, к сожалению, не помогло.
Странно это все... :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 26 2007, 09:48 
Начинающий
Начинающий

Зарегистрирован:
Ср, апр 11 2007, 13:27
Сообщения: 10
Может есть еще какие идейки? Или что-то держит, или чего-то не хватает...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 26 2007, 09:55 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
ИМХО принципиально не правильный подход.

Ты посмотри в каком месте стандарт вызывает IN_UPDATE и все ясно станет.

Я бы поставленную задачу решил на уровне динамических мероприятий.

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 19 2008, 16:25 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
и никак через IN_UPDATE нельзя подменить значения? только динамика?
задача стоит так - переделать мою красивую прожку из динамики в IN_UPDATE и всё тут. Хотя смотрю я по дебагеру, уже и CPREL поменяла, и p0015, но, кажется, данные уже записались к моменту, когда вызывается IN_UPDATE.
Есть шансы поменять поля вызывающего инфотипа из IN_UPDATE или нереально?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Метод IN_UPDATE
СообщениеДобавлено: Чт, дек 24 2009, 15:15 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пт, ноя 13 2009, 15:49
Сообщения: 14
Откуда: Moscow
Пол: Мужской
Добрый день,

Помогите пожалуйста, может было нечто похожее, я прямым insert-ом (система 4.6) формирую продление отсутствий, в случае разрыва отпусков, при этом количества затребованных дней и остатков в ит0005 не изменяется, а если мы зайдем в созданные записи на изменение и сохраним то 0005 ит изменится, как програмно можно обойти данный этап???


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Метод IN_UPDATE
СообщениеДобавлено: Пт, май 20 2011, 17:00 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, июн 24 2009, 10:35
Сообщения: 51
может кому будет полезно. Просто стояла похожая проблема, реализацию подглядел в стандартном классе.
CL_IM_HR_NL_EIR_IT3250
метод => IF_EX_HRPAD00INFTY~IN_UPDATE

если в кратце:

PERFORM insert_infotyp IN PROGRAM sapfp50p USING
ls_0027
lv_insert_check
gc_it_no
lv_msgtp
lv_error_flag
gc_it_no.

PERFORM put_infotyp_buffer IN PROGRAM sapfp50p.
У меня все работает, ошибок не возникало.


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

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


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

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


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

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