The Bagaregården (R42) release includes a number of enhancements making working directly in a configured grid more user-friendly.
Set part name
When the Part Name option is enabled for a part type, it is now possible to add or update the part name instead of the default item name when using Actions. <Part> has a new name attribute. When part name is enabled, the name attribute uses the standard way of parsing text so that it supports path queries. Example:
<Part id="P" name="#{? $port.DefObj/ARDE.Select(Name).Join('')}" owner="ItemSW" match="$port"/>
New note
With the implementation of note creation using the Script Language, users can now work with item and issue Notes in a grid when configured using Actions. To enable this, a new data type "Description" has been introduced. Example:
<Action id="MyAction">
<Parameter name="currentItem" as="Item"/>
<Parameter name="noteDesc" as="Description"/>
<Item id="A" match="$currentItem">
<Note sid="NND" description="$noteDesc"/>
<Note sid="NND" value="TextText...."/>
<Note sid="NND" value="#{? $currentItem.Name + 'TextText..'}"/>
</Item>
</Action>
Select library
Previously, when creating items in the background as a result of an operation, the Library was hard-coded. Users can now choose which Library to add the items to using the Select Library dialog. A pre-selected value can be configured. Example:
<DialogSelectLibrary defaultValue="$Lib"/>
Select item version
With the implementation of Select Item Version Dialog using the Script Language, users can now change an item version to any version using action. Example:
<ActionBinding actionId="DoIt" caption="Change the version">
<WithParam name="Req">
<DialogSelectItemVersion/>
</WithParam>
</ActionBinding>
Presets for issue creation
Some properties, e.g., Type, Name, Status, AssignedTo, Iteration,.. etc., in the New Issue dialog can now be preset for users when they create issues. Example:
<Variable name="currentItem" as="Item" select="."/>
<ActionBinding actionId="AddIssue" caption="Add Issue from Dialog">
<WithParam name="issue">
<DialogCreateIssue project="AC1" issueType="Issue" name="#{?
'Issue for' + $currentItem.Name}" status="Closed" assignedTo="#{? CurrentUser}" Iteration="Backlog"/>
</WithParam>
</ActionBinding>
Part matching for part with multiplicity = List
The owner attribute is no longer required when using match for updating parts.
Part matching for part with multiplicity = Single
The owner attribute is still required, but the match will be done automatically based on partType attribute. So no need to use match attribute.
Part removing for part with multiplicity = Single
The remove attribute can be used to remove a part with multiplicity= Single. Note that together with the remove attribute, it is still require to use partType, owner, and defObj attributes in order to be able to remove a part with multiplicity= Single.
Set description for an item and issue
A new, optional description attribute has been added to <Item> and <Issue> tags to support adding a description (formatted text) to an issue/item from another item, issue, or note. Example:
<Action id="DoIt">
<Parameter name="desc" as="Description"/>
<Issue description="$desc"/>
</Action>
Clone an Issue
Using the optional clone attribute, it is now possible to clone an issue. When cloning an issue, the cloned issue will get its type, properties (e.g., status, iteration, assigned to, etc.), description, attributes, name, attachments, and project from the original issue. Issue's ObjRef (relationships to items and issues) will not be cloned automatically. If needed, they shall be created manually. To clone into another project, i.e., not the same project as original issue, use the project attribute. Example:
<Action id="cloneIssue">
<Parameter name="issue" as="Issue"/>
<Issue clone="$issue"/>
</Action>
Clone an Item
Using the optional clone attribute, it is now possible to clone an item. When cloning an item, the cloned item will get its type, description, attributes, name, and library from the original item. Item's parts will not be automatically cloned. If needed, parts should be created manually. To clone into another library, i.e., not the same library as original item, use the lib attribute. Example of cloning an item to the same library as the original Item:
<Action id="cloneItem">
<Parameter name="item" as="Item"/>
<Item clone="$item"/>
</Action>
Nested menus
It's now possible to configure nested menus in grids using Action. Menus are generated based on the caption specified in <Action> or/and <ActionBinding>, adding (->) in the caption attribute will automatically create a nested menus. Example Structural menu:
<ActionBinding caption="Update (->) status (->) Done">
<Action caption="Update (->) status (->) ToDo">
Result:
Deactivate menu options
Menu option activation can now be conditioned, using two new attributes, enabled and disabledTooltip, added to ActionBinding.
<ActionBinding actionId="DoIt" caption="Add Req" enabled="$req.Select(@TTT) = ['Yellow']" disabledTooltip="This option is only available for requirements which are not Yellow">
Result:
DialogSelectItem recommendations
There is now support for configuring recommendations for adding parts. Example:
<DialogSelectItems itemType="ARSI" partType="DSIN" owner="$requirement" pathToOwner="container;requirement"/>
Check if RowObject is empty (null)
It is now possible to check if the value of a RowObject is null. This can be used in both <Action> and <ActionBinding>.
Example: ActionBinding
<ActionBinding actionId="DoIt1" caption="Add Signal 1" enabled="$requirement != []">
Example: Action
<Action id="DoIt">
<Parameter name="requirement" as="[Item]"/>
...
<Choose>
<When test="$requirement = []">
.....
</When>
</Choose>
</Action>
ISSUE: 16223