IBM Content Navigator ContentList 将属性设置为行项目

Posted

技术标签:

【中文标题】IBM Content Navigator ContentList 将属性设置为行项目【英文标题】:IBM Content Navigator ContentList setting properties to row item 【发布时间】:2020-08-18 17:45:01 【问题描述】:

我正在尝试构建自定义搜索,并按照红皮书中的示例进行操作。但是,我没有创建新功能,而是通过修改在 FileNet 数据库上执行的查询来修改当前的搜索行为。根据示例,仅设置和显示了几个默认属性。我正在努力设置其他文档属性。

  private static void buildResultStructure(JSONResultSetResponse jsonResultSet, MessageResources resources, Locale clientLocale)  
    String[] states = new String[1]; 
    states[0] = "isLocked"; 
    jsonResultSet.addColumn(new JSONResultSetColumn(" ", "multiStateIcon", false, states));
    jsonResultSet.addColumn(new JSONResultSetColumn(" ", "17px", "mimeTypeIcon", null, false)); 
    jsonResultSet.addColumn(new JSONResultSetColumn(resources.getMessage(clientLocale, "search.results.header.id"), "200px", "ID", null, false));
    jsonResultSet.addColumn(new JSONResultSetColumn("Class Name", "125px", "className", null, false)); 
    jsonResultSet.addColumn(new JSONResultSetColumn(resources.getMessage(clientLocale, "search.results.header.lastModifiedByUser"), "125px", "ModifiedBy", null, false)); 
    jsonResultSet.addColumn(new JSONResultSetColumn(resources.getMessage(clientLocale, "search.results.header.lastModifiedTimestamp"), "175px", "LastModified", null, false)); 
    jsonResultSet.addColumn(new JSONResultSetColumn(resources.getMessage(clientLocale, "search.results.header.version"), "50px", "Version", null, false));
    jsonResultSet.addMagazineColumn(new JSONResultSetColumn("thumbnail", "60px", "thumbnail", null, null)); 
    com.ibm.json.java.JSONArray fieldsToDisplay = new com.ibm.json.java.JSONArray();
    com.ibm.json.java.JSONObject jsonObj = new com.ibm.json.java.JSONObject(); 
    jsonObj.put("field", "className");
    jsonObj.put("displayName", "Class"); 
    fieldsToDisplay.add(jsonObj); 
    jsonObj =new com.ibm.json.java.JSONObject(); 
    jsonObj.put("field", "ModifiedBy");
    jsonObj.put("displayName", resources.getMessage(clientLocale, "search.results.header.lastModifiedByUser")); 
    fieldsToDisplay.add(jsonObj);
    jsonObj = new com.ibm.json.java.JSONObject(); 
    jsonObj.put("field", "LastModified");
    jsonObj.put("displayName", resources.getMessage(clientLocale, "search.results.header.lastModifiedTimestamp"));
    fieldsToDisplay.add(jsonObj);
    jsonObj = new com.ibm.json.java.JSONObject();
    jsonObj.put("field", "Version"); 
    jsonObj.put("displayName", resources.getMessage(clientLocale, "search.results.header.version"));
    fieldsToDisplay.add(jsonObj); 
    
    jsonResultSet.addMagazineColumn(new JSONResultSetColumn("content", "100%", "content", fieldsToDisplay, null));
  

【问题讨论】:

【参考方案1】:

首先进入文件 SamplePluginSearchServiceP8.java 和 buildP8ResultStructure 函数。 删除不必要的列。 使用相关格式添加新列

jsonResultSet.addColumn(new JSONResultSetColumn(" ", your column width, your field name, sortable?, false));

完成后,转到同一个 java 文件上的 executeP8Search, 查看第 122 行,迭代使用查询中的值返回的 searchResults, 为每一行添加相关值。

JSONResultSetRow row = new JSONResultSetRow(sbId.toString(), doc.get_Name(), doc.get_MimeType(), 特权);

row.addAttribute("你的字段名", doc.isLocked(), JSONResultSetRow.TYPE_BOOLEAN, null, (new Boolean(doc.isLocked())).toString()); //***请注意添加相关类型,字符串到字符串值,int,bool等。

jsonResultSet.addRow(row);

不要忘记以同样的方式修复 ContinueQueryService.java。

【讨论】:

以上是关于IBM Content Navigator ContentList 将属性设置为行项目的主要内容,如果未能解决你的问题,请参考以下文章

IBM Content Navigator自定义步骤处理器无效的安全令牌

IBM Content Navigator ContentList 将属性设置为行项目

IBM Worklight 5.0.6.1 - 移动浏览器模拟器 - 用于 navigator.network.connection.type 与 navigator.connection.type

navigator和地理定位

在哪里可以找到 IBM FileNet Content Engine 订阅日志?

IBM Mobile First 7.1:多部分/相关 Content-Type 和 XSL 转换