Sage 100連携ガイド SkyPlanner APSで生産スケジューリング
このSage 100連携ガイドでは、SageパートナーとITチームに向けて、Sage 100をSkyPlanner APSに接続する方法を解説します。対象は、同じ名称を持つ二つの製品です。米国・カナダでProduction Managementを使用するSage 100と、ドイツ・オーストリアでSage 100 Produktionを使用するSage 100を扱います。SkyPlannerはSage 100と双方向で連携します。
- 作業指示書(Work ticketsまたはFertigungsaufträge)を、その工程(stepsまたはArbeitsgänge)とともに取り込みます。作業区、品目、在庫、発注データも取り込みます。
- 各工程(stepまたはArbeitsgang)に計画日時を書き戻します。
- 作業者の時間記録を、米国版では労務実績(labor entries)、ドイツ版では実績報告(Rückmeldungen)として書き戻します。
SkyPlannerチームは、導入時にお客様のSage 100環境に合わせて連携を設定し、稼働開始後もサポートします。このガイドは、連携作業に参加するパートナーや開発者、またはドキュメントが公開されているSkyPlannerのREST API(APIリファレンス)を使って独自に開発する方を対象としています。
米国版Sage 100:連携インターフェース
米国版Sage 100は、Standard、Advanced、Premiumのいずれもオンプレミスで稼働します。連携インターフェースはSage 100サーバー上にあります。
Business Object Interface (BOI)。
“The Business Objects Interface allows third-party developers with the necessary skills to access Sage 100 programs and applications using Component Object Model (COM).”(このインターフェースを使うと、必要なスキルを持つ外部開発者がComponent Object Model (COM)経由で製品のプログラムやアプリケーションにアクセスできます。)出典:Sage 100ヘルプ。Sageの開発者ポータルでは、これを”Sage 100’s internal API layer, giving you access to the same logic used by the application itself.”(アプリケーション自体と同じロジックにアクセスできる内部API層)と説明しています。出典:developer.sage.com。書き込みにはBOIを使用します。作成・更新のたびに、Sage 100をユーザーが操作する場合と同じ検証が実行されます。
ODBC。
ProvideX ODBCドライバーは、帳票作成や一括読み取りのためにSage 100のテーブルを読み取ります。Advancedでは、クライアント/サーバー型のODBCドライバーを利用できます。この連携では、作業指示書、品目、発注データの一括読み取りにODBCを使い、書き込みにはBOIを使います。
Visual Integrator (VI)。
VIのインポート・エクスポートジョブは、Sage 100とファイルまたはODBCデータソースとの間でデータを受け渡します。Sageは次のように説明しています。”One of the most powerful features of the Visual Integrator module is its ability to directly import data from and export data to an ODBC data source.”(Visual Integratorモジュールの特に強力な機能の一つが、ODBCデータソースからの直接インポートと、同データソースへの直接エクスポートです。)出典:参照元。VIはEssentialsパッケージに含まれており、ファイルベースのデータ交換に適しています。
eBusiness Web ServicesはSOAPを使用し、”the Sage 100 sales order, customer, and customer contact entities.”(受注、顧客、顧客担当者の各エンティティ)を対象とします。出典:参照元。受注データはこのサービスで連携でき、生産データはBOIとODBCを経由します。
連携処理はSage 100に隣接する環境で実行します。実行には、使用するProduction Management、Inventory、Purchase Orderの各タスクに対する権限を持つSage 100ユーザーを使います。外部への通信は、HTTPS経由でSkyPlannerのREST APIに送信されます。
ドイツ版Sage 100:連携インターフェース
ドイツ版Sage 100は、ローカル環境でもクラウド版でもMicrosoft SQL Server上で稼働します。Sageは、”Partnerlösungen via API-Schnittstelle ergänzen”(APIインターフェースを介してパートナーソリューションを追加できる)と説明しています。出典:Sage 100。Sageが掲載している生産向けアドオンは、Sage AppDesignerとSage 100のビジネスオブジェクトを基盤としています。
この連携では、Sageパートナーのソリューションと同じ経路を使います。Sage 100のSQL Serverデータベースから、Fertigungsaufträge、Arbeitsgänge、Arbeitsplätze、Ressourcenlisten、Artikel、Bestellungenを読み取ります。Arbeitsgangの日時とRückmeldungenは、要件定義でSageパートナーとSkyPlannerチームが決めた書き込み経路で戻します。これにより、実績登録はSage 100本来のロジックに従います。バージョン(例:9.0)とアクセス設定は、Sageパートナーが確認します。
認証とアクセス
| 接続先 | 認証方法 |
|---|---|
| 米国版Sage 100、BOI | 使用する各タスクのロール権限を持つ、Sage 100サーバー上のSage 100ユーザーセッション |
| 米国版Sage 100、ODBC | Sage 100環境に設定されたDSNと読み取り権限 |
| ドイツ版Sage 100 | Sageパートナーと合意した、書き戻し用のSage 100ユーザーとSQL Serverの読み取り権限 |
| SkyPlanner | SkyPlannerの設定 > APIで作成したAPIトークンを、Authorization-Tokenヘッダーに指定 |
SkyPlannerのREST APIは、Swagger/OpenAPI形式でドキュメント化されています。連携チュートリアルでは、最初のAPI呼び出しを手順に沿って説明しています。
変更の検出
Sage 100の変更は、定期的な読み取りで検出します。未完了の作業指示書またはFertigungsaufträgeは短い間隔で、在庫と発注データは毎時読み取ります。ステータスと更新日時で絞り込み、各回の読み取りで変更分だけを取得するようにします。
SkyPlannerはスケジュールが変わるとWebhookを送信するため、Sage 100への書き戻しはイベント駆動で実行されます。
データのマッピング
| Sage 100(米国版) | Sage 100(ドイツ版) | SkyPlannerのオブジェクト | 連携方向 | 連携頻度 |
|---|---|---|---|---|
| Item | Artikel | 製品と資材 | Sage 100 → SkyPlanner | 初回取り込み後、毎日 |
| Bill of Materials、テンプレートの資材 | Ressourcenliste内のStückliste | 製品構成、子製品、製品ごとの資材 | Sage 100 → SkyPlanner | 変更時 |
| 作業区:作業者または機械、曜日別の稼働時間、休止期間 | Arbeitsplatz、Ressource(Mitarbeiter、Maschine) | リソース、リソースグループ、人員、シフト | Sage 100 → SkyPlanner | 初回取り込み時 |
| 作業指示書テンプレートの工程、作業コード | Arbeitsplan、Rüst-とStückzeitenを含むArbeitsgänge | 段取り時間と加工時間を含む工程 | Sage 100 → SkyPlanner | 変更時 |
| 工程と納期を含む作業指示書 | ArbeitsgängeとLieferterminを含むFertigungsauftrag | 納期を含むオーダーと作業 | Sage 100 → SkyPlanner | 短い間隔で読み取り |
| 倉庫別の在庫数量 | Lagerbestand | 在庫残高 | Sage 100 → SkyPlanner | 毎時 |
| 発注明細、所要日 | Bestellungen、Liefertermine | 入荷予定日を含む発注データ | Sage 100 → SkyPlanner | 毎時 |
| 受注明細、回答納期 | Kundenaufträge | 顧客への納期、顧客の優先度 | Sage 100 → SkyPlanner | 短い間隔で読み取り |
| 作業指示書の工程日時(BOI) | Arbeitsgang-Termine | 工程ごとの計画開始日時、終了日時、リソース | SkyPlanner → Sage 100 | 変更時にWebhook経由で連携 |
| Labor Entry、作業指示書の完了処理(BOI) | Rückmeldung:時間、数量 | 時間記録と作業者による実績報告 | SkyPlanner → Sage 100 | 実績報告ごと、またはシフトごと |
| Sage 100では保持しない | Sage 100では保持しない | 段取り時間マトリクス、数量に制約のあるリソースとしての工具、作業ごとの作業者、代替リソース | SkyPlannerで管理 | 導入時 |
連携パターン
1. マスタデータの初回取り込み。まず品目と作業区を取り込み、次にテンプレートまたはArbeitspläneを工程とともに取り込みます。米国版の作業区に機械三台と作業者二名が登録されている場合、SkyPlannerでは三つのリソース、一つのリソースグループ、二名の人員として扱います。その後、それぞれに専用のタイムラインが割り当てられます。
2. オーダーの同期。未完了の作業指示書またはFertigungsaufträgeを工程とともに読み取り、在庫と未完了の発注データも取得します。SkyPlannerは作業を配置する前に、在庫と入荷予定の両方を確認します。Sage 100は引き続き作業を提案し、SkyPlannerはお客様がリリースしたオーダーをスケジューリングします。
3. スケジュールの書き戻し。エンジンが配置または移動したすべての工程について、SkyPlannerは計画開始日時、終了日時、リソースを送信します。米国版Sage 100では、BOI経由で作業指示書の工程日時を更新します。ドイツ版Sage 100では、要件定義で決めた経路でArbeitsgangの日時を更新します。数量、引当、原価計算は引き続きSage 100で管理します。
4. 製造現場からの実績報告。作業者はSkyPlanner Mobile ConfirmationsまたはProduction Timerで作業を記録し、その時間記録によってスケジュールが最新に保たれます。米国版Sage 100では、記録した時間が作業指示書の工程に対するLabor Entryとなり、最終の実績報告で指示書が完了します。ドイツ版Sage 100では、時間と数量を含むRückmeldungになります。工場ですでにBetriebsdatenerfassungやバーコードアプリで時間を登録している場合は、登録経路を一つに決めてください。
5. データの管理元と競合時のルール。 本稼働前に明文化してください。
| データ | 管理元 |
|---|---|
| 品目、BOM、テンプレート、オーダー数量、原価 | Sage 100 |
| 工程順序、開始・終了日時、リソースの割り当て | SkyPlanner |
| 段取り時間マトリクス、工具、作業ごとの作業者、代替リソース | SkyPlanner |
| LaborとRückmeldungen | Sage 100(SkyPlannerの作業時間記録から連携) |
競合の主な原因は、別のスケジューラを併用することです。計画担当者が米国版Sage 100のEnhanced Schedulingを使い続けたり、ドイツ版Sage 100のPlantafelでタスクをドラッグして動かし続けたりすると、二つのシステムが日程を管理する状態になります。工程日程の管理はSkyPlannerに一本化してください。Autopilotを使えば、生産状況の変化に応じてSkyPlannerが自動でスケジュールを組み直します。
標準的なプロジェクトの進め方
導入は通常、オンボーディング開始から数週間で完了します。その前に、未完了の作業指示票またはFertigungsaufträgeをCSVかExcelで出力し、30日間の無料トライアルでスケジュールを検証してください。その後、プロジェクトは次の手順で進みます。
- 要件定義。 製品(米国版またはドイツ版Sage 100)、バージョン、導入環境、読み取り経路、書き込み経路、同期頻度、作業時間の登録方法を確認します。
- アクセス設定。 ご利用のSageパートナーが、Sage 100のユーザー、権限、データベースへのアクセスを設定します。
- 初期データの取り込み。 品目、作業区、テンプレートまたはArbeitspläne、BOM、シフトを取り込みます。
- オーダーの同期。 作業指示票またはFertigungsaufträge、発注、在庫を定期的に同期します。
- SkyPlannerでの制約設定。 段取り時間マトリクス、工具、作業ごとの作業者数、代替の設備や人員を設定します。
- スケジュールの書き戻し。 各工程の計画日時をSage 100に書き戻し、その後、作業実績とRückmeldungenも連携します。
- 並行テストと本稼働。 現行計画と日程を比較し、マスタデータを修正してから、書き戻しを有効にします。
Sage 100連携で事前に検討すること
- 利用中のSage 100を確認する。 米国版とドイツ版のSage 100では、データモデルとインターフェースが異なります。最初の要件定義の打ち合わせで、製品名とバージョンを伝えてください。
- 複数の設備をまとめた作業区。 米国版の作業区は、”one or more persons or machines”(一人以上の作業者、または一台以上の設備)を一つの能力単位として扱います。作業区ごとに、一つのリソース、複数のリソース、グループのどれとして扱うかを決めてください。
- 段取り時間と加工時間。 テンプレートとArbeitspläneには、SkyPlannerがスケジューリングに使う時間が保存されています。本稼働前に、実際の加工時間と照合してください。
- 稼働カレンダー。 米国版の作業区には、曜日ごとの稼働時間と休業日が設定されています。これらをSkyPlannerのシフトとして取り込み、その後、各作業者のシフトと不在予定をSkyPlannerに追加してください。
- 単位。 工程には、個数単位、バッチ単位、時間単位があります。工程ごとに単位を対応付けてください。
- BOIの権限。 BOIはSage 100のロールベースのセキュリティに従います。必要なタスク権限がないと、書き込みはできません。連携用ユーザーですべての書き込みをテストしてください。
- 日程の管理元を一本化する。 SkyPlannerで日程を管理するようになったら、他のスケジューラの並行実行やPlantafelでの移動操作を停止してください。
Sage 100連携の設定・サポート担当
- SkyPlannerチームがオンボーディング中に設定し、本稼働後もサポートします。
- ご利用のSageパートナーも参加できます。 パートナーはお客様のSage 100のバージョンを把握しており、ユーザーと権限を設定し、データベースへのアクセスを確認します。
- 自社の開発者による追加開発も可能です。 ドキュメントが公開されているSkyPlannerのREST APIを利用できます。APIトークンがあれば着手でき、必要に応じてSkyPlannerチームが支援します。
接続すると、ArcturusエンジンがSage 100の最新のオーダーを基にスケジュールを作成し、各工程に計画日時を反映します。SkyPlannerは5リソースを含む月額199 €から利用でき、月次請求です。連携費用は、お客様の業務プロセスと要件に合わせ、ご利用プランとともに事前に見積もるため、開始前に総費用を確認できます。料金と機能をご確認ください。Sage 100標準の計画機能との比較は、Sage 100の生産スケジューリングで紹介しています。概要はSage 100のページをご覧ください。Sage 200とSage X3にはそれぞれ専用のガイドがあり、Sage 200とSage X3のページから確認できます。その他のERPはERP連携一覧に掲載しています。
製造業のお客様によるSkyPlannerの評価
6か月先まで営業が余剰能力を把握
「SkyPlannerは、あらゆる生産計画の基盤となり、計画の確かさを支えています。」
Anu Järvinen、生産マネージャー
Fredman Operations · 食品用包装紙
営業は六か月先まで余剰能力を把握でき、以前は一時間以上かかっていたスケジュール変更の依頼にも、数秒で回答できるようになりました。
100%2021年以降の納期遵守率
「SkyPlannerで生産能力が見えるようになり、見通しの立つ計画を作れるようになりました。」
Dan Berglund、COO/CFO
Opes Corporation · 化学品・食品製造
SkyPlannerを使い始めた2021年から現在まで、納期遵守率は一貫して100%です。
よくある質問
Sage 100には作業指示票用のREST APIがありますか?
米国版Sage 100はBusiness Object Interfaceを通じてビジネスロジックを公開しており、読み取りにはODBC、ファイル処理にはVisual Integratorを使用します。SkyPlannerはODBCとBOIを通じて作業指示票を読み取り、BOIを通じて工程日程と作業実績を書き込みます。ドイツ版Sage 100はSQL Serverデータベースから読み取り、書き戻し経路は要件定義の段階でSageパートナーと決定します。
Sage 100との連携は誰が構築しますか?
SkyPlannerチームがオンボーディング中に、お客様のSage 100環境に合わせて双方向連携を設定し、本稼働後もサポートします。ご利用のSageパートナーはユーザー、権限、データベースへのアクセスを設定し、プロジェクトにも参加できます。自社の開発者も、ドキュメントが公開されているSkyPlannerのREST APIを使って開発できます。着手に必要なのはAPIトークンだけです。
計画日時はどのようにSage 100に書き戻されますか?
米国版Sage 100では、BOIを通じて作業指示票の各工程の計画日時を更新し、作業者の時間記録からLabor Entryを登録します。ドイツ版Sage 100では、各FertigungsauftragのArbeitsgangの日時を更新し、要件定義の段階でSageパートナーとSkyPlannerチームが決めた書き込み経路を通じてRückmeldungenを登録します。
Sage 100から変更をリアルタイムにプッシュ送信できますか?
SkyPlannerは定期的な読み取りでSage 100の変更を取り込みます。未完了のオーダーは短い間隔で、在庫と発注は毎時読み取ります。逆方向では、SkyPlannerのWebhookがスケジュールの変更を発生時にプッシュ送信します。