InterSystems ObjectScript エクステンションでルーチンをインポートしようとするとname is invalidエラーになるときの解決方法
前提条件
- InterSystems ObjectScriptエクステンション 0.9.0
- Visual Studio Code でローカルにルーチンのファイルを作成している。
問題点
ルーチンをGit等でバージョン管理する等の理由で、IRIS(/Cache)サーバー間でファイル連携している場合に、新規ルーチンをファイルから作成し、サーバーへ「Import and Compile」等を実行するとエラーが出てインポートに失敗する事がある。(xxxxxxxxxxはルーチン名)
ERROR #16006: Document 'xxxxxxxxxx' name is invalid
解決方法
先にサーバーからインポートした事があればお気づきの方もいるかもしれないが、InterSystems ObjectScript エクステンションを使用してルーチンをインポートする場合、ルーチンの先頭行に以下のように1行必要となっている。これが無いと上記のようにエラーとなってしまう。
ROUTINE xxxxxxxxxx
INTやINCファイルの場合は、Type属性が必要。Type属性を省略するとMACファイルとしてインポートされる。
ROUTINE xxxxxxxxxx [Type=INC]
インポートされたサーバー側では上記の1行は追加されたままだが、消してもエクスポートすると自動で付加されるので、一度インポート出来てしまえば心配ない。但し、ローカル側でこの1行を消してしまうと再びエラーとなってしまうので注意して欲しい。