Текущее время: Чт, июл 17 2025, 11:36

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Как программно изменить параметры ППД?
СообщениеДобавлено: Пн, сен 20 2010, 14:27 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 13 2010, 10:35
Сообщения: 55
Добрый день!

Подскажите, пожалуйста, как программно поменять параметры процесса переноса данных? Я имею в виду параметры фильтра. Т. е. мне надо программно запустить цепочку процессов для загрузки в DSO - это я вроде нашёл как сделать. Но при этом ещё надо задать значения по полям в фильтре в ППД.
Подскажите, кто знает. Или подскажите где искать...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как программно изменить параметры ППД?  Тема решена
СообщениеДобавлено: Вт, сен 21 2010, 14:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Markonys написал(а):
Добрый день!

Подскажите, пожалуйста, как программно поменять параметры процесса переноса данных? Я имею в виду параметры фильтра. Т. е. мне надо программно запустить цепочку процессов для загрузки в DSO - это я вроде нашёл как сделать. Но при этом ещё надо задать значения по полям в фильтре в ППД.
Подскажите, кто знает. Или подскажите где искать...

Three Ways to Dynamically Update “Data Transfer Process” Filter Values


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как программно изменить параметры ППД?
СообщениеДобавлено: Ср, сен 22 2010, 13:40 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 13 2010, 10:35
Сообщения: 55
ROKO, спасибо большое! Сейчас буду смотреть.
Пока этих сведений у меня не было, я по другому пути пошёл - программное изменение критериев фильтра в инфо-пакете. Как делать - мне коллеги подсказали. Сейчас расскажу, может кому-то пригодится.
Модуль BW.
В общем, для задания критериев фильтрации в инфо-пакете надо работать с таблицей: RSLDPSEL. Для изучения записей можно создать пару параметров на уровне инфо-пакета, затем выполнить код:
Code:
REPORT  ZIPCRINFO.

DATA:
  PSEL_REC TYPE RSLDPSEL
.

"Техническое имя инфо-пакета.
PSEL_REC-LOGDPID = 'ZPAK_OOOOOOOOOOOOOOOOOOOOOOOOO'.

SELECT *
FROM RSLDPSEL
INTO CORRESPONDING FIELDS OF PSEL_REC
WHERE
  LOGDPID = PSEL_REC-LOGDPID
.
  WRITE:
    / '--------------------------------------------------',
    / 'PSEL_REC:',
    "Логическое имя инфо-пакета. Это техническое имя инфо-пакета.
    "LOGDPID = 'ZPAK_OOOOOOOOOOOOOOOOOOOOOOOOO'.
    / 'LOGDPID =', PSEL_REC-LOGDPID,
    "Номер запроса для переноса данных.
    "INFOPAKID = 'INFO_OOOOOOOOOOOOOOOOOOOOOOOOO'.
    / 'INFOPAKID =', PSEL_REC-INFOPAKID,
    "Версия объекта - OBJVERS = 'A'. - Активный.
    / 'OBJVERS =', PSEL_REC-OBJVERS,
    "Порядковый номер критерия. Счёт идёт от единицы.
    / 'LNR =', PSEL_REC-LNR,
    "Имя поля данных, к которому относится критерий. FIELDNAME = 'MY_FIELD1'.
    / 'FIELDNAME =', PSEL_REC-FIELDNAME,
    "Информационный объект. IOBJNM = ''.
    "/ 'IOBJNM =', PSEL_REC-IOBJNM,
    "Критерии выбора: SIGN = 'I'.
    / 'SIGN =', PSEL_REC-SIGN,
    "Критерии выбора: ОПЦИЯ. OPT = 'EQ'. Это тот самый вид выбора, который для данного поля
    "задаётся в источнике данных: 'EQ' - равенство, 'BT' - диапазон значений и пр.
    / 'OPT =', PSEL_REC-OPT,
    "Критерии выбора: значение нижней границы при OPT = 'BT'. Либо отдельное значение при OPT = 'EQ'
    / 'LOW =', PSEL_REC-LOW,
    "Критерии выбора: значение верхней границы при OPT = 'BT'. При OPT = 'EQ' пустое: HIGH = ''.
    / 'HIGH =', PSEL_REC-HIGH,
    "Тип запрошенных данных - также новые DS-типы. KIND = 'D'.
    / 'KIND =', PSEL_REC-KIND,
    "Источик данных для задания планировщика. QUELLE = 'Q'.
    / 'QUELLE =', PSEL_REC-QUELLE,
    "Назначение данных из задания планировщика. ZIEL = '1'
    / 'ZIEL =', PSEL_REC-ZIEL,
    "Число записей для проверки при обработке ошибочных данных. NUMBER_AT_ERR = '1000'.
    / 'NUMBER_AT_ERR =', PSEL_REC-NUMBER_AT_ERR,
    "Время тайм-аута. TIMEOUT = '0'.
    / 'TIMEOUT =', PSEL_REC-TIMEOUT,
    "Интерпретация предупреждений. WARNING = ''.
    / 'WARNING =', PSEL_REC-WARNING,
    "Указывает, что для поля допускается более 1000 значений. SEL_1000 = 'X'.
    / 'SEL_1000 =', PSEL_REC-SEL_1000,
    "Флаг для синхронизации метаданных BI при загрузке. METADATA_SYNC = 'X'.
    / 'METADATA_SYNC =', PSEL_REC-METADATA_SYNC,
    "Интерпретация предупреждений. NODATACOLOR = '' или NODATACOLOR = 'G' или ещё как-то.
    / 'NODATACOLOR =', PSEL_REC-NODATACOLOR
  .
ENDSELECT.

WRITE:
    / '--------------------------------------------------',
    / 'Завершено'.

Установку критериев фильтрации инфо-пакета и запуск цепочки процессов можно выполнять примерно так:
Code:
REPORT  ZLOAD_DATA.

DATA:
  MY_FIELD1 TYPE I,
  MY_FIELD2 TYPE I,
  "Имя цепочки.
  CHAIN TYPE RSPC_CHAIN VALUE '<Техническое имя цепочки>',
  "ИД журнала работы цепочки.
  LOGID TYPE RSPC_LOGID,
  "Флаг состояния цепочки.
  E_STATUS TYPE RSPC_STATE,
  "Таблица RSLDPSEL - критерии выбора для полей планировщика.
  PSEL_REC TYPE RSLDPSEL,
  PSEL_TBL TYPE STANDARD TABLE OF RSLDPSEL
.

"Значения полей для фильтрации.
MY_FIELD1 = '10'.
MY_FIELD2 = '20'.

"Общие параметры для каждого критерия.

PSEL_REC-LOGDPID = 'ZPAK_OOOOOOOOOOOOOOOOOOOOOOOOO'.
PSEL_REC-OBJVERS = 'A'.
PSEL_REC-SIGN = 'I'.
PSEL_REC-OPT = 'EQ'.
PSEL_REC-KIND = 'D'.
PSEL_REC-QUELLE = 'Q'.
PSEL_REC-ZIEL = '1'.
PSEL_REC-NUMBER_AT_ERR = '1000'.
PSEL_REC-SEL_1000 = 'X'.
PSEL_REC-METADATA_SYNC = 'X'.

"Удаляем имеющиеся критерии.
"ВНИМАНИЕ! следим, чтобы присутствовала часть с WHERE - иначе будут удалены
"критерии по всем инфо-пакетам в системе. :-))
DELETE FROM RSLDPSEL WHERE LOGDPID = PSEL_REC-LOGDPID.

"Добавляем новые критерии.

CLEAR PSEL_TBL.

"Критерий по полю: MY_FIELD1.
PSEL_REC-LNR = 1.
PSEL_REC-FIELDNAME = 'MY_FIELD1'.
PSEL_REC-LOW = MY_FIELD1.
APPEND PSEL_REC TO PSEL_TBL.

"Критерий по полю: MY_FIELD2.
PSEL_REC-LNR = 2.
PSEL_REC-FIELDNAME = 'MY_FIELD2'.
PSEL_REC-LOW = MY_FIELD2.
APPEND PSEL_REC TO PSEL_TBL.

MODIFY RSLDPSEL FROM TABLE PSEL_TBL.
COMMIT WORK.

"Запуск цепочки процессов.

CALL FUNCTION 'RSPC_API_CHAIN_START'
EXPORTING
  I_CHAIN = CHAIN
  I_SYNCHRONOUS = 'X'
IMPORTING
  E_LOGID = LOGID
EXCEPTIONS
  FAILED = 1
  OTHERS = 2
.

DO 20 TIMES.
  CALL FUNCTION 'RSPC_API_CHAIN_GET_STATUS'
  EXPORTING
    I_CHAIN = CHAIN
    I_LOGID = LOGID
  IMPORTING
    E_STATUS = E_STATUS
  .
  IF E_STATUS <> 'A' AND E_STATUS <> 'X'.
    EXIT.
  ENDIF.

  WAIT UP TO 5 SECONDS.
ENDDO.

IF E_STATUS = 'R' OR E_STATUS = 'X' OR E_STATUS = 'J'.
  WRITE: / 'Ошибка загрузки.'.
ENDIF.

WRITE: /, / 'Завершено.'.

Краткие описания полей таблицы RSLDPSEL можно посмотреть через транзакцию /se80 - Инфо-система репозитария - ABAP словарь - таблицы БД.


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

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


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

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


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

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