Action-Commands werden in der Benutzeroberfläche eingesetzt, um die Interaktionen von Benutzern in Befehle der Business-Logik umzusetzen. Hierfür genügt in den meisten Fällen die Standardimplementierung. In einigen Sonderfällen oder im Customizing muss das Verhalten angepasst oder ergänzt werden. Dazu gibt es ein Class-Mapping, welches die Anpassung vereinfacht. Alle Klassen, die diesem Mapping zugeordnet werden, müssen das Interface IActionCommand enthalten.
Die Definition der Action command mappings besteht aus mehreren Teilen. Zum einen die Definition der ActionCommandIds, die eine Liste aller gültigen Befehle und deren Erläuterung enthält.
<commandIds>
<commandId id="create" description="create new objects" />
<commandId id="delete" description="delete objects, version objects will
be deactivated (see 'reactivate')"/>
<commandId id="duplicate" description="creates a duplicate out of the
selected object"/>
<commandId id="edit" description="open the selected object for
editing"/>
<commandId id="reactivate" description="reactivate deactivated objects" />
<commandId id="save" description="make changes on objects persistent" />
Ermittle die neuen bzw. geänderten MM-Belege ...
</commandIds>
Weiterhin gibt es die folgenden Bereiche:
Jeder dieser Bereiche besteht aus einer Liste von <commandSet>-Elementen. Jedes Set verlangt ein name-Attribut. Dieses gibt an, worauf sich die folgenden Command-Definitionen beziehen. Bei objectTypeCommands ist dies der eindeutige Identifizierer des Objekttyps, bei listCommands der eindeutige Identifizierer der Liste usw.
Ein besonderes commandSet ist 'common‘. Hier wird die Standardimplementierung für alle Objekttypen, Listen usw. hinterlegt, sodass nur die speziellen Implementierungen gesondert angegeben werden müssen. Verwenden beispielsweise mehrere Listen die gleiche Implementierung, können alle Listen durch Kommas getrennt als Name des commandSet eingetragen werden. Eine Liste kann gleichzeitig in mehreren commandSets enthalten sein.
<listCommands>
<commandSet name="common">
<actionCommand commandId="applyFilter" clsName="BaseApplyFilterCommand" />
Ermittle die neuen bzw. geänderten MM-Belege ...
</commandSet>
<commandSet name="riskList,controlList">
<actionCommand commandId="applyFilter" clsName="SpecialApplyFilterCommand" />
</commandSet>
<commandSet name="riskList">
<actionCommand commandId="resetFilter" clsName="SpecialResetFilterCommand" />
</commandSet>
</listCommands>