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

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


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

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


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

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