Как установить пользовательское значение поля WebLink при отправке дефекта Rally rest .net api? - PullRequest
3 голосов
/ 29 марта 2012

Я настроил настраиваемое поле веб-ссылки для дефекта в Rally.И я хотел бы использовать Rally rest .net api для отправки нового дефекта со значением настраиваемого поля веб-ссылки в соответствии с Rally.

К сожалению, экземпляру веб-ссылки требуется значение LinkID и DisplayString, я не знаю, как инициироватьЭкземпляр weblink для установки в поле дефекта.

Я также попытался установить объект DynamicJsonObject, который поддерживается Rally rest .net api, в это поле, но все равно не получилось.

Снимок экрана отладки enter image description here

Пожалуйста, помогите!

Отредактировано:

Я попытался опубликовать дефект с образцомкод как показано ниже:

        var api = new RallyRestApi("<myusername>", "<mypassword>", "https://community.rallydev.com");

        var defect = new DynamicJsonObject();
        defect["Name"] = "Sample Defect";
        defect["Description"] = "Test posting defect with weblink type field";
        defect["Project"] = "https://trial.rallydev.com/slm/webservice/1.29/project/5839639589.js";
        defect["SubmittedBy"] = "https://trial.rallydev.com/slm/webservice/1.29/user/5797741589.js";
        defect["ScheduleState"] = "In-Progress";
        defect["State"] = "Open";
        defect["Severity"] = "Major Problem";
        defect["Priority"] = "High Attention";
        defect["CustWebLink"] = new DynamicJsonObject(new Dictionary<string, object> 
        {
            {"DisplayString", "abc"},
            {"LinkID", "123"}
        });

        CreateResult creationResult = api.Create("defect", defect);

И теперь дефект может быть опубликован в Rally, но не имеет значения CustWebLink.При исследовании я вижу, что поле CustWebLink было проигнорировано при сериализации запроса на публикацию.

  Rally.RestApi Post Response: {"CreateResult": {"_rallyAPIMajor": "1", "_rallyAPIMinor": "29", "Errors": [], "Warnings": ["Ignored JSON element defect.CustWebLink during processing of this request."],.....}

1 Ответ

3 голосов
/ 01 апреля 2012

Это относительно просто, вам просто нужно создать отдельный DynamicJsonObject для Weblink и присвоить ему значения для атрибутов LinkID и DisplayString.Затем назначьте объект Weblink в качестве поля для дефекта.Вот простой пример:

    //Set our Workspace and Project scopings

    String workspaceRef = "/workspace/5912034914";
    String projectRef = "/project/5912035004";

    DynamicJsonObject myDefect = new DynamicJsonObject();
    DynamicJsonObject myWeblink = new DynamicJsonObject();

    // Populate the Weblink
    myWeblink["LinkID"] = "123456";
    myWeblink["DisplayString"] = "External Image Link";

    // Populate the Defect
    myDefect["Name"] = "My Defect";
    myDefect["Priority"] = "Normal";
    myDefect["Workspace"] = workspaceRef;
    myDefect["Project"] = projectRef;
    myDefect["zWeblinkField"] = myWeblink;

    CreateResult createDefect = restApi.Create("Defect", myDefect);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...