我正在处理表格'注册采用'在CRM 2015中,特别是三个领域;产品,组件和编辑。 '产品'是引用产品实体的查找字段。 '成分'和#编辑'是使用javascript填充的简单文本字段。产品实体中的每个产品都有相应的组件和编辑,它们是产品表单中的OptionSet。
目标: 我想要一个函数来触发OnChange与'产品'查看特定产品记录,获取其相应的组件和编辑信息,并自动填充“组件”组件。和#编辑' '注册采用中的字段'。
问题: 我似乎无法弄清楚如何从"产品'中获取价值。查找字段并使用它来获取我需要的信息。
以下是我正在测试的一些代码:
function populateProduct(blank)
{
if (blank != null || blank != undefined)
{
var productName;
var product = Xrm.Page.getAttribute(blank);
if (product.getValue != null || product.getValue != undefined)
{
productName = product.getValue()[0].name;
console.log("the product name is " + productName);
var componentXml = "<fetch mapping='logical'>"+"<entity name='product'>"+"<attribute name='new_component'/>"+"<filter>"+"<condition attribute = 'name' operator='eq' value='"+productName+"' />"+"</filter>"+"</entity>"+"</fetch>";
var fetchComponent = XrmServiceToolkit.Soap.Fetch(componentXml);
console.log("the respective component is " + fetchComponent);
}
}
}
日志语句只是为了测试我是否在测试时获得了我需要的信息。
日志声明告诉我,我确实得到了产品名称,但我没有得到相应的组件。
我考虑使用Fetch构建查询,但我认为我没有正确理解它们,因为它没有得到我希望的信息。显然这是一个非常不完整的功能,但我想确保在写出其余部分之前我得到了我需要的信息。
有什么建议吗?
答案 0 :(得分:0)
来自fetch调用的响应返回你必须挖掘的对象,如下所示:
var componentXml = [
"<fetch mapping='logical'>",
"<entity name='product'>",
"<attribute name='new_component'/>",
"<filter>",
"<condition attribute = 'name' operator='eq' value='"+productName+"' />",
"</filter>",
"</entity>",
"</fetch>"].join('');
var products = XrmServiceToolkit.Soap.Fetch(componentXml);
if (products.length > 0) {
if (products[0].attributes.productid != undefined)
console.log("the product id is", products[0].attributes.productid);
console.log("new_component is", products[0].attributes.new_component);
}
}