26. Mai 2018 17:21
28. Mai 2018 07:11
28. Mai 2018 07:56
// Das ist der Standardaufruf in den Event von CU 365
OnBeforeContactAddrAlt(AddrArray,Cont,AltAddressCode,ActiveDate,Handled);
// Eigene Funtkion, die eigentlich über den Event ausgeführt werden sollte
cuEventsFormatAddress.OnBeforeContactAddrAlt(AddrArray,Cont,AltAddressCode,ActiveDate,Handled);
28. Mai 2018 08:27
rotsch hat geschrieben:So wie ich das verstehe, wird der Event innerhalb von CU 365 nicht ausgeführt, sonst müsste ich ja mit dem Debugger sehen, dass meine eigene Funktion durchlaufen wird, oder?
28. Mai 2018 08:29
LOCAL [IntegrationEvent] OnBeforeContactAddrAlt(VAR AddrArray : ARRAY [8] OF Text[50];VAR Cont : Record Contact;AltAddressCode : Code[10];ActiveDate : Date;VAR Handled : Boolean)
28. Mai 2018 08:32
rotsch hat geschrieben:So wie ich das verstehe, wird der Event innerhalb von CU 365 nicht ausgeführt
28. Mai 2018 08:35
MarkusWeiland hat geschrieben:Was ich meinte ist, in der CU 365 müsste der Event irgendwo, neben der Definition, nochmal im Code auftauchen.
28. Mai 2018 08:54
Natalie hat geschrieben:MarkusWeiland hat geschrieben:Was ich meinte ist, in der CU 365 müsste der Event irgendwo, neben der Definition, nochmal im Code auftauchen.
Ich kann dir nicht folgen: sowohl OnBeforeContactAddrAlt als auch OnBeforeFormatAddress werden innerhalb der Codeunit 365 aufgerufen.
28. Mai 2018 08:58
MarkusWeiland hat geschrieben:Wenn ein Event definiert ist, muss dieser auch, an der Stelle an der er geworfen werden soll, aufgerufen werden.
Ist ein einer CU nur ein Event definiert, wird aber nicht aufgerufen, wird er niemals geworfen.
28. Mai 2018 09:38
Natalie hat geschrieben:Events werden nicht ignoriert, jedenfalls nicht solange deine Subscriber sauber angelegt sind und funktionieren (siehe Debugger --> Ereignisabonnements) ...
28. Mai 2018 09:44
rotsch hat geschrieben:Das heisst, wenn dort Spalte 'Active' = FALSE ist, kann der Event nicht ausgeführt werden, bzw. wird er nirgendwo verwendet?
28. Mai 2018 09:49
Natalie hat geschrieben:Dann ist der Subscriber quasi "tot", genau. Steht in der Spalte Error Information etwas drin?
28. Mai 2018 10:05
rotsch hat geschrieben:[…] die Namen müssen 1:1 übereinstimmen.
28. Mai 2018 10:33
Kowa hat geschrieben: zum Glück haben wir eine Prüffunktion, die zur Laufzeit ermittelt, ob alle unsere Events aktiv sind.
28. Mai 2018 11:18
sweikelt hat geschrieben: -> hast du vll . einen Codesnippet?
EventSubscription.SETRANGE("Subscriber Codeunit ID",StartLizenzbereichDesEigenenModuls,EndeLizenzbereichDesEigenenModuls);
EventSubscription.SETRANGE(Active,FALSE);
IF EventSubscription.FINDFIRST THEN BEGIN
IF CodeUnitMetadata.GET(EventSubscription."Subscriber Codeunit ID") THEN;
-> Felder der obigen Tabellen als Parameter/Platzhalter für die Warnung ausgeben (CodeUnitMetadata.Name,EventSubscription."Subscriber Function",EventSubscription."Error Information")
END;
28. Mai 2018 12:11
rotsch hat geschrieben:Das hatte ich gerade eben bemerkt (dank deinem Hinweis auf das Ereignisabonnement, das kannte ich bisher noch nicht )
Ja, da wurde eine Parameter-Fehler gemeldet. Ich hatte aus Gewohnheit die Parameter in meiner eigenen Routine mit einem vorangestellten _ versehen, das veträgt es anscheinend im Fall eines Events nicht, die Namen müssen 1:1 übereinstimmen.
Jetzt läuft alles wie es sollte, besten Dank!
28. Mai 2018 12:22
28. Mai 2018 12:24
Natalie hat geschrieben:MarkusWeiland hat geschrieben:Wenn ein Event definiert ist, muss dieser auch, an der Stelle an der er geworfen werden soll, aufgerufen werden.
Ist ein einer CU nur ein Event definiert, wird aber nicht aufgerufen, wird er niemals geworfen.
Das stimmt leider nicht
Beispiel Tabelle 36, OnCheckSalesPostRestrictions
Aufruf z.B. in CU 80 Sales-Post, CheckPostRestrictions
Du kannst eigentlich nur ableiten: wenn der Publisher lokal (!) definiert ist, dann muss er auch lokal aufgerufen werden.
28. Mai 2018 12:32
Ted hat geschrieben:Hab letztens irgendwo gelesen das nur die Namen wichtig sind und darüber gemapped wird.
Die Reihenfolge der Parameter kannst du selbst bestimmen.
Auch musst du wohl nicht alle Parameter in deiner Funktion angegeben wenn du nur einen Parameter brauchst.
28. Mai 2018 12:33
MarkusWeiland hat geschrieben:Was stimmt denn daran nicht?