SalesforceにおけるBatchとは?Batchの作成、実装方法をご紹介
IT・技術関連
更新日:2024.09.05
エンジニア採用
SalesforceにおけるBatchとは? Batchとは、一括処理のことです。 Salesforceでは、Apexという独自のプログラム言語を使います。Batch処理は同期しないで実行するので、実行時にプラットフォーム上のデータベースなどの大きな処理をせずに処理が実行できます。 例えば、その日の売上を簡単にまとめて計算することができます。製品の売上や営業の契約数など大量のデータをコンピュータに負荷をかけずに行うことができるので、在庫管理などもできます。 また、プログラム開発のテストを自動化するのにも活用が可能です。Batch処理を行うことで、たくさんあるパターンをテストすることができます。設計段階からテストをすることができるので、問題をはやく見つけることもできるでしょう。 また、銀行関係でもBatch処理は有効です。日中にBatch処理を行うとコンピュータのデータ容量を多く使用します。そのため、夜間にBatch処理を行うことがあります。給与の振り込みや企業間の取引などが多いと言えます。 また、銀行以外の企業でもコンピュータの容量を使用して、業務に支障をきたすことを恐れ、夜間に売上データや生産管理などを行っている企業は多いでしょう。ですので、現在ではSalesforceのBatch処理は各企業や店舗で使用されています。
SalesforceのBatchの作成
SalesforceのBatch処理は、まずBatchファイルというものを作成し、実行します。BatchファイルとはBatch処理をする際にお願いしたいことを並べたものです。 例えば、売上処理のBatchを作成するのであれば、ジャンル別に集計する、合計を集計する、差額を集計する、データを送信するなどの処理を書き記します。 SalesforceのBatch処理はいくつか段階に分かれているので、段階ごとに説明していきます。Batch用インターフェース
SalesforceでBatch処理をする際は、まずBarch用インターフェースを用意します。インターフェースには、継承クラス、startメソッド、executeメソッド、finishメソッドが必要です。 SalesforceにApex一括処理Batch処理を行うために、Database.Batchableインターフェースを継承するApexクラスを実装します。Batchのstartメソッド
インターフェースメソッドのexecuteにデータを渡すには、startメソッドを作成する必要があります。startメソッドは、Database.Querylocatorオブジェクトやジョブにデータを渡し、オブジェクトに含まれるオブジェクトを返すのです。 簡単なクエリを作成して、一括処理ジョブのオブジェクト範囲を作り出す方法もあります。 Database.Querylocatorオブジェクトを使い、クエリに取得される情報の合計数に対するBatch処理は同期しないで実行するので、実行時にプラットフォーム上のデータベースなどの大きな処理をせずに処理が実行されます。 例えば取引先のデータを手に入れたい場合、アカウントオブジェクトに対するApexの一括処理は、5,000万件ほどQueryLocatorを返すことができます。また、一括処理に複雑な条件を付けたい場合は、Iterable オブジェクトを使用すると便利です。 出典:salesforce公式サイト 参照:https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_batch_interface.htmBatchのexecuteメソッド
Batch処理を単位ごとに処理を行っていくのがexecuteメソッドです。executeメソッドでは、メソッドにデータを渡すBatchごとに呼び出しを行います。 Database.BatchableContextのオブジェクトを照らし合わせる、ListBatchのfinishメソッド
Batchのすべての処理が終わった後に呼び出しを行うのがfinishメソッドです。finishメソッドは、確認メールの送信や後処理のために使用されることが多いと言えます。 一括処理の各実行は、個別のトランザアクションとされます。例えると、1,000件一括処理を行うと、Database.executeBatchから任意のパロメーターを指定しないで実行すると、1,000件の内の200件が5つのトランザアクションとされます。 Batch処理を同期しないで実行するので、実行時にプラットフォーム上のデータベースなどの大きな処理をせずに処理が実行され、各トランザアクションでリセットされるのです。 最初のトランザアクションで成功しても次で失敗した場合、使用したデータベースのロールバックは行いません。 出典:salesforce公式サイト 参照:https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_batch_interface.htmSalesforceのBatchの実行
Batchのインターフェース部分の継承メソッド、startメソッド、executeメソッド、finishメソッドを完成させ、一括処理のメソッドを作成します。一括処理のメソッドが完成すると、Batchの実行が可能です。 一括処理を行う際、不具合や例外が出る場合もあります。どこに不具合が出ているのか、どの時点でエラーが発生しているのか知るための方法を紹介します。 Database.BatchableContextを作成して関連付けがされているオブジェクトを文字列で返すことにより、Batchの処理の進行状況を確認しましょう。finishメソッドの中に入れるようにしましょう。 また、例外を取得する場合は、try-catchの処理を入れます。具体的にどのような処理をするかというと、対応できないものだと開発者にメールが届くようにします。対応する必要のある例外は、ログとして出力するなど処理をするようにしましょう。 例外処理をしないとトランザアクションにメールがロールバックされてしまうので、Batchの一括処理で指定した条件でメールを投げる処理をしたい場合、メールが来ないという不具合が起きてしまいます。Batch処理の注意点
Batch処理は大量のデータを処理するのに便利です。しかし、SalesforceだけのBatch処理に限らず、注意点もいくつか存在します。 Batch処理はデータを一括処理をするものですが、リアルタイムで処理をするものではありません。例えば個人の買った商品の集計や処理はBatch処理では行うことができません。 また、データを常に確認できないので、プログラムを担当した人しかBatchの中身を知ることができないという問題があります。情報共有が常にできないというデメリットがあります。 加えて、プログラム担当者がいないときにBatch処理に問題が起きると、対応が遅れる可能性もあるのです。データがあまりにも多いと処理が遅れることもあります。 例えば銀行や企業が夜間Batchを行うのはなぜなのかというと、コンピュータの容量を使用しすぎてしまい、業務に支障をきたす恐れがあるからです。 Batch処理にも注意点が存在するので理解しておきましょう。SalesforceのBatchを活用しよう
今回はSalesforceのBatch処理についてご紹介しました。SalesforceのBatch処理はデータの一括処理として幅広く活用することが可能です。大量のデータを一括処理できるので、店舗の在庫管理や顧客の管理、売上管理などができます。 また、プログラム開発のテストの自動化や銀行などの振り込みや企業間の取引など処理する夜間Batchなどがあります。 使える場面が多いので、ぜひ活用できるようにしていきましょう。]]>この記事の監修者・著者
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
- 2024-06-30キャリアインフラエンジニアはやめとけって本当?きつい理由を口コミを交えて解説
ITエンジニアの派遣を利用したい企業様へ
- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。