技術日記

SAP MDG ABAP FIORI等々

FPM Feeder Class 項目属性弄り

2021-11-03 20:24:16 | 日記

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_attributeEXPORTING 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_propertiesEXPORTING 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_attributeEXPORTING 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とかの方が面白いし。