需要样本代码帮助,以使用JAVA SDK将第三方用户组映射到企业组?

2020-09-13 15:55发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好团队,

有人可以帮我提供一个示例代码,以导入Windows AD用户组并将其添加到企业用户组中。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好团队,

有人可以帮我提供一个示例代码,以导入Windows AD用户组并将其添加到企业用户组中。

付费偷看设置
发送
4条回答
My梦
1楼-- · 2020-09-13 16:35

我不确定是否可以通过代码将AD组添加到BOBJ,但是第二天我将深入研究我的代码以确定是否可行。 将一个组设置为另一个组的成员非常容易。 您使用的是哪个SDK(.NET,Java,RESTful)? 有了这些信息,我可以提供或指向您合适的样本。

-Dell

绿领巾童鞋
2楼-- · 2020-09-13 16:35

感谢您的回复,我正在尝试使用JAVA SDK并寻找一种方法来查看我是否可以映射Windows AD组并将其添加为现有企业的成员 组。 我有一个类似的重复任务,我需要手动执行,但是我正在寻找使它自动化的选项。

SAP BO 4.2 JAVA API参考提到了一些有关使用IsecWinAD界面映射第三方组的内容,但是尽管那里的信息听起来不错,但我真的希望这是否已经在社区中完成,以便我可以轻松地合并使用 一个示例。

N-Moskvin
3楼-- · 2020-09-13 16:25

我想我知道了如何添加一个广告组。 您需要同时拥有该组的完整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;
 }


 

我希望这会有所帮助!

-Dell

太Q了
4楼-- · 2020-09-13 16:18

感谢您的快速回复,我将在我的代码中尝试此操作,并告诉您是否可行

一周热门 更多>