📜  apex get recordid (1)

📅  最后修改于: 2023-12-03 14:39:17.913000             🧑  作者: Mango

在Apex中获取Record Id

在Salesforce Apex编程中,有时需要获取特定记录的唯一标识符,也称为Record Id。Record Id是Salesforce中每个记录的唯一标识符,它由一串数字和字母组成。

以下是在Apex中获取Record Id的几种常见方式:

1. 使用Id字段

每个SObject(标准或自定义对象)都有一个Id字段,该字段包含其唯一的Record Id。要获取当前记录的Id,你可以使用如下代码:

Id recordId = record.Id;

这将把当前记录的Id分配给变量recordId

2. 使用Trigger的Context

在触发器中,你可以使用Trigger的上下文中获取当前记录的Id。触发器上下文提供了与触发器相关的许多信息,包括操作的记录Id。下面是一个示例:

trigger MyTrigger on MyObject__c (before insert) {
    for (MyObject__c record : Trigger.new) {
        Id recordId = record.Id;
    }
}

在这个示例中,我们通过Trigger的上下文将当前记录的Id分配给变量recordId

3. 使用SOQL查询

如果你知道要获取Record Id的记录的其他唯一标识符,例如其名称或其他字段的值,你可以使用SOQL查询来获取Record Id。以下是一个示例:

MyObject__c record = [SELECT Id FROM MyObject__c WHERE Name = 'SomeName' LIMIT 1];
Id recordId = record.Id;

在这个示例中,我们使用SOQL查询选择名称为'SomeName'的记录,并将其Id分配给变量recordId

4. 使用URL参数

如果你在Visualforce页面或Lightning组件中,可以通过将Record Id作为URL参数传递来获取Record Id。例如,在Visualforce页面的URL中,你可以通过apex:param标签将Record Id传递给Controller:

<apex:page controller="MyController">
    <apex:param name="recordId" value="{!record.Id}" assignTo="{!myRecordId}"/>
    <!-- 页面内容 -->
</apex:page>

在Controller中,你可以将URL参数分配给一个变量:

public class MyController {
    public String myRecordId { get; set; }

    public void someMethod() {
        // 使用myRecordId
    }
}

上述方法可以帮助你在Apex中获取Record Id,无论是通过SObject字段、Trigger上下文、SOQL查询还是URL参数。你可以根据具体的场景选择合适的方法来获取所需的Record Id。

请注意,在某些情况下,可能会因为权限限制而无法获取特定记录的Id,请确保你具有适当的权限以执行所需的操作。