mscrm-addons.com - Blog

IMPORTANT INFORMATION

This blog is deprecated since July 2020.The articles below are no longer maintained and might contain outdated information. 
You can find the most acutal and relevenat information in our Knowledge Base at support.mscrm-addons.com

News.mscrm-addons.com Blog

rss

Hello and welcome to our blog! What can we do for you? Are you looking for further technical information or step-by-step instructions to our products? Or would you like to read the latest news on mscrm-addons? Please feel free to browse our blog for detailed information and to share our posts!


Conditional Formatting (Dynamics 365)

The Conditional Formatting is an additional feature to the Condition functionality of DCP. While the standard Condition functionalty either removes or keeps a field on your document the conditional formatting keeps the current format or applies a different format based on a Word style sheet. The description of the normal condition functionaltiy can be found here.
This functionality requires version 9.24 or higher of the client and version 2017.169 of the server (or service). 

 
  1. Insert a new Condition Field
    Figure 2: Insert Condition field

    If you are not sure how to get to the insert fields option, please take a look at this article first.

  2. Give your condition a descriptive name
    A descriptive name makes it easy to re-use existing conditions in a template.
  3. Select "Conditional formatting"
    You have to switch the condition type from Conditional block (if statement) to Conditional Formatting (❶)
    Condition field dialogFigure 3: Conditional Formatting

    PLEASE NOTE:  If you do not see this option please ensure you are having the required version installed. How to theck your current version is described here.

  4. Style section
    After you’ve selected the conditional formatting you can use the style section (❶). You only can use custom styles in this selection, so if the dropdow is not enabled you have to create a least a new style as described in the next step. 
    Condition field dialog
    Figure 4: Style selection section 

  5. Create new style
    This will bring up the standard word [Create New Style from Formatting] – dialog. 
    Condition field dialogFigure 5: Create a new style

    The "Create New Style from Formatting" – dialog has a lot of options so please make sure you read the following part very carefully.

     ❶ Name: Please define a name that will indicate what this style is used for. (You can re-use styles for all your conditions) 
     ❷ Style type: This is one of the most important steps during the creation of a Style.
    Within this selection field, you have 5 options to choose from, we support 3 of them. 
    Paragraph: The style will be applied to the whole Paragraph which contains this condition field 
    Character:  The style will be applied to the content within this condition field
    Table: This style type will enable the second selection field [Format – Apply to], where you can decide how it should be applied.
     ❸ Style based on: A base style template can be selected to create the custom style based on an existing style.

    Besides these three settings, you can use all given options to create your desired output style. 
    After you have the wanted style click on [OK] to save it.
     
    PLEASE NOTE:  
    - Do not change the Stylename! We have not option to identify a change of the name and the condition will not longer be able to find the style. 
    - Not all options available in the standard style sheet configuration of Word are applicable, and might be not applied dependend on the used style and the context.

  6. Select your Style
    Since you have created your style, the [Format – Style] selection is now enabled.
    Condition field dialogFigure 6: Select Style

    Choose your style and your conditional formatting field is ready to use.
    Character should be used when you want to apply the format to a single Word in a Paragraph while Paragraph should be used when you want to apply the formatting to the whole word paragraph.
  7. Apply table format
    If your selected style is a table style the "Format – Apply to" field gets enabled. This provides you the possibility to pick one out four ways how your table style should be applied.
    Condition field dialog
    Figure 7: Format - Apply to

    - First Table Inside Field: 
    This option will apply your style to the first table within your condition field.
    - Parent Table: 
    When your condition field is within an table, this option will apply the style to this table.
    - Parent Cell: The selected style will be applied to the cell which contains your condition field.
    - Parent Row: The selected style will be applied to the row which contains your condition field.

  8. Please click on [OK] to insert the condition field
    If you want to know more about the conditional formatting feature, please take a look at this step by step description. Click here

That’s it! We appreciate your feedback! Please share your thoughts by sending an email to support@mscrm-addons.com.


DocumentsCorePack Server Based Load Balancing Services

If there are many documents to be processed by a DocumentsCorePack service, it may occur that one service is not enough. This issue can be solved by installing a DocumentsCorePack (DCP) ServerBased Load Balancing Service. This article outlines the functionality of such a DCP Load Balancing Service and how to install it. 


Requirements: DocumentsCorePack Server Based (Online/OnPremise) version 2016.173 and higher

The functionality of the Load Balancing Service
Usually, if documents are generated by a service, all documents are assigned to the same service. No matter, if the documents are being processed as batches or single documents. The DCP SB Service processes one job after the other in the queue - comparable to a printing service. Because single documents are prioritized, the generation will always be processed between the batch document generation. This is why it can be really helpful to have multiple services to get a better performance.

The logic of the  LoadBalancer works as described in the following figure. The main priority always has the manually triggered document generation for single and batch documents. The LoadBalancer will always have one service reserved for single document generation - DCP Service 1, one for batch document generation and processes/workflows - DCP Service 2 and another one only for batch document generation - DCP Service 3. This means that only one queue is available for processes/workflows in your configuration because they run in the background and have a lower priority.

This is the minimum package of the DCP SB Load Balancing Service. It is possible to add more services to your LoadBalancer, where you can define more than one service for single document generation and batch document generation. 

Figure 1: Functionality of the DCP SB Load Balancing Service (example with 3 working services)

 

How to configure a Load Balancing Service online? 
First of all, please create a new service in DCP SB Online (If you have not set up a service yet, please have a look at this video or at the corresponding blog article). Once you have created a new service, you will be provided with the Online Configuratin window where you can configure your service in detail. If you have already configured a service, you get an overview of your hosted service(s). 

The Load Balancing licenses can be found on our website. You first have to choose which size of DCP you require and in the so opened window you can buy the DCP Load Balancing Service.  The minimum package contains three services. It is possible to add more services to your LoadBalance. This guarantees that the documents are generated as fast as possible. 

The configuration for Load Balancing Service is very easy. Select the service you want to configure in the Online Configuration window and click on the [configure load balancing]-button (highlighted in yellow).

 

The so opened Load Balancer Configuration window provides you with information about how many  Available Load Balancer Services you have. Here you can specify how many load balancer you want to configure  (please notice: there must be at least three) and how many services you want to reserve for single documents only. 

For example: There are 5 Load Balancing licenses available and want to configure all 5 and reserve 2 of them only for single documents and the rest are for batch document generation (see figure below). 

  Load Balancer Configuration windowFigure 3: Load Balancer Configuration window

 

How to create a Load Balancing Service in DocumentsCorePack Server Based On-Premise
(If you have not installed a service yet, please have a look at this article)

The creation of a Load Balancing Service in DCP Server Based On-Premise is different than in DCP SB Online. Therfore you need to set up a DCP SB service and categorize it as Load Balancing service. We recommend naming the service according to its future task (here: DCPLoadBalancer). Next, you create some more services and categorize them as subordinated to the Load Balancing Service.

Set a category for your Load Balancing Service
Basically you have to differentiate between the category for the main service and the category of the sub-services. 

The category number for the  main service consists of six digits and follows the below structure:

99XXYY

99..... categorizes the service as Load Balancing Service 
XX..... defines how many services are subordinated to the Load Balancing Service 
YY..... defines how many of these subordinated services are reserved for the generation of single documents only. It is mandatory to have at least 2 worker services for batch operations. That means the minimum configuration is 990301. If it is needed to have multiple single document services, it is mandatory to have at least 4 worker services and the configuration is 990402.

For example:
990502... There are 5 services subordinated to the Load Balancing Service and the first two services process single documents only. The other three services are reserved for the generation of batch documents. 

991105... There are 11 services subordinated to the Load Balancing Service and the first five services process single documents only. The other six services are reserved for the generation of batch documents. 

The categories must be set in the category field of the DCP Server Server Based On-Premise Service (highlighted in yellow below). However, it is recommended to set the batch delay to 10 seconds. 

Figure 4: Load Balancing Service for DCP ServerBased On-Premise

 

The Load Balancing Service can have many subordinated sub-services. The category number for the sub-service starts with 10 as you can see in the figure below. For each additional sub-service, the category number increases by 1 and continues with 11, 12, ..... As explained before, the category must be set in the category field, highlighted below.

Figure 5: Set category for the sub-service

How to remove the Load Balancing service (On-Premise)

  • Make sure there is only one DCP Service running for the organization with the Category: 0
  • Restore the default value for the “AzureServiceName” settingskey
    The name of the key must be "AzureServiceName" and the value has to be “none
  • Delete the “LBConfig” Settingskey
  • Shut down and restart the DCP service
  • Clear your browser cache and restart your browser

​​

That's it! We appreciate your feedback! Please share your thoughts by sending an email to support@mscrm-addons.com


AttachmentExtractor move email body

NOTE! This feature is still considered BETA and is used at own risk!

Overview

Starting with AE version 2017.26, AE is offering a new feature, allowing you to remove the email body text from within CRM and replace it with a text-only and line break conserving representation of the former email body. The complete email body content is moved to an azure blob storage and streamed into CRM on accessing the email.

CRM Timeline and CRM Activity overview will per default only show the shortened text to allow for more information in less space. 

Why?

Emails are often consisting of mostly HTML formatting information. Inlcuding header, footer and maybe an embedded company logo, the content of an EMPTY email can be up to 30 kilobytes in size. In most companies, an email conversation usually consists of several replies and each reply will replicate the full HTML content of the previous emails, adding those 30 kilobytes AGAIN on every answer you write and possibly the same sized formatting information from the recipient of the email.

Asuming the above, a conversation, that contains an email being answered 4 times is generating a total overhead of 550kb. Still not much, but it adds up.

If you have 100.000 emails in your system and only half of them would be part of a conversation as sketched above, those emails add up to 10.000 conversations at 5 emails, occupying up to 5 Gb of space in the ActivityPointerBase table without containing any information yet. Also the actual email text is being replicated in each answer, growing the size even further. Not to mention that nearly all of the one-direction emails will contain a certain amount of HTML information on their own.

Remember, as of Q2 2019, the maximum table size of the WHOLE CRM database (excluding attachments) is 10 GB without additional cost.

How?

AttachmentExtractor is inspecting each email in CRM and looks for known seperators of emails. If any is found, the email is cut and then all HTML tags except linebreaks are removed from the email body. The original body is stored in an AzureBlobStorage and the plaintext representation of the email body is left in CRM. When you are opening an email, a plugin will retrieve the unchanged emailbody from the AzureBlobStorage and replace the stripped down version with the full content.

What is not  supported?

AttachmentExtractor preserves both, the original modified by and modified on, therefore not all emails might be processed.

  • The email must habe a valid state/status combination
    (e.g. you cannot have a completed (state) draft (status) email, as CRM does not support this combination
    NOTE! As email state/status code pairs can be customized, AttachmentExtractor will only process emails, where those are still defined in CRM!
  • All activityparties of the email (from, to, cc, bcc) must be resolved to an existing entity in CRM
  • All activityparties of the email (from, to, cc, bcc) must have the "allow email" property set to allow.
  • Alternative email body storage options are NOT supported (due to accesstime) (Only AzureBlobStorage)

 

 

 

 


DocumentsCorePack UI issue

This blog article outlines how to proceed if attributes, options are not displayed when using the DocumentsCorePack Template Designer. ​The issue seems to be only appearing for Intel On Board Graphics when using multiple monitors.

Affected sections are for example the entity type, the attributes in the DCP Template Designer on the right side, the settings in the Advanced Template Settings dialog and the options in the Condition Field dialog as you can see in the figure below.

 

​If you are facing this problem, please go to File > Options > General and enable the Optimize for Compatibiltity checkbox in your MS Word (highlighted in the figure below). 

 

After a restart the affected sections should display the data again properly. ​

That’s it! We appreciate your feedback! Please share your thoughts by sending an email to support@mscrm-addons.com.


How to get debug information from DocumentsCorePack-Dialog

If you have any issues when using One-Click-Actions-Dialogue, this article outlines how to get debug information from DocumentsCorePack-Dialog so you can send it to us.

Open your CRM in this entity, where the error happens.

The very first thing you need to do to create the correct
logging info is please press F12

After pressing F12, a new Window opens.

Now please reproduce the problem/error that happened, when you want to create a Document.

Further steps depends on what ​Browser you are using:
If you are using Chrome, please click here.
If you are using Edge, please click here.
If you are using Firefox, please click here.

**************************************************************************

Steps for Chrome:

 

 

 

Please check the ending of the Filename, it must be ".log" and save it.

 

 

Now please find the Tab "Network" and open this view.

 

 

Here please click with right Mousebutton on a record and select "save all as har with content" in the Contextmenue.

 

  

Now please attach both files to an e-mail and send it to support@mscrm-addons.com

**************************************************************************

Steps for Edge:

 

 

 

Please mark the whole Text and copy it in a Word document or a Editor file and save it.

Now please find the Tab "Network" and open this view.

 

Please find the "save" button on top.

 

 

Please check the Filetype, it must be ".har" and save it.

 

  

Now please attach both files to an e-mail and send it to support@mscrm-addons.com

**************************************************************************

Steps for Firefox:

 

 

 

Please mark the whole Text and copy it in a Word document or a Editor file and save it.

 

Now please find the Tab "Network" and open this view.

 

 

 

Now please attach both files to an e-mail and send it to support@mscrm-addons.com

**************************************************************************

That’s it! We appreciate your feedback! Please share your thoughts by sending an email to support@mscrm-addons.com


Conditional access for Azure Active Directory

This blog article refers to Azure Active Directory (AAD) and outlines how to proceed if you are using the location condition in AAD conditional access and get the following error message "Blocked by conditional access". This error message can occur when creating a service for AttachmentExtractor or DocumentsCorePack. 

The location condition is the most common condition and enables you to tie access controls to the network locations of your users. More information on how to configure the location condition can be found in this article

Error handling
The following error message "Blocked by conditional access" means that we cannot access your Dynamics 365. The location condition in your AAD blocks access for users accessing a service from specific countries/regions or IP ranges.

IMPORTANT: 
You must extend your local condition by two further IP addresses in any case! You MUST include the configuration website (23.100.59.197) AND the service data center. Please notice, that you must specify the instance your service will be running on (e.g. EU North Live4). 

IP addresses of the instances:

  EU North Live4           

  52.164.188.105         

  EU North Live2

  40.113.90.52

  EU West Live2

  40.74.52.6

  EU West Live3

  52.174.69.125

  US Central

  40.69.141.181

  US East2

  52.167.112.212

  US West2

  13.91.55.23

  Australia East

  13.73.199.37

Figure 2: Instances

If your data center is not listed here, please contact our support for further details. 

That’s it! We appreciate your feedback! Please share your thoughts by sending an email to support@mscrm-addons.com.



Power Dialer sorting rules of phone calls

This blog article outlines how the PowerDialer sorts phone calls. First, the PowerDialer prioritizes calls where the user is the owner, then by priority of the call (high, normal, low).

After, it is possible to sort calls by a text field, number field or date field.

In case, the PowerDialer should take ascending order by a text subject field, then the user must set a server-side setting key "PTMPriorityString" with the value "subject"

In case, the PowerDialer should take the ascending order by a number index field, then the user must set a server-side setting key "PTMPriorityInt" with the value "index"

In case, that the PowerDialer should take the ascending order by a date-time actual start field, then the user must set a server-side setting key "PTMPriorityDateTime" with the value "actualstart"

As a value of the key setting, the attribute name should be used. 

Only one setting key for setting the order can be set.

 


That’s it! We appreciate your feedback! Please share your thoughts by sending an email to support@mscrm-addons.com.

Recap: eXtreme365 and User Group Summit in Amsterdam

An awesome week in the country of bikes, cheese, clogs, Heineken ....  ended. We had such a great time last week at eXtreme365 and User Group Summit in Amsterdam. Thank you for joining us! It was a pleasure for us to be part of such a great experience and to meet old and also new business partners and customers. 

The week started with extreme365 with a lot of great content from Microsoft and partners. It was a high-energy event where we could gain a deep-dive understanding of Microsoft´s roadmap, expert community insight on overcoming real-world challenges and exceptional relationship building. The atmosphere at eXtreme365 was perfect, which was due to the excellent speakers and truly informative sessions. The event was amazing and full of great people.

Followed by User Group Summit with crowds of people, great exhibitors and a lot of new contacts and customer meetings. Amazing keynote speakers, small group sessions, gripping speeches and lots of networking opportunities converted this event into a Microsoft Dynamics 365 festival. All in one we had great sessions and learned great Dynamics people! 

eXtreme365 & UG Summit - photo gallery

Also, we had the chance to showcase "Professional documents in Dynamics 365 for customer engagement PowerApps & Flow" live in front of a responsive audience. Michael Dohr outlined excellently how to standardize, simplify and automate your document processes with DocumentsCorePack. He showed different options to work with documents in: 

  • Customer Engagement: document design, generation, processing and automation within Dynamics 365
  • Flow: Generate and process documents in Microsoft Flow
  • PowerApps: Generate and process documents in a Canvas-App
  • Simple template design within Microsoft Word  

He also highlighted the values and benefits of our partner network, as well as the main advantages of our solutions for Microsoft Dynamics 365. It was awesome - crowded rooms at both events! 

All this mixed with Amsterdam spirit. We could not have spent this week better!
Thanks to all who came to meet the team! 

 


AttachmentExtractor plugin file access behavior

This blog article outlines the AttachmentExtractor plugin file access behavior if your service stops running. Please consider the following information: 

The plugins are license independent and will work regardless of the service's license state. 

SharePoint:
The plugin will always return a file as a .url link if it cannot access the stream. 

  • For Server2Server authentification the file access to stream the content of a file is requiring the service to run. The reason is that a new JWT token has to be created once every hour, which is not possible from within the plugin.
    Please notice: You must switch to Office 365 to have access to your attachments after stopping a service.  
  • Using Online Office 365 login is independent of the AttachmentExtractor service and will be able to access the file streams, as long as the credentials are valid. 

​​

AzureBlobStorage (ABS):

  • ABS is independent of the AttachmentExtractor service and will be able to access the file streams, as long as the SAS-Token is valid. 

That’s it! We appreciate your feedback! Please share your thoughts by sending an email to support@mscrm-addons.com.

 

 


Trigger a workflow in batch-operations from the dialog

This blog article outlines how to execute a workflow for each record in a batch process. Please also have a look at this blog article about how to process a generated document in a workflow from the dialog (in the single case). 

Please notice: The batch can ONLY run workflows that have been configured for the AutoMergeWorkingIntem entity.  In order to process the records themselves, a sub-workflow has to be triggered, which can be done by the custom workflow activity "DCPWorkflowSandbox:TriggerSubWorkflow" that comes with the installation of our solution.

Within this tutorial, we will create such workflows step-by-step. The result will be an invoice which will be sent to a batch of customers and after the terms of payment will be updated to Net 30 in Dynamics 365 for these customers as you can see in the figure below.


Step 1: Create sub-workflow 
Please open your Microsoft Dynamics 365 and navigate to Settings > Processes. In the My Processes - area, click on the [New]-button in order to create a new workflow.  A dialog pops up. Type in ❶ the name of your workflow, determine ❷ an entity - Contact in this case and select ❸ Workflow as the process category. Afterwards, hit the [OK]-button. 

 

The window below pops up, where you can configure your workflow in detail. Please check the  As an on-demand checkbox in the Available to Run-area and as Scope select  Organization. Next, please add a new step by hitting on the [Add Step]-drop-down menu and select ❸ Update Record

 

The dialog below opens. It allows you to configure your workflow. In this case, you have to select in the  Payment Terms drop-down menu Net 30. To finish the workflow, please do not forget to click on the ❷ [Save and Close]-button. 

 

After finishing the configuration, do not forget to activate your so created workflow by hitting the [Activate]-button located at the top.

Step 2: Create the AutoMergeWorkingIntem workflow which triggers the sub-workflow
As explained before, please create a new workflow. The window below pops up, where you can configure your workflow in detail. Please check the  As an on-demand checkbox in the Available to Run-area and as Scope select  Organization. Next, please add a new step by hitting on the [Add Step]-drop-down menu and select the ❸ DCPWorkflowSandbox - TriggerSubWorkflow workflow activity

 

Next, please configure your workflow. Please set the cursor in the  PrimaryRecordUrl-field and select  PrimaryRecordUrl in the drop-down menu in the Form Assistant, click on the [Add]-button and hit the [OK]-button below (highlighted in yellow). The PrimaryRecordUrl-field is filled now. Then please search  the sub-workflow "Update contact" you created before and do not forget to hit the [Save and Close]-button at the top.

 

After finishing the configuration, do not forget to activate your so created workflow by hitting the [Activate]-button located at the top.

That´s it - you can now use your workflow - Trigger "Update contact" workflow in the DCP dialog (please have a look at figure 11 at the bottom). Considering that sending an invoice to customers and updating the terms of payment is a commonly used action, we recommend creating a one-click-action to automate the process. So please continue with step 3. 

Step 3: Create a Batch One-Click-Action
Please open the DocumentsCorePack Config Page by navigating to Dynamics 365-> Settings -> MSCRM-ADDONS -> DocumentsCorePack -> One-Click-Actions and hit the [Create Document]-button. You have to create a new One-Click-Action for the entity Contact in this case, so please hit  the [New Batch]-button and type in ❷ the name of your One-Click-Action. 

After hitting the [OK]-button, you will be provided with the configuration window for Batch Actions. More information about how to configure a One-Click-Action can be found in this blog article. Important is, that you check the Run workflow checkbox in your Processing Settings and select the so created workflow: Trigger "Update contact" workflow (highlighted in yellow below). 

 

Step 4: Use the One-Click-Action
If a Dynamics 365 user now selects some records from the entity Contact and clicks on the [Create Document]-button, the user will be automatically provided with the new One-Click-Action "Send invoice via mail and update contact after". 

 

Hit the [Next]-button to continue. As shown in the figure below, the dialog  attaches the invoice as an email attachment and by checking the ❷ Run workflow checkbox you can start the so created workflow, which triggers the "Update contact" as you can see below. 

 

The result will be an invoice which will be sent to a batch of customers and after the terms of payment will be updated to Net 30 in Dynamics 365 for these customers (as in figure 1).

 

That’s it! We appreciate your feedback! Please share your thoughts by sending an email to support@mscrm-addons.com.