Javascript 我怎么能';fetchXml';是否在CRM中根据日期而不是时间进行记录?

Javascript 我怎么能';fetchXml';是否在CRM中根据日期而不是时间进行记录?,javascript,datetime,crm,onchange,fetchxml,Javascript,Datetime,Crm,Onchange,Fetchxml,我处理的是两个实体,约会和费用。我的目标是在指定费用日期onChange时,新的费用记录自动填充其某些字段。它触发一个查询,该查询应该返回具有相同日期和所有者用户的记录 这是我的密码: function bringData() { var date = Xrm.Page.getAttribute("new_tripDate").getValue(); var owner = Xrm.Page.getAttribute("ownerid").getValue(); if (

我处理的是两个实体,约会和费用。我的目标是在指定费用日期onChange时,新的费用记录自动填充其某些字段。它触发一个查询,该查询应该返回具有相同日期和所有者用户的记录

这是我的密码:

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);
        } 
}
函数bringData()
{
var date=Xrm.Page.getAttribute(“新的”tripDate“).getValue();
var owner=Xrm.Page.getAttribute(“ownerid”).getValue();
如果(所有者!=null)
{
var ownerID=所有者[0]。id;
var ownerName=所有者[0]。名称;
}
var fetchXml=“”+”+“+”+”+“+”+”+“+”+”;
var retrievedAppointments=XrmServiceToolkit.Soap.Fetch(fetchXml);
如果(retrievedAppointments.length==0)
{
警报(“未找到匹配的记录”);
返回;
}
其他的
{
console.log(可检索的约会);
} 
}
它从当前费用页获取日期,并将其用于查询。但是,函数在更改时给了我一个错误,表示日期“无效,或超出了支持的范围”。我从查询中删除了日期条件,它根据所属用户返回记录,没有问题。我认为问题在于约会实体中有一个指定的时间,而不是费用日期,但我认为使用“on”条件操作符可以解决这个问题。我不知所措


感谢

Xrm.Page.getAttribute(“new_tripDate”).getValue()返回的日期时间格式是fetch无法处理的,您至少需要将其转换为

使用ISOFormat方法更改日期格式,或者使用像矩.js这样的库,或者使用您自己的小助手函数返回格式正确的日期字符串。 将日期变量替换为以下内容:

var date = new Date(Xrm.Page.getAttribute("new_tripDate").getValue()).toISOString();

Xrm.Page.getAttribute(“new\u tripDate”).getValue()返回的值是什么?“new\u tripDate”返回费用的日期。它是一个仅限日期的字段,因此它将时间返回为00:00:00