Поделиться через


Метод CustomFields.CreateCustomFields

Создает корпоративных настраиваемых полей.

Пространство имен:  WebSvcCustomFields
Сборка:  ProjectServerServices (в ProjectServerServices.dll)

Синтаксис

'Декларация
<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 _
)
'Применение
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
)

Параметры

  • validateOnly
    Тип: System.Boolean

    Если trueпроверки CustomFieldDataSet без создания настраиваемых полей.

  • autoCheckIn
    Тип: System.Boolean

    Если true, возврат настраиваемого поля после их создания.

Замечания

Описание свойств, которые используются для создания настраиваемого поля в разделе CustomFieldDataSet.CustomFieldsRow.

Предупреждение

Метод CreateCustomFields и метод CreateCustomFields2 , а также Project Web App все позволяют создать проект корпоративное настраиваемое поле типа флаг и задать настраиваемое поле должно быть управляются рабочего процесса. Тем не менее рабочих процессов Project Server не может управлять настраиваемые поля флага. Не следует устанавливать project настраиваемых полей типа флаг для элемента управления рабочего процесса.

Совет

Метод CreateCustomFields игнорирует национальную настройку компьютера с Project Server. Метод CreateCustomFields2 можно использовать значения зависит от языкового стандарта для по формуле, настраиваемые поля и графические индикаторы.

Разрешения Project Server

Разрешение

Описание

ManageEnterpriseCustomFields

Позволяет пользователям изменять определения корпоративных настраиваемых полей и значения таблицы подстановки. Глобальное разрешение.

Примеры

В следующем примере используется CustomFieldWS как имя веб-ссылки на веб-службу Custom Fields (https://ServerName/ProjectServerName/_vti_bin/psi/CustomFields.asmx). — Это btnCustomField_Click обработчик событий для кнопки в приложении формы Windows Forms, такие как LoginDemo в загружаемый пакет SDK для 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;
}

См. также

Справочные материалы

CustomFields класс

Элементы CustomFields

Пространство имен WebSvcCustomFields

CreateCustomFields2(CustomFieldDataSet, Boolean, Boolean)

Другие ресурсы

Local and Enterprise Custom Fields

How to: Create an Enterprise Custom Field