【问题标题】:Transitioning Between Record Types in Salesforce在 Salesforce 中的记录类型之间转换
【发布时间】:2011-10-28 11:41:35
【问题描述】:

Salesforce 允许您使用记录类型来扩展对象定义。是否有一种快速简便的方法允许用户将对象组从一种记录类型转换为另一种?就我而言,我将跟踪学生从申请者到校友的本科生生命周期。将学生生命周期的不同阶段作为记录类型来跟踪对我来说很有意义,这样我就可以为每个阶段创建自定义界面/查看权限/业务逻辑。我希望能够根据 Salesforce 的这个示例创建一个自定义按钮或链接来执行此操作: Salesforce: Getting Started With Buttons and Links。 但是,我没有运气使用 Ajax 工具包查询 RecordType 对象以找出我需要将 Object 更新到的 RecordTypeId。 (我对 JavaScript 比较陌生,所以可能只是我缺乏经验。如果有人问,我很乐意发布我迄今为止尝试过的代码示例。)

在 IdeaExchange 上,有人提到您可以在对象的自定义布局页面 (IdeaExchange: Provide a Means of Changing Record Types) 中包含 RecordType 字段,但这似乎不是管理数百名学生的合理解决方案。

使用工作流或触发器似乎不是一个合理的解决方案,因为它们显然需要您更新记录或创建新记录。学生应该能够随时过渡,不受更新或新增内容的影响。

SO 喜欢当您提及您的问题可能涉及的其他事情时,但我认为这些领域在这里是不言自明的;每当您希望以编程方式在不同记录类型之间进行转换时,此问题都是相关的。

【问题讨论】:

    标签: javascript object types salesforce record


    【解决方案1】:

    您想要的可能不是 RecordType 对象本身,而是您用于跟踪查找该 RecordType 对象的学生的对象上的 RecordTypeId 字段。例如,要查找给定学生的记录类型,SOQL 应如下所示:

    SELECT RecordTypeId FROM Student__c WHERE Id = {some id}
    

    如果你想更新记录,你可以像这样改变 RecordTypeId 的值:

    var student = new sforce.SObject("Student__c");
    student.Id = '{some id}';
    student.RecordTypeId = '{new record type id}';
    result = sforce.connection.update([student]);
    

    要查找给定对象类型的合格 RecordTypeId,您可以查询 RecordType 对象并在 SObjectType 列上进行过滤,或者只需调用 describeSObject(Student__c) 并检查结果中的 RecordTypeInfos 节点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 2012-11-02
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-13
      相关资源
      最近更新 更多