機械翻訳について

データの関連付けおよび操作

アプリケーションのデータを保存するためのビジネス・タイプおよびオブジェクトを定義した後、フロー要素内でのその使用を管理する必要があります。

式の使用

標準的な演算子および関数を使用した式を使用して、データ・オブジェクトに格納されているデータの計算を評価および実行します。

式を使用して、シーケンス・フローとの間で渡される値を変更します。 データ関連付けを構成するとき、変換を構成するとき、および次のフロー要素のプロパティを構成するときに、式を作成できます。
  • ヒューマン・タスク: 式を使用して、割当て先を動的に決定します。

  • 条件付きシーケンス・フロー: 式を使用して、条件を定義します。

  • タイマー捕捉イベント: 式を使用して、タイマー条件を構成します。

  • 通知タスク: 式を使用して、動的な電子メール通知を定義します。

  • サブプロセス・タスク: 式を使用して、条件付きでサブプロセスを呼び出します。

式を作成するには、データ関連付けの最中またはフロー要素のプロパティから、「Expression Editor」「Expression Editor」アイコンアイコンまたは「Expressions Mode」フィールドをクリックします。 「Expression Editor」ダイアログ・ボックスが開きます。


expression_editor.pngの説明が続きます
図expression_editor.pngの説明
  • ほとんどの場合、「Expression Mode」フィールドは「Simple」に設定されていますが、一部のフロー要素では「Plain Text」および「XML Literal」オプションがリストされます。 この下のフィールドに、構成したとおりに式が表示されます。

  • 「Data Objects」または「Operators」タブを選択し、式のデータ・オブジェクトと演算子を選択して、式を作成します。 「Insert Into Expression」をクリックして選択したオブジェクトまたは演算子を追加するか、手動で入力します。

  • その型に使用できるオプションを表示するには、式フィールドで、データ・オブジェクトの後ろに「.」(ピリオド)を入力します(完了アクションをトリガーします)。

  • 「Validate」をクリックして、式フィールドに結果を表示します。 「Error」タブに、検出されたエラーがリストされます。

関数の使用

データ型に応じて、次の関数を式に含めることができます。 たとえば、文字列関数を使用して整数値を渡すことができます。

  • String - テキスト

  • int - 整数

  • double - 10進数

  • Boolean - trueまたはfalse

  • char - シングル・キャラクタ

  • byte - 8ビット、データの最小単位

  • short - スモール整数

  • long - ラージ整数

  • float - ラージ10進数

  • Date - 日付のみ

  • Time - 時間のみ

  • DateTime - 日時

関数のガイドラインおよび例

  • フィールド名がinputDataObjectで、型がstringである必要がある場合、string(inputDataObject)と入力します。

  • データ型intのフィールドには、整数のみを含めることができます。 doubleまたはfloatのフィールドには10進数を含めることができます。

  • データの関連付けで、入力タイプがintの場合、出力タイプは、int, doubleまたはfloatなどの任意の数値データ・タイプにすることができます。 ただし、出力タイプがintの場合は、入力タイプもintでなければならず、エラーが発生します。 必要に応じて、round()、int()、floor()またはceil()関数を使用します。

  • フィールド名がloanAppDataObject.form.incomeの場合、基本フォームはround(loanAppDataObject.form.income)またはloanAppDataObject.form.income.round()に、Webフォームの場合はround(loanAppDataObject.income)またはloanAppDataObject.income.round()に変更します。

単純な式について

単純な式は、基本的な式言語およびサポートを使用して定義されます。 これらの演算子を使用して、プロセス・フローを定義する式および条件を記述します。 通常、これらの式はビジネス・プロセス内のデータ・オブジェクトに基づいて計算を実行します。 データ・オブジェクトの値を使用して式および条件を記述することができますが、データ・オブジェクト内の値を明示的に変更することはできません。

次に、演算子を使用した式の例を示します。

  • totalAmount - discount

  • activationCount > 3

  • unitsSold <= 1200

演算子の優先度

演算子の優先度は、コンパイラが演算子を評価する順序を定義します。 カッコを使用して式での演算子の優先度を変更できます。 「プロセス」では、演算子の優先順位は次のとおりです:

  • 加算、減算

  • 乗算、除算、余り

  • プラス、マイナス

  • より小さい、より大きい、以下、以上

  • 等しい、等しくない

  • 否定

  • 条件付きAnd

  • 条件付きOr

算術演算子

オペレータ 名前 説明
+ 加算 数値データ型を加算し、文字列を連結します
- 減算 数値データ型を減算します
* 乗算 数値データ型を乗算します
/ 除算 数値データ型を除算します
% 剰余 除数が被除数を割りきれない除算の余りを計算します
() 優先度 演算式の評価順序を示します

単項演算子

オペレータ 名前 説明
+ プラス 数値オペランドの値には影響しません。 特定の値が正の数であることを明示的に示すために使用されます。
- マイナス 演算式を否定します。
! 否定 論理完全演算子です。 ブール式の値を否定します。

等価演算子および関係演算子

オペレータ 名前 説明
= または == 等しい 最初のオペランドと2番目のオペランドが等しい場合にtrueを返します
!= 等しくない 最初のオペランドと2番目のオペランドが等しくない場合にtrueを返します
> より大きい 最初のオペランドが2番目のオペランドより大きい場合にtrueを返します
> = 以上 最初のオペランドが2番目のオペランドより大きいか等しい場合にtrueを返します
< より小さい 最初のオペランドが2番目のオペランドより小さい場合にtrueを返します
<= 以下 最初のオペランドが2番目のオペランドより小さいか等しい場合にtrueを返します

条件付き演算子

オペレータ 名前 説明
and 条件付きAnd 両方のオペランドがtrueに評価された場合にtrueを返します
or 条件付きOr どちらかのオペランドがtrueに評価された場合にtrueを返します

文字列演算子

オペレータ 説明 式の使用方法 使用結果
+ 文字列の連結 "pine" + "apple" "pineapple"
== 等しい "apples" == "apples" true
!= 等しくない "apples" != "oranges" true
> より大きい "word" > "work" false
> = 以上 "work" >= "work" true
< より小さい "word" < "work" true
<= 以下 "work <= "work" true
contains 最初の引数文字列に2番目の引数文字列が含まれる場合にtrueを返し、それ以外はfalseを返します "caramel".contains("ram") true
endsWith 最初の引数文字列が2番目の引数文字列で終わる場合にtrueを返し、それ以外はfalseを返します "immutable".endsWith("table") true
length 文字列の文字の数を返します "house".length() 5
lowerCase 引数内のすべての文字を小文字に変換して文字列を返します "Example".lowerCase() "example"
startsWith 最初の引数文字列が2番目の引数文字列で始まる場合にtrueを返し、それ以外はfalseを返します "caramel".startsWith("car") true
substring 最初の引数の部分文字列(2番目の引数で指定した場所から文字列の最後まで)を返します "care".substring(1) "are"
substring 最初の引数の部分文字列(2番目の引数で指定した場所から、3番目の引数で指定した長さ)を返します "care".substring(0,3) "car"
upperCase 引数内のすべての文字を大文字に変換して文字列を返します "Example".upperCase() EXAMPLE

整数演算子

オペレータ 説明 式の使用方法 使用結果
+ 加算 2 + 8 10
- 減算 7 - 4 3
* 乗算 3 * 4 12
/ 除算 3 / 2 1.5
% 剰余 3 % 2 1
== 等しい 12 == 13 false
!= 等しくない 12 != 13 true
> より大きい 15 > 16 false
> = 以上 15 >= 15 true
< より小さい 12 < 10 false
<= 以下 12 <= 12 true
abs 数の絶対値を返します - 6 6

非整数演算子

オペレータ 説明 式の使用方法 使用結果
floor 引数以下の整数の最大の(正の無限大に最も近い)数を返します floor(5.60) 5
ceil 引数以上の整数の最小の(負の無限大に最も近い)数を返します ceil(5.60) 6
round 引数に最も近い整数である数を返します round(5.60) 6

日付および時間演算子

オペレータ 説明
+ 加算(2番目の引数が期間の場合にのみ有効)
- 減算(2番目の引数が期間の場合にのみ有効)
== 等しい
!= 等しくない
> より大きい
> = 以上
< より小さい
<= 以下
format 提供された書式ピクチャを使用して、日時の書式設定された文字列を返します
year 日時引数の年コンポーネントを表す数を返します
month 日時引数の月コンポーネントを表す数を返します
day 日時引数の日付コンポーネントを表す数を返します
hours 日時引数の時間コンポーネントを表す、0から23の間(両端を含む)の数を返します
minutes 日時引数の分コンポーネントを表す、0から59の間(両端を含む)の数を返します
日時引数の秒コンポーネントを表す、0から59の間(両端を含む)の数を返します
timezone UTCからの時間オフセットを表す、区間値を返します

ブール演算子

オペレータ 説明 式の使用方法 使用結果
== 等しい true == true true
!= 等しくない true != false true
and 条件付きAnd true and false false
or 条件付きOr true or false true
not ブール式の値を反転する論理完全演算子 not true false

期間演算子

オペレータ 説明
== 等しい
!= 等しくない
> より大きい
> = 以上
< より小さい
<= 以下

Base64Binary演算子

オペレータ 説明
== 等しい
!= 等しくない

配列演算子

オペレータ 説明
[ ] 特定の要素を配列に入れます
== 等しい
!= 等しくない
length 配列内に含まれる要素の数を返します

その他の演算子

オペレータ 説明
== 等しい
!= 等しくない

特別な定数

定数 説明
null Null値
true 論理true
false 論理false
'now' 現在の日時

キャスト

場合によっては、必ずしも互換性がない型を割り当てるために、型の検証をバイパスすることが望ましい場合があります。 たとえば、int値をstring値に割り当てる必要がある場合、そのことを実行するために、次のような変換操作を使用できます。

<conversionTypeName> ( <valueToConvert> )

'conversionTypeName'は、値として表示する型です。

次にいくつかの変換例を示します。

  • string(myIntDO)

  • int(myStringDO)

  • duration(mystringDO)

ノート:

プリミティブ型のみをキャスト先にできるため、conversionTypeNameには有効な値を持つ型のみを指定できます。

互換性のない2つの値を割り当てると、ランタイム・エラーになります。

アイデンティティ・サービス

関数 説明 使用可能 関数の使用プロトタイプ 使用例
getManager 特定ユーザーのマネージャを含む文字列を返します。 プロセス全体 IdentityService.getManager(<userName:string>): string IdentityService.getManager("wfaulkner")
getManager 指定されたレルム内の特定ユーザーのマネージャを含む文字列を返します。 プロセス全体 IdentityService.getManager(<userName: string>,<realm:string>): string IdentityService.getManager("wfaulkner", "myRealm")

ヒューマン・タスク

関数 説明 使用可能 関数の使用プロトタイプ 使用例
getPerformer   割当て先選択 HumanTask.getPerformer(): string HumanTask.getPerformer()
getLastPerformer   割当て先選択 HumanTask.getLastPerformer(): string HumanTask.getLastPerformer()

フォーム

関数 説明 使用可能 関数の使用プロトタイプ 使用例
getWebform 指定したWebフォーム・データ・オブジェクトのPDFイメージを表す、base64でエンコードされた値を返します。 プロセス全体 Form.getWebform(<webFormDataObject:catalogObject>): base64 Form.getWebform(myWebformDO)
getWebform 指定したWebフォーム・データ・オブジェクトのイメージを、2番目の引数として渡された形式で表す、base64でエンコードされた値を返します(有効な値はPDFまたはPNGです)。 プロセス全体 Form.getWebform(<webFormDataObject:catalogObject>,<format:string>): base64 Form.getWebform(myWebformDO, "PNG")
getWebform 3番目の引数で指定された名前を持つ、指定したWebフォーム・データ・オブジェクトのイメージを、2番目の引数として渡された形式で表す、base64でエンコードされた値を返します(有効な値はPDFまたはPNGです)。 プロセス全体 Form.getWebform(<webFormDataObject:catalogObject>,<format:string>,<webFormName:string>): base64 Form.getWebform(myWebformDO, "PNG","MyWebformDO")

ドキュメント・サービス

関数 説明 使用可能 関数の使用プロトタイプ 使用例
getDocumentAssetProperty 特定のドキュメント・アセットについて、IDやタイプなど、一部のプロパティを取得します。 プロセス全体 DocumentService.getDocumentAssetProperty(<propertyName:string>,<documentAssetName:string>): string DocumentService.getDocumentAssetProperty("Id","myFolder")

GetまたはElse

関数 説明 使用可能 関数の使用プロトタイプ 使用例
boolean バックアップ値とともにオブジェクト・プロパティをリクエストします。 バックアップ値は、最初の引数が欠落しているノードまたは未初期化値に対応する場合に使用されます。 この関数セットは、信頼できないデータ・ソースを処理する際に、初期化が保証されない場合に役立ちます。 プロセス全体 GetOrElse.boolean(<expression:boolean>,<fallbackValue:boolean>): boolean GetOrElse.boolean(myDO.boolAtt, true)
string プロセス全体 GetOrElse.string(<expression:string>,<fallbackValue:string>): string GetOrElse.string(myDO.stringAtt, "User")
decimal プロセス全体 GetOrElse.decimal( <expression:decimal>, <fallbackValue:decimal>): 小数 GetOrElse.decimal(myDO.decimalAtt, 25.9)
byte プロセス全体 GetOrElse.byte(<expression:byte>,<fallbackValue:byte>): byte GetOrElse.byte(myDO.byteAtt, byteVar)
short プロセス全体 GetOrElse.short(<expression:short>,<fallbackValue:short>): short GetOrElse.short(myDO.shortAtt, shortVar)
int プロセス全体 GetOrElse.int(<expression:int>,<fallbackValue:int>): int GetOrElse.int(myDO.intAtt, 12)
long プロセス全体 GetOrElse.long(<expression:long>,<fallbackValue:long>): long GetOrElse.long(myDO.longAtt, 1000)
double プロセス全体 GetOrElse.double(<expression:double>,<fallbackValue:double>): double GetOrElse.double(myDO.doubleAtt, 25.3d)
float プロセス全体 GetOrElse.float(<expression:float>,<fallbackValue:float>): float GetOrElse.float(myDO.floatAtt, floatVar)
バイナリ プロセス全体 GetOrElse.binary(<expression:base64Binary>,<fallbackValue:base64Binary>): base64Binary GetOrElse.binary(myDO.binaryAtt, binaryVar)
integer プロセス全体 GetOrElse.integer(<expression:integer>,<fallbackValue:integer>): integer GetOrElse.integer(myDO.integerAtt, 12)
time プロセス全体 GetOrElse.time(<expression:time>,<fallbackValue:time>): time GetOrElse.time(myDO.timeAtt, '9:20')
date プロセス全体 GetOrElse.date(<expression:date>,<fallbackValue:date>): date GetOrElse.date(myDO.dateAtt, '1988/08/08')
dateTime プロセス全体 GetOrElse.dateTime(<expression:dateTime>,<fallbackValue:dateTime>): dateTime GetOrElse.dateTime(myDO.dateTimeAtt, '1988/08/08 9:20')
duration プロセス全体 GetOrElse.duration(<expression:duration>,<fallbackValue:duration>): duration GetOrElse.duration(myDO.durationAtt, '5s')

ノート:

GetまたはElse関数セットは、構造化プロセス内の通常のデータ関連付けにのみ使用できます。 データ変換または動的プロセスには使用できません。

配列に追加

配列は、同じタイプの一連のデータ要素またはデータ要素のリストです。 データ・マッパーで使用可能な「追加」アクションを使用して、単一のデータ要素を配列に追加できます。

「追加」は、構造化プロセスと動的プロセスの両方のデータ関連付けエディタで使用できます。

次の点に注意してください:
  • ターゲット式タイプは常に配列である必要があります。

  • ソース式タイプは、ターゲット配列と同じデータ型である必要があります。

    唯一の例外は、ソース・データ型をターゲット配列に割り当てることができる場合です。 たとえば、整数は倍精度浮動小数点に割り当てることができるため、整数をdouble型の配列に追加できます。

  • ソース式とターゲット式の両方が有効である必要があります。

色のリストがあるとします: フォーム内の青、緑および黒。 リストに別の色を赤で追加します。 設計時に、色(配列タイプの文字列)のリストにred (文字列)を追加し、アプリケーションを検証およびテストし、最後に追加アクションが実行時に成功したかどうかを確認します。

  1. 設計時に、データ関連付けエディタを開きます。 右ペインでデータ・オブジェクトを展開し、colorContainerを展開します。
  2. 「色」 (配列)をデータ関連付けエディタのターゲット・フィールドにドラッグ・アンド・ドロップします。
  3. ソース・フィールドに“red”と入力します。

    関連付けアイコンが赤に変わり、エラー・メッセージが表示されます。

    append-array-1.pngの説明は以下のとおりです
    「図append-array-1.pngの説明」

  4. 関連付けアイコンをクリックします。 ドロップダウン・メニューが表示されます。
  5. 「追加」をクリックします。

    関連付けアイコンが緑色に変化し、追加アクションが正常に実行されたことが示されます。

    append-array-3.pngの説明は以下のとおりです
    「図append-array-3.pngの説明」

  6. 「適用」をクリックします。
  7. アクティブ化をテストし、アプリケーションをテスト・モードで試行します。
  8. 実行時に、開始タスクを開いて完了し、送信します。

    インスタンスが作成されたというメッセージが表示されます。

  9. 「マイ・タスク」をクリックして、色のリストにあるタスクを開きます。

    フォームの色のリストに赤色が追加されていることに注意してください。

    append-array-4.pngの説明は以下のとおりです
    「図append-array-4.pngの説明」

この例の配列に文字列が正常に追加されました。

配列データ・オブジェクトのフィルタ

プロセス・コンポーネント間にデータ関連付けを定義する際、ソース配列オブジェクトの要素を選択的にフィルタ処理し、ターゲット配列に割り当てることができます。

構造化プロセスのデータ関連付けエディタ、動的プロセスまたは変換では、次の条件を満たす場合に、フィルタを定義するオプションが表示されます:
  • ターゲット式タイプは配列です。
  • ソース式タイプは配列です。 ソースのベース・タイプは、ターゲットのベース・タイプに割当て可能です(整数から二重割当など)。
  • ソース式とターゲット式の両方が有効です。

新しいフィルタを定義するには:

  1. 「データ関連付け」アイコンをクリックし、「フィルタ」を選択します。

    filter-action.pngの説明は以下のとおりです
    「図filter-action.pngの説明」

  2. 表示されるウィンドウで「作成」アクションを選択し、フィルタに適した名前(たとえば、MyStringFilter)を指定して、「作成」を再度クリックします。 フィルタ条件を定義するウィンドウが表示されます。

    ノート:

    適切なフィルタがすでに存在する場合は、フィルタの作成ウィンドウから選択または編集できます。
  3. 使用可能な演算子を使用して、配列のタイプに基づいてフィルタ条件を定義します。 単純な配列オブジェクト(整数型、文字列型、またはdouble型)の場合、VALUEという名前の要素は、ソース配列の各要素を表すウィンドウに存在します。
    1. VALUE要素を「条件」フィールドにドラッグ・アンド・ドロップして、式を定義します。 必要に応じて、fx(式)アイコンをクリックし、式エディタを使用します。 次の図は、文字列配列に対して定義されたフィルタ条件を示しています:

      filter-condition.pngの説明は以下のとおりです
      「図filter-condition.pngの説明」

      この場合、5という長さのソース配列の要素のみがターゲット配列に割り当てられます。

    2. 複合配列オブジェクトの場合、そこに含まれるすべての属性で構成される条件を定義できます:

      filter-condition-complex.pngの説明は以下のとおりです
      「図filter-condition-complex.pngの説明」

      ノート:

      現時点では、複合配列オブジェクトのフィルタ条件を定義する際に、各配列要素および関連する条件を「条件」フィールドに入力する必要があります。 ドラッグ・アンド・ドロップ機能は、単一のオブジェクトまたは要素に対してのみサポートされます。
  4. フィルタ条件を保存します。
  5. プロセス内に定義されたフィルタを表示または編集するには、データ関連付けエディタで「アクション」をクリックします。
  6. 最後に、「適用」をクリックして、すべてのデータの関連付けとフィルタを保存します。

    実行時に、定義したフィルタ条件に従ってターゲット配列が移入されます。

データ関連付けの条件の定義

特定の条件が満たされる場合にのみ、実行時にデータ関連付けを実行するビジネス・シナリオがあります。 データ関連付けエディタで条件を追加することにより、実行時のデータ関連付けの実行を制御します。

条件マッピングで構成されているデータ関連付けは、定義された条件が満たされる場合のみ実行されます。 それ以外の場合は実行に失敗します。 条件マッピングが定義されていない他のすべてのデータ関連付けは、実行時に通常どおり実行されます。

データ・マッピングの条件は、構造化されたプロセスと動的プロセスの両方で設定できます。

新規条件を定義するには:

  1. 条件を構成するデータ関連付けの「データ関連付け」アイコンをクリックします。 新しい条件は、結果のダイアログ・ボックスで定義できます。
  2. 「追加」フィールドに直接入力して、新しい条件を定義します。 例: form.Arg.cost>5000
  3. オプションで、「式エディタ」アイコンをクリックし、式エディタを使用して標準の関数と演算子を使用して条件を定義します。

    「式の使用」を参照してください。

  4. 条件が有効な場合は、「データ関連付け」アイコンの横に有効なデータ関連付けが表示されます。
  5. 構成された条件が無効な場合、アイコンは赤のデータ条件が無効ですになります。 エラーの詳細を確認するには、「データ関連付け」アイコンをクリックします。 エラーに関する詳細を含むエラー・メッセージが条件フィールドの下に表示されます。
  6. 最後に、「適用」をクリックして、データ関連付け(条件セットとのデータ関連付けを含む)をすべて保存します。
実行時に、条件を定義したデータ関連付けは、条件が満たされた場合のみ実行されます。 この例では、プロセスの開始アクティビティの「コスト」フィールドのペイロードがプロセスの次のアクティビティに渡されるのは、その値が5000を超える場合のみです。