2019年4月11日 星期四

MIGO增加客製表頭或項目欄位

https://www.consolut.com/en/s/sap-ides-access/d/s/doc/YY-MB_MIGO_BADI/

2018年7月6日 星期五

儲存撿貨單資料Enhancement spot

Tcode:VL02N OutBound Delivery->SAVE or Post Goods Issue

Enhancement spot:ES_FV50XF0B_LIEFERUNGEN_BUCHEN

SAP重設使用者權限緩衝區資料

Tcode: SU53->Authorization Values-> Reset User Buffer

SAP使用者帳號及權限相關表格

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.

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