Version 402.2 von Carina Enke am 15.11.2025

Zeige letzte Bearbeiter
1 {{section}}
2 {{column width="60%"}}
3
4
5 {{/column}}
6
7 {{column width="30%"}}
8 {{panel title="Inhalt"}}
9 {{toc start="2"/}}
10 {{/panel}}
11
12
13
14 {{panel title="Weiterführende Inhalte"}}
15 * [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
16
17 {{/panel}}
18
19 {{/column}}
20 {{/section}}
21
22
23 == Allgemeines ==
24
25 Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen:
26
27 (% class="wrapped" %)
28 |(((
29 armSite
30 )))|(((
31 Anmeldung von Folgerequests beim ONYX Reporter.
32 )))
33 |(((
34 initiateSite
35 )))|(((
36 Initiiert die Reporter-Session (Übertragung des CPs).
37 )))
38 |(((
39 disarmSite
40 )))|(((
41 Freigabe von allen Reporter-Ressourcen für diese Session.
42 )))
43 |(((
44 getResultValues
45 )))|(((
46 Gibt alle bzw. die angeforderten Resultate für den Test zurück. Voraussetzung: Es ist nur exakt ein Student in der bei initiateSite übertragenen Liste.
47 )))
48 |(% colspan="1" %)(% colspan="1" %)
49 (((
50 getResultVariables
51 )))|(% colspan="1" %)(% colspan="1" %)
52 (((
53 Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich.
54 )))
55
56 == Anmeldung des LMS ==
57
58 {{code language="xml" title="Anmeldung des LMS"}}
59 @WebMethod(operationName = „armSite")
60 public String armSite(
61 @WebParam(name = „version") final Integer version,
62 @WebParam(name = „userId") final String userId,
63 @WebParam(name = „optionalRole") final Integer role,
64 @WebParam(name = „secretToShare") final String secretToShare,
65 @WebParam(name = „optionalUserLastName") final String userLastName,
66 @WebParam(name = „optionalUserFirstName") final String userFirstName,
67 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
68 }
69 {{/code}}
70
71 === Parameter armSite ===
72
73 (% class="wrapped" %)
74 |(((
75 version
76 )))|(((
77 Angefragte Version: 1
78 )))
79 |(((
80 userId
81 )))|(((
82 UserId des anfragenden Reporter-Benutzers
83 )))
84 |(((
85 optionalRole
86 )))|(((
87 Optional. Rolle des Benutzers. 0 = Student, 1= Tutor
88 )))
89 |(((
90 secretToShare
91 )))|(((
92 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
93 )))
94 |(((
95 optionalUserLastName
96 )))|(((
97 Optional. Nachname des Benutzers.
98 )))
99 |(% colspan="1" %)(% colspan="1" %)
100 (((
101 optionalUserFirstName
102 )))|(% colspan="1" %)(% colspan="1" %)
103 (((
104 Optional. Vorname des Benutzers.
105 )))
106 |(% colspan="1" %)(% colspan="1" %)
107 (((
108 additionalParams
109 )))|(% colspan="1" %)(% colspan="1" %)
110 (((
111 Reserved for future use.
112 )))
113
114 === ReturnValue armSite ===
115
116 (% class="wrapped" %)
117 |(((
118 String
119 )))|(((
120 Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen.
121 )))
122
123 == Initialisierung durch LMS ==
124
125 {{code language="xml" title="Initialisierung durch LMS"}}
126 @WebMethod(operationName = „initiateSite")
127 public String initiateSite(
128 @WebParam(name = „version") final Integer version,
129 @WebParam(name = „sessionId") final String sessionId,
130 @WebParam(name = „secretToShare") final String secretToShare,
131 @WebParam(name = „students") final ArrayList<ResultsForStudent> students,
132 @WebParam(name = „optionalContentPackage") final byte[] contentPackage,
133 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
134 }
135 {{/code}}
136
137 === Parameter initiateSite ===
138
139 (% class="wrapped" %)
140 |(((
141 version
142 )))|(((
143 Angefragte Version: 1
144 )))
145 |(% colspan="1" %)(% colspan="1" %)
146 (((
147 sessionId
148 )))|(% colspan="1" %)(% colspan="1" %)
149 (((
150 SessionId, wie von armSite zurück geliefert.
151 )))
152 |(((
153 secretToShare
154 )))|(((
155 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
156 )))
157 |(((
158 students
159 )))|(((
160 Liste der Studenten mit ihren Resultaten. Siehe unten.
161 )))
162 |(((
163 optionalContentPackage
164 )))|(((
165 Optional. Content Package (gezippt) als Byte-Array.
166 )))
167 |(((
168 additionalParams
169 )))|(((
170 Reserved for future use.
171 )))
172
173 === ReturnValue initiateSite ===
174
175 (% class="wrapped" %)
176 |(((
177 String
178 )))|(((
179 Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern:
180
181 * sid: Session ID, wie von armSite zurück gegeben
182 * uid: Student ID, wie in initiateSite beim Reporter angemeldet
183 )))
184
185 {{code language="xml"}}
186 public class ResultsForStudent {
187    private String studentId = „";
188    private String firstname = „";
189    private String lastname = „";
190    private String groupname = „";
191    private String tutorname = „";
192    private File contentFile = null;
193    private byte[] resultsFile = null;
194 }
195 {{/code}}
196
197 == Abmeldung durch LMS ==
198
199
200 {{code}}
201 @WebMethod(operationName = „disarmSite")
202 public Boolean disarmSite(
203 @WebParam(name = „version") final Integer version,
204 @WebParam(name = „sessionId") final String sessionId,
205 @WebParam(name = „secretToShare") final String secretToShare,
206 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
207 }
208 {{/code}}
209
210
211 === Parameter disarmSite ===
212
213 (% class="wrapped" %)
214 |(((
215 version
216 )))|(((
217 Angefragte Version: 1
218 )))
219 |(% colspan="1" %)(% colspan="1" %)
220 (((
221 sessionId
222 )))|(% colspan="1" %)(% colspan="1" %)
223 (((
224 SessionId, wie von armSite zurück geliefert.
225 )))
226 |(((
227 secretToShare
228 )))|(((
229 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
230 )))
231 |(((
232 additionalParams
233 )))|(((
234 Reserved for future use.
235 )))
236
237 === ReturnValue disarmSite ===
238
239 |(((
240 Boolean
241 )))|(((
242 True bei Erfolg, sonst false.
243 )))
244
245 == Abfrage von Lernerresultaten durch LMS ==
246
247 {{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}}
248  @WebMethod(operationName = „getResultValues")
249 public HashMapWrapper getResultValues(
250 @WebParam(name = „version") final Integer version,
251 @WebParam(name = „sessionId") final String sessionId,
252 @WebParam(name = „secretToShare") final String secretToShare,
253 @WebParam(name = „requestedValues") final HashMap<String, String>
254 requestedValues,
255 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
256 }
257 {{/code}}
258
259 === Parameter getResultValues ===
260
261 |(((
262 version
263 )))|(((
264 Angefragte Version: 1
265 )))
266 |(% colspan="1" %)(% colspan="1" %)
267 (((
268 sessionId
269 )))|(% colspan="1" %)(% colspan="1" %)
270 (((
271 SessionId, wie von armSite zurück geliefert.
272 )))
273 |(((
274 secretToShare
275 )))|(((
276 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
277 )))
278 |(((
279 requestedValues
280 )))|(((
281 Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück.
282 )))
283 |(((
284 additionalParams
285 )))|(((
286 Reserved for future use.
287 )))
288
289 === ReturnValue getResultValues ===
290
291 |(((
292 HashMap<String, String>
293 )))|(((
294 Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
295 )))
296
297 == Abfrage von Ergebnisvariablen durch LMS ==
298
299 {{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}}
300  @WebMethod(operationName = „getResultVariables")
301 public HashMapWrapper getResultVariables(
302 @WebParam(name = „version") final Integer version,
303 @WebParam(name = „contentPackage") final byte[] contentPackage,
304 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
305 }
306 {{/code}}
307
308 === Parameter getResultVariables ===
309
310 |(((
311 version
312 )))|(((
313 Angefragte Version: 1
314 )))
315 |(((
316 contentPackage
317 )))|(((
318 Content Package (gezippt) als Byte-Array.
319 )))
320 |(((
321 additionalParams
322 )))|(((
323 Reserved for future use.
324 )))
325
326 === ReturnValue getResultVariables ===
327
328 |(((
329 HashMap<String, String>
330 )))|(((
331 Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
332 )))
333
334 == Wrapper ==
335
336 Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden.
337
338 === Wrapper für die HashMap<String, String> ===
339
340 HashMapWrapper.java:
341
342 [[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
343
344 [[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
345
346 === Wrapper für die ArrayList<ResultsForStudent> ===
347
348 ResultsForStudentsWrapper.java:
349
350 [[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]