변환 이벤트 스크립트가 포함된 매핑

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 10분
  • 변환 이벤트는 임포트 세트 테이블을 테이블로 변환하는 프로세스 중에 발생합니다.

    이러한 이벤트는 모든 유형의 매핑 사양에서 변환 동작을 수정합니다. 변환 이벤트 스크립트는 변환의 다양한 단계에서 이벤트 처리를 수정합니다.

    예를 들어, 매핑 지원 유틸리티를 사용하여 정의된 매핑 작업의 처리는 이벤트 스크립트를 사용하여 조작할 수 있습니다. 이러한 이벤트 중에 액세스할 수 있는 임포트 세트 JavaScript 객체는 여러 가지가 있습니다. 이러한 개체는 테이블 또는 테이블의 일부를 나타냅니다. 이러한 개체가 참조하는 내용은 참조되는 이벤트의 컨텍스트에 따라 달라집니다.

    다음은 모든 변환 이벤트와 해당 상황별 변수의 테이블입니다.
    주:
    임포트 로그를 보려면 속성을 true로 설정합니다 glide.importlog.log_to_table . 자세한 내용은 임포트 세트 속성 문서를 참조하십시오.
    표 1. 이벤트 및 해당 상황별 변수 변환
    이벤트 이름 이벤트 매개변수
    onStart

    시기: onStart 이벤트 스크립트는 데이터 행을 읽기 전에 임포트 실행 시작 시 처리됩니다.

    표 2. 임포트 세트 onStart 이벤트에서 참조할 수 있는 JS 객체 및 해당 컨텍스트
    임포트 세트 JS 객체 유형 onStart 임포트 세트 이벤트의 컨텍스트
    소스 GlideRecord 소스 테이블의 첫 번째 행은 행을 읽지 않았기 때문에 아직 데이터가 없습니다.
    import_set GlideRecord 현재 변환 중인 임포트 세트입니다.
    GlideTransformMap 현재 변환 맵 기록에 대한 읽기 전용 정보입니다.
    log 함수 현재 임포트 실행에 대한 로그 객체입니다. 예를 들면 log.info(...), log.warn(...), log.error(...)와 같습니다.
    주:
    임포트 로그를 보려면 속성을 true로 설정합니다 glide.importlog.log_to_table . 자세한 내용은 임포트 세트 속성 문서를 참조하십시오.
    ignore 부울 true로 설정하면 전체 변환이 중지되고 추가 처리가 발생하지 않습니다.
    오류 부울 true로 설정하면 오류 메시지와 함께 전체 변환을 중지하는 ignore 플래그와 동일한 효과가 있습니다.

    예제:

    var info = "Starting Import Set Transformation Mapping operation using Data source, " 
    + map.table_source + " and Transform Map " + map.name + " on import set " + import_set.number;
    log.info( info ); 
    
    onComplete

    시기: 모든 데이터 행을 읽고 변환한 후 임포트 실행이 끝날 때 onComplete 이벤트 스크립트가 처리됩니다.

    표 3. 임포트 세트 참조가 가능한 JS 객체 및 onComplete 이벤트에서 해당 컨텍스트
    임포트 세트 JS 객체 유형 onComplete 임포트 세트 이벤트의 컨텍스트
    소스 GlideRecord 소스 임포트 세트 테이블의 마지막 행입니다.
    대상 GlideRecord 대상 테이블의 마지막 행입니다.
    import_set GlideRecord 현재 변환 중인 임포트 세트입니다.
    GlideTransformMap 현재 변환 맵 기록에 대한 읽기 전용 정보입니다.
    log 함수 현재 임포트 실행에 대한 로그 객체입니다. 예를 들면 log.info(...), log.warn(...), log.error(...)와 같습니다.
    주:
    임포트 로그를 보려면 속성을 true로 설정합니다 glide.importlog.log_to_table . 자세한 내용은 임포트 세트 속성 문서를 참조하십시오.
    오류 부울 예로 설정하면 현재 임포트 세트 상태가 완료된 후 오류로 표시됩니다.

    예제:

    // Create a myimport_completed event that can be reacted by an email notification or script action
    // (there is already an import.finished event that the system will create at the end of an import)
    var e = new GlideEvent("myimport_completed", import_set.sys_id, map.sys_id, "");
    e.insert();
    onBefore

    시기: 소스 행이 대상 행으로 변환되기 전에 행 변환 시작 시 onBefore 이벤트 스크립트가 처리됩니다.

    표 4. 임포트 세트 onBefore 이벤트에서 참조할 수 있는 JS 객체 및 해당 컨텍스트
    임포트 세트 JS 객체 유형 onBefore 임포트 세트 이벤트의 컨텍스트
    소스 GlideRecord 현재 처리 중인 소스 테이블의 행입니다.
    대상 GlideRecord 현재 처리 중인 대상 테이블의 행입니다.
    import_set GlideRecord 현재 변환 중인 임포트 세트입니다.
    GlideTransformMap 현재 변환 맵 기록에 대한 읽기 전용 정보입니다.
    log 함수 현재 임포트 실행에 대한 로그 객체입니다. 예를 들면 log.info(...), log.warn(...), log.error(...)와 같습니다.
    주:
    임포트 로그를 보려면 속성을 true로 설정합니다 glide.importlog.log_to_table . 자세한 내용은 임포트 세트 속성 문서를 참조하십시오.
    작업 문자열 작업은 현재 대상 행이 생성 또는 업데이트되는지 여부를 나타내는 "삽입" 또는 "업데이트" 값을 반환합니다.
    ignore 부울 true로 설정하면 현재 행 변환을 건너뛰고 나머지 행이 처리됩니다.

    onAfter 스크립트를 정의한 경우 무시 플래그가 예로 설정된 경우에도 현재 행에 대해 onAfter 스크립트가 실행됩니다.

    status_message 문자열 <status_message> XML 응답에서 보낼 사용자 지정 메시지를 정의합니다.
    오류 부울 예로 설정하면 현재 임포트 세트에 대한 전체 변환이 중단되고 오류 메시지가 표시됩니다.
    error_message 문자열 <error_message> XML 응답에서 보낼 사용자 지정 메시지를 정의합니다.

    예제:

    var name = source.u_name.toString();
    var info = "Before the row is transformed, " + name;
    log.info( info ); 
     
    // Make sure a company name has been provided
    var company = source.u_company.toString();
    if(company.length == 0 ){
    	ignore = true;
    	info ="No company name, row ignored! " + name;
    	log.info( info );
    }
    onAfter

    시기: onAfter 이벤트 스크립트는 소스 행이 대상 행으로 변환되고 저장된 후 행 변환이 끝날 때 처리됩니다.

    표 5. 임포트 세트 참조에 사용할 수 있는 JS 객체와 onAfter 이벤트에서 해당 컨텍스트
    임포트 세트 JS 객체 유형 onAfter 임포트 세트 이벤트의 컨텍스트
    소스 GlideRecord 현재 처리 중인 소스 테이블의 행입니다.
    대상 GlideRecord 현재 처리 중인 대상 테이블의 행입니다.
    import_set GlideRecord 현재 변환 중인 임포트 세트입니다.
    GlideTransformMap 현재 변환 맵 기록에 대한 읽기 전용 정보입니다.
    log 함수 현재 임포트 실행에 대한 로그 객체입니다. 예를 들면 log.info(...), log.warn(...), log.error(...)와 같습니다.
    주:
    임포트 로그를 보려면 속성을 true로 설정합니다 glide.importlog.log_to_table . 자세한 내용은 임포트 세트 속성 문서를 참조하십시오.
    작업 문자열 작업은 현재 대상 행이 생성 또는 업데이트되었는지 여부를 나타내는 "삽입" 또는 "업데이트" 값을 반환합니다.
    status_message 문자열 <status_message> XML 응답에서 보낼 사용자 지정 메시지를 정의합니다.
    오류 부울 예로 설정하면 현재 임포트 세트에 대한 전체 변환이 중단되고 오류 메시지가 표시됩니다.
    error_message 문자열 <error_message> XML 응답에서 보낼 사용자 지정 메시지를 정의합니다.

    예제:

    if(source.new=="true"){
      gs.include('Cart');var bundle =new GlideRecord('sc_cat_item');
      bundle.addQuery('name','CONTAINS','comp');
      bundle.query();
      if(bundle.next()){
         var new_comp_cart = new Cart();
         var cart = new Cart();
         var item = cart.addItem(bundle);
         var rc = cart.placeOrder();
         log.info(rc.number);}}
    onForeignInsert

    시기: onForeignInsert 이벤트 스크립트는 기록이 생성되기 전 참조된 관련 기록 생성이 시작될 때 처리됩니다.

    표 6. 참조에 사용할 수 있는 임포트 세트 JS 객체 및 onForeignInsert 이벤트에서 해당 컨텍스트
    임포트 세트 JS 객체 유형 onForeignInsert 임포트 세트 이벤트의 컨텍스트
    소스 GlideRecord 현재 처리 중인 소스 테이블의 행입니다.
    대상 GlideRecord 현재 처리 중인 대상 테이블의 행입니다.
    GlideTransformMap 현재 변환 맵 기록에 대한 읽기 전용 정보입니다.
    log 함수 현재 임포트 실행에 대한 로그 객체입니다. 예를 들면 log.info(...), log.warn(...), log.error(...)와 같습니다.
    주:
    임포트 로그를 보려면 속성을 true로 설정합니다 glide.importlog.log_to_table . 자세한 내용은 임포트 세트 속성 문서를 참조하십시오.
    작업 문자열 작업은 현재 대상 행이 생성 또는 업데이트되는지 여부를 나타내는 "삽입" 또는 "업데이트" 값을 반환합니다.
    이름 문자열 외부 기록이 생성될 대상 기록의 필드 이름으로 평가됩니다.
    문자열 외부 기록이 생성될 소스 기록의 표시 값으로 평가됩니다.
    ignore 부울 예로 설정된 경우, 새 외부 기록 또는 관련 기록의 생성을 무시합니다.
    오류 부울 true로 설정하면 전체 변환 행이 거부되고 이 행에 대한 데이터가 저장되지 않습니다.

    예제:

    //Create an event.
    var e = new GlideEvent("myimport_ForeignInsert", action, name, "");
    e.insert();
    onChoiceCreate

    시기: onChoiceCreate 이벤트 스크립트는 새 선택 값이 생성되기 전에 선택 값 생성 시작 시 처리됩니다.

    표 7. 임포트 세트 onChoiceCreate 이벤트에서 참조할 수 있는 JS 객체 및 해당 컨텍스트
    임포트 세트 JS 객체 유형 onChoiceCreate 임포트 세트 이벤트의 컨텍스트
    소스 GlideRecord 현재 처리 중인 소스 테이블의 행입니다.
    대상 GlideRecord 현재 처리 중인 대상 테이블의 행입니다.
    GlideTransformMap 현재 변환 맵 기록에 대한 읽기 전용 정보입니다.
    log 함수 현재 임포트 실행에 대한 로그 객체입니다. 예를 들면 log.info(...), log.warn(...), log.error(...)와 같습니다.
    주:
    임포트 로그를 보려면 속성을 true로 설정합니다 glide.importlog.log_to_table . 자세한 내용은 임포트 세트 속성 문서를 참조하십시오.
    작업 문자열 작업은 현재 대상 행이 생성 또는 업데이트되는지 여부를 나타내는 "삽입" 또는 "업데이트" 값을 반환합니다.
    이름 문자열 선택 값이 생성될 대상 기록의 필드 이름으로 평가됩니다.
    문자열 선택이 곧 생성될 소스 기록의 표시 값으로 평가됩니다.
    ignore 부울 예로 설정하면 선택 값 생성을 무시합니다.
    오류 부울 true로 설정하면 전체 변환 행이 거부되고 이 행에 대한 데이터가 저장되지 않습니다.

    예제:

    //Create an event
    var e = new GlideEvent("myimport_ChoiceCreate", action, value, "");
    e.insert();
    onReject

    시기: 외부 기록 또는 선택 항목 생성이 발생하는 동안 onReject 이벤트 스크립트가 처리되고 외부 기록 또는 선택이 거부되면 전체 변환 행이 저장되지 않습니다.

    표 8. 참조 가능한 임포트 세트 JS 객체 및 onError 이벤트에서 해당 컨텍스트
    임포트 세트 JS 객체 유형 onError 임포트 세트 이벤트의 컨텍스트
    소스 GlideRecord 현재 처리 중인 소스 테이블의 행입니다.
    대상 GlideRecord 현재 처리 중인 대상 테이블의 행입니다.
    GlideTransformMap 현재 변환 맵 기록에 대한 읽기 전용 정보입니다.
    작업 문자열 작업은 현재 대상 행이 생성 또는 업데이트되는지 여부를 나타내는 "삽입" 또는 "업데이트" 값을 반환합니다.
    log 함수 현재 임포트 실행에 대한 로그 객체입니다. 예를 들면 log.info(...), log.warn(...), log.error(...)와 같습니다.
    주:
    임포트 로그를 보려면 속성을 true로 설정합니다 glide.importlog.log_to_table . 자세한 내용은 임포트 세트 속성 문서를 참조하십시오.
    예제:
    //Create an event
    var e = new GlideEvent("myimport_onReject", action, "", "");
    e.insert();