Application Development 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: 

SMARTFORMS packslip table limit truncation

jhilden
Explorer
0 Kudos

I've searched SDN but can't readily find help on this.

A packslip custom smartform is triggered through invoice output condition / output type by way of standard program RLB_INVOICE.

Each row / (item or part) can have multiple Carton ID's. When those repeating Carton rows exceed 23 rows, the 24th row truncates in the middle of the Carton ID. It prints fine if there are 23 rows or fewer.

Seems there must be a table limit somewhere or character limit, but I'm not sure where to navigate within the SMARTFORMS transaction and windows to find the size constraint. When I find this Carton Id field in the Page2 there doesn't seem to be a way for me to find out where these rows are controlled / looped through.

I read some SDN articles on debugging, but to begin debugging, I tried a breakpoint in RLB_INVOICE and a breakpoint in the SMARTFORMS' function module, but I must be doing something wrong; it doesn't stop (Printing is done by saving VF02 in the GoTo --> Header--Output).

Can someone please help me get into the debugger in the right way to step through and find the constraint - or whatever the issue might be?

Thanks in advance!

1 ACCEPTED SOLUTION

Jelena
Active Contributor
0 Kudos

Without spending a lot of time on this (at which point I;d have to bill you for consulting 🙂 ), I can only suggest putting all those carton ID's in a separate internal table and then printing them in a separate loop. It looks like right now you are just trying to stuff them all into a single text element and obviously that does not have unlimited size.

Also, to be honest, having such long, narrow column seems like a total waste of space, so you might want to consider changing the design a bit.

Overall - if the door is closed check if the window is open instead of banging on the door louder.

4 REPLIES 4

Jelena
Active Contributor
0 Kudos

Without spending a lot of time on this (at which point I;d have to bill you for consulting 🙂 ), I can only suggest putting all those carton ID's in a separate internal table and then printing them in a separate loop. It looks like right now you are just trying to stuff them all into a single text element and obviously that does not have unlimited size.

Also, to be honest, having such long, narrow column seems like a total waste of space, so you might want to consider changing the design a bit.

Overall - if the door is closed check if the window is open instead of banging on the door louder.

omer_sakar
Participant
0 Kudos

Hi Jeremy,

You should add "(CZ)" the text field under "CARTON_V".

For example,we suppose the name of text "gv_carton_id",then it should be like this : &gv_carton_id(CZ)&

0 Kudos

Thank you!

jhilden
Explorer
0 Kudos

Thank you both for your answers. My apologies for the days between responding, as I did get busy into some other work.

I managed to find a way to debug the SMARTFORM through a little continued googling/research, and once I have analyzed it a bit more, should consider the redesigns that you proposed. Debugging offers such a key to insight into this text element / table that is being built that I feel I will be able to use either or both of your suggestions.

In case anyone else needs help with getting into the debug, code in which to place a breakpoint for debugging of a SMARTFORM can be accessed in the Initialization tab of the Global Definitions.

The function module of the SMARTFORM (which can be seen at the menu Environment-->Function Module Name) is where you want to place the breakpoint. I did my breakpoint just before PERFORM %GLOBAL_INIT, as that is the code within the Initialization tab of the Global Definitions of the SMARTFORM.

Once the breakpoint is in place, you can use change the Requested processing from 4 to 1 in Output if the Invoice and then use RSNAST00 to execute and hit your breakpoint.