| 4D v15METHOD SET ATTRIBUTES | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v15
 METHOD SET ATTRIBUTES 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| METHOD SET ATTRIBUTES ( path ; attributes {; *} ) | ||||||||
| 引数 | 型 | 説明 | ||||||
| path | テキスト, テキスト配列 |   | メソッドのパス | |||||
| attributes | Object, Object array |   | 選択したメソッドで設定する属性 | |||||
| * | 演算子 |   | If passed = command applies to host database when executed from a component (parameter ignored outside of this context) | |||||
METHOD SET ATTRIBUTESコマンドは、path引数で指定したメソッドの、attributes引数で指定した値を設定することができます。
path引数にはメソッドパスを含んだテキストか、パスの配列を含んだテキスト配列を渡す事ができます。attributes引数には、属性を適切に設定するために、同様の引数(文字列または配列)を渡す必要があります。このコマンドはプロジェクトメソッドに対してのみ使用できます。path引数に無効なパスを渡した場合、エラーが生成されます。
attributes引数には、メソッドに対して設定した属性を全て含んだオブジェクトまたはオブジェクトの配列を渡します(渡したpath引数の種類によります)。
メソッドの属性はOB SETまたはOB SET ARRAYコマンドを使用して設定する必要があります。ブール型の属性に対してTrueまたはFalseの値を、拡張された属性に対しては特定の値(例えば4D Mobileプロパティにおいて"scope":"table" など)を設定します。attributes引数に存在する属性のみがメソッド属性内で更新されます。
コマンドがコンポーネントから実行された場合、デフォルトではコンポーネントメソッドに対して適用されます。* 引数を渡した場合、コマンドはホストデータベースのメソッドへとアクセスします。
注: 既存のMETHOD SET ATTRIBUTEコマンドは引き続きサポートされますが、このコマンドはブール型の値しか扱えないために、4D Mobileプロパティなどの拡張された属性に対しては使用することができません。
サポートされる属性は以下の通りです:
{
    "invisible" : false, // 表示状態であればtrue
    "publishedWeb" : false,  // 4D tags と URLを通して使用可能であればtrue
    "publishedSoap": false,  // Webサービスとして提供されていればtrue
    "publishedWsdl": false,  // WSDLで公開されていればtrue
    "shared" : false,  // コンポーネントとホストデータベースで共有されていればtrue
    "publishedSql" : false,  // SQLを通して利用可能であればtrue
    "executedOnServer" : false, // サーバー側で実行されていればtrue
    "published4DMobile" : {
        "scope": "table",  // "none" または "table" または "currentRecord" または "currentSelection" 
        "table": "aTableName"  // scope が "none" 以外の場合には表示される
    }
}注: "published4DMobile" 属性については、"table"の値が存在しない、または"scope" が有効でない場合には、これらの属性は無視されます。
属性を一つだけ設定したい場合を考えます:
 C_OBJECT($attributes)
 OB SET($attributes;"executedOnServer";True)
 METHOD SET ATTRIBUTES("aMethod";$attributes) //"executedOnServer" 属性のみが変更されますメソッドを、4D Mobileを経由では使用不可にしたい場合を考えます("scope"属性には"none"値を渡す必要があります):
 C_OBJECT($attributes)
 C_OBJECT($fourDMobileAttribute)
 OB SET($fourDMobileAttribute;"scope";"none")
 OB SET($attributes;"published4DMobile";$fourDMobileAttribute)
 METHOD SET ATTRIBUTES("aMethod";$attributes)
	プロダクト: 4D
	テーマ: ランゲージ
	
        
        
	
	4D v15 - アップグレードリファレンス(標準版) ( 4D v15)
Inherited from : METHOD SET ATTRIBUTES ( 4D v15)
 コメントを追加
コメントを追加