In Microsoft Dynamics NAV 2009 und im Classic Client konnte man über “Suchen und Ersetzen” Datenänderungen durchführen ohne dafür einen Batch programmieren zu müssen. Im RTC wurde das Suchen durch Filtern ersetzt und das Ersetzen suchte man vergeblich. In Microsoft Dynamics NAV 2013 nun ist das Suchen zurückgekehrt:
Standard Page zum Suchen
Aber manchmal vermisst man doch das Ersetzen noch. Vielleicht haben Sie den Blog Post von Robert Miller schon gesehen. Er ist es auf jeden Fall Wert einen genaueren Blick hinein zuwerfen. Deswegen hier die eingedeutschte Version des Beitrags, ergänzt um eigene Anmerkungen. Viel Spaß beim Experimentieren.
Auch wenn Microsoft Dynamics NAV 2013 mit Rapid Start und den bekannten Möglichkeiten einen kleinen Report / Funktion zur Änderung von Stammdaten zu schreiben, schon ein ganzes Arsenal an Werkzeugen bietet, so ist es für den Endanwender doch oft einfacher mittels Suchen und Ersetzen einen Wert durch einen anderen zu ersetzen. Wie man mit einfachen Mitteln eine Page zum Ersetzen erstellen und mit unterschiedlichsten Daten benutzen kann zeigt die nachfolgende Beschreibung. So könnte das ganze Aussehen:
Ersetzen Page
Beschreibung
- Feld: Mittels AssistEdit oder auch durch Eingeben des Feldnamens können Sie das Feld auswählen, welches Ersetzt werden soll
- Suche nach: enthält den Wert der gesucht werden soll
- Ersetzen durch: enthält den Wert, der mit dem gefundenen ersetzt werden soll
Options:
- Entsprechung – Sie können wählen zwischen “Ganzes Feld” oder “Jeden Teil des Feldes”
- Groß-/Kleinschreibung – Legt fest, ob Groß-/Kleinschreibung beachtet werden soll
- Ganzes Feld ersetzen – Ersetzt das ganze Feld und nicht nur Teile, wenn markiert
- Anzahl Sätze im Dataset – Zeigt an, wie viele Datensätze im aktuellen Filter enthalten sind. Nicht die Anzahl der Treffer.
Wie wird diese Page nun genutzt?
Sie können das angehängte .TXT Objekt importieren und kompilieren. Sie werden dann in der Lage sein, die Page von fast überall aus zu benutzen. Versuchen Sie dies zum Beispiel bei der Kunden List Page (Page 22):
1. Importieren und Kompilieren Sie “Replace NAV2013DE.txt”. (Neue Page 50050)
2. Öffnen Sie die Entwicklungsumgebung und dort die Page 22 per Design öffnen.
3. Fügen Sie eine globale Variable hinzu, die Sie auf die neue Page (50050) zeigen lassen
4. Erzeugen Sie eine neue Action
5. Im OnAction Trigger der neuen Action, kommt der folgende Code hinein…
6. Speichern und Kompilieren Sie und schon können Sie die Funktion nutzen
Wie funktioniert es nun?
- “LoadDataSet” läd das gefilterte Dataset, somit ist Filtern vor dem Ersetzen möglich
- Die SetValidations Funktion ist Optional, diese Funktion hat zwei Parameter. Der erste Bestimmt, ob der Modify Trigger benutzt wird und der zweite, ob OnValidate() aufgerufen wird.
Noch ein paar Hinweise / Ideen:
- Wenn Sie Time oder DATETIME Ersetzen, denken Sie daran, dass zwar nur Stunden, Minuten und Sekunden angezeigt werden, aber eventuell Millisekunden gespeichert sind. Am besten wäre also, denn zu findenden Wert über die Zwischenablage in die Page zu kopieren.
- Setzen Sie die Funktion dort ein, wo es sinnvoll ist und denken Sie daran, dass es eine mächtige Funktion ist. Es gibt kein “Undo”. Im Moment kommt nur eine “Fertigmeldung” nachdem das Ersetzen durchgeführt wurde. Eine Idee wäre, dort noch eine Abfrage hinzuzufügen. “Sind Sie wirklich sicher?” oder so etwas
- Vielleicht ist es nicht gewünscht, dass alle Felder ersetzt werden können. Sie könnten über eine zusätzliche Einrichtungstabelle die Funktionen so erweitern, dass eingerichtet werden kann, welche Felder mit dieser Funktion bearbeitet werden dürfen
These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your use.
Mit freundlichen Grüßen und Viel Spaß damit
Andreas Günther
Microsoft Dynamics Germany