Partager via


CustomFields.CreateCustomFields - Méthode

Crée des champs personnalisés d'entreprise.

Espace de noms :  WebSvcCustomFields
Assembly :  ProjectServerServices (dans ProjectServerServices.dll)

Syntaxe

'Déclaration
<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 _
)
'Utilisation
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
)

Paramètres

  • validateOnly
    Type : System.Boolean

    Si true, valider les CustomFieldDataSet sans créer les champs personnalisés.

  • autoCheckIn
    Type : System.Boolean

    Si true, vérification dans les champs personnalisés après leur création.

Remarques

Pour obtenir des descriptions des propriétés qui sont utilisées pour créer un champ personnalisé, voir CustomFieldDataSet.CustomFieldsRow.

Avertissement

La méthode CreateCustomFields et la méthode de CreateCustomFields2 , ainsi que Project Web App, vous permettent de créer un champ personnalisé de projet d'entreprise de type indicateur et la valeur du champ personnalisé soit contrôlée par un flux de travail. Toutefois, les flux de travail Project Server ne peut pas contrôler les champs personnalisés indicateur. Vous ne devez pas définir les champs personnalisés de projet de type indicateur pour le contrôle de flux de travail.

Conseil

La méthode CreateCustomFields ignore les paramètres régionaux de l'ordinateur qui exécute Project Server. La méthode CreateCustomFields2 peut utiliser les valeurs dépendant des paramètres régionaux pour les formules qui donnent des champs personnalisés et des indicateurs graphiques.

Autorisations Project Server

Autorisation

Description

ManageEnterpriseCustomFields

Permet à un utilisateur de modifier les définitions des champs personnalisés d'entreprise et les valeurs de table de choix. Autorisation globale.

Exemples

L'exemple suivant utilise CustomFieldWS comme nom d'une référence web au service web Custom Fields (https://ServerName/ProjectServerName/_vti_bin/psi/CustomFields.asmx). Le Gestionnaire d'événements btnCustomField_Click est pour un bouton dans une application Windows Form, tel que LoginDemo dans le téléchargement du Kit de développement logiciel 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;
}

Voir aussi

Référence

CustomFields classe

CustomFields - Membres

WebSvcCustomFields - Espace de noms

CreateCustomFields2(CustomFieldDataSet, Boolean, Boolean)

Autres ressources

Local and Enterprise Custom Fields

How to: Create an Enterprise Custom Field