まず必要なのは、フォルダーID(UCMのコンテンツID)です。ここが起点のフォルダになり、子要素を読みだすために使います。さらに必要なものは、現在のICISApplicationインターフェースとアプリケーションコンテキストです。ポートレットを開発している場合、web.xmlの設定でポートレットを初期化する必要があるでしょう。これを実現するコードは以下のようです。
public List getSubFolders(String folderID, ICISApplication m_cis, String username) throws CommandException {この関数を使用して、指定したフォルダIDに対応するフォルダの子要素を取得することができます。フォルダ内のドキュメントを取得する場合には、この関数を利用できます。
ISCSContext scsContext = m_cis.getUCPMAPI().getActiveAPI()._createSCSContext();
scsContext.setUser((username != null ? username : "guest"));
// this should be always true because we use UCPM API, so make sure that the adapter exist!
if (repData.getAdapterName() != null) {
scsContext.setAdapterName(repData.getAdapterName());
}
ISCSComponentFolderAPI folderAPI = m_cis.getUCPMAPI().getActiveAPI().getComponentFolderAPI();
ISCSFolderID csFolderId = m_cis.getUCPMAPI().getActiveAPI()._createActiveFolderID(folderID);
ISCSFolderDisplayResponse response = folderAPI.listChildren(getISCSContext(), csFolderId);
return response.getFolders();
}
public List getFoldersItems(String folderID, ICISApplication m_cis, String username) throws CommandException {
ISCSContext scsContext = m_cis.getUCPMAPI().getActiveAPI()._createSCSContext();
scsContext.setUser((username != null ? username : "guest"));
// this should be always true because we use UCPM API, so make sure that the adapter exist!
if (repData.getAdapterName() != null) {
scsContext.setAdapterName(repData.getAdapterName());
}
ISCSComponentFolderAPI folderAPI = m_cis.getUCPMAPI().getActiveAPI().getComponentFolderAPI();
ISCSFolderID csFolderId = m_cis.getUCPMAPI().getActiveAPI()._createActiveFolderID(folderID);
ISCSFolderDisplayResponse response = folderAPI.listChildren(getISCSContext(), csFolderId);
return response.getItems();
}
0 件のコメント:
コメントを投稿