sap-transport-overview について
sap-transport-overviewは、Basisチームやリリースマネージャー向けに、単一システム内の未完了SAPトランスポートを一覧化するスキルです。簡潔な要約で担当者、規模、潜在リスクを示し、ソースや差分は取得しません。
主な機能
- 01システム全体の未完了トランスポート一覧
- 02オブジェクト数付きの簡潔な要約
- 03担当者別のグループ化と集計
- 04空リクエストとローカルリクエストの検出
- 05正確なCTSキーの重複確認
活用シーン
- 01チームのトランスポート作業量の確認
- 02整理対象のリクエストの特定
- 03インポート前のリスク評価
MCP 対応
このスキルはSAPTransportツールでリクエストを一覧表示し、対象を選んで調査します。ソース差分は取得しません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ arc-mcp/ arc-1 --skill sap-transport-overviewインストール後、Claude Code で/sap-transport-overviewを入力して読み込まれたか確認します。
詳細
SAP Transport の概要(システム全体)
システム内のすべての未完了トランスポートを対象とした、ベーシス担当者/リーダー向けの一覧です。ソースや差分を取得することなく、誰が何を所有しているか、各リクエストの規模、リスクがどこにあるかを確認できます。意図的に幅広く確認できるよう設計されており、トークン消費を抑え、1 回の呼び出しで完了します。
SAPTransport(action="list", summary=true, user="*", status="D")— 変更可能なすべてのリクエストを全ユーザー分取得し、objects[]は省略してobjectCountを保持します。(稼働中のシステムでは、オブジェクトをすべて含む一覧は約 25K トークンになりますが、概要形式なら数 KB です。ARC-1 PR #448 を参照してください。)
これは sap-transport-review(詳細 — 1 つのトランスポートに含まれるオブジェクトの差分を確認)を補完する、広範な確認のための機能です。概要では「ランドスケープ全体で、何が未完了で、どこにリスクがあるか」に回答し、レビューでは「この 1 件で具体的に何が変更されたか」に回答します。ここでは差分を確認しないでください。
スマートデフォルト(暗黙に適用し、質問しない)
| 設定 | デフォルト | 理由 |
|---|---|---|
| ユーザー | すべて(user="*") | ベーシス担当者が把握するのは開発者 1 人ではなく、システム全体です |
| ステータス | 変更可能(status="D") | 未完了/未リリースの作業です。リリース済みの場合は status="R"、両方の場合は "*" を渡します |
| ペイロード | summary=true | インベントリに必要なのは件数とヘッダーであり、ソースではありません。100 件のリクエスト一覧も低コストに保てます |
| 差分 | なし | これは sap-transport-review の役割です。このスキルでは幅広い確認のみを行います |
| グループ化 | 所有者別 | ベーシス担当者の考え方は「誰のリクエストか、何件あるか、どれくらいの規模か」です |
入力
絞り込みは任意です。指定があれば適用し、なければシステム全体を対象にします。
- 所有者/ユーザー — 開発者 1 人の未完了リクエスト。
- ステータス —
D(デフォルト)、R(リリース済み)、*(すべて)。 - 説明/規模/ターゲットのフィルター — 例:「'migration' に一致」「20 件を超える」「ターゲットなし」。現在のトランスポートのペイロードには経過期間やオブジェクトのパッケージフィールドがないため、別の信頼できるデータソースがない限り、経過期間やパッケージによるフィルタリングを提案しないでください。
スコープのガード: システム全体の一覧には、数百件のリクエストが含まれることがあります。必ず summary=true から始めてください。それでも一覧が大きい場合は、集計(所有者別の件数、objectCount の上位 N 件)を行い、フィルタリングを提案してください。求められていない限り、すべてのリクエストのオブジェクト一覧を展開しないでください。
ステップ 1:一覧(低コスト、必ず実行)
SAPTransport(action="list", summary=true, user="*", status="D")
リクエストごとに 1 行が返されます。内容は id、description、owner、status、target/targetDesc、objectCount(およびタスクごとの件数)です。これだけで、システム全体の「未完了のリクエストは何件あり、どれくらいの規模か」がわかります。
ステップ 2:重要なものだけ展開(差分は引き続き取得しない)
ユーザーが指定したリクエスト(またはステップ 3 で疑わしいと判断したリクエスト)について、オブジェクトの一覧全体を取得します。
SAPTransport(action="get", id="<id>")
CTS エントリ(pgmid、type、name、wbtype、locked)を一覧表示します。これはソースやパッケージのメタデータではなく、内容です。注目対象の少数のリクエストだけに get を実行し、システム全体に対して実行しないでください。
Step 3: リスク/健全性フラグ(基礎値)
概要の目的はここにあります。すでに収集したデータから導き出します。
- 確認済みの完全一致の重複 — 対象範囲内のリクエストを明示的に展開した後、同じ完全一致の CTS キー(
pgmid、type、name)が 2 つのマニフェストに存在します。インポート順序のリスクが生じる可能性があります。生のキーの共通部分を使う方法は保守的です。R3TRとLIMU/言語サブオブジェクトでそれぞれ表現されている概念上の重複を見落とす可能性があるため、結果は網羅的な競合検出ではなく、「完全一致の CTS キーの重複」と表記してください。 - 空のリクエスト(
objectCountが 0) — クリーンアップ候補(削除またはリリース)。 - 明示的にロックされたオブジェクト(
getのlocked: true) — 他の開発者を妨げる可能性があります。古いリリースではtm:lock_statusが存在しない場合があるため、locked: falseであっても、そのエントリーがロック解除済みであるとは限りません。 - 移送先なし(
targetが空) — 移送先に移送できない ローカル リクエストです(リリース予定の作業では、誤っていることがよくあります)。
SAPTransport(action="history", type=…, name=…) は、従来のアクション名にかかわらず、現在の割り当て状況を示します。relatedTransports には現在のロックリクエストが最大 1 件含まれ、candidateTransports はオブジェクトの割り当て先候補となるリクエストです。候補にはオブジェクトが含まれておらず、競合や履歴の根拠にはなりません。完全な履歴上の所属情報を確認するには、E071/E070 へのアクセスが必要です。ここで使用する標準の ADT エンドポイントでは、その情報は提供されません。
移送マニフェストから $TMP を推測しないでください。CTS エントリーにはパッケージ情報がなく、ローカルパッケージのオブジェクトは通常、移送の内容には含まれません。そのように主張する前に、パッケージを別途確認してください。
Step 4: レポート
# Open transports — <SID> (<N> requests, <M> objects, <K> owners)
## By owner
| Owner | Requests | Objects | Notable |
|---|---|---|---|
| MARIAN | 6 | 41 | 1 empty, 1 local request |
| ANNA | 2 | 8 | |
## Register
| Request | Owner | Description | Objects | Target | Flags |
|---|---|---|---|---|---|
| A4HK900123 | MARIAN | Sales order RAP | 12 | LOCAL | ⚠ no target — won't ship |
| A4HK900200 | ANNA | Pricing fix | 3 | C11 | ⚠ ZCL_PRICE also in A4HK900123 |
## Needs attention
- ⚠ Exact CTS key R3TR/CLAS/ZCL_PRICE is in 2 expanded requests (A4HK900123, A4HK900200) → possible import-order conflict; sequence or consolidate.
- ⚠ A4HK900155 (MARIAN) is empty → delete or release.
- ⚠ A4HK900123 has no target → local request; confirm it is not intended for downstream import.
求められた場合にのみディスクに書き込み、それ以外の場合はインラインで返します。
エラー処理
| エラー | 原因 | 対処方法 |
|---|---|---|
list が非常に多くのリクエストを返す | システムが混雑している | summary=true を維持し、所有者ごとに集計してサイズ上位 N 件を示し、フィルタリングを提案します |
user="*" が自分のリクエストしか返さない | バックエンドがフィルターなしのクエリを無視した/スコープの制限 | SAP ユーザーが他のユーザーのリクエストを参照できるか確認します(S_TRANSPRT)。システムによっては、ユーザーをまたいだ一覧表示が制限されています |
多数のリクエストに対する get が遅い | 展開しすぎている | フラグが付いたリクエスト、または対象のリクエストのみを展開し、システム全体は展開しないでください |
history が多数の候補を返す | 候補は割り当て先の選択肢であり、リクエストに含まれるオブジェクトではない | 履歴/重複の根拠として使用せず、明示的に展開したマニフェストを比較してください |
| リリース済みのリクエストも必要 | デフォルトは D のみ | status="R" または status="*" を指定して list を再実行してください |
このスキルを使用する場面
- Basis/リリースマネージャー:「システム全体で何がオープンになっていて、インポート時にどのようなリスクがあるか?」
- チームリード:「今、全員が何に取り組んでいるか?」/バックログとクリーンアップのレビュー。
- インポート前/本稼働前:移送の一括実行前に、オブジェクトの重複とローカルのみのリクエストを見つけます。
このスキルを使用しない場面
- リクエストで具体的に何が変更されたか(ソースの差分)→ sap-transport-review。
- 1 つのオブジェクトの完全な履歴(「どの移送が ZCL_X に変更を加えたか」)→ 標準の ADT history アクションでは確認できません。認証済みの E071/E070 データワークフロー、または外部 CTS レポートを使用してください。
- 1 つのオブジェクトの現在のロック/割り当て状況 →
SAPTransport(action="history", type=…, name=…)。 - システム間の比較(DEV は QAS より進んでいるか)→ 対象外です。ARC-1 はインスタンスごとに 1 つのシステムに紐付けられます。各システムに対して CLI を実行し、比較してください。
フォローアップの選択肢
- 「この中の 1 つの実際の変更をレビューしますか?」→ sap-transport-review。
- 「準備ができたものをリリースしますか?」→
SAPTransport(action="release")/release_recursive。 - 「空のものをクリーンアップしますか?」→
SAPTransport(action="delete")。