Glovia Order Management (on Salesforce) を使ってみようか (10)
久々のgOMネタでも更新します。
本日のネタは開発者よりのネタです。
gOMをカスタマイズするならコレだけは知っとけ
的なネタです。
gOMで用意している機能をApexから利用する
gOMには様々な機能が定義されており、色んなところで使われてます。ざっと見渡しても、こんな機能が思い浮かぶのではないでしょうか?
- 受注残消し込み(いわゆる在庫引当)
- Quick梱包
- Quick出荷
- 出荷確認
- 請求書作成 ....etc
gOMをカスタマイズしながらも、gOM内で想定しているデータの流れに乗っかっていくには、これらの機能をApexから利用することは避けられ...ないでしょう。
というか、自前で作るのは超面倒ですし、gOMのアップグレードに伴って、いちいち修正していくのは...これまた現実的ではありません。。
というわけで、gOMで定義されている機能をApexから呼び出す方法についてご紹介しようと思います!gOMをカスタマイズしていく上で、知っておくと色々と便利かと思います(たぶん)。
※1 JoJo風に言えば、この辺りで、「ドギャーン!」とか擬態音を入れたいところですが、控えます。(ゴゴゴゴゴ..!!)
※2 このあたりはGlovia社の方にもご協力頂きました。多々感謝です!
gOMで定義している機能の利用方法
受注残消し込み
gii.inventoryReserve.clearBackorder(LIST<Id> inventoryReserveId);
- 第1引数: 処理対象となる在庫予約のIdのList
在庫予約
gii.inventoryReserve.reservation(LIST<Id> salesOrderLineId);
- 第1引数: 処理対象となる販売オーダラインのIdのList
Quick梱包
gii.inventoryPack.createPackList(LIST<Id> selectedRecordIds, String groupBy, String IvStatus, String calledFrom);
- 第1引数: 処理対象となる在庫予約のIdのList
- 第2引数: 集約単位(販売オーダ毎の場合、'SalesOrder' と指定 それ以外は知らない...)
- 第3引数: 'Reserved' を指定 それ以外は知らない...
- 第4引数: ''を指定 本来はコール元の画面等を指定するみたいだけど、ブランクでも可
梱包指示確認
gii.inventoryPack.confirmPackList(LIST<Id> selectedRecordIds);
- 第1引数: 処理対象となる梱包指示のIdのList
梱包指示キャンセル
gii.Cancellation.cancelPacklist(SET<Id> PackListId, String calledFrom);
- 第1引数: 処理対象となる梱包指示のIdのSet
- 第2引数: ''を指定 本来はコール元の画面等を指定するみたいだけど、ブランクでも可
出荷確認
gii.packListShipment.shipPackList(LIST<Id> selectedRecordIds, String groupByAndShippedDate, String calledFrom);
- 第1引数: 処理対象となる出荷指示のIdのList
- 第2引数: 集約単位(販売オーダ)と日付(出荷日)を指定 例)'SalesOrder;2012-08-20'
- 第3引数: ''を指定 本来はコール元の画面等を指定するみたいだけど、ブランクでも可
Quick出荷
gii.inventoryReserve.quickShip(LIST<Id> selectedRecordIds, String groupByandShippedDate);
- 第1引数: 処理対象となる在庫予約のIdのList
- 第2引数: 集約単位(販売オーダ)と日付(出荷日)を指定 例)'SalesOrder;2012-08-20'
請求書作成
gii.OrderInvoicing.createInvoice(LIST selectedRecordIds, String groupByandInvoiceDate);
- 第1引数: 処理対象となる請求書作成準備のIdのList
- 第2引数: 集約単位(販売オーダ or 取引先)と日付(請求日)を指定 例)'SalesOrder;2012-08-20', 'Account;2012-08-15'
補足です
上記に書いた内容は、自分がよく使っていた範囲の内容となります。パッと見た感じでは、「出庫」に関する機能もApexから利用できると思います。
調べた方法に関しては...泥臭いですが、gOMをインストールした環境で、Apexクラスを参照して自分で試してみたりしました。もちろん中身は参照できないので、名前だけで判断することになりますが。。(苦笑)
例えば、こんなところから「くさいなー」という雰囲気を感じたらテストコード書いて試してみたり...ですね。
そこから推測したりしながら、適当に試してみる感じです。。
※もちろん、この他にGlovia社に問い合わせることもしました。
最後に
ちなみに、先日Glovia社に伺ったところ、gOM内で定義している機能はAPIとして公開しようと考えているそうです。(時期までは分かりませんが)
そんなわけで、それが公開されたら、このエントリも不要となりますね。。(苦笑)
まぁ、そんな期間限定的なエントリということでした。
それではより楽しい(?)gOMカスタマイズを!