상태 모델에 상태 추가

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기5분
  • 조직의 요구 사항에 따라 다양한 변경 유형에 대해 기존 상태 모델에 새 상태를 추가할 수 있습니다.

    시작하기 전에

    필요한 역할: script_include_admin, ui_policy_admin, ui_action_admin 또는 admin

    이 태스크 정보

    State model 플러그인이 기본적으로 활성화됩니다. 변경 요청의 기본 시스템 상태에 대한 자세한 내용은 상태 모델 및 전환을 참조합니다.

    프로시저

    1. 다음으로 이동 모두 > 변경 > 새로 작성 및 선택 목록에 선택 항목을 추가하려면 다음 단계를 완료하십시오.
      1. 상태 필드를 마우스 오른쪽 버튼으로 클릭하고 딕셔너리 구성을 클릭합니다.
      2. 선택 관련 목록에서 [Table] [is] [change_request]에 대한 필터를 실행합니다.
      3. 새로 만들기를 클릭하고 다음 정보가 포함된 새 상태를 추가합니다.
        • 테이블: 변경 요청 [change_request]
        • 레이블: 새 상태의 이름
        • : 이미 기존 상태 선택에 할당되지 않은 숫자 값
        • 시퀀스: 상태 목록에 표시할 위치에 해당하는 번호 다른 선택과 동일한 일련 번호를 할당하면 다른 선택 아래에 표시됩니다.
      4. 제출을 클릭합니다.
    2. 다음으로 이동 시스템 정의 > 스크립트 포함.
      이름에 SNC가 포함된 스크립트 포함 기록은 읽기 전용입니다. 다음 단계를 완료하면 수정할 올바른 스크립트 포함을 선택해야 합니다. 예를 들어, ChangeRequestStateHandlerSNC가 아니라 ChangeRequestStateHandler를 수정합니다.
      주:
      확장 스크립트 포함(SNC 제외)에는 SNC에 해당하는 모든 기능이 포함됩니다 . 기본 스크립트 포함(SNC 추가)을 수정하면 시스템 업그레이드 중에 더 이상 업데이트되지 않습니다.
    3. ChangeRequestStateHandler 스크립트를 열어 다음 편집을 수행합니다.
      • 이 스크립트 포함을 시작할 때 상태 처리기 상수 섹션을 업데이트하여 새로 추가된 상태의 값을 포함시킵니다. 예:
        ChangeRequestStateHandler.MY_NEW_STATE = "mynewstate";
      • 초기화 함수가 끝날 때 STATE_NAMES 맵을 업데이트하여 새로 추가된 상태의 숫자 값을 포함시킵니다. 예:
        this.STATE_NAMES["-6"] = ChangeRequestStateHandler.MY_NEW_STATE;
        주:
        STATE_NAMES 맵은 기억하기 쉬운 이름으로 변경 요청의 상태 필드에 저장된 숫자 값 간 매핑을 제공합니다. 이 매핑을 사용하면 기억하기 쉬운 이름을 상태 모델 스크립트 포함에서 사용할 수 있습니다.
    4. 해당하는 스크립트 포함을 편집하여 새 상태를 관련 변경 요청 유형에 대한 모델에 포함시킵니다.
      각 유형의 변경 요청에는 변경 요청 유형의 값이 <type>인 곳에 이름이 ChangeRequestStateModel_<type>인 해당 스크립트 포함이 있습니다. 예를 들어, ChangeRequestStateModel_normal은 일반 유형을 사용하여 변경 요청에 대한 상태 모델을 정의합니다.
      각 상태 모델 스크립트 포함은 다음 정보를 지정하는 개체를 정의합니다.
      • 사용할 수 있는 상태입니다.
      • 사용 가능한 각 상태의 다음 상태 또는 상태입니다.
      • 해당 상태(moving)로 이동하는 과정에서 실행할 함수와 함께 해당 전환이 가능한지 여부(canMove)를 결정하는 각 상태 전환에 대한 함수입니다.

      다음 예시는 ChangeRequestStateModel_normal 스크립트 포함에 있습니다.

      변경 요청 상태 스크립트 변경
    5. UI 작업을 생성하여 변경 요청을 신규 상태로 진행하는 버튼을 제공합니다.
      1. 삽입 및 유지를 사용하여 구현과 같은 기본 UI 작업 중 하나의 사본을 만듭니다.
      2. 양식에서 다음 필드를 업데이트합니다.
        필드 이름 업데이트
        이름 새 상태의 이름과 일치하도록 업데이트합니다.
        작업 이름 이름 끝에 있는 상태를 새 상태로 바꿉니다.
        힌트 새 상태를 참조하도록 텍스트를 업데이트합니다.
        클릭 시 새 상태와 일치하도록 함수 이름을 바꿉니다.
        조건 새 상태를 사용하여 호출을 isNext 함수로 업데이트합니다.
        스크립트
        • 클릭 시 필드에 지정된 이름과 일치하도록 함수 이름을 업데이트합니다.
        • ga.addParam(“sysparm_state_name”,…으로 시작하는 라인을 업데이트하여 addParam 함수의 두 번째 매개변수로 새 상태의 이름을 입력합니다.
        • gsftSubmit로 시작하는 라인을 업데이트하고 이 함수 호출의 세 번째 매개변수를 작업 이름 필드에 입력한 값과 일치하도록 수정합니다.

        다음 예시에서는 구현 UI 작업을 사용하여 업데이트할 값을 표시합니다.

        수정된 UI 작업
        ChangeRequestStateHandler 스크립트 포함에는 변경 요청의 현재 상태에 따라 UI 작업이 표시되는지 여부를 결정하기 위해 사용되는 두 개의 함수가 있습니다.
        • isNext(stateName): 이 함수는 매개변수로 전달된 stateName이 변경 요청의 현재 상태에 대한 다음 상태로 사용할 수 있는지 여부만 확인합니다.
        • canMoveTo(stateName): 이 함수는 isNext 함수와 동일한 확인을 수행합니다. 그러나 현재 상태에서 전환을 위해 적절한 canMoveTo 함수를 매개변수로 전달된 stateName으로 호출한 결과를 확인합니다. 이 함수는 필드에 특정 값이 포함되어 있는지 확인하는 등 canMove 함수에 추가 검사가 있는 경우에 사용됩니다.
    6. 프로세스 흐름 구성을 업데이트하여 새 변경 상태를 통합하려면 다음 단계를 완료합니다.
      프로세스 흐름은 변경 요청 양식의 맨 위에 표시되며 다양한 프로세스 흐름 기록에서 구성됩니다.
      프로세스 흐름에 새 상태가 표시됨
      1. 다음으로 이동 시스템 UI > 프로세스 플로우 [Table] [ is] [change_request]에 대한 모듈 및 필터입니다.
      2. 기록을 열고 삽입 및 유지를 사용하여 복사본을 만듭니다.
      3. 양식에서 다음 필드를 업데이트합니다.
        필드 이름 업데이트
        이름 새 상태의 이름과 일치하도록 업데이트합니다.
        레이블 새 상태의 이름과 일치하도록 업데이트합니다. 이 값은 변경 요청 양식의 맨 위에 있는 프로세스 흐름에 있습니다.
        순서 다른 상태에 대한 기존 프로세스 흐름 기록과 함께 새 상태가 올바른 순서로 되어 있도록 이 숫자를 업데이트합니다.
        조건 새 상태와 일치하도록 필터를 업데이트합니다.
      4. 업데이트를 클릭합니다.

    다음에 수행할 작업

    새 상태가 예상대로 작동하도록 하려면 기본 워크플로우를 검토합니다. 필요에 따라 워크플로우에 새 상태를 추가합니다.

    기본 워크플로우 검토

    상태 모델을 수정하면 변경 요청에 대한 기본 워크플로우에 영향을 줄 수 있습니다.

    시작하기 전에

    필요한 역할: admin

    이 태스크 정보

    각 변경 유형에는 기본 워크플로우가 있습니다. 상태 모델에 대한 변경이 워크플로우에 나쁜 영향을 주지 않도록 하려면 각 기본 워크플로우를 검토해야 합니다.

    프로시저

    수정된 각 ChangeRequestStateModel_<type> 스크립트 포함에 대한 워크플로우를 검토합니다.
    표 1. 변경 요청 기본 워크플로우
    변경 유형 스크립트 포함 이름 워크플로우
    일반 ChangeRequestStateModel_normal 변경 요청 - 일반
    표준 ChangeRequestStateModel_standard 변경 요청 - 표준
    긴급 ChangeRequestStateModel_emergency 변경 요청 - 긴급

    각 변경 유형에 대한 기본 워크플로우 수정은 상태 시퀀스에서 새 상태가 추가되는 위치에 따라 다릅니다.