generating-custom-tab について
オブジェクト、外部ウェブコンテンツ、Visualforce ページへ移動する Salesforce タブのメタデータを作成するスキルです。有効な XML 要素、ファイル命名、デプロイ要件を中心に説明します。
主な機能
- 01オブジェクト、ウェブ、Visualforce タブの作成
- 02タブのラベル、URL、ページ名の指定
- 03XML 要素の許可リストへの準拠
- 04タブファイルの命名規則
- 05表示設定とアイコンスタイルの設定
活用シーン
- 01カスタムオブジェクトタブの追加
- 02アプリのタブからウェブサイトへリンク
- 03タブ経由での Visualforce ページ公開
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill generating-custom-tabインストール後、Claude Code で/generating-custom-tabを入力して読み込まれたか確認します。
詳細
このスキルを使用する場面
次の作業が必要な場合に、このスキルを使用します。
- オブジェクト、Web ページ、または Visualforce ページのタブを作成する
- アプリケーションにナビゲーションタブを追加する
- タブの表示設定とアクセスを構成する
- カスタムタブに関連するデプロイエラーをトラブルシューティングする
仕様
CustomTab メタデータ仕様
📋 概要
Salesforce アプリケーション内で、オブジェクト、Web コンテンツ、または Visualforce ページに移動するためのカスタムタブです。
🎯 目的
- カスタムオブジェクトへのナビゲーションを提供する
- 外部の Web コンテンツにリンクする
- Visualforce ページにアクセスする
- アプリケーションのナビゲーションを整理する
⚙️ 必須プロパティ
タブの主要プロパティ
- customObject:カスタムオブジェクトのタブには
true、それ以外にはfalseを指定します。 - motif:タブのアイコンスタイルです。オブジェクトの用途に意味的に合致するモチーフを選択してください。すべてのタブで同じモチーフを再利用しないでください。
- label:表示名(オブジェクト以外のタブでのみ必須。オブジェクトタブはオブジェクトからラベルを継承します)
- url:Web URL(Web タブ用)
- page:Visualforce ページ名(Visualforce タブ用)
🚨 厳密な要素許可リスト — 最初にお読みください
ルート要素は必ず <CustomTab> にしてください(<Tab> ではありません)。 XML 名前空間は xmlns="http://soap.sforce.com/2006/04/metadata" でなければなりません。
以下に記載した要素のみが有効です。リストにない要素は、デプロイエラーの原因になります。
| タブの種類 | 使用できる要素(これ以外は使用できません) |
|---|---|
| オブジェクトタブ | <customObject>(必須。true を設定)、<motif>(必須)、<description>(任意) |
| Web タブ | <customObject>(必須。false を設定)、<label>(必須)、<motif>(必須)、<url>(必須)、<urlEncodingKey>(必須。UTF-8 を設定)、<description>(任意)、<frameHeight>(任意) |
| Visualforce タブ | <customObject>(必須。false を設定)、<label>(必須)、<motif>(必須)、<page>(必須)、<description>(任意) |
⚠️ 禁止されている要素(いずれもデプロイエラーの原因になります)
<sobjectName>、<name>、<fullName>、<apiVersion>、<isHidden>、<tabVisibility>、<type>、<mobileReady>、<urlFrameHeight>、<urlType>、<urlRedirect>、<encodingKey>、<height>、<auraComponent>
以下も禁止されています。
- オブジェクトタブの
<label>(オブジェクトタブはカスタムオブジェクトからラベルを継承します) - Web タブの
<page>(Visualforce タブ専用です) <page></page>や<description></description>のような空の要素- 上記の許可リストにない要素
🔧 タブの種類
オブジェクトタブ
- 目的:カスタムオブジェクトまたは標準オブジェクトに移動する
- ファイル名でオブジェクトが決まります:
{ObjectApiName}.tab-meta.xml(例:Space_Station__c.tab-meta.xml) - 必須要素:
<customObject>true</customObject>と<motif> - 正しい例(Space_Station__c.tab-meta.xml の場合):
<?xml version="1.0" encoding="UTF-8"?>
<CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
<customObject>true</customObject>
<motif>Custom39: Telescope</motif>
</CustomTab>
- 正しい例(Supply__c.tab-meta.xml の場合 — モチーフが異なる点に注意):
<?xml version="1.0" encoding="UTF-8"?>
<CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
<customObject>true</customObject>
<motif>Custom98: Truck</motif>
</CustomTab>
- ❌ 誤り —
<sobjectName>、<name>、<fullName>、または<label>を追加しないでください:
<CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
<sobjectName>Space_Station__c</sobjectName>
<label>Space Station</label>
<customObject>true</customObject>
<motif>Custom57: Desert</motif>
</CustomTab>
Web タブ
- 目的:外部の Web サイトまたは Web アプリケーションにリンクする
- ファイル名:内容がわかる名前を使用します:
{TabName}.tab-meta.xml(例:Knowledge_Base.tab-meta.xml) - このテンプレートをそのままコピーしてください — プレースホルダーの値のみを置き換えてください。XML 要素の追加、削除、名前の変更はしないでください。
<?xml version="1.0" encoding="UTF-8"?>
<CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
<customObject>false</customObject>
<description>REPLACE_WITH_DESCRIPTION</description>
<frameHeight>600</frameHeight>
<label>REPLACE_WITH_LABEL</label>
<motif>REPLACE_WITH_MOTIF</motif>
<url>REPLACE_WITH_URL</url>
<urlEncodingKey>UTF-8</urlEncodingKey>
</CustomTab>
- 上記の7つの要素のみが、Web タブのファイルで使用できる要素です。他の要素は一切追加しないでください。
<description>要素は任意です。必要なければ削除できますが、ほかの要素は追加しないでください。
Visualforce タブ
- 目的:カスタム Visualforce ページにアクセスする
- ファイル名:
{TabName}.tab-meta.xml(例:Custom_Page_Tab.tab-meta.xml) - 必須要素:
<customObject>false</customObject>、<label>、<motif>、<page> - 正しい例:
<?xml version="1.0" encoding="UTF-8"?>
<CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
<customObject>false</customObject>
<label>Custom Page</label>
<motif>Custom46: Computer</motif>
<page>CustomPage</page>
</CustomTab>
🎨 タブの構成
タブのスタイル
- デフォルト:標準のタブスタイルを使用します
- カスタム:必要に応じてカスタムのタブスタイルを指定できます
タブの表示設定
- デフォルト:アクセス権を持つすべてのユーザーに表示されます
- カスタム:特定のユーザープロファイル向けに設定できます
📱 対応アプリケーション
- 標準アプリ:標準の Salesforce アプリケーションで利用できます
- カスタムアプリ:カスタムアプリケーションに含めることができます
- コミュニティアプリ:コミュニティアプリケーションで利用できます
🔗 統合ポイント
- オブジェクトの関連付け:関連するオブジェクトレコードにリンクします
- Web コンテンツ:外部 Web サイトと統合します
- Visualforce ページ:カスタムページ機能を提供します
- Lightning コンポーネント:モダンなコンポーネントと統合します
✅ ベストプラクティス
- 明確でわかりやすいタブラベルを使用します
- 機能に適したタブタイプを選択します
- 各タブに固有で、文脈に合ったモチーフを選択します — すべてのタブに同じアイコンをデフォルトで設定しないでください
- ユーザーエクスペリエンスとナビゲーションフローを考慮します
- さまざまなアプリケーションでタブの機能をテストします
- 適切な権限と表示設定を確保します
- 一貫した命名規則に従います
- オブジェクトタブファイルには、
<customObject>true</customObject>と<motif>のみを含める必要があります。それ以外は含めないでください - Web タブファイルには、
<customObject>false</customObject>、<label>、<motif>、<url>、<urlEncodingKey>と、必要に応じて<description>、<frameHeight>のみを含める必要があります。それ以外は含めないでください <isHidden>、<tabVisibility>、<type>、<mobileReady>、または空の要素は含めないでください
コメント
Markdown 対応