Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

登録した日付から2営業日を計算する方法

AMY59
Tera Contributor

 

お世話になっております。

 

申請機能を作成するにあたり、承認期限日が登録される機能を実装しようと検討しております。

様々なサイトを確認し、実施しておりますが実装がうまくいかずご教示いただきたく存じます。

詳細は下記のとおりです。

 

〇作業日(u_work_date)を登録すると、クライアントスクリプト(onChange)が発動し

 登録された日付の2営業日前が計算され、自動的に承認期限日(u_limit_date)に計算された日付が登録される

 

〇機能の流れ

スクリプトインクルードを呼び出し⇒サーバー側で計算⇒クライアントで受け取ってフィールドに設定

 

〇検討しているコード(スクリプトインクルード)

//営業日スケジューラのsys_idの取得
var sch_id = "33aa0ba09716711071b8391e6253afe6"; // JP Business Day
//作業日の値を変数gdtへ格納
var gdt = getValue("u_work_date");
//営業日数を変数durationに設定
var duration = -2; // 営業日数
//呼び出した営業日スケジューラを日本に設定
var sched = new GlideSchedule(sch_id, "Asia/Tokyo");
//2営業日の計算
var dur = new GlideDuration(60 * 60 * 24 * 1000 * duration);
//結果格納
var app_result = sched.add(gdt, dur);
//結果を承認期限日に格納
return app_result;

 

コードについてのコメントやご指摘等ございましたらご教示いただけますと幸甚です。

 

以上、よろしくお願いいたします。

1 件の受理された解決策

Hiroki Wada
Tera Guru

こちらのナレッジ記事が参考になるかと思います。

ご確認ください。

https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0823046

元の投稿で解決策を見る

4件の返信4

Hiroki Wada
Tera Guru

こちらのナレッジ記事が参考になるかと思います。

ご確認ください。

https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0823046

ご回答いただきありがとうございます。

上記サイトを参考にビジネスルールでスケジュール情報取得、クライアントスクリプトにて掲載するスクリプトを作成して実装することができました。ありがとうございました。

Kentaro5
Giga Guru

var gdt = getValue("u_work_date");

このgetValueは取れているのでしょうか?

 

https://www.servicenow.com/community/developer-articles/how-to-call-script-include-from-client-scrip...

ご回答ありがとうございます。

当方がまだスクリプトに対する知識が浅く、サーバー側・クライアント側の区別ができておらず

見当違いなスクリプトを掲載してしまいました。

クライアントスクリプトのnewValueにて取得ができたのでそちらで対応しました。