Onvalidate trigger in table does not work

tompynationtompynation Member Posts: 398
I created on Validatetrigger for a field in my WareHouse Entry table:


lt_BinType.GET("Bin Type Code");
VALIDATE(Receive,lt_BinType.Receive);
VALIDATE(Pick,lt_BinType.Pick);
VALIDATE("Put Away",lt_BinType."Put Away");

this trigger should fill in 3 other fields in the table.
this works fine when i manually enter a record in the WareHouse table

But i need it to work when the system insert a record in to the table...

So when i choose "register pick" from the warehouse pick form,
the system insert a new line in the table... and then the trigger should be fired.

But this doesnt happen, it only works with manually inserting :?:

Comments

  • DenSterDenSter Member Posts: 8,305
    By default, when an INSERT is executed, the OnInsert trigger does not run. If you need the OnInsert code to run, you have to specify it, like this:
    MyRecord.INSERT(TRUE);
    
    I would not change this parameter in the standard register code though, find the codeunit that does this and set those field values before the INSERT.

    It's the same with field validation. By default it does not run the OnValidate logic. So when you program:
    "My Field" := SomeValue;
    
    the validation trigger of that field does not run. You have to validate it specifically, like this:
    VALIDATE("My Field",SomeValue);
    
    The same caution applies here too though. Don't just change the field assignment to a validation, because it's not there for a reason. If there is more validation code in that validation trigger, it would be better to find where you need the field values to be and to manually set them in the register codeunits.
Sign In or Register to comment.