Anfang des Inhaltsbereichs

Funktionsdokumentation BIND_INSTANCE Dokument im Navigationsbaum lokalisieren

Funktion

Variante der Methode BIND, die ausschließlich das Binden von ABAP-Objekten erlaubt. Im Gegensatz zu BIND wird die Instanz und nicht die Referenz gebunden. Gebundene ABAP-Objekte erlauben JavaScript den gleichen Zugriff auf die öffentlichen Instanzattribute der Objekte und den Aufruf von öffentlichen Instanzmethoden wie unter Verbindung zu Instanzen (Attribute und Methoden) beschrieben und keinen Zugriff auf statische Komponenten.

Importing Parameter

NAME_OBJ (Typ STRING)

Name eines JavaScript-Objekts, an das bis zu 256 ABAP-Objekte als Properties gebunden werden können ( Top-Level-Binding). Es können beliebig viele solche Top Level Bindings in einem Kontext angelegt werden. Wenn ein leerer String übergeben wird, wird das ABAP-Objekt an eine Property des Wurzelobjekts (bzw. eine globale Variable) des Kontexts gebunden ( Root-Level-Binding, nicht empfohlen).

NAME_PROP (Typ STRING)

Name des Properties des Top-Level-Binding-Objekts bzw. des Wurzelobjekts unter dem im JavaScript-Kontext auf das ABAP-Datenobjekt zugegriffen wird.

Changing Parameter

OBJECT_REF (Typ REF TO OBJECT)

Name einer Referenzvariablen, die zum Zeitpunkt des Bindens auf eine Instanz in ABAP Objects zeigen muß.

Beispiel

Beispiel

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.

In diesem Beispiel verlängert JavaScript das Attribut OREF->ATTR von 'Hello' auf 'Hello World!'. Ein Aufruf der Methode BIND_INSTANCE ohne vorherrige Anweisung CREATE OBJECT würde zum Abbruch der JavaScript-Verarbeitung führen.

Ende des Inhaltsbereichs