#filenet-p8 #filenet-content-engine #dojo.gridx #ibm-content-navigator
#filenet-p8 #filenet-content-engine #dojo.gridx #ibm-content-navigator
Вопрос:
Я пытаюсь создать пользовательский поиск и следовал примеру из redbook. Однако, вместо создания новой функции, я просто изменяю текущее поведение поиска, изменяя запрос, который выполняется в базе данных FileNet. На основе примера задается и отображается только несколько свойств по умолчанию. Я пытаюсь установить другие свойства документа.
private static void buildResultStructure(JSONResultSetResponse jsonResultSet, MessageResources resources, Locale clientLocale) {
String[] states = new String[1];
states[0] = "isLocked";
jsonResultSet.addColumn(new JSONResultSetColumn("amp;nbsp;", "multiStateIcon", false, states));
jsonResultSet.addColumn(new JSONResultSetColumn("amp;nbsp;", "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(новый JSONResultSetColumn(» «, ваша ширина столбца, ваше имя поля, сортируемый?, false));
после этого перейдите к executeP8Search в том же файле Java, посмотрите на строку под номером 122, повторите результаты поиска, которые были возвращены со значениями из вашего запроса, для каждой строки добавьте соответствующее значение.
Строка JSONResultSetRow = новая строка JSONResultSetRow(sbId.toString(), doc.get_Name(), doc.get_MimeType(), привилегии);
row.AddAttribute(«имя вашего поля», doc.isLocked(), JSONResultSetRow.TYPE_BOOLEAN, null, (новое логическое значение(doc.isLocked())).toString()); //*** пожалуйста, обратите внимание, чтобы добавить соответствующий тип, строку в строковое значение, int, bool и т.д..
jsonResultSet.addRow(строка);
не забудьте исправить ContinueQueryService.java таким же образом.