2

new_servingtime というエンティティにあるオプションセット フィールド (new_contractserving) にオプション ラベルとオプション値を追加しようとしています。これが正しく行われているかどうかはわかりませんが、サーバーが 400 Bad リクエストをスローします。何が問題なのですか?!

var entity = {

                "new_contractserving": String(OptionValue),
                "new_contractserving@OData.Community.Display.V1.FormattedValue": String(OptionText)
            };

            var reqJSON = new XMLHttpRequest();
            reqJSON.open("POST", url + "/api/data/v8.2/new_servingtimes", false);
            reqJSON.setRequestHeader("OData-MaxVersion", "4.0");
            reqJSON.setRequestHeader("OData-Version", "4.0");
            reqJSON.setRequestHeader("Accept", "application/json");
            reqJSON.setRequestHeader("Content-Type", "application/json; charset=utf-8");
            reqJSON.onreadystatechange = function () {
                if (this.readyState === 4) {
                    reqJSON.onreadystatechange = null;
                    if (this.status === 204) {
                        var uri = this.getResponseHeader("OData-EntityId");
                        var regExp = /\(([^)]+)\)/;
                        var matches = regExp.exec(uri);
                        var newEntityId = matches[1];
                    } else {
                        Xrm.Utility.alertDialog(this.statusText + ": Third Request!");
                        return;
                    }
                }
            };
            reqJSON.send(entity);

4

2 に答える 2

2

InsertOptionValueアクションを使用して、エンティティ内の既存の選択リスト属性に新しいオプションを追加する必要があります。

CRM REST Builder は、このようなリクエストを構成してテストするための最良の選択です。

作成したリクエストを使用してレコードに属性値を設定できますが、まだ不完全です。このブログを読んで、webapi アクションを実行する方法を理解してください。

于 2018-09-04T22:10:52.067 に答える