An undeclared property ‘new_bulkadjustment’ which only has property annotations in the payload but no property value was found in the payload.

Recently, I was running into an issue on xrm.webAPI.createRecord, when trying to update the lookup attribute to the entity object.

The oData naming convention for lookup attribute and the documentation around it asks you to use the schema name of the field with @odata.bind:

entity[“new_BulkAdjustment@odata.bind”] = “/new_revcontacts(00000000-0000-0000-a000-000d0a000a00)”;

This did not resolve the issue. I tried few other combinations using the REST builder, but unfortunately, nothing worked.

The way to set the lookup is:



new_BulkAdjustmnet is a lookup field on new_revcontact entity.


USD Outbound call – Triggering an UII action from a Session Overview

In USD session overview xaml, you can trigger an event or UII action through a command parameter. You can pass the replacement parameters as parameters to this UII action.

In this example, we will trigger an UII action. Additionally, we will pass the telephone number and agent Id to this UII action. The xaml for the telephone number attribute and the command parameter looks like this:

<Image Style=”{DynamicResource ImageLogo}” Source=”{Binding Source=msdyusd_Phone16, Converter={StaticResource CRMImageLoader}}” />

    <TextBlock  TextWrapping=”Wrap” Padding=”5,0,0,5″ FontSize=”12″ Text=”Mobile: ” Foreground=”#262626″  VerticalAlignment=”Center”>

  <Hyperlink Command=”CCA:ActionCommands.DoActionCommand” CommandParameter=”http://uii/CTIConnector/MakeCall?tel:%5B%5Bcontact.mobilephone%5Du+x%5D%26agentid:%5B%5Bsystemuser.edw_agentid%5Du+x%5D”&nbsp; FontWeight=”Regular” AutomationProperties.Name=”Telephone Number [[contact.mobilephone]+x]”  Foreground=”#FF3B79B7″ FontSize=”12″>[[contact.mobilephone]+x]</Hyperlink>





NOTE: To pass more than one parameter in the command parameter URL, always use encoded format. In the above example, & is encoded as %26. You can’t pass & but the encoded format of ‘&’ which is %26

MakeCall is the custom UII action. I am overriding this action in the CtiConnector custom code. The code will perform the outbound call through a telephony system.

From the session overview on USD, click on the mobile phone link

Couple of things to note:

In this example, we have one command parameter. If you want to add an additional command parameter in the xaml, you need to add an additional hyperlink element. This is not recommended.

If you want to trigger or perform multiple actions through this command parameter, the best way to do it is adding a new event and fire that event through the command parameter. For example, in the same example, if you want to trigger a phone call and also create a phone call record, you can handle this through the event.

You can fire the event through this command:


FireOutboundCall is the event that is being triggered. You can create this new event on the hosted control Patient, and add action calls

Azure Virtual Network (AVN) and Subnets

Azure Virtual Network (AVN) and Subnets


Azure Virtual Network is a home for virtual machines

AVN consists of an IP address range

Subnet is a logical separation of resources that you can have in a virtual network.

Each subnet has an address range and is a subset of address range of the AVN

You can spin up VMs in each of the subnets

Each VM has an IP address which is part of the subnet address range

The VM IP addresses ( & are private IP addresses and is basically used for the internal communication between the VMs – Public IP address – Users can access the application hosted on the VM from the internet

The other subnet does not have a public IP address. This VM could be used to host the database that should not be exposed to the public/internet

Network Security Groups

  • are used to control the flow of traffic into and out of the virtual machine
  • is a seperate resource defined in the azure platform
  • gets attached to the network interface that is attached to the virtual machine
  • can be attached to the network interface card (network security card – In this case, it just impacts that VM) to one VM or linked to the whole subnet (in this case, it affects the entire VMs on that subnet)
  • NSG consists of Inbound and Outbound security roles
  • When an NSG is created, some default inbound and outbound rules are already created which cannot be removed or changed
  • By default, the virtual machine does not allow traffic from the outside world, therefore you need to implement inbound rules and open the port 80 (http listener).
  • You have to setup rules accordingly to allow traffic on port 80. Source is IP address of your computer or the internet (for all users). Destination is your virtual machine/virtual network.

If you want to connect to VM using RDP, then add an inbound rule for RD for port 3389

Source of the Inbound traffic rules

Denying the inbound traffic from a certain is controlled by priority – Example.

A request is sent and goes through the rules, if a match is found, then that rule is executed.

Destination depends on network interface (VM specific) and subnet (group of VMs)

If the network security group is attached to the subnet, then specify the IP addresses of the virtual machines that will allow the incoming traffic