원래는 읽기전용으로 세팅하면 서치핼프가 작동하지 않습니다.

 

기발한 아이디어로, 읽기전용 이면서 서치핼프가 작동하도록 하는 방법을 소개 합니다.

출처: http://scn.sap.com/docs/DOC-33880

 

Allowing Only Search Help Entry for an InputField

airline_3.JPG

 

간단히 요약하자면,

인풋필드를 2개 만듭니다. 둘다 같은 context 에 바인딩 합니다.

앞에껀 읽기 전용(readOnly)으로 하세요. 뒤에껀 넓이(width)를 0px 로  지정합니다.

실행을 해보면 2개의 인풋필드가 붙어있어서 하나처럼 보입니다.

 

단점은... 읽기 전용이 된 인풋필드에서 F4를 눌러도 서치핼프는 뜨지 않습니다. 마우스로 옆칸에 있는 버튼을 눌러야 합니다.

웹딘프로 컴포넌트를 만들고 지우다 보면 이상하게 꼬여서 다시 만들어지지 않는 경우가 발생합니다.

생성을 누르면 The ABAP interface does not exist 라는 에러가 나면서 생성이 되지 않습니다.

 

이런 경우 인터페이스를 찾아보면 ZIWCI_로 시작하는 이름의 인터페이스가 있을 것입니다.

이것을 삭제해야 합니다.

불행히도 SE80에서는 삭제가 안됩니다.

 

 

정확한 이름은 웹딘 컴포넌트가 ZABC일때 인터페이스는 ZIWCI_ABC 입니다.

인터페이스가 있는지 검색하려면 우선 뷰 테이블 VSEOINTERF 에서 찾아보세요.

삭제할 인터페이스 이름을 잠시 적어둡니다.

SE37에서 펑션 모듈 SEO_INTERFACE_DELETE 를 실행합니다.

파라미터로 삭제할 인터페이스 이름을 넣고 실행하면 삭제가 됩니다.

 

다시 웹딘프로 컴포넌트를 만들어 보면 성공~!

웹딘프로아밥 Application Parameters 전체 세팅 WD_GLOBAL_SETTING (http://boy0.tistory.com/18)
와 같은 내용에 업그레이드 된 7.02 기준의 문서입니다.

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/9010b5e3-75b3-2e10-1cb1-c5c8a8b82672
7.02에서 변화가 보이네요.
전체 세팅하는 프로그램도 WD_GLOBAL_SETTING 에서 WD_GLOBAL_PARAMETERS 으로 변경되었습니다.

 

SAP 프로그램 개발 공식 가이드 문서
http://wiki.sdn.sap.com/wiki/display/BBA/Home
들어가서  PDF 파일로 받을 수도 있습니다.

눈길이 가는 내용을 일부 살펴보자면, 
신규 프로그램은 SAP GUI (리포트,모듈풀 등)용으로 개발하지 않는다.
SAP에서 추천하는 UI 기술은 Web Dynpro ABAP (+FPM) , Web Dynpro Java, WebClient

Chapter 5. User Interface and User Experience Guidelines for Best-Built Applications 


SAP GUI

UI-TECH-9

SAP does not recommend developing new applications in SAP GUI.


Recommended UI Technologies

UI-TECH-1

SAP recommends that developers using SAP tools select one of the following user interface technologies:

  • Web Dynpro ABAP with the Floorplan Manager
  • Web Dynpro Java for development on the SAP NetWeaver Java stack
  • The WebClient UI Framework for development of applications that complement SAP CRM


UI Technologies That Are Not Encouraged

UI-TECH-6

SAP does not encourage use of the following user interface technologies:

  • Business Server Pages (BSP)
  • HTMLB
  • Portal Framework
  • XHTML or plain HTML
  • ITS flow logic
  • ABAP Dynpro


SAP UI Technologies and Tools for ABAP Developers

UI-TECH-2.1

For development of new applications via Web Dynpro ABAP, SAP recommends using the Floorplan Manager to increase consistency among user interfaces.


WebClient UI Framework

UI-TECH-2.2

For development of new applications that should be strongly integrated with SAP CRM, SAP recommends using the WebClient UI Framework to increase consistency among user interfaces.


SAP UI Technologies and Tools for Java Developers

UI-TECH-10

For Java UIs, SAP recommends either Web Dynpro Java or standards-based development using JavaServer Faces (JSF).


Java UI Technologies for Migrated Software

UI-TECH-3

SAP recommends that Java applications that are migrated to run on SAP NetWeaver use JavaServer Faces (JSF) technology.


UI Technologies for Rich Internet Applications

UI-TECH-5

SAP recommends using Adobe Flash or Microsoft Silverlight in Web Dynpro Islands or WebClient UIF Islands.


Output and Forms

UI-TECH-8

recommends using SAP Interactive Forms by Adobe for forms that are printed or used online or offline. SAP does not recommend that developers use SAPscript.


개념 이해:
NET312 pdf 파일의 22~27 (내부페이지 14~19)
Dynamically changing the UI 부분을 읽는다.

실습 예제:
Creating UI Elements Dynamically in Abap Webdynpro Application
http://wiki.sdn.sap.com/wiki/display/WDABAP/Creating+UI+Elements+Dynamically+in+Abap+Webdynpro+Application




 

아래 첨부파일은 SAPLINK 프로그램을 이용하여 Import Slinkee 하면 볼 수 있습니다.

WDYA_YDBLIM_TEST_POPUP.zip
다운로드

 

 

 


애플리케이션은 두개 입니다.

1. 본 창닫기 테스트


2. 내부 팝업 닫기 테스트



본 창 닫기를 위한 작업입니다. (내부 팝업엔 필요없음)
윈도우에 아웃바운드 플러그를 하나 만들고 타입은 Exit 으로하고 파라미터 CLOSE_WINDOW를 추가합니다.




닫는 로직은 이렇습니다.

METHOD close_popup .
* 하나의 메소드로 통합된 창닫기.
* 이 로직으로 내부 팝업, 본 창 무엇으로 사용되더라도 닫을 수 있다.

  DATA lo_api_view TYPE REF TO if_wd_view_controller.
   lo_api_view = wd_this->wd_get_api( ).

  DATA lo_api_window TYPE REF TO if_wd_window_controller.
   lo_api_window = lo_api_view->get_embedding_window_ctlr( ).

* lo_window 는 내부 팝업인 경우에 값이 있다.
  DATA: lo_window TYPE REF TO if_wd_window.
   lo_window = lo_api_window->get_window( ).

  IF lo_window IS BOUND.
* 내부 팝업 닫기
    lo_window->close( ).
  ELSE.
* 본 창은 lo_window가 없으므로 윈도우의 outbound plug를 호출하여 창을 닫는다.
* wd_this->fire_close_plg( close_window = abap_true ).

    DATA: lt_param TYPE wdr_event_parameter_list,
     ls_param LIKE LINE OF lt_param.

    ls_param-name = 'CLOSE_WINDOW'.
    GET REFERENCE OF abap_true INTO ls_param-value.
    INSERT ls_param INTO TABLE lt_param.

    lo_api_window->fire_plug(
      EXPORTING
        parameters = lt_param " Parameter of Outbound Plug
         plug_name = 'CLOSE' " Web Dynpro: Runtime Structure of In/Outbound Plugs
    ).
  ENDIF.

ENDMETHOD.

웹으로만 화면을 구성하고 있는데 SAP GUI 트랜젝션을 호출해야만 하는 경우
이방법을 사용하면 빠르게 대처할 수 있습니다. (그럭저럭 쓸만합니다)
SAP GUI 화면을 웹에서 볼 수 있는 Web GUI가 있습니다.

Web GUI의 URL 구성은 아래와 같습니다.

 http://<host>:<port>/sap/bc/gui/sap/its/webgui/?~transaction=<T-Code>

아래의 코드를 호출하면 위처럼 URL을 구성해줍니다.

DATA: lv_url TYPE string.
cl_its_runtime=>get_url(
  EXPORTING
    in_transaction    = 'SE80'
  IMPORTING
    out_abs_url       = lv_url
).

현재 접속된 서버(AP)를 기준으로 URL이 생성되기 때문에
여러 AP를 도메인 등록 없이 운영하고 Load Balancer만 도메인 등록한 경우 문제가 있습니다.
이럴때는 cl_its_runtime=>get_url 메소드의 파라미터 in_host, in_port 를 L4에 맞게 추가로 주면 됩니다.



1장의 그림으로 설명합니다.

웹딘프로의 UI Element 속성들 대부분은 바인딩이 가능한데,
바인딩을 통해 값을 조절하면 화면이 변경됩니다.
visible은 원칙적으로 WDUI_VISIBILITY 타입으로 해야 하지만 WDY_BOOLEAN으로도 할 수 있도록 봐줍니다 :)


 


UI Element를 자세히 살펴 볼수 있는 몇가지를 방법을 알려드리겠습니다.

1. 데모 프로그램
서버에 접속하여 SE80으로 이동후
웹딘프로 아이디 WDR_TEST_UI_ELEMENTS 를 찾습니다.

application을 실행합니다.

모든 UI Elemet를 한 화면에서 속성 변경해 가며 테스트 할 수 있는 데모 입니다.




2. NET312: UI Development with Web Dynpro for ABAP
정식 교육교재입니다. pdf 파일은 각자 알아서 구하시면 됩니다.


3. WDA UI Elements Reference (공식 도움말 페이지)
링크: http://help.sap.com/saphelp_nw2004s/helpdata/EN/cd/422b035f01914e80251a660e39ab14/frameset.htm




4. WDJ UI Elements Reference (웹딘프로 자바 도움말 페이지이지만 UI는 거의 같기 때문에 참고가 됩니다)
링크: http://help.sap.com/saphelp_nw04/helpdata/en/8f/aa63688343bd40aafc537971aee068/frameset.htm


+ Recent posts