LookupTable.CreateLookupTablesMultiLang メソッド
複数の言語のユーザー設定フィールド参照テーブルおよび対応するコード マスクを作成します。
名前空間: WebSvcLookupTable
アセンブリ: ProjectServerServices (ProjectServerServices.dll 内)
構文
'宣言
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/LookupTable/CreateLookupTablesMultiLang", 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 CreateLookupTablesMultiLang ( _
ltds As LookupTableMultiLangDataSet, _
validateOnly As Boolean, _
autoCheckIn As Boolean _
)
'使用
Dim instance As LookupTable
Dim ltds As LookupTableMultiLangDataSet
Dim validateOnly As Boolean
Dim autoCheckIn As Boolean
instance.CreateLookupTablesMultiLang(ltds, _
validateOnly, autoCheckIn)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/LookupTable/CreateLookupTablesMultiLang", 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 CreateLookupTablesMultiLang(
LookupTableMultiLangDataSet ltds,
bool validateOnly,
bool autoCheckIn
)
パラメーター
ltds
型: WebSvcLookupTable.LookupTableMultiLangDataSetLookupTableMultiLangDataSetは、データ テーブル内のデータを格納します。
validateOnly
型: System.Booleanのみ検証を作成しないでください。
autoCheckIn
型: System.Boolean場合はtrueを作成した後でチェックします。
注釈
タイプのCost、 Date、 Duration、 Numberなどの非テキスト参照テーブルを作成する場合は、プログラムで、コード マスクを作成する必要があります。Project Web App [新しい参照テーブル] ページで、文字列以外の参照テーブルのコード マスクを非表示になりますが、 CreateLookupTableへの呼び出しのコード マスクが作成されます。例」には、期間のルックアップ テーブルを作成するサンプル コードが含まれます。例については、 Using the ProjTool Test Applicationを参照してください。
CreateLookupTablesの前のイベントは、 LookupTableEventReceiver.OnCreatingであり、後のイベントは、 OnCreated。
たとえば、 OnCreatingイベント ハンドラーでは、 eパラメーターは、 LookupTableMultiLanguageDataSetオブジェクトを公開します。次のコードは、 LookupTableLanguages、 LookupTables、 LookupTableValuesなどの別のテーブルからデータを取得する方法の例を示します。
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
public class LookupTableEvents : LookupTableEventReceiver
{
public override void OnCreating(PSLibrary.PSContextInfo contextInfo,
LookupTablePreEventArgs e)
{
int lutLanguage =
(int)e.LookupTableInformation.LookupTableLanguages.Rows[0]["LCID"];
Guid lutMultiUid =
(Guid)e.LookupTableInformation.LookupTables.Rows[0]["LT_UID"];
string lutMultiValue =
(string)e.LookupTableInformation.LookupTableValues.Rows[0]["LT_VALUE_TEXT"];
. . .
}
イベント ハンドラーでデータセットを使用するのには、 Microsoft.Office.Project.Schema.dllアセンブリへの参照に設定します。詳細については、 How to: Write and Debug a Project Server Event Handlerを参照してください。
注意
PSI を使用して数値参照テーブルを作成または更新する場合、小数点以下が 2 桁を超える値を追加しないでください。
CreateLookupTablesMultiLangメソッドでは、2 つ以上の小数点以下の桁数を持つ数値を保存することができます。番号のルックアップ テーブルを使用するカスタム フィールドを作成するときにProject Professional 2010数値ユーザー設定フィールドに 2 つの小数点以下の桁数で四捨五入し、値を選択」ドロップ ダウン リストの文字列として表示します。値を選択するとProject Professional 2010数値に文字列を変換します。プロセスはのみ 2 桁の数値が存在しないため、エラーを示します。
プロジェクト サーバーのアクセス許可
権限 |
説明 |
---|---|
エンタープライズ ユーザー設定フィールドと参照テーブル値の定義を変更することができます。グローバル アクセス権。 |
例
次のコード フラグメント型期間期間 LUT のテストという名前のルックアップ テーブルを作成します。LookupTableWSは、LookupTable Web サービスへの参照は、任意の名前です。コードをテストするには、サンプル コンソール アプリケーションを追加します。詳細については、 Project 2013 での ASMX ベースのコード サンプルの前提条件を参照してください。
コメントには、 CreateLookupTablesMultiLangへの呼び出しの後に、発行済みデータベース内の変更テーブルの名前が含まれます。
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
private const string LOOKUPTABLEWEBSERVICE = "_vti_bin/PSI/LookupTable.asmx";
private string baseUrl = "https://ServerName/ProjectServerName"/
private static WebSvcLookupTable.LookupTable lookupTable =
new WebSvcLookupTable.LookupTable();
LookupTableWS.LookupTableMultiLangDataSet lutMultiDS =
new LookupTableWS.LookupTableMultiLangDataSet();
// Initialize the LookupTable Web service for Windows logon.
lookupTable.Url = baseUrl + LOOKUPTABLEWEBSERVICE;
lookupTable.Credentials = CredentialCache.DefaultCredentials;
. . .
private void btnCreateNonTextLUT_Click(object sender, EventArgs e)
{
LookupTableWS.LookupTableMultiLangDataSet lutMultiDS =
new LookupTableWS.LookupTableMultiLangDataSet();
// Create the main LookupTable row in MSP_LOOKUP_TABLES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTablesRow lutMainRow =
lutMultiDS.LookupTables.NewLookupTablesRow();
lutMainRow.LT_UID = Guid.NewGuid();
lutMainRow.LT_FILL_ALL_LEVELS = false;
lutMainRow.LT_PRIMARY_LCID = 1033;
lutMainRow.LT_SORT_ORDER_ENUM = (byte)PSLibrary.LookupTables.SortOrder.Ascending;
lutMainRow.LT_NAME = "Test Duration LUT";
lutMultiDS.LookupTables.Rows.Add(lutMainRow);
// Create the 1-level mask structure in MSP_LOOKUP_TABLE_MASK_STRUCTURES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTableMaskStructuresRow lutMaskStructureRow =
lutMultiDS.LookupTableMaskStructures.NewLookupTableMaskStructuresRow();
lutMaskStructureRow.LT_UID = lutMainRow.LT_UID;
lutMaskStructureRow.LT_MASK_STRUCT_LENGTH = (int)PSLibrary.LookupTables.ANY_LENGTH_SEQUENCE;
lutMaskStructureRow.LT_MASK_STRUCT_LEVEL = 1;
lutMaskStructureRow.LT_MASK_STRUCT_TYPE_ENUM = (byte)PSLibrary.LookupTables.MaskSequence.DURATION;
lutMultiDS.LookupTableMaskStructures.Rows.Add(lutMaskStructureRow);
// Create the 1-level mask value in MSP_LOOKUP_TABLE_MASK_VALUES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTableMaskValuesRow lutMaskValueRow =
lutMultiDS.LookupTableMaskValues.NewLookupTableMaskValuesRow();
lutMaskValueRow.LCID = 1033;
lutMaskValueRow.LT_UID = lutMainRow.LT_UID;
lutMaskValueRow.LT_MASK_STRUCT_LEVEL = 1;
lutMaskValueRow.LT_MASK_VALUE_SEPARATOR = ".";
lutMultiDS.LookupTableMaskValues.Rows.Add(lutMaskValueRow);
// Create the value structure in MSP_LOOKUP_TABLE_STRUCTURES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTableStructuresRow lutStructureRow =
lutMultiDS.LookupTableStructures.NewLookupTableStructuresRow();
lutStructureRow.LT_UID = lutMainRow.LT_UID;
lutStructureRow.LT_STRUCT_UID = Guid.NewGuid();
lutMultiDS.LookupTableStructures.Rows.Add(lutStructureRow);
// Create values (one value per LCID) in MSP_LOOKUP_TABLE_VALUES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTableValuesRow lutValueRow =
lutMultiDS.LookupTableValues.NewLookupTableValuesRow();
lutValueRow.LCID = 1033;
lutValueRow.LT_VALUE_DESC = "This is root level A";
lutValueRow.LT_VALUE_DUR = 30;
lutValueRow.LT_VALUE_DUR_FMT = (byte)PSLibrary.Task.DurationFormat.Hour;
lutValueRow.LT_STRUCT_UID = lutStructureRow.LT_STRUCT_UID;
lutMultiDS.LookupTableValues.Rows.Add(lutValueRow);
// Create the lookup table.
bool validateOnly = false;
bool autoCheckIn = true;
lookupTable.CreateLookupTablesMultiLang(lutMultiDS, validateOnly, autoCheckIn);
}
関連項目
参照先
その他の技術情報
How to: Write and Debug a Project Server Event Handler