WDR_TASK

 

SAP internal로 비공식이지만 유용한 웹딘의 시스템변수(SY)급이예요.
참고: https://help.sap.com/saphelp_nw75/helpdata/en/c4/b3670f72ff42eb8d4a508defd7f7a1/content.htm
여러해 경험으로 봐서는 버전별로 약간의 변화가 있지만 모양을 잘 유지하고 있습니다.

 

가장 흔히 쓰는 구문은 SAP GUI 인지 웹딘프로인지 IF로 분기하는 것입니다.

IF wdr_task=>application_name IS INITIAL.
  " GUI
ELSE.
  " WD
ENDIF.

 

wdr_task=>application_name 자체는 sy-tcode 와 비슷하게 실행중인 웹딘프로아밥 어플리케이션 이름을 알 수 있습니다.

 

메시지 출력시 컴포넌트 컨트롤러를 wdr_task 에서 가져오면, 펑션 내부 처럼 웹딘이 아닌 다른 곳에서도 메시지 출력을 쉽게 할 수 있습니다. wdr_task=>application->component

* get message manager
DATA lo_api_controller TYPE REF TO if_wd_controller.
DATA lo_message_manager TYPE REF TO if_wd_message_manager.
* lo_api_controller ?= io_view_api.
lo_api_controller ?= wdr_task=>application->component.
CALL METHOD lo_api_controller->get_message_manager
  RECEIVING
    message_manager = lo_message_manager.
* report message
CALL METHOD lo_message_manager->report_message
......

 

메시지를 팝업창으로 띄울때는 wdr_task=>application->if_wd_window_manager~create_popup_to_confirm 메소드를 실행하면 됩니다.

 

URL 파라미터를 읽을 때는 wdr_task=>client_window->if_wdr_client_info_object~parameters 에서 가져올 수 있습니다.

 

HTTP 헤더를 읽을 때는 wdr_task=>client_window->if_wdr_client_info_object~header_fields 에서 가져올 수 있습니다.

 

파일다운로드시 사용하는 cl_wd_runtime_services=>attach_file_to_response 내부에서 wdr_task=>client_window->client->attach_file_to_response 를 사용하고 있습니다.

 

컴포넌트 컨트롤러의 컨텍스트는 wdr_task=>application->component->if_wd_context~root_node 로 접근할 수 있습니다.

 

+ Recent posts