Hi Peter,
It is possible to write an app where a grid is populated by user stories filtered in by whatever criteria makes sense in the context of your Rally data. It is possible to add a click event to it so that when a user clicks on a row, or a button, a dialog page pops up.
See AppSDK2 documentation (
https://help.rallydev.com/apps/2.0rc3/doc/), and this one specifcially on Rally.ui.dialog.Dialog (
https://help.rallydev.com/apps/2.0rc3/doc/#!/api/Rally.ui.dialog.Dialog).
It is possible to set a value of a custom field from an app.
See AppSDK2 documentation on updating records (
https://help.rallydev.com/apps/2.0rc3/doc/#!/guide/data_models):
While it is possible to set value of an existing custom field (or any writable standard Rally field) of any given artifact via WS API, and by extention via AppSDK2, it is
not possible to create custom fields via WS API. It is also
not possible to create or modify allowed values of a custom field of dropdown type. A custom field must be created in the Rally UI by an administrator before the value it holds can be set or modified programmatically.
It is possible to embed a reference to an object in an external system, e.g. Jira or Salesforce artifact, inside a Rally artifact's details page. A custom field of WebLink type can be created for this purpose
See "Create and Customize Fields (
https://help.rallydev.com/create-custom-fields)" help document here:
After the custom field is properly created in the UI by the administrator, values of a WebLink type custom field can be updated programmatically in your app. WebLink type custom field is different from custom fields of all other types as far as the payload it expects. WebLink consists of two parts, LinkID and DisplayString, and both have to be included in the payload even though only one, the LinkID needs to be given a value. DisplayString has to be set to an empty string.
See "How to set a WebLink custom field value via Web Services API (
https://rallydev.force.com/answers?id=kA0a0000000Yd37)" article in the Success Community.
https://rallydev.force.com/answers?id=kA0a0000000Yd37This article has a link to an AppSDK2 app example where a WebLink is used to embed a reference to a specific Jira artifact. There is also a link to a C# exmple using Rally .NET toolkit (
https://github.com/RallyTools/RallyRestToolkitFor.NET). Those examples are not formally supported by Rally.
It is also possible to embed an external URL in a custom field of type String. This will not have the advantage WebLink type of custom field provides: the base URL, e.g.
http://my-external-system/${id} which expects only a unique id supplied by the user in place of ${id}. However WebLink type of custom field has one important drawback. It is not queriable. String type custom fields are queriable. If the ability to query this field is required, or may become required in the future, don't use WebLink type of field. (Custom field type cannot be modified after a custom field is created).
This example shows how to make a value in the String type field clickable by using <a href> html tag:
<a href="
Can I create a custom field that presents a custom "picker" for the use to choose from? link</a>
Your app can set a String custom field to a string that follows this format.
The challenge is how to get those unique ids of artifats from another system dynamically instead of hardcoding them. Bascially if you do not want to use integration that maps artifacts between the two system in a manner of Rally-Jira connector does it, you will have to figure out this separately. There is no built-in support in AppSDK to allow connecting and querying a 3rd party system for data.
Nick