更新操作を実行する非推奨の特殊化されたメッセージがいくつかあります。 以前のバージョンでは、これらのメッセージを使用する必要があったが、 IOrganizationService.Update または UpdateRequest クラスと IOrganizationServiceを使用して同じ操作を実行する必要がある。Execute
| 非推奨のメッセージ要求 | 更新が必要な属性 |
|---|---|
| AssignRequest |
<エンティティ>。OwnerId |
| SetStateRequest |
<エンティティ>。StateCode<エンティティ>。 StatusCode |
| SetParentSystemUserRequest | SystemUser.ParentSystemUserId |
| SetParentTeamRequest | Team.BusinessUnitId |
| SetParentBusinessUnitRequest | BusinessUnit.ParentBusinessUnitId |
| SetBusinessEquipmentRequest | Equipment.BusinessUnitId |
| SetBusinessSystemUserRequest | SystemUser.BusinessUnitId |
<エンティティ>は、この属性を提供するすべてのエンティティを参照します。
Important
StateCode列を更新するときは、常に目的のStatusCodeを設定することが重要です。
StateCode と StatusCode には依存値があります。 特定のStatusCode値には複数の有効なStateCode値を指定できますが、各StateCode列には 1 つの DefaultStatus 値が構成されています。
StateCodeを指定せずにStatusCodeを更新すると、システムによって既定の状態値が設定されます。
また、テーブルと StatusCode 列で監査が有効になっている場合、更新操作で指定されていない限り、 StatusCode 列の変更された値は監査データにキャプチャされません。
詳細情報: レガシ更新メッセージ
この変更により、プラグインとワークフローに注意すべき特別な動作がいくつか導入されました。
プラグインの場合
所有者フィールドとビジネス所有テーブルの他の標準フィールドの両方を含む更新要求が処理されると、PreOperation ステージまたは PostOperation ステージの Update メッセージに登録されたプラグインは、所有者以外のすべてのフィールドに対して 1 回、所有者フィールドに対して 1 回実行されます。 所有者フィールドの例としては、(businessunitの場合) managerとがあります。 ビジネス所有テーブルの例としては、 SystemUser、 BusinessUnit、Equipment 、 Team などがあります。
状態/状態フィールドと他の標準フィールドの両方を含む更新要求が処理されると、PreOperation ステージまたは PostOperation ステージの Update メッセージに登録されたプラグインは、すべての非状態/状態フィールドに対して 1 回、状態/状態フィールドに対して 1 回実行されます。
プラグイン コードが更新プログラムの完全なデータ変更を受け取るには、 プラグインを PreOperation に登録してから、後のプラグイン (パイプライン内) で使用するために、プラグイン コンテキストの SharedVariables に関連情報を格納する必要があります。
ワークフローの場合
所有者フィールドと他の標準フィールドの両方を含む更新要求が処理されると、 Update メッセージに登録されたワークフローは、所有者以外のすべてのフィールドに対して 1 回実行され、次に所有者フィールドに対して 1 回実行されます。 ユーザーによって 割り当て メッセージに登録されたワークフローは、所有者フィールドの更新によって引き続きトリガーされます。
状態/状態フィールドと他の標準フィールドの両方を含む更新要求が処理されると、 Update メッセージに登録されたワークフローは、すべての非状態/状態フィールドに対して 1 回、状態/状態フィールドに対して 1 回実行されます。 [状態の変更] ステップに登録されたワークフローは、状態/状態フィールドの更新によって引き続きトリガーされます。