Текущее время: Ср, апр 24 2024, 04:00

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


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

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


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

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