Skip to content

Commit a5a06c3

Browse files
committed
update
1 parent e6b6659 commit a5a06c3

13 files changed

+276
-93
lines changed

src/01/package.devc.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
44
<asx:values>
55
<DEVC>
6-
<CTEXT>amc/apc wrapper</CTEXT>
6+
<CTEXT>websocket wrapper</CTEXT>
77
</DEVC>
88
</asx:values>
99
</asx:abap>

src/01/z2ui5_amc_draft.samc.xml

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,39 +28,23 @@
2828
<VERSION>A</VERSION>
2929
<NR>1</NR>
3030
<CHANNEL_ID>/main</CHANNEL_ID>
31-
<PROGRAM_ID>Z2UI5_RE_DRAFT_TEST_AMC_01</PROGRAM_ID>
32-
<ACTIVITY>R</ACTIVITY>
31+
<PROGRAM_ID>Z2UI5ADD_CL_WS_CHANNEL_WRAPPERCP</PROGRAM_ID>
32+
<ACTIVITY>C</ACTIVITY>
3333
</AMC_CHNL_AUTH>
3434
<AMC_CHNL_AUTH>
3535
<APPLICATION_ID>Z2UI5_AMC_DRAFT</APPLICATION_ID>
3636
<VERSION>A</VERSION>
3737
<NR>2</NR>
3838
<CHANNEL_ID>/main</CHANNEL_ID>
39-
<PROGRAM_ID>Z2UI5_RE_DRAFT_TEST_AMC_02</PROGRAM_ID>
39+
<PROGRAM_ID>Z2UI5ADD_CL_WS_CHANNEL_WRAPPERCP</PROGRAM_ID>
4040
<ACTIVITY>S</ACTIVITY>
4141
</AMC_CHNL_AUTH>
4242
<AMC_CHNL_AUTH>
4343
<APPLICATION_ID>Z2UI5_AMC_DRAFT</APPLICATION_ID>
4444
<VERSION>A</VERSION>
4545
<NR>3</NR>
4646
<CHANNEL_ID>/main</CHANNEL_ID>
47-
<PROGRAM_ID>Z2UI5_CL_DRAFT_APC_WSP_EXT====CP</PROGRAM_ID>
48-
<ACTIVITY>C</ACTIVITY>
49-
</AMC_CHNL_AUTH>
50-
<AMC_CHNL_AUTH>
51-
<APPLICATION_ID>Z2UI5_AMC_DRAFT</APPLICATION_ID>
52-
<VERSION>A</VERSION>
53-
<NR>4</NR>
54-
<CHANNEL_ID>/main</CHANNEL_ID>
55-
<PROGRAM_ID>Z2UI5_CL_DRAFT_CHANNEL_WRAPPERCP</PROGRAM_ID>
56-
<ACTIVITY>S</ACTIVITY>
57-
</AMC_CHNL_AUTH>
58-
<AMC_CHNL_AUTH>
59-
<APPLICATION_ID>Z2UI5_AMC_DRAFT</APPLICATION_ID>
60-
<VERSION>A</VERSION>
61-
<NR>5</NR>
62-
<CHANNEL_ID>/main</CHANNEL_ID>
63-
<PROGRAM_ID>Z2UI5_CL_DRAFT_CHANNEL_WRAPPERCP</PROGRAM_ID>
47+
<PROGRAM_ID>Z2UI5ADD_CL_WS_CHANNEL_WRAPPERCP</PROGRAM_ID>
6448
<ACTIVITY>R</ACTIVITY>
6549
</AMC_CHNL_AUTH>
6650
</AUTHORITIES>

src/01/z2ui5_apc_draft.sapc.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<APPLICATION_ID>Z2UI5_APC_DRAFT</APPLICATION_ID>
88
<VERSION>A</VERSION>
99
<PATH>/sap/bc/apc/sap/z2ui5_apc_draft</PATH>
10-
<CLASS_NAME>Z2UI5_CL_DRAFT_APC_WSP_EXT</CLASS_NAME>
10+
<CLASS_NAME>Z2UI5ADD_CL_WS_CHANNEL_WRAPPER</CLASS_NAME>
1111
<APPLICATION_VERSION>1</APPLICATION_VERSION>
1212
</HEADER>
1313
<TEXT>

src/01/z2ui5_cl_draft_apc_wsp_ext.clas.abap

Lines changed: 0 additions & 62 deletions
This file was deleted.

src/01/z2ui5add_cl_ws_channel_wrapper.clas.abap

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
CLASS z2ui5add_cl_ws_channel_wrapper DEFINITION
2-
PUBLIC
1+
CLASS z2ui5add_cl_ws_channel_wrapper DEFINITION PUBLIC
2+
INHERITING FROM cl_apc_wsp_ext_stateless_base
33
FINAL
44
CREATE PUBLIC .
55

66
PUBLIC SECTION.
77

8+
METHODS if_apc_wsp_extension~on_start
9+
REDEFINITION .
10+
METHODS if_apc_wsp_extension~on_message
11+
REDEFINITION .
12+
813
INTERFACES if_amc_message_receiver_text.
914

1015
CLASS-DATA cv_ws_path TYPE string VALUE `/sap/bc/apc/sap/z2ui5_apc_draft`.
@@ -21,10 +26,10 @@ CLASS z2ui5add_cl_ws_channel_wrapper DEFINITION
2126
RETURNING
2227
VALUE(result) TYPE string_table.
2328

24-
2529
CLASS-METHODS send_text
2630
IMPORTING
2731
message TYPE clike.
32+
2833
PROTECTED SECTION.
2934
PRIVATE SECTION.
3035
ENDCLASS.
@@ -102,4 +107,40 @@ CLASS z2ui5add_cl_ws_channel_wrapper IMPLEMENTATION.
102107
ADD 1 TO gv_nr.
103108
ENDMETHOD.
104109

110+
METHOD if_apc_wsp_extension~on_message.
111+
112+
ENDMETHOD.
113+
114+
115+
METHOD if_apc_wsp_extension~on_start.
116+
117+
DATA: lt_form_fields TYPE tihttpnvp.
118+
DATA: lt_head_fields TYPE tihttpnvp.
119+
DATA: lt_cookie TYPE tihttpcki.
120+
121+
TRY.
122+
123+
DATA(lo_req) = i_context->get_initial_request( ).
124+
lo_req->get_form_fields(
125+
CHANGING
126+
c_fields = lt_form_fields ).
127+
lo_req->get_header_fields(
128+
CHANGING
129+
c_fields = lt_head_fields ).
130+
lo_req->get_cookies(
131+
CHANGING
132+
c_cookies = lt_cookie
133+
).
134+
* CATCH cx_apc_error. "
135+
136+
i_context->get_binding_manager( )->bind_amc_message_consumer(
137+
i_application_id = 'Z2UI5_AMC_DRAFT'
138+
i_channel_id = '/main' ).
139+
140+
CATCH cx_apc_error INTO DATA(exc).
141+
MESSAGE exc->get_text( ) TYPE 'X'.
142+
ENDTRY.
143+
144+
ENDMETHOD.
145+
105146
ENDCLASS.

src/02/package.devc.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
44
<asx:values>
55
<DEVC>
6-
<CTEXT>amc/apc tests</CTEXT>
6+
<CTEXT>websocket tests</CTEXT>
77
</DEVC>
88
</asx:values>
99
</asx:abap>

src/02/z2ui5add_cl_ws_test_send.clas.abap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ CLASS z2ui5add_cl_ws_test_send IMPLEMENTATION.
6666
WHEN 'BUTTON_POST'.
6767

6868
TRY.
69-
z2ui5_cl_draft_channel_wrapper=>send_text( message ).
69+
z2ui5add_cl_ws_channel_wrapper=>send_text( message ).
7070
client->message_toast_display( `Message send!` ).
7171
CATCH cx_root INTO DATA(lx).
7272
client->message_box_display( lx->get_text( ) ).

src/03/package.devc.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
44
<asx:values>
55
<DEVC>
6-
<CTEXT>custom control</CTEXT>
6+
<CTEXT>websocket custom control</CTEXT>
77
</DEVC>
88
</asx:values>
99
</asx:abap>
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
CLASS z2ui5add_cl_cc_websocket DEFINITION
2+
PUBLIC
3+
FINAL
4+
CREATE PUBLIC .
5+
6+
PUBLIC SECTION.
7+
8+
CLASS-METHODS get_js
9+
RETURNING
10+
VALUE(result) TYPE string.
11+
12+
PROTECTED SECTION.
13+
PRIVATE SECTION.
14+
ENDCLASS.
15+
16+
17+
18+
CLASS z2ui5add_cl_cc_websocket IMPLEMENTATION.
19+
20+
METHOD get_js.
21+
22+
result = `if (!z2ui5.Timer) {sap.ui.define("z2ui5/Websocket" , [` && |\n| &&
23+
` "sap/ui/core/Control"` && |\n| &&
24+
`], (Control) => {` && |\n| &&
25+
` "use strict";` && |\n| &&
26+
|\n| &&
27+
` return Control.extend("z2ui5.Websocket", {` && |\n| &&
28+
` metadata : {` && |\n| &&
29+
` properties: {` && |\n| &&
30+
` value: {` && |\n| &&
31+
` type: "string",` && |\n| &&
32+
` defaultValue: ""` && |\n| &&
33+
` },` && |\n| &&
34+
` path: {` && |\n| &&
35+
` type: "string",` && |\n| &&
36+
` defaultValue: "` && z2ui5add_cl_ws_channel_wrapper=>cv_ws_path && `"` && |\n| &&
37+
` },` && |\n| &&
38+
` checkActive: {` && |\n| &&
39+
` type: "boolean",` && |\n| &&
40+
` defaultValue: true` && |\n| &&
41+
` },` && |\n| &&
42+
` checkRepeat: {` && |\n| &&
43+
` type: "boolean",` && |\n| &&
44+
` defaultValue: false` && |\n| &&
45+
` },` && |\n| &&
46+
` },` && |\n| &&
47+
` events: {` && |\n| &&
48+
` "received": { ` && |\n| &&
49+
` allowPreventDefault: true,` && |\n| &&
50+
` parameters: {},` && |\n| &&
51+
` }` && |\n| &&
52+
` }` && |\n| &&
53+
` },` && |\n| &&
54+
` onAfterRendering() {` && |\n| &&
55+
` },` && |\n| &&
56+
` startWebsocket( oControl){` && |\n| &&
57+
` ` && |\n| &&
58+
` if ( oControl.getProperty("checkActive") == false ){ return; }` && |\n| &&
59+
` if ( oControl?.isActive == true ){ return; }` && |\n| &&
60+
` oControl.isActive = true;` && |\n| &&
61+
` oControl.ws = new WebSocket(` && |\n| &&
62+
` "ws://" + window.location.host + oControl.getProperty("path")` && |\n| &&
63+
` );` && |\n| &&
64+
|\n| &&
65+
` oControl.ws.onopen = function() {` && |\n| &&
66+
` alert("WebSocket opened");` && |\n| &&
67+
` };` && |\n| &&
68+
|\n| &&
69+
` oControl.ws.onmessage = function (msg) {` && |\n| &&
70+
` oControl.setValue(msg.data);` && |\n| &&
71+
` oControl.fireReceived();` && |\n| &&
72+
` };` && |\n| &&
73+
|\n| &&
74+
` oControl.ws.onclose = function() {` && |\n| &&
75+
` oControl.isActive = false;` && |\n| &&
76+
` alert("WebSocket closed");` && |\n| &&
77+
` };` && |\n| &&
78+
|\n| &&
79+
` oControl.ws.onerror = function() {` && |\n| &&
80+
` alert("WebSocket-Error");` && |\n| &&
81+
` };` && |\n| &&
82+
` },` && |\n| &&
83+
` renderer(oRm, oControl) {` && |\n| &&
84+
` oControl.startWebsocket( oControl );` && |\n| &&
85+
` }` && |\n| &&
86+
` });` && |\n| &&
87+
`}); }`.
88+
89+
ENDMETHOD.
90+
ENDCLASS.

src/01/z2ui5_cl_draft_apc_wsp_ext.clas.xml renamed to src/03/z2ui5add_cl_cc_websocket.clas.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
44
<asx:values>
55
<VSEOCLASS>
6-
<CLSNAME>Z2UI5_CL_DRAFT_APC_WSP_EXT</CLSNAME>
6+
<CLSNAME>Z2UI5ADD_CL_CC_WEBSOCKET</CLSNAME>
77
<LANGU>E</LANGU>
8-
<DESCRIPT>abap push channel</DESCRIPT>
8+
<DESCRIPT>cc - websocket</DESCRIPT>
99
<STATE>1</STATE>
1010
<CLSCCINCL>X</CLSCCINCL>
1111
<FIXPT>X</FIXPT>

0 commit comments

Comments
 (0)