---
sourceDocument: Xanadu API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ko-KR

ft:publication_title :

    - Xanadu API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

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

# UI 작업에서 클라이언트 및 서버 코드 사용 {#ariaid-title1}

* 릴리스 버전: Xanadu
* 
* 업데이트 날짜 2024년 08월 01일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 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(String control, Object form, String action_name) {#using-client-server-code-ui-action__section_rkc_v3f_lwb}

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

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

{#using-client-server-code-ui-action__table_lmr_qwr_fz}
**관련 개념**   

* [GlideUser - 클라이언트](https://servicenow-prod.fluidtopics.net/r8KQ0TL~xWBjR97lmVCL9g#c_GlideUserAPI "GlideUser API는 현재 사용자 및 현재 사용자 역할에 대한 정보에 액세스하는 메서드를 제공합니다. 이 API를 사용하면 사용자 정보를 얻기 위해 더 느린 GlideRecord 쿼리를 사용할 필요가 없습니다.")  
**관련 참조**   

* [GlideForm - getFormElement()](https://servicenow-prod.fluidtopics.net/c6EJlXXKcD6ogDdekEkrbA#r_GlideFormGetFormElement "양식의 HTML 요소를 반환합니다.")
* [범위가 지정된 GlideSystem - eventQueue(문자열 이름, 객체 인스턴스, 문자열 매개변수1, 문자열 매개변수2, 문자열 큐)](https://servicenow-prod.fluidtopics.net/5jRNYTxDBxY9hI4dKQ~irQ#r_ScopedGlideSystemEventQueue_String_Object_String_String_String "이벤트 관리자에 대한 이벤트를 큐에 넣습니다.")  
**관련 정보**   

* [UI actions](https://www.servicenow.com/docs/access?context=c_UIActions&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)

