関数の使用 XQueryをProcess Designer内で操作する場合、または値を設定するために計算式を使用するフィールド内で操作する場合に、次の関数を使用できます。
計算式エディタ内で使用できるXQuery関数の詳細については、ここではなく、
http://www.xqueryfunctions.com/xq/alpha.html を参照してください。アプリケーション統合は、このURLに記載されているすべての機能をサポートしているわけではありません。
式エディタを使用して関数を操作する方法については、
式エディタの使用 を参照してください。
注: アプリケーション統合は、式エディタのインライン関数をサポートしていません。式エディタには、オペレーティングシステムの機能を呼び出すことができる強力な関数が付属しています。関数を使用する前に、関数に渡されたコンテンツを確認する必要があります。
すべてのタイプの原子値 プロセス およびサービスコネクタでは、次の機能を使用できます。
• boolean• empty• exists• false• nilled• not• number• string• trueプロセスの添付ファイル 次の表に示す関数は、プロセス内で添付ファイルを処理するために使用できます。
プロセスの場合、添付ファイル関数内の$cid 値は、プロセスフィールド(Input、Output、Temp)を参照します。例えば、inputパラメータが、添付ファイルのサイズを取得するためにcustomerPhoto(添付ファイルタイプ)を呼び出す場合、次の構文を使用します。
sff:GetAttachmentSize($input.customerPhoto)
注: フィールド名には、XQuery内で簡単に参照できるように、スペースを含めないでください。
添付ファイル関数の使用方法のその他の例については、
添付ファイル を参照してください。
機能
構文
説明
createAttachmentFromBase64
sff:createAttachmentFromBase64 ($contentName as xs:string, $encodedContent as xs:string, $mimeType as xs:string)
添付をBase64エンコードされたコンテンツから作成します。
getAttachmentContentType
sff:getAttachmentContentType($cid as xs:string?)
Content-Typeを返します。
getAttachmentCount
sff:getAttachmentCount($cid as xs:long)
添付ファイルの数を返します。
getAttachmentName
sff:getAttachmentName($cid as xs:string?)
添付ファイルがあれば、その名前を返します。
getAttachmentProperty
sff:getAttachmentProperty($cid as xs:string?, $attribute as xs:string)
Content-TypeなどのMIMEヘッダー名を指定する添付ファイル属性を返します。
getAttachmentSize
sff:getAttachmentSize($cid as xs:long)
添付ファイルのサイズをバイト単位で返します。
getBase64FromAttachment
sff:getBase64FromAttachment ($cid as xs:string)
Base64エンコードされた添付コンテンツを変数(添付タイプ)から返します。
hasAttachment
sff:hasAttachment($cid as xs:boolean)
添付ファイルが存在するかどうかをチェックします。
setAttachmentContentType
sff:setAttachmentContentType($cid as xs:string, $val as xs:string)
添付ファイルのContent-Typeを設定します。
setAttachmentName
sff:setAttachmentName($cid as xs:string, $val as xs:string)
添付ファイル名を設定します。
setAttachmentProperty
sff:setAttachmentProperty($cid as xs:string, $attribute as xs:string, $val as xs:string)
添付MIMEヘッダー属性値を設定します。
日付と時刻 Process Designerは、次の関数に加えて、
http://www.xqueryfunctions.com/xq/alpha.html で説明されているほぼすべての組み込みのXQuery日時関数をサポートしています。
関数名
構文
説明
addToDate
date:addToDate(date, format, amount)
指定された量をDate/Time値の一部に加算し、関数に渡した日付と同じ形式の日付を返します。詳細については、「
addToDate 」を参照してください。
adjust-date-to-timezone
fn:adjust-date-to-timezone(arg, timezone)
adjust-dateTime-to-timezone
fn:adjust-dateTime-to-timezone(arg, timezone)
adjust-time-to-timezone
fn:adjust-time-to-timezone(arg, timezone)
current-date
fn:current-date()
current-dateTime
fn:current-dateTime()
current-time
fn:current-time()
dateDiff
date:dateDiff(date, date, format)
指定した形式で2つの日付の間の時間の長さを返します。詳細については、「
dateDiff 」を参照してください。
dateTime
fn:dateTime(arg1, arg2)
日付と時刻からdateTimeを構築します。詳細については、「
dateTime 」を参照してください。
dateToMillis
date:dateToMillis($date)
現在時刻をミリ秒に変換します。
day-from-date
fn:day-from-date(arg)
day-from-dateTime
fn:day-from-dateTime(arg)
days-from-duration
fn:days-from-duration(arg)
getDatePart
date:getDatePart(date, format)
getLocale
date:getLocale()
プロセスが実行されている、現在のロケールを表す文字列を返します。詳細については、「
getLocale 」を参照してください。
getTimeZone
date:getTimeZone()
プロセスが実行されている場所、またはユーザーがそのプロセスまたはガイドを実行している場所のタイムゾーンIDを示す文字列を返します。詳細については、「
getTimeZone 」を参照してください。
hours-from-dateTime
fn:hours-from-dateTime(arg)
hours-from-duration
fn:hours-from-duration(arg)
hours-from-time
fn:hours-from-time(arg)
implicit-timezone
fn:implicit-timezone()
lastDay
date:lastDay(date)
月の最終日を返す日付を渡します。日付を求める有効な式を必要に応じて入力できます。詳細については、「
lastDay 」を参照してください。
toDate
date:toDate(date, format)
文字列を日付データ型に変換します。ソース文字列の形式を指定するには、toDateフォーマット文字列を使用します。詳細については、「
toDate 」を参照してください。
millisToDate
date:millisToDate($millis)
minutes-from-dateTime
fn:minutes-from-dateTime(arg)
minutes-from-duration
fn:minutes-from-duration(arg)
minutes-from-time
fn:minutes-from-time(arg)
$argのローカライズ値の分コンポーネントを表す0から59(両値を含む)のxs:integerの値を返します。詳細については、「
minutes-from-time 」を参照してください。
month-from-date
fn:month-from-date(arg)
$argのローカライズ値の月コンポーネントを表す1から12(両値を含む)のxs:integerを返します。詳細については、「
month-from-date 」を参照してください。
month-from-dateTime
fn:month-from-dateTime(arg)
months-from-duration
fn:months-from-duration(arg)
$argの値の分コンポーネントを表すxs:integerを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。詳細については、「
months-from-duration 」を参照してください。
今
date:now()
現在時刻をミリ秒単位で返します。
seconds-from-duration
fn:seconds-from-duration(arg)
$argの値の秒コンポーネントを表すxs:decimalを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。詳細については、「
seconds-from-duration 」を参照してください。
seconds-from-dateTime
fn:seconds-from-dateTime(arg)
seconds-from-time
fn:seconds-from-time(arg)
$argのローカライズされた値の秒および秒の小数部を表す、0以上60未満のxs:decimal値を返します。詳細については、「
seconds-from-time 」を参照してください。
timezone-from-date
fn:timezone-from-date(arg)
timezone-from-dateTime
fn:timezone-from-dateTime(arg)
timezone-from-time
fn:timezone-from-time(arg)
toChar
date:toChar(date, format)
渡された日付を、指定されたフォーマット文字列に基づいて文字列に変換します。詳細については、「
toChar 」を参照してください。
trunc
date:trunc(xs:dateTime('date'), 'format')
日付を特定の年、月、日、時、分、秒、またはミリ秒に切り詰めます。詳細については、「
trunc (Dates) 」を参照してください。
year-from-date
fn:year-from-date(arg)
$argのローカライズ値の年を表すxs:integerを返します。値は負の値になる場合があります。詳細については、「
year-from-date 」を参照してください。
year-from-dateTime
fn:year-from-dateTime(arg)
years-from-duration
fn:years-from-duration(arg)
$argの値の年コンポーネントを表すxs:integerを返します。結果は、$argをxs:yearMonthDurationにキャストすることによって取得されます。詳細については、「
years-from-duration 」を参照してください。
デジタル署名 次の項に示す関数は、デジタル署名内で使用できます。
HMAC関数
次の関数を使用することで、キー付きのハッシュメッセージ認証コード(HMAC)の計算によってデジタル署名を生成できます。
機能
構文
説明
hmacSignature
dsig:hmacSignature($data as xs:string, $key as xs:string, $algorithm as xs:string, $encoding as xs:string?)as xs:string
指定したアルゴリズム(HMACSHA256、HMACSHA512など)とオプションのエンコード($encoding は次のいずれかの値)を使用して、HMAC署名を生成します。
- Base64(デフォルト)- Base64Url- Hex- Hex64hmacSHA1signature
dsig:hmacSHA1signature( $data as xs:string, $key as xs:string, $encoding as xs:string? ) as xs:string
SHA1アルゴリズムとオプションのエンコード($encoding は次のいずれかの値)を使用して、HMACを計算します。
- Base64(デフォルト)- Base64Url- Hex- Hex64$data はBase64エンコード内のJSON文字列を含む4つの部分から構成されます。
ペイロードでのhash:hash 関数の使用時に、Base64でなく16進数のバイナリを確実に取得するには、次の式を使用します。
let $md5hex := hash:hash($jsonPayload,"MD5") return xs:base64Binary(xs:hexBinary($md5hex))
hmacSHA256signature
dsig:hmacSHA256signature( $data as xs:string, $key as xs:string, $encoding as xs:string? ) as xs:string
SHA256アルゴリズムとオプションのエンコード($encodingは次のいずれかの値)を使用して、HMACを計算します。
- Base64(デフォルト)- Base64Url- Hex- Hex64hmacSHA512signature
dsig:hmacSHA512signature ( $data as xs:string, $key as xs:string, $encoding as xs:string?)as xs:string
オプションのエンコード($encoding は次のいずれかの値)を使用して、HMAC SHA512署名を生成します。
- Base64(デフォルト)- Base64Url- Hex- Hex64hmacSHA256signatureForList
dsig:hmacSHA256signatureForList($data as xs:string, @delimiter as xs:string, $key as xs:string, $encoding as xs:string?)as xs:string
オプションのエンコード($encoding は次のいずれかの値)を使用して、HMAC SHA512署名を生成します。
- Base64(デフォルト)- Base64Url- Hex- Hex64
キー署名関数
次の関数を使用することで、プライベートキーに基づいて、デジタル署名を生成できます。
機能
構文
説明
signWithKeyFile
dsig:signWithKeyFile( $messageToSign as xs:string, $pathToKey as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string, $encoding as xs:string ) as xs:string
非対称アルゴリズムと、PKCS8ファイル内で指定するプライベートキーを使用して、署名を生成します。
引数:
- $digestAlgorithm: SHA1またはSHA256- $encryptionAlgorithm: RSA(一般的)またはDSA($digestAlgorithmにSHA1を使用する場合)。- $pathToKey: Base64エンコードされた文字列としてのPKCS8証明書(-----BEGIN PRIVATE KEY----- .....n-----END PRIVATE KEY-----\n)またはバイナリプライベートキーファイル。- $encoding(省略可)。これは次のいずれかにできます。- Base64(デフォルト)- Hex64- Base64UrlsignWithKeyString
dsig:signWithKeyString( $messageToSign as xs:string, $key as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string, $encoding as xs:string ) as xs:string
非対称アルゴリズムと、PKCS8証明書エンコードされた文字列内で指定するプライベートキーを使用して、署名を生成します。
引数:
- $digestAlgorithm: SHA1またはSHA256- $encryptionAlgorithm:RSA(共通)またはECDSA。 - $key: Base64エンコードされた文字列としてのPKCS8証明書(-----BEGIN PRIVATE KEY----- .....n-----END PRIVATE KEY-----\n)またはバイナリプライベートキー。- $encoding(オプション)では、次のいずれかの値を指定できます。- Base64(デフォルト)- Hex64- Base64Url注: Base64Urlエンコードを使用してデータに署名すると、末尾に追加のピリオドが表示されます。置換関数を使用して、ピリオド(.)を空の文字列(")に置き換える必要があります。
fn:replace(input, pattern, replacement, flags)
signWithCertificate
dsig:signWithCertificate( $messageToSign as xs:string, $pathToCertificate as xs:string, $keyRecoveryPassword as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string, $encoding as xs:string $keyStorePassword as xs:string, $aliasName as xs:string, $keyStoreType as xs:string ) as xs:string
PKCS12証明書を使用して、署名を生成します。
引数:
- $pathToCertificate: PKCS12またはJKS(Javaキーストア)のいずれかの証明書を格納するエージェント上のファイルの場所。- $keyRecoveryPassword: 証明書内のキーにアクセスするためのパスワード。- $keyStorePassword: キーストアを開くためのパスワード。空の場合、キーストアはパスワード保護されないと見なされます。- $aliasName: 省略可。キーが格納された、Secure Agentのキーストア内のエントリのエイリアス。エイリアスが指定されない(または空)場合、最初のエントリが使用されます。- $keyStoreType: キーストアのタイプ。これは次のいずれかにできます。- PKCS12(デフォルト)- JKS(Javaキーストア)
ハッシュ関数
次の関数を使用することで、メッセージハッシュ文字列を生成できます。
機能
構文
説明
シャープ
hash:hash($string, $alg)
指定したアルゴリズム(省略可)を使用して、メッセージのためのハッシュ文字列を生成します。ここで$algは次のいずれかにできます。
- MD5(デフォルト)- SHA1- SHA256
リスト関数 リスト関数は、ネイティブのSaxon関数のみをサポートします。次の関数を使用することで、リストを操作できます。
機能
構文
説明
append
list:append($objectlist, $newItem)
新規項目をリストに追加します。
count
list:count($objectlist)
リスト内の項目数を数えます。
head
list:head($objectlist)
リスト内の最初の項目を返します。
list
list:list($sequence)
IDのシーケンスをオブジェクトリスト用にIDのセミコロン区切りリストに変換します。
remove
list:remove($objectlist, $position)
一覧から指定した位置の項目を削除します。
replace
list:replace($objectlist, $position, $newItem)
リスト内の既存項目を新しい値に置換します。
sequence
list:sequence($objectlistFieldName)
セミコロン区切りリストをシーケンスに変換します。
オブジェクトリストフィールドが計算式およびコンテンツに挿入されるときに、フィールドはlist:sequence(object_field_name) XQuery関数内にラップされます。ホステッドオブジェクト内のオブジェクトリストの場合、これにより、オブジェクトリスト内のIDのセミコロン区切りリストはシーケンスに変換されます。プロセスオブジェクトのオブジェクトリストの場合、値はすでにシーケンスであり、関数によって返されるリストは変更されません。
tail
list:tail($objectlist)
リスト内の最初の項目以外の全項目を返します。
リスト関数の例
最も一般的なリスト関数の使用例は、プロセスまたはサービス ステップ内から、ステップが起動するごとに、毎回リストからオブジェクトを取得するものです。以下に例を示します。
let mylist.Current:=list:head(mylist.List) let mylist.List:=list:tail(mylist.List)
次の例は、オブジェクトリストをセミコロン区切りリストに変換し、各項目についてこの処理を繰り返します。
for $objectid in list:sequence($objectlist) ...
次の例は、ホステットオブジェクトに対し、IDのシーケンスをオブジェクトリスト用にIDのセミコロン区切りリストに変換します。プロセスオブジェクトのオブジェクトリストの場合、値のシーケンスを返します。
let $mergedObjectLists := ( as:sequence($objectlist1), as:sequence($objectlist2) ) return list:list($mergedObjectLists)
数学 詳細設定 以下の各種関数を使用できます。
機能
構文
説明
aesEncryption
util:aesEncryption(key, dataToEncrypt)
Advanced Encryption Standard(AES)アルゴリズムを使用して、特定のキーで指定されたデータを暗号化します。関数の詳細については、
aesEncryption を参照してください。
aesDecryption
util:aesDecryption(key, dataToDecrypt)
Advanced Encryption Standard(AES)アルゴリズムを使用して、特定のキーで指定されたデータを復号化します。aesEncryption関数でデータの暗号化に使用したキーと同じキーを使用する必要があります。関数の詳細については、
aesDecryption を参照してください。
base64Decode
util:base64Decode(data, charSet)
charSet引数で指定された文字セットに基づいて、指定された入力文字列のBase64デコードされたバージョンを返します。この関数は通常、添付ファイルに使用されます。
アプリケーション統合は、Azul JDKでエンコード用にサポートされる文字セットをサポートします。これには、US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、およびUTF-16などが含まれます。
charSet引数のデフォルトはUTF-8です。
base64Encode
util:base64Encode(data, charSet)
charSet引数で指定された文字セットに基づいて、指定された入力文字列のBase64エンコードされたバージョンを返します。
アプリケーション統合は、Azul JDKでエンコード用にサポートされる文字セットをサポートします。これには、US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、およびUTF-16などが含まれます。
charSet引数のデフォルトはUTF-8です。
base64EncodeURL
util:base64EncodeUrl(str, charSet)
指定文字列のBase64エンコードされたバージョンを返します。URL内で安全に使用できます。
「+」文字と「/」文字がある場合、「-」と「_」に置き換えられます。「=」文字がある場合は削除されます。
charSet引数のデフォルトはUTF-8です。
decode
util:decode(value, search1, result1, args, default)
指定された値をフィールド内で検索します。詳細については、「
decode 」を参照してください。
error
fn:error(error, description, error-object)
カスタムエラーを発行します。
escapeJsonString
util:escapeJsonString(str)
指定された文字列内の特殊文字を、JSONで使用する際に有効になるようにエスケープします。詳細については、JSON規格を参照してください。関数の詳細については、
escape-Json-String を参照してください。
exactly-one
fn:exactly-one(arg)
シーケンスに正確に1つの項目のみが含まれている場合、そのシーケンスを返します。それ以外の場合、エラーを返します。
format
util:format(value, pattern, timezoneId, locale)
文字列コンテンツをフォーマットします。
次の引数を使用します。
- value: フォーマットされる文字列。- pattern: 値のフォーマット方法を示すパターン。日付、時刻、番号の形式設定 を参照してください。- timezoneId: 省略可。タイムゾーンID。格納値を使用しない場合(通常は、先にdate:getTimeZone()を呼び出すことによって返されます)、Process Designerがdate:getTimeZone()を呼び出すので、この引数は省略できます。- locale: 省略可。ロケール。格納値を使用しない場合(通常は、先にdate:getLocale()を呼び出すことによって返されます)、Process Designerがdate:getLocale()を呼び出すので、この引数は省略できます。locale引数を使用し、timezoneId引数を使用しない場合、timezoneIdの後に来るコンマを追加する必要があります。以下に例を示します。
util:format("789","##00.00","",date:getLocale())
パターン引数に日付が含まれている場合は、小文字を使用して年形式yyyy を表記します。例えば、util:format("2024-12-29T06:16:02.536Z", "yyyy-MM-dd HH:mm:ss") を使用します。大文字を使用すると、誤った年が返されたり、エラーが発生したりする可能性があります。
generate-random-string
util:generate-random-string(length as xs:integer)
指定した長さのランダム文字列を生成します。
generateUUID
util:generateUUID()
ユニバーサルに一意な識別子を生成します。
getAssetLocation
util:getAssetLocation()
getAssetName
util:getAssetName()
getCatalogResource
util:getCatalogResource()
組織内のカタログの場所URLに基づくリソースを返します。Informatica Cloud組織内のカタログリソースをパラメータとして取得し、要素ノードを返します。
要素データを表示するには、ラッパー関数を追加します。以下に例を示します。
serialize(util:getCatalogResource("project:/spi.ipd/services.xml"))
getInstanceStartTime
util:getInstanceStartTime()
getOrganizationId
util:getOrganizationId()
getOrganizationName
util:getOrganizationName()
getProcessId
util:getProcessId()
現在実行中または完了済みのプロセスのプロセスIDを返します。
getUserName
util:getUserName()
プロセスを実行している認証ユーザーのログイン名またはIDである文字列を返します。
getUserSystem
util:getUserSystem()
プロセスを実行しているユーザーを認証したシステムの名前を表す文字列を返します。
iif
util:iif(condition, val1, val2)
条件がtrueである場合は、val1を返します。それ以外の場合は、val2を返します。詳細については、「
iif 」を参照してください。
次に含まれる
util:in(valueToSearch, values, caseFlag)
入力値を値のリストと照合します。デフォルトでは、大文字と小文字を区別します。詳細については、「
次に含まれる 」を参照してください。
isNull
util:isNull(value)
渡された入力が空であるかどうかを確認します。詳細については、「
isNull 」を参照してください。
one-or-more
fn:one-or-more
シーケンスに1つ以上の項目が含まれている場合、そのシーケンスを返します。それ以外の場合、エラーを返します。
parseJSON
util:parseJSON(jsonStr)
指定のJSON文字列を解析し、これをXML要素に変換します。
parseXML
util:parseXML(xmlStr)
指定のXML文字列を解析し、これをXML要素に変換します。
random
util:random()
0から1の範囲の乱数を返します。
resolveURN
util:resolveURN()
組織のURNマッピングを取得します。
safeNumber
util:safeNumber()
数値を安全に格納して、変更できないようにします。
toDecimal
util:toDecimal(value, scale)
文字列または数値を10進数値に変換します。詳細については、「
toDecimal 」を参照してください。
toInteger
util:toInteger(value, flag)
文字列または数値を10進数値に変換します。詳細については、「
toInteger 」を参照してください。
setProcessTitle
ipd:setProcessTitle()
プロセスのタイトルを設定します。
注: この関数は、Informatica Process Designer内でのみ使用します。
simplifyXml
util:simplifyXml(undefined)
すべての名前空間を削除し、属性を子要素に変換するために使用されるユーティリティ関数。詳細については、「
simplifyXml 」を参照してください。
toJSON
util:toJSON(elements)
指定のXML要素のリストをJSON文字列に変換します。
toXML
util:toXML(element)
指定のXML要素をXML文字列に変換します。
trace
util:trunc(arg, precision)
クエリのデバッグに使用する実行トレースを提供します。詳細については、「
trace 」を参照してください。
trunc
util:trunc(arg, precision)
zero-or-one
fn:zero-or-one(arg)
シーケンスに0または1つの項目が含まれている場合、そのシーケンスを返します。それ以外の場合、エラーを返します。
数字 式エディタでは、次の数字関数を使用できます。
• abs• avg• ceiling• floor• max• min• round• round-half-to-even• sumシーケンス 式エディタでは、次のシーケンス関数を使用できます。
• count• distinct-values• index-of• insert-before• last• position• remove• reverse• subsequence• unordered文字列 式エディタでは、次の文字列関数を使用できます。
• codepoint-equal• codepoints-to-string• compare• concat• contains• default-collation• ends-with• lang• lower-case• matches• normalize-space• normalize-unicode• replace• starts-with• string-join• string-to-codepoints• substring• substring-after• substring-before• tokenize• translate• upper-caseXML 式を構築するときに、共通XML関数を追加できます。式エディタでは、共通XML関数のリストが以下のカテゴリに表示されます。
• XMLドキュメント、URI、ID(プロセスのみ)• XML名前空間と名前• XMLノード式エディタでは、次のXMLノード関数を使用できます。
機能
構文
説明
data
fn:data(arg)
ノードの原子値を返します。
項目のシーケンスを入力とし、原子値のシーケンスを返します。詳細については、「
data 」を参照してください。
deep-equal
fn:deep-equal(parameter1, parameter2, collation)
2つのノードが同じコンテンツと属性を持つかどうかを評価します。詳細については、「
deep-equal 」を参照してください。
root
fn:root(arg)
引数を含むツリーのルートを返します。詳細については、「
root 」を参照してください。
日時関数 式エディタの日付と時刻セクションでは、次の日付関数を使用できます。
addToDate 指定された量をDate/Time値の一部に加算し、関数に渡した日付と同じ形式の日付を返します。addToDate関数は、正と負の整数値を受け入れます。addToDateを使用して、日付の次の部分を変更します。
• 年。 amount 引数に正または負の整数を入力します。年のフォーマット文字列として、Y、YY、YYY、YYYYのいずれかを使用できます。次の式は、SHIP_DATEカラムのすべての日付に10年を加えます。date:addToDate(xs:dateTime('SHIP_DATE'), 'YY', 10)
• 月。 amount 引数に正または負の整数を入力します。月のフォーマット文字列として、MM、MON、MONTHのいずれかを使用できます。次の式はSHIP_DATEカラムのすべての日付から10ヶ月を引きます。date:addToDate(xs:dateTime('SHIP_DATE'), 'MONTH', -10)
• 日。 amount 引数に正または負の整数を入力します。日のフォーマット文字列として、D、DD、DDD、DY、DAYのいずれかを使用できます。例えば、式はSHIP_DATEカラムのすべての日付に10日を加えます。date:addToDate(xs:dateTime('SHIP_DATE'), 'DD', 10)
• 時間。 amount 引数に正または負の整数を入力します。時間のフォーマット文字列として、HH、HH12、HH24のいずれかを使用できます。以下の式は、SHIP_DATEカラムのすべての日付に14時間を加えます。date:addToDate(xs:dateTime('SHIP_DATE'), 'HH', 14)
• 分。 amount 引数に正または負の整数を入力します。分の設定にはフォーマット文字列MIを使用します。以下の式は、SHIP_DATEカラムのすべての日付に25分を加えます。date:addToDate(xs:dateTime('SHIP_DATE'), 'MI', 25)
• 秒。 amount 引数に正または負の整数を入力します。秒の設定にはSSフォーマット文字列を使用します。以下の式は、SHIP_DATEカラムのすべての日付に59秒を加えます。date:addToDate(xs:dateTime('SHIP_DATE'), 'SS', 59)
• ミリ秒。 amount 引数に正または負の整数を入力します。秒の設定にはMSフォーマット文字列を使用します。以下の式は、SHIP_DATEカラムのすべての日付に125ミリ秒を加えます。date:addToDate(xs:dateTime('SHIP_DATE'), 'MS', 125)
• マイクロ秒。 amount 引数に正または負の整数を入力します。秒の設定にはUSフォーマット文字列を使用します。以下の式は、SHIP_DATEカラムのすべての日付に2,000マイクロ秒を加えます。date:addToDate(xs:dateTime('SHIP_DATE'), 'US', 2000)
構文 date:addToDate(xs:dateTime('date'), 'format', amount)
注: xs:dateTime句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/オプション
説明
日付
必須
Date/Timeデータ型。変更を行う値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
日付値の中の変更を行う部分を指定するフォーマット文字列。フォーマット文字列は'mm'のように一重引用符で囲みます。フォーマット文字列は大文字と小文字を区別しません。
amount
必須
日付値を変更する値として、年数、月数、日数、時間数などを指定する整数値。整数を求める有効なトランスフォーメーション式を必要に応じて入力できます。
戻り値 関数に渡した日付と同じ形式の日付。
関数に引数としてNULL値が渡された場合には、NULLです。
例 以下の式はすべて、DATE_SHIPPEDカラムの各日付に1か月を加算します。特定の月に存在しない日を作成する値を渡すと、addToDateはその月の最後の日を返します。例えば、Jan 31 1998に1ヶ月を加えると、addToDateはFeb 28 1998を返します。
また、addToDateはうるう年を認識し、Jan 29 2000に1ヶ月を加えます。
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'MM', 1) date:addToDate(xs:dateTime('DATE_SHIPPED'), 'MON', 1) date:addToDate(xs:dateTime('DATE_SHIPPED'), 'MONTH', 1)
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 12 1998 12:00:30AM
Feb 12 1998 12:00:30AM
Jan 31 1998 6:24:45PM
Feb 28 1998 6:24:45PM
Jan 29 2000 5:32:12AM
Feb 29 2000 5:32:12AM (Leap Year)
Oct 9 1998 2:30:12PM
Nov 9 1998 2:30:12PM
NULL
NULL
以下の式はすべて、DATE_SHIPPEDカラムの各日付から10日を減算します。
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'D', -10) date:addToDate(xs:dateTime('DATE_SHIPPED'), 'DD', -10) date:addToDate(xs:dateTime('DATE_SHIPPED'), 'DDD', -10) date:addToDate(xs:dateTime('DATE_SHIPPED'), 'DY', -10) date:addToDate(xs:dateTime('DATE_SHIPPED'), 'DAY', -10)
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:30AM
Dec 22 1996 12:00AM
Jan 31 1997 6:24:45PM
Jan 21 1997 6:24:45PM
Mar 9 1996 5:32:12AM
Feb 29 1996 5:32:12AM (Leap Year)
Oct 9 1997 2:30:12PM
Sep 30 1997 2:30:12PM
Mar 3 1996 5:12:20AM
Feb 22 1996 5:12:20AM
NULL
NULL
以下の式はすべて、DATE_SHIPPEDカラムの各日付から15時間を減算します。
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'HH', -15) date:addToDate(xs:dateTime('DATE_SHIPPED'), 'HH12', -15) date:addToDate(xs:dateTime('DATE_SHIPPED'), 'HH24', -15)
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:30AM
Dec 31 1996 9:00:30AM
Jan 31 1997 6:24:45PM
Jan 31 1997 3:24:45AM
Oct 9 1997 2:30:12PM
Oct 8 1997 11:30:12PM
Mar 3 1996 5:12:20AM
Mar 2 1996 2:12:20PM
Mar 1 1996 5:32:12AM
Feb 29 1996 2:32:12PM (Leap Year)
NULL
NULL
adjust-date-to-timezone date値を特定のタイムゾーンに調整するか、date値からタイムゾーンコンポーネントを削除します。
構文 fn:adjust-date-to-timezone(arg , timezone )
次の表に、引数を示します。
引数
必須/
オプション
説明
arg
必須
調整するdate値。
date-valueはxs:dateタイプであるか、空のシーケンスです。
timezone
オプション
date-valueを調整するタイムゾーンを表す期間。
戻り値 fn:adjust-date-to-timezone関数の動作は、$arg日付値にすでにタイムゾーンがあるかどうか、および次に示すように指定されたタイムゾーンの値に応じて異なります。
• $timezone引数はxs:dayTimeDurationとして表されます(例えば、米国東部標準時の場合は-PT5H)。• $timezoneが空のシーケンスである場合は、タイムゾーンのないxs:dateを返します。それ以外の場合は、タイムゾーンのあるxs:dateを返します。• $argにすでにタイムゾーンがある場合、その値はそのタイムゾーンに合わせて調整されます。• タイムゾーンを調整するために、xs:dateは時刻00:00:00のxs:dateTimeとして扱われます。• $argにタイムゾーンがない場合、その日付部分は同じままで、時刻は指定されたタイムゾーンに関連付けられます。• 関数呼び出しから$timezoneを省略すると、暗黙的なタイムゾーンと見なされます。例 次の表に、adjust-date-to-timezone関数の例と戻り値を示します。
例
戻り値
adjust-date-to-timezone( xs:date('2023-02-15'), xs:dayTimeDuration('-PT8H'))
2023-02-15-08:00
adjust-date-to-timezone( xs:date('2023-02-15-03:00'), xs:dayTimeDuration('-PT8H'))
2023-02-14-08:00
adjust-date-to-timezone( xs:date('2023-02-15'), ())
2023-02-15
adjust-date-to-timezone( xs:date('2023-02-15-03:00'), ())
2023-02-15
次の表に、暗黙的なタイムゾーンが-05:00の場合の例と戻り値を示します。
例
戻り値
adjust-date-to-timezone( xs:date('2023-02-15'))
2023-02-15-05:00
adjust-date-to-timezone( xs:date('2023-02-15-03:00'))
2023-02-14-05:00
adjust-dateTime-to-timezone dateTime値を特定のタイムゾーンに調整するか、dateTime値からタイムゾーンコンポーネントを削除します。
構文 fn:adjust-dateTime-to-timezone(arg, timezone)
次の表に、引数を示します。
引数
必須/
オプション
説明
arg
必須
調整されるdateTime値。
dateTime-valueは、xs:dateTime型または空のシーケンスです。
timezone
オプション
dateTime-valueを調整するタイムゾーンを表す期間。
戻り値 fn:adjust-dateTime-to-timezone関数の動作は、$arg日付値にすでにタイムゾーンがあるかどうか、および次に示すように指定されたタイムゾーンの値に応じて異なります。
• $timezone引数はxs:dayTimeDurationとして表されます(例えば、米国東部標準時の場合は-PT5H)。• $timezoneが空のシーケンスである場合は、タイムゾーンのないxs:dateTimeを返します。それ以外の場合は、タイムゾーンのあるxs:dateTimeを返します。• $argにすでにタイムゾーンがある場合、その値はそのタイムゾーンに合わせて調整されます。• $argにタイムゾーンがない場合、その日付部分は同じままで、時刻は指定されたタイムゾーンに関連付けられます。• 関数呼び出しから$timezoneを省略すると、暗黙的なタイムゾーンと見なされます。例 次の表に、adjust-date-to-timezone関数の例と戻り値を示します。
例
戻り値
adjust-dateTime-to-timezone( xs:dateTime('2023-02-15T17:00:00'), xs:dayTimeDuration('-PT7H'))
2023-02-15T17:00:00-07:00
adjust-dateTime-to-timezone( xs:dateTime('2023-02-15T17:00:00-03:00'), xs:dayTimeDuration('-PT7H'))
2023-02-15T13:00:00-07:00
adjust-dateTime-to-timezone( xs:dateTime('2023-02-15T17:00:00'), ())
2023-02-15T17:00:00
adjust-dateTime-to-timezone( xs:dateTime('2023-02-15T17:00:00-03:00'), ())
2023-02-15T17:00:00
adjust-dateTime-to-timezone( xs:dateTime('2023-02-15T01:00:00-03:00'), xs:dayTimeDuration('-PT7H'))
2023-02-14T21:00:00-07:00
次の表に、暗黙的なタイムゾーンが-05:00の場合の例と戻り値を示します。
例
戻り値
adjust-dateTime-to-timezone( xs:dateTime('2023-02-15T17:00:00'))
2023-02-15T17:00:00-05:00
adjust-dateTime-to-timezone( xs:dateTime('2023-02-15T17:00:00-03:00'))
2023-02-15T15:00:00-05:00
adjust-time-to-timezone time値を特定のタイムゾーンに調整するか、date値からタイムゾーンコンポーネントを削除します。
構文 fn:adjust-time-to-timezone(arg, timezone)
次の表に、引数を示します。
引数
必須/
オプション
説明
arg
必須
調整するtime値。
time-valueは、タイプxs:timeまたは空のシーケンスになります。
timezone
オプション
time-valueを調整するタイムゾーンを表す期間。
戻り値 fn:adjust-time-to-timezone関数の動作は、$arg日付値にすでにタイムゾーンがあるかどうか、および次に示すように指定されたタイムゾーンの値に応じて異なります。
• $timezone引数はxs:dayTimeDurationとして表されます(例えば、米国東部標準時の場合は-PT5H)。• $timezoneが空のシーケンスである場合は、タイムゾーンのないxstimeを返します。それ以外の場合は、タイムゾーンのあるxs:timeを返します。• $argにすでにタイムゾーンがある場合、その値はそのタイムゾーンに合わせて調整されます。• $argにタイムゾーンがない場合、その日付部分は同じままで、時刻は指定されたタイムゾーンに関連付けられます。• 関数呼び出しから$timezoneを省略すると、暗黙的なタイムゾーンと見なされます。例 次の表に、adjust-date-to-timezone関数の例と戻り値を示します。
例
戻り値
adjust-time-to-timezone( xs:time('17:00:00'), xs:dayTimeDuration('-PT7H'))
17:00:00-07:00
adjust-time-to-timezone( xs:time('17:00:00-03:00'), xs:dayTimeDuration('-PT7H'))
13:00:00-07:00
adjust-time-to-timezone( xs:time('17:00:00'), ())
17:00:00
adjust-time-to-timezone( xs:time('17:00:00-03:00'), ())
17:00:00
adjust-time-to-timezone( xs:time('17:00:00'))
17:00:00-05:00
adjust-time-to-timezone( xs:time('17:00:00'), xs:dayTimeDuration('-PT20H'))
Error FODT0003
次の表に、暗黙的なタイムゾーンが-05:00の場合の例と戻り値を示します。
例
戻り値
adjust-time-to-timezone( xs:time('17:00:00-03:00'))
15:00:00-05:00
adjust-time-to-timezone( xs:time('22:00:00-08:00'))
01:00:00-05:00
adjust-time-to-timezone( xs:time('01:00:00-02:00'))
22:00:00-05:00
current-date 現在の日付を返します。
構文 fn:current-date()
戻り値 fn:current-date関数はパラメータを取らず、現在の日付とタイムゾーンを返します。タイムゾーンは実装された環境に依存します。
例 この関数が2023年1月12日に呼び出された場合、戻り値は2023-01-12Zになります。
current-dateTime 現在のdateTimeをタイムゾーン付きで返します。
構文 fn:current-dateTime()
戻り値 fn:current-dateTime関数はパラメータを取らず、現在の日付と時刻をタイムゾーンとともに返します。関数が同じクエリ内で複数回呼び出されると、毎回同じ値が返されます。タイムゾーンは実装された環境に依存します。
例 この関数が2023年1月12日にタイムゾーンZで呼び出された場合、戻り値は2023-01-12T11:25:30.125Z になります。
current-time 現在の時刻を返します。
構文 fn:current-time()
戻り値 fn:current-time関数はパラメータを取らず、タイムゾーンとともに現在の時刻を返します。関数が同じクエリ内で複数回呼び出されると、毎回同じ値が返されます。タイムゾーンは実装された環境に依存します。
例 次の式は、結果として23:17:00.000-05:00 を返します。
fn:current-time()
dateDiff 2つの日付の間の時間の長さを返します。形式は、年、月、日、時間、分、秒、ミリ秒、またはマイクロ秒に指定できます。dateDiff関数は、最初の日付から2番目の日付を減算し、差を返します。
dateDiff関数は、日数ではなく月数に基づいて値を計算します。各月の選択された日で、1カ月に満たない月の日付の差を計算します。1ヶ月に満たない月の日付の差を計算するために、dateDiffは月内の日を加算します。次に、選択された月の全日数でその値を除算します。
dateDiff関数は、うるう年とうるう年以外の年では同じ期間で異なる値を算出します。違いが発生するのは、dateDiff関数に2月が含まれる場合です。dateDiff関数は、うるう年の2月は29日間で除算し、うるう年以外の年である場合は28日間で除算します。
例えば、9月13日から2月19日までの月数を計算するとします。うるう年の場合、dateDiff関数は2月を19/29ヶ月、つまり0.655ヶ月と計算します。うるう年以外の年の場合、dateDiff関数は2月を19/28ヶ月、つまり0.678ヶ月と計算します。dateDiff関数は、残りの月の日の差を同様に計算し、dateDiff関数が指定された期間における合計値を返します。
注: 日付の差を計算するのに異なるアルゴリズムを使用するデータベースもあります。
構文 date:dateDiff(xs:dateTime('date'), xs:dateTime('date'), 'format')
注: xs:dateTime句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/オプション
説明
日付
必須
Date/Timeデータ型。比較を行う1つ目の日付の値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
日付
必須
Date/Timeデータ型。比較を行う2つ目の日付の値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
日付または時間計測の単位を指定するフォーマット文字列。年、月、日、時間、分、秒、ミリ秒、またはマイクロ秒を指定できます。'mm'など、日付の中の1つの部分のみを指定できます。フォーマット文字列は一重引用符で囲んでください。フォーマット文字列は大文字と小文字を区別しません。(例えば、フォーマット文字列'mm'は'MM'、'Mm'、'mM'と同じです。
戻り値 Double値。最初の日付が2番目の日付より後の場合、戻り値は正の数になります。最初の日付が2番目の日付より前の場合、戻り値は負の数になります。
2つの日付が同じである場合は、ゼロです。
一方(または両方)の日付がNULLである場合は、NULLです。
例 次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差が何時間あるかを返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'HH') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'HH12') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'HH24')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2100
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2100
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
6812.89166666667
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-8784
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を日数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'D') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DD') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DDD') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DY') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DAY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-87.5
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
87.5
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
283.870486111111
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-366
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を月数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MM') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MON') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MONTH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2.91935483870968
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2.91935483870968
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
9.3290162037037
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-12
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を年数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'Y') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'YY') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'YYY') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'YYYY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-0.24327956989247
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
0.24327956989247
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
0.77741801697531
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-1
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を月数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MM') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MON') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MONTH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
LEAP YEAR VALUE (in Months)
NON-LEAP YEAR VALUE (in Months)
Sept 13
Feb 19
-5.237931034
-5.260714286
NULL
Feb 19
NULL
N/A
Sept 13
NULL
NULL
N/A
dateTime 日付値と時刻値からdateTime値を構築します。
構文 fn:dateTime(arg1, arg2)
fn:dateTimeAdd (arg1 as xs:date?, arg2 as xs:time?) は、日付と時刻を含む1つの引数を受け入れるxs:dateTime コンストラクタとは異なります。日付/時刻を作成する場合は、タイムゾーンを考慮に入れるようにしてください。
戻り値 • 1つの引数のみにタイムゾーンが設定されているか、両方の引数に同じタイムゾーンが設定されている場合、結果にはこのタイムゾーンが設定されます。• 日付および時刻にタイムゾーンがない場合は、結果にもタイムゾーンは設定されません。• 2つの引数のタイムゾーンが異なる場合は、エラーが返されます。• 組み合わせの結果が有効な時刻にならない場合(例えば、日が32の場合や分が61の場合)、エラーが戻されます。例 次の式は、結果として2023-06-12T11:35:29 を返します。
fn:dateTime((xs:date("2023-06-12")), (xs:time("11:35:29")))
day-from-date 日付の日の部分を返します。
構文 fn:day-from-date(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
日コンポーネントの抽出元となる日付値。
date-valueは、xs:dateタイプまたは空のシーケンスです。
戻り値 xs:date値の日の部分を、1から31までの整数として、ローカライズされた形式で返します。
date-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。
例 次の式は15を返します。
fn:day-from-date(xs:date('2023-07-15'))
day-from-dateTime 日付/時刻の日の部分を返します。
構文 fn:day-from-dateTime(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
日コンポーネントの抽出元となるdateTime値。
dateTime-valueは、xs:dateTime型または空のシーケンスです。
戻り値 xs:dateTime値の日の部分を、ローカライズされた形式で、1から31までの整数として返します。
dateTime-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。
例 次の式は15を返します。
fn:day-from-dateTime(xs:dateTime('2023-07-15T18:00:00'))
days-from-duration 期間のうちの日数を返します。
構文 fn:days-from-duration(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
日数コンポーネントの抽出元となる期間値。
duration-valueは、空のシーケンスまたは次のいずれかのタイプの値です。
- xs:dayTimeDuration- xs:duration- xs:yearMonthDuration
戻り値 • duration-valueがxs:dayTimeDuration型またはxs:duration型である場合、戻り値はxs:integer型となり、xs:dayTimeDurationとしてキャストされたduration-valueの日数コンポーネントになります。• duration-valueがxs:yearMonthDuration型である場合、戻り値は0になります。• duration-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。• duration-valueが負の場合、戻り値は負の値になります。例 次の式は、期間のうちの日数を返します。
fn:days-from-duration(xs:dayTimeDuration('DURATION'))
次の表に、一部のサンプル値と戻り値を示します。
DURATION
RETURN VALUE
P5D
5
-PT24H
-1
PT23H
0
P1DT36H
2
PT1440M
1
getDatePart 日付の中の指定した部分を整数値として返します。したがって、日付の月の部分を返す式を作成して「1997-04-01T00:00:00」といった日付を渡すと、getDatePartは4を返します。
構文 date:getDatePart(xs:dateTime('date'), 'format')
注: xs:dateTime句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/オプション
説明
日付
必須
Date/Timeデータ型。
有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
日付値の中で返す部分を指定するフォーマット文字列。フォーマット文字列は'mm'のように一重引用符で囲みます。フォーマット文字列は大文字と小文字を区別しません。
例えば、日付1997-04-01をgetDatePartに渡すと、書式文字列'YYYY'は1997を返します。
戻り値 日付の中の指定された部分を示す整数。
関数にNULL値を渡した場合はNULLです。
例 以下の式は、DATE_SHIPPEDカラムの各日付の時の部分を返します。デフォルトの日付形式は24時間方式に基づくため、12:00:00AMは0を返します。
date:getDatePart(xs:dateTime('DATE_SHIPPED'), 'HH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
1997-03-13T12:00:00AM
0
1997-09-2T2:00:01AM
2
1997-08-22T12:00:00PM
12
1997-06-3T11:30:44PM
23
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の日の部分を返します。
date:getDatePart(xs:dateTime('DATE_SHIPPED'), 'DD')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
1997-03-13T12:00:00AM
13
1997-06-3T11:30:44PM
3
1997-08-22T12:00:00PM
22
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の月の部分を返します。
date:getDatePart(xs:dateTime('DATE_SHIPPED'), 'MM')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
1997-03-13T12:00:00AM
3
1997-06-3T11:30:44PM
6
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の年の部分を返します。
date:getDatePart(xs:dateTime('DATE_SHIPPED'), 'YYYY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
1997-03-13T12:00:00AM
1997
1997-06-3T11:30:44PM
1997
NULL
NULL
getLocale プロセスが実行されている現在のロケールを表す文字列を返します。
構文 date:getLocale()
getLocale関数を使用して、システム内でアクティブな現在のロケール設定を取得します。この関数は、言語コードや国/地域コードなどの特定の値を生成するために使用される地域または言語固有の設定を識別します。
戻り値 ロケール値をテキスト文字列として返します。
例 プロセスがISTタイムゾーンで実行されている場合、次の式はロケール情報を返します。
date:getLocale()
次の表に、一部のサンプルプロパティと値を示します。
PROPERTY
値
ベースロケールID
en_IN
言語
en
国
IN
表示名
英語(インド)
getTimeZone プロセスまたはガイドが実行されている場所、またはユーザーがそのプロセスまたはガイドを実行している場所のタイムゾーンIDを表す文字列を返します。
構文 date:getTimeZone()
戻り値 タイムゾーンIDを文字列値として返します。
例 プロセスがISTタイムゾーンで実行されている場合、次の式は結果として2023-01-01T12:00:00+00:00 を返します。
date:getTimeZone()
hours-from-dateTime 日付/時刻の時間の部分を返します。
構文 fn:hours-from-dateTime(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
時間コンポーネントの抽出元となるdateTime値。
dateTime-valueは、xs:dateTime型または空のシーケンスです。
戻り値 xs:dateTime値の時間の部分を、0から23までの整数として、ローカライズされた形式で返します。
dateTime-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。
例 次の式は、日付/時刻から時間を返します。
fn:hours-from-dateTime(xs:dateTime('TIME'))
次の表に、一部のサンプル値と戻り値を示します。
TIME
RETURN VALUE
2023-08-15T10:30:23
10
2023-08-15T10:30:23-05:00
10
hours-from-duration 期間のうちの時間を返します。
構文 fn:hours-from-duration(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
時間コンポーネントの抽出元となる期間値。
duration-valueは、空のシーケンスまたは次のいずれかのタイプの値になります。
- xs:dayTimeDuration- xs:duration- xs:yearMonthDuration
戻り値 • duration-valueがxs:dayTimeDuration型またはxs:duration型である場合、戻り値はxs:integer型で、-23から23までの値になります。この値は、xs:dayTimeDurationとしてキャストされたduration-valueの時間コンポーネントです。• duration-valueがxs:yearMonthDuration型である場合、戻り値はxs:integer型で0となります。• duration-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。• duration-valueが負の場合、戻り値は負の値になります。例 次の式は、期間のうちの時間を返します。
fn:hours-from-duration(xs:dayTimeDuration('DURATION'))
次の表に、一部のサンプル値と戻り値を示します。
DURATION
RETURN VALUE
P1DT5H
5
-PT36H
-12
PT23H
23
PT1H90M
2
PT2H59M
2
PT3600S
1
hours-from-time 時刻の時間の部分を返します。
構文 fn:hours-from-time(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
時間コンポーネントの抽出元となる時間値。
time-valueは、タイプxs:timeまたは空のシーケンスになります。
戻り値 xs:time値の時間の部分を、0から23までの整数として、ローカライズされた形式で返します。
time-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。
例 次の式は、時刻から時間を返します。
fn:hours-from-time(xs:time('TIME'))
次の表に、一部のサンプル値と戻り値を示します。
TIME
RETURN VALUE
10:30:23
10
10:30:23-05:00
10
09:30:00-08:00
9
implicit-timezone 暗黙的なタイムゾーンプロパティの値を返します。
構文 fn:implicit-timezone()
暗黙的なタイムゾーンは、タイムゾーンが明示的に定義されていない日付および時刻値を含む比較および計算に使用されます。暗黙的なタイムゾーンは、実装された環境によって定義されます。
戻り値 暗黙的なタイムゾーンをxs:dayTimeDuration値として返します。
例 暗黙的なタイムゾーンがUTCから5時間を差し引いたタイムゾーンである場合、次の式は結果として-PT5H を返します。
fn:implicit-timezone()
lastDay カラム内の各日付に対して、その月の最後の日の日付を返します。
構文 date:lastDay(date)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
日付
必須
Date/Timeデータ型。月の最終日を返す日付を渡します。
日付を求める有効なトランスフォーメーション式を必要に応じて入力できます。
戻り値 日付。この関数に渡す日付値の月の最終日。
選択したカラム内の値がNULLである場合は、NULL。
例 次の式は、現在の日付を最終日として返します。
date:lastDay(fn:current-dateTime('DATE'))
次の表に、一部のサンプル値と戻り値を示します。
DATE
RETURN VALUE
18-04-98 01:00
Apr 18 1998 01:00:00 AM
20-08-99 05:00
Aug 20 1999 05:00:00 AM
次の式は、DATEカラム内の各日付に対して、月の最終日を返します。
date:lastDay(date:addToDate(fn:current-dateTime('DATE','MM',-1))
次の表に、一部のサンプル値と戻り値を示します。
DATE
RETURN VALUE
Apr 1 1998 12:00:00AM
Mar 31 1998 12:00:00AM
Jan 6 1998 12:00:00AM
Dec 31 1997 12:00:00AM
Feb 2 1996 12:00:00AM
Jan 31 1996 12:00:00AM
NULL
NULL
toDateをネストして文字列値を日付に変換できます。toDate関数には常に時間情報が含まれています。時刻値を含まない文字列を渡すと、返される日付には時刻「00:00:00」を含みます。
次の例は、各日付に対して、月の最終日を文字列と同じ形式で返します。
date:lastDay(toDate('DATE', 'MON-DD-YYYY'))
次の表に、一部のサンプル値と戻り値を示します。
DATE
RETURN VALUE
'18-NOV-98'
Nov-30-1998 00:00:00
'28-APR-98'
Apr-30-1998 00:00:00
NULL
NULL
'18-FEB-96'
Feb-29-1996 00:00:00(Leap year)
date:lastDay(date:toDate("DATE", "YYYY-MM-DD"))
次の表に、一部のサンプル値と戻り値を示します。
DATE
RETURN VALUE
'18-NOV-98'
1998-Nov-30 00:00:00
'28-APR-98'
1998-Apr-30 00:00:00
NULL
NULL
'18-FEB-96'
1996-Feb-29 00:00:00(Leap year)
millisToDate 現在時刻をミリ秒から変換します。
構文 date:millisToDate(millis)
引数
必須/
オプション
説明
millis
必須
数値データタイプ。ミリ秒単位で値を渡します。
戻り値 この関数は、1970年1月1日00:00:00 UTCから経過したミリ秒数の日付を返します。
例 この関数は、MILLISECONDSカラムに指定された値に対応する日付値を返します。
MILLISECONDS
RETURN VALUE
1000
1970-01-01T00:00:01Z
1900800000
1970-01-23T00:00:00Z
minutes-from-dateTime $argのローカライズ値の分コンポーネントを表す0から59(両値を含む)のxs:integerの値を返します。
構文 fn:minutes-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。分に変換する日時として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の分コンポーネントを表す0から59まで(両方の値を含む)のxs:integerの値を返します。
例 この関数は、MILLISECONDSカラムに指定された値に対応する日付値を返します。
MILLISECONDS
RETURN VALUE
1999-05-31T13:40:00-05:00
40
1999-05-31T13:30:00+05:30
30
minutes-from-duration この関数は、$argの値の分コンポーネントを表すxs:integerを返します。
構文 fn:minutes-from-duration(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。分に変換する必要がある期間として引数を渡します。
戻り値 この関数は、$argの値の分コンポーネントを表すxs:integerを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。
例 この関数は、DURATIONカラムに指定された値に対応する日付値を返します。
DURATION
RETURN VALUE
P3DT12H32M12S
32
-P5DT12H30M
-30
minutes-from-time $argのローカライズ値の分コンポーネントを表す0から59(両値を含む)のxs:integerの値を返します。
構文 fn:minutes-from-time(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。分に変換する必要がある時刻として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の分コンポーネントを表す0から59まで(両方の値を含む)のxs:integerの値を返します。
例 この関数は、TIMEカラムに指定された値に対応する日付値を返します。
TIME
RETURN VALUE
11:23:00
23
13:00:00Z
0
month-from-date $argのローカライズ値の月コンポーネントを表す1から12(両値を含む)のxs:integerを返します。
構文 fn:month-from-date(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。月に変換する必要がある日付として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の月コンポーネントを表す1から12まで(両方の値を含む)のxs:integerの値を返します。
例 この関数は、DATEカラムに指定された値に対応する日付値を返します。
DATE
RETURN VALUE
1991-05-31-05:00
05
2000-01-01+05:00
01
month-from-dateTime $argのローカライズ値の月コンポーネントを表す1から12(両値を含む)のxs:integerを返します。
構文 fn:month-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。月に変換する必要がある日時として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の月コンポーネントを表す1から12まで(両方の値を含む)のxs:integerの値を返します。
例 この関数は、DATETIMEカラムに指定された値に対応する日付値を返します。
DATETIME
RETURN VALUE
1995-05-31T13:20:00-05:00
05
1996-12-31T19:20:00-05:00
12
months-from-duration $argの値の分コンポーネントを表すxs:integerを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。
構文 fn:months-from-duration(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。月に変換する必要がある期間として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の月コンポーネントを表す1から12まで(両方の値を含む)のxs:integerの値を返します。
例 この関数は、DURATIONカラムに指定された値に対応する日付値を返します。
DURATION
RETURN VALUE
1991-05-31-05:00
05
2000-01-01+05:00
01
seconds-from-dateTime $argのローカライズされた値の秒および秒の小数部を表す、0以上60未満のxs:decimal値を返します。
構文 fn:seconds-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。月に変換する必要がある日時として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は、$argのローカル値の秒および秒の小数点以下を表す、0以上60未満のxs:Decimal値を返します。
例 この関数は、DATETIMEカラムに指定された値に対応する日付値を返します。
DATETIME
RETURN VALUE
2006-08-15T10:30:14.5
14.5
2001-05-31T13:20:40
40
seconds-from-duration $argの値の秒コンポーネントを表すxs:decimalを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。
構文 fn:seconds-from-duration(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。秒に変換する必要がある期間として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は、$argのローカル値の秒および秒の小数点以下を表す、0以上60未満のxs:Decimal値を返します。
例 この関数は、DURATIONカラムに指定された値に対応する日付値を返します。
DURATION
RETURN VALUE
PT30.8S
30.8
seconds-from-time 秒数、および$argのローカライズ値における小数の秒数を表す、ゼロ以上と60未満のxs:decimalを返します。
構文 fn:seconds-from-time(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。秒に変換する必要がある時間として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は、$argのローカライズされた値の秒および秒の小数部を表す、0以上60未満のxs:decimal値を返します。
例 この関数は、TIMEカラムにargとして指定された値に対応する日付値を返します。
TIME
RETURN VALUE
13:20:11.5
11.5
timezone-from-date タイムゾーンコンポーネントがある場合は、$argのタイムゾーンコンポーネントを返します。
構文 fn:timezone-from-date(arg)
戻り値 $argにタイムゾーンコンポーネントがある場合、結果はUTCからの偏差を示すxs:dayTimeDurationになります。この値の範囲は、+14:00から-14:00時間までです。それ以外の場合、結果は空のシーケンスになります。
例 この関数は、DATEカラムに指定された値に対応する日付値を返します。
DATE
RETURN VALUE
1999-05-31-05:00
-PT5H
timezone-from-dateTime xs:dateTimeのタイムゾーンコンポーネントを返します。
構文 fn:timezone-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。タイムゾーンに変換する必要がある日時として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は$argのタイムゾーンコンポーネント(存在する場合)を返します。$argにタイムゾーンコンポーネントがある場合、結果はUTCからの偏差を示すxs:dayTimeDurationになります。この値の範囲は、+14:00から-14:00時間までです。$argにタイムゾーンコンポーネントがない場合、結果は空のシーケンスになります。
例 この関数は、DATETIMEカラムに指定された値に対応する日付値を返します。
DATETIME
RETURN VALUE
1995-05-31T13:20:00-05:00
-PT5H
timezone-from-time xs:timeのタイムゾーン要素を返します。
構文 fn:timezone-from-time(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。タイムゾーンに変換する必要がある時刻として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は引数として指定されたxs:time値のタイムゾーンコンポーネントを返します。結果は、UTCからの偏差を示すxs:dayTimeDurationです。この値の範囲は、+14:00から-14:00時間までです。
例 この関数は、TIMEカラムに指定された値に対応する日付値を返します。
TIME
RETURN VALUE
12:00:00-05:00
-PT5H
toChar 渡された日付を、指定されたフォーマット文字列に基づいて文字列に変換します。
構文 date:toChar(date, format)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。指定された指定されたフォーマット文字列に変換する必要がある日付として引数を渡します。
例 この関数は、DATEカラムにargとして指定された値に対応する日付値を返します。
DATE
RETURN VALUE
date:toChar(08-02-2017, DL)
August 02, 2017
toDate 文字列を日付データ型に変換します。ソース文字列の形式を指定するには、toDateフォーマット文字列を使用します。
toDate式の出力ポートはDate/Timeである必要があります。
toDateで2桁の年を変換する場合には、RRまたはYYのフォーマット文字列を使用します。YYYYフォーマット文字列を使用してはなりません。
構文 date:toDate(xs:dateTime('date'), 'format')
注: date句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/
オプション
説明
日付
必須
Stringデータ型で指定する必要があります。日付に変換したい値を渡します。有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
有効なtoDate形式の文字列を入力します。フォーマット文字列は、date 引数の各部分と一致している必要があります。例えば、'Mar 15 1998 12:43:10AM'という日付の文字列を渡す場合は、フォーマット文字列'MON DD YYYY HH12:MI:SSAM'を使用する必要があります。
戻り値 日付。
toDate関数は、常に日付と時刻を返します。時刻値を持たない文字列を渡すと、返される日付には常に時刻00:00:00.000000000が含まれます。この関数の結果は、日時データ型の任意のターゲットカラムにマッピングできます。
関数にNULL値を渡した場合はNULLになります。
例 date:toDate(xs:dateTime('DATE_PROMISED'), 'MM/DD/YY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
RETURN VALUE
'01/22/98'
Jan 22 1998 00:00:00
'05/03/98'
May 3 1998 00:00:00
'11/10/98'
Nov 10 1998 00:00:00
'10/19/98'
Oct 19 1998 00:00:00
NULL
NULL
date:toDate(xs:dateTime('DATE_PROMISED'), 'MON DD YYYY HH12:MI:SSAM')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
RETURN VALUE
'Jan 22 1998 02:14:56PM'
Jan 22 1998 02:14:56PM
'Mar 15 1998 11:11:11AM'
Mar 15 1998 11:11:11AM
'Jun 18 1998 10:10:10PM'
Jun 18 1998 10:10:10PM
'October 19 1998'
Error. Integration Service skips this row.
NULL
NULL
以下の式は、SHIP_DATE_MJD_STRINGポートの文字列を日付値に変換します。
date:toDate(xs:dateTime('SHIP_DATE_MJD_STR'), 'J')
次の表に、一部のサンプル値と戻り値を示します。
SHIP_DATE_MJD_STR
RETURN_VALUE
'2451544'
Dec 31 1999 00:00:00.000000000
'2415021'
Jan 1 1900 00:00:00.000000000
Jフォーマット文字列には日付の時間部分が含まれないため、戻り値では時間が00.000000000:00:00に設定されています。
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
date:toDate(xs:dateTime('DATE_STR'), 'MM/DD/RR')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN VALUE
'04/01/98'
04/01/1998 00:00:00.000000000
'08/17/05'
08/17/2005 00:00:00.000000000
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
date:toDate(xs:dateTime('DATE_STR'), 'MM/DD/YY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN VALUE
'04/01/98'
04/01/1998 00:00:00.000000000
'08/17/05'
08/17/1905 00:00:00.000000000
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
date:toDate(date('DATE_STR'), 'MM/DD/Y')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN VALUE
'04/01/8'
04/01/1998 00:00:00.000000000
'08/17/5'
08/17/1995 00:00:00.000000000
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
date:toDate(xs:dateTime('DATE_STR'), 'MM/DD/YYY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN VALUE
'04/01/998'
04/01/1998 00:00:00.000000000
'08/17/995'
08/17/1995 00:00:00.000000000
次の式は、深夜からの通算秒を含む文字を日付値に変換します。
date:toDate(xs:dateTime('DATE_STR'), 'MM/DD/YYYY SSSSS')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN_VALUE
'12/31/1999 3783'
12/31/1999 01:02:03
'09/15/1996 86399'
09/15/1996 23:59:59
trunc (Dates) 日付を特定の年、月、日、時、分、秒、またはミリ秒に切り詰めます。
日付の中の以下の部分を切り詰めることができます。
• 年。 日付の年の部分を切り詰めると、関数は入力された年の1月1日を返し、時刻を00:00:00.000000000に設定します。例えば、次の式では1/1/1997 00:00:00.000000000を返します。date:trunc(xs:dateTime('12/1/1997 3:10:15'), 'YY')
• 月。 日付の月の部分を切り詰めると、関数は月の最初の日を返し、時刻を00:00:00.000000000に設定します。例えば、次の式では4/1/1997 00:00:00.000000000を返します。date:trunc(xs:dateTime('4/15/1997 12:15:00'), 'MM')
• 日。 日付の日の部分を切り詰めると、関数はその日付を返し、時刻を00:00:00.000000000に設定します。例えば、次の式では6/13/1997 00:00:00.000000000を返します。date:trunc(xs:dateTime('6/13/1997 2:30:45'), 'DD')
• 時間。 日付の時の部分を切り詰めると、この関数は、分、秒、ミリ秒を0に設定した日付を返します。たとえば、次の式では4/1/1997 11:00:00.000000000を返します。date:trunc(xs:dateTime('4/1/1997 11:29:35'), 'HH')
• 分。 日付の分の部分を切り詰めると、この関数は、秒、ミリ秒を0に設定した日付を返します。たとえば、次の式では5/22/1997 10:15:00.000000000を返します。date:trunc(xs:dateTime('5/22/1997 10:15:29'), 'MI')
• 秒。 日付の分の部分を切り詰めると、この関数は日付の秒をゼロに設定して返します。たとえば、次の式では5/22/1997 10:15:29.000000000を返します。date:trunc(xs:dateTime('5/22/1997 10:15:29.135'), 'SS')
• ミリ秒。 日付の分の部分を切り詰めると、この関数は日付の秒をゼロに設定して返します。たとえば、次の式では5/22/1997 10:15:30.135000000を返します。date:trunc(xs:dateTime('5/22/1997 10:15:30.135235'), 'MS')
構文 date:trunc(xs:dateTime('date'), 'format')
注: xs:dateTime句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/
オプション
説明
日付
必須
Date/Timeデータ型。切り詰めを行う日付値です。日付を求める任意の有効なトランスフォーメーション式を入力できます。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
format
必須
正しいフォーマット文字列を入力します。フォーマット文字列は大文字と小文字を区別しません。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
戻り値 日付。
関数にNULL値を渡した場合はNULLです。
例 以下の式は、DATE_SHIPPEDカラムの日付の年の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'Y') date:trunc(xs:dateTime('DATE_SHIPPED'), 'YY') date:trunc(xs:dateTime('DATE_SHIPPED'), 'YYY') date:trunc(xs:dateTime('DATE_SHIPPED'), 'YYYY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 00:00:00.000000000
Apr 19 1998 1:31:20PM
Jan 1 1998 00:00:00.000000000
Jun 20 1998 3:50:04AM
Jan 1 1998 00:00:00.000000000
Dec 20 1998 3:29:55PM
Jan 1 1998 00:00:00.000000000
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の月の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'MM') date:trunc(xs:dateTime('DATE_SHIPPED'), 'MON') date:trunc(xs:dateTime('DATE_SHIPPED'), 'MONTH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 00:00:00.000000000
Apr 19 1998 1:31:20PM
Apr 1 1998 00:00:00.000000000
Jun 20 1998 3:50:04AM
Jun 1 1998 00:00:00.000000000
Dec 20 1998 3:29:55PM
Dec 1 1998 00:00:00.000000000
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の日の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'D') date:trunc(xs:dateTime('DATE_SHIPPED'), 'DD') date:trunc(xs:dateTime('DATE_SHIPPED'), 'DDD') date:trunc(xs:dateTime('DATE_SHIPPED'), 'DY') date:trunc(xs:dateTime('DATE_SHIPPED'), 'DAY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 00:00:00.000000000
Apr 19 1998 1:31:20PM
Apr 19 1998 00:00:00.000000000
Jun 20 1998 3:50:04AM
Jun 20 1998 00:00:00.000000000
Dec 20 1998 3:29:55PM
Dec 20 1998 00:00:00.000000000
Dec 31 1998 11:59:59PM
Dec 31 1998 00:00:00.000000000
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の時の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'HH') date:trunc(xs:dateTime('DATE_SHIPPED'), 'HH12') date:trunc(xs:dateTime('DATE_SHIPPED'), 'HH24')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:31AM
Jan 15 1998 02:00:00.000000000
Apr 19 1998 1:31:20PM
Apr 19 1998 13:00:00.000000000
Jun 20 1998 3:50:04AM
Jun 20 1998 03:00:00.000000000
Dec 20 1998 3:29:55PM
Dec 20 1998 15:00:00.000000000
Dec 31 1998 11:59:59PM
Dec 31 1998 23:00:00.000000000
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の分の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'MI')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 02:10:00.000000000
Apr 19 1998 1:31:20PM
Apr 19 1998 13:31:00.000000000
Jun 20 1998 3:50:04AM
Jun 20 1998 03:50:00.000000000
Dec 20 1998 3:29:55PM
Dec 20 1998 15:29:00.000000000
Dec 31 1998 11:59:59PM
Dec 31 1998 23:59:00.000000000
NULL
NULL
year-from-date $argのローカライズ値の年を表すxs:integerを返します。値は負の値になる場合があります。
構文 fn:year-from-date(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。年形式に変換する必要がある日付として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカライズ値の年を表すxs:integerを返します。
例 この関数は、DATEカラムにargとして指定された値に対応する年値を返します。
DATE
RETURN VALUE
1999-06-30
1999
2001-01-01+05:00
2001
year-from-dateTime $argのローカライズ値の年コンポーネントを表すxs:integerを返します。
構文 fn:year-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。年形式に変換する必要がある日時として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカライズ値の年を表すxs:integerを返します。
例 この関数は、DATETIMEカラムにargとして指定された値に対応する年値を返します。
DATETIME
RETURN VALUE
1999-06-30+08:00
1999
2001-01-01+05:00
2001
years-from-duration $argの値の年コンポーネントを表すxs:integerを返します。結果は、$argをxs:yearMonthDurationにキャストすることによって取得されます。
構文 fn:years-from-duration(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。年に変換する必要がある期間として引数を渡します。
戻り値 $argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argの値の年コンポーネントを表すxs:integerを返します。期間が($months, $seconds)タプルの場合、結果は($months idiv 12)の値になります。
例 この関数は、DURATIONカラムにargとして指定された値に対応する日付値を返します。
DATETIME
RETURN VALUE
P20Y15M
21
-P15M
-1
その他の関数 次の関数は、式エディタの[その他]セクションで使用できます。
aesDecryption >Advanced Encryption Standard (AES)アルゴリズムを使用して、指定されたキーで指定されたデータを復号化します。aesEncryption関数でデータの暗号化に使用したキーと同じキーを使用する必要があります。
構文 util:aesDecryption(key, dataToDecrypt)
戻り値 この関数は、復号化された値を返します。
例 次の例は、関数の入力として渡されたデータとキーの復号化された値を返します。
SAMPLE FUNCTION
OUTPUT
util:aesDecryption("1234@abc", "QETcr60N6QBSTB0X8V4Y+GL\/K0+nt7M6ON0VommGAU4=")
Informatica
util:aesEncryption("abcdefghkl", "tceVjWKW2lKWQ+ZJfHn4gUKXPDUPrEilmNoTueesPo0=")
cloud
aesEncryption Advanced Encryption Standard(AES)アルゴリズムを使用して、特定のキーで指定されたデータを暗号化します。
構文 util:aesEncryption(key, dataToEncrypt)
戻り値 この関数は、暗号化された値を返します。
例 次の例は、関数の入力として渡されたデータとキーの暗号化された値を返します。
SAMPLE FUNCTION
OUTPUT
util:aesEncryption("1234@abc", "Informatica")
QETcr60N6QBSTB0X8V4Y+GL\/K0+nt7M6ON0VommGAU4=
util:aesEncryption("abcdefghkl", "cloud")
tceVjWKW2lKWQ+ZJfHn4gUKXPDUPrEilmNoTueesPo0=
decode 指定した値をカラムで検索します。値を見つけると、定義された結果値を返します。1つのdecode関数内には、数に制限なく検索を指定できます。
decodeを使って文字列カラムの値を検索する場合には、rtrim関数で末尾の空白を削除することや、検索文字列内に空白文字を含めることもできます。
構文 util:decode(value, search1, result1, args, default)
次の表に、引数を示します。
引数
必須/
オプション
説明
値
必須
検索を行う値を渡します。
任意の有効なトランスフォーメーション式を入力できます。バイナリ以外の任意のデータ型を渡すことができます。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
search1
必須
検索を行う対象の値を渡します。
任意の有効なトランスフォーメーション式を入力できます。value引数と同じデータ型の任意の値を渡すことができます。検索する値と値引数は、必ず一致させる必要があります。値の一部を検索することはできません。また、検索する値では大文字と小文字が区別されます。
例えば、特定のカラムで文字列'Halogen Flashlight'を検索したい場合には、'Halogen'だけでなく'Halogen Flashlight'と入力する必要があります。'Halogen'と入力すると、一致する値が見つかりません。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
result1
必須
検索で一致した値が見つかったときに返す値です。
任意の有効なトランスフォーメーション式を入力して、バイナリ以外の任意のデータ型を渡すことができます。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
args
必須
カンマで区切られた検索値と結果値のペア。
例えば、以下の構文を使用します。
util:decode(value, search1, result1, search2, result2, searchn, resultn, default)
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
default
必須
検索で一致した値が見つからなかったときに返す値です。
任意の有効なトランスフォーメーション式を入力して、バイナリ以外の任意のデータ型を渡すことができます。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
戻り値 一致した値が見つかった場合は、result1 。
一致した値が見つからなかった場合は、default 値。
一致した値が見つからなかった場合、デフォルト値を指定していなければNULL。
複数の条件に一致した場合でも、decodeは最初に一致した結果を返します。
decodeとデータ型 decodeを使用した場合、戻り値のデータ型は最大の精度を持つ結果のデータ型と常に同じものとなります。
たとえば、次のような式があるとします。
util:decode( CONST_NAME 'Five', 5, 'Pythagoras', 1.414213562, 'Archimedes', 3.141592654, 'Pi', 3.141592654 )
この式の戻り値は、5、1.414213562、および3.141592654です。最初の結果は整数で、その他の結果は小数です。Decimalデータ型は、Integerデータ型よりも精度が高くなります。この式は常に結果を固定小数点値として書き込みます。
文字列戻り値と数値戻り値の両方を持つDECODE関数は作成できません。
例えば、下記の式は有効ではありません。
util:decode( CONST_NAME 'Five', 5, 'Pythagoras', '1.414213562', 'Archimedes', '3.141592654', 'Pi', 3.141592654 )
上記の式を検査すると、下記のエラーメッセージが表示されます。
Function cannot resolve operands of ambiguously mismatching datatypes.
例 次の式は、decodeを使用し、特定のITEM_IDを検索してITEM_NAMEを返します。
util:decode( ITEM_ID, 10, 'Flashlight', 14, 'Regulator', 20, 'Knife', 40, 'Tank', 'NONE' )
次の表に、一部のサンプル値と戻り値を示します。
ITEM_ID
RETURN VALUE
10
Flashlight
14
Regulator
17
NONE
20
Knife
25
NONE
NULL
NONE
40
Tank
検索値がITEM_IDに一致しないため、decodeは項目17および25に対してデフォルト値のNONEを返します。また、NULLのITEM_IDに対してもNONEを返します。
次の式は、複数のカラムおよび条件をテストして、上から順に'TRUE'であるか'FALSE'であるかを求めます。
util:decode( TRUE, Var1 = 22, 'Variable 1 was 22!', Var2 = 49, 'Variable 2 was 49!', Var1 < 23, 'Variable 1 was less than 23.', Var2 > 30, 'Variable 2 was more than 30.', 'Variables were out of desired ranges.')
次の表に、一部のサンプル値と戻り値を示します。
Var1
Var2
RETURN VALUE
21
47
Variable 1 was less than 23.
22
49
Variable 1 was 22!
23
49
Variable 2 was 49!
24
27
Variables were out of desired ranges.
25
50
Variable 2 was more than 30.
escape-Json-String 指定された文字列内の特殊文字を、JSONで使用する際に有効になるようにエスケープします。
構文 util:escapeJsonString(str)
戻り値 ルールhttp://json.org/に従って値をエンコードし、JSON文字列として返します。
例 この関数は、入力として指定されたさまざまな文字列に対して次の値を返します。
STRING INPUT
RETURN VALUE
//
/\/\
Item1, Items2
Item1, Items2
\n
\\\\n
getAssetLocation 関数を使用するプロセスまたはガイドが保存されている場所を返します。
注: ガイドに加えて、getAssetLocation関数はクラウドサーバー上で実行されるプロセスでのみ使用できます。
構文 util:getAssetLocation()
戻り値 この関数は、アセットが存在するフォルダの場所を返します。
getAssetName 関数を使用するプロセスまたはガイドの名前を返します。
構文 util:getAssetName()
戻り値 この関数は、出力でアセット名を文字列として返します。
getInstanceStartTime 指定されているプロセスまたはガイドの実行中インスタンスの開始時刻を返します。
構文 util:getInstanceStartTime()
戻り値 この関数は、指定されたアセットに対応する実行中のインスタンスの開始時刻を返します。この関数は出力をyyyy-MM-dd'T'HH:mm:ss.SS'Z' 形式で返します。
例 次のサンプルは、プロセスで使用される関数の結果を表示します。
2023-09-20T09:02:50.774Z
getOrganizationId 実行中のインスタンスのコンテキスト内にあるInformatica Intelligent Cloud Services 組織IDの文字列を返します。
構文 util:getOrganizationId()
戻り値 プロセスがエージェントにデプロイされている場合、関数は出力を$publicとして返します。
プロセスがクラウドサーバーにデプロイされている場合、関数はInformatica Intelligent Cloud Services 組織IDの文字列を出力として返します。
例 次のサンプルは、関数の結果を示しています。
getOrganizationName 実行中のプロセス、ガイド、サービスコネクタ、またはデータアクセスサービスコネクタのコンテキストで組織名を返します。
構文 util:getOrganizationName()
戻り値 この関数は、出力として組織名の文字列を返します。
iif 条件の結果に基づいて、指定した2つの値のうちの1つを返します。
構文 util:iif(condition , val1 ,val2 )
次の表に、引数を示します。
引数
必須/オプション
説明
condition
必須
評価を行う条件。
TRUEまたはFALSEになる有効なトランスフォーメーション式を必要に応じて入力できます。
val1
必須
条件がTRUEのときに返す値。戻り値は常にこの引数で指定したデータ型になります。
別のiif式を含む、任意の有効なトランスフォーメーション式を入力できます。バイナリ以外の任意のデータ型を渡すことができます。
val2
オプション
条件がFALSEのときに返す値。
別のiif式を含む、任意の有効なトランスフォーメーション式を入力できます。バイナリ以外の任意のデータ型を渡すことができます。
iif関数にFALSE (val2 )条件は必要ありません。val2 を省略すると、条件がFALSEの場合、関数は次のいずれかの値を返します。
• val1 がNumericデータ型の場合は0。• val1 がStringデータ型の場合は、空の文字列。• val1 がDate/Timeデータ型の場合はNULL。例えば、次の式にはFALSE条件が含まれておらず、val1 はStringデータ型であるため、decodeはFALSEと評価されたそれぞれの行に対して空の文字列を返します。
util:iif(SALES > 100, EMP_NAME)
次の表に、一部のサンプル値と戻り値を示します。
SALES
EMP_NAME
RETURN VALUE
150
John Smith
John Smith
50
Pierre Bleu
'' (empty string)
120
Sally Green
Sally Green
NULL
Greg Jones
'' (empty string)
戻り値 条件がTRUEの場合はval1 。
条件がFALSEの場合はval2 。
例えば、下記の式にはFALSE条件であるNULLが含まれるため、decodeはFALSEと評価されたそれぞれの行に対してNULLを返します。
util:iif(SALES > 100, EMP_NAME, NULL)
次の表に、一部のサンプル値と戻り値を示します。
SALES
EMP_NAME
RETURN VALUE
150
John Smith
John Smith
50
Pierre Bleu
NULL
120
Sally Green
Sally Green
NULL
Greg Jones
NULL
iifおよびデータ型 iifを使用した場合、戻り値のデータ型は最大の精度を持つ結果のデータ型と同じものとなります。
例えば、次のような式があるとします。
util:iif(SALES < 100, 1, .3333)
TRUEの結果(1)は整数であり、FALSEの結果(.3333)は小数です。Decimalデータ型は、Integerデータ型よりも精度が高くなります。したがって、戻り値のデータ型は常に固定小数点値です。
IIFの特殊な使用法 ネストしたIIF文を使用して、複数の条件をテストできます。以下の例は、各種条件をテストし、販売額が0または負の場合には0を返します。
util:iif(SALES > 0, util:iif(SALES < 50, SALARY1, util:iif(SALES < 100, SALARY2, util:iif( SALES < 200, SALARY3, BONUS))), 0 )
次に含まれる 入力値を値のリストとマッチングします。デフォルトでは、大文字と小文字を区別します。
構文 util:in(valueToSearch, values , caseFlag )
次の表に、引数を示します。
引数
必須/
オプション
説明
valueToSearch
必須
文字列、日付または数値。値のカンマ区切りリストと照合する入力値。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
values
必須
文字列、日付または数値。検索する値のカンマ区切りリスト。値にはカラムを使用できます。指定する値の数に制限はありません。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
caseFlag
オプション
整数でなければなりません。この関数の引数の大文字と小文字を区別するかどうかを指定します。有効なトランスフォーメーション式を必要に応じて入力できます。
caseFlag が0以外の数値の場合、大文字と小文字を区別します。
caseFlag がNULL値または0の場合、大文字と小文字を区別しません。
戻り値 入力値が値リストに一致する場合はTRUE (1)。
入力値が値リストに一致しない場合はFALSE (0)。
NULL値を入力した場合は、NULLです。
例 以下の式は、入力値がsafety Knife、Chisel Point Knife、Medium Titanium Knifeのいずれであるかを決定します。入力値は、必ずしもカンマ区切りリストの値の表記(大文字/小文字)に一致させる必要はありません。
util:in(ITEM_NAME, ‘Chisel Point Knife’, ‘Medium Titanium Knife’, ‘Safety Knife’, 0)
次の表に、一部のサンプル値と戻り値を示します。
ITEM_NAME
RETURN VALUE
Stabilizing Vest
0 (FALSE)
Safety knife
1 (TRUE)
Medium Titanium knife
1 (TRUE)
NULL
isNull 値がNULLであるかどうかを返します。
構文 util:isNull(value)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
値
必須
評価を行う行を渡します。有効なトランスフォーメーション式を必要に応じて入力できます。Binary以外の任意のデータ型の値を渡すことができます。
戻り値 値がNULLの場合は、TRUE(1)。
値がNULLでない場合は、FALSE(0)。
例 次の例は、itemsテーブル内のNULL値を確認します。
util:isNull( ITEM_NAME )
次の表に、一部のサンプル値と戻り値を示します。
ITEM_NAME
RETURN VALUE
Flashlight
0 (FALSE)
NULL
1 (TRUE)
Regulator system
0 (FALSE)
''
0 (FALSE) Empty string is not NULL
removeSystemNamespaceXML XMLドキュメントからシステム名前空間を削除して、より単純で読みやすいXML構造が提供されるようにします。
構文 util:removeSystemNamespaceXML(currentElement)
戻り値 この関数は、より単純化された、読みやすいXML構造を返します。
例 次の表に、関数の入力として渡されるXMLコードスニペットと、対応するXML出力の例を示します。
SAMPLE FUNCTION
OUTPUT
<root> <Request xmlns:sf="http://schemas.active-endpoints.com/appmodules/screenflow/2010/10/avosScreenflow.xsd" xmlns:aetgt="http://schemas.informatica.com/spi/types/2013/12/spi-interface/" xmlns:ns2="http://schemas.informatica.com/spi/types/2013/12/spi-interface/" xmlns:type="http://schemas.informatica.com/spi/types/2013/12/spi-interface/" xmlns:ns4="http://schemas.active-endpoints.com/appmodules/screenflow/2011/06/avosHostEnvironment.xsd" xmlns:ns3="http://schemas.active-endpoints.com/appmodules/screenflow/2011/07/avosCommon.xsd" xmlns:ns5="http://schemas.active-endpoints.com/appmodules/screenflow/2012/09/avosObjectDiscovery.xsd" xmlns:ns6="http://schemas.active-endpoints.com/appmodules/screenflow/2010/10/avosScreenflow.xsd"> <MessageID>001</MessageID> <Customer> <CustomerID>CUST123</CustomerID> <Name>Jane Doe</Name> </Customer> <Order> <OrderID>ORD789</OrderID> <Product>Gadget X</Product> <Quantity>5</Quantity> </Order> </Request> </root>
<root> <Request> <MessageID>001</MessageID> <Customer> <CustomerID>CUST123</CustomerID> <Name>Jane Doe</Name> </Customer> <Order> <OrderID>ORD789</OrderID> <Product>Gadget X</Product> <Quantity>5</Quantity> </Order> </Request> </root>
toDecimal 文字列または数値を10進数値に変換します。toDecimal関数では、先頭のスペースが無視されます。
構文 util:toDecimal(value , scale )
次の表に、引数を示します。
引数
必須/
オプション
説明
値
必須
StringまたはNumericデータ型で指定する必要があります。10進数に変換する値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
スケール
オプション
0から28までの整数リテラル。小数点以下の桁数を指定します。この引数を省略すると、関数は入力値と同じ位取りの値を返します。
この引数は、詳細モードで必要です。
戻り値 0から28までの精度と位取りを持つ10進値。
選択したカラムの値が空の文字列または数値以外の文字であった場合は、ゼロ。
関数にNULL値を渡した場合はNULLです。
例 次の式は、カラムIN_TAXからの値を使用します。データ型はDecimalで、精度は10、スケールは3です。
util:toDecimal(IN_TAX, 3)
次の表に、一部のサンプル値と戻り値を示します。
IN_TAX
RETURN VALUE
'15.6789'
15.679
'60.2'
60.200
'118.348'
118.348
NULL
NULL
'A12.3Grove'
0
次の式は、[Sales]カラムからの値を使用します。データ型はDecimalで、精度は10、スケールは2です。
util:toDecimal(Sales, 2)
次の表に、一部のサンプル値と戻り値を示します。
Sales
RETURN VALUE
'1234'
1234
'1234.01'
1234.01
1234.00形式の戻り値が必要な場合は、次の式を使用します。
format-number(util:toDecimal('1234', 2), '0.00')
10進数のオーバーフロー 小数点の左側の数値のサイズが精度を超えた場合は、10進数の演算がオーバーフローします。
この問題を解決するには、式ポートのスケールや精度を変更し、マッピングのダウンストリームポートを接続して、式の入力データのサイズに合わせた設定を使用します。
以下に例を示します。
数値フィールドのスケールが15に定義され、サイズが28に定義されている場合、このフィールドは小数点の左側に13個、右側に15個の数値を受け入れます。したがって、次の数値は28,15という数値に対して有効になります。
1234567890123.11143
13575.123451234567891
ただし、次の数値は10進数のオーバーフローエラーを引き起こします。
111112222233333.4444
123.1111122222333334
toInteger 文字列または数値を整数に変換します。toInteger構文にはオプションの引数があり、数字を近似値の整数に丸めるか、小数点以下を切り詰めるかを選択できます。toInteger関数は、先頭のスペースを無視します。
構文 util:toInteger(value , flag )
次の表に、引数を示します。
引数
必須/
オプション
説明
値
必須
StringまたはNumericデータ型で指定する必要があります。整数に変換する値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
flag
オプション
小数点以下を切り捨てるか丸めるかを指定します。フラグは整数リテラルか、TRUEまたはFALSEの定数でなければなりません。
- toIntegerは、フラグがTRUEまたは0以外の数字の場合に小数点以下を切り捨てます。- フラグがFALSEまたは0の場合、あるいはこの引数が省略された場合、toIntegerは値を近似値の整数に丸めます。
戻り値 整数。
関数にNULL値を渡した場合はNULLです。
関数に渡された値に英数字が含まれている場合は0です。
例 次の式は、カラムIN_TAXからの値を使用します。
util:toInteger(IN_TAX, fn:boolean(1))
次の表に、一部のサンプル値と戻り値を示します。
IN_TAX
RETURN VALUE
'15.6789'
15
'60.2'
60
'118.348'
118
NULL
NULL
'A12.3Grove'
0
' 123.87'
123
'-15.6789'
-15
'-15.23'
-15
trace クエリのデバッグに使用する実行トレースを提供します。
fn:trace 関数は、項目およびそれらの項目のラベルを受け取り、項目を変更せずに返します。関数の正確な動作は実装環境に依存しますが、通常、プロセッサは項目のラベルと値をログファイルまたはユーザーコンソールに格納します。
構文 fn:trace(value , label )
次の表に、引数を示します。
引数
必須/
オプション
説明
値
必須
トレースする項目。
ラベル
オプション
トレース情報とともに表示するラベル。
戻り値 項目およびそれらの項目のラベルに基づいて、項目が変更されずに返されます。
例 次のような変数定義があるとします。
let $var1 := 5
次の式は、結果としてThe correct value is: 5 を返します。
fn:trace($var1, 'The correct value is: ')
trunc (Numbers) 精度で指定された小数点以下の桁数に基づいて、数値を特定の桁に切り詰めます。
構文 util:trunc(arg , precision )
引数
必須/
オプション
説明
arg
必須
数値データタイプ。切り詰めを行う引数を渡します。数値データ型と評価される有効な式を入力します。
precision
オプション
正または負の整数です。整数を求める有効な式を必要に応じて入力できます。この整数は、切り詰め後の桁数を指定します。
precision が正の整数である場合、truncはprecision で指定された小数点以下の桁数を含むarg を返します。precision が負の整数である場合、truncは小数点の左側の指定された桁数をゼロに変更します。precision 引数を省略すると、truncはarg の小数部分を切り詰めて、整数を返します。
引数の小数点以下の末尾のゼロはすべて切り詰められます。例えば、次の式は結果として2345.7535を返します。
util:trunc(2345.75350000, 6)
小数点以下が16桁を超える数値が含まれている場合、XQueryの制限により、結果は指数値を返します。
例えば、次の式は結果として1.234567812345679E7を返します。
util:trunc(12345678.12345678901234567890, 15)
10進数のprecision 値を渡すと、arg を近似値の整数に四捨五入してから、式が評価されます。
戻り値 関数で指定されたパラメータに基づく数値または整数値。
例 以下の式は、PRICEカラム内の値の切り詰めを行います。
util:trunc(PRICE, 3)
PRICE
RETURN VALUE
12.9995
12.999
-18.8652
-18.865
56.9563
56.956
15.9928
15.992
util:trunc(PRICE, -1)
PRICE
RETURN VALUE
12.99
10
-187.86
-180
56.95
50
1235.99
1230
util:trunc(PRICE )
PRICE
RETURN VALUE
12.99
12
-18.99
-18
56.95
56
15.99
15
simplifyXml XML内のデータを再配置して、プロセスオブジェクトで使用できるようにします。
構文 util:simplifyXml(undefined)
戻り値 プロセスがクラウドサーバーまたはエージェントにデプロイされると、この関数は名前空間のない出力を返し、属性を子要素に変換します。
例 この関数は、入力として提供されたXMLデータに対して次の出力を返します。
INPUT
OUTPUT
<ns:root xmlns:ns="https://qwerty" attrKey="attrValue"> data </ns:root>
<root><attrKey>attrValue</attrKey> <text>data</text> </root>
XMLノード関数 式エディタの[XMLノード]セクションでは、次のようなXML関数を使用できます。
data ノードの原子値。
fn:data 関数は、項目のシーケンスを入力とし、原子値のシーケンスを返します。
構文 fn:data(arg )
以下の表に、の引数を示します。
引数
必須/
オプション
説明
arg
必須
型指定された値が返される項目。
戻り値 原子値の場合は、変更されていない値を返します。ノードの場合は、ノードの型指定された値を抽出します。
例 次の式は、結果として123, 456を返します。
fn:data((123, 456))
次のような変数定義があるとします。
let $x := <hello>Hello
let $x := <hello>Hello <world>World</world> </hello>
式fn:data($x) は、次の結果を返します。
Hello World
deep-equal 2つのノードが同じコンテンツと属性を持つかどうかを評価します。
deep-equalになるには、それらが対でdeep-equalな項目を含む必要があります。また、2項目がdeep-equalになるには、それらが等しいと見なされる原子値であるか、または同じ種類で同じ名前、かつその子がdeep-equalであるノードである必要があります。$collation引数は、名前を比較するときではなく、文字列を比較するときに再帰の全レベルにおいて使用されている照合を特定します。
構文 fn:deep-equal(parameter1 , parameter2 , collation )
次の表に、引数を示します。
引数
必須/
オプション
説明
parameter1
必須
比較する最初のシーケンス。
parameter2
必須
比較する2番目のシーケンス。
collation
オプション
文字列の比較に使用する照合順序。collation引数は、名前を比較するときではなく、文字列を比較するときに再帰の全レベルにおいて使用されている照合を特定します。
戻り値 $parameter1および$parameter2のシーケンスに同じ値が同じ順序で含まれている場合にtrue を返します。
原子値は、eq 演算子を使用して、型指定された値に基づいて比較されます。2つの原子値を比較できない場合(例えば、1つが数値で、もう1つが文字列である場合)、この関数は、エラーではなくfalse を返します。
例 次の式は、結果としてtrue を返します。
fn:deep-equal (1, 1)
次の式は、結果としてfalse を返します。
fn:deep-equal ((1,2), (2,1))
次の式は、結果としてfalse を返します。
fn:deep-equal (123, John)
root 引数を含むツリーのルートを返します。
構文 fn:root(arg )
以下の表に、の引数を示します。
引数
必須/
オプション
説明
arg
必須
ルートノードが返されるノード。
戻り値 $arg ノードがドキュメントの一部である場合、fn:root 関数はドキュメントノードを返します。ただし$arg ノードがドキュメントの一部でない場合は、要素を返します。
$arg が空のシーケンスである場合は、空のシーケンスが返されます。
関数が引数なしで呼び出された場合は、コンテキスト項目がデフォルトの引数として使用されます。コンテキスト項目が未定義であるか、ノードではない場合は、エラーが発生します。
例 次のような変数定義があるとします。
let $in-xml := <a><x>123</x></a>
式root($in-xml/x) は、次の結果を返します。
<a> <x>123</x> </a>
関数と変数の指定 サービスコネクタを構成するには、バインディング、出力フィールド、その他のプロパティを定義するための変数と関数を指定する必要があります。
ビルトイン変数 これらの変数は、XQuery式を使用してサービスコネクタで参照できます。
変数
変数型
説明
$VariableName
すべての接続プロパティ
プロパティ、入力、その他のパラメータは、この形式を使用して指定できます。
$ResponseStatusCode
出力フィールドマッピング
HTTP応答コード。
$ResponseHeaders
出力フィールドマッピング
各項目が次のとおりの要素リスト内にHTTP応答ヘッダーが格納されます。
<header name="Content-Type">text/plain</header>
以下に例を示します。
$ResponseHeaders[@name = "Content-Type"]/text()
$RESTResponse
出力フィールドマッピング
ヘッダーとコードを含むRESTResponse XMLデータが格納されます。サービスコネクタのテスト結果内に表示されます。
出力フィールドマッピング関数 サービスコネクタでバインディングを定義するときは、式エディタ で多くの関数を使用できます。
使用可能なすべての機能については、
関数の使用 および
式エディタの使用 を参照してください。
次の表に、サービスコネクタの出力フィールドのマッピングで使用できる関数を示します。
機能
構文
説明
responseHeaderExists
svc:responseHeaderExists($ResponseHeaders, headerName ) : boolean
ヘッダーパラメータが応答内にあるかどうかを示すBoolean値を返します。
getResponseHeader
svc:getResponseHeader( $ResponseHeaders, headerName, defaultValue ) : string
svc:getResponseHeader( $ResponseHeaders, headerName ): string
応答ヘッダー値を返します。ヘッダーパラメータが定義されていない場合、この関数は、オプションのデフォルト値を返します。
getResponseHeaderNames
svc:getResponseHeaderNames( $ResponseHeaders ) : list of strings
応答ヘッダー内のすべてパラメータの名前を格納したリストを返します。
デジタル署名関数の概要 デジタル署名関数は、Process Designerに対して使用できます。XQueryを使用して、コンテンツの署名を処理するプロセスおよびサービスコネクタを作成できます。サポート対象の関数は次のいずれかです。
• 対称: ハッシュベースのメッセージ認証コード(HMAC)を使用して署名されます。このコードは、共有パスワードとキーに基づき、複数のキー形式を使用できます。• 非対称: プライベートキー(PKCS8、PKCS12、Java KeyStoreなど)を使用して署名されます。署名付きデジタルコンテンツのよくある用途の1つは、サービスコネクタ内でのAPI認証を可能にすることです。これにより、文字列ベースのコンテンツに対してハッシュと関連関数を使用できます。例えば、署名付きヘッダーをペイロードの一部として使用する必要がある場合があります。
各関数の詳細については、
関数の使用 を参照してください。
注: 現在、署名付きコンテンツの検証またはバイナリコンテンツに署名するためにサポートされている関数はありません。
HMAC HMAC署名方法は、次のサービスを含む多くのサービスで使用されます。
• Amazon Webサービス(AWS)• Twitter OAuthProcess Designerは、HMAC SHA1、HMAC SHA256、HMAC SHA512をBase64、Hex、Hex64、Base64Urlのいずれかのエンコードでサポートしています。例えば、AWS用のコンテンツに署名するために、これらのいずれかの関数を使用できます。
• dsig:hmacSignature( $data as xs:string, $key as xs:string, $algorithm as xs:string, $encoding as xs:string? ) as xs:string • dsig:hmacSHA1signature( $data as xs:string, $key as xs:string, $encoding as xs:string? ) as xs:string • dsig:hmacSHA256signature( $data as xs:string, $key as xs:string, $encoding as xs:string? ) as xs:string • dsig:hmacSHA512signature ( $data as xs:string, $key as xs:string, $encoding as xs:string?)as xs:string AWS認証 AWS REST APIには、次の形式で認証ヘッダーが必要です。
Authorization: AWS AWSAccessKeyId:Signature
ここで、
Signature = dsig:hmacSHA1signature($strToSign, "AwsSecretKeyId ")
AWSAccessKeyおよびAwsSecretKeyIdは、AWSによって生成され、AWS開発者コンソールを介してアクセスできます。
注: $strToSignはHTTPヘッダー値とその他のパラメータの組み合わせです。
非対称プライベートキーベースの署名 次のプライベートキーの方法がサポートされています。
• PKCS8• PKCS12• Java KeyStore注: プライベートキーを使用してコンテンツに署名する場合、キーストアファイルはSecure Agentにあり、プロセスまたはサービスコネクタは、そのキーにアクセスするために、Secure Agent上で実行されている必要があります。そのキーへのファイルパスが、オブジェクトプロパティに指定されている必要があります(C:/certs/mykey.p12など)。
次の構成にすることもできます。
• PKCS8/12アーティファクトをエージェントコントリビューションにデプロイし、「project:/」スキーマを使用して場所を指定します。• ファイルの場所でなく、エンコードされたキーコンテンツを使用して、キーを提供します。この方法は、サービスコネクタの開発中に有益な場合があります。例えば、テスト目的で、エンコードされたコンテンツをテキスト領域に貼り付けられます。PKCS8キーファイル PKCS8キーファイルを使用して署名するには、この関数を使用します。
dsig:signWithKeyFile( $messageToSign as xs:string, $pathToKey as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string ) as xs:string
キーファイルはバイナリまたはBase64エンコード形式にできます。
P12およびキーストアベースのファイル
P12またはキーストアベースのファイルを使用して署名するには、この関数を使用します。
dsig:signWithCertificate( $messageToSign as xs:string, $pathToCertificate as xs:string, $keyRecoveryPassword as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string ) as xs:string
例えば、サービスアカウントに対してこのGoogle JWT(JSON Webトークン)認証用の方法を使用できます。GoogleプライベートキーをSecure Agentでアクセスして保存するために取得したら、JWT要求を作成し、自分のプライベートキーを使用してそれに署名します。
hmacSHA256signatureForList SHA256アルゴリズムとオプションのエンコードを使用して、ハッシュベースのメッセージ認証コード(HMAC)を計算します($encodingはBase64(デフォルト値)、Base64Url、Hex、またはHex64のいずれかの値です)。
構文 dsig:hmacSHA256signatureForList(data, delimiter, secretKey, encoding)
次の表に、引数を示します。
引数
必須/
オプション
説明
data
必須
ハッシュを計算するためのプレーンテキスト。
区切り文字
必須
文字列を分割する基準となる1つ以上の文字のシーケンス。
secretKey
必須
HMAC計算のシークレットキー。キーの長さは任意です。ただし、推奨されるサイズは64バイトです。キーの長さが64バイトを超える場合は、SHA-256を使用してハッシュされ、32バイトのキーが導出されます。
encoding
必須
出力に使用されるエンコードのタイプ。例えば、SHA256アルゴリズムを使用してHMACを計算することができます(encodingはBase64(デフォルト)、Base64Url、Hex、Hex64のいずれかの値です)。
添付ファイル Process Designerはエンドポイントを公開することで、イベントハンドラ、内部API呼び出し、カスタムサービスコネクタ、Amazon S3コネクタなどの組み込みコネクタを使用して、プロセス内で添付ファイルにアクセスできるようにします。これにより、応答内で関数を使用して(サポートされている場合)添付ファイルを渡し、添付ファイルに関するファイルサイズ、ファイル名などのデータを抽出できます。
プロセスの設計時に、添付ファイルをサブプロセス、サービスコネクタ、サービス の各ステップに渡すか、添付ファイルを返せます(出力フィールドが添付ファイルのタイプを使用して定義されている場合)。
プロセス 内では、添付ファイルが画面からの直接入力として入力される1つまたは複数の添付ファイルを追加することを、ユーザーに許可できます。これは、プロセス フィールドを使用してステップ間を移動する方法ではありません。例えば、プロセス を使用して、不動産データをキャプチャし、ユーザーが関連不動産の写真を添付するようにできます。ただし、添付ファイルデータには、プロセス 内でアクセスすることはできません。
注: プロセス をCloud Server上で実行する場合、サイズがデフォルトの5,242,880バイトを超える添付ファイルは使用しないでください。クラウドサーバーは、5,242,880バイトを超える添付ファイルを処理できません。
エンコード 添付ファイルは次の形式でエンコードできます。 - multipart/form-data(ブラウザベースの処理用)- multipart/mixedデータタイプ 2つの簡単なデータタイプを使用して、名前付き入力パラメータを添付ファイルとして指定できます。 - 添付 は単一の添付ファイルをサポートし、フィールドプロパティとして最大ファイルサイズを定義できます。- 添付ファイル は複数の添付ファイルをサポートし、フィールドプロパティとして最大ファイルサイズと最大ファイル数を定義できます。プロセス内から、XQuery式と組み込み関数を使用して、添付ファイルに関するメタデータにアクセスできます。例えば、次の式では、写真入力のサイズが返されます。
sff:getAttachmentSize($input.photo)
添付フィールド割り当てステップを使用することで、出力フィールドまたは一時フィールドに入力添付フィールドを割り当てられす。その場合、ターゲットの一時フィールドまたは出力フィールドも[添付]タイプである必要があります。
この例では、2番目のパラメータ($encodedContent)は、Base64でエンコードされた文字列です。
sff:createAttachmentFromBase64("base64", "UOpGUIRA", "ascii")
注: プロセス内で添付関数をで使用できますが、サービスコネクタ内では使用できません。サービスコネクタ内での添付ファイルの処理に関する詳細は、次を参照してください。
添付ファイルと一緒に使用できる関数の詳細については、
関数の使用 を参照してください。
添付ペイロード 単純な添付ファイルを使用する場合、次の状態であることを確認してください。
• 各名前付き部分は、プロセス内の入力パラメータと同じ名前(名前とコンテンツの破棄)である必要があります。• Content-Type部分も、入力パラメータのコンテンツタイプと一致している必要があります。添付ファイル以外のすべてのデータタイプについて、Content-Type= text/plain(テキスト、チェックボックス、日付など)である必要があります。• その部分がプロセスオブジェクトを表す場合、そのコンテンツは有効なシリアル化されたJSONコンテンツ(Content-Typeがapplication/jsonのもの)である必要があります。• 添付タイプまたは添付ファイルタイプのプロセス出力フィールドを定義する必要があります。これらのフィールドは、呼び出し元に添付ファイルとして返されます。例えば、プロセスに「first」(テキスト)、「last」(テキスト)、「inputFile」(添付)という入力フィールドがある場合、ペイロードは次のようになります。
POST /active-bpel/public/rt/Attachments_Test HTTP/1.1 Content-Type: multipart/form-data; boundary=----TheBoundary1234 ------TheBoundary1234 Content-Disposition: form-data; name="first" John ------TheBoundary1234 Content-Disposition: form-data; name="last" Smith ------TheBoundary1234 Content-Disposition: form-data; name="inputFile"; filename="filename.png" Content-Type: image/png ... binary image data ... ------TheBoundary1234--
応答の最初の部分は、応答出力フィールドを記述したJSONドキュメントである必要があります。JSONコンテンツには、出力フィールド値(標準応答)があります。
出力フィールドのタイプが添付の場合、その値は、添付を含む部分のコンテンツID(cid)を含む文字列になります。例えば、入力フィールドに「first」(テキスト)、「last」(テキスト)、「inputFile」(添付)という出力フィールドがある場合、応答は次のようになります。
Content-Type: multipart/mixed; boundary=----TheBoundary1234 ------TheBoundary1234 Content-Type: application/json { "first" : "John", "last" : "Smith", "inputFile" : "cid:fc1c6030-4b90-4981-b9d8-ab1d0ba0e84e" } ------TheBoundary1234 Content-Type: image/png Content-Name: photo Attachment-Created-At:1435182142837 Content-Id: fc1c6030-4b90-4981-b9d8-ab1d0ba0e84e Content-Length: 1073 ... binary image data ... ------TheBoundary1234--
• プロセスプロパティ内で出力フィールドにはペイロード全体 を有効にせず、添付タイプの単一の出力フィールドがある場合、ここに示すように、応答には添付データとメタデータの両方が含まれます。--Boundary content-type: ... cid:outputFile --Boundary content-type: image/jpeg [binary data]
出力フィールドにはペイロード全体 を有効にし、添付タイプの1つの出力フィールドのみがある場合、メタデータなしで、単一の添付(テキスト型またはバイナリ型)データを受け取れます。サードパーティが添付にのみアクセスする場合、コンシュームするほうが簡単です。以下に例を示します。
HTTP/1.1 200 OK Content-Type: image/jpeg Content-Length: length [.. JPEG data ...]
サービスコネクタ内での添付ファイルの使用 サービスコネクタは、プロセスからサービスコネクタの入力に添付を送信する、サービスコネクタから添付を取得してプロセスに添付として送信するなどの目的で定義できます。
添付ファイルはサービス入力(Salesforceベースのサービスを含む)に対してプロセス とサービスコネクタから直接送信されます。
注: Amazon S3などのサービスからは、コンテンツをアップロードまたはダウンロードし、出力マッピングで定義された名前で添付をメインプロセスにプロパゲートして戻します。Amazon S3コネクタを使用すると、S3オブジェクトのコンテンツをBase64でエンコードされた文字列として、または添付ファイルとして読み書きできます。詳細については、Amazon S3コネクタに関するガイドを参照してください。
サービスコネクタでの複数の出力添付ファイルの使用 サービスコネクタでは、マルチパート応答を適切に処理し、さまざまな応答パートに対し複数の添付ファイルを作成できます。パート関連メタデータ情報は、添付ファイルのプロパティで使用できます。
サービスコネクタでは、ペイロードパートも認識されます。最初のJSON/XML/テキストパートがペイロードとして使用されます。非マルチパート応答の使用時に通常行うアクションの出力フィールド式のペイロードからデータを抽出できます。選択されたペイロードは添付として使用できません。
[出力] タブで、[添付ファイルの取得] オプションを使用して複数の添付ファイルを処理し、添付ファイルの全リストをペイロードを除く選択された変数に渡すことができます。
サービスコネクタで添付ファイルを処理する式を使用することもできます。式エディタを開くと、[出力添付ファイル] セクションの[関数] タブで新しい関数を見つけることができます。
GET、POST、PUTの使用 JSONまたはXMLをサポートしていないリソースに対してGET、POST、PUTの各操作を使用するサービスコネクタを定義できます。
以下の点に注意してください。
• 入力パラメータ(添付タイプ)は、バインディングURL(POST/PUT)から宛先にアップロードする必要があります。バインディングタイプと添付ファイル数に基づくペイロード形式を使用します。• 複数の添付パラメータがあり、バインディングがFORMの場合、すべてのパラメータ(非ファイルパラメータを含む)をmultipart/form-dataとして送信します。• 1つ以上の添付パラメータがあり、バインディングがJSONの場合、ファイルをmultipart/form-dataとして送信し、非ファイルパラメータを単一のJSON要素に組み込みます。• 厳密に1つのファイルパラメータがあり、バインディングがCUSTOMであり、バインディングペイロードは空である場合(カスタムのテキスト領域内にXMLまたはJSONなし)、RawファイルデータをそのままPOSTまたはPUTします。• 複数の添付パラメータがあり、バインディングがCUSTOMであり、ペイロードがXQueryの場合、HTTP送信ペイロードはmultipart/relatedである必要があります。最初の部分はCUSTOM(XQuery)コンテンツであり、各ファイル/添付入力パラメータの部分がこれに続きます。• 添付フィールド割り当てステップを使用することで、出力フィールドまたは一時フィールドに入力添付フィールドを割り当てられす。その場合、ターゲットの一時フィールドまたは出力フィールドも[添付]タイプである必要があります。• 複数のファイルのダウンロード(multipart/mime添付の使用)はサポートされていません。注 : 「sff」関数はプロセス内でのみ使用できます。
HTTPおよびJMSヘッダー ヘッダー関数を使用して、プロセスの起動時に渡すヘッダーに関する詳細を取得します。プロセスヘッダーとメッセージイベントヘッダーの詳細を取得できます。
ヘッダー関数を使用して、プロセスの起動時に渡すヘッダーのみから入手できる情報を取得します。例として、日付、JSON Webトークン、セキュリティIDなどがあります。
フィールドにヘッダー値を割り当て、必要に応じて値にXQuery操作を実行できます。
次の図は、式エディタの[要求コンテキスト] セクションで利用できるヘッダー関数を示します。
各関数の働きを理解するために、次のヘッダーと値で起動するプロセスについて検討します。
ヘッダー
値
accept-language
en-US;q=0.9
client-ip
192.0.2.1
accept
text/xml
postman-token
0023-a5dfd-8vdg3-n2b3
CustomHeader
This is a custom header
ExecutionDate
Wed, July 25 2018 06:25:24 GMT
次のヘッダー関数を単独で、または他の関数と一緒に使用できます。
全ヘッダー値の取得 getAllHeaders 関数を使用して、全ヘッダーとそれらの値のリストを取得します。例えば、次の式を使用すると、特定の出力が得られます。 式: fn:getAllHeaders()
出力: <headers> <header name="accept-language">en-US;q=0.9</header> <header name="client-ip">192.0.2.1</header> <header name="accept">text/xml</header> <header name="postman-token">0023-a5dfd-8vdg3-n2b3</header> <header name="CustomHeader">This is a custom header</header> <header name="ExecutionDate">Wed, July 25 2018 06:25:24 GMT</header> </headers>
日付ヘッダーの取得 getDateHeader 関数を使用して、日付ヘッダーの値を取得します。関数は、dateTime型のデータを返します。他の日付と時間の関数を使用して、値を解析できます。 例えば、次の式を使用すると、特定の出力が得られます。 式: fn:year-from-dateTime(request:getDateHeader("ExecutionDate")
出力: 2018 特定のヘッダー値の取得 getHeader 関数を使用して、特定のヘッダーの値を取得します。例えば、次の式を使用すると、特定の出力が得られます。 式: request:getHeader("accept")
出力: text/xml ヘッダー名リストの取得 getHeaderNames 関数を使用して、一連のヘッダー名を値なしで取得します。例えば、次の式を使用すると、特定の出力が得られます。 式: request:getHeaderNames()
出力: accept-language,client-ip,accept,postman-token,CustomHeader,ExecutionDate
ヘッダー値またはデフォルトの取得 getHeaderOrDefault を使用して、ヘッダーが存在する場合はヘッダー値を取得し、ヘッダーが存在しない場合は何らかのデフォルト値を取得します。この関数を使用するには、ヘッダー名とデフォルト値を式パラメータとして指定する必要があります。 デフォルト値はNot Available にします。 例えば、次の式を使用すると、有効な出力が得られます。 式: concat ("The header I want is", request:getHeaderOrDefault("postman-token","Not Avaialble" )
出力: The header I want is 0023-a5dfd-8vdg3-n2b3
次の式を使用すると、Not Availableの出力が得られます。 式: concat ("The header I want is", request:getHeaderOrDefault("special-token","Not Avaialble" )
出力: The header I want is Not Available
これは、要求に、名前がspecial-token のヘッダーが含まれないためです。 特定のヘッダーが存在するかどうかの確認 headerExists 関数を使用して、特定の名前を持つヘッダーが存在するかどうかを確認します。出力は、True またはFalse のいずれかになります。 例えば、次の式を使用すると、特定の出力が得られます。 式: request:headerExists("CustomHeader")
出力: True
メッセージイベントのヘッダー プロセスにメッセージイベントがある場合、任意のヘッダー関数を使用して、メッセージイベントのヘッダーを取得できます。これを行うには、式パラメータとして、メッセージイベント名を大文字と小文字を区別して追加する必要があります。
例えば、名前がCustomHeader のヘッダーをメッセージイベント受信ステップに渡す場合、次の式を使用して、CustomHeader の値をメッセージイベントME1 から取得します。
request:getHeader("CustomHeader","ME1")
HTTP動詞の関数 要求で使用されるHTTP動詞とリソースパスセグメントを取得するには、HTTP動詞の関数を使用します。HTTP動詞の関数は、式エディタの[要求コンテキスト] セクションで利用できます。
次のHTTP動詞の関数を使用できます。
getRequestHTTPVerb 要求で使用されているHTTP動詞を判別するには、getRequestHTTPVerb 関数を使用します。この関数によって、要求からHTTP動詞が取得され、次の応答のいずれかが文字列形式で返されます。
- GET- POST- PATCH- PUT- DELETEgetResourcePathSegments REST要求のすべてのまたは特定のリソースパスセグメントを取得するには、getResourcePathSegments 関数を使用します。この関数によって、トークンの文字列として値が返されます。
例えば、次の要求URLがあるとします。
https://na1.ai.dm-us.informaticacloud.com/active-bpel/rt/InitiateOrder/Orders/OrderID_100/quantity/5
request:getResourcePathSegments() 式を使用すると、次の応答が返されます。
[Orders, OrderID_100, quantity, 5]
特定のリソースパスセグメントを取得するには、数値修飾子を使用して、プロセス名からのリソースパスセグメントの位置を示します。
例えば、OrderID_100 セグメントだけを応答で取得するには、次の式を使用します。
request:getResourcePathSegments()[2]
注: getResourcePathSegments 関数を使用して、SOAP要求およびメッセージイベントのリソースパスセグメントを取得することはできません。getResourcePathSegments 関数を使用して、ホストコンテキストを取得することはできません。
ヒューマンタスクXQueryユーティリティ プロセス内でヒューマンタスクステップを使用する場合、Process Designerで、または式を使用して値を設定するフィールドで、XQueryを操作するときにヒューマンタスクユーティリティ関数を使用できます。
ヒューマンタスクユーティリティ関数は、式エディタの[ヒューマンタスクユーティリティ] の下にあります。
次の表に、ヒューマンタスクユーティリティ関数を示します。
機能
構文
説明
getHumanTaskId
task:getHumanTaskId(humanTaskStepName)
指定されたヒューマンタスクステップ名に関連付けられたヒューマンタスクのIDを返します。
このIDは、ヒューマンタスクに関する情報の取得、タスクの再割り当て、タスクのキャンセルなどの他のアクションに使用できます。
getHumanTaskInfo
task:getHumanTaskInfo(humanTaskId)
指定されたヒューマンタスクIDに基づいて、ヒューマンタスクに関する次の情報を返します。
- タスクID- タスク名- ステータス- 優先度- タスクイニシエータ- 関係者- 潜在的な所有者- 管理者- タスク所有者- タスク作成日- タスクを作成したユーザー。- タスクアクティブ化時刻- タスク有効期限- スキップ可能オプション値reassignHumanTask
task:reassignHumanTask(humanTaskId, users, groups)
指定されたユーザーおよびグループにヒューマンタスクを再割り当てし、タスクIDを返します。
タスクを1人のユーザーに再割り当てすると、そのユーザーがタスクの所有者になります。タスクをグループまたは複数のユーザーに再割り当てする場合、ユーザーはタスクを引き受けてタスク所有者になる必要があります。
複数のユーザーまたはグループを指定するには、カンマ文字を区切り文字として使用します。例えば、以下の構文を使用します。
task:reassignHumanTask(humanTaskId, ('<user1>','<user2>'), ('<group1>','<group2>'))
タスクをグループではなく特定のユーザーに再割り当てする場合は、次の構文を使用します。
task:reassignHumanTask(humanTaskId, '<user1>',")
cancelHumanTask
task:cancelHumanTask(humanTaskId)
ヒューマンタスクをキャンセルし、タスクを廃止します。タスクIDを返します。ヒューマンタスクがキャンセルされた後、プロセスは次のステップに進みます。