2016-04-11 27 views
1

Ich konnte den Java-API-Code für Iteration TreeGrid und Iteration Burndown/Release Burnup-Diagramme verwenden. Wir haben versucht, dies mit Confluence zu erreichen, und es gibt Probleme, die versuchen, nur Iframes zu bestehen, und IT hat Probleme mit einigen der Umgehungsoptionen. Mit dem folgenden Skript konnten wir einen Anschein davon bekommen. Tatsächlich funktioniert das Iteration TreeGrid jedes Mal erfolgreich, aber die meisten Standardberichte zeigen nur den Rally-Anmeldebildschirm an. Dies ist nicht konsistent und manchmal funktioniert das für mich in Chrome, aber nicht in Firefox/IE usw. Wir haben die API an den Pfad der Confluence-Seite angehängt, wenn sie über den Link eingegeben wurde, sowie darüber, was im Skript enthalten ist. Gibt es eine andere Methode für den Schlüssel, die für den Standardbericht übergeben werden soll?API-Schlüssel über Confluence HTML für Standardberichte übergeben

Danke! Mark

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} 

Antwort

0

StandardReport component in AppSDK2 ist ein Wrapper über der ersten Generation, die Analysedienst apikey früher. Dies ist derselbe Analysedienst, der Berichte auf der Seite Berichte> Berichte bereitstellt. Diese Berichte waren auch über die Komponente StandardReport in AppSDK1 verfügbar.

ApiKey wird in den Charts der ersten Generation nicht unterstützt. AppSDK2 unterstützt ApiKey wie in Embedding Apps Guide beschrieben. AppSDK2-Apps können mit ApiKey authentifiziert werden. Wenn eine AppSDK2-App jedoch eine StandardReport-Komponente verwendet, werden Sie vom Analysedienst hinter dem Bericht aufgefordert, sich anzumelden. Dies funktioniert nicht mit ApiKey. In Ihrem Szenario schlägt es unglücklicherweise den Zweck der Einbettung des Berichts in andere Webinhalte ein, die von Interessengruppen angezeigt werden, die möglicherweise nicht unbedingt Rally-Anmeldeinformationen haben.

Ich vermute, dass, wenn es scheint, dass es gelegentlich funktioniert, ist es wahrscheinlich, weil Sie bereits in einer anderen Registerkarte des gleichen Browser-Fensters bei Rally angemeldet sind. Wenn Sie ein neues Fenster im Inkognito-Modus öffnen, werden Sie aufgefordert, sich anzumelden.

+0

Dank! Gibt es eine Ergänzung zu AppsSDK2, die ich verpasst habe oder die anstelle der StandardReport-Komponente verwendet werden sollte? Ich versuche wirklich, die Confluence-Ansicht dieser Art von Bericht zu erhalten. Vielen Dank! Mark – markrosen

+0

Es gibt kein AppSDK2-Äquivalent davon. Ich möchte Sie nicht auf eine veraltete Funktion verweisen, aber wenn Sie AppSDK1 mit LoginKey verwenden, werden Sie beim Einbetten von StandardReport nicht zur Anmeldung aufgefordert. Der Grund, warum sie alle zusammen arbeiten, ist, dass sie alle älter sind als AppSDK2 und ApiKey. https://help.rallydev.com/loginkey Siehe auch: https://rallycommunity.rallydev.com/answers?id=kA1a0000000Yalc – nickm