Sage X3連携ガイド SkyPlanner APSで生産スケジューリング
このガイドでは、SageパートナーとITチームに向けて、Sage X3とSkyPlanner APSを連携する方法を解説します。使用するX3インターフェース、データを受け渡すオブジェクト、プロジェクトでつまずきやすい点を取り上げます。SkyPlannerは、クラウド版とオンプレミス版のどちらのSage X3とも双方向に連携します。
- 製造指図、工程、工順、作業区、カレンダー、在庫、未完了の購買発注を取り込みます。
- 計画した工程日付と作業区を製造指図(GESMFG)に書き戻します。
- 作業者の作業時間記録を生産実績(GESMTK)として登録します。
- SkyPlannerのWebhookが、スケジュールの変更を発生時に通知します。
SkyPlannerチームが導入時にお客様のX3環境に合わせて連携を設定し、本稼働後もサポートします。
X3に、設備や人員の実際の能力を考慮する生産スケジューラが必要かどうかを検討中であれば、まずSage X3に生産スケジューリング機能はあるか?をご覧ください。製品の概要はSage X3向けSkyPlanner APS、他のERPとの連携はERP連携一覧でご確認いただけます。
X3環境におけるSkyPlannerの役割
Sage X3の標準スケジューリング(FUNMAUTJ)は、工順データに基づいて工程を並べますが、製造指図ごとに個別にスケジュールを組みます。Sage UKのサポートガイドにも、”does not delay or stagger work orders based on overall resource load.”(リソース全体の負荷に応じて製造指図を遅らせたり、開始をずらしたりすることはありません)と明記されています。設備や人員の実際の能力を考慮する生産スケジューリングは別のレイヤーが担っており、Sageは次の二つの選択肢を提供しています。
- Production Scheduler(アクティビティコードPOPS)。オンプレミス版のみで利用できます。
- 汎用のFinite scheduler interface(アクティビティコードGFS)。クラウド版またはオンプレミス版のX3を、Sage X3 Web SchedulingやISVのスケジューラに接続します。
SkyPlannerは、X3の標準APIを利用する外部クラウドスケジューラとして、その役割を担います。そのため、クラウド版とオンプレミス版のX3で同じように動作します。製造指図と購買発注の提案は、引き続きMRP(FUNMRP)が作成します。SkyPlannerは実際の生産能力に基づいて、確定済みおよび計画段階の製造指図の順序を決めます。
Sage X3の連携方法
連携方法は導入形態によって決まります。Sage X3のクラウド版では、外部アプリケーションにアプリケーションのファイルシステムもデータベースも公開されないため、APIまたはホスティング環境のファイル転送を使って連携します。オンプレミス版では、ファイルの直接インポートやX3データベース内のステージングテーブルも利用できます。
| 連携方式 | 概要 | 認証 | 用途 |
|---|---|---|---|
| GraphQL API (Sage X3 Web API) | SageがX3 API向けの”technology of choice”(推奨技術)と位置づけるAPI。バージョンを分けずに進化 | Connected applicationのSecretで署名したJWT (HS256)を使用。issにはClient ID、audにはURLを指定。専用のSyracuseユーザーを使用 | 製品、拠点、購買、在庫。製造関連のノードも公開されていれば利用可能 |
| REST api1 | Representationに基づくREST:.../api1/x3/$$prod/<FOLDER>.<ENTITY>?representation=<REP>.$query | Syracuse認証 | GraphQLが対応していないエンティティ |
| SOAPオブジェクトWebサービス | Web services (GESAWE)で公開されたオブジェクト。対象フィールドはオブジェクトの画面項目。読み取り、保存、変更に対応 | Syracuse接続プールでのOAuth2認証 | Work order (GESMFG)、Production tracking (GESMTK)への書き戻し |
| SOAP Template Services | AOWSIMPORTとAOWSEXPORTを通じ、SOAP経由でインポート/エクスポートテンプレートを実行 | OAuth2。X3ではSOAPのBasic認証は使用不可 | ミドルウェアからのテンプレート実行 |
| インポート/エクスポートテンプレート | テンプレートに基づくバッチファイル処理 | ファイルシステム(オンプレミス)、またはホスティング環境のファイル転送(クラウド) | 初期データの取り込み、夜間の一括同期 |
| Sync API (Cloud BI) | クラウド専用。読み取り専用の差分抽出とNDJSONストリームに対応。利用にはSageのISV担当者への申請が必要 | BearerトークンとテナントごとのX-API-KEY | クラウドでの大量の変更データの読み取り |
オンプレミスでGraphQLを使用するには、"bearer"をsession.auth配列(nodelocal.js内)に追加する必要があります。Sage X3 SaaSでは、接続アプリの認証がデフォルトで有効になっています。Sage X3 Cloudでは、接続アプリにadminユーザーを使用できません。代わりに、Standard認証を使用するSyracuseユーザーを作成してください。
データの流れと使用するインターフェース
- 製品、拠点、購買、在庫:Sageの公式サンプルと同様に、GraphQLを使用します。
- 製造指図、工程、工順、作業区:REST api1のRepresentation、またはAOWSEXPORTで実行するエクスポートテンプレートを使用します。GraphQLスキーマで製造ドメイン(
xtremX3Manufacturing)が公開されているリリースでは、GraphQL経由で同じデータを読み取ります。 - 工程日付と作業区のX3への書き戻し:Work order(GESMFG)のSOAP Webサービスでmodifyを使用します。代替手段は、AOWSIMPORT経由のインポートテンプレートです。
- 生産実績:Production tracking(GESMTK)のSOAP Webサービスでsaveを使用します。
ファイルシステムやデータベースへの直接アクセスを必要としないため、X3のクラウド版とオンプレミス版で同じ設計を使えます。X3へのインストールは不要です。連携には、接続アプリケーション、Syracuseユーザー、GESAWEで公開したWebサービスを使用します。
イベント検知はポーリングを前提に
Sageが公開しているX3の開発者向けドキュメントには、外部へのWebhook通知やビジネスイベント機能の記載はありません。2024 R1で追加された「Callback URL」設定は、Mobile AutomationとWeb SchedulingがSOAP Webサービスを呼び出す際に使うもので、汎用的なイベントシステムではありません。変更は定期的な読み取りで検知してください。GraphQLクエリ、クラウド版のSync APIのタイムスタンプカーソル、またはテンプレートによる定期エクスポートを使用します。
Sage X3からSkyPlannerへのデータマッピング
| Sage X3オブジェクト(テーブル、機能) | SkyPlannerオブジェクト | 方向 | 頻度 |
|---|---|---|---|
| 製品、ITMMASTER | 製品 | X3 → SkyPlanner | 初回、その後は定期的 |
| 製造BOM(GESBODP) | 多階層の製品構成、資材 | X3 → SkyPlanner | 初回、その後は変更時 |
| 工順(GESROU):OPENUM、作業区WST、SETTIM、OPETIM、時間単位TIMUOMCOD | 段取り時間と加工時間を含む工程 | X3 → SkyPlanner | 初回、その後は変更時 |
| 作業区(GESMWS, WORKSTATIO):WST、WSTTYP、WSTNBR、EFF、SHR、優先順位付きの代替作業区 | リソース、効率、代替リソース | X3 → SkyPlanner | 初回、その後はまれ |
| 作業区グループ(WCR) | リソースグループ | X3 → SkyPlanner | 初回 |
| 週間稼働パターン(TWD)、稼働時間帯、生産能力の変動表、DEFDIH | シフト、残業シフト、不在 | X3 → SkyPlanner | 初回、その後は変更時 |
| 製品・資材情報を含む製造指図:MFGHEAD、MFGOPE | オーダー、資材、工程 | X3 → SkyPlanner | 5~15分間隔のポーリング |
| 拠点別在庫 | 在庫残高 | X3 → SkyPlanner | ポーリング |
| 購買発注(POH):未完了明細、入荷予定日 | 納入予定日付きの入荷予定資材 | X3 → SkyPlanner | 5~15分間隔のポーリング |
| GESMFGのOperationsタブ:Start(OPESTR)、End(OPEEND)、作業区 | 予定開始・終了日時、選択されたリソース | SkyPlanner → X3 | スケジュール変更時(Webhook) |
| 生産実績(GESMTK):工程時間、数量、資材実績、生産報告 | 作業時間記録、数量、資材使用量 | SkyPlanner → X3 | 実績報告ごと(Webhook) |
確定済みの製造指図は必ず取り込みます。計画段階の製造指図も、計画担当者が仮の負荷としてガントチャートに表示したい場合は取り込んでください。MRPの提案は、製造指図に変換されるまでMRP側に残します。
連携の実装パターン
1. マスタデータの初回取り込み。まず作業区とカレンダーを取り込み、次に製品、BOM、工順を取り込みます。工順が作業区を参照するため、この順序で進めます。
2. オーダーの同期。MFGHEADとMFGOPEをポーリングし、新規および変更された製造指図を取得します。MFGOPEの各明細を、WSTコードで指定されたリソース上のSkyPlannerの工程に対応付けます。未完了の購買発注も同じ周期で同期します。SkyPlannerは発注済みの資材を購買発注の納入日から利用可能とし、購買発注がDeliveredになると在庫を更新します。これにより、資材チェックでは在庫と入荷予定の両方を考慮できます。
3. スケジュールの書き戻し。スケジュールが変更されると、SkyPlannerのWebhookが発火します。連携処理は、GESAWEでSOAP Webサービスとして公開したWork orderオブジェクト(GESMFG)のmodify操作を呼び出します。変更のあった各工程のStart(OPESTR)、End(OPEEND)、作業区を更新します。一括更新では、AOWSIMPORT経由で製造指図のインポートテンプレートを使い、同じ項目を更新します。書き込むのは日付と作業区だけです。数量、BOM明細、工順は決して書き換えないでください。
4. 選択した設備の反映。作業区を一対一で対応付けている場合、エンジンが代替設備の中から選んだ設備を、その工程の作業区としてX3に書き戻します。これにより、実際に作業を行う設備がX3に記録されます。X3の作業区が設備グループを表す場合は、作業者の作業キューに個々の設備を表示します。X3には、グループの作業区と予定日付を渡します。
5. 製造現場からの実績報告。作業者はMobile ConfirmationsまたはProduction Timerで作業を記録します。連携処理は、Production trackingオブジェクト(GESMTK)のsave操作を使って実績報告を一件ずつ登録します。工程実績には工程時間と数量を登録し、そこで資材消費も管理している場合は消費量も登録します。X3で実績を登録できるのは、ステータスがFirmの製造指図だけです。また、製品・拠点の設定でRelease if shortage(MFGSHTCOD)を選択していない限り、構成品が利用可能でなければなりません。
6. 確実な同期。実績登録ごとにSkyPlannerの作業時間記録IDをキーとして使い、登録時に作成されたX3の実績番号を保存します。これにより、Webhookが再送されても二重登録されません。X3で完了または取消になった製造指図は、次のポーリングでスケジュールから削除します。拒否された呼び出しは、むやみに再試行せず、X3のエラーメッセージとともにログに記録してください。X3に接続できない間は変更をキューに保持し、接続復旧後に順番どおり登録します。
7. 管理範囲のルール。何を作るかはX3で管理します。対象は製品、数量、BOM、工順、拠点です。いつ、どこで作るかはSkyPlannerで管理します。対象は作業順序、リソース、開始・終了日時です。SkyPlannerで管理するオーダーについては、計画担当者がPlanning workbenchで再スケジューリングせず、FUNMAUTJも実行しないことを合意しておいてください。そうしなければ、担当者の変更は次の書き戻しで上書きされます。
一般的な導入手順
通常、導入支援の開始から数週間で実装が完了します。Sage X3の連携プロジェクトは、次の手順で進めます。
- 自社データで試す。X3のエクスポートテンプレートまたはExcelを使って、作業区、工順、未完了の製造指図のスナップショットをエクスポートし、CSVとして取り込みます。ガントチャートが実態に合うまで、シフト、効率、優先順位を調整します。
- マスタデータを対応付ける。GESMWSの作業区をリソースに、GESROUの工程をSkyPlannerの工程に対応付け、時間単位と週間稼働パターンをシフトに反映します。その過程で、作業区が未設定の工順内の工程、稼働時間帯が未設定の日、誤った時間単位を修正します。
- 初期データの取り込み。製品、製造BOM、工順、作業区を取り込み、その後にカレンダーを取り込みます。
- オーダーと発注の同期。接続アプリケーション、Syracuseユーザー、GraphQLクエリまたはテンプレートによるエクスポートを設定し、製造指図、在庫、未完了の発注を取得するポーリングジョブを用意します。
- スケジュールの書き戻し。製造指図用のSOAP WebサービスをGESAWEで公開し、エラー処理とログ記録を設定します。
- 製造現場からの実績報告。Mobile Confirmationsの実績を、Production tracking(GESMTK)Webサービス経由でX3に登録します。
- 現行計画と並行してテスト。計画担当者が両方の計画を比較してから切り替えます。
- 本稼働。SkyPlannerで管理する製造指図については、X3での手動再スケジューリングを無効にします。
Sage X3連携で注意すべき点
- MRPの提案は製造指図ではありません。MRPの提案には、計画済みまたは確定の製造指図に変換されるまでMFGOPEの工程明細がありません。スケジューリングの対象にするのは提案ではなく、変換後の製造指図です。
- カレンダーの設定漏れ。稼働日に稼働時間帯が設定されていない場合は、DEFDIHのデフォルトスキーマが適用されます。稼働時間帯が空欄でデフォルトもない日は、日付や負荷が不正になります。カレンダーをエクスポートする前に、各週間稼働パターンのすべての稼働日に稼働時間帯を設定してください。
- 更新されていない負荷バケット。能力やカレンダーを変更しても、再スケジューリングしてRecalculate loads(FUNMIWL)を実行するまで、X3の既存の負荷バケットには反映されません。古いままのLoads inquiry(CONSMWK)を基準にSkyPlannerの結果を検証しないでください。
- No. of resourcesは作業人数を表します。WSTNBRは、工程を実行するために作業区で必要となるリソース数です。たとえば、人員の作業区なら三人といった値です。これをSkyPlannerのリソースの作業者数にマッピングします。SkyPlannerでは、ひとつの作業に複数人を同時に割り当てられます。GFS拡張インターフェースを利用していた拠点では、Sageの要件に従ってこの値が1に設定されているため、実際の作業人数がどこに保持されているかを確認してください。
- 作業区が設定されていない工順の工程は、リソースに割り当てられません。マッピング時に検出されます。
- 時間単位と代替作業区。工順の時間には固有の時間単位(TIMUOMCOD)があり、代替作業区には優先順位があります。どちらも明示的にマッピングし、X3をアップグレードするたびにマッピングのチェックを再実行してください。
- 製造指図のロック。拠点でProduction Schedulerも利用していた場合、そこに送信した製造指図はBeing optimizedステータスになり、スケジューリング対象から除外する(PSOPTFREE)まで変更できません。切り替え前に解除してください。
Sage X3連携の設定は誰が担当するか
設定作業では、お客様のフォルダー、工順の運用ルール、作業区の構成、個別開発の内容をSkyPlannerにマッピングします。X3がスケジューリング用のデータとして保持していない制約も設定します。対象は、段取り時間マトリクス、工具、作業者数、代替リソースです。
- SkyPlannerチームが導入時に設定し、本稼働後もサポートします。X3の運用は工場ごとに異なり、その運用ノウハウをこの設定に反映します。チームがクラウドまたはオンプレミスのX3エンドポイントに接続し、マッピング時にマスタデータを検証します。X3で拒否された処理はログに記録し、対応につなげます。初日から連携の担当が明確で、社内に連携開発者を置く必要はありません。
- お客様のSageパートナーも参加できます。パートナーは、お客様のフォルダー、アクティビティコード、個別開発の内容を把握しています。SkyPlannerチームとともに、接続アプリケーション、Syracuseユーザー、GESAWEでの公開設定を確認できます。
- 社内の開発者が連携を拡張することもできます。SkyPlannerのREST APIでは、オーダー、製品、材料、工程、作業時間ログを読み書きできます。JWT認証に対応し、Swagger/OpenAPIのドキュメントも用意しています(APIリファレンス)。APIキーがあれば始められ、連携チュートリアルでは最初のAPI呼び出し手順を説明しています。必要に応じてSkyPlannerチームが支援します。SkyPlannerのドキュメントでは、製品と材料、発注についても解説しています。Laboratory & Alliedでは、社内ITチームがSkyPlannerの支援を受けながら、ほぼ自力でSkyPlannerとSAP Business Oneを接続しました。
X3を使うチームがスケジューリングにSkyPlannerを選ぶ理由
数週間で本稼働を始めたいなら、SkyPlannerをお選びください。何か月もかかるAPS導入プロジェクトを待つ必要はありません。
連携が完成する前にスケジューリングを始めたいなら、SkyPlannerをお選びください。
X3からの読み取りと書き戻しを設定している間も、計画担当者はトライアルでCSVを使ってスケジューリングできます。連携が稼働すれば、ファイルのインポートに代わって連携経由でデータを取り込みます。
連携の仕組みを軽量に保ちたいなら、SkyPlannerをお選びください。
スケジュールやステータスの変更はWebhookでリアルタイムに送信されるため、ミドルウェアがポーリングするのはX3側だけです。Arcturus AIエンジンが数秒でスケジュールを作成し、生産状況が変わるとAutopilotが自動で再スケジューリングします。
X3のデータで現場の制約をモデル化したいなら、SkyPlannerをお選びください。
作業人数はひとつのリソースに配置する複数の作業者として、代替作業区は代替設備として扱います。段取り時間マトリクスにより、製品の順序に応じた切り替え時間を反映できます。工具は数量に制約のあるリソースとして扱うため、ある設備で使用中の治具が別の設備に重複して割り当てられることはありません。
製造現場から生産実績の収集を始めたいなら、SkyPlannerをお選びください。
作業者は、Mobile Confirmations、Production Timer、Quick Log Modeを使い、スマートフォンやタブレットで作業を記録します。同じ作業時間ログが、生産実績としてX3にも登録されます。
製造業のお客様によるSkyPlannerの評価
2 h毎週の作業時間を削減
「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%に向上しました。スケジューリングに必要な管理者も、二人から一人になりました。
99.2%納期遵守率
「SkyPlannerによってボトルネックが見えるようになり、生産管理が明確になりました。」
Toni Tuori、生産部門責任者
Piristeel · 屋根用安全設備・雨水排水システム
今年の納期遵守率は99.2%に達し、スケジューリングにかかる作業時間を一日あたり最大四時間削減しています。
よくある質問
SkyPlanner APSはSage X3とどのように連携しますか?
GraphQL、REST api1、SOAP Webサービス、テンプレートを使って双方向に連携します。製造指図、工順、作業区を取り込み、計画した工程日付と記録済みの作業時間を書き戻します。スケジュールが変わると、Webhookで変更を送信します。SkyPlannerチームが導入時に設定するほか、お客様のSage X3パートナーや開発者がSkyPlannerのREST APIを使って構築することもできます。
工程日付はどのようにSage X3へ書き戻しますか?
Web services機能(GESAWE)でSOAP Webサービスとして公開したWork orderオブジェクト(GESMFG)を使います。そのmodify操作で、各工程のStart(OPESTR)、End(OPEEND)、作業区を更新します。一括更新では、AOWSIMPORT経由で製造指図のインポートテンプレートを実行します。時間と数量はProduction trackingオブジェクト(GESMTK)経由で登録します。
GraphQLとSOAP Webサービスのどちらを使うべきですか?
それぞれの得意分野に合わせて、両方を使います。GraphQLはSageが推奨するAPIで、クラウドとオンプレミスのどちらでも、製品、拠点、購買、在庫のデータを読み取れます。SOAPのオブジェクトWebサービスでスケジュールと生産実績を書き込み、SOAP Template Servicesで一括処理用のインポート・エクスポートテンプレートを実行します。
二重登録や変更の取りこぼしを防ぐにはどうすればよいですか?
Production trackingへの各登録にSkyPlannerの作業時間ログIDをキーとして付け、返されたX3の実績番号を保持します。これにより、同じWebhookが再送されても識別してスキップできます。X3に接続できない間は変更をキューに蓄積し、接続が復旧したら順に登録します。Firmでない製造指図への実績登録など、拒否された処理はX3のエラーメッセージとともにログに記録します。
SkyPlannerにはPOPSやGFSのアクティビティコードが必要ですか?
いいえ。これらのコードは、Sage独自のProduction Schedulerと、Web Schedulingへの汎用インターフェースを有効にするものです。SkyPlannerはGraphQL、REST api1、またはテンプレート経由で製造指図を読み取り、Work orderとProduction trackingのSOAP Webサービス経由で書き戻します。
SkyPlannerはSage X3の新しい製造指図をどのように取り込みますか?
X3のデータは、GraphQL、REST api1、テンプレートによるエクスポート、またはクラウド環境のSync APIを通じて、短い間隔でポーリングして読み取ります。逆方向では、SkyPlannerのWebhookがスケジュールの変更を発生時にプッシュ通知します。
連携を構築する前に、Sage X3のデータでテストできますか?
はい。30日間の無料トライアル中に、作業区、工順、未完了の製造指図をCSVでエクスポートして取り込めます。X3連携自体の構築範囲については、営業にご相談ください。