Hi, Just posting a sample code for creating appointment record in CRM 2011.Uri organizationUri = new Uri(<a href="http://CRM2011/orgName/XRMServices/2011/Organization.svc">http://CRM2011/orgName/XRMServices/2011/Organization.svc</a>); Uri homeRealmUri = null; ClientCredentials credentials = new ClientCredentials(); credentials.Windows.ClientCredential = new System.Net.NetworkCredential("administrator", "password", "contoso"); OrganizationServiceProxy orgProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null); // Get the IOrganizationService IOrganizationService orgService = (IOrganizationService)orgProxy; // create entity record Entity appointment = new Entity(); appointment.LogicalName = "appointment"; appointment.Attributes["subject"] = "App at " + DateTime.Now.ToString(); appointment.Attributes["scheduledstart"] = new DateTime(); appointment.Attributes["scheduledstart"] = DateTime.Now.AddDays(1); appointment.Attributes["scheduledend"] = new DateTime(); appointment.Attributes["scheduledend"] = DateTime.Now.AddDays(1).AddHours(2); // create activity party record Entity activityParty = new Entity(); activityParty.LogicalName = "activityparty"; activityParty.Attributes["partyid"]=new EntityReference("systemuser",new Guid("userGuid")); EntityCollection colAP = new EntityCollection(); colAP.Entities.Add(activityParty); appointment.Attributes["organizer"] = new EntityCollection(); appointment.Attributes["organizer"] = colAP; // If we use the bookrequest class it will fail // and gives ResourceBusy error in case of scheduling conflict // so simply create the appointment without using book request // to make it appear in the calendar // BookRequest bookRequest = new BookRequest(); // bookRequest.Target = appointment; try { // BookResponse booked = (BookResponse)orgService.Execute(bookRequest); string appGuid = orgService.Create(appointment).ToString(); } catch (Exception ex) { string exMessage = ex.Message; }Hope it helps !
Tag: Microsoft Dynamics CRM
Exception message “entityName” in CRM 2011
Hi,
We get the “entityName” exception if we haven’t specified value for LogicalName property of Entity class. (easy to figure out 🙂 )
Hope it helps!
Using Bulk Data Export tool of CRM 4.0 with CRM 2011
We need to make following changes to get the Bulk Data Export tool for CRM 4.0(http://mscrmbulkdataexport.codeplex.com/workitem/list/basic) to work with CRM 2011.
Change the app.config of the tool
http://mscrmuk.blogspot.com/2011/02/using-crm-40-assemblies-on-crm-2011.html
<runtime>
<assemblyBinding
xmlns=“urn:schemas-microsoft-com:asm.v1“><dependentAssembly>
<assemblyIdentity
name=“Microsoft.Crm.Sdk“
publicKeyToken=“31bf3856ad364e35“
culture=“neutral“/>
<publisherPolicy
apply=“no“/>
</dependentAssembly>
</assemblyBinding>
</runtime>
And add references to the 64 bit version of Microsoft.crm.sdk and Microsoft.crm.sdktypeproxy dlls. (Which we can get from its SDK)
http://www.box.net/shared/z6z1dcby0k
Hope it helps.
Plugin for Resolve Case action against Incident Entity. (CRM 4.0)
We had a requirement wherein we wanted to update one of the fields in the incident record when we are resolving it through (Actionà Resolve Case).
Here we had to write a Pre-Update plugin registered on Child Pipeline against incident entity.
More on that
http://roman20007.wordpress.com/2010/04/25/resolve-case-event-in-plugin/
http://social.microsoft.com/Forums/en-HK/crmdevelopment/thread/ef1e594f-f50b-484e-a166-285429df8e4d
Hope it helps.
Calling On Demand Workflow through a Button in Ribbon (launchOnDemandWorkflow) in CRM 2011
I had to call an on demand workflow through a custom button click inside the ribbon. I thought of using launchOnDemandWorkflow function.
http://inogic.blogspot.com/2009/06/call-workflow-from-isv-button.html
But couldn’t really find a way of calling that function.
So thought of calling it through its url, which would be something like this
http://servername/orgname/_grid/cmds/dlg_runworkflow.aspx?
iObjType=10004
&iTotal=1
&sIds=%7b4BEBDCAF-8F66-E011-A475-00155D045711%7d%3b
&wfId=%7bF0ED25C7-5129-4297-8515-69DFFA0739FF%7d
function CallOnDemandWorkflow() {
var recordID = crmForm.ObjectId;
var url = “http://server/org/_grid/cmds/dlg_runworkflow.aspx?iObjType=10004&iTotal=1&sIds={“ + recordID + “}&wfId={F0ED25C7-5129-4297-8515-69DFFA0739FF}”;
window.open(url);
}
However I keep getting some JavaScript Error.
Finally found out the correct way of doing so.
function CallOnDemandWF() {
var a = new Array(crmFormSubmit.crmFormSubmitId.value);
var sIds = crmFormSubmit.crmFormSubmitId.value+“;”;
var sEntityTypeCode = “10004”; //Replace this with your entity type code
var sWorkflowId = “{F0ED25C7-5129-4297-8515-69DFFA0739FF}”; //Replace this with your actual workflow ID
var iWindowPosX = 500; //Modal dialog position X
var iWindowPosY = 200; //Modal dialog position Y
var oResult = openStdDlg(prependOrgName(“/_grid/cmds/dlg_runworkflow.aspx”)+“?iObjType=” + CrmEncodeDecode.CrmUrlEncode(sEntityTypeCode) + “&iTotal=” +
CrmEncodeDecode.CrmUrlEncode(a.length) + “&wfId=” + CrmEncodeDecode.CrmUrlEncode(sWorkflowId)+ “&sIds=” + CrmEncodeDecode.CrmUrlEncode(sIds) , a, iWindowPosX, iWindowPosY);
}
Check out the thread
http://axforum.info/forums/showthread.php?t=29333
Final Output

The ribbondiffxml used is following
<RibbonDiffXml>
<CustomActions>
<CustomAction
Id=“CA_MyFirstButton”
Location=“Mscrm.Form.new_rip.MainTab.Workflow.Controls._children”
Sequence=“31“>
<CommandUIDefinition>
<Button
Id=“B_MyFirstButton”
Command=“Cmd_JavaScript”
LabelText=“Invite Service Member”
ToolTipTitle=“Invite User”
ToolTipDescription=“Use this workflow to invite Service Member to the portal”
TemplateAlias=“o1”
Image16by16=“/_imgs/ribbon/startdialog_16.png”
Image32by32=“/_imgs/ribbon/startdialog_32.png“></Button>
</CommandUIDefinition>
</CustomAction>
</CustomActions>
<Templates>
<RibbonTemplates
Id=“Mscrm.Templates“/>
</Templates>
<CommandDefinitions>
<CommandDefinition
Id=“Cmd_JavaScript“>
<EnableRules>
<EnableRule
Id=“Mscrm.Enabled“></EnableRule>
</EnableRules>
<DisplayRules></DisplayRules>
<Actions>
<JavaScriptFunction
Library=“$webresource:new_InOut”
FunctionName=“CallOnDemandWF”
>
</JavaScriptFunction>
</Actions>
</CommandDefinition>
</CommandDefinitions>
<RuleDefinitions>
<TabDisplayRules/>
<DisplayRules/>
<EnableRules/>
</RuleDefinitions>
<LocLabels/>
</RibbonDiffXml>
Bye.
Initializing and setting DefaultCrendentials for OrganizationService in CRM 2011
I created a simple windows application just to see how to make use of IOrganizationService within CRM 2011.
Here we need to add references to the following dlls
- Microsoft.Xrm.Sdk.
- System.ServiceModel.
- System.Runtime.Serialization.
This is the sample code
Uri organizationUri = new Uri("http://crmservername/orgname/XRMServices/2011/Organization.svc");
Uri homeRealmUri = null;
ClientCredentials credentials = new ClientCredentials();
// set default credentials for OrganizationService
credentials.Windows.ClientCredential = (NetworkCredential)CredentialCache.DefaultCredentials;
// or
credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
OrganizationServiceProxy orgProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null);
IOrganizationService _service = (IOrganizationService)orgProxy;
try
{
Entity myAccount = new Entity("account");
myAccount["name"] = "Test Account";
_service.Create(myAccount);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
