はじめに
こんにちは。株式会社SuiteUP(スイートアップ)代表取締役の、平木 太郎と申します。
ゆっくりしていってね!!!
さて、NetSuiteは、非常に便利なERPです。
ただ、便利は便利なのですが、発想の転換をすることで、カタログスペック以上の力を発揮できます。
なので「どうにかして便利に使ってやろう」という発想が、NetSuiteを使う上で重要だと私は考えています。
(トンチを利かす、とか裏技見つけ出す、とも言う)
とはいえ、実例が無いとピンとこないかもしれませんので、今回は「URLを使ったレコード情報の制御」として、その一端をご説明させて頂きます。
正直、真っ当な使い方とは言えませんが、プログラマ以外の方には簡単で便利と言えるかもしれません。
注意)6年前から使えることは知ってますが、裏技過ぎていつまでも使えるとは思えないので、その点はご留意下さい
1.大前提としての”NetSuiteのURLの仕組み”
基本的には、httpsリクエストのGETで制御することが出来ます。
GETとは、URLに
パラメータ名=パラメータ
を追記すると、遷移先に対してパラメータを渡してあげる機能のことです。(複数のパラメータ名を使うときは&で繋げる)
もちろん、遷移先でこのパラメータを受け取る仕組みは必要なのですが、そこはプログラマ向けのお話なので割愛します。
具体的な例をお見せします。
下記の画像は、NetSuiteの見積書トランザクションの画面です。
ChromeのURL欄には、この見積書の内部ID129130がGETのパラメータとして、以下のように記述されています。
id=129130
次に、この見積書の中の”受注書”ボタンをクリックして、注文書トランザクション(以下、「トラン」)を生成してみます。
すると、URLの中に、以下のGETパラメータが設定されています。
transform=estimate&e=T&id=129130
これは、以下を意味します。
transform=estimate :この注文書トランは見積書トランから生成されたもの
e=T :編集モードで開きなさい
id=129130 :元となったトランレコードの内部IDは129130
これがNetSuiteのURLの記述ルールなのです。
(基本的に、であって、他のレコードタイプでは、また別のルールもあります)
2.では、どうやってURLでレコード情報を制御するのか?
極端なことを言えば、上記のパラメータの値を変えてあげるだけで、任意の画面を(限度はあるものの)好きなように開くことが出来るのです。
あるいは、このURLを覚えて開けば、先程の見積書の”受注書”ボタンをクリックしなくても、同じ内容の注文書トランをいくらでも生成できるのです。
実際に、発注書トランから注文書トランを作る、という無茶苦茶なルールでGETパラメータを設定、そしてURLを開いてみましょう。
(関係会社間取引で出来ますが、それとは違う形)
transform=purchord
e=T
id=135336
...これでも出来ちゃいます。
流石に作成元フィールドの”発注書”は保存後に消滅しますが、アイテムラインを引き継ぐことは出来ます。
特注とは違うけど発注先行で受注データを作る、ようなお客様には使える技かもしれません。
余談ですが、
https://[NetSuiteアカウントID].app.netsuite.com/app/accounting/transactions/estimate.nl?id=129130
ですが、
https://[NetSuiteアカウントID].app.netsuite.com/app/accounting/transactions/transation.nl?id=129130
としても、NetSuiteが自動的にリダイレクトしてくれて、estimateに転送してくれます。
内部IDだけ知ってるけど、トランの種類がわからないときなんかに使える技です。
トランの内部IDがユニークだから出来る技ですね。
3.リンクが動的になるよう作ってみよう
例えば上記の発注書トラン、あるいは他のトランから注文書トランを作るURLは、自動生成させないと、実運用には耐えられません。
また、1発注書ごとにリンクを作ることも妥当とは言えないでしょう。
そこで、SuiteBuilderのカスタムボディフィールドを作る機能と組み合わせます。
'<a href="https://1981313.app.netsuite.com/app/accounting/transactions/salesord.nl?memdoc=0&transform=' || {type} || '&e=T&id=' || {id} || '&whence=" target="_new">注文書作成</a>'
これだけで、SuiteScriptを使ってボタンで画面遷移させる、に匹敵することが実現できるのです。
(もちろん見かけは以下のようにショボいですが…)
4.最後に
いかがでしょうか。
皆様もNetSuiteの様々な裏技を見つけて、是非便利に使ってみて下さい。