ETL 변환 맵 생성
통합 허브 ETL은 특정 통합을 위한 ETL 변환 맵을 작성하는 데 필요한 모든 작업을 완료하는 과정을 안내하는 안내 설정을 제공합니다.
안내 설정
안내 설정은 모든 작업을 올바른 순서로 구성하고, 작업 완료를 추적하고, 작업 의존성을 적용합니다. 다른 작업의 완료 여부에 따라 달라지는 작업은 도구를 단계별로 실행하고 작업을 완료할 때 활성화되거나 비활성화됩니다.
ETL 변환 맵 도우미 페이지의 안내 설정을 사용하여 다음 작업을 완료합니다.
소스 데이터 임포트 및 기본 상세 정보 지정
CMDB에 통합하려는 데이터의 소스와 같은 통합에 대한 기본 상세 정보를 제공하고 소스 데이터를 임포트합니다.
시작하기 전에
ETL 변환 맵에 대해 선택하려는 데이터 소스는 현재 세션에서 사용 중인 것과 동일한 애플리케이션 범위에 있어야 합니다.
ETL 변환 맵을 열면 기본적으로 맵의 유효성이 검사되지 않습니다. 시스템 속성 [sys_properties] 테이블에 시스템 속성을 추가한 sn_int_studio.validation.enabled 다음 이를 true로 설정하여 이 확인 단계를 사용하도록 설정할 수 있습니다. 유효성 검사가 완료되면 유효성 검사 오류를 처리하는 방법을 선택합니다.
필요한 역할: cmdb_inst_admin
프로시저
데이터 미리 보기 및 준비
CMDB에 통합될 원시 소스 데이터의 샘플 기록을 검토합니다. 필요한 경우 대상 클래스 및 속성에 맞게 데이터를 변환하고 준비합니다.
시작하기 전에
샘플 데이터의 기록 수는 기본적으로 100으로 설정된 시스템 속성에 sn_int_studio.preview.size의해 전역적으로 결정됩니다. 통합 허브 ETL이 처리할 수 있는 샘플 데이터의 최대 기록 수는 10,000개입니다. 해당 속성을 10,000개 한도 이상으로 설정하면 통합 허브 ETL은 최대 10,000개의 기록만 처리하고 그 효과에 대한 메시지가 표시됩니다.
통합 허브 ETL v3.2부터는 맵당 임포트 소스 데이터 및 기본 상세 정보 제공 양식에서 미리 보기 크기 재정의 필드를 설정하여 속성 값을 sn_int_studio.preview.size 재정의할 수 있습니다.
중첩된 페이로드에서 중첩된 데이터를 처리하려면 Data in single column(단일 열의 데이터 ) 옵션을 사용하여 해당 데이터 소스를 설정해야 합니다.
필요한 역할: cmdb_inst_admin
이 태스크 정보
중첩된 데이터의 열은 나머지 데이터와 함께 표시되며 데이터 열 헤더에는 Nested Objects 표기법이 표시됩니다. 객체당 중첩된 데이터 항목 수는 중첩된 데이터의 더 깊은 수준으로 드릴할 수 있는 링크와 함께 나타납니다. 중첩된 데이터의 데이터 구조를 별도의 패널에 표시하려면 데이터 구조 표시 옵션을 활성화합니다.
데이터 구조 패널에는 중첩된 데이터를 표시하는 두 가지 옵션이 있습니다.
- 트리: 개체별로 그룹화된 중첩 데이터로, 각 개체 노드는 원본 데이터의 레코드 항목에 해당합니다. 객체 노드를 확장하여 기록에 대해 중첩된 모든 데이터를 표시합니다.
- 컬렉션: 최상위 객체(기본적으로)로 그룹화된 다음 소프트웨어와 같은 중첩된 데이터 항목으로 그룹화된 중첩된 데이터입니다. 소프트웨어와 같은 노드를 확장하여 각 컴퓨터에 설치된 소프트웨어를 표시합니다.
중첩 페이로드 데이터 작업에 대한 데모를 보려면 ServiceNow YouTube 채널에서 통합 허브 - 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'가 포함되지 않음)의 경우 '서버'가 대상 클래스로 선택됩니다.
연결된 클래스
연결된 클래스를 사용하면 대상 비 CMDB 테이블과 연결할 CMDB 클래스를 선택할 수 있습니다. 비-CMDB 테이블이 IRE 처리하도록 구성되지 않은 경우 IRE 처리에 연관된 클래스를 설정해야 합니다. IRE 처리를 위해 지원되고 구성된 비-CMDB 테이블의 경우, 연관된 클래스 설정은 선택 사항입니다. 자세한 내용은 을 참조하십시오 비 CMDB 테이블에 대한 IRE 지원 .
소프트웨어 인스턴스가 비-CMDB 클래스이지만 연결된 IRE 규칙이 없습니다. 따라서 유타 이전에 우리가 그것에 대해 말한 것은 여전히 유효합니다. 그러나 IRE 규칙이 있는 비 CMDB 클래스의 경우 연결이 필수는 아닙니다. 예를 들어, "매핑할 대상 클래스가 CMDB 클래스에 대한 참조가 있는 비 CMDB 클래스인 경우 비 CMDB 대상 클래스와 연결할 CMDB 클래스를 선택해야 합니다." 비 CMDB 클래스와 IRE 규칙 "반드시" 대신 그래야 합니다. "넌 할 수 있어". 예와 동일하며 IRE 규칙이 있는 비 CMDB에는 유효하지 않습니다.
매핑할 대상 클래스가 CMDB 클래스에 대한 참조가 있는 비-CMDB 클래스인 경우, 비-CMDB 대상 클래스를 연결할 CMDB 클래스를 선택해야 합니다. 비 CMDB 클래스는 구성 항목 [cmdb_ci] 클래스를 확장하지 않는 일련 번호[cmdb_serial_number]와 같은 클래스를 나타냅니다. 관련 항목 [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에 종속 관계가 있는 경우에만 적용됨):
- 비활성화된 클래스와 단일 종속 관계가 있는 모든 클래스의 자동 비활성화를 트리거합니다.
클래스에 여러 종속 관계가 있는 경우에는 종속 클래스를 모두 비활성화하는 경우에만 자동으로 비활성화됩니다.
예를 들어 파일 시스템 클래스가 컴퓨터 및 서버 클래스와 종속 관계를 갖는 시나리오입니다. Computer 클래스를 비활성화하면 File System 클래스가 자동으로 비활성화되지 않습니다. Server 클래스도 비활성화하는 경우에만 File System 클래스가 자동으로 비활성화됩니다.
- 조건부 클래스 또는 조건부 클래스 내의 클래스 매핑을 비활성화합니다.
- 조건부 클래스를 비활성화하거나 활성화하면 조건부 클래스 내의 모든 조건부 클래스 매핑이 자동으로 비활성화되거나 활성화됩니다.
조건부 클래스 내에서 클래스 매핑 비활성화: 통합 실행 중에 비활성화된 클래스가 채워지지 않도록 합니다. 그러나 연결된 'If', 'Else if' 또는 'Else' 조건 자체는 조건부 클래스의 조건 내에서 계속 적용됩니다. 예를 들어, 다음 클래스 매핑을 비활성화하는 경우:
[만약에] [operating_system] [포함] [리눅스] 그렇다면 [Class] [is] [Linux Server]입니다.
그러면 Linux Server 클래스는 채워지지 않지만 [If] [operating_system] [contains] [Linux] 조건이 적용됩니다.
데이터 열을 CMDB 클래스 및 속성에 매핑
CMDB에서 소스 데이터 열을 매핑할 대상 클래스와 속성을 선택합니다. 데이터 열을 특정 대상 클래스에 매핑하거나 대상 클래스의 선택이 특정 데이터 값에 따라 달라지도록 조건을 추가할 수 있습니다.
시작하기 전에
이 태스크 정보
매핑하는 데이터 열은 변환되지 않은 원본 데이터 열 또는 변환된 데이터 열일 수 있습니다. 예를 들어 데이터 열을 컴퓨터 및 소프트웨어 패키지 클래스에 통합하려면 해당 클래스를 대상 클래스로 선택한 다음 데이터 열을 해당 클래스의 특정 특성에 매핑합니다.
클래스, 관계 또는 조회 규칙에 대한 매핑을 구성할 때 이러한 항목은 항상 처음에 활성화됨으로 설정됩니다. 매핑 비활성화의 결과에 대한 자세한 내용은 클래스 매핑 비활성화의 내용을 참조하십시오.
프로시저
관계 추가
통합을 위해 대상 CMDB 클래스 사이에 존재하는 관계를 추가합니다.
시작하기 전에
- 관계에 추가하려는 클래스는 활성화된 상태여야 합니다.
- 편집하려는 기본 관계 또는 조건부 관계 내의 관계는 활성화된 상태여야 합니다.
- 편집하려는 조건부 관계에서는 하나 이상의 관계 조건이 활성화됨 상태여야 합니다. 그렇지 않으면 관계 편집 단추가 회색으로 표시됩니다.
필요한 역할: 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'를 반환합니다.
- 예
- 1
- 다음 입력은 모두 'false'를 반환합니다.
- "input_1"
- “”
- 0
- 11
날짜로 변환
를 date_format 수신 값에 적용하여 수신 값을 GlideDateTime 값으로 변환하려고 시도합니다. 가 date_format 잘못된 경우 using 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 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메가바이트' |
| 결과 | "100" |
| 예제 | |
|---|---|
| 입력 | "100.123메가바이트" |
| 결과 | “100.123" |
| 예제 | |
|---|---|
| 입력 | "100.123메가바이트" |
| 추가 필드 | decimal_places = 2 |
| 결과 | “100.12” |
| 예제 | |
|---|---|
| 입력 | '100메가바이트' |
| 추가 필드 | decimal_places = 2 |
| 결과 | “100.00” |
| 예제 | |
|---|---|
| 입력 | '100메가바이트' |
| 추가 필드 | remainder_target_field = <필드> |
| 결과 | "100" 및 <field> = "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" |
| 추가 필드 |
|
| 결과 | "비" |
| 예제 | |
|---|---|
| 입력 | “2”, “-1”, “0” |
| 추가 필드 |
|
| 결과 | “-1” |
| 예제 | |
|---|---|
| 입력 | "a", "b" |
| 추가 필드 |
|
| 결과 | "ᅡ" |
다중 입력 스크립트
여러 입력이 있는 스크립트를 실행하여 해당 스크립트의 == 출력을 설정합니다 target_field .
각 소스 필드는 'batch' 변수 내에서 JavScript 필드로 사용할 수 있습니다. JavaScript 필드의 이름은 엔터티 필드의 필드 속성입니다( sys_rte_eb_field.field, not 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(특수)$Characters" |
| 추가 필드 |
|
| 결과 | "특수 문자가 있는 문자열" |
교체
지정된 match_string날짜 replacement_string 와 일치하는 수신 문자열의 각 하위 문자열을 문자열 값으로 바꿉니다.
| 세부사항 | |
|---|---|
| 테이블 | sys_rte_eb_replace_operation |
| 입력 필드 | source_sys_rte_eb_field |
| 출력 필드 | target_sys_rte_eb_field |
| 추가 필드 |
|
| 예제 | |
|---|---|
| 입력 | "원래 문자열" |
| 추가 필드 |
|
| 결과 | "교체 문자열" |
반올림 숫자
숫자 값을 가장 가까운 정수로 반올림합니다. 숫자가 아닌 숫자는 잘립니다.
| 세부사항 | |
|---|---|
| 테이블 | sys_rte_eb_round_numeric_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 (문자열) |
| 예제 | |
|---|---|
| 입력 | "value1||값2||value3", target_sys_rte_eb_fields {target1,target2,target3} |
| 추가 필드 | splitting_string = ”||” |
| 결과 | 대상1 : 값1, 대상2 : 값2, 대상3 : 값3 |
| 예제 | |
|---|---|
| 입력 | "value1||값2||value3", {target1} 포함 target_sys_rte_eb_fields |
| 추가 필드 | splitting_string = ”||” |
| 결과 | 대상1 : 값1 |
| 예제 | |
|---|---|
| 입력 | {target1,target2,target3}이 있는 target_sys_rte_eb_fields "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 |
| 예제 | |
|---|---|
| 입력 | " 값 1 " |
| 결과 | " 값 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 |
| 예제 | |
|---|---|
| 입력 | " 값 1 " |
| 결과 | "값1" |
대문자 트리밍
대문자 및 트리밍 변환을 모두 결합합니다.
| 세부사항 | |
|---|---|
| 테이블 | sys_rte_eb_upper_case_trim_operation |
| 입력 필드 | source_sys_rte_eb_field |
| 출력 필드 | target_sys_rte_eb_field |
| 예제 | |
|---|---|
| 입력 | " 값 1 " |
| 결과 | "값1" |