abap 經常使用 function

ABAP經常使用函數總結

  alv 、smartform、 excel 、text、郵件 、遠程訪問,FTP服務器...
 **********經常使用功能function
REUSE_ALV_GRID_DISPLAY 
REUSE_ALV_GRID_DISPLAY_LVC 
SSF_FUNCTION_MODULE_NAME'
 
***************************功能function 
 
VIEW_MAINTENANCE_CALL 維護表視圖
 
SAPGUI_PROGRESS_INDICATOR – 顯示一個進度條
F4IF_INT_TABLE_VALUE_REQUEST 顯示檢索help
RS_COVERPAGE_SELECTIONS 得到一個報表的選擇參數列表。[日誌用]
RSLG_WRITE_SYSLOG_ENTRY 往Syslog裏寫一條記錄[日誌用]
ARFC_GET_TID – 以十六進制形式返回終端的IP地址。[日誌用]
ADDR_GET_COMPLETE_ALL_TYPES 功能:得到地址的相關信息[日誌用]
RSPO_SX_OUTPUT_TEXTDATA 將內表中的數據輸出到SPOOL
WWW_LIST_TO_HTML – 運行一個報表以後,調用這個方法將列表輸出轉換成HTML
GET_JOB_RUNTIME_INFO 功能:得到job相關信息
GUI_DOWNLOAD

GUI_UPLOADhtml

MC_SEND_MAIL 發送郵件java

SO_NEW_DOCUMENT_ATT_SEND_API1 - 將文檔做爲郵件的一部分發送mysql

CONVERSION_EXIT_CUNIT_OUTPUT 單位轉換web

CLOI_PUT_SIGN_IN_FRONT  負號前置, SAP默認將負號放在數字後面。
sql

 ALSM_EXCEL_TO_INTERNAL_TABLE 將excel文件上傳至內表
READ_TEXT 讀取長文本
SAVE_TEXT 上傳長文本
DATE_CHECK_PLAUSIBILITY 日期有效性檢查
業務function : 
 MARA_SINGLE_READ 功能:讀取物料信息
STATUS_READ  功能: 銷售訂單的狀態 
STATUS_TEXT_EDIT 功能: 生產訂單的狀態
SD_VBAP_READ_WITH_VBELN 根據銷售訂單讀取表vbap中的信息
PRICING – 得到訂價條件
CONVERT_TO_LOCAL_CURRENCY 按照指定日期匯率轉換金額爲指訂貨幣類型
*******************************************************************************alv funciton
REUSE_ALV_GRID_DISPLAY 
REUSE_ALV_GRID_DISPLAY_LVC
******************************************************************************smartform
 
 SMARTFROMS  'Z****'.
    ENDIF.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        FORMNAME           = SMARTFROMS
      IMPORTING
        FM_NAME            = FM_NAME
      EXCEPTIONS
        NO_FORM            1
        NO_FUNCTION_MODULE 2
        OTHERS             3.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CALL FUNCTION FM_NAME
      EXPORTING
        CONTROL_PARAMETERS   = CTRL_PARAM
        OUTPUT_OPTIONS       = OUT_OPTION
        USER_SETTINGS        ''
        WA_HEADER            = G_HEAD
      IMPORTING
*       DOCUMENT_OUTPUT_INFO =
        JOB_OUTPUT_INFO      = JOB_OUTPUT_INFO
      TABLES                                      "在sf中定義的2個table
        IG_ITEMS             = G2_BODY
      EXCEPTIONS
        FORMATTING_ERROR     1
        INTERNAL_ERROR       2
        SEND_ERROR           3
        USER_CANCELED        4
        OTHERS               5.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
**********************************************銷售訂單狀態 
 
  call function 'STATUS_READ'
        exporting
          client           = sy-mandt
          objnr            = g_need-objnr
        importing
          stonr            = lc_stonr
        exceptions
          object_not_found 1
          others           2.
      if sy-subrc eq and lc_stonr eq '30'.
        delete  t_need_end index idx_21.
        continue.
      endif.
 ************************************SAP 長文本讀寫
PERFORM FRM_GET_TEXT
         USING  'Z100'
                '1'
                TMP_VBELN
                'VBBK'
         CHANGING
                <FS>-T_FYSM.
 
FORM  FRM_GET_TEXT  USING   TID     TYPE THEAD-TDID
                            LANG    TYPE  THEAD-TDSPRAS
                            TNAME   TYPE  THEAD-TDNAME
                            TOBJECT TYPE  THEAD-TDOBJECT
                  CHANGING  TEXT    TYPE  STRING.
  DATA: IL_TLINE LIKE TLINE OCCURS WITH HEADER LINE.
  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      CLIENT                  = SY-MANDT
      ID                      = TID
      LANGUAGE                = LANG
      NAME                    = TNAME
      OBJECT                  = TOBJECT
    TABLES
      LINES                   = IL_TLINE
    EXCEPTIONS
      ID                      1
      LANGUAGE                2
      NAME                    3
      NOT_FOUND               4
      OBJECT                  5
      REFERENCE_CHECK         6
      WRONG_ACCESS_TO_ARCHIVE 7
      OTHERS                  8.
*  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ENDIF.

  LOOP AT  IL_TLINE.
*    text = text + il_tline-tdline.
    CONCATENATE TEXT IL_TLINE-TDLINE INTO TEXT.
  ENDLOOP.

*  READ TABLE il_tline INDEX 1.
*  IF sy-subrc = 0.
*    text = il_tline-TDLINE.
*  ELSE.
*    text = ''.
*  ENDIF.

ENDFORM.                    "FRM_G
*****************************************************生產訂單訂單狀態 

call function 'STATUS_TEXT_EDIT'數據庫

EXPORTINGapi

flg_user_stat = 'X'數組

objnr = LO_OBJNR服務器

only_active = 'X'網絡

spras = sy-langu

IMPORTING

line = ls_statu

EXCEPTIONS

object_not_found = 01. 

使用:objnr 狀態對象號,only_active 激活的 ,

*****************************

TERMINAL_ID_GET [日誌用]

 

*************************

CLOI_PUT_SIGN_IN_FRONT – 將負號前置, SAP默認將負號放在數字後面。

PRICING – 得到訂價條件

READ_EXCHANGE_RATE 匯率計算.

SAPGUI_PROGRESS_INDICATOR  顯示一個進度條

TH_REMOTE_TRANSACTION – 在遠程服務器上運行事務代碼

UNIT_CONVERSION_SIMPLE –衡量單位轉換

SPELL_AMOUNT 數字與大寫轉換(1變壹)

MS_EXCEL_OLE_STANDARD_OLE – 建立一個文件並自動啓動Excel 

TEXT_SPLIT 字符串分割

SD_DATETIME_DIFFERENCE 兩日期做差

MONTH_NAMES_GET 得到全部的月和名字

RP_LAST_DAY_OF_MONTHS 得到一個月的最後一天

FIRST_DAY_IN_PERIOD_GET 得到期間首日

ENQUE_SLEEP –在繼續處理以前等待一個指定的時間。

DATE_CHECK_PLAUSIBILITY 檢查日期合法性 [驗證輸入]

函數名 描述

根據函數取數據應該比錶快

EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=「*」從新組織

VIEW_MAINTENANCE_CALL 維護表視圖

函數名 描述

DY_GET_FOCUS 得到屏幕焦點

DY_GET_SET_FIELD_VALUE 得到或者設置屏幕字段的值

函數名 描述

F4IF_INT_TABLE_VALUE_REQUEST 顯示檢索help

READ_TEXT 讀取長文本

CONVERSION_EXIT_CUNIT_OUTPUT 單位轉換

SJIS_DBC_TO_SBC 全角轉半角

SJIS_SBC_TO_DBC 半角轉換爲全角

CO_R0_CHECK_DECIMAL_POINT 根據單位檢查數據的小數位

POSTAL_CODE_CHECK 檢查郵政編碼

ENQUE_SLEEP –在繼續處理以前等待一個指定的時間。

函數名 描述

CONVERSION_EXIT_ALPHA_INPUT 全數字則在前面補0

CONVERSION_EXIT_ALPHA_INPUT 和上面相反

GET_JOB_RUNTIME_INFO 得到job相關信息

TERMINAL_ID_GET 得到端末id

DATE_CONVERT_TO_FACTORYDATE 把輸入日期轉爲工廠日曆日期

MESSAGE_TEXT_BUILD 把消息轉爲文本

函數名 描述

POPUP_TO_CONFIRM 彈出確認窗口

函數名 描述

CONVERSION_EXIT_MATN1_INPUT 物料號碼轉換函數

CONVERSION_EXIT_MATN1_OUTPUT 同上相反

CONVERT_TO_LOCAL_CURRENCY 按照指定日期匯率轉換金額爲指訂貨幣類型

SSF_FUNCTION_MODULE_NAME 根據form名取得對應的函數名(SmartForm)

函數名 描述

DATE_CHECK_PLAUSIBILITY 日期CHECK

cl_gui_frontend_services=>gui_upload 上傳到服務器

cl_gui_frontend_services=>gui_download 下載到服本地

SSF_FUNCTION_MODULE_NAME SMARTFORMS輸出報表時,生成一個函數名稱,而後CALL這個名稱

ENQUE_SLEEP –在繼續處理以前等待一個指定的時間。

函數名 描述

POPUP_TO_DECIDE_LIST 彈出供選擇窗口

ABAP_DOCU_DOWNLOAD – 以HTML格式下載ABAP文檔。

ARFC_GET_TID – 以十六進制形式返回終端的IP地址。

BAL_* -容納了SAP的應用程序日誌全部的函數模塊。

BP_EVENT_RAISE –在 ABAP/4 程序中觸發一個事件。

BP_JOBLOG_READ –得到job log的執行結果。

CLOI_PUT_SIGN_IN_FRONT – 將負號前置, SAP默認將負號放在數字後面。

CLPB_EXPORT –從內表導入到剪貼板。

CLPB_IMPORT – 從剪貼板導入內表。

COMMIT_TEXT -To load long text into SAP 。

CONVERSION_EXIT_ALPHA_INPUT - 數字串前補0

example:

input = 123

utput = 0000000000000。。。000000000000123

CONVERSION_EXIT_ALPHA_OUTPUT – 消除數字串前的0

example:

input = 00000000000123

utput = 123

CONVERT_OTF – 將SAP文檔(SAP Script)轉換成其餘類型。

example:

CALL FUNCTION ‘CONVERT_OTF’

EXPORTING

FORMAT = ‘PDF’

IMPORTING

BIN_FILESIZE = FILE_LEN

TABLES

TF = OTFDATA

LINES = PDFDATA

EXCEPTIONS

ERR_MAX_LINEWIDTH = 1

ERR_FORMAT = 2

ERR_CONV_NOT_POSSIBLE = 3

THERS = 4.

DATE_GET_WEEK – 返回一個日期所在的週數。

DATE_CHECK_PLAUSIBILITY – 檢查一個日期是不是SAP的有效格式。

DYNP_VALUES_READ – 讀取SCREEN字段的值,也能夠用來讀取報表SELECTION SCREEN。

DYNP_VALUES_UPDATE -更新屏幕字段的值。

ENQUE_SLEEP –在繼續處理以前等待一個指定的時間。

ENQUEUE_ESFUNCTION – 鎖定一個ABAP程序使它不能夠被執行:

RELID = ‘ZZ’

SRTF2 = 0

SRTF = (your report name)

注意不要用SY-REPID來傳遞你的報表名字,當把SY-REPID做爲參數傳遞給函數模塊的時候,SY-REPID的值實際上已經發生了變化。

EPS_GET_FILE_ATTRIBUTES – 得到文件屬性。

EPS_GET_DIRECTORY_LISTING – 返回一個本地或網絡目錄的文件列表。

F4_DATE - 彈出一個窗口顯示一個日曆容許用戶選擇一個日期。

F4IF_SHLP_EXIT_EXAMPLE – F4接口模塊。

FILENAME_GET – 彈出一個文件選擇對話框。

DATA out(60) TYPE c.

CALL FUNCTION ‘FILENAME_GET’

EXPORTING

filename = ‘c:1.txt’

title = ‘GET FILENAME’

IMPORTING

filename = OUT.

FTP_CONNECT – 打開並登錄FTP服務器的鏈接。

FTP_COMMAND – 在FTP服務器上執行一個命令。

FTP_DISCONNECT –關閉指向FTP服務器的鏈接。

FORMAT_MESSAGE - Takes a message id and number, and puts it into a variable。 Works better than WRITE_MESSAGE, since some messages use $ as a place holder, and WRITE_MESSAGE does not accommodate that, it only replaces the ampersands (&) in the message。

GET_GLOBAL_SYMBOLS – 返回一個程序的tables, select options, texts, etc 。甚至包含selection screen的文本定義。

GET_INCLUDETAB – 得到一個程序的INCLUDES列表。

GUI_CREATE_DIRECTORY –在顯示服務器端建立一個目錄 。

GUI_DELETE_FILE – 在顯示服務器端刪除一個文件 。

GUI_DOWNLOAD – 從應用服務器下載內表到顯示服務器。

GUI_EXEC – 調用一個文件或程序,取代了WS_EXECUTE。

GUI_GET_DESKTOP_INFO – 得到客戶端桌面信息,取代了WS_QUERY。

GUI_REMOVE_DIRECTORY – 從顯示服務器刪除一個目錄 。

GUI_RUN – 啓動一個文件或程序 。

GUI_UPLOAD – 從顯示服務器上傳文件到應用服務器,取代了WS_UPLOAD。

HELP_START – 爲一個字段顯示幫助。 Useful for doing AT SELECTION SCREEN ON VALUE REQUEST for those fields that do not provide F4 help at the DDIC level。

HOLIDAY_GET – 基於Factory Calendar&/ Holiday Calendar提供了一個節日表。

INIT_TEXT –上傳長文本到SAP。

K_WERKS_OF_BUKRS_FIND – 返回一個特定公司代碼的全部工廠。

LIST_TO_ASCII –將ABAP報表從 OTF形式轉換成ASCII 形式。

LIST_FROM_MEMORY – Retrieves the output of a report from memory when the report was executed using SUBMIT。。。EXPORTING LIST TO MEMORY。 See also WRITE_LIST。

MONTH_NAMES_GET – 得到全部的月和名字

**** MS_EXCEL_OLE_STANDARD_OLE – 建立一個文件並自動啓動Excel 。

CONVERT_OTFSPOOLJOB_2_PDF - converts a OTF spool to PDF (i。e。 Sap script. document)

CONVERT_ABAPSPOOLJOB_2_PDF -convert ABAP spool output to PDF

POPUP_TO_CONFIRM_LOSS_OF_DATA – 彈出一個對話框告知用戶有可能丟失數據,詢問是否操做繼續。

POPUP_TO_CONFIRM_STEP -彈出一個對話框詢問用戶是否操做繼續。

POPUP_TO_CONFIRM_WITH_MESSAGE 能夠顯示定製的提示信息的確認窗口 相似POPUP_TO_CONFIRM_STEP,只是多三行的文本錯誤診斷提示。

POPUP_TO_CONFIRM_WITH_VALUE 用此函數能夠創建一個對話框用於詢問用戶是否執行某步操做,該操做可能會丟失數據,用戶能夠選擇Yes No 或者Cancel。該函數能夠傳入一個標題,兩行的文本(提示問題)和一個對象值

POPUP_TO_DECIDE 顯示一個對話框,用戶能夠兩個操做中的一個或者取消。能夠傳入三行提示文本

POPUP_TO_DECIDE_WITH_MESSAGE 相似POPUP_TO_DECIDE

POPUP_TO_DISPLAY_TEXT 顯示多行信息的窗口

POPUP_TO_SELECT_MONTH –彈出一個對話框供選擇月。

POPUP_WITH_TABLE_DISPLAY -Provide a display of a table for user to select one,

with the value of the table line returned when selected。

PRICING – 得到訂價條件

PROFILE_GET - 從INI文件讀取一條記錄

PROFILE_SET – 往INI文件寫一條記錄

READ_TEXT – 上傳長文本

REGISTRY_GET – 從註冊表讀取一條記錄

REGISTRY_SET – 在註冊表裏設置一條記錄

RFC_ABAP_INSTALL_AND_RUN – 當MODE參數值爲‘F’時運行PROGRAM表中的程序’.

RH_GET_ACTIVE_WF_PLVAR – 得到激活的HR計劃

RH_START_EXCEL_WITH_DATA – 啓動Excel並用內表給文件賦值

RH_STRUC_GET –返回全部相關的組織信息

RP_CALC_DATE_IN_INTERVAL – 年月日加減

RP_LAST_DAY_OF_MONTHS – 得到一個月的最後一天

RPY_DYNPRO_READ – 讀取屏幕

RPY_TRANSACTION_READ – 給定一個事務代碼,得到其程序和屏幕;或給定一個程序和屏幕得到事務代碼

RS_COVERPAGE_SELECTIONS – 得到一個報表的選擇參數列表。

RS_REFRESH_FROM_SELECTOPTIONS –得到當前選擇屏幕的內容

RS_SEND_MAIL_FOR_SPOOLLIST – 在程序中給SAP office 發送消息

RS_VARIANT_CONTENTS – 得到一個變式的內容

RZL_SLEEP – 將當前程序掛起

RZL_SUBMIT – 提交一個遠程報表

RZL_READ_DIR_LOCAL – 讀取應用服務器的目錄

RZL_READ_DIR – 若是服務器名字左部爲空,從本地讀取目錄,不然讀取遠程服務器的目錄

RZL_READ_FILE – 若是爲給定服務器名字則讀取本地文件,不然讀取遠程服務器文件。

RZL_WRITE_FILE_LOCAL - 將內表保存到顯示服務器(not PC). 不使用OPEN DATASET所以避免了受權檢查。

SAPGUI_PROGRESS_INDICATOR – 顯示一個進度條

SAVE_TEXT – 上傳長文本

SCROLLING_IN_TABLE –當編寫模塊池的時候能夠用它來處理滾動

SD_DATETIME_DIFFERENCE – 兩日期做差

SO_NEW_DOCUMENT_ATT_SEND_API1 - 將文檔做爲郵件的一部分發送

SO_SPLIT_FILE_AND_PATH – 將一個包含路徑的全文件名分割爲文件名和路徑

SO_SPOOL_READ – 根據SPOOL號得到printer spool

SO_WIND_SPOOL_LIST – 根據用戶瀏覽printer spool號

SX_OBJECT_CONVERT_OTF_PDF – 從OTF轉換爲PDF (SAP 腳本轉換)

SX_OBJECT_CONVERT_OTF_PRT – 從OTF轉換爲打印機格式(SAP 腳本轉換)

SX_OBJECT_CONVERT_OTF_RAW – 從OTF轉換爲ASCII(SAP 腳本轉換)

SXPG_CALL_SYSTEM - 檢查用戶是否有執行某個命令的權限

SXPG_COMMAND_LIST_GET – 得到一個包含全部定義的外部OS命令的列表.

SXPG_COMMAND_DEFINITION_GET – 從R/3系統數據庫讀取單個外部OS命令的定義

SXPG_COMMAND_CHECK - 檢查用戶是否有執行某個命令的權限

SXPG_COMMAND_EXECUTE -檢查用戶是否有執行某個命令的權限,擁有受權則執行命令

TERMINAL_ID_GET –返回終端ID

TH_DELETE_USER – 剔除一個用戶,效果同SM04

TH_ENVIRONMENT – 得到UNIX環境

TH_POPUP –在特定用戶屏幕上顯示一個系統消息

TH_REMOTE_TRANSACTION – 在遠程服務器上運行事務代碼

TH_USER_INFO – 得到當前用戶的信息 (會話,登錄的工做臺等)

TH_USER_LIST –顯示登錄到應用服務器的用戶列表

UNIT_CONVERSION_SIMPLE –衡量單位轉換

UPLOAD –上傳文件到顯示服務器

UPLOAD_FILES – 上傳一個或多個文件

WRITE_LIST –顯示一個列表對象

WS_DOWNLOAD –將內表下載到顯示服務器

WS_EXCEL –啓動EXCEL

WS_EXECUTE –執行一個程序

WS_FILE_DELETE – 刪除一個文件

WS_FILENAME_GET –調用文件選擇對話框

WS_MSG –顯示一個對話框顯示在線消息

WS_UPLOAD – 從顯示服務器上傳文件到內表

WS_VOLUME_GET –得到終端設備標籤

WWW_LIST_TO_HTML – 運行一個報表以後,調用這個方法將列表輸出轉換成HTML

SD_VBAP_READ_WITH_VBELN 根據銷售訂單讀取表vbap中的信息

EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=「*」從新組織

VIEW_MAINTENANCE_CALL 維護表視圖

DY_GET_FOCUS 得到屏幕焦點

DY_GET_SET_FIELD_VALUE 得到或者設置屏幕字段的值

F4IF_INT_TABLE_VALUE_REQUEST 顯示檢索help

CONVERSION_EXIT_CUNIT_OUTPUT 單位轉換

SJIS_DBC_TO_SBC 全角轉半角

SJIS_SBC_TO_DBC 半角轉換爲全角

CO_R0_CHECK_DECIMAL_POINT 根據單位檢查數據的小數位

POSTAL_CODE_CHECK 檢查郵政編碼 GET_JOB_RUNTIME_INFO 得到job相關信息

TERMINAL_ID_GET 得到終端

idDATE_CONVERT_TO_FACTORYDATE 把輸入日期轉爲工廠日曆日期

MESSAGE_TEXT_BUILD 把消息轉爲文本

CONVERT_TO_LOCAL_CURRENCY 按照指定日期匯率轉換金額爲指訂貨幣類型

SSF_FUNCTION_MODULE_NAME 根據form名取得對應的函數名(SmartForm)

DATE_CHECK_PLAUSIBILITY 檢查日期合法性

CHECKcl_gui_frontend_services=>gui_upload 上傳到服務器

cl_gui_frontend_services=>gui_download 下載到本地

SSF_FUNCTION_MODULE_NAME SMARTFORMS輸出報表時,生成一個函數名稱,而後CALL這個名

經過這個日期得出那天是星期幾

DAY_IN_WEEK

用來獲得未來/過去的日期的

RP_CALC_DATE_IN_INTERVAL

日期的加減

BKK_ADD_MONTH_TO_DATE

一組有用的用戶交互窗口函數

POPUP_TO_CONFIRM_LOSS_OF_DATA 顯示有YES/NO的彈出窗口,提示用戶未保存的數據將丟失

POPUP_TO_CONFIRM_STEP 提示是否確認操做的彈出窗口

POPUP_TO_CONFIRM_WITH_MESSAGE 能夠顯示定製的提示信息的確認窗口

POPUP_TO_CONFIRM_WITH_VALUE 顯示確認用戶對某個特定對象的操做的彈出窗口

POPUP_TO_DECIDE 將待確認選項以單選按鈕的方式顯示的彈出窗口

POPUP_TO_DECIDE_WITH_MESSAGE 帶消息的確認窗口

POPUP_TO_DISPLAY_TEXT 顯示多行信息的窗口

POPUP_TO_SELECT_MONTH 月份選擇窗口

POPUP_WITH_TABLE_DISPLAY 有表格對象的確認窗口

一組操縱客戶端文件系統的函數

GUI_CREATE_DIRECTORY 在PC上創建文件目錄

GUI_DELETE_FILE 刪除PC上的文件

GUI_DOWNLOAD 文件下載函數

GUI_EXEC 執行PC上的程序,或者打開文件

GUI_GET_DESKTOP_INFO 獲得PC客戶端的系統信息,好比操做系統

GUI_REMOVE_DIRECTORY 刪除PC目錄

GUI_RUN 運行PC程序(ShellExecute)

GUI_UPLOAD 從PC上傳程序

判斷某天是不是假日

HOLIDAY_CHECK_AND_GET_INFO

ABAP_DOCU_DOWNLOAD

Download ABAP documentation in HTML format.

GET_CURRENT_YEAR

獲得當前的財政年(fiscal year)

察看某日期的屬性,包括該日期是星期幾,第幾天(周2=2),是否是公共假期等,須要輸入國家日曆。

DAY_ATTRIBUTES_GET

Return useful information about a day. Will tell you the day of the week as a word (Tuesday), the day of the week (2 would be Tuedsay), whether the day is a holiday, and more.(provided by Francois Henrotte)?

CLPB_IMPORT :從剪貼板導入internal table

CLPB_EXPORT : 從internal table輸入到剪貼板

示例程序:GRCLPB_1

在SE38環境下的程序名輸入欄輸入’DEMO*’後按F4,你能夠查到SAP全部的DEMO示例程序,會學到不少ABAP功能的實現方法,輸入’BCALV*’後按F4,你能夠查到不少ALV示例程序

函數名 描述

SD_VBAP_READ_WITH_VBELN 根據銷售訂單讀取表vbap中的信息

EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=「*」從新組織

VIEW_MAINTENANCE_CALL 維護表視圖

函數名 描述

DY_GET_FOCUS 得到屏幕焦點

DY_GET_SET_FIELD_VALUE 得到或者設置屏幕字段的值

函數名 描述

F4IF_INT_TABLE_VALUE_REQUEST 顯示檢索help

READ_TEXT 讀取長文本

CONVERSION_EXIT_CUNIT_OUTPUT 單位轉換

SJIS_DBC_TO_SBC 全角轉半角

SJIS_SBC_TO_DBC 半角轉換爲全角

CO_R0_CHECK_DECIMAL_POINT 根據單位檢查數據的小數位

POSTAL_CODE_CHECK 檢查郵政編碼

函數名 描述

CONVERSION_EXIT_ALPHA_INPUT 全數字則在前面補0

CONVERSION_EXIT_ALPHA_INPUT 和上面相反

GET_JOB_RUNTIME_INFO 得到job相關信息

TERMINAL_ID_GET 得到端末id

DATE_CONVERT_TO_FACTORYDATE 把輸入日期轉爲工廠日曆日期

MESSAGE_TEXT_BUILD 把消息轉爲文本

函數名 描述

POPUP_TO_CONFIRM 彈出確認窗口

函數名 描述

CONVERSION_EXIT_MATN1_INPUT 物料號碼轉換函數

CONVERSION_EXIT_MATN1_OUTPUT 同上相反

CONVERT_TO_LOCAL_CURRENCY 按照指定日期匯率轉換金額爲指訂貨幣類型

SSF_FUNCTION_MODULE_NAME 根據form名取得對應的函數名(SmartForm)

函數名 描述

DATE_CHECK_PLAUSIBILITY 日期CHECK

cl_gui_frontend_services=>gui_upload 上傳到服務器

cl_gui_frontend_services=>gui_download 下載到服本地

SSF_FUNCTION_MODULE_NAME SMARTFORMS輸出報表時,生成一個函數名稱,而後CALL這個名稱

函數名 描述

POPUP_TO_DECIDE_LIST 彈出供選擇窗口

ABAP_DOCU_DOWNLOAD – 以HTML格式下載ABAP文檔。

ARFC_GET_TID – 以十六進制形式返回終端的IP地址。

BAL_* -容納了SAP的應用程序日誌全部的函數模塊。

BP_EVENT_RAISE –在 ABAP/4 程序中觸發一個事件。

BP_JOBLOG_READ –得到job log的執行結果。

CLOI_PUT_SIGN_IN_FRONT – 將負號前置, SAP默認將負號放在數字後面。

CLPB_EXPORT –從內表導入到剪貼板。

CLPB_IMPORT – 從剪貼板導入內表。

COMMIT_TEXT -To load long text into SAP 。

CONVERSION_EXIT_ALPHA_INPUT - 數字串前補0

example:

input = 123

utput = 0000000000000。。。000000000000123

CONVERSION_EXIT_ALPHA_OUTPUT – 消除數字串前的0

example:

input = 00000000000123

utput = 123

CONVERT_OTF – 將SAP文檔(SAP Script)轉換成其餘類型。

example:

CALL FUNCTION ‘CONVERT_OTF’

EXPORTING

FORMAT = ‘PDF’

IMPORTING

BIN_FILESIZE = FILE_LEN

TABLES

TF = OTFDATA

LINES = PDFDATA

EXCEPTIONS

ERR_MAX_LINEWIDTH = 1

ERR_FORMAT = 2

ERR_CONV_NOT_POSSIBLE = 3

THERS = 4.

DATE_GET_WEEK – 返回一個日期所在的週數。

DATE_CHECK_PLAUSIBILITY – 檢查一個日期是不是SAP的有效格式。

DYNP_VALUES_READ – 讀取SCREEN字段的值,也能夠用來讀取報表SELECTION SCREEN。

DYNP_VALUES_UPDATE -更新屏幕字段的值。

ENQUE_SLEEP –在繼續處理以前等待一個指定的時間。

ENQUEUE_ESFUNCTION – 鎖定一個ABAP程序使它不能夠被執行:

RELID = ‘ZZ’

SRTF2 = 0

SRTF = (your report name)

注意不要用SY-REPID來傳遞你的報表名字,當把SY-REPID做爲參數傳遞給函數模塊的時候,SY-REPID的值實際上已經發生了變化。

EPS_GET_FILE_ATTRIBUTES – 得到文件屬性。

EPS_GET_DIRECTORY_LISTING – 返回一個本地或網絡目錄的文件列表。

F4_DATE - 彈出一個窗口顯示一個日曆容許用戶選擇一個日期。

F4IF_SHLP_EXIT_EXAMPLE – F4接口模塊。

FILENAME_GET – 彈出一個文件選擇對話框。

DATA out(60) TYPE c.

CALL FUNCTION ‘FILENAME_GET’

EXPORTING

filename = ‘c:1.txt’

title = ‘GET FILENAME’

IMPORTING

filename = OUT.

FTP_CONNECT – 打開並登錄FTP服務器的鏈接。

FTP_COMMAND – 在FTP服務器上執行一個命令。

FTP_DISCONNECT –關閉指向FTP服務器的鏈接。

FORMAT_MESSAGE - Takes a message id and number, and puts it into a variable。 Works better than WRITE_MESSAGE, since some messages use $ as a place holder, and WRITE_MESSAGE does not accommodate that, it only replaces the ampersands (&) in the message。

GET_GLOBAL_SYMBOLS – 返回一個程序的tables, select options, texts, etc 。甚至包含selection screen的文本定義。

GET_INCLUDETAB – 得到一個程序的INCLUDES列表。

GUI_CREATE_DIRECTORY –在顯示服務器端建立一個目錄 。

GUI_DELETE_FILE – 在顯示服務器端刪除一個文件 。

GUI_DOWNLOAD – 從應用服務器下載內表到顯示服務器。

GUI_EXEC – 調用一個文件或程序,取代了WS_EXECUTE。

GUI_GET_DESKTOP_INFO – 得到客戶端桌面信息,取代了WS_QUERY。

GUI_REMOVE_DIRECTORY – 從顯示服務器刪除一個目錄 。

GUI_RUN – 啓動一個文件或程序 。

GUI_UPLOAD – 從顯示服務器上傳文件到應用服務器,取代了WS_UPLOAD。

HELP_START – 爲一個字段顯示幫助。 Useful for doing AT SELECTION SCREEN ON VALUE REQUEST for those fields that do not provide F4 help at the DDIC level。

HOLIDAY_GET – 基於Factory Calendar&/ Holiday Calendar提供了一個節日表。

INIT_TEXT –上傳長文本到SAP。

K_WERKS_OF_BUKRS_FIND – 返回一個特定公司代碼的全部工廠。

LIST_TO_ASCII –將ABAP報表從 OTF形式轉換成ASCII 形式。

LIST_FROM_MEMORY – Retrieves the output of a report from memory when the report was executed using SUBMIT。。。EXPORTING LIST TO MEMORY。 See also WRITE_LIST。

MONTH_NAMES_GET – 得到全部的月和名字

**** MS_EXCEL_OLE_STANDARD_OLE – 建立一個文件並自動啓動Excel 。

CONVERT_OTFSPOOLJOB_2_PDF - converts a OTF spool to PDF (i。e。 Sap script. document)

CONVERT_ABAPSPOOLJOB_2_PDF -convert ABAP spool output to PDF

POPUP_TO_CONFIRM_LOSS_OF_DATA – 彈出一個對話框告知用戶有可能丟失數據,詢問是否操做繼續。

POPUP_TO_CONFIRM_STEP -彈出一個對話框詢問用戶是否操做繼續。

POPUP_TO_CONFIRM_WITH_MESSAGE 能夠顯示定製的提示信息的確認窗口 相似POPUP_TO_CONFIRM_STEP,只是多三行的文本錯誤診斷提示。

POPUP_TO_CONFIRM_WITH_VALUE 用此函數能夠創建一個對話框用於詢問用戶是否執行某步操做,該操做可能會丟失數據,用戶能夠選擇Yes No 或者Cancel。該函數能夠傳入一個標題,兩行的文本(提示問題)和一個對象值

POPUP_TO_DECIDE 顯示一個對話框,用戶能夠兩個操做中的一個或者取消。能夠傳入三行提示文本

POPUP_TO_DECIDE_WITH_MESSAGE 相似POPUP_TO_DECIDE

POPUP_TO_DISPLAY_TEXT 顯示多行信息的窗口

POPUP_TO_SELECT_MONTH –彈出一個對話框供選擇月。

POPUP_WITH_TABLE_DISPLAY -Provide a display of a table for user to select one,

with the value of the table line returned when selected。

PRICING – 得到訂價條件

PROFILE_GET - 從INI文件讀取一條記錄

PROFILE_SET – 往INI文件寫一條記錄

READ_TEXT – 上傳長文本

REGISTRY_GET – 從註冊表讀取一條記錄

REGISTRY_SET – 在註冊表裏設置一條記錄

RFC_ABAP_INSTALL_AND_RUN – 當MODE參數值爲‘F’時運行PROGRAM表中的程序’.

RH_GET_ACTIVE_WF_PLVAR – 得到激活的HR計劃

RH_START_EXCEL_WITH_DATA – 啓動Excel並用內表給文件賦值

RH_STRUC_GET –返回全部相關的組織信息

RP_CALC_DATE_IN_INTERVAL – 年月日加減

RP_LAST_DAY_OF_MONTHS – 得到一個月的最後一天

RPY_DYNPRO_READ – 讀取屏幕

RPY_TRANSACTION_READ – 給定一個事務代碼,得到其程序和屏幕;或給定一個程序和屏幕得到事務代碼

RS_COVERPAGE_SELECTIONS – 得到一個報表的選擇參數列表。

RS_REFRESH_FROM_SELECTOPTIONS –得到當前選擇屏幕的內容

RS_SEND_MAIL_FOR_SPOOLLIST – 在程序中給SAP office 發送消息

RS_VARIANT_CONTENTS – 得到一個變式的內容

RZL_SLEEP – 將當前程序掛起

RZL_SUBMIT – 提交一個遠程報表

RZL_READ_DIR_LOCAL – 讀取應用服務器的目錄

RZL_READ_DIR – 若是服務器名字左部爲空,從本地讀取目錄,不然讀取遠程服務器的目錄

RZL_READ_FILE – 若是爲給定服務器名字則讀取本地文件,不然讀取遠程服務器文件。

RZL_WRITE_FILE_LOCAL - 將內表保存到顯示服務器(not PC). 不使用OPEN DATASET所以避免了受權檢查。

SAPGUI_PROGRESS_INDICATOR – 顯示一個進度條

SAVE_TEXT – 上傳長文本

SCROLLING_IN_TABLE –當編寫模塊池的時候能夠用它來處理滾動

SD_DATETIME_DIFFERENCE – 兩日期做差

SO_NEW_DOCUMENT_ATT_SEND_API1 - 將文檔做爲郵件的一部分發送

SO_SPLIT_FILE_AND_PATH – 將一個包含路徑的全文件名分割爲文件名和路徑

SO_SPOOL_READ – 根據SPOOL號得到printer spool

SO_WIND_SPOOL_LIST – 根據用戶瀏覽printer spool號

SX_OBJECT_CONVERT_OTF_PDF – 從OTF轉換爲PDF (SAP 腳本轉換)

SX_OBJECT_CONVERT_OTF_PRT – 從OTF轉換爲打印機格式(SAP 腳本轉換)

SX_OBJECT_CONVERT_OTF_RAW – 從OTF轉換爲ASCII(SAP 腳本轉換)

SXPG_CALL_SYSTEM - 檢查用戶是否有執行某個命令的權限

SXPG_COMMAND_LIST_GET – 得到一個包含全部定義的外部OS命令的列表.

SXPG_COMMAND_DEFINITION_GET – 從R/3系統數據庫讀取單個外部OS命令的定義

SXPG_COMMAND_CHECK - 檢查用戶是否有執行某個命令的權限

SXPG_COMMAND_EXECUTE -檢查用戶是否有執行某個命令的權限,擁有受權則執行命令

TERMINAL_ID_GET –返回終端ID

TH_DELETE_USER – 剔除一個用戶,效果同SM04

TH_ENVIRONMENT – 得到UNIX環境

TH_POPUP –在特定用戶屏幕上顯示一個系統消息

TH_REMOTE_TRANSACTION – 在遠程服務器上運行事務代碼

TH_USER_INFO – 得到當前用戶的信息 (會話,登錄的工做臺等)

TH_USER_LIST –顯示登錄到應用服務器的用戶列表

UNIT_CONVERSION_SIMPLE –衡量單位轉換

UPLOAD –上傳文件到顯示服務器

UPLOAD_FILES – 上傳一個或多個文件

WRITE_LIST –顯示一個列表對象

WS_DOWNLOAD –將內表下載到顯示服務器

WS_EXCEL –啓動EXCEL

WS_EXECUTE –執行一個程序

WS_FILE_DELETE – 刪除一個文件

WS_FILENAME_GET –調用文件選擇對話框

WS_MSG –顯示一個對話框顯示在線消息

WS_UPLOAD – 從顯示服務器上傳文件到內表

WS_VOLUME_GET –得到終端設備標籤

WWW_LIST_TO_HTML – 運行一個報表以後,調用這個方法將列表輸出轉換成HTML

SD_VBAP_READ_WITH_VBELN 根據銷售訂單讀取表vbap中的信息

EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=「*」從新組織

VIEW_MAINTENANCE_CALL 維護表視圖

DY_GET_FOCUS 得到屏幕焦點

DY_GET_SET_FIELD_VALUE 得到或者設置屏幕字段的值

F4IF_INT_TABLE_VALUE_REQUEST 顯示檢索help

CONVERSION_EXIT_CUNIT_OUTPUT 單位轉換

SJIS_DBC_TO_SBC 全角轉半角

SJIS_SBC_TO_DBC 半角轉換爲全角

CO_R0_CHECK_DECIMAL_POINT 根據單位檢查數據的小數位

POSTAL_CODE_CHECK 檢查郵政編碼 GET_JOB_RUNTIME_INFO 得到job相關信息

TERMINAL_ID_GET 得到終端

idDATE_CONVERT_TO_FACTORYDATE 把輸入日期轉爲工廠日曆日期

MESSAGE_TEXT_BUILD 把消息轉爲文本

CONVERT_TO_LOCAL_CURRENCY 按照指定日期匯率轉換金額爲指訂貨幣類型

SSF_FUNCTION_MODULE_NAME 根據form名取得對應的函數名(SmartForm)

DATE_CHECK_PLAUSIBILITY 檢查日期合法性

CHECKcl_gui_frontend_services=>gui_upload 上傳到服務器

cl_gui_frontend_services=>gui_download 下載到本地

SSF_FUNCTION_MODULE_NAME SMARTFORMS輸出報表時,生成一個函數名稱,而後CALL這個名

經過這個日期得出那天是星期幾

DAY_IN_WEEK

用來獲得未來/過去的日期的

RP_CALC_DATE_IN_INTERVAL

日期的加減

BKK_ADD_MONTH_TO_DATE

一組有用的用戶交互窗口函數

POPUP_TO_CONFIRM_LOSS_OF_DATA 顯示有YES/NO的彈出窗口,提示用戶未保存的數據將丟失

POPUP_TO_CONFIRM_STEP 提示是否確認操做的彈出窗口

POPUP_TO_CONFIRM_WITH_MESSAGE 能夠顯示定製的提示信息的確認窗口

POPUP_TO_CONFIRM_WITH_VALUE 顯示確認用戶對某個特定對象的操做的彈出窗口

POPUP_TO_DECIDE 將待確認選項以單選按鈕的方式顯示的彈出窗口

POPUP_TO_DECIDE_WITH_MESSAGE 帶消息的確認窗口

POPUP_TO_DISPLAY_TEXT 顯示多行信息的窗口

POPUP_TO_SELECT_MONTH 月份選擇窗口

POPUP_WITH_TABLE_DISPLAY 有表格對象的確認窗口

一組操縱客戶端文件系統的函數

GUI_CREATE_DIRECTORY 在PC上創建文件目錄

GUI_DELETE_FILE 刪除PC上的文件

GUI_DOWNLOAD 文件下載函數

GUI_EXEC 執行PC上的程序,或者打開文件

GUI_GET_DESKTOP_INFO 獲得PC客戶端的系統信息,好比操做系統等

GUI_REMOVE_DIRECTORY 刪除PC目錄

GUI_RUN 運行PC程序(ShellExecute)

GUI_UPLOAD 從PC上傳程序

判斷某天是不是假日

HOLIDAY_CHECK_AND_GET_INFO

ABAP_DOCU_DOWNLOAD

Download ABAP documentation in HTML format.

GET_CURRENT_YEAR

獲得當前的財政年(fiscal year)

察看某日期的屬性,包括該日期是星期幾,第幾天(周2=2),是否是公共假期等,須要輸入國家日曆。

DAY_ATTRIBUTES_GET

Return useful information about a day. Will tell you the day of the week as a word (Tuesday), the day of the week (2 would be Tuedsay), whether the day is a holiday, and more.(provided by Francois Henrotte)?

CLPB_IMPORT :從剪貼板導入internal table

CLPB_EXPORT : 從internal table輸入到剪貼板

示例程序:GRCLPB_1

在SE38環境下的程序名輸入欄輸入’DEMO*’後按F4,你能夠查到SAP全部的DEMO示例程序,會學到不少ABAP功能的實現方法,輸入’BCALV*’後按F4,你能夠查到不少ALV示例程序

星期五, 03月 4th, 2011

若是咱們找BAPI能夠經過SAP標準事物代碼:BAPI查詢到已經釋放的BAPI.

若是隻知道事物代碼,能夠經過下面的方式查詢相應的BAPI.

例如咱們找建立銷售訂單的BAPI 咱們知道事物代碼是VA01.

一、 咱們進入VA01 界面,找到system –> status

二、 在事物代碼位置上雙擊,找到PACKAGE VA

三、 用SE80打開包 VA

四、 打開業務工程—》業務對象類型。根據咱們的業務需求。咱們要找銷售訂單的建立,全部BUS2032 銷售訂單 的可能性最大。

五、 雙擊 BUS2032 打開方法 ,尋找和建立銷售訂單名字相同的方法 這裏咱們要找的就是SalesOrder.CreateFromDat2。將光標定位在 這個一行 點擊 上面的程序 按鈕。 便可看見程序源代碼找到 ‘BAPI_SALESORDER_CREATEFROMDAT2。一樣的咱們能夠看到修改訂單的BAPI.刪除的BAPI,咱們也可使用一樣的方法找找。

六、 一樣咱們能夠雙擊SalesOrder.CreateFromDat2 行 ,在彈出的窗口中找到 ABAP 子屏幕。若是單選按鈕是 API功能 ,名稱一欄即爲咱們要找BAPI.,若是是函數模塊即爲一個FM,以下圖:
根據T-CODE找BAPI - 花刺 - 個人點點滴滴
七、 經過包咱們也能夠找到該包下全部的程序和函數組。

星期三, 12月 22nd, 2010

ABAP日期函數(求月末日,第幾周,search help 只顯示年月) 使用方法實例 計算兩個日期間的工做天數,就是剔除了雙休往後的天數.( 待考證)
DATE_CONVERT_TO_FACTORYDATE
HR_HK_DIFF_BT_2_DATES

根據當前時間如何找到上月的第一天和最後一天?
CALL FUNCTION ‘FIMA_DATE_CREATE’
EXPORTING
I_DATE = SY-DATUM
I_MONTHS = ‘-1′
I_SET_LAST_DAY_OF_MONTH = ‘X’
IMPORTING
E_DATE = LASTDATE.
LASTDATE是上個月最後一天。
FIRSTDAY是上月第一天
CONCATENATE LASTDATE+0(6) ‘01′ INTO FIRSTDAY.。
當天是當年的第幾周
DATE_GET_WEEK
獲得該周第一天
WEEK_GET_FIRST_DAY
查找當前月份之前的月份(好比如今是4月份,若是我須要知道6個月以前是哪一個月)
CCM_GO_BACK_MONTHS
RP_CALC_DATE_IN_INTERVAL
獲取兩日期之間天數函數:
FIMA_DAYS_AND_MONTHS_AND_YEARS
取得當月的第一天和最後一天
CONCATENATE sy-datum(6) ‘01′ INTO so_date-low.
CALL FUNCTION ‘BKK_GET_MONTH_LASTDAY’
EXPORTING
i_date = sy-datum
IMPORTING
e_date = so_date-high.
so_date-sign = ‘I’. so_date-option = ‘BT’. APPEND so_date.
RP_CALC_DATE_IN_INTERVAL 年月日加減
DATE_CHECK_PLAUSIBILITY 日期有效性檢查
SD_DATETIME_DIFFERENCE 兩日期做差
DATE_CONVERT_TO_FACTORYDATE 把輸入日期轉爲工廠日曆日期
MONTH_NAMES_GET 得到全部的月和名字
F4_DATE     彈出一個窗口顯示一個日曆容許用戶選擇一個日期。
RP_LAST_DAY_OF_MONTHS 得到一個月的最後一天
FIRST_DAY_IN_PERIOD_GET 得到期間首日
LAST_DAY_IN_PERIOD_GET 得到期間末日
DATE_GET_WEEK      返回一個日期所在的週數。
CALL FUNCTION ‘HR_99S_INTERVAL_BETWEEN_DATES’」得到兩個日期的年數
EXPORTING
begda = gdat
endda = sy-datum
IMPORTING
c_years = l_age.

關於星期(周)的函數
FM:GET_WEEK_INFO_BASED_ON_DATE
輸入參數 值
DATE 2008.01.09
輸出參數 值
WEEK 200802 <—-2008年第二週
MONDAY 2008.01.07 <—-這個週週一的日期
SUNDAY 2008.01.13 <—-週日的日期
FM:DAY_IN_WEEK(輸入日期是星期幾)

輸入參數 值
DATUM 2008.01.09
輸出參數 值
WOTNR 3 <—-2008-1-9爲週三

*更多關於Week的函數請看Function Group:CADA
*彈出選擇周的對話框
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_week-low.
PERFORM. getweek CHANGING s_week-low.
FORM. getweek CHANGING p_week .
DATA: begin_date TYPE d .
CALL FUNCTION ‘POPUP_CALENDAR_SDB’
EXPORTING
sel_week = ‘X’
focus_day = sy-datum
IMPORTING
begin_date = begin_date.
CALL FUNCTION ‘GET_WEEK_INFO_BASED_ON_DATE’
EXPORTING
date = begin_date
IMPORTING
week = p_week.
ENDFORM.
F4_CLOCK 選擇時間
*需求:只有顯示年月,但要有日期的search help
PARAMETERS:p1(6)TYPEc.
ATSELECTION-SCREENONVALUE-REQUESTFORp1.
DATA:l_dateTYPEsy-datum.
CALLFUNCTION’F4_DATE’
EXPORTING
date_for_first_month = sy-datum
IMPORTING
select_date = l_date
EXCEPTIONS
calendar_buffer_not_loadable =1
date_after_range =2
date_before_range =3
date_invalid =4
factory_calendar_not_found =5
holiday_calendar_not_found =6
parameter_conflict =7
OTHERS =8.
IFsy-subrc 0.
MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgno
WITHsy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
p1 = l_date+0(6).
* check plausibilty of dates
CALL FUNCTION ‘DATE_CHECK_PLAUSIBILITY’
EXPORTING
DATE = bkdf-dbbdt.
TIME_CHECK_PLAUSIBILITY 判斷是否是時間
GET_CURRENT_YEAR
獲得當前的財政年(fiscal year)

察看某日期的屬性,包括該日期是星期幾,第幾天(周2=2),是否是公共假期等,須要輸入國家日曆。

DAY_ATTRIBUTES_GET
判斷某天是不是假日
HOLIDAY_CHECK_AND_GET_INFO
POPUP_TO_SELECT_MONTH 月份選擇窗口
比較日期和時間
TYPE-POOLS : TRFF .
DATA : X_LOG_OP TYPE TRFF_TYPE_C_2 .
CALL FUNCTION ‘FIMA_DATE_COMPARE’
EXPORTING
I_FLG_INTRADAY = ‘X’
I_DATE = SY-DATUM
I_TIME = SY-UZEIT
I_COMP_DATE = L_MODIFY-MODDATE
I_COMP_TIME = L_MODIFY-MODTIME
IMPORTING
E_LOG_OP = X_LOG_OP.
p_months = -4.」前4月,若是爲正,則是後面的日期

CALL FUNCTION ‘MONTH_PLUS_DETERMINE’
EXPORTING
MONTHS = p_months
OLDDATE = p_date
IMPORTING
NEWDATE = p_date.
得到某個日期所在的周,得到某周的第一天。

DATE_GET_WEEK 和 WEEK_GET_FIRST_DAY
function date_get_week.
*」———————————————————————-
*」*」Lokale Schnittstelle:
*」 IMPORTING
*」 VALUE(DATE) LIKE SCAL-DATE
*」 EXPORTING
*」 VALUE(WEEK) LIKE SCAL-WEEK
*」 EXCEPTIONS
*」 DATE_INVALID
*」———————————————————————-

函數模塊做用:
得到某個日期所在的周。
=============================================
function week_get_first_day.
*」———————————————————————-
*」*」Lokale Schnittstelle:
*」 IMPORTING
*」 VALUE(WEEK) LIKE SCAL-WEEK
*」 EXPORTING
*」 VALUE(DATE) LIKE SCAL-DATE
*」 EXCEPTIONS
*」 WEEK_INVALID
*」———————————————————————-

函數模塊做用:
得到某周的第一天。
============================================
上述兩個函數的功能已經包含在 HR_GBSSP_GET_WEEK_DATES 中了。
從數據表中得到指定語言每週七天的名稱,例如中文就是星期1、星期二……星期日,英文就是Sunday、Monday……Saturday。
WEEKDAY_GET
FUNCTION WEEKDAY_GET.
*」———————————————————————-
*」*」Lokale Schnittstelle:
*」 IMPORTING
*」 VALUE(LANGUAGE) LIKE SY-LANGU DEFAULT SY-LANGU
*」 EXPORTING
*」 VALUE(RETURN_CODE) LIKE SY-SUBRC
*」 TABLES
*」 WEEKDAY STRUCTURE T246
*」 EXCEPTIONS
*」 WEEKDAY_NOT_FOUND
*」———————————————————————-

函數模塊做用:
從數據表中得到指定語言每週七天的名稱,例如中文就是星期1、星期二……星期日,英文就是Sunday、Monday……Saturday。

輸入參數:
LANGUAGE:指定語言代碼,能夠省略,若是不填就是當前登陸語言。注意,在調用時若是指定某種特定語言,必須用一個字節的語言代碼,例如中文是 一、英文是 E……,而不能用 ZH、EN,語言代碼參見表 T002。

輸出參數:
RETURN_CODE:返回碼,查詢數據庫得到的返回碼。可是因爲這個函數會拋出異常,所以返回碼的做用不大。

表:
WEEKDAY:結構與透明表 T246 相同,用來存儲返回給用戶的週日名稱。

異常:
WEEKDAY_NOT_FOUND:沒有找到週日的描述。

星期四, 11月 18th, 2010

下面總結一下ABAP中的各類接口技術,由於學習時間不是很長,確定還不全(還有加強、出口等),之後再補上。

針對具體的狀況,選擇不一樣的接口方法,或幾種方法並行使用。

1、CPI-C

是基礎,但不是很經常使用,比較底層

2、RFC

一、R3系統之間

(1)在調用系統上進行RFC目標系統的配置(TCODE:SM59)

(2)在遠程系統上建立容許遠程訪問的功能模塊

二、R3與外部系統之間

(1)外部程序調用SAP功能(功能模塊、BAPI)

(2)SAP調用外部程序

3、Connectors

(1)SAP Business Connector(SAP BC)

(2)SAP Marketplace Connector

(3).NET Connector、Java Connector、DCOM Connector、Lotus Connector

4、OLE

一、Excel做爲OLE客戶端

二、ABAP做爲OLE2控制器

5、Desktop Office Integrated(DOI)

6、WebService

一、R3中建立WebService的方法(舉函數模塊產生WebService的方法)

(1)定義函數模塊並選擇函數組

(2)根據嚮導生成WebService

(3)使用TCODE 「wsadmin」和「wsconfig」對服務進行管理和配置

(4)生成WSDL和測試WebService

三、外部系統使用R3的WebService

四、R3調用外部系統上的WebService

(1)根據WebService鏈接,使用se80,建立代理類(Proxy Object),並激活

(2)爲代理類配置邏輯端口(TCODE:lpconfig)

(3)在程序中使用代理類完成WebService中方法的調用

7、FTP

配合數據遷移的方法(標準導入程序、定製BDC、LSMW、DXWB),可完成一些接口功能。

一、條件

(1)服務器和客戶端程序(SAPFTPA和SAPFTP)

(2)服務器配置

(3)IIS或Serv-U創建FTP服務

二、操做方式

(1)鏈接到FTP服務器

(2)進行操做(執行FTP命令)

(3)斷開與FTP服務器的鏈接

三、操做實例

(1)獲取FTP服務器上的文件列表

(2)本地與FTP之間的文件交換

(3)應用服務器與FTP服務器之間的文件交換

8、外部數據庫

一、鏈接外部數據庫

(1)服務器端配置(DBCON)

(2)訪問SQL Server數據庫,必需要求R3系統安裝在Windows系統上(由於須要一些DLL庫支持)

(3)訪問外部Oracle數據庫

二、使用Native SQL進行數據庫操做

9、ALE and EDI、IDoc接口

10、SAP Exchange Infrastructure(SAP XI)

星期四, 11月 18th, 2010
一、使用where語句
不推薦
Select * from zflight.
Check : zflight-airln = ‘LF’ and zflight-fligh = ‘BW222’.
Endselect.
推薦
Select * from zflight where airln = ‘LF’ and fligh = ‘222’.
Endselect.

 

二、使用聚合函數
不推薦
Maxnu = 0.
Select * from zflight where airln = ‘LF’ and cntry = ‘IN’.
Check zflight-fligh > maxnu.
Maxnu = zflight-fligh.
Endselect.
推薦
Select max( fligh ) from zflight into maxnu where airln = ‘LF’ and cntry = ‘IN’.

三、使用視圖代替基本表查詢
不推薦
Select * from zcntry where cntry like ‘IN%’.
Select single * from zflight where cntry = zcntry-cntry and airln = ‘LF’.
Endselect.
推薦
Select * from zcnfl where cntry like ‘IN%’ and airln = ‘LF’.
Endselect.

四、使用INTO table 代替select endselect
不推薦
Refresh: int_fligh.
Select * from zflight into int_fligh.
Append int_fligh. Clear int_fligh.
Endselect.
推薦
Refresh: int_fligh.
Select * from zflight into table int_fligh.

五、使用批量修改內表代替逐行修改
不推薦
Loop at int_fligh.
If int_fligh-flag is initial.
Int_fligh-flag = ‘X’.
Endif.
Modify int_fligh.
Endloop.
推薦
Int_fligh-flag = ‘X’.
Modify int_fligh transporting flag where flag is initial.

六、使用二分法查詢,提升查詢內表數據速度
不推薦
Read table int_fligh with key airln = ‘LF’.
推薦
Read table int_fligh with key airln = ‘LF’ binary search.

七、兩個內表添加使用批量增長代替逐行
不推薦
Loop at int_fligh1.
Append int_fligh1 to int_fligh2.
Endloop.
推薦
Append lines of int_fligh1 to int_fligh2.

八、使用table buffering
Use of buffered tables is recommended to improve the performance considerably. The buffer is bypassed while using the following statementsSelect distinct
Select … for update
Order by, group by, having clause
Joins
Use the Bypass buffer addition to the select clause in order to explicitly bypass the buffer while selecting the data.

九、 使用FOR ALL Entries
不推薦
Loop at int_cntry. Select single * from zfligh into int_fligh where cntry = int_cntry-cntry. Append int_fligh. Endloop.
推薦
Select * from zfligh appending table int_fligh
For all entries in int_cntry
Where cntry = int_cntry-cntry.

十、正確地使用where語句,使查詢能使用索引
When a base table has multiple indices, the where clause should be in the order of the index, either a primary or a secondary index
To choose an index, the optimizer checks the field names specified in the where clause and then uses an index that has the same order of the fields. One more tip is that if a table begins with MANDT, while an index does not, there is a high possibility that the optimizer might not use that index.

十一、正確地使用MOVE語句
Instead of using the move-corresponding clause it is advisable to use the move statement instead. Attempt should be made to move entire internal table headers in a single shot, rather than moving the fields one by one.

十二、正確地使用inner join
Let us take an example of 2 tables, zairln and zflight. The table zairln has the field airln, which is the airline code and the field lnnam, which is the name of the airline. The table zflight has the field airln, the airline code and other fields which hold the details of the flights that an airline operates.
Since these 2 tables a re logically joined by the airln field, it is advisable to use the inner join.
Select a~airln a~lnnam b~fligh b~cntry into table int_airdet
From zairln as a inner join zflight as b on a~airln = b~airln.
In order to restrict the data as per the selection criteria, a where clause can be added to the above inner join.

1三、使用sort by 代替order by

1四、避免使用SELECT DISTINCT語句
使用的 ABAP SORT + DELETE ADJACENT DUPLICATES 代替.

 

星期二, 11月 2nd, 2010

屏幕中INPUT字段的下拉列表方式的效果以下圖:

1

實現方法:1.首先在屏幕ELEMENT LIST中按以下設置:

2

在屏幕流語句中加入

process on value-request.
field wa_maintable-KUNNR module mod_KUNNR.

在MOD_KUNNR中使用函數‘VRM_SET_VALUES ’設置該字段的下拉列表的VALUE TBALE既可。

發表於: 星期五, 12月 11th, 2009 1:08 pm
歸類於:ABAP , 默認文章分類
Trackback:http://scnblogs.techweb.com.cn/wangyang/archives/14.html/trackback
閱讀次數:105

星期一, 09月 13th, 2010

有人說,只要有開發權限,在sap中就至關於擁有全部權限,但前提條件是你要知道怎麼作。

在se38中,鍵入程序名SAPMSUU0,按下調試按鈕,便會進入debug模式。很簡短的一段su01代碼。

在  IF sy-subrc <> 0.打入斷點,執行此部時更改SY-SUBRC參數爲0。執行後便進入用戶維護的初始屏幕。

輸入框中鍵入/H,單擊顯示按鈕。再次進入debug模式。點擊create point 的紅色stop按鈕,在FORM中的program

鍵入SAPLSUU0,Fmla鍵入auth_check,運行。程序此時會跳入斷點中。單步執行到出此form時,

會觀察到給rc變量賦值,然後會跳出form,判斷此rc的值。把rc的值改成0並執行。

星期四, 12月 10th, 2009

避免重複發明輪子,還由於我在網上我找不到理想的解決邏輯,因此本身發明了個輪子。e58886e9a1b52

接口接口導入參數僅爲要分頁的行數。

在全局數據中設置最少6個變量,分別爲:一、當前輸出的內錶行數 二、判斷分頁條件數  三、空行工做空間 四、空行內表 五、空行數量 六、內表總行數

邏輯爲:

在內表的大循環下:

一、設置當前行數自動加一的變量,計算分頁條件數

二、輸出表數據

三、若是分頁條件數知足,(當前行數與分頁數的mod爲零),進行強制分頁,返回P頁面。

四、在全局定義的初始化裏面經過計算得出空行總數,在此把空行工做空間循環空行總數次加入到空行內表中(此處空行內表類型爲通用的簡單結構

TYPES:

BEGIN OF tp_blank ,
TYPE c,
END OF tp_blank,
itab_blank TYPE TABLE OF tp_blank.

五、判斷若是知足當前輸出的內錶行數與內表總行數相等,變進行空行輸出循環’loop1‘。

其中,第一個的事件中有表頭和帶有高度的腳標,選擇‘在表結束處’。

星期三, 12月 9th, 2009

e58886e9a1b51

判斷分頁爲:

current_l = current_l + 1.
pagination =  current_l MOD line.

強制分頁條件爲:

PAGINATION=0.

相關文章
相關標籤/搜索