Home
  Add-Ons for
SAP® systems
  CT-Assist_Module
  Software Assistants
  User comments
  Costs/benefit analysis
  R/3® Integration
  PDF / Download
  CT-Debug & Trace_Module
  R/3® Integration
  PDF / Download
  CT-Codeview & Analyzer
  CT-Test & Optimizer
  eLearning for ABAP™
  CT-Professsional_100+Help
  CT-Professsional_100
  CT-Understanding_100
  CT-Help_Workbench
  ABAP™ Programs
  Shop [SSL]
  Downloads
 

Home > eLearning for ABAP™ > CT-Professional 100+Help > Course 5

CT-Professional_100+Help Version 2.2

for the ABAP™ programming

 

Course 5 "Additional address commands, bit operations, datasets and external performs ..."

Course 5 focuses on external calls and connections of the R/3® system. For example accessing external data on the server and on the client or calling external programs in a static/dynamic way. Further the last details of using field symbols are described and it is shown how to create and generate new reports in an indirect way.

Together with the courses 1 - 5 you should be able to solve some typical interface programming jobs. Also it should be possible to write your own small programming tools which support you at your daily work.

How much learning content is available?

The course 1 consists of approx. 2000 text sections with approx. 8500 lines in total and 70 formal and example reports. The report examples are illustrated through approx. 325 overlay drawings within the syntax explanations and during the debugging session.

The single topics of each lesson are subsequently listed as a continuous text. These are mainly the headings from the single text elements. They give an overview of the volume and the detailed structure of the presented knowledge. Of course these course information are properly arranged in the learning tool. You can determine the processing sequence of the single topics and you can:

follow the "red thread or learning path" or
branch into another learn mode or
call individual courses by using direct access or
display text elements or
access report examples or
use the CT-Debug_Simulator.


A detailed listing of the course content

We subsequently listed the essential contents of each course as continuous text. These are mainly the headings of the single text elements. Please look at the volume of the respective course (... and show us something comparable ...). Of course these course information are properly arranged in the learning tool.

ASSIGN (v1) TO <fs1> -Dynamic addressing ASSIGN (v1) TO <fs1> (syntax description) Name of the first command parameter Location of the declaration Scope of the variable (v1) Global variable (v1) Local variable (v1) Using parentheses Variable type Naming The field length of v1 An example Data field name in capitals Evaluating the return code Name of the field symbol Using angle brackets Naming The practice Scope of the field symbol Global field symbol Local field symbol Addressing of the field symbol TYPE t. LOCAL COPY OF (v1) TO <fs1>. An example LOCAL COPY OF TABLE FIELD (v1) TO <fs1>. An example TABLE FIELD Short revision of "TABLES etab" Searching for the data field (without "TABLE "TABLE FIELD" reduces the effort of association Effect in short form Dynamic association of a data field to ... The first command parameter "(v1)" contains the field name The field symbol is used like a variable Usage of external subroutines The command extensions Type modification and/or local copy Additional modification of the data type Additional creation of a local copy of "(v1)" Allowing field selection only from the TABLES work area Further information concerning the general subject "ASSIGN" Report example 1 - 3 Time of the association Dynamic ASSIGN Application examples Reading data fields from external tables The sorting fields are selected by means of parameters Addressing mode An example: ASSIGN (BOX) TO <FS1). Static ASSIGN (1. Command parameter without brackets) Association of a predefined variable Addressing modes Differentiated selection of the associated data field Which data field types can be associated to field symbols? Local data field (only valid in the Global data field (applicable in the entire Part of an internal structure (field string) Part of an external structure (table) Part of a USING parameter A data field from an external perform ... Data field from a function module ... External subroutines of the function module Which association order in case of identical field name? Command extension "ASSIGN TABLE FIELD (v1) TO No specification of "ASSIGN TABLE FIELD ..." The return code SY-SUBRC The search in the program pool Application options in report examples General information Global and local data field as field symbol Internal and external table structure as field symbol Alternative work area as field symbol Structure symbol and field symbol USING parameter as field symbol Field symbol as connection of main program and subroutine REPORT-LOCAL-GLOBAL ASSIGN Example 1 - 3 Identical data field names Local field symbol "<LOCFS1>" Local command parameter "LOCBOX" Content of the local field symbol <LOCFS1> Content of the global field symbol <FS1> Report examples REPORT-UPRO-ASSIGN The main program Modification of main programs The external subroutine Supplements in a USER program ASSIGN COMPONENT ...-Addresses of structur components Short description ASSIGN COMPONENT x OF STRUCTURE stru1 TO <fs1> An example ASSIGN COMPONENT X OF STRUCTURE T1 COMPONENT X Specification of a number as literal Usage of a variable, that contains a ... Loop processing OF STRUCTURE stru1 Using internal structures only Field strings Internal tables The specification of the structure must occur Not using external tables Location of the declaration Scope of the structure "stru1" Global structure "stru1" Local structure "stru1" Data fields of the structure "stru1" Naming Evaluating the return code Instruction word "TO" <fs1> Name of the field symbol Using angle brackets Naming The practice Scope of the field symbol Global field symbol Local field symbol Addressing of the field symbol TYPE t. An example The general effect of "ASSIGN COMPONENT ..." Formal syntax Formal example A general report example Further information about the general subject "ASSIGN" ASSIGN COMPONENT ...(further details) Dynamic determination of the structure field Only known structures can be used External tables Random access to structure fields The determination of the data field within the structure Index as literal Index in a variable The field symbol is used like a variable Structure symbol Assigning local or global structure fields Global structure = global or local Local structure requires local field symbol The subject of the local or global structure fields Command extensions Type modification Additional modification of the data type Application options in report examples General information Data field selection statically and dynamically Global and local structures Connection of structure symbol and field symbol Example-1 Example-2 The system field SY-INDEX The system field SY-SUBRC Number of loop iterations Example-1 Example-2 Example-3 Report example Step 1 - 5 IF v1 bitOp ...- Der specific IF command Summary description of the function O - One (the 1st operand is tested on "1") Z - Zero (the 1st operand is tested on "0") M - Mixed (the 1st operand is tested on "0 and 1") IF v1 bitOP v2 commands1 ELSE commands2 ENDIF The complete statement for bit comparison with "IF ..." An example: IF bitOp (bit operator) Bit operator: O (One) An example: Result: TRUE Bit operator: Z (Zero) An example: Result: TRUE Bit operator: M (Mixed) An example: Result: TRUE Additional linking through boolean ... Boolean operators An example: Brackets An example: Additional conditions (logical operators) LessLT, < Equal EQ, = Greater GT, > Less or equal LE, <=, =< Not equal NE, <>, >< Greater or equalGE, >=, => An example: commands1 Commands in the IF branch An example: ELSE Omitting "ELSE" commands2 Commands in the ELSE branch ENDIF Further IF-command types Logical comparisons of operands Comparison of the strings Comparison of selection criteria For repetition: "A byte contains 8 bits ..." The byte The binary code Stichworte für Hypertextsuche The binary number The binary value Description of the function of "IF v1 bitOp v2" Testing a bit expression and executing a statement Using only one-byte X-fields as operands Literals are not allowed Determining the condition result Execution of the TRUE- or FALSE commands "O" (stands for ONE) The condition result "Z" (stands for ZERO) The condition result "M"(stands for MIXED) The condition result Possible applications in report examples General information Explanation of the report output Example report O Example 1 - 3 Example report Z Example 1 - 3 Example report M Example 1 - 3 Example report CHANGE-BITS The task The used bit operators The smallest addressable unit: the byte The "positioner" The report output Loop number for each iteration The single processing steps LOOP AT Txxxx .... ENDLOOP- A phase-out model The short description The instruction supplements "LOOP AT Txxx VERSION xtab..." LOOP AT Txxxx ....ENDLOOP. (Syntax explanation) Definition in the report Work area for each external table Automatic filling of the header line Reading a selection of table lines Reading all table entries SHOW Txxxx LOOP AT Txxxx VERSION xtab ...ENDLOOP A look in context at "LOOP AT Txxxx ..." Area of application of the instruction Loop processing Sequential reading of an external table Entering the keywords Commands within the loop Processing sequence End of loop processing No further table data present Abort of loop processing The command supplement " ....VERSION xtab ... " Variable table name Header line with other structure Small rate of occurrence of instruction use Some single items of information onLOOP AT Txxxx. Loop processing The system field SY-TABIX Filling an internal table Field symbols are not permissible Possible applications in report examples General task definition Example report "LOOP AT Txxxx" Task READ-LOOP-ETAB READ LOOP ARGUMENT "LOOP AT Txxxx VERSION xtab" example report TASK Reading of any table with Txxxx Determine table name at runtime Only process header line as C-field Set up sufficiently large header line X-fields-Within the MOVE command The general description of functions ofMOVE v1 TO v2 The transfer of X-fields (individual representation) General information The field contents in the Memory "Revaluation" of a fieldby ... A facit Data entry can occur directly as a half-byte The conversion of an X-field The field contents in the print output The printed output of an X-field Transfer of an X-field to a C-field The target field is too small The target field is too large Every half-byte receives a "full" ... MOVE(002) TO C(006). The source field content is dealt with as a string MOVE(005) TO C(006). Transfer of an X-field to an N-field The target field is too small The target field is too large The onlyexample MOVE(002) TO N(005). The target field must be sufficiently large MOVE(003) TO N(008). If the target field is too small ... MOVE(003) TO N(005). Transfer of an X-field to an I-field The target field is too small The target field is too large The representation form of an I-field The hexa value is transmitted into MOVE(003) TO I(004). An I-field can can also be too small MOVE(005) TO I(004). Transfer of an X-field to a P-field The target field is too small The target field is too large The value to be transmitted into a P-field is a MOVE(003) TO P(007). The unused digit positions in the P-field are MOVE(002) TO P(008). Transfer of an X-field into a D field The target field is too small The target field is too large The hex decimal content is converted into a date MOVE(001) TO D(008). Three Bytes in an X-field are sufficient for the MOVE(003) TO D(008). The source field information is too large for a D MOVE(005) TO D(008). Transfer of an X-field into a T-field Summary The target field is too small The target field is too large A time is determined from a hexadecimal number MOVE(001) TO T(006). Also "realistic" times can be false MOVE(003) TO T(006). Transfer of a X-field into an X-field The target field is too small The target field is too large If the target field is larger than the source field ... MOVE(003) TO X(005). If the target field is too small.... MOVE(008) TO X(005). Transfer of an X-field in an F-field The conversion of a hexadecimal value into a MOVE(002) TO F(008). With an X-field it is possible to transmit MOVE(008) TO F(008). OPEN DATASET name-Preparation file process The short description Writing or read mode selection OPEN DATA SET name1 FOR INPUT OPEN DATA SET name1 FOR OUTPUT OPEN DATA SET name1 FOR APPENDING Mode of processing per mode ... OPEN DATASET name1 ... IN TEXT MODE OPEN DATA SET name1 ... IN BINARY MODE Positioning within the file OPEN DATA SET name1 ... AT POSITION Communication with the operating system OPEN DATASET name1 ... MESSAGE v1 OPEN DATA SET name1 ... TYPE type OPEN DATASET name1 ... FILTER bef1 OPEN DATA SET name1 FOR INPUT IN TEXTMODE MESSAGE msg2 (syntax) OPEN DATA SET name1 FOR INPUT IN TEXTMODE MESSAGE General application OPEN DATA SET DATASET READ CLOSE DATA SET DELETE DATA SET DATASET NEW-PAGE PRINT LN LIST Therequirements of the file name File name as a literal File name as a variable specification The length of the variables Uppercase/lowercase An example: Different norms of the operating system FOR INPUT MODE IN TEXT Msg1 MESSAGE The different command supplements "OPEN DATA SET name ... FOR OUTPUT " OUTPUT OPEN DATA SET name1 FOR .... FOR OUTPUT OPEN DATA SET name1 FOR APPENDING ... FOR APPENDING OPEN DATA SET name1 FOR OUTPUT IN BINARY MODE IN BINARY MODE OPEN DATASET name1 FOR OUTPUT AT POSITION n2 AT POSITION n2 Position specification as a literal Position specification as a variable content The practical importance of positioning Operating system communication OPEN DATA SET name1 FOR OUTPUT MESSAGE msg2. Msg2 MESSAGE OPEN DATA SET name1 ... TYPE type Order1 TYPE FILTER bef1 OPEN DATA SET name1 ... FILTER bef1 General notes on the command "OPEN DATA SET .... " The command "OPEN DATA SET ... " is often A small checklist ... It is to be cleared if an external file should be The number of the files opened simultaneously The Function Class Module "FILE_GET_NAME " Tables for the determination of file names Table "FILE NAME " (type: transparent) Table "FILE PATH " (Type: transparent) Table "FILESYS " (type: transparent) Table "FILE TEXT " (type: transparent) Table "PATH " (Type: transparent) Table "OPSYSTEM " (type: transparent) Transactions SF01 (logical file names) SF02 (logical path) SF03 (physical path) SF04 (syntax groups/operating system) SF05 (syntax groups) SF06 (replacement name for physical file No OPEN command before TRANSFER or READ ? The compatibility of operating system and ... TRANSFER command without previous OPEN command TRANSFER command without OPEN command (file Simultaneously processing the same file Compressed files Authorization check for file access (from release 3.0) S_DATASET S_PATH The SPTH table Possible applications in Report-examples OPEN_000 ( read Test file-1) OPEN_001 (write test file) OPEN_0 02 ( read Test file-2) OPEN_003 (OPEN ... FOR APPENDING ...) OPEN_004 ( TRANSFER ... LENGTH v2) OPEN_005 ( READ DATASET ... LENGTH v2) OPEN_006 (OPEN ... IN BINARY MODE FOR OPEN_007 (OPEN ... IN BINARY MODE FOR OUTPUT) OPEN_008 (OPEN ... IN BINARY .. MODE AT OPEN_009 (OPEN ... FOR OUTPUT FILTER OPEN_010 (OPEN ... FOR INPUT FILTER The responsible use of file names The report description also applies to other learning Example report OPEN_000 The mode The work area The record length Example report OPEN_002 FORM LESEN-DATASET FORM DISPLAY-ISATZ FORM CLOSE DATASET Example report OPEN_003 "CHECK-IF-FILE-EXISTS" If the file is not yet available "OPEN APPENDING" "TRANSFER SUPPLEMENTARY DATA" "CLOSE DATA SET" Example report OPEN_004 "FORM OPEN-CHECK" "FORM TRANSFER FROM-T100 " "FORM CLOSE-DATASET " Example report OPEN_005 Example report OPEN_006 Problem definition "FORM OPEN-BINARY " "FORM EXTENDED-FILE " "FORM CLOSE DATASET " Example report OPEN_007 "FORM TRANSFER-BINARY " Example report OPEN_008 "FORM DETERMINING-BYTE-COUNT " "FORM OPEN-BINARY-WITH-POSITION " OPEN DATA SET FNAME IN BINARY MODE FOR INPUT AT POSITION BYTE NUMBER MSG MESSAGE "FORM LESEN-DATEI-DIREKT " Example report OPEN_009 Example report OPEN_010 PERFORM upro(pname)-external program branch Summary description of "PERFORM upro(progname)..." Static external calls Dynamic external call Type of the data fields (variables, field strings ...) Shared memory area COMMON PART Global memory "PERFORM upro(progname)" (syntax) "PERFORM upro(progname) USING v1 v2 ..." PERFORM The keyword upro(progname) If the subprogram does not exist " ... IF FOUND" If the external report does not exist "USING", "CHANGING", "TABLES", "IF FOUND ... " "... USING p1 p2 ..." "... TABLES itab " "... IF FOUND" "DATA: BEGIN OF COMMON PART name" "DATA: END OF COMMON PART " "FORM upro USING p1 VALUE(p2) CHANGING p3 ..." "FORM upro USING p1 ...." "FORM upro CHANGING p1 ...." "FORM upro VALUE(p1) VALUE(p2) ..." "FORM upro VALUE(p1) CHANGING p2 p3 ..." General notes on the static external PERFORM Additional storage space required The report name and the subprogram name The program name The subprogram name Confusion of variable names and ... Which subprogram is called externally? Frequent error messages Calling a non-existing external ... The length of the COMMON PART is not correct The called program was not found Field symbols in the COMMON PART Number of parameters not matching Possible applications in report examples General information The subprograms The report output Report-CALLER "PERFORM UPRO INTERN-2 ..." "PERFORM UPRO1(progname) USING p1 ..." "PERFORM UPRO INTERN-2 ..." Report-AUFGERUFEN UPRO-1 STEP 1 STEP 2 STEP 3 UPRO-2 Example report-3 Problem definition "PERFORM UPRO INTERN-2 ..." "PERFORM UPRO1(progname) USING field string ..." "PERFORM UPRO-INTERN-2 ..." "PERFORM UNTERPROGRAMM-4(progname) TABLES ..." "PERFORM UNTERPROGRAMM-5 TABLES ..." "PERFORM UPRO-6(progname) USING ..." (single fields, Example report-4 "FORM UPRO-1 USING STRU STRUCTURE FELDLEISTE" "FORM UNTERPROGRAMM-4 TABLES ...." "FORM UPRO-6 USING ..." (single fields, field Example report-5 "PERFORM UPRO-INTERN-2 ..." "PERFORM UPRO1(progname) USING p1 p2 ..." "PERFORM UPRO-XX(prog-y) USING p1 IF FOUND". Example report-6 "FORM UPRO-1 USING p1 VALUE(p2) CHANGING p3" "FORM UPRO-2 USING p11 p22 p33 ...". Report-CALLER "EXPORT v1 ... TO MEMORY." "PERFORM UPRO-0(progname)." "IMPORT v1 ... FROM MEMORY." Report-AUFGERUFEN "FORM UPRO-0." "FORM UPRO-2 USING v1 VALUE(v2) CHANGING v3 ..." REPORT-KLEINE-FALLE-PERFORM "Parameter fields are not passed" "Why are the data areas not modified?" REPORT-CALL-TABLES PERFORM UNTERPROGRAMM-1(external_program) TABLES ... FORM INTERN-2 TABLES XYTAB STRUCTURE ITAB7 PERFORM upro in PROGRAM (name) - dynamicalexternal program call PERFORM upro IN PROGRAM name USING p1 p2 ...; An overview on the subject "external PERFORM" The dynamic external subprogram call The usage of the variables "upro" and "pname" The hint on the static external perform command A summary description The variable specification of subprogram and The subprogram name in a variable Specification as a constant The parameter control in the PERFORM call The type of the data fields Common memory area The COMMON PART The global memory "PERFORM upro IN PROGRAM name USING ..." "PERFORM (upro) IN PROGRAM (name) USING v1 v2 ..." An example (report-1) An example (report-2) PERFORM The keyword (upname) or UPNAME (the name of the Type of the name specification The subprogram name in a variable The subprogram name as a constant If the subprogram does not exist " ... IF FOUND" If the external report does not exist IN PROGRAM (pgname) or PGNAME (the name of the The program name as a variable The program name as a constant USING/CHANGING/TABLES/IF FOUND ... "... USING p1 p2 ... " "... TABLES itab" "... IF FOUND" "DATA: BEGIN OF COMMON PART name" "DATA: END OF COMMON PART " "FORM upro USING p1 VALUE(p2) CHANGING p3 ..." "FORM upro USING p1 ...." "FORM upro CHANGING p1 ...." "FORM upro VALUE(p1) VALUE(p2) ..." "FORM upro VALUE(p1) CHANGING p2 p3 ..." General notes on the dynamic external PERFORM Additional system resources are required The report name and the subprogram name The program name The subprogram name Confusion of variable names and parameter names Which subprogram is called externally? Missing brackets at the variable perform Direct call of the current report Frequent error messages Call of a non-existing external routine The called program was not found The length of the COMMON PART is incorrect Field symbols in the COMMON PART Possible applications in report examples General information The report output Example report-1 "PERFORM (UPNAME) IN PROGRAM (PRNAME) USING ..." Example report-2 Example report-3 "PERFORM (UNAME) IN PROGRAM (PNAME) USING feldleiste" "PERFORM UPRO-INTERN-2 ..." "PERFORM (UNAME) IN PROGRAM (PNAME) TABLES itab1 ..." "PERFORM UNTERPROGRAMM-5 TABLES ..." "PERFORM (UNAME) IN PROGRAM (PNAME) USING diverse" Example report-4 "FORM UPRO-1 USING STRU STRUCTURE FELDLEISTE" "FORM UNTERPROGRAMM-4 TABLES ...." "FORM UPRO-6 USING ..." (single fields, field READ TEXTPOOL - The text elements of a report READ TEXTPOOL name INTO itab LANGUAGE x The syntax and the function of the command A short description The supplementary report elements Report heading (=type R ) Report name (=type T ) Column heading (=type H ) Text elements (= type I ) Selection texts (= type S ) "READ TEXTPOOLname INTO itab LANGUAGE x" (syntax) READ TEXTPOOLname INTO itab LANGUAGE x READ TEXTPOOL name Larger variable field The variable content Notation INTO itab Supplements to the table structures An example: A note: LANGUAGE x Some notes on the "READ TEXTPOOL name INTO itab ..." Text elements per report type TYPE 1 (online report ) TYPE I (include member ) TYPE M (module pool ) TYPE V (posting program ) Further types The "TEXT POOL" data structure TEXT POOL ID (1 byte) R = report heading T = list header H = column heading I = text elements P = selection text TEXTPOOL KEY (3 bytes) TEXT POOL ENTRY (255 bytes) Some command application options in report examples Summary LANGUAGE report READ-REPORT-TEXT ELEMENTS USING 'D' FORM ETERMINE SEQUENCEFORM INFORMATION report Task "READ-REPORT-TRDIR FORM" READ TEXT ELEMENTS REPORT USING REPO LANGUFORM DETERMINE SEQUENCEFORM SORT-ZTAB FORM DISPLAY-TABLE-ZTAB FORM READ DATASET-Read an external file READ DATASET name1 INTO satz2 The syntax definitions of the command "READ DATA SET Fl2 READ DATA SET name1 INTO; LENGTH v1, ...; OPEN DATA A Short description The external data base Before the READ... an "OPEN .. " is Reading data from the CLIENT PC The instruction supplements "... LENGTH v3" "DATASET READ ..." (Syntax explanation) READ DATA SET name1 INTO record2 DATA SET name1 File name as a literal File name as a variable specification The length of the variables Uppercase/lowercase An example: Different standards of the operating systems INTO record2 The variable work area READ DATA SET name1 INTO record2 LENGTH v3 READ DATASET name1 INTO satz2 LENGTH v3 An example: READ Name1 DATA SET INTO work2 LENGTH v3 Some notes on use of the "READ DATASET ...." The commands of file processing in connection OPEN READ TRANSFER CLOSE The problem of the file names The tables of file name control SF01 (logical file names) SF02 (logical path) SF03 (physical path) SF04 (syntax groups/operating system) SF05 (syntax groups) SF06 (replacement name for physical file Internal and external files The agreement with the command "OPEN DATASET... " The input area (work area) The command supplement "READ DATASET ... length v3" The use of internal files on the CLIENT PC Function Module "WS_UPLOAD" EXPORTING FILE NAME = client file name TABLES DATA_TAB = itab1 Function Module "WS_DOWNLOAD" EXPORTING FILE NAME = client file name TABLES DATA_TAB = itab1 The return code SY-SUBRC SY-SUBRC = 0000 SY-SUBRC = 0004 Some possible applications in report examples General information Report READ-SERVER FILE OPEN-DATASET FORMAT READ-DATASET FORMAT DISPLAY-ISATZ FORMAT Report WS_DOWNLOAD UPLOAD-FUNCTION FORMAT DISPLAY-IT100 FORMAT Report OPEN-FALSE The supplement "READ DATASET ... length v2" TRANSFER satz1-Writing in an external file TRANSFER record1 TO Fname2; Copy data of record1 into ernal data; create external data; Generate A brief description The basic command The "OPEN command" as a prerequisite Text mode Binary mode The instruction supplements " ... LENGTH n3". TRANSFER record1 TO Fna me2 (syntax) The length of the transmitted data area MODE TEXT BINARY MODE TO Fname2 TRANSFER record1 TO fname2 LENGTH n3 TRANSFER record1 TO fname2 LENGTH n3 Application information to TRANSFER record1 TO fname2 No OPEN command before the first TRANSFER command? Deletion of a file of the same name BINARY MODE = fixed record length The file processing commands in connection with one another OPEN DATA SET DATASET TRANSFER CLOSE DATA SET DATASET READ DELETE DATA SET INITIALIZATION OPEN DATASET FORMAT CLOSE DATASET FORMAT Report-DOWNLOAD BUILD-IT100 FORMAT DOWNLOAD-FUNCTION FORMAT