simona
27th November 2013, 16:45
Hello,

I have a situation on multi-occurence maintain session:
check.input subsection on some fields is never executed.
But when.field.changes, after.input, etc on the same field are executed.
Why check.input is skiped??
My script is adapted from a standard script, it's possible to be some instructions (that I didn't observed) which can cancel de check.input subsection??

Thanks and regards,
Simona

bdittmar
27th November 2013, 17:06
Hello,

I have a situation on multi-occurence maintain session:
check.input subsection on some fields is never executed.
But when.field.changes, after.input, etc on the same field are executed.
Why check.input is skiped??
My script is adapted from a standard script, it's possible to be some instructions (that I didn't observed) which can cancel de check.input subsection??

Thanks and regards,
Simona

Hello,

is DAL used ?

check.input:

This section is replaced by Data Access Layer functionality (if a DAL exists for the table).

The actions programmed in this subsection are executed immediately after the domain and reference checks. You can use this section to test for errors that are not detected automatically. If the 4GL engine detects an error, the focus remains on the field. In a script, you can use set.input.error() to display an error message and start input again.

Regards

simona
28th November 2013, 14:55
Indeed, check.input is replaced by DAL.
Instead of check.input I used:

after.input: (the same for when.field.changes)
if error then
message("Error!")
execute(recover.set)
endif

But I still have a problem: I'm loosing the focus of the field.
Do you have any suggestion?
Thank you.

Simona

vahdani
30th November 2013, 11:02
Hi,

use input.again()


after.input: (the same for when.field.changes)
if error then
message("Error!")
input.again()
endif

bhushanchanda
1st December 2013, 10:53
Hi,

Vahdani's suggested code will work for you. The question remains, why it doesnt execute on check.input. What version are you on?

There have been notified issues regarding the fields with segmented domain where check.input() was not executed. Also, some other related fixes have been done.

Check if you have latest solutions installed for Tools.


Check KB #22841325, #KB 22890229, #KB 22820578,KB #22820580.

bbhawesh
2nd December 2013, 10:55
If there is a DAL for the main table, check.input will not be used. It will be replaced by dal hooks. So most probably in this case they have a DAL

simona
2nd December 2013, 10:57
Hi Vahdani,
Thanks for the tip.

Hi Bhushan,
The DAL on table ticst001 is active and my check.input is replaced by DAL (exactly as written in help, Programmers Guide):
check.input:
This section is replaced by Data Access Layer functionality (if a DAL exists for the table).


Regards,
Simona