Salesforce 工具 API - 停用触发器

Posted

技术标签:

【中文标题】Salesforce 工具 API - 停用触发器【英文标题】:Salesforce Tooling API - Deactivate Trigger 【发布时间】:2015-05-28 06:07:43 【问题描述】:

我正在尝试使用工具 API 停用触发器。我在开发人员 ORG 中取得了成功。但无法在真正的开发者组织中做到这一点。这是 Salesforce 工具 api 错误吗?

这里是算法的基础,

    创建具有唯一名称的 MetadataContainer 保存元数据容器 创建一个 ApexTriggerMember 设置 Body、MetadataContainerId、ContentEntityId 和 Metadata[apiVersion=33.0 packageVersions=[] status="Inactive" urls=nil>] 修改元数据["status"]="Inactive" 保存 ApexTriggerMember 创建/保存 ContainerAsyncRequest 监控容器直到完成。 适当时显示错误

在沙盒中,我在重新查询 Apex 在此处输入代码后确认,只读字段“内容”看起来合适。我还确认 MetadataContainerId 现在指向状态为“已完成”的 ContainerAsyncRequest

这是我的结果,似乎是成功的,但 ApexTrigger 从未停用 ContentEntityId = 01q.............[我要停用的 ApexTrigger]

Content="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
    <ApexTrigger xmlns=\"urn:metadata.tooling.soap.sforce.com\">
        <apiVersion>33.0</apiVersion>
        <status>Inactive</status>
    </ApexTrigger>" 

Metadata=apiVersion=33.0 packageVersions=nil status="Inactive" urls=nil> attributes=        type="ApexTriggerMember"
     url="/services/data/v33.0/tooling/sobjects/ ApexTriggerMember/401L0000000DCI8IAO"
  


【问题讨论】:

你能给我一些样本,如何停用它? 【参考方案1】:

我认为您需要将非活动触发器从沙盒部署到生产。您不能简单地在生产中停用触发器。即使在 UI 中也是如此。

还有其他选项,例如使用自定义设置或元数据类型来存储运行/不运行值。您将在触发器中查询该值以决定是否运行它。

https://developer.salesforce.com/forums/?id=906F0000000MJM9IAO

【讨论】:

以上是关于Salesforce 工具 API - 停用触发器的主要内容,如果未能解决你的问题,请参考以下文章

工具包php / Salesforce:改变lang

如何通过 API 将自定义字段添加到 SalesForce 中的布局部分

在 Salesforce 中的用户之间共享报表

salesforce Migration一个组织与另一个组织之间的迁移问题

Salesforce:任何可用于访问 Salesforce 日历的 Rest API?

更新时自动停用旧记录的触发器