ABAP实用新语法
先创建表,给表添加数据 在试用的SAP云平台中,很多数据库表没有权限,所以要自己建表,自己添加数据。我用的是别人创建过的表,复制出来结构,然后通过代码添加数据。@EndUserText.label : 'Book'@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE@AbapCatalog.tableCa
設多少
第一代(FORM 增強)在所需增強的主程序中,查找form名中有userexit_的form.第二代(Function 增強)在程序中搜索customer-function,找到customer-function後面的3位數字編號,出口函數名為EXIT_程序名_3位數字,然後用出口函數名去MODSAP表中取得增強對象。在MODX_FUNCTION_ACTIVE_CHECK中第36行打斷點,運行要查找出口的T-code,進入debug,查看l_funcname值。funcname就是出口函數名稱。.
DATA: gv_repid TYPE sy-repid,gv_sname TYPE sy-dynnr.TYPES: BEGIN OF gs_data.INCLUDE STRUCTURE spfli.TYPES: celtab TYPE lvc_t_styl.TYPES: END OF gs_data.DATA: gs_data1 TYPE gs_data.DATA: gt_data TYPE TABLE OF gs_data WITH HEADER LINE.DATA: g_con01
RFC簡介RFC(Remote Function Call)是SAP系統之間以及SAP與外部係統之間程序通信的基本接口技術。RFC通信模式RFC分為同步通信和異步通信。同步通信:同步通信是一次性的功能調用,前提條件是接收系統必須是active,可以接收請求,並且進行處理。優點是可以即時將數據返還給發送系統;缺點是在系統對話時必須確保兩個系統都處於active狀態,否則對話中斷,影響業務應用的處理進程。異步通信:異步通信特點是接收系統并不需要在被調用時處於active,接收系統可以滯後接收并處.
創建步驟:先定义动态结构體,然後用系統標準的方法:cl_alv_table_create=>create_dynamic_table,生成動態內表赋值。遍歷动态结构,获取指定的字段,然后给指定的字段赋值。顯示。遍歷动态结构,获取指定的字段,然后读取对应字段的值。TABLES: ekbe.SELECT-OPTIONS: ebeln FOR ekbe-ebeln NO INTERVALS, matnr FOR ekbe-matnr NO INTERVALS,
ABAP中輸入框都是一行一行的,利用cl_gui_textedit和cl_gui_custom_container可以創建類似于記事本輸入的效果。首先,創建屏幕,畫個Customer control,然後加上退出,保存的按鈕。CONSTANTS: line_length TYPE i VALUE 254.DATA: ok_code LIKE sy-ucomm.types: begin of istr, line(line_length) type c, end of
異步RFC:在異步RFC中,執行不依賴與RFC服務器是否可用。被調用的遠程功能啟動后,調用程序繼續運行,遠程功能和調用程序處理相互分離。遠程功能的結果可以延時接收。RFC異步調用只能使用Tables、Exporting和Exceptions參數。調用程序不等待Function返回結果,不能直接從被調用的函數中返回結果,可以在後續的回調子程序中獲取結果。PARAMETERS: plnum LIKE plaf-plnum.DATA: l_return LIKE bapireturn1, l_h
程序運行結構–事件INITIALIZATION.初始化字段,設定selection-screen畫面顯示之前的字段內容。設定GUI status和Titlebar 的內容。AT SELECTION-SCREEN.輸入Selection-screen值前或后觸發的事件。AT SELECTION-SCREEN.在Selection-screen中輸入的值有變更時執行的事件;AT SELECTION-SCREEN ON field. 可用於對輸入值的正確性進行判斷,可提示錯誤;AT SELECTI
Laws about software:You can never tell which way the program went by looking at the coding.Logic is a systematic method of coming to the wrong conclusion with confidence.Whenever a system becomes completely defined, some damn fool discovers something w
data_changed在可編輯字段的數據發生變化時才會觸發。可用來檢查輸入數據的正確性。data_changed_finished在回車時和可編輯字段數據發生變化后,光標移動時觸發,如果可編輯字段數據檢查失敗,則不會觸發此事件。這兩個事件都需要調用方法才能觸發。 call METHOD g_grid01->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_enter.//
DATA: gv_repid TYPE sy-repid, gv_sname TYPE sy-dynnr.TYPES: BEGIN OF gs_data. INCLUDE STRUCTURE spfli.TYPES: celtab TYPE lvc_t_styl.TYPES: END OF gs_data.DATA: gs_data1 TYPE gs_data.DATA: gt_data TYPE TABLE OF gs_data WITH HEADER LINE.DA
data_changed在可編輯字段的數據發生變化時才會觸發。可用來檢查輸入數據的正確性。REPORT z_tfalv_data_changed.TYPE-POOLS: slis.DATA: gs_fieldcat TYPE slis_fieldcat_alv, gt_fieldcat TYPE slis_t_fieldcat_alv.DATA: gs_layout TYPE slis_layout_alv.DATA: gt_events TYPE slis_t_event,
先创建普通的视图 @AbapCatalog.sqlViewName: '' @AbapCatalog.compiler.compareFilter: true @AbapCatalog.preserveKey: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: 'test table function' define view Ztab_Function as select from data_sou
创建一个cds Access Control@EndUserText.label: 'check ztest_cds quthority'@MappingRole: truedefine role ZAUTH_CHECK { grant select on ztest_cds//CDS 视图名 where ( carrid ) =
PARAMETERS: lines LIKE sy-index, no_range LIKE sy-index.TYPES: BEGIN OF number, no TYPE i, END OF number.DATA: s_number TYPE number.DATA: t_number TYPE TABLE OF number WITH HEADER LINE.DATA: t_number1 TYPE TABLE OF numbe
Hana Data TypeABAP Dictionary TypeSMALLINTINT2,INT1INTEGERINT4DECIMALDEC,CURR,QUAN,D43D*,D16D*SMALLDECIMALDEC,…FLOATFLTPNVARCHARCHAR,NUMC,SSTR,CLNT*,DATS*,TIMS*,UNIT*,CUKY*VARCHARCHAR,NUMC,SSTR,CLNT*,DATS*,TIMS*,UNIT*,CUK...
CDS中支持的join有:Inner joinLeft outer joinRight outer joinCross join
先在前台创建条数据测试一下,然后把前台的一些必输数据导进bapi里面。在se37里面测试是否创建成功,这个bapi不需要调用BAPI_TRANSACTION_COMMIT。创建成功后,就可以再给其他字段再赋值。跟前台对应测试。DATA: lv_aennr LIKE csap_mbom-aennr. "Change NumberDATA: lv_matnr LIKE csap_mbom-matnr VALUE 'ML-TG13', "Bom material lv_plant LIKE csa
本文主要练习财务凭证创建、修改、冲销,预制凭证。创建一个银行存款会计科目和一个费用类会计科目。(T-code:FS00)采用新建/复制的方法创建,我复制创建的。银行存款会计科目:创建利润中心(T-code:KE51)和成本中心(T-code:KS01)员工报销其他费用500元,计入成本中心C102090528。(T-code:F-02)借方:6601990528;金额:500贷方:1002090528; 金额:500回车后输入原因代码点击上图红框标明的按钮
用SO_DOCUMENT_SEND_API1發送郵件PROGRAM: ztemail1.*&---------------------------------------------------------------------**& Module STATUS_0100 OUTPUT*&-------------------------------...
1、維護邏輯系統(SPRO);2、發送和接收系統維護RFC目標(SM59);3、發送系統配置分佈模型(BD64);4、發送系統創夥伴參數(BD82),用(WE20)查看夥伴參數;5、發送系統將分佈模型視圖發送到接收系統(BD64);6、接收系統創建夥伴參數;7、創建並發送要傳輸的數據,檢查傳輸狀態(BD87)。...
IDoc接口應用于SAP系統與其他系統的業務數據交換過程,包含數據結構的定義以及數據的處理邏輯,其中的數據結構即為IDoc(intermediate document).IDoc是一種系統間通用的數據交換格式,通過IDoc,SAP系統可以和SAP系統和非SAP系統進行數據交換。發送端配置Create RFC Destination(SM59)Define Logical System(SALE)Assign Logical System to Client只需要添加接收端的l
|Memory ID pid |分配內存參數,PID是SAP內存ID|Modif ID modid|指定screen-group,用於分組控制畫面屬性||Lower case | 區分大小寫 ||As Checkbox| 單選框,選中為 ’X’ ||-Radiobutton group radio|複選框|| value check |可以繼承表字段屬性來檢查check table的值(外部鍵)|like(g)|動態定義參數,運行時g中應該分配ABAP數據字典中存在的數據對象 ||as
AT NEW F.代码段…ENDAT.當F字段內容發生變化時,执行其中的代码段。AT END OF F.代码段…ENDAT.當F字段內容即將發生變化時,执行其中代码段。AT FIRST.代码段…ENDAT.内表的第一行时,执行。AT LAST.代码段…ENDAT.内表的最后一行时执行。Field-groups: ,, … ,. 創建字段組.Insert: … into ,… , into .用字段填充字段組.6.selection-screen begin of.
Query是 SAP的一项简单报表工具,对于开发人员和功能顾问来说,可以在较短的时间不通过开发代码来实现报表功能,并且可以将Query使用权限授予一个或多个用户。創建1個Query共有三步。創建User Group,并分配用戶給用戶組。(T-code:SQ03);創建InfoSet。(T-code:SQ02);InfoSet可以直接讀取表,也可以讀取多個關聯的表,還可以引用LDB。創建完InfoSet后,把用戶組分配進去。創建Query。(T-code: SQ01);創建Query時,選擇自己
INITIALIZATION在程序運行中,最先執行。在PBO事件的運行完最後一行后執行,在selection-screen之前觸發,一般用於指定變量初始值,即指定selection-screen中使用的字段的初始值。AT SELECTION-SCREENAt SELECTION-SCREEN是在selection-screen中Input field的值有變更時執行的時間。Initialization與Start-of-selection之間被觸發,且對用戶事件有回應并調節畫面字段。參數.
語句結果selection-screen begin of line.selection-screen end of line.將多個參數組合后顯示在一行中。在行組中不能使用select-options,selection-screen skip n語句selection-screen skip n.追加n個空行,n = 0–9selection-screen uline追加under line。 selection-screen uline /1(10):中“/’用於...
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号