Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
yagasoft committed Dec 12, 2023
2 parents dc41483 + 2ca1d5d commit 4cea12a
Showing 1 changed file with 11 additions and 34 deletions.
45 changes: 11 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,47 +6,24 @@

A parser that resolves many challenges that come up in the context of Dynamics 365 dynamic text.

A rework of the YS Common 'AttributeParser' ([DynamicsCrm-Libraries](https://github.com/yagasoft/DynamicsCrm-Libraries)) to avail much more powerful text features.

## Features

+ Unique construct that guarantees it won't occur naturally in any text, which increases the solution's robustness
+ Supports parsing expressions; e.g., x>1&&y<3, which can also be used with column values
+ Supports selecting sub-text in the output using regular expressions for post-processing (see post-processors below)
+ Constructs:
+ Column: retrieve a column value from CRM
+ Preload: performance improvement by caching from CRM
+ Reference: loads related rows from CRM, or executes a FetchXML or Action
+ Row info: displays information related to the current row
+ User info: displays information related to the current user, or the user with the given ID
+ Template: defines a block of text for reuse to be referenced later in the text
+ Discard: performs an operation and then discards the result
+ Replace: replace a pattern in the text
+ Dictionary: retrieve a value from the key-value table from CRM
+ Common config: retrieve a column value from the Common Configuration table
+ Inline config: set options on the fly
+ Preprocessors:
+ Store: stores the value so far in the pipeline in memory
+ Read: restores the value from memory
+ Distinct: keeps only unique rows retrieved by the reference-construct
+ Order: orders the rows retrieved by the reference-construct
+ Localise: sets the language of the construct context
+ Post-processors:
+ Store and Read
+ String ops
+ Length, Index, Substring, Trim, Pad, Truncate, Upper, Lower, Sentence case, Title case, Extract text, Replace, Split, HTML
+ Format:
+ Date and Number
+ Collection:
+ Count, First, Last, Nth, Top, Distinct, Order, Where, Filter
+ Operations: +, -, *, /, ==, <=, ??, ?:, &&, || ... etc.
+ CRM queries: retrieve row, FetchXML, actions
+ Traversal: columns and relationships
+ Collection functions: sum, min, max, distinct, map, count, filter, ... etc.
+ Date functions: add days, months, ... etc.; output in a custom format ... etc.
+ String functions
+ Functions: length, sub-string, trim, pad, title case, format numbers, encode HTML ... etc.
+ Regex: functions to target part of the input text only
+ Memory: supports variables (store and load of values)

## Install

Import solution found at .
The [Dynamics365-YsCommonSolution](https://github.com/yagasoft/Dynamics365-YsCommonSolution) solution is required for the configuration entities. It can be skipped if the dictionary or configuration constructs are not needed.

Install either [Yagasoft.Libraries.Common](https://www.nuget.org/packages/Yagasoft.Libraries.Common/) (DLL installed) or [Yagasoft.Libraries.Common.File](https://www.nuget.org/packages/Yagasoft.Libraries.Common.File/) (the parser class itself is embedded in the project itself) NuGet package, and then reference the CrmParser class.

If configuration entities are required, import the solution at [Dynamics365-YsCommonSolution](https://github.com/yagasoft/Dynamics365-YsCommonSolution).

## Guide

Check the guide in the docs folder.
Expand Down

0 comments on commit 4cea12a

Please sign in to comment.