[Gelöst] Event Subscriber - Felder werden nicht erkannt

Bild Microsoft Dynamics 365 Business Central (On-Premises Version)
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie

Bitte unbedingt im Titel angeben, auf welche Version (BC13, BC14, BC15, ...) sich eure Frage bezieht!

[Gelöst] Event Subscriber - Felder werden nicht erkannt

Beitragvon ckh » 28. April 2020 11:19

Hallo zusammen,

ich möchte nach Ausführung der Standardprozedur "UpdateUnitCost" in der "Purchase Line" eignen Code ausführen.
Eine Ă„nderung der Base Application kommt fĂĽr mich nicht in Frage. Aus diesem Grund wollte ich Events verwenden.

Das Event habe ich wie folgt aufgebaut:
Code: Alles auswählen
codeunit 51000 OnAfterUpdateUnitCost
{
    [EventSubscriber(ObjectType::Table, 39, 'OnAfterUpdateUnitCost', '', false, false)]
    procedure EventOnAfterUpdateUnitCost()
    var
    begin
        IF ("Type" = "Type"::Item) THEN Message('Ă„nderungen folgend');
    END;

}

Obwohl die "purchase Line" (39) als Table angegeben wurde, wird mi bei "Type" der Fehler ausgeworfen:
"The name '"Type"' does not exist in the current context".
Nur die Messagebox läuft ohne Probleme und macht seinen Dienst.

Was muß ich ändern, damit sich die Eventprozedur auf den aktuellen Record bezieht (REC).

Wäre schön, wenn mir da jemand mal den nötigen Wink geben könnte.
Zuletzt geändert von ckh am 29. April 2020 09:47, insgesamt 1-mal geändert.
ckh
 
Beiträge: 15
Registriert: 10. September 2018 15:14
Realer Name: Andre
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013 + BC365 15 On Premise

Re: Event Subscriber - Felder werden nicht erkannt

Beitragvon Natalie » 28. April 2020 11:40

In deiner Funktion fehlt dir noch der Parameter auf Rec/Purchase Line. Und den musst du dann auch zwischen begin und end verwenden.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Event Subscriber - Felder werden nicht erkannt

Beitragvon ckh » 28. April 2020 11:52

Meinst du Rec.Type? Das funktioniert leider auch nicht. Hier kommt die gleiche Fehlermeldung auf Rec.

Und wenn ich eine Recordvariable von "Purchase Line" nutze klappt es nicht, da es sich immer auf den aktuellen Record beziehen soll.
ckh
 
Beiträge: 15
Registriert: 10. September 2018 15:14
Realer Name: Andre
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013 + BC365 15 On Premise

Re: Event Subscriber - Felder werden nicht erkannt

Beitragvon Natalie » 28. April 2020 11:55

Nochmal, du musst deiner Funktion erst mal einen gĂĽltigen Parameter mitgeben; und zwar denselben (oder mehrere), die OnAfterUpdateUnitCost in Tabelle 39 verwendet.
Und erst mit Hilfe des Parameters hast du ĂĽberhaupt Zugriff auf die Purchase Line des Publishers.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Event Subscriber - Felder werden nicht erkannt

Beitragvon ckh » 28. April 2020 12:29

Hallo Natalie,

tschuldige, das ich immer noch auf dem Schlauch stehe.

Die Standard-Prozedur "UpdateUnitCost" hat selbst keinerlei Parameter und sie wird auch ohne Paramter aufgerufen. Sie verwendet dann den aktuellen Datensatz (REC).
Nach meinem Verständnis hat dann auch die Event-Prozedur "OnAfterUpdateUnitCost" keinen Parameter, den ich verwenden könnte und müsste sich ebenfalls auf den aktuellen Datensatz beziehen.

Du hast nicht zufällig einen Codeschnipsel zur Hand, der mir die Erleuchtung bringt :-)
ckh
 
Beiträge: 15
Registriert: 10. September 2018 15:14
Realer Name: Andre
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013 + BC365 15 On Premise

Re: Event Subscriber - Felder werden nicht erkannt

Beitragvon Natalie » 28. April 2020 13:04

ckh hat geschrieben:Die Standard-Prozedur "UpdateUnitCost" hat selbst keinerlei Parameter und sie wird auch ohne Paramter aufgerufen.

Ich schrieb auch, du sollst dir OnAfterUpdateUnitCost ansehen, nicht UpdateUnitCost ;-)

Welche BC-Version verwendet du eigentlich? Laut deinem Profil arbeitest du nur mit NAV 2013.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Event Subscriber - Felder werden nicht erkannt

Beitragvon elf » 28. April 2020 15:46

Hi,
der Integration-Event in der Purchase-Line gibt doch die gewĂĽnschten Parameter rĂĽber. In Deiner Procedure EventOnAfterUpdateUnitCost() in der Codeunit musst Du die gleichen Parameter verwenden, wie sie auch im Integration-Event in der Purch.Line in der Procedure OnAfterUpdateUnitCost() unten drinstehen.

Code: Alles auswählen
procedure OnAfterUpdateUnitCost(var PurchLine: Record "Purchase Line"; xPurchLine: Record "Purchase Line"; PurchHeader: Record "Purchase Header"; Item: Record Item; StockkeepingUnit: Record "Stockkeeping Unit"; Currency: Record Currency; GLSetup: Record "General Ledger Setup")
GruĂź aus Zossen bei Berlin
Eddie
Benutzeravatar
elf
 
Beiträge: 222
Registriert: 21. Dezember 2006 15:15
Wohnort: Zossen bei Berlin
Realer Name: Edgar Leifeld
Arbeitsort: Zossen bei Berlin
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV / BC

Re: Event Subscriber - Felder werden nicht erkannt

Beitragvon ckh » 29. April 2020 09:47

Hi,
das kommt davon, wenn man ein Brett vorm Kopf hat.

Vielen Dank euch beiden, jetzt klappts.
ckh
 
Beiträge: 15
Registriert: 10. September 2018 15:14
Realer Name: Andre
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013 + BC365 15 On Premise


ZurĂĽck zu 365 Business Central (On-Premises)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast