Rally API:如何创建用户故事并将其与功能相关联?

RallyAPI: How do I create a UserStory and relate it to a Feature?

因此,我正在为 Rally 中的 'flesh out' 新客户编写一个应用程序。它将有创建模板的工具,首先添加:

  1. 添加一个'Feature'
  2. 在 'Feature' 下添加 'UserStories'
  3. 在 'UserStories' 下单独添加 'Tasks'

我已经弄清楚了第 1 步。但是如何关联我无法从可怕而神秘的文档中弄清楚的任何内容。这是我目前所拥有的:

 var FeatureToAdd = _featureRepository.GetFeatures().FirstOrDefault(x => x.Id == 2);          

        // Initialize the REST API. You can specify a web service version if needed in the constructor.
        RallyRestApi restApi = GetRallyRestApi();

        //Create an item
        DynamicJsonObject toCreate = new DynamicJsonObject();
        toCreate["Name"] = FeatureToAdd.Name;
        toCreate["Description"] = FeatureToAdd.Description;

        // important to which this belongs, but I no ID I ever use works
        //toCreate["Workspace"] = "/workspace/" + WebConfigurationManager.AppSettings["RallyAPIWorkspaceID"];
        //toCreate["Project"] = "/project/XXXXX";
        //toCreate["Iteration"] = "/iteration/XXXXXX";

        // create feature - feature is under PortfolioItem
        CreateResult createFeatureResult = restApi.Create("PortfolioItem/Feature", toCreate);

        // scrape ID off the end of the reference
        var pureId = createFeatureResult.Reference.Substring(createFeatureResult.Reference.LastIndexOf('/') + 1);

        // add UserStories
        foreach (UserStory u in FeatureToAdd.UserStories)
        {
            toCreate = new DynamicJsonObject();
            toCreate["Name"] =u.Name;
            toCreate["Description"] = u.Description;
            toCreate["WorkProduct"] = "PortfolioItem/Feature/" + pureId;
            //toCreate["WorkProduct"] = createFeatureResult.Reference;<- tried this too

            // hierarchicalrequirement = UserStory
            CreateResult createUserStoryResult = restApi.Create("hierarchicalrequirement", toCreate);
        }

运行 这会创建两者,但不会发生关联。我收到警告:

Ignored JSON element hierarchicalrequirement.WorkProduct during processing of this request.

为什么它会随意忽略这个?...

它忽略了 WorkProduct,因为 WorkProduct 不是 HierarchicalRequirement 上的有效字段。您要指定以设置故事的特征父项的字段称为 PortfolioItem。

toCreate["PortfolioItem"] = Ref.GetRelativeRef(createFeatureResult.Reference);

此外,对象关系在 WSAPI 中指定为 refs (/type/id),因此您可以直接从 createFeatureResult 传入引用。

抱歉,您发现 api 令人沮丧。它肯定有一些奇怪的暗角,但是一旦你稍微使用它并了解各种域对象之间的关系,我想你会发现它非常强大且一致。