Compartir a través de


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

  • validateOnly
    Tipo: System.Boolean

    Si true, validar la CustomFieldDataSet sin crear los campos personalizados.

  • autoCheckIn
    Tipo: System.Boolean

    Si 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

ManageEnterpriseCustomFields

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

clase CustomFields

Miembros CustomFields

Espacio de nombres WebSvcCustomFields

CreateCustomFields2(CustomFieldDataSet, Boolean, Boolean)

Otros recursos

Local and Enterprise Custom Fields

How to: Create an Enterprise Custom Field