The Select Pattern
When a transaction is started with a record as a parameter, the transaction sometimes need extra information to decide how the transaction needs to behave. When using the OnRun()
trigger of a Codeunit to start the transaction, we can only use one table as a parameter to the function. The Select pattern helps us in working around this limitation in an elegant way, allowing us to write clean and readable code.
More information about the pattern can be found in the How Do I video at https://www.youtube.com/watch?v=SxywT2XSpcI&list=PLhZ3P-LY7CqmVszuvtJLujFyHpsVN0U_w&index=7.
Technical description
To be able to give the extra information to the function, we need to add extra fields to the table that acts as placeholders or properties. These fields are not available from the user interface, and should be non-editable.
They need to be set prior to calling the transaction, but they don't have to be written to the database...