2020-09-22 17:49发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在为Scheduler实现自... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在为Scheduler实现自定义UI,并且有一个登陆页面,该页面显示了在计划之前用户可用的所有报告和实例。 有没有一种查询CMS的方式来查找我需要扫描该用户可以访问的文档的所有文件夹?
如果您只想向用户显示报告列表,则只需查询" SI_KIND ='Folder'"即可。 想要以"树"格式为用户显示文件夹和报告,则需要使用递归将内容放在正确的位置。 从" root"文件夹开始,获取以根为父文件夹的所有文件夹的列表-SI_PARENTID =23。(注意:当前是4.x中根文件夹的SI_ID。在3.x和更低版本中, 它是0。因此此值将来可能会更改。)创建一个方法,对列表中的每个文件夹执行以下操作:
1。 获取该文件夹的所有子文件夹的列表。 2。 对于每个子文件夹,递归调用此方法以"遍历"文件夹树并将该文件夹添加到树中。 3。 获取文件夹的所有子文档的列表(SI_KIND <>"文件夹")。 4。 将每个文档添加到树中。
下面是我编写的从CMS数据库提取信息并将其保存到CSV文件的程序中的这段代码示例:
private void loadFolder(IInfoObject o)引发异常{ //处理该文件夹 _log.info("加载文件夹" + o.getTitle()); FolderInfo fldr =新的FolderInfo(o,accessLevels,doAdvSec,doEffectiveRights,treeLevel,_qh,false,_log); treeLevel ++; fldrIds.add(fldr.getId()); folder.put(o.getID(),fldr); //现在遍历其子文件夹 字符串qry =" query://{从CI_INFOOBJECTS中选择*,其中(SI_KIND ='文件夹'或SI_KIND ='FavoritesFolder'),并且" +" SI_PARENTID =%d和SI_NAME <>"按SI_NAME的用户文件夹"顺序}"; _qh.forEachResult(String.format(qry,fldr.getId()),新的InfoObjectWorker(){ public void doWork(IInfoObject o)引发异常{ 尝试{ debugStr = String.format(" loadFolder:%d-%s",o.getID(),o.getTitle()); *******************这是递归部分************************** 如果(!folders.containsKey(o.getID())){ loadFolder(o); _log.info(String.format("已加载文件夹%s",o.getTitle())); } *******************递归结束**************************** ******** }捕获(SDKException e){ _log.error("错误加载文件夹" + o.getTitle()+"。Err=" + e.getDetailMessage()); } } }); treeLevel--; 如果((doReports || doScheds || doFavorites)&&(!noRptFolders.contains(fldr.getTitle()。trim()))){ debugStr =" loadReports:"; loadReports(fldr.getId()); debugStr =" loadFolder:"; } }
-戴尔
最多设置5个标签!
如果您只想向用户显示报告列表,则只需查询" SI_KIND ='Folder'"即可。 想要以"树"格式为用户显示文件夹和报告,则需要使用递归将内容放在正确的位置。 从" root"文件夹开始,获取以根为父文件夹的所有文件夹的列表-SI_PARENTID =23。(注意:当前是4.x中根文件夹的SI_ID。在3.x和更低版本中, 它是0。因此此值将来可能会更改。)创建一个方法,对列表中的每个文件夹执行以下操作:
1。 获取该文件夹的所有子文件夹的列表。
2。 对于每个子文件夹,递归调用此方法以"遍历"文件夹树并将该文件夹添加到树中。
3。 获取文件夹的所有子文档的列表(SI_KIND <>"文件夹")。
4。 将每个文档添加到树中。
下面是我编写的从CMS数据库提取信息并将其保存到CSV文件的程序中的这段代码示例:
-戴尔
一周热门 更多>