모바일 클라이언트 GlideForm(g 양식) 스크립팅 및 마이그레이션

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기6분
  • 모바일에 대한 클라이언트 스크립팅은 몇 가지 예외가 있지만, 웹에 대한 스크립팅과 동일합니다. 모든 새 스크립트는 특정 지침을 따라야 합니다. Mobile Platform에서 클라이언트 스크립트, UI 정책, 탐색기 모듈, UI 작업이 영향을 받습니다.

    클라이언트 스크립트

    새 스크립트나 기존 스크립트를 모바일에 유효하게 하려면 다음 요구사항을 준수해야 합니다.
    • g_form.getControl() 대신 새 모바일 메서드를 사용합니다.
    • 사용하지 않는 메서드를 사용하지 않습니다.
    • 지원되지 않는 브라우저 개체를 참조하지 않습니다.
    • 동기식 JavaScript, GlideAjax, GlideRecord 호출을 하지 마십시오.
    • 모바일에 사용할 수 없는 메서드를 호출하지 마십시오.
    • 모바일 UI에서 스크립트를 실행할 수 있도록 설정합니다.
    표 1. 요구사항
    새 모바일 메서드 사용 HTML을 직접 조작하는 대신 양식 필드를 수정하는 데 여러 가지 새 메서드를 사용할 수 있습니다. 이러한 메서드는 Mobile Platform에서 사용되지 않는 g_form.getControl()의 이전 사용을 대체합니다. 기존 스크립트에서는 Mobile Platform에서 유효하지 않은 메서드 대신 새 메서드를 사용해야 합니다. 이러한 새로운 메서드에 대한 자세한 내용은 Mobile GlideForm() API를 참조하십시오.
    사용되지 않는 메서드를 사용하지 마십시오.

    다음 메서드는 HTML 요소에 직접 액세스가 허용되지 않으므로 Mobile Platform에는 사용되지 않습니다.

    • g_form.getControl()
    • g_form.getFormElement()
    • g_form.getElement()

    기존 스크립트가 호환되도록 하려면 코드에서 더 이상 사용되지 않는 메서드에 대한 모든 호출을 제거합니다. 새 스크립트의 경우, 스크립트가 모바일에 유효하도록 하려면 사용되지 않는 메서드를 사용하지 마십시오.

    g_form.getControl()의 경우, 이 메서드와 함께 이전에 포함된 기능 중 일부는 개별 메서드로 추출되었습니다. g_form.getControl() 대신, 개발자 사이트에 설명된 새 메서드를 사용하십시오.

    지원되지 않는 브라우저 개체를 참조하지 마십시오.

    다음 브라우저 개체는 모바일 스크립트에서 지원되지 않습니다.

    • jQuery 또는 프로토타입($, $j 또는 $$)
    • 문서

    새 스크립트가 이러한 개체를 사용하지 않도록 하고, 기존 스크립트에서 이러한 개체의 사용을 제거하십시오. 대신 GlideForm (g_form)을 사용합니다. 이것은 동일한 작업을 수행하기 위해 setLabel(), addDecoration(), hasField()와 같은 메서드를 제공합니다.

    동기식 JavaScript 호출을 하지 마십시오.

    Mobile Platform에서 동기식 JavaScript 호출을 허용하지 않습니다. g_form.getReference() 메서드는 이제 콜백 매개변수가 정의되어 있을 것입니다. 예:

     g_form.getReference(fieldName, callback)

    모든 g_form.getReference() 호출은 콜백 매개변수를 포함해야 합니다. 예를 들어, 다음 스크립트는 콜백을 포함하지 않고 Mobile Platform과 호환되지 않습니다.

     var userName = g_form.getReference('assigned_to').user_name;
     g_form.setValue('u_assigned_user_name', userName);

    다음 스크립트가 콜백을 포함하도록 업데이트되었으며 Mobile Platform과 호환됩니다.

     g_form.getReference('assigned_to', function(now_GR) {
         g_form.setValue('u_assigned_user_name', gr.user_name);
     });
    동기식 Ajax 호출을 하지 마십시오 Mobile Platform은 동기식 GlideAjax 호출을 허용하지 않습니다. GlideAjax 호출에서 getXMLWait()의 사용은 Mobile Platform에서 작동하지 않습니다. 모든 GlideAjax 호출이 비동기식인지 확인하십시오. 동기 대 비동기 GlideAjax 호출 및 getXMLWait()에 대한 자세한 내용은 AJAX를 참조하십시오. 사용 가능한 GlideAjax 메서드에 대한 자세한 내용은 GlideAjax API를 참조하십시오.
    동기식 GlideRecord 호출 금지

    모바일 플랫폼에서는 동기식 GlideRecord 호출을 허용하지 않습니다. 기존 GlideRecord 호출은 콜백을 포함해야 합니다. 예를 들어, 다음 스크립트는 콜백을 포함하지 않고 Mobile Platform과 호환되지 않습니다.

     var now_GR = new GlideRecord('incident');
     gr.addQuery('number', g_form.getValue('related_incident'));
     gr.query();
     gr.next();
     g_form.setValue('u_related_incident_description', gr.short_description);

    다음 스크립트가 콜백을 포함하도록 업데이트되었으며 Mobile Platform과 호환됩니다.

     var now_GR = new GlideRecord('incident');
     gr.addQuery('number', g_form.getValue('related_incident'));
     gr.query(function(now_GR) {
         gr.next();
         g_form.setValue('u_related_incident_description', gr.short_description);
     });
    Mobile Platform에서 사용할 수 없는 메서드를 사용하지 않습니다.
    Mobile Platform에 가해진 제한사항과 기능 감소로 인해, 다음 메서드는 사용되지 않게 되지는 않았지만 Mobile Platform에서 사용할 수 없습니다. 이러한 메서드가 Mobile Platform에서 실행될 경우, 아무런 작업이 발생하지 않습니다.
    • showRelatedList ()
    • hideRelatedList ()
    • showRelatedLists ()
    • hideRelatedLists()
    • flash()
    • getSections()
    • enableAttachments()
    • disableAttachments()
    • setReadonly()(setReadOnly()는 사용할 수 있음)
    • getParameter()
    모바일용 스크립트 활성화

    Mobile Platform에 대해 스크립트를 활성화해야 합니다.

    주:
    모바일 양식의 요소에 포커스를 주는 것은 지원되지 않습니다.

    UI 정책

    UI 형식으로 스크립트 실행 필드를 사용하여 Mobile Platform, 데스크톱 또는 둘 다 중 어디에서 스크립트가 실행되는지를 결정하십시오. Mobile Platform 또는 둘 다에 적용되도록 기존 정책을 업데이트합니다. 또한 새 스크립트의 경우, 모바일 옵션 또는 둘 다 선택되어야 합니다.

    탐색기 모듈

    기존 코드의 경우, Mobile Platform에서 사용할 수 있으려면 sys_ui_application 또는 sys_ui_module 테이블로 모듈을 전송해야 합니다. 새 코드를 개발할 때 모든 모듈이 sys_ui_application 또는 sys_ui_module 테이블에 생성되어야 합니다.

    UI 작업

    UI 작업을 sys_ui_ng_action 테이블로 전송하여 Mobile Platform에서 표시해야 합니다. 사용되지 않는 메서드를 사용하지 않는 UI 작업 스크립트는 스크립트 자체를 변경할 필요가 없습니다. 새 UI 작업의 경우, sys_ui_ng_action 테이블에 생성해야 합니다.