参加
最後オンライン
最近の投稿
このトピックでは、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 // 日曜日