1

Java API コードを Iteration TreeGrid と Iteration Burndown / Release Burnup チャートで動作させることができました。私たちはこれを Confluence で機能させようとしてきましたが、iframe だけを渡そうとすると問題が発生し、IT 部門はいくつかのバイパス オプションに問題を抱えています。以下のスクリプトを使用して、これに似た動作をさせることができました。実際、Iteration TreeGrid は常に正常に機能しますが、ほとんどの場合、標準レポートは Rally ログイン画面を表示するだけです。これは一貫性がなく、Chrome では機能する場合がありますが、Firefox/IE などでは機能しません。スクリプトの内容と同様にリンクを介して入力した場合、API を合流ページのパスにアタッチしました。標準レポートを生成できるようにするためにキーを渡す別の方法はありますか?

ありがとう!マーク

enter code here {html}

<script type="text/javascript">
    var field = 'apiKey';
    var url = window.location.href;
    if(
        (url.indexOf('?' + field + '=') != -1) ||
        (url.indexOf('&' + field + '=') != -1)
    ){
        //alert("**** 001");
    } else {        
        var myURL = document.location;
        if(window.location.href.indexOf('?') > 0){
            document.location = myURL + "&apiKey=_1OS4fhAQBi101VTZ4PytkQXb9jYEt0qYx79WXJacc";
        } else {
            document.location = myURL + "?apiKey=_1OS4fhAQBi101VTZ4PytkQXb9jYEt0qYx79WXJacc";
        }
    }

</script>


<div id="div-iterationburndown"></div>

    <script type="text/javascript">
        Rally.onReady(function() {
            Ext.create("Ext.Container", {
                context: {},
                items: [{
                    xtype: "rallystandardreport",
                    width: 750,
                    height: 500,
                    reportConfig: {
                        report: "IterationBurndown",
                        iteration: "April",
                        subchart: "hide",
                        title: "Iteration Burndown"
                    },
                    project: "https://rally1.rallydev.com/slm/webservice/v2.0/project/51186094804",
                    projectScopeUp: !1,
                    projectScopeDown: !0
                }],
                renderTo: Ext.get("div-iterationburndown")
            });


            Rally.launchApp('CustomApp', {
                name: "iterationburndown",
                parentRepos: ""
            });
        });
    </script>


<div id="div-releaseburnup"></div>

    <script type="text/javascript">
        Rally.onReady(function() {
            Ext.create("Ext.Container", {
                context: {},
                items: [{
                    xtype: "rallystandardreport",
                    width: 750,
                    height: 500,
                    reportConfig: {
                        report: "ReleaseBurnup",
                        subchart: "hide",
                        title: "Release Burnup"
                    },
                    project: "https://rally1.rallydev.com/slm/webservice/v2.0/project/51186094804",
                    projectScopeUp: !1,
                    projectScopeDown: !0
                }],
                renderTo: Ext.get("div-releaseburnup")
            });
            Rally.launchApp('CustomApp', {
                name: "releaseburnup",
                parentRepos: ""
            });
        });
    </script>

<div id="div-RallyGrid" style="border-width:5px 5px 5px 5px;width:300px;height:150px;"></div>

 <script type="text/javascript">
        Rally.onReady(function() {
            Ext.create("Rally.data.wsapi.TreeStoreBuilder").build({
                models: ["userstory"],
                autoLoad: !0,
                context: {
                    workspace: "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/50876644101",
                    project: "https://rally1.rallydev.com/slm/webservice/v2.0/project/50891172431"
                },
                enableHierarchy: !0,
                filters: [{
                    property: "Iteration.Name",
                    operator: "=",
                    value: "April"
                }, {
                    property: "Project.Name",
                    operator: "=",
                    value: "Harrier"
                }]
            }).then({
                success: function(store) {
                    Ext.create("Ext.Container", {
                        width: 1e3,
                        height: 1e3,
                        border: 5,
                        items: [{
                            xtype: "rallytreegrid",
                            columnCfgs: ["DisplayColor", "Name", "ScheduleState", "Blocked", "TaskEstimateTotal", "TaskRemainingTotal", "Owner", "Notes"],
                            store: store
                        }],
                        renderTo: Ext.get("div-RallyGrid")
                    })
                }
            });
            Rally.launchApp('CustomApp', {
                name: "RallyGrid",
                parentRepos: ""
            });
        });
    </script>





{html}
4

2 に答える 2

0

AppSDK2 のStandardReport コンポーネントは、ApiKey より前の第 1 世代の分析サービスのラッパーです。これは、[レポート] > [レポート] ページでレポートを表示するのと同じ分析サービスです。これらのレポートは、AppSDK1 のStandardReportコンポーネントからも入手できました。

ApiKey は、第 1 世代のグラフではサポートされていません。AppSDK2 は、Embedding Appsガイドで説明されているように、ApiKey をサポートしています。AppSDK2 アプリは ApiKey で認証できます。ただし、AppSDK2 アプリが StandardReport コンポーネントを使用している場合、レポートの背後にある分析サービスによってログインが求められます。これは ApiKey では機能しません。残念ながら、あなたのシナリオでは、レポートを他の Web コンテンツに埋め込んで、必ずしも Rally 資格情報を持っていない可能性のある利害関係者が閲覧できるようにするという目的を無効にします。

ときどき機能するように見える場合は、同じブラウザー ウィンドウの別のタブで Rally に既にログインしている可能性が高いと思われます。シークレット モードで新しいウィンドウを開くと、ログインするよう求められます。

于 2016-04-21T05:20:11.810 に答える