Applications over Work Tables

If you have an application that is over a work table, you may run into this error at times: Error - Can not insert live records into LogicBlock table xxxxxx.

That error is what it says it is - work table records cannot be persisted permanently, and you would likely see this error if you pressed save while on an app over such a table. However, work table records can be ‘Saved for later’ meaning within a temporary NATE container they are at least temporarily persistible, if not permanently persistible to the live database.

If you run into this error, and want the data on the work table ‘thrown away’ on save, plan on adding an INSERT action block to the table that is completely empty, and that empty insert action block will run, do nothing, and discard the in-NATE container work table records. NOTE: In some circumstances such as some inline applications over work tables where the inline application has been populated via a logic block, an INSERT action block on the inline app work table will not run and the records will need removed manually via the parent application’s action block.

1 Like

Does this only apply to applications built over work tables? I’m curious if there is a similar method when logic blocks insert into work tables. Right now we have to clear the work table before the NATE container commits.

I would expect the same principle applies to LBs - if you insert to a work table, whilst in a NATE container, you have to clear that record before the LB completes and commits to live.