1

我有一个名为客户站点的实体,我从中存储站点信息。从这个站点我创建设备(另一个自定义实体)。我已经在我的客户站点实体中创建了与地址实体相关的地址字段,并且我正在尝试(基于帐户)用来自帐户的选定地址的地址字段填充我的站点字段。

我为此参考了这篇文章, http: //xrmexpertz.com/2012/01/24/lookup-address-for-custom-entities-in-crm-2011/

我更改了链接中提供的 javascript 和 xml 以反映我的实体和我的网络资源。

我的问题是,当我单击应该执行 JavaScript 的按钮时,它什么也不做,如果我尝试在没有帐户的情况下保存网站,它会向我发送错误消息。

这是我的java脚本。

function CustomLookup() {
'use strict';
var aoItems = getFieldValue("kez_SiteInfo_AccountId");

if (aoItems == null) {

    alert(“Account is not Selected”);

    return;

}

var _object = openStdDlg(“ / sfa / quotes / dlg_lookupaddress.aspx ? headerForm = 1 & parentType = 1 & parentId = ” + aoItems[0].id + “ & willCall = 0″, “LookupAddress”, 500, 330, true);

if (object) {

    setFieldValue(“kez_address1_name”, object.Address.Name);

    setFieldValue(“kez_address1_line1″, object.Address.Line1);

    setFieldValue(“kez_address1_line2″, object.Address.Line2);

    setFieldValue(“kez_address1_line3″, object.Address.Line3);

    setFieldValue(“kez_address1_city”, object.Address.City);

    setFieldValue(“kez_address1_province”, object.Address.StateOrProvince);

    setFieldValue(“kez_address1_postalcode”, object.Address.PostalCode);

    setFieldValue(“kez_address1_country”, object.Address.Country);

}

}

function setFieldValue(fieldName, fieldValue) {

Xrm.Page.getAttribute(fieldName).setValue(fieldValue);

}

这是给出的错误

Microsoft Dynamics CRM Error Report Contents

<CrmScriptErrorReport>
  <ReportVersion>1.0</ReportVersion>
  <ScriptErrorDetails>
   <Message>Uncaught SyntaxError: Unexpected token ILLEGAL</Message>
   <Line>7</Line>
   <URL>/%7B634962800260003236%7D/WebResources/kez_GetLocation</URL>
   <PageURL>/userdefined/edit.aspx?_gridType=10018&etc=10018&id=%7b1F8E02F0-766C-E211-934E-   00155D018211%7d&pagemode=iframe&preloadcache=1360684076423&rskey=69426415</PageURL>
   <Function></Function>
   <CallStack>
   </CallStack>
  </ScriptErrorDetails>
  <ClientInformation>
   <BrowserUserAgent>Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.30 (KHTML, like Gecko)       Chrome/26.0.1403.0 Safari/537.30</BrowserUserAgent>
   <BrowserLanguage>undefined</BrowserLanguage>
   <SystemLanguage>undefined</SystemLanguage>
   <UserLanguage>undefined</UserLanguage>
   <ScreenResolution>1366x768</ScreenResolution>
   <ClientName>Web</ClientName>
   <ClientTime>2013-02-12T10:47:58</ClientTime>
  </ClientInformation>
  <ServerInformation>
    <OrgLanguage>1033</OrgLanguage>
    <OrgCulture>1033</OrgCulture>
    <UserLanguage>1033</UserLanguage>
    <UserCulture>1033</UserCulture>
    <OrgID>{BC278BC1-EEEA-4D24-B5C6-F0720B343A1F}</OrgID>
    <UserID>{D76EEA89-D760-E211-921F-00155D018211}</UserID>
    <CRMVersion>5.0.9690.3236</CRMVersion>
  </ServerInformation>
</CrmScriptErrorReport>
4

1 回答 1

0

我最终解决了这个问题,因为我列出的来源之一使用了 CRM 无法识别的报价。接下来我必须使用 XRM.getAttribute 而不是 getFieldValue。

最终和工作代码如下:

function CustomLookup() {
'use strict';
var aoItems = Xrm.Page.getAttribute('kez_siteinfo_accountid').getValue();
if (aoItems == null) {

    alert("Account is not Selected");

    return;

}

var _object = openStdDlg("/sfa/quotes/dlg_lookupaddress.aspx?headerForm=1&parentType=1&parentId=" + aoItems[0].id + "&willCall=0", "LookupAddress", 500, 330, true);

    if (object) {

    setFieldValue("kez_address1_name", object.Address.Name);

    setFieldValue("kez_address1_line1", object.Address.Line1);

    setFieldValue("kez_address1_line2", object.Address.Line2);

    setFieldValue("kez_address1_line3", object.Address.Line3);

        setFieldValue("kez_address1_city", object.Address.City);

        setFieldValue("kez_address1_province", object.Address.StateOrProvince);

        setFieldValue("kez_address1_postalcode", object.Address.PostalCode);

        setFieldValue("kez_address1_country", object.Address.Country);

    }

}

function setFieldValue(fieldName, fieldValue) {

    Xrm.Page.getAttribute(fieldName).setValue(fieldValue);

}
于 2013-02-13T16:07:11.453 回答