---
schema_version: "1"
id: 7b75d994b49f942f58f47e27ff233e8245c94536573025e5ac6c2eb7e7cd84be
title: フラットファイル形式
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/dataweave/2.4/dataweave-formats-flatfile.md
canonical_url: https://docs.mulesoft.com/jp/dataweave/2.4/dataweave-formats-flatfile
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 8f13fe372baabe13b545bf7d857f540fb962f26214491462282aa058061a762a
description: MuleSoft Documentation Site
release: "2.4"
latest: false
---
# フラットファイル形式

MIME タイプ: `application/flatfile`​

ID: `flatfile`​

フラットファイル形式では、1 つのメッセージ内で複数のタイプの固定幅レコードを使用できます。スキーマ構造を使用すると、異なるレコードタイプを区別する方法と、レコードを論理的にグループ化する方法を定義できます。

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">DataWeave のフラットファイルは最大 15 のファイルをサポートし、メモリ要件は約 40 対 1 です。たとえば、1 MB のファイルは処理に最大 40 MB のメモリを必要とするため、大きいフラットファイルに対する TPS のニーズと組み合わせてこのメモリ要件を考慮することが重要です。これは正確な数値ではありません。この値は、マッピング命令の複雑さによって異なる可能性があります。</td></tr></tbody></table>

## [](#examples)例: フラットファイルスキーマを指定する

次の例は、フラットファイル形式でデータを出力する DataWeave スクリプトを示しています。 `schemaPath`​ および ​`structureIndent`​ ライタープロパティが使用されています。

```dataweave
%dw 2.0
output application/flatfile schemaPath="src/main/resources/test-data/QBReqRsp.esl", structureIdent="QBResponse"
---
payload
```

## [](#properties)Configuration のプロパティ

DataWeave では、この形式の以下の設定プロパティがサポートされています。

### [](#reader_properties)Reader のプロパティ

DataWeave は、この形式で入力データを読み取る指示を提供するプロパティを受け入れます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 50.0002%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">型</th>
<th class="tableblock halign-left valign-top">デフォルト</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>allowLenientWithBinaryNotEndElement</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>スキーマに型が Binary (バイナリ) または Packed (パック) の要素が含まれていると、最後の要素の形式種別に関係なく、​<code>lenient</code>​ オプションで短いレコードが許可されません。このプロパティを ​<code>true</code>​ に設定すると、検証はレコードが Binary (バイナリ) または Packed (パック) の型で終了するケースのみに適用されます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>enforceRequires</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>必須値がない場合にエラーになります。
  有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>missingValues</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">コピーブックスキーマの場合は ​<code>nulls</code>​、それ以外の場合は ​<code>spaces</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>欠落値を表すために使用される文字を入力します。デフォルト以外の設定を有効化するには、​<code>useMissCharAsDefaultForFill</code>​ プロパティを ​<code>true</code>​ に設定し、​<code>missingValues</code>​ に次のいずれかの値を使用します。</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>none</code>​: すべてのデータを実際の値として処理する</p>
</li>
<li>
<p><code>spaces</code>​: スペースのみで構成される項目を欠落値として解釈する</p>
</li>
<li>
<p><code>zeroes</code>​: 「0」文字のみで構成される数値項目とスペースのみで構成される文字項目を欠落値として解釈する</p>
</li>
<li>
<p><code>nulls</code>​: 0 バイトのみで構成される項目を欠落値として解釈する</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>notTruncateDependingOnSubjectNotPresent</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>DEPENDING ON の対象が存在しない場合にグループ全体を入力します。  <em>2021 年 8 月リリースの Mule 4.3.0-20210622 の DataWeave 2.3 で導入されました。</em>​</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>recordParsing</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>strict</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>予想される、行/レコード間の分離:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>strict</code>​: 各レコードの末尾で改行が予想される。</p>
</li>
<li>
<p><code>lenient</code>​: 改行が使用されるが、レコードがスキーマ仕様よりも短いまたは長い場合がある。ペイロードに改行がない場合は、​<code>lenient</code>​ を使用しないでください。​<code>recordParsing</code>​ のもう 1 つのオプションで改行がないレコードがサポートされます。</p>
</li>
<li>
<p><code>noTerminator</code>​: レコードが分離されずに互いに続く。このオプションは、改行がない固定長のレコードでお勧めします。</p>
</li>
<li>
<p><code>singleRecord</code>​: 入力全体が 1 つのレコード。</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>種別 ​<code>Binary</code>​ または ​<code>Packed</code>​ のスキーマでは、改行を検出できないため、​<code>recordParsing</code>​ を ​<code>lenient</code>​ に設定すると、長いレコードのみを処理でき、短いレコードは処理できません。現在、このスキーマも特定の 1 バイト文字エンコードでのみ機能します (つまり、UTF-8 などの複数バイト形式では機能しません)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>schemaPath</code>​  (必須)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>スキーマ定義。入力の解析で使用するスキーマファイルのローカルディスク内の場所。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>segmentIdent</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>固定幅のスキーマまたはコピーブックスキーマのセグメント識別子 (1 つのセグメント/レコード定義を解析する場合と、スキーマに複数のセグメント定義が含まれている場合にのみ必要)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>structureIdent</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>フラットファイルスキーマのセグメント識別子 (構造定義を解析する場合と、スキーマに複数の構造定義が含まれている場合にのみ必要)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>truncateDependingOn</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>COBOL コピーブックの DEPENDING ON 値を、使用される長さに切り捨てます。有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>useMissCharAsDefaultForFill</code>​</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>デフォルトでは、フラットファイルリーダーおよびライターでは、欠落文字にスペースが使用され、​<code>missingValues</code>​ プロパティの設定が無視されます。このプロパティを ​<code>true</code>​ に設定すると、リーダーは ​<code>missingValues</code>​ プロパティの設定に従います。    <em>2021 年 9 月リリースの Mule 4.3.0-20210823 の DataWeave 2.3 (2.3.0-20210823) で導入されました。</em>​有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>zonedDecimalStrict</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>COBOL コピーブックのゾーン 10 進数値に署名エンコードの ​<code>strict</code>​ ASCII 形式を使用します。
有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
</tbody>
</table>

### [](#writer_properties)Writer のプロパティ

DataWeave は、この形式で出力データを書き込む指示を提供するプロパティを受け入れます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 50.0002%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">型</th>
<th class="tableblock halign-left valign-top">デフォルト</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bufferSize</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Number</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>8192</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>バッファライターのサイズ。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>deferred</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code>​ に設定すると、DataWeave は出力をデータストリームとして生成し、スクリプトの実行はそれがコンシュームされるまで延期されます。
  有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>encoding</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このライターで使用されるエンコード (​<code>UTF-8</code>​ など)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>enforceRequires</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>必須値がない場合にエラーになります。
有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>missingValues</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">コピーブックスキーマの場合は ​<code>NULLS</code>​、それ以外の場合は ​<code>SPACES</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>欠落値を表すために使用される文字を入力します。デフォルト以外の設定を有効化するには、​<code>useMissCharAsDefaultForFill</code>​ を使用し、​<code>missingValues</code>​ に次のいずれかの値を使用します。</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>NONE</code>​: 欠落値の場合に何も書き込まない。</p>
</li>
<li>
<p><code>SPACES</code>​: 項目をスペースで埋める。</p>
</li>
<li>
<p><code>ZEROES</code>​: 数値項目を ​<code>0</code>​ 文字で、文字項目をスペース文字で埋める。</p>
</li>
<li>
<p><code>NULLS</code>​: 項目を 0 バイトで埋める。</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>notTruncateDependingOnSubjectNotPresent</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>DEPENDING ON の対象が存在しない場合にグループ全体を入力します。    <em>2021 年 8 月リリースの Mule 4.3.0-20210622 の DataWeave 2.3 で導入されました。</em>​</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>recordTerminator</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">システムプロパティ ​<code>line.separator</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>レコード区切り文字 (改行)。有効値:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>lf</code>​</p>
</li>
<li>
<p><code>cr</code>​</p>
</li>
<li>
<p><code>crlf</code>​</p>
</li>
<li>
<p><code>none</code>​</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Mule バージョン 4.0.4 以降では、これは、複数のレコードがある場合の区切り文字としてのみ使用されます。値は文字コードに直接変換されます
(​<code>none</code>​ では各レコードの終端はありません)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>retainEmptyStringFieldsOnParsing</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code>​ に設定すると、このプロパティによりリーダーは値がない項目を保持し、その値を空の文字列に設定します。リーダーのデフォルトの動作では、これらの項目を削除します。    <em>2023 年 1 月バージョンの Mule バージョン 4.4.0-20230102 の DataWeave 2.4 で導入されました。</em></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>schemaPath</code>​ (必須)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>スキーマ定義。使用するスキーマファイルが配置されているパス。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>segmentIdent</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>固定幅のスキーマまたはコピーブックスキーマのセグメント識別子 (1 つのセグメント/レコード定義を作成する場合と、スキーマに複数のセグメント定義が含まれている場合にのみ必要)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>structureIdent</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>フラットファイルスキーマのセグメント識別子 (構造定義を作成する場合と、スキーマに複数の構造定義が含まれている場合にのみ必要)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trimValues</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>末尾の文字を切り捨てることで、項目の長さを超える文字列値を切り取ります。有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>trimValues</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>切り捨て値が項目幅より長いかどうかを示します。有効なオプションは、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>truncateDependingOn</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>COBOL コピーブックの DEPENDING ON 値を、使用される長さに切り捨てます。有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>useMissCharAsDefaultForFill</code>​</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>デフォルトでは、フラットファイルリーダーおよびライターでは、欠落文字にスペースが使用され、​<code>missingValues</code>​ プロパティの設定が無視されます。このプロパティを ​<code>true</code>​ に設定すると、ライターは ​<code>missingValues</code>​ プロパティの設定に従います。    <em>2021 年 9 月リリースの Mule 4.3.0-20210823 の DataWeave 2.3 (2.3.0-20210823) で導入されました。</em></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>zonedDecimalStrict</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>COBOL コピーブックのゾーン 10 進数値に署名エンコードの ​<code>strict</code>​ ASCII 形式を使用します。有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#mime_types)サポートされる MIME タイプ

この形式では、次の MIME タイプがサポートされます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 100%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">MIME タイプ</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>*/flatfile</code>​</p></td>
</tr>
</tbody>
</table>