Pass CloseAction as parameter in OnQueryClosePageEvent
The page trigger OnQueryClosePage exposes a CloseAction parameter. This allows code to only process when the CloseAction = Action::OK. The integration event OnQueryClosePageEvent does NOT expose the CloseAction so a codeunit subscribing to that event cannot tell if the page was being canceled o...
TextBuilder enhancements
Add ToText(Delimiter: Text) t: Text; tb: TextBuilder; tb.Append('JohnDoe@Contosso.com'); tb.Append('SuzieDoe@Contosso.com'); t := tb:ToText('; '); // JohnDoe@Contosso.com; SuzieDoe@Contosso.com This is cleaner and easier than tb.Append('JohnDoe@Contosso.com' + emailDelimiter);
Add new method to FieldRef
Add a GetByName procedure to the FieldRef object. It is not uncommon to need to get the FieldRef associated with a given Field Name. procedure GetByName(RecRef: RecordRef; FieldName: Text; var FldRef: FieldRef) var i: Integer; begin for i := 1 to RecRef.FieldCount do ...
Add by Name functions to RecordRef
procedure GetByTableName(TableName: Text; var RecRef: RecordRef) var // Would have preferred Table Information, but it is OnPrem only. TableInformation: Record "Table Metadata"; begin Clear(TableInformation); TableInformation.Reset(); TableInformati...
Enum enhancements - Add a Captions collection similar to the Names and Ordinals collections
Since no generic Enum methods are surfaced, you can simulate them by writing methods that interact with the Names and Ordinals collections. However, if the Caption differs from the Name, the Caption is passed in when the Format function is used. This requires external Enum specific code to run to...
Enum enhancement - Expose an Enum wrapper
Because Enums are type safe (a very good thing), it is difficult to write generic code for any Enum. You can come close by writing methods based on the Names and Ordinals collections but a Caption that differs from the associated Name cannot currently be handled in a non Enum specific way. It wo...
Enum enhancement - Add FromOrdinal function
The Enum FromInteger is horribly named and very confusing because it is actually based on the Ordinal, NOT the Index which in what one thinks of initially. I doubt they are going to Obsolete it, so it would be very helpful to at least add a FromOrdinal function to clear up the confusion.
Add Length property to Text data type
Please add a Length property to the Text data type. StrLen is left over from C/Side days and should be replaced with a modern property name as has been done other places. Thanks
Add additional optional parameter to IndexOf function to support case insensitivity
Current Index := Text.IndexOf(Value: Text [, StartIndex: Integer]) Proposed Index := Text.IndexOf(Value: Text [, StartIndex: Integer] [, CaseInsensitive: Boolean]) Another option would be to use Culture information and allow String.Comparison
Expose a LastIndexOf function similar to the current IndexOf function
LastIndexOf would search from the end of the string backwards. Otherwise, its functionality would be identical to the existing IndexOf function. It should also include Case Insensitivity, as the following link requests for IndexOf. https://experience.dynamics.com/ideas/idea/?ideaid=f571e509-9fef...