在updata物料主数据时,对相关VIEW的权限check方法.
Check for maintenance status (STATM) according to the mapping lists as belowViewMaintenance status(STATM)Work schedulingAAccountingBClassificationCMRPDPurchasingEProduction resources/toolsFCostingGBasic dataKStorageLForecastingPQuality managementQWarehouse managementSSalesVPlant stocksXStorage location stocksZfor example: AUTHORITY-CHECK OBJECT 'M_MATE_STA' ID 'STATM' FIELD 'D' ID 'ACTVT' FIELD '02'. IF sy-subrc <> 0. MESSAGE s398 WITH 'You
用BAPI_MATERIAL_SAVEDATA对MRP Controller(MM01的MRP1视图中)作change的方法
FORM change_mpr_controller . DATA: st_headdata LIKE bapimathead , st_plantdata LIKE bapi_marc , st_plantdatax LIKE bapi_marcx , st_return LIKE bapiret2 . LOOP AT it_tab. CLEAR: st_headdata, st_plantdata, st_plantdatax, st_return. st_headdata-material = it_tab-matnr . st_headdata-mrp_view = 'X' . st_plantdata-plant = it_tab-werks . st_plantdata-mrp_ctrler = it_tab-new . st_plantdatax-plant = it_tab-werks .
使用VIEW_MAINTENANCE_CALL维护tableview
REPORT ztest.TABLES t001b.TYPES: BEGIN OF ty_mkoar, mkoar TYPE mkoar, END OF ty_mkoar. DATA: it_vimsellist TYPE TABLE OF vimsellist, iw_vimsellist TYPE vimsellist, it_vimexclfun TYPE TABLE OF vimexclfun, iw_vimexclfun TYPE vimexclfun.DATA: it_mkoar TYPE TABLE OF ty_mkoar, iw_mkoar TYPE ty_mkoar.DATA: w_flg TYPE c. PARAMETERS p_bukrs TYPE t001b-bukrs. SELECT-OPTIONS: s_mkoar FOR t001b-mkoar. START-OF-SELECTION. SELECT mkoar INTO CORRESPONDING FIELDS OF TABLE it_mkoa
ON CHANGE OF 的用法
刪除一個material No.只對應一個 Manufacturer的代碼...IF p_more IS NOT INITIAL. DATA l_count TYPE i. SORT it_result BY bmatn mfrnr. CLEAR: it_result, l_count. LOOP AT it_result. ON CHANGE OF it_result-bmatn OR it_result-mfrnr. l_count = l_count + 1. ENDON. AT END OF bmatn. IF l_count = 1. DELETE it_result WHERE bmatn = it_result-bmatn. ENDIF. CLEAR l_count. ENDAT. ENDLOOP. ENDIF. IF it_result[] IS INITIAL. MESSAGE s398(
不用SE11建Structure传Internal Table到Smartforms的方法
通常我们在做smartforms时都會自己建一个结构,以方便适用,但是有时候多建个结构很麻烦,我们在程序里都建了Internal table的结构了,其实我们可以不建这个结构。 在smartforms的 global settings->global definitions 里有个 types 我们可以在这里定义一个和程序里Internal table一样的结构。但是,在form interface 里定义参数的时候不是刚才定义的结构,激活的时候会报错。例如:在程式中定義一個Internal table*** Internal table for itemDATA: BEGIN OF it_item OCCURS 0, ebeln LIKE zpudnrlma0001-ebeln, e
SAP ALE (Application Link and Enabling)介绍
ALE 是Application Link and Enabling的缩写,是SAP专门为SAP与SAP之间所设计的整合中间件。IDocs是中介文本 (Intermediate DOCument) 的缩写,是SAP提供的系统整合专用的数据/消息格式。ALE在SAP 3.0版本开始就作为SAP整个应用体系的一部分,为分布式数据交换提供了可靠安全的通讯机制。ALE的设计,原本作为两个SAP流程之间的一种消息传递服务(Messaging Service) ,使SAP与SAP的业务流程之间企业数据能够有效的交换,为两个独立的SAP之间提供了的系统整合服务。不过,随着应用的发展,ALE/IDocs接口机制也已然成为与其它非SAP系统的标准
檢查貨幣是否存在SAP系統中
*&Check Currency exist DATA: ls_return LIKE bapiret2, lt_return LIKE TABLE OF bapiret2 WITH HEADER LINE. CALL FUNCTION 'AIA_CHECK_EXIST_CURRENCY' EXPORTING i_currency = p_curr TABLES return = lt_return EXCEPTIONS no_currency = 1 currency_not_exist = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE s398(00) WITH 'Currency is not valid'. STOP. ENDIF.[@more@]
將Excel file上轉到Internal table的方法
1 定義輸入文件(Local file for upload/download)SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.PARAMETERS p_file LIKE rlgrap-filename OBLIGATORY MODIF ID fin.SELECTION-SCREEN END OF BLOCK b2.2 Search help for get download path from PCAT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. PERFORM get_pc_download_path(zbar00001) USING 'X' CHANGING p_file. ENDIF.*&---------------------------------------------------------------------**&
关于COMMIT和ROLLBACK语句的使用注意事项
作者:莫怀远1. COMMIT WORK 语句执行许多与任务的同步执行有关的功能。ROLLBACK WORK语句“取消”任务同步执行的所有请求。COMMIT WORK 语句进行下列处理:• 执行所有由PERFORM ON COMMIT 请求的FORM 例程。按优先级的升序执行这些例程,顺序由 PERFORM 语句的LEVEL 参数指定。• 如果请求,触发所有更新任务功能模块。• 如果请求,触发所有后台任务功能模块。• 触发数据库提交(依次释放数据库锁定)。• 清空反转日志。反转日志包含应用更改前的表格快照。执行反转时,该快照用来将表格复位到原值。•
SAP ABAP报表介绍
一, 首先介绍一下ABAP的程序的类型:Program type(程序类型)Introductory statement(类型描述)1 REPORT(报表)M PROGRAM(屏幕程序)F FUNCTION-POOL(函数组)K CLASS-POOL(类组)J CLASS-POOL(接口组)T TYPE-POOL(类型池)二, 下面介绍报表中用到的事件以及作用:1. LOAD-OF-PROGRAM:程序开始执行时候自动调用这个事件在SUBMIT,CALL TRANSACTION,PERFORM等执行的时候系统会自动调用这个事件。所以无需声明即可。 2. INITIALIZATION(1).只能用于报表程序(2).在选择屏幕出现之前执行,如果用逻辑数据库的话,这个是唯一能
用BAPI_PO_CHANGE修改(ME23N)PO出貨日期的方法
* Call BAPI function DATA: lt_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE, lt_poschedule LIKE bapimeposchedule OCCURS 0 WITH HEADER LINE, lt_poschedulex LIKE bapimeposchedulx OCCURS 0 WITH HEADER LINE, l_line TYPE i, l_flag(1), l_ebeln LIKE ekko-ebeln, l_werks LIKE ekpo-werks. LOOP AT it_itab. CLEAR: l_line, l_flag. lt_poschedule-po_item = it_itab-ebelp. lt_poschedule-sched_line = '0001'. lt_poschedule-del_datcat_ext = 'D'. lt_posch
BADI的实现
A.BADI定义1.SE18。2.输入要创建的BADI的名字,点击"Create"。3.输入BADI的描述性文本,在"Interface"选项卡上输入接口的名字,也可以采用SAP建议的接口的名字。同时,BADI类也会被创建。例如:对于BADI "ZTEST",SAP会建议"ZIF_EX_TEST"作为接口的名字,"ZCL_EX_TEST"作为类的名字。4.保存BADI。5.双击接口的名字,会跳转到Class Builder界面,在这里你可以定义接口的方法。6.保存并激活接口。B.在应用程序中调用BADI1.声明一个BADI接口的参考引用变量。例如:DATA exit_ref
search help for download file path
輸入文件路徑PARAMETERS: p_file LIKE rlgrap-filename default 'C:' OBLIGATORY.AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE. PERFORM get_pc_download_path USING 'X' CHANGING P_FILE.*&---------------------------------------------------------------------**& Search help for get download path form PC*----------------------------------------------------------------------*FORM get_pc_download_path USING value(p_value) CHANG
search help for download directory path
在SELECTION-SCREEN中的源代碼SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.PARAMETERS: p_path LIKE rlgrap-filename DEFAULT 'C:'. " Download file path(On-Line)SELECTION-SCREEN END OF BLOCK b1.在AT SELECTION-SCREEN中的源代碼***** F4 for search help for download directory path **************************************AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.PERFORM get_download_path CHANGING p_path.FORM get_download_path CHANGING p_file.DATA: l_path TYPE string.DATA: l_len TY
Upload excel file 到 INTERNAL TABLE 的方法
FORM upload_data . DATA:w_tab LIKE it_excel. DATA:lt_excel TYPE TABLE OF alsmex_tabline WITH HEADER LINE. DATA:l_tabix1 LIKE sy-tabix. FIELD-SYMBOLS:<field> TYPE ANY. CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' EXPORTING filename = p_file i_begin_col = 1 i_begin_row = 2 i_end_col = 16 i_end_row = 5000 TABLES intern = lt_excel EXCEPTI
DATE 相關的Function
1、年月日相加減Date +/- year/month/day (into the future/past)CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'EXPORTINGdate = l_datedays = '00'months = p_monthsignum = '-'years = '00'IMPORTINGcalc_date = l_date.date為輸入的日期,months要加或減的月份,也可以用days or years,signum為咚惴?..2、得到本日是第幾周 Returns week for a date*---> get week numberCALL FUNCTION 'DATE_GET_WEEK'EXPORTINGdate = in_budatIMPORTINGweek = l_weekEXCEPTIONSdate_invalid = 1OTHERS = 2.3、得到本周的第一天Return first day for a
内表(internal table)和工作区(work area)的区别
ABAP/4的Internal Table如同其他语言的数组结构,在操作上可以有复制,删除,新增等功能,可以存很多条记录,并且ABAP的这种用法,对行数没什么限制。WORK AREA就是其他语言的结构,象自定义的一个类型一样,但一旦创建一个Internal Table之后,WORK AREA就成了外界跟Intertal Table的交流口,每条记录的进入和取出都得通过它。并且在清除它们的时候要分开来清除。要用 MODIFY 语句更改行 ,请使用:语法MODIFY <itab> [FROM <wa>] [INDEX <idx>].FROM 选项中指定 的工作区域 <wa> 代替 <itab> 中的行。如
簡單的RCF Function
作用:輸入SO和SO的日期得到SO的相關數據後,把數據轉入內表...TABLES項IT_SODATA LIKE ZSDTEST_MAURICE 接數據到內表ZSDTEST_MAURICE為StructureS_VBELN like TVARVCS_ERDAT like TVARVCEXCEPTIONS項NODATAFOUND There are no data fountNODATE Not date程式代碼:[@more@]FUNCTION zsdtest_maurcie.*"----------------------------------------------------------------------*"*"Local Interface:*" TABLES*" IT_SODATA STRUCTURE ZSDTEST_MAURICE*" S_VBELN STRUCTURE TVARVC*" S_ERDAT STRUCTURE T
Find User-exit and BADIs
REPORT z_barry_find_exit_badi NO STANDARD PAGE HEADING .TABLES:tstc,tadir,modsapt,modact,trdir,tfdir,enlfdir,sxs_attrt,tstct.DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.DATA : field1(30).DATA : v_devclass LIKE tadir-devclass.PARAMETERS : p_tcode LIKE tstc-tcode,p_pgmna LIKE tstc-pgmna .DATA wa_tadir TYPE tadir.START-OF-SELECTION. IF NOT p_tcode IS INITIAL. SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode. ELSEIF NOT p_pgmna IS INITIAL. tstc-pgmna = p_pgmna. ENDIF. IF sy-subrc EQ 0
BAPI的简单实现步骤
一,创建Function Module 1,在SM11,创建需要的structure 2,在SE80,建Function group 3,在SE37,创建Function Module Note:一个Function Group只能包含一个BAPI;参数传值;必须有有一个BAPIRETURN类型的EXPORT参数 二,封装 1,在SWO1,建Object Type 2,把Function Module作为一个Method加入,utilities->API Methods->Add Method 3,release Object和Module。使在BAPI Browser 中可以看到。也就是外部能够调用。 三,调用 1,如在另一系统中用ABAP调用,先在SM59中建RFC联到有BAPI的R/3,(ZGOGO) 在SE38的程序中调用,