---
sourceDocument: Gestion des services IT Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/it-service-management

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Gestion des services IT Xanadu

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# Configurer le message d'en-tête de la page de destination

# Configurer le message d'en-tête de la page de destination {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 10 minutes de lecture

Configurez le message d'en-tête faisant partie du texte du message d'accueil sur la page de destination. Par exemple, Vous êtes d'astreinte jusqu'au lundi 21 mars.

## Avant de commencer

Rôle requis : admin

## Pourquoi et quand exécuter cette tâche

Le script de serveur de courtier en données Obtenir l'équipe de l'agent du Centre de services appelle l'Includes de script SOWServiceDeskAgentShift pour afficher les informations de l'équipe dans le texte du message d'accueil.

Bien que vous puissiez personnaliser le texte d'affichage de la page de destination par défaut, vous devez créer une copie de la page de destination pour modifier le style visuel du texte.
Figure 1. Section d'en-tête

## Procédure

1. Accédez à ToutAdmin Center de l'Espace de travail pour l'exploitation des servicesVue d'ensemble.
2. Dans l'onglet Vue d'ensemble, accédez à la section Configuration initiale, puis sélectionnez l'option Configurer la page de destination.
3. Dans le formulaire Page de destination, sélectionnez Configurer en regard de Messages d'accueil.  
   Le formulaire Includes de script s'affiche pour SOWServiceDeskAgentShift, qui appelle en interne SOWServiceDeskAgentShiftSNC.
4. Copiez la valeur Script de SOWServiceDeskAgentShiftSNC.
   1. Accédez à ToutDéfinition du systèmeIncludes de script.
   2. Dans la liste Includes de script, ouvrez SOWServiceDeskAgentShiftSNC.
   3. Copiez la valeur du champ Script.
   {#modify-greeting-text__substeps_gnk_tzm_2cc}
5. Modifiez le script SOWServiceDeskAgentShift.
   1. Accédez à ToutDéfinition du systèmeIncludes de script.
   2. Dans la liste Includes de script, ouvrez SOWServiceDeskAgentShift.
   3. Collez la valeur du champ Script que vous avez copiée à partir de SOWServiceDeskAgentShiftSNC.  

          initialize: function() { 

                  this.PLUGINS = { 

                      ON_CALL: "com.snc.on_call_rotation", 

                      SHIFT_PLANNING: "com.sn_shift_planning" 

                  }; 

                  this.DAYS_AHEAD = gs.getProperty('com.snc.on_call_rotation.upcoming_rota_days', 30); 

                  this.DATE_FORMAT = gs.getDateFormat(); 

                  this.TIME_FORMAT = gs.getTimeFormat(); 

                  this.WFO_SCHEMA_IDENTIFIER = 'readInTimezone'; 

                  this.WFO_ONCALL_TYPE_IDENTIFIER = 'oncallAPIReadInTimezone'; 

                  this.WEEK_DAY_FORMAT = 'EEEE'; 

                  this.FORMAT = { 

                      SERVICE_DESK_HEADER: 'SERVICE_DESK_HEADER' 

                  }; 

                  this.DATE_TIME_FORMAT_FULL = "full"; 

              }, 

           

              getUpcomingShift: function(userId, outputFormat, wfoShift) { 

                  var upcomingShifts, gd = new GlideDate(); 

                  var from = gd.getDisplayValueInternal(); 

                  gd.addDaysLocalTime(this.DAYS_AHEAD); 

                  var to = gd.getDisplayValueInternal(); 

                  var mayBeWFOUser = userId == gs.getUserID() ? gs.hasRole("sn_shift_planning.agent") : true; 

                  if (GlidePluginManager.isActive(this.PLUGINS.SHIFT_PLANNING) && mayBeWFOUser && wfoShift) 

                      upcomingShifts = this.getWFOShifts(from, to, userId); 

                  var isWFOResponseValid = Array.isArray(upcomingShifts) && upcomingShifts.length > 0; 

                  if (!isWFOResponseValid && GlidePluginManager.isActive(this.PLUGINS.ON_CALL)) 

                      upcomingShifts = this.getOnCallShifts(from, to, userId); 

                  return this.getFormattedShift(upcomingShifts, outputFormat); 

              }, 

           

              getWFOShifts: function(from, to, userId) { 

                  var smUtil = new sn_shift_planning.ScheduleManagerUtil(); 

                  var defaultEventCategories = [ 

                      smUtil.WORK_CATEGORY_SYS_ID, 

                      smUtil.ON_CALL_CATEGORY_SYS_ID 

                  ]; 

                  var params = { 

                      "assignmentGroups": "", 

                      "individualAgents": userId, 

                      "startDate": from, 

                      "endDate": to, 

                      "published": true, 

                      "eventCategories": defaultEventCategories, 

                      "filter": { 

                          "sn_shift_planning_agent_schedule": { 

                              "event": ["8d03fd9b0f310010717cc562ff767e4a", "936319993bd02010e81a4ee1f3efc419"] 

                          } 

                      } 

                  }; 

                  var upcomingShifts = []; 

                  try { 

                      var agentScheduleRESTAPIUtils = new sn_shift_planning.AgentScheduleRESTAPIUtils(); 

                      var spans = agentScheduleRESTAPIUtils.retrieveAgentSchedulesFromParams(params); 

                      if (spans && spans.shiftData && spans.shiftData.user && spans.shiftData.user.data && spans.shiftData.user.data.length > 0 && spans.shiftData.user.data[0].schedules) { 

                          var schedules = spans.shiftData.user.data[0].schedules, 

                              arrayUtil = new global.ArrayUtil(); 

                          for (var schedule in schedules) 

                              upcomingShifts = arrayUtil.union(upcomingShifts, schedules[schedule]); 

                      } 

                  } catch (e) { 

                      gs.error("SOWServiceDeskAgentShiftSNC: Error fetching WFO shifts"); 

                  } 

           

                  return upcomingShifts; 

              }, 

           

              getOnCallShifts: function(from, to, userId) { 

                  var onCallCommon = new global.OnCallCommon(); 

                  var onCallGroups = onCallCommon.getMyGroups(); 

                  var spans = new global.OCRotationV2(null, global.OCRotationV2.DEFAULT_FORMAT_OPTION).setStartDate(from).setEndDate(to).setUserIds(userId).setGroupIds(onCallGroups).getSpans(); 

                  var upcomingShifts = []; 

                  for (var i = 0; i < spans.length; i++) 

                      if ((spans[i].type == "roster" || spans[i].type == "override") && spans[i].user_id == userId) 

                          upcomingShifts.push(spans[i]); 

                  return upcomingShifts; 

              }, 

           

              getFormattedShift: function(upcomingShifts, outputFormat) { 

                  if (gs.nil(upcomingShifts)) 

                      return; 

                  switch (outputFormat) { 

                      case this.FORMAT.SERVICE_DESK_HEADER: 

                          return this.getServiceDeskFormattedShift(upcomingShifts); 

                      default: 

                          return upcomingShifts; 

                  } 

              }, 

           

              getServiceDeskFormattedShift: function(upcomingShifts) { 

                  var response = { 

                      shiftText: "", 

                      nearestShift: {} 

                  }; 

                  var startAttr = "start", 

                      endAttr = "end", 

                      isOnCall = true; 

                  var dateFormat = 'EEEE, MMM dd', 

                      timeFormat = 'hh:mm a'; 

                  var isWFOSchema = Array.isArray(upcomingShifts) && upcomingShifts.length > 0 && this.WFO_SCHEMA_IDENTIFIER in upcomingShifts[0]; 

                  if (isWFOSchema) 

                      startAttr = "scheduledStartTime", endAttr = "scheduledEndTime"; 

                  response.nearestShift = this.getNearestShift(upcomingShifts, startAttr, endAttr); 

                  if (response.nearestShift) { 

                      if (isWFOSchema) { 

                          if (response.nearestShift.schedule && !(this.WFO_ONCALL_TYPE_IDENTIFIER in response.nearestShift.schedule)) 

                              isOnCall = false; 

                      } 

                      if (isOnCall) { 

                          if (response.nearestShift.isCurrent) { 

                              if (response.nearestShift.roster_name) 

                                  response.shiftText = gs.getMessage("You are on-call until {0} as {1}", [this.getFormattedDateTime(response.nearestShift[endAttr]), response.nearestShift.roster_name]); 

                              else 

                                  response.shiftText = gs.getMessage("You are on-call until {0}", [this.getFormattedDateTime(response.nearestShift[endAttr])]); 

                          } else { 

                              if (response.nearestShift.roster_name) 

                                  response.shiftText = gs.getMessage("Your next on-call shift starts on {0} as {1}", [this.getFormattedDateTime(response.nearestShift[startAttr]), response.nearestShift.roster_name]); 

                              else 

                                  response.shiftText = gs.getMessage("Your next on-call shift starts on {0}", [this.getFormattedDateTime(response.nearestShift[startAttr])]); 

                          } 

                      } else { 

                          if (response.nearestShift.isCurrent) { 

                              response.shiftText = gs.getMessage("Your shift ends on {0}", [this.getFormattedDateTime(response.nearestShift[endAttr])]); 

                          } else 

                              response.shiftText = gs.getMessage("Your next shift starts on {0}", [this.getFormattedDateTime(response.nearestShift[startAttr])]); 

                      } 

                  } 

           

                  return response; 

              }, 

           

              getNearestShift: function(upcomingShifts, startAttr, endAttr) { 

                  if (gs.nil(upcomingShifts) || gs.nil(startAttr) || gs.nil(endAttr)) 

                      return; 

                  var nearestShift; 

                  upcomingShifts.sort(function(shift_1, shift_2) { 

                      var gdt1 = new GlideDateTime(); 

                      gdt1.setDisplayValueInternal(shift_1[startAttr]); 

                      var gdt2 = new GlideDateTime(); 

                      gdt2.setDisplayValueInternal(shift_2[startAttr]); 

                      return GlideDateTime.subtract(gdt2, gdt1).getNumericValue(); 

                  }); 

                  var currentDateTime = new GlideDateTime(), 

                      startDateTime = new GlideDateTime(), 

                      endDateTime = new GlideDateTime(); 

                  for (var i = 0; i < upcomingShifts.length; i++) { 

                      startDateTime.setDisplayValueInternal(upcomingShifts[i][startAttr] + ""); 

                      endDateTime.setDisplayValueInternal(upcomingShifts[i][endAttr] + ""); 

                      if (currentDateTime.onOrBefore(endDateTime)) { 

                          nearestShift = upcomingShifts[i]; 

                          if (currentDateTime.onOrAfter(startDateTime)) 

                              nearestShift.isCurrent = true; 

                          else 

                              nearestShift.isCurrent = false; 

                          break; 

                      } 

                  } 

                  return nearestShift; 

              }, 

           

              getFormattedDateSpan: function(date, dateFormat, timeFormat) { 

                  var formattedDate = this.getFormattedDate(date, dateFormat); 

                  var dateAmPmTime = this.getFormattedTime(date, timeFormat); 

                  return formattedDate + " " + dateAmPmTime; 

              }, 

           

              getFormattedDate: function(inputDate, format) { 

                  var date = new GlideDateTime(); 

                  date.setDisplayValueInternal(inputDate); 

                  format = !format ? this.DATE_FORMAT : format; 

                  var gd = date.getLocalDate(); 

                  return gd.getByFormat(format); 

              }, 

           

              getFormattedTime: function(inputDate, format) { 

                  var date = new GlideDateTime(); 

                  date.setDisplayValueInternal(inputDate); 

                  format = !format ? this.TIME_FORMAT : format; 

                  var gt = date.getLocalTime(); 

                  return gt.getByFormat(format); 

              }, 

           

              getFormattedDateTime: function(date) { 

                  var dateTime = new GlideDateTime(); 

                  dateTime.setDisplayValueInternal(date); 

                  return dateTime.getDisplayValueLang(this.DATE_TIME_FORMAT_FULL); 

              }, 

           

              endsToday: function(inputDate) { 

                  var inputGdt = new GlideDateTime(); 

                  inputGdt.setDisplayValueInternal(inputDate); 

                  return new GlideDateTime().getLocalDate().getValue() == inputGdt.getLocalDate().getValue(); 

              }, 

           

              endingTomorrow: function(inputDate) { 

                  var inputGdt = new GlideDateTime(); 

                  inputGdt.setDisplayValueInternal(inputDate); 

                  var tomorrowDateTime = new GlideDateTime(); 

                  tomorrowDateTime.addDaysLocalTime(1); 

                  return tomorrowDateTime.getLocalDate().getValue() == inputGdt.getLocalDate().getValue(); 

              }, 

   4. Modifiez la partie suivante du script, comme indiqué.  

                      if (isOnCall) { 

                          if (response.nearestShift.isCurrent) { 

                              if (response.nearestShift.roster_name) 

                                  response.shiftText = gs.getMessage("You are on-call until {0} as {1}", [this.getFormattedDateTime(response.nearestShift[endAttr]), response.nearestShift.roster_name]); 

                              else 

                                  response.shiftText = gs.getMessage("You are on-call until {0}", [this.getFormattedDateTime(response.nearestShift[endAttr])]); 

                          } else { 

                              if (response.nearestShift.roster_name) 

                                  response.shiftText = gs.getMessage("Your next on-call shift starts on {0} as {1}", [this.getFormattedDateTime(response.nearestShift[startAttr]), response.nearestShift.roster_name]); 

                              else 

                                  response.shiftText = gs.getMessage("Your next on-call shift starts on {0}", [this.getFormattedDateTime(response.nearestShift[startAttr])]); 

                          } 

                      } else { 

                          if (response.nearestShift.isCurrent) { 

                              response.shiftText = gs.getMessage("Your shift ends on {0}", [this.getFormattedDateTime(response.nearestShift[endAttr])]); 

                          } else 

                              response.shiftText = gs.getMessage("Your next shift starts on {0}", [this.getFormattedDateTime(response.nearestShift[startAttr])]); 

                      } 

   {#modify-greeting-text__substeps_q1j_21n_2cc}
6. Sélectionnez Mettre à jour.

