Cómo agregar atributos extendidos a las asignaciones de recursos
Al igual que con las tareas y los recursos, los atributos extendidos también se pueden añadir a las asignaciones de recursos. Aspose.Tasks for .NET API le permite ampliar los datos de su proyecto adjuntando tanto atributos extendidos simples como de búsqueda a las asignaciones de recursos. Esto le permite almacenar metadatos adicionales y hacer que los informes del proyecto sean más flexibles.
Agregar atributos extendidos a la asignación de recursos
En este ejemplo, mostramos cómo crear y asignar un atributo extendido directamente a una asignación de recursos. Este enfoque es útil cuando necesita rastrear datos personalizados que no forman parte de los campos estándar de Microsoft Project.
1// Create new project
2Project project = new Project("New Project.mpp");
3
4// Add new task and resource
5Task task = project.RootTask.Children.Add("Task");
6Resource resource = project.Resources.Add("Rsc");
7
8// Assign the resource to the desired task
9ResourceAssignment assignment = project.ResourceAssignments.Add(task, resource);
10
11// Custom attributes which is visible in "Resource Usage" view can be created with ExtendedAttributeDefinition.CreateResourceDefinition method.
12{
13 ExtendedAttributeDefinition resCostAttributeDefinition = ExtendedAttributeDefinition.CreateResourceDefinition(
14 CustomFieldType.Cost,
15 ExtendedAttributeResource.Cost5,
16 "My cost");
17
18 project.ExtendedAttributes.Add(resCostAttributeDefinition);
19
20 var value = resCostAttributeDefinition.CreateExtendedAttribute();
21
22 // The type of the attribute is "Cost", so we need to use "NumericValue" property.
23 value.NumericValue = 1500;
24
25 assignment.ExtendedAttributes.Add(value);
26}
27
28// Custom attributes which is visible in "Task Usage" view can be created with ExtendedAttributeDefinition.CreateTaskDefinition method
29{
30 ExtendedAttributeDefinition taskCostAttributeDefinition = ExtendedAttributeDefinition.CreateTaskDefinition(
31 CustomFieldType.Cost,
32 ExtendedAttributeTask.Cost5,
33 "My cost for task");
34
35 project.ExtendedAttributes.Add(taskCostAttributeDefinition);
36
37 var value = taskCostAttributeDefinition.CreateExtendedAttribute();
38
39 // The type of the attribute is "Cost", so we need to use "NumericValue" property.
40 value.NumericValue = 2300;
41
42 assignment.ExtendedAttributes.Add(value);
43}
44
45project.Save("AddExtendedAttributesToResourceAssignment_out.mpp", SaveFileFormat.MPP);
Agregar atributos extendidos de búsqueda a la asignación de recursos
El siguiente código muestra cómo usar valores de búsqueda para atributos extendidos. Con atributos de búsqueda, puede asegurar que los datos de las asignaciones de recursos se ajusten a listas predefinidas, reduciendo el error humano y manteniendo la información del proyecto coherente.
1// Create new project
2Project project = new Project("New Project.mpp");
3
4// Assign resource "1 TRG: Trade Group" to the "TASK 1" by creating a ResourceAssignment object.
5Resource resource = project.Resources.GetById(1);
6Task task = project.RootTask.Children.GetById(1);
7
8ResourceAssignment assignment = project.ResourceAssignments.Add(task, resource);
9
10// Create custom attribute definition with lookup.
11ExtendedAttributeDefinition resCostAttr = ExtendedAttributeDefinition.CreateLookupResourceDefinition(
12 CustomFieldType.Cost,
13 ExtendedAttributeResource.Cost5,
14 "My lookup resource cost");
15project.ExtendedAttributes.Add(resCostAttr);
16
17var value1 = new Value { NumberValue = 1500, Description = "Val 1", Id = 1, Val = "1500" };
18
19resCostAttr.AddLookupValue(value1);
20
21resCostAttr.AddLookupValue(new Value { NumberValue = 2500, Description = "Val 2", Id = 2 });
22
23// This value can be seen in "Resource usage" view of MS Project.
24var attributeValue = resCostAttr.CreateExtendedAttribute(value1);
25assignment.ExtendedAttributes.Add(attributeValue);
26
27// Create custom attribute definition with lookup.
28ExtendedAttributeDefinition taskCostAttr = ExtendedAttributeDefinition.CreateLookupTaskDefinition(
29 ExtendedAttributeTask.Cost4,
30 "My lookup task cost");
31
32project.ExtendedAttributes.Add(taskCostAttr);
33
34var taskLookupValue1 = new Value { NumberValue = 18, Description = "Task val 1", Id = 3, Val = "18" };
35taskCostAttr.AddLookupValue(taskLookupValue1);
36
37resCostAttr.AddLookupValue(new Value { NumberValue = 30, Description = "Task val 2", Id = 4 });
38
39// This value can be seen in "Task usage" view of MS Project.
40assignment.ExtendedAttributes.Add(taskCostAttr.CreateExtendedAttribute(taskLookupValue1));
41
42project.Save("AddExtendedAttributesToRAWithLookUp_out.mpp", SaveFileFormat.MPP);
Preguntas frecuentes
Q: ¿Necesito tener Microsoft Project instalado para trabajar con atributos extendidos?
- No. Aspose.Tasks for .NET funciona de forma independiente de Microsoft Project.
Q: ¿Puedo definir atributos extendidos tanto simples como de búsqueda en el mismo proyecto?
- Sí. Puede combinar atributos extendidos simples y de búsqueda según las necesidades de su proyecto.
Q: ¿Aparecerán los atributos extendidos añadidos mediante Aspose.Tasks al abrir el proyecto en Microsoft Project?
- Sí. Los atributos extendidos son totalmente compatibles con Microsoft Project y serán visibles cuando abra el archivo.
Conclusión
Agregar atributos extendidos a las asignaciones de recursos en Aspose.Tasks for .NET proporciona flexibilidad para gestionar datos adicionales del proyecto. Tanto si utiliza atributos simples como de búsqueda, puede enriquecer sus archivos de proyecto con campos personalizados, reforzar la integridad de los datos y potenciar sus informes sin requerir la instalación de Microsoft Project. Esta funcionalidad convierte a Aspose.Tasks en una opción fiable para la automatización profesional de la gestión de proyectos en C#.