---
sourceDocument: Xanadu AI 활성화
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/xanadu/intelligent-experiences

 Release :

    - xanadu

ft:locale :

    - ko-KR

ft:publication_title :

    - Xanadu AI 활성화

ft:clusterId :

    - platai

bundleId :

    - platai

workflow :

    - Platform


---

# 문서 분류 사용 사례 익스포트

# 문서 분류 사용 사례 익스포트 {#ariaid-title1}

* 릴리스 버전: Xanadu
* 
* 업데이트 날짜 2024년 09월 04일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 12분

문서 분류 사용 사례를 업데이트 세트에 추가하여 다른 ServiceNow® 인스턴스에서 사용할 수 있도록 익스포트합니다.

## 시작하기 전에

* 사용 사례를 익스포트하고 임포트할 때 두 인스턴스의 제품군 릴리스 및 설치 버전이 문서 인텔리전스 동일한지 확인합니다.
* 필요한 역할: sn_docintel.manager
{#export-document-classification-use-case__ul_odd_ny5_pcc}

## 이 태스크 정보

다음 단계에 따라 문서 분류 사용 사례를 필드, 필드 그룹, 통합, 플로우 및 모든 관련 ML(머신 러닝) 모델과 함께 업데이트 세트로 익스포트합니다. 그런 다음 업데이트 세트를 익스포트하여 다른 인스턴스에서 사용할 수 있습니다.

자세한 내용은 [System update sets](https://www.servicenow.com/docs/access?context=system-update-sets&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US) 문서를 참조하십시오.

## 프로시저

1. 다음으로 이동 모두시스템 정의스크립트 -- 백그라운드.
2. 아래 제공된 스크립트를 복사하여 스크립트 실행 상자에 붙여넣습니다.  

       var TASK_DEFINITION_TO_EXPORT_SYS_ID = "";
       var TASK_BATCH_SIZE = 50;

       var scopeToUpdateSet = {};
       var taskDefinitionName = "";

       function getTaskSuffix(taskBatchNum) {
          if (taskBatchNum != null) {
             return (
                " task " +
                ((taskBatchNum - 1) * TASK_BATCH_SIZE + 1) +
                "-" +
                taskBatchNum * TASK_BATCH_SIZE
             );
          } else {
             return "";
          }
       }

       function createUpdateSet(taskBatchNum) {
          var taskSuffix = getTaskSuffix(taskBatchNum);
          var globalNameSuffix = " global update set" + taskSuffix;
          var docintelNameSuffix = " docintel update set" + taskSuffix;
          var globalKey = "global" + taskSuffix;
          var docintelKey = "19b40605edae411005e8007f82757635" + taskSuffix;

          // Create a new global update set
          var globalUpdateSetGR = new GlideRecord("sys_update_set");
          globalUpdateSetGR.initialize();
          globalUpdateSetGR.name = taskDefinitionName + globalNameSuffix;
          globalUpdateSetGR.application = "global";
          var globalUpdateSetID = globalUpdateSetGR.insert();
          scopeToUpdateSet[globalKey] = globalUpdateSetID;
          // Create a new DocIntel scope update set
          var updateSetGR = new GlideRecord("sys_update_set");
          updateSetGR.initialize();
          updateSetGR.name = taskDefinitionName + docintelNameSuffix;
          updateSetGR.application = "19b40605edae411005e8007f82757635";
          updateSetGR.parent = globalUpdateSetGR.sys_id;
          var updateSetID = updateSetGR.insert();
          scopeToUpdateSet[docintelKey] = updateSetID;
       }

       function saveToUpdateSet(glideRecord, taskCount) {
          var gum;
          var scope = String(glideRecord.sys_scope || "global");
          if (scope !== "global" && scope !== "19b40605edae411005e8007f82757635") {
             gs.info("unknown scope: " + scope + "|" + glideRecord.getDisplayValue());
             return;
          }
          
          var taskBatchNum = taskCount ? Math.ceil(taskCount / TASK_BATCH_SIZE) : null;
          var updateSetSysId = scopeToUpdateSet[scope + getTaskSuffix(taskBatchNum)];
          if (!updateSetSysId) {
             createUpdateSet(taskBatchNum);
             updateSetSysId = scopeToUpdateSet[scope + getTaskSuffix(taskBatchNum)];
          }
        
          try {
             gum = new GlideUpdateManager2(updateSetSysId);
          } catch (e) {
             var gus = new GlideUpdateSet();
             gus.set(updateSetSysId);
             gum = new GlideUpdateManager2();
          }
          gum.saveRecord(glideRecord);
       }

       function exportTaskDefinition(taskDefinitionId) {
        var currentUpdateSetSysId = gs.getPreference("sys_update_set");
        // Get task definition
        var taskDefinitionGR = new GlideRecord("di_task_definition");
        if (!taskDefinitionGR.get(taskDefinitionId)) {
        gs.info("task definition not found.");
        return;
        }
        
       taskDefinitionName = taskDefinitionGR.getValue("display_name");
        createUpdateSet(null);
        
        //Push records into the current update set
        // Task Definition
        saveToUpdateSet(taskDefinitionGR);
        saveToUpdateSet(taskDefinitionGR.ml_definition_ocr.getRefRecord());
        saveToUpdateSet(taskDefinitionGR.ml_definition_training.getRefRecord());
        saveToUpdateSet(taskDefinitionGR.ml_definition_prediction.getRefRecord());
        saveToUpdateSet(
        taskDefinitionGR.ml_definition_pdf_preprocessing.getRefRecord()
        );

        // KeyGroups
        var keyGroupGR = new GlideRecord("di_key_group");
        keyGroupGR.addQuery("task_definition", taskDefinitionId);
        keyGroupGR.query();
        while (keyGroupGR.next()) {
        saveToUpdateSet(keyGroupGR);
        }

        // Keys
        var keyGR = new GlideRecord("di_key");
        keyGR.addQuery("task_definition", taskDefinitionId);
        keyGR.query();
        while (keyGR.next()) {
        saveToUpdateSet(keyGR);
        }

        // ML Solutions
        var mlSolutionGR = new GlideRecord("ml_solution");
        mlSolutionGR.addQuery("solution_name", "CONTAINS", taskDefinitionId);
        mlSolutionGR.addQuery("active", true);
        mlSolutionGR.query();
        while (mlSolutionGR.next()) {
        saveToUpdateSet(mlSolutionGR);
        // ML Model Artifacts
        var mlModelArtifactGR = new GlideRecord("ml_model_artifact");
        mlModelArtifactGR.addQuery("solution", mlSolutionGR.sys_id);
        mlModelArtifactGR.query();
        while (mlModelArtifactGR.next()) {
        saveToUpdateSet(mlModelArtifactGR);
        }
        // ML progress tracker
        saveToUpdateSet(mlSolutionGR.progress_tracker.getRefRecord());
        }

        // Tasks
        var taskCount = 0;

        var taskGR = new GlideRecord("di_task");
        taskGR.addQuery("task_definition", taskDefinitionId);
        taskGR.query();
        while (taskGR.next()) {
        taskCount += 1;
        saveToUpdateSet(taskGR, taskCount);
        // PDFs
        var pdfGR = new GlideRecord("di_pdf");
        pdfGR.addQuery("task", taskGR.sys_id);
        pdfGR.query();
        while (pdfGR.next()) {
        saveToUpdateSet(pdfGR, taskCount);
        }
        // Images
        var imageGR = new GlideRecord("di_image");
        imageGR.addQuery("task", taskGR.sys_id);
        imageGR.query();
        while (imageGR.next()) {
        saveToUpdateSet(imageGR, taskCount);
        // Candidate Scores
        var candidateScoreGR = new GlideRecord("di_candidate_score");
        candidateScoreGR.addQuery("image", imageGR.sys_id);
        candidateScoreGR.query();
        while (candidateScoreGR.next()) {
        saveToUpdateSet(candidateScoreGR, taskCount);
        }
        }
        // Extracted Values
        var extractedValueGR = new GlideRecord("di_extracted_value");
        extractedValueGR.addQuery("task", taskGR.sys_id);
        extractedValueGR.query();
        while (extractedValueGR.next()) {
        saveToUpdateSet(extractedValueGR, taskCount);
        }
        // Prediction Inputs
        var predictionInputGR = new GlideRecord("di_prediction_input");
        predictionInputGR.addQuery("task", taskGR.sys_id);
        predictionInputGR.query();
        while (predictionInputGR.next()) {
        saveToUpdateSet(predictionInputGR, taskCount);
       }

        // Training Inputs
        var trainingInputGR = new GlideRecord("di_training_input");
        trainingInputGR.addQuery("task", taskGR.sys_id);
        trainingInputGR.query();
        while (trainingInputGR.next()) {
        saveToUpdateSet(trainingInputGR, taskCount);
        }
        }

        // Reset current update set
        new GlideUpdateSet().set(currentUpdateSetSysId);

        // Mark as completed
        for (var updateSetKey in scopeToUpdateSet) {
        var globalUpdateSetGR = new GlideRecord("sys_update_set");
        globalUpdateSetGR.get(scopeToUpdateSet[updateSetKey]);
        globalUpdateSetGR.setValue("state", "complete");
        globalUpdateSetGR.update();
        }
       }

       exportTaskDefinition(TASK_DEFINITION_TO_EXPORT_SYS_ID);

3. 새 브라우저 탭에서 인스턴스를 열고 모두문서 인텔리전스문서 분류사용 케이스.
4. 익스포트하려는 사용 사례를 엽니다.
5. URL에서 sys_id 복사합니다.  
   예를 들어 다음 URL에서 `9f426b878749e110ba3540809bbb35a6` 을 복사합니다.

   https://instancename.service-now.com/now/docintel-admin/usecase/9f426b878749e110ba3540809bbb35a6
6. 스크립트 - 배경 탭에서 TASK_DEFINITION_TO_EXPORT_SYS_ID 변수의 첫 번째 줄에 `sys_id` 붙여 넣습니다.  
   예를 들어, 스크립트의 줄은 다음 줄과 같아야 합니다.

   `var TASK_DEFINITION_TO_EXPORT_SYS_ID = "9f426b878749e110ba3540809bbb35a6";`
7. 스크립트 실행을 선택하여 전역 범위에서 백그라운드 스크립트를 실행합니다.  
   이 스크립트를 실행하는 데 몇 분 정도 걸릴 수 있습니다.
8. 다음으로 이동 시스템 업데이트 세트로컬 업데이트 세트.  
   사용 사례의 이름으로 시작하는 이름의 업데이트 세트가 여러 개 표시될 수 있습니다.
9. 이름에 "전역 업데이트 세트" 및 "전역 업데이트 세트 작업 x-y"가 포함된 각 업데이트 세트를 선택하고 관련 링크에서 업데이트 세트 배치를 XML로 익스포트 를 선택하여 XML 파일을 다운로드합니다.  
   주:  
   "전역 업데이트 세트 작업 x-y"라는 이름에서 x-y는 업데이트 세트에 속하는 작업 범위를 의미합니다. 예를 들어, 문서 작업이 100개 있는 경우 이름에 "전역 업데이트 세트 작업 1-50"이 포함된 배치 업데이트 세트와 "전역 업데이트 세트 작업 51-100"이 있는 배치 업데이트 세트를 찾을 수 있습니다.

## 결과

사용 사례는 XML 파일로 컴퓨터에 익스포트됩니다.

## 다음에 수행할 작업

사용 사례를 익스포트한 후 인스턴스에서 사용할 수 있도록 임포트합니다 ServiceNow® . 자세한 내용은 [문서 분류 사용 사례 임포트](https://servicenow-prod.fluidtopics.net/fl7cg59sZVrEWcqA3TMNTA "인스턴스에서 사용할 문서 분류 사용 사례를 임포트합니다 ServiceNow .") 문서를 참조하십시오.
**관련 태스크**   

* [문서 분류 사용 사례 임포트](https://servicenow-prod.fluidtopics.net/fl7cg59sZVrEWcqA3TMNTA "인스턴스에서 사용할 문서 분류 사용 사례를 임포트합니다 ServiceNow .")
* [문서 분류 사용 사례 삭제](https://servicenow-prod.fluidtopics.net/GWqd9VMrc_8kZaAjl8tU4A "문서에 더 이상 필요하지 않은 사용 사례를 삭제합니다.")

