工事資産の管理を加速させる『HILTI ON!Track』!
更に超加速させるAPI(ON!Track ユナイト)を使ってみました!
自社では HILTI 製の資産管理アプリ 『HILTI ON!Track』 を導入しました。
そして今回、公開されている API 『ON!Track Unite』 を実際に触ってみたので、
導入方法・注意点・実運用での活用例を備忘録としてまとめます。
結論から言うと──
資産数が多い現場ほど、API活用の必要性は高まります!

多くの情報を操作できる非常に優秀なAPIです!
資産管理のさらなる合理化に大変おすすめです!
HILTI ON!Track Unite(API)とは?
【公式ドキュメント】
ON!Track Unite Hub – Hilti ON!Track Unite
ON!Track ユナイトは非常に多くの操作を幅広く実行できる公式API です。
API 経由で操作できる範囲が非常に広く、手動で行える作業ほぼ全てプログラム化出来るAPIです。
できること(一部抜粋)
- 資産ステータスの入力・更新・取得
- 添付ファイルなども一括登録
- 他チャットツールのAPIなどの相性が良好
※ご使用にはHILTI ON!Trackの契約、API使用環境が必要になります

機能が制限されがちな API が多い中、
ここまで開放されている API は大変ありがたい!
API導入の流れ①テクニカルユーザーのアカウント入手
HILTI担当営業の方にご連絡ください

HILTI ON!Track導入済みの前提で記述致します。
APIの使用には以下の4つの情報が必要になります。
- Client ID(顧客ID)
- Client Secret(顧客の秘密)
- Username of the technical user(テクニカルユーザー名)
- Password of the technical user(テクニカルユーザーパスワード)
HILTI担当営業の方に「HILTI ON!Track ユナイトを使いたい」とお伝え下さい。
- Client ID / Client Secret / ユーザー名→ 営業経由で発行
- パスワード→ユーザー名発行後に自分で設定可能

利用者からのテクニカルユーザーアカウント発行はできません、営業ご担当の方にご連絡ください。
重要な注意事項!
私がAPI利用申請した時は日本で初のケースだったらしく、
日本スタッフではわからず本国本社の対応となり、アカウント発行まで1ヶ月かかりました。
参考:公式ドキュメント(Create an authentication request in Postmanの項)

実運用前にAPI導入検討されている方は、準備期間を確保しておく必要があると思います!
API導入の流れ②トークンの発行
トークン発行の注意事項
トークンの発行には公式ドキュメントでは、postmanの利用を紹介しています。手順も図解されていますのでご参考までに。
社内ネットワークで使う場合はSSL認証が通らない場合があるので、諸条件ご確認ください。
私はpostmanは使わず、Pythonでトークン取得プログラム作成し使用しています。
【要確認】トークンのライフサイクル
- トークンは60分有効
- トークンが有効時、新しいトークンはリフレッシュできない
- トークンの60分失効後に再発行できる
これはなかなか厳しい仕様でトークン取得とAPIの実行の関係性は、
- 60分以上の間隔を開けて「トークン取得>API実行」
- (前回のトークン取得から60分以上経過したか分岐)「トークン取得>トークン保存or保存済みトークン取得>API実行」
となります。デバッグの観点から後者になるかと思います、この点ご留意の上でシステム設計を行う必要があります。
参考:公式ドキュメント(Token lifecycleの項)

リフレッシュトークンでは無いのは、ややクセがあります。
トークンの発行には「テクニカルユーザー」のアカウントが必要ですが、テクニカルユーザーアカウントは複数所持でき、その分並行してアカウントを所有出来ます。

API実践①APIで情報を取得する

取得したトークンでgetすると上表のように資産情報を取得できます。
資産(assets)の一覧を取得して、表化し特定の列を抽出しています。
上表はpythonでpandasで表を作成しています。
https://cloudapis.hilti.com/ts/ontrack/unite/v1/assets
#上記URLを加工してフィルターをかけた結果を得ることもできます
#公式ドキュメント Parameters各項参照
"name": 資産名
"groupId":グループID
"scanCode": バーコード
"scanCodeType": コードの種類(BAC:バーコード)
"currentLocationId": 現在位置ID
"inventoryEmployeeId": 資産管理者ID
※上表はフェイク入れています
参考:公式ドキュメント(Assets All operations on the Asset domain model)

getで取得できる情報は大変充実しています!
posy putも同様に間口が広くかなり柔軟に使えるAPIです!
公式ドキュメントも練習ができたりとかなり親切設計!
API実践②他APIとの連携
SlackのBotに資産情報を発信させてみた

ON!Track APIから取得した情報を、チャットアプリSlackのAPI経由で送ってみました。
おそらくON!Track APIのデータ活用形の一つとして、このようなチャットアプリに通知を入れるという形があるかと思います。
asset情報には資産名と資産IDなどが格納されているのですが(上表name)、
移動履歴などは資産IDで資産情報マスタと結びついています。
資産移動履歴(transfers)に資産名を表示するには、
/transfersと/assetsをgetして、資産移動履歴内の資産IDから参照して資産名を結びつける必要があります。

データ解析やアラートの作成時には、複数のデータベースをgetして参照しあう設計を準備する必要がありそうです。1つのデータベース単体で済む内容の場合、純正アラートが豊富です。
APIが活躍できる状況は?
通知システムの強化・
- その日の移動履歴をチャットアプリに送付する(アプリの通知でもできそう?)
- 初期設定位置(ホーム)と現在位置が異なり、間違えた場所に格納した場合に本人にチャットアプリで通知
- 資産名などの名前ルール変更時、一括変更できる(webアプリ標準機能では不可)
下記のような仕組みを現在考えています、業務の合間に作成するのでなかなか進まないですが…

HILTI ON!Trackはもともとの通知機能が充実しており、資産管理に特化しています。更に機能を強化したい場合にAPIという選択肢が有効だと思います。
致命的弱点!インポート機能で『更新』ができないことへの対策
これはHILTI ON!Trackのかなり致命的な弱点なのですが、
インポート機能は新規作成しかできません。(記事作成日時点)
これは正直、かなり厳しい仕様です。
- Excel インポート:新規作成のみ
- 既存資産の更新:不可
- 名称変更=「1つずつwebアプリで手動」 or 「一括削除 → 一括再登録」
- 移動履歴・添付ファイル:インポートでは引き継がれない→結局手動添付
また、エクスポートしたExcelとインポートするExcelは形式や表記が異なり、
エクスポートしたExcelの転用にはかなり複雑な手動整形と手動追記を必要とします。
これらに対して、APIでputするプログラムを作成すると名称のみ一括変更ができます。

一括更新ができないのはかなり痛い!ON!Track APIは、資産数が多ければ多いほど必要性が高まると感じています。
エクスポートしたExcelでインポートさせるExcelの書式が全然違うのも厳しい点!
ON!Trackアプリの日本語おかしい問題
ON!Trackアプリの通知機能も研究すればもっと活用できそうなのですが、
海外開発アプリの日本語訳がおかしいところが多々あり、ちょっと苦戦しています…。
正直これの日本語を解析・検証してアプリを使いこなすくらいなら、
APIでプログラム書いたほうが速いレベルで誤記が多いです。


APIは非常に多機能なのですが、
ブラウザ版とスマホアプリ版で単語の日本語訳が致命的に違ったり、
翻訳しきれていないなどが多く、その固有名詞の表記ゆれがAPIドキュメント(英語)の読解の妨げにもなっていたりします。
まとめ
管理資産数が多く保証書や検査書の添付などが多い場合、APIの活用を大変オススメ致します。
特に”致命的な欠点”として挙げた「インポートで更新ができない」点は非常に厳しく、現状APIでフォローするしかありません。
また、貸出・返却を管理者不在で完了させるシステムなので「適正な場所にあるか」という監視体制が重要なのですが、
この問題もAPIで取得できるデータ同士の参照でオートメーション化できます。
このような資産管理アプリが目指す「管理の非属人化」「事務手続きの削減」を実現するには、
webアプリでは足りていない領域を、APIでフォローする事を推奨致します。

「資産管理」は突き詰めるとキリがないのですが、人力作業で究極を求める時間もコストもありません。
資産はオートメーションが管理して、人間は人間にしかできない高付加価値な仕事をする。HILTI ON!TrackユナイトAPIは、その可能性ある有用なAPIだと思います!




コメント