Unified Service Desk Configuration
This guide describes b+s Connects for Microsoft Dynamics in Unified Service Desk (USD) additional/advanced configurations.
Prerequisites
- b+s Connects for Microsoft Dynamics installed and configured as outlined here.
- The Channel Communication Control is added to the Unified Interface form (e.g. contact) as described in Step 2 here.
Click-to-call
Step 1: Navigate to Hosted Controls.
Step 2: Search and open the Hosted Control which triggers the onclicktoact event (e.g. Contact).
Step 3: Specify the following properties.
Property | Value |
---|---|
Hosting Type | Chrome Process |
Step 4: Click Save to keep your changes.
Step 5: Navigate to Action Calls.
Step 6: Search for and open "Raise click to act event on CIF control".
Step 7: Provide the following properties and save your changes.
Property | Value |
---|---|
Name | Raise click to act event on CIF control |
Hosted Control | bsConnects |
Action | RaiseCifClientEvent |
Data | event = 'onclicktoact' data = '[[data]+]' |
Step 8: Navigate to Events.
Step 9: Create a new event, provide the following properties and save your changes (this example utilizes Contact).
Property | Value |
---|---|
Name | OnClickToAct |
Hosted Application | Contact |
Active Action | Raise click to act event on CIF control |
Limitation: USD CIF 1.0 translates + signs to spaces, in order to be able to dial a number with a leading plus, adjust the click-to-dial rules in the ServiceLayout. Example: [1,10]->^\s(\d+)->+$1
Collapsed Mode
Step 1: Navigate to Hosted Controls.
Step 2: Search for and open "Custom Panel".
Step 3: Edit the XAML definition.
Step 4: Find inside of <Grid>
with Grid.Row="2"
and AutomationProperties.Name="Main Panels"
the <Grid.ColumnDefinitions>
.
Step 5: Add <ColumnDefinition Width="auto" />
before the closing tag </Grid.ColumnDefinitions>
.
Step 6: Add the following XAML code after the </Grid.ColumnDefinitions>
.
<Grid Grid.Column="3" x:Name="CnxGrid" Width="300">
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<USD:USDDeckTabPanel x:Name="CnxPanelButton" AutomationProperties.Name="CNX Panel Button" Grid.Row="0" Height="25" />
<USD:USDDeckTabPanel x:Name="CnxPanel" AutomationProperties.Name="CNX Panel" Grid.Row="1" />
</Grid>
Step 7: Check if the code looks like:
<Grid Grid.Row="2" AutomationProperties.Name="Main Panels" Margin="0,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" /> <!-- this is the newly added ColumnDefinition -->
</Grid.ColumnDefinitions>
<Grid Grid.Column="3" x:Name="CnxGrid" Width="300">
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<USD:USDDeckTabPanel x:Name="CnxPanelButton" AutomationProperties.Name="CNX Panel Button" Grid.Row="0" Height="25" />
<USD:USDDeckTabPanel x:Name="CnxPanel" AutomationProperties.Name="CNX Panel" Grid.Row="1" />
</Grid>
Step 8: Click Save to keep your changes.
Step 9: Create a new hosted control and provide the following properties.
Property | Value |
---|---|
Name | Custom Panel Button |
Unified Service Desk Component Type | Standard Web Application |
Hosting Type | Chrome Process |
Application is Global | checked |
Display Group | CnxPanelButton |
Application is Dynamic | No |
Step 10: Click Save to keep your changes.
Step 11: Search and open the hosted control "bsConnects".
Step 12: Adjust the following property.
Property | Value |
---|---|
Display Group | CnxPanel |
Step 13: Navigate to Action Calls.
Step 14: Create a new action call.
Step 15: Provide the following properties and save your changes.
Property | Value |
---|---|
Name | Initialize UI mode to full on context |
Order | 1 |
Hosted Control | CRM Global Manager |
Action | CopyToContext |
Data | bsConnectsMode=1 |
Step 16: Create a new action call with the following properties.
Property | Value |
---|---|
Name | Set mode for CIF |
Order | 1 |
Hosted Control | Dashboard |
Action | RunXrmCommand |
Data | webResourceName=cnx_CIFXrmCommands.js functionName=setMode '[[mode]+]' |
Step 17: Click Save to keep your changes.
Step 18: Create a new action call with the following properties.
Property | Value |
---|---|
Name | Load collapse button |
Order | 1 |
Hosted Control | Custom Panel Button |
Action | Navigate |
Data | url=/WebResources/cnx_collapsebutton.html |
Step 19: Click Save to keep your changes.
Step 20: Create a new action call with the following properties.
Property | Value |
---|---|
Name | Change UI mode |
Order | 1 |
Hosted Control | bsConnects |
Action | RunScript |
Data (copy&paste):
var oldMode = '[[$Context.bsConnectsMode]+]';
if (oldMode === '1') {
window.open('http://event/?eventname=SetMode&mode=0');
} else {
window.open('http://event/?eventname=SetMode&mode=1');
}
Step 21: Click Save to keep your changes.
Step 22: Navigate to Events.
Step 23: Create a new event.
Step 24: Provide the following properties and save your changes.
Property | Value |
---|---|
Name | ToggleMode |
Hosted Application | Custom Panel Button |
Active Actions | Change UI mode |
Step 25: Create a new event with the following properties.
Property | Value |
---|---|
Name | SetMode |
Hosted Application | bsConnects |
Active Actions | Set mode for CIF |
Step 26: Click Save to keep your changes.
Step 27: Search for and open the event "DesktopReady".
Step 28: Adjust the following properties and save your changes.
Property | Value |
---|---|
Hosted Application | CRM Global Manager |
Active Actions | Load collapse button Initialize UI mode to full on context |
Custom Colors
Custom colors can be applied to the b+s Connects for Microsoft Dynamics.
Step 1: Navigate to Unified Service Desk Administrator.
Step 2: Navigate to Hosted Controls.
Step 3: Search for and open "bsConnects".
Step 4: Copy mainColor=[mainColor]&secondaryColor=[secondaryColor]
in Custom Parameters.
Step 5: Replace [mainColor]
and [secondaryColor]
with the desired colors.
Examples
The values of the colors can be defined in hexadecimal, RGB or HSL.
Custom Parameter | |
---|---|
Hexadecimal | mainColor=#001433&secondaryColor=#990000 |
RGB | mainColor=rgb(0,20,51)&secondaryColor=rgb(153,0,0) |
HSL | mainColor=hsl(216,100%,10%)&secondaryColor=hsl(0,100%,30%) |
Step 5: Save the configuration.
Customize USD
USD is highly customizable and the behavior of USD can be adjusted to meet customer requirements.
Example: if the customer wants to screen-pop a record on a specific criteria, the action call can be adjusted as follows:
Step 1: Navigate to Action Calls.
Step 2: Provide the following properties and save your changes.
Property | Value |
---|---|
Name | Open form for CIF |
Order | - |
Hosted Control | Dashboard |
Action | RunScript |
Data (copy&paste):
function rejectWithError(CifHostedControl, corrId, err, apiname){
var data = "corrId='"+ corrId + "' %0D%0A";
data += "action='reject' " + "%0D%0A";
data += "result=" + encodeURIComponent(JSON.stringify(err)) + "%0D%0A";
data += "api='" + apiname + "'";
window.top.notifyUSD("http://uii/"+CifHostedControl+"/UpdateCifContext?"+ data);
}
function resolvePromise(CifHostedControl, corrId, res, apiname){
var data = "corrId='"+ corrId + "' %0D%0A";
data += "action='resolve' " + "%0D%0A";
data += "result=" + encodeURIComponent(JSON.stringify(res)) + "%0D%0A";
data += "api='" + apiname + "'";
window.top.notifyUSD("http://uii/"+CifHostedControl+"/UpdateCifContext?"+ data);
}
function openForm(CifHostedControl, corrId, formOptions, formParams){
if("[[$Context.Id]+]".toLowerCase() === formOptions.entityId.toLowerCase()) {
resolvePromise(CifHostedControl, corrId, { message: 'record already open' }, "openform");
return;
}
Xrm.Navigation.openForm(formOptions, formParams).then(
function(res){
resolvePromise(CifHostedControl, corrId, res, "openform");
},
function(err){
rejectWithError(CifHostedControl, corrId, err, "openform");
}
);
}
openForm('bsConnects','[[corrId]+]',[[entityFormOptions]+],[[entityFormParameters]+]);