9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Apex Limits クラスで実行ガバナ制限取得

Last updated at Posted at 2019-04-18

1.System.OrgLimits クラスについて

SOAP API 要求、Bulk API 要求、ストリーミング API の制限など、Saleforce 組織のすべての OrgLimit インスタンスのリストまたは対応付けを提供するメソッドが含まれます。
詳細は **Apex 開発者ガイドの OrgLimits クラス**をご参照ください。

2.実装例(LimitMetaData)

public class LimitMetaData {
    public LimitItem aggregateQueries		{get; private set;}
    public LimitItem asyncCalls				{get; private set;}
    public LimitItem callouts				{get; private set;}
    public LimitItem cpuTime				{get; private set;}
    public LimitItem dmlRows				{get; private set;}
    public LimitItem dmlStatements			{get; private set;}
    public LimitItem emailInvocations		{get; private set;}
    public LimitItem futureCalls			{get; private set;}
    public LimitItem heapSize				{get; private set;}
    public LimitItem mobilePushApexCalls	{get; private set;}
    public LimitItem queries				{get; private set;}
    public LimitItem queryLocatorRows		{get; private set;}
    public LimitItem queryRows				{get; private set;}
    public LimitItem queueableJobs			{get; private set;}
    public LimitItem soslQueries			{get; private set;}

    public LimitMetaData() {
        this.aggregateQueries    = new LimitItem('AggregateQueries', Limits.getLimitAggregateQueries(), Limits.getAggregateQueries());
        this.asyncCalls          = new LimitItem('AsyncCalls', Limits.getLimitAsyncCalls(), Limits.getAsyncCalls());
        this.callouts            = new LimitItem('Callouts', Limits.getLimitCallouts(), Limits.getCallouts());
        this.cpuTime             = new LimitItem('CPUTime', Limits.getLimitCPUTime(), Limits.getCPUTime());
        this.dmlRows             = new LimitItem('DmlRows', Limits.getLimitDmlRows(), Limits.getDmlRows());
        this.dmlStatements       = new LimitItem('DmlStatements', Limits.getLimitDmlStatements(), Limits.getDmlStatements());
        this.emailInvocations    = new LimitItem('EmailInvocations', Limits.getLimitEmailInvocations(), Limits.getEmailInvocations());
        this.futureCalls         = new LimitItem('FutureCalls', Limits.getLimitFutureCalls(), Limits.getFutureCalls());
        this.heapSize            = new LimitItem('HeapSize', Limits.getLimitHeapSize(), Limits.getHeapSize());
        this.mobilePushApexCalls = new LimitItem('MobilePushApexCalls', Limits.getLimitMobilePushApexCalls(), Limits.getMobilePushApexCalls());
        this.queries             = new LimitItem('Queries', Limits.getLimitQueries(), Limits.getQueries());
        this.queryLocatorRows    = new LimitItem('QueryLocatorRows', Limits.getLimitQueryLocatorRows(), Limits.getQueryLocatorRows());
        this.queryRows           = new LimitItem('QueryRows', Limits.getLimitQueryRows(), Limits.getQueryRows());
        this.queueableJobs       = new LimitItem('QueueableJobs', Limits.getLimitQueueableJobs(), Limits.getQueueableJobs());
        this.soslQueries         = new LimitItem('SoslQueries', Limits.getLimitSoslQueries(), Limits.getSoslQueries());
    }

    public class LimitItem {
        public String name 			{get; private set;}
        public Integer limitValue 	{get; private set;}
        public Integer usedValue 	{get; private set;}

        public LimitItem(String name, Integer limitValue, Integer usedValue){
            this.name 		= name;
            this.limitValue = limitValue;
            this.usedValue 	= usedValue;
        }
    }
}
9
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?