cancel
Showing results for 
Search instead for 
Did you mean: 

is page attribute 'table' limited to 12 fields?

matthias_kasig2
Participant
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

matthias_kasig2
Participant
0 Kudos

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

guillaume-hrc
Active Contributor
0 Kudos

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

matthias_kasig2
Participant
0 Kudos

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

guillaume-hrc
Active Contributor
0 Kudos

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

Former Member
0 Kudos

Hi Matthisa,

There is no such limitation as you are using POST method.

You can use any number of parameters / internal tables.

you can use Application class too.

Give the problematic piece of code.

Rgds,

Jothi.

matthias_kasig2
Participant
0 Kudos

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

ChristianFi
Active Participant
0 Kudos

Are you sure this is a bsp related problem?

How is your tabletype defined? Would it work in a normal abap?

Just a long shot.

Christian

athavanraja
Active Contributor
0 Kudos

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

matthias_kasig2
Participant
0 Kudos

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

athavanraja
Active Contributor
0 Kudos

<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

matthias_kasig2
Participant
0 Kudos

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

athavanraja
Active Contributor
0 Kudos

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

Answers (0)