日曜日, 5月 25, 2025
No menu items!
ホーム ブログ ページ 3394

ServiceNow バルクダウンロードURLジェネレーター #効率化 – Qiita



ServiceNow バルクダウンロードURLジェネレーター #効率化 - Qiita

はじめに

ServiceNowは多くの企業で利用されているITSMツールですが、データのエクスポート作業は意外と手間がかかるものです。特に定期的にデータを取得する必要がある場合、毎回同じ操作を繰り返すのは非効率です。

このツールによりsys_id含むすべてのフィールドを同じ形式でダウンロードすることができます。(そのURLを作ります)

このURLをブラウザに貼り付けたり、さらに効率化する場合はブックマークにURLを登録しておくと毎回同じ形式、同じ条件のリストがダウンロードできます。

これをPower BIなどのツールから読み込むなどすると、ServiceNowのデータを活用したダッシュボードを作ることなども可能です。活用方法は無限大です。

ツールのダウンロード

Googleドライブの画面に遷移しますので右上のダウンロードアイコンからzipがダウンロードできます。展開したHTMLファイルはご自身のPCでローカル起動することができます。
https://drive.google.com/file/d/1YTPSu7uj6r1AsRrN_Y2cmDizfKrOxMfw/view?usp=drive_link

ツールの概要

主な機能

  • ServiceNowのフィルタURLを基にエクスポートURLを自動生成
  • 出力形式の選択(XLSX, CSV, XMLに対応)
  • エクスポートするフィールドの選択(全てor表示中のみ)
  • データのソート順の指定
  • 最大レコード数の設定
  • 過去に生成したURLの履歴保存(最大10件表示、20件まで保存)
  • お気に入りURL機能(よく使うURLを永続的に保存)

デモ画面

ツールはGUIで作られておりユーザーフレンドリーにしています。

image.png

生成されたURLをブラウザに貼り付けるとダイレクトにリストをダウンロードできます。
image.png

なぜこのツールを作ったのか

背景と課題

ServiceNowからのデータ抽出は日常的な業務の一つですが、以下のような課題がありました:

  1. 手順が煩雑: フィルター設定→右クリック→エクスポート→形式選択→ダウンロードという手順を毎回実行する必要がある
  2. 一貫性の欠如: チーム内で異なる手順でデータを抽出すると、結果の差異が生じることがある
  3. 繰り返し作業: 月次/週次レポートなど、同じ条件でのエクスポートを何度も行う必要がある

解決策

ServiceNowでは、適切なパラメータを持つURLにアクセスするだけで、データをエクスポートできます。このURLをテンプレート化し、必要なパラメータを簡単に設定できるツールを作れば、上記の課題は解決できると考えました。

技術的な解説

使用技術

  • HTML/CSS: ユーザーインターフェース構築
  • JavaScript: URL処理とローカルストレージ操作
  • URLオブジェクト: URLの解析と構築
  • localStorage API: 履歴とお気に入りの保存

主要な実装ポイント

1. ServiceNow URLの解析

// URLとクエリパラメータの分離
let url = new URL(baseUrl);
const path = url.pathname;
let queryParams = new URLSearchParams(url.search);

// sysparm_queryパラメータを取得
let queryValue = queryParams.get('sysparm_query') || '';

2. エクスポートURLの生成

// エクスポートURLを構築
let exportUrl = basePath + "?" + format;

if (fields === 'all') {
    exportUrl += '&sysparm_default_export_fields=all';
}

if (recordCount) {
    exportUrl += '&sysparm_record_count=' + recordCount;
}

// クエリとソート条件を結合
if (queryValue || sort) {
    exportUrl += '&sysparm_query=';
    
    if (queryValue) {
        exportUrl += queryValue;
    }
    
    if (sort && queryValue) {
        exportUrl += '^' + sort;
    } else if (sort) {
        exportUrl += sort;
    }
}

3. 履歴管理

履歴管理には localStorage を活用し、各URLに一意のIDを付与してお気に入りとの関連付けを容易にしています。

// 履歴に追加する関数
function addToHistory(url, baseUrl) {
    try {
        const history = JSON.parse(localStorage.getItem('snUrlHistory')) || [];
        
        // ユニークIDを生成
        const id = 'url_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
        
        // 新しい履歴を先頭に追加
        history.unshift({
            id: id,
            url: url,
            baseUrl: baseUrl,
            date: new Date().toISOString()
        });
        
        // 最大20件まで保存
        const trimmedHistory = history.slice(0, 20);
        
        localStorage.setItem('snUrlHistory', JSON.stringify(trimmedHistory));
        loadHistory(); // 履歴表示を更新
    } catch (e) {
        console.error('履歴の保存中にエラーが発生しました:', e);
    }
}

4. お気に入り機能

お気に入り機能は履歴とは別のストレージキーを利用しています。これにより、履歴を削除してもお気に入りは保持されます。

function toggleFavorite(id) {
    try {
        const favorites = JSON.parse(localStorage.getItem('snUrlFavorites')) || [];
        
        if (favorites.includes(id)) {
            // お気に入りから削除
            const updatedFavorites = favorites.filter(favId => favId !== id);
            localStorage.setItem('snUrlFavorites', JSON.stringify(updatedFavorites));
            showAlert('お気に入りから削除しました', 'success');
        } else {
            // お気に入りに追加
            favorites.push(id);
            localStorage.setItem('snUrlFavorites', JSON.stringify(favorites));
            showAlert('お気に入りに追加しました', 'success');
        }
    } catch (e) {
        console.error('お気に入り操作中にエラーが発生しました:', e);
        showAlert('お気に入り操作に失敗しました', 'warning');
    }
}

使用方法

基本的な使い方

  1. ServiceNowのリスト画面で、フィルタを適用します
  2. リストのヘッダー部分で右クリックし、「Copy URL」を選択
  3. コピーしたURLをツールの入力欄に貼り付け
  4. 出力形式、フィールド、レコード数、ソート順を選択
  5. 「エクスポートURL生成」ボタンをクリック
  6. 生成されたURLをコピーし、ブラウザで開く

<フィルタした状態でURLをコピーする>
image.png

<ツールにURLを貼り付ける>
image.png

応用

  • 頻繁に使用するURLは「お気に入り」に登録(★マークをクリック)
  • 不要な履歴は「削除」ボタンで整理
  • 履歴からURLをコピーして再利用

注意点

  1. ServiceNowのバージョンによってURLパラメータの仕様が異なる可能性があります
  2. 大量のデータエクスポートはServiceNowインスタンスに負荷をかける可能性があるため、業務時間外に実行するなど配慮しましょう
  3. ブラウザのローカルストレージを使用しているため、ブラウザのキャッシュをクリアすると履歴とお気に入りは失われます

まとめ

今回紹介したツールは、日常的なServiceNowの業務効率化に役立ちます。たった1つのHTMLファイルで実装できるため、導入のハードルが非常に低いのが特徴です。

このようなシンプルな業務効率化ツールは、大規模なシステム変更なしに業務改善を実現できる点で非常に有用です。自社の環境に合わせてカスタマイズし、チーム全体の生産性向上につなげていただければ幸いです。


気に入って頂けましたら、「いいね」を押して頂けると嬉しいです。

※記事中で使用しているコードは、実際の業務で使用する前にテスト環境でご確認ください。ServiceNowの設定やバージョンによって動作が異なる場合があります。





Source link

Views: 0

「ヒロアカ」スピンオフ「ヴィジランテ」4月7日放送開始!【春アニメ2025】 – GAME Watch


 アニメ「ヴィジランテ -僕のヒーローアカデミア ILLEGALS-」第1話が、TOKYO MX、BS日テレにて4月7日23時より放送開始となる。配信はPrime Videoなどにて4月7日23時30分より実施される。

 本作は脚本・古橋秀之氏、作画・別天荒人氏によって「少年ジャンプ+」で連載された「僕のヒーローアカデミア」の同名公式スピンオフマンガを原作としたアニメ。「僕のヒーローアカデミア」の数年前を舞台に、非合法(イリーガル)ヒーロー「ヴィジランテ」の活躍が描かれる。オープニングテーマはこっちのけんとさんの「けっかおーらい」、エンディングテーマはyutoriの「スピード」となっている。

 物語の主人公は、ヒーローに憧れながらも夢を諦めた冴えない大学生・灰廻航一(CV:梅田修一朗さん)。航一は、無許可でゲリラライブを行なう自称アイドル・ポップ☆ステップ(CV:長谷川育美さん)と、「クズ専門の“掃除屋”」を名乗る謎の覆面男・ナックルダスター(CV:間宮康弘さん)に出会い「ヴィジランテ」の活動に巻き込まれていくこととなる。





Source link

Views: 0

「LINE ポコパン」,2025年6月11日15:00をもってサービス終了。リリースから約12年で幕を下ろす



「LINE ポコパン」,2025年6月11日15:00をもってサービス終了。リリースから約12年で幕を下ろす

「LINE ポコパン」,2025年6月11日15:00をもってサービス終了。リリースから約12年で幕を下ろす



Source link

Views: 0

大阪 岸和田市長選挙 新人の佐野英利氏が初当選 前市長ら抑え



大阪 岸和田市長選挙 新人の佐野英利氏が初当選 前市長ら抑え

市長の失職に伴う大阪・岸和田市の市長選挙が6日行われ、無所属で新人の佐野英利氏が前市長らを破り、初めての当選を果たしました。



Source link

Views: 0

「LINEプロモーション絵文字」正式スタート 公式アカ友だち追加で絵文字プレゼント



「LINEプロモーション絵文字」正式スタート 公式アカ友だち追加で絵文字プレゼント

企業が自社のオリジナル「LINE絵文字」を、友だち追加を条件にユーザーへ無料配布できるサービス「LINEプロモーション絵文字」の正式提供がスタート。



Source link

Views: 0

ローマ教皇 予告なしでミサ登場



ローマ教皇 予告なしでミサ登場

ローマ教皇 予告なしでミサ登場



Source link

Views: 0

ライドオンポーズのヒップラインが美しい…!「ガンダム SEED FREEDOM」より「ラクス・クライン(パイロットスーツVer.)フィギュアが抽選販売



ライドオンポーズのヒップラインが美しい…!「ガンダム SEED FREEDOM」より「ラクス・クライン(パイロットスーツVer.)フィギュアが抽選販売

ライドオンポーズのヒップラインが美しい…!「ガンダム SEED FREEDOM」より「ラクス・クライン(パイロットスーツVer.)フィギュアが抽選販売



Source link

Views: 0

フォークリフトから転落 小1死亡



フォークリフトから転落 小1死亡

フォークリフトから転落 小1死亡



Source link

Views: 0

アニメ「しろひよ」PV第2弾公開、“オトメン”な前世の記憶蘇る第1話場面カットも



アニメ「しろひよ」PV第2弾公開、“オトメン”な前世の記憶蘇る第1話場面カットも

アニメ「白豚貴族ですが前世の記憶が生えたのでひよこな弟育てます」のPV第2弾、第1話あらすじ、場面カットが到着した。



Source link

Views: 0