스크립트 가능 Service Catalog 변수
스크립팅을 사용하여 범위가 지정된 환경과 범위가 지정되지 않은 환경의 테이블에서 요청 항목 변수를 참조할 수 있습니다.
변수 참조의 예는 다음과 같습니다.
current.variables.<variable_name>여기서 current는 현재 기록을 나타내고 <variable_name> 는 변수의 이름입니다.
주:
JavaScript에서 변수를 참조하려면 이름이 있어야 합니다.
변수가 변수 세트의 일부인 경우 current.variables.<variable_name> 또는 current.variables.<variable_set_name>.<variable_name>로 참조할 수 있습니다.
변수 세트는 Service Catalog의 최우선 구성 요소이기도 합니다. 변수와 마찬가지로 변수 세트에는 읽기, 쓰기 및 생성 역할이 있습니다. 변수 세트에 역할이 제공되면 세트 내의 변수에도 해당 역할을 적용할 수 있습니다. 개별 변수의 역할은 변수 세트의 역할에 의해 무효화됩니다.
변수 인쇄
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( )가 예임).
- now_GR.variables.<var_name>.getRowCount(): 여러 행의 변수 세트의 행 수를 가져옵니다. 여러 행의 변수 세트에만 적용할 수 있습니다(isMultiRow( )가 예임).
작업 테이블에 대한 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())
}
}
}
}
복수 행 변수 세트
| 운영 | 사용량 |
|---|---|
| 테이블 작업 | |
| JSON 배열 값을 문자열로 반환 | |
| 여러 행의 변수 세트 값 설정 |
주: 정렬된(키, 값) 쌍의 배열도 입력으로 적용할 수 있습니다. |
| 여러 행의 변수 세트의 열 값 var1을 가져옵니다. | |
| 변수 세트의 설정 값, var1 |
주: 정렬된(키, 값) 쌍의 배열도 입력으로 적용할 수 있습니다. |
| 행 작업 | |
| 현재 행 카운트 임포트 | |
| 변수 "i"로 지정된 행을 반환합니다. - getRow(<int> i) | |
| <var_name>에 매핑된 질문 열의 셀 값 가져오기 | |
| <var_name>에 매핑된 질문 열의 셀 값 설정 | |
| <var_name>에 매핑된 질문 열의 셀 값 설정 | |
| 테이블 끝에 빈 행을 추가하고 스크립트 가능한 객체를 반환합니다. | |
| 행 삭제 | |
메모 및 제한 사항
- table_Var의 단일 열
- now_GR.variables.table_var.var1
- now_GR.variables.table_var.var1 = <val>
- 이전 비즈니스 규칙에서만 변수를 설정할 수 있습니다. 이후 규칙에 설정된 변수는 데이터베이스에 기록되지 않습니다.
- 변수와의 네임스페이스 충돌을 방지하기 위한 조치는 없습니다. computer_speed라는 두 개의 변수를 생성하면 그 중 하나만 표시됩니다. 두 번째는 첫 번째 것을 덮어씁니다.
- 날짜/시간 변수는 시스템의 다른 모든 날짜와 동일한 시간대 형식 및 스토리지 규칙을 사용합니다. 내부적으로 GMT로 저장되지만 표시를 위해 사용자의 현지 시간대 및 형식으로 변환됩니다.