Actividades personalizadas
En Microsoft Dataverse, puede crear actividades personalizadas para satisfacer las necesidades de comunicación de una empresa como mensajería instantánea (IM) y servicio de mensajes cortos (SMS). Para crear una actividad personalizada en Dataverse, cree una tabla personalizada y especifíquela como tabla de actividad utilizando la propiedad EntityMetadata.IsActivity .
Sin embargo, al contrario que otras tablas personalizadas, no puede especificar una columna primaria para una actividad personalizada porque, de forma predeterminada, cada actividad personalizada debe tener una columna primaria llamada "Asunto".
Cuando crea una actividad personalizada, todas las propiedades y privilegios de la tabla activitypointer
se heredan para la actividad personalizada. Además, todos los tipos del grupo de actividad están disponibles para la actividad personalizada y, por consiguiente, las propiedades correspondientes también se heredan.
Puede crear relaciones de 1:N (uno a varios) para una actividad personalizada de la misma forma que para cualquier otra actividad. Puede, además, actualizar relaciones existentes.
Privilegios y derechos de acceso
Se requiere el mismo conjunto de privilegios y derechos de acceso de Dataverse para trabajar con actividades personalizadas como los necesarios para trabajar con entidades personalizadas. Para obtener más información acerca de las tablas, vea Personalizar la definición de tablas.
Creación de una actividad personalizada
Para crear una actividad personalizada, establezca los valores de las propiedades enumeradas en la tabla siguiente.
Nombre de la propiedad | valor | Notas |
---|---|---|
EntityMetadata. IsActivity | true |
Especifique la tabla personalizada como taba de actividad. |
EntityMetadata. IsAvailableOffline | true |
Una tabla de actividad personalizada debe tener disponibilidad sin conexión. |
EntityMetadata. IsMailMergeEnabled | false |
Una tabla de actividad personalizada no puede tener habilitada la combinación de correspondencia. |
EntityMetadata. OwnershipType | OwnershipTypes. TeamOwned or OwnershipTypes. UserOwned |
Una tabla de actividad personalizada puede ser propiedad de un usuario o un equipo. |
EntityMetadata. ActivityTypeMask | 0 - Ninguna or 1 – Actividad de comunicación |
(Opcional) Especifique si una actividad personalizada debe aparecer en los menús de la actividad en la aplicación web. - Especifique 0 (ninguna) para evitar que aparezca en los menús de actividad. La actividad personalizada aparecerá en las cuadrículas asociadas sólo de esas entidades con las que esté asociada (tiene relación). - Especifique 1 (actividad de comunicación) para que aparezca en los menús de actividad. Si no especifica esta propiedad, la actividad personalizada se crea con el valor de propiedad predeterminado: 1. Es decir, la actividad personalizada está disponible en los menús de actividad. Por otro lado, ActivityTypeMask se puede establecer en el momento de creación de la actividad solo, y una vez establecido, no se puede editar. |
CreateEntityRequest. HasActivities | false |
Una tabla de actividad personalizada no debe tener una relación con actividades. |
CreateEntityRequest. HasNotes | true |
Una tabla de actividad personalizada debe tener una relación con notas. |
CreateEntityRequest. PrimaryAttribute | SchemaName es “Asunto”. | El nombre de esquema de PrimaryAttribute para todas las actividades debe ser "Asunto". |
Ejemplo
El siguiente ejemplo muestra cómo se puede crear una actividad personalizada.
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
Consultar también
Tablas de actividades
Tabla ActivityPointer (actividad)
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).