METHOD GET PATHS
METHOD GET PATHS ( {folderName ;} methodType ; arrPaths {; stamp}{; *} )
引数 | 型 | 説明 | |
---|---|---|---|
folderName | Text | → | ホームページのフォルダー名 |
methodType | Integer | → | 取得するメソッドタイプセレクター |
arrPaths | Text array | ← | メソッドパスおよび名前の配列 |
stamp | Real | → | スタンプの最小値 |
← | 新しい現在値 | ||
* | 演算子 | → | 指定時 = コンポーネントで実行されたとき、コマンドはホストデータベースに適用される (コンポーネントのコンテキスト以外ではこの引数は無視されます) |
このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。
説明
METHOD GET PATHSコマンドはアプリケーションのうち、methodType引数で指定したタイプであるメソッドの内部的なパス名と名前をarrPaths配列に返します。
メソッドが4Dエクスプローラーのホームページでフォルダーを使用して階層化されていれば、オプションのfolderName引数にフォルダー名を渡すことができます。この場合arrPaths配列にはこのフォルダーに含まれるメソッドのみのパスが返されます。
注: folderNameに"@"文字は使用できません。
methodType 引数にはarrPaths配列にパスを取得したいメソッドのタイプを渡します。Design Object Accessテーマの以下の定数を個別にあるいは加算して使用できます:
定数 | 型 | 値 | コメント |
---|---|---|---|
Path all objects | 倍長整数 | -1 | データベースのすべてのメソッドのパス |
Path class | 倍長整数 | 32 | クラス定義のパス。例: [class]/Person [class]/Student |
Path database method | 倍長整数 | 2 | 指定したデータベースメソッド名。以下のメソッドのリスト: [databaseMethod]/onStartup [databaseMethod]/onExit [databaseMethod]/onDrop [databaseMethod]/onBackupStartup [databaseMethod]/onBackupShutdown [databaseMethod]/onWebConnection [databaseMethod]/onWebAuthentication [databaseMethod]/onWebSessionSuspend [databaseMethod]/onServerStartup [databaseMethod]/onServerShutdown [databaseMethod]/onServerOpenConnection [databaseMethod]/onServerCloseConnection [databaseMethod]/onSystemEvent [databaseMethod]/onSqlAuthentication [databaseMethod]/ onHostDatabaseEvent [databaseMethod]/ onRESTAuthentication [databaseMethod]/ onMobileAppAuthentication [databaseMethod]/ onMobileAppAction |
Path project form | 倍長整数 | 4 | プロジェクトフォームメソッドとすべてのフォームオブジェクトメソッドのパス。例: [projectForm]/myForm/{formMethod} [projectForm]/myForm/button1 [projectForm]/myForm/mylist [projectForm]/myForm/button1 |
Path project method | 倍長整数 | 1 | メソッド名。 例: MyProjectMethod |
Path table form | 倍長整数 | 16 | テーブルフォームメソッドとすべてのフォームオブジェクトメソッド。例: [tableForm]/table_1/Form1/{formMethod} [tableForm]/table_1/Form1/button1 [tableForm]/table_1/Form1/mylist [tableForm]/table_2/Form1/mylist |
Path trigger | 倍長整数 | 8 | データベーストリガーのパス。例: [trigger]/table_1 [trigger]/table_2 |
stamp引数を使用すれば特定の時点以降に更新されたメソッドのパスだけを取得できます。バージョンコントロールシステムの一部として、最新のバックアップ以降に更新されたメソッドだけをアップデートするようにできます。
動作の概要: 4Dはメソッド更新カウンターを保持します。メソッドが作成され再び保存されるたびに、このカウンターは増分され、その現在値がメソッドの内部的なスタンプに格納されます。
stamp引数を渡すと、コマンドはこの引数に渡された値と同じかそれより大きなスタンプ値を持つメソッドのみを返します。さらにコマンドはstamp引数に更新カウンターの新しい値を返します。この値を保持すれば、次回このコマンドを呼び出す際にこの値を渡すことができ、前回のコマンド実行以降に作成あるいは更新されたメソッドのみを取得できます。
メソッドがコンポーネントから実行された場合、デフォルトでコンポーネントメソッドのパスが返されます。* 引数を渡すと配列にはホストデータベースのメソッドパスが返されます。
コマンドが複製されたメソッド名を検知した場合、-9802エラー("オブジェクトパスが固有ではありません")が生成されます。この場合、MSCを使用してデータベースストラクチャーを検証することが望ましいと言えます。
例題 1
"web"フォルダー内のプロジェクトメソッドを取得する:
METHOD GET PATHS("web";Path project method;arrPaths)
例題 2
データベースメソッドとトリガーを取得する:
METHOD GET PATHS(Path trigger+Path database method;arrPaths)
例題 3
最新のバックアップ以降に更新されたプロジェクトメソッドを取得する:
// 前回のスタンプ値を参照
$stamp :=Max([Backups]cur_stamp)
METHOD GET PATHS(Path project method;arrPaths;$stamp)
// 最新のスタンプ値を保存
CREATE RECORD([Backups])
[Backups]cur_stamp :=$stamp
SAVE RECORD([Backups])
例題 4
METHOD SET CODEコマンドの例題参照。