스크립트 가능 Service Catalog 변수

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기7분
  • 스크립팅을 사용하여 범위가 지정된 환경과 범위가 지정되지 않은 환경의 테이블에서 요청 항목 변수를 참조할 수 있습니다.

    다음은 변수 참조의 예입니다.
    current.variables.<variable_name>
    여기서 current는 현재 레코드를 참조하고 <variable_name> 는 변수 이름입니다.
    주:
    JavaScript에서 변수를 참조하려면 변수에 이름이 있어야 합니다.

    변수가 변수 세트의 일부인 경우 current.variables.<variable_name> 또는 current.variables.<variable_set_name>.<variable_name>로 참조할 수 있습니다.

    변수 세트는 Service Catalog의 1급 일반 사용자이기도 합니다. 변수와 마찬가지로 변수 세트에는 읽기, 쓰기, 생성 역할이 있습니다. 변수 세트에 대해 역할이 제공된 경우 해당 역할은 세트 내의 변수에 적용할 수 있습니다. 개별 변수의 역할은 변수 세트의 역할에 의해 재정의됩니다.

    변수 인쇄

    var original = current.variables.original_number;
    gs.print(original);
    

    변수 설정

    current.variables.name = "Auto-Generated:" + current.variables.asset_tag;

    변수에서 필드가 설정된 인벤토리 항목 생성

    doCreation(); 
    
    function doCreation ( ) { 
    var create = current.variables.create_item; 
    if (create == 'true') { // we want to create an asset 
      var computer = new GlideRecord('cmdb_ci_computer');
      computer.initialize();
      computer.asset_tag = current.variables.asset_tag;
      computer.serial_number = current.variables.serial_number;
      computer.name = current.variables.name;
      computer.manufacturer = current.variables.company;
      computer.insert(); } }

    GlideRecord와 관련된 변수 및 변수 세트의 GlideElementVariable 가져오기

    now_GR.variables

    GlideRecord와 관련된 변수의 이름 값 쌍 가져오기

    now_GR.variables.getVariableValue();

    작업 기록 내 변수에 대한 GlideElementVariable 목록 가져오기

    now_GR.variables.getElements();

    작업 기록 내 변수에 대한 GlideElementVariable 목록(여러 행의 변수 세트 포함)을 가져옵니다.

    now_GR.variables.getElements(true);
    주:
    getElements() 메서드는 레이블, 줄 바꿈, 컨테이너 끝, 컨테이너 분할 등과 같은 포매터 변수를 제외하고 지정된 작업 기록에 있는 모든 변수를 반환합니다.

    GlideElementVariable용 API

    • now_GR.variables.<var_name>.isMultiRow(): GlideElementVariable이 여러 행의 변수 세트인지 변수인지 확인합니다.
    • now_GR.variables.<var_name>.getQuestion(): 변수에 대한 질문 객체를 가져옵니다. 변수(isMultiRow() 는 false)에만 적용할 수 있으며 여러 행의 변수 세트에는 적용할 수 없습니다.
    • now_GR.variables.<var_name>.getLabel(): GlideElementVariable의 레이블을 가져옵니다. 변수의 경우 변수의 레이블이 반환됩니다. 여러 행의 변수 세트의 경우 변수 세트의 제목이 반환됩니다.
    • now_GR.variables.<var_name>.canRead(): 사용자가 변수 또는 여러 행의 변수 세트를 볼 수 있는지 여부를 가져옵니다.
    • now_GR.variables.<var_name>.canWrite(): 사용자가 변수 또는 여러 행의 변수 세트를 편집할 수 있는지 여부를 가져옵니다.
    • now_GR.variables.<var_name>.getDecryptedValue(): 마스킹된 변수의 복호화된 값을 가져옵니다. 마스킹된 변수에만 적용할 수 있습니다.
    • now_GR.variables.<var_name>.getRows(): 여러 행의 변수 세트에 대한 행 객체 목록을 가져옵니다. 여러 행의 변수 세트에만 적용할 수 있습니다(isMultiRow() 가 true임).
    • now_GR.variables.<var_name>.getRowCount(): 여러 행의 변수 세트의 행 수를 가져옵니다. 여러 행의 변수 세트에만 적용할 수 있습니다(isMultiRow() 가 true임).

    작업 테이블의 GlideRecord 변수에 접근하기 위한 예

    var now_GR = new GlideRecord('sc_req_item'); 
    if (now_GR.get('635a1f5387320300e0ef0cf888cb0b73')) { 
        var variables = now_GR.variables.getElements(); 
        for (var i=0;i<variables.length;i++) { 
            var question = variables[i].getQuestion(); 
            gs.log(question.getLabel() + ":" + question.getValue()) 
        } 
    }

    작업 테이블에 대한 GlideRecord의 여러 행 변수 세트에 액세스하는 예시

    var now_GR = new GlideRecord('sc_req_item');
    now_GR.get('02c38dcd87013300e0ef0cf888cb0bb2');
    
    var vars = now_GR.variables.getElements(true);
    
    for (var i=0; i<vars.length; i++) {
        var now_V = vars[i];
        if (now_V.isMultiRow()) {
            var rows = now_V.getRows();
            for (var j=0; j<now_V.getRowCount(); j++) {
                var row = rows[j];
                var cells = row.getCells();
                for (var k=0; k<cells.length; k++) {
                    var cell = cells[k];
                    gs.info(cell.getLabel() + ":" + cell.getCellDisplayValue())
                }
            }
        }
    }

    복수 행 변수 세트

    표 1. 복수 행 변수 세트
    운영 사용량
    테이블 운영
    JSON 배열 값을 문자열로 반환
    now_GR.variables.table_var
    여러 행의 변수 세트 값 설정
    now_GR.variables.table_var = <val>
    주:
    정렬된(키, 값) 쌍의 배열도 입력으로 적용할 수 있습니다.
    여러 행의 변수 세트의 var1 열 값을 가져옵니다.
    now_GR.variables.table_var.var1
    변수 세트의 값 설정, var1
    now_GR.variables.table_var.var1 = <val>
    주:
    정렬된(키, 값) 쌍의 배열도 입력으로 적용할 수 있습니다.
    행 작업
    현재 행 개수 가져오기
    now_GR.variables.table_var.getRowCount()
    변수 "i"로 지정된 행을 반환합니다. - getRow(<int> i)
    var row = now_GR.variables.table_var.getRow(<int> i);
    <var_name>에 매핑된 질문 열의 셀 값 가져오기
    row.<var_name>
    <var_name>에 매핑된 질문 열의 셀 값 설정
    row.setCellValue('<var_name>',value)
    <var_name>에 매핑된 질문 열의 셀 값 설정
    row.<var_name> = value
    테이블 끝에 빈 행을 추가하고 스크립트 가능한 객체를 반환합니다.
    var row = now_GR.variables.table_var.addRow()
    행 삭제
    row.deleteRow()

    참고 및 제한 사항

    • 단일 열 table_Var
    • now_GR.variables.table_var.var1
    • now_GR.variables.table_var.var1 = <val>
    1. 이전 비즈니스 규칙에서만 변수를 설정할 수 있습니다. after 규칙에서 설정된 변수는 데이터베이스에 기록되지 않습니다.
    2. 네임스페이스가 변수와 충돌하는 것을 방지할 수 있는 방법은 없습니다. computer_speed라는 두 개의 변수를 만들면 그 중 하나만 표시됩니다. 두 번째는 첫 번째 것을 덮어 씁니다.
    3. 날짜/시간 변수는 시스템의 다른 모든 날짜와 동일한 시간대 형식 및 저장 규칙을 사용합니다. 내부적으로 GMT로 저장되지만 표시할 사용자의 현지 표준 시간대 및 형식으로 변환됩니다.