技術日記

SAP MDG ABAP FIORI等々

RBW Parallel Workflow in MDG

2021-11-23 20:30:25 | 日記

MDGのRule Based Workflowで登場するパラレルワーフフロー

同時に複数の部署に申請を投げて、それぞれ同時に承認を得てそれをマージして承認・却下を判断する。

 

で、ここで問題。。。という訳ではないけど、出てきそうな要件が、

”他の部署が却下した時点でその申請は却下になるから、他のパラレルの部署の判断を待たずに却下処理にしたい”

というもの。

 

パラレルでの標準の動きはあくまですべてのパラレルでのアクションが終わってアクション結果をマージしないと次に進まない。

 

なので、ちょっとした工夫が必要。

 

一旦まず却下の場合はSystem methodを呼び出して、そこで残ってるサブフローを終了させて

マージの段階までフローを持っていく方法がある。

使うべきものはWAPIモジュールと、WorkItem No.を持ってくるクラス。

 

参考したのは以下。(ゴールは違うけど)

https://blogs.sap.com/2018/10/31/mdg-process-visualization/

終了順番は

サブフロー(パラレルの数だけ) → ダイアログステップ(パラレルの数だけ)

 


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


MDGでの締め請求実装

2021-11-01 14:37:58 | 日記

SAP 日本特有設定の締め請求。

ISJPNAYOSE, ISJPHIERARCHYこの二つテーブルをMDGでーということで、色々検証。

 

まず、BAPIがない!

GUIトランザクションでDebug掛けて中身見たけど、

LCJP_BUPA_JP_INVSUM

このパッケージの中にあるクラスとかFMとかを使っていることは分かった。

 

でもPAI,PBOモジュールだけで、ユーザー向けのBAPIはないらしい。

となるとカスタムテーブル扱いでSQLで更新しないといけないわけだから、

データをチェックが大事。

 

ISJPNAYOSEはただ行番号とテキストだけだからそんなに難しいチェックは要らなそう。

ISJPHIERARCHYはFeeder Classを弄ってある程度絞っておかないと有効化の際問題になりそう。

 

でまず記録はここまでで、続きは検証後。。

 

-> 追記

と思ったけど、外部からSAPの流儀に従ってISJPテーブルを更新する仕組みは有った。

ISJP BAPIは、あります!とも言うべきか。。w(BAPIじゃないけどね)

でも分かりずらー後使うの複雑。。。