del método CustomFields.CreateCustomFields
Crea los campos personalizados de empresa.
Espacio de nombres: WebSvcCustomFields
Ensamblado: ProjectServerServices (en ProjectServerServices.dll)
Sintaxis
'Declaración
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/CustomFields/CreateCustomFields", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/CustomFields/", _
ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/CustomFields/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Sub CreateCustomFields ( _
cfds As CustomFieldDataSet, _
validateOnly As Boolean, _
autoCheckIn As Boolean _
)
'Uso
Dim instance As CustomFields
Dim cfds As CustomFieldDataSet
Dim validateOnly As Boolean
Dim autoCheckIn As Boolean
instance.CreateCustomFields(cfds, validateOnly, _
autoCheckIn)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/CustomFields/CreateCustomFields", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/CustomFields/",
ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/CustomFields/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public void CreateCustomFields(
CustomFieldDataSet cfds,
bool validateOnly,
bool autoCheckIn
)
Parámetros
cfds
Tipo: WebSvcCustomFields.CustomFieldDataSetEl CustomFieldDataSet contiene las definiciones de campo personalizado.
validateOnly
Tipo: System.BooleanSi true, validar la CustomFieldDataSet sin crear los campos personalizados.
autoCheckIn
Tipo: System.BooleanSi true, verificación de los campos personalizados después de que se crean.
Comentarios
Para obtener descripciones de las propiedades que se usan para crear un campo personalizado, consulte CustomFieldDataSet.CustomFieldsRow.
Advertencia
El método CreateCustomFields y el método CreateCustomFields2 , así como Project Web App, permiten crear un campo personalizado de proyecto de empresa de tipo de marca y establezca el campo personalizado como flujo de trabajo controlado. Sin embargo, los flujos de trabajo de Project Server no pueden controlar los campos personalizados de indicador. No deben establecer los campos personalizados de proyecto del tipo de marca para el control de flujo de trabajo.
Sugerencia
El método CreateCustomFields omite la configuración regional del equipo que ejecuta Project Server. El método CreateCustomFields2 puede usar valores dependientes de la configuración regional para las fórmulas que calculan campos personalizados y los indicadores gráficos.
Permisos de Project Server
Permiso |
Descripción |
---|---|
Permite que un usuario modificar las definiciones de campos personalizados de empresa y los valores de tabla de búsqueda. Permiso global. |
Ejemplos
El ejemplo siguiente, utiliza CustomFieldWS como el nombre de una referencia web al servicio web Custom Fields (https://ServerName/ProjectServerName/_vti_bin/psi/CustomFields.asmx). El controlador de eventos btnCustomField_Click es para un botón en una aplicación de formulario Windows Forms, como LoginDemo en la descarga del SDK de Project.
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
private Guid customFieldUid;
. . .
private void btnCustomField_Click(object sender, EventArgs e)
{
string cfName = "Test Task Cost";
Guid entityTypeUid = new Guid(PSLibrary.EntityCollection.Entities.TaskEntity.UniqueId);
lookupTableUid = Guid.Empty;
ltRowDefaultUid = Guid.Empty;
byte cfType = (byte)PSLibrary.CustomField.Type.COST;
byte rollup = (byte)PSLibrary.CustomField.SummaryRollup.Sum;
customFieldUid = CreateCustomField(
customFields, cfName,
entityTypeUid, lookupTableUid, ltRowDefaultUid,
cfType, rollup);
}
// Test method for creating a custom field.
public Guid CreateCustomField(
CustomFieldsWS.CustomFields customFields,
string cfName,
Guid entityTypeUid,
Guid lookupTableUid,
Guid ltRowDefaultUid,
byte cfType,
byte rollup
)
{
CustomFieldsWS.CustomFieldDataSet customFieldDataSet =
new CustomFieldsWS.CustomFieldDataSet();
CustomFieldsWS.CustomFieldDataSet.CustomFieldsRow cfRow =
customFieldDataSet.CustomFields.NewCustomFieldsRow();
Guid cfUid = Guid.NewGuid();
cfRow.MD_PROP_UID = cfUid;
cfRow.MD_AGGREGATION_TYPE_ENUM = rollup;
cfRow.MD_ENT_TYPE_UID = entityTypeUid;
cfRow.MD_PROP_NAME = cfName;
cfRow.MD_PROP_IS_REQUIRED = false;
cfRow.MD_PROP_IS_LEAF_NODE_ONLY = false;
cfRow.MD_PROP_TYPE_ENUM = cfType;
if (lookupTableUid == Guid.Empty)
cfRow.SetMD_LOOKUP_TABLE_UIDNull();
else
cfRow.MD_LOOKUP_TABLE_UID = lookupTableUid;
if (ltRowDefaultUid == Guid.Empty)
cfRow.SetMD_PROP_DEFAULT_VALUENull();
else
cfRow.MD_PROP_DEFAULT_VALUE = ltRowDefaultUid;
customFieldDataSet.CustomFields.Rows.Add(cfRow);
try
{
bool validateOnly = false;
bool autoCheckIn = true;
customFields.CreateCustomFields(customFieldDataSet, validateOnly, autoCheckIn);
}
catch (SoapException ex)
{
// Add exception handler for ex.
cfUid = Guid.Empty;
}
tch (Exception ex)
{
// Add exception handler for ex.
cfUid = Guid.Empty;
}
return cfUid;
}
Vea también
Referencia
Espacio de nombres WebSvcCustomFields
CreateCustomFields2(CustomFieldDataSet, Boolean, Boolean)