IBM ICN 3.0.3-在“内容”对话框中丑陋地显示一个单值属性的ChoiceList

时间:2018-07-19 16:10:03

标签: plugins filenet-content-engine ibm-content-navigator filenet-cpe

给定Document类,输入模板的单值属性与ChoiceList关联。如果ChoiceList没有“子级别”(选择),则此方法很好。

添加“组选择”后,用户尝试填充属性时,对话框将变得丑陋,并显示如下:

Entry Template monovalued Property Control

有没有一种方法可以自动展开根Choices的树形视图,并且还可以删除“ none”标签(法文为“ Aucun”)以及ChoiceList的符号名(此处模糊)?

我必须编写插件来解决该问题吗?

更新。此处“ Aucun”的目的是清空该字段。

1 个答案:

答案 0 :(得分:0)

我联系了支持团队,仅此而已,这是不可能的。但是我找到了解决方法。

我写了一个ResponseFilter来捕获请求/p8/openContentClass的响应。原来它的响应包含ChoiceList值:

 {
     "classes": [{
             "parentClassId": "<PARENTCLASSID>",
             "template_name": "<ENTRYTEMPLATE>",
             /* [...] */
         }
     ],
     /* [...] */
     "criterias": [/* [...] */, {
             "settability": "readWrite",
             "defaultOperator": "EQUAL",
             "minValue": null,
             "uniqueValues": true,
             "orderable": false,
             "choiceList": {
                 "choices":                   /* <----- here */,
                 "displayName": "CL_ToFilter"
             },
             /* [...] */
             "name": "<propertyName>"
         }
     ]
 }

重新格式化"choices"条目以获得一级选择列表,确保在一级显示。在ResponseFilter的相关代码下面:

public class ChoiceListValuesResponseFilter extends PluginResponseFilter {
     public String[] getFilteredServices() {
         return new String[] { "/p8/openContentClass"/* "/p8/openItem"*/ };
     }
     public void filter(String serverType, PluginServiceCallbacks callbacks,
             HttpServletRequest request, JSONObject jsonResponse) throws Exception {

         // [...]

         JSONArray jsonProperties =
                 (JSONArray) jsonResponse.get("criterias");
         Iterator it = jsonProperties.iterator();

         while (it.hasNext()) {
             JSONObject jo = (JSONObject) it.next();
             if ("<PROPERTYWITHFILTEREDCL>".equals(jo.get("name"))) {
                 JSONObject choiceListJo = (JSONObject) jo.get("choiceList");
                 // do the processing here
                 break;
             }
         }
     }
    // [...]
}