根据变量值取得变量的参数名
生活随笔
收集整理的這篇文章主要介紹了
根据变量值取得变量的参数名
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫作于2017年2月17日。
Java和ABAP只能根據字符串通過反射獲得變量的metadata,像標題描述的這個需求聽起來有點怪。需求是Mervin實現Range search時需要根據range table的內容來動態拼OPEN SQL,OPEN SQL里的statement必須是range table的變量名。
AG9:
這四個參數模擬search支持的attribute,如果runtime時候哪個參數傳了值進去,就把哪個參數名拼到SQL去:
具體實現:
method BUILD_SQL. * Jerry: move this logic to constructor!!data: lt_arg TYPE TABLE OF SEOSUBCODF.SELECT * INTO TABLE lt_arg FROM SEOSUBCODF WHERE clsname = 'ZCL_SQL'and cmpname = 'BUILD_SQL'. * Jerry: end.DATA: lv_result TYPE string value 'select from XXX'.LOOP AT lt_arg ASSIGNING FIELD-SYMBOL(<arg>).ASSIGN (<arg>-sconame) TO FIELD-SYMBOL(<arg_value>).IF sy-subrc = 0 and <arg_value> IS NOT INITIAL.lv_result = | { lv_result } WHERE { <arg>-sconame } = { <arg_value> } |.ENDIF.ENDLOOP.WRITE: / lv_result.endmethod.測試:
輸出:
參數名已經動態拼到SQL里去了:
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的根据变量值取得变量的参数名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 早报:苹果iOS 17首批更新内容曝光
- 下一篇: 谷歌 Pixel 7a 手机高清渲染图流