Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 7 Nächste Version anzeigen »

Der Activity-Designer sollte auf die darunterliegende Aktivität abgestimmt sein.

Folgende Dinge sind wichtig: 

  • Der Workflow-Designer sollte In-Argumente eingeben können, ohne dabei auf das Eigenschaften-Fenster zurückgreifen zu müssen.
  • Alle für die Aktivität nötigen Argumente sollten im Designer eingegeben werden können.
  • Die Reihenfolge der Argumente sollte deutlich sein : In-Argumente => In/Out-Argumente => Out-Argumente
  • Labels und Beschreibungen der Argumente sollten lokalisiert verfügbar sein (Deutsch/Englisch).
  • Für komplexe Eingaben (z.B. Datei-Pfad) sollten Hilfen wie z.B. der Datei-Explorer verwendet werden.
  • Der Inhalt des Controls sollte einklappbar sein (Content-Presenter).
Beispiel eines Designers
<sap:ActivityDesigner x:Class="WmsDeveloperActivities.Designer.GetCurrentWeather.V01.GetCurrentWeatherDesigner"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:WmsDeveloperActivities.Designer.GetCurrentWeather.V01"
             xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"
             xmlns:res="clr-namespace:WmsDeveloperActivities.Properties"
             xmlns:converters="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
             xmlns:system="clr-namespace:System;assembly=mscorlib"
             xmlns:getCurrentWeather="clr-namespace:WmsDeveloperActivities.GetCurrentWeather"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
    <sap:ActivityDesigner.Resources>
        <ResourceDictionary>
            <converters:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />

            <DataTemplate x:Key="CollapsedTemplate">
                <Label Padding="0" Foreground="#FF6D6D6D" FontStyle="Italic"
                   HorizontalAlignment="Center" VerticalAlignment="Center"
                   Content="{x:Static res:Resources.CollapsedToolTip}"/>
            </DataTemplate>

            <DataTemplate x:Key="ExpandTemplate" DataType="{x:Type local:GetCurrentWeatherDesigner}">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                    </Grid.RowDefinitions>

                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <!-- InArgumente und Eigenschaften ... -->

                    <!-- City / Postal Code -->
                    <TextBlock Grid.Row="0" Grid.Column="0" Margin="0 10 0 0" Text="{x:Static res:Resources.City}" ToolTip="{x:Static res:Resources.GetCurrentWeather_CityDesc}"/>
                    <sap:ExpressionTextBox Margin="4" Grid.Row="0" Grid.Column="1" OwnerActivity="{Binding ModelItem}"
                                        ExpressionType="system:String"
                                        Expression="{Binding ModelItem.City, Mode=TwoWay, Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=In}"/>

                    <!-- Is Postal Code -->
                    <TextBlock Grid.Row="1" Grid.Column="0" Margin="0 10 0 0" Text="{x:Static res:Resources.IsPostCode}" ToolTip="{x:Static res:Resources.GetCurrentWeather_IsPostCodeDesc}"/>
                    <CheckBox Margin="4" Grid.Row="1" Grid.Column="1"
                              IsChecked="{Binding ModelItem.IsPostCode, Mode=TwoWay}"/>

                    <!-- Weather Api Setting Data -->
                    <TextBlock Grid.Row="2" Grid.Column="0" Margin="0 10 0 0" Text="{x:Static res:Resources.WeatherApiSetting}" ToolTip="{x:Static res:Resources.GetCurrentWeather_WeatherApiSettingDesc}"/>
                    <sap:ExpressionTextBox Margin="4" Grid.Row="2" Grid.Column="1" OwnerActivity="{Binding ModelItem}"
                                        ExpressionType="system:String"
                                        Expression="{Binding ModelItem.WeatherApiSettingData, Mode=TwoWay, Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=In}"/>

                    <Separator Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2"></Separator>

                    <!-- Output: WeatherInfo -->
                    <TextBlock Grid.Row="4" Grid.Column="0" Margin="0 10 0 0" Text="{x:Static res:Resources.WeatherInfo}" ToolTip="{x:Static res:Resources.GetCurrentWeather_WeatherInfoDesc}"/>
                    <sap:ExpressionTextBox Margin="4"  Grid.Row="4" Grid.Column="1" OwnerActivity="{Binding ModelItem}"
                                           ExpressionType="getCurrentWeather:WmsWeatherInfo"
                                           UseLocationExpression="True"
                                           Expression="{Binding ModelItem.WeatherInfo, Mode=TwoWay, Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=Out}"/>

                    <!-- OutArgumente und Eigenschaften ... -->
                </Grid>
            </DataTemplate>

            <!-- Mechanismus, um die Aktivität auf und zuzuklappen-->
            <Style x:Key="ExpandOrCollapsedStyle" TargetType="{x:Type ContentPresenter}">
                <Setter Property="ContentTemplate" Value="{StaticResource CollapsedTemplate}"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=ShowExpanded}" Value="true">
                        <Setter Property="ContentTemplate" Value="{StaticResource ExpandTemplate}"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ResourceDictionary>
    </sap:ActivityDesigner.Resources>

    <ContentPresenter Style="{StaticResource ExpandOrCollapsedStyle}" Content="{Binding}"/>
</sap:ActivityDesigner>


  • Keine Stichwörter