ƒRƒ“ƒeƒ“ƒcƒtƒŒ[ƒ€‹N“®

‚±‚̃Oƒ‰ƒtƒBƒbƒN‚Í“Y•t‚̃eƒLƒXƒg‚Éà–¾‚³‚ê‚Ä‚¢‚Ü‚·  “à•”ƒe[ƒuƒ‹‚ւ̃oƒCƒ“ƒh •¶‘‚ð SAP ƒ‰ƒCƒuƒ‰ƒŠƒXƒgƒ‰ƒNƒ`ƒƒ‚É‘g‚Ýž‚Þ

ABAP •W€“à•”ƒe[ƒuƒ‹‚Í JavaScript ‚Å‚ÍA’è‹`ς݃vƒƒLƒVƒNƒ‰ƒX SAPAbapItabClass ‚̃vƒƒLƒVƒIƒuƒWƒFƒNƒg‚Æ‚µ‚ă}ƒbƒv‚³‚ê‚Ü‚·BƒvƒƒLƒVƒNƒ‰ƒX‚ÍA”z—ñ‚ðŽÀ‘•‚µ‚Ü‚·BJavaScript ŽQƂɂÍABIND ƒƒ\ƒbƒh‚Ì NAME_PROP ƒpƒ‰ƒ[ƒ^‚ðŽg—p‚µ‚Ä‘å•¶Žš¬•¶Žš‚ð‹æ•Ê‚·‚閼̂ðŽw’è‚Å‚«‚Ü‚·B”z—ñƒGƒŒƒƒ“ƒg‚̃JƒEƒ“ƒg‚ÍAƒCƒ“ƒfƒbƒNƒX 0 ‚©‚çŽn‚Ü‚è‚Ü‚·B

ƒCƒ“ƒfƒbƒNƒX eindexf ‚ð—L‚·‚é“à•”ƒe[ƒuƒ‹‚Ìs‚É eproxy[index]f ‚ðŽg—p‚µ‚ăAƒNƒZƒX‚Å‚«‚Ü‚·B

ƒvƒƒLƒVƒIƒuƒWƒFƒNƒg‚ª—L‚·‚éƒvƒƒpƒeƒBAƒƒ\ƒbƒh‚ðŽŸ‚ÉŽ¦‚µ‚Ü‚·B

·        Œ»Ý‚Ì“à•”ƒe[ƒuƒ‹‚Ìs”Ô†‚ðŽû—e‚·‚éƒvƒƒpƒeƒB elengthf B

·        “à•”ƒe[ƒuƒ‹‚É‹ó”’s‚̒ljÁ‚ð‰Â”\‚É‚·‚郃\ƒbƒh eappendLinef B

·        s eidxf ‚©‚ç ecountf s‚Ì휂ð‰Â”\‚É‚·‚郃\ƒbƒh edeleteLines(idx,count)f B

“à•”ƒe[ƒuƒ‹‚Ìsƒ^ƒCƒv‚ª\‘¢‘Ì‚Ìê‡A\‘¢‘̂̃Rƒ“ƒ|[ƒlƒ“ƒg‚̓vƒƒLƒVƒIƒuƒWƒFƒNƒg‚̃vƒƒpƒeƒB‚ðŒ`¬‚µA‚»‚Ì‚½‚ß ABAP –¼‚ͬ•¶Žš‚Å“n‚³‚ê‚Ü‚·B

JavaScript ‚Å‚ÍA—˜—p‰Â”\‚łȂ¢ƒGƒ“ƒgƒŠ‚ðƒAƒhƒŒƒX‚·‚邱‚Ƃɂæ‚è”z—ñƒGƒŒƒƒ“ƒg‚ðV‹K쬂·‚邱‚Ƃ͂ł«‚Ü‚¹‚ñBJavaScript ‚Ì’Ê—á‚Æ‚µ‚ÄA”z—ñƒGƒŒƒƒ“ƒg‚̃JƒEƒ“ƒg‚Í 0 ‚©‚çŽn‚Ü‚è‚Ü‚·JavaScript “à‚Å‚ÍA‘¼‚̃vƒƒpƒeƒB‚Ü‚½‚̓ƒ\ƒbƒh‚ðƒvƒƒLƒVƒIƒuƒWƒFƒNƒg‚ɒljÁ‚Å‚«‚Ü‚¹‚ñB\‘¢‘̂Ƃµ‚ÄAJavaScript “à‚Å‚Í“à•”ƒe[ƒuƒ‹‘S‘Ì‚ð•ÏX‚Å‚«‚Ü‚¹‚ñBˆêˆÓƒL[‚Ì‚ ‚éƒe[ƒuƒ‹‚̃L[ƒtƒB[ƒ‹ƒh‚ð JavaScript “à‚Å•ÏX‚µ‚ăL[‚̈êˆÓ«‚Ɉᔽ‚·‚邯AŽÀsŽžƒGƒ‰[‚ª”­¶‚µ‚Ü‚·B

—á

report DEMO_JAVA_SCRIPT_BIND_ITAB.

data: begin of LINE,
        COMP type I,
      end of LINE.

data ITAB like standard table of LINE.

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

JS_PROCESSOR = CL_JAVA_SCRIPT=>CREATE( ).

JS_PROCESSOR->BIND( exporting NAME_OBJ  = 'abap'
                              NAME_PROP = 'Itab'
                    changing  DATA      = ITAB ).

do 5 times.
  LINE-COMP = SY-INDEX.
  append LINE to ITAB.
enddo.

concatenate 'var len = abap.Itab.length;           '
            'var sum = 0;                          '
            'for (var i = 0; i < len; i++)         '
            '{                                     '
            '  sum += Number(abap.Itab[i].comp)    '
            '}                                     '
            'abap.Itab.appendLine();                '
            'len++;                                '
            'abap.Itab.appendLine();                '
            'len++;                                '
            'abap.Itab[len-1].comp=sum;             '
   into SOURCE separated by CL_ABAP_CHAR_UTILITIES=>CR_LF.

JS_PROCESSOR->EVALUATE( JAVA_SCRIPT = SOURCE ).

loop at ITAB into LINE.
  write / LINE-COMP.
endloop.

‚±‚Ì—á‚ÍAJavaScript “à‚Ì\‘¢‘Ì‚Ì“à•”ƒe[ƒuƒ‹‚ɃAƒNƒZƒX‚·‚é•û–@‚𖾂炩‚É‚µ‚Ü‚·B‚Ü‚½‚±‚±‚Å‚ÍAABAP Šî–{ƒf[ƒ^Œ^‚É‚æ‚Á‚Ä“à•”ƒe[ƒuƒ‹‚ɃAƒNƒZƒX‚Å‚«A‚»‚Ì‚½‚ß ecompf Žd—l‚Í JavaScript ‚ł͒P‚É–³Ž‹‚³‚ê‚Ü‚·BJavaScript ƒvƒƒOƒ‰ƒ€‚̓Gƒ“ƒgƒŠ‚ð‡Œv‚µ‚ÄA2 s‚Ì‹ó”’s‚ð“à•”ƒe[ƒuƒ‹‚ɒljÁ‚µ‚Ä‚©‚çAÅŒã‚̃Gƒ“ƒgƒŠ‚É‚±‚̇Œv‚ð‹L“ü‚µ‚Ü‚·BEVALUATE ƒƒ\ƒbƒh‚ªŒÄ‚Ño‚³‚ꂽŒãAABAP ƒvƒƒOƒ‰ƒ€‚Ì“à•”ƒe[ƒuƒ‹‚É‚Í 7 s‚ ‚è‚Ü‚·B‚Ü‚½ ABAP ƒvƒƒOƒ‰ƒ€‚Ì“à•”ƒe[ƒuƒ‹‚ÍAƒƒ\ƒbƒh‚ªŒÄ‚Ño‚³‚ꂽŒã‚Ƀf[ƒ^‚ª“ü—Í‚³‚ê‚Ü‚·BJavaScript ‚ÍAí‚É ABAP ‚ÅÅV‚̃f[ƒ^‚ðŽg—p‚µ‚Ü‚·B

JavaScript ‚Ì”z—ñƒIƒuƒWƒFƒNƒg‚ÌŠî–{ƒvƒƒpƒeƒB‚ð‘¼‚Ì JavaScript •Ï”‚ÉŠ„‚è“–‚Ä‚éê‡A’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢BABAP ‚Ì“à•”ƒe[ƒuƒ‹‚ªÄ‘gD‚³‚ê‚邯AJavaScript ‚¨‚æ‚Ñ ABAP “à‚Ì‚±‚ê‚ç‚ÌŽQÆ‚µ‚Ä‚¢‚éƒoƒCƒ“ƒh‚ÍŽ¸‚í‚ê‚ÄA—áŠO‚ª”­¶‚µ‚Ü‚·B—á:

—á

report DEMO_JAVA_SCRIPT_BIND_ITAB.

data: begin of LINE,
        COMP type I,
      end of LINE.

data ITAB like standard table of LINE.

data SOURCE type STRING.
data RETURN_VALUE type STRING.

data JS_PROCESSOR type ref to CL_JAVA_SCRIPT.
JS_PROCESSOR = CL_JAVA_SCRIPT=>CREATE( ).

JS_PROCESSOR->BIND( DATA      = ITAB
                    NAME_OBJ  = 'abap'
                    NAME_PROP = 'Itab
')
.

do 5 times.
  LINE-COMP = SY-INDEX.
  append LINE to ITAB.
enddo.

concatenate 'var pointer = abap.Itab[4];          '
            'pointer.comp;                        '
  into SOURCE separated by CL_ABAP_CHAR_UTILITIES=>CR_LF.

RETURN_VALUE = JS_PROCESSOR->EVALUATE( JAVA_SCRIPT = SOURCE ).
message return_value TYPE 'I'.

clear ITAB.

do 5 times.
  LINE-COMP = SY-INDEX ** 2.
  append LINE to ITAB.
enddo.

SOURCE = 'pointer.comp;'.

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

‰‚߂ăƒ\ƒbƒh‚ªŒÄ‚Ño‚³‚ê‚邯Aƒƒ\ƒbƒh‚Í '5' ‚Ì’l‚ð•Ô‚µ‚Ü‚·B‚½‚¾‚µ 2 ‰ñ‚߂ɂÍAˆ—•s”\‚Ì—áŠO‚ðˆø‚«‹N‚±‚µ‚Ü‚·B‚±‚Ì—áŠO‚É‚ÍAŽÀsŽžƒGƒ‰[SYSTEM_DATA_ALREADY_FREE ‚ª•t‘®‚µ‚Ü‚·BJavaScript ŽQÆ epointerf ‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢ƒƒ‚ƒŠ—̈æ‚ðƒ|ƒCƒ“ƒg‚·‚é‚©‚ç‚Å‚·B

 

 

 

ƒRƒ“ƒeƒ“ƒcƒtƒŒ[ƒ€I—¹