ETL 変換マップの作成
統合ハブ ETL は、特定の統合の ETL 変換マップを作成するために必要なすべてのタスクを実行するためのガイド付きセットアップを提供します。
ガイド付きセットアップ
ガイド付きセットアップでは、すべてのタスクを正しい順序で整理し、タスクの完了を追跡し、タスクの依存関係を適用します。他のタスクの完了に依存するタスクは、ツールのステップを実行してタスクを完了するときに有効または無効になります。
[ETL 変換マップアシスタント] ページのガイド付きセットアップを使用して、次のタスクを完了します。
ソースデータのインポートと基本的な詳細の指定
CMDB に統合するデータのソースなど、統合の基本的な詳細を入力し、ソースデータをインポートします。
始める前に
ETL 変換マップ用に選択する予定のデータソースは、現在のセッションで使用されているものと同じアプリケーションスコープ内に存在する必要があります。
ETL 変換マップを開くと、デフォルトではマップは検証されません。この検証手順を有効にするには、システムプロパティ [sys_properties] テーブルにシステムのプロパティを追加 sn_int_studio.validation.enabledして、そのプロパティを true に設定します。検証が完了したら、検証エラーの処理方法を選択します。
必要なロール:cmdb_inst_admin
手順
データのプレビューと準備
CMDB に統合される生のソースデータのサンプルレコードを確認します。必要に応じて、ターゲットのクラスと属性に合わせてデータを変換して準備します。
始める前に
サンプルデータのレコード数は、システムプロパティ sn_int_studio.preview.size によってグローバルに決定されます。デフォルトでは 100 に設定されています。統合ハブ ETL が処理できるサンプルデータのレコードの最大数は 10,000 です。このプロパティを 10,000 の制限を超えて設定すると、統合ハブ ETL は 最大 10,000 件のレコードのみを処理し、そのことを示すメッセージが表示されます。
統合ハブ ETL v3.2 以降では、マップごとに [ソースデータをインポート] および [基本詳細を提供] フォームの [サイズの上書きをプレビュー] フィールドを設定することで、sn_int_studio.preview.size プロパティの値を上書きできます。
ネストされたペイロードからネストされたデータを処理するには、それぞれのデータソースに [単一列のデータ] オプションを設定する必要があります。
必要なロール:cmdb_inst_admin
このタスクについて
ネストされたデータの列は残りのデータと一緒に表示され、データ列のヘッダーには [ネストされたオブジェクト] という表記が表示されます。オブジェクトごとのネストされたデータアイテムの数が、ネストされたデータのより深いレベルにドリルダウンできるリンクとともに表示されます。ネストされたデータのデータ構造を別のパネルに表示するには、[データ構造を表示] オプションを有効にします。
[データ構造] パネルには、ネストされたデータを表示するための 2 つのオプションがあります。
- ツリー:ネストされたデータがオブジェクトごとにグループ化されます。各オブジェクトノードはソースデータ内のレコードエントリに対応します。オブジェクトノードを展開すると、そのレコードのすべてのネストされたデータが表示されます。
- コレクション:ネストされたデータが、最上位のオブジェクト (デフォルト) 別にグループ化され、次にソフトウェアなどのネストされたデータアイテム別にグループ化されます。ソフトウェアなどのノードを展開して、各コンピューターにインストールされているソフトウェアを表示します。
ネストされたペイロードデータの操作に関するデモについては、ServiceNow YouTube チャネルの Integration Hub - ETL ネストされたペイロード機能のデモ ビデオをご覧ください。
手順
タスクの結果
CMDB クラスおよび属性へのデータ列のマッピングについて
ソースデータをターゲットの CMDB クラスおよび属性にマッピングするための要件とガイドラインがいくつかあります。また、簡単に再アクティブ化できるように、設定を保持したままクラスのマッピングを非アクティブ化するオプションもあります。これらの概念を確認して、識別および調整エンジン (IRE) で適切に処理されることを確認してください。
必要なマッピング
- ソースネイティブキー
- IRE で、レコードを一意に識別するために使用されるほか、関係と参照をビルドするために使用されます。また、挿入および更新操作のパフォーマンスも向上させます。ペイロードを処理する際にこのフィールドが空の場合、IRE はエラーを生成します。
- ソースの最新のタイムスタンプ
IRE で現在のレコードより古いため無視できるレコードを識別するために使用され、競合する属性値を解決するために役立ちます。値が指定されている場合、現在 CMDB に格納されている値よりも後の値である場合にのみ、その値が使用されます。値が指定されていない場合、IRE はその属性を現在のタイムスタンプで更新します。
次のシステムプロパティを使用して、IRE がペイロードの source_recency_timestamp 値を使用してソース [sys_object_source] テーブルの last_scan 属性を更新する方法を変更することができます。
条件付きクラス
条件付きクラスを使用すると、特定の列値または特定のプラグインのステータスに従って、さまざまなデータレコードのセットをさまざまなターゲットクラスにマッピングできます。
たとえば、表示名に「Windows」が含まれている場合、「Windows Server」がターゲットクラスとして選択されます。ただし、表示名に「Linux」が含まれている場合は、「Linux Server」がターゲットクラスとして選択されます。これらの条件のいずれも満たさないレコードの場合 (表示名に「Windows」も「Linux」も含まれない場合)、「Server」がターゲットクラスとして選択されます。
関連クラス
関連クラスを使用すると、ターゲットの非 CMDB テーブルに関連付ける CMDB クラスを選択できます。非 CMDB テーブルが IRE 処理用に構成されていない場合は、IRE 処理に関連クラスを設定する必要があります。IRE 処理用にサポートおよび構成されている非 CMDB テーブルの場合、関連クラスの設定はオプションです。詳細については、「非 CMDB テーブルの IRE サポート」を参照してください。
ソフトウェアインスタンスは非 CMDB クラスですが、IRE ルールが関連付けられていません。したがって、ここで説明した Utah 以前のことは、引き続き有効です。ただし、IRE ルールを持つ非 CMDB クラスの場合、関連付けは必須ではありません。たとえば、「マッピングのターゲットクラスが、CMDB クラスへの参照を持つ非 CMDB クラスである場合は、非 CMDB ターゲットクラスを関連付ける CMDB クラスを選択する必要があります」が、IRE ルールを持つ非 CMDB クラスの場合、「必須」ではなく「可能」です。例と同じで、IRE ルールを持つ非 CMDB に対しては有効ではありません。
マッピングのターゲットクラスが、CMDB クラスへの参照を持つ非 CMDB クラスである場合は、非 CMDB ターゲットクラスを関連付ける CMDB クラスを選する必要があります。非 CMDB クラスは、シリアル番号 [cmdb_serial_number] など、構成アイテム [cmdb_ci] クラスを拡張しないクラスを参照します。関連エントリ [cmdb_related_entry] クラスには、同じ非 CMDB クラスの複数の CMDB クラスの関連付けが含まれている場合があります。したがって、適切な関連付けを選択して、IRE の処理がターゲットの非 CMDB クラスを更新できるようにします。
たとえば、関連エントリ [cmdb_related_entry] クラスには、非 CMDB ソフトウェアインスタンス [cmdb_software_instance] クラスを CMDB ソフトウェアパッケージ [cmdb_ci_spkg] クラスに関連付けるレコードがあります。ターゲットクラスとしてソフトウェアインスタンスを選択する場合は、ソフトウェアインスタンスクラスをソフトウェアパッケージ [cmdb_ci_spkg] クラスに関連付ける必要があります。
クラスマッピングの非アクティブ化
たとえば、サービスグラフコネクタによって提供される ETL 変換マップを編集する場合は、クラスマッピングを削除して、統合の実行時にクラスが入力されないようにすることができます。ただし、後でそのクラスに入力することにした場合は、そのクラスを再度追加して、すべてのクラスマッピングを再構成する必要があります。代わりに、クラスマッピングを非アクティブ化して、そのマッピング設定をすべて保持しながら、統合の実行中にクラスを一時的に無視することができます。非アクティブ化することを選択したクラスは、ユーザーインターフェイスではグレー表示されますが、クラスマッピングを続行して編集することができます。後で、クラスマッピングを再アクティブ化して、クラスマッピングを再構成せずに、クラスの入力を有効にすることができます。
- ユーザーインターフェイスに薄いグレーで表示され、再アクティブ化することはできません。
- 次のクラスを再アクティブ化すると自動的に再アクティブ化されます。
- 最初に非アクティブ化されて、自動非アクティブ化をトリガーしたクラス
- 非アクティブ化されたクラスが依存するクラス
マッピングを直接非アクティブ化するすべてのクラスと、自動的に非アクティブ化される結果のクラスマッピングは、統合の実行時に入力されません。また、これらのクラスに関連付けられている関係とルックアップテーブルは、統合の実行時に入力されません。
- 依存しているクラスがなく、関連するクラスがないクラスを非アクティブ化します。
非アクティブ化されたクラスに関連付けられているルックアップルールと関係の自動非アクティブ化をトリガーします。
- クラスマッピング内で、シリアル番号などのルックアップルールを非アクティブ化します。
自動非アクティブ化はトリガーしません。
- 非 CMDB クラスに関連付けられている CMDB クラスを非アクティブ化します。
- 関連付けられている非 CMDB クラスの自動非アクティブ化をトリガーします。
- 非 CMDB クラスを無効にしても、関連付けられた CMDB クラスには影響しません。
- 依存関係を持つクラスを非アクティブ化します (統合ハブ ETL に依存関係が存在する場合にのみ適用されます)。
- 非アクティブ化されたクラスと 1 つの依存関係を持つすべてのクラスの自動非アクティブ化をトリガーします。
クラスに複数の依存関係がある場合、依存するすべてのクラスを非アクティブ化した場合にのみ、そのクラスは自動的に非アクティブ化されます。
たとえば、ファイルシステムクラスが、コンピュータークラスとサーバークラスの両方と依存関係にあるシナリオなどです。コンピュータークラスを非アクティブ化しても、ファイルシステムクラスは自動的に非アクティブ化されません。サーバークラスも非アクティブ化した場合のみ、ファイルシステムクラスは自動的に非アクティブ化されます。
- 条件付きクラスまたは条件付きクラス内のクラスマッピングを非アクティブ化します。
- 条件付きクラスを非アクティブ化またはアクティブ化すると、条件付きクラス内のすべての条件付きクラスのマッピングの自動非アクティブ化またはアクティブ化がトリガーされます。
条件付きクラス内のクラスマッピングの非アクティブ化:統合の実行中に非アクティブ化されたクラスが入力されないようにします。ただし、関連する「If」、「Else if」、または「Else」条件自体は、条件付きクラスの条件内で引き続き有効です。たとえば、次のクラスマッピングを非アクティブ化した場合:
[If] [operating_system] [contains] [Linux] の条件にさらに [Class] [is] [Linux Server]。
この場合、Linux Server クラスは入力されませんが、[If] [operating_system] [contains] [Linux] 条件は有効です。
CMDB クラスおよび属性へのデータ列のマッピング
ソースデータ列をマッピングする CMDB のターゲットクラスと属性を選択します。データ列を特定のターゲットクラスにマップすることも、特定のデータ値に応じてターゲットクラスが選択されるように条件を追加することもできます。
始める前に
このタスクについて
マッピングするデータ列は、変換されていないソースデータ列、または変換されたデータ列のいずれかになります。たとえば、データ列をコンピュータークラスおよびソフトウェアパッケージクラスに統合するには、それらのクラスをターゲットクラスとして選択し、データ列をそれらのクラスの特定の属性にマップします。
クラス、関係性、またはルックアップルールのマッピングを構成するときには、これらのアイテムは常に最初はアクティブとして設定されます。マッピングを非アクティブ化した結果の詳細については、「クラスマッピングの非アクティブ化」を参照してください。
手順
リレーションシップの追加
統合のために、ターゲット CMDB クラス間に存在する関係を追加します。
始める前に
- 関係に追加するクラスは、アクティブ化された状態である必要があります。
- 編集する基本関係または条件付き関係内の関係は、アクティブ化された状態である必要があります。
- 編集する条件付き関係内の関係内で、少なくとも 1 つの関係の条件がアクティブ化された状態である必要があります。そのようになっていない場合、[リレーションシップを編集] ボタンはグレー表示されます。
必要なロール:cmdb_inst_admin
このタスクについて
ネストされたデータとの関係を作成する場合、ネストされたデータから兄弟オブジェクトへの関係を作成することはできません。ネストされたデータのサンプルペイロードを例として使用する場合、インターフェイスとソフトウェアの間に関係を作成することはできません。
ITOM ヴィジビリティ (利用可能な場合) は、拡張ディスカバリーパターンを使用して CI 関係を特定し、ベースシステムの提案された関係テーブルに追加します。該当する場合は、[提案されたリレーションシップ] テーブルを使用して、共通サービスデータモデル (CSDM) 標準に準拠する関係を選択します。
手順
マッピング結果のプレビュー
サンプル統合の結果をプレビューします。
始める前に
このタスクについて
サマリーページで詳細を表示した後、任意のステップに戻って調整を行い、統合を再実行できます。
手順
統合スケジュールの提供
この ETL 変換マップを使用して、CMDB にデータをインポートするスケジュールを設定します。
始める前に
手順
統合ハブ ETL の変換タイプ
統合ハブ ETL のさまざまな変換を使用して、CMDB にマッピングするためのソースデータを変換して準備します。
CMDB 共通統合ストアアプリからの変換は、統合ハブ ETL でも利用できます。
連結
入力フィールドの値を単一の文字列に組み合わせ、オプションの joining_string フィールドで結合します。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_concat_operation |
| 入力フィールド | source_sys_rte_eb_fields |
| 出力フィールド | target_sys_rte_eb_field |
| 追加フィールド | joining_string (オプション) |
| 例 | |
|---|---|
| 入力 | 「input_1」、「input_2」、「input_3」 |
| 追加フィールド | joining_string =「,」 |
| 結果 | 「input_1、input_2、input_3」 |
ブール値に変換
受信した値をブール値に変換します。「true」と「1」の値は「true」 (大文字と小文字を区別しない) に変換され、その他の値は「false」に変換されます。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_to_boolean_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
- 次の入力はすべて「true」を返します。
- true
- 1
- 次の入力はすべて「false」を返します。
- 「input_1」
- 「」
- 0
- 11
日付に変換
受信値に date_format を適用して、受信値の GlideDateTime 値への変換を試みます。date_format が正しくない場合、GlideDateTime を使用して直接変換を試みます。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_to_date_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field まったく解析できない場合は空の値を返します。 |
| 追加フィールド | date_format (Java 簡易日付形式) |
| 例 | |
|---|---|
| 入力 | 「2018/09/20 11:21:00 a.m. EST」 |
| 追加フィールド | date_format =「yyyy/MM/dd hh:mm:ss a z」 |
| 結果 | 「2018-09-20 16:21:00」 |
| 例 | |
|---|---|
| 入力 | 「2018/09/20 01:21:00 PM EST」 |
| 追加フィールド | date_format =「yyyy/MM/dd hh:mm:ss a z」 |
| 結果 | 「2018-09-20 18:21:00」 |
| 例 | |
|---|---|
| 入力 | 「09/20/18」 |
| 追加フィールド | date_format =「yyyy/MM/dd hh:mm:ss a z」 |
| 結果 | 「0018-09-20 00:00:00」 |
数値に変換
受信値を数値に変換します。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_to_numeric_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field 受信値が数値以外の場合、出力は空です。 |
| 例 | |
|---|---|
| 入力 | 1.23 |
| 結果 | 1.23 |
| 例 | |
|---|---|
| 入力 | 1.00 |
| 結果 | 1 |
| 例 | |
|---|---|
| 入力 | input_1 |
| 結果 | null |
| 例 | |
|---|---|
| 入力 | 2 |
| 結果 | null |
コピー
ソースフィールドの値をすべてのターゲットフィールドにコピーします。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_copy_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_fields |
| 追加フィールド | overwrite_existing_value (オプション、ブーリアン):true の場合、ターゲットフィールドの値が置換されます。それ以外の場合、空でない値は上書きされません。 |
最初の数値の抽出
ソースフィールドで最初に見つかった数値になるようにターゲットフィールドを設定します。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_extract_numeric_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
| 追加フィールド |
|
| 例 | |
|---|---|
| 入力 | 「100 mb」 |
| 結果 | 「100」 |
| 例 | |
|---|---|
| 入力 | 「100.123 mb」 |
| 結果 | 「100.123」 |
| 例 | |
|---|---|
| 入力 | 「100.123 mb」 |
| 追加フィールド | decimal_places = 2 |
| 結果 | 「100.12」 |
| 例 | |
|---|---|
| 入力 | 「100 mb」 |
| 追加フィールド | decimal_places = 2 |
| 結果 | 「100.00」 |
| 例 | |
|---|---|
| 入力 | 「100 mb」 |
| 追加フィールド | remainder_target_field = <フィールド> |
| 結果 | 「100」と <フィールド> = 「mb」 |
Glide ルックアップ
target_table でデータベースのルックアップを実行します。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_glide_lookup_operation |
| 入力フィールド | source_sys_rte_eb_fields |
| 出力フィールド | target_sys_rte_eb_fields |
| 追加フィールド |
|
| 例 | |
|---|---|
| 入力 |
|
| 追加フィールド |
|
| 結果 | 出力フィールド 1:25ab9c4d0a0a0bb300f7dabdc0ca7c1c |
最小/最大
ターゲットフィールドを、すべての入力フィールドの値の最大値または最小値に設定します。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_min_max_operation |
| 入力フィールド | source_sys_rte_eb_fields |
| 出力フィールド | target_sys_rte_eb_field |
| 追加フィールド |
|
| 例 | |
|---|---|
| 入力 | 「2」、「-1」、「0」 |
| 追加フィールド |
|
| 結果 | 「2」 |
| 例 | |
|---|---|
| 入力 | 「a」、「b」 |
| 追加フィールド |
|
| 結果 | 「b」 |
| 例 | |
|---|---|
| 入力 | 「2」、「-1」、「0」 |
| 追加フィールド |
|
| 結果 | 「-1」 |
| 例 | |
|---|---|
| 入力 | 「a」、「b」 |
| 追加フィールド |
|
| 結果 | 「a」 |
複数入力スクリプト
複数の入力があるスクリプトを実行し、そのスクリプトの target_field == 出力を設定します。
各ソースフィールドは、「batch」変数内で JavaScript フィールドとして使用できます。JavaScript フィールドの名前は、エンティティフィールドのフィールド属性です (sys_rte_eb_field.field ではなく sys_rte_eb_field.name を参照します)。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_multi_in_script_operation |
| 入力フィールド | source_sys_rte_eb_fields |
| 出力フィールド | target_sys_rte_eb_field |
| 追加フィールド |
|
| レコード | record_type | operating_system | record_with_os |
|---|---|---|---|
| 1 | コンピューター | Windows XP | |
| 2 | コンピューター | Linux | |
| 3 | コンピューター | Windows XP |
(function(batch, output) {
for (var i = 0; i < batch.length; i++) {
// batch[i] is the unique set of inputs/individual record
// batch[i].<field> gives access to the field value
var in0 = gs.nil(batch[i].record_type) ? '' : batch[i].record_type;
var in1 = gs.nil(batch[i].operating_system) ? '' : batch[i].operating_system;
// output[i] is the output for the specific combination of inputs/individual record
output[i] = in0 + "_" + in1;
}
}
})(batch, output); /* Example Script
// In this example the script input fields are 'input_field_1', 'input_field_2' - replace these with the fields used as script inputs // There is a static field 'input' that has all the input field values concatenated with a '|' (function(batch, output) {
for (var i = 0; i < batch.length; i++) {
//step1: access the input variables
var a = batch[i].input_field_1; //Value of the first source field.
var b = batch[i].input_field_2; //Value of the second source field.
//step2: Your script/code goes here.
var c = a + b;
//step3: set the output for each elements
output[i] = b;
}
})(batch, output);
*/Rexeg 置換
指定された match_regex に一致する受信文字列の各サブ文字列を、指定された replacement_regex 文字列値で置き換えます。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_regex_replace_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
| 追加フィールド |
|
| 例 | |
|---|---|
| 入力 | 「String&With(Special)$Characters」 |
| 追加フィールド |
|
| 結果 | 「特殊文字を含む文字列」 |
置換
指定された match_string に一致する受信文字列の各サブ文字列を、replacement_string 文字列値で置き換えます。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_replace_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
| 追加フィールド |
|
| 例 | |
|---|---|
| 入力 | 「元の文字列」 |
| 追加フィールド |
|
| 結果 | 「置換文字列」 |
数値を丸める
数字を四捨五入して最も近い整数にします。数値以外の値は切り捨てられます。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_round_dumeric_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
| 例 | |
|---|---|
| 入力 | 「1.5」 |
| 結果 | 「2」 |
| 例 | |
|---|---|
| 入力 | 「1.4」 |
| 結果 | 「1」 |
| 例 | |
|---|---|
| 入力 | 「文字列です」 |
| 結果 | 「」 |
スクリプト
入力があるスクリプトを実行し、そのスクリプトの target_field == 出力を設定します。
この変換は複数入力スクリプト変換に置き換えられ、既存の構成との下位互換性のために含まれています。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_script_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
| 追加フィールド |
|
(function(batch, output) {
for (var i = 0; i < batch.length; i++) {
// batch[i] is the unique set of inputs/individual record
// batch[i].input gives access to the field value
var in0 = gs.nil(batch[i].input) ? '' : batch[i].input;
// output[i] is the output for the specific combination of inputs/individual record
output[i] = in0 + " modified by script”;
}
}
})(batch, output); /* Example Script
(function(batch, output) {
for (var i = 0; i < batch.length; i++) {
//step1: access the input variables
var a = batch[i].input; //Value of the source field.
//step2: Your script/code goes here.
var b = a + 1;
//step3: set the output for each elements
output[i] = b;
}
})(batch, output);
*/ セット
ターゲットフィールドの値を set_value で指定された文字列に設定します。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_set_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
| 追加フィールド |
|
スプリット
splitting_string のソースフィールドの値を分割し、分割の結果の各アイテムを target_sys_rte_eb_fields に順番に割り当てます。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_split_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_fields |
| 追加フィールド | splitting_string (文字列) |
| 例 | |
|---|---|
| 入力 | target_sys_rte_eb_fields {target1,target2,target3} に対する「value1||value2||value3」 |
| 追加フィールド | splitting_string =「||」 |
| 結果 | target1:value1、target2:value2、target3:value3 |
| 例 | |
|---|---|
| 入力 | target_sys_rte_eb_fields {target1} に対する「value1||value2||value3」 |
| 追加フィールド | splitting_string =「||」 |
| 結果 | target1:value1 |
| 例 | |
|---|---|
| 入力 | target_sys_rte_eb_fields {target1,target2,target3} に対する「value1」 |
| 追加フィールド | splitting_string =「||」 |
| 結果 | target1:value1、target2:<null>、target3:<null> |
トリミング
source_sys_rte_eb_field 値から先頭と末尾の空白を削除し、結果を target_sys_rte_eb_field に割り当てます。この変換は、Java String.trim() と同等です。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_trim_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
| 例 | |
|---|---|
| 入力 | 「value 1」 |
| 結果 | 「value 1」 |
大文字
source_sys_rte_eb_field 値を大文字にして、結果を target_sys_rte_eb_field に割り当てます。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_upper_case_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
| 例 | |
|---|---|
| 入力 | 「value1」 |
| 結果 | 「VALUE1」 |
大文字トリミング
大文字変換とトリミング変換の両方を組み合わせます。
| 詳細 | |
|---|---|
| テーブル | sys_rte_eb_upper_case_trim_operation |
| 入力フィールド | source_sys_rte_eb_field |
| 出力フィールド | target_sys_rte_eb_field |
| 例 | |
|---|---|
| 入力 | 「value1」 |
| 結果 | 「VALUE1」 |