Dynamicsの試用期間も迫って、だいぶ焦っております( ; ; )
やりたいこと全部やり切れるか微妙ですが、今回は作りが複雑なワークフローがテーマです。
ワークフローで選手IDを採番
今回は所属選手(Contact)の選手IDを規則性に則って採番してみます。
規則性があるならば、数式項目/計算フィールドでもいいかもしれませんが、インポートするときのキーとしても使用するため、数式項目として使用できません。
そのため、ワークフローで採番します。
ワークフローの作成
では、両者のワークフロー作成方法から。
Salesforceのワークフローの作成
[設定]→[ビルド]→[作成]→[ワークフローと承認申請]→[ワークフロールール]から。
[新規ルール]を選択。
オブジェクトには所属選手である「取引先責任者」を選択。
ルール名は任意名でOK、評価条件には「作成されたとき」を選択。
ルール条件に無条件で採番するため、数式にtrueを入力しましょう。
ルール適用時のアクションには「新規項目自動更新」を選択。
項目自動更新の名前をつけます。
任意名でOKです。
更新する項目には「選手ID」を選択します。
新規項目値の指定で、採番ルールを数式で入れます。
今回は「名前+生年月日(YYYYMMDD)」を採番ルールとするため、以下のような数式を入力します。
LastName & FirstName & SUBSTITUTE(TEXT(Birthdate), "-", "")
簡単に、数式の説明をすると、Text(x)はテキスト型以外のデータ型xに対してテキスト化し、SUBSTITUTE(x,y,z)はテキストxに対し、yの文字列をzの文字列に置換する関数です。
日付を文字列化しようとすると、「YYYY-MM-DD」形式になるため、SUBSTITUTE関数で「-」を除いています。
文字列の結合は&を入力します。Excelチックに書けますね。
項目自動更新まで作成したら、最後にワークフローを有効化して完了です。
実際にテストしてみると、ちゃんと採番されています(新規作成時のみ)。
少し手順を踏みますが、ノンコーディングで採番することが可能です。
Dynamicsのワークフローの作成
続いてDynamics側。
こちらも、ワークフローと呼ばれます。
基本的な使い方はSalesforceと一緒です。
まずは、所属選手エンティティに選手IDフィールドを作成。
こちらは、ソリューションから作成します。
[プロセス]から[新規]を選択。
プロセス情報にはこのように入力。
プロセス名は任意名で構いません。
次はワークフローの設定でスコープを「組織全体」に選択します。
これは、誰がトリガを起こしたかによって、起動条件を変更することができますが、今回は組織全員に関わる項目となるため、ユーザ関係なく「組織全体」を選択します。
その後に、中身の設定に入るため、[ステップの追加]を選択します。
ステップの追加の中で[レコードの更新]を選択。
続いて、レコードの更新設定から、「所属選手」エンティティを追加したのち、[プロパティの設定]を選択します。
フィールド内容が表示されますので、選手IDに採番ルールを入れます。
選手IDを選択した状態で、右側のフォームアシスタントから、指名と生年月日を選択→追加→OKという手順で、項目を反映します。
一度に2項目を設定するのではなく、氏名と生年月日でそれぞれで追加をかけるようにしてください(画面のように設定されていること)。
これで、採番ルールの設定は完了。
Salesforceのように数式指定でないため、細かい設定はできないものと思ってください。
Salesforceでやったように、ハイフンを除去するとか置換するなどのレベルの編集は残念ながら対応していません。
項目値のコピーと結合程度の更新くらいしかできません。
より高度な採番を必要とする場合は、プラグインを使用してプログラム対応が必要となります。
最後にワークフローを保存して、リアルタイム化とアクティブ化を忘れないように。
更新タイミングはデフォルトでは、オフ(バックグラウンド実行)となっていますが、よほど重たい処理でなければ、すぐに更新が反映されるリアルタイム化としておきましょう。
また、ワークフローの変更は、非アクティブでないとできないため、変更する場合は、一度起動中のワークフローを止めてから更新します。
実際にアクティブ化してテストすると、
完璧です!
まとめ
- ワークフローは両システムに備わっており、基本的な使い方は一緒
- 数式の柔軟性により、Salesforceの方が細かい設定ができる
- Dynamicsでの高度な採番にはワークフローでは対応しきれないため、プラグインを要する
- Dynamicsはタイミングやスコープの指定が可能(Salesforceはリアルタイムの組織全体が対象)
- レコードの作成はDynamicsのみできる、Salesforceはトリガやプロセスビルダーなどの対応が必要
コメント