Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

diffrence between call screen and set screen

Former Member
0 Likes
1,360

hi this prashanth.

i want to know some good answers(if possible with examples) from following qns.

1. diffrence between call screen and set screen.

2. in BDC program what to do if i want to execute the session after 3 days?

3. if we use Buffering on database which sql statements we cannot use?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,245

SET SCREEN and LEAVE SCREEN <b>reduces the stack level</b>, if you have a lot of screens.

Whereas CALL SCREEN increases the stack level, and if the stack is huge, you may get an error.

Use buffering when your data doesn't change frequently. There are <b>SQL statements</b> which bypass your buffering and can be issued safely.

1.Select distinct

2.Select … for update

3.Order by, group by, having clause

4.Joins

Use the <b>Bypass buffer addition</b> to the select clause in order to explicitly bypass the buffer while selecting the data.

Ps: Reward points if helpful.

8 REPLIES 8
Read only

Former Member
0 Likes
1,245

Hi Prasantha,

Set Screen --> Sets the next screen.

example : set screen 0.

Call screen -- call the screen from main program . you can set dimensions.

example :

CALL SCREEN 3000 STARTING AT 25 6

ENDING AT 60 15.

BDC program --Schedule the job.

Lanka

Message was edited by: Lanka Murthy

Read only

Former Member
0 Likes
1,245

hello,

nobody answred clearly for my questions.

any one is there for answering?

Read only

Former Member
0 Likes
1,246

SET SCREEN and LEAVE SCREEN <b>reduces the stack level</b>, if you have a lot of screens.

Whereas CALL SCREEN increases the stack level, and if the stack is huge, you may get an error.

Use buffering when your data doesn't change frequently. There are <b>SQL statements</b> which bypass your buffering and can be issued safely.

1.Select distinct

2.Select … for update

3.Order by, group by, having clause

4.Joins

Use the <b>Bypass buffer addition</b> to the select clause in order to explicitly bypass the buffer while selecting the data.

Ps: Reward points if helpful.

Read only

Former Member
0 Likes
1,245

1. If u <b>Call screen 200</b> from screen 100 it will take u to screen 200 without killing 100.

with <b>set screen 200</b> from screen 100 it will kill 100(u cant come back) it will go to 200

3.A SELECT statement on a table for which SAP buffering has been declared in the ABAP Dictionary usually reads data from the SAP buffer without accessing the database. This does not apply when you use:

- JOIN in the FROM clause or subqueries in the WHERE clause, for example,

- SELECT SINGLE FOR UPDATE or

- SELECT DISTINCT in the SELECT clause ,

- BYPASSING BUFFER in the FROM clause,

- ORDER BY f1 ... fn in the ORDER BY clause,

- Aggregate functions in the SELECT clause,

- When you use IS [NOT] NULL in the WHERE condition,

or when the table has generic buffering and the appropriate section of the key is not specified in the WHERE condition.

Message was edited by: chandrasekhar jagarlamudi

Read only

hymavathi_oruganti
Active Contributor
0 Likes
1,245

1. with call screen , we can return back to the calling screen by pressing back.

but with set screen , we can return back only if we write leave screen explicitly.

2.

RSBDCSUB and RSBDCBTC programs will schedule in background

3.

there are some sql statements that automatically does not use buffering.

ex select single, select distinct etc. u can see in help.

there is nothing like " we cannot use this sql statement".

we can use all. but some automatically bypass buffering.

if we want to explicitly bypass buffering, we can use

select................bypass buffering.

Read only

0 Likes
1,245

hi prasanth,

u can use the hold date for that.

if u use rsbdcbtc or rsbdcsub, u can set the session in background and schedule the time.

reward points if useful

Read only

Former Member
0 Likes
1,245

hi, hyma

i have got answers for 1st and 3rd questions as exactly i want.Thanks for it.

But for BDC question i've not got ur point. can we use this HOLDDATE parameter of BDC_OPEN_GROUP to set the date what we want.

Read only

Former Member
0 Likes
1,245

Hi Prashanth,

Use the BDC_OPEN_GROUP function module to create a new session. Once you have created a session, then you can insert batch input data into it with BDC_INSERT.

You cannot re-open a session that already exists and has been closed. If you call BDC_OPEN_GROUP with the name of an existing session, then an additional session with the same name is created.

A batch input program may have only one session open at a time. Before opening a session, make sure that any sessions that the program closes any sessions that it previously had opened.

Also check on to this link for further details:

http://help.sap.com/saphelp_erp2005/helpdata/en/fa/097126543b11d1898e0000e8322d00/frameset.htm

Regards,

Nagarajan.