JavaScript 補助関数
自動化ルールには、コード JavaScript 内の一般的なタスク解決を支援するヘルパー関数のライブラリが含まれています。
ヘルパー関数の読み込み
ヘルパー関数はデフォルトでは利用できません。 それらをルール JavaScript に読み込む必要がある。 それらを読み込む方法はいくつかあります:
const utils = require("utils");
const utils = require("utils");
return utils.createResource("Task", {
Project: { Id: args.Current.Project.Id },
UserStory: {Id: args.ResourceId},
Name: "Created Automatically"
});
const {createResource, updateResource, addDays} = require("utils");
const { createResource } = require("utils");
return createResource("Task", {
Project: { Id: args.Current.Project.Id },
UserStory: { Id: args.ResourceId },
Name: "Created Automatically"
});
ヘルパー関数のリスト
コマンド
新しいリソースを作成するコマンド:createResource(resourceType: string, fields?: ResourceFields)
const utils = require("utils");
return utils.createResource("UserStory", {
Project: { Id: args.Current.Project.Id },
Feature: { Id: args.ResourceId },
Name: "Created Automatically"
});既存リソースを更新するコマンド: updateResource(resourceType: string, resourceId: number, fields: ResourceFields)const utils = require("utils");
return utils.updateResource("Feature", args.ResourceId, { Release: { id: 100 } });既存のリソースを削除するコマンド: deleteResource(resourceType: string, resourceId: number)const utils = require("utils");
return utils.deleteResource("TeamAssignment", 50);既存のリソースを別の状態に移動するコマンド: moveToState(resourceType: string, resourceId: number, stateKind: 'Initial' | 'Planned' | 'Final')const utils = require("utils");
return utils.moveToState("Epic", args.ResourceId, "Final");既存リソースを名前で別の状態に移動するコマンド: moveToStateByName(resourceType: string, resourceId: number, stateKind: string)const utils = require("utils");
return utils.moveToStateByName("UserStory", args.ResourceId, "In Progress");リクエスト HTTP 送信コマンド: sendHttpRequest(url: string, options?: { method?: 'POST' | 'PUT' | 'DELETE', body?: any, headers?: { [key: string]: string } })const utils = require("utils");
return utils.sendHttpRequest("https://hooks.slack.com/services/...", {
body: {
text: ___PROTECTED_6___
}
});
const utils = require("utils");
return utils.sendHttpRequest("https://webhook.site/...",
{
method: "POST",
body: "Hello",
headers: {"additional-info": "test message" }
}
);
日付の操作
日付に特定の期間を加算する関数
指定されたミリ秒数を指定された日付に加算します: 指定された秒数をaddMilliseconds(date: DateLike, milliseconds: number): Date 指定された日付に加算します: 指定された分数を指定された日付に加算します addSeconds(date: DateLike, seconds: number): Date : 指定された時間を指定された日付に加算します addMinutes(date: DateLike, minutes: number): Date : 指定された日数を指定された日付に加算します addHours(date: DateLike, hours: number): Date : 指定された週数を指定された日付に加算します addDays(date: DateLike, days: number): Date : 指定された満月数を指定された日付に加算します addWeeks(date: DateLike, weeks: number): Date : addMonths(date: DateLike, months: number): Date 指定された完全な年数を指定された日付に加算します: addYears(date: DateLike, years: number): Date 以下は、別の日付を基に日付を計算する例です:const utils = require("utils");
const kickStartDate = new Date("2019-03-15T12:00:00Z");
const demoDate = utils.addDays(kickStartDate, 14);
console.log(kickStartDate); // 2019-03-15T12:00:00Z
console.log(demoDate); // 2019-03-29T12:00:00Z
指定された日付間の差を計算する関数
指定された日付間のミリ秒数:指定された日付differenceInMilliseconds(date: DateLike, deduction: DateLike): number 間の秒数。 結果はデフォルトで小数点以下ゼロ桁に切り捨てられます。 浮動小数点結果を得るには、3番目の引数に「true」を渡す:指定された日付間の分数 differenceInSeconds(date: DateLike, deduction: DateLike, asFloat?: boolean): number : differenceInMinutes(date: DateLike, deduction: DateLike, asFloat?: boolean): number 指定された日付間の時間数: differenceInHours(date: DateLike, deduction: DateLike, asFloat?: boolean): number 指定された日付間の日数:指定された日付間の週数 differenceInDays(date: DateLike, deduction: DateLike, asFloat?: boolean): number :指定された日付間の differenceInWeeks(date: DateLike, deduction: DateLike, asFloat?: boolean): number 月数:指定された日付 differenceInMonths(date: DateLike, deduction: DateLike, asFloat?: boolean): number 間の年数:指定された日付が等しいかどうかを調べ differenceInYears(date: DateLike, deduction: DateLike, asFloat?: boolean): number 、真または偽を返す: equalDates(date: DateLike, other: DateLike): booleanconst utils = require("utils");
const plannedFeatureStartDate = "2019-04-01T00:00:00Z";
const plannedFeatureEndDate = "2019-05-15T00:00:00Z";
const featureDurationInWeeks = utils.differenceInWeeks(plannedFeatureEndDate, plannedFeatureStartDate, true);
console.log(featureDurationInWeeks); // 6.285714285714286
数値と文字列の操作
丸め関数
指定された小数点以下の桁数に丸めます:round(value: number, precision?: number): numberconst utils = require("utils");
const spentHours = args.Current.TimeSpent; // 11
const spentDays = spentHours / 8; // 1.375
const roundedSpentDays = utils.round(spentDays, 2);
console.log(roundedSpentDays); // 1.38
切り捨て関数
指定された長さより長い文字列は切り詰められます。 切り詰められた文字列の末尾の文字は「...」に置き換えられます:truncate(text: string, length?: number): stringconst utils = require("utils");
const name = args.Current.Name;
const truncatedName = utils.truncate(name, 50);
console.log(truncatedName); // Lorem ipsum dolor sit amet, consectetur adipisc...