GlideSystem - Inclus dans le périmètre
L’API GlideSystem incluse dans le champ d’application (désignée par le nom de variable « gs » dans n’importe quel JavaScript côté serveur) fournit un certain nombre de méthodes pratiques pour obtenir des informations sur le système, l’utilisateur connecté actuel, etc.
De nombreuses méthodes GlideSystem facilitent l’inclusion de dates dans des plages de requêtes et sont le plus souvent utilisées dans les filtres et les rapports.
GlideSystem inclus dans le périmètre : addErrorMessage (message de chaîne)
Ajoute un message d’erreur pour la session en cours.
| Nom | Type | Description |
|---|---|---|
| message | Chaîne | Message à ajouter. |
| Type | Description |
|---|---|
| nul |
gs.include("PrototypeServer");
var ValidatePasswordStronger = Class.create();
ValidatePasswordStronger.prototype = {
process : function() {
var user_password = request.getParameter("user_password");
var min_len = 8;
var rules = "Password must be at least " + min_len +
" characters long and contain a digit, an uppercase letter, and a lowercase letter.";
if (user_password.length() < min_len) {
gs.addErrorMessage("TOO SHORT: " + rules);
return false;
}
var digit_pattern = new RegExp("[0-9]", "g");
if (!digit_pattern.test(user_password)) {
gs.addErrorMessage("DIGIT MISSING: " + rules);
return false;
}
var upper_pattern = new RegExp("[A-Z]", "g");
if (!upper_pattern.test(user_password)) {
gs.addErrorMessage("UPPERCASE MISSING: " + rules);
return false;
}
var lower_pattern = new RegExp("[a-z]", "g");
if (!lower_pattern.test(user_password)) {
gs.addErrorMessage("LOWERCASE MISSING: " + rules);
return false;
}
return true; // password is OK
}
}
GlideSystem inclus dans le périmètre : addInfoMessage (message de chaîne)
Ajoute un message d’information pour la session en cours. Cette méthode n’est pas prise en charge pour les règles métier asynchrones.
| Nom | Type | Description |
|---|---|---|
| message | Chaîne | Message d’information à ajouter. |
| Type | Description |
|---|---|
| nul |
if ((!current.u_date1.nil()) && (!current.u_date2.nil())) {
var start = current.u_date1.getGlideObject().getNumericValue();
var end = current.u_date2.getGlideObject().getNumericValue();
if (start > end) {
gs.addInfoMessage('start must be before end');
current.u_date1.setError('start must be before end');
current.setAbortAction(true);
}
}
GlideSystem inclus dans le périmètre : base64Encode(source de chaîne)
Crée une chaîne base64 à partir de la chaîne spécifiée.
| Nom | Type | Description |
|---|---|---|
| source | Chaîne | Chaîne à coder. |
| Type | Description |
|---|---|
| Chaîne | Chaîne codée base64. |
Exemple
var mac = new CertificateEncryption;
var key = "sample_key";
key = gs.base64Encode(key);
mac.generateMac(key, "HmacSHA256", "sample_data");
GlideSystem inclus dans le périmètre : base64Decode(source de chaîne)
Renvoie une chaîne ASCII à partir de la chaîne base64 spécifiée.
| Nom | Type | Description |
|---|---|---|
| source | Chaîne | Chaîne codée base64. |
| Type | Description |
|---|---|
| Chaîne | Chaîne décodée. |
GlideSystem inclus dans le champ d’application : beginningOfLastMonth()
Renvoie la date et l’heure du début du mois dernier en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT début du mois dernier, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le champ d’application : beginningOfLastWeek()
Renvoie la date et l’heure du début de la semaine dernière en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT début de la semaine dernière, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le champ d’application : beginningOfNextMonth()
Renvoie la date et l’heure du début du mois suivant en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au début du mois prochain, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans l’étendue : beginningOfNextWeek()
Renvoie la date et l’heure du début de la semaine prochaine en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le GMT début de la semaine prochaine, au format aaaa-mm-jj hh :mm :ss. |
GlideSystem inclus dans le périmètre : beginningOfNextYear()
Renvoie la date et l’heure du début de l’année prochaine en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au début de l’année prochaine, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans l’étendue : beginningOfThisMonth()
Renvoie la date et l’heure du début de ce mois en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au début de ce mois, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : beginningOfThisQuarter()
Renvoie la date et l’heure du début de ce trimestre en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT début de ce trimestre, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : beginningOfThisWeek()
Renvoie la date et l’heure du début de cette semaine en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT début de cette semaine, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre - beginningOfThisYear()
Renvoie la date et l’heure du début de cette année en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au début de cette année, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le champ d’application : dateGenerate(String date, String range)
Génère une date et une heure pour la date spécifiée en GMT.
| Nom | Type | Description |
|---|---|---|
| date | Chaîne | Date pour laquelle générer l’heure GMT. Format : aaaa-mm-jj |
| Gamme | Chaîne | Début, fin ou une heure au format 24 heures hh :mm :ss. |
| Type | Description |
|---|---|
| Chaîne | Date et heure de génération. Si la plage est Début, la valeur renvoyée est aaaa-mm-jj 00 :00 :00. Si la plage est terminée , la valeur de retour est aaaa-mm-jj 23 :59 :59. Format : aaaa-mm-jj hh :mm :ss |
Cet exemple montre l’utilisation de dateGenerate() pour définir la date de début lors de l’interrogation des enregistrements dans la table Incident.
var tableData = new GlideRecord('incident');
tableData.addEncodedQuery("sys_created_onBETWEENjavascript:gs.dateGenerate('2015-10-07','00:00:00')@javascript:gs.daysAgoEnd(0)^priority=1^severityIN1,2");
tableData.query();
gs.info("Count: " + tableData.getRowCount());
Sortie
Count: 7
GlideSystem inclus dans le champ d’application : daysAgo (nombre de jours)
Renvoie la date et l’heure pour un nombre spécifié de jours plus tôt.
| Nom | Type | Description |
|---|---|---|
| jours | Numéro | Nombre entier de jours |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
function contractNoticeDue() {
var now_GR = new GlideRecord("contract");
now_GR.addQuery("u_contract_status", "Active");
now_GR.query();
while (now_GR.next()) {
if ((now_GR.u_termination_date <= gs.daysAgo(-90)) && (now_GR.u_contract_duration == "Long")) {
now_GR.u_contract_status = "In review";
}
else if ((now_GR.u_termination_date <= gs.daysAgo(-50)) && (now_GR.u_contract_duration == "Medium")) {
now_GR.u_contract_status = "In review";
}
else if ((now_GR.u_termination_date <= gs.daysAgo(-10)) && (now_GR.u_contract_duration == "Short")) {
now_GR.u_contract_status = "In review";
}
}
now_GR.update();
}
GlideSystem inclus dans le champ d’application : daysAgoEnd(Number days)
Renvoie la date et l’heure de fin de la journée il y a un nombre spécifié de jours.
| Nom | Type | Description |
|---|---|---|
| jours | Numéro | Nombre entier de jours |
| Type | Description |
|---|---|
| Chaîne | GMT fin de journée au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le champ d’application : daysAgoStart(nombre de jours)
Renvoie la date et l’heure du début de la journée il y a un nombre spécifié de jours.
| Nom | Type | Description |
|---|---|---|
| jours | Chaîne | Nombre entier de jours |
| Type | Description |
|---|---|
| Chaîne | GMT début de la journée au format aaaa-mm-jj hh :mm :ss |
var now_GR = new GlideRecord('sysapproval_approver');
now_GR.addQuery('state', 'requested');
now_GR.addQuery('sys_updated_on', '<', gs.daysAgoStart(5));
now_GR.query();
GlideSystem inclus dans le périmètre : debug(message de chaîne, objet parm1, objet parm2, objet parm3, objet parm4, objet parm5)
Écrit un message de débogage dans le journal système.
| Nom | Type | Description |
|---|---|---|
| message | Chaîne | Message du journal avec des espaces réservés pour tous les arguments de variable. |
| param1 | Objet | (Facultatif) Premier argument de variable. |
| param2 | Objet | (Facultatif) Deuxième argument de variable. |
| param3 | Objet | (Facultatif) Troisième argument de variable. |
| param4 | Objet | (Facultatif) Quatrième argument variable. |
| param5 | Objet | (Facultatif) Cinquième argument variable. |
| Type | Description |
|---|---|
| nul |
gs.debug("This is a debug message");
var myFirstName = "Abel";
var myLastName = "Tuter";
gs.debug("This is a debug message from {0}.{1}", myFirstName, myLastName);
This is a debug message (sys.scripts extended logging)
This is a debug message from Abel.Tuter (sys.scripts extended logging)GlideSystem inclus dans l’étendue : endOfLastMonth()
Renvoie la date et l’heure de la fin du mois dernier en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT fin du mois dernier, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : endOfLastWeek()
Renvoie la date et l’heure de la fin de la semaine dernière en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT fin de la semaine dernière, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le champ d’application : endOfLastYear()
Renvoie la date et l’heure de fin de l’année dernière au format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans l’étendue : endOfNextMonth()
Renvoie la date et l’heure de fin du mois suivant en GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : endOfNextWeek()
Renvoie la date et l’heure de la fin de la semaine prochaine en GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : endOfNextYear()
Renvoie la date et l’heure de fin de l’année prochaine en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans l’étendue : endOfThisMonth()
Renvoie la date et l’heure de fin de ce mois en format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : endOfThisQuarter()
Renvoie la date et l’heure de fin de ce trimestre en GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans l’étendue : endOfThisWeek()
Renvoie la date et l’heure de fin de cette semaine en GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : endOfThisYear()
Renvoie la date et l’heure de fin de cette année au format GMT.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : error(message de chaîne, objet parm1, objet parm2, objet parm3, objet parm4, objet parm5)
Écrit un message d’erreur dans le journal système.
Cette méthode accepte jusqu’à cinq arguments variables (varargs) dans le message à l’aide du modèle de remplacement de l’espace réservé Java MessageFormat.
| Nom | Type | Description |
|---|---|---|
| message | Chaîne | Message du journal avec des espaces réservés pour tous les arguments de variable. |
| param1 | Objet | (Facultatif) Premier argument de variable. |
| param2 | Objet | (Facultatif) Deuxième argument de variable. |
| param3 | Objet | (Facultatif) Troisième argument de variable. |
| param4 | Objet | (Facultatif) Quatrième argument variable. |
| param5 | Objet | (Facultatif) Cinquième argument variable. |
| Type | Description |
|---|---|
| nul |
gs.error("This is an error message");
var myFirstName = "Abel";
var myLastName = "Tuter";
gs.error("This is an error message from {0}.{1}", myFirstName, myLastName);
This is an error message
This is an error message from Abel.TuterGlideSystem inclus dans le champ d’application : eventQueue(nom de chaîne, instance d’objet, chaîne parm1, chaîne parm2, file d’attente de chaînes)
Met un événement en file d’attente pour le gestionnaire d’événements.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de l’événement mis en file d’attente. |
| instance | Objet | GlideRecord, tel que « current ». |
| parm1 | Chaîne | Facultatif. Enregistré avec l’instance si spécifiée. |
| parm2 | Chaîne | Facultatif. Enregistré avec l’instance si spécifiée. |
| queue | Chaîne | Facultatif. Nom de la file d'attente. |
| Type | Description |
|---|---|
| nul |
if (current.operation() != 'insert' && current.comments.changes()) {
gs.eventQueue('incident.commented', current, gs.getUserID(), gs.getUserName());
}
GlideSystem inclus dans le périmètre : eventQueueScheduled(nom de chaîne, instance d’objet, chaîne parm1, chaîne parm2, expiration de l’objet)
Met en file d’attente un événement dans le gestionnaire d’événements.
Les informations de calendrier d’événements transmises sont stockées dans la table Événements [sysevent]. Pour plus d’informations sur les événements, consultez Événements.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de l’événement à mettre en file d’attente. |
| instance | Objet/chaîne | GlideRecord ou sys_id de l’enregistrement auquel cet événement s’applique. |
| parm1 | Chaîne | Facultatif. Chaîne à transmettre dans le script d’événement. Ce paramètre est de forme libre et dépend de l’implémentation du script d’événement. Valeur par défaut : si le instance paramètre est un objet GlideRecord, la valeur par défaut est la valeur d’affichage pour ce GlideRecord (now_GR.getDisplayValue), sinon elle est |
| parm2 | Chaîne | Facultatif. Chaîne à transmettre dans le script d’événement. Ce paramètre est de forme libre et dépend de l’implémentation du script d’événement. Valeur par défaut : |
| Date d’expiration | Objet | Facultatif. GlideDateTime ou un élément de type date/heure qui spécifie la date et l’heure de traitement de l’événement. Par défaut : Date/Heure actuelles |
| Type | Description |
|---|---|
| nul |
Cet exemple montre comment appeler la méthode à l’aide d’un GlideRecord, de deux paramètres transmis au script d’événement et d’une heure spécifiée pour planifier l’événement.
var requestXml = requestBody.dataString;
var processTime = new GlideDateTime();
processTime.addDaysLocalTime(7);
gs.eventQueueScheduled('sn_app.user.deactivate', now_GR, requestXML, gs.getUserID(), processTime);
Cet exemple montre comment appeler la méthode à l’aide d’un sys_id et les valeurs par défaut des paramètres facultatifs.
gs.eventQueueScheduled('event.test', '0e29421383101000dada83ec37d9292d', '', '', '');
GlideSystem inclus dans le périmètre : executeNow (tâche GlideRecord)
Exécute une tâche pour une application incluse dans le périmètre.
Vous pouvez uniquement utiliser cette méthode sur une tâche de la même application que le script appelant cette méthode.
| Nom | Type | Description |
|---|---|---|
| tâche | GlideRecord | Tâche à exécuter. |
| Type | Description |
|---|---|
| Chaîne | Renvoie la sys_id de la tâche planifiée. Renvoie null si la tâche est globale. |
Exemple
scheduleImportJob: function () {
var jobId = '61847fe04c603300fa9bb64c2b491dac';
var now_GR = new GlideRecord('sysauto_script');
if (!now_GR.get(jobId)) {
throw new Error('Unable to find import job');
}
gs.executeNow(now_GR);
}
GlideSystem inclus dans l’étendue : generateGUID()
Génère un GUID qui peut être utilisé lorsqu’un identificateur unique est requis.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GUID hexadécimal de 32 caractères. |
personalId = gs.generateGUID();
gs.info(personalId);
Sortie
af770511ff013100e04bfffffffffff6
GlideSystem inclus dans l’étendue : getCallerScopeName()
Obtient le nom de la portée de l’appelant ; Renvoie null s’il n’y a pas d’appelant.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Nom du champ d’application de l’appelant ou nul s’il n’y a pas d’appelant. |
Cet exemple montre deux script includes définis sur Accessible à partir de tous les périmètres de l’application. Un script include est créé dans app_scope_a.
var Scopea = Class.create();
Scopea.prototype = {
initialize: function() {
},
callerScope: function() {
var scopeb = new app_scope_b.Scopeb();
return scopeb.callerscope();
},
type: 'Scopea'
}
Sortie :
Cet exemple montre un autre script include créé dans app_scope_b.
var Scopeb = Class.create();
Scopeb.prototype = {
initialize: function() {
this._constructorCallerScope = gs.getCallerScopeName();
},
callerscope: function() {
return gs.getCallerScopeName();
},
getConstructorCallerScope: function() {
return this._constructorCallerScope;
},
type: 'Scopeb'
}
Sortie :
Ce script peut être utilisé dans le champ d’application app_scope_a pour obtenir le nom du champ d’application de l’appelant, dans ce cas app_scope_b.
gs.info(new Scopea().getCallerScopeName());
GlideSystem inclus dans l’étendue : getCssCacheVersionString()
Obtient une chaîne représentant la version du cache d’un fichier CSS.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | La version du cache CSS. |
var verStr = gs.getCssCacheVersionString();
gs.info(verStr);
Sortie
_d82979516f0171005be8883e6b3ee4cf&theme=
GlideSystem inclus dans l’étendue : getCurrentApplicationId()
Obtient l’ID de l’application actuelle tel que défini à l’aide du sélecteur d’application.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le sys_id de l’application actuelle, ou global dans none est défini. |
var currentId = gs.getCurrentApplicationId();
gs.info(currentId);
Sortie
04936cb16f30b1005be8883e6b3ee4e0
GlideSystem inclus dans le périmètre : getCurrentScopeName()
Obtient le nom du périmètre actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Nom du périmètre actuel. |
var currentScope = gs.getCurrentScopeName();
gs.info(currentScope);
Sortie
s_snc_test_scope
GlideSystem inclus dans le champ d’application : getDateFormat(String)
Renvoie le format de date associé à l’utilisateur actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le format de date associé à l’utilisateur actuel. |
L’exemple suivant renvoie le format de date associé à l’utilisateur.
var userDateFormat = gs. getDateFormat();
gs.info(userDateFormat);
Sortie :
yyyy-MM-dd
GlideSystem inclus dans l’étendue : getDateTimeFormat()
Renvoie le format de date et d’heure associé à l’utilisateur actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le format de date et d’heure associé à l’utilisateur actuel. |
L’exemple suivant renvoie le format de la date et de l’heure associées à l’utilisateur.
var userDateTimeFormat = gs.getDateTimeFormat();
gs.info(userDateTimeFormat);
Sortie :
yyyy-MM-dd HH:mm:ss
GlideSystem inclus dans le périmètre : getErrorMessages()
Renvoie les messages d’erreur qui ont été ajoutés par addErrorMessage() pour la session.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Tableau de chaînes | Messages d’erreur associés à la session. |
GlideSystem inclus dans le périmètre : getEscapedMessage(String id, Array args)
Récupère le message spécifié à partir de la table Message [sys_ui_message]. Si le message contient des caractères spéciaux HTML, remplacez-les par les codes de nom HTML correspondants. Par exemple, & devient &.
Si l’identificateur de message spécifié (clé) existe dans la table Message [sys_ui_message] pour la langue actuelle, la méthode renvoie le message traduit avec tous les caractères spéciaux renvoyés sous forme de séquences d’échappement. Si l’identificateur de message spécifié n’existe pas pour la langue actuelle, la méthode renvoie la version anglaise du message avec tous les caractères spéciaux renvoyés sous forme de séquences d’échappement. Si l’identificateur du message n’existe pas dans la table, il renvoie l’ID du message.
Pour plus d’informations sur la table Message, reportez-vous à la rubrique Table Message.
| Nom | Type | Description |
|---|---|---|
| ID | Chaîne | Identificateur de message. Vous pouvez rechercher cette valeur dans le champ Clé de la table Message [sys_ui_message]. Notez que le champ Clé peut ressembler exactement à la chaîne de message réelle. |
| args | Tableau | Facultatif. Liste de chaînes ou d’autres valeurs définies par java.text.MessageFormat qui remplacent les variables dans le message spécifié. Par exemple : Dans cet exemple , « {0} » est remplacé par le contenu de current.action.name. Remarque : Les valeurs transmises ne sont pas traduites. Ils sont insérés textuellement dans le message. |
| Type | Description |
|---|---|
| Chaîne | Message de l’interface utilisateur dont les caractères spéciaux HTML ont été remplacés par des codes de nom HTML. |
Cet exemple montre le caractère esperluette remplacé par le code de nom HTML équivalent esperluette.
var my_message = gs.getEscapedMessage("Is the summary & details accurate?");
alert(my_message);
Sortie
Is the summary & details accurate?
Cet exemple montre comment remplacer une variable unique dans un message et comment les symboles < et > du message sont transposés dans les codes de nom HTML correspondants < et >.
// current.action.name is "update record"
var my_message = gs.getEscapedMessage("Abort adding action '{0}', same <subflow> can't be added twice in this subflow.", current.action.name);
alert(my_message);
Sortie
Abort adding action update record, same <subflow> can't be added twice in this subflow.
GlideSystem inclus dans le champ d’application : getMessage(String id, Array args)
Récupère les messages traduits à partir de la table Message [sys_ui_message] pour les afficher dans une interface utilisateur.
Si l’identificateur de message spécifié (clé) existe dans la table Message [sys_ui_message] pour la langue actuelle, la méthode renvoie le message traduit. Si l’identificateur de message spécifié n’existe pas pour la langue actuelle, la méthode renvoie la version anglaise du message. Si l’identificateur du message n’existe pas dans la table, il renvoie l’ID du message.
Pour plus d’informations sur la table Message, consultez Table Message
| Nom | Type | Description |
|---|---|---|
| ID | Chaîne | Identificateur de message. Vous pouvez rechercher cette valeur dans le champ Clé de la table Message [sys_ui_message]. Notez que le champ Clé peut ressembler exactement au message réel. |
| args | Tableau | Facultatif. Liste de chaînes ou d’autres valeurs définies par java.text.MessageFormat qui remplacent les variables dans le message spécifié. Par exemple : Dans cet exemple , « {0} » est remplacé par le contenu de current.action.name. Remarque : Les valeurs transmises ne sont pas traduites. Ils sont insérés textuellement dans le message. |
| Type | Description |
|---|---|
| Chaîne | Message de l’interface utilisateur. |
Cet exemple montre le message renvoyé pour l’utilisateur actuel lorsque l’espagnol est la langue actuelle.
var my_message = gs.getMessage("rows will not be updated");
alert(my_message);
Sortie
las filas no se actualizarán
Cet exemple montre comment remplacer une seule variable dans un message.
// current.action.name is "update record"
var my_message = gs.getMessage("Abort adding action '{0}', same subflow can't be added twice in this subflow.", current.action.name);
alert(my_message);
Sortie
Abort adding action update record, same subflow can't be added twice in this subflow.
Cet exemple montre comment remplacer plusieurs variables dans un message.
// current.sub_flow.name is 'schedule users'
// current.action.name is "update record"
var my_message = gs.getEscapedMessage("Abort adding action '{0}', same subflow can't be added twice in {1} subflow.", [current.action.name, current.sub_flow.name]);
alert(my_message);
Sortie
Abort adding action update record, same subflow can't be added twice in schedule users subflow.
GlideSystem inclus dans le champ d’application : getProperty(String key, Object alt)
Obtient la valeur d’une propriété Glide. Si la propriété est introuvable, renvoie une autre valeur.
| Nom | Type | Description |
|---|---|---|
| key | Chaîne | Clé de la propriété dont la valeur doit être renvoyée. |
| Alt | Objet | (Facultatif) Autre objet à renvoyer si la propriété est introuvable. |
| Type | Description |
|---|---|
| Chaîne | La valeur de la propriété Glide ou de l’autre objet défini ci-dessus. |
var attachment_link = gs.getProperty('glide.servlet.uri');
gs.info(attachment_link);
Sortie
https://instance.service-now.com/
GlideSystem inclus dans l’étendue : getSession()
Obtient une référence à la session Glide actuelle.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Une référence pour la session en cours. |
if (!gs.hasRole("admin") && !gs.hasRole("user_admin") && gs.getSession().isInteractive()) {
current.addQuery("active", "true");
}
GlideSystem inclus dans l’étendue : getSessionID()
Récupère l’ID de session GlideSession.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | ID de session. |
var myUserObject = gs.getSessionID();
gs.info(myUserObject);
A0D4E5416F3F21005BE8883E6B3EE4B8GlideSystem inclus dans l’étendue : getSessionToken()
Cette méthode n’est plus disponible. Utilisez plutôt gs.getSession().getSessionToken().
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le jeton de session. |
GlideSystem inclus dans l’étendue : getTimeFormat()
Renvoie le format d’heure associé à l’utilisateur actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le format d’heure associé à l’utilisateur actuel. |
var userTimeFormat = gs. getTimeFormat();
gs.info(userTimeFormat);
Sortie :
HH:mm:ss
GlideSystem inclus dans l’étendue : getTimeZoneName()
Renvoie le nom du fuseau horaire associé à l’utilisateur actuel.
Cette méthode a été déconseillée. Utilisez plutôt la méthode getTimeZoneName() dans l’API GlideSession .
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Nom du fuseau horaire. |
gs.info(gs.getTimeZoneName());
GlideSystem inclus dans l’étendue : getUrlOnStack()
Obtient l’URI actuel pour la session.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | L’URI. |
gs.info(gs.getUrlOnStack());
GlideSystem inclus dans l’étendue : getUser()
Renvoie une référence à l’objet GlideUser inclus dans le champ d’application pour l’utilisateur actuel.
Consultez GlideUser - Scopedpour obtenir la liste des méthodes disponibles.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| GlideUser (en anglais seulement) | Référence à un objet utilisateur dans le champ d’application défini. |
var myUserObject = gs.getUser();
gs.info(myUserObject);
Sortie
com.glide.script.fencing.ScopedUser@6c0645
GlideSystem inclus dans le périmètre : getUserDisplayName()
Obtient le nom d’affichage de l’utilisateur actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le champ Nom de l’utilisateur actuel. Par exemple, cette méthode renvoie Abel Tuter au lieu d’abel.tuter. |
Cet exemple permet d’obtenir le nom d’affichage de l’utilisateur actuel.
gs.info(gs.getUserDisplayName());
Sortie :
System Administrator
GlideSystem inclus dans le périmètre : getUserID()
Obtient les sys_id de l’utilisateur actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Les sys_id de l’utilisateur actuel. |
L’exemple suivant montre comment annuler l’affectation de tous les enregistrements d’incidents actifs affectés à l’utilisateur actuel.
var incidentGR = new GlideRecord('incident');
incidentGR.addActiveQuery();
// Filter results to incidents assigned to the current user
var currentUserSysId = gs.getUserID();
incidentGR.addQuery('assigned_to', currentUserSysId);
incidentGR.query();
while (incidentGR.next()) {
incidentGR.setValue('assigned_to', 'NULL');
incidentGR.update();
gs.info(
'Unassigned Incident: {0}: {1}',
incidentGR.number.toString(),
incidentGR.short_description.toString()
);
}
Sortie :
Unassigned Incident: INC0000057: Performance problems with wifi
Unassigned Incident: INC0009001: Unable to post content on a Wiki page
Unassigned Incident: INC0008111: ATF : Test1
GlideSystem inclus dans le périmètre : getUserName()
Renvoie le nom d’utilisateur de l’utilisateur actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Nom d’utilisateur de l’utilisateur actuel. Par exemple, cette méthode renvoie abel.tuter au lieu d’Abel Tuter. |
Cet exemple permet d’obtenir le nom d’utilisateur de l’utilisateur actuel.
gs.info("The current user name is: " + gs.getUserName());
The current user name is: adminGlideSystem inclus dans le champ d’application : hasRole(Object role)
Détermine si l’utilisateur actuel a le rôle spécifié.
| Nom | Type | Description |
|---|---|---|
| role | Objet | Rôle à vérifier. |
| Type | Description |
|---|---|
| Booléen | Vrai si l’utilisateur disposait du rôle. Renvoie la valeur true pour les utilisateurs disposant du rôle administrateur. |
if (!gs.hasRole("admin") && !gs.hasRole("groups_admin") && gs.getSession().isInteractive()) {
var qc = current.addQuery("u_hidden", "!=", "true"); //cannot see hidden groups...
qc.addOrCondition("sys_id", "javascript:getMyGroups()"); //...unless in the hidden group
gs.info("User has admin and groups admin roles");
}
else {
gs.info("User does not have both admin and groups admin roles");
}
GlideSystem inclus dans le champ d’application : hoursAgo (nombre d’heures)
Renvoie la date et l’heure pour un nombre spécifié d’heures auparavant.
| Nom | Type | Description |
|---|---|---|
| Heures | Numéro | Nombre entier d’heures |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
if (current.operation() == 'insert') {
// If no due date was specified, calculate a default
if (current.due_date == '') {
if (current.urgency == '1') {
// Set due date to 4 hours ahead of current time
current.due_date = gs.hoursAgo(-4);
}
if (current.urgency == '2') {
// Set due date to 2 days ahead of current time
current.due_date = gs.daysAgo(-2);
}
if (current.urgency == '3') {
// Set due date to 7 days ahead of current time
current.due_date = gs.daysAgo(-7);
}
}
}
GlideSystem inclus dans le champ d’application : hoursAgoEnd(nombre d’heures)
Renvoie la date et l’heure de fin de l’heure il y a un nombre spécifié d’heures.
| Nom | Type | Description |
|---|---|---|
| Heures | Numéro | Nombre entier d’heures |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : hoursAgoStart(nombre d’heures)
Renvoie la date et l’heure de début de l’heure correspondant à un nombre spécifié d’heures.
| Nom | Type | Description |
|---|---|---|
| Heures | Numéro | Nombre entier d’heures |
| Type | Description |
|---|---|
| Chaîne | GMT au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : include(nom de chaîne)
Fournit un moyen sûr d’appeler un script include à partir du bac à sable, en n’autorisant que l’inclusion de scripts approuvés.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du script à inclure. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si le script include a fonctionné. Valeurs possibles :
|
Cet exemple obtient les LDAPUtils dans le contexte de script actuel.
var ldapServer = new GlideRecord("ldap_server_config");
ldapServer.addActiveQuery();
ldapServer.query();
gs.include("LDAPUtils");
var ldapUtils = new LDAPUtils();
var errMsg = "";
while (ldapServer.next()) {
var ldap = new GlideLDAP();
var dn = ldapServer.dn;
var env = ldap.setup();
if (env == null) {
errMsg = "Failed environment setup, missing URL";
gs.eventQueue("ldap.connection_failed", ldapServer, ldapServer.getDisplayValue(), errMsg);
gs.logError("LDAP server " + ldapServer.getDisplayValue() + " failed scheduled connection test: " + errMsg, "LDAP");
}
}
GlideSystem inclus dans le périmètre : info(message de chaîne, objet parm1, objet parm2, objet parm3, objet parm4, objet parm5)
Écrit un message d’informations dans le journal système.
| Nom | Type | Description |
|---|---|---|
| message | Chaîne | Message du journal avec des espaces réservés pour tous les arguments de variable. |
| param1 | Objet | (Facultatif) Premier argument de variable. |
| param2 | Objet | (Facultatif) Deuxième argument de variable. |
| param3 | Objet | (Facultatif) Troisième argument de variable. |
| param4 | Objet | (Facultatif) Quatrième argument variable. |
| param5 | Objet | (Facultatif) Cinquième argument variable. |
| Type | Description |
|---|---|
| nul |
gs.info("This is an info message");
var myFirstName = "Abel";
var myLastName = "Tuter";
gs.info("This is an info message from {0}.{1}", myFirstName, myLastName);
This is an info message
This is an info message from Abel.TuterGlideSystem inclus dans l’étendue : isDebugging()
Détermine si le débogage est actif pour un champ d’application spécifique.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai si le débogage de session est actif ou si le niveau de journal est défini sur Déboguer pour le champ d’application spécifié. |
gs.debug("This is a log message");
var myFirstName = "Abel";
var myLastName = "Tuter";
gs.debug("This is a log message from {0}.{1}", myFirstName, myLastName);
gs.info(gs.isDebugging());
GlideSystem inclus dans l’étendue : isInteractive()
Vérifie si la session en cours est interactive. Un exemple de session interactive est lorsqu’un utilisateur se connecte normalement. Un exemple de session non interactive est l’utilisation d’une demande SOAP pour récupérer des données.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai si la session est interactive. |
if (!gs.hasRole("admin") && gs.getSession().isInteractive()) {
var qc1 = current.addQuery('u_group',"");
var gra = new GlideRecord('sys_user_grmember');
gra.addQuery('user', gs.getUserID());
gra.query();
while (gra.next()) {
qc1.addOrCondition('u_group', gra.group);
}
}
GlideSystem inclus dans l’étendue : isLoggedIn()
Détermine si l’utilisateur actuel est actuellement connecté.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai si l’utilisateur actuel est connecté. |
gs.info(gs.isLoggedIn());
GlideSystem inclus dans l’étendue - isMobile()
Vous pouvez déterminer si une demande provient d’un équipement mobile.
Cette méthode peut être utilisée dans les conditions d’action d’interface utilisateur et les règles métier.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai si la demande provient d’un équipement mobile ; sinon, faux. |
if (gs.isMobile())
gs.info("submitted from mobile UI");
else
gs.info("NOT submitted from mobile UI");
Sortie
NOT submitted from mobile UI
GlideSystem inclus dans le champ d’application : monthsAgo (nombre de mois)
Renvoie la date et l’heure d’il y a un nombre spécifié de mois.
| Nom | Type | Description |
|---|---|---|
| mois | Numéro | Nombre entier de mois plus tôt. |
| Type | Description |
|---|---|
| Chaîne | GMT du nombre spécifié de mois plus tôt à la même heure. Format : aaaa-mm-jj hh :mm :ss |
L’exemple suivant affiche la date et l’heure actuelles, ainsi que la date et l’heure d’il y a un mois à la même heure (GMT).
var nowDateTime = new GlideDateTime();
gs.info("Now: " + nowDateTime);
var oneMonthAgoDateTime = gs.monthsAgo(1);
gs.info("One month ago: " + oneMonthAgoDateTime);
Sortie
Now: 2021-10-20 15:29:15
One month ago: 2021-09-20 15:29:15
GlideSystem inclus dans le champ d’application : minutesAgoEnd(nombre de minutes)
Renvoie la date et l’heure de fin de la minute il y a un nombre de minutes spécifié.
| Nom | Type | Description |
|---|---|---|
| minutes | Numéro | Nombre entier de minutes plus tôt, tel que 5 ou 126. |
| Type | Description |
|---|---|
| Chaîne | GMT le nombre spécifié de minutes plus tôt, à la fin de la minute (59 secondes). Format : aaaa-mm-jj hh :mm :ss |
L’exemple suivant affiche la date et l’heure actuelles, ainsi que la date et l’heure 30 minutes plus tôt à la fin de la minute (GMT).
var nowDateTime = new GlideDateTime();
gs.info("Now: " + nowDateTime);
var thirtyMinutesAgoDateTime = gs.minutesAgoEnd(30);
gs.info("Thirty minutes ago end time: " + thirtyMinutesAgoDateTime);
Sortie
Now: 2021-10-20 15:22:13
Thirty minutes ago end time: 2021-10-20 14:52:59
GlideSystem inclus dans le champ d’application : minutesAgoStart(nombre de minutes)
Renvoie la date et l’heure de début de la minute un nombre spécifié de minutes.
| Nom | Type | Description |
|---|---|---|
| minutes | Numéro | Nombre entier de minutes plus tôt, tel que 15 ou 112. |
| Type | Description |
|---|---|
| Chaîne | GMT le nombre spécifié de minutes plus tôt, au début de la minute. Format : aaaa-mm-jj hh :mm :ss |
L’exemple suivant affiche la date et l’heure actuelles, ainsi que la date et l’heure 30 minutes plus tôt au début de la minute (GMT).
var nowDateTime = new GlideDateTime();
gs.info("Now: " + nowDateTime);
var thirtyMinutesAgoDateTime = gs.minutesAgoStart(30);
gs.info("Thirty minutes ago: " + thirtyMinutesAgoDateTime);
Sortie
Now: 2021-10-20 14:56:18
Thirty minutes ago: 2021-10-20 14:26:00
GlideSystem inclus dans le périmètre : monthsAgoStart(nombre de mois)
Renvoie la date et l’heure du début du mois il y a un nombre spécifié de mois.
| Nom | Type | Description |
|---|---|---|
| mois | Numéro | Nombre entier de mois plus tôt, tel que 3 ou 14. |
| Type | Description |
|---|---|
| Chaîne | GMT début du mois spécifié il y a plusieurs mois. Format : aaaa-mm-jj hh :mm :ss |
L’exemple suivant affiche la date et l’heure actuelles, ainsi que la date et l’heure d’il y a trois mois en GMT.
var nowDateTime = new GlideDateTime();
gs.info("Now: " + nowDateTime);
var threeMonthsAgoDateTime = gs.monthsAgoStart(3);
gs.info("Three months ago start date and time: " + threeMonthsAgoDateTime);
Sortie
Now: 2021-10-20 15:05:27
Three months ago start date and time: 2021-07-01 07:00:00
GlideSystem inclus dans le périmètre : néant(objet o)
Interroge un objet et renvoie true si l’objet est nul, non défini ou contient une chaîne vide.
| Nom | Type | Description |
|---|---|---|
| O | Objet | Objet à vérifier. |
| Type | Description |
|---|---|
| Booléen | True si l’objet est nul, non défini ou contient une chaîne vide ; dans le cas contraire, renvoie la valeur false. |
var now_GR = new GlideRecord();
gs.info(gs.nil(now_GR));
Sortie
true
GlideSystem inclus dans le champ d’application : quartersAgoEnd(Number quarters)
Renvoie la date et l’heure du dernier jour du trimestre pour un nombre spécifié de trimestres auparavant.
| Nom | Type | Description |
|---|---|---|
| trimestres | Numéro | Nombre entier de trimestres |
| Type | Description |
|---|---|
| Chaîne | GMT fin du trimestre qui était le nombre spécifié de trimestres, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : quartersAgoStart(nombre de trimestres)
Renvoie la date et l’heure du premier jour du trimestre pour un nombre spécifié de trimestres plus tôt.
| Nom | Type | Description |
|---|---|---|
| trimestres | Numéro | Nombre entier de trimestres |
| Type | Description |
|---|---|
| Chaîne | GMT fin du mois qui était le nombre spécifié de trimestres, au format aaaa-mm-jj hh :mm :ss |
GlideSystem inclus dans le périmètre : setProperty(clé de chaîne, valeur de chaîne, description de chaîne)
Définit la clé spécifiée sur la valeur spécifiée si la propriété se trouve dans le champ d’application du script.
| Nom | Type | Description |
|---|---|---|
| key | Chaîne | Clé de la propriété à définir. |
| valide | Chaîne | La valeur de la propriété à définir. |
| description | Chaîne | Description de la propriété. |
| Type | Description |
|---|---|
| nul |
gs.setProperty("glide.foo","bar","foo");
gs.info(gs.getProperty("glide.foo"));
Sortie
bar
GlideSystem inclus dans le périmètre : setRedirect(Object o)
Définit l’URI de redirection pour cette transaction, qui détermine ensuite la page suivante que l’utilisateur verra.
| Nom | Type | Description |
|---|---|---|
| O | Objet | Objet URI ou chaîne d’URI à définir comme redirection |
| Type | Description |
|---|---|
| nul |
gs.setRedirect("com.glideapp.servicecatalog_cat_item_view.do?sysparm_id=d41ce5bac611227a0167f4bf8109bf70&sysparm_user="
+ current.sys_id + "&sysparm_email=" + current.email)
GlideSystem inclus dans le champ d’application : tableExists(nom de chaîne)
Détermine si une table de base de données existe.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de la table dont l’existence doit être vérifiée. |
| Type | Description |
|---|---|
| Booléen | Vrai si la table existe. Faux si la table est introuvable. |
Cet exemple montre la vérification de l’existence des tables incident et foo dans l’instance ServiceNow .
gs.info("Does the incident table exist? " + gs.tableExists("incident"));
gs.info("Does the foo table exist? " + gs.tableExists("foo"));
Sortie
Does the incident table exist? true
Does the foo table exist? false
GlideSystem inclus dans le périmètre : urlEncode(String url)
Code les caractères non ASCII, les caractères ASCII non sécurisés et les espaces afin que la chaîne renvoyée puisse être utilisée sur Internet. Utilise l’encodage UTF-8. Utilise l’encodage en pourcentage (%).
| Nom | Type | Description |
|---|---|---|
| URL | Chaîne | Chaîne à coder. |
| Type | Description |
|---|---|
| Chaîne | Chaîne avec des caractères non ASCII, des caractères ASCII non sécurisés et des espaces codés. |
GlideSystem inclus dans le périmètre : urlDecode(String url)
Remplace les caractères codés UTF-8 par des caractères ASCII.
| Nom | Type | Description |
|---|---|---|
| URL | Chaîne | Caractères codés UTF-8 % (%). |
| Type | Description |
|---|---|
| Chaîne | Les caractères codés sont remplacés par des caractères ASCII. |
GlideSystem inclus dans le périmètre : warn(message de chaîne, objet parm1, objet parm2, objet parm3, objet parm4, objet parm5)
Écrit un message d’avertissement dans le journal système.
| Nom | Type | Description |
|---|---|---|
| message | Chaîne | Message du journal avec des espaces réservés pour tous les arguments de variable. |
| param1 | Objet | (Facultatif) Premier argument de variable. |
| param2 | Objet | (Facultatif) Deuxième argument de variable. |
| param3 | Objet | (Facultatif) Troisième argument de variable. |
| param4 | Objet | (Facultatif) Quatrième argument variable. |
| param5 | Objet | (Facultatif) Cinquième argument variable. |
| Type | Description |
|---|---|
| nul |
gs.warn("This is a warning");
var myFirstName = "Abel";
var myLastName = "Tuter";
gs.warn("This is a warning from {0}.{1}", myFirstName, myLastName);
This is a warning
This is a warning from Abel.TuterGlideSystem inclus dans le périmètre : xmlToJSON (String xmlString)
Prend une chaîne XML et renvoie un objet JSON.
| Nom | Type | Description |
|---|---|---|
| xmlString (Chaîne de caractères XML) | Chaîne | Chaîne XML à convertir. |
| Type | Description |
|---|---|
| Objet | Objet JSON représentant la chaîne XML. Null si impossible de traiter la chaîne XML. |
var jsonObject = gs.xmlToJSON(xmlString);
GlideSystem inclus dans le champ d’application : yearsAgo(Number years)
Renvoie la date et l’heure d’il y a un certain nombre d’années.
| Nom | Type | Description |
|---|---|---|
| années | Numéro | Nombre entier d’années |
| Type | Description |
|---|---|
| Chaîne | GMT début de l’année correspondant au nombre spécifié d’années, au format aaaa-mm-jj hh :mm :ss. |
GlideSystem inclus dans le champ d’application - yesterday()
Renvoie l’heure d’hier (il y a 24 heures).
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | GMT pour il y a 24 heures, au format aaaa-mm-jj hh :mm :ss |