on 06-14-2006 3:56 PM
hi,
i am on WAS 6.20.
in an bsp under rider type-definitions i need to create a type, which consists of more than 12 fields. i found out, that
a) only string types are possible and
b) apparently max. 12 fields are possible
i create an internal table page attribute from that type, which gets filled during runtime and transferred to another page (there it is an auto-attribute). when setting up more than 12 fields, the receiving page won't display - (server not found).
i don't get syntax errors, neither ST22.
is there a way to enhance types here?
or must i perform everything in the one and only starting page? which is a bit unhandy...
i just read another thread, where somebody has a problem with table types - can i create a table type in the dictionary, which contains only char fields, but more than 12...?
thanx, matthias
just checked myself with a ddictionary structure and corresponding dictionary table type, which contain more than 12 string fields. it worked.
still i don't mind getting to know the opinions of the experts here.
thanx, matthias
ps: next is Tunisia vs Arabia, so I have to go now, and then of course - worldcup winner will beat Poland - so I am off for the next hours to come
Message was edited by: Matthias Kasig
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Matthias,
Indeed, it is really curious...
Only strings should be passed between pages.
Are you sure, in case you are using GET method, you are not passing too much information and that it is truncated somewhere (there is a 4kb limit) ?
Best regards,
Guillaume
Message was edited by: Guillaume Garcia
Hi Guillaume,
thanx for the reply - the 4kb hint is interesting, never knew that there might be a constraint... can't believe that you can only pass 4kb in GET strings.
Anyway, my form is being sent via POST.
Is there aslo such an amount limit?
I also might expect quite large internal tables, which get transferred from page A to page B - I hope this will all do.
greetz, matthias
Hi,
No, there is no such limitation for POST method. This is due to the fact that POST method use hidden fields in the BODY of the HTTP request whereas GET method use only the HEADER to pass parameters.
But, I think you should either use :
- appplication class and stateful mode
- OR server-side cookies
for large amount of data
Best regards,
Guillaume
Hi,
now i am getting confused. I had tested with an dictionary structure and corresponding dict. tabletype (which also was based on char and int fields). my BSP worked fine.
Now we have a dict.structure, zkatalog, which contains char, cuky, curr fields.
I set up a new dict structure with 3 char fields and included zkatalog (and a corresponding tabletype). In a sample bsp i created a page attribute based upon the dict. tabletype.
Then I created a very basic sample bsp in which I do the following onInputProcessing:
IF event->id = 'B01' AND event->event_type = 'click'.
wg_all-freitxt = 'hallo freitext'.
wg_all-menge = '12'.
wg_all-preis = '12'.
wg_all-waehrung = 'EUR'.
wg_all-bestell_iso = 'STK'.
wg_all-kstl = '9842000'.
APPEND wg_all TO ig_all.
CLEAR wg_all.
wg_all-freitxt = 'hallo freitext'.
wg_all-menge = '12'.
wg_all-preis = '12'.
wg_all-waehrung = 'EUR'.
wg_all-bestell_iso = 'STK'.
wg_all-kstl = '9842000'.
APPEND wg_all TO ig_all.
CLEAR wg_all.
navigation->set_parameter( name = 'ig_all' value = ig_all ).
navigation->goto_page( url = 'test3.htm' ).
i put manually 2 times the same wg_all structure in the internal table - this gives a "page cannot be displayed" error. <b>when putting only ONCE the wg_all into ig_all everything is fine.</b>
what's that? can't i use dict. structures with includes?
regards, matthias
Message was edited by: Matthias Kasig
i guess your question is really about how to pass ITAB with values from one page to another page.
navigation->set_parameter( name = 'ig_all' value = ig_all ).
can only accept flat strictures.
the best way to pass itab from one page to another page is to use server side cookies
to set the cookie from the source page the code would look like below
call method cl_bsp_server_side_cookie=>set_server_cookie
exporting
name = runtime->application
application_name = runtime->application_name
application_namespace = runtime->application_namespace
username = shtml
session_id = runtime->session_id
data_name = 'tab'
data_value = ig_all (itab containing data)
expiry_time_rel = 7200.
and to read it on the target page
call method cl_bsp_server_side_cookie=>get_server_cookie
exporting
name = runtime->application
application_namespace = runtime->application_namespace
application_name = runtime->application_name
username = shtml
session_id = runtime->session_id
data_name = 'tab'
changing
data_value = ig_all.
Hope this is clear.
Regards
Raja
Hi Christian and Raja,
as for Christians hint: I tried an ordinary report like this:
DATA: ig_all TYPE zmed_a_tab,
wg_all TYPE zmed_a_struc.
wg_all-freitxt = 'hallo freitext'.
wg_all-menge = '12'.
wg_all-preis = '12'.
wg_all-waehrung = 'EUR'.
wg_all-bestell_iso = 'STK'.
wg_all-kstl = '9842000'.
APPEND wg_all TO ig_all.
CLEAR wg_all.
wg_all-freitxt = 'hallo freitext'.
wg_all-menge = '12'.
wg_all-preis = '12'.
wg_all-waehrung = 'EUR'.
wg_all-bestell_iso = 'STK'.
wg_all-kstl = '9842000'.
APPEND wg_all TO ig_all.
CLEAR wg_all.
LOOP AT ig_all INTO wg_all.
WRITE: / wg_all-freitxt, wg_all-menge, wg_all-preis, wg_all-waehrung,
wg_all-bestell_iso, wg_all-kstl.
ENDLOOP.
So in an ordinary ABAP my dd.tab works fine!
But I shall also check Rajas server side cookie.
Still Rajas statement:
"navigation->set_parameter( name = 'ig_all' value = ig_all ).
can only accept flat strictures."
can not be true, as I managed to shift more than one table row from page A to B (but with another dd.structure).
btw, the dd.structure I use and which is being used in my dd.tabletype looks like the following (and mybe BSP can't handle this???):
FREITXT CHAR200 CHAR 200 0
MENGE CHAR3 CHAR 3 0
SACHKONTO CHAR7 CHAR 7 0
KSTL CHAR7 CHAR 7 0
.INCLUDE ZKATALOG
KATEGORIE CHAR 60 0
ACTION CHAR 20 0
MATKL CHAR 9 0
PREIS CURR 11 2
WAEHRUNG CUKY 5 0
PREIS_MENGE DEC 5 0
...
regards, matthias
<i>can not be true, as I managed to shift more than one table row from page A to B (but with another dd.structure).</i>
it could be true, as i have not tried passing itab this way.
when i want to pass itabs, i always use, server side cookies so that you dont face the URL size limitation problem. (with set_parameter method you are effectively adding url parameter)
Regards
Raja
hi Raja,
I am just reading help.sap.com about server-side cookies. They place them in OnManipulation and OnRequest Events.
Is that necessary? or can I just put the "call method cl_bsp_server_side_cookie=>set_server_cookie" in OnInputProcessing...
is there an example on the web or tutorial?
thanx, matthias
the event in which you will set it is purely based on your requirement.
in your case you can set the cookie from oninputprocessing of the soruce page
and get the cookie in the oninitalization event of the target page.
check these links,
http://help.sap.com/saphelp_nw2004s/helpdata/en/2a/31b97b35a111d5992100508b6b8b11/frameset.htm
/people/ulli.hoffmann2/blog/2004/10/20/personalize-my-bsp-form-items
Regards
Raja
User | Count |
---|---|
101 | |
13 | |
13 | |
11 | |
11 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.