Compartilhar via


LookupTable.UpdateLookupTables method

Cria, modifica ou exclui os dados nas tabelas de pesquisa do campo personalizado. UpdateLookupTables cria tabelas de pesquisa e máscaras de código correspondente, se o LookupTableDataSet inclui novas tabelas de pesquisa, modifica as tabelas de pesquisa existente e exclui as tabelas de pesquisa que não estão no LookupTableDataSet.

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

Syntax

'Declaração
<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 _
)
'Uso
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
)

Parâmetros

  • autoCheckIn
    Type: System.Boolean

    Se true, check-in após a atualização.

  • language
    Type: System.Int32

    Identificação de localidade (LCID).

Comentários

UpdateLookupTables atualiza os dados em tabelas de pesquisa existente. Para criar ou excluir tabelas de pesquisa, você também pode usar CreateLookupTables e DeleteLookupTables.

Para excluir um valor de tabela de pesquisa, primeiro usar o método ReadLookupTablesByUids para obter uma completa LookupTableDataSete, em seguida, use o método LookupTableDataSet.LookupTableTrees.Rows[index].Delete que marca a linha para exclusão. Consulte a seção de exemplo.

Para atualizar um ou mais tabelas de pesquisa, use ReadLookupTablesByUids para obter todas as tabelas de dados necessários para cada tabela de pesquisa e, em seguida, modifique o retornado LookupTableDataSet a ser usado para o parâmetro ltds em UpdateLookupTables.

Você também pode usar ReadLookupTables com a null reference (Nothing in Visual Basic) para o parâmetro xmlFilter . No exemplo a seguir, lookupTable é uma instância da classe LookupTableWebService.LookupTable e lookupTableDataSet é uma instância de um 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

Dica

Se você usar ReadLookupTables e especifique os valores de xmlfilter , talvez não obtenha todas as tabelas necessárias para uma atualização. Nesse caso, UpdateLookupTables resulta em uma exceção sem tratamento geral.

Aviso

Quando você usa a PSI para criar ou atualizar uma tabela de pesquisa de número, não adicione valores que têm mais de duas casas decimais.

O método UpdateLookupTables lhe permite salvar um número com mais de duas casas decimais. Quando você cria um campo personalizado que usa a tabela de pesquisa de número, Project Professional 2010 Arredonda os valores de campo personalizado de número para duas casas decimais e mostra-las como sequências de caracteres na lista suspensa para selecionar um valor. Quando você seleciona um valor, Project Professional 2010 converte a sequência de volta para um número. O processo mostra um erro, porque o valor numérico com apenas duas casas decimais não existe.

Permissões do Project Server

Permissão

Descrição

ManageEnterpriseCustomFields

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

Examples

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 Prerequisites for ASMX-Based Code Samples.

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

Ver também

Referência

LookupTable class

LookupTable members

WebSvcLookupTable namespace

Outros recursos

Locale ID (LCID) Chart

Walkthrough: Creating a Hierarchical Lookup Table