时间表计划页面事件 - Servicenow

时间:2014-03-14 08:48:24

标签: servicenow

我开始使用servicenow工作,而且我遇到了TimeLines和doubleClick事件的问题。

我配置了计划页面和ScriptInclude(代码为伪代码):

日程安排页面

glideTimeline.setReadOnly(true); glideTimeline.showLeftPane(true);
glideTimeline.registerEvent("getItems", "MyTimelineScriptInclude");


function doubleClickCustomFunction(evt) {
   try {
      alert('double click: ' + "evt: " + evt + ', target: ' + target );
      action.setRedirectURL( 'my_application.do?sys_id=' + target );
   catch (exception) {
      gs.log(exception);
   }
},

MyTimelineScriptInclude

var MyTimelineScriptInclude = Class.create();
MyTimelineScriptInclude.prototype = Object.extendsObject(AbstractTimelineSchedulePage, {


   _getTickets: function(){
      tickets = foo();
      return tickets;
   }

   getItems: function() {
      try {

         var ticket_list = this._getTickets();

         for (var ticket in ticket_list) {
            this._representTicket(ticket_list[ticket].sys_id);
         }


      } catch(exception) {
         this._debugLog(exception, "getItemsException");
      }
   },


   _representTicket: function(sys_id) {

      // ticket Object;
      ticket_object = getTicket(sys_id);
      var timelineItem = new TimelineItem('my_application' , ticket_object.sys_id);
      _representSpans( timelineItem , ticket_object );
      this.add(timelineItem);


   },

   _representSpans: function( timelineItem , ticket_object ) {

         var timelineItemSpan1 = timelineItem.createTimelineSpan(''); // I'm not including any value into the span creator.
         timelineItemSpan1.setTimeSpan( ticket_object.startDateTime1.getNumericValue() , ticket_object.endDateTime1.getNumericValue() );
         timelineItemSpan1.setSpanText(ticket_object.spanText);
         timelineItemSpan1.setSpanColor(ticket_object.spanColor);
         timelineItemSpan1.setTooltip(ticket_object.spanTooltip);


         var timelineItemSpan2 = timelineItem.createTimelineSpan(''); // I'm not including any value into the span creator.
         timelineItemSpan2.setTimeSpan( ticket_object.startDateTime2.getNumericValue() , ticket_object.endDateTime2.getNumericValue() );
         timelineItemSpan2.setSpanText(ticket_object.spanText);
         timelineItemSpan2.setSpanColor(ticket_object.spanColor);
         timelineItemSpan2.setTooltip(ticket_object.spanTooltip);

         var timelineItemSpan3 = timelineItem.createTimelineSpan(''); // I'm not including any value into the span creator.
         timelineItemSpan3.setTimeSpan( ticket_object.startDateTime2.getNumericValue() , ticket_object.endDateTime2.getNumericValue() );
         timelineItemSpan3.setSpanText(ticket_object.spanText);
         timelineItemSpan3.setSpanColor(ticket_object.spanColor);
         timelineItemSpan3.setTooltip(ticket_object.spanTooltip);
   },
});

问题是,当我双击时间轴行时,它会触发doubleClickCustomFunction,但是,它无法获取任何evt数据,因此,它不会执行重定向。

祝你好运

1 个答案:

答案 0 :(得分:1)

ServiceNow中的计划页面使用客户端脚本,因此如果doubleClickCustomFunction是计划页面客户端脚本的一部分,则服务器端调用(action.setRedirect和gs.log)将失败。

默认的双击功能包含以下参数:event,this,strRecordSysID,strUserSysID 我还没有使用自定义双击覆盖,因此我不确定这些参数是否可自动使用。但是,在脚本包含的其他自定义覆盖中也是如此,例如elementMoveX

除此之外,如果它是客户端脚本的一部分,您可以尝试在函数中调用window.event