Nice post !
Seriously. Where have the radio buttons gone for “Two Options” type bit fields in CRM 2013?!
View original post 307 more words
Nice post !
Seriously. Where have the radio buttons gone for “Two Options” type bit fields in CRM 2013?!
View original post 307 more words
Recently we upgraded our CRM 2011 solution to CRM 2013.
After upgrade labels for few of the attributes were not displaying properly.

Changing the section’s width for the label area resolved this.

After publishing the change à

Helpful post :-
http://www.powerobjects.com/blog/2014/03/05/adjusting-crm-2013-field-label-sizes/
Bye.
Hi,
We were using the below function in CRM 2011 for disabling all the fields in the form.
function makeAllAttributesReadOnly() {
var attributes = Xrm.Page.data.entity.attributes.get();
for (var i in attributes) {
var myattribute = Xrm.Page.data.entity.attributes.get(attributes[i].getName());
var myname = myattribute.getName();
Xrm.Page.getControl(myname).setDisabled(true);
}
}
However this function in CRM 2013 was giving us setDisabled field is undefined JavaScript error.
As it turned out it was because of the StateCode (Status) field in CRM 2013.

Modifying the above code to leave this particular field resolved the issue.
function makeAllAttributesReadOnly() {
var attributes = Xrm.Page.data.entity.attributes.get();
for (var i in attributes) {
var myattribute = Xrm.Page.data.entity.attributes.get(attributes[i].getName());
var myname = myattribute.getName();
if(myname == "statecode")
{
return;
}
Xrm.Page.getControl(myname).setDisabled(true);
}
}
Hope it helps.
Hi, after importing our CRM 2011 solution into CRM 2013 org, we faced one strange issue in one of the attributes.
As we can see below the text box (ellipsis) was missing for Client Alias 3 attribute.

Opening the form for customization, and checking the field details didn’t reveal anything different.

Then we gave it a try by moving the Owner Field (not visible by default) to bottom of that section beneath Client Alias 3 field and published the customization.

Strangely enough the text box start appearing for the Client Alias 3 field.

Still wondering what would be the possible reason behind this issue.
Bye.
Recently we had a requirement to add checkboxes in our mail merge templates. There are two options of adding checkboxes one is adding them as a symbol if we want user to check them after taking print out or if we want them to be clickable inside the word document itself using content control.
Check this helpful post
Hope it helps.
Hi,
Recently we had a requirement to disable Add New and Edit button of a sub grid record based on parent record’s attribute value.
For this we first need to add a new EnableRule and pass the id of the parent record to a custom function that will use this value to get value of the form and pass true and false accordingly.
FirstPrimaryItemId CRMParameter will pass the id of the parent record.
<EnableRule Id="new.new_fcm_child.EnableRule2.EnableRule"> <CustomRule FunctionName="DisableButton" Library="$webresource:new_myScript" Default="true"> <CrmParameter Value="FirstPrimaryItemId" /> </CustomRule> </EnableRule>
Adding this EnableRule to existing CommandDefinitions
<RibbonDiffXml> <CustomActions /> <Templates> <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates> </Templates> <CommandDefinitions> <CommandDefinition Id="Mscrm.AddNewRecordFromSubGridStandard"> <EnableRules> <EnableRule Id="Mscrm.AppendToPrimary" /> <EnableRule Id="Mscrm.EntityFormIsEnabled" /> <EnableRule Id="new.new_fcm_child.EnableRule2.EnableRule" /> </EnableRules> <DisplayRules> <DisplayRule Id="Mscrm.ShowForOneToManyGrids" /> <DisplayRule Id="Mscrm.AppendToPrimary" /> <DisplayRule Id="Mscrm.CreateSelectedEntityPermission" /> <DisplayRule Id="Mscrm.AppendSelected" /> <DisplayRule Id="Mscrm.HideAddNewForChildEntities" /> </DisplayRules> <Actions> <JavaScriptFunction FunctionName="Mscrm.GridRibbonActions.addNewFromSubGridStandard" Library="/_static/_common/scripts/RibbonActions.js"> <CrmParameter Value="SelectedEntityTypeCode" /> <CrmParameter Value="PrimaryEntityTypeCode" /> <CrmParameter Value="FirstPrimaryItemId" /> <CrmParameter Value="PrimaryControl" /> </JavaScriptFunction> </Actions> </CommandDefinition> <CommandDefinition Id="Mscrm.EditSelectedRecord"> <EnableRules> <EnableRule Id="Mscrm.CheckBulkEditSupportForEntity" /> <EnableRule Id="Mscrm.VisualizationPaneNotMaximized" /> <EnableRule Id="new.new_fcm_child.EnableRule2.EnableRule" /> </EnableRules> <DisplayRules> <DisplayRule Id="Mscrm.BulkEditPrivilege" /> <DisplayRule Id="Mscrm.WriteSelectedEntityPermission" /> </DisplayRules> <Actions> <JavaScriptFunction FunctionName="Mscrm.GridRibbonActions.bulkEdit" Library="/_static/_common/scripts/RibbonActions.js"> <CrmParameter Value="SelectedControl" /> <CrmParameter Value="SelectedControlSelectedItemReferences" /> <CrmParameter Value="SelectedEntityTypeCode" /> </JavaScriptFunction> </Actions> </CommandDefinition> </CommandDefinitions> <RuleDefinitions> <TabDisplayRules /> <DisplayRules> <DisplayRule Id="Mscrm.AppendSelected"> <EntityPrivilegeRule PrivilegeType="Append" PrivilegeDepth="Basic" AppliesTo="SelectedEntity" /> </DisplayRule> <DisplayRule Id="Mscrm.AppendToPrimary"> <EntityPrivilegeRule PrivilegeType="AppendTo" PrivilegeDepth="Basic" AppliesTo="PrimaryEntity" /> </DisplayRule> <DisplayRule Id="Mscrm.BulkEditPrivilege"> <MiscellaneousPrivilegeRule PrivilegeName="BulkEdit" /> </DisplayRule> <DisplayRule Id="Mscrm.CreateSelectedEntityPermission"> <EntityPrivilegeRule PrivilegeType="Create" PrivilegeDepth="Basic" AppliesTo="SelectedEntity" /> </DisplayRule> <DisplayRule Id="Mscrm.HideAddNewForChildEntities"> <OrRule> <Or> <EntityPropertyRule AppliesTo="SelectedEntity" PropertyName="IsChildEntity" PropertyValue="false" /> </Or> <Or> <RelationshipTypeRule AppliesTo="SelectedEntity" AllowCustomRelationship="false" /> </Or> </OrRule> </DisplayRule> <DisplayRule Id="Mscrm.ShowForOneToManyGrids"> <RelationshipTypeRule AppliesTo="SelectedEntity" RelationshipType="OneToMany" /> </DisplayRule> <DisplayRule Id="Mscrm.WriteSelectedEntityPermission"> <EntityPrivilegeRule PrivilegeType="Write" PrivilegeDepth="Basic" AppliesTo="SelectedEntity" /> </DisplayRule> </DisplayRules> <EnableRules> <EnableRule Id="new.new_fcm_child.EnableRule2.EnableRule"> <CustomRule FunctionName="DisableButton" Library="$webresource:new_Service_Request_Script" Default="true"> <CrmParameter Value="FirstPrimaryItemId" /> </CustomRule> </EnableRule> <EnableRule Id="Mscrm.AppendToPrimary"> <RecordPrivilegeRule PrivilegeType="AppendTo" AppliesTo="PrimaryEntity" /> </EnableRule> <EnableRule Id="Mscrm.CheckBulkEditSupportForEntity"> <OrRule> <Or> <SelectionCountRule AppliesTo="SelectedEntity" Minimum="1" Maximum="1" /> </Or> <Or> <SelectionCountRule AppliesTo="SelectedEntity" Minimum="2" /> <CustomRule FunctionName="Mscrm.RibbonActions.isBulkEditEnabledForEntity" Library="/_static/_common/scripts/RibbonActions.js"> <CrmParameter Value="SelectedEntityTypeCode" /> </CustomRule> </Or> </OrRule> </EnableRule> <EnableRule Id="Mscrm.EntityFormIsEnabled"> <FormStateRule State="Disabled" InvertResult="true" /> </EnableRule> <EnableRule Id="Mscrm.VisualizationPaneNotMaximized"> <CustomRule FunctionName="Mscrm.RibbonActions.disableButtonsWhenChartMaximized" Library="/_static/_common/scripts/RibbonActions.js"> <CrmParameter Value="SelectedControl" /> </CustomRule> </EnableRule> </EnableRules> </RuleDefinitions> <LocLabels /> </RibbonDiffXml>
The JavaScript code
// function to disable related record
function DisableButton(id) {
//CRM Server Url:
var result = true;
var serverUrl = Xrm.Page.context.getServerUrl();
// OData Call to get the data
var ServiceRequestQuery = "new_CustomEntitySet?$select=attr1,attr2&$filter=attrId eq guid'" + id + "'";
var ServiceRequestUrl = serverUrl + "/XRMServices/2011/OrganizationData.svc/" + ServiceRequestQuery;
// make synchronous call
var ServiceRequest= syncODataCall(ServiceRequestUrl);
// get the option set value
if (ServiceRequest[0].attr1 != null && ServiceRequest[0].attr2 != null) {
var attr1Value = ServiceRequest[0].attr1.Value;
var attr2Value = ServiceRequest[0].attr2 .Value;
if (attr1Value != "863600004" && attr2Value == "279640002") {
result = false;
}
else {
result = true;
}
}
return result;
}
// function to make synchronous oData call
function syncODataCall(odataSelect) {
var request = new XMLHttpRequest();
request.open("GET", odataSelect, false);
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json; charset=utf-8");
request.send();
var objJQuery = JSON.parse(request.responseText);
return objJQuery.d.results;
}
Hope it helps