Memos About Salesforce

Salesforceにハマってたこと!

ネットスイート保存検索の条件文

今日もネットスイートの保存検索について

話します。

 

保存検索の条件を作る時に対象のトランザクション(標準オブジェクトの呼び方)

の項目をPickuplistから選べるし、Formula(計算式)で

OraclのCASEステートメントを使用可能。

 

Formula(計算式)が3種類

 

 

  • 文字列

 

 

  • 数値

 

 

  • 日付

 

 

  • 金額

 

 

 

ということで4種類です(笑)

 

私、いつも数値の計算式で条件を作成している。

 

例1:

 

計算式(数値)が1と等しいとする。

式:CASE WHEN {日付項目API参照名を例} IS NOT NULL

THEN 1

END

 

 

 

例2:

 

計算式(数値)が1と等しいとする。

式:CASE WHEN {日付項目API参照名を例} >= {today}

THEN 1

ELSE 0

END

 

 

 

例3:

 

計算式(数値)が1と等しいとする。

式:CASE WHEN {日付項目API参照名を例} IS NOT NULL

THEN CASE WHEN {日付項目API参照名を例} >= {today}

THEN 1 END

ELSE 0

END

 

 

 

これを使って、ソースに条件を追加しなくて、解決できることが多いから、

結構楽。

 

最近、ソースの行数を減らすことに工夫しているから、できるだけソースを書かないようにしている〜〜

 

興味のある方、使ってみてください。

var formula = "case when {internalid} IN (10555) then '1'"

+ " when {internalid} IN (10556) then '0'"

+ " when {internalid} IN (10557) then '1'"

+ " else '0' end";

var filter = new nlobjSearchFilter('formulatext', null, 'is', '1').setFormula(formula);

 

var filters = new Array()

filters[0] = new nlobjSearchFilter('tranId', null, 'is', request.getParameter('order_number') );

 

var columns = new Array();

columns[0] = new nlobjSearchColumn( 'internalId' )

 

var results =nlapiSearchRecord('invoice', null, filters, columns );// null のところはレコードID、指定しない意味

これは請求書に対して、idを指定せずに条件と抽出したい項目の保存検索を呼び出している例です。

 

 

赤字のところはソースに書く場合、これは普通にソース書かなくても

 

保存検索の条件文に追加もできるとのことです。

ソース好きなら、書いても構わないっす。

 

それでは 管理人 けん でした。