yonet77的な雑記帳

日々思いついたネタなどを書き留めておきます

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クラスを参照して自分で試してみたりしました。もちろん中身は参照できないので、名前だけで判断することになりますが。。(苦笑)
例えば、こんなところから「くさいなー」という雰囲気を感じたらテストコード書いて試してみたり...ですね。
f:id:yonet77:20120820004006p:plain


そこから推測したりしながら、適当に試してみる感じです。。


※もちろん、この他にGlovia社に問い合わせることもしました。

最後に

ちなみに、先日Glovia社に伺ったところ、gOM内で定義している機能はAPIとして公開しようと考えているそうです。(時期までは分かりませんが)
そんなわけで、それが公開されたら、このエントリも不要となりますね。。(苦笑)
まぁ、そんな期間限定的なエントリということでした。

それではより楽しい(?)gOMカスタマイズを!