Custom Portal iView (Retrieve user; Append text to URL; Redirect to URL)

Hi all,
I wish to create a custom Portal iView. I wish to fulfill the following requirements using this iView:
1) I wish to retrieve the Portal User ID of the user who is currently login in Portal. (Will the IUser class solve the purpose? I know IUser is used in Web Dynpro application.)
2) I wish to append this User ID to another URL (a URL of some other non-SAP application). The URL is something like this:
http://<ABC>/user=
3) Both the above tasks have to be performed in the same iView. And then the iView should automatically be redirected to the new URL (generated in step 2).
I wish to do this without using Web Dynpro. Can someone please help me for this requirement? I would appreciate even if someone knows the solution to only one of the three steps above, and replies to my question.
Thanks in advance.
Regards,
Ankur

GLM,
Sorry, my mistake.
I have been able to achieve step 3 using this thread:
Redirecting to external website from abstract portal component?
Can someone help me for step 1:
1) I wish to retrieve the Portal User ID of the user who is currently login in Portal. I need to do this in an AbstractPortalComponent.
Bye
Ankur

Similar Messages

  • Need custom column widths in Append Text Table to Report

    I need to print reports with tables of different column widths specified for each column, as the contained fields vary in width from just 3 characters in one column to 40 characters in another.  Also we are trying to match the reports generated by a non-labview routine.  In the past I have been able to achieve this by editing the Append Table to Report vi, working my way through the inner hierarchy to replace the DBL numeric COLUMN WIDTH control with a DBL numeric array.  The innermost vi, Set Table Column Width, assigns the numeric to a property node in a for loop, so the change is simple: replace the scalor with an array and enable indexing on the for loop.  Of course, after each Labview upgrade, I've had to go back in and repeat these edits on the overwritten upgraded vi's.  This time there is a problem.  The new version of this toolkit is object oriented, and disturbing these vi's wrecks the class methods in a way I don't understand (mostly because I've had no dealings with object oriented programming) and which cannot be undone.  I recently tried this and after not being able to fix the problem even with phone support, I had to spend the next two days unistalling and reinstalling Labview!  I desperately need a way to achieve this functionality without killing the toolkit, which is used (in its original functionality) by another absolutely critical program.  PLEASE HELP!
    The hierarchy is as follows:
    NI report.lvclass:Append Table to Report (wrap)
    NI report.lvclass:Append Table to Report 
    NI Standard report.lvclass:Append Text Table to Report
    NI Standard report.lvclass:tables
    NI Report Generation Core.lvlibet Table Column Width

    There is a highly relevant thread under discussion here:
    http://forums.ni.com/ni/board/message?board.id=fea​tures&thread.id=429
    You may wish to read it and chime in as it is a discussion of LabVIEW's policy (and possible change in policy for the future) concerning the handling of non-palette VIs between LV versions.
    Rob Hingle wrote:
    > Is that to say NI will not be helping me with this?  Pretty disappointing lack of support, seems
    > like a terrible idea to go to object oriented if even your own application engineers can't figure
    > out such a simple fix.  Gotta give NI a huge thumbs down on this one, thanks for nothing.
    I doubt that it is a simple fix -- our AEs are generally top notch at figuring out solutions for customers -- if it were simple, my bet is they'd have solved it. Asking an AE to work around a bug is different from asking them to rearchitect the toolkit. You are asking them to add a feature that the new version of the toolkit is not
    designed to support. The difficulty in doing this is completely independent of the decision to use LabVIEW classes to implement the toolkit. If any piece of software is not designed with a particular use case in mind, what may be a simple tweak under one design may become a very hard problem under another design.
    In your case, the solution is very straightforward: Use the older version of the toolkit. Any time you create a custom modification of the VIs that ship with LV or one of its toolkits, you should make your own copy and have your VIs link against the copy. LabVIEW promises to maintain all the public functionality version over version. Usually we succeed at that. What we do not promise is to maintain our private implementation of that functionality. It is impossible for LabVIEW (or any other software library) to maintain all of its private internal operations while still continuing any development. Using a copy of the original VIs shields you from having to recode your changes every version (something you've already mentioned is a chore) and it guarantees that functionality that you relie upon does not disappear.
    I hope you are willing to be understanding of this situation and not hold it against the AEs working on this. They try hard to provide excellent customer service, and spend lots of time inventing custom solutions for our users.  This happens to be a situation where the correct fix is not to modify the new toolkit version to do something it wasn't designed to do but to modify your development process so that the problem is solved now and into the future. 

  • Custom Search iView - Portal Runtime Error when in role

    Hello,
    I have created a custom Search iView based on a standard Search iView, but I have some problems with it.
    When this iView is placed inside a page and in the role and when it is being used (eg. user clicks Search), Portal Runtime exception occurs.
    Additional information: Exception during PageProcessorComponent.doContent()
    When I display this iView in preview mode, everything is fine, there is no errors.
    Also when this iView is being accessed through URLiView everything is fine too.
    So I think perhaps the problem lies somewhere in the portalapp.xml of this search iview.
    Here are the steps which I followed to create a custom search iView:
    1. I've imported the following par file: com.sap.km.cm.par.bak and created a project.
    2. The project name is: mycompany.km.cm.
    2. I've modified propertyapp.xml file so that the "basicsearch" and "search" components have some additional properties.
    3. I've exported a par (mycompany.km.cm.par) and deployed it on the server.
    4. I've created a search iView based on this par and put it inside a page and a role.
    Maybe I'm missing something, maybe there are some additional steps which should be made, for example SecurityArea property in portalapp.xml file or something similar.
    Help is very welcome cause I'm stuck with this.
    The new properties are: HelpIViewPathToCall, "TagCloudIViewPathToCall, SearchIViewPath,KnowledgeBaseIndexes
    Here is the portalapp.xml file:
    <?xml version="1.0" encoding="utf-8"?>
    <!--  edited with XML Spy v4.4 U (http://www.xmlspy.com) by Andreas Gaupp (SAP Portals Europe GmbH) -->
    <application name="com.sap.km.cm">
      <application-config>
        <property name="SharingReference" value="com.sap.km.application"/>
        <property name="ClassLoadingPolicy" value="transitive"/>
        <property name="DeploymentPolicy" value="6.0"/>
        <property name="Vendor" value="sap.com"/>
        <property name="SecurityArea" value="NetWeaver.KMC"/>
      </application-config>
      <components>
        <component name="actioninbox">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="DisplayEntryAsLink" value="true">
              <property name="type" value="select[true,false]"/>
              <property name="description" value="ACTIONINBOX_DISPLAYENTRYASL"/>
              <property name="longDescription" value="Displays items as links to content or Details dialog box."/>
              <property name="plainDescription" value="Display Items as Links"/>
            </property>
            <property name="MaxEntryLength" value="30">
              <property name="personalization" value="dialog"/>
              <property name="description" value="ACTIONINBOX_MAXENTRYLENGTH"/>
              <property name="longDescription" value="Maximum number of characters to be displayed."/>
              <property name="plainDescription" value="Maximum Item Length"/>
            </property>
            <property name="AutoRefreshInterval" value="0">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[0,1,5,10,30,60]"/>
              <property name="description" value="COMMON_AUTO_REFRESH"/>
              <property name="longDescription" value="Time interval for automatic refresh; 0 means no auto refresh."/>
              <property name="plainDescription" value="Auto Refresh Interval (minutes)"/>
            </property>
            <property name="LinkTarget" value="DetailsScreen">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[DetailsScreen,ContentScreen]"/>
              <property name="description" value="ACTIONINBOX_LINKTARGET"/>
              <property name="longDescription" value="Define which screen opens when an item is clicked."/>
              <property name="plainDescription" value="Defines which screen opens when a resource name is clicked"/>
            </property>
            <property name="FilterPath" value="">
              <property name="description" value="ACTIONINBOX_FILTERPATH"/>
              <property name="longDescription" value="Only display notifications for items in this folder (including subfolders); Blank means notifications for items from all repositories."/>
              <property name="plainDescription" value="Path to Folder to Be Notified about"/>
            </property>
            <property name="MaxEntriesPerSection" value="3">
              <property name="personalization" value="dialog"/>
              <property name="description" value="ACTIONINBOX_MAXENTRIESPERSE"/>
              <property name="longDescription" value="Maximum number of notifications to be displayed in the initial screen (for example, 3 subscriptions, 3 pieces of feedback, etc.)."/>
              <property name="plainDescription" value="Maximum Items per Section"/>
            </property>
            <property name="query" value="ConfigFileName=ActionInbox.xml&amp;StartPage=ActionInboxPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
          </component-profile>
        </component>
        <component name="applog">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=AppLog.xml&amp;StartPage=AppLogPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="DisplayHeader" value="false">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display iView Name within iView"/>
            </property>
          </component-profile>
        </component>
        <component name="websiteimport">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=WebSiteImport.xml&amp;StartPage=WebSiteImportPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="DisplayHeader" value="false">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display iView Name within iView"/>
            </property>
          </component-profile>
        </component>
        <component name="businesscard">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=BusinessCard.xml&amp;StartPage=BusinessCardPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
          </component-profile>
        </component>
        <component name="cachestatistics">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ComponentType" value="servlet"/ -->
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile>
            <property name="SortColumn" value="gets">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[gets,size,capacity,maximum,current,hits,added,ratio,removed]"/>
              <property name="description" value="CACHESTATISTICS_SORTCOLUMN"/>
              <property name="plainDescription" value="Initially Sort by"/>
            </property>
            <property name="AutoRefreshInterval" value="0">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[0,1,5,10,30,60]"/>
              <property name="description" value="COMMON_AUTO_REFRESH"/>
              <property name="longDescription" value="Time interval for automatic refresh; 0 means no auto refresh."/>
              <property name="plainDescription" value="Auto Refresh Interval (minutes)"/>
            </property>
            <property name="SortOrder" value="descending">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[descending,ascending]"/>
              <property name="description" value="COMMON_SORTORDER"/>
              <property name="plainDescription" value="Sort Order"/>
            </property>
            <property name="DisplayHeader" value="false">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display iView Name within iView"/>
            </property>
            <property name="ShowInstructions" value="summary">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[summary,none]"/>
              <property name="description" value="COMMOM_SHOWINSTRUCTIONS"/>
              <property name="long_Description" value="LONG_COMMOM_SHOWINSTRUCTIONS"/>
              <property name="plainDescription" value="Show Instructions"/>
            </property>
            <property name="query" value="ConfigFileName=CacheAdministration.xml&amp;StartPage=CacheAdministrationPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="TableRows" value="10">
              <property name="personalization" value="dialog"/>
              <property name="description" value="CACHESTATISTICS_TABLEROWS"/>
              <property name="plainDescription" value="Maximum Items per Page"/>
            </property>
            <property name="Paddings" value="10px">
              <property name="description" value="NAVIGATION_PADDINGS"/>
              <property name="longDescription" value="Paddings in standalone case"/>
              <property name="plainDescription" value="Paddings in standalone case"/>
            </property>
          </component-profile>
        </component>
        <component name="classificationinbox">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="medium_safety"/>
          </component-config>
          <component-profile>
            <property name="CategoryPaths" value="">
              <property name="description" value="CLASSI_TAXONOMYPATHPRE"/>
              <property name="longDescription" value="Root category path for navigation in taxonomy tree"/>
              <property name="plainDescription" value="Root Categories for Navigation"/>
            </property>
            <property name="ListMode" value="ABSTRACT">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[SIMPLE,ABSTRACT] "/>
              <property name="description" value="CLASSIFICATIONI_LISTMODE"/>
              <property name="plainDescription" value="List Display Modus"/>
            </property>
            <property name="TaxonomyPathPreselection" value="">
              <property name="description" value="CLASSI_CATEGORYPATH"/>
              <property name="longDescription" value="Path of taxonomy that should be displayed initially"/>
              <property name="plainDescription" value="Path to be Initially Displayed Taxonomy"/>
            </property>
            <property name="DocsPerPage" value="10">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[3,5,8,10,15,20]"/>
              <property name="description" value="CLASSI_DOCSPERPAGE"/>
              <property name="longDescription" value="Maximum number of documents to be displayed on each page"/>
              <property name="plainDescription" value="Number of Documents per Page"/>
            </property>
            <property name="DisplayHeader" value="false">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display iView Name within iView"/>
            </property>
            <property name="ShowInstructions" value="summary">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[summary,none]"/>
              <property name="description" value="COMMOM_SHOWINSTRUCTIONS"/>
              <property name="longDescription" value="Display instructions on user interface."/>
              <property name="plainDescription" value="Show Instructions"/>
            </property>
            <property name="ThresholdMaximum" value="100">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[100,200,500,1000,2000,5000,10000,99999]"/>
              <property name="description" value="CLASSI_THRESHOLDMAX"/>
              <property name="longDescription" value="Maximum number of documents in classification inbox worklist."/>
              <property name="plainDescription" value="Max. No. of Documents in Worklist"/>
            </property>
            <property name="ThresholdMinimum" value="10">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[0,2,5,7,10,25]"/>
              <property name="description" value="CLASSI_THRESHOLDMIN"/>
              <property name="longDescription" value="Minimum number of documents per folder in 'Docs to Classify' selection list"/>
              <property name="plainDescription" value="Min. No. of Documents per Folder in Docs to Classify"/>
            </property>
            <property name="query" value="ConfigFileName=TaxonomyAdmin.xml&amp;StartPage=ClassificationInboxPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="Paddings" value="10px">
              <property name="description" value="NAVIGATION_PADDINGS"/>
              <property name="longDescription" value="Paddings in standalone case"/>
              <property name="plainDescription" value="Paddings in standalone case"/>
            </property>
          </component-profile>
        </component>
        <component name="classificationviasearchresults">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ComponentType" value="servlet"/ -->
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <property name="SafetyLevel" value="medium_safety"/>
          </component-config>
          <component-profile>
            <property name="EnableSearchAction" value="false">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[true,false]"/>
              <property name="description" value="COMMON_ENABLESEARCHACTION"/>
              <property name="longDescription" value="Enable Selection of Search Method (linguistic/fuzzy /exact)."/>
              <property name="plainDescription" value="Enable Selection of Search Action in SearchResult List"/>
            </property>
            <property name="DisplayHeader" value="false">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display iView Name within iView"/>
            </property>
            <property name="ShowInstructions" value="summary">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[summary,none]"/>
              <property name="description" value="COMMOM_SHOWINSTRUCTIONS"/>
              <property name="longDescription" value="Display instructions on user interface."/>
              <property name="plainDescription" value="Show Instructions"/>
            </property>
            <property name="query" value="ConfigFileName=TaxonomyAdmin.xml&amp;StartPage=TrainTaxonomyPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="SearchPluginName" value="TaxTrainerSearch">
              <property name="description" value="SEARCH_PLUGINNAME"/>
              <property name="longDescription" value="Search dialog box options set defined in configuration  "/>
              <property name="plainDescription" value="Search Options Set"/>
            </property>
            <property name="path" value="/taxonomies">
              <property name="description" value="CLASSIFICATIONV_PATH"/>
              <property name="longDescription" value="Path to Taxonomy Folder"/>
              <property name="plainDescription" value="Path to Taxonomy Folder"/>
            </property>
            <property name="OverwriteConfig" value="false">
              <property name="type" value="select[true,false]"/>
              <property name="description" value="SEARCH_OVERWRITE_CONFIG"/>
              <property name="plainDescription" value="Overrule Search Configuration"/>
            </property>
          </component-profile>
        </component>
        <component name="crawlermonitor">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile>
            <property name="AutoRefreshInterval" value="0">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[0,1,5,10,30,60]"/>
              <property name="description" value="COMMON_AUTO_REFRESH"/>
              <property name="longDescription" value="Time interval for automatic refresh; 0 means no auto refresh."/>
              <property name="plainDescription" value="Auto Refresh Interval (minutes)"/>
            </property>
            <property name="query" value="ConfigFileName=CrawlerAdministration.xml&amp;StartPage=CrawlerAdministrationPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="ShowInstructions" value="summary">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[summary,none]"/>
              <property name="description" value="COMMOM_SHOWINSTRUCTIONS"/>
              <property name="longDescription" value="Display instructions on user interface."/>
              <property name="plainDescription" value="Show Instructions"/>
            </property>
            <property name="Paddings" value="10px">
              <property name="description" value="NAVIGATION_PADDINGS"/>
              <property name="longDescription" value="Paddings in standalone case"/>
              <property name="plainDescription" value="Paddings in standalone case"/>
            </property>
          </component-profile>
        </component>
        <component name="xcrawlermonitor">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile>
            <property name="AutoRefreshInterval" value="0">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[0,1,5,10,30,60]"/>
              <property name="description" value="COMMON_AUTO_REFRESH"/>
              <property name="longDescription" value="Time interval for automatic refresh; 0 means no auto refresh."/>
              <property name="plainDescription" value="Auto Refresh Interval (minutes)"/>
            </property>
            <property name="query" value="ConfigFileName=XCrawlerMonitor.xml&amp;StartPage=XCrawlerMonitorPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="ShowInstructions" value="summary">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[summary,none]"/>
              <property name="description" value="COMMOM_SHOWINSTRUCTIONS"/>
              <property name="longDescription" value="Display instructions on user interface."/>
              <property name="plainDescription" value="Show Instructions"/>
            </property>
          </component-profile>
        </component>
        <component name="xcrawlermonitordetails">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile>
            <property name="AutoRefreshInterval" value="0">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[0,1,5,10,30,60]"/>
              <property name="description" value="COMMON_AUTO_REFRESH"/>
              <property name="longDescription" value="Time interval for automatic refresh; 0 means no auto refresh."/>
              <property name="plainDescription" value="Auto Refresh Interval (minutes)"/>
            </property>
            <property name="query" value="ConfigFileName=XCrawlerDetails.xml&amp;StartPage=CrawlerThreadDetailsPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="ShowInstructions" value="summary">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[summary,none]"/>
              <property name="description" value="COMMOM_SHOWINSTRUCTIONS"/>
              <property name="longDescription" value="Display instructions on user interface."/>
              <property name="plainDescription" value="Show Instructions"/>
            </property>
          </component-profile>
        </component>
        <component name="crawlerindexmonitor">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile>
            <property name="AutoRefreshInterval" value="0">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[0,1,5,10,30,60]"/>
              <property name="description" value="COMMON_AUTO_REFRESH"/>
              <property name="longDescription" value="Time interval for automatic refresh; 0 means no auto refresh."/>
              <property name="plainDescription" value="Auto Refresh Interval (minutes)"/>
            </property>
            <property name="query" value="ConfigFileName=CrawlerIndexMonitor.xml&amp;StartPage=CrawlerIndexMonitorPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="ShowInstructions" value="summary">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[summary,none]"/>
              <property name="description" value="COMMOM_SHOWINSTRUCTIONS"/>
              <property name="longDescription" value="Display instructions on user interface."/>
              <property name="plainDescription" value="Show Instructions"/>
            </property>
          </component-profile>
        </component>
        <component name="xmlformsbrowser">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=XMLFormsBrowser.xml&amp;StartPage=StartDate&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
          </component-profile>
        </component>
        <component name="default">
          <component-config>
            <property name="MinimalTimeToLive" value="-1"/>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=WcmController.xml&amp;StartPage=WcmExplorerPage&amp;Validate=false"/>
            <property name="path" value="/etc"/>
          </component-profile>
        </component>
        <component name="details">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=WcmController.xml&amp;StartPage=ResourceDetailsPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="ShowInstructions" value="summary">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[summary,none]"/>
              <property name="description" value="COMMOM_SHOWINSTRUCTIONS"/>
              <property name="plainDescription" value="Show Instructions"/>
            </property>
          </component-profile>
        </component>
        <component name="discussion">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=WcmController.xml&amp;StartPage=DiscussionGroupPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="path" value="">
              <property name="description" value="DISCUSSION_PATH"/>
              <property name="plainDescription" value="Path to the object the discussion is related to"/>
            </property>
          </component-profile>
        </component>
        <component name="discussiongroups">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="Name" value=""/>
            <property name="ForceCollectionCreation" value="true"/>
            <property name="query" value="ConfigFileName=WcmController.xml&amp;StartPage=ModeratedDiscussionGroupPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
          </component-profile>
        </component>
        <component name="docs">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.proxy.WDServletProxy"/>
            <property name="ComponentType" value="servlet"/>
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="path" value="">
              <property name="description" value="DOCS_PATH"/>
              <property name="longDescription" value="Path to the document to be displayed in iView."/>
              <property name="plainDescription" value="Path to Document"/>
            </property>
            <property name="AuthScheme" value="basicauthentication"/>
            <property name="SupportedUserAgents" value="(*,*,*)">
              <property name="validvalues" value="7/(*,*,*)"/>
            </property>
          </component-profile>
        </component>
        <component name="docs~">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.proxy.WDServletProxy"/>
            <property name="ComponentType" value="servlet"/>
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="path" value="">
              <property name="description" value="DOCS_PATH"/>
              <property name="longDescription" value="Path to the document to be displayed in iView."/>
              <property name="plainDescription" value="Path to Document"/>
            </property>
            <property name="AuthScheme" value="basicauthentication"/>
            <property name="SupportedUserAgents" value="(*,*,*)">
              <property name="validvalues" value="7/(*,*,*)"/>
            </property>
          </component-profile>
        </component>
        <component name="download">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.proxy.AppLogDownloadProxy"/>
            <property name="ComponentType" value="servlet"/>
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile/>
        </component>
        <component name="feedback">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="parameters" value=""/>
            <property name="query" value="ConfigFileName=Feedback.xml&amp;StartPage=Feedback&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="ShowInstructions" value="summary">
              <property name="personalization" value="dialog"/>
              <property name="type" value="select[summary,none]"/>
              <property name="description" value="COMMOM_SHOWINSTRUCTIONS"/>
              <property name="longDescription" value="Display instructions on user interface."/>
              <property name="plainDescription" value="Show Instructions"/>
            </property>
          </component-profile>
        </component>
        <component name="highlightedcontent">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=HighlightedContent.xml&amp;StartPage=HighlightedContentPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
          </component-profile>
        </component>
        <component name="ice-subscriber">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="medium_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=ICEConfig.xml&amp;StartPage=SubscriberProperties&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="DisplayHeader" value="true">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display Title within iView"/>
            </property>
          </component-profile>
        </component>
        <component name="ice-subscriber-syndicators">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="medium_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=ICEConfig.xml&amp;StartPage=SubscriberSyndicators&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="DisplayHeader" value="true">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display Title within iView"/>
            </property>
          </component-profile>
        </component>
        <component name="ice-syndicator">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="medium_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=ICEConfig.xml&amp;StartPage=SyndicatorProperties&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="DisplayHeader" value="true">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display Title within iView"/>
            </property>
          </component-profile>
        </component>
        <component name="ice-syndicator-offers">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="medium_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=ICEConfig.xml&amp;StartPage=SyndicatorOffers&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="DisplayHeader" value="true">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display Title within iView"/>
            </property>
          </component-profile>
        </component>
        <component name="ice-syndicator-subscribers">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="medium_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=ICEConfig.xml&amp;StartPage=SyndicatorSubscribers&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="DisplayHeader" value="true">
              <property name="type" value="select[false,true]"/>
              <property name="description" value="COMMON_DISPLAYHEADER"/>
              <property name="plainDescription" value="Display Title within iView"/>
            </property>
          </component-profile>
        </component>
        <component name="ice">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.proxy.ICEServletProxy"/>
            <property name="ComponentType" value="servlet"/>
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="path" value=""/>
            <property name="AuthScheme" value="basicauthentication"/>
          </component-profile>
        </component>
        <component name="ice-debug">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.proxy.ICEDebugServletProxy"/>
            <property name="ComponentType" value="servlet"/>
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="path" value=""/>
            <property name="AuthScheme" value="basicauthentication"/>
          </component-profile>
        </component>
        <component name="metadatadownload">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.proxy.MetaDataDownloadServletProxy"/>
            <property name="ComponentType" value="servlet"/>
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile/>
        </component>
        <component name="indexadmin">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="high_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=IndexAdmin.xml&amp;StartPage=IndexAdministrationPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="EnableDisplayNames" value="">
              <property name="description" value="INDEXADMIN_ENABLEDISPLAYNA"/>
              <property name="longDescription" value="Determine whether display names or IDs are displayed in list of assigned data sources."/>
              <property name="plainDescription" value="Show Names rather than IDs"/>
            </property>
          </component-profile>
        </component>
        <component name="indexlog">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="medium_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=IndexLog.xml&amp;StartPage=IndexLogPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
          </component-profile>
        </component>
        <component name="navigation">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="StartUri" value="">
              <property name="description" value="BROWSE_STARTURI"/>
              <property name="longDescription" value="Path to first folder of breadcrumb; Blank means the entire breadcrumb from /root is displayed."/>
              <property name="plainDescription" value="Path to Root Folder for Navigation"/>
            </property>
            <property name="layoutSetMode" value="exclusive">
              <property name="type" value="select[exclusive,as default,force]"/>
              <property name="description" value="NAVIGATION_LAYOUTSETMODE"/>
              <property name="longDescription" value="Determine the priority of settings; Exclusive means that the iView settings override any existing OTH settings."/>
              <property name="plainDescription" value="Layout Set Mode"/>
            </property>
            <property name="rndLayoutSet" value="">
              <property name="description" value="NAVIGATION_LAYOUTSET"/>
              <property name="longDescription" value="Determine appearance of user interface and available commands."/>
              <property name="plainDescription" value="Layout Set"/>
            </property>
            <property name="rndRootLayoutSet" value="">
              <property name="description" value="NAV_LAYOUTSET_ROOT"/>
              <property name="longDescription" value="Determine appearance of user interface and available commands for the root collection."/>
              <property name="plainDescription" value="Layout Set for Root Collection"/>
            </property>
            <property name="query" value="ConfigFileName=Navigation.xml&amp;StartPage=NavigationPage&amp;Validate=false">
              <property name="personalization" value="none"/>
              <property name="inheritance" value="non-final"/>
            </property>
            <property name="XFProjectPath" value="">
              <property name="description" value="NAVIGATION_XFPROJECTPATH"/>
              <property name="longDescription" value="Path to the folder where project-specific items (e.g. images) for XML forms are to be stored. Overrides the project path set in the XML Forms Builder project options."/>
              <property name="plainDescription" value="XML Forms Project Path"/>
            </property>
            <property name="path" value="/documents">
              <property name="description" value="BROWSE_PATH"/>
              <property name="longDescription" value="Path to folder to be displayed initially when iView is loaded."/>
              <property name="plainDescription" value="Path to Initially Displayed Folder"/>
            </property>
            <property name="Paddings" value="10px">
              <property name="description" value="NAVIGATION_PADDINGS"/>
              <property name="longDescription" value="Paddings in standalone case"/>
              <property name="plainDescription" value="Paddings in standalone case"/>
            </property>
          </component-profile>
        </component>
        <component name="basicsearch">
          <component-config>
            <property name="ClassName" value="com.sapportals.wcm.portal.component.base.ControllerComponent"/>
            <!--  property name="ClassName" value="com.sapportals.wcm.portal.proxy.ControllerServletProxy"/ -->
            <!--  property name="ComponentType" value="servlet"/ -->
            <property name="SafetyLevel" value="low_safety"/>
          </component-config>
          <component-profile>
            <property name="query" value="ConfigFileName=Navigation.xml&amp;StartPage=SearchPage&amp;Validate=false&amp;layoutSetMode=exclusive">
              <property name="personalization" value="none"/>
            </property>
            <property name="SearchPluginName" value="">
              <property name="description" value="SEARCH_PLUGINNAME"/>
              <property name="longDescription" value="Search dialog box options set defined in configuration  "/>
              <property name="plainDescription" value="Search Options Set"/>
            </property>
            <property name="SearchCompsName" value="">
              <property name="description" value="SEARCH_COMPSNAME"/>
              <property name="longDescription" value="Search dialog box component set defined in configuration"/>
              <property name="plainDescription" value="Search Component Set"/>
            </property>
            <property name="OverwriteConfig" value="false">
              <property name="type" value="select[true,false]"/>
              <property name="description" value="SEARCH_OVERWRITE_CONFIG"/>
              <property name="longDescription" value="Overwrite predefined configuration with specified parameters"/>
              <property name="plainDescription" value="Overrule Search Configuration"/>
            </property>
            <property name="rndLayoutSet" value="">
              <property name="description" value="SEARCH_LAYOUT_SET"/>
              <property name="longDescription" value="Layout set for search result list display "/>
              <property name="plainDescription" value="Search Result Layout Set"/>
            </property>
            <property name="ResourceListType

    I've also noticed that the same thing happens when I create search iView based on portal component com.sap.km.cm.par - basicsearch.
    Here's the exception:
    #1.5#0003BAD948F4007E000002A000004DED000441155DD57934#1197459931232#com.sapportals.wcm.portal.component.base.ControllerComponent#sap.com/irj#com.sapportals.wcm.portal.component.base.ControllerComponent#Administrator#799##gruffi_PPD_13557250#Administrator#b76ea9c0a8a711dcb17d0003bad948f4#Thread[PRT-Async 2,5,PRT-Async]##0#0#Error##Plain###Exception ID = c00956aa-d58a-2a10-0ea1-e22f57d2ce92 com.sapportals.portal.prt.component.PortalComponentException: Exception during PageProcessorComponent.doContent()
            at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:139)
            at com.sapportals.wcm.portal.component.base.ControllerComponent.doContent(ControllerComponent.java:77)
            at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
            at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
            at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
            at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:375)
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:388)
            at com.sapportals.portal.prt.core.async.ThreadContextRunnable.run(ThreadContextRunnable.java:164)
            at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729)
            at java.lang.Thread.run(Thread.java:534)
    Caused by: com.sapportals.htmlb.page.PageException: null (java.lang.NullPointerException)
            at com.sapportals.wcm.app.controller.ControllerDynPage.doProcessBeforeOutput(ControllerDynPage.java:78)
            at com.sapportals.wcm.portal.component.base.KMControllerDynPage.doProcessBeforeOutput(KMControllerDynPage.java:57)
            at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:123)
            at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)
            ... 11 more
    Message was edited by:
            Ladislav Pomezny

  • VSM mods :: User pictures in VSM Customer Portal

    I really don't know how much more of you are still using the "old style" VSM Customer Portal (for me the way it looks and behaves are hundred times better than this new silverlight style but it's my personal opinion only).
    I don't even know how many years are left until its "retirement".
    Anyway I am sharing my experience how it is possible to make the portal a bit nicer and more personalized than it is by default. Of course if you are not against to customize your system a little.
    User photos
    It's not a long time ago since we have started to store employees pictures in the Active Directory. It is quite nice to see persons photos when receiving emails, when talking with colleagues using Lync or reviewing information on internal SharePoint portal.
    Then I thought - why not VSM? It should be not very difficult to attach pictures to a VSM Person record as object (the standard feature by the way) and to display it in the Portal (maybe in the Full Client app as well).
    Especially when the method to display a binary picture on a web page has been already tested well since the picture quick preview mod (see my earlier post) implementation.
    You may attach the picture to a Person record manually of course, but it's really not a rocket science to import photos from AD user objects (property thumbnailPhoto) and import it to VSM as Person object automatically. And you can even sync these pictures with AD every night in example.
    So please feel free to share your notes and improvement suggestions or to ask questions if you are interested in details how to do that. I am not sure whether this is suitable to go in much details publicly but I will always try to help by PM at least.
    Or simply you may ask your professional services contact to implement this change in your system if you like it. I am sure they can easily manage that. =)
    Gytis

    And this is an example from our working environment how it may look like in the Portal:

  • IOS 8.0 our apple users and CISCO ISE customized portal [SOLVED]

    Hi there guys ,
    i wondering why after the update to iOS 8.0 our apple users , cannot
    make it to the ISE authentication Portal , we make em connect thru a WLC wich
    is redirecting to ISE ( radius server ) the web-auth process,
    while if we use the internal portal (PIC2) of wlc 5508 the all process going well
    after the update to 8.0 apple IOS , devices can't reach our customized portal
    no more.....
    anybody experienced the same?
    BR
    Eugenio

    Glad you got it working and good job on finding a solution to your problem (+5 from me). Also, thank you for taking the time to come back and share it.
    If your issue is resolved you should mark the thread as "Answered" :)
    One thing to also consider is CWA (Central Web Auth) instead of what you are doing which is LWA (Local Web Auth). It is always better to do CWA as there are many benefits to it. 
    Thank you for rating helpful posts!

  • Problem in assigning custom role to a user

    Hi everyone,
    Can anyone tell me how to assign a custom role to a user?
    I have created a set of IViews which are assigned to a workset and the workset is assigned to a new role.
    I assign this new role to my user account.
    But, I am not getting the role which I have assigned to my user account.
    What am I missing???

    Hi Daya,
    Check the below links:
    [Setting up Portal Roles|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e0ba66fd-3c4e-2a10-1090-e1217a92c147?QuickLink=index&overridelayout=true]
    Step by step guide to create roles and worksets. [Wiki blog|http://wiki.sdn.sap.com/wiki/display/EP/Makeiview,workset,pageandassignrole]
    Check the [help.sap|http://help.sap.com/saphelp_nw70/helpdata/en/1e/89570091620b428807f5bce4b45e7f/frameset.htm] document to get idea about Portal Content Objects.
    Regards,
    Anand G

  • Can retrieve users from some sub OUs and from other sub OUs cann't

    hi,
    I am using Windows 2003 Active Directory Server and Jndi to access that in my application. I am using follwing code to retrieve all Users from a aprticular OU.
    ctx = new InitialDirContext(environment);
    SearchControls ctls = new SearchControls();
    ctls.setSearchScope(2);
    String attrs[] = {
    "sn", "givenName", "userPrincipalName"
    ctls.setReturningAttributes(attrs);
    String filter = "(&(objectClass=*))";
    String serachCriteria[] = {"User Container", "Admin Leads,OU=Administration,OU=User Container"};
    for(int i = 0; i < serachCriteria.length; i++)
    StringBuffer searchString = new StringBuffer("OU=");
    searchString.append(serachCriteria);
    searchString.append(",DC=india,DC=mycompany,DC=com");
    for(NamingEnumeration answer = ctx.search(searchString.toString(), filter, ctls); answer.hasMoreElements();)
    SearchResult searchResult = (SearchResult)answer.next();
    ....................and so on
    as can be observed in the bold text above, I have to specify the path of sub OU to retrieve users under that. Whereas apart from this sub OU, it is retrieving users from others sub OUs. The problem is, the code can access users from some OUs but not from other sub OUs
    Can anybody help?
    regards,
    Zaid

    Active Directory has a very rich access control model.
    Perhaps it may not have occurred to you, that you do not have list access rights to the child3 & child9 organizational units ?
    You may have access rights to all the leaf objects contained in child3 & child9, which explains why you can retrieve all the leaf objects when you explicitly bind to them, however you may not have list access rights to child3 & child9 which explains why you can't bind to it when iterating through parent1.
    What happens if you simply perform a one level search on parent1, using a filter (objectClass=organizationalUnit) ?
    If it doesn't retrieve child3 & child9, then perhaps you do not have list access rights for those two ou's.

  • Hyperlink to Portal iView

    Hi Portal Knowledgeable ones,
    I can not get a hyperlink on a HTML page to position the user on a different portal iView.  The custom HTML page exists on another web server (not the portal itself).  The custom HTML page displays in the portal using a "URL iView".  The link I am using works fine when I enter it alone in a web browser.  What am I doing wrong?
    Here is the link that I am using:
    <A HREF="Link to Other Role" onclick="return EPCM.doNavigate('https://myserver.company.com/irj/portal?navigationtarget=roles://portal_content/com.company.ROOT/com.company.Common/com.company.common.Roles/com.company.common.roles.ProfileManagement/com.company.common.iviews.ChangePassword')">
    Thanks,
    Kevin

    Hi Kevin,
    your URL iView is URL isolated, this means is rendered within an iFrame. So you cannot call EPCM directly, only via EPCMProxy; but also this must be loaded from the integrated HTML page, and - ! - the URL from where the pages gets loaded must be "relaxable" (if your portal is your.portal.server, the integrated site may be someother.portal.server).
    See http://help.sap.com/saphelp_nw04/helpdata/de/27/41b84033a8b533e10000000a155106/frameset.htm for EPCM proxy, see http://help.sap.com/saphelp_nw04/helpdata/de/b3/7b8163404448e7aad7899c0b30313e/frameset.htm and http://help.sap.com/saphelp_nw04/helpdata/de/2d/91e33edd37de63e10000000a11405a/frameset.htm for direct nav URLs and http://help.sap.com/saphelp_nw04/helpdata/de/43/0029d0e7371aa2e10000000a422035/frameset.htm for programmatically creating nav targets.
    Hope it helps
    Detlev

  • Web Page Composer WPC and Portal iView - Show Tray

    Does anyone know if it is possible to show the iview tray when dropping an iview into a WPC container?
    I added the "portal page" as an allowed object to drop into a container, but WPC does not allow Portal Pages inside a WPC page.
    I would like some kind of "title" on my iview to explain what it is showing.
    One other option is to use a custom java iview that just has some text label above my content.
    Thanks

    Hi Bertina,
    We encountered the same problem couple days back in our environment. There is a SAP note (# 1294833) which details the issue but affected version indicated in this note is different then what we are on so we decided to create a note for SAP.
    Below is SAP response for this issues
    13.09.2010 - 08:52:12 CET - Reply by SAP     
    Dear customer,
    I can confirm that the issue described in SAP Note 1294833 is indeed
    present in EP 7.01 SP4 and is the reason you are currently experiencing
    this problem.
    Unfortunately, as outlined in the note, there is no workaround
    available but our developers have advised me that the fix will be
    included in the next patch for KMC WEB PAGE COMPOSER 7.01 SP04.
    Hope this helps.

  • Customizing Portal and Backend

    Hello to all,
    My job is to get the portal running (EP 6.0). The EP has already been installed and setup with MSS and ESS SAP Business Packages. I must now start customization on both sides - for that I must know the tasks of customizing the Portal and Backend.
    Anyone has a document with simply the step by step procedure for customizing (from iviews, users, homepage framework, etc…), covering Backend and Portal? Of course I already know a lot of the tasks but I don’t want to be miss something, and I want to do things in the right order. Problem is I’m not sure what must be done first.
    Thanks a lot

    Hi,
    You can start with this blog and the document attached to it for a good overview some ESS/Portal and backend configuration.
    Configuring The Business Package For Employee Self Service (ESS)-mySAP ERP 2004
    Help on Homepage framework
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/aa/9f75620a8d4a2e9181db37f2fa2a62/frameset.htm
    Regards,
    PK

  • Pop ups on Standard MDM Portal iViews throw Portal Runtime Error

    Hi all,
    We are facing some issues with MDM Standard Search iViews in Portal. We have configured MDM standard iViews using MDM Search Texts iView, MDM Result Set iView, MDM Search Picklists iView, MDM Item Details etc. We are facing a problem with the MDM Search Picklists iViews wherein we have to click the ellipses button to open the pop up. Whenever we open the pop up, the pop up shows Portal Runtime Error. Please find the screenshot below:
    http://img209.imageshack.us/img209/1138/portalruntimeerror.jpg
    The MDM System is working fine. The other Standard iViews are also working fine. The surprising thing is that, when the Super Admin role is assigned to the user, the iViews start working perfectly as shown below:
    http://img696.imageshack.us/img696/6808/worksfinethisway.jpg
    I have checked the permissions also on all these iViews as well as the System object and did not find any problem. Moreoever, this was working fine till some days back. All of a sudden these iViews have stopped working. Please guide me as to what can be the reason for this and any possible solutions.
    Thanks in advance.
    Regards,
    Ankur

    I would check the logs but it sounds like a permission error to me.  Can you or your basis resources modify the Security Zones?
    System Administration -> Permissions -> expand Security Zones folder -> right click on com.sap.pct.mdm.appl.masteriviews and select Open Permissions -> in the assign permissions section add read permissions for a particular user, role, or group which the user getting the error is part of, check the End User checkbox -> Save.  Login to the portal and try again.
    -Greg

  • Custom portal service not running ni NW 04

    Hello!
    We are about to migrate from EP6 SP2 to NW04 and I'm currently testing the results of the first test run.
    One special problem I encountered is one of my custom portal services no longer running. It did without flaws back in EP6, so something seems to have changed.
    My Service interface:
    [code]
    package com.rag.ekportal.bginfocenter.kmservice;
    @author Juergen Wahlmann
    public interface IBGFetcher extends IService {
    [/code]
    And the implementation:
    [code]
    package com.rag.ekportal.bginfocenter.kmservice;
    public class BGFetcher implements IBGFetcher, Runnable {
    [/code]
    portalapp.xml
    [code]
    <?xml version="1.0"  encoding="UTF-8"?>
         <application>
              <application-config>
              </application-config>
              <components>
                   <component name="BGViewer">
                        <component-config>
                             <property name="ClassName" value="com.rag.ekportal.bginfocenter.bgview.control.BGViewer">
                             </property>
                             <property name="SecurityZone" value="sbi-ruhr.de/ekportal/medium_safety/com.rag.ekportal/components/bgviewer">
                             </property>
                             <property name="ResourceBundleName" value="bginfocenter">
                             </property>
                             <property name="ServicesReference" value="usermanagement,knowledgemanagement,com.rag.ekportal.bginfocenter.kmservice.BGFetcher,com.sap.portal.ivs.connectorservice,landscape">
                             </property>
                        </component-config>
                        <component-profile>
                             <property name="tagLib" value="/SERVICE/htmlb/taglib/htmlb.tld">
                                  <property name="personalization" value="none">
                                  </property>
                             </property>
                             <property name="templatesfolderName" value="Vorlagen">
                             </property>
                             <property name="guidelinesfolderName" value="Richtlinien">
                             </property>
                             <property name="bgContactsfolderName" value="BG-Ansprechpartner">
                             </property>
                             <property name="ksb2folderName" value="KSB 2">
                             </property>
                             <property name="bgControllingfolderName" value="BG-Controlling">
                             </property>
                             <property name="rvURL" value="/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fcom.fo.admin!2fcom.admin.fo.iview!2fcom.admin.iview.fo.ri!2fcom.admin.iview.ri.fo.rag!2fcom.admin.iview.ri.rag.iv.begis_0_0?numberBG=">
                             </property>
                             <property name="KmServiceUser" value="KM Service User">
                             </property>
                             <property name="systemAlias" value="BeGIS_RV_DB">
                             <property name="personalization" value="admin"/>
                             <property name="plainDescription" value="JDBC System object for DB access"/>                         
                        </property>
                        <property name="table" value="janus_contract_bg_v">
                             <property name="personalization" value="admin"/>
                             <property name="plainDescription" value="Database View for reading contracts"/>                         
                        </property>
                        <property name="table1" value="user_roles_v">
                             <property name="personalization" value="admin"/>
                             <property name="plainDescription" value="Database Table for checking user role in RV DB"/>                         
                        </property>
                        </component-profile>
                   </component>
              </components>
              <services>
                   <service name="BGFetcher">
                        <service-config>
                             <property name="className" value="com.rag.ekportal.bginfocenter.kmservice.BGFetcher">
                             </property>
                             <property name="startup" value="true">
                             </property>
                             <property name="SecurityZone" value="sbi-ruhr.de/ekportal/medium_safety/com.rag.ekportal/services/bgfetcher">
                             </property>
                        </service-config>
                        <service-profile>
                             <property name="interval" value="300000">
                             </property>
                             <property name="enable" value="false">
                                  <property name="type" value="boolean">
                                  </property>
                             </property>
                             <property name="numberofruns" value="1">
                             </property>
                             <property name="repository" value="/rag_bgm_test/Beschaffungsgruppen">
                             </property>
                             <property name="KmServiceUser" value="KM Service User">
                             </property>
                             <property name="dbServer" value="xxx">
                             </property>
                             <property name="dbUser" value="xxx">
                             </property>
                             <property name="dbPassword" value="xxx">
                             </property>
                             <property name="dbName" value="xxx">
                             </property>
                             <property name="workfolderName" value="Arbeitsordner">
                             </property>
                             <property name="teamfolderName" value="Teamordner">
                             </property>
                             <property name="contactfolderName" value="Ansprechpartner">
                             </property>
                             <property name="publicfolderName" value="u00D6ffentlicher Ordner">
                             </property>
                             <property name="deletedfolderName" value="/rag_bgm_test/Gelu00F6scht/">
                             </property>
                        </service-profile>
                   </service>
              </services>
         </application>
    [/code]
    The service didn't work after the migration, so I tried to deploy it again. This is the result:
    [code]
    Date : 01/12/2006
    Time : 13:31:37:880
    Message : [PortalServiceItem.startServices] service initialisation failed:com.rag.ekportal.bginfocenter.kmservice|BGFetcher
    [EXCEPTION]
    java.lang.NoClassDefFoundError: com/sapportals/wcm/repository/ResourceException
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:219)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.__createServiceInstance(PortalServiceItem.java:727)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.createServiceInstance(PortalServiceItem.java:613)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.startServices(PortalServiceItem.java:1042)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.startLoadOnStartupServices(PortalAppBroker.java:1563)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.start(PortalAppBroker.java:1518)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.restartQueuedApplication(PortalAppBroker.java:1866)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.updateApplications(PortalAppBroker.java:1702)
         at com.sapportals.portal.prt.deployment.DeploymentManager.updateApplications(DeploymentManager.java:1754)
         at com.sap.ip.portal.admin.portalanywhere.QueryHandler.handleTopic(QueryHandler.java:152)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.executeActionHandleTopic(NotificationSAPJ2EE630.java:1141)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.notifyActionSubscribers(NotificationSAPJ2EE630.java:1089)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.receiveWait(NotificationSAPJ2EE630.java:386)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.broadcastAndWait(NotificationSAPJ2EE630.java:553)
         at com.sapportals.portal.prt.service.notification.NotificationServiceDispatcher.broadcastAndWait(NotificationServiceDispatcher.java:192)
         at com.sap.ip.portal.admin.portalanywhere.EventForwarder.sendQueryAndGetResults(EventForwarder.java:122)
         at com.sap.ip.portal.admin.portalanywhere.EventForwarder.sendQueryToAllServers(EventForwarder.java:144)
         at com.sap.ip.portal.admin.portalanywhere.EventForwarder.forwardEventToAllServers(EventForwarder.java:135)
         at com.sap.ip.portal.admin.portalanywhere.ArchiveUploader.forwardUpdateToAllServers(ArchiveUploader.java:253)
         at com.sap.ip.portal.admin.portalanywhere.ArchiveUploader.doContent(ArchiveUploader.java:235)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
         at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:646)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
         at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
    Severity : Error
    Category : /System/Server
    Location : com.sap.portal.prt.runtime.broker
    Application : sap.com/irj
    Thread : SAPEngine_Application_Thread[impl:3]_15
    Datasource : 2390950:E:\usr\sap\PMT\JC00\j2ee\cluster\server0\log\defaultTrace.trc
    Message ID : 000C29A5B62A00400000001300000A4000040A2887A939D9
    Source Name : com.sap.portal.prt.runtime.broker
    Argument Objs : java.lang.NoClassDefFoundError: com/sapportals/wcm/repository/ResourceException
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:219)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.__createServiceInstance(PortalServiceItem.java:727)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.createServiceInstance(PortalServiceItem.java:613)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.startServices(PortalServiceItem.java:1042)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.startLoadOnStartupServices(PortalAppBroker.java:1563)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.start(PortalAppBroker.java:1518)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.restartQueuedApplication(PortalAppBroker.java:1866)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.updateApplications(PortalAppBroker.java:1702)
         at com.sapportals.portal.prt.deployment.DeploymentManager.updateApplications(DeploymentManager.java:1754)
         at com.sap.ip.portal.admin.portalanywhere.QueryHandler.handleTopic(QueryHandler.java:152)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.executeActionHandleTopic(NotificationSAPJ2EE630.java:1141)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.notifyActionSubscribers(NotificationSAPJ2EE630.java:1089)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.receiveWait(NotificationSAPJ2EE630.java:386)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.broadcastAndWait(NotificationSAPJ2EE630.java:553)
         at com.sapportals.portal.prt.service.notification.NotificationServiceDispatcher.broadcastAndWait(NotificationServiceDispatcher.java:192)
         at com.sap.ip.portal.admin.portalanywhere.EventForwarder.sendQueryAndGetResults(EventForwarder.java:122)
         at com.sap.ip.portal.admin.portalanywhere.EventForwarder.sendQueryToAllServers(EventForwarder.java:144)
         at com.sap.ip.portal.admin.portalanywhere.EventForwarder.forwardEventToAllServers(EventForwarder.java:135)
         at com.sap.ip.portal.admin.portalanywhere.ArchiveUploader.forwardUpdateToAllServers(ArchiveUploader.java:253)
         at com.sap.ip.portal.admin.portalanywhere.ArchiveUploader.doContent(ArchiveUploader.java:235)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
         at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:646)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
         at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
    Arguments : java.lang.NoClassDefFoundError: com/sapportals/wcm/repository/ResourceException
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:219)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.__createServiceInstance(PortalServiceItem.java:727)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.createServiceInstance(PortalServiceItem.java:613)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.startServices(PortalServiceItem.java:1042)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.startLoadOnStartupServices(PortalAppBroker.java:1563)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.start(PortalAppBroker.java:1518)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.restartQueuedApplication(PortalAppBroker.java:1866)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.updateApplications(PortalAppBroker.java:1702)
         at com.sapportals.portal.prt.deployment.DeploymentManager.updateApplications(DeploymentManager.java:1754)
         at com.sap.ip.portal.admin.portalanywhere.QueryHandler.handleTopic(QueryHandler.java:152)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.executeActionHandleTopic(NotificationSAPJ2EE630.java:1141)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.notifyActionSubscribers(NotificationSAPJ2EE630.java:1089)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.receiveWait(NotificationSAPJ2EE630.java:386)
         at com.sapportals.portal.prt.service.notification.impl.NotificationSAPJ2EE630.broadcastAndWait(NotificationSAPJ2EE630.java:553)
         at com.sapportals.portal.prt.service.notification.NotificationServiceDispatcher.broadcastAndWait(NotificationServiceDispatcher.java:192)
         at com.sap.ip.portal.admin.portalanywhere.EventForwarder.sendQueryAndGetResults(EventForwarder.java:122)
         at com.sap.ip.portal.admin.portalanywhere.EventForwarder.sendQueryToAllServers(EventForwarder.java:144)
         at com.sap.ip.portal.admin.portalanywhere.EventForwarder.forwardEventToAllServers(EventForwarder.java:135)
         at com.sap.ip.portal.admin.portalanywhere.ArchiveUploader.forwardUpdateToAllServers(ArchiveUploader.java:253)
         at com.sap.ip.portal.admin.portalanywhere.ArchiveUploader.doContent(ArchiveUploader.java:235)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
         at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:646)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
         at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
    Dsr Component :
    Dsr Transaction : 5f940fe0836711da887d000c29a5b62a
    Dsr User :
    Indent : 0
    Level : 0
    Message Code :
    Message Type : 1
    Relatives : /System/Server
    Resource Bundlename :
    Session : 2391
    Source : com.sap.portal.prt.runtime.broker
    ThreadObject : SAPEngine_Application_Thread[impl:3]_15
    Transaction :
    User : xxx
    [/code]
    Looks like something is wrong in the service definition (portalapp.xml) but I have no clue. Class names are spelled right, settings the same as in EP6 SP2, yet the portal engine is not able to find the implementation class of the service.
    Any ideas?
    Cheers,
      Juergen

    Hi Detlev!
    The ServiceReference definition previously was located in the application config under SP2, but didn't work either.
    Now I found the solution. A sharing reference of all non-custom services in the application config and an additional sharing reference to my custom service in the portal application's config like this:
              <application-config>
                   <property name="SharingReference" value="usermanagement,knowledgemanagement,com.sap.portal.ivs.connectorservice,landscape">
                   </property>
              </application-config>
              <components>
                   <component name="BGViewer">
                        <component-config>
                             <property name="ClassName" value="com.rag.ekportal.bginfocenter.bgview.control.BGViewer">
                             </property>
                             <property name="SecurityZone" value="sbi-ruhr.de/ekportal/medium_safety/com.rag.ekportal/components/bgviewer">
                             </property>
                             <property name="ResourceBundleName" value="bginfocenter">
                             </property>
                             <property name="SharingReference" value="com.rag.ekportal.bginfocenter.KMService.BGFetcher">
                             </property>
                        </component-config>
    Case closed, thx for you hint. I awarded points.
    Cheers,
      Jürgen
    Message was edited by: Juergen Wahlmann, solution included

  • Passing customer id(logged in user)  to BAPI

    Hi,
    I am creating a sales order application where in i have to pass the user id (customer  logged in through portal) .
    I have made the MODEL RFC as ticket, and meta data as user id password where i have passed the service user and password.
    Now my problem is that there will be 'N' customer ids in Portal but we are not creating any customer ids in SAP ECC. We are planning to pass the user id of portal logged in user to ECC (which will be customer id) and get the data based on the customer id passed.
    Question is how do i pass customer id to BAPI, ? Do i have to make the MODEL JCO as user/password or ticket should be fine as i am getting information for only customer logged in Portal ?
    How and where do i write the the following piece of code ? Should it be in wdDo init() or in the execute method of Controller ?
    try{
    IUser user = WDClientUser.getLoggedInClientUser().getSAPUser();
    IUserAccount[] acct = user.getUserAccounts();
    if(acct[0] != null)
    String strUserid = acct[0].getLogonUid();
    customer=strUserid.substring(0,strUserid.indexOf("."));
    if(customer.equalsIgnoreCase(customer))
    wdContext.currentYOURRFC_InputElement().setCustomer(customer);
    }catch(Exception ex)
    ex.getMessage();
    Should the above code be in the component controller before i execute the BAPI ?
    your help is appreciated.
    Regards
    PN

    Hi Portal Newbie,
    Your tickets and userid/password works as following:
    Tickets: When u select SAP logon ticket (SLT), EP generates a ticket with the user id of the logged in user, attached to the ticket. Now when it reaches R/3 it will check for the same user id. If no such user id is exits it will throw an error. To over come this u can define a reference system where u can do the user mapping.
    UIDPD: When u select this option u have to manually enter the user id and password in JCo. So when a EP user logs in the UID and password mentioned in JCo will be passed, not the EP user id, and R/3 will look for that user and execute the BAPI. And i guess u dont want that.
    Solution:
    As far as i have understood u dont want the same number of users in EP and R/3, (might be a licensing issue) and want only a few user IDs in R/3.
    1. Select UIDPD in JCo, and in your BAPI add another field like "user_id" through which u can send the user id to R/3 and execute a query which shall return the value corresponding to that particular user. [issue: there is a limit to the JCo connections created for a user.] Also there is an api to handle JCo connection in webdynpro. There u can set the user id, password and client number. But here also the user id that you set should be present in R/3.
    2. Select SLT in JCo and configure a reference system. You have to perform user mapping for every user. Now when a user logs in the ticket will contain the user id of EP and also the one u have mapped, ie the R/3 user. Make sure the R/3 user id exists in R/3. Now the sy-unam in BAPI will contain the R/3 user id. I guess there is an option to retrieve the EP user id from the ticket, but im not sure.
    In your kind of scenario its always recommended to have same number of user ids in EP and R/3. If user names are same then there is no need to configure reference system.
    Regards,
    Piyush.
    ps: reference system is just a system that we create in EP but in UME settings we have to specify this system as the reference system.

  • Displaying custom content based on user's roles

    Hi experts,
    I have been asked to look for a solution to display custom content based on the current user's roles.
    Basically It would be a simple page (or several pages I don't know yet)  that displays links to others systems in the enterpise landscape. Links have to appear but they may be "desactivaded" for some users.
    So i'm thinking of a custom portal app in java that display this page embedded in an iview, a test to check the current user permissions and some css / javascript magic to do the trick.
    What do you think ? Would there be another solution that I'm missing which doesn't require development ?
    I'm open to any suggestion / technology
    Regards.

    Sounds good,
    You can also consider using Service Map iView or Workset Map iView if those links should point to other portal navigation locations:
    See more here:
    Navigation with a Service Map - Portal - SAP Library
    Navigation with a Workset Map - Portal - SAP Library
    Best Regards,
    Tal

  • How can you create a customized page to change user password?

    Hello to all,
    I would like to create a customized page for a user to change their password. We are using Portal version 3.0.9 on Windows NT/2000. Currently there is a page in portal where a user can change their password.
    I tried linking to that page by copying the shortcut url and adding it as an html portlet. The problem is that we want to direct the users to a
    page of our choosing when they click on the "cancel" and "ok" buttons. I read in the forums that there is a selfreg.cmd script.
    I also read that there is some code that has been available.
    Has anyone implemented a customized user password change page? Do you know of any links that might have steps to follow or
    more informatioin?
    Thanks in advance,
    Lindsay

    Hi,
    I was able to customize the change password screen through a procedure. This is what I did:
    * Created a procedure under the Portal30_sso schema:
    CREATE OR REPLACE procedure reports_chage_password
    site2pstoretoken in varchar2 default null
    ,p_username in varchar2 default null
    ,p_error_code in varchar2 default null
    ,p_submit_url in varchar2 default null
    ,p_done_url in varchar2 default null
    ,p_pwd_is_exp in varchar2 default null
    ,p_password in varchar2 default null
    is
    begin
    htp.htmlopen;
    htp.headopen;
    htp.title ('<TITLE of Page>');
    htp.headclose;
    htp.bodyopen;
    htp.p('<table width="100%"><tr><td colspan=2 align=center><IMG SRC=<directory of image if you want>"><br><hr><br></td></tr>');
    htp.p('<tr><td colspan=2 align=center>');
    htp.p('<font COLOR="#000080" face="Times New Roman" size=+2><b>');
    htp.header(nsize => 1 ,cheader => 'Change Password');
    htp.p('</b></font>');
    htp.p('</td></tr><tr><td align=right>');
    htp.formopen(curl => p_submit_url );
    htp.p('<font color="#000080" face="Times New Roman" size=+1>');
    htp.p ('Username:');
    htp.p('</td><td alight=left><font color="#000080" face="Times New Roman" size=+1>');
    htp.p(p_username);
    htp.p('</font>');
    htp.p('</td></tr>');
    htp.formHidden(cname => 'p_username',cvalue => p_username);
    htp.br;
    htp.p('<tr><td align=right>');
    htp.p('<font color="#000080" face="Times New Roman" size=+1>');
    htp.p ('Old Password: ');
    htp.p('</font>');
    htp.p('</td><td align=left>');
    htp.p ( htf.formPassword(cname => 'p_old_password',csize => 30,cmaxlength => 30) );
    htp.p('</td></tr>');
    htp.br;
    htp.p('<tr><td align=right>');
    htp.p('<font color="#000080" face="Times New Roman" size=+1>');
    htp.p ('New Password: ');
    htp.p('</font>');
    htp.p('</td><td align=left>');
    htp.p ( htf.formPassword(cname => 'p_new_password',csize => 30,cmaxlength => 30) );
    htp.p('</td></tr>');
    htp.br;
    htp.p('<tr><td align=right>');
    htp.p('<font color="#000080" face="Times New Roman" size=+1>');
    htp.p ('Confirm New Password: ');
    htp.p('</font>');
    htp.p('</td><td align=left>');
    htp.p ( htf.formPassword(cname => 'p_new_password_confirm',csize => 30,cmaxlength => 30) );
    htp.p('</td></tr>');
    htp.p('<tr><td rowsapn=2>');
    htp.formHidden(cname => 'p_done_url',cvalue => '<the url that you want users to go to when they are done>');
    htp.formHidden(cname => 'p_pwd_is_exp',cvalue => p_pwd_is_exp);
    htp.formHidden(cname => 'p_password',cvalue => p_password);
    htp.formHidden(cname => 'site2pstoretoken',cvalue => site2pstoretoken);
    htp.p('</td></tr>');
    htp.p('<tr><td align=right>');
    htp.formSubmit(cname => 'p_action',cvalue => 'OK');
    htp.p('</td><td align=left>');
    htp.formSubmit(cname => 'p_action',cvalue => 'CANCEL');
    htp.p('</td></tr></table>');
    if p_error_code is not null then
    htp.br;
    htp.fontOpen(ccolor=> 'red', csize=> 4);
    if p_error_code = 'auth_fail_err' then
    htp.p('Old password is incorrect');
    elsif p_error_code = 'pwd_rule_err' then
    htp.p('The new password does not follow '||
    'the password policies.');
    htp.br;
    htp.p('Verify with your System Administrator '||
    'about the Password Policies');
    elsif p_error_code = 'confirm_pwd_fail_txt' then
    htp.p('Confirmation for new passord is not '||
    'the same as the New Passowrd');
    elsif p_error_code = 'null_new_pwd_err' then
    htp.p('New password cannot be null');
    elsif p_error_code = 'null_old_pwd_err' then
    htp.p('Old password cannot be null');
    else
    htp.p ('Error: ' || p_error_code );
    end if;
    htp.fontClose;
    end if;
    end;
    * Grant this procedure to PUBLIC
    * Update the portal30_sso.wwsso_ls_configuration_info_$:
    UPDATE portal30_sso.wwsso_ls_configuration_info_$
    SET LOGIN URL = '<YOUR CUSTOM LOGIN URL OR THE WORD UNUSED IF YOU DON'T HAVE ONE> http://<MACHINE_NAME>.<DOMAIN>/pls/portal30_sso/portal30_sso.<NAME OF PROCEDURE>';
    * After you update the table, go to your account information link, and click on the change password link.
    * Then copy the url that you see in your address line
    * And if you want a change password link at the top of your portal page, just go to EDIT on your page, then edit the banner defaults. Then in the links add the Lable and the URL. The URL would be the URL you copied from the previous step.
    Hope this helps.
    I've customized the login page too if you would like some sample code for that. Let me know.
    Martin

Maybe you are looking for

  • How do I change the background image for a single tab on the navigation bar

    I'm creating a movie website for TDKR and for the navigation bar, I intend to have a different character for each tab. However, I'm having trouble putting a single image each separate tab. Instead one image appears on each of the tabs. Here's an exam

  • Not Able To Print PDF Documents

    Hi All, When I try to print the report output(PDF file) am getting following error: Printing output file. Request ID : 95532395       Number of copies : 1       Printer : CANDFKODFJ00545 ld.so.1: acroread: fatal: libgobject-2.0.so.0: open failed: No

  • Using Bex query in XCelsius 2008

    Hi, We have XCelsius 2008 SP3 and out BI ABAP and JAVA systems are on EHP1 with SP05. I have already done the configurations as per SAP note 937697 and all traffic lights became green now. But, still we're unable to connect to BEx using XCelsius. Any

  • Not receiving secure PDF for offline payment

    Hi all, I've had a website running for the past few months that takes users details for offline payments during checkout. When I first set the site up (several months ago) everything seemed to come through fine. I could see the users details and had

  • My Mac mini won't read my SanDisk ultra MicroSDHC through the SD adapter.

    I have a SanDisk ultra 32gb MicroSDHC card that I use with my Galaxy S4, and which came with an SD adapter. The problem is that when I try to Plug the card, through the adapter, into the SD port on my mac mini it simply won't read. nothing shows up o