关于 platform-agentexchange-partner-offers-enable
用于 Salesforce 组织管理的技能,可配置组织是否能通过 Transactable Marketplace 接收合作伙伴报价。它先检查当前偏好设置,再部署所需配置并验证结果。
主要功能
- 01读取当前组织偏好设置
- 02启用或禁用接收合作伙伴报价
- 03通过 Metadata API 部署设置
- 04验证部署后的偏好值
- 05部署前要求确认
适用场景
- 01为订阅者组织启用接收合作伙伴报价
- 02禁用 Transactable Marketplace 偏好设置
- 03部署后确认偏好设置已更改
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill platform-agentexchange-partner-offers-enable安装后在 Claude Code 中输入/platform-agentexchange-partner-offers-enable确认已加载。
附带文件assets/org-pref-template.mdexamples/org-preference-settings.xml
详细介绍
启用可交易 Marketplace 接收合作伙伴报价组织偏好设置
此技能通过 TransactableMarketplacePrivateOfferSettings Metadata API 类型配置 enableTransactableMarketplaceReceivePartnerOffers 组织偏好设置,该设置控制 Salesforce 组织是否有资格通过 Transactable Marketplace 接收合作伙伴报价。参与 TM 合作伙伴报价流程的订阅者组织必须启用此设置。
范围
- 范围内:读取偏好设置的当前值,通过 Metadata API(
TransactableMarketplacePrivateOfferSettings)启用或停用该设置,并验证更改是否生效。 - 范围外:创建或管理合作伙伴报价记录、配置 Marketplace 列表,或进行与报价处理相关的 Apex/触发器更改。
必需输入
- 目标组织别名或用户名:要设置此偏好项的组织。如果用户未提供,请询问。
- 目标状态:
true(启用)或false(停用)。默认值:true。
工作流
阶段 1 — 检查当前状态
-
查询当前偏好设置值,运行:
sf data query -q "SELECT Preference, Value FROM OrgPreference WHERE Preference = 'TransactableMarketplaceReceivePartnerOffers'" --target-org <alias> --use-tooling-api如果记录存在且
Value = true,则表示偏好设置已启用——继续操作前请向用户确认。 如果查询未返回任何行,则表示尚未设置此偏好项(默认为false)。 -
解析组织的包目录以确定元数据的写入位置。运行以下命令,并将其输出用作
<packageDir>:jq -r '.packageDirectories[0].path // "force-app/main/default"' sfdx-project.json
阶段 2 — 应用偏好设置
-
写入 TransactableMarketplacePrivateOfferSettings 元数据文件——加载
assets/org-pref-template.md,以获取确切的 XML 结构,然后将文件写入:<packageDir>/settings/TransactableMarketplacePrivateOffer.settings设置
<enableTransactableMarketplaceReceivePartnerOffers>true</enableTransactableMarketplaceReceivePartnerOffers>(如果要停用,则设置为false)。 -
将元数据部署到目标组织。运行部署前,请向用户确认:
- 已与用户确认目标组织别名(部署到错误的组织不容易撤销)
- 已确认目标状态(
true/false)符合用户意图
sf project deploy start --metadata TransactableMarketplacePrivateOfferSettings --target-org <alias>
阶段 3 — 验证
-
确认更改:重新运行步骤 1 中的 Tooling API 查询,并验证
Value列与目标状态相符。 -
向用户报告——参见下文的输出要求。
规则 / 约束
| 规则 | 原因 |
|---|---|
| 写入元数据前,始终查询当前值 | 避免不必要的部署,并发现冲突的更改 |
使用 TransactableMarketplacePrivateOfferSettings 作为元数据类型 | 这是平台为此偏好项注册的具体类型,而非通用的 OrgPreferenceSettings |
设置文件必须命名为 TransactableMarketplacePrivateOffer.settings | Metadata API 要求文件名与设置节点名称一致 |
不要硬编码 force-app/main/default/ | 始终读取 sfdx-project.json 以确定实际的包目录 |
| 未与用户确认组织别名前,绝不部署 | 部署到错误的组织不容易撤销 |
常见问题
| 问题 | 解决方法 |
|---|---|
| Tooling API 查询未返回任何行 | 首选项未设置(默认为 false)。可以安全地创建新的设置文件。 |
部署失败并报错 INVALID_TYPE | 元数据类型名称为 TransactableMarketplacePrivateOfferSettings——请检查 --metadata 标志的值。 |
| 部署成功,但值未更改 | 项目中的另一个设置文件可能覆盖了此文件。请在项目中搜索其他 TransactableMarketplacePrivateOffer.settings 文件。 |
部署时出现 INSUFFICIENT_ACCESS_OR_READONLY | 执行部署的用户必须在目标组织中拥有“Modify All Data”权限或组织首选项管理员权限。 |
| 首选项未显示在 UI 中 | enableTransactableMarketplaceReceivePartnerOffers 不会显示在 Setup UI 中——Tooling API 查询是唯一的验证方式。 |
| 仅从 API 版本 67.0 起可用 | 此类型从 API v67.0 起可用——针对更早的 API 版本进行部署将会失败。 |
输出要求
完成所有阶段后,报告:
Org: <alias>
Preference: enableTransactableMarketplaceReceivePartnerOffers
Previous value: <true|false|unset>
New value: <true|false>
File written: <packageDir>/settings/TransactableMarketplacePrivateOffer.settings
Deploy status: Success
参考文件索引
| 文件 | 何时阅读 |
|---|---|
assets/org-pref-template.md | 第 2 阶段,第 3 步——将其用作设置文件的精确 XML 结构 |
examples/org-preference-settings.xml | 用于验证生成的文件是否符合预期格式 |