はい、できます。
詳細は、添付のISJ.TestClass1.xmlをインポートして、クラス定義をご参照ください。
クラス定義インポート後、ISJ.TestClass1 クラスに対してPopulate()メソッドを実行すると、サンプルデータが作成できます。
USER>do ##class(ISJ.TestClass1).Populate(10)
メソッド getLatestID() のように、InterSystems ObjectScript で記述し、戻り値を設定します。さらに、このメソッドを ClassMethod かつ、SQLストアドプロシージャ(sqlproc キーワード)に指定します。
ClassMethod getLatestID() As %Integer [ SqlName = getLatestID, SqlProc ]
{
:
この定義により以下のようにストアド関数として実行できます。
(ターミナルをSQLの実行環境に変更してから SELECT文を実行している例です)
USER>do $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
The command prefix is currently set to: <>.
Enter q to quit, ? for help.
USER>>select ISJ.getLatestID() As LatestID
4. select ISJ.getLatestID() As LatestID
LatestID
10
また、以下実行例のように記述すると、最新IDのnameだけ表示します。
select name from ISJ.TestClass1 WHERE ID=ISJ.getLatestID()