Aktualisieren einer Chart im Rollencenter

19. Februar 2015 16:28

Halli Hallo,
ich beschäftige mich zur Zeit mit den Diagrammen, die bei NAV im Rollencenter eingeblendet werden können.
Ich meine hierbei die ganz normalen Standard-Diagramme, die es (glaube ich) sein NAV 2009 gibt.
Der Aufbau dieser Diagramme ist in XML-Dateien hinterlegt, die in der Tabelle 2000000078 Chart in einem BLOB-Feld gespeichert sind.
Diese XML-Dateien können beispielsweise per Code oder auch mit der Page 9183 Generic Chart Setup verändert werden.
Mein Problem ist nun leider, dass selbst wenn das BLOB-Feld in der Tabelle verändert wird, ändert sich nicht das Digramm im Rollencenter.
Es aktualisiert sich nur, wenn entweder :
- über Anpassen : das Diagramm noch einmal ausgewählt und erneut geöffnet wird
oder
- der Server neu ausgewählt wird bzw. der RTC komplett neu gestartet wird.

Leider konnte ich bis jetzt noch nicht herausfinden, an welcher Stelle und vor allem auf welcher Ebene das Refresh des Diagramms,
was so viel heißt wie das erneute Lesen des BLOBs aus der Tabelle geschieht.
Kann mir hier jemand weiter helfen?
Oder weiß zumindest irgendjemand, wo ich suchen muss?
Ich habe bereits alle C/AL Objekte exportiert und z.B. nach der Tabelle 2000000078 und ähnlichem gesucht, aber leider ohne Erfolg.
Danach habe ich dann versucht über .NET an die ganze Logik im Rollencenter zu kommen, wo beispielsweise die Diagramme zum
Rollencenter hinzugefügt werden. Allerdings war ich auch hier bis jetzt nicht erfolgreich.. :(

Über eine Antwort würde ich mich sehr freuen :)
Viele Grüße

Re: Aktualisieren einer Chart im Rollencenter

20. Februar 2015 12:42

Ich bin jetzt einen Schritt weiter gekommen!
Ich habe herausgefunden, dass das Diagramm auch aktualisiert wird, wenn im Rollencenter eine andere Seite geöffnet wird und man dann zurück zum Rollencenter geht.
Deshalb ist es auch möglich ein Aktualisieren durch die Tastenkombination Shift F12 (=Open the Role Center from the navigation pane) auszulösen.
Nun versuche ich diese Tastenkombination in meiner Codeunit, die ich in der Action im Rolecenter antrigger, den Tastendruck auszulösen.

Meine momentane Lösung sieht so aus :
Code:
Documentation()

OnRun()
//...
IF ISCLEAR(wSHShell) THEN
  CREATE(wSHShell, TRUE, TRUE);

wSHShell.SendKeys('+{F12}');


Als Variable habe ich folgendes:
Name DataType Subtype Length
wSHShell Automation 'Windows Script Host Object Model'.WshShell

Es gibt zwar keine Fehler beim Kompilieren oder ausführen,
es passiert aber auchs sonst nichts.
Kennt sich hier jemand aus??

Re: Aktualisieren einer Chart im Rollencenter

20. Februar 2015 18:16

F12 wird dir nicht weiterhelfen, denn wenn du im RoleCenter stehst und F12 drückst, sich kein neues Rolecenter öffnet, oder das aktuelle aktualisiert wird.
Was näher liegen würde, wäre F5, aber das funktioniert auch nicht (gerade getestet)

Da das Chart auf Microsoft.Dynamics.Nav.Client.BusinessChart zugreift, müsstes du die Update-Methode des AddIns über das RoleCenter ansprechen und das stelle ich mir gerade etwas schwierig, wenn nicht sogar unmöglich vor.
kannst es ja mal testen