# Luaスクリプトの概要

Luaとは、スクリプト言語の一種です。Luaを使用すると、業務固有の特殊処理をスクリプトで記述できます。OSが変わっても再コンパイルなどの移行作業は不要です。さらに、汎用的なスクリプト言語に比べて高速に動作する利点があります。

Luaスクリプトで作成した処理を共通コンポーネント情報として作成しておくと、業務が変更になっても、Luaスクリプトを修正すれば、共通コンポーネントを使用しているすべてのデータ加工処理を修正できます。

Luaの言語仕様については、Luaのドキュメントを参照してください。

(1) DataMagicで対応するLuaの言語仕様

DataMagicで使用できるLuaの言語仕様を次に示します。これ以外の言語仕様は対応していません。

表5.7 DataMagicで使用できるLuaの言語仕様

機能 | 内容
--- | ---
ステートメント | Luaの文法はすべて対応
基本関数 | tonumber, tostringなど
string関数 | 文字列操作
Math関数 | Math関数

LuaスクリプトをDataMagicで使用する場合、関数は次のように使用してください。

- 呼び出した関数内のステートメントのみを記述し、結果を返却（return value）してください。

(2) Luaでの文字コードの仕様

Luaスクリプト内では、文字コードはUTF-8として扱われます。

Luaスクリプトの実行で、入力される引数の文字コード変換仕様を次に示します。

表5.8 Luaスクリプトが実行される場合の、引数の文字コード変換

引数 | 文字コードの変換 | 内容
--- | --- | ---
av0（実際に処理するデータ) | Iタイプ | 変換しない | チェックサムやバイナリデータなど、そのままのデータとして処理します。
Iタイプ以外 | 入力文字コード→UTF-8 | Lua 内でそのまま文字列として扱います。
av1-5(引数1-5) | 固定値などをLua内でそのまま文字列として扱います。

Luaスクリプトの実行で、返却される引数の文字コード変換仕様を次に示します。

表5.9 Luaスクリプトが実行された後に返却される引数の文字コード変換

引数 | 文字コードの変換 | 内容
--- | --- | ---
av0（実際に処理するデータ) | UTF-8→入力文字コード | Lua内で作成したUTF-8の文字列を、入力の文字列として扱います。
av1-5(引数1-5)

注意

- 次に示す2つの条件を満たす場合は、文字コードは変換されません。

  - 出力タイプがI(イメージタイプ(無変換))

  - 使用するLuaがその共通コンポーネントで最後に実行される

  Lua内でバイナリ処理をし、そのままバイナリとして結果を返却したい場合は、Luaを最後の項目とし、Iタイプ(イメージタイプ(無変換))で出力してください。

- Luaスクリプトの実行で入力または返却される引数の文字コード変換では、外字は変換されません。