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