Archiv für die Kategorie ‘Tipp’

Bemerkungen zu Textkonstanten hinzufügen

Veröffentlicht: 22. Mai 2017 in Tipp

Hallo 🙂

Beispiel aus dem Standard:

In der Tabelle 27 gibt es die Textkonstante Text027, diese beinhaltet den Deutschen Text „muss größer 0 sein“. Schaut man nun in den „Multilanguage Editor“  findet man dort zu dieser Textkonstante eine Bemerkung:

In diesem Fall mag sie nicht viel weiter helfen. Man kann sich nun auch fragen „Wofür sollte ich das nutzen?!“. Aber es gibt einen guten Anwendungsfall den die Tabelle 27 auch für uns bereit hält:

Hier sehen wir direkt welche Platzhalter welchem Wert enthalten. Das finde ich sehr praktisch! Anlegen kann man diese, indem man die Sprache „@@@“ angibt und dann den Freitext entsprechend füllt.

In den neueren Clients, können wir sogar mit MouseHover dann erkennen, was wohin gehört ohne jedesmal genau den Kontext prüfen zu müssen 🙂

Mit freundlichen Grüßen
Matthias König

Technischer Ablauf der Synchronisation mit NAV 2013 R2

Veröffentlicht: 3. Juli 2014 in Tipp
Schlagwörter:

Hi NAV-Anwender und Entwickler :),

seit NAV 2013 R2 (bzw. seit der Multi Tenancy Funktion) hat Microsoft die Aktualisierung einer Änderung in der Datenbank umgekrempelt. Wir waren es vorher alle gewohnt, dass man ein Objekt speichert und dies direkt in der SQL Datenbank gesichert und für alle im Zugriff ist. Dies ist nun nicht mehr so!! Nach meinen Gesprächen mit anderen Fachleuten (unter anderem MS), Tests und Analysen und lesen diverser Blogeinträge läuft die Synchronisation nun so ab:

  1. Beim kompilieren wird das Objektes in die „Object Metadata“ geschrieben. Zu diesem Zeitpunkt ist es NOCH NICHT auf dem SQL Server und somit auch nicht im Zugriff des Service Tiers.
  2. Es existiert in der „Object Metadata“ SQL Ebene ein Tabellen Trigger. Dieser füllt beim Löschen, Ändern und beim Einfügen die „Object Tracking“ Tabelle. In dieser steht das geänderte Objekt mit einem Timestamp.
  3. Während der Synchronisation der Objekte (siehe Beitrag Synchronisation via Powershell) wird mit der „Objekt Tracking“ Tabelle geprüft, ob es Änderungen gibt. Genauer gesagt überprüft die Anwendung hier mittels des Timestamps ob neue Änderungen existieren und welches Objekt übertragen werden muss (Vermute in der „Object Tracking“).
  4. Gibt es Änderungen für ein Objekt, wird dieses physikalisch in die SQL Datenbank geschrieben.
  5. Daraufhin wird der Stand in die „Object Metadata Snapshot“ übertragen.

Das bedeutet: Ist in der „Object Metadata Snapshot“ kein aktueller Datensatz des geänderten, eingefügten oder gelöschten Objektes enthalten, ist die Synchronisation nicht erfolgreich abgeschlossen worden.
Des Weiteren vermute ich, dass beim neustart des Servicetiers immer die aktuellste Version aller Objekte geladen werden und Schritt 4 und 5 durchgeführt wird.

Falls wer weitere Informationen und/oder Korrekturen diesbezüglich hat, bitte her damit. Ein sehr interessantes und wichtiges Thema.
Mit freundlichen Grüßen,
Matthias König

P.S. hier auch eine Zusammenfassung von Saurav Dhyani des MS Kommentars:  Saurav Dhyanis „NAV 2013 R2 Synchronization Paradigm.“
Dieser beschreibt nahezu den selben Ablauf wie ich hier 🙂

Hi Leute,

ich kam mal wieder dazu eine Laufendenummer in einem Report anzeigen lassen zu wollen. Bis Dato konnte/habe ich diese immer in NAV erstellt und dann in das Dataset mit übernommen. Nun aber musste dies im RDLC selber berechnen da die Sortierung im Dataset und im Layout unterschiedlich waren. Hier eine ganz simple Lösung:

1. Wir erstellen eine eigene Funktion + Variable im Custom Code Bereich des Reports

Custom Code Bereich

snap2188 snap2189

Der einzufügende Code:

Dim GroupCnt as Integer=0
Function GetGroupRownumber() as String
 GroupCnt=GroupCnt+1
 return GroupCnt.ToString()
 End Function

2. Diese sprechen wir in dem Control unserer Wahl an:

=Code.GetGroupRownumber()

3. Wir erfreuen uns an der hochzählenden, laufenden Nr. 🙂

 

Im Prinzip macht diese Funktion nichts anderes als eine integer Variable hochzuzählen. Da diese Funktion aber nur ausgeführt wird wenn sie auch angezeigt wird werden nicht eingeblendete Controls nicht mit gezählt! Werden Zeilen also aus diversen Gründen nicht angezeigt, werden diese auch nicht mit gezählt 🙂

 

Mit freundlichen Grüßen, Matthias König

Synchronisation via Powershell

Veröffentlicht: 16. April 2014 in SQL, Tipp

Hi NAV Anwender und Entwickler ;),

da wir aufgrund des Paradigmenwechsels in der Synchronisation der Tabellenänderungen (MS Blog Artikel: http://blogs.msdn.com/b/nav/archive/2014/03/27/table-synchronization-paradigm-in-microsoft-dynamics-nav-2013-r2.aspx) nun ja häufiger die Anpassungen manuell transferieren sollten, hier eine kurze Beschreibung wie man Objektänderung aus der NAV 2013 R2 Entwicklungsumgebung via Powershell auf den SQL Server übertragen kann:

1. Logge dich auf dem NST (Navision Service Tier) ein.

2. Starte die Powerstell ISE.

3. Lade das aktuelle NavAdminTool.ps1 aus dem Service Ordner des Service Tiers.

4. Starte das NavAdminTool.

5. Führe dort „set-executionpolicy unrestricted“ aus und bestätigte den Dialog.

6. Synchronisiere NST mittels Sync-NAVTenant <DeinNSTServerinstanzName>

7. Starte NST-Dienst neu

Dies ist auch der Empfohlene Weg von Microsoft selbst J
In diesem Zuge möchte ich auch auf Waldos Blogartikel bezüglich Umnummerierung von Tabellen hinweisen: http://www.waldo.be/2014/04/16/renumbering-tables-in-nav-2013-r2-be-careful/. Hier ändert sich aktuell sehr viel. Ich bin gespannt was auf uns Entwickler noch zu kommt.

Mit freundlichen Grüßen
Matthias König

Bemerkungen zu Textkonstanten hinzufügen

Veröffentlicht: 14. April 2014 in Tipp

Hallo Leute,

letzte Woche hat mir ein Kollege ein interessantes, neues (vermeintlich neu, ich kannte es nicht :D) Feature gezeigt und zwar wie man Bemerkungen für eine Textkonstante anlegen kann.

Beispiel aus dem Standard:

In der Tabelle 27 gibt es die Textkonstante Text027, diese beinhaltet den Deutschen Text „muss größer 0 sein“. Schaut man nun in den „Multilanguage Editor“ findet man dort zu dieser Textkonstante eine Bemerkung:

In diesem Fall mag sie nicht viel weiter helfen. Man kann sich nun auch fragen „Wofür sollte ich das nutzen?!“. Aber es gibt einen guten Anwendungsfall den die Tabelle 27 auch für uns bereit hält:

Hier sehen wir direkt welche Platzhalter welchem Wert enthalten. Das finde ich sehr praktisch! Anlegen kann man diese, indem man die Sprache „@@@“ angibt und dann den Freitext entsprechend füllt.

Viel Spaß damit J

Mit freundlichen Grüßen,
Matthias König

Und noch etwas aus der Welt vom R2 Client.

Bitte korrigiere mich wer, aber ich glaube die Funktion in Listen nach einem vorhandenen Schlüssel zu sortieren ist im neuen Client nicht mehr vorhanden! Erst war ich geschockt, aber es gibt jetzt ja die Möglichkeit nach jedem beliebigem Feld zu sortieren, in dem man darauf klickt. Dies ist unabhängig ob es einen Schlüssel zu diesem Feld gibt. In meinem Beispielfall wurde in den Artikelposten nach den Artikelnummern sortiert (erkennbar an dem kleinen grün markierten Pfeil):

Aber das ist ja häufig nicht genug! Will man weitere Felder zur Sortierung hinzuziehen, hält man Shift (Umschalt) gedrückt und klickt das nächste Feld an, in unserem Fall die Menge:

Nun zeigt uns die Liste die Posten sortiert nach Artikel und dann sortiert nach Mengen an. So erkennt man, dass erst der Artikel 1000 aufgelistet wird und dessen Posten nach Mengen sortiert sind.

NAV merkt sich aber nicht die Reihenfolge der angeklickten Spalten, sondern geht je nach Spalten Anordnung die Sortierung durch. Wenn wir also die Menge vor die Artikelnummer schieben, wird er erst nach Menge sortiert und dann innerhalb dieser nach den Artikeln:

Wenn diese Ansicht gespeichert wird, werden auch die gewählten Sortierungen gespeichert, leider nicht die Spalten Anordnung.

Mit freundlichen Grüßen,

Matthias König

Dynamics NAV 2013 R2 – Tool Tips bei Actions

Veröffentlicht: 20. Dezember 2013 in Tipp

Hi,

eigentlich wollte ich ja erst mein Tutorial weiter schreiben aber dies muss ich dazwischen schieben 🙂 Es ist nun möglich, ToolTips im Client (Windows und Web) sehr sinnvoll einzusetzen! Hinterlegt man einen ToolTip in einer Action, taucht dieser beim MouseOver auf (hier samt Action grün umrandet):

Mit diesem „Feature“ kann man dem Benutzer dann zukünftig unter die Arme greifen und ihm die Online Hilfe ersparen 🙂

Mit freundlichen Grüßen,

Matthias König