Текущее время: Пт, июл 25 2025, 18:39

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Сокращение ИТ 2006 через 0416ИТ программно
СообщениеДобавлено: Ср, сен 19 2012, 14:23 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, авг 17 2004, 08:49
Сообщения: 319
Откуда: Мариуполь
Здравствуйте.

Столкнулся с такой ситуацией, при создании записей компенсации программно.

Набросал простенький кусочек кода...
Code:
        CALL FUNCTION 'HR_READ_INFOTYPE'
          EXPORTING
*           TCLAS                 = 'A'
            PERNR                 = <2006>-pernr
            INFTY                 = '2006'
            BEGDA                 = <2006>-begda
            ENDDA                 = <2006>-endda
            BYPASS_BUFFER         = 'X'
*           LEGACY_MODE           = ' '
*         IMPORTING
*           SUBRC                 =
          TABLES
            INFTY_TAB             = i2006tmp[]
          EXCEPTIONS
            INFTY_NOT_FOUND       = 1
            OTHERS                = 2.

     if lines( i2006tmp ) > 0.
       read table i2006tmp assigning <2006tmp> index 1.

      <0416>-pernr = <2006>-pernr.
      <0416>-infty = '0416'.
      <0416>-subty = 'UA20'.
      <0416>-begda = begda.
      <0416>-endda = begda.

      <0416>-qctyp = 'UA20'.
      <0416>-stype = 'A'.               " лимит отсутствия
      <0416>-numbr = <2006tmp>-anzhl - qrest.
      <0416>-quonr = <2006tmp>-quonr.

      CALL FUNCTION 'ENQUEUE_EPPRELE' ...
       
            clear return2.
            pDialMd = '0'.

            CALL FUNCTION 'HR_INFOTYPE_OPERATION'
              EXPORTING
                INFTY                  = '0416'
                NUMBER                 = <0416>-pernr
                VALIDITYEND            = <0416>-endda
                VALIDITYBEGIN          = <0416>-begda
                RECORD                 = <0416>
                OPERATION              = 'INS'
                DIALOG_MODE            = pDialMd
              IMPORTING
                RETURN                 = return2 .

       CALL FUNCTION 'DEQUEUE_EPPRELE' ...
    endif. 


В результате запись в 416ИТ не создаётся, но и сообщение об ошибке никакое не возвращается. Когда переключил pDialMd в значение "2", чтобы увидеть всё на экране, обратил внимание что значение из поля <0416>-numbr не было передано. Т.е. все остальные значения переданы были правильно. И если вручную ввести число дней компенсации и сохранить, то все прекрасно срабатывает. Кто-то сталкивался с такой ситуацией?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сокращение ИТ 2006 через 0416ИТ программно
СообщениеДобавлено: Ср, сен 19 2012, 14:26 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, ноя 07 2006, 10:12
Сообщения: 1194
Откуда: Москва
Пол: Мужской
Хм... если задача создавать/ограничивать записи 416ИТ после сохранения 2006 ИТ то почему бы не использовать динамические мероприятия? Там все работает как надо да и с буферами проблем не возникает

_________________
С уважением, Р.В. Величко


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сокращение ИТ 2006 через 0416ИТ программно
СообщениеДобавлено: Ср, сен 19 2012, 15:43 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, авг 17 2004, 08:49
Сообщения: 319
Откуда: Мариуполь
Потому что это простенькая программа закачки недостающих данных в 2006ИТ с корректировкой значений через 416ИТ и тут такие грабли...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сокращение ИТ 2006 через 0416ИТ программно
СообщениеДобавлено: Ср, сен 19 2012, 16:30 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, ноя 07 2006, 10:12
Сообщения: 1194
Откуда: Москва
Пол: Мужской
Ну тему можно и дальше развить, если это программа загрузки данных используйте LSMW которая очень хорошо дополняется ABAP'ом, и вот там можно вообще все что угодно сделать, главное правильно данные подсунуть. Я бы во всякмо случае так бы делал.

_________________
С уважением, Р.В. Величко


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сокращение ИТ 2006 через 0416ИТ программно
СообщениеДобавлено: Вт, сен 25 2012, 12:50 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, авг 17 2004, 08:49
Сообщения: 319
Откуда: Мариуполь
Похоже в реализации 0416ИТ для версии 4.7 просто не предусмотрено создание записей автоматически. Ибо игнорируется часть передаваемых значений при операции "INS" ...


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

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


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

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


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

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