Änderungen von Dokument 08 Schnittstelle ONYX Reporter
Zuletzt geändert von Carina Enke am 13.02.2024
Von Version 398.1
bearbeitet von Carina Enke
am 13.02.2024
am 13.02.2024
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 399.1
bearbeitet von Carina Enke
am 13.02.2024
am 13.02.2024
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,3 +1,1151 @@ 1 +(% data-xwiki-non-generated-content="java.util.List" %) 2 +((( 3 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 4 + 5 +(% data-xwiki-non-generated-content="java.util.List" %) 6 +((( 7 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 8 + 9 +(% data-xwiki-non-generated-content="java.util.List" %) 10 +((( 11 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 12 +))) 13 + 14 +{{layout-cell}} 15 + 16 +{{/layout-cell}} 17 + 18 +(% data-xwiki-non-generated-content="java.util.List" %) 19 +((( 20 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 21 + 22 +(% data-xwiki-non-generated-content="java.util.List" %) 23 +((( 24 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 25 + 26 +{{toc start="2"/}} 27 + 28 + **Weitere Informationen:** 29 + 30 +* [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]] 31 +))) 32 + 33 +{{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}} 34 +{{toc start="2"/}} 35 + 36 + **Weitere Informationen:** 37 + 38 +* [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]] 39 +{{/panel}} 40 +))) 41 + 42 +{{layout-cell}} 43 +{{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}} 44 +{{toc start="2"/}} 45 + 46 + **Weitere Informationen:** 47 + 48 +* [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]] 49 +{{/panel}} 50 +{{/layout-cell}} 51 +))) 52 + 53 +{{layout-section ac:type="two_right_sidebar"}} 54 +{{layout-cell}} 55 + 56 +{{/layout-cell}} 57 + 58 +{{layout-cell}} 59 +{{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}} 60 +{{toc start="2"/}} 61 + 62 + **Weitere Informationen:** 63 + 64 +* [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]] 65 +{{/panel}} 66 +{{/layout-cell}} 67 +{{/layout-section}} 68 + 69 +(% data-xwiki-non-generated-content="java.util.List" %) 70 +((( 71 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 72 + 73 +(% data-xwiki-non-generated-content="java.util.List" %) 74 +((( 75 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 76 + 77 +== Allgemeines == 78 + 79 +Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen: 80 + 81 +(% class="wrapped" %) 82 +|((( 83 +armSite 84 +)))|((( 85 +Anmeldung von Folgerequests beim ONYX Reporter. 86 +))) 87 +|((( 88 +initiateSite 89 +)))|((( 90 +Initiiert die Reporter-Session (Übertragung des CPs). 91 +))) 92 +|((( 93 +disarmSite 94 +)))|((( 95 +Freigabe von allen Reporter-Ressourcen für diese Session. 96 +))) 97 +|((( 98 +getResultValues 99 +)))|((( 100 +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. 101 +))) 102 +|(% colspan="1" %)(% colspan="1" %) 103 +((( 104 +getResultVariables 105 +)))|(% colspan="1" %)(% colspan="1" %) 106 +((( 107 +Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich. 108 +))) 109 + 110 +== Anmeldung des LMS == 111 + 112 +(% data-xwiki-non-generated-content="java.util.List" %) 113 +((( 114 +" data-xwiki-parameter-name="title" class="xwiki-metadata-container">Anmeldung des LMS 115 +))) 116 + 117 +{{code language="xml" title="Anmeldung des LMS"}} 118 +@WebMethod(operationName = „armSite") 119 +public String armSite( 120 +@WebParam(name = „version") final Integer version, 121 +@WebParam(name = „userId") final String userId, 122 +@WebParam(name = „optionalRole") final Integer role, 123 +@WebParam(name = „secretToShare") final String secretToShare, 124 +@WebParam(name = „optionalUserLastName") final String userLastName, 125 +@WebParam(name = „optionalUserFirstName") final String userFirstName, 126 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 127 +} 128 +{{/code}} 129 + 130 +=== Parameter armSite === 131 + 132 +(% class="wrapped" %) 133 +|((( 134 +version 135 +)))|((( 136 +Angefragte Version: 1 137 +))) 138 +|((( 139 +userId 140 +)))|((( 141 +UserId des anfragenden Reporter-Benutzers 142 +))) 143 +|((( 144 +optionalRole 145 +)))|((( 146 +Optional. Rolle des Benutzers. 0 = Student, 1= Tutor 147 +))) 148 +|((( 149 +secretToShare 150 +)))|((( 151 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 152 +))) 153 +|((( 154 +optionalUserLastName 155 +)))|((( 156 +Optional. Nachname des Benutzers. 157 +))) 158 +|(% colspan="1" %)(% colspan="1" %) 159 +((( 160 +optionalUserFirstName 161 +)))|(% colspan="1" %)(% colspan="1" %) 162 +((( 163 +Optional. Vorname des Benutzers. 164 +))) 165 +|(% colspan="1" %)(% colspan="1" %) 166 +((( 167 +additionalParams 168 +)))|(% colspan="1" %)(% colspan="1" %) 169 +((( 170 +Reserved for future use. 171 +))) 172 + 173 +=== ReturnValue armSite === 174 + 175 +(% class="wrapped" %) 176 +|((( 177 +String 178 +)))|((( 179 +Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen. 180 +))) 181 + 182 +== Initialisierung durch LMS == 183 + 184 +(% data-xwiki-non-generated-content="java.util.List" %) 185 +((( 186 +" data-xwiki-parameter-name="title" class="xwiki-metadata-container">Initialisierung durch LMS 187 +))) 188 + 189 +{{code language="xml" title="Initialisierung durch LMS"}} 190 +@WebMethod(operationName = „initiateSite") 191 +public String initiateSite( 192 +@WebParam(name = „version") final Integer version, 193 +@WebParam(name = „sessionId") final String sessionId, 194 +@WebParam(name = „secretToShare") final String secretToShare, 195 +@WebParam(name = „students") final ArrayList<ResultsForStudent> students, 196 +@WebParam(name = „optionalContentPackage") final byte[] contentPackage, 197 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 198 +} 199 +{{/code}} 200 + 201 +=== Parameter initiateSite === 202 + 203 +(% class="wrapped" %) 204 +|((( 205 +version 206 +)))|((( 207 +Angefragte Version: 1 208 +))) 209 +|(% colspan="1" %)(% colspan="1" %) 210 +((( 211 +sessionId 212 +)))|(% colspan="1" %)(% colspan="1" %) 213 +((( 214 +SessionId, wie von armSite zurück geliefert. 215 +))) 216 +|((( 217 +secretToShare 218 +)))|((( 219 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 220 +))) 221 +|((( 222 +students 223 +)))|((( 224 +Liste der Studenten mit ihren Resultaten. Siehe unten. 225 +))) 226 +|((( 227 +optionalContentPackage 228 +)))|((( 229 +Optional. Content Package (gezippt) als Byte-Array. 230 +))) 231 +|((( 232 +additionalParams 233 +)))|((( 234 +Reserved for future use. 235 +))) 236 + 237 +=== ReturnValue initiateSite === 238 + 239 +(% class="wrapped" %) 240 +|((( 241 +String 242 +)))|((( 243 +Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern: 244 + 245 +* sid: Session ID, wie von armSite zurück gegeben 246 +* uid: Student ID, wie in initiateSite beim Reporter angemeldet 247 +))) 248 + 249 +{{code language="xml"}} 250 +public class ResultsForStudent { 251 + private String studentId = „"; 252 + private String firstname = „"; 253 + private String lastname = „"; 254 + private String groupname = „"; 255 + private String tutorname = „"; 256 + private File contentFile = null; 257 + private byte[] resultsFile = null; 258 +} 259 +{{/code}} 260 + 261 +== Abmeldung durch LMS == 262 + 263 + 264 +{{code}} 265 +@WebMethod(operationName = „disarmSite") 266 +public Boolean disarmSite( 267 +@WebParam(name = „version") final Integer version, 268 +@WebParam(name = „sessionId") final String sessionId, 269 +@WebParam(name = „secretToShare") final String secretToShare, 270 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 271 +} 272 +{{/code}} 273 + 274 + 275 +=== Parameter disarmSite === 276 + 277 +(% class="wrapped" %) 278 +|((( 279 +version 280 +)))|((( 281 +Angefragte Version: 1 282 +))) 283 +|(% colspan="1" %)(% colspan="1" %) 284 +((( 285 +sessionId 286 +)))|(% colspan="1" %)(% colspan="1" %) 287 +((( 288 +SessionId, wie von armSite zurück geliefert. 289 +))) 290 +|((( 291 +secretToShare 292 +)))|((( 293 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 294 +))) 295 +|((( 296 +additionalParams 297 +)))|((( 298 +Reserved for future use. 299 +))) 300 + 301 +=== ReturnValue disarmSite === 302 + 303 +(% class="wrapped" %) 304 +|((( 305 +Boolean 306 +)))|((( 307 +True bei Erfolg, sonst false. 308 +))) 309 + 310 +== Abfrage von Lernerresultaten durch LMS == 311 + 312 +(% data-xwiki-non-generated-content="java.util.List" %) 313 +((( 314 +" data-xwiki-parameter-name="title" class="xwiki-metadata-container">Abfrage von Lernerresultaten durch LMS 315 +))) 316 + 317 +{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}} 318 + @WebMethod(operationName = „getResultValues") 319 +public HashMapWrapper getResultValues( 320 + @WebParam(name = „version") final Integer version, 321 + @WebParam(name = „sessionId") final String sessionId, 322 + @WebParam(name = „secretToShare") final String secretToShare, 323 + @WebParam(name = „requestedValues") final HashMap<String, String> 324 + requestedValues, 325 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 326 +} 327 +{{/code}} 328 + 329 +=== Parameter getResultValues === 330 + 331 +(% class="wrapped" %) 332 +|((( 333 +version 334 +)))|((( 335 +Angefragte Version: 1 336 +))) 337 +|(% colspan="1" %)(% colspan="1" %) 338 +((( 339 +sessionId 340 +)))|(% colspan="1" %)(% colspan="1" %) 341 +((( 342 +SessionId, wie von armSite zurück geliefert. 343 +))) 344 +|((( 345 +secretToShare 346 +)))|((( 347 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 348 +))) 349 +|((( 350 +requestedValues 351 +)))|((( 352 +Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück. 353 +))) 354 +|((( 355 +additionalParams 356 +)))|((( 357 +Reserved for future use. 358 +))) 359 + 360 +=== ReturnValue getResultValues === 361 + 362 +(% class="wrapped" %) 363 +|((( 364 +HashMap<String, String> 365 +)))|((( 366 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) 367 +))) 368 + 369 +== Abfrage von Ergebnisvariablen durch LMS == 370 + 371 +(% data-xwiki-non-generated-content="java.util.List" %) 372 +((( 373 +" data-xwiki-parameter-name="title" class="xwiki-metadata-container">Abfrage von Ergebnisvariablen durch LMS 374 +))) 375 + 376 +{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}} 377 + @WebMethod(operationName = „getResultVariables") 378 +public HashMapWrapper getResultVariables( 379 +@WebParam(name = „version") final Integer version, 380 +@WebParam(name = „contentPackage") final byte[] contentPackage, 381 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 382 +} 383 +{{/code}} 384 + 385 +=== Parameter getResultVariables === 386 + 387 +(% class="wrapped" %) 388 +|((( 389 +version 390 +)))|((( 391 +Angefragte Version: 1 392 +))) 393 +|((( 394 +contentPackage 395 +)))|((( 396 +Content Package (gezippt) als Byte-Array. 397 +))) 398 +|((( 399 +additionalParams 400 +)))|((( 401 +Reserved for future use. 402 +))) 403 + 404 +=== ReturnValue getResultVariables === 405 + 406 +(% class="wrapped" %) 407 +|((( 408 +HashMap<String, String> 409 +)))|((( 410 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) 411 +))) 412 + 413 +== Wrapper == 414 + 415 +Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden. 416 + 417 +=== Wrapper für die HashMap<String, String> === 418 + 419 +HashMapWrapper.java: 420 + 421 +[[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]] 422 + 423 +[[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]] 424 + 425 +=== Wrapper für die ArrayList<ResultsForStudent> === 426 + 427 +ResultsForStudentsWrapper.java: 428 + 429 +[[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]] 430 +))) 431 + 432 +{{layout-cell}} 433 +== Allgemeines == 434 + 435 +Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen: 436 + 437 +(% class="wrapped" %) 438 +|((( 439 +armSite 440 +)))|((( 441 +Anmeldung von Folgerequests beim ONYX Reporter. 442 +))) 443 +|((( 444 +initiateSite 445 +)))|((( 446 +Initiiert die Reporter-Session (Übertragung des CPs). 447 +))) 448 +|((( 449 +disarmSite 450 +)))|((( 451 +Freigabe von allen Reporter-Ressourcen für diese Session. 452 +))) 453 +|((( 454 +getResultValues 455 +)))|((( 456 +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. 457 +))) 458 +|(% colspan="1" %)(% colspan="1" %) 459 +((( 460 +getResultVariables 461 +)))|(% colspan="1" %)(% colspan="1" %) 462 +((( 463 +Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich. 464 +))) 465 + 466 +== Anmeldung des LMS == 467 + 468 +{{code language="xml" title="Anmeldung des LMS"}} 469 +@WebMethod(operationName = „armSite") 470 +public String armSite( 471 +@WebParam(name = „version") final Integer version, 472 +@WebParam(name = „userId") final String userId, 473 +@WebParam(name = „optionalRole") final Integer role, 474 +@WebParam(name = „secretToShare") final String secretToShare, 475 +@WebParam(name = „optionalUserLastName") final String userLastName, 476 +@WebParam(name = „optionalUserFirstName") final String userFirstName, 477 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 478 +} 479 +{{/code}} 480 + 481 +=== Parameter armSite === 482 + 483 +(% class="wrapped" %) 484 +|((( 485 +version 486 +)))|((( 487 +Angefragte Version: 1 488 +))) 489 +|((( 490 +userId 491 +)))|((( 492 +UserId des anfragenden Reporter-Benutzers 493 +))) 494 +|((( 495 +optionalRole 496 +)))|((( 497 +Optional. Rolle des Benutzers. 0 = Student, 1= Tutor 498 +))) 499 +|((( 500 +secretToShare 501 +)))|((( 502 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 503 +))) 504 +|((( 505 +optionalUserLastName 506 +)))|((( 507 +Optional. Nachname des Benutzers. 508 +))) 509 +|(% colspan="1" %)(% colspan="1" %) 510 +((( 511 +optionalUserFirstName 512 +)))|(% colspan="1" %)(% colspan="1" %) 513 +((( 514 +Optional. Vorname des Benutzers. 515 +))) 516 +|(% colspan="1" %)(% colspan="1" %) 517 +((( 518 +additionalParams 519 +)))|(% colspan="1" %)(% colspan="1" %) 520 +((( 521 +Reserved for future use. 522 +))) 523 + 524 +=== ReturnValue armSite === 525 + 526 +(% class="wrapped" %) 527 +|((( 528 +String 529 +)))|((( 530 +Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen. 531 +))) 532 + 533 +== Initialisierung durch LMS == 534 + 535 +{{code language="xml" title="Initialisierung durch LMS"}} 536 +@WebMethod(operationName = „initiateSite") 537 +public String initiateSite( 538 +@WebParam(name = „version") final Integer version, 539 +@WebParam(name = „sessionId") final String sessionId, 540 +@WebParam(name = „secretToShare") final String secretToShare, 541 +@WebParam(name = „students") final ArrayList<ResultsForStudent> students, 542 +@WebParam(name = „optionalContentPackage") final byte[] contentPackage, 543 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 544 +} 545 +{{/code}} 546 + 547 +=== Parameter initiateSite === 548 + 549 +(% class="wrapped" %) 550 +|((( 551 +version 552 +)))|((( 553 +Angefragte Version: 1 554 +))) 555 +|(% colspan="1" %)(% colspan="1" %) 556 +((( 557 +sessionId 558 +)))|(% colspan="1" %)(% colspan="1" %) 559 +((( 560 +SessionId, wie von armSite zurück geliefert. 561 +))) 562 +|((( 563 +secretToShare 564 +)))|((( 565 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 566 +))) 567 +|((( 568 +students 569 +)))|((( 570 +Liste der Studenten mit ihren Resultaten. Siehe unten. 571 +))) 572 +|((( 573 +optionalContentPackage 574 +)))|((( 575 +Optional. Content Package (gezippt) als Byte-Array. 576 +))) 577 +|((( 578 +additionalParams 579 +)))|((( 580 +Reserved for future use. 581 +))) 582 + 583 +=== ReturnValue initiateSite === 584 + 585 +(% class="wrapped" %) 586 +|((( 587 +String 588 +)))|((( 589 +Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern: 590 + 591 +* sid: Session ID, wie von armSite zurück gegeben 592 +* uid: Student ID, wie in initiateSite beim Reporter angemeldet 593 +))) 594 + 595 +{{code language="xml"}} 596 +public class ResultsForStudent { 597 + private String studentId = „"; 598 + private String firstname = „"; 599 + private String lastname = „"; 600 + private String groupname = „"; 601 + private String tutorname = „"; 602 + private File contentFile = null; 603 + private byte[] resultsFile = null; 604 +} 605 +{{/code}} 606 + 607 +== Abmeldung durch LMS == 608 + 609 + 610 +{{code}} 611 +@WebMethod(operationName = „disarmSite") 612 +public Boolean disarmSite( 613 +@WebParam(name = „version") final Integer version, 614 +@WebParam(name = „sessionId") final String sessionId, 615 +@WebParam(name = „secretToShare") final String secretToShare, 616 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 617 +} 618 +{{/code}} 619 + 620 + 621 +=== Parameter disarmSite === 622 + 623 +(% class="wrapped" %) 624 +|((( 625 +version 626 +)))|((( 627 +Angefragte Version: 1 628 +))) 629 +|(% colspan="1" %)(% colspan="1" %) 630 +((( 631 +sessionId 632 +)))|(% colspan="1" %)(% colspan="1" %) 633 +((( 634 +SessionId, wie von armSite zurück geliefert. 635 +))) 636 +|((( 637 +secretToShare 638 +)))|((( 639 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 640 +))) 641 +|((( 642 +additionalParams 643 +)))|((( 644 +Reserved for future use. 645 +))) 646 + 647 +=== ReturnValue disarmSite === 648 + 649 +(% class="wrapped" %) 650 +|((( 651 +Boolean 652 +)))|((( 653 +True bei Erfolg, sonst false. 654 +))) 655 + 656 +== Abfrage von Lernerresultaten durch LMS == 657 + 658 +{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}} 659 + @WebMethod(operationName = „getResultValues") 660 +public HashMapWrapper getResultValues( 661 + @WebParam(name = „version") final Integer version, 662 + @WebParam(name = „sessionId") final String sessionId, 663 + @WebParam(name = „secretToShare") final String secretToShare, 664 + @WebParam(name = „requestedValues") final HashMap<String, String> 665 + requestedValues, 666 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 667 +} 668 +{{/code}} 669 + 670 +=== Parameter getResultValues === 671 + 672 +(% class="wrapped" %) 673 +|((( 674 +version 675 +)))|((( 676 +Angefragte Version: 1 677 +))) 678 +|(% colspan="1" %)(% colspan="1" %) 679 +((( 680 +sessionId 681 +)))|(% colspan="1" %)(% colspan="1" %) 682 +((( 683 +SessionId, wie von armSite zurück geliefert. 684 +))) 685 +|((( 686 +secretToShare 687 +)))|((( 688 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 689 +))) 690 +|((( 691 +requestedValues 692 +)))|((( 693 +Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück. 694 +))) 695 +|((( 696 +additionalParams 697 +)))|((( 698 +Reserved for future use. 699 +))) 700 + 701 +=== ReturnValue getResultValues === 702 + 703 +(% class="wrapped" %) 704 +|((( 705 +HashMap<String, String> 706 +)))|((( 707 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) 708 +))) 709 + 710 +== Abfrage von Ergebnisvariablen durch LMS == 711 + 712 +{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}} 713 + @WebMethod(operationName = „getResultVariables") 714 +public HashMapWrapper getResultVariables( 715 +@WebParam(name = „version") final Integer version, 716 +@WebParam(name = „contentPackage") final byte[] contentPackage, 717 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 718 +} 719 +{{/code}} 720 + 721 +=== Parameter getResultVariables === 722 + 723 +(% class="wrapped" %) 724 +|((( 725 +version 726 +)))|((( 727 +Angefragte Version: 1 728 +))) 729 +|((( 730 +contentPackage 731 +)))|((( 732 +Content Package (gezippt) als Byte-Array. 733 +))) 734 +|((( 735 +additionalParams 736 +)))|((( 737 +Reserved for future use. 738 +))) 739 + 740 +=== ReturnValue getResultVariables === 741 + 742 +(% class="wrapped" %) 743 +|((( 744 +HashMap<String, String> 745 +)))|((( 746 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) 747 +))) 748 + 749 +== Wrapper == 750 + 751 +Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden. 752 + 753 +=== Wrapper für die HashMap<String, String> === 754 + 755 +HashMapWrapper.java: 756 + 757 +[[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]] 758 + 759 +[[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]] 760 + 761 +=== Wrapper für die ArrayList<ResultsForStudent> === 762 + 763 +ResultsForStudentsWrapper.java: 764 + 765 +[[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]] 766 +{{/layout-cell}} 767 +))) 768 + 769 +{{layout-section ac:type="single"}} 770 +{{layout-cell}} 771 +== Allgemeines == 772 + 773 +Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen: 774 + 775 +(% class="wrapped" %) 776 +|((( 777 +armSite 778 +)))|((( 779 +Anmeldung von Folgerequests beim ONYX Reporter. 780 +))) 781 +|((( 782 +initiateSite 783 +)))|((( 784 +Initiiert die Reporter-Session (Übertragung des CPs). 785 +))) 786 +|((( 787 +disarmSite 788 +)))|((( 789 +Freigabe von allen Reporter-Ressourcen für diese Session. 790 +))) 791 +|((( 792 +getResultValues 793 +)))|((( 794 +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. 795 +))) 796 +|(% colspan="1" %)(% colspan="1" %) 797 +((( 798 +getResultVariables 799 +)))|(% colspan="1" %)(% colspan="1" %) 800 +((( 801 +Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich. 802 +))) 803 + 804 +== Anmeldung des LMS == 805 + 806 +{{code language="xml" title="Anmeldung des LMS"}} 807 +@WebMethod(operationName = „armSite") 808 +public String armSite( 809 +@WebParam(name = „version") final Integer version, 810 +@WebParam(name = „userId") final String userId, 811 +@WebParam(name = „optionalRole") final Integer role, 812 +@WebParam(name = „secretToShare") final String secretToShare, 813 +@WebParam(name = „optionalUserLastName") final String userLastName, 814 +@WebParam(name = „optionalUserFirstName") final String userFirstName, 815 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 816 +} 817 +{{/code}} 818 + 819 +=== Parameter armSite === 820 + 821 +(% class="wrapped" %) 822 +|((( 823 +version 824 +)))|((( 825 +Angefragte Version: 1 826 +))) 827 +|((( 828 +userId 829 +)))|((( 830 +UserId des anfragenden Reporter-Benutzers 831 +))) 832 +|((( 833 +optionalRole 834 +)))|((( 835 +Optional. Rolle des Benutzers. 0 = Student, 1= Tutor 836 +))) 837 +|((( 838 +secretToShare 839 +)))|((( 840 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 841 +))) 842 +|((( 843 +optionalUserLastName 844 +)))|((( 845 +Optional. Nachname des Benutzers. 846 +))) 847 +|(% colspan="1" %)(% colspan="1" %) 848 +((( 849 +optionalUserFirstName 850 +)))|(% colspan="1" %)(% colspan="1" %) 851 +((( 852 +Optional. Vorname des Benutzers. 853 +))) 854 +|(% colspan="1" %)(% colspan="1" %) 855 +((( 856 +additionalParams 857 +)))|(% colspan="1" %)(% colspan="1" %) 858 +((( 859 +Reserved for future use. 860 +))) 861 + 862 +=== ReturnValue armSite === 863 + 864 +(% class="wrapped" %) 865 +|((( 866 +String 867 +)))|((( 868 +Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen. 869 +))) 870 + 871 +== Initialisierung durch LMS == 872 + 873 +{{code language="xml" title="Initialisierung durch LMS"}} 874 +@WebMethod(operationName = „initiateSite") 875 +public String initiateSite( 876 +@WebParam(name = „version") final Integer version, 877 +@WebParam(name = „sessionId") final String sessionId, 878 +@WebParam(name = „secretToShare") final String secretToShare, 879 +@WebParam(name = „students") final ArrayList<ResultsForStudent> students, 880 +@WebParam(name = „optionalContentPackage") final byte[] contentPackage, 881 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 882 +} 883 +{{/code}} 884 + 885 +=== Parameter initiateSite === 886 + 887 +(% class="wrapped" %) 888 +|((( 889 +version 890 +)))|((( 891 +Angefragte Version: 1 892 +))) 893 +|(% colspan="1" %)(% colspan="1" %) 894 +((( 895 +sessionId 896 +)))|(% colspan="1" %)(% colspan="1" %) 897 +((( 898 +SessionId, wie von armSite zurück geliefert. 899 +))) 900 +|((( 901 +secretToShare 902 +)))|((( 903 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 904 +))) 905 +|((( 906 +students 907 +)))|((( 908 +Liste der Studenten mit ihren Resultaten. Siehe unten. 909 +))) 910 +|((( 911 +optionalContentPackage 912 +)))|((( 913 +Optional. Content Package (gezippt) als Byte-Array. 914 +))) 915 +|((( 916 +additionalParams 917 +)))|((( 918 +Reserved for future use. 919 +))) 920 + 921 +=== ReturnValue initiateSite === 922 + 923 +(% class="wrapped" %) 924 +|((( 925 +String 926 +)))|((( 927 +Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern: 928 + 929 +* sid: Session ID, wie von armSite zurück gegeben 930 +* uid: Student ID, wie in initiateSite beim Reporter angemeldet 931 +))) 932 + 933 +{{code language="xml"}} 934 +public class ResultsForStudent { 935 + private String studentId = „"; 936 + private String firstname = „"; 937 + private String lastname = „"; 938 + private String groupname = „"; 939 + private String tutorname = „"; 940 + private File contentFile = null; 941 + private byte[] resultsFile = null; 942 +} 943 +{{/code}} 944 + 945 +== Abmeldung durch LMS == 946 + 947 + 948 +{{code}} 949 +@WebMethod(operationName = „disarmSite") 950 +public Boolean disarmSite( 951 +@WebParam(name = „version") final Integer version, 952 +@WebParam(name = „sessionId") final String sessionId, 953 +@WebParam(name = „secretToShare") final String secretToShare, 954 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 955 +} 956 +{{/code}} 957 + 958 + 959 +=== Parameter disarmSite === 960 + 961 +(% class="wrapped" %) 962 +|((( 963 +version 964 +)))|((( 965 +Angefragte Version: 1 966 +))) 967 +|(% colspan="1" %)(% colspan="1" %) 968 +((( 969 +sessionId 970 +)))|(% colspan="1" %)(% colspan="1" %) 971 +((( 972 +SessionId, wie von armSite zurück geliefert. 973 +))) 974 +|((( 975 +secretToShare 976 +)))|((( 977 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 978 +))) 979 +|((( 980 +additionalParams 981 +)))|((( 982 +Reserved for future use. 983 +))) 984 + 985 +=== ReturnValue disarmSite === 986 + 987 +(% class="wrapped" %) 988 +|((( 989 +Boolean 990 +)))|((( 991 +True bei Erfolg, sonst false. 992 +))) 993 + 994 +== Abfrage von Lernerresultaten durch LMS == 995 + 996 +{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}} 997 + @WebMethod(operationName = „getResultValues") 998 +public HashMapWrapper getResultValues( 999 + @WebParam(name = „version") final Integer version, 1000 + @WebParam(name = „sessionId") final String sessionId, 1001 + @WebParam(name = „secretToShare") final String secretToShare, 1002 + @WebParam(name = „requestedValues") final HashMap<String, String> 1003 + requestedValues, 1004 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 1005 +} 1006 +{{/code}} 1007 + 1008 +=== Parameter getResultValues === 1009 + 1010 +(% class="wrapped" %) 1011 +|((( 1012 +version 1013 +)))|((( 1014 +Angefragte Version: 1 1015 +))) 1016 +|(% colspan="1" %)(% colspan="1" %) 1017 +((( 1018 +sessionId 1019 +)))|(% colspan="1" %)(% colspan="1" %) 1020 +((( 1021 +SessionId, wie von armSite zurück geliefert. 1022 +))) 1023 +|((( 1024 +secretToShare 1025 +)))|((( 1026 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 1027 +))) 1028 +|((( 1029 +requestedValues 1030 +)))|((( 1031 +Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück. 1032 +))) 1033 +|((( 1034 +additionalParams 1035 +)))|((( 1036 +Reserved for future use. 1037 +))) 1038 + 1039 +=== ReturnValue getResultValues === 1040 + 1041 +(% class="wrapped" %) 1042 +|((( 1043 +HashMap<String, String> 1044 +)))|((( 1045 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) 1046 +))) 1047 + 1048 +== Abfrage von Ergebnisvariablen durch LMS == 1049 + 1050 +{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}} 1051 + @WebMethod(operationName = „getResultVariables") 1052 +public HashMapWrapper getResultVariables( 1053 +@WebParam(name = „version") final Integer version, 1054 +@WebParam(name = „contentPackage") final byte[] contentPackage, 1055 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 1056 +} 1057 +{{/code}} 1058 + 1059 +=== Parameter getResultVariables === 1060 + 1061 +(% class="wrapped" %) 1062 +|((( 1063 +version 1064 +)))|((( 1065 +Angefragte Version: 1 1066 +))) 1067 +|((( 1068 +contentPackage 1069 +)))|((( 1070 +Content Package (gezippt) als Byte-Array. 1071 +))) 1072 +|((( 1073 +additionalParams 1074 +)))|((( 1075 +Reserved for future use. 1076 +))) 1077 + 1078 +=== ReturnValue getResultVariables === 1079 + 1080 +(% class="wrapped" %) 1081 +|((( 1082 +HashMap<String, String> 1083 +)))|((( 1084 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) 1085 +))) 1086 + 1087 +== Wrapper == 1088 + 1089 +Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden. 1090 + 1091 +=== Wrapper für die HashMap<String, String> === 1092 + 1093 +HashMapWrapper.java: 1094 + 1095 +[[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]] 1096 + 1097 +[[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]] 1098 + 1099 +=== Wrapper für die ArrayList<ResultsForStudent> === 1100 + 1101 +ResultsForStudentsWrapper.java: 1102 + 1103 +[[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]] 1104 +{{/layout-cell}} 1105 +{{/layout-section}} 1106 + 1107 +(% data-xwiki-non-generated-content="java.util.List" %) 1108 +((( 1109 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 1110 + 1111 +(% data-xwiki-non-generated-content="java.util.List" %) 1112 +((( 1113 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 1114 +))) 1115 + 1116 +{{layout-cell}} 1117 + 1118 +{{/layout-cell}} 1119 + 1120 +(% data-xwiki-non-generated-content="java.util.List" %) 1121 +((( 1122 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container"> 1123 + 1124 +====== relevante Links: ====== 1125 + 1126 +* [[ONYX Player Interface>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]] 1127 +))) 1128 + 1129 +{{layout-cell}} 1130 +====== relevante Links: ====== 1131 + 1132 +* [[ONYX Player Interface>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]] 1133 +{{/layout-cell}} 1134 +))) 1135 + 1136 +{{layout-section ac:type="two_right_sidebar"}} 1137 +{{layout-cell}} 1138 + 1139 +{{/layout-cell}} 1140 + 1141 +{{layout-cell}} 1142 +====== relevante Links: ====== 1143 + 1144 +* [[ONYX Player Interface>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]] 1145 +{{/layout-cell}} 1146 +{{/layout-section}} 1147 +))) 1148 + 1 1 {{layout}} 2 2 {{layout-section ac:type="two_right_sidebar"}} 3 3 {{layout-cell}}