オブジェクトの指定方法

コメント

3件のコメント

  • 正式なコメント
    Ichiro Takahashi

    フィックスポイントの高橋です。

    テーブルに関連付けた型に「オブジェクト型」のフィールドが定義されていて、そのフィールド値としてのオブジェクトを相対パスで指定して設定したい、と解釈させていただきました。

    その解釈でのサンプルを以下に例示いたします。相対パスを object_name で指定されたとして、path() 組み込み関数で相対パスからオブジェクトを参照します(この場合はジョブフローのあるディレクトリからの相対参照になります)。参照できたオブジェクトをテーブルに追加した new_object の "object_field" という名前のオブジェクト型フィールドに書き込んでいます。

    [table.add: name, overwrite=true] ->
    [new_object = $RESULT] ->
    [new_object.update: object_field=path(object_name)]

    相対パスの参照をジョブフローのあるディレクトリとは別に指定したい場合は、以下のように path() 関数にベースとなる場所を先行する引数として指定することも可能です。

    path("/foo/bar", object_name)

    なお、path() は存在しないオブジェクトのパスを指定するとエラーになりますのでご注意ください。

    コメントアクション Permalink
  • 井上雄一

    ありがとうございます。
    上記は相対パスの文字列を絶対パスの形に変換して設定する感じですね。

    ということはobject_nameで指定されたものをobject_fieldで設定されているものは
    見た目的には違うものになりますよね。

    object_name = "./AAA/BBB"

    object_field = "/root/AAA/BBB"

    のような感じ。

     

    0
    コメントアクション Permalink
  • Ichiro Takahashi

    path() 関数の結果は(絶対パスに変換された)「文字列」ではなく、変換されたパスで参照できる「オブジェクト」になりますので、見た目だけでなくそもそも「型」が別のものとなりますのでご注意ください。

    なお、「オブジェクト型」のフィールドには文字列でパスが保存されているのではなく、データベース上でのオブジェクトの参照を保存しています。そのため参照しているオブジェクトの名称を変更したり場所を移動しても、フィールド値はそのオブジェクトを参照しつづけることになります。

    0
    コメントアクション Permalink

サインインしてコメントを残してください。