Dynamics crm 无法使用REST javascript检索货币属性
我正在为我的自定义实体调整位于此处的REST示例 它检索并显示除money之外的所有属性的表。也就是说,如果我请求的属性不包括money类型的属性,则表将显示该属性。添加货币属性后,将不显示任何内容。下面是我的自定义html。我使用的是示例vs解决方案中包含的相同SDK.OptionSetSample.jsDynamics crm 无法使用REST javascript检索货币属性,dynamics-crm,dynamics-crm-2011,Dynamics Crm,Dynamics Crm 2011,我正在为我的自定义实体调整位于此处的REST示例 它检索并显示除money之外的所有属性的表。也就是说,如果我请求的属性不包括money类型的属性,则表将显示该属性。添加货币属性后,将不显示任何内容。下面是我的自定义html。我使用的是示例vs解决方案中包含的相同SDK.OptionSetSample.js <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Contacts Page</title>
<script src="../../ClientGlobalContext.js.aspx" type="text/javascript"></script>
<script src="Scripts/json2.js" type="text/javascript"></script>
<script src="Scripts/SDK.OptionSetSample.js" type="text/javascript"></script>
<script src="Scripts/SDK.MetaData.js" type="text/javascript"></script>
<script src="Scripts/SDK.REST.js" type="text/javascript"></script>
<link href="Styles/OptionSetSample.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var attributes = [
"new_revenuesportspartnershipsId",
"new_name",
"new_PledgeorCash",
"new_Designation",
"new_DonorStatus"
, "new_FY2011"
];
var ContactListTableData = {
Id: "ContactList",
BodyId: "ContactListBody",
CheckboxColumn: true,
SearchFieldId: "SearchString",
CreateButtonId: "createContact",
DeleteButtonId: "deleteSelectedRecords",
Columns: [
{ Name: "new_name" },
{ Name: "new_PledgeorCash" },
{ Name: "new_Designation" },
{ Name: "new_DonorStatus" }
,{ Name: "new_FY2011" }
]
};
var CurrentContactForm = {
Id: "CurrentContact",
SaveButtonId: "SaveCurrentContact",
CloseFormControlId: "closeFormSpan"
};
window.onload = function () {
SDK.OptionSetSample.Entity = "new_revenuesportspartnerships";
SDK.OptionSetSample.Columnset = attributes;
SDK.OptionSetSample.PrimaryIdAttribute = "new_revenuesportspartnershipsId";
SDK.OptionSetSample.TextSearchAttribute = "new_name";
SDK.OptionSetSample.PrimaryAttribute = "new_name";
SDK.OptionSetSample.TableData = ContactListTableData,
SDK.OptionSetSample.FormData = CurrentContactForm;
//Get the Attribute metadata
SDK.OptionSetSample.getAttributeMetadataCollection.Execute();
}
</script>
</head>
<body>
<ul id="message">
</ul>
<div>
<button id="createContact">
Create</button>
<button id="deleteSelectedRecords" disabled="disabled">
Delete Selected Contacts</button>
<span id="searchBy">Search by Full Name :</span><input id="SearchString" type="text" />
<table id="ContactList" class="RecordList" />
</div>
<div id="CurrentContact" class="editForm">
<span id="closeFormSpan" class="closeFormSpan">X</span>
<!-- Only Boolean, Picklist, Status, and String attribute types are supported in this sample.-->
<div id="new_nameField">
</div>
<div id="new_PledgeorCashField">
</div>
<button id="SaveCurrentContact" disabled="disabled">
Save</button>
</div>
</body>
</html>
联系人页面
变量属性=[
“新收入体育俱乐部”,
“新名称”,
“新抵押贷款”,
“新指定”,
“新捐助国”
,“2011财年新课程”
];
var ContactListTableData={
Id:“联系人列表”,
BodyId:“ContactListBody”,
CheckboxColumn:true,
SearchFieldId:“SearchString”,
CreateButtonId:“createContact”,
DeleteButtonId:“deleteSelectedRecords”,
栏目:[
{Name:“新名称”},
{名称:“新抵押贷款”},
{名称:“新名称”},
{名称:“新捐助国”}
,{名称:“2011财年新增”}
]
};
var CurrentContactForm={
Id:“当前联系人”,
SaveButtonId:“SaveCurrentContact”,
CloseFormControlId:“closeFormSpan”
};
window.onload=函数(){
SDK.options setsample.Entity=“新建收入体育项目”;
SDK.OptionSetSample.Columnset=属性;
SDK.options setsample.primarydataAttribute=“new_revenuesportspartnershipsId”;
SDK.OptionSetSample.TextSearchAttribute=“新名称”;
SDK.OptionSetSample.PrimaryAttribute=“新名称”;
SDK.OptionSetSample.TableData=联系人列表TableData,
SDK.OptionSetSample.FormData=CurrentContactForm;
//获取属性元数据
OptionSetSample.getAttributeMetadataCollection.Execute();
}
创造
删除所选联系人
按全名搜索:
X
拯救
示例脚本看起来是这样的,因为它已经有了一个案例:
case "Money":
case "Integer":
var Value = record[AttributeMetadata.SchemaName];
record[AttributeMetadata.SchemaName] = {};
record[AttributeMetadata.SchemaName].Value = Value;
record[AttributeMetadata.SchemaName].isDirty = false;
在上述两种情况下,Integer可以正常工作,因为它是一种基本类型,因此会将实际数值返回到记录[AttributeMetadata.SchemaName].value
但是,货币类型是一个复杂的对象,因此它被分配给同一个变量,但实际上不会给您它仅代表对象的值,这就是它不显示的原因。实际上,您还需要在末尾添加一个.value
,以检索它所表示的数值
将开关切换到以下位置:
case "Integer":
var Value = record[AttributeMetadata.SchemaName];
record[AttributeMetadata.SchemaName] = {};
record[AttributeMetadata.SchemaName].Value = Value;
record[AttributeMetadata.SchemaName].isDirty = false;
case "Money":
var Value = record[AttributeMetadata.SchemaName];
record[AttributeMetadata.SchemaName] = {};
record[AttributeMetadata.SchemaName].Value = Value.value;
record[AttributeMetadata.SchemaName].isDirty = false;
或者,当您将money属性放入表中时,请确保显示的值是record[AttributeMetadata.SchemaName].value.value
我认为它是value
的小写,可能是value
希望这是有意义的。我想我需要在processRetrievedRecordProperties函数中的case“Money”开关中添加一些逻辑。只是一种预感,是价值,价值。谢谢你,克里斯!