2009年7月23日 星期四

SAP BW-03: Integration of Visual Studio and SAP BW Virtual Remote InfoCube

(1) Demo of integration for Visual Studio and SAP BW Virtual Remote InfoCube
Please click
http://sap636.myvnc.com/ to view movie file.

(2) Structure of Microsoft Visual Studio with SAP Dotnet Connector.
Please click http://sap637.myvnc.com/ to view movie file.

(3) Structure of SAP BW Virtual Remote Infocube.
Please click http://sap638.myvnc.com/ to view movie file.

2009年7月22日 星期三

SAP BW-02: BW Authorization

1. SAP BW authorization demo:
click
http://www.youtube.com/watch?v=TFKeoFFmVnc to view movie file.

2. SAP BW authorization setup over PFCG.
click
http://www.youtube.com/watch?v=ZJOZpUa81q4 to view movie file.

2009年7月15日 星期三

SAP BW-01: SAP BW Report Report Interface

click below link to view video file for SAP BW report report interface.
http://sap633.myvnc.com/

SAP BDC - 2/2

*REPORT ZBDCINCL.
TABLES: usr01, *usr01,
usr02, *usr02. "Logon data

SAP BDC - 1/2

REPORT zfi_test01_bdc_01.

INCLUDE zbdcincl.

*---------- top ------------
DATA: BEGIN OF lt_message OCCURS 0,
message(128) TYPE c,
END OF lt_message.

DATA: count_ok TYPE i.
DATA: count_ng TYPE i.
DATA: w_filename TYPE string.

* record[] 的欄位是資料上傳的欄位.
DATA: BEGIN OF record OCCURS 0,
* data element: BANKS
banks_001(003),
* data element: BANKK
bankl_002(015),
* data element: BANKA
banka_003(060),
* data element: swift
swift_004(011),
END OF record.

PARAMETERS: z_mode LIKE ctu_params-dismode DEFAULT 'E'. "A: show all dynpros. "E: show dynpro on error only. "N: do not display dynpro

PARAMETERS: filename LIKE rlgrap-filename.

*---------- end of top ------------

INITIALIZATION.

* PERFORM get_filename 使得 PARAMETERS: filename 可以使用下拉選單.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
PERFORM get_filename(zcom001) USING sy-cprog
sy-dynnr
CHANGING filename.


START-OF-SELECTION.
PERFORM upload_pc.
PERFORM process_data.

*&---------------------------------------------------------------------*
*& Form UPLOAD_PC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM upload_pc . w_filename = filename. CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = w_filename filetype = 'ASC' has_field_separator = 'X' * IMPORTING * FILELENGTH = * HEADER = TABLES data_tab = record . IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFORM. " UPLOAD_PC
*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_data .

count_ok = 0.
count_ng = 0.

LOOP AT record.

* row 1 of record file is skipped.
* IF sy-tabix = 1. "v01 start
* CONTINUE.
* ENDIF. "v01 end

** 該段 copy SHDB 產生的程式.
PERFORM bdc_dynpro USING 'SAPMF02B' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BNKA-BANKL'
''.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'
''.
PERFORM bdc_field USING 'BNKA-BANKS'
record-banks_001
''.
PERFORM bdc_field USING 'BNKA-BANKL'
record-bankl_002
''.
PERFORM bdc_dynpro USING 'SAPMF02B' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BNKA-SWIFT'
''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'
''.
PERFORM bdc_field USING 'BNKA-BANKA'
record-banka_003
''.
PERFORM bdc_field USING 'BNKA-SWIFT'
record-swift_004
''.

* PERFORM bdc_transaction USING 'FI01'.

CLEAR:bdcmesg,bdcmesg[].
CALL TRANSACTION 'FI01'
USING bdcdata
MODE z_mode
UPDATE 'S'
MESSAGES INTO bdcmesg.

LOOP AT bdcmesg.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = bdcmesg-msgid
msgnr = bdcmesg-msgnr
msgv1 = bdcmesg-msgv1
msgv2 = bdcmesg-msgv2
msgv3 = bdcmesg-msgv3
msgv4 = bdcmesg-msgv4
IMPORTING
message_text_output = lt_message-message.
APPEND lt_message.
CLEAR lt_message.
ENDLOOP.

** 統計成功 or 失敗筆數.
IF sy-msgty = 'S'.
count_ok = count_ok + 1.
ELSE.
count_ng = count_ng + 1.
ENDIF.

* if no clear bdcdata, record 1 will be kept always.
CLEAR bdcdata[].
ENDLOOP.

LOOP AT lt_message.
WRITE:/ lt_message-message.
ENDLOOP.
WRITE:/ '(成功筆數)count_ok=', count_ok.
WRITE:/ '(失敗筆數)count_ng=', count_ng.

ENDFORM. " PROCESS_DATA