Difference in SY-SUBRC
Can anyone tell me the difference between these two:
<i><b>if sy-subrc = 0. and if sy-subrc is initial.</b></i>
Initial is not right statement to use but in my code when checking using initial, there is no syntax error, moreover the code was getting me the right data. When i used = 0 i had another prob.
Any reason?
Hi Kunal,
If u have code like..
read statement.
if sy-subrc = 0
stmt1
endif.
This means, if ur read is successfull then only stmt1 will execute.
if sy-subrc is initial means if there is no data for sy-subrc.
Better try to post pseudo code.
Hope this helps.
KRREDDY
Similar Messages
-
Difference between SY-SUBRC EQ 0 and SY-SUBRC EQ ' 0 '
Dear All,
I am not from abap background.
I have a simple question.
what is the difference between sy-subrc eq 0 and sy-subrc eq '0'
How does it impact a statement like this for example
SELECT /BIC/ZAGENT /BIC/ZBATCH_MO /BIC/ZDOC_NUM /BIC/ZCUSTOMER
/BIC/ZSTORE /BIC/ZLINE_NUM /BIC/ZMATERIAL /BIC/ZBARCODE
FROM /BIC/AZO_AMVN100
INTO CORRESPONDING FIELDS OF TABLE it_aquisition
WHERE /BIC/ZAGENT EQ SOURCE_FIELDS-/BIC/ZAGENT
AND /BIC/ZDOC_NUM EQ SOURCE_FIELDS-/BIC/ZDOC_NUM
AND /BIC/ZOCFLAG = '1'.
if sy-subrc EQ '0'.
SELECT SINGLE /BIC/ZDOC_NUM FROM /BIC/AZO_PMVN300
INTO v_docnum
WHERE /BIC/ZDOC_NUM EQ SOURCE_FIELDS-/BIC/ZDOC_NUM
AND /BIC/ZAGENT EQ SOURCE_FIELDS-/BIC/ZAGENT
kindly help me with this.
Pleae do a little more research before posting questions here...even if you are new to ABAP.
Edited by: kishan P on Aug 24, 2010 10:00 AMHi,
Please refer [Wiki post|http://wiki.sdn.sap.com/wiki/display/ABAP/Sy-Subrc].
hope it help you,
regards, -
Hi,
Is there a difference between using SY-SUBRC or SYST-SUBRC?
That is, is that a difference between the following?...
IF sy-subrc <> 0.
ENDIF.
and
IF syst-subrc <> 0.
ENDIF.
If there is a differenc,whice is hte preferred/recommended method?
I have see both used and I have not noticed any difference. Just want an opinion from the ABAP community.
Thanks,
NaingHi Naing,
There is a difference, not in it's usage, but conceptually.
SYST is an ABAP Dictionary Structure which you can view in SE11.
During the execution of any ABAP program, the runtime environment creates a structure 'sy' from this structure SYST. Hence in programs, you address the individuals fields of the SYST structure as SY-<field> name.
Hope this has answered your question.
Regards
Anil Madhavan -
hi all
thanks
plz tell me difference between sy-index,sy-tabix
and sy-dbcnt ect.
or any other feilds like above
plz tell detail which r usefull me
for programming
thanks
anandHi,
SYSTEM VARIABLES:
These are predefined variables defined by SAP. Each system variable starts with the naming convention SY-____. SYST is the name of a structure which holds predefined system variables.
Some of the predefined system variables we commonly use in programming are:
SY-UZEIT
SY-DATUM
SY-SUBRC
SY-INDEX
SY-TABIX
SY-TFILL
SY-ULINE
SY-VLINE
SY-LISEL
SY-LILLI
SY-LSIND
SY-PAGNO
SY-DYNNR
PRINTING DATE AND TIME USING SYSTEM VARIABLES:
Eg. code
DATA DAT LIKE SY-DATUM VALUE '20070720'.
WRITE DAT .
DATA TIM LIKE SY-UZEIT VALUE '062015'.
WRITE TIM.
PRINT HORIZONTAL AND VERTICAL LINES IN LPS:
SY-ULINE - This system variable is used to print horizontal line in LPS (List Processing Screen).
SY-VLINE - This system variable is used to print vertical line in LPS.
Eg. code
WRITE 'THIS IS AN EXECUTABLE PROGRAM'.
WRITE :/ 'THIS IS FIRST LINE OF THE PROGRAM'.
WRITE :/10(40) SY-ULINE.
WRITE :/ 'THIS IS LAST LINE OF THE PROGRAM'.
In the above code, WRITE :/10(40) SY-ULINE, this statement is used to print the horizontal line with position specifiers where,
10 specifies the starting position of horizontal line and
(40) specifies the length of the line in the form of character spaces.
Eg. code to draw vertical lines:
do 5 times.
write :/10 sy-vline.
enddo.
By default, a vertical lines takes one single line to draw. We cannot specify length for the vertical line.
ADDING COLOR TO THE OUTPUT IN LPS:
ABAP follows VIBGYOR format for specifying colors in LPS screen. We can define a number for each color starting from 1 - 7.
SYNTAX:
WRITE <variable_name> COLOR <color_id>.
eg. code:
DATA KARTHIK(10) VALUE 'CHENNAI'.
WRITE KARTHIK COLOR 1.
INCLUDE PROGRAMS:
These are type I programs in SAP. These are one of the repository objects. These programs are used to store a piece of code. We can call the Include program from Executable program using INCLUDE statement.
Eg. code in Include program:
*& Include ZINCLUDEPROGRAM * Autogenerated code
DATA A TYPE I VALUE '20'.
WRITE A.
Save -> Activate.
To invoke the above include program, specify following code in Executable Program:
REPORT ZEXECUTABLEPROGRAM . * Autogenerated Code
INCLUDE ZINCLUDEPROGRAM.
Save -> Activate -> Execute.
SUBMIT STATEMENT:
This statement is used to invoke only the output of the specified program.
eg. code:
REPORT ZNEWEXECUTABLEPROGRAM . * Autogenerated code
SUBMIT ZEXECUTABLEPROGRAM.
Save -> Activate.
ADDING INDEXES TO VALUES IN LPS:
Eg. code:
DO 5 TIMES.
WRITE :/ SY-INDEX COLOR 1, 'THIS IS ABAP IN SAP' COLOR 2.
IF SY-INDEX = 3.
EXIT.
ENDIF.
ENDDO.
SY-INDEX is the system variable used to specify index value in LPS.
EXIT is the control break statement used to break and exit the loop.
Regards,
Priya. -
Re: what is difference between sap locking and database locking
hi,
what is difference between sap locking and database locking. Iam locked the table mara by using lock objects.
But iam unable to unlock the mara table. I give u the coding. Please check it.
REPORT zlock .
CALL FUNCTION 'ENQUEUE_EZTEST3'
EXPORTING
MODE_MARA = 'S'
MANDT = SY-MANDT
MATNR = 'SOU-1'.
call transaction 'MM02'.
CALL FUNCTION 'DEQUEUE_EZTEST3'
EXPORTING
mode_mara = 'E'
mandt = sy-mandt
matnr = 'SOU-1'.
IF sy-subrc = 0.
WRITE: 'IT IS unlocked'.
ENDIF.Hi Paluri
Here is the difference between SAP locks and Database locks, i will try to find the solution to your code.
Regards
Ashish
Database Locks: The database system automatically sets database locks when it receives change statements (INSERT, UPDATE, MODIFY, DELETE) from a program. Database locks are physical locks on the database entries affected by these statements. You can only set a lock for an existing database entry, since the lock mechanism uses a lock flag in the entry. These flags are automatically deleted in each database commit. This means that database locks can never be set for longer than a single database LUW; in other words, a single dialog step in an R/3 application program.
Physical locks in the database system are therefore insufficient for the requirements of an R/3 transaction. Locks in the R/3 System must remain set for the duration of a whole SAP LUW, that is, over several dialog steps. They must also be capable of being handled by different work processes and even different application servers. Consequently, each lock must apply on all servers in that R/3 System.
SAP Locks:
To complement the SAP LUW concept, in which bundled database changes are made in a single database LUW, the R/3 System also contains a lock mechanism, fully independent of database locks, that allows you to set a lock that spans several dialog steps. These locks are known as SAP locks.
The SAP lock concept is based on lock objects. Lock objects allow you to set an SAP lock for an entire application object. An application object consists of one or more entries in a database table, or entries from more than one database table that are linked using foreign key relationships.
Before you can set an SAP lock in an ABAP program, you must first create a lock object in the ABAP Dictionary. -
Difference between abap object and function
hi all,
i read the book on abap object of the difference between abap object and classical abap.
i know that there is only 1 instance of a specific function group but somehow i still not so clear why subsequent vehicle cannot use the same function. i also can use the do and loop to call the function? if cannot then why?
hope can get the advice.
thanks
using function *********
function-pool vehicle.
data speed type i value 0.
function accelerate.
speed = speed + 1.
endfunction.
function show_speed.
write speed.
endfunction.
report xx.
start-of-selection.
*vehicle 1
call function 'accelerate'.
call function 'accelerate'.
call function 'show_speed'.
*vehicle 2
*vehicle 3
*****abap object*******
report xx.
data: ov type ref to vehicle,
ov_tab type table of ref to vehicle.
start-of-selection.
do 5 times.
create object ov.
append ov to ov_tab.
enddo.
loop at ov_tab into ov.
do sy-tabix times.
call method ov->accelerate.
enddo.
call method ov->show_speed.
endloop.Hi
Now try this:
REPORT ZTEST_VEHICLEOO .
PARAMETERS: P_CAR TYPE I,
P_READ TYPE I.
* CLASS vehicle DEFINITION
CLASS VEHICLE DEFINITION.
PUBLIC SECTION.
CLASS-DATA: MAX_SPEED TYPE I,
MAX_VEHICLE TYPE I,
NR_VEHICLES TYPE I.
CLASS-METHODS CLASS_CONSTRUCTOR.
METHODS CONSTRUCTOR.
METHODS ACCELERATE.
METHODS SHOW_SPEED.
METHODS GET_SPEED EXPORTING E_SPEED TYPE I.
PRIVATE SECTION.
DATA: SPEED TYPE I,
NR_VEHICLE TYPE I..
ENDCLASS.
* CLASS vehicle IMPLEMENTATION
CLASS VEHICLE IMPLEMENTATION.
METHOD CLASS_CONSTRUCTOR.
NR_VEHICLES = 0.
ENDMETHOD.
METHOD CONSTRUCTOR.
NR_VEHICLES = NR_VEHICLES + 1.
NR_VEHICLE = NR_VEHICLES.
ENDMETHOD.
METHOD ACCELERATE.
SPEED = SPEED + 1.
IF MAX_SPEED < SPEED.
MAX_SPEED = SPEED.
MAX_VEHICLE = NR_VEHICLE.
ENDIF.
ENDMETHOD.
METHOD SHOW_SPEED.
WRITE: / 'Speed of vehicle nr.', NR_VEHICLE, ':', SPEED.
ENDMETHOD.
METHOD GET_SPEED.
E_SPEED = SPEED.
ENDMETHOD.
ENDCLASS.
DATA: OV TYPE REF TO VEHICLE,
OV_TAB TYPE TABLE OF REF TO VEHICLE.
DATA: V_TIMES TYPE I,
FL_ACTION.
DATA: V_SPEED TYPE I.
START-OF-SELECTION.
DO P_CAR TIMES.
CREATE OBJECT OV.
APPEND OV TO OV_TAB.
ENDDO.
LOOP AT OV_TAB INTO OV.
IF FL_ACTION = SPACE.
FL_ACTION = 'X'.
V_TIMES = SY-TABIX * 2.
ELSE.
FL_ACTION = SPACE.
V_TIMES = SY-TABIX - 2.
ENDIF.
DO V_TIMES TIMES.
CALL METHOD OV->ACCELERATE.
ENDDO.
CALL METHOD OV->SHOW_SPEED.
ENDLOOP.
SKIP.
WRITE: / 'Higher speed', VEHICLE=>MAX_SPEED, 'for vehicle nr.',
VEHICLE=>MAX_VEHICLE.
SKIP.
READ TABLE OV_TAB INTO OV INDEX P_READ.
IF SY-SUBRC <> 0.
WRITE: 'No vehicle', P_READ.
ELSE.
CALL METHOD OV->GET_SPEED IMPORTING E_SPEED = V_SPEED.
WRITE: 'Speed of vehicle', P_READ, V_SPEED.
ENDIF.
Try to repeat this using a function group and I think you'll undestand because it'll be very hard to do it.
By only one function group how can u read the data of a certain vehicle?
Yes you can create in the function group an internal table where u store the data of every car: in this way u use the internal table like it was an instance, but you should consider here the example is very simple. Here we have only the speed as characteristic, but really we can have many complex characteristics.
Max -
Difference between ws_download and gui_download
Hi
Can anyone explain briefly the difference between ws_download and gui_download
Thanks in advance
sapienHai,
in ws_download is Obsolete in Higher Versions
file type is as follows
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME. "local file with contracts
CALL FUNCTION 'DOWNLOAD'
EXPORTING
FILENAME = ' '
FILETYPE = I_TYPE
TABLES
DATA_TAB = T_DOWNLOAD
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
in gui_download -->is using instead of 'ws_upload'
file type is as follows
PARAMETERS: P_FILE LIKE STRING. "local file with contracts
DATA: D_FILENAME TYPE STRING,
D_FILEPATH TYPE STRING,
D_FULLPATH TYPE STRING,
L_FILETYPE TYPE CHAR10.
IF L_FILETYPE = 'ASC'.
L_FILETYPE = 'ASC'.
ELSE.
L_FILETYPE = 'DAT'.
ENDIF.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE =
DEFAULT_EXTENSION =
DEFAULT_FILE_NAME =
FILE_FILTER =
INITIAL_DIRECTORY =
WITH_ENCODING =
PROMPT_ON_OVERWRITE = 'X'
CHANGING
FILENAME = D_FILENAME
PATH = D_FILEPATH
FULLPATH = D_FULLPATH
USER_ACTION =
FILE_ENCODING =
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
others = 4
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF NOT D_FULLPATH IS INITIAL.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = D_FULLPATH
FILETYPE = L_FILETYPE
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = T_DOWNLOAD
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22 -
What's the difference between FM 'UPLOAD' and FM 'ALSM_EXCEL_TO_INTERNAL_TABLE'
thanks!hi,
Generally FM 'ALSM_EXCEL_TO_INTERNAL_TABLE' is used for reading Excel sheet i.e, either row wise or column wise . where as WS_UPLOAD will read the entire data in to an internal table in a file format.
for illustration as how it is used check this out
PARAMETER p_infile like rlgrap-filename.
*START OF SELECTION
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
filename = p_infile
i_begin_col = '1'
i_begin_row = '2' "Do not require headings
i_end_col = '14'
i_end_row = '31'
tables
intern = itab
exceptions
inconsistent_parameters = 1
upload_ole = 2
others = 3.
if sy-subrc <> 0.
message e010(zz) with text-001. "Problem uploading Excel Spreadsheet
endif.
http://www.sapdevelopment.co.uk/file/file_upexcelalt2.htm
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = gd_file
has_field_separator = 'X' "file is TAB delimited
TABLES
data_tab = it_record
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc NE 0.
write: 'Error ', sy-subrc, 'returned from GUI_UPLOAD FM'.
skip.
endif.
http://www.sapdevelopment.co.uk/file/file_uptabpc.htm
Regards,
Santosh -
Differences between LSMW and BDC
Hi All
Please can you give me the few points about the differences between LSMW and BDC?
Awaiting for your Responce
PraveenHai Check with the following document
GOOD
THERE IS THREE TYPE OF METHOD IN BDC
BDC SESSION
CALL TRANSACTION
CALL DIALOG
What is BDC or batch input
The Batch Input is a SAP technic that allows automating the input in transactions. It lies on a BDC (Batch Data Commands) scenario.
BDC functions:
· BDC_OPEN_GROUP : Opens a session group
· BDC_CLOSE_GROUP : Closes a session
· BDC_INSERT : Insert a BDC scenario in the session
· The ABAP statement "CALL TRANSACTION" is also called to run directly a transaction from its BDC table.
It runs the program RSBDCSUB in order to launch automatically the session. The session management is done through the transaction code SM35.
The object itself is maintanable through the transaction SE24.
BDC methods:
Method
Description
Parameters
OPEN_SESSION
Opens a session
SUBRC (Return Code 0 OK)
SESSIONNAME (Session to be created)
CLOSE_SESSION
Closes a session
None
RESET_BDCDATA
Resets the BDC Internal Table...
None. Normally, for internal purpose
BDC_DYNPRO
Handles a new screen
PROGNAME (Name of the program)
DYNPRONR (Screen Number)
BDC_FIELD
Puts a value on the screen
FIELDNAME (Name of the field)
FIELDVALUE (Value to be passed)
CONSTRUCTOR
Constructor - Initializes NO_DATA
NODATA (No data character). The constructor is called automatically when the object is created.
RUN_SESSION
Launches a session with RSBDCBTC
None
CALL_TRANSACTION
Calls a transaction with the current BDC Data
MODE (Display Mode)
UPDATE (Update Mode)
TCODE (Transaction to be called)
BDC_INSERT
Inserts the BDC scenario in the session
TCODE (Transaction to be called)
BDC techniques used in programs:
1) Building a BDC table and calling a transaction,
2) Building a session and a set of BDC scenarios and keeping the session available in SM35,
3) Building a session and lauching the transaction right after closing the session.
BDC using Call Transaction
BDC using Call transaction involves calling an SAP transaction in back ground from within the ABAP
program. The process involves building an Internal BDC table containing the screen information needed to
execute the required transaction and then passing this to the Call transaction command (See code example).
The full procedure for creating a BDC program is as follows:
What is the difference between batch input and call transaction in BDC?
Session method.
1) synchronous processing.
2) can tranfer large amount of data.
3) processing is slower.
4) error log is created
5) data is not updated until session is processed.
Call transaction.
1) asynchronous processing
2) can transfer small amount of data
3) processing is faster.
4) errors need to be handled explicitly
5) data is updated automatically
BATINPUT/DIRECT INPUT
A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report. A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options . It is preferred to call a report than create a Batch-input program.
GO THROUGH THIS LINK
http://www.guidancetech.com/people/holland/sap/abap/zzsni001.htm
The LSM Workbench is an SAP R/3 based tool that supports the one-time or periodic transfer of data from non-SAP systems ("legacy systems") to SAP systems.
The LSM Workbench helps you to organize your data migration project and guides you through the process by using a clear sequence of steps.
The most common conversion rules are predefined. Reusable conversion rules assure consistent data conversion for different data objects.
LSMW vs DX Workbench
The LSM Workbench covers the following steps:
Read the legacy data from one or several files (e.g. spreadsheet tables, sequential files).
Convert the data from source format to target format.
Import the data using standard interfaces (Batch Input, Direct Input, BAPI, IDoc).
Experiences made in successful implementation projects have shown that using the LSM Workbench significantly contributes to accelerating data migration.
SAP provides this tool along with documentation to customers and partners free of charge.
Users of the LSM Workbench receive the usual support via SAP Net - R/3 Frontend (component BC-SRV-DX-LSM).
Releases:
Version 1.7.2 of the LSM Workbench ("LSMW 1.7.2") available
Attention : LSMW 1.7.2 requires an SAP R/3 system with SAP R/3 4.0 or SAP R/3 4.5.
Version 1.8.0 of the LSM Workbench (1.21mb) ("LSMW 1.8.0") available
Attention : LSMW 1.8.0 requires an SAP R/3 system with SAP R/3 4.6.
Version 3.0 of the LSM Workbench (1.89mb) ("LSMW 3.0") available for Web Application Server 6.10
Attention : LSMW 3.0 requires a SAP WAS 6.10. Functionality of version 1.7.2 and 3.0 are identical !
Version 4.0 of the LSM Workbench ("LSMW 4.0") integrated in Web Application Server 6.20
Attention : LSMW 4.0 is an integrated part of SAP WAS 6.20.
Thanks & regards
Sreenivasulu P
Message was edited by: Sreenivasulu Ponnadi -
Find the difference between two internal table
how can i see the difference between two interal tables?
The requirement is as follows
1. We have a transparent table, which stores the employee data with EMP ID as key.
2. We load the transp table data into a interal table (B).
3. We get data from legecy system as file and it gets loaded into another internal table (A) (this also has the same EMP ID key and this will have latest addition/update to those emplyees).
Now we need to seperate out these data into three interal table Inserted (I), Deleted (D) and Updated (U).
We want to do followign things
I = A - B
D = B - A
Both A and B will have around 40k records. Hence we are trying to avoid the looping.
Please suggest the best option for us.
Thank you in advance.
Raghavendra>
RAGHAV URAL wrote:
> how can i see the difference between two interal tables?
> The requirement is as follows
>
> 1. We have a transparent table, which stores the employee data with EMP ID as key.
> 2. We load the transp table data into a interal table (B).
> 3. We get data from legecy system as file and it gets loaded into another internal table (A) (this also has the same EMP ID key and this will have latest addition/update to those emplyees).
>
> Now we need to seperate out these data into three interal table Inserted (I), Deleted (D) and Updated (U).
>
> We want to do followign things
> I = A - B
> D = B - A
>
> Both A and B will have around 40k records. Hence we are trying to avoid the looping.
>
> Please suggest the best option for us.
>
> Thank you in advance.
> Raghavendra
Hi Raghavendra,
Currently as of my knowledge, these operations are only possible through LOOPs. But LOOPign can be really fast here if you properly utilize the SORTING, READ with BINARY SEARCH and FIELD-SYMBOLS usage. I would say:-
Steps for Insert:-
SORT: A, B.
LOOP AT A ASSIGNING <WA_A>.
READ TABLE B WITH TABLE KEY key = <WA_A>-key BINARY SEARCH.
IF SY-SUBRC NE 0.
APPEND <WA_A> TO I.
ENDIF.
ENDLOOP.
Steps for Delete:-
SORT: A, B.
LOOP AT B ASSIGNING <WA_B>.
READ TABLE A WITH TABLE KEY key = <WA_B>-key BINARY SEARCH.
IF SY-SUBRC NE 0.
APPEND <WA_B> TO D.
ENDIF.
ENDLOOP.
Regards,
Ravi. -
Function Module for the differences
Hi,
Can you pl let me know the function module to find the difference between two times.
<b>Input</b> time1(hours:minits:seconds) time2 (hours:minits:seconds)
Need <b>output</b> in hours:minits:seconds
Regards
Badariuse fm.
<b>'SD_DATETIME_DIFFERENCE'</b>
<b>or
SD_CALC_DURATION_FROM_DATETIME</b>
ex-
data : date1 type sy-datum,
date2 type sy-datum,
time1 type sy-uzeit,
time2 type sy-uzeit,
v_datediff type p,
v_timediff type p.
date1 = '20060101'.
date2 = sy-datum.
time1 = '010101'.
time2 = sy-uzeit.
CALL FUNCTION 'SD_DATETIME_DIFFERENCE'
EXPORTING
DATE1 = DATE1
TIME1 = TIME1
DATE2 = DATE2
TIME2 = TIME2
IMPORTING
DATEDIFF = v_DATEDIFF TIMEDIFF = v_TIMEDIFF
*EARLIEST = EARLIEST
EXCEPTIONS
INVALID_DATETIME = 1
OTHERS = 2 .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF. -
Difference between Field symbols and field group
Hi experts,
Can you please advice me what is the difference between field symbols and field groups.
Thanks in advance,
Logu.Field symbols: are placeholders or symbolic names for other fields. They do not physically reserve space for a field, but point to its contents. A field symbol cam point to any data object. The data object to which a field symbol points is assigned to it after it has been declared in the program.
Whenever you address a field symbol in a program, you are addressing the field that is assigned to the field symbol. After successful assignment, there is no difference in ABAP whether you reference the field symbol or the field itself. You must assign a field to each field symbol before you can address the latter in programs.
Field Groups:
A field group is a user-defined grouping of characteristics and basic key figures from the EC-EIS or EC-BP field catalog.
Use
The field catalog contains the fields that are used in the aspects. As the number of fields grows, the field catalog becomes very large and unclear. To simplify maintenance of the aspects, you can group fields in a field group. You can group the fields as you wish, for example, by subject area or responsibility area. A field may be included in several field groups.
When maintaining the data structure of an aspect, you can select the field group that contains the relevant characteristics and basic key figures. This way you limit the number of fields offered.
A field group combines several existing fields together under one name
like
FIELD-GROUPS: fg.
then you can use one insert statement to insert values in fields of field-group.
INSERT f1 f2 ... INTO fg.
Field symbols
If u have experience with 'C', then understand this to be similar to a pointer.
It is used to reference another variable dynamically. So this field symbol will simply point to some other variable. and this pointer can be changed at runtime.
FIELD-SYMBOLS <FS>.
DATA FIELD VALUE 'X'.
ASSIGN FIELD TO <FS>.
WRITE <FS>.
Field symbols: are placeholders or symbolic names for other fields. They do not physically reserve space for a field, but point to its contents. A field symbol cam point to any data object. The data object to which a field symbol points is assigned to it after it has been declared in the program.
Whenever you address a field symbol in a program, you are addressing the field that is assigned to the field symbol. After successful assignment, there is no difference in ABAP whether you reference the field symbol or the field itself. You must assign a field to each field symbol before you can address the latter in programs.
Field Groups:
A field group is a user-defined grouping of characteristics and basic key figures from the EC-EIS or EC-BP field catalog.
Use
The field catalog contains the fields that are used in the aspects. As the number of fields grows, the field catalog becomes very large and unclear. To simplify maintenance of the aspects, you can group fields in a field group. You can group the fields as you wish, for example, by subject area or responsibility area. A field may be included in several field groups.
When maintaining the data structure of an aspect, you can select the field group that contains the relevant characteristics and basic key figures. This way you limit the number of fields offered.
example :
DATA: BEGIN OF SPTAB OCCURS 0,
line(1000), " or type string
END OF SPTAB.
DATA: IDX LIKE SY-INDEX.
field-symbols <FS1>.
split tb_sip AT ';' INTO table sptab.
LOOP AT SPTAB.
IDX = IDX + 1.
ASSIGN COMPONENT IDX OF STRUCTURE tb_detsip TO <FS1>.
If sy-subrc = 0.
<FS1> = SPTAB-line.
Endif.
Endloop.
append tb_detsip.
clear idx.
Field Groups / Extracts
http://help.sap.com/saphelp_46c/helpdata/EN/9f/db9ede35c111d1829f0000e829fbfe/frameset.htm
Field Symbols
http://help.sap.com/saphelp_46c/helpdata/EN/fc/eb387a358411d1829f0000e829fbfe/frameset.htm
Reward points if useful. -
What is the difference between ABAP and HR-ABAP?
Hi people,
Could u just tel me abt what is the difference between ABAP and HR-ABAP?
Thanks in advance,
Sanjeev K.VHi Sir ,
Please have a look below .Hope it is suitable and simpler solution for your question.
Please do reward if useful.
Thankx.
HR deals with the INFOTYPES which are similar to Tables in General ABAP.
There are different ways of fetching data from these infotypes.
There are different areas in HR LIKE Personal Admn, Orgn Management, Benefits, Time amangement, Event Management, Payroll etc
Infotypes for these areas are different from one another area.
storing of records data in each type of area is different
LDBS like PNP are used in HR programing.
Instead of Select.. we use some ROUTINES and PROVIDE..ENDPROVIDE.. etc
and in the case of Pay roll we use Clusters and we Import and Export them for data fetching.
On the whole Normal ABAP is different from HR abap.
Also,
HR:
HR deals with the INFOTYPES which are similar to Tables in General ABAP.
There are different ways of fetching data from these infotypes.
There are different areas in HR LIKE Personal Admn, Orgn Management, Benefits, Time amangement, Event Management, Payroll etc
Infotypes for these areas are different from one another area.
storing of records data in each type of area is different
LDBS like PNP are used in HR programing.
Instead of Select.. we use some ROUTINES and PROVIDE..ENDPROVIDE.. etc
and in the case of Pay roll we use Clusters and we Import and Export them for data fetching.
On the whole Normal ABAP is different from HR abap.
For Personal Admn the Infotypes start with PA0000 to PA1999
Time Related Infotypes start with PA2000 to PA2999.
Orgn related Infotypes start with HRP1000 to HRP1999.
All custom developed infotypes stsrat with PA9000 onwards.
In payroll processing we use Clusters like PCL1,2,3 and 4.
Instead of Select query we use PROVIDE and ENDPROVIDE..
You have to assign a Logical Database in the attributes PNP.
Go through the SAp doc for HR programming and start doing.
http://www.sapdevelopment.co.uk/hr/hrhome.htm
See:
http://help.sap.com/saphelp_46c/helpdata/en/4f/d5268a575e11d189270000e8322f96/content.htm
sites regarding hr-abap:
http://www.sapdevelopment.co.uk/hr/hrhome.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPA/PAPA.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPD/PAPD.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PYINT/PYINT_BASICS.pdf
http://www.atomhr.com/training/Technical_Topics_in_HR.htm
http://www.planetsap.com/hr_abap_main_page.htm
You can see some Standard Program examples in this one ...
http://www.sapdevelopment.co.uk/programs/programshr.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?Offer=SAlgwn12604#Certification
http://www.erpgenie.com/faq/hr.htm.
http://www.planetsap.com/hr_abap_main_page.htm
http://www.sapbrain.com/TUTORIALS/FUNCTIONAL/HR_tutorial.html
These are the FAQ's that might helps you as well.
http://www.sap-img.com/human/hr-faq.htm
http://www.sapgenie.com/faq/hr.htm
http://www.planetsap.com/hr_abap_main_page.htm
http://www.atomhr.com/library_full.htm
HR Long texts Upload
Look at the below link
And finally,
Few notes are below:
InfoSets in the HR Application
You can use SAP Query in HR to report on HR data. Queries are maintained as described in Creating Queries. The special features of queries created for HR are described in Maintaining Queries in the Human Resources Application. The maintenance procedure for HR InfoSets differs from the described procedure inasmuch as HR data fields are grouped together in infotypes.
InfoSet management in SAP Query is also used for InfoSet Query. For further information, see Functions for Managing InfoSets.
If you want to create InfoSets for HR, you can use logical databases PNP, PNPCE, PAP, and PCH (see HR Logical Databases). The database you must use to create your InfoSet depends on the component in which the data you want to report on is stored.
The reports you can execute using InfoSets based on logical databases PNP (or PNPCE) or PCH are similar, but differ in that they can select different objects. The following table describes the connection between the logical database, and the infotypes you can include in an InfoSet. It also provides you with one or two examples of reports that you can execute using the appropriate InfoSets.
Logical database PNP/PNPCE* PCH PAP
Selection of Persons Objects from Personnel Planning Applicants
Infotypes that can be included in the InfoSet Infotypes for· Personnel Administration (0000-0999) · Time Management (2000-2999) · Payroll infotypes · Infotypes for Personnel Planning objects that can be related to persons If the object type is specified:· Infotypes for the object type · Infotypes for objects that can be related to the specified object typeIf the object type is not specified:· All infotypes · Infotypes for Recruitment (4000-4999)· Some infotypes for Personnel Administration (such as 0001 and 0002)
· Customer infotypes
Reporting examples · Selection of all persons who participated in a specific business event, output of prices for reserved business events · Selection of all persons assigned to a specific personnel area, output of qualifications held by these persons · Selection of all business events held in London in March, output of all persons who participated in these business events · Selection of all positions assigned to a specific organizational unit, output of all persons assigned to the positions · Selection of all applicants hired last year to work on special projects, output of addresses for the applicants selected
Logical database PNPCE (PNP Concurrent Employment) functions just like logical database PNP. The procedure for creating InfoSets is also the same. It only becomes significant if you work with Concurrent Employment.
Creating InfoSets
The maintenance procedure for HR InfoSets differs from the procedure described so far in this section inasmuch as HR data fields are grouped together in infotypes. To set up an InfoSet for the HR application, proceed as follows:
1. On the initial screen for maintaining InfoSets, enter a name for the InfoSet and choose Create.
2. On the next screen, enter a name for the InfoSet and select one of the HR logical databases in accordance with your reporting requirements.
Customer infotypes can be created on all HR logical databases. In each individual case, therefore, you must decide which database to select so that you can report on customer infotypes.
This screen enables you to enter an authorization group. All of the queries that are subsequently created using this InfoSet can only be executed by persons who have this authorization group.
3. Choose .
This takes you to the Infotype Selection for InfoSet screen. You now have the option of creating field groups and assigning fields as required for non-HR InfoSets. Field groups that correspond to infotypes and already contain fields, however, are always created for HR InfoSets. The field groups are displayed in an overview tree in the top right section of the screen.
The infotypes that you included in the InfoSet are displayed in an overview tree on the left of the screen. The infotype fields that are already included in field groups are displayed in a different color, and the corresponding field group ID is displayed.
In the standard system, a field group is created automatically for each infotype that you included in the InfoSet (a field group corresponds to an infotype).
In the standard system, each field group contains the infotype-specific fields. To ensure that working with the InfoSet is as easy as possible, you are advised to restrict your use of fields in each field group to those you really require. This means you should remove fields that are not required.
An infotype's fields must only be assigned to the pertinent field group. Make sure this assignment is correct. If the assignment is incorrect, the InfoSet could be rendered unusable.
When an InfoSet is created, the following fields are transferred automatically to the first field group:
§ Logical database PNPCE or PNP Personnel number
§ Logical database PAP Applicant number
§ Logical database PCH Object ID, plan version, and object type
6. Determine the fields that must be included in the field groups of your InfoSet. If you require further information, see Assigning Fields to a Field Group.
If you want, you can change the default sequence of field groups and fields as required using Drag&Drop.
7. To save the InfoSet, choose .
8. To generate the InfoSet, choose .
On the Change InfoSet (InfoSet name) screen, you can choose Edit ® Change infotype selection to add more infotypes to the InfoSet, or to remove infotypes from the InfoSet. Remember to regenerate the InfoSet afterwards.
This screen also enables you to update InfoSets if, for example, the system contains new additional fields for specific key values. To do so, choose InfoSet ® Additional functions ® Update additional HR fields.
9. Go back to the initial screen for InfoSet maintenance.
10. Choose User group assignment.
11. Select a user group, and save your entry.
sample code
START-OF-SELECTION.
GET pernr.
rp_provide_from_frst p0000 space pn-begda pn-endda.
if pnp-sw-found EQ '1'.
READ TABLE p0001 WITH KEY pernr = p0000-pernr.
if sy-subrc = 0.
write : p0001-plans. " earliest.
endif.
endif.
rp_provide_from_last p0014 space pn-begda pn-endda.
if pnp-sw-found EQ '1'.
READ TABLE p0014 WITH KEY pernr = p0000-pernr.
if sy-subrc = 0.
write : p0014-LGART. .
endif.
endif. -
Difference between screen and selection screen
explain the difference between
call screen
and
call selection-screen
with easy understandable explanation with simple example
thanks guyzHi,
<b>CALL SCREEN</b> interrupts the processing of the current screen to call a new screen or a chain of screens, processing of the current screen is resumed directly after the call.
Call selection-screen
Similar to <b>CALL SCREEN</b>, except the screen you are calling must be a selection screen defined using<b> SELECTION-SCREEN BEGIN/END OF SCREEN</b> or the standard selection screen of a report.
It calls the selection screen with in the program.
If you call a selection screen using <b>CALL SCREEN</b> instead of <b>CALL SELECTION-SCREEN</b>, the initialization necessary for selection screens is not carried out, and the screen will not run properly when displayed.
EG:<b>
SELECTION-SCREEN BEGIN OF SCREEN 123 AS WINDOW TITLE TEXT-456.
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-BL1
NO INTERVALS.
SELECT-OPTIONS SEL1 FOR SY-SUBRC.
PARAMETERS PAR1 LIKE SPFLI-CARRID.
SELECTION-SCREEN COMMENT /10(20) TEXT-COM.
SELECTION-SCREEN END OF BLOCK BL1.
SELECTION-SCREEN END OF SCREEN 123.
CALL SELECTION-SCREEN 123 STARTING AT 20 5.
IF SY-SUBRC = 0.
ELSE.
ENDIF.</b>
rewards if useful,
regards,
nazeer -
Function Module to find difference of Fiscal Year period
Hi,
I have a requirement wherein a user enters 2 variables for Start and End Fiscal year period and I need to calculate the difference ( ie: I need to calculate the number of periods ).
I also need to pass the Fisc Year variant 'K4' as the Input parameter.
Any standard function module for it?
Rgds
ShyamDATA: I_FYV1 LIKE T009-PERIV.
CALL FUNCTION 'CCODE_GET_FISCAL_YEAR_VARIANT'
EXPORTING
COMPANY_CODE = i_billno-bukrs
COMPANY_CODE = S_BUKRS-LOW
IMPORTING
FISCAL_YEAR_VARIANT = I_FYV1
EXCEPTIONS
COMPANY_CODE_NOT_FOUND = 1
OTHERS = 2.
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 'ME_DETERMINE_GJAHR'
EXPORTING
I_BSTYP =
I_BEDAT = P_DATE
I_PERIV = I_FYV1
IMPORTING
E_H_MONAT =
E_H_GJAHR = GJAHR1
E_H_DATUM =
Maybe you are looking for
-
Hi there, I'm getting this error on trying to install / update LR 5.3 to 5.4: "Adobe Photoshop Lightroom 5.2 can't be installed on this disk. An error occurred while evaluating JavaScript for the package." I hope there's somebody that can help me out
-
Wire transfer payment set up for US
Hi Has anybode worked on wire transfer set up for US company code ( International payments ) ? Where can I get documentation on this subject ? Regards Raj
-
Why is that Tables command not yielding the expected output in TimesTen 11. If it is deprecated, what is the alternative for that? Thanks...
-
How can we differentiate between satandard Gr and a Statistical GR? In THP process some cases statistical GR are required. Does movement type 543 triggers a statistical GR? If not how do i control it. regards, Sayantan
-
How to stop the creation of Downloads directory in My Documents
There was a thread on this topic, which, AFAICT, was erroneously marked "solved." We all know how to change the default download setting, via tools --> options --> general -->. The problem is, regardless of where one designates one's downloads, a Dow