ユーザー定義の活動
Microsoft Dataverse でカスタム活動を作成し、インスタント メッセージング (IM) やショート メッセージ サービス (SMS) などの業務上の通信ニーズをサポートできます。 Dataverse でカスタム アクティビティを作成するには、カスタムテーブルを作成し、EntityMetadata.IsActivity を使ってアクティビティ テーブルとして指定します プロパティに設定します。
ただし、他のカスタム テーブルとは異なり、デフォルトでは各カスタム アクティビティに 「Subject」 という名前のプライマリ列が必要なため、カスタム アクティビティにプライマリ列を指定することはできません。
カスタム アクティビティを作成すると、activitypointer
テーブルのすべてのプロパティと権限がカスタム アクティビティに引き継がれます。 また、すべての活動関係者の種類をカスタム活動に使用できるようになり、その結果として対応するプロパティも継承されます。
他の活動と同じように、カスタム活動にも 1 対多 (1:N) の関連付けを作成できます。また、既存の関連付けを更新できます。
特権およびアクセス権
カスタム活動を操作するには、ユーザー定義エンティティを操作する場合と同じ、Dataverse の権限とアクセス権のセットが必要です。 カスタム テーブルの詳細については、顧客テーブルの定義を参照してください。
ユーザー定義の活動の作成
カスタム アクティビティを作成するには、次の表に示すプロパティの値を設定します。
プロパティ名 | 値 | メモ |
---|---|---|
EntityMetadata. IsActivity | true |
カスタム テーブルをアクティビティ テーブルとして指定します。 |
EntityMetadata. IsAvailableOffline | true |
カスタム アクティビティ テーブルは、オフラインでの利用できる必要があります。 |
EntityMetadata. IsMailMergeEnabled | false |
カスタム アクティビティ テーブルでは、メールマージを有効にすることができません。 |
EntityMetadata. OwnershipType | OwnershipTypes. TeamOwned or OwnershipTypes. UserOwned |
カスタム アクティビティ テーブルには、チーム所有のものとユーザー所有のものがあります。 |
EntityMetadata. ActivityTypeMask | 0 - なし or 1 – 通信活動 |
(任意) カスタム活動を Web アプリケーションの活動メニューに表示するかどうかを指定します。 - 活動メニューに表示しない場合は 0 (なし) を指定します。 カスタム活動は関連する (関連付けがある) エンティティのみの関連グリッドに表示されます。 - 活動メニューに表示する場合は 1 (通信活動) を指定します。 このプロパティを指定しない場合、カスタム活動は既定のプロパティ値 (1) で作成されます。 つまり、カスタム活動は活動メニューに表示されます。 また、 ActivityTypeMask は活動の作成時にのみ設定できます。一度設定したら、変更はできません。 |
CreateEntityRequest. HasActivities | false |
カスタム アクティビティ テーブルは、アクティビティとの関係付けがされていてはいけません。 |
CreateEntityRequest. HasNotes | true |
カスタム アクティビティ テーブルは、ノートとの関係付けがされている必要があります。 |
CreateEntityRequest. PrimaryAttribute | SchemaName は "Subject" です。 | すべての活動の PrimaryAttribute のスキーマ名を "Subject" にする必要があります。 |
例
次のサンプルはユーザー定義の活動を作成する方法を示します。
String prefix = "new_";
String customEntityName = prefix + "instantmessage";
// Create the custom activity table.
CreateEntityRequest request = new CreateEntityRequest
{
HasNotes = true,
HasActivities = false,
PrimaryAttribute = new StringAttributeMetadata
{
SchemaName = "Subject",
RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
MaxLength = 100,
DisplayName = new Label("Subject", 1033)
},
Entity = new EntityMetadata
{
IsActivity = true,
SchemaName = customEntityName,
DisplayName = new Label("Instant Message", 1033),
DisplayCollectionName = new Label("Instant Messages", 1033),
OwnershipType = OwnershipTypes.UserOwned,
IsAvailableOffline = true,
}
};
_serviceProxy.Execute(request);
//Entity must be published
関連項目
アクティビティ テーブル
ActivityPointer (activity) テーブル
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。