ローコード ワークフロー内でコード化されたソース ファイルを呼び出すには、このワークフローを使用します。この例では、コード化されたソース ファイル TimeSpanHelper.cs
内に TimeSpanHelper
というクラスを作成します。このクラスは、指定した範囲に基づいてランダムな期間を生成します。ローコード ワークフロー内でこのクラスを使用するには、[ワークフロー ファイルを呼び出し] アクティビティを使用します。ユース ケースによっては、その後に続けて他のローコード アクティビティを使用します。
-
コード化されたソース ファイルを作成します。この例では、
TimeSpanHelper.cs
という名前を付けます。
-
コード化されたソース ファイルで、TimeSpanHelper という名前のパブリック クラスを作成します。
-
TimeSpanHelper クラス内で、ランダムな値を生成するために
_random
という名前のプライベートな静的ランダム オブジェクトを宣言します。
private static Random _random = new Random();
private static Random _random = new Random();
-
_lockObj
という名前のプライベートな静的オブジェクトを宣言してスレッドを保護しながら、複数のスレッドが同時に処理されるようにします。
private static object _lockObj = new object();
private static object _lockObj = new object();
-
lowerBoundMs
と upperBoundMs
という 2 つの整数パラメーターを受け取る GetRandomTimeSpanBetween
というパブリックな静的メソッドを実装します。
public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs)
{
public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs)
{
-
lock ステートメントを
_lockObj
とともに使用してこのスレッドを保護しながら、複数のスレッドが同時に処理されるようにします。
lock (_lockObj)
{
lock (_lockObj)
{
-
ロック ブロック内で、
_random.Next
を使用してランダムな整数値を生成し、引数として lowerBoundMs
と upperBoundMs
を渡します。
var ms = _random.Next(lowerBoundMs, upperBoundMs);
var ms = _random.Next(lowerBoundMs, upperBoundMs);
-
TimeSpan.FromMilliseconds
を使用して、生成されたランダム値を TimeSpan
オブジェクトに変換します。
return TimeSpan.FromMilliseconds(ms);
return TimeSpan.FromMilliseconds(ms);
-
メソッドから生成された
TimeSpan
値を返します。
-
ローコード ワークフローを作成します。この例では、
WorkflowUsingCodeSourceFile
という名前を付けます。
-
2 ~ 4 秒までのランダムな期間を出力する [メッセージをログ] アクティビティを追加します。
-
[メッセージ] フィールドにプロジェクトの名前を入力し、コード化されたソース ファイルを呼び出してから、
GetRandomTimeSpanBetween
メソッドを呼び出します。
以下の例では、
CodedWorkflowInteroperability
がプロジェクトの名前です。
CodedWorkflowInteroperability.TimeSpanHelper.GetRandomTimeSpanBetween(2000, 4000)
CodedWorkflowInteroperability.TimeSpanHelper.GetRandomTimeSpanBetween(2000, 4000)