---
schema_version: "1"
id: f9b62ea2552c3457e91e4ed25e514e4a60a936b96d66d8a38adee03a858622b4
title: Batch Job インスタンス ID
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.7/batch-job-instance-id.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.7/batch-job-instance-id
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 0623f578ea111377044fbd2c1a70de386d7f7ea8aab52083c669c8000e86d910
description: MuleSoft Documentation Site
release: "4.7"
latest: false
---
# Batch Job インスタンス ID

バッチ処理のユーザーは多くの場合、Batch Job の実行フェーズ中に Batch Job のインスタンス ID を判断できる必要があります。

Batch Job インスタンス ID は次の場合に役立ちます。

- データを参照および管理するためにローカルジョブインスタンス ID を外部システムに渡す
- ジョブのカスタムログを改善する
- 重要なイベントに関するメールまたは SMS 通知を送信する

## [](#例)例

Mule は、キー ​`batchJobInstanceId`​ のフロー変数を使用して Batch Job インスタンス ID を公開します。そのフロー変数は、入力フェーズの最初に使用できます。フロー変数はすべてのステップおよび on-complete フェーズでも使用可能です。

![Anypoint Studio のジョブインスタンス ID が表示されているバッチ処理コンポーネント](/mulesoft/current/ja-jp/mule-runtime/4.7/_images/batch-job-instance-id-c4362.png)

ログ出力は次のようになります。

```text
com.mulesoft.mule.runtime.module.batch.internal.engine.DefaultBatchEngine: Created instance '7dc5cad0-ab09-11e8-a790-9801a7b055d3' for batch job 'CreateLeadsBatch'
```

## [](#カスタム-batch-job-インスタンス-id)カスタム Batch Job インスタンス ID

DataWeave 式を使用して、DW 式を取得する ​**JobInstanceId**​ 属性を渡して、各 Batch Job の一意の識別子を指定します。  
定数値は Batch Job には使用できないため、DW 式が以前に参照された値を返した場合、Mule は例外をスローしてジョブインスタンスを作成しません。 ジョブインスタンス ID を設定しない場合、Mule によってインスタンスに割り当てる UUID が自動生成されます。

上記のジョブインスタンスで生成された UUID は ​`ba01e1a0-f5c7-11e4-9414-10ddb1daeb6d`​ です。このように、実際の実行と関連付けることが困難な人間が判読できない識別子となっているため、同時に複数のジョブを実行している可能性があることを考慮すると、この ID はまったく意味不明です。

ユニーク性を保証するため、次の DataWeave 式を使用してサーバーの現在の日付としてジョブ ID を定義できます。  
`#['Job From ' ++ now() as String {format: 'dd/MM/yy hh:mm:ss'}]`​。

これは、実行インスタンスに ​`Job From 15/01/16 05:23:12`​ という名前を付けます。

```text
com.mulesoft.module.batch.engine.DefaultBatchEngine: Created instance Job From 15/01/16 05:23:12 for batch job contacts-to-SFDCBatch
com.mulesoft.module.batch.engine.DefaultBatchEngine: Starting input phase
com.mulesoft.module.batch.engine.DefaultBatchEngine: Input phase completed
com.mulesoft.module.batch.engine.queue.BatchQueueLoader: Starting loading phase for instance 'Job From 15/01/16 05:23:12' of job 'contacts-to-SFDCBatch'
com.mulesoft.module.batch.engine.queue.BatchQueueLoader: Finished loading phase for instance Job From 15/01/16 05:23:12 of job contacts-to-SFDCBatch. 3 records were loaded
com.mulesoft.module.batch.engine.DefaultBatchEngine: Started execution of instance 'Job From 15/01/16 05:23:12' of job 'contacts-to-SFDCBatch'
```

適切に識別されたインスタンスのログは読みやすくなります。

```xml
<batch:job jobName="CreateLeadsBatch" maxFailedRecords="1000" jobInstanceId="#['Job From ' ++ now() as String {format: 'dd/MM/yy hh:mm:ss'}]">
	<batch:process-records >
		<batch:step name="LeadExistsStep">
			...
		</batch:step>

		<batch:step name="LeadInsertStep" acceptExpression="vars.leadNotFound">
			...
		</batch:step>
	</batch:process-records>
	<batch:on-complete >
		...
	</batch:on-complete>
</batch:job>
```

## [](#関連情報)関連情報

- [Batch コンポーネントの設定](https://docs.mulesoft.com/jp/mule-runtime/4.7/batch-filters-and-batch-aggregator)