- 浏览: 405938 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yiming163:
thank you!
eCATT, LSMW in detail -
泡泡蓝:
把WITH INCLUDES.改成 WITH ANALYSI ...
User Exits,Customer Exits,BAdI and BTE -
泡泡蓝:
王弈争 写道泡泡蓝 写道SCAN ABAP-SOURCE SO ...
User Exits,Customer Exits,BAdI and BTE -
王弈争:
泡泡蓝 写道SCAN ABAP-SOURCE SOURCETA ...
User Exits,Customer Exits,BAdI and BTE -
jgtang82:
泡泡,我没遇到你所说的问题呀
User Exits,Customer Exits,BAdI and BTE
This is a program that I have had kicking around for a couple of years in various incarnations. I really liked the file format that Wolfgang Morgenthaler had, that I updated my program to use the same format. The one thing that this program does, that Wolfgang's does not is to up/download the program documentation as well as source code and program texts. Wolfgang's Home Page - |
Source Code Listing *----------------------------------------------------------------------* * Report: ZKBPROGS * *----------------------------------------------------------------------* * Function : Up/Download ABAP reports complete with texts * *----------------------------------------------------------------------* * Change Log : * * July 5, 1999 * * - Combined existing programs that did the upload and download into* * - one program. * * - Changed format that the reports are saved in to be compatible * * with Wolfgang Morgenthaler's upload/download program(YSTRASN00 * * at www.antarcon.de). Major differences between this program and* * Wolfgang's are: * - this program does not update TRDIR with the * * TRDIR entries that are in the program uploaded. Instead, * * current users stats are used. * * - this program allows selection of reports from a list or * * a single report can be tuped in and uploaded * * - this program also updates TADIR so that a development class* * is assigned to the program * * - this program checks to see if the program already has a * * TRDIR entry, and if it does, warns the user * * - this program will save/restore the program documenation too* * * * * * * *----------------------------------------------------------------------* REPORT ZKBPROGS NO STANDARD PAGE HEADING LINE-SIZE 255. *----------------------------------------------------------------------* * Declare Database Objects * *----------------------------------------------------------------------* tables: DOKIL, TRDIR. *----------------------------------------------------------------------* * Constants* CONSTANTS: MC_TRDIR_IDENTIFIER(72) TYPE C VALUE '%&%& RDIR', MC_REPORT_IDENTIFIER(72) TYPE C VALUE '%&%& REPO', MC_TEXT_IDENTIFIER(72) TYPE C VALUE '%&%& TEXP', MC_THEAD_IDENTIFIER(72) TYPE C VALUE '%&%& HEAD', MC_DOC_IDENTIFIER(72) TYPE C VALUE '%&%& DOKL', MC_TRDIR_SHORT(4) TYPE C VALUE 'RDIR', MC_REPORT_SHORT(4) TYPE C VALUE 'REPO', MC_TEXT_SHORT(4) TYPE C VALUE 'TEXP', MC_THEAD_SHORT(4) TYPE C VALUE 'HEAD', MC_DOC_SHORT(4) TYPE C VALUE 'DOKP'. *----------------------------------------------------------------------* *----------------------------------------------------------------------* * Declare Module level data structures * *----------------------------------------------------------------------* DATA: BEGIN OF MTAB_PROGRAM_SOURCE OCCURS 0, LINE(72) TYPE C, END OF MTAB_PROGRAM_SOURCE. DATA: MTAB_PROGRAM_TRDIR LIKE TRDIR OCCURS 0 WITH HEADER LINE. DATA: MTAB_PROGRAM_TEXTS LIKE TEXTPOOL OCCURS 0 WITH HEADER LINE. DATA: MSTR_THEAD LIKE THEAD. DATA: BEGIN OF MTAB_PROGRAM_FILE OCCURS 0, LINE(275) TYPE C, END OF MTAB_PROGRAM_FILE. DATA: BEGIN OF MTAB_DIRECTORY OCCURS 0, NAME LIKE TRDIR-NAME, DESC(72) TYPE C, SAVENAME LIKE RLGRAP-FILENAME, END OF MTAB_DIRECTORY. DATA: BEGIN OF MTAB_PROGRAM_DOCUMENTATION OCCURS 0, LINE(255) TYPE C, END OF MTAB_PROGRAM_DOCUMENTATION. *----------------------------------------------------------------------* * Selection Screen * *----------------------------------------------------------------------* *-- Options for upload/download of programs SELECTION-SCREEN BEGIN OF BLOCK FRM_OPTIONS WITH FRAME TITLE TEXT-UDL. PARAMETERS: RB_DOWN RADIOBUTTON GROUP UDL DEFAULT 'X'. " Download reports SELECTION-SCREEN BEGIN OF BLOCK FRM_TRDIR WITH FRAME TITLE TEXT-DIR. SELECT-OPTIONS: S_NAME FOR TRDIR-NAME, " Program Name S_SUBC FOR TRDIR-SUBC " Program Type DEFAULT 'F' OPTION EQ SIGN E," Exclude Functions by default S_CNAM FOR TRDIR-CNAM " Created by DEFAULT SY-UNAME, S_UNAM FOR TRDIR-UNAM, " Last Changed by S_CDAT FOR TRDIR-CDAT, " Creation date S_UDAT FOR TRDIR-UDAT. " Last update date SELECTION-SCREEN END OF BLOCK FRM_TRDIR. *-- Options for uploading programs PARAMETERS: RB_UP RADIOBUTTON GROUP UDL. " Upload reports SELECTION-SCREEN BEGIN OF BLOCK FRM_UPLOAD WITH FRAME TITLE TEXT-UPL. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(29) TEXT-SNG. PARAMETERS: RB_FILE RADIOBUTTON GROUP HOW DEFAULT 'X'. SELECTION-SCREEN COMMENT 33(42) TEXT-FNA. SELECTION-SCREEN END OF LINE. PARAMETERS: RB_LIST RADIOBUTTON GROUP HOW. SELECTION-SCREEN END OF BLOCK FRM_UPLOAD. SELECTION-SCREEN END OF BLOCK FRM_OPTIONS. *-- Options for up/downloading programs SELECTION-SCREEN BEGIN OF BLOCK FRM_FILEN WITH FRAME TITLE TEXT-FIL. PARAMETERS: RB_DOS RADIOBUTTON GROUP FIL DEFAULT 'X', " Save to local RB_UNIX RADIOBUTTON GROUP FIL, " Save to UNIX P_PATH LIKE RLGRAP-FILENAME " Path to save files to DEFAULT 'c:\temp\'. SELECTION-SCREEN END OF BLOCK FRM_FILEN. AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-LOW. CALL FUNCTION 'F4_PROGRAM' EXPORTING OBJECT = S_NAME-LOW SUPPRESS_SELECTION = 'X' IMPORTING RESULT = S_NAME-LOW EXCEPTIONS OTHERS = 1. AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-HIGH. CALL FUNCTION 'F4_PROGRAM' EXPORTING OBJECT = S_NAME-HIGH SUPPRESS_SELECTION = 'X' IMPORTING RESULT = S_NAME-HIGH EXCEPTIONS OTHERS = 1. AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-LOW. PERFORM GET_NAME USING 'S_UNAM-LOW' CHANGING S_UNAM-LOW. AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-HIGH. PERFORM GET_NAME USING 'S_UNAM-HIGH' CHANGING S_UNAM-HIGH. AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-LOW. PERFORM GET_NAME USING 'S_CNAM-LOW' CHANGING S_CNAM-LOW. AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-HIGH. PERFORM GET_NAME USING 'S_CNAM-HIGH' CHANGING S_CNAM-HIGH. TOP-OF-PAGE. IF RB_LIST = 'X'. FORMAT COLOR COL_HEADING. NEW-LINE. WRITE: AT 3 TEXT-H01, AT 15 TEXT-H03. FORMAT COLOR OFF. ENDIF. AT LINE-SELECTION. CHECK RB_LIST = 'X'. " only do in list mode READ LINE SY-CUROW FIELD VALUE MTAB_DIRECTORY-SAVENAME. *-- Read file into an internal table PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE USING MTAB_DIRECTORY-SAVENAME. *-- Split table into TADIR entry, report lines, and report text PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE MTAB_PROGRAM_SOURCE MTAB_PROGRAM_TEXTS MTAB_PROGRAM_DOCUMENTATION CHANGING TRDIR MSTR_THEAD. *-- Save all of the data PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE MTAB_PROGRAM_TEXTS MTAB_PROGRAM_DOCUMENTATION USING TRDIR MSTR_THEAD. *----------------------------------------------------------------------* * Start of processing * *----------------------------------------------------------------------* START-OF-SELECTION. FORMAT COLOR COL_NORMAL. IF RB_DOWN = 'X'. PERFORM DOWNLOAD_REPORTS. ELSEIF RB_UP = 'X'. PERFORM UPLOAD_REPORTS. ENDIF. END-OF-SELECTION. IF RB_DOWN = 'X'. CONCATENATE P_PATH 'directory.txt' INTO P_PATH. PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_DIRECTORY USING P_PATH. ENDIF. *---------------------------------------------------------------------* * FORM UPLOAD_REPORTS * *---------------------------------------------------------------------* FORM UPLOAD_REPORTS. *-- Can upload a reports entered in selection criteria or *-- select from a list. List can be from index.txt in same directory *-- (created by the download) or by reading the first line of each file *-- in the directory. IF RB_FILE = 'X'. " Upload single program from a file *-- Read file into an internal table PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE USING P_PATH. *-- Split table into TADIR entry, report lines, and report text PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE MTAB_PROGRAM_SOURCE MTAB_PROGRAM_TEXTS MTAB_PROGRAM_DOCUMENTATION CHANGING TRDIR MSTR_THEAD. *-- Save all of the data PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE MTAB_PROGRAM_TEXTS MTAB_PROGRAM_DOCUMENTATION USING TRDIR MSTR_THEAD. ELSEIF RB_LIST = 'X'. " Show list for user to choose from *-- get list of report names/descriptions from directory text CONCATENATE P_PATH 'directory.txt' INTO P_PATH. PERFORM READ_REPORT_FROM_DISK TABLES MTAB_DIRECTORY USING P_PATH. SORT MTAB_DIRECTORY. *-- Write out list of report names/descriptions LOOP AT MTAB_DIRECTORY. WRITE: / MTAB_DIRECTORY-NAME UNDER TEXT-H01, MTAB_DIRECTORY-DESC UNDER TEXT-H03, MTAB_DIRECTORY-SAVENAME. ENDLOOP. *-- Process user selections for reports to upload. ENDIF. ENDFORM. " upload_reports *---------------------------------------------------------------------* * FORM DOWNLOAD_REPORTS * *---------------------------------------------------------------------* * From the user selections, get all programs that meet the * * criteria, and save them in ftab_program_directory. * * Also save the report to disk. * *---------------------------------------------------------------------* FORM DOWNLOAD_REPORTS. DATA: LC_FULL_FILENAME LIKE RLGRAP-FILENAME. *-- The table is put into an internal table because the program will *-- abend if multiple transfers to a dataset occur within a SELECT/ *-- ENDSELCT (tested on 3.1H) SELECT * FROM TRDIR INTO TABLE MTAB_PROGRAM_TRDIR WHERE NAME IN S_NAME AND SUBC IN S_SUBC AND CNAM IN S_CNAM AND UNAM IN S_UNAM AND CDAT IN S_CDAT AND UDAT IN S_UDAT. LOOP AT MTAB_PROGRAM_TRDIR. *-- Clear out text and source code tables CLEAR: MTAB_PROGRAM_FILE, MTAB_PROGRAM_SOURCE, MTAB_PROGRAM_TEXTS, MTAB_PROGRAM_DOCUMENTATION. REFRESH: MTAB_PROGRAM_FILE, MTAB_PROGRAM_SOURCE, MTAB_PROGRAM_TEXTS, MTAB_PROGRAM_DOCUMENTATION. *-- Get the report READ REPORT MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_SOURCE. *-- Get the text for the report READ TEXTPOOL MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_TEXTS. *-- Get the documentation for the report CLEAR DOKIL. SELECT * UP TO 1 ROWS FROM DOKIL WHERE ID = 'RE' AND OBJECT = MTAB_PROGRAM_TRDIR-NAME AND LANGU = SY-LANGU AND TYP = 'E' ORDER BY VERSION DESCENDING. ENDSELECT. *-- Documentation exists for this object IF SY-SUBRC = 0. CALL FUNCTION 'DOCU_READ' EXPORTING ID = DOKIL-ID LANGU = DOKIL-LANGU OBJECT = DOKIL-OBJECT TYP = DOKIL-TYP VERSION = DOKIL-VERSION IMPORTING HEAD = MSTR_THEAD TABLES LINE = MTAB_PROGRAM_DOCUMENTATION EXCEPTIONS OTHERS = 1. ENDIF. *-- Put the report code and texts into a single file *-- Put the identifier line in so that the start of the TRDIR line *-- is marked CONCATENATE MC_TRDIR_IDENTIFIER MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_FILE-LINE. APPEND MTAB_PROGRAM_FILE. *-- Add the TRDIR line MTAB_PROGRAM_FILE-LINE = MTAB_PROGRAM_TRDIR. APPEND MTAB_PROGRAM_FILE. *-- Put the identifier line in so that the start of the report code *-- is marked CONCATENATE MC_REPORT_IDENTIFIER MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_FILE-LINE. APPEND MTAB_PROGRAM_FILE. *-- Add the report code LOOP AT MTAB_PROGRAM_SOURCE. MTAB_PROGRAM_FILE = MTAB_PROGRAM_SOURCE. APPEND MTAB_PROGRAM_FILE. ENDLOOP. *-- Put the identifier line in so that the start of the report text *-- is marked CONCATENATE MC_TEXT_IDENTIFIER MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_FILE-LINE. APPEND MTAB_PROGRAM_FILE. *-- Add the report texts LOOP AT MTAB_PROGRAM_TEXTS. MTAB_PROGRAM_FILE = MTAB_PROGRAM_TEXTS. APPEND MTAB_PROGRAM_FILE. ENDLOOP. *-- Put the identifier line in so that the start of the THEAD record *-- is marked CONCATENATE MC_THEAD_IDENTIFIER MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_FILE-LINE. APPEND MTAB_PROGRAM_FILE. MTAB_PROGRAM_FILE = MSTR_THEAD. APPEND MTAB_PROGRAM_FILE. *-- Put the identifier line in so that the start of the report *-- documentation is marked CONCATENATE MC_DOC_IDENTIFIER MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_FILE-LINE. APPEND MTAB_PROGRAM_FILE. *-- Add the report documentation LOOP AT MTAB_PROGRAM_DOCUMENTATION. MTAB_PROGRAM_FILE = MTAB_PROGRAM_DOCUMENTATION. APPEND MTAB_PROGRAM_FILE. ENDLOOP. *-- Make the fully pathed filename that report will be saved to CONCATENATE P_PATH MTAB_PROGRAM_TRDIR-NAME '.txt' INTO LC_FULL_FILENAME. PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_PROGRAM_FILE USING LC_FULL_FILENAME. *-- Write out message with Program Name/Description READ TABLE MTAB_PROGRAM_TEXTS WITH KEY ID = 'R'. IF SY-SUBRC = 0. MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME. MTAB_DIRECTORY-DESC = MTAB_PROGRAM_TEXTS-ENTRY. MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME. APPEND MTAB_DIRECTORY. WRITE: / MTAB_PROGRAM_TRDIR-NAME, MTAB_PROGRAM_TEXTS-ENTRY(65) COLOR COL_HEADING. ELSE. MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME. MTAB_DIRECTORY-DESC = 'No description available'. MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME. APPEND MTAB_DIRECTORY. WRITE: / MTAB_PROGRAM_TRDIR-NAME. ENDIF. ENDLOOP. ENDFORM. " BUILD_PROGRAM_DIRECTORY *---------------------------------------------------------------------* * FORM SAVE_TABLE_TO_FILE * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> FTAB_TABLE * * --> F_FILENAME * *---------------------------------------------------------------------* FORM SAVE_TABLE_TO_FILE TABLES FTAB_TABLE USING F_FILENAME. IF RB_DOS = 'X'. " Save file to presentation server CALL FUNCTION 'WS_DOWNLOAD' EXPORTING FILENAME = F_FILENAME FILETYPE = 'ASC' TABLES DATA_TAB = FTAB_TABLE EXCEPTIONS OTHERS = 4. IF SY-SUBRC NE 0. WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE, F_FILENAME COLOR COL_NEGATIVE. ENDIF. ELSE. " Save file to application server OPEN DATASET F_FILENAME FOR OUTPUT IN TEXT MODE. IF SY-SUBRC = 0. LOOP AT FTAB_TABLE. TRANSFER FTAB_TABLE TO F_FILENAME. IF SY-SUBRC NE 0. WRITE: / 'Error writing record to file;' COLOR COL_NEGATIVE, F_FILENAME COLOR COL_NEGATIVE. ENDIF. ENDLOOP. ELSE. WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE, F_FILENAME COLOR COL_NEGATIVE. ENDIF. ENDIF. " End RB_DOS ENDFORM. " SAVE_PROGRAM *---------------------------------------------------------------------* * FORM READ_REPORT_FROM_DISK * *---------------------------------------------------------------------* * Read report into internal table. Can read from local or * * remote computer * *---------------------------------------------------------------------* FORM READ_REPORT_FROM_DISK TABLES FTAB_TABLE USING F_FILENAME. DATA: LC_MESSAGE(128) TYPE C. CLEAR FTAB_TABLE. REFRESH FTAB_TABLE. IF RB_DOS = 'X'. TRANSLATE F_FILENAME USING '/\'. " correct slash for Dos PC file CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME = F_FILENAME FILETYPE = 'ASC' TABLES DATA_TAB = FTAB_TABLE EXCEPTIONS CONVERSION_ERROR = 1 FILE_OPEN_ERROR = 2 FILE_READ_ERROR = 3 INVALID_TABLE_WIDTH = 4 INVALID_TYPE = 5 NO_BATCH = 6 UNKNOWN_ERROR = 7 OTHERS = 8. IF SY-SUBRC >< 0. WRITE: / 'Error reading file from local PC' COLOR COL_NEGATIVE. ENDIF. ELSEIF RB_UNIX = 'X'. TRANSLATE F_FILENAME USING '\/'. " correct slash for unix OPEN DATASET F_FILENAME FOR INPUT MESSAGE LC_MESSAGE IN TEXT MODE. IF SY-SUBRC = 0. DO. READ DATASET F_FILENAME INTO FTAB_TABLE. IF SY-SUBRC = 0. APPEND FTAB_TABLE. ELSE. EXIT. ENDIF. ENDDO. CLOSE DATASET F_FILENAME. ELSE. WRITE: / 'Error reading file from remote computer' COLOR COL_NEGATIVE, / LC_MESSAGE, / F_FILENAME. SY-SUBRC = 4. ENDIF. ENDIF. ENDFORM. " READ_REPORT_FROM_DISK *---------------------------------------------------------------------* * FORM SPLIT_INCOMING_FILE * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> FTAB_PROGRAM_FILE * * --> FTAB_PROGRAM_SOURCE * * --> ` * * --> FTAB_PROGRAM_TEXTS * *---------------------------------------------------------------------* FORM SPLIT_INCOMING_FILE TABLES FTAB_PROGRAM_FILE STRUCTURE MTAB_PROGRAM_FILE FTAB_PROGRAM_SOURCE STRUCTURE MTAB_PROGRAM_SOURCE FTAB_PROGRAM_TEXTS STRUCTURE MTAB_PROGRAM_TEXTS FTAB_PROGRAM_DOCUMENTATION STRUCTURE MTAB_PROGRAM_DOCUMENTATION CHANGING FSTR_TRDIR FSTR_THEAD. DATA: LC_DATATYPE(4) TYPE C, " Type of data, REPO, TEXP, RDIR LC_PROGRAM_FILE LIKE MTAB_PROGRAM_FILE. LOOP AT FTAB_PROGRAM_FILE. LC_PROGRAM_FILE = FTAB_PROGRAM_FILE. CASE LC_PROGRAM_FILE(9). WHEN MC_TRDIR_IDENTIFIER. LC_DATATYPE = MC_TRDIR_SHORT. WHEN MC_REPORT_IDENTIFIER. LC_DATATYPE = MC_REPORT_SHORT. WHEN MC_TEXT_IDENTIFIER. LC_DATATYPE = MC_TEXT_SHORT. WHEN MC_DOC_IDENTIFIER. LC_DATATYPE = MC_DOC_SHORT. WHEN MC_THEAD_IDENTIFIER. LC_DATATYPE = MC_THEAD_SHORT. WHEN OTHERS. " Actual contents of report, trdir, or text CASE LC_DATATYPE. WHEN MC_TRDIR_SHORT. FSTR_TRDIR = FTAB_PROGRAM_FILE. WHEN MC_REPORT_SHORT. FTAB_PROGRAM_SOURCE = FTAB_PROGRAM_FILE. APPEND FTAB_PROGRAM_SOURCE. WHEN MC_TEXT_SHORT. FTAB_PROGRAM_TEXTS = FTAB_PROGRAM_FILE. APPEND FTAB_PROGRAM_TEXTS. WHEN MC_THEAD_SHORT. FSTR_THEAD = FTAB_PROGRAM_FILE. WHEN MC_DOC_SHORT. FTAB_PROGRAM_DOCUMENTATION = FTAB_PROGRAM_FILE. APPEND FTAB_PROGRAM_DOCUMENTATION. ENDCASE. ENDCASE. ENDLOOP. ENDFORM. " SPLIT_INCOMING_FILE *---------------------------------------------------------------------* * FORM INSERT_NEW_REPORT* *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> FTAB_PROGRAM_SOURCE * * --> FTAB_PROGRAM_TEXTS * * --> F_TRDIR * *---------------------------------------------------------------------* FORM INSERT_NEW_REPORT TABLES FTAB_PROGRAM_SOURCE STRUCTURE MTAB_PROGRAM_SOURCE FTAB_PROGRAM_TEXTS STRUCTURE MTAB_PROGRAM_TEXTS FTAB_PROGRAM_DOCUMENTATION STRUCTURE MTAB_PROGRAM_DOCUMENTATION USING FSTR_TRDIR LIKE TRDIR FSTR_THEAD LIKE MSTR_THEAD. DATA: LC_OBJ_NAME LIKE E071-OBJ_NAME, LC_LINE2(40) TYPE C, LC_ANSWER(1) TYPE C. *-- read trdir to see if the report already exists, if it does, prompt *-- user to overwrite or abort. SELECT SINGLE * FROM TRDIR WHERE NAME = FSTR_TRDIR-NAME. IF SY-SUBRC = 0. " Already exists CONCATENATE 'want to overwrite report' FSTR_TRDIR-NAME INTO LC_LINE2 SEPARATED BY SPACE. CONCATENATE LC_LINE2 '?' INTO LC_LINE2. CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' EXPORTING DEFAULTOPTION = 'N' TEXTLINE1 = 'The selected report already exists, do you' TEXTLINE2 = LC_LINE2 TITEL = 'Report already exists' CANCEL_DISPLAY = SPACE IMPORTING ANSWER = LC_ANSWER EXCEPTIONS OTHERS = 1. ELSE. LC_ANSWER = 'J'. ENDIF. IF LC_ANSWER = 'J'. *-- Create the TADIR entry. (TRDIR entry created by INSERT REPORT) LC_OBJ_NAME = TRDIR-NAME. CALL FUNCTION 'TR_TADIR_POPUP_ENTRY_E071' EXPORTING WI_E071_PGMID = 'R3TR' WI_E071_OBJECT = 'PROG' WI_E071_OBJ_NAME = LC_OBJ_NAME WI_TADIR_DEVCLASS = '$TMP' EXCEPTIONS EXIT = 3 OTHERS = 4. IF SY-SUBRC = 0. *-- Create Report INSERT REPORT FSTR_TRDIR-NAME FROM FTAB_PROGRAM_SOURCE. *-- Create Texts INSERT TEXTPOOL FSTR_TRDIR-NAME FROM FTAB_PROGRAM_TEXTS LANGUAGE SY-LANGU. *-- Save Documentation CALL FUNCTION 'DOCU_UPDATE' EXPORTING HEAD = FSTR_THEAD STATE = 'A' TYP = 'E' VERSION = '1' TABLES LINE = FTAB_PROGRAM_DOCUMENTATION EXCEPTIONS OTHERS = 1. ELSE. WRITE: / 'Error updating the TADIR entry' COLOR COL_NEGATIVE, 'Program' COLOR COL_NEGATIVE INTENSIFIED OFF, FSTR_TRDIR-NAME, 'was not loaded into SAP.' COLOR COL_NEGATIVE INTENSIFIED OFF. ENDIF. ELSE. WRITE: / FSTR_TRDIR-NAME COLOR COL_NEGATIVE, 'was not uploaded into SAP. Action cancelled by user' COLOR COL_NEGATIVE INTENSIFIED OFF. ENDIF. ENDFORM. " INSERT_NEW_REPORT *---------------------------------------------------------------------* * FORM GET_NAME * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> VALUE(F_FIELD) * * --> F_NAME * *---------------------------------------------------------------------* FORM GET_NAME USING VALUE(F_FIELD) CHANGING F_NAME. DATA: LTAB_FIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE, LC_PROG LIKE D020S-PROG, LC_DNUM LIKE D020S-DNUM. TRANSLATE F_FIELD TO UPPER CASE. refresh ltab_fields. LTAB_FIELDS-FIELDNAME = F_FIELD. append ltab_fields. LC_PROG = SY-REPID . LC_DNUM = SY-DYNNR . CALL FUNCTION 'DYNP_VALUES_READ' EXPORTING DYNAME = LC_PROG DYNUMB = LC_DNUM TABLES dynpfields = ltab_fields EXCEPTIONS OTHERS = 01. read table ltab_fields index 1. IF SY-SUBRC EQ 0. F_NAME = LTAB_FIELDS-FIELDVALUE. refresh ltab_fields. ENDIF. CALL FUNCTION 'F4_USER' EXPORTING OBJECT = F_NAME IMPORTING RESULT = F_NAME. ENDFORM. " GET_NAME Program Texts DIR File Download Options (File Selection) FIL File Options FNA Enter filename below (under File Options) H01 Prog Name H03 Program Description SNG Upload a single file UDL Upload to SAP/Download from SAP UPL File Upload Options R Backup/Restore program source code with texts P_PATH Path to save programs to RB_DOS Files on local computer RB_DOWN Download Programs RB_FILE Upload a single file RB_LIST Select program(s) from a list RB_UNIX Files on remote computer RB_UP Upload Programs to SAP S_CDAT Date Created S_CNAM Created by UserID S_NAME Program Name S_SUBC Program Type S_UDAT Date Changed S_UNAM Last Changed by UserID |
发表评论
-
Sap Number Range Object (SNRO)
2010-12-21 16:11 1828Brief Example http://www.sapte ... -
SAP R/3 Security Tables
2010-12-09 15:27 1616Below the list of SAP R/3 Sec ... -
Class def & impl, Inherit & overwriting, interface & using it, event & handler
2010-12-08 10:05 1148Below codes is a simply and rou ... -
IDOC_INPUT_ORDERS with error msg RV45A-VBAP_SELKZ (2) is not input field
2010-11-08 14:51 2403[Issue] Hi I am creating a mul ... -
SAP ALV Trees
2010-11-05 14:07 2150BCALV_GRID_DND_TREE ALV Grid: D ... -
Creating a SAP shortcut for any transaction and sending it by mail
2010-11-02 11:12 2002Refer to SAP wiki: http://wiki. ... -
Note 573128 - Debugging programs in the background
2010-11-01 20:13 1176Note 573128 - Debugging program ... -
Function Module related on Date calculations (ZT)
2010-07-20 17:00 1690http://wiki.sdn.sap.com/wiki/di ... -
SAP SDN Interesting Topics
2010-06-29 09:48 984Web Dynpro ABAP Performance Too ... -
SE16N &SAP_EDIT, ICON at Selection Screen
2010-06-12 17:35 1732摘录From blog of 翱翔云天 1. SE16N & ... -
Debug background processes, update/system code,model dialog...
2009-12-18 13:55 1197How do I debug running backgrou ... -
ABAP character variables vs. string variables
2009-11-16 11:23 2946Chinese Version: http://blog.cs ... -
ECC6 ALV Dump
2009-10-21 15:20 1032[Dump] 1. Use system reserved ... -
Simple Transfermation Program
2009-08-07 23:42 1994Have you been requested to gene ... -
eCATT, LSMW in detail
2009-02-15 10:14 3451eCATT : http://sap.iteye.com/bl ... -
Trigger ABAP program using UNIX script
2009-01-09 13:27 22421. Create a batch job in SM37 f ... -
How to cancel active job, del/change schedule job
2008-12-26 09:56 2305if the job is active and you wa ... -
How to Run UNIX script from ABAP?
2008-12-19 12:52 2526Look at SM69, SM49 and Functio ... -
REUSE_ALV_GRID_DISPLAY事件子过程和cl_gui_grid类的事件对应关系
2008-12-04 18:46 3855一、SLIS定义的ALV的事件名称* Eventsslis_e ... -
DDIC info related tables
2008-12-03 09:58 1942Data elementsDD04L Data elem ...
相关推荐
本资源“abap绝对Code合集”显然是一个包含大量SAP ABAP相关的T-CODE(Transaction Code)集合,这对于SAP系统的管理员、开发者和学习者来说是极其宝贵的资料。 T-CODEs是SAP中的事务代码,是用户与SAP系统交互的...
>| 此代码可以实现ABAP代码的批量下载。 >| 将TXT中的代码复制到开发环境中,按照选择画面的逻辑可以直接将代码全部download成本地文件。 >| Author: Copyright (C) 1998 E.G.Mellodew
这个名为"ABAP源代码-初学者参考 abap source codes.rar"的压缩包为初学者提供了一些基础的ABAP代码示例,帮助他们更好地理解和学习ABAP编程。 1. **S_FLIGHT_MODEL_DATA_GENERATOR.txt**:这可能包含一个用于生成...
ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发和维护SAP系统中的业务应用程序。"AbapSourceCode: Abap程序存储库"是一个集合了各种ABAP源代码的资源库,它提供了对...
以下项目是ABAP材料的一部分 由Ridho Novembri创建,2014年1月 定义数据第一部分 定义数据第二部分 分配,转换,计算 通用控制声明 内部表 提前内部表1 提前内部表2 写陈述 格式化技术1 格式化技术2 模块化...
ABAP_SOURCE是一个与ABAP(Advanced Business Application Programming)编程语言相关的源代码备份。在SAP系统中,ABAP是核心的开发语言,用于构建企业级业务应用。这个压缩包文件"ABAP_SOURCE-master"可能包含了...
// mode and MIME type are registered automaticallyimport 'codemirror-abap' ; 或者import CodeMirror from 'codemirror' ;import { abapMode } from 'codemirror-abap' ;// explicitly register modeCodeMirror ...
### SAP ABAP 常用T-CODE 在SAP系统中,T-CODE(Transaction Code)是用户执行特定操作时使用的代码。这些代码能够直接引导用户到预定义的业务功能或工具,对于SAP ABAP开发人员而言,熟练掌握一系列关键的T-CODE尤...
它有两种主要方法:EXCEL_FILE_UPLOAD 和 EXCEL_FILE_DOWNLOAD。 在我看来,这是迄今为止我遇到的最灵活、最稳定、速度最快的一种。 特别有用的是该类能够正确处理包含 CR、LF 和 TAB 的字符字段的上传和下载。 我...
This documentation describes the syntax and meaning of the keywords of the ABAP language and its object-oriented part ABAP Objects. Alongside this, language frameworks and the associated system ...
7. **Classes and Objects**:面向对象编程在ABAP中也得到了支持,涉及类的定义、属性、方法、继承和多态性。 8. **Database Access**:通过`SELECT`语句进行数据库查询,以及使用`OPEN DATASET`和`READ TABLE`操作...
这是Informatica下ERP sap数据抽取中发布mapping的ABAP CODE的生成与部署方法
SAP Code Inspector / ABAP测试座舱(SCI / ATC)的开源检查 有关在ABAP平台之外运行持续集成的信息,请参见 安装 使用在线或离线选项通过安装 激活SCI中的检查(取决于版本) 转到->管理->测试 代码检查器->管理...
ABAP程序批量下载工具(原名:Mass download version 1.5.0)是一款专为SAP开发人员设计的实用工具,旨在帮助用户批量下载ABAP环境中的各种对象,如程序、函数、数据字典定义等至展示服务器上。该版本支持递归搜索...
### ABAP Code 儲存操作手冊:深入解析与扩展知识 #### 一、ABAP Code 储存概述 ABAP(Advanced Business Application Programming)是SAP系统中广泛使用的编程语言,主要用于开发和维护SAP应用程序。在企业级应用...
这个"ABAP Code Sample.zip"文件很可能是包含了一系列的ABAP代码示例,帮助学习者或开发者理解并掌握ABAP编程的核心概念和技巧。 在ABAP编程中,以下几个关键知识点是至关重要的: 1. **数据类型**:ABAP有多种...
以下是对"ABAP Workbench Concepts and Tools"的详细解析: ### 1. ABAP Workbench介绍 ABAP工作台是SAP NetWeaver的一部分,它提供了完整的开发工具集,包括源代码编辑器、调试器、测试工具、版本控制和项目管理等...
Real-world examples, source code, and professional advice from the experienced authors enhance and support each topic. Advanced ABAP/4 Programming for SAP also includes step-by-step instructions for ...
根据给定的文件信息,以下是对ABAP数据字典及相关概念的详细解释: ### ABAP 数据字典(DATADICTIONARY) #### 什么是数据字典? 数据字典是一种中心信息库,它为数据管理系统中的数据提供了核心信息。其主要功能...
By dragging and dropping the custom control and exit button onto the screen, we can define the ok_code and other operations. 知识点2:定义屏幕的 PAI 和 PBO 在定义屏幕的 PAI 和 PBO 时,需要在主程序...