Текущее время: Чт, июл 24 2025, 06:57

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


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

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


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

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