1

我创建了一个 html Web 资源,当单击功能区按钮时会显示该资源。在此弹出窗口中,我有一个下拉列表,我想用我使用 fetchXml 查询获得的记录列表填充该列表。

我的问题是我尝试了几种不同的方法来执行查询,但它总是返回错误。我猜测弹出窗口不会具有与父表单相同的功能范围,因此我需要做一些不同的事情来执行查询。

目前我有它,所以我已经加载了一个包含执行提取所需的函数的外部脚本,但是代码看不到 _HtmlEncode 的 CRM 函数,因此失败了。

有什么方法可以让弹出窗口查看 CRM 功能?还是有另一种方法可以做到这一点?

编辑:一些示例代码

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:asp>
<head>
   <title>Re-Assign</title>
   <script type=text/javascript src="ClientGlobalContext.js.aspx"></script>

   <script type=text/javascript src="http://crm/DEVCRM/WebResources:ts_/scripts/fetch_global.js"></script>

   <script type=text/javascript>

   function OnLoad_GetAreasAndConsultants() {

       var fetchXml = '<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0"><entity name="ts_solution_area"><attribute name="ts_solution_areaid"/><attribute name="ts_descriptor"/><attribute name="createdon"/> <order descending="false" attribute="ts_descriptor"/><filter type="and"><condition attribute="statecode" value="0" operator="eq"/></filter></entity></fetch>';
       var fetchedRecords = FetchRecordsToolKit.Fetch(fetchXml);

       if (fetchedRecords !== null) {

            var areaList = document.getElementById("ddl_solution_area")

            for (var i=0; i<fetchedRecords.length;i++) {

                var name = fetchedRecords[i].getValue("ts_descriptor");

                areaList.options[select.options.length] = new Option(name, i);
            }
        }
   }
</script>

谢谢

4

1 回答 1

1

我专门为在 HTML Web 资源中执行 fetch 构建了一些东西。

https://github.com/paul-way/JCL/blob/master/jcl.js

这是一个使用它的例子:

var processProjectInfo = function (data) {
    if (data.length > 0) {
        // Set Project Header Information
        $('#ProjectTitle').html(data[0].attributes.new_name.value);
        $('#CompanyName').html(data[0].attributes.new_accountid.name);
    }
};

var loadProjectInfo = function (guid) {
    var fetchXML = " " +
        "<fetch mapping='logical' count='10'>" +
        "  <entity name='new_project'>" +
        "    <all-attributes/>" +
        "    <filter>" +
        "      <condition attribute='new_projectid' operator='eq' value='" + guid + "' />" +
        "    </filter>" +
        "  </entity>" +
        "</fetch>";

    JCL.Fetch(fetchXML, processProjectInfo);
};
于 2013-01-05T23:25:34.817 回答