UI 작업에서 클라이언트 및 서버 코드 사용

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기2분
  • 서버 측에서 기록을 업데이트하기 전에 클라이언트 측에서 UI 작업을 클릭할 때 스크립트를 사용하여 입력의 유효성을 검사할 수 있습니다. 사용자는 필수 필드의 유효성을 검사하고 기록을 업데이트하기 위해 버튼을 두 번 클릭할 필요가 없습니다.

    스크립트는 클라이언트 측 확인을 위해 클라이언트 함수를 호출하고, 통과하면 UI 작업이 작업을 완료합니다. onclick 문 없이 실행되는 코드는 클라이언트 함수가 더 이상 실행되지 않을 때까지 서버 측 함수가 실행되지 않도록 합니다. 성공하면 서버 측 함수가 실행되고 레코드가 업데이트됩니다.

    // Client-side onclick function
    function resolveIncident() {
      // Set the 'Incident state' and 'State' values to 'Resolved', and display mandatory fields
      g_form.setValue('incident_state', 6);
      g_form.setValue('state', 6);
      g_form.setValue('resolved_by', g_user.userID);
    
      // Call the UI action and skip the 'onclick' function
      gsftSubmit(null, g_form.getFormElement(), 'resolve_incident'); //MUST call the 'Action name' set in this UI Action
    }
    
    // Code that runs without 'onclick'
    // Ensure call to server-side function with no browser errors
    if (typeof window == 'undefined')
      serverResolve();
    
    // Server-side function
    function serverResolve() {
      current.incident_state = IncidentState.RESOLVED;
      current.state = IncidentState.RESOLVED;
      current.resolved_by = gs.getUserID();
      current.update();
    }

    gsftSubmit(문자열 컨트롤, 개체 양식, 문자열 action_name)

    필수 필드를 확인하고 onSubmit() 클라이언트 스크립트를 실행한 후 사용자가 UI 작업을 클릭했을 때처럼 양식을 제출합니다. 클라이언트 측 코드와 서버 측 코드를 단일 UI 작업에서 호출할 수 있습니다.

    표 1. 매개변수
    이름 유형 설명
    제어 문자열 사용자 클릭을 시뮬레이션할 양식 버튼의 이름입니다. 그렇지 않으면 null을 사용합니다.
    양식 객체 옵션입니다. 제출된 입력을 포함하는 양식 요소입니다. g_form.getFormElement() 메서드를 호출하여 이 값을 검색할 수 있습니다.
    action_name 문자열 작업 이름입니다. 이 값은 UI 작업 [sys_ui_action] 테이블에 나열된 기록에 제공됩니다.

    예를 들어 'resolve_incident' 는 인시던트 [incident] 테이블에 있는 해결 버튼의 동작 이름입니다.