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