最近在做PI和BW的一個接口,從其他數(shù)據(jù)源發(fā)送數(shù)據(jù)到BW的“直_第1頁
最近在做PI和BW的一個接口,從其他數(shù)據(jù)源發(fā)送數(shù)據(jù)到BW的“直_第2頁
最近在做PI和BW的一個接口,從其他數(shù)據(jù)源發(fā)送數(shù)據(jù)到BW的“直_第3頁
最近在做PI和BW的一個接口,從其他數(shù)據(jù)源發(fā)送數(shù)據(jù)到BW的“直_第4頁
最近在做PI和BW的一個接口,從其他數(shù)據(jù)源發(fā)送數(shù)據(jù)到BW的“直_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Chunguangz-技術人員參考 最近在做PI和BW的一個接口,從其他數(shù)據(jù)源發(fā)送數(shù)據(jù)到BW的“直接更新”類型的CUBE,確切的說應該是BCS單戶數(shù)據(jù)。當中,遇到了2個問題:1 DSO的最多只能設置16個主鍵,而我們的模型需要設置超過16個主鍵?2 上載數(shù)據(jù)如何實現(xiàn)增量上載?解決方法:1 自定義一個字段,作為主鍵,其他字段都作為數(shù)據(jù)字段。在開始例程中判斷數(shù)據(jù)是否已經(jīng)存在,存在,取原數(shù)據(jù)的主鍵;不存在,取時間戳和數(shù)據(jù)包上載記錄的順序號做為DSO的主鍵。2 利用DSO的增量機制,KEY FIGURE的Aggregation屬性設置為OVERWRITE,上載數(shù)據(jù)默認為后鏡像數(shù)據(jù),每次上載的數(shù)據(jù)覆蓋以

2、前的數(shù)據(jù),這樣,對于修改和新增的數(shù)據(jù)都可以實現(xiàn)增量。對于數(shù)據(jù)包中刪除的數(shù)據(jù),將數(shù)據(jù)為0的記錄寫入到數(shù)據(jù)包。這樣做,可以將刪除的數(shù)據(jù)清為0。但要注意的是,在判斷數(shù)據(jù)是否刪除之前,必須要指定一個范圍,即指定在哪個范圍的數(shù)據(jù)內(nèi)操作,否則程序會將除上載數(shù)據(jù)外的所有數(shù)據(jù)都置為0。如:我們的例子中規(guī)定,每次上載一個合并單位下的某個期間的數(shù)據(jù),在第二次上載的時候,我就要考慮數(shù)據(jù)是否在這個范圍(合并單位+年度+期間)內(nèi)存在,如果不存在,才將key figure為0的數(shù)據(jù)記錄寫入。關于DELTA機制,請參考:  METHOD start_routine.*= Segmen

3、ts =    FIELD-SYMBOLS:      <SOURCE_FIELDS>    TYPE _ty_s_SC_1.    DATA:      MONITOR_REC     TYPE rstmonitor.*$*$ begin of&

4、#160;routine - insert your code only below this line        *-*    . "insert your code here*-  fill table "MONITOR" with values of

5、 structure "MONITOR_REC"*-   to make monitor entries    . "to cancel the update process*    raise exception type CX_RSROUT_ABORT.    DATA: l

6、t_dso type TABLE OF /BIC/AZTBCSD0100,          ls_dso type /BIC/AZTBCSD0100.    data: lv_index type i,          lv_index_str(6) ty

7、pe c.    data: lv_stamp1(14) type c,          lv_stamp2(14) type c.    data: sf_fields type _ty_s_SC_1.    types: BEGIN OF ts_id&#

8、160;,          FISCPER3 type /BIC/AZTBCSD0100-FISCPER3,          FISCYEAR type /BIC/AZTBCSD0100-FISCYEAR,          CS_UNIT &#

9、160;type /BIC/AZTBCSD0100-CS_UNIT,      END OF ts_id.    data: lt_id type TABLE OF ts_id,          ls_id type ts_id.    select

10、0;* from /BIC/AZTBCSD0100 into table lt_dso.    concatenate sy-datum sy-uzeit into lv_stamp1.    move lv_stamp1 to lv_stamp2.* 設置DSO主鍵    loop at SOURCE_PACKAGE ASSI

11、GNING <source_fields>.* 如果時間過1秒,事件重新從1開始累計      concatenate sy-datum sy-uzeit into lv_stamp2.      if lv_stamp1 <> lv_stamp2.        clear lv_i

12、ndex.        move lv_stamp2 to lv_stamp1.      endif.      lv_index = lv_index + 1.* 查詢數(shù)據(jù)是否已存在,本例中,所有字段都是主鍵      read table l

13、t_dso with key        CS_VERSION     = <source_fields>-CS_VERSION        CS_CHART       = <source_fields>-CS_CHART  &#

14、160;     CS_ITEM        = <source_fields>-CS_ITEM        COUNTRY        = <source_fields>-COUNTRY      

15、  MOVE_TYPE      = <source_fields>-MOVE_TYPE        ACQ_YEAR       = <source_fields>-ACQ_YEAR        ACQ_PER  

16、60;     = <source_fields>-ACQ_PER        BLINE_DATE     = <source_fields>-BLINE_DATE        CS_PARTNER     = <sourc

17、e_fields>-CS_PARTNER        FUNC_AREA      = <source_fields>-FUNC_AREA        /BIC/Z03BCS_01 = <source_fields>-/BIC/Z03BCS_01      

18、;  /BIC/Z03BCS_02 = <source_fields>-/BIC/Z03BCS_02        /BIC/Z03BCS_03 = <source_fields>-/BIC/Z03BCS_03        /BIC/Z03BCS_04 = <source_fields>-/BIC/Z03BCS_04&#

19、160;       /BIC/Z03BCS_05 = <source_fields>-/BIC/Z03BCS_05        /BIC/Z03BCS_06 = <source_fields>-/BIC/Z03BCS_06        /BIC/Z03BCS_07 = <s

20、ource_fields>-/BIC/Z03BCS_07        /BIC/Z03BCS_08 = <source_fields>-/BIC/Z03BCS_08        /BIC/Z03BCS_09 = <source_fields>-/BIC/Z03BCS_09        

21、;/BIC/Z03BCS_14 = <source_fields>-/BIC/Z03BCS_14        /BIC/Z03BCS_15 = <source_fields>-/BIC/Z03BCS_15        /BIC/Z03BCS_16 = <source_fields>-/BIC/Z03BCS_16  &#

22、160;     /BIC/Z03BCS_66 = <source_fields>-/BIC/Z03BCS_66        /BIC/Z03BCS_67 = <source_fields>-/BIC/Z03BCS_67        /BIC/Z03BCS_68 = <source_fields

23、>-/BIC/Z03BCS_68        /BIC/Z03BCS_69 = <source_fields>-/BIC/Z03BCS_69        /BIC/Z03BCS_70 = <source_fields>-/BIC/Z03BCS_70        /BIC/Z03BCS

24、_72 = <source_fields>-/BIC/Z03BCS_72        /BIC/Z03BCS_71 = <source_fields>-/BIC/Z03BCS_71        /BIC/Z03BCS_74 = <source_fields>-/BIC/Z03BCS_74    &#

25、160;   /BIC/Z03BCS_75 = <source_fields>-/BIC/Z03BCS_75        /BIC/Z03BCS_76 = <source_fields>-/BIC/Z03BCS_76        /BIC/Z03BCS_77 = <source_fields>-/BIC/Z0

26、3BCS_77        /BIC/Z03BCS_10 = <source_fields>-/BIC/Z03BCS_10        /BIC/Z03BCS_11 = <source_fields>-/BIC/Z03BCS_11        /BIC/Z03BCS_12 =&#

27、160;<source_fields>-/BIC/Z03BCS_12        /BIC/Z03BCS_13 = <source_fields>-/BIC/Z03BCS_13        /BIC/Z03BCS_78 = <source_fields>-/BIC/Z03BCS_78      &#

28、160; /BIC/Z03BCS_80 = <source_fields>-/BIC/Z03BCS_80        /BIC/Z03BCS_81 = <source_fields>-/BIC/Z03BCS_81        /BIC/Z03BCS_82 = <source_fields>-/BIC/Z03BCS_82 

29、;       /BIC/Z03BCS_83 = <source_fields>-/BIC/Z03BCS_83        /BIC/Z03BCS_84 = <source_fields>-/BIC/Z03BCS_84        /BIC/Z03BCS_85 = <sour

30、ce_fields>-/BIC/Z03BCS_85        /BIC/Z03BCS_86 = <source_fields>-/BIC/Z03BCS_86        /BIC/Z03BCS_79 = <source_fields>-/BIC/Z03BCS_79        BC

31、S_DIDIEL     = <source_fields>-BCS_DIDIEL        BCS_PRGRP      = <source_fields>-BCS_PRGRP        /BIC/Z03BCS_17 = <source_fields

32、>-/BIC/Z03BCS_17        SEM_ACOMP      = <source_fields>-SEM_ACOMP        CS_INVESTO     = <source_fields>-CS_INVESTO    

33、;    CS_PLEVEL      = <source_fields>-CS_PLEVEL        BCS_DOCTY      = <source_fields>-BCS_DOCTY        BCS_CTFLG

34、0;     = <source_fields>-BCS_CTFLG        CS_INVESTE     = <source_fields>-CS_INVESTE        CURKEY_GC      = <

35、;source_fields>-CURKEY_GC        CURKEY_LC      = <source_fields>-CURKEY_LC        UNIT           = <source_field

36、s>-UNIT        CURKEY_TC      = <source_fields>-CURKEY_TC        CS_DIMEN       = <source_fields>-CS_DIMEN    

37、    CS_UNIT        = <source_fields>-CS_UNIT        CS_GROUP       = <source_fields>-CS_GROUP        FI

38、SCYEAR       = <source_fields>-FISCYEAR        FISCVARNT      = <source_fields>-FISCVARNT        FISCPER3    

39、0;  = <source_fields>-FISCPER3        into ls_dso.      if sy-subrc eq 0.* 如果數(shù)據(jù)已存在,則使用系統(tǒng)中數(shù)據(jù)的ZTMSTAMP作為現(xiàn)有的主鍵        <source_fields>-/BIC/ZTMSTAM

40、P = ls_dso-/BIC/ZTMSTAMP.      else.* 如果數(shù)據(jù)不存在,則使用獲得的時間戳+INDEX作為主鍵        MOVE LV_INDEX TO LV_INDEX_STR.        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INP

41、UT'          EXPORTING            INPUT  = lv_index_str          IMPORTING        

42、;    OUTPUT = lv_index_str.        CONCATENATE lv_stamp1 lv_index_str into        <source_fields>-/BIC/ZTMSTAMP.      endif.  

43、60;   modify SOURCE_PACKAGE from <source_fields>.* 歸集不同數(shù)據(jù)包(當有多家公司上載時)      MOVE-CORRESPONDING <source_fields> to ls_id.      collect ls_id into lt_id .  

44、  endloop.    loop at lt_id into ls_id.* 對不同公司分別處理      loop at lt_dso into ls_dso         where FISCPER3 eq ls_id-FISCPER3   

45、;      and   FISCYEAR eq ls_id-FISCYEAR         and   CS_UNIT  eq ls_id-CS_UNIT .        read table SOURCE_PACKAGE&

46、#160;with key          CS_VERSION     = ls_dso-CS_VERSION          CS_CHART       = ls_dso-CS_CHART    &#

47、160;     CS_ITEM        = ls_dso-CS_ITEM          COUNTRY        = ls_dso-COUNTRY         

48、 MOVE_TYPE      = ls_dso-MOVE_TYPE          ACQ_YEAR       = ls_dso-ACQ_YEAR          ACQ_PER    

49、60;   = ls_dso-ACQ_PER          BLINE_DATE     = ls_dso-BLINE_DATE          CS_PARTNER     = ls_dso-CS_PARTNER 

50、0;        FUNC_AREA      = ls_dso-FUNC_AREA          /BIC/Z03BCS_01 = ls_dso-/BIC/Z03BCS_01          /BIC/Z03BCS_02

51、 = ls_dso-/BIC/Z03BCS_02          /BIC/Z03BCS_03 = ls_dso-/BIC/Z03BCS_03          /BIC/Z03BCS_04 = ls_dso-/BIC/Z03BCS_04        &#

52、160; /BIC/Z03BCS_05 = ls_dso-/BIC/Z03BCS_05          /BIC/Z03BCS_06 = ls_dso-/BIC/Z03BCS_06          /BIC/Z03BCS_07 = ls_dso-/BIC/Z03BCS_07    &#

53、160;     /BIC/Z03BCS_08 = ls_dso-/BIC/Z03BCS_08          /BIC/Z03BCS_09 = ls_dso-/BIC/Z03BCS_09          /BIC/Z03BCS_14 = ls_dso-/BIC/Z03BCS_14&#

54、160;         /BIC/Z03BCS_15 = ls_dso-/BIC/Z03BCS_15          /BIC/Z03BCS_16 = ls_dso-/BIC/Z03BCS_16          /BIC/Z03BCS_66 = 

55、;ls_dso-/BIC/Z03BCS_66          /BIC/Z03BCS_67 = ls_dso-/BIC/Z03BCS_67          /BIC/Z03BCS_68 = ls_dso-/BIC/Z03BCS_68          /B

56、IC/Z03BCS_69 = ls_dso-/BIC/Z03BCS_69          /BIC/Z03BCS_70 = ls_dso-/BIC/Z03BCS_70          /BIC/Z03BCS_72 = ls_dso-/BIC/Z03BCS_72      &#

57、160;   /BIC/Z03BCS_71 = ls_dso-/BIC/Z03BCS_71          /BIC/Z03BCS_74 = ls_dso-/BIC/Z03BCS_74          /BIC/Z03BCS_75 = ls_dso-/BIC/Z03BCS_75  &#

58、160;       /BIC/Z03BCS_76 = ls_dso-/BIC/Z03BCS_76          /BIC/Z03BCS_77 = ls_dso-/BIC/Z03BCS_77          /BIC/Z03BCS_10 = ls_dso-/BIC

59、/Z03BCS_10          /BIC/Z03BCS_11 = ls_dso-/BIC/Z03BCS_11          /BIC/Z03BCS_12 = ls_dso-/BIC/Z03BCS_12          /BIC/Z03BCS_13

60、 = ls_dso-/BIC/Z03BCS_13          /BIC/Z03BCS_78 = ls_dso-/BIC/Z03BCS_78          /BIC/Z03BCS_80 = ls_dso-/BIC/Z03BCS_80        &#

61、160; /BIC/Z03BCS_81 = ls_dso-/BIC/Z03BCS_81          /BIC/Z03BCS_82 = ls_dso-/BIC/Z03BCS_82          /BIC/Z03BCS_83 = ls_dso-/BIC/Z03BCS_83    &#

62、160;     /BIC/Z03BCS_84 = ls_dso-/BIC/Z03BCS_84          /BIC/Z03BCS_85 = ls_dso-/BIC/Z03BCS_85          /BIC/Z03BCS_86 = ls_dso-/BIC/Z03BCS_86&#

63、160;         /BIC/Z03BCS_79 = ls_dso-/BIC/Z03BCS_79          BCS_DIDIEL     = ls_dso-BCS_DIDIEL          BCS_PRGRP&

64、#160;     = ls_dso-BCS_PRGRP          /BIC/Z03BCS_17 = ls_dso-/BIC/Z03BCS_17          SEM_ACOMP      = ls_dso-SEM_ACOMP 

65、         CS_INVESTO     = ls_dso-CS_INVESTO          CS_PLEVEL      = ls_dso-CS_PLEVEL         

66、 BCS_DOCTY      = ls_dso-BCS_DOCTY          BCS_CTFLG      = ls_dso-BCS_CTFLG          CS_INVESTE    

67、0;= ls_dso-CS_INVESTE          CURKEY_GC      = ls_dso-CURKEY_GC          CURKEY_LC      = ls_dso-CURKEY_LC          UNIT           = ls_dso-UNIT  &#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論