SAP NetWeaver Business Client (NWBC)

는 웹으로 통합 환경을 제공하여 SAP GUI를 대체하려는 새로운 기술입니다.

이 NWBC는 SAP GUI 처럼 컴퓨터에 프로그램을 설치하여 사용하는 NWBC for Desktop 와
프로그램 설치 없이 웹브라이저로 접속하는 NWBC for HTML 두가지 방식이 있습니다.

이중 NWBC for HTML 은 특정 URL을 가지고 있어서 접속을 할 수 있는데,
SAP GUI에서 이 URL을 생성하여 NWBC를 실행하는 티코드가 NWBC 입니다.
이때 실행되는 코드가 이렇습니다.

코드
Class Name            CL_NWBC
Method                SE93_LAUNCH

METHOD se93_launch.

* In transaction SE93 this method is tied to a transaction called NWBC.

* Get NWBC URL
  DATA: url(1024)       TYPE c,
        nwbc_exception  TYPE REF TO cx_nwbc.

  TRY.
      url = cl_nwbc=>url_base(  ).

      DATA: url_suffix   TYPE icfredurl,
            icf_state    TYPE icfactive.
      cl_icf_tree=>if_icf_tree~service_from_url(
        EXPORTING url             = '/sap/bc/nwbc/nwbc_launch' "#EC NOTEXT
                  hostnumber      = 0
                  authority_check = space
        IMPORTING icfactive       = icf_state
                  urlsuffix       = url_suffix ).
      IF NOT ( icf_state IS INITIAL OR url_suffix IS NOT INITIAL ).
        CONCATENATE url '~launch/' INTO url.
      ENDIF.
    CATCH cx_nwbc INTO nwbc_exception.
      DATA: err_txt TYPE string.
      err_txt = nwbc_exception->get_text( ).
      MESSAGE err_txt TYPE 'E'.
      RETURN.
  ENDTRY.

* Add sap-language and sap-client to URL to give start page same settings as SAPGUI is running in
  DATA: lang_iso TYPE laiso.
  CALL FUNCTION 'LANGUAGE_CODE_SAP_TO_ISO'
    EXPORTING
      sap_code = sy-langu
    IMPORTING
      iso_code = lang_iso.

  CONCATENATE url `?` if_http_form_fields_sap=>sap_client   `=` sy-mandt
                  `&` if_http_form_fields_sap=>sap_language `=` lang_iso
         INTO url.

* Start URL in browser.
  url_launch( url ).

*!!! code below will close currently open additional SAP GUI sesion
* after opening of web browser, if this is not a last session open for
* this system

*** !!!! The code was commented, because it was a logic change for transactio NWBC
* and not all users can accept it

** close current ABAP session, after starting URL
*  DATA: lv_act_sessions TYPE i.
*  CALL FUNCTION 'TH_USER_INFO'
*    EXPORTING
*      client              = sy-mandt
*      user                = sy-uname
*    IMPORTING
*      act_sessions        = lv_act_sessions.
*
*  " do not close last session
*  IF lv_act_sessions GT 1.
*    CALL FUNCTION 'TH_DELETE_MODE'.
*  ENDIF.

ENDMETHOD.

+ Recent posts