2020-09-13 15:55发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好团队,
有人可以帮我提供一个示例代码,以导入Windows AD用户组并将其添加到企业用户组中。
我不确定是否可以通过代码将AD组添加到BOBJ,但是第二天我将深入研究我的代码以确定是否可行。 将一个组设置为另一个组的成员非常容易。 您使用的是哪个SDK(.NET,Java,RESTful)? 有了这些信息,我可以提供或指向您合适的样本。
-Dell
感谢您的回复,我正在尝试使用JAVA SDK并寻找一种方法来查看我是否可以映射Windows AD组并将其添加为现有企业的成员 组。 我有一个类似的重复任务,我需要手动执行,但是我正在寻找使它自动化的选项。
SAP BO 4.2 JAVA API参考提到了一些有关使用IsecWinAD界面映射第三方组的内容,但是尽管那里的信息听起来不错,但我真的希望这是否已经在社区中完成,以便我可以轻松地合并使用 一个示例。
我想我知道了如何添加一个广告组。 您需要同时拥有该组的完整AD名称,例如:
CN =顾问,OU =联系人,DC = blah,DC =本地
和AD组的标识符。 在我从演示系统查看的数据中,它看起来像:
S-1-5-21-2262072359-528161489-823924486-1253
然后,要创建组,您将创建组并为其添加别名。 代码可能看起来像这样:
public boolean addGroup(最终字符串名称,最终字符串说明, final String adName,final String adId){ 布尔bAddGroup = false; 尝试{ 如果(!groupExists(name)){ //检索对象的"插件",将其添加到IInfoObjects, //,然后编辑生成的IInfoObject的属性。 最终的IPluginInfo GroupPlugin = boe.getPluginInfo(" CrystalEnterprise.UserGroup"); 最终的IInfoObjects groupList = qh.newInfoObjectsCollection(); 如果(GroupPlugin!= null){ 最终的IUserGroup组=(IUserGroup)groupList.add(GroupPlugin); //标题不需要与完整的广告名称匹配,可以是任何东西。 推荐 //使用广告名称中的" CN"值。 Group.setTitle(name); Group.setDescription(description); //添加广告别名 Group.getAliases()。addExisting(" secWinAD:" + adName," secWinAD:" + adId,false); boeInfoStore()。commit(groupList); _msg ="成功"; bAddGroup = true; } } } catch(最终例外){ _msg ="无法添加用户组\"" +名称+" \":" + ex.getMessage(); bAddGroup = false; } 返回bAddGroup; }
然后,要使一个用户组成为另一个组的成员,您可以执行以下操作:
公共布尔makeMember(最终IUserGroup parentGroup,最终IUserGroup childGroup){ 布尔bMakeMember =假; _msg =""; IInfoObjects iGroupObjects; 最后的字符串sGroupQuery =" query://{从CI_SYSTEMOBJECTS中选择SI_ID,SI_NAME,SI_KIND ='UserGroup'" +" AND DESCENDANTS(\" SI_NAME ='UserGroup-User'\",\" SI_NAME ='%s'\")} ;;;; 尝试{ 如果((parentGroup!= null)&&(childGroup!= null)){ 最终字符串sQuery = String.format(sGroupQuery,parentGroup.getTitle()); 布尔值bMemberExists = false; //查询ParentGroup的现有成员身份 final IInfoObjects iObjects = qh.executeQuery(sQuery,100); //遍历成员资格以确定要添加的子组是否已经 //成员 for(最终对象obj:iObjects){ 最终的IInfoObject iObject =(IInfoObject)obj; 如果(iObject.getID()== childGroup.getID()){ bMemberExists = true; 打破; } } //如果子组当前不是成员,则将其添加为新的子对象 如果(!bMemberExists){ iGroupObjects = boe.getInfoStore()。newInfoObjectCollection(); 如果(iGroupObjects!= null){ parentGroup.getSubGroups()。add(childGroup.getID()); iGroupObjects.add(parentGroup); boe.getInfoStore()。commit(iGroupObjects); _msg ="成功"; bMakeMember = true; } } } } catch(最终例外){ _msg = String.format("无法使%s成为'%s'的成员。Err=%s",childGroup.getTitle(),parentGroup.getTitle(),ex.getMessage()); bMakeMember =假; } 返回bMakeMember; }
我希望这会有所帮助!
感谢您的快速回复,我将在我的代码中尝试此操作,并告诉您是否可行
最多设置5个标签!
我不确定是否可以通过代码将AD组添加到BOBJ,但是第二天我将深入研究我的代码以确定是否可行。 将一个组设置为另一个组的成员非常容易。 您使用的是哪个SDK(.NET,Java,RESTful)? 有了这些信息,我可以提供或指向您合适的样本。
-Dell
感谢您的回复,我正在尝试使用JAVA SDK并寻找一种方法来查看我是否可以映射Windows AD组并将其添加为现有企业的成员 组。 我有一个类似的重复任务,我需要手动执行,但是我正在寻找使它自动化的选项。
SAP BO 4.2 JAVA API参考提到了一些有关使用IsecWinAD界面映射第三方组的内容,但是尽管那里的信息听起来不错,但我真的希望这是否已经在社区中完成,以便我可以轻松地合并使用 一个示例。
我想我知道了如何添加一个广告组。 您需要同时拥有该组的完整AD名称,例如:
CN =顾问,OU =联系人,DC = blah,DC =本地
和AD组的标识符。 在我从演示系统查看的数据中,它看起来像:
S-1-5-21-2262072359-528161489-823924486-1253
然后,要创建组,您将创建组并为其添加别名。 代码可能看起来像这样:
然后,要使一个用户组成为另一个组的成员,您可以执行以下操作:
我希望这会有所帮助!
-Dell
感谢您的快速回复,我将在我的代码中尝试此操作,并告诉您是否可行
一周热门 更多>