コンテンツフレーム起動

機能の文書化 BIND_INSTANCE 文書を SAP ライブラリストラクチャに組み込む

機能

BIND メソッドのバリアント。もっぱら ABAP オブジェクトのバインドを可能にします。BIND とは対照的に、インスタンスは参照と違ってバインドされます。バインドされた ABAP オブジェクトは、インスタンスへのリンク (属性とメソッド)で説明されたのと同一のオブジェクトのパブリックインスタンス属性へのアクセスをJavaScript で可能して、パブリックインスタンスメソッドを呼び出し可能にします。これらは、静的コンポーネントへのアクセスを提供しません。

IMPORT パラメータ

NAME_OBJ (Type STRING)

JavaScript オブジェクトの名称。この名称には最大 256 個の ABAP オブジェクトをプロパティとしてバインドできます ( トップレベルのバインド) 。コンテキスト内では、任意の数のトップレベルバインドを作成できます。空文字列が転送される場合、ABAP オブジェクトはコンテキストのルートオブジェクト ( たとえば、グローバル変数) のプロパティにバインドされます ( ルートレベルのバインド、非推奨)

NAME_PROP (Type STRING)

トップレベルバインドオブジェクトまたはルートオブジェクトのプロパティの名称。JavaScript コンテキスト内では、そのオブジェクトの下の ABAP データオブジェクトにアクセスが行われます。

変更パラメータ

OBJECT_REF (Type REF TO OBJECT)

参照変数の名称。バインドが実行された場合、この変数はABAP オブジェクト内のインスタンスをポイントする必要があります。

例

report DEMO_JAVA_SCRIPT_BIND_INSTANCE.

class C1 definition.
  public section.
    data ATTR type STRING.
    methods CONSTRUCTOR.
endclass.

class C1 implementation.
  method CONSTRUCTOR.
    ATTR = 'Hello '.
  endmethod.
endclass.

data OREF type ref to C1.

data SOURCE type STRING.
data JS_PROCESSOR type ref to CL_JAVA_SCRIPT.

data RETURN_VALUE type STRING.

start-of-selection.

  JS_PROCESSOR = CL_JAVA_SCRIPT=>CREATE( ).

  create object OREF.

  JS_PROCESSOR->BIND_INSTANCE( exporting NAME_OBJ   = 'abap'
                                        NAME_PROP  = 'Ref'
                               changing OBJECT_REF = OREF ).

  if JS_PROCESSOR->LAST_CONDITION_CODE
                      <> CL_JAVA_SCRIPT=>CC_OK.
   message 'Binding Error' type 'E'.
  endif.

  SOURCE = 'abap.Ref.attr += " World!";'.

  RETURN_VALUE =
    JS_PROCESSOR->EVALUATE( JAVA_SCRIPT = SOURCE ).
  write RETURN_VALUE.

この例では、JavaScript OREF->ATTR 属性を 'Hello' から 'Hello World!' に拡張します。先に CREATE OBJECT 命令を実行しないで BIND_INSTANCE メソッドを呼び出すと、JavaScript の処理は停止されます。

 

 

 

コンテンツフレーム終了