ProShop ERP連携ガイド SkyPlanner APSによる生産スケジューリング
このProShop連携ガイドでは、管理者、コンサルタント、ITチーム向けに、ProShop ERPとSkyPlanner APSを接続する方法を説明します。SkyPlannerはProShop独自のAPIを使い、以下のように双方向で連携します。
- Work Ordersとその工程、Parts、Work Order BOMレコード、Work Cells、Users、Tools、Fixtures、Purchase Ordersを取り込みます。
- 開始予定日と終了予定日を製造指図に書き戻します。
- 必要に応じて、作業者の作業時間をProShop Time Trackingに書き戻すこともできます。
- SkyPlannerのWebhookが、スケジュールの変更を発生時に通知します。
導入支援の段階で、SkyPlannerチームがお客様のProShop環境に合わせて連携を設定し、本稼働後もサポートします。このガイドは、連携の構築に参加するパートナーや開発者、またはSkyPlannerのREST APIの仕様書(APIリファレンス)を参照して独自に開発したい方を対象としています。
ProShopの連携インターフェース
ProShopには外部スケジューラから接続するための二つの方法があり、ProShop APIの開発者向けドキュメントで説明されています。
- ProShop GraphQL API。 “ProShop provides a GraphQL API, available via HTTP(S).”(ProShopはHTTP(S)経由で利用できるGraphQL APIを提供しています。)エンドポイントは一つです。すべての呼び出しで、
query、variables、operationNameをJSONボディに含め、<proshop root>/api/graphqlにHTTP POSTを送信します。各モジュールには、単一レコードを取得する単数形のクエリと、一覧を取得する複数形のクエリがあります。一覧のページ分割にはpageSize(デフォルト20)とpageStartを使い、recordsとtotalRecordsが返されます。また、各モジュールのAdvanced Searchに対応するfilter引数とquery引数を指定できます。スキーマはイントロスペクションに対応しています。(ProShop APIの概要) - Recently Updated Records API。 “A simple REST interface allows external integrations to request information between arbitrary points in time.”(シンプルなRESTインターフェースを通じて、外部の連携システムから任意の期間の情報を取得できます。)
<proshop root>/recentlyupdatedrecordsを呼び出し、start(ISO 8601)と、必要に応じてend、filterby(指定例:workorders,workcells,purchaseorders,timetracking,deletions)を指定します。事前にProShopチームがインデックスを有効にする必要があります。(Recently Updated Records API)
書き込みにはGraphQLのmutationsを使います。ドキュメントにはTime Tracking Loginの例が記載されており、書き込み権限はスコープを通じてモジュールごとに付与されます。
認証とスコープ
- すべての呼び出しにアクセストークンが必要です。
Authorization: Bearer <token>またはtokenクエリパラメータで送信します。 - OAuth 2.0 Client Credentials(ProShop 5.2.3以降)。ProShopのシステム管理者がSystem Config > Manage Authorizationsを開き、NameとMaximum Scopeを指定してAuthorizationを作成し、Direct LoginとActiveにチェックを入れます。Unique IDとShared Secretをそれぞれ
client_idとclient_secretとして使います。アプリは<proshop root>/home/member/oauth/accesstokenにgrant_type=client_credentialsをPOSTし、expires_inを含むBearerトークンを取得します。リフレッシュトークンはないため、有効期限が切れたら新しいトークンを要求します。(クライアントクレデンシャルフロー) - Time Tracking Loginなど、ユーザーコンテキストが必要な呼び出しにはOAuth 2.0 Authorization Flowを使います。
- スコープ。 形式は
SCOPE_NAME:[{r|w|d|p}]で、読み取り、書き込み、削除、環境設定の権限を表します。スケジューラは通常、workorders:rw parts:r purchaseorders:r users:r tools:rを要求し、作業時間を書き戻す場合はTime Trackingも追加します。ProShop 5.1.9以降は、”a scope grant request is now required on all connections to the API.”(APIへのすべての接続で、スコープの付与要求が必要です。)(認可スコープ) - 監査証跡。 クライアントクレデンシャルによる呼び出しには、ユーザーではなくアプリケーション名が記録されます。
SkyPlanner側のREST APIは、Authorization-Tokenヘッダーに指定するAPIトークンで認証します(SkyPlanner Settings > API)。仕様はSwagger/OpenAPIで公開されています。最初のAPI呼び出しの手順は、連携チュートリアルで説明しています。
イベントとポーリング
ProShopの開発者向けドキュメントには、外向きのWebhookやGraphQLサブスクリプションの記載はありません。ProShop側のデータはポーリングで取得します。Recently Updated Records APIを使えば、その負荷を抑えられます。スケジュールに必要なレコード種別に絞り、前回の実行以降に作成、変更、削除されたレコードをすべて取得します。その後、変更された製造指図を番号で指定し、GraphQLで取得します。ProShopによると、この方法はlastModifiedTimeでクエリするより高速です。
一般的には、製造指図と作業時間の記録は五分ごと、部品と購買発注は一時間ごとに取得します。SkyPlannerは状態やスケジュールが変わるとWebhookを送信するため、書き戻し側はイベント駆動になります。
データのマッピング
| ProShopのオブジェクト(API) | SkyPlannerのオブジェクト | 連携方向 | 連携頻度 |
|---|---|---|---|
Parts、COTS(GraphQLのpartsスコープ) | 製品と材料 | ProShop → SkyPlanner | 初回読み込み後、変更時 |
| Work Order BOMレコード | 製品構成、オーダーごとの材料 | ProShop → SkyPlanner | 製造指図ごと |
| 製造指図の工程:作業セル、段取り時間とサイクルタイムの見積もり(目標時間) | 工程とその所要時間、段取り時間、後片付け時間 | ProShop → SkyPlanner | 製造指図ごと |
| Work Cells(機械、作業台、設備) | リソース、リソースグループ、稼働効率 | ProShop → SkyPlanner | 初回取り込み後は、まれに更新 |
| 人員に割り当てられたWork Cells、Users | 人員と作業者の割り当て | ProShop → SkyPlanner | 初回取り込み後、変更時に更新 |
| 作業セルの稼働スケジュール(稼働可能時間、シフト) | シフトと非稼働日 | ProShop → SkyPlanner | 毎日更新、またはSkyPlanner側でシフトを管理 |
| Work Orders(数量、納期、ステータス) | 納期と優先度を持つオーダーと作業 | ProShop → SkyPlanner | 数分ごとにポーリング |
| Tools、Toolpots、Fixtures、RTAs | 数量に制限のある共有リソースとしての工具 | ProShop → SkyPlanner | 初回取り込み後、変更時に更新 |
| 納期を持つPurchase Orders | 購買発注、納入日別の入荷予定材料 | ProShop → SkyPlanner | 毎時またはスケジューリング実行時にポーリング |
製造指図の開始・終了予定日時(GraphQL mutation、workorders:w) | 作業ごとの開始・終了予定日時 | SkyPlanner → ProShop | スケジュール変更時にSkyPlannerのWebhookで通知 |
| Time Tracking:製造指図の工程ごとの段取り時間、実行時間、完成部品数 | 作業時間ログと作業者による実績報告 | SkyPlanner → ProShop | 書き戻す場合は、実績報告ごとまたはシフトごと |
| ProShopには該当項目なし | 段取り時間マトリクス、複数の作業者を要する作業、代替の機械と人員 | SkyPlannerで管理 | 導入支援時に設定 |
連携パターン
1. マスタデータの初回取り込み。 GraphQLの複数形クエリを使い、Parts、Work Cells、Users、Tools、Fixturesをページ単位で取得します。初回取り込みではpageSizeを大きく設定し、totalRecordsに基づいて繰り返し取得します。作業セルの対応付けも決めます。機械を表す作業セルはリソースに、人を表す作業セルは人員に対応付けることで、同じ工程に機械と作業者を同時に割り当てられます。
2. 製造指図の同期。 有効な製造指図とその工程、目標時間、BOMレコードに加え、未完了の購買発注を読み込みます。SkyPlannerは発注済みの材料を購買発注の納入日から利用可能として扱い、購買発注がDeliveredになると在庫を更新します。変更の検出にはRecently Updated Recordsを使い、filterby=workorders,purchaseorders,deletionsを指定します。
3. スケジュールの書き戻し。 エンジンが作業を配置または移動すると、SkyPlannerのWebhookをきっかけにGraphQL mutationが実行され、製造指図の予定日時が設定されます。この処理にはworkorders:wを持つAuthorizationを使います。これにより、ProShopの納期予測と購買品の必要日は、SkyPlannerの予定日時に基づいて算出されます。
4. 現場からの実績報告。 作業者はSkyPlanner Mobile ConfirmationsまたはProduction Timerで作業を記録し、その作業時間ログによってスケジュールが最新に保たれます。実績時間を製造指図の工程にひも付けてProShop Time Trackingに書き戻すかどうかは選択できます。書き戻さない場合、作業者は従来どおりProShopで作業時間を記録し、SkyPlannerがtimetrackingを通じて読み取ります。
5. データの管理責任と競合時のルール。稼働開始前に、次の内容を文書化してください。
| データ | 管理元 |
|---|---|
| 部品、工程、目標時間、数量、製造指図のステータス | ProShop |
| 工程の順序、開始・終了時刻、機械と作業者の割り当て | SkyPlanner |
| 段取り時間マトリクス、工具と作業者の要件、代替リソース | SkyPlanner |
| シフトと非稼働日 | 要件定義で選定した一つのシステム |
| Time Tracking、在庫、購買、個別原価計算 | ProShopで管理し、直接入力するかSkyPlannerの作業時間ログから書き込む |
製造指図の予定日時を書き込むシステムは一つに決めてください。SkyPlannerで作業セルのスケジューリングを始めたら、計画担当者はProShop側でその作業セルの一覧を並べ替えないようにします。これにより、二つの計画が競合することを防げます。
標準的な導入手順
通常、導入支援の開始から数週間で実装が完了します。その前に、ProShopから作業セル、工程、未完了の製造指図をCSVまたはExcelでエクスポートし、30日間の無料トライアルでスケジュールを検証してください。
- 対応付け。 対応表、データの管理主体に関するルール、同期頻度、作業時間を書き戻すかどうかを確定します。
- ProShopへのアクセス。 管理者が合意済みのMaximum ScopeでAuthorizationを作成し、ProShopチームにRecently Updated Recordsの有効化を依頼します。
- 初回取り込み。 Parts、Work Cells、Users、Tools、Fixtures、作業セルの稼働スケジュールを取り込みます。
- 製造指図と購買発注の同期。 ページ分割とリトライに対応したポーリングで変更を取得します。
- SkyPlannerでの制約設定。 段取り時間マトリクス、工具、工程ごとの作業者数、代替の機械や人員を設定します。
- スケジュールの書き戻し。 SkyPlannerのWebhookをきっかけにmutationを実行します。作業時間も書き戻す場合はTime Trackingを含めます。
- 並行テスト。現在のProShopのスケジュールと並行してSkyPlannerを運用し、日程を比較して、目標時間を修正します。
- 本稼働。 データが一致したら、書き戻しを有効にします。
ProShop連携で事前に検討すべきこと
- 目標時間がすべてを左右します。ProShopは、段取り時間とサイクルタイムの見積もりから所要時間を算出します。当初の見積もりではなく現在の目標時間を取得してください。また、段取り時間を加工時間と分けておけば、単一の段取り時間の値を段取り時間マトリクスで置き換えられます。
- 人を表すワークセル。ワークセルが人を表している場合もあります。その場合は、機械ではなくSkyPlannerの作業者に対応付けてください。機械に対応付けると、作業者一人ひとりが並列稼働する機械として扱われてしまいます。
- Time Trackingにはユーザーが必要です。2026年4月以降、Time Tracking Loginのミューテーションは”requires user context”(ユーザーコンテキストが必要)とされ、Client Credentialsでは認可されません。作業者の作業時間はOAuth 2.0 Authorization Flowで送信するか、引き続きProShopで打刻して、その記録を読み取ってください。
- 変更インデックスを有効にします。Recently Updated Recordsは、ProShopチームが有効にして初めて利用できます。最初の週に有効化を依頼してください。
- ITAR対象レコード。ProShopは接続ごとにITARの制限対象レコードをフィルタリングします。対象レコードをnullとして返すか、結果から除外するかは、Developer System Configのオプションで決まります。連携で参照できる製造指図の範囲を合意し、すべての読み取り処理でnullに対応してください。
- 外注工程。外注先での工程は所要時間だけを考慮し、自社の生産能力は消費しません。時間のみを持つ工程としてモデル化してください。
ProShop連携の設定とサポートの担当
- SkyPlannerチームが導入時の設定と本番稼働後のサポートを担当します。対象は、合意したGraphQLのクエリ、ミューテーション、変更のポーリングです。ProShopの運用方法は工場ごとに異なり、その違いに対応するノウハウをここで活かします。
- 貴社のProShop管理者またはコンサルタントも参加します。ワークセルの設定を把握している担当者が、Authorizationの作成、スコープの設定、変更インデックスの有効化依頼を行います。
- 貴社の開発者による拡張も可能です。APIトークンを使ってSkyPlannerのREST APIを利用できます。APIトークンがあれば開発を始められ、必要に応じてSkyPlannerチームが支援します。連携の技術資料はSkyPlanner連携ドキュメントをご覧ください。
SkyPlannerは月額199 €から利用でき、5リソースが含まれます。請求は月払いです。連携費用は、貴社の業務プロセスと要件に合わせて、プランとともに事前にお見積もりします。料金、ProShopと連携した生産スケジューリング、ProShop ERPのページ、SkyPlannerの機能、ERP連携の一覧をご覧ください。
製造業のお客様によるSkyPlannerの評価
2時間を毎週削減
「SkyPlannerによって、私たちの生産計画はExcelの表計算から、リアルタイムでの生産最適化へと変わりました。」
Kalle Kalliomäki、サプライチェーンスペシャリスト
UTU · 配電盤・開閉装置
生産計画にかかる作業時間を毎週2時間削減し、新しい作業キューも数秒で製造ラインに届くようになりました。
+90%生産効率の向上
「生産効率が90%向上しました。」
Abdul Rucyinga、IT部門責任者
Laboratory & Allied · 医薬品製造
生産効率が90%向上し、全リソースを対象とする三か月分の最適化された計画を30分未満で作成できるようになりました。
98%納期遵守率が約50%から向上
「SkyPlannerは、当社の納期遵守率を維持するうえで決定的な役割を果たしています。」
Hannu Lahtinen、代表取締役
KJH-Comp · 板金加工・受託製造
納期遵守率は約50%から最高98%まで向上しました。以前は二人の監督者が必要だったスケジューリングも、今では一人で対応できるようになりました。
数千件の製造指図を自動でスケジューリング
「生産をこれまでとは違う形で管理できるようになり、生産能力の把握もまったく別のレベルになりました。」
Hannu Ryynänen、CEO
Mamec · 産業用ミキサー、ポンプ、高度技術分野の受託製造
数千件の製造指図を自動でスケジューリングし、組織全体で生産状況をリアルタイムに把握できるようになりました。
よくある質問
ProShopにAPIはありますか?
はい。ProShopは<proshop root>/api/graphqlでGraphQL APIを提供しており、OAuth 2.0またはBasic Authenticationと、モジュール単位のスコープを使用します。RESTエンドポイントのRecently Updated Recordsは、指定した期間内に作成、変更、削除されたレコードを返します。
ProShopはWebhookに対応していますか?
ProShopの開発者向けドキュメントには、外部に通知するWebhookの記載はありません。この連携では、工場ごとに設定した間隔でRecently Updated Records APIをポーリングします。SkyPlanner側のWebhookは、スケジュールが変更されるたびにその変更を送信します。
計画日程はどのようにProShopへ書き戻されますか?
workordersへの書き込みスコープを持つAuthorizationを使い、製造指図に対するGraphQLのミューテーションで書き戻します。SkyPlannerはスケジュールが変わるたびに、Webhookを通じてこの処理を実行します。
ProShopのAPI認証情報は誰が作成しますか?
ProShopのシステム管理者が、System Config > Manage Authorizationsで作成します。Direct LoginでClient Credentialsフローを有効にし、Maximum Scopeで連携による読み取りと書き込みの範囲を制限します。
ProShopのコンサルタントは、ProShopのスケジューリングとSkyPlannerのどちらを提案すべきですか?
お客様の生産順序が納期を左右する場合は、SkyPlannerです。ProShopのスケジュールはワークセルごとの優先順位と納期達成の予測を示し、計画担当者が優先順位を調整します。SkyPlannerはGraphQL APIで接続し、計画全体を自動で最適化するとともに、段取り替えや作業者・工具・資材の割り当てを計画します。月額199 €から、ユーザー数の制限なく利用できます。
連携を構築する前にSkyPlannerを試せますか?
はい。30日間の無料トライアルでは、ProShopからCSVまたはExcelでデータを取り込み、最大20リソースまで試せます。クレジットカードは不要です。トライアルを開始するか、連携の要件定義について営業にご相談ください。