MDGでのUIはFPM。
WebDynproをモジュール化して要件に合わせ組み立てて使う方式。
SAP BlogでMDGの偉いおじさんがReplyで、
”新しい機能はFioriを利用するが、既存のMDG(Central Gorvernance)はFPMを使い続く”と書いてたのを見た覚えがある。どの記事だかは忘れたが。
これだった。
https://answers.sap.com/questions/217410/run-mdg-in-sap-s4-hana.html
Feeder Classを弄ると、入力された値によって項目を隠したり、Read-onlyにしたり、編集可能にしたりとかの
ダイナミックな操作が出来る。
BRF+で一々ルール組んでやるのが面倒くさいーと思ったらこっち。
でも手間はFeeder Classの方が掛かる。私としてはFeeder Classいじりの方が楽しいけど。
BRF+をWindows、Feeder ClassをLinuxだと例えば伝わるかなー
で、そのFeeder Class編集だが
品目とBPでちょっと違う。会計はこういう要件がほぼないので割愛。
品目はSPI MODELというのを使っていて、BPはGENIL BOL MODELというのを使っている。
詳しいのは全然分からんけど。
で、品目はこんな感じ。
SET_LOCAL_FIELDSメッソドに
<style type="text/css"> SPAN { "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } </style> <style type="text/css"> SPAN { "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S33 { color: #4DA619; } .L0S52 { color: #0000FF; } .L0S55 { color: #800080; } .L0S70 { color: #808080; } </style> mo_context->get_attribute( EXPORTING iv_name = '項目名'
IMPORTING ev_value = lv_txt )
これで値を持ってきて、フィールド属性は
<style type="text/css"> SPAN { "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S52 { color: #0000FF; } .L0S55 { color: #800080; } .L0S70 { color: #808080; } </style>mo_context->set_field_properties( EXPORTING it_properties = lt_properties )
フィールド値は
<style type="text/css"> SPAN { "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S31 { font-style: italic; color: #808080; } .L0S52 { color: #0000FF; } .L0S55 { color: #800080; } .L0S70 { color: #808080; } </style>mo_context->set_attribute( EXPORTING iv_name = iv_value = '値' )
こういう風に設定。
それに対してBPはGENIL BOLに準じて
GET_FIELD_UI_PROPメッソドに
<style type="text/css"> SPAN { "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S55 { color: #800080; } .L0S70 { color: #808080; } </style>lr_entity = io_entity->get_parent( ). (もし親Objectに欲しい属性があるなら)
lr_entityは cl_crm_bol_entityのtype。
<style type="text/css"> SPAN { "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S55 { color: #800080; } .L0S70 { color: #808080; } </style>lr_entity->get_property( '項目名' )
のようにすると値をもって来る。
フィールド属性の変更はメッソドに降りてくるrs_propertyを好きなように変更すればよし。
(iv_attr_nameで項目名も降りてくる)
<style type="text/css"> SPAN { "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } </style> <style type="text/css"> SPAN { "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } </style>
もうちょっと深くまでいけば色々できそうだけど、
WebDynpro及びFPMはこの先減っていくらしいのであんまりやる気が出ないなー
Fioriの方のJSとかの方が面白いし。