Compartilhar via


CustomFields.CreateCustomFields method

Cria campos personalizados de empresa.

Namespace:  WebSvcCustomFields
Assembly:  ProjectServerServices (in ProjectServerServices.dll)

Syntax

'Declaração
<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
    Type: System.Boolean

    Se true, validar o CustomFieldDataSet sem criar os campos personalizados.

  • autoCheckIn
    Type: System.Boolean

    Se true, check-in dos campos personalizados, depois que eles são criados.

Comentários

Para obter descrições das propriedades que são usadas para criar um campo personalizado, consulte CustomFieldDataSet.CustomFieldsRow.

Aviso

O método CreateCustomFields e o método CreateCustomFields2 , bem como Project Web App, todos permitem que você crie um campo personalizado de projeto de empresa do tipo sinalizador e defina o campo personalizado seja controlado de fluxo de trabalho. No entanto, fluxos de trabalho do Project Server não podem controlar os campos personalizados de sinalização. Você não deve configurar campos personalizados de tipo de sinalizador para controle de fluxo de trabalho do projeto.

Dica

O método CreateCustomFields ignora a configuração de localidade do computador que executa o Project Server. O método CreateCustomFields2 pode usar valores de depend para as fórmulas que calculam campos personalizados e indicadores gráficos.

Permissões do Project Server

Permissão

Descrição

ManageEnterpriseCustomFields

Permite que um usuário modificar as definições de campos personalizados da empresa e valores de tabela de pesquisa. Permissão global.

Examples

O exemplo a seguir usa CustomFieldWS como o nome de uma referência da web para o serviço web de Custom Fields (https://ServerName/ProjectServerName/_vti_bin/psi/CustomFields.asmx). O manipulador de eventos btnCustomField_Click destina-se um botão em um aplicativo de formulário do Windows, como LoginDemo no download do SDK do 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;
}

Ver também

Referência

CustomFields class

CustomFields members

WebSvcCustomFields namespace

CreateCustomFields2(CustomFieldDataSet, Boolean, Boolean)

Outros recursos

Local and Enterprise Custom Fields

How to: Create an Enterprise Custom Field