Access PCD Roles in order to analyze all used entry points
Hi Experts,
I'm facing the situation that we have to report to the customer's management the currently used entry points in our portal implementation. The results of this reports will be used for the further analysis of a future navigation and role concept.
So instead of opening every portal role in the portal content studio I'd prefer an automated approach via portal services. After having read dozens of pcd whitepapers and how to guides, my portal service is able to lookup a specified pcd-folder and search for roles.
The issue that I need to get solved is the following:
It is actually no problem to get via IPcdContext the Attribute, if the role itself is defined as entry point.
What makes it complicated is the fact, that we use a folder underneath the portal role as entry points due to naming and content creation conventions on the customer's site.
DirContext dirCtx;
InitialContext ctx = getInitialContextAspectPersistency();
dirCtx = (DirContext) ctx.lookup("pcd:portal_content/testfolder/");
PcdSearchControls pcdSearchControls = new PcdSearchControls();
pcdSearchControls.setReturningObjFlag(false);
pcdSearchControls.setSearchScope(3);
dirCtx.addToEnvironment(Constants.APPLY_ASPECT_TO_CONTEXTS,Constants.APPLY_ASPECT_TO_CONTEXTS);
NamingEnumeration ne = dirCtx.search("","(com.sap.portal.pcd.gl.ObjectClass=com.sapportals.portal.role)", pcdSearchControls);
while (ne.hasMoreElements()) {
try{
IPcdSearchResult sR = (IPcdSearchResult) ne.nextElement();
String location = "pcd:portal_content/testfolder/" + sR.getName();
IPcdContext result = (IPcdContext)ctx.lookup(location);
String entryPoint = result.getAttributes("").get("com.sap.portal.pcd.role.EntryPoint").get().toString();
So what I need is the possibility to iterate through the children of a portal role in order to investigate if it's an entry point or not and in case it is, render the display name of the current child.
Has somebody an idea. Every hint is welcome.
Best regards in advance,
Otto
Hi Otto,
You use the following environment:
env.put(com.sap.portal.directory.Constants.REQUESTED_ASPECT, PcmConstants.ASPECT_SEMANTICS);
This means when you lookup you will get a semantic object and not PCDContext.
So in order to cast to semantic role you will need to do the following casting:
import com.sapportals.portal.pcd.pcm.roles.IPortalRole;
IPortalRole portalCtx = (IPortalRole) ctx.lookup((String) roleList.get(i));
If you need the PCDContext you will need to use the following aspect:
env.put(Constants.REQUESTED_ASPECT, IPcdAttribute.PERSISTENCY_ASPECT);
For more information you can read in:
http://help.sap.com/saphelp_nw70/helpdata/DE/44/726396278212d0e10000000a422035/frameset.htm
Hope this was helpful.
Assaf Klieger
Installed Base Development
NetWeaver Portal Platform
SAP Labs Israel
Similar Messages
-
I installed Firefox 16.0.1 yesterday. I was running 15 earlier in the day and it was fine. FF 16 however has suddenly started hanging for about a minute when I try to access certain websites. It unfreezes fine after that minute, no crashes or anything, but it's very irritating. From what I can tell it only seems to do it on pages that use Flash. I've got the latest version installed, and it's made no difference. I tried downgrading to FF 15 and it's still the same. Anyone know what's going on?
Thanks,
MarkDid you try to disable protected mode in the Flash player?
You can check for problems caused by recent Flash updates and try these:
*disable a possible RealPlayer Browser Record Plugin extension for Firefox and update the RealPlayer if installed
*disable protected mode in Flash 11.3 and later
*disable hardware acceleration in the Flash plugin
*http://kb.mozillazine.org/Flash#Flash_Player_11.3_Protected_Mode_-_Windows -
Determine Sales Order change (ECC6.0 using Enhancement-point)
Hi all,
I want to determine Sales Order change e.g. if any item added to sales order or any item deleted fron sales order and also if Sales Order is deleted .... how can I achive this???
I am using ECC6.0 , in which I am using Include MV45AFZZ and FORM USEREXIT_SAVE_DOCUMENT to determine change at SAVE. The table XVBAK and structure VBAP is available but from this I am not able to determine the change.
How to do this..?
Regards,
NiLesH.Hi Nilesh,
Please see USEREXIT_SAVE_DOCUMENT_PREPARE instead of the one you are using in the Include MV45AFZZ.
SAP comments this customer form as:
* This userexit can be used for changes or checks, before
* a document is saved.
* If field T180-TRTYP contents 'H', the document will be
* created, else it will be changed. This form is called at the
* beginning of form BELEG_SICHERN
For the deletion, try to code your check in the form USEREXIT_DELETE_DOCUMENT in the Include MV45AFZZ provided for the customers.
I feel these would be more suited for your requirement.
Cheers,
Sougata.
You can use tables CDHDR/CDPOS for change documents but on a large scale reporting this would be very slow.
Alternatively, for performance reasons, you can use the form USEREXIT_READ_DOCUMENT to capture the sales order at its original state (in an internal table) then use form USEREXIT_CHECK_VBAP for any changes made while in the sales order create. Then in USEREXIT_SAVE_DOCUMENT, compare the previous and current condition values. If any changes exist, insert a row in a custom table with the change information. At the end you can base your report on your custom table rather than change document tables which will be slow on processing large volume of data.
Note: Go the user-exit way only if you are dealing with high volume of data
Edited by: Sougata Chatterjee on Jan 1, 2008 11:38 PM
Added after considering Ranjith's post -
When you try to load Firefox 6.0 the following error message is thrown and browser will not load:
The procedure entry point sqlite_libversion_number_IP could not be located in the dynamic link library mozqlite3.dll."The procedure entry point QTCF_CRUniCharGetUnicodePropertyDataForPlane could not be located in the dynamic link libray QTCF.dll."
That one is usually caused by a misplaced older version of QTCF.dll.
If you've got a 32-bit vista, first look to see if there's a copy of QTCF.dll lurking in your C:\Windows\system32\ folder. If you find one there, drag it out onto the desktop.
If you've got a 64-bit vista, first look to see if there's a copy of QTCF.dll lurking in your C:\Windows\sysWOW64\ folder. If you find one there, drag it out onto the desktop.
Now try launching iTunes again. Does it launch properly this time? -
How can I fetch all the PCD roles from EP!
Hello,
I need to fetch all the available pcd roles in EP. Right now I am trying to fetch pcd roles under Portal Content directory. I need a clarification whether this is the only place the pcd roles are available or is there any other location where rest of the pcd roles are available?
Thanks in advance,
Prashanth V SwamyHi Prasanth,
See the code below to retrieve all the pcd roles.
public List getPCDContents(IPortalComponentRequest request) throws Exception{
try{
Hashtable env = new Hashtable();
env.put(IPcdContext.SECURITY_PRINCIPAL, request.getUser());
env.put(Context.INITIAL_CONTEXT_FACTORY,IPcdContext.PCD_INITIAL_CONTEXT_FACTORY);
env.put(com.sap.portal.directory.Constants.REQUESTED_ASPECT, PcmConstants.ASPECT_SEMANTICS);
InitialContext ctx = null;
DirContext dirCtx;
List roleList = null;
ctx = new InitialContext(env);
dirCtx = (DirContext) ctx.lookup("pcd:portal_content/");
PcdSearchControls pcdSearchControls = new PcdSearchControls();
pcdSearchControls.setReturningObjFlag(false);
pcdSearchControls.setSearchScope(
PcdSearchControls.SUBTREE_WITH_UNIT_ROOTS_SCOPE);
dirCtx.addToEnvironment(
Constants.APPLY_ASPECT_TO_CONTEXTS,
Constants.APPLY_ASPECT_TO_CONTEXTS);
NamingEnumeration ne =
dirCtx.search("","(com.sap.portal.pcd.gl.ObjectClass=com.sapportals.portal.role)",
pcdSearchControls);
iViewList = new ArrayList();
while (ne.hasMoreElements()) {
IPcdSearchResult searchResult =
(IPcdSearchResult) ne.nextElement();
String location = "pcd:portal_content/" + searchResult.getName();
//Get the full pcd path of the iview.
roleList.add(location);
return iViewList;
}catch(Exception e ){
throw new Exception(e);
Hope it helps.
Regards,
Karthick -
I have a MacBook Pro and I need to be able to access Internet Explorer in order to login to my remote work server (Microsoft server) and Online Business Banking system (Bank of America Cash Pro). How do I do it if Internet Explorer is not supported on Macs? Is there another option? Please help.
I also feel like such a moron as I am really new to Apple computers and don't even know what operating system I am using. The below is what I have. Sorry to all that are well beyond me in the Mac world. Have been a windows user for my whole life and haven't quite figured out where to find everything I need on my new laptop yet. Thanks!
With the following configuration:
PROCESSOR 065-0154 2.7GHz Dual-core Intel Core i7
MEMORY 065-0156 8GB 1333MHz DDR3 SDRAM - 2x4GB
HARD DRIVE 065-0159 750GB Serial ATA Drive @ 5400
OPTICAL DRIVE 065-0161 8x Double-Layer SuperDrive
DVI Adapter 065-0162 None
VGA Adapter 065-0164 None
REMOTE 065-0166 None
Apple Software - iWork 065-7672 No iWork preinstalled
Apple Software - Final Cut Exp 065-7682 Final Cut Express preinstalled
Apple Software - Aperture 065-0338 Aperture preinstalled
Apple Software - Logic Express 065-7675 No Logic Express Preinstalled
Apple Software - Filemaker 065-8307 No FileMaker Preinstalled
Apple Software - MS Office 065-0278 MSO-HOME & BUSINESS EDITION
KEYBOARD AND DOCUMENTATION 065-0172 Keyboard/Users Guide
COUNTRY KIT 065-0175 Country KitIf you are New to Mac... you may also find these links of Value
Mac 101
http://www.apple.com/support/mac101/
http://www.apple.com/support/switch101/ Switching from PC
MBP Support
http://www.apple.com/support/macbookpro
Cheers, -
Access Enforcer Role Import - Reaffirm period
Hello
What does the following terms mean;
last reaffirm
reaffirmperiod
We current upload roles into AE, with last reaffirm as current date, and reaffirmperiod of 60 which means 5 years.
Can someone please explain what these terms mean, because many roles have reaffirm periods that end in 2010.
ThanksHi Prakas,
Reaffirm period ( in months ) is the duration after which you would like the Approver of the Role ( Role Owner /Role Approver ) to get notified on which all user in SAP has access to that Role and Does he want to continue giving that role to them or wants to remove that Role from all of them or any one of them .
He would get the details on which Role requires Reaffrim at following location :
In AE 5.2 ; login with Role approver id ( eg ABC ) into AE .
In tab Access Enforcer > Reaffirm .
A list of All the roles of which ABC is apporver and which require re-affrim would display here.
ABC can now take approriate action by selecting the role name.
*Last reaffrim * is the date when the Role was Reaffrim /revisited/reassgined last.
In your scenario you have given Reaffrim period = 60 which means your Role Owner would get the Role in his Reaffrim inbox after 5 years .
This is not best practise . For security reason , SAP advices to keep the Reaffrim period to a maximum of 2 months.
I hope this answers your query .
Thanks
Jasmine -
Integrate IdM roles with Sun Access Manager roles
Hi all,
I am currently working on a solution involving Sun Identity Manager 7.1 and Sun Access Manager 7.1 as well. We use AM for overall authentication and SSO across the application, and IdM for user provisioning.
I need to create roles in Identity Manager, and I would like that when I assign a role to a user in Identity Manager, he gets the same role in my Access Manager repository (Sun LDAP). Identity Manager does provide a way to set attribute values in resources when a role is set. Access Manager on the other hand has both dynamic roles, based on an LDAP search, and static roles.
What are the important differences between static and dynamic roles in AM?
Does anybody know a good way to propagate roles from Identity Manager to Access Manager?
Thanks.I found answers to my question. I succeeded in setting the Access Manager role from Identity Manager using the nsRoleDN attribute. Here are some references to begin with:
About directory server roles:
http://docs.sun.com/app/docs/doc/820-2493/fvbrn?a=view
Forum thread reference:
http://forums.sun.com/thread.jspa?threadID=5208694
Here are roughly the steps I followed to get this working.
Access Manager roles setup:
1. In Access Manager, create a new static role named test_role under the identities realm (in Subjects > Role).
Identity Manager roles setup:
1. Create a new role in Identity Manager: tab Roles, click New....
2. Assign the LDAP resource to synchronize the role with.
3. On the Assigned Resources line, click the Set Attributes Values button. This shows up the attributes listing allowing you to bind your IdM role to your LDAP repository.
4. Set the attribute nsRoleDN to the LDAP DN of the role that was created in AM (nsRoleDN must be added in the resource attributes mapping before).
* In the column Value override, select Text.
* In the column How to set, select Authoritative merge with value, clear existing. (* See IDM Admin guide about this setting, I am still not sure how it reacts with multi-value attributes)
* In the text box, enter the role DN text (ex: cn=test_role,dc=com).
5. Save the role. You can now add the role to a user. -
Access Enforcer - Role Reaffirmation
Hi,
Access Enforcer offers a role <-> user assignment reaffirmation after a defined period.
My question is, what happens if using the Remove or Hold button in the Role Reaffirm menu entry.
I tried removing the access, but all that happens is the user entry is marked as "Remove".
Should an automatic Request for the role removal be triggered or what's the purpose of these two options?
Thanks,
DanielaI answered the question myself.
Hold will keep the role in the queue to reaffirm.
Remove will automatically remove the role from the user once all user-role assignments have either been affirmed or removed. -
Access weblogic roles from external application
Hi all. In my scenario, the user and roles are stored in the WebLogic server. Then, there is an external application (not deployed on this WebLogic server) which needs to access these users/roles. Can someone tell me if there is an API provided by WebLogic through which the external application can access them? A sample code/documentation link for this would be icing on the cake.
Thanks for reading this post.
Vishal Singh.The embedded LDAP server that comes with WLS is not intended to be used by other applications and scale up to a large amount of users. Oracle recommends using an enterprise class identity management solution for use cases like that such as Oracle Internet Directory or Oracle Directory Server Enterprise Edition.
However, if you want to see how to embedded LDAP, this link shows you how to use a standard LDAP browser:
http://download.oracle.com/docs/cd/E14571_01/web.1111/e13707/ldap.htm#i1102166
So by using a Java LDAP api with the settings as described in the docs, your external app may be able to access users/roles.
I think you can find WLST examples for that somewhere too. -
I want to use my Time Capsule as a central 'hub/hard-drive' in order to keep all my working files in one place. I then plan to use my laptops/desktops as peripheral devices for editing and creation of these files. Is it possible? To create a personal cloud?
Can someone advise as to whether i can do the following:
Future Internet connection -------------------TIME CAPSULE (containing all files) -------------- Backed up on the WD 2T Hard-drive I have
(not connected yet) I (*connected to timecapsule physically)
I
I I I I I
Macbook Pro iMac HP (PC) OLD Macbook Pro iPhone
(used for remote working) (Used for home working) (used for heavy CAD and rendering) (not being used for anything at the moment) (& iPods)
I am looking to have all my files in one place as i am hopelessly disorganised. I know the online clouds are a good solution (used Dropbox at work and uni for 3 years) however i am wanting to create my own 'dropbox/icloud' at home. So whenever i get back home with my laptop, any work i have been working on whilst out that day is updated to the timecapsule, and then ultimately as i turn on the other devices, they update to those newer versions of the files. Please tell me that the 3TB time capsule i have can do this, otherwise it feels rather overpriced as a wireless storage device?
Another note (to those in the know) If i am to be working on large files (REVIT/SOLIDWORKS/KEYSHOT/CREO/AUTOCAD) - is the timecapsule connection good enough to support editing and updating these files?
I know i may be asking a question that many have before, but as a bit of a technical novice I wanted a clear-cut answer to my specific circumstances. Your help is greatly appreciated.
(*can i use this WD hard-drive that is connected to the Time Capsule as a back up? so that the time machine back-ups/any back ups are also backed up onto this one? can the WD be a backup for the TC?)
Kind Regards
JoeThe diagram was supposed to look more like this......
Internet ---------TIME CAPSULE(containing all files) --------WD 2T Harddrive
I
I I I I I
Macbook Pro iMac HP (PC) OLD Macbook Pro iPhone
Sorry!
Regards
Joe -
Hi i cant access to my house wifi but to all the others wifiS I can connect. I have restarted my iPhone and my home wifi. What should I do?
What make, model, and version WiFi router do you have?
Is the router firmware up to date?
What type of security is it running? WEP, WPA, WPA2 (WPA2 is recommended, WEP is completely insecure)
Do you have MAC address filtering turned ON? If so, have you added your iPhone MAC address to the permitted list in your router? -
I tried changing the permissions and installing a new itunes but nothing is working!
Had the same thing happen to me a few weeks back when I switched computers and migrated. Here's what worked on my iMac, so maybe it'll work on your iPad, too. Go to User(your home folder)/Music. Select/highlight your "Music" folder. Then do Command-I ("Get Info" from the File menu), click on the padlock icon in the lower right of the new window. Enter your user password. Click on your username just above the now-open padlock. Select "Read & Write" if it's on "Read Only," "Write Only," or "No Access." Now having your user account with "Read & Write" privileges (it may have been this way already; still do this next step), click on the gear on the bottom-center of that window. Click on "Apply to all enclosed items." When the pop-up says "Are you sure?" (or the equivalent), say "yes." This will grant access privileges to your user account for all the music files inside your music folder--all your iTunes stuff included). Then you should be good to go.
-
i have all my music under my user id. i would like for my wife to have access under her user id. i tried using Home Sharing but can't get it to work.
http://support.apple.com/kb/HT3819 homesharing
http://support.apple.com/kb/TS2972 troubleshooting home sharing.
i <3 Homesharing. I enabled it at home, and where I work I use a mac so I enabled it on that computer as well so I can listen to my own music library while on breaks/lunch =) -
My friend is running OS X Yosemite. Her kid used up all the memory on minecraft/word of warcraft files. Now no app will open including Finder to even access files for deletion. Is there a way to access any apps/files to clear space without using finder?
Step 1
The first step is to secure the data. If you want to preserve the contents of the startup drive, and you don't already have at least one current backup, you must try to back up now, before you do anything else. It may or may not be possible. If you don't care about the data that has changed since the last backup, you can skip this step.
There are several ways to back up a Mac that is not fully functional. You need an external hard drive to hold the backup data.
a. Start up from the Recovery partition, or from a local Time Machine backup volume (option key at startup.) When the OS X Utilities screen appears, launch Disk Utility and follow the instructions in this support article, under “Instructions for backing up to an external hard disk via Disk Utility.” The article refers to starting up from a DVD, but the procedure in Recovery mode is the same. You don't need a DVD if you're running OS X 10.7 or later.
b. If Step 1a fails because of disk errors, and no other Mac is available, then you may be able to salvage some of your files by copying them in the Finder. If you already have an external drive with OS X installed, start up from it. Otherwise, if you have Internet access, follow the instructions on this page to prepare the external drive and install OS X on it. You'll use the Recovery installer, rather than downloading it from the App Store.
c. If you have access to a working Mac, and both it and the non-working Mac have FireWire or Thunderbolt ports, start the non-working Mac in target disk mode. Use the working Mac to copy the data to another drive. This technique won't work with USB, Ethernet, Wi-Fi, or Bluetooth.
d. If the internal drive of the non-working Mac is user-replaceable, remove it and mount it in an external enclosure or drive dock. Use another Mac to copy the data.
Step 2
You might be able to run in safe mode even though you can't run normally. Otherwise, start up from an external drive, or else use the technique in Step 1b, 1c, or 1d to mount the internal drive and delete some files. According to Apple documentation, you need at least 9 GB of available space on the startup volume (as shown in the Finder Info window) for normal operation.
Maybe you are looking for
-
HELP!!!
-
Way to count commits and updates in a procedure
Gday, I want to trace a procedure at runtime to see how many updates and commits are being made when it runs. What is the best way to accomplish this? Cheers
-
PS Elements 11 - Microsoft Visual C++ Runtime Library
I am getting the following error when I am trying to use PhotoShop (this started after trying to open a .ems photo Runtime error! Program: C\ProgramFiles(x... This application has requested the runtime to terminate it in an unusual way. Please contac
-
The last time I was able to read a disc was when I called applecare right before my extended warranty expired. They asked me to load the Install Disc 1 to check my Hard Drive. I called applecare because a friend who had the exact same model as me had
-
Need help with itunes library/music. please see inside
So there's a long story to this one but to make it as short as possible: At one point I wasn't able to open iTunes on my desktop (something about a .itl file or whatever) so I made a new desktop to be used specifically for iTunes. I don't remember ho