In Pega® Platform, you can integrate the Agile Workbench tool with CA Agile Central (formerly Rally ALM) by using the integration component that is available on Pega Exchange. After you integrate Agile Workbench with CA Agile Central, you can customize the results of the integration. For example, you can restrict users from deleting work items in Agile Workbench.
During the integration process, all of the open bugs and user stories from Agile Workbench are exported to your CA Agile Central system. In Pega Platform, the status of the exported work items becomes Resolved-Exported. Feedback items are stored as work objects in the Pega database and are not exported to CA Agile Central.
The following information will help you learn more about the integration component and how to customize it:
- REST services and connectors
- Grid rows
- Customizing the grid view for user stories
- Customization of the grid view for bugs
- Removing the option to delete work items
- Customizing sort and filter options
- Rules that support viewing and editing work items
The CA Agile Central integration component uses REST services that are exposed by Computer Associates (CA) for creating, fetching, updating, and deleting user stories and bugs. For more information about CA web services, see the CA website.
The REST connectors that communicate with CA services use basic authentication. A user’s credentials are stored in and retrieved from the PM_CAAgileCentral Authentication Profile instance, so the user name and password used to log in to CA Agile Central must be accurate. When you create work items in Agile Workbench, the authentication and audit fields, such as Creator, are populated with the user name and password in PM_CAAgileCentral.
If you want to use a different authentication type, you must delete the PM_CAAgileCentral instance in the Data-Admin-Security-AuthenticationProfile class, and add it back using the same name. During the process of adding it back, you choose the type of authentication to use (Basic, NLTM, OAuth 1.0a, OAuth 2.0). For more information, see Authentication Profile data instances.
The following connectors are available as part of this integration component:
- CAAgileCentralWorkItemCRUD – Handles GET, PUT (creating items), POST (updating items), and DELETE operations of the REST service. This connector handles all the asset types, except attachments.
- CAAgileCentralAttachmentCRUD – Handles GET, PUT (creating attachments), and DELETE operations of the REST service for attachments.
These connectors support users doing the following tasks:
- Creating work items
- Getting a list of work items
- Opening, viewing, and editing work items
- Updating and resolving work items
- Deleting work items
- Adding, fetching, and deleting attachments
- Posting and receiving discussion comments
CA Agile Central integration is displayed in the Agile Workbench header
When Agile Workbench is integrated with CA Agile Central, the section rules pyUserStoryRowExtension and pyBugRowExtension display the work item details in grid rows on the Stories and Bugs tabs. These sections are extended from the Pega Platform section rules pzUserStoryRow and pzBugRow.
Each tab in Agile Workbench lists all open work items. The following properties are displayed in the grid view for user stories and bugs:
- .CAAgileCentralLabel – Work item name
- .FormattedID – Work item ID
- .pxUpdateDateTime – Last updated time
- .pyOwner – Assigned operator
- .pySeverity – Work item severity (bugs only)
The following action options are available:
- Complete – Resolves the work item. For bugs, the status becomes Resolved-Completed.
- Delete – Permanently deletes the work item in Agile Workbench. The deleted work item is in the recycle bin of your CA Agile Central system.
- Reopen – For user stories, reopens the work item.
- Reject – For bugs, rejects the bug, and the status becomes Resolved-Rejected.
- Severity – For bugs, updates the severity.
Example grid view of user stories in Agile Workbench
You can customize the row that displays a user story in the grid view of the Stories tab. For example, you might want to display the status of a user story rather than when it was last updated.
- Open the section pyUserStoryRowExtension of Pega-Agile-Work-UserStory from the CAAgileCentralIntegration:01-01-01 ruleset.
- Save the rule in a higher version of the ruleset, for example, in the ruleset for the application that the user is logged in to.
- In the dynamic layout that is labeled 1.2.1, open the properties panel for the .pxUpdateDateTime property.
- On the Formatted text tab, specify the following settings:
- Property – .pyStatusWork
- Visibility – Always
- Value – Property value
- Optional. On the Presentation tab, verify the settings and make any changes.
- Save the section rule and check in your changes.
- Close and reopen Agile Workbench.
- Verify that user stories display the status instead of the last updated time.
To customize the row that displays a bug in the grid view of the Bugs tab, follow the same process as customizing the user story row, but override the pyBugRowExtension in Pega-Agile-Work-Bug from the CAAgileCentralIntegration:01-01-01 ruleset.
The data page that is used for loading the items in the Stories tab is D_pzUserStoryList, but the Bugs tab is populated with values from D_pzBugsList. In addition, the pyLoadProjectManagementAssets activity performs the Connect REST call and maps the results in the corresponding data page.
You can restrict users from deleting work items in Agile Workbench by removing the delete options from the user interface. The option to delete user stories and bugs is available in two places in Agile Workbench, so you must remove the option from both the grid view on the Stories and Bugs tabs, and from the Mark as... menu on the Open screen.
To remove the Delete option from the grid view:
- Override the following sections in the user's application ruleset:
- pyUserStoryRowExtension (for user stories)
- pyBugRowExtension (for bugs)
- In these sections, remove the Delete icon from the 1:1 dynamic layout.
- Save your changes and check in the section rules.
- Close and reopen Agile Workbench.
- On the Stories and Bug tabs, click the Check mark icon for a work item, and verify that the Delete icon is not displayed.
Banner options for a bug from the grid view
To remove the Deleted option from the Mark as... menu when viewing or editing work items:
- Open the following navigation records:
- pyMarkAsNav in class Pega-Agile-Work-UserStory (for user stories)
- pyMarkAsNav in class Pega-Agile-Work-Bug (for bugs)
- Override and save the rule in a higher version of the ruleset.
- Double-click the Deleted menu item.
- On the General tab of the properties dialog, set the visibility condition to Never.
- Save your changes.
Options from the Mark As... menu on the Open screen
In Agile Workbench, the default sort order is by priority (highest priority to lowest) for bugs and by last updated time for user stories. You can customize the options for sorting and filtering how work items are displayed to help users find work items without a lot of scrolling.
The following sort options are available:
- Priority – For bugs, lists bugs in descending order of priority with the highest priority bugs at the top.
- Update date – For bugs and user stories, lists work items by date with the most recently updated work items at the top.
Sort options as displayed for bugs
The following filter options are available:
- Show resolved – Lists resolved and unresolved work items.
- Show only created by me – For bugs, lists all bugs created by the current user.
- Owner – Lists work items for the specified owner. You can specify Anyone, Me, or a particular user.
- Hide unassigned – Lists only work items that are assigned to an owner.
Example of filter options for user stories
For example, the following procedure explains how you can change the default sort option for bugs to be the last updated time and the default filter option for bugs to always show resolved bugs.
- Search for and open the pyDefaultSortFilter data transform in the Pega-Agile-Work-Bug class in the CAAgileCentralIntegration ruleset.
- Override and save the rule in a higher ruleset version without changing the class.
- In the first step of the data transform, set the value of the pyAssetSortBy property as equal to "Time".
- In the second step of the data transform, set the value of the pyShowCompleted as equal to true.
- Save your changes and check in the data transform rule.
- Verify your changes by opening Agile Workbench, and navigating to the Bugs tab.
- Click the Sort icon and verify that Update date is the default option.
- Click the Filter icon and verify that the Show resolved check box is selected and that resolved bugs are listed in the grid view.
On the Open screen for a work item, you can view and edit the information about that work item. You can override and customize the section rules that define the information that is displayed on the Open screen, and you can hide and show properties.
The section rule pyEditGapIdentifierItem in both the Pega-Agile-Work-UserStory class and the Pega-Agile-Work-Bug class renders the full view of these sections. When you click a work item in the grid view to open it for viewing and editing, the pyOpenIntegeratedWorkItemByID activity makes a Connect REST call to fetch the values that populate these sections.
Whether discussion comments are displayed is controlled by D_CAAgileCentralDiscussion.
The following section rules define the fields that are displayed when you view or edit work items:
Activity Pega-Agile-Work.pyOpenIntegratedWorkItemByID – Override this activity to get individual work object details from your CA Agile Central system by using a Connect REST call and mapping the properties with user interface properties of the Open screen. For reference, see pzOpenIntegratedWorkItemByID.
Section Pega-Agile-Work.pyEditGapIdentifierItemWrapper – Override this section to include a Discussion box with a rich text editor and to add comments for the opened work object from CA Agile Central. For reference, see pzGapIdentifierPulse.
Section Pega-Agile-Work.pyHeaderAssetLabel – Override this section to display the header of the opened work item. For reference, see pzEditGapIdentifierItemWrapper.
Section Pega-Agile-Work.pyEditGapIdentifierPMItemDescription – Override this section to display the description of the opened work item. For reference, see pzEditGapIdentifierPMItemDescription.
Section Pega-Agile-Work-UserStory.pyEditGapIdentifierItemHeader – Override this section to display the name and ID of the opened user story. For reference, see pzEditGapIdentifierItem in class Pega-Agile-Work-UserStory.
Section Pega-Agile-Work-Bug.pyEditGapIdentifierItemHeader – Override this section to display the name and ID of the opened bug. For reference, see pzEditGapIdentifierItem in class Pega-Agile-Work-Bug.
Section Pega-Agile-Work-UserStory.pyEditGapIdentifierItem – Override this section to display owner, and attachment information for the opened user story. For reference, see pzEditGapIdentifierItem in class Pega-Agile-Work-UserStory.
Section Pega-Agile-Work-Bug.pyEditGapIdentifierItem – Override this section to display severity, owner, and attachment information for the opened bug. For reference, see pzEditGapIdentifierItem in class Pega-Agile-Work-Bug.
Section Pega-Agile-Work.pyAssetLabel – Override this section to display the name or label of the opened work item on the form (not in the header). For reference, see pzAssetLabel.
The following properties provide additional information about work items:
- .pyDescription – The description of the work item
- .pyFeatureID – The ID of the feature that the work item is associated with
- .pyPMAttachments – The attachments in the work item
Examples of an open user story and an open bug