SLT 복제와 SAP Connector 구성
SAP SLT는 데이터베이스 트리거로 변경을 포착하여 원천 시스템의 데이터를 복제합니다. Foundry 동기화가 SAP 객체를 처음 읽으면 전체 적재를 수행하고 이후에는 queue의 변경분을 읽습니다. 전체 적재만 반복하는 스냅샷 방식도 구성할 수 있습니다. SLT queue의 정리는 SLT가 관리합니다.
SLT 구성에는 전용 context인 queue alias를 만듭니다. 이 alias와 원천 시스템으로 향하는 RFC destination 이름은 서로 다른 설정입니다.
현재 OData 경로
Connector 2.34 (SP34) 이상은 ODP 기반 추출에 OData를 사용할 수 있으며 SLT 시스템에 PALODATA 구성 요소와 SAP_BASIS 7.50 SP09 이상이 필요합니다.
SAP는 비SAP 애플리케이션의 ODP-RFC 사용을 제한합니다. 이전 RFC 경로를 계속 사용할 수 있다고 가정하지 말고 SAP SLT 소스의 OData 전환 및 보안 패치 조건을 적용합니다. OData에서의 테이블당 활성 구독 한도도 Foundry 소스 조건을 따릅니다.
OData 경로에서는 다음 SAP Notes를 읽고 해당하는 조치를 적용합니다.
| SAP Note | 대상 문제 |
|---|---|
2854759 | OData V2 추출의 날짜 필드 처리 |
2878969 | ODP OData function import 이름 잘림 |
3062232 | Pointer의 마지막 skiptoken에 deltatoken이 없는 경우 |
3023446 | OData V2 delta 요청에서 odata.maxpagesize 무시 |
2888122 | 원천에서 최신 delta 요청을 삭제하여 이후 delta가 불가능한 경우 |
이전 ODP 직접 경로의 구성 요건
SP33 이하 구성을 이해하거나 전환할 때에는 다음 기존 요건을 구분합니다. 이 요건을 만족하는 것만으로 현재 ODP-RFC 사용이 허용되는 것은 아닙니다.
- Connector 설치의
SAP_BASIS 7.4 SP14이상 - SLT와 원천의
DMIS 2011_1_730 SP15이상 - 모든 Mass Transfer ID(MTID)에 1:N 복제를 허용하는 SLT 설정
SLT에 SAP Notes 1660374(fetch 대기 제한)와 2215583(ODQ 데이터 이동 오류)를 적용합니다. 2697016(서로 다른 trigger 설정), 2787584(LTRC 권한), 3032108(1:N 복제 지원)도 확인합니다.
이전 DMIS에서는 한 테이블에 최대 4개 소비자의 1:4 등록 제약이 있을 수 있습니다. DMIS 2018 SP4부터 서버의 새 CDC 기능에는 이 소비자 수 제한이 없습니다. 이 서버 기능과 Foundry OData 동기화의 단일 활성 구독 제약은 별개입니다.
자원 준비
복제 전에 데이터베이스 공간과 SAP 작업 프로세스의 용량을 정합니다. SM50에서 SLT 서버의 가용 background 및 dialog process를 확인합니다. Connector가 다른 애플리케이션 서버에 있으면 그 서버도 확인해야 합니다. 가용 프로세스가 없으면 전송이 실패합니다.
원천 RFC 연결
SLT가 원천 ERP에서 읽도록 RFC destination을 만듭니다. 다음 설정에서 Source RFC Destination은 이 원천 방향의 연결 이름을 사용합니다.
SLT 구성 만들기
설치 후 마법사 또는 LTRC 중 하나를 사용합니다. 두 방법을 모두 수행할 필요는 없으며 설치 후 마법사를 권장합니다.
설치 후 마법사
/n/PALANTIR/POST_INST에서 7단계 Create SLT configuration만 활성화하여 실행합니다.
| 설정 | 의미 |
|---|---|
| Context Name | 고유 구성 이름 |
| Context Description | LTRC와 Foundry에 표시할 설명 |
| Data Transfer Jobs | 데이터 전송 작업 수 |
| Initial Load Jobs | 초기 적재 작업 수 |
| Calculation Jobs | 초기 적재 범위 계산 작업 수 |
| Authorization Group | 기본 지정 없음 |
| Source RFC Destination | 원천 시스템의 RFC destination |
| Read from Single Client | 단일 client의 데이터만 읽을 때 사용 |
| Allow Multiple Usage | 여러 구독을 허용할 때 사용 |
LTRC에서 직접 구성
- LTRC에서 새 구성을 만들고 General Data의 이름과 설명을 입력합니다.
- Source System에서 RFC Connection과 앞서 만든 원천 RFC destination을 선택합니다.
- Allow Multiple Usage를 활성화합니다. 이 값은 생성 뒤 변경할 수 없고 나중에 활성화하려면 구성을 삭제하고 다시 만들어야 합니다. 단일 구독 사용에는 영향을 주지 않으므로 처음부터 켜는 것을 권장합니다.
- 운영에서는 Read from Single Client를 켭니다. Client 번호는 RFC 연결에 지정한 값을 사용합니다. 기존 SLT의 다른 구성과 trigger 옵션이 일치해야 하므로 SAP Note
2372636도 확인합니다. - Target System에서 RFC Connection을 선택하고 Scenario를 Operational Data Provisioning(ODP)으로 정합니다. 높은 SAP_BASIS SP에서는 Other 아래에 이 시나리오가 있을 수 있습니다.
- Target RFC Destination은
NONE으로, Queue Alias는 원천 SAP SID 등을 구분할 이름으로 정합니다. 이 alias가 Foundry 동기화의 context가 됩니다. - Data Transfer Settings에서 전송, 초기 적재와 계산 작업 수를 정하고 구성을 검토하여 생성합니다.
- LTRC의 해당 구성에서 Expert Functions를 열고 ODP용 BAdI implementation이 활성화되어 있는지 확인합니다. 활성화되지 않으면 ODP가 정상 동작하지 않습니다.
- SA38에서
SAP_RSADMIN_MAINTAIN을 실행하여 SAP Note1660374에 따라RODPS_FETCH_TIMEOUT을 초 단위로 설정합니다.
Connector와 SLT가 서로 다른 서버인 경우
요건을 충족하는 다른 SAP 인스턴스에 Connector를 설치했다면 Connector와 SLT 사이의 RFC도 필요합니다. 해당 연결을 만든 뒤 /n/PALANTIR/PARAM에 다음 값을 지정합니다.
| Param ID | Param Name | Param Value |
|---|---|---|
SLT | RFC_CONFIGURATION | SLT 서버로 연결하는 RFC 이름. SLT_SERVER_RFC는 예시입니다. |
관련 값이 구성 테이블에 없을 때의 기본은 timestamp OFF, fetchOption XML, pageSize 50000입니다.
큰 초기 적재의 저장 공간
ODP는 원천 데이터를 SLT의 ODQDATA_F에 준비합니다. 이후 Connector가 페이지 데이터를 /PALANTIR/PAG_01, /PALANTIR/PAG_02에 만듭니다. 모든 페이지를 Foundry로 성공적으로 전달한 뒤 close 요청으로 /PALANTIR/PAG*의 해당 항목을 정리합니다.
큰 과거 데이터나 전체 테이블을 초기 수집할 때에는 ODQ와 페이지 테이블이 차지할 공간을 고려합니다. 공간이 부족하면 SLT 복제와 Foundry 전달이 실패할 수 있습니다.
자료형 관련 보정
날짜와 시간 길이
일부 이전 SAP_BASIS SP14에서는 DATS와 TIMS를 16자리 길이로 보고하는 문제가 있었습니다. 실제 DATS는 YYYYMMDD의 8자리, TIMS는 HHMMSS의 6자리입니다. 관련 SAP 수정 전 보정이 필요하면 다음 값을 사용합니다.
| Param ID | Param Name | Param Value |
|---|---|---|
| SLT | SLT_DATA_DATS | 8 |
| SLT | SLT_DATA_TIMS | 6 |
QUAN 소수 자릿수
QUAN은 기본적으로 소수 세 자리로 취급하지만 실제 테이블은 다른 자릿수를 사용할 수 있습니다. 세 자리로 강제 해석하는 문제를 피하려면 자료형 보정을 설정합니다.
| Param ID | Param Name | Param Value |
|---|---|---|
| SLT | SLT_DTYPE_QUAN | DEC |
이 매개변수는 해당 자료형을 어떤 형식으로 해석할지 정하는 것이며 업무 데이터의 실제 자릿수와 결과를 확인해야 합니다.