+ Sapforum.Biz » Отдельные компоненты SAP » BW от SAPТема:
|- Удаление данных куба




Автор Тема: Удаление данных куба  (Прочитано 8124 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Reputation Power: 0
  • jacknk88 has no influence.
  • YearsYearsYearsYearsYearsYears
Удаление данных куба
« : Апрель 29, 2013, 02:25:50 pm »
мне нужно загружать данные в куб каждый час...однако единственный параметр для определения обновления данных это ДАТА. С дельта загрузкой в этом случаи не получается. Я решил загружать данные на текущую дату по переменной "Дата изменения", т.е. если в течении дня данные изменились, то загружаю. Проблема в том, чтобы обновить старые данные в кубе. Надо каким-то образом оставить все остальные данные без изменения и удалить только измененные данные -  дублирующие строки. Может проще сделать с помощью ABAP-программы ????.....тогда как обратиться к данным куба?

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Reputation Power: 0
  • jacknk88 has no influence.
  • YearsYearsYearsYearsYearsYears
Re: Удаление данных куба
« Ответ #1 : Апрель 30, 2013, 08:46:36 am »
может прочитать данные с помощью ФМ RSDRI_INFOPROV_READ ?

таблицу  E_T_DATA надо создавать такую же как и куб или можно указать лишь нужные поля?

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Reputation Power: 0
  • jacknk88 has no influence.
  • YearsYearsYearsYearsYearsYears
Re: Удаление данных куба
« Ответ #2 : Апрель 30, 2013, 02:29:38 pm »
нашел пример использования этого ФМ
RSDRI_INFOPROV_READ_DEMO

и все заработало

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Reputation Power: 0
  • jacknk88 has no influence.
  • YearsYearsYearsYearsYearsYears
Re: Удаление данных куба
« Ответ #3 : Апрель 30, 2013, 02:32:40 pm »
данные из куба можно удалить с помощью ФМ RSSM_DELETE_REQUEST
You are not allowed to view links. Register or Login небольшой код использования этого ФМ

единственная проблема - как записать данные в куб из внутренней таблицы или лучше всего удалить не все записи из куба данного запроса, а только некторые(((((

Код: You are not allowed to view links. Register or Login
ABAP program to find prev request in cube and delete
There will be cases when we cannot use the SAP built-in settings to delete previous request..The logic to determine previous request may be so customised, a requirement.
In such cases you can write a ABAP program which calculates previous request basing our own defined logic.
Following are the tables used :
RSICCONT ---(list of all requests in any particular cube)
RSSELDONE ----- ( has got Reqnumb, source , target , selection infoobject , selections ..etc)
Following is one example code. Logic is to select request based on selection conditions used in the infopackage:
REPORT ZGET_LAST_REQ_SHORT_RUN.
PARAMETERS : TAR_CUBE(9) TYPE C,
SOUR_ODS(9) TYPE C.
DATA : IT_REQ LIKE TABLE OF RSICCONT.
data : it_REQ_WA type RSICCONT.
DATA : IT_CALMONTH_LOW TYPE /BI0/OICALMONTH.
DATA : IT_CALMONTH_HIGH TYPE /BI0/OICALMONTH.
data : diff type N.
DATA : IT_REQ_CUBE LIKE TABLE OF RSSELDONE.
data : it_REQ_CUBE_WA type RSSELDONE.
data : sour_tar(22) type C.
TABLES : ZBW_PARAM.
CLEAR It_REQ.
CLEAR it_REQ_WA.
CLEAR it_REQ_CUBE.
CLEAR DIFF.
concatenate SOUR_ODS '_TO_' TAR_CUBE INTO SOUR_TAR.
SELECT * FROM RSICCONT INTO TABLE IT_REQ WHERE ICUBE = TAR_CUBE.
LOOP AT IT_REQ INTO IT_REQ_WA.
SELECT * FROM RSSELDONE INTO TABLE IT_REQ_CUBE WHERE RNR = IT_REQ_WA-RNR AND SOURCE = SOUR_ODS AND FIELDNAME = 'CALMONTH'.
ENDLOOP.
LOOP AT IT_req_cube into it_req_cube_wa.
IT_CALMONTH_LOW = IT_REQ_CUBE_wa-LOW.
IT_CALMONTH_HIGH = IT_REQ_CUBE_wa-HIGH.
diff = IT_CALMONTH_HIGH - IT_CALMONTH_LOW.
if diff <= 3.
ZBW_PARAM-ZKEY1 = 'INV_SHORT_REQ'.
ZBW_PARAM-ZKEY2 = SOUR_TAR.
ZBW_PARAM-ZDATA = IT_REQ_CUBE_WA-RNR.
MODIFY ZBW_PARAM.
ENDIF.
endloop.

Once after reqnumb is found out, you can pass
cubename, reqnumb as inputs to FM : RSSM_DELETE_REQUEST and get the job done.
Posted by justnaresh at 04:32
Labels: Datawarehousing
« Последнее редактирование: Апрель 30, 2013, 08:25:17 pm от Uukrul »