// Obtains the RMSearch object for executing the search operation RMSearch getRMSearch(String asObjectStoreName, Session aoSession) { try { ObjectStore loStore = ObjectFactory.getObjectStore (asObjectStoreName, aoSession); // creates an object of RMObjectStore RMObjectStore loRMStore = new RMUtil().getRMObjectStore(loStore); return loRMStore.getRMSearch(); } catch (RMException aoRME) { } }
Both methods initiate the search process and return an XML string representation of objects that match the search criteria. In the executeXML method, you pass three parameters: asSearchRequestXML, asContentSearchWhereClause, and asOperator.
The following table provides a description of these parameters.
Parameter | Description |
---|---|
asSearchRequestXML | Contains an XML string representation, which is used for searching the metadata values. If you are performing a content-based search, this parameter contains only ID and aggregation values. This parameter cannot be null. |
asContentSearchWhereClause | Contains a string, which is used for the content-based search in the Record Object Store (ROS). For a metadata search, this parameter is null. |
asOperator | Contains an operator to merge the metadata or content-based search on the File Plan Object Store (FPOS) and the content-based search on the ROS. Constants that are supported are defined in RMSearch. This parameter cannot be null if the asContentSearchWhereClause is provided. |
In the singleObjectTypeExecuteXML method, beside those three parameters, you pass one more parameter representing the RM object type that you search for.
Parameter | Description |
---|---|
aiObjectType | This parameter represents the RM Object Type that you search for. It can be either a Document, Folder or the CustomObject. |
// Performs the metadata search in an object store void searchMetadataOnly(RMObjectStore aoRMOS) { try { searchRequestXML = "<?xml version=\"1.0\" encoding=\"UTF-8 \"?>"+ "<request><objectstores ><objectstore id='Test_PRO_12032004_1'/></objectstores><querystatement tablealias='d'>SELECT d.ObjectType, d.Id , d.isReserved, d.VersionStatus, d.OIID, d.MinorVersionNumber, d.MimeType, d.DocumentTitle, d.Creator, d.Id, d.ContentSize, d.LastModifier, d.DateLastModified, d.MajorVersionNumber, d.IsCurrentVersion from RecordInfo d where (Id = {9DA3E6E4-5CBB-4FC4-9531-EF271DE403A0} ) </querystatement>"+ "<options maxrecords='100' objectasid=\"false\"/></request>"; RMSearch loRMSearch = aoRMOS.getRMSearch(); String actualReturn = loRMSearch.singleObjectTypeExecuteXML(searchRequestXML, null, null, RMObject.TYPE_FOLDER); } catch(Exception aoEx) { } }
// Performs both metadata and content search in an object store void searchMetadataAndContent(RMObjectStore aoRMOS) { try { searchRequestXML = "<?xml version=\"1.0\" encoding=\"UTF-8 \"?>"+ "<request><objectstores ><objectstore id='Test_PRO_12032004_1'/></objectstores><querystatement tablealias='d'>SELECT d.ObjectType, d.Id , d.isReserved, d.VersionStatus, d.OIID, d.MinorVersionNumber, d.MimeType, d.DocumentTitle, d.Creator, d.Id, d.ContentSize, d.LastModifier, d.DateLastModified, d.MajorVersionNumber, d.IsCurrentVersion from RecordInfo d where (Id = {9DA3E6E4-5CBB-4FC4-9531-EF271DE403A0} ) </querystatement>"+ "<options maxrecords='100' objectasid=\"false\"/></request>"; String lsContentCriteria = "(CONTAINS(content, '<NEAR>(create)'))"; RMSearch loRMSearch = aoRMOS.getRMSearch(); String actualReturn = loRMSearch.singleObjectTypeExecuteXML(searchRequestXML, lsContentCriteria, RMSearch.moAND_OPERATOR, RMObject.TYPE_DOCUMENT); } catch(Exception aoEx) { } }