Гидратные теги в Lookback API

Я пытаюсь получить теги, связанные с дефектом, используя API обратного просмотра. Кажется, что бы я ни пытался, я никогда не смогу заставить метки увлажняться. Есть идеи?

По возвращению запроса я получаю следующие данные:

ScheduleState: "Backlog"
Tags: Array[1]
   0: 3230012667
   length: 1
   __proto__: Array[0]

Мой код запроса:

Ext.create('Rally.data.lookback.SnapshotStore', {
        fetch: ['Name','ScheduleState', 'Project', 'Tags'],
        autoLoad: true,
        listeners: {
            load: function(store, records) {
                console.log(store);
            }
        },
        hydrate: ['Tags'],
        fields: ['Name','ScheduleState', 'Project', 'Tags'],
        filters: [
            {
                property: '_TypeHierarchy',
                operator: '=',
                value: 'Defect'
            },
            {
                property: 'ScheduleState',
                operator: '!=',
                value: 'Accepted'
            },
            {
                property: '__At',
                value: dateString
            }
        ]
    });

1 ответ

Решение

Я не верю, что вы можете увлажнять метки с помощью LBAPI. Вместо этого я бы использовал WSAPI для создания хэш-карты, которая сопоставляет теги Object ID с его именем. Вот некоторый код, чтобы сделать это:

Ext.create('Rally.data.WsapiDataStore', {
    limit : Infinity,
    model : 'Tag',
    fetch : ['ObjectID','Name']
}).load({
    callback: function(store) {
        var tagNameMap = Ext.create('Ext.util.HashMap');
        Ext.Array.each(store.getRecords(), function(record) {
            tagNameMap.add(record.get('ObjectID'), record.get('Name'));
        });
        getDefects(tagNameMap); //Pass the tag name map to the LBAPI request
    }
});

Теперь просто используйте tagNameMap.get(tagOID), чтобы получить имя тега.

Надеюсь это поможет:)

Другие вопросы по тегам