0

我有一个使用分类视图的 REST 服务。我正在尝试让“keys”属性与非硬编码值一起使用。当我尝试使用任何 Javascript 时,我收到“抱歉,发生错误”消息。

这是它工作的唯一方式:

<xe:restService id="rsVictims" pathInfo="gridDataVictims">
    <xe:this.service>
        <xe:viewItemFileService defaultColumns="true"
            viewName="InvoiceMPRVictims" contentType="application/json"
            keys="k28ts71zrjsw">
            <xe:this.databaseName><![CDATA[#{javascript:applicationScope.get("appConfig").keywords.appDataStore.join("!!")}]]></xe:this.databaseName>
        </xe:viewItemFileService>
    </xe:this.service>
</xe:restService>

我试过用 SSJS 返回一个值:

    <xe:restService id="rsVictims" pathInfo="gridDataVictims">
        <xe:this.service>
            <xe:viewItemFileService defaultColumns="true"
                viewName="InvoiceMPRVictims" contentType="application/json">
                <xe:this.databaseName><![CDATA[#{javascript:applicationScope.get("appConfig").keywords.appDataStore.join("!!")}]]></xe:this.databaseName>
                <xe:this.keys><![CDATA[#{javascript:var doc:NotesDocument = currentDocument.getDocument();
var keyValue = doc.getItemValueString("grantID");
return keyValue;}]]></xe:this.keys>
            </xe:viewItemFileService>
        </xe:this.service>
    </xe:restService>

我也尝试过将 SSJS 移动到一个函数中并调用它:

<xe:restService id="rsVictims" pathInfo="gridDataVictims">
    <xe:this.service>
        <xe:viewItemFileService defaultColumns="true"
            viewName="InvoiceMPRVictims" contentType="application/json"
            keys="#{javascript:getMPRRESTKey();}">
            <xe:this.databaseName><![CDATA[#{javascript:applicationScope.get("appConfig").keywords.appDataStore.join("!!")}]]></xe:this.databaseName>
        </xe:viewItemFileService>
    </xe:this.service>
</xe:restService>

这是 getMPRRESTKey() 函数:

function getMPRRESTKey() {  
    var doc:NotesDocument = currentDocument.getDocument();
    var keyValue = doc.getItemValueString("grantID");
    return keyValue;
}

它起作用的唯一方法是在 keys 属性中“硬编码”一个值。

任何帮助都会很棒!

谢谢!

4

1 回答 1

0

我的答案(感谢 Steve Zavocki)是将 viewScope 变量传递给 keys 属性:

<xe:this.keys><![CDATA[#{javascript:viewScope.get("myKeysValue");}]]></xe:this.keys>
于 2013-10-08T16:26:06.830 回答