使用rally应用程序sdk创建/更新用户故事 [英] create/update user story using rally app sdk

查看:96
本文介绍了使用rally应用程序sdk创建/更新用户故事的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

到目前为止,我一直在使用Rally App SDK查询数据存储,但是这次我必须使用js sdk更新一个故事。我尝试查找一些示例代码的示例,演示如何使用App SDK在Rally中更新/添加值。我一直在使用Ruby Rally API进行CRUD操作,但是从来没有真正使用应用程序sdk。

Until now, I have been querying the data stores using Rally App SDK, however, this time I have to update a story using the js sdk. I tried looking up for examples for some sample code that demonstrates how the App SDK can be used to update/add values in Rally. I have been doing CRUD operations using Ruby Rally API but never really did it with the app sdk.

任何人都可以提供一些示例代码或任何可以查看的链接?

Can anyone provide some sample code or any link to where I could check it out?

谢谢


Thanks

推荐答案

请参阅此帮助文档更新和创建虚构。以下是一个例子 - 一个更新一个故事,另一个创建一个故事。在UI方面没有太大的进展:请启用DevTools控制台以查看console.log输出。

See this help document on updating and creating reocrds. Below are examples - one updates a story, the other creates a story. There is not much going on in terms of UI: please enable DevTools console to see console.log output.

以下是更新用户故事缺陷集合的示例:

Here is an example of updating a Defect Collection on a User Story:

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',

    launch: function() {
        console.log("launch");
       Rally.data.ModelFactory.getModel({
            type: 'User Story',
            success: this._onModelRetrieved,
            scope: this
        });
    },
    _onModelRetrieved: function(model) {
        console.log("_onModelRetrieved");
        this.model = model;
        this._readRecord(model);
    },

     _readRecord: function(model) {
        var id = 13888228557;
        console.log("_readRecord");
        this.model.load(id, {
            fetch: ['Name', 'Defects'],
            callback: this._onRecordRead,
            scope: this
        });
    },

    _onRecordRead: function(record, operation) {
        console.log('name...', record.get('Name'));
        console.log('defects...', record.get('Defects'));
        if(operation.wasSuccessful()) {
            //load store first by passing additional config to getCollection method
             var defectStore = record.getCollection('Defects', {
                autoLoad: true,
                listeners: { load: function() {
                    //once loaded now do the add and sync
                    defectStore.add({'_ref':'/defect/13303315495'});
                    defectStore.sync({
                        callback: function() {
                            console.log('success');
                        }
                    });
                }}
            });
        }

    }, 
});

以下是创建用户故事,设置项目和进行排程的示例: p>

Here is an example of creating a user story, setting a project and scheduling for an iteration:

Ext.define('CustomApp', {
    extend: 'Rally.app.TimeboxScopedApp',
    componentCls: 'app',
    scopeType: 'iteration',
    comboboxConfig: {
        fieldLabel: 'Select an Iteration:',
        labelWidth: 100,
        width: 300
    },

    addContent: function() {   
        this._getIteration();
    },

    onScopeChange: function() {
        this._getIteration();
    },


    _getIteration: function() {
            var iteration = this.getContext().getTimeboxScope().record.get('_ref');
            console.log('iteration',iteration);

            if (!this.down('#b2')) {
                 var that = this;
                 var cb = Ext.create('Ext.Container', {

                items: [
                    {
                        xtype  : 'rallybutton',
                        text      : 'create',
                        id: 'b2',
                        handler: function() {
                            that._getModel(iteration); 
                        }
                    }

                    ]
                });
            this.add(cb);
            }
        },


    _getModel: function(iteration){
            var that = this;
            Rally.data.ModelFactory.getModel({
                type: 'UserStory',
                context: {
                    workspace: '/workspace/12352608129'
                },
                success: function(model) {  //success on model retrieved
                    that._model = model;
                    var story = Ext.create(model, {
                        Name: 'story 777',
                        Description: 'created via appsdk2'
                    });
                    story.save({
                        callback: function(result, operation) {
                            if(operation.wasSuccessful()) {
                                console.log("_ref",result.get('_ref'), ' ', result.get('Name'));
                                that._record = result;
                                that._readAndUpdate(iteration);
                            }
                            else{
                                console.log("?");
                            }
                        }
                    });
                }
            });
        },

        _readAndUpdate:function(iteration){
            var id = this._record.get('ObjectID');
            console.log('OID', id);
            this._model.load(id,{
                fetch: ['Name', 'FormattedID', 'ScheduleState', 'Iteration'],
                callback: function(record, operation){
                    console.log('ScheduleState prior to update:', record.get('ScheduleState'));
                    console.log('Iteration prior to update:', record.get('Iteration'));
                    record.set('ScheduleState','In-Progress');
                    record.set('Iteration', iteration);
                    record.set('Project', '/project/12352608219')
                    record.save({
                        callback: function(record, operation) {
                            if(operation.wasSuccessful()) {
                                console.log('ScheduleState after update..', record.get('ScheduleState'));
                                console.log('Iteration after update..', record.get('Iteration'));
                            }
                            else{
                                console.log("?");
                            }
                        }
                    });
                }
            })
        }
});

这篇关于使用rally应用程序sdk创建/更新用户故事的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆