# Salesforce / CM / BI Runtime Boundary Issue Drafts

Date: `2026-07-07`

## 用法

这份文档不是在重新证明
`哪些是 parity`
，
而是把已经比较稳定落到
`runtime boundary`
的 3 组残余面，
整理成更适合开 issue 的格式。

每组都只保留 4 个核心问题：

- `Salesforce 现网会做什么`
- `CM 目前已支持什么`
- `CM 当前未支持 / 疑似未支持什么`
- `对哪张报表有影响`

如果还在判断
`它到底算不算 CM 真 gap`
，
先看：

- [salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md)
- [salesforce-cm-bi-capability-boundary-map-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-capability-boundary-map-2026-07-07.md)

如果要先把
`runtime -> 报表 / 字段 / 模型`
看清楚，
再看：

- [salesforce-cm-bi-runtime-report-impact-crosswalk-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-runtime-report-impact-crosswalk-2026-07-07.md)

## 1. Lead Runtime Boundary

**Suggested Title**

`[Runtime Boundary] Replace residual live Lead trigger behavior still affecting report fd12 lead funnel and ICP surfaces`

**Salesforce 现网会做什么**

- live Salesforce 仍靠 `LeadTrigger` / `LeadAITrigger` 承担一部分 lead runtime：
  lifecycle 收口、
  assignment / reminder / notification 长尾、
  以及 lead-account / campaign 邻近残余语义。

**CM 目前已支持什么**

- `IQM_Completion_Flow`
- `Lead_Status_Duration`
- `Lead_Auto_Create_Org`
- `BN_Lead_Relate_to_Account_by_Email_Domain_Flow`
- `Std_ConvertLeadCampaignPreview`
- lead 主链字段与
  `lead_mql_timestamp`
  /
  `lead_iqm_timestamp`
  已有承接。

**CM 当前未支持 / 疑似未支持什么**

- 在
  `Lead_StatusChangeTimestamp`
  语义收窄、
  Lead 已知长尾 parity 清完以后，
  仍然只存在于 live Apex trigger 的 residual lead runtime。
- 当前最值得保留的真边界读法是：
  `不是 Lead 没有对象能力`
  ，
  而是
  `Lead 剩余 runtime orchestration 还没有平台侧替代方案`
  。

**对哪张报表有影响**

- 主 front-door：
  `fd12e3fc-d36f-4cc5-b2d9-9ed2808489dc`
  `lead funnel / ICP path`
- 次级模型：
  `salesforce_leads`
  `dim_lead`
  `dws_lead_timeline`
  `dws_icp_summary`

**Why This Is Runtime, Not Parity**

- `Lead_StatusChangeTimestamp` 本身已经被判成 `semantic mismatch`。
- `Campaign_Member_Key_Message_Update` 已经被判成 `L2 exact-flow parity`。
- 所以真正值得单列 runtime issue 的，只应是 parity 清完后仍残留的 trigger-only lead logic。

**Look First**

- [docs/salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md)
- [docs/salesforce-cm-bi-report-trace-cards-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-report-trace-cards-2026-07-07.md)
- [docs/salesforce-cm-bi-final-conclusion-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-final-conclusion-2026-07-07.md)

## 2. Opportunity / Quote Runtime Boundary

**Suggested Title**

`[Runtime Boundary] Replace residual live Opportunity and Quote trigger behavior still affecting report 1733 pipeline data quality surfaces`

**Salesforce 现网会做什么**

- live Salesforce 仍靠
  `OpportunityTrigger`
  /
  `QuoteTrigger`
  维持一部分机会质量、
  owner-team 邻近残余、
  quote cleanup / service-window 之外的 residual orchestration。

**CM 目前已支持什么**

- `Std_OpportunityStageDerivedFields`
- `Opportunity_Cloud_Order_Type_Set`
- `Opportunity_Close_Date_Auto_Set`
- `Opportunity_Pricebook_Default`
- Quote 字段、validation substrate、quote enrichment
- 本地 `salesforce_opportunities` 核心字段已存在

**CM 当前未支持 / 疑似未支持什么**

- 在
  `Quote_update_nonstandard_conditions_checkbox*`
  、
  `OpportunityShareToPersalesOwner*`
  和 quote inactive validation 这些 L2 parity 清完以后，
  仍只能依赖 live trigger 的 opp/quote residual runtime。

**对哪张报表有影响**

- 主 front-door：
  `1733a75e-a1b2-4415-8732-2c053657e245`
  `pipeline data quality / cleanup monitor`
- 次级 front-door：
  `837f6250-3c3d-44b9-af6f-4db9aeb30a94`
  `0f2ad8b8-a0a5-40e1-842a-f208c6247c0b`
  `aadb4637-a4be-41e0-a045-8df92303e595`
  `d9161f0e-f04c-49dc-82e1-053ab508ce67`

**Why This Is Runtime, Not Parity**

- Quote cleanup 和 owner-team 这层已存在明确 exact-name parity backlog。
- 因此不应把当前 `1733...` 的全部差异都提前升级成平台无能力。
- 真 runtime issue 只应承接
  `parity 清完后仍残留的 opp/quote trigger-only drift`
  。

**Look First**

- [docs/salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md)
- [docs/salesforce-cm-bi-canonical-matrix-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-canonical-matrix-2026-07-07.md)
- [docs/salesforce-cm-bi-report-lineage-index-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-report-lineage-index-2026-07-07.md)

## 3. Finance Runtime Boundary

**Suggested Title**

`[Runtime Boundary] Replace residual live Order / Revenue / custom line-item trigger behavior still affecting ARR, order, revrec, and collections reporting`

**Salesforce 现网会做什么**

- live Salesforce 仍靠
  `OrderTrigger`
  /
  `RevenueTrigger`
  /
  custom line-item trigger surfaces
  维持一部分 finance runtime：
  order-account-tenant update 后 residual carry-over、
  revrec runtime orchestration、
  以及 custom line-item finance drift / product-family 邻近残余。

**CM 目前已支持什么**

- `Order_Default_RevRec_Entity`
- `Cloud_Registration_Source_from_Org_to_Order`
- `Order_Quote_Payment_Field_Inheritance`
- Order 对 `Revenue__c` 的 rollup
- `Order_Product__c` / `Revenue__c` / `Invoice_Collection__c` helper substrate
- Order、Revenue、Collections、line-item 的主要对象与下游模型已经打通

**CM 当前未支持 / 疑似未支持什么**

- 当
  `Order_Org_Auto_Set_Account_*`
  、
  `Order_Set_PLG_BD_Pool`
  、
  `RevRec_Set_PLG_BD_Pool`
  、
  collections helper / marketplace carry-over、
  auto-number parity
  都清完以后，
  仍只能靠 live trigger 维持的 finance runtime orchestration。

**对哪张报表有影响**

- 主 front-door：
  `837f6250-3c3d-44b9-af6f-4db9aeb30a94`
  `ARR summary + regional/company forecast`
- 主 front-door：
  `f9c4bd70-8ce4-487c-abb1-5518ffffd6bd`
  `activated-order / monthly revrec by account+tenant`
- 次级 front-door：
  `58339683-7a7a-4bb6-91bd-14b149572ac9`
  `account + current/monthly order MRRARR composite`
- 次级模型：
  `salesforce_order_daily_view`
  `salesforce_org_monthly_revrec`
  `monthly_revrec_orders`
  `monthly_revrec_collections`

**Why This Is Runtime, Not Parity**

- finance 线上已经有非常多清楚的 parity backlog：
  `Order_Org_Auto_Set_Account_*`
  、
  `Order_Set_PLG_BD_Pool`
  、
  `RevRec_Set_PLG_BD_Pool`
  、
  `Collection_*`
  、
  auto-number parity。
- 所以 runtime issue 不应吞并这些已知 parity 项，
  而应只聚焦它们清完以后剩下的 trigger-only finance residue。

**Look First**

- [docs/salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md)
- [docs/salesforce-cm-bi-issue-backlog-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-issue-backlog-2026-07-07.md)
- [docs/salesforce-cm-bi-report-trace-cards-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-report-trace-cards-2026-07-07.md)

## 一句话收口

`如果现在要把“更像 CM 真 gap”的部分直接转成 ticket，最稳就是开 3 张 runtime 题：Lead runtime、Opportunity/Quote runtime、Finance runtime；它们都必须显式排除同面已经确认的 parity backlog。`
