2
votes

Comment utiliser Moment.js dans ServiceNow?

Notre équipe essaie d'utiliser Moment.js dans notre exemple, mais n'arrive pas à le faire fonctionner. Voici quelques questions que nous nous posons à ce sujet:

  1. Nous avons remarqué qu'il existe une dépendance prête à l'emploi appelée moment-timezone-with-data-2010-2020-v0.5, est-ce la même chose que moment.js? Si tel est le cas, cela signifie-t-il que nous n'avons pas besoin d'intégrer moment.js en tant que nouvelle dépendance?
  2. Nous avons essayé d'utiliser la dépendance ootb ci-dessus ET avons essayé d'intégrer moment.js à utiliser dans un widget, et nous continuons à recevoir une erreur de console indiquant que le moment n'est pas défini. Quelqu'un peut-il fournir des instructions sur la manière de faire fonctionner correctement l'une de ces dépendances?
  3. Si nous voulions utiliser moment.js sur une règle métier de plate-forme, que devons-nous faire pour y parvenir? Pouvez-vous accéder à une dépendance via une règle métier?

Merci!


0 commentaires

3 Réponses :


-1
votes

malheureusement, vous ne pouvez pas utiliser momentjs côté serveur dans ServiceNow. Voici les instructions d'installation de momentjs pour Rhino (l'interpréteur javascript utilisé par SNOW): https: //gist.github .com / UnquietCode / 5614860

Comme vous pouvez le voir, vous auriez besoin d'écrire de nouvelles classes Java que SNOW ne vous permettra pas de faire.

D'un autre côté, sur le client, vous pouvez l'utiliser, il suffit de copier-coller l'implémentation "Browser" et de l'inclure en tant que script global de l'interface utilisateur: https://momentjs.com/docs/#/use-it/browser/


0 commentaires

0
votes

Chargez le code de Moment.js dans un script include et vous pouvez l'appeler comme n'importe quel autre script include.

Si vous comptez utiliser les fonctions de fuseau horaire, vous devrez réécrire les appels au moment à partir du javascript du fuseau horaire pour utiliser le script ci-dessus.


0 commentaires

1
votes

Voici comment j'ai pu le faire:

Créez une inclusion de script avec les attributs suivants:

  • le nom du script est "moment" (il doit avoir ce nom exact)
  • la portée est soit globale, soit la même portée que votre projet (j'ai utilisé global)
  • défini comme appelable par le client

Collez le code de MomentJS 2.22.1 dans le corps du script.

Pour vérifier que vous pouvez accéder à votre Script Include, ouvrez un script d'arrière-plan et exécutez le code de test suivant:

var calendar = moment().add(1, 'days').calendar();
gs.log("calendar test: " + calendar);

var dayCount = moment().diff('1809-02-12', 'days');
gs.log('Abraham Lincoln was born ' + dayCount + " days ago!");

Pour répondre à votre question sur moment-timezone-with-data-2010-2020-v0.5 : non c'est pas la même chose; voici un lien vers Moment Timezone qui est une autre bibliothèque de la même organisation.

Au moment de cet article, 2.22.1 est la dernière version qui s'exécute dans ServiceNow. Il existe des versions plus récentes de MomentJS, mais elles sont trop nouvelles pour l'interpréteur SN.

Vous pouvez également créer un script d'interface utilisateur avec la version 2.22.1.


0 commentaires