Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member219975
Participant
  • Portal Structure with backend systems:

1. Portal version is 7.31

2. Portal is connected to backend

A. EBP client

B. HR/P2P Client

  • Requirements:

     1. Enable mass approval for P2P worklflows in following ways (for decision tasks),

          A. By providing Approve and Reject radio buttons.

          B. By Selection of multiple records.

     2. Add two custom columns in UWL on portal for EBP client.

          A. Columns need to be added are as follows,

      • Cost Centre
      • Product Category

  • Solution:


1.   Enable Mass Approval using Approve and Reject radio buttons in column:


          Step 1 : Create view in xml to display columns in UWL iView for Approve and reject radio  buttons.

            go to the path,

            System Administrator --> System Configuration --> Universal Worklist Administration --> Manage Item types and view definitions.

Here download "uwl.standard" and save it on local machine.

Open the xml using xml editor or wordpad and add following view code in

<Views>  </Views> tag.

Here I have created "AppRejColumnView".

<View name="AppRejColumnView" selectionMode="SINGLESELECT" width="98%" supportedItemTypes="uwl.task" columnOrder="subject, approveCol, rejectCol, isEscalated, creatorId, createdDate, priority, attachmentCount, dueDate, status" sortby="priority:descend, dueDate:ascend, createdDate:descend" tableDesign="STANDARD" visibleRowCount="10" headerVisible="no" queryRange="undefined" tableNavigationFooterVisible="yes" tableNavigationType="CUSTOMNAV" actionRef="" refresh="300" dueDateSevere="86400000" dueDateWarning="259200000" emphasizedItems="new" displayOnlyDefinedAttributes="yes" dynamicCreationAllowed="yes" actionPosition="bottom" referenceBundle="tasks">

<DisplayAttributes>

      <DisplayAttribute name="rejectCol" type="radiobutton" width="" sortable="no" format="default" actionRef="reject" referenceBundle="reject" hAlign="CENTER" vAlign="BASELINE" maxTextWidth="0" headerVisible="yes"/>

      <DisplayAttribute name="approveCol" type="radiobutton" width="" sortable="no" format="default" actionRef="accept" referenceBundle="approve" hAlign="CENTER" vAlign="BASELINE" maxTextWidth="0" headerVisible="yes"/>

</DisplayAttributes>

<AllowedFilters>

<CompoundExpression logicalOperation="AND" defaultViewFilter="yes" referenceBundle="filter_display_all"/>

      <CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_new">

      <Expression name="status" value="NEW" comparator="Equals"/>

</CompoundExpression>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_inprogress">

      <Expression name="status" value="INPROGRESS" comparator="Equals"/>

</CompoundExpression>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_duetoday">

      <Expression name="dueDate" value="Today" comparator="Equals"/>

</CompoundExpression>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_overdue">

      <Expression name="dueDate" value="Today" comparator="LessThan"/>

</CompoundExpression>

</AllowedFilters>

<Actions>

      <Action reference="refresh"/>

      <Action reference="defaultGlobalWizard"/>

      <Action reference="submitUserDecisions"/>

      <Action reference="launchSubstitutionManager"/>

      <Action name="submitUserDecisions" groupAction="yes" handler="UIActionHandler" referenceBundle="submit_msg" returnToDetailViewAllowed="no" launchInNewWindow="SHOW_HEADERLESS_PORTAL">

      <ConfirmDescriptions referenceBundle="submit_prompt"/>

</Action>

</Actions>

  • Make above changes and save the copy of above downloaded xml file.

Step 2 : Create navigation node for created view xml code.

  • After creating view, create navigation node for above view.
  • For that move to the tag <NavigationNode>< NavigationNode />.
  • Add Following Navigation in between above mentioned tag.

 

<NavigationNode name="AppRejColumn" view="" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes">

<NavigationNode name="CombinedTask" view="AppRejColumnView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tasks">

<NavigationNode name="task2" view="AppRejColumnView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="new_and_inprogress_tasks">

<NavigationNode name="PersonalViewPlaceHolderTask2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="forwarded2" view="WorkItemsForwardedView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tasks_forwarded">

<NavigationNode name="PersonalViewPlaceHolderforwarded2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="futureTask" view="FutureTaskView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tasks_for_resubmission">

<NavigationNode name="PersonalViewPlaceHolderfuture" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="completed2" view="WorkItemsCompletedView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="completed_tasks">

<NavigationNode name="PersonalViewPlaceHolderCompleted2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="substituted" view="SubstitutedTasksView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="substituted_tasks">

<NavigationNode name="PersonalViewPlaceHolderSubstituted" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="alert2" view="AlertsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="alerts">

<NavigationNode name="CombinedAlerts2" view="AlertsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="new_and_inprogress_alerts">

<NavigationNode name="PersonalViewPlaceHolderAlert2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="notification2" view="NotificationsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="notifications">

<NavigationNode name="CombinedNotification2" view="NotificationsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="all_notifications">

<NavigationNode name="PersonalViewPlaceHolderNotification2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="SAPOfficeMail" view="SAPOfficeMailView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="sap_office_mails">

<NavigationNode name="CombinedSapOfficeMail" view="SAPOfficeMailView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="all_sap_office_mails">

<NavigationNode name="PersonalViewPlaceHolderSapOfficeMail" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="CombinedTracking" view="ComboWorkItemRequestsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tracking">

<NavigationNode name="CombinedTracking2" view="ComboWorkItemRequestsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="mytracking">

<NavigationNode name="PersonalViewPlaceHolderComboTracking2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

</NavigationNode>

  • After Developing above code, upload the xml file "uwl.standard" with named changed to "uwl.standard.customized" (in our case) and with medium priority.

Step 3 : Create and point UWL iView to above created view and navigation node.

  • After Developing above code, UWL iView needs to be point to this created view and Navigation node.
  • For that create one UWL iView by coping the standard iView from the path,

  Content Administration --> Portal Content --> Content provided by SAP --> End User Content --> Standard Portal Users --> iViews -->   com.sap.netweaver.bc.uwl.iviews --> Universal Worklist.

  • Copy the iView from above path and paste as copy in desired folder in portal content.
  • Now open the iVew and open the properties.
  • Navigate to property named as " sap_uwl_viewname".
  • Here change the default value and put the value of newly created view in xml, in our case it is "AppRejColumnView".
  • Again move to the property named as "useNavigationId" in the same iView and put the value of created navigation node, in our case it is "AppRejColumn".
  • After editing above both properties, SAVE the changes and close the wizard.

Step 4 : Configure Action for decision task.

  • Now we need to add the action for submitting the selected workitems for Approve/Reject.
  • For that action needs to be added in desired decision task which is being used by workflows.
  • For above step again move to path,

  

    System Administrator --> System Configuration --> Universal Worklist Administration --> Manage Item types and view definitions.

  • Here down load the xml file named as "uwl.webflow.<system>".
  • Open it with wordpad or xml editor and find the decision task number for which this is required.
  • Add following code in <Actions></Actions> tag.

<Action name="submitUserDecisions" groupAction="yes" handler="UIActionHandler" referenceBundle="submit_msg" returnToDetailViewAllowed="no" launchInNewWindow="SHOW_HEADERLESS_PORTAL">

      <ConfirmDescriptions referenceBundle="submit_prompt"/>

      • After adding above code, upload the xml file with changed name and medium priority.

2. Enable Mass Approval using selection of multiple records:

    • Here steps for this configuration will remain same as above steps.
    • View code with needs to be added is as follows,

<View name="MultiSelectView" selectionMode="MULTISELECT" width="98%" supportedItemTypes="uwl.task" columnOrder="subject, isEscalated, creatorId, createdDate, priority, attachmentCount, dueDate, status" sortby="priority:descend, dueDate:ascend, createdDate:descend" tableDesign="STANDARD" visibleRowCount="10" headerVisible="no" queryRange="undefined" tableNavigationFooterVisible="yes" tableNavigationType="CUSTOMNAV" actionRef="" refresh="300" dueDateSevere="86400000" dueDateWarning="259200000" emphasizedItems="new" displayOnlyDefinedAttributes="yes" dynamicCreationAllowed="yes" actionPosition="bottom" referenceBundle="tasks">

<AllowedFilters>

<CompoundExpression logicalOperation="AND" defaultViewFilter="yes" referenceBundle="filter_display_all"/>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_new">

<Expression name="status" value="NEW" comparator="Equals"/>

</CompoundExpression>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_inprogress">

<Expression name="status" value="INPROGRESS" comparator="Equals"/>

</CompoundExpression>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_duetoday">

<Expression name="dueDate" value="Today" comparator="Equals"/>

</CompoundExpression>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_overdue">

<Expression name="dueDate" value="Today" comparator="LessThan"/>

</CompoundExpression>

</AllowedFilters>

<Actions>

<Action reference="refresh"/>

<Action reference="defaultGlobalWizard"/>

</Actions>

</View>

  • Code for navigation node is as follows,

<NavigationNode name="MultiSelect" view="" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes">

<NavigationNode name="CombinedTask" view="MultiSelectView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tasks">

<NavigationNode name="task2" view="MultiSelectView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="new_and_inprogress_tasks">

<NavigationNode name="PersonalViewPlaceHolderTask2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="forwarded2" view="WorkItemsForwardedView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tasks_forwarded">

<NavigationNode name="PersonalViewPlaceHolderforwarded2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="futureTask" view="FutureTaskView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tasks_for_resubmission">

<NavigationNode name="PersonalViewPlaceHolderfuture" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="completed2" view="WorkItemsCompletedView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="completed_tasks">

<NavigationNode name="PersonalViewPlaceHolderCompleted2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="substituted" view="SubstitutedTasksView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="substituted_tasks">

<NavigationNode name="PersonalViewPlaceHolderSubstituted" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="alert2" view="AlertsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="alerts">

<NavigationNode name="CombinedAlerts2" view="AlertsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="new_and_inprogress_alerts">

<NavigationNode name="PersonalViewPlaceHolderAlert2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="notification2" view="NotificationsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="notifications">

<NavigationNode name="CombinedNotification2" view="NotificationsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="all_notifications">

<NavigationNode name="PersonalViewPlaceHolderNotification2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="SAPOfficeMail" view="SAPOfficeMailView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="sap_office_mails">

<NavigationNode name="CombinedSapOfficeMail" view="SAPOfficeMailView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="all_sap_office_mails">

<NavigationNode name="PersonalViewPlaceHolderSapOfficeMail" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="CombinedTracking" view="ComboWorkItemRequestsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tracking">

<NavigationNode name="CombinedTracking2" view="ComboWorkItemRequestsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="mytracking">

<NavigationNode name="PersonalViewPlaceHolderComboTracking2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

</NavigationNode>

  • Add this view name and navigation node in iView properties as mentioned in previous scenario.
  • Here actions tag needs to be added in decision task is as follows,

<Action name="Accept" groupAction="yes" handler="UserDecisionHandler" returnToDetailViewAllowed="yes" launchInNewWindow="no">

<Properties>

<Property name="decisionKey" value="0001"/>

<Property name="UserDecisionNote" value="true"/>

</Properties>

<Descriptions default="Accept"/>

</Action>

<Action name="Reject" groupAction="yes" handler="UserDecisionHandler" returnToDetailViewAllowed="yes" launchInNewWindow="no">

<Properties>

<Property name="decisionKey" value="0002"/>

<Property name="UserDecisionNote" value="mandatory"/>

</Properties>

<Descriptions default="Reject"/>

   </Action>

  • After making above changes, upload both the xmls with medium priority as mentioned in step 1.


3.   Add Custom columns in UWL:

Step 1 : Create view in xml to display columns in UWL

          go to the path,

          System Administrator --> System Configuration --> Universal Worklist Administration --> Manage Item types and view definitions.

Here download "uwl.standard" and save it on local machine.

Open the xml using xml editor or wordpad and add following view code in

<Views> </Views>  tag.

Here I have created "AdditionalColumnsView".

<View name="AdditionalColumnsView" selectionMode="SINGLESELECT" width="98%" supportedItemTypes="uwl.task" columnOrder="subject, CostCentre, ProductCategory, isEscalated, creatorId, createdDate, priority, attachmentCount, dueDate, status" sortby="priority:descend, dueDate:ascend, createdDate:descend" tableDesign="STANDARD" visibleRowCount="10" headerVisible="no" queryRange="undefined" tableNavigationFooterVisible="yes" tableNavigationType="CUSTOMNAV" actionRef="" refresh="300" dueDateSevere="86400000" dueDateWarning="259200000" emphasizedItems="new" displayOnlyDefinedAttributes="yes" dynamicCreationAllowed="yes" actionPosition="bottom" referenceBundle="tasks">

<DisplayAttributes>

       <DisplayAttribute name="CostCentre" type ="string" width="" sortable="yes" format="medium" hAlign="LEFT" referenceBundle="COSTCENTRE">

            <Descriptions default = "Cost Centre"/>

       </DisplayAttribute>

       <DisplayAttribute name="ProductCategory" type ="string" width="" sortable="yes" format="medium" hAlign="LEFT" referenceBundle="PRODUCTCATEGORY">

            <Descriptions default = "Product Category"/>

       </DisplayAttribute>

</DisplayAttributes>

<AllowedFilters>

<CompoundExpression logicalOperation="AND" defaultViewFilter="yes" referenceBundle="filter_display_all"/>

      <CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_new">

      <Expression name="status" value="NEW" comparator="Equals"/>

</CompoundExpression>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_inprogress">

      <Expression name="status" value="INPROGRESS" comparator="Equals"/>

</CompoundExpression>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_duetoday">

      <Expression name="dueDate" value="Today" comparator="Equals"/>

</CompoundExpression>

<CompoundExpression logicalOperation="AND" defaultViewFilter="no" referenceBundle="filter_overdue">

      <Expression name="dueDate" value="Today" comparator="LessThan"/>

</CompoundExpression>

</AllowedFilters>

<Actions>

      <Action reference="refresh"/>

      <Action reference="defaultGlobalWizard"/>

</Actions>

</View>

  • Make above changes and save the copy of above downloaded xml file.

Step 2 : Create navigation node for created view xml code.

  • After creating view, create navigation node for above view.
  • For that move to the tag <NavigationNode>< NavigationNode />.
  • Add Following Navigation in between above mentioned tag.

<NavigationNode name="AdditionalColumn" view="" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes">

<NavigationNode name="CombinedTask" view="AdditionalColumnsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tasks">

<NavigationNode name="task2" view="AdditionalColumnsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="new_and_inprogress_tasks">

<NavigationNode name="PersonalViewPlaceHolderTask2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="forwarded2" view="WorkItemsForwardedView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tasks_forwarded">

<NavigationNode name="PersonalViewPlaceHolderforwarded2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="futureTask" view="FutureTaskView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tasks_for_resubmission">

<NavigationNode name="PersonalViewPlaceHolderfuture" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="completed2" view="WorkItemsCompletedView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="completed_tasks">

<NavigationNode name="PersonalViewPlaceHolderCompleted2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

<NavigationNode name="substituted" view="SubstitutedTasksView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="substituted_tasks">

<NavigationNode name="PersonalViewPlaceHolderSubstituted" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="alert2" view="AlertsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="alerts">

<NavigationNode name="CombinedAlerts2" view="AlertsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="new_and_inprogress_alerts">

<NavigationNode name="PersonalViewPlaceHolderAlert2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="notification2" view="NotificationsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="notifications">

<NavigationNode name="CombinedNotification2" view="NotificationsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="all_notifications">

<NavigationNode name="PersonalViewPlaceHolderNotification2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="SAPOfficeMail" view="SAPOfficeMailView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="sap_office_mails">

<NavigationNode name="CombinedSapOfficeMail" view="SAPOfficeMailView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="all_sap_office_mails">

<NavigationNode name="PersonalViewPlaceHolderSapOfficeMail" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

<NavigationNode name="CombinedTracking" view="ComboWorkItemRequestsView" referenceGroup="" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="tracking">

<NavigationNode name="CombinedTracking2" view="ComboWorkItemRequestsView" referenceGroup="UWL_ADD_DYNAMIC_VIEWS" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes" referenceBundle="mytracking">

<NavigationNode name="PersonalViewPlaceHolderComboTracking2" view="" referenceGroup="UWL_PERSONAL" visible="yes" keepItemCountUpdated="no" displayItemCountInTitle="yes"/>

</NavigationNode>

</NavigationNode>

</NavigationNode>

</NavigationNode>

  • After Developing above code, upload the xml file "uwl.standard" with named changed to "uwl.standard.customized" (in our case) and with medium priority.

Step 3 : Create and point UWL iView to above created view and navigation node.

  • After Developing above code, UWL iView needs to be point to this created view and Navigation node.
  • For that create one UWL iView by coping the standard iView from the path,

      Content Administration --> Portal Content --> Content provided by SAP --> End User Content --> Standard Portal Users --> iViews -->                                     com.sap.netweaver.bc.uwl.iviews --> Universal Worklist.

  • Copy the iView from above path and paste as copy in desired folder in portal content.
  • Now open the iVew and open the properties.
  • Navigate to property named as " sap_uwl_viewname".
  • Here change the default value and put the value of newly created view in xml, in our case it is "AdditionalColumnsView".
  • Again move to the property named as " useNavigationId" in the same iView and put the value of created navigation node, in our case it is "AdditionalColumn".
  • After editing above both properties, SAVE the changes and close the wizard.

Step 4 : Configure Custom Attribute source for decision task.

  • Now this custom need to be added and mapped with task for which these are required.
  • For above step again move to path,

  

     System Administrator --> System Configuration --> Universal Worklist Administration --> Manage Item types and view definitions.

  • Here down load the xml file named as "uwl.webflow.<system>".
  • Open it with wordpad or xml editor and find the decision task number for which this is required.
  • Add following code in tag <CustomAttributes><CustomAttributes/>.

<Attribute name="CostCentre" displayName="Cost Centre"/>

<Attribute name="ProductCategory" displayName="Product Category"/>

  • After adding above code, upload the xml file with changed name and medium priority.

After that analyse your configuration on portal.. :smile:

 

2 Comments
Labels in this area