ABAP/Web Dynpro ABAP(WDA)
[번역] 웹딘프로아밥 샘플 코드 by Vivek Goenka
Derby
2016. 11. 15. 16:52
이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://sites.google.com/site/vivekgoenka/web-dynpro-abap/sample-codes
1. 접속한 컴퓨터의 IP 주소를 가져오는 방법
DATA lo_request TYPE REF TO if_http_request.
DATA lv_ip_address TYPE string.
lo_request = wdr_task=>request.
CALL METHOD lo_request->get_header_field
EXPORTING
name = '~remote_addr'
RECEIVING
value = lv_ip_address.
2. URL 파라미터를 하나씩 읽는 방법
DATA lv_para_value TYPE string.
CALL METHOD wdr_task=>client_window->if_wdr_client_info_object~get_parameter
EXPORTING
name = 'ParaName'
RECEIVING
value = lv_para_value.
[주의: 파라미터 이름은 대소문자를 구분하지 않지만 값은 대소문자 구분함.] 또는
lv_para_value = CL_WD_RUNTIME_SERVICES=>GET_URL_PARAMETER( 'ParaName').
3. URL 파라미터 전체를 인터널 테이블로 읽는 방법
DATA lt_parameters TYPE wdr_name_value_list_sorted.
lt_parameters = wdr_task=>client_window->if_wdr_client_info_object~parameters.
4. HTTP 헤더 필드 전체를 인터널 테이블로 읽는 방법
DATA lo_request TYPE REF TO if_http_request.
DATA lt_param TYPE tihttpnvp.
lo_request = wdr_task=>request.
CALL METHOD lo_request->get_header_fields
CHANGING
fields = lt_param.
5. 파일 다운로드 하는 방법
CL_WD_RUNTIME_SERVICES=>ATTACH_FILE_TO_RESPONSE
6. iView 에서 포탈 접속 ID를 웹딘프로아밥 어플리케이션에 전달하는 방법
아래 그림처럼 포털 접속 ID는 파라미터 "iv_user"로 전달 됩니다. 이 스크린샷은 포탈에서 웹딘프로아밥 iView 설정창 입니다.
7. 액션/이벤트 핸들러 메소드에 파라미터 전달하는 방법
이벤트 핸들러 메소드에서 파라미터를 동일한 이름으로 만들어 놓습니다. 아래 예제 코드는 입력 파라미터 MYID를 타입 string으로 만드는 예제입니다.
아래 코드를 wddomodifyview( ) 메소드에 넣습니다.
METHOD wddomodifyview .
DATA:
lt_parameters LIKE if_wd_event=>parameters,
parameter LIKE LINE OF lt_parameters,
lr_link1 TYPE REF TO cl_wd_link_to_action,
lr_link2 TYPE REF TO cl_wd_link_to_action.
CHECK first_time = abap_true.
* LINK_IMG1 & LINK_IMG2 are the UI element ID
lr_link1 ?= view->get_element( 'LINK_IMG1' ).
lr_link2 ?= view->get_element( 'LINK_IMG2' ).
parameter-name = 'MYID'.
parameter-value = 1.
parameter-type = 'g'. " g = String
INSERT parameter INTO TABLE lt_parameters.
lr_link1->map_on_action( lt_parameters ).
CLEAR lt_parameters[].
parameter-name = 'MYID'.
parameter-value = 2.
parameter-type = 'g'. " g = String
INSERT parameter INTO TABLE lt_parameters.
lr_link2->map_on_action( lt_parameters ).
ENDMETHOD.
- 인풋필드의 "State" 속성을 "required"로 지정합니다.
- 아래 코드를 체크를 실행할 메소드에 넣습니다.
DATA: lt_msg TYPE cl_wd_dynamic_tool=>t_check_result_message_tab,
lo_view_controller TYPE REF TO if_wd_view_controller.
lo_view_controller ?= wd_this->wd_get_api( ).
cl_wd_dynamic_tool=>check_mandatory_attr_on_view(
EXPORTING
view_controller = lo_view_controller
display_messages = abap_true
IMPORTING
messages = lt_msg
).
9. 웹딘프로 어플리케이션의 프로토콜, 호스트, 포트 정보 얻는 방법
DATA lv_protocol TYPE string.
DATA lv_host TYPE string.
DATA lv_port TYPE string.
CALL METHOD cl_http_server=>get_location
EXPORTING
server = cl_wdr_task=>server
IMPORTING
host = lv_host
port = lv_port
out_protocol = lv_protocol.
10. 웹브라우저 창을 닫는 방법
선행조건
- 윈도우에 "Exit" 타입의 아웃바운드 플러그에 파라미터 "URL"을 string 타입으로 만듭니다.
- 윈도우는 "Properties" 탭의 "Used Controllers/Components"에 추가 합니다.
DATA cached_response TYPE REF TO if_http_response.
DATA lv_str_java_script TYPE string.
DATA lv_file_content TYPE xstring.
DATA lv_host TYPE string.
DATA lv_port TYPE string.
DATA lv_protocol TYPE string.
DATA url TYPE string.
DATA guid TYPE guid_32.
lv_str_java_script = ''.
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = lv_str_java_script
IMPORTING
buffer = lv_file_content.
CREATE OBJECT cached_response
TYPE
cl_http_response
EXPORTING
add_c_msg = 1.
cached_response->set_data( lv_file_content ).
cached_response->set_header_field( name = if_http_header_fields=>content_type
value = 'text/html' ).
cached_response->set_status( code = 200 reason = 'OK' ).
***Set the Cache Timeout - 60 seconds
cached_response->server_cache_expire_rel( expires_rel = 60 ).
CALL METHOD cl_http_server=>get_location
EXPORTING
server = cl_wdr_task=>server
IMPORTING
host = lv_host
port = lv_port
out_protocol = lv_protocol.
***Using Guid as random filename
CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_32 = guid.
CONCATENATE
lv_protocol '://' lv_host ':' lv_port '/sap/bc/webdynpro/sap/'
guid '.html'
INTO url.
cl_http_server=>server_cache_upload( url = url
response = cached_response ).
DATA lo_win TYPE REF TO ig_ .
lo_win = wd_this->get__ctr( ).
lo_win->fire__plg(
url = url " string
).
[주의: 위 코드는 파이어폭스에서 동작하지 않습니다. 파이어폭스는 웹브라우저를 닫는 스크립트를 지원하지 않습니다]
|
이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://sites.google.com/site/vivekgoenka/web-dynpro-abap/sample-codes