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


Метод LookupTable.UpdateLookupTables

Создание, изменение или удаление данных в таблицы подстановки для настраиваемых полей. UpdateLookupTables создает таблицы подстановки и соответствующей маски кода, если LookupTableDataSet включает в себя новые таблицы подстановки, выполняется изменение существующей таблицы подстановки и удаляет таблицы подстановки, не входящих в LookupTableDataSet.

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

Синтаксис

'Декларация
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/LookupTable/UpdateLookupTables", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/",  _
    ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/",  _
    Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Sub UpdateLookupTables ( _
    ltds As LookupTableDataSet, _
    validateOnly As Boolean, _
    autoCheckIn As Boolean, _
    language As Integer _
)
'Применение
Dim instance As LookupTable
Dim ltds As LookupTableDataSet
Dim validateOnly As Boolean
Dim autoCheckIn As Boolean
Dim language As Integer

instance.UpdateLookupTables(ltds, validateOnly, _
    autoCheckIn, language)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/LookupTable/UpdateLookupTables", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/", 
    ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/", 
    Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public void UpdateLookupTables(
    LookupTableDataSet ltds,
    bool validateOnly,
    bool autoCheckIn,
    int language
)

Параметры

  • validateOnly
    Тип: System.Boolean

    Только проверить, не обновляются.

  • autoCheckIn
    Тип: System.Boolean

    Если true, возврат после обновления.

Замечания

UpdateLookupTables обновляет данные в существующей таблицы подстановки. Для создания или удаления таблицы подстановки, можно также использовать CreateLookupTables и DeleteLookupTables.

Чтобы удалить значения таблицы подстановки, сначала метод ReadLookupTablesByUids используется для получения завершения LookupTableDataSetи затем использовать метод LookupTableDataSet.LookupTableTrees.Rows[index].Delete , который помечает строку для удаления. В разделе Пример.

Для обновления одного или нескольких таблиц подстановки, используйте ReadLookupTablesByUids , чтобы получить все данные таблицы, необходимые для каждой таблицы подстановки и измените возвращенные LookupTableDataSet для параметра ltds в UpdateLookupTables.

Можно также использовать для параметра xmlFilterReadLookupTables с пустая ссылка (Nothing в Visual Basic) . В следующем примере lookupTable — это экземпляр класса LookupTableWebService.LookupTable и lookupTableDataSet является экземпляром LookupTableDataSet.

bool autoCheckOut = false;
string xmlFilter = null;
int language = 0;
lookupDataSet = lookupTable.ReadLookupTables(xmlFilter, autoCheckOut, language);
// Add, delete, or modify lookup table rows 
bool validateOnly = false;
autoCheckOut = true;
lookupTable.UpdateLookupTables(lookupTableDataSet, validateOnly, autoCheckOut, language);
// Call lookupTable.CheckInLookupTables

Примечание

При использовании ReadLookupTables и укажите значения xmlfilter , могут быть получены все таблицы, необходимые для обновления. В этом случае UpdateLookupTables приводит к общие необработанное исключение.

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

При использовании PSI для создания или обновления номеров таблицы подстановки, не добавляйте значения, которые имеют более чем двумя десятичными знаками.

Метод UpdateLookupTables позволяет сохранить номер с более чем двумя десятичными знаками. Для создания настраиваемого поля, которое использует таблицу подстановки номеров Project профессиональный 2010 округляет номеров значения настраиваемого поля до двух знаков после запятой; и отображает их как строки в раскрывающемся списке выберите значение. При выборе значения Project профессиональный 2010 преобразует обратно на номер строки. Процесс отображается сообщение об ошибке, поскольку числовое значение с помощью двух знаков после запятой; не существует.

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

Разрешение

Описание

ManageEnterpriseCustomFields

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

Примеры

The following example reads a specified lookup table and deletes a specified row in the table. The lookupTable parameter in the DeleteLookupTableRow sample method is a LookupTable object with valid Url and Credentials properties. The language parameter is an integer for the LCID; for example, 1033 is U.S. English. LookupTableWebSvc is an arbitrary reference name to the LookupTable.asmx Web service. For more information about using the code sample, see Необходимые условия для образцов кода на основе ASMX в Project 2013.

public string DeleteLookupTableRow(SvcLookupTable.LookupTable lookupTable,
    Guid lutGuid, int row, int language)
{
    string result = "";
    string fmtResult = "Lookup table: {0}. ";
    string tableName = "[unknown]";
    string rowName = "";

    SvcLookupTable.LookupTableDataSet lutDs = new SvcLookupTable.LookupTableDataSet();

    Guid[] lutList = new Guid[] { lutGuid };
    bool autoCheckOut = false;

    lutDs = lookupTable.ReadLookupTablesByUids(lutList, autoCheckOut, language);
    int numRows = lutDs.LookupTableTrees.Rows.Count;

    foreach (DataRow lutRow in lutDs.LookupTables)
    {
        if ((Guid)lutRow[lutDs.LookupTables.LT_UIDColumn] == lutGuid)
        {
            tableName = (string)lutRow[lutDs.LookupTables.LT_NAMEColumn];
            break;
        }
    }

    if (row < numRows)
    {
        rowName = lutDs.LookupTableTrees[row].LT_VALUE_TEXT;
        lutDs.LookupTableTrees.Rows[row].Delete();

        lookupTable.CheckOutLookupTables(lutList);
        bool validateOnly = false;
        lookupTable.UpdateLookupTables(lutDs, validateOnly, autoCheckOut, language);
        bool forceCheckIn = false;
        lookupTable.CheckInLookupTables(lutList, forceCheckIn);

        fmtResult += "Row {1} deleted: {2}";
        result = string.Format(fmtResult, tableName, row, rowName);
    }
    else
    {
        fmtResult += "Requested row {1} greater than number of rows {2}.";
        result = string.Format(fmtResult, tableName, row, numRows);
    }
    return result;
}

См. также

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

LookupTable класс

Элементы LookupTable

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

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

Locale ID (LCID) Chart

Walkthrough: Creating a Hierarchical Lookup Table