如何在 CRM 中 'fetchXml' 根据日期而不是时间进行记录?
How can I 'fetchXml' records according to date but not time in CRM?
我正在处理两个实体,约会和费用。我的目标是让新的费用记录在指定费用日期时自动填充其某些字段,onChange。它会触发一个查询,该查询应该 return 具有相同日期和拥有用户的记录。
这是我的代码:
function bringData()
{
var date = Xrm.Page.getAttribute("new_tripDate").getValue();
var owner = Xrm.Page.getAttribute("ownerid").getValue();
if (owner != null)
{
var ownerID = owner[0].id;
var ownerName = owner[0].name;
}
var fetchXml="<fetch mapping='logical'>"+"<entity name='appointment'>"+"<attribute name='regardingobjectid'/>"+"<filter>"+"<condition attribute = 'ownerid' operator='eq' value='"+ownerID+"' />"+"<condition attribute='scheduledstart' operator='on' value='"+date+"' />"+"</filter>"+"</entity>"+"</fetch>";
var retrievedAppointments = XrmServiceToolkit.Soap.Fetch(fetchXml);
if (retrievedAppointments.length == 0)
{
alert("No matching records were found.");
return;
}
else
{
console.log(retrievedAppointments);
}
}
它从当前费用页面获取日期并将其用于查询。但是,该函数在更改时给我一个错误,指出日期 "is invalid, or outside the supported range"。我从查询中删除了日期条件,它 returns 基于拥有用户的记录没问题。我认为问题在于约会实体中有指定时间,而不是费用日期,但我认为使用 "on" 条件运算符可以解决该问题。我很茫然。
谢谢
由 Xrm.Page.getAttribute("new_tripDate").getValue() 编辑的日期时间格式 return 是 fetch 无法处理的,您需要将其转换为 ISO Format 最低限度。
使用 ISOFormat 方法更改日期格式,或使用 moment.js 之类的库,或想出您自己的小辅助函数 return 格式正确的日期字符串。
用以下内容替换您的日期变量:
var date = new Date(Xrm.Page.getAttribute("new_tripDate").getValue()).toISOString();
我正在处理两个实体,约会和费用。我的目标是让新的费用记录在指定费用日期时自动填充其某些字段,onChange。它会触发一个查询,该查询应该 return 具有相同日期和拥有用户的记录。
这是我的代码:
function bringData()
{
var date = Xrm.Page.getAttribute("new_tripDate").getValue();
var owner = Xrm.Page.getAttribute("ownerid").getValue();
if (owner != null)
{
var ownerID = owner[0].id;
var ownerName = owner[0].name;
}
var fetchXml="<fetch mapping='logical'>"+"<entity name='appointment'>"+"<attribute name='regardingobjectid'/>"+"<filter>"+"<condition attribute = 'ownerid' operator='eq' value='"+ownerID+"' />"+"<condition attribute='scheduledstart' operator='on' value='"+date+"' />"+"</filter>"+"</entity>"+"</fetch>";
var retrievedAppointments = XrmServiceToolkit.Soap.Fetch(fetchXml);
if (retrievedAppointments.length == 0)
{
alert("No matching records were found.");
return;
}
else
{
console.log(retrievedAppointments);
}
}
它从当前费用页面获取日期并将其用于查询。但是,该函数在更改时给我一个错误,指出日期 "is invalid, or outside the supported range"。我从查询中删除了日期条件,它 returns 基于拥有用户的记录没问题。我认为问题在于约会实体中有指定时间,而不是费用日期,但我认为使用 "on" 条件运算符可以解决该问题。我很茫然。
谢谢
由 Xrm.Page.getAttribute("new_tripDate").getValue() 编辑的日期时间格式 return 是 fetch 无法处理的,您需要将其转换为 ISO Format 最低限度。
使用 ISOFormat 方法更改日期格式,或使用 moment.js 之类的库,或想出您自己的小辅助函数 return 格式正确的日期字符串。 用以下内容替换您的日期变量:
var date = new Date(Xrm.Page.getAttribute("new_tripDate").getValue()).toISOString();