스크립트 가능 Service Catalog 변수
스크립팅을 사용하여 범위가 지정된 환경과 범위가 지정되지 않은 환경의 테이블에서 요청 항목 변수를 참조할 수 있습니다.
다음은 변수 참조의 예입니다.
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(): 변수에 대한 Question 객체를 가져옵니다. 변수(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())
}
}
}
}
복수 행 변수 세트
| 운영 | 사용법 |
|---|---|
| 테이블 운영 | |
| 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로 저장되지만 사용자의 현지 표준 시간대 및 표시 형식으로 변환됩니다.