SAP BI工作摘錄

fog911811發表於2012-07-20

CMOD中的XRSRU01

1、  宣告會計年度型別的變數

Data: year_temp2 TYPE /bi0/oifiscyear

 

2、  宣告記賬期間型別的變數e

Data: mon_temp2 TYPE /bi0/oifiscper3,

 

3、  宣告日期型別的變數

Data: date like sy-datum

 

4、  宣告一個型別如層次結構表的變數

zorg_hier_tab1 LIKE TABLE OF /bi0/horgunit

   根據條件從表中檢索出記錄放到一個工作區中

   select single * from /bi0/horgunit into zorg_hier_wa
                                 
where objvers = 'A'
                                   
and nodename = '&2'
                                   
and datefrom <= sy-datum
                                   
and dateto   >= sy-datum.

 

select * from /bi0/horgunit into table zorg_hier_tab1
                                 
where parentid = zorg_hier_wa-nodeid

判斷表不為空

if zorg_hier_tab1[] is not initial.

移動記錄

 move zorg_hier_tab2[] to zorg_hier_tab1[].

 

 

 

5、  ranges: r_nodeid for /bi0/horgunit-nodeid.

 

6、  t_son_com type ztcode with header line

zcode是一個長度為6的字串

 

7、  data: za_table like table of z08bit001 with header line.

Data

 

8、 data:diw_first TYPE d VALUE '19790101'

 

 

9、  定義巨集

DEFINE macro.

….&1…..&9…

END-OF-DEFINITION.

它相當於一個子程式,例如

DEFINE operation.
  result = &1 &2 &3.
  output   &1 &2 &3 result.
END-OF-DEFINITION

呼叫,

operation 4 + 3.
operation 2 ** 7.
operation n2 - n1.

另外,巨集的定義是存在表TMAC

 

 

 

10、              增強中固定的幾個變數

I_vnam:  Query變數是賦給CMOD中的變數

I_step:  呼叫發生的時機

I_t_var_range: 使用者輸入的值是存在i_t_var_range裡面的

L_s_range: cmod操作的內表

E_t_range: 最終賦給E_T_RANGE返回給Query,方法append l_s_range to e_t_range.

I_s_rkbld-compid: 存放Query的變數

 

11、              連線字串

CONCATENATE sy-datum+0(4'0101' INTO zdate.
 l_s_range-low = zdate.

 

12、              從表獲得值,賦予到一個變數中

 SELECT MIN( calmonth ) INTO zmonth1
 
FROM /bic/azwps_d9600.
 
IF sy-subrc = 0.
    zmonth1 = zmonth1.
 
ELSE.
    zmonth1 = 
'200001'.

 ENDIF.

 

13、              定義一個資訊物件型別的常量

 CONSTANTS: c_objnm TYPE rsd_iobjnm VALUE '0SEM_CGCOMP',
            c_objnm2 
TYPE rsd_iobjnm VALUE '0TCAIPROV'.

 

14、              DESCRIBE TABLE itab [KIND knd] [LINES lin] [OCCURS n].

 

它是將內表itab的一些屬性的值,賦予特定的變數中,

KIND knd:將itab的表型別賦予變數

T Standard tables

S:  Sorted tables

H:  Hashed tables

LINE lin: 決定表itab表的記錄行數

 

15 CALL FUNCTION 'ZBPC_AUTH_CHECK_ENTITY'
        
CHANGING  chg_comp = i_comp1.

 

16、SHIFT l_s_var_range_01-low LEFT

SHIFT c  BY  n  PLACES MODE

去掉字串的前N個位置拉字元,N不指定,預設為1,如果N0或負數,則字串不變,如果N超出字串的長度,則字串變空,

MODE表是擷取字串的方向

LEFT:從左邊截斷

RIGHT:從右邊截斷

CIRCULAR:把左邊的字元放到右邊。

 

17、 去掉字串的空格

CONDENSE l_s_range-low NO_GAPS

 

18、 WHEN語句中作判斷“或”

 WHEN 'ZCNFDATE' OR 'ZCNFDATES' OR 'ZCNFDATEP'.

 

19、 賦值

MOVE t_son_com TO comp.

 

20、 更新資料要注意的

大資料量時不要用modify

大資料量時要考慮update module

大資料量更新必然引起transaction log的激增,沒辦法,要關注磁碟的空間。

 

21、 OPEN SQL的主要型別

SELECT

INSERT

UPDATE: 在資料庫表中更改行

MODIFY:新增或更改行

DELETE:

OPEN CURSOR , FETCH 使用游標從DB表中讀取行

CLOSE CURSOR

    

22、從DB中讀取單條記錄

SELECT SINGLE  *  FROM  scarr  INTO  wa_scarr WHERE carrid = pa_car

If sy-subrc = 0

…..

 

 

23、從DB中讀取多條記錄

SELECT  carrid  connid fldata  seatsocc  searsmax

FROM  sfight

INTO  wa_sbc400focc

WHERE carrid = pa_car

 

ENDSELECT

IF sy-subrc = 0 .

 

24、DB中讀取多條記錄讀到記憶體中的wa

SELECT  carrrid  connid  flddate seatmax  setsocc

FROM  sflight

INTO  TABLE itab_focc

WHERE  carrid = pa_car.

 

25、select中語句中指定要訪問的clients

SELECT * FROM spfli

CLIENT SPECIFIED

INTO …

WHERE mandt in (401, 402)

AND carrid EQ ‘AA’.

ENDSELECT.

 

26、利用游標從DB表中讀取行

OPEN CURSOR [WITH HOLD]  <c> FOR SELECT ….

     [WHERE <condition>].

 

27、字串相連後,以什麼字元來分隔

CONCATENATE  t1   t2  t3 INTO  result  SEPARATED BY space.

CONCATENATE  nodename+28(4)  text INTO result SEPARATED BY  '  '.

 

28、DB表選出欄位存放在一個表中

 SELECT * INTO CORRESPONDING FIELDS OF TABLE za_table
 
FROM z08bit001
 
WHERE zempno = sy-uname AND zauthob = 'Z10BI029' AND zinfo = '0COMP_CODE'.

 

29、Query有變數ZCPROT01,是基於利潤中心建立的,是多個單值,作cmod中作增強時

        WHEN 'ZCPROT01'.
          
IF i_step = 1.
            
SELECT * INTO CORRESPONDING FIELDS OF TABLE za_table
              
FROM z08bit001
              
WHERE zempno = sy-uname AND zauthob = 'Z10BI029' AND zinfo = '0PROFIT_CTR'.

            
LOOP AT za_table.
              
CLEAR l_s_range .
              l_s_range-
sign = 'I'.
              l_s_range-opt = 
'EQ'.
              l_s_range-low = za_table-zauthval.
*              l_s_range-high = za_table-zauthval.
              
APPEND l_s_range TO e_t_range .
            
ENDLOOP.
            
CLEAR l_s_var_range.
          
ENDIF.

SELECTENDSELECT之間是多條記錄的,在其中作處理:將select出來的值賦給LOW,就可以實現多個值了。

 

30SAP出口的例子,Z10_ZAFM_C01_WQ_002,基於0FISCYEAR建立的變數0FYEARSAP Exit的。

 

31、當你刪除紅色的DTP請求,錯誤堆疊中的資料也會被刪除。

 

32、Error Stack的表名,開啟一個DTP,在選單Extras --à Setting for Error Stack.可以找到table Name.

 

33、NUMC:是一個字串型別,用於電話號碼,身份證號碼等,不能用於資料計算的,它前導可以是0

    NUM:只含用數字,可用於計算,是IP的數字型別

 

34、CUBEQueryinfoArea, InfoCube都可以通過S_RS_COMP來限制

   PC是通過S_RS_PC來限制的.

 

35、可以在

CMOD中的XRSRU01

1、  宣告會計年度型別的變數

Data: year_temp2 TYPE /bi0/oifiscyear

 

2、  宣告記賬期間型別的變數e

Data: mon_temp2 TYPE /bi0/oifiscper3,

 

3、  宣告日期型別的變數

Data: date like sy-datum

 

4、  宣告一個型別如層次結構表的變數

zorg_hier_tab1 LIKE TABLE OF /bi0/horgunit

   根據條件從表中檢索出記錄放到一個工作區中

   select single * from /bi0/horgunit into zorg_hier_wa
                                 
where objvers = 'A'
                                   
and nodename = '&2'
                                   
and datefrom <= sy-datum
                                   
and dateto   >= sy-datum.

 

select * from /bi0/horgunit into table zorg_hier_tab1
                                 
where parentid = zorg_hier_wa-nodeid

判斷表不為空

if zorg_hier_tab1[] is not initial.

移動記錄

 move zorg_hier_tab2[] to zorg_hier_tab1[].

 

 

 

5、  ranges: r_nodeid for /bi0/horgunit-nodeid.

 

6、  t_son_com type ztcode with header line

zcode是一個長度為6的字串

 

7、  data: za_table like table of z08bit001 with header line.

Data

 

8、 data:diw_first TYPE d VALUE '19790101'

 

 

9、  定義巨集

DEFINE macro.

….&1…..&9…

END-OF-DEFINITION.

它相當於一個子程式,例如

DEFINE operation.
  result = &1 &2 &3.
  output   &1 &2 &3 result.
END-OF-DEFINITION

呼叫,

operation 4 + 3.
operation 2 ** 7.
operation n2 - n1.

另外,巨集的定義是存在表TMAC

 

 

 

10、              增強中固定的幾個變數

I_vnam:  Query變數是賦給CMOD中的變數

I_step:  呼叫發生的時機

I_t_var_range: 使用者輸入的值是存在i_t_var_range裡面的

L_s_range: cmod操作的內表

E_t_range: 最終賦給E_T_RANGE返回給Query,方法append l_s_range to e_t_range.

I_s_rkbld-compid: 存放Query的變數

 

11、              連線字串

CONCATENATE sy-datum+0(4'0101' INTO zdate.
 l_s_range-low = zdate.

 

12、              從表獲得值,賦予到一個變數中

 SELECT MIN( calmonth ) INTO zmonth1
 
FROM /bic/azwps_d9600.
 
IF sy-subrc = 0.
    zmonth1 = zmonth1.
 
ELSE.
    zmonth1 = 
'200001'.

 ENDIF.

 

13、              定義一個資訊物件型別的常量

 CONSTANTS: c_objnm TYPE rsd_iobjnm VALUE '0SEM_CGCOMP',
            c_objnm2 
TYPE rsd_iobjnm VALUE '0TCAIPROV'.

 

14、              DESCRIBE TABLE itab [KIND knd] [LINES lin] [OCCURS n].

 

它是將內表itab的一些屬性的值,賦予特定的變數中,

KIND knd:將itab的表型別賦予變數

T Standard tables

S:  Sorted tables

H:  Hashed tables

LINE lin: 決定表itab表的記錄行數

 

15 CALL FUNCTION 'ZBPC_AUTH_CHECK_ENTITY'
        
CHANGING  chg_comp = i_comp1.

 

16、SHIFT l_s_var_range_01-low LEFT

SHIFT c  BY  n  PLACES MODE

去掉字串的前N個位置拉字元,N不指定,預設為1,如果N0或負數,則字串不變,如果N超出字串的長度,則字串變空,

MODE表是擷取字串的方向

LEFT:從左邊截斷

RIGHT:從右邊截斷

CIRCULAR:把左邊的字元放到右邊。

 

17、 去掉字串的空格

CONDENSE l_s_range-low NO_GAPS

 

18、 WHEN語句中作判斷“或”

 WHEN 'ZCNFDATE' OR 'ZCNFDATES' OR 'ZCNFDATEP'.

 

19、 賦值

MOVE t_son_com TO comp.

 

20、 更新資料要注意的

大資料量時不要用modify

大資料量時要考慮update module

大資料量更新必然引起transaction log的激增,沒辦法,要關注磁碟的空間。

 

21、 OPEN SQL的主要型別

SELECT

INSERT

UPDATE: 在資料庫表中更改行

MODIFY:新增或更改行

DELETE:

OPEN CURSOR , FETCH 使用游標從DB表中讀取行

CLOSE CURSOR

    

22、從DB中讀取單條記錄

SELECT SINGLE  *  FROM  scarr  INTO  wa_scarr WHERE carrid = pa_car

If sy-subrc = 0

…..

 

 

23、從DB中讀取多條記錄

SELECT  carrid  connid fldata  seatsocc  searsmax

FROM  sfight

INTO  wa_sbc400focc

WHERE carrid = pa_car

 

ENDSELECT

IF sy-subrc = 0 .

 

24、DB中讀取多條記錄讀到記憶體中的wa

SELECT  carrrid  connid  flddate seatmax  setsocc

FROM  sflight

INTO  TABLE itab_focc

WHERE  carrid = pa_car.

 

25、select中語句中指定要訪問的clients

SELECT * FROM spfli

CLIENT SPECIFIED

INTO …

WHERE mandt in (401, 402)

AND carrid EQ ‘AA’.

ENDSELECT.

 

26、利用游標從DB表中讀取行

OPEN CURSOR [WITH HOLD]  <c> FOR SELECT ….

     [WHERE <condition>].

 

27、字串相連後,以什麼字元來分隔

CONCATENATE  t1   t2  t3 INTO  result  SEPARATED BY space.

CONCATENATE  nodename+28(4)  text INTO result SEPARATED BY  '  '.

 

28、DB表選出欄位存放在一個表中

 SELECT * INTO CORRESPONDING FIELDS OF TABLE za_table
 
FROM z08bit001
 
WHERE zempno = sy-uname AND zauthob = 'Z10BI029' AND zinfo = '0COMP_CODE'.

 

29、Query有變數ZCPROT01,是基於利潤中心建立的,是多個單值,作cmod中作增強時

        WHEN 'ZCPROT01'.
          
IF i_step = 1.
            
SELECT * INTO CORRESPONDING FIELDS OF TABLE za_table
              
FROM z08bit001
              
WHERE zempno = sy-uname AND zauthob = 'Z10BI029' AND zinfo = '0PROFIT_CTR'.

            
LOOP AT za_table.
              
CLEAR l_s_range .
              l_s_range-
sign = 'I'.
              l_s_range-opt = 
'EQ'.
              l_s_range-low = za_table-zauthval.
*              l_s_range-high = za_table-zauthval.
              
APPEND l_s_range TO e_t_range .
            
ENDLOOP.
            
CLEAR l_s_var_range.
          
ENDIF.

SELECTENDSELECT之間是多條記錄的,在其中作處理:將select出來的值賦給LOW,就可以實現多個值了。

 

30SAP出口的例子,Z10_ZAFM_C01_WQ_002,基於0FISCYEAR建立的變數0FYEARSAP Exit的。

 

31、當你刪除紅色的DTP請求,錯誤堆疊中的資料也會被刪除。

 

32、Error Stack的表名,開啟一個DTP,在選單Extras --à Setting for Error Stack.可以找到table Name.

 

33、NUMC:是一個字串型別,用於電話號碼,身份證號碼等,不能用於資料計算的,它前導可以是0

    NUM:只含用數字,可用於計算,是IP的數字型別

 

34、CUBEQueryinfoArea, InfoCube都可以通過S_RS_COMP來限制

   PC是通過S_RS_PC來限制的.

 

35、可以在tomcatcatalina.bat中新增啟動引數:

Set JAVA_OPTS = %JAVA_OPTS%-Dsun.lang.ClassLoader.allowArraySyntax=true

Set JAVA_OPTS = Xms512m-Xmsx512m

 

360FISCPER3的資料元素是/BI0/OIFISCPER3。記賬期間

0CALMON的資料元素是/BI0/OICALMONTH。日曆年/

0CALYEAR的資料元素是/BI0/OICALYEAR。日曆年

0CALMONTH2的資料元素是/BI0/OICALMONTH2

0CALDAY的資料元素是/BI0/OICALDAY.

tomcatcatalina.bat中新增啟動引數:

Set JAVA_OPTS = %JAVA_OPTS%-Dsun.lang.ClassLoader.allowArraySyntax=true

Set JAVA_OPTS = Xms512m-Xmsx512m

 

360FISCPER3的資料元素是/BI0/OIFISCPER3。記賬期間

0CALMON的資料元素是/BI0/OICALMONTH。日曆年/

0CALYEAR的資料元素是/BI0/OICALYEAR。日曆年

0CALMONTH2的資料元素是/BI0/OICALMONTH2

0CALDAY的資料元素是/BI0/OICALDAY.

 

 

37Loop裡面不允許有SQL語句,如果Loop裡面的SQL B是根據另一個SQL A語句的條件來得出的,先把SQL B的結果放在一個RANGE裡面,在Loop裡面再在RANGE里根據條件來抓取。

 

38No Full Repair/Repair full request concept in DTP as it has one to one delta mechanism.

 

39、兩種動態資料物件:Field SymbolsData Reference

 

40、內表有三種形式:Standard table Sorted TableHashed table ,後一種不能進行索引查詢,只能通過關鍵字搜尋。

 

 

=============2012/8/1

1、幾個常用的系統變數:sy-uname, sy-host, sy-datum, sy-uzedit, sy-subrc, sy-index, sy-bdcnt, sy-tabix, sy-dynnr

 

2AppendInsert的區別:Append wa to itab,   insert wa into table itab.

 

3、修改內表語法:modify itab from wa TRANSPORTING col2 where…..表明根據where條件來更新COL2欄位值,表型別為SORTEDHASHED

 

4、在LOOP ….ENDLOOP內有一個AT ~ ENDAT迴圈,其中包括FIRSTLASTNEW END OF這些可以用來進行內表中按某個欄位分組統計。

 

5、幾條記錄作一次取用:PACKAGE SIZE N,如SELECT * FROM SPFLI  INTO CORRESPONDING FIELDS  OF TABLE  itab PACKAGE SIZE 3.

 

6、幾個字元的操作函式,SPLIT …AT … INTO, SHIFT…RIGHT.., ADD-CORRESPONDING, DIVIDE-CORRESPONDING, MOVE-CORRESPONDING, ABS, CONCATENAME, CONDENSE.

 

7、重新整理時對於基表用refresh,內表用clear, free.

 

8、如果內表沒顯式宣告,所有非數值的欄位都作為KEY

   READ可以用With KeyWith TABLE KEY,DELETE只能用with table key

   語法如下:

   -------1

   DELETE / READ itab – table_key

   …….

   WITH TABLE KEY name1 = dobj1

 

   ------2

   READ – table free key

   ….

   READ TABLE itab {WITH KEY dobj}

            | WITH KEY = dobj [BINARY SEARCH]  RESULT

   我們關注的內表的訪問效率問題,訪問表可以用WITH KEYWITH KEY – BINARY SEARCHWITH TABLE KEY. 那效率如何?

   分析這個問題,先了解下表的訪問方式有哪些,主要用index, binary search,線性, HASH

   內表的訪問和內表的型別有直接的關係,如:

   Standard Table線性訪問,可以用with keywith Table Keywith key … Binary Search,但with key … Binary Search效率最好

   Sorted Table Binary Search,預設用Binary Search

   Hashed Table Hash演算法。

 

 

9、做Aggregate的方法有:

A、熟悉CUBE的結構,直接手工抓取Characteristic

BPropose From Query:比較單純,直接選擇一個Query它就會自動生成兩個Agg.,分別為Min(最小情況,就是你下了過濾條件的InfoObject,Max(顯示InfoObject + Free Object + Filter OBject)

CFrom Statistic你要首先啟用對應CubeStatistic,等資料統計一了一定量的時候它就會按照統計資料自動生成Agg.,一下子會生成多個,選擇Optimum,它會做優化,留下合併的情況,都啟用後觀察一段時間,把使用率較低的殺掉它,剩下的就是精華了。

10RSA1OLD是進入3.5的老介面。

 

11、內表定義:不能直接定義帶表頭的內表,應先按照命名規範定義內表,再定義工作區對應該內表使用。

DATA: gt_table   TYPE STANDARD TABLE OF table,
      gwa_table  LIKE LINE OF gt_table.

 

12、常用表操作語句

1)、SELECT

程式中SELECT語句前面選擇的列保持每行一列,如果後面只有一列選擇,INTO後面應去掉CORRESPONDING FIELDS OF.

如:SELECT  Colum1

       Colum2

           Colum3

    INTO CORRESPONDING FIELDS OF TABLE gt_table

2)、LOOP –AT:LOOP語句中禁止寫SELECT語句,必須寫在LOOP迴圈體外。

    SELECT  Colum1

              Colum2

      INTO   gt_table

      FROM   table.

LOOP AT gt_tableINTO gwa_table.

ENDLOOP.

 

13FOR  ALL  ENTRIES   IN

注意點:使用前應先判斷後面的內表是否為空,因為若為空則資料無條件全部被選出,同時需要先對內表進行排序和刪除重複記錄以提高效能。

 

14AT    NEW… ENDAT.     AT END OF …ENDAT.

注意點:使用此方法前,應先將內表進行排序。

 

1、  修改動態內表的值只能用指標形式

LOOP AT <scout> ASSIGNING <fs_wa_out_tmp>.
      
ASSIGN COMPONENT 'OBJNR' OF STRUCTURE <fs_wa_out_tmp> to <fs_result>.
      
ASSIGN COMPONENT 'OBJNR_N1' OF STRUCTURE <fs_wa_out_tmp> to <fs_xj>.
      
IF <fs_result> = gwa_zhc-objnr AND <fs_xj> = gwa_zhc-objnr_n1.
*        PERFORM frm_assign USING gwa_zhc-kstar gwa_zhc-wtgbtr.
        
WRITE gwa_zhc-wtgbtr to l_str.
        
ASSIGN COMPONENT 'POSID' OF STRUCTURE <fs_wa_out_tmp> TO <FS_to>.
        <fs_to> = gwa_zhc-posid.
        
ASSIGN COMPONENT gwa_zhc-kstar OF STRUCTURE <fs_wa_out_tmp> TO <fs_from>.
*        <fs_from> = gwa_zhc-wtgbtr.
        <fs_from> = l_str.
        
CLEAR: l_str.
        UNASSIGN <fs_from>.
        gwa_zhc-flg = 
'X'.
      
ENDIF.
    
ENDLOOP.

 

 

2、  取下一個月函式

CALL FUNCTION '/ISDFPS/GANTT_GET_NEXT_MONTH'

     EXPORTING

       i_date = l_datum

     IMPORTING

        e_date = l_datum.

 

17、取內表中最小值

 AT NEW cloum.

     mindate = l_date.

    ENDAT.

 

18、取內表中的最大值

AT END OF cloum.

     maxdate = l_date.

   ENDAT.

這種方法可直接獲取內表的最小值和最大值,而不用迴圈比較內表內各值大小,但須注意使用前必須先對內表進行排序。

 

18、修改SAP表:SE16N&SAP_EDIT

 

19、當要刪除一個Query時,注意你有沒有S_RS_COMPS_RS_COMP1的許可權。

 

20、匯率傳率的後臺工作名是RSIMPCURR

 

22、維護無效字元RSKC,PROGRAM: RSKC_ALLOWED_CHAR_MAINTAIN

 

23、維護物料編碼的格式OMSL,相關的表TMCNV

 

24、更改監視器的等待時間RSCUSTV2,相關的表是RSADMINCV2

 

25、安裝NOTE可以是針對開發工具,系統的,或模組功能增強而打的。

 

26、在SELECT語句中指定要訪問的CLIENTS

SELECT *  FROM SPFLI  CLIENT  SPECIFIED

INTO ….

WHERE   MANDT  IN (401,  402)   AND  CARRID  EQ  ‘LH’.

….

ENDSELECT.

 

27、刪除Query的方法有:

一法:RSZDelete

二法:

A,Rsa1-à Transport Connection

B,Object Changability button

C, Object ELEM(Query Element) is set to ’Not Changeable’, Right-click and changed to ‘All changeable’

D,Now ELEM object type is set to changeable -à try to delete the query again.

三法:

檢查舊的Query有沒有一些元素被使用,如文字元素,導航板等。

 

28WBS:工作細分結構,是將專案的總任務進行細分的工具。WBS元素指工作細分結構的單元,按照一定的編碼規則,劃分了不同的層次,上一層的元素是下一層元素的彙總,包括時間、計劃,預算等等。

 

29IDOCIntermediate DocumentSAP ECC或其他外部系統交換資料用的檔案格式。

SAP系統有很多自己已定義好的IDOC Message Type,如同一個系統的兩個Client有一個賬號同步功能可以通過IDOC的設定來實現,如Client 100某賬號改了密碼,這次改動的資料會自動Outbound傳送到Client120,而且120通過Inbound來接收資料,寫入資料表。

 

24、處理重複的資料記錄

如果DTPHandle Duplicate Record Keys標誌設勾上,有重複的資料記錄會寫到錯誤堆疊中。

如果有勾上,處理過程是,

①不依賴時間的資料,對有重複Key的資料,包最後一條記錄被更新到資料目標中。

②時間表依賴的,例如

  資料記錄1,有效期2006.01.01  ~ 2006.12.31

  與上面記錄有重複Key的資料記錄2,有效期2006.7.1  ~  2007.12.31

  系統會更改資料記錄1的有效期:2006.01.01  ~ 2006.6.30

  注意:DTP語義組宣告資料包的資料結構,有時在DTP的語義鍵中不包含DATETO

DATETO不是語義鍵的

DataRrd

Key

DATEFROM

DATETO

Value

DataRrd  1

A

2001-01-01

2006-12-31

Xyc

DataRrd  2

A

2000-01-01

2001-12-31

Abc

在資料包中,資料記錄是按資料記錄1,資料記錄2的順序來排序的,

所以記錄的時間間隔更正為:

資料記錄1 2002-01-01   2006-12-31

資料記錄2 2000-01-01   2001-12-31

DATETO是語義鍵的

   

DataRrd

Key

DATAFROM

VALUE

 

 

DATETO

DataRrd 1

A

2006-12-31

2001-01-01

XYZ

DataRrd 2

A

2001-12-31

2000-01-01

ABC

如果DATETO是主鍵中的一員,資料記錄會按DATETO排序,在這種情況下,有最早日期的記錄會排在前面,資料包的記錄是:DataRrd 2 DataRrd 1.

 

記錄的時間間隔更正為:

DataRcd 12001.1.1  ~  2006.12.31

DataRcd 2: 2000.1.1  ~  2000.12.31

31、如何利用ERP以及企業所有業務系統積累的大量資料,從浩如煙海的資料中發掘出有用的資訊,從企業層面出具報表,分析企業執行狀況,甚至找到企業業績背後趨勢性,規律性的主要原因,從而為企業提供決策支援和戰略指引,這就是BI軟體的歷史使命,同時也是商務智慧專案在當前依舊如火如萘,方興未艾的根本原因。

 

32、SAP BW三層邏輯架構例項

         

33SAP BW內部三層邏輯架構

    

 

34、在系統中用層次配置來管理要傳輸的物件:Package(開發類), Request, Task.

 

35、如果系統可用的Package,可以用SE21先建立一個Package

 

36、Request,前三位是系統編號,第4位是字母K,後面6位是流水號。

 

37、業務需求分為三部分

BW系統中建立相應的模型。

BW系統中完成資料的載入。

Bex工具中建立查詢和報表,顯示資料。

 

38、Bw中建立相應的模型主要包括以下內容:

1)、資訊物件:特性和關鍵值

2)、資料來源:業務資料資料來源,主資料資料來源或文字型別資料來源

3)、DSO:用於儲存對倉存層的資料

4)、InfoCube

5)、transformation

6)、InfoPackage

7)、DTP

 

39、BW本質上是一個DB,在BW中只是將物件本身儲存,啟用是生成該物件對應的資料庫表,可以放資料和其他物件,才能被使用。所以,在BW中建立物件後,一般都有啟用操作,如果之前未儲存,啟用也就附帶儲存了。

 

 

39、許可權、角色、使用者的關,一個使用者可以分配多個角色,一個角色又可以分配多個許可權,我們通常根據定義許可權物件來控制具體的功能範圍。

 

40、以下這幾個物件是使用者瀏覽報表所必須的最小許可權

S_RS_COMP, S_RS_COMP1,  S_RFC,  S_TCODE

一個報表使用者必須有S_RS_COMP, S_RS_COMP1來控制資訊提供者和Query等的訪問許可權,另外如果使用者使用Bex Analyzer工具,還需要S_RFCS_TCODERRMX)的許可權。

   

41、三個系統許可權物件:

0TCAACTVT: 控制操作型別

0TCAIPROV:控制資訊提供者的許可權

0TCAVLID:控制有效期間

 

42、BW許可權的三層結構,BW系統賬號許可權;BW報表選單許可權;BW報表細節許可權;

 

49Business View ManagerBVM

50what’s sandbox?

Is one more instance of your server in SAP.

Is training field. Just a playground.

Whatever configurations/developments done in the SANDBOX it can’t transport.

 

51BKK_ADD_MONTH_TO_DATE:向指定日期上增加若干個月,並返回結果日期。

INPUT

OLDDATE:日期型別,必須輸入,原始日期

MONTHS:不限制型別,必須輸入,新增的月份數,可以是負數。

OUTPUT

NEWDATE:日期型別,計算出的結果

 

52FIMA_DATE_CREATE,當月倒退13個月

CALL FUNCTION FIMA_DATE_CREATE

EXPORTING

I_date = sy-datum

I_months = -13

IMPORTING

E_date = ztdt.

 

 

53、通過建立例外可以用紅黃綠顏色標示介於不同之範圍的數值。

 

54、通過建立條件,可對資料進行篩選及顯示方式的限制。

 

55BX就相當於R3端用MMBE Tcode的效果一樣,MMBE是顯示一個物料的庫存,BX則會把所用物料的庫存都會給你計算寫到SETUP Table

 

56PC沒資料抽取,記得要給BWALEREMOTE全部的許可權。

  

57LO Cockpit Step ByStep

- Go to transaction LBWE(LO Customizing cockpit)

1).Select logistic application

SD sales BW

Extract structures

2).Select the desired extract structure and deactivate it first.

3).Give the transport request number and continue.

4).Click on ‘Maintenance’ to maintain such extract structure.

Select the fields of your choice and continue

Maintain datasource if needed.

5).Activate the extract structure.

6).Give the transport request number and continue.

-Next step is to delete the setup tables

7).go to t-code SBIW.

8). Select business information warehouse.

Setting for application-specific datasource.

logistics

managing extract structures

initialization

delete the content of setup tables(T-code LBWG)

select the application(01- sales&distribution) and execute.

-Now fill the setup tables

9). Select business information warehouse

Setting for application-specific datasource.

Logistics

Managing extract structures.

Initialization

Filling the setup tables

Application-specific setup of statistical data.

SD sales orders-perform (tcode, oli7bw)

Specify a run name and time and date(put future date)

Excute

-check the data in setup tables at RSA3

-replicate the data source

Use of setup tables:

You should fill the setup table in the R3 system and extract the data to BW- the setup table is in SBIW- after that you can do delta extractions by initialize the extractor.

Full loads are always taken from the setup tables

 

58、複製一個子任務到另一任務TR下。

Se01, request-àcreate -à choose transport of Copies -à Enter description -à click include object button (Ctrl + F11)---à choose object list from Request ---àEnter request number which contains object you want to copy.

 

59、當TR已釋放了,修改描述。將表E070欄位TRSTATUS的值從R改為D,修改描述。

或建立一個新的TR,輸入新的Desrcription,將已釋放的TR包括進來。

 

60SAP BI專案實施的大致流程:專案計劃和準備階段,設計階段,開發階段,測試和部署階段,系統上線。

專案計劃和準備

在這個隊段,考量專案是否已經“萬事俱備”可以從三個方面入手:A使用者需求是否清楚。B是否已經明確BI的技術標準。C業務部門是否有所準備。

設計階段

詳細系統架構

源系統分析:源系統主要功能,源系統資料結構分析、源系統資料質量初步評定,源系統資料的可訪問性

前期需求分析:客戶即席查詢需求分析,客戶報表需求,客戶多維分析需求,客戶資料探勘需求,客戶許可權控制需求

資料模型設計:資料倉儲物理/邏輯模型,管理緩慢變化維度,管理快速變化維度,效能考慮。

注意事項:本階段的關鍵是業務分析和模型設計。

業務分析事實上包括了兩方面:源系統分析和使用者需求分析。

業務分析人員應該同時從使用者需求和源系統兩端同時展開分析,並且其中的重點在於源系統的資料,是最終該BI應用可以滿足多少使用者需求的必要條件,一個好的業務分析應該在充分理解源系統資料的基礎上,不但能滿足使用者的需求,並且能超越或預見使用者未來可能的需求從而予以相應的考慮。

 

61BW解決的問題

跨模組資料的查詢,跨系統資料的整合(跨模組資料查詢的外延),歷史資料的分析

 

62F: fact table

D: Dimension table

P: Master Data table

T: Text data table

S: SID table

H: hierarchy

I: Hierarchy依賴表與D表通過ABAP關聯

K: hierarchy依賴表與I表關聯

/BIC/SIO_SREP: Hierarchy 依賴表與K表關聯

 

63InfoCube三種設計方案:

①依賴於時間的導航。②緯度特徵法:將特徵作為緯度的特徵。③依賴於時間的整體層級關係,依賴於時間的整體層次允許我們構建聚集,

 

64、沒有BI,我們面臨以下幾個痛苦:缺乏集中訪問的平臺、分析過程耗時、較差的效能、複雜的IT架構、缺乏業務處理的支援。

 

65、資料建模的過程就是構架一個資料倉儲中的各個層次,包括資料集市層,資料倉儲層,資料準備區和運營資料層。

 

66、開啟/關閉過帳期間的許可權。

TcodeOB52

許可權物件:S_TABU_DIS,許可權組是FC32Currencies

另:許可權組FC16(interest),TRZ(Indexes), FC00(Currency  volatilities), TRMK( interest rate volatilities).

相關文章