Skip to Content
author's profile photo Former Member
Former Member

Determine system aliases from PCD path?

I'm trying to display all the system objects in the PCD, along with their associated aliases. I'm able to traverse the PCD via the JNDI interface, and I can pick out all the systems (based on the class name).

However, at this point I'm stuck. I've tried various methods of trying to fetch the system object from the PCD, but nothing seems to work.

Given a PCD path, how can you fetch the related object?

I'm trying to do this:

Object o = ctx.lookup( "pcd:portal_content/Collaboration_Integration_WebEx" );

'o' is a com.sapportals.portal.pcd.gl.PcdGlContext, which I assume should be accessed via IPcdContext. However, this isn't a system object; rather, it seems to be another lookup mechanism.

Any suggestions would be most welcome.

BTW, I've also looked at using the Portal Service for systems, ala

ISystems systemSrv = (ISystems) PortalRuntime.getRuntimeResources().getService(ISystems.KEY);
			IPrincipal prin = getServiceUser("pcd_service");
			String aliases[] = systemSrv.getAliases(prin, true);

but this doesn't seem to return all aliases in the system (and therefore not all systems), whereas traversing the PCD manually does return all defined systems.

Message was edited by: Ken Miller

Add a comment
10|10000 characters needed characters exceeded

Related questions

1 Answer

  • author's profile photo Former Member
    Former Member
    Posted on Sep 29, 2005 at 09:54 PM

    Well, I figured it out myself.

    Turns out I was using the wrong aspect when creating the context. By using this:

    env.put(Constants.REQUESTED_ASPECT, IPcdAttribute.READONLY_ASPECTS);

    I was able to retrieve ISystemObjects from the PCD. Yay!

    However, I'd also like to be able to display the descriptive name of the object, since the PCD path might be different than the display path.

    Where do I find this information? I've looked at all the methods for IPcdContext and ISystemObject, and there doesn't appear to be a 'display name' method. I thought that perhaps so.getAttributes( "com.sap.portal.pcm.Title" ) might work, but to no avail...

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hello Everyone,

      Please check if this code helps:

      IUserMappingService iums = (IUserMappingService)PortalRuntime.getRuntimeResources().getService(IUserMappingService.KEY);

      String str[] = iums.getAllSystems();

      response.write("<br> **** System Mapped ***** <br>");

      for (int j=0;j<str.length;j++)

      { //response.write("<br> Systems => " + str[j]);

      IUserMappingData iumd = iums.getMappingData(str[j], iuser);

      if(iumd.isMappingDirect() == true)

      response.write("<br> Mapped to System : " + str[j]);

      This code displays all the existing System Aliases and also whether an EP user is mapped to it or not.

      Warm Regards,

      Ritu R Hunjan

      Message was edited by: Ritu Hunjan

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.