Freigeben über


CustomFields.CreateCustomFields-Methode

Benutzerdefinierte Felder für Enterprise erstellt.

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

Syntax

'Declaration
<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 _
)
'Usage
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
)

Parameter

  • validateOnly
    Typ: System.Boolean

    Wenn true, überprüfen Sie die CustomFieldDataSet ohne die benutzerdefinierten Feldern zu erstellen.

  • autoCheckIn
    Typ: System.Boolean

    Wenn true, Kontrollkästchen in den benutzerdefinierten Feldern, nachdem sie erstellt wurden.

Hinweise

Beschreibungen der Eigenschaften, die zum Erstellen eines benutzerdefinierten Felds verwendet werden, finden Sie unter CustomFieldDataSet.CustomFieldsRow.

Warnung

Die CreateCustomFields -Methode und die CreateCustomFields2 -Methode sowie Project Web App, alle ermöglichen das Erstellen eines Enterprise-Projekt benutzerdefinierten Felds vom Typ Flag, und legen Sie das benutzerdefinierte Feld Workflow gesteuert werden. Project Server-Workflows können jedoch nicht benutzerdefinierte Attributfelder steuern. Sie sollten nicht benutzerdefinierte Projektfelder vom Typ Flag für Workflow-Steuerelement festlegen.

Tipp

Die CreateCustomFields -Methode wird dem Gebietsschema des Computers mit Project Server ignoriert. Die CreateCustomFields2 -Methode können Gebietsschema abhängiger Werte für Formeln, die benutzerdefinierte Felder und grafische Indikatoren zu berechnen.

Project Server-Berechtigungen

Berechtigung

Beschreibung

ManageEnterpriseCustomFields

Ermöglicht einem Benutzer das Ändern der Definitionen von benutzerdefinierten Enterprise-Felder und Nachschlagetabellen, Werte. Die globale Berechtigung.

Beispiele

Das folgende Beispiel verwendet die CustomFieldWS als den Namen eines Webverweises zum Custom Fields -Webdienst (https://ServerName/ProjectServerName/_vti_bin/psi/CustomFields.asmx). Der btnCustomField_Click -Ereignishandler ist für eine Schaltfläche in einer Windows Forms-Anwendung, wie beispielsweise LoginDemo in den Project-SDK-Download.

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;
}

Siehe auch

Referenz

CustomFields Klasse

CustomFields-Member

WebSvcCustomFields-Namespace

CreateCustomFields2(CustomFieldDataSet, Boolean, Boolean)

Weitere Ressourcen

Local and Enterprise Custom Fields

How to: Create an Enterprise Custom Field