Das Notes Forum

Lotus Notes / Domino 10 => ND10: Entwicklung => Thema gestartet von: buzzy666 am 10.02.21 - 11:38:20

Titel: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: buzzy666 am 10.02.21 - 11:38:20
Mahlzeit!
ich habe hier zwei Stände ein- und desselben Agenten (mit dutzenden Functions und Subs) - die will ich nun konsolidieren und wollte dafür die "Compare with each other"-Feature des Designers nutzen. Leider beginnt in Agent V1 eine Funktion in Zeile 300, während die gleiche Funktion in Agent V2 in Zeile 3000 beginnt (und das ist bei vielen Funktionen unterschiedlich) - was den Vergleich natürlich defacto unbrauchbar macht.
Es gibt nicht zufällig ein Feature, eine Einstellung o.ä., mit der ich den Designer dazu bringen kann die interne Reihenfolge so zu beizubehalten wie sie im Designer im "Objects"-Fensterchen angezeigt wird (also alphabetisch)?

Danke & Gruß,
Buzzy
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: Ralf_B am 10.02.21 - 13:42:37
Agenten mit vielen Sub's und Funktionen .... ja, das Thema habe ich öfter auf dem Tisch.

Bislang habe ich das hier genutzt:
https://winmerge.org/ (https://winmerge.org/)
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: jBubbleBoy am 10.02.21 - 16:20:54
@Ralf: Seit dem man im Notes-Designer Gestaltungselemente miteinander vergleichen kann benötigt man Tools wie Winmerge ja nicht mehr, oder kann das Tool mehr als die interne Vergleichsfunktion?
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: Ralf_B am 10.02.21 - 16:33:00
Hallo Erik,

ganz einfach:

ich habe nicht nur den Notes Designer als Programmieroberfläche.
Mit dem Tool habe ich Möglichkeit dies mit jeder Programmiersprache / App. Umgebung zu nutzen.
Daher habe ich mir dieses Feature des Designers auch nie genau angesehen.

Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: buzzy666 am 10.02.21 - 17:16:54
Agenten mit vielen Sub's und Funktionen .... ja, das Thema habe ich öfter auf dem Tisch.

Bislang habe ich das hier genutzt:
https://winmerge.org/ (https://winmerge.org/)


Für den Vergleich nutze ich meistens Beyond Compare - da kann man auch Ingore-Listen pflegen und sowas, aber das nützt alles nichts, wenn die Functions an unterschiedlichen Stellen stehen - oder checkt WinMerge das wohl?

Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: Ralf_B am 10.02.21 - 18:08:15
Dass der Notes Designer Code an unterschiedlichen Stellen anzeigt passiert immer dann, wenn halt eine Sub / Funktion noch mal +-300 Zeilen Code bekommen hat.
Bei dem Tool kann ich dann auf einer Seite (leere)Zeilen einfügen, damit der Beginn der Subs wieder Synchron sind und sehe genau welche Zeilen das betrifft.
Simple aber ich kann damit arbeiten.
Und ja, es kostet Zeit und viel Kaffee.

Ev. kennt ja jemand ein besseres Tool?
Vorschläge sind sehr gerne willkommen.

Gruß
Ralf
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: buzzy666 am 11.02.21 - 07:38:36
Wenn da "nur" ein paar (hundert) Zeilen mehr drin wären hätte ich da kein Problem (und Beyond Compare (https://www.scootersoftware.com/features.php?zz=features_focused) auch nicht so weit ich weiß - ich glaube, der füllt das sogar automatisch auf), aber beim meinem aktuellen Problem kommen auf der einen Seite einige Subs/Functions dazwischen und das ist natürlich zuviel für das arme Tool :-(

Ich klammere mich ja an die Hoffnung, dass HCL endlich mal den Designer überarbeitet inkl. Debugger.
Ich bin optimistisch: https://domino-ideas.hcltechsw.com/?&category=6616955477042038128&sort=popular , obwohl mir in der 12er Beta noch nichts aufgefallen ist...

Grüße,
Buzzy
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: jBubbleBoy am 11.02.21 - 08:18:33
Was gehen dürfte ist eine Sortierung über XML-Attribute des XML/DXL Exports, denn jede Funktion befindet sich in einem eigenen XML-Tag "code" und besitzt das Attribute "event", welches den Funktionsnamen enthält.

Nur Klassen/Funktionen würden nicht gehen, da diese im Declaration-Teil als ganzes abgelegt werden.
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: Tode am 11.02.21 - 12:07:25
also ich nutze das Compare Plugin von notepad++: Damit finde ich "echte" Unterschiede... die verschobenen Funktionen werden genau als das markiert... verschoben... funktioniert auch nicht immer, aber sehr oft... habe das schon mit riesigen Script- Libraries gemacht... Einfach oben in den Header- Bereich der Library im Designer klicken, dann alles markieren, kopieren und in Notepad++ einfügen. Mit der richtigen Custom Language wird das sogar "gehighlighted" wie im Designer... dann zweite Datei auf, da den anderen Code reinpasten und Erweiterungen - Compare...
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: buzzy666 am 15.02.21 - 08:59:08
Ja Notepad hab ich auch schon probiert im aktuellen Fall - aber irgendwie ist da die Reihenfolge komplett verdreht...naja was soll's - HCL wird schon richten...irgendwann...vielleicht  :-X

Grüße,
Buzzy
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: eknori am 20.02.21 - 13:58:21
nur so eine Idee. Nimm doch den ganzen Klumpatsch aus dem Agenten und pack den in eine LS Lib. im initialize event des Agenten steht dann nur ein Aufruf zu der Hauptroutine.

Innerhalb der Lib sind die Methoden sortiert.
Das machst Du mit beiden Agenten, und dann kannst du wunderbar die Unterschiede sehen.
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: jBubbleBoy am 22.02.21 - 10:25:24
Das sieht nur in der Designer-Navigation sortiert aus, sobald man sich den kompletten Code ansieht oder exportiert, dann wird dieser so angezeigt wie man ihn eingegeben hat - im Idealfall kann das auch sortiert sein ;)
Titel: Re: interne Sortierung von Funktionen innerhalb eines Agenten
Beitrag von: buzzy666 am 08.03.21 - 10:00:28
nur so eine Idee. Nimm doch den ganzen Klumpatsch aus dem Agenten und pack den in eine LS Lib. im initialize event des Agenten steht dann nur ein Aufruf zu der Hauptroutine.

Innerhalb der Lib sind die Methoden sortiert.
Das machst Du mit beiden Agenten, und dann kannst du wunderbar die Unterschiede sehen.


Hmmm, klingt gut - probier ich mal aus, danke!

Grüße,
Buzzy