1

CRM JavaScript SDKを使用して、値ではなく名前をフィールドから取得するにはどうすればよいですか?
値はSDKで取得できます。

SDK.REST.retrieveRecord(...);
    account.completePopulateAccountFields = function (account) {
    var type = account["optionsetname"].Value;
    if (type != null)
        //perform action

この呼び出しでは、値のみが返されます。
取得した値で照会できるオプションセットセットがOrganizationData.svcにありますか?

4

3 に答える 3

2

ラベル名を取得するには、metadataserviceを使用する必要があります。これについてはコードを確認してください。

C#:

RetrieveAttributeRequest request = new RetrieveAttributeRequest {
   EntityLogicalName = entityName,
   LogicalName = attributeName,
   RetrieveAsIfPublished = true
};

RetrieveAttributeResponse response = (RetrieveAttributeResponse)service.Execute(request);

PicklistAttributeMetadata metadata = (PicklistAttributeMetadata)response.AttributeMetadata;

OptionMetadata[] optionList = metadata.OptionSet.Options.ToArray();

foreach (OptionMetadata option in optionList) {
    //option.Value - Value of option
    //option.Label.UserLocalizedLabel.Label - Label name of that value
}

値を知っているだけでフォームにないラベルテキストを知りたい場合は、Javascriptでこれを使用してください。

オプションセットのテキストを取得したいフォームにいる場合は、次のようにするだけです。

Xrm.Page.getAttribute("optionsetfieldname").getText();
于 2013-02-27T10:24:09.537 に答える
1

同じ名前のオプションセットをContactに追加し、読み取り専用にして、親アカウントから取得した値を入力しました。
要件は、連絡先に親アカウントタイプを表示することでした。JavaScript
でオプションセット値の名前を取得する方法がまだわかりません。

于 2013-02-28T07:30:14.313 に答える
0

最近CRMで何かが変更されたため(?)、その結果、Xrm.Page.getAttribute( "optionsetfieldname")。getText()を直接呼び出すとエラーが発生します。2段階のアプローチを使用します。

var sOptionsetAttribute = Xrm.Page.getAttribute("optionsetfieldname");
var sOptionsetValueName = sOptionsetAttribute.getText();
于 2015-02-11T11:12:28.537 に答える