1.使用者帳號:USR02
2.使用者權限:USR04, UST04
3.使用者歷史記錄:USH02, USH04, CDHDR, CDPOS
2018年7月5日 星期四
Get program name of SAP Query
CALL FUNCTION 'RSAQ_GENERATE_PROGRAM'
EXPORTING
i_workspace = 'G' "Global area
i_query = p_query "Query name
i_usergroup = 'ZGROUP' "User group
IMPORTING
o_report_name = p_prog "Program name
* O_STRUCTURE_NAME =
EXCEPTIONS
no_query = 1
no_infoset = 2
query_locked = 3
generation_cancelled = 4
generation_error = 5
OTHERS = 6.
IF sy-subrc <> 0. "If Global area not found program
CALL FUNCTION 'RSAQ_GENERATE_PROGRAM'
EXPORTING
i_workspace = '' "Local area
i_query = p_query
i_usergroup = 'ZGROUP'
IMPORTING
o_report_name = p_prog
* O_STRUCTURE_NAME =
EXCEPTIONS
no_query = 1
no_infoset = 2
query_locked = 3
generation_cancelled = 4
generation_error = 5
OTHERS = 6.
ENDIF.
EXPORTING
i_workspace = 'G' "Global area
i_query = p_query "Query name
i_usergroup = 'ZGROUP' "User group
IMPORTING
o_report_name = p_prog "Program name
* O_STRUCTURE_NAME =
EXCEPTIONS
no_query = 1
no_infoset = 2
query_locked = 3
generation_cancelled = 4
generation_error = 5
OTHERS = 6.
IF sy-subrc <> 0. "If Global area not found program
CALL FUNCTION 'RSAQ_GENERATE_PROGRAM'
EXPORTING
i_workspace = '' "Local area
i_query = p_query
i_usergroup = 'ZGROUP'
IMPORTING
o_report_name = p_prog
* O_STRUCTURE_NAME =
EXCEPTIONS
no_query = 1
no_infoset = 2
query_locked = 3
generation_cancelled = 4
generation_error = 5
OTHERS = 6.
ENDIF.
2018年1月9日 星期二
如何判斷 64 位元版本 Windows 的適當的分頁檔大小
機翻中文版:
https://support.microsoft.com/zh-tw/help/2860880/how-to-determine-the-appropriate-page-file-size-for-64-bit-versions-of
原版:
How to determine the appropriate page file size for 64-bit versions of Windows
https://support.microsoft.com/en-us/help/2860880/how-to-determine-the-appropriate-page-file-size-for-64-bit-versions-of
2017年12月16日 星期六
EXEC SQL存取至外部資料庫
事先於t_code:DBCO,設定外部連結名稱、預設資料庫,登入帳號、密碼
連接名稱 任意輸入
DBMS MSS "以MS SQL為範例
使用者名稱 ******
資料庫密碼 ******
連結資訊 MSSQL_SERVER=主機名稱或IP MSSQL_DBNAME=資料庫名稱
*********************************************************************************
FORM connet_ext_db .
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
CONNECT TO :'連接名稱'
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
ENDFORM. " CONNET_EXT_DB
*********************************************************************************
FORM select_into_structure.
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
SELECT 外部欄位
INTO :內部欄位
FROM 外部表格
WHERE 外部欄位 = :內部欄位
and 外部欄位 = :內部欄位
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
IF error_text IS INITIAL.
WRITE: / 執行成功.
ELSE.
WRITE: / 執行失敗.
ENDIF.
ENDFORM. " SELECT_INTO_STRUCTURE
*********************************************************************************
FORM update_rows.
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
UPDATE 外部表格
SET 外部欄位 = :內部欄位,
外部欄位 = :內部欄位
WHERE 外部欄位 = :內部欄位
AND 外部欄位 = :內部欄位
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
IF error_text IS INITIAL.
WRITE: / 執行成功.
ELSE.
WRITE: / 執行失敗.
ENDIF.
ENDFORM. " UPDATE_ROWS
*********************************************************************************
FORM insert_rows.
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
INSERT INTO 外部表格
( 外部欄位, 外部欄位 )
VALUES
( :內部欄位, :內部欄位 )
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
IF error_text IS INITIAL.
WRITE: / 執行成功.
ELSE.
WRITE: / 執行失敗.
ENDIF.
ENDFORM. " INSERT_ROWS
*********************************************************************************
FORM disconnet_ext_db .
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
commit work
ENDEXEC.
EXEC SQL.
DISCONNECT '連接名稱'
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
ENDFORM. " DISCONNET_EXT_DB
連接名稱 任意輸入
DBMS MSS "以MS SQL為範例
使用者名稱 ******
資料庫密碼 ******
連結資訊 MSSQL_SERVER=主機名稱或IP MSSQL_DBNAME=資料庫名稱
*********************************************************************************
FORM connet_ext_db .
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
CONNECT TO :'連接名稱'
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
ENDFORM. " CONNET_EXT_DB
*********************************************************************************
FORM select_into_structure.
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
SELECT 外部欄位
INTO :內部欄位
FROM 外部表格
WHERE 外部欄位 = :內部欄位
and 外部欄位 = :內部欄位
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
IF error_text IS INITIAL.
WRITE: / 執行成功.
ELSE.
WRITE: / 執行失敗.
ENDIF.
ENDFORM. " SELECT_INTO_STRUCTURE
*********************************************************************************
FORM update_rows.
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
UPDATE 外部表格
SET 外部欄位 = :內部欄位,
外部欄位 = :內部欄位
WHERE 外部欄位 = :內部欄位
AND 外部欄位 = :內部欄位
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
IF error_text IS INITIAL.
WRITE: / 執行成功.
ELSE.
WRITE: / 執行失敗.
ENDIF.
ENDFORM. " UPDATE_ROWS
*********************************************************************************
FORM insert_rows.
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
INSERT INTO 外部表格
( 外部欄位, 外部欄位 )
VALUES
( :內部欄位, :內部欄位 )
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
IF error_text IS INITIAL.
WRITE: / 執行成功.
ELSE.
WRITE: / 執行失敗.
ENDIF.
ENDFORM. " INSERT_ROWS
*********************************************************************************
FORM disconnet_ext_db .
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.
TRY.
EXEC SQL.
commit work
ENDEXEC.
EXEC SQL.
DISCONNECT '連接名稱'
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.
ENDFORM. " DISCONNET_EXT_DB
2017年11月22日 星期三
Commit work and wait無作用解析
原文:
https://blogs.sap.com/2013/01/24/commit-work-and-wait-does-not-work-as-expected-or-why-to-use-wait-up-to-xx-seconds/
摘要:
1.BAPI有自己的參數設定commit work,必須先取消
2.BAPI要用BAPI_TRANSACTION_COMMIT (WAIT = ‘X’)
3.分組實施相同的bapi功能,而非連續建立、變更單一物件。如單一程式連續建立PO完畢,再針對建立完畢的PO做更改。
4.重複查詢物件是否已建立,再進行下一步,並且限制重複查詢的最大次數。
5.重複嘗試鎖定表格,如未能鎖定,表示上一步的寫入尚未完成,當可以鎖定之後,再解鎖進行下一步。
5.1鎖定表格的方式,se11->"lock object"->f4->All selections->Base table->表格名稱
5.2"ENQUEUE_"+"lock object",如"ENQUEUE_EVVBAKE"
6.有些特殊的用Function module ‘TRANSACTION_BEGIN’。或是‘TRANSACTION_END’,效果只限commit work沒有wait。
https://blogs.sap.com/2013/01/24/commit-work-and-wait-does-not-work-as-expected-or-why-to-use-wait-up-to-xx-seconds/
摘要:
1.BAPI有自己的參數設定commit work,必須先取消
2.BAPI要用BAPI_TRANSACTION_COMMIT (WAIT = ‘X’)
3.分組實施相同的bapi功能,而非連續建立、變更單一物件。如單一程式連續建立PO完畢,再針對建立完畢的PO做更改。
4.重複查詢物件是否已建立,再進行下一步,並且限制重複查詢的最大次數。
5.重複嘗試鎖定表格,如未能鎖定,表示上一步的寫入尚未完成,當可以鎖定之後,再解鎖進行下一步。
5.1鎖定表格的方式,se11->"lock object"->f4->All selections->Base table->表格名稱
5.2"ENQUEUE_"+"lock object",如"ENQUEUE_EVVBAKE"
6.有些特殊的用Function module ‘TRANSACTION_BEGIN’。或是‘TRANSACTION_END’,效果只限commit work沒有wait。
2017年9月30日 星期六
Submit後取得報表內容LIST_FROM_MEMORY
DATA : BEGIN OF fs,
col1 TYPE string,
col2 TYPE string,
col3 TYPE string,
col4 TYPE string,
col5 TYPE string,
col6 TYPE string,
col7 TYPE string,
col8 TYPE string,
col9 TYPE string,
col10 TYPE string,
col11 TYPE string,
col12 TYPE string,
END OF fs.
DATA gt_coois LIKE TABLE OF fs WITH HEADER LINE.
DATA list_tab TYPE TABLE OF abaplist.
DATA: BEGIN OF ascilist OCCURS 100,
line TYPE c LENGTH 1000,
END OF ascilist.
SUBMIT ppio_entry
WITH p_sc1100 = lw_sc1100
WITH s_werks IN s_werks
WITH s_isten IN s_gltri
WITH s_aufnr IN s_aufnr
WITH s_matnr IN s_matnr
WITH s_arbpl IN lr_arbpl
EXPORTING LIST TO MEMORY
AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = list_tab
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc = 0.
CALL FUNCTION 'LIST_TO_ASCI'
* EXPORTING
* LIST_INDEX = -1
* WITH_LINE_BREAK = ' '
* IMPORTING
* LIST_STRING_ASCII =
* LIST_DYN_ASCII =
TABLES
listasci = ascilist
listobject = list_tab
* EXCEPTIONS
* EMPTY_LIST = 1
* LIST_INDEX_INVALID = 2
* OTHERS = 3
.
LOOP AT ascilist FROM 5.
SPLIT ascilist-line AT '|' INTO fs-col1 fs-col2 fs-col3 fs-col4 fs-col5 fs-col6 fs-col7 fs-col8 fs-col9 fs-col10 fs-col11 fs-col12.
APPEND fs TO gt_coois.
CLEAR fs.
ENDLOOP.
col1 TYPE string,
col2 TYPE string,
col3 TYPE string,
col4 TYPE string,
col5 TYPE string,
col6 TYPE string,
col7 TYPE string,
col8 TYPE string,
col9 TYPE string,
col10 TYPE string,
col11 TYPE string,
col12 TYPE string,
END OF fs.
DATA gt_coois LIKE TABLE OF fs WITH HEADER LINE.
DATA list_tab TYPE TABLE OF abaplist.
DATA: BEGIN OF ascilist OCCURS 100,
line TYPE c LENGTH 1000,
END OF ascilist.
SUBMIT ppio_entry
WITH p_sc1100 = lw_sc1100
WITH s_werks IN s_werks
WITH s_isten IN s_gltri
WITH s_aufnr IN s_aufnr
WITH s_matnr IN s_matnr
WITH s_arbpl IN lr_arbpl
EXPORTING LIST TO MEMORY
AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = list_tab
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc = 0.
CALL FUNCTION 'LIST_TO_ASCI'
* EXPORTING
* LIST_INDEX = -1
* WITH_LINE_BREAK = ' '
* IMPORTING
* LIST_STRING_ASCII =
* LIST_DYN_ASCII =
TABLES
listasci = ascilist
listobject = list_tab
* EXCEPTIONS
* EMPTY_LIST = 1
* LIST_INDEX_INVALID = 2
* OTHERS = 3
.
LOOP AT ascilist FROM 5.
SPLIT ascilist-line AT '|' INTO fs-col1 fs-col2 fs-col3 fs-col4 fs-col5 fs-col6 fs-col7 fs-col8 fs-col9 fs-col10 fs-col11 fs-col12.
APPEND fs TO gt_coois.
CLEAR fs.
ENDLOOP.
Submit coois
清單與配置變數
DATA: lw_sc1100 TYPE ppio_entry_sc1100.
lw_sc1100-ppio_listtyp = 'PPIOO000'. "作業
lw_sc1100-alv_variant = '/00000000001'. "配置
SUBMIT ppio_entry
WITH p_sc1100 = lw_sc1100
DATA: lw_sc1100 TYPE ppio_entry_sc1100.
lw_sc1100-ppio_listtyp = 'PPIOO000'. "作業
lw_sc1100-alv_variant = '/00000000001'. "配置
SUBMIT ppio_entry
WITH p_sc1100 = lw_sc1100
訂閱:
文章 (Atom)