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

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


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

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


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

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