SAP Build Process Automationのちょっとしたテクニックを紹介します。
変数を定義するには?
一般にSAP Build Process Automationではフォームで入力した値を後続で使用することにより処理が流れていくことになります。
そしてこのようにクリック選択で違うコンポーネント(そのコンポーネントより前に存在するコンポーネント)の値を参照できるのが特徴です。
クリックで表示したい値や使用したい値を選択できるのは便利です。
ただし、この便利さは時に難しさに変わる時があります。
例えばこの承認フォームのCommentという読み取り専用のテキストフィールドに「Hello」という値を設定したいとします。
実際にやってみると、このフィールドは値を手入力することはできず、他のコンポーネントの値を設定することしかできないようです。
こんなとき、Build AppsのようにSet Variablesのコンポーネントが存在すればよいのですがBuild Process Automationにはありません。フロー中でこれより前のフォームに意味もない「Hello」というフィールドは配置したくないのでなんとかしたいところです。
さてどうするか?というのが今回のお題です。2つ方法を紹介します。
1.Automationを利用する
Automationの出力に設定したい値を定義すると、その値を後続コンポーネントから利用することができます。
こんな感じで中身が空で、出力だけを定義しても良いです。
既にUnattendedモードのDesktop Agentをセットアップしている環境であればこの方法で対処ができます。
個人的に思うのは、Unattended モードのDesktop Agentは最低1台は設定しておいたほうが様々なシチュエーションで活用できますので便利です。Automation内でワークフローと比較して、よりプログラミングロジック的なものを組むことができます。例えば値の型の変換であったり、文字列の置換もAutomation内であれば可能です。RPAのためではなくこのような汎用的な処理、ワークフロー内の処理のためにDesktop Agentの設置も考慮に入れていただければと思います。
2.Decisionを利用する
Decisionはサンプルなどでは次の承認者の決定として使われています。よく考えればこの機能は次の承認者のIDなどを変数として出力しています。つまり変数の定義としても利用できるのです。
例えば入力としてProcess Started By(このフローを実行した人のID)を割り当てるようにして
Ruleでは入力であるuser id 同士を比較させ、出力には代入したい値を設定します。
このように必ずTrueになる条件式を設定し、出力値として任意の値を設定することでその値は定義されたことになります。
Decisionはビジネスルール的な次の承認者の決定に使用するのが主の機能ですが、このように使用することもできます。
変数しか割り当てられない項目も上記のように任意の値を設定することができます。
フロー開発の際に有効に使用していただければ幸いです。