Änderungen von Dokument 08 Schnittstelle ONYX Reporter
Zuletzt geändert von Carina Enke am 24.11.2025
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
-
Objekte (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,4 +2,3 @@ 1 -{{sv-translation language="de"}} 2 2 {{layout}} 3 3 {{layout-section ac:type="two_right_sidebar"}} 4 4 {{layout-cell}} ... ... @@ -6,11 +6,34 @@ 6 6 7 7 8 8 9 -{{toc maxLevel="5" outline="true" absoluteUrl="true" style="square"/}}8 +{{toc style="square" maxLevel="5" outline="true" absoluteUrl="true"/}} 10 10 {{/layout-cell}} 11 11 12 12 {{layout-cell}} 12 +|=(% colspan="1" %)(% colspan="1" %) 13 +((( 14 +Programmversion 15 +)))|(% colspan="1" %)(% colspan="1" %) 16 +((( 13 13 18 +))) 19 +|=((( 20 +Status 21 +)))|((( 22 +(% class="status-macro aui-lozenge aui-lozenge-error" %)ENTWURF 23 +))) 24 +|=((( 25 +Aufgaben 26 +)))|((( 27 + 28 + 29 + 30 +))) 31 +|=((( 32 +JIRA 33 +)))|((( 34 + 35 +))) 14 14 {{/layout-cell}} 15 15 {{/layout-section}} 16 16 ... ... @@ -38,7 +38,9 @@ 38 38 |((( 39 39 getResultValues 40 40 )))|((( 41 -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. 63 +Gibt alle bzw. die angeforderten Resultate für den Test zurück. Voraussetzung: 64 + 65 +Es ist nur exakt ein Student in der bei initiateSite übertragenen Liste. 42 42 ))) 43 43 |(% colspan="1" %)(% colspan="1" %) 44 44 ((( ... ... @@ -50,8 +50,7 @@ 50 50 51 51 == Anmeldung des LMS == 52 52 53 -{{code language="xml" title="Anmeldung des LMS"}} 54 -@WebMethod(operationName = „armSite") 77 +{{code title="Anmeldung des LMS" language="xml"}}@WebMethod(operationName = „armSite") 55 55 public String armSite( 56 56 @WebParam(name = „version") final Integer version, 57 57 @WebParam(name = „userId") final String userId, ... ... @@ -60,649 +60,53 @@ 60 60 @WebParam(name = „optionalUserLastName") final String userLastName, 61 61 @WebParam(name = „optionalUserFirstName") final String userFirstName, 62 62 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 63 -} 64 -{{/code}} 86 +}{{/code}}Parameter armSite 65 65 66 -=== Parameter armSite === 67 - 68 68 |((( 69 - version89 + 70 70 )))|((( 71 - AngefragteVersion: 191 + 72 72 ))) 73 73 |((( 74 - userId94 + 75 75 )))|((( 76 - UserIddes anfragenden Reporter-Benutzers96 + 77 77 ))) 78 78 |((( 79 - optionalRole99 + 80 80 )))|((( 81 - Optional.Rolle des Benutzers. 0 = Student, 1= Tutor101 + 82 82 ))) 83 83 |((( 84 - secretToShare104 + 85 85 )))|((( 86 - Eingeheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.106 + 87 87 ))) 88 88 |((( 89 -optionalUserLastName 90 -)))|((( 91 -Optional. Nachname des Benutzers. 92 -))) 93 -|(% colspan="1" %)(% colspan="1" %) 94 -((( 95 -optionalUserFirstName 96 -)))|(% colspan="1" %)(% colspan="1" %) 97 -((( 98 -Optional. Vorname des Benutzers. 99 -))) 100 -|(% colspan="1" %)(% colspan="1" %) 101 -((( 102 -additionalParams 103 -)))|(% colspan="1" %)(% colspan="1" %) 104 -((( 105 -Reserved for future use. 106 -))) 107 - 108 -=== ReturnValue armSite === 109 - 110 -|((( 111 -String 112 -)))|((( 113 -Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen. 114 -))) 115 - 116 -== Initialisierung durch LMS == 117 - 118 -{{code language="xml" title="Initialisierung durch LMS"}} 119 -@WebMethod(operationName = „initiateSite") 120 -public String initiateSite( 121 -@WebParam(name = „version") final Integer version, 122 -@WebParam(name = „sessionId") final String sessionId, 123 -@WebParam(name = „secretToShare") final String secretToShare, 124 -@WebParam(name = „students") final ArrayList<ResultsForStudent> students, 125 -@WebParam(name = „optionalContentPackage") final byte[] contentPackage, 126 -@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 127 -} 128 -{{/code}} 129 - 130 -=== Parameter initiateSite === 131 - 132 -|((( 133 -version 134 -)))|((( 135 -Angefragte Version: 1 136 -))) 137 -|(% colspan="1" %)(% colspan="1" %) 138 -((( 139 -sessionId 140 -)))|(% colspan="1" %)(% colspan="1" %) 141 -((( 142 -SessionId, wie von armSite zurück geliefert. 143 -))) 144 -|((( 145 -secretToShare 146 -)))|((( 147 -Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 148 -))) 149 -|((( 150 -students 151 -)))|((( 152 -Liste der Studenten mit ihren Resultaten. Siehe unten. 153 -))) 154 -|((( 155 -optionalContentPackage 156 -)))|((( 157 -Optional. Content Package (gezippt) als Byte-Array. 158 -))) 159 -|((( 160 -additionalParams 161 -)))|((( 162 -Reserved for future use. 163 -))) 164 - 165 -=== ReturnValue initiateSite === 166 - 167 -|((( 168 -String 169 -)))|((( 170 -Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern: 171 - 172 -* sid: Session ID, wie von armSite zurück gegeben 173 -* uid: Student ID, wie in initiateSite beim Reporter angemeldet 174 -))) 175 - 176 -{{code language="xml"}} 177 -public class ResultsForStudent { 178 - private String studentId = „"; 179 - private String firstname = „"; 180 - private String lastname = „"; 181 - private String groupname = „"; 182 - private String tutorname = „"; 183 - private File contentFile = null; 184 - private byte[] resultsFile = null; 185 -} 186 -{{/code}} 187 - 188 -== Abmeldung durch LMS == 189 - 190 190 191 - 192 -{{code}} 193 -@WebMethod(operationName = „disarmSite") 194 -public Boolean disarmSite( 195 -@WebParam(name = „version") final Integer version, 196 -@WebParam(name = „sessionId") final String sessionId, 197 -@WebParam(name = „secretToShare") final String secretToShare, 198 -@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 199 -} 200 -{{/code}} 201 - 202 - 203 - 204 -=== Parameter disarmSite === 205 - 206 -|((( 207 -version 208 208 )))|((( 209 - AngefragteVersion: 1111 + 210 210 ))) 211 -|(% colspan="1" %)(% colspan="1" %) 212 -((( 213 -sessionId 214 -)))|(% colspan="1" %)(% colspan="1" %) 215 -((( 216 -SessionId, wie von armSite zurück geliefert. 217 -))) 218 -|((( 219 -secretToShare 220 -)))|((( 221 -Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 222 -))) 223 -|((( 224 -additionalParams 225 -)))|((( 226 -Reserved for future use. 227 -))) 228 228 229 -= ==ReturnValue disarmSite===114 += Überschrift2 = 230 230 231 -|((( 232 -Boolean 233 -)))|((( 234 -True bei Erfolg, sonst false. 235 -))) 236 - 237 -== Abfrage von Lernerresultaten durch LMS == 238 - 239 -{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}} 240 - @WebMethod(operationName = „getResultValues") 241 -public HashMapWrapper getResultValues( 242 - @WebParam(name = „version") final Integer version, 243 - @WebParam(name = „sessionId") final String sessionId, 244 - @WebParam(name = „secretToShare") final String secretToShare, 245 - @WebParam(name = „requestedValues") final HashMap<String, String> 246 - requestedValues, 247 - @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 248 -} 249 -{{/code}} 250 - 251 -=== Parameter getResultValues === 252 - 253 -|((( 254 -version 255 -)))|((( 256 -Angefragte Version: 1 257 -))) 258 -|(% colspan="1" %)(% colspan="1" %) 259 -((( 260 -sessionId 261 -)))|(% colspan="1" %)(% colspan="1" %) 262 -((( 263 -SessionId, wie von armSite zurück geliefert. 264 -))) 265 -|((( 266 -secretToShare 267 -)))|((( 268 -Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. 269 -))) 270 -|((( 271 -requestedValues 272 -)))|((( 273 -Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück. 274 -))) 275 -|((( 276 -additionalParams 277 -)))|((( 278 -Reserved for future use. 279 -))) 280 - 281 -=== ReturnValue getResultValues === 282 - 283 -|((( 284 -HashMap<String, String> 285 -)))|((( 286 -Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) 287 -))) 288 - 289 -== Abfrage von Ergebnisvariablen durch LMS == 290 - 291 -{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}} 292 - @WebMethod(operationName = „getResultVariables") 293 -public HashMapWrapper getResultVariables( 294 -@WebParam(name = „version") final Integer version, 295 -@WebParam(name = „contentPackage") final byte[] contentPackage, 296 -@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 297 -} 298 -{{/code}} 299 - 300 -=== Parameter getResultVariables === 301 - 302 -|((( 303 -version 304 -)))|((( 305 -Angefragte Version: 1 306 -))) 307 -|((( 308 -contentPackage 309 -)))|((( 310 -Content Package (gezippt) als Byte-Array. 311 -))) 312 -|((( 313 -additionalParams 314 -)))|((( 315 -Reserved for future use. 316 -))) 317 - 318 -=== ReturnValue getResultVariables === 319 - 320 -|((( 321 -HashMap<String, String> 322 -)))|((( 323 -Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) 324 -))) 325 - 326 -== Wrapper == 327 - 328 -Da die Übertragung von Maps und Listen über JAX-WS Probleme macht (clientseitig gefüllte Listen werden leer über den WS versandt und kommen daher auch leer serverseitig an), müssen diese gewrappt werden. 329 - 330 -=== Wrapper für die HashMap<String, String> === 331 - 332 -HashMapWrapper.java: 333 - 334 -[[image:attach:HashMapWrapperjava.png]] 335 - 336 -[[image:attach:HashMapWrapperjava2.png]] 337 - 338 -=== Wrapper für die ArrayList<ResultsForStudent> === 339 - 340 -ResultsForStudentsWrapper.java: 341 - 342 -[[image:attach:ResultsForStudentsWrapperjava.png]] 116 +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam fermentum vestibulum est. Cras rhoncus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed quis tortor. Donec non ipsum. Mauris condimentum, odio nec porta tristique, ante neque malesuada massa, in dignissim eros velit at tellus. Donec et risus in ligula eleifend consectetuer. Donec volutpat eleifend augue. Integer gravida sodales leo. Nunc vehicula neque ac erat. Vivamus non nisl. Fusce ac magna. Suspendisse euismod libero eget mauris. 343 343 {{/layout-cell}} 344 344 {{/layout-section}} 345 345 346 346 {{layout-section ac:type="two_right_sidebar"}} 347 347 {{layout-cell}} 348 - 349 -{{/layout-cell}} 122 +====== untergeordnete Seiten: ====== 350 350 351 -{{layout-cell}} 352 -====== relevante Links: ====== 353 353 354 -* [[doc:Schnittstelle ONYX Player]] 355 -{{/layout-cell}} 356 -{{/layout-section}} 357 -{{/layout}} 358 -{{/sv-translation}} 359 359 360 -{{sv-translation language="en"}} 361 -{{layout}} 362 -{{layout-section ac:type="two_equal"}} 363 -{{layout-cell}} 364 -====== Content: ====== 365 - 366 - 367 - 368 -{{toc maxLevel="5" outline="true" absoluteUrl="true" style="square"/}} 126 +{{children all="true"/}} 369 369 {{/layout-cell}} 370 370 371 371 {{layout-cell}} 372 - 373 -{{/layout-cell}} 374 -{{/layout-section}} 130 +====== relevante Links: ====== 375 375 376 -{{layout-section ac:type="single"}} 377 -{{layout-cell}} 378 -== General == 379 - 380 -The API to the ONYX WebReporter enables the communication between the LMS and the reporter. Therefore, a couple of commands will be executed: 381 - 382 -|((( 383 -armSite 384 -)))|((( 385 -Registration of sequence requests at the ONYX reporter 386 -))) 387 -|((( 388 -initiateSite 389 -)))|((( 390 -Initiates the reporter session (transmission of the CP). 391 -))) 392 -|((( 393 -disarmSite 394 -)))|((( 395 -Release of all reporter resources for this session. 396 -))) 397 -|((( 398 -getResultValues 399 -)))|((( 400 -Returns all or all requested results for the test. Condition: there is exactly one student in list transmitted in the initiateSite. 401 -))) 402 -|(% colspan="1" %)(% colspan="1" %) 403 -((( 404 -getResultVariables 405 -)))|(% colspan="1" %)(% colspan="1" %) 406 -((( 407 -Returns all or all requested outcome variables for the test. No armSite, initiateSite or disarmSite is necessary. 408 -))) 409 - 410 -== Connection to the LMS == 411 - 412 -{{code language="xml" title="Anmeldung des LMS"}} 413 -@WebMethod(operationName = „armSite") 414 -public String armSite( 415 -@WebParam(name = „version") final Integer version, 416 -@WebParam(name = „userId") final String userId, 417 -@WebParam(name = „optionalRole") final Integer role, 418 -@WebParam(name = „secretToShare") final String secretToShare, 419 -@WebParam(name = „optionalUserLastName") final String userLastName, 420 -@WebParam(name = „optionalUserFirstName") final String userFirstName, 421 -@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 422 -} 423 -{{/code}} 424 - 425 -=== Parameter armSite === 426 - 427 -|((( 428 -version 429 -)))|((( 430 -Requested version: 1 431 -))) 432 -|((( 433 -userId 434 -)))|((( 435 -UserId of the requested reporter user 436 -))) 437 -|((( 438 -optionalRole 439 -)))|((( 440 -Optional. User role. 0=student, 1=tutor 441 -))) 442 -|((( 443 -secretToShare 444 -)))|((( 445 -Shared secret. Has to remain identical for every communication. 446 -))) 447 -|((( 448 -optionalUserLastName 449 -)))|((( 450 -Optional. User lastname. 451 -))) 452 -|(% colspan="1" %)(% colspan="1" %) 453 -((( 454 -optionalUserFirstName 455 -)))|(% colspan="1" %)(% colspan="1" %) 456 -((( 457 -Optional. User firstname. 458 -))) 459 -|(% colspan="1" %)(% colspan="1" %) 460 -((( 461 -additionalParams 462 -)))|(% colspan="1" %)(% colspan="1" %) 463 -((( 464 -Reserved for future use. 465 -))) 466 - 467 -=== ReturnValue armSite === 468 - 469 -|((( 470 -String 471 -)))|((( 472 -Session ID that has to be used to mark any further reporter call. 473 -))) 474 - 475 -== Initialisation through LMS == 476 - 477 -{{code language="xml" title="Initialisierung durch LMS"}} 478 -@WebMethod(operationName = „initiateSite") 479 -public String initiateSite( 480 -@WebParam(name = „version") final Integer version, 481 -@WebParam(name = „sessionId") final String sessionId, 482 -@WebParam(name = „secretToShare") final String secretToShare, 483 -@WebParam(name = „students") final ArrayList<ResultsForStudent> students, 484 -@WebParam(name = „optionalContentPackage") final byte[] contentPackage, 485 -@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 486 -} 487 -{{/code}} 488 - 489 -=== Parameter initiateSite === 490 - 491 -|((( 492 -version 493 -)))|((( 494 -Requested version: 1 495 -))) 496 -|(% colspan="1" %)(% colspan="1" %) 497 -((( 498 -sessionId 499 -)))|(% colspan="1" %)(% colspan="1" %) 500 -((( 501 -SessionId, as returned by armSite. 502 -))) 503 -|((( 504 -secretToShare 505 -)))|((( 506 -Shared secret. Has to remain identical at every communication. 507 -))) 508 -|((( 509 -students 510 -)))|((( 511 -List of students with their results. See below. 512 -))) 513 -|((( 514 -optionalContentPackage 515 -)))|((( 516 -Optional. Content Package (zipped) as byte array. 517 -))) 518 -|((( 519 -additionalParams 520 -)))|((( 521 -Reserved for future use. 522 -))) 523 - 524 -=== ReturnValue initiateSite === 525 - 526 -|((( 527 -String 528 -)))|((( 529 -Absolute URL of the reporter site for the frame. It has to be enriched by the LMS with the following URLparameters: 530 - 531 -* sid: Session ID as returned by armSite 532 -* ((( 533 -uid: Student ID as registrated in the initiateSite at the ONYX Reporter. 534 -))) 535 -))) 536 - 537 -{{code language="xml"}} 538 -public class ResultsForStudent { 539 - private String studentId = „"; 540 - private String firstname = „"; 541 - private String lastname = „"; 542 - private String groupname = „"; 543 - private String tutorname = „"; 544 - private File contentFile = null; 545 - private byte[] resultsFile = null; 546 -} 547 -{{/code}} 548 - 549 -== Deconnection through the LMS == 550 - 551 - 552 - 553 -{{code}} 554 -@WebMethod(operationName = „disarmSite") 555 -public Boolean disarmSite( 556 -@WebParam(name = „version") final Integer version, 557 -@WebParam(name = „sessionId") final String sessionId, 558 -@WebParam(name = „secretToShare") final String secretToShare, 559 -@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 560 -} 561 -{{/code}} 562 - 563 - 564 - 565 -=== Parameter disarmSite === 566 - 567 -|((( 568 -version 569 -)))|((( 570 -Requested version: 1 571 -))) 572 -|(% colspan="1" %)(% colspan="1" %) 573 -((( 574 -sessionId 575 -)))|(% colspan="1" %)(% colspan="1" %) 576 -((( 577 -SessionId, as returned by armSite. 578 -))) 579 -|((( 580 -secretToShare 581 -)))|((( 582 -Shared secret. Has to remain identical at every communication. 583 -))) 584 -|((( 585 -additionalParams 586 -)))|((( 587 -Reserved for future use. 588 -))) 589 - 590 -=== ReturnValue disarmSite === 591 - 592 -|((( 593 -Boolean 594 -)))|((( 595 -True if successful, otherwise false. 596 -))) 597 - 598 -== Request of learning results through the LMS == 599 - 600 -{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}} 601 - @WebMethod(operationName = „getResultValues") 602 -public HashMapWrapper getResultValues( 603 - @WebParam(name = „version") final Integer version, 604 - @WebParam(name = „sessionId") final String sessionId, 605 - @WebParam(name = „secretToShare") final String secretToShare, 606 - @WebParam(name = „requestedValues") final HashMap<String, String> 607 - requestedValues, 608 - @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 609 -} 610 -{{/code}} 611 - 612 -=== Parameter getResultValues === 613 - 614 -|((( 615 -version 616 -)))|((( 617 -Requested version: 1 618 -))) 619 -|(% colspan="1" %)(% colspan="1" %) 620 -((( 621 -sessionId 622 -)))|(% colspan="1" %)(% colspan="1" %) 623 -((( 624 -SessionId, as returned by armSite. 625 -))) 626 -|((( 627 -secretToShare 628 -)))|((( 629 -Shared secret. Has to remain identical at every communication. 630 -))) 631 -|((( 632 -requestedValues 633 -)))|((( 634 -Can be empty, thus all result variables will be returned. If it contains keys, only those will be returned. 635 -))) 636 -|((( 637 -additionalParams 638 -)))|((( 639 -Reserved for future use. 640 -))) 641 - 642 -=== ReturnValue getResultValues === 643 - 644 -|((( 645 -HashMap<String, String> 646 -)))|((( 647 -Map of result variables, key is the variable name, value the corresponding value (HashMap is wrapped) 648 -))) 649 - 650 -== Request of result variables through the LMS == 651 - 652 -{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}} 653 - @WebMethod(operationName = „getResultVariables") 654 -public HashMapWrapper getResultVariables( 655 -@WebParam(name = „version") final Integer version, 656 -@WebParam(name = „contentPackage") final byte[] contentPackage, 657 -@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) { 658 -} 659 -{{/code}} 660 - 661 -=== Parameter getResultVariables === 662 - 663 -|((( 664 -version 665 -)))|((( 666 -Requested version: 1 667 -))) 668 -|((( 669 -contentPackage 670 -)))|((( 671 -Content package (zipped) as byte array. 672 -))) 673 -|((( 674 -additionalParams 675 -)))|((( 676 -Reserved for future use. 677 -))) 678 - 679 -=== ReturnValue getResultVariables === 680 - 681 -|((( 682 -HashMap<String, String> 683 -)))|((( 684 -Map of result variables, key is the variable name, value the corresponding 685 -value (HashMap is wrapped). 686 -))) 687 - 688 -== Wrapper == 689 - 690 -As the transmission of maps and lists generate problems via JAX-WS (lists filled by the customer are sent without any data and thus reach the server without data) they have to be wrapped. 691 - 692 -=== Wrapper for HashMap<String, String> === 693 - 694 -HashMapWrapper.java: 695 - 696 -[[image:attach:HashMapWrapperjava.png]] 697 - 698 -[[image:attach:HashMapWrapperjava2.png]] 699 - 700 -=== Wrapper for the ArrayList<ResultsForStudent> === 701 - 702 -ResultsForStudentsWrapper.java: 703 - 704 -[[image:attach:ResultsForStudentsWrapperjava.png]] 132 +* [[lorem ipsum>>url:https://www.bps-system.de/help/display/OPAL/Handbuch+OPAL||shape="rect"]] 705 705 {{/layout-cell}} 706 706 {{/layout-section}} 707 707 {{/layout}} 708 -{{/sv-translation}}
- Confluence.Code.ConfluencePageClass[0]
-
- id
-
... ... @@ -1,1 +1,1 @@ 1 - 1469649031 +3342392 - url
-
... ... @@ -1,1 +1,1 @@ 1 -https://www.bps-system.de/help/display/SOV/wiki/spaces/ONYX/pages/ 146964903/Schnittstelle ONYX Reporter1 +https://www.bps-system.de/help/display/SOV/wiki/spaces/ONYX/pages/3342392/Schnittstelle ONYX Reporter