Текущее время: Чт, мар 28 2024, 16:24

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: удаление данных из ИТ2001 с помощью HR_INFOTYPE_OPERATION
СообщениеДобавлено: Пт, май 04 2018, 15:13 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, дек 15 2017, 10:50
Сообщения: 91
Нужно быстро почистить ИТ2001 от блокированных записей.
Для этого пытаюсь использовать ФМ HR_INFOTYPE_OPERATION, но код возврата выдает ошибку "Данных для 2001 (в выбранном периоде) не существует"
Подскажите, пожалуйста, что не так?
код программы, данные выбираются корректно:

Code:
SELECT * FROM pa2001
    INTO CORRESPONDING FIELDS OF TABLE lt_p2001
    WHERE pernr = pernr-pernr
      AND ( subty = '0100' OR subty = '0110' )
      AND sprps = 'X'
      AND ( ( begda BETWEEN pn-begda AND pn-endda ) OR ( endda BETWEEN pn-begda AND pn-endda ) ).

  CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
      EXPORTING
        number = pernr-pernr.

  LOOP AT lt_p2001 INTO wa_p2001.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        infty                  = '2001'
        number                 = wa_p2001-pernr
        subtype                = wa_p2001-subty
*       objectid               =
*       lockindicator          =
        validityend            = wa_p2001-endda
        validitybegin          = wa_p2001-begda
*       recordnumber           =
        record                 = wa_p2001
        operation              = 'DEL'
        tclas                  = 'A'
        dialog_mode            = '1'
*       nocommit               =
*       view_identifier        =
*       secondary_record       =
      IMPORTING
        return                 = rec_return
*       key                    =
              .
    IF rec_return IS NOT INITIAL.

    ENDIF.
  ENDLOOP.

  CALL FUNCTION 'BAPI_EMPLOYEET_DEQUEUE'
    EXPORTING
      number        = pernr-pernr
      validitybegin = sy-datum
    IMPORTING
      return        = dummy_return.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: удаление данных из ИТ2001 с помощью HR_INFOTYPE_OPERATION
СообщениеДобавлено: Пт, май 04 2018, 15:57 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, мар 16 2011, 23:26
Сообщения: 260
Code:
*       lockindicator          =


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: удаление данных из ИТ2001 с помощью HR_INFOTYPE_OPERATION
СообщениеДобавлено: Пн, май 07 2018, 07:39 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, дек 15 2017, 10:50
Сообщения: 91
Secret007 написал(а):
Code:
*       lockindicator          =


его заполнение тоже не помогло


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: удаление данных из ИТ2001 с помощью HR_INFOTYPE_OPERATION
СообщениеДобавлено: Пн, май 07 2018, 08:58 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, дек 15 2017, 10:50
Сообщения: 91
При этом, если использовать тот же ФМ, но с параметром 'DIS' запись корректно находится


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: удаление данных из ИТ2001 с помощью HR_INFOTYPE_OPERATION
СообщениеДобавлено: Пн, май 07 2018, 09:18 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Code:
data lp2001 type TABLE OF p2001.
data ls2001 type p2001.
data  rec_return type BAPIRETURN1.

CALL FUNCTION 'HR_READ_INFOTYPE'
  EXPORTING
*   TCLAS                 = 'A'
    pernr                 = '1107010'
    infty                 = '2001'
*   BEGDA                 = '18000101'
*   ENDDA                 = '99991231'
*   BYPASS_BUFFER         = ' '
*   LEGACY_MODE           = ' '
* IMPORTING
*   SUBRC                 =
  tables
    infty_tab             = lp2001
EXCEPTIONS
   INFTY_NOT_FOUND       = 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.
ENDIF.

read TABLE lp2001 INTO ls2001 with key pernr = '1107010' begda = '20180315' subty = '0001' and SPRPS = 'X'.


CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
      EXPORTING
        number = '1107010'.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        infty                  = '2001'
        number                 = ls2001-pernr
        subtype                = ls2001-subty
*       objectid               =
        lockindicator          = ls2001-SPRPS
        validityend            = ls2001-endda
        validitybegin          = ls2001-begda
*       recordnumber           =
        record                 = ls2001
        operation              = 'DEL'
        tclas                  = 'A'
        dialog_mode            = '1'
*       nocommit               =
*       view_identifier        =
*       secondary_record       =
      IMPORTING
        return                 = rec_return
*       key                    =
              .
    IF rec_return IS NOT INITIAL.
      BREAK-POINT.
    ENDIF.

    CALL FUNCTION 'BAPI_EMPLOYEET_DEQUEUE'
    EXPORTING
      number        = 1107010
      validitybegin = sy-datum.
*    IMPORTING
*      return        = dummy_return.


Так у меня удалило


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: удаление данных из ИТ2001 с помощью HR_INFOTYPE_OPERATION
СообщениеДобавлено: Пн, май 07 2018, 15:00 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, дек 15 2017, 10:50
Сообщения: 91
Kuranov.Dmitry написал(а):

Так у меня удалило


не помогает, при этом, если DEL заменить на DIS все отлично отрабатывает


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: удаление данных из ИТ2001 с помощью HR_INFOTYPE_OPERATION
СообщениеДобавлено: Чт, май 10 2018, 10:00 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
попробуйте как тут, https://archive.sap.com/discussions/thread/1099059

обратите внимание что передается в RECORD


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: удаление данных из ИТ2001 с помощью HR_INFOTYPE_OPERATION
СообщениеДобавлено: Вт, май 15 2018, 07:14 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, дек 15 2017, 10:50
Сообщения: 91
Besa написал:
попробуйте как тут, https://archive.sap.com/discussions/thread/1099059

обратите внимание что передается в RECORD


Все передавалось корректно, ошибка была в работе ФМ HR_READ_INFOTYPE, отрабатывавшего в ФМ HR_INFOTYPE_OPERATION
Почему-то при вызове из программы он не находил нужных записей, хотя при запуске этого модуля через se37 все отрабатывало корректно.
В отладке проверяла, данные на входе в фм абсолютно идентичны, но почему-то на выходе получаются разные данные.
обращение в поддержку не принесло внятного ответа
Проблема решилась использованием ФМ HR_MAINTAIN_MASTERDATA


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

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


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

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


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

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