2016-09-06 11 views
0

私は(まだ開発中)このUIのマクロを作成し、UIのページにそれを含めるとそれが無い問題で動作しています。しかし、私は、PAのダッシュボードを介して動的なコンテンツブロックにUIマクロを含めると、何も描画されません???マクロのServiceNow動的なコンテンツをブロック問題

完全なコード(それを試してみる):

<?xml version="1.0" encoding="utf-8" ?> 
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null"> 

<script language="javascript" src="/scripts/prototype-adapter.jsx" /> 
<script language="javascript" src="/scripts/GlideV2ChartingIncludes.jsx" /> 
    <g:evaluate> 
    var time = []; 
    var newIncidents = []; 
    var resIncidents = []; 
    var incidentsJson = '['; 
    var gr = GlideRecord('sys_trend'); 
    gr.addQuery('name', 'New Incidents'); 
    gr.query(); 
    while(gr.next()){ 

    newIncidents.push(gr.value.toString()); 
    incidentsJson += '{"y": '+parseInt(gr.value.toString(), 10)+', "name": "'+gr.collected+'"}',; 
    } 
    newIncidents = newIncidents.join(','); 
    incidentsJson = incidentsJson.slice(0,-1); 
     incidentsJson += ']'; 
    </g:evaluate> 
<script> 
    var incidentsJson = '${incidentsJson}'; 
    var incidents = "${newIncidents}"; 
    var I = incidents.split(','); 
    for(var i=0; i != I.length; i++) { 
    I[i] = parseInt(I[i], 10); 
    } 

document.observe("dom:loaded", function() { 
    var chart1 = new Highcharts.Chart({ 
    chart: { 
    renderTo: 'newchart', 
    type: 'line' 
    }, 
      title: { 
      text: 'Backlog Growth', 
      x: -20 //center 
     }, 

     xAxis: { 
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 
       'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
     }, 
     yAxis: { 
      title: { 
       text: 'Growth' 
      }, 
      plotLines: [{ 
       value: 0, 
       width: 1, 
       color: '#808080' 
      }] 
     }, 
     tooltip: { 
      valueSuffix: '#' 
     }, 
     legend: { 
      layout: 'vertical', 
      align: 'right', 
      verticalAlign: 'middle', 
      borderWidth: 0 
     }, 
     series: [{ 
      name: 'Incidents', 
      data: [{"y": 29, "name": "2016-09-04 21:57:21"},{"y": 28, "name": "2016-09-05 21:57:22"}] 
    }, { 
    name: 'Requested Items', 
    data: [{"y": 50, "name": "2016-09-04 21:57:21"},{"y": 25, "name": "2016-09-05 21:57:22"}] 
    }, { 
    name: 'Demands', 
    data: [{"y": 10, "name": "2016-09-04 21:57:21"},{"y": 5, "name": "2016-09-05 21:57:22"}] 

     }] 
    }); 
}); 
</script> 
<div class="container-fluid"> 
<div id="highwrapper" style="width: 500px; height: 400px; position:relative;"> 
    <div id="newchart" style="min-width: 500px; height: 400px; margin: 20; position:absolute;top:0px;left:0px;"></div> 

</div> 
    </div> 
</j:jelly> 

コードUIページやコンテンツをブロックに含める:私は「それを試してみてください」とき

<?xml version="1.0" encoding="utf-8" ?> 
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null"> 
    <g:macro_invoke macro="custom_backlog_line_chart"/> 
</j:jelly> 

が正常に動作しますUIページですが、ダッシュボードの動的コンテンツブロックウィジェットでブランクウィジェットを使用すると空白のウィジェットが表示されます。

もあれば、私は私のシリーズに$ {incidentsJson}を渡すことができない理由を把握することができます誰か:だけでなく、非常に役立つだろう、私のチャートに:データ!今私はjsonの出力がチャートを表示するために何をハードコードしています。私はデータに渡ししようとした場合:私は空白のチャートを取得...

私は単に私がHighcharts.comのウェブサイトでjsFiddleでテストし、私はVARにJSON配列を割り当てることができ

series: [{ 
      name: 'Incidents', 
      data: incidentsJson 
    }, 

を試してみましたそれを問題なくシリーズに渡しますが、SNでやっても問題ありません。

ありがとうございます!

######## UPDATE

私は2つの問題を発見しました。1はミスカンデアです。

誤って ''の外側に置いてしまったので、このように見えるはずです。

incidentsJson += '{"y": '+parseInt(gr.value.toString(), 10)+', "name": "'+gr.collected+'"},'; 

2番目の問題は、評価された変数をスクリプトセクションに渡して、 ''の中に入れてはいけないということでした。 var incidentsJson = '${incidentsJson}';

WRONG RIGHT var incidentsJson = ${incidentsJson};

次にIは、データ系列にincidentsJsonを通過することができました。ここで

series: [{ 
      name: 'Incidents', 
      data: incidentsJson 
     }, 

は出力

enter image description here

+0

私はまだ、チャートデータ系列 –

+0

に変数を渡すことはできません、しかし、チャートを描画することができるよ、あなたは正しいデータ形式を持っていることを確認していますか? –

+0

こんにちははいドキュメントは、オブジェクト、文字列または整数を処理できることを示しています。しかし、私はカンマと引用符が間違っていたことが判明しました。 –

答えて

0

ので、私は二つの問題1は、ここに置き忘れるのカンマがわかったオーケーです。

誤って ''の外側に置いてしまったので、このように見えるはずです。

incidentsJson += '{"y": '+parseInt(gr.value.toString(), 10)+', "name": "'+gr.collected+'"},'; 

2番目の問題は、評価された変数をスクリプトセクションに渡して、 ''の中に入れてはいけないということでした。 var incidentsJson = '${incidentsJson}';

WRONG RIGHT var incidentsJson = ${incidentsJson};

次にIは、データ系列にincidentsJsonを通過することができました。

series: [{ 
      name: 'Incidents', 
      data: incidentsJson 
     }, 

出力

enter image description here

関連する問題