クラス定義をスタジオ、Atelier以外を使用して作成する方法はありますか?

InterSystems OpenExchangeのVS Code用のプラグインを利用することでVS Code上でクラス定義の編集が可能です。
詳細は、以下ページをご参照ください。
vscode-objectscript

また、逆にテーブル定義からクラス定義を生成することも可能です。

方法①として、他社RDBMS用に作成したDDL文をインターシステムズ製品上で実行、またはインポートする方法があります。
詳細は、以下ドキュメントをご参照ください。
DDL文の実行について【IRIS】
DDL文の実行について


方法②として、クラス定義クラス・%Dictionary.ClassDefinitionを直接利用し、プログラムより操作する方法があります。

このクラス定義クラスは、システムクラスであり、スタジオで作成されたクラスは全てこのシステムクラスを使いディクショナリに格納されています。

このクラス詳細については、以下ドキュメントをご参照ください。
%Dictionaryパッケージ(クラス定義クラス)について【IRIS】
%Dictionaryパッケージ(クラス定義クラス)について


方法②については、サンプルに処理の詳細をまとめています。ご参照ください。

サンプルの中では、プロパティやメソッドなど設定項目は、外部のファイルを読み込みながら作成しています。

サンプルプログラムは、クラスメソッドとして処理を記述していますが、ルーチンで作成しても動作します。

サンプルクラスメソッドの詳細は、以下の通りです。

■ クラスメソッド=CreatePro (プロパティ追加用)
  引数1:パッケージ名.クラス名 → 作成されたい名前
  引数2:読込みファイル(フルパス指定)→設定したいプロパティ
  引数3:ファイルのデリミタ(省略時タブが使用されます)

 <サンプルファイル>
  Customerクラス用=Customer-pro.txt
  Companyクラス用=Company-pro.txt

ターミナルからの実行例は以下の通りです。

 Set file="C:\temp\Company-pro.txt"
 Do ##Class(ClassDef.Utility).CreateMethod("パッケージ名.クラス名",file)



■ クラスメソッド=CreateMethod (メソッド追加用)
  引数1:パッケージ名.クラス名 → 追加対象のクラスを指定
  引数2:読込みファイル(フルパス指定)→設定したいプロパティ
  引数3:ファイルのデリミタ(省略時タブが使用される)
 <サンプルファイル>
  Csutomerクラスへの追加用=Customer-method.txt

ターミナルからの実行例は以下の通りです。

 Set file="C:\temp\Customer-method.txt"
 Do ##Class(ClassDef.Utility).CreateMethod("パッケージ名.クラス名",file)


<メモ>スタジオでのサンプルファイルインポート方法
 スタジオ: [ツール] > [ローカルからインポート] > [添付のXMLファイルを指定しインポート]


該当する製品: Caché, Ensemble, HealthShare/Caché Based, IRIS Data Platform, HealthShare/IRIS Based, IRIS for Health
関連トピック:
添付ファイル: 参考資料(zip)

アンケートにご協力をお願いします
このトピックは参考になりましたか?
このトピックに関するお問い合わせ

FAQトップに戻る