As discussed in https://www.yammer.com/dynamicsnavdev/threads/1430313497944064
The following code is possible to use today, even though it might not be recommended, and it's not (yet) officially supported:
---
RecRef.Open(27);
RecRef.FindFirst();
VariantRecRef := RecRef;
Codeunit.Run(5431, VariantRecRef);
RecRef := VariantRecRef;
[Do something with the results in RecRef...]
---
In a similar way, this is also possible:
---
RecRef.Open(27);
RecRef.FindFirst();
VariantRecRef := RecRef;
Page.Run(30, VariantRecRef);
---
These are flexible and all, but it just feels as if there are unnecessary (and memory plus performance expensive) casting involved.
I suggest that the platform is improved to support the following overloads of Codeunit.Run() and Page.Run[Modal]():
[Ok := ] Codeunit.Run(Number: Integer, var RecRef: RecordRef)
Page.Run(Number: Integer, RecRef: RecordRef[, FieldNo: Integer])
Page.Run(Number: Integer, RecRef: RecordRef[, FieldRef: FieldRef])
[Action := ] Page.RunModal(Number: Integer, RecRef: RecordRef[, FieldNo: Integer])
[Action := ] Page.RunModal(Number: Integer, RecRef: RecordRef[, FieldRef: FieldRef])
I hope the signatures are self-explanatory.
I found this idea, that is somewhat related. If RecordRef and Record could be casted to each other, above would also be solved. https://experience.dynamics.com/ideas/idea/?ideaid=08a6c1b1-2583-eb11-8ced-0003ff45ceba
Comments
Nice one, you can achieve this also by using a codeunit Page Management.
Category: Development