Auto Numerierung für Entitäten

29. Juli 2008 17:35

Hallo,

bin' neu hier im Forum und habe gleich mal eine Frage:

Ich habe eine benutzerdefinierte Entität 'Akten', die sich selbst referenziert. D.h. ich kann zu einer Akte weitere Unterakten erstellen und damit einen "Aktenbaum" aufbauen.

Jetzt wäre es natürlich schön, wenn alle Akten in dem "Baum" ein einheitliches Aktenzeichen mit fortlaufender Nummer erhalten würden.

Ein Beispiel:

root
|
|_ root1
| |_ root11
| |_ root12
|
|_ root2
| |_ root21
| |_ root22
| |_ root23
|
|_ root3
etc.

Die Bezeichnung des Eltern-Knotens in die Kind-Entität zu übernehmen ist soweit kein Problem, aber wie kann ich dynamisch eine noch nicht vergebene Nummer anhängen???

Am liebsten wäre mir eine Lösung per JScript (oder Workflows).

Ich hoffe, dass ich mein Problem verständlich erläutert habe und mir jemand einen Lösungsansatz aufzeigen kann.

Vielen Dank schon mal im Voraus

Grüße
Alex
Zuletzt geändert von Alexander Grimm am 5. August 2008 12:52, insgesamt 1-mal geändert.

29. Juli 2008 18:11

<edit>
uuuups, falsches Forum :oops:

30. Juli 2008 09:52

Könnte man nicht die Knoten in den Ebenen fortlaufend durchnummerieren? Die Nummern der Ebenen, die zu einem bestimmten Knoten fürhren, könnte man durch Punkte trennen. So wäre Knoten 10.3.23 der 23te Sohn des 3 Sohns des dritten root. Wenn man einen neuen Sohn kreiert, weiß man ja, woher man kommt, und zählt in der Ebene, in der der Sohn entsteht, einfach durch. Die nächste freie Zahl wird angehängt. Also würde der erste Sohn des oa Knoten 10.3.23.1.

Diese Nummer führst du einfach in einem gesonderten Feld mit.

30. Juli 2008 11:17

das geht eher in Richtung verkettete Listen.
Ich weiss aber nicht ob sowas mit CRM abbildbar ist.

30. Juli 2008 15:35

Hallo,

danke schon mal für die Antworten, auch wenn sie mich bisher noch nicht weiter bringen.
Könnte man nicht die Knoten in den Ebenen fortlaufend durchnummerieren? Die Nummern der Ebenen, die zu einem bestimmten Knoten fürhren, könnte man durch Punkte trennen. So wäre Knoten 10.3.23 der 23te Sohn des 3 Sohns des dritten root. Wenn man einen neuen Sohn kreiert, weiß man ja, woher man kommt, und zählt in der Ebene, in der der Sohn entsteht, einfach durch. Die nächste freie Zahl wird angehängt. Also würde der erste Sohn des oa Knoten 10.3.23.1.


Das mit der fortlaufenden Nummerierung ist ja eben das Problem. Wie ich schon im Eingangspost geschrieben habe: das Problem ist nicht die Nummer des parent abzurufen und einzutragen, sondern die angehängte fortlaufende Nummer selbst!
Man müsste überprüfen, wie viele Entitäten auf dieser Ebene schon vorhanden sind und die maximale Nummer um eins inkrementieren.
Dabei sollte zudem beachtet werden, dass auch wenn einzelne Entitäten inaktiv sind, deren Nummer nicht erneut vergeben werden darf; soll ja eindeutig sein.


Oh, hab gerade noch mal genauer hingeschaut... :shock:
Diese Nummer führst du einfach in einem gesonderten Feld mit.


Hmmmm... das könnte evtl. tatsächlich eine Lösung darstellen. :oops:
Du meinst bei jeder zuordnung an eine übergeordnete Entität muss dort der Zahlenwert inkrementiert werden. Der Schlüssel der untergeordneten E. ergibt sich dann aus überg. Schlüssel + Feldwert.
Könnte funktionieren - Werd's mal testen, wenn nicht noch jemand einen besseren Vorschläg hat.


PS: Ich find's nur echt schwach, dass µ$ eine Autonumerierung zwar implementiert hat, aber nur für eine Hand voll Systementitäten zulässt :evil:

30. Juli 2008 16:22

Du könntest die Knoten auch sicher Einen nach dem Anderen durchnummerieren, aber das suchst du ja sicher nicht (dann könnte man´s ja gleich lassen, wie es ist ;). Da habe ich mir gedacht, dass es doch sicher sinnig ist, wenn man anhand einer eindeutigen Nummer sehen kann, welchem Aktenzeichen an welcher Stelle ein Knoten zuzuordnen ist.

Man könnte aber auch sicher vor Einfügen eines neuen Sohnes seine Nummer anhand der Nummer des Vaters und der Nummer dessen bisher letzten Sohnes die nächstfreie Nummer raus kriegen, und so als PK vergeben. Je nach Anzahl genutzter Ebenen kann diese Nummer natürlich recht lang werden, so dass man sich evtl. auf je 999 Söhne als Max. beschränkt (?).

30. Juli 2008 16:40

Hallo McClane,

ich glaube, du verstehst das eigentliche Problem nicht ganz: Wo soll ich diese eindeutige nummer her kriegen????
Das JScript weiß ja nichts von den benachbarten Blättern im selben Knoten (außer ich mach im JScript eine Abfrage an den WebService :-x )

Gruß
Alex

30. Juli 2008 17:46

ich sehe auch grad, dass ich gar nicht bei Navision bin :oops:

Nun weiß ich auch, was umknix in seinem Post meinte.

Tschuldigung. War keine Absicht.

Re: Auto Numerierung für Entitäten

4. August 2008 09:44

[Beitrag wie gewünscht aus dem Forum Dynamics CRM 3.xx nach Dynamics CRM 4.xx verschoben.]

Gruß, Natalie
MSDynamics.de-Team