参加
最後オンライン
最近の投稿
テクニカルに投稿されました 続きを読む

このトピックでは、Pegaでの文字列処理の方法を取り上げて説明します。

文字列型(Pega type: Text)は、Pega内部でJavaのString型を使用し表現されます。

チェック処理

Pega標準で用意された関数を一部抜粋します。

  • @isDouble(inputString)
    文字列が有効な倍精度数を表しているかどうかをチェックします。
  • @isInteger(inputString)
    文字列が有効な整数を表しているかどうかをチェックします。
  • @isLiteral(inputString)
    入力がリテラルかプロパティ参照かをチェックします。

検索処理

Pega標準で用意された関数を一部抜粋します。

  • @indexOf(strStringToSearch,strStringToSearchFor)
    strStringToSearchForにstrStringToSearchが最初に現れたインデックスを返します。値が見つからない場合は -1 を返します。
  • @substring(stringToUse,startIndex,endIndex)

    文字列のインデックスは0から数えられます。

変換処理

Pega標準で用意された関数を一部抜粋します。

  • @toDate(inputString)
    文字列を日付型に変換します。
  • @toDateTime(inputString)
    文字列を日時型に変換します。
  • @toDecimal(inputString)
    文字列を数値型に変換します。
  • @toInt(inputString)
    文字列を整数型に変換します。
  • @toLowerCase(inputString)
    文字列をすべt小文字に変換します。
  • @toUpperCase(inputString)
    文字列をすべて大文字に変換します。

編集処理

Pega標準で用意された関数を一部抜粋します。

  • @replaceAll(aBaseString,aOriginalChars,aNewChars)
    文字列aBaseStringのサブ文字列aOriginalCharsをaNewCharsに置き換えて返します。
  • @trim(str)
    strの頭と後ろのスペースを削除して返します。

補足

テキスト関連のPega標準関数はおもに「String」というライブラリで纏めて公開されているため、Designer StudioのRecordsブラウザで確認できます。

テクニカルに投稿されました 続きを読む

このトピックでは、Pegaにおける日付の処理方法を纏めて説明します。

Pegaでは内部的にBigDecimal(com.ibm.icu.math.BigDecimal)型を使用して、日付の値(1970/01/01からの日数)を保持しています。

なお、YYYYMMDD形式の文字列として日付型プロパティの値を読み書きできます。

但し、から文字列を設定する場合、プロパティの値が自動的に1970101に設定されるため、「空白」の表示にするには、設定処理自体をしないようにしましょう。

計算処理

(日付の加減算を行う)

指定された日付より何日前又は、何日後の日付を計算するには、addDays()関数を使用します。

  • 構文
    @(Pega-RULES: BusinessCalendar).addDays(startDate, daysToAdd, useBusinessCalendar, calendarName)

  • 例1: @(Pega-RULES: BusinessCalendar).addDays("20190808",30,false,Default)   ⇒ 20190907
    例2: @(Pega-RULES: BusinessCalendar).addDays("20190808",-9,false,Default)   ⇒ 20190730  

(日数を求める)

二つの日付の間の日数を計算するには、differenceBetweenDays()関数を使用します。

  • 構文
    @differenceBetweenDays(firstDate, secondDate, useBusinessCalendar, calendarName)

  • @differenceBetweenDays("20190808","20190701",false,DEFAULT)  ⇒ 38 

(月の末日を取得する)

Calendar cal = Calendar.getInstance();
DateTimeUtils dtu = ThreadContainer.get().getDateTimeUtils();  
//get info of date in parameter
cal.setTime(dtu.parseDateTimeString(theDate));
calc.set(Calendar.DATE, c.getActualMaximum(Calendar.DATE));  
Date lastDate = c.getTime();  
return dtu.formatDateTime(dtu.formatDateTimeStamp(lastDate),"yyyyMMdd",null,null);

チェック処理

(営業日かどうかをチェック)

営業日かどうかをチェックするには、isBusinessDay()関数を使用します。

  • 構文
    @isBusinessDay(theDate,  calendarName)

  • 例1: @isBusinessDay("20190803",DEFAULT)  ⇒ true     // 土曜日、法定休日でないため、営業日扱い 
    例2: @isBusinessDay("20190804",DEFAULT)   ⇒ false   // 日曜日