Mandantentrennung NAV und SWS

Bild Microsoft Dynamics NAV 2016

Mandantentrennung NAV und SWS

Beitragvon dani_nav » 10. Januar 2020 11:33

Hallo Zusammen,

Bei uns konnte offenbar in SwissSalary von Mandant B(Neu seperate Firma) in Mandant A Daten abändern.
Dies sollte weder im SwS noch im Standard möglich sein bei uns.
Was muss noch angepast werden?

Nach meinem Kenntnisstand sollten die Mandaten doch so weit ich weiss abgetrennt sein.


Danke fĂĽr eure Hilfe und gruss
dani_nav
 
Beiträge: 30
Registriert: 1. September 2015 12:54
Realer Name: daniel
Arbeitsort: bern
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Dynamics NAV 2009,Dynamics NAV

Re: Mandantentrennung NAV und SWS

Beitragvon fiddi » 10. Januar 2020 11:52

Hallo,
Nach meinem Kenntnisstand sollten die Mandaten doch so weit ich weiss abgetrennt sein.


das kann man nur mit einem eindeutigen JEIN beantworten.

In NAV kann es Mandanten- ĂĽbergreifende Tabellen geben. Welche aus dem Standard und welche die der Kunde selbst als solche deklariert hat. (was man besser lassen sollte, aber manchmal geht es nicht anders :wink: ).

Dann kann jeder Mandant natürlich Code enthalten der per CHANGECOMPANY auf die Daten des anderen Mandanten zugreift. Auch damit können Daten in anderen Mandanten geändert werden.

Und dann gibt es da noch die EventSubscriber, die wenn sie nicht sauber programmiert sind, u.U. Daten im falschen Mandanten ändern.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? 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.
fiddi
Moderator
Moderator
 
Beiträge: 7095
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Mandantentrennung NAV und SWS

Beitragvon Timo Lässer » 13. Januar 2020 10:50

fiddi hat geschrieben:Und dann gibt es da noch die EventSubscriber, die wenn sie nicht sauber programmiert sind, u.U. Daten im falschen Mandanten ändern.

:shock: Hast du dafĂĽr mal ein Beispiel, wie man es nicht programmieren sollte, bzw. was man tun muss, um solch ein "unerwartetes Programmverhalten" zu vermeiden?
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: Mandantentrennung NAV und SWS

Beitragvon fiddi » 13. Januar 2020 11:30

Hallo,
war dir das noch nicht bekannt?

Die meisten Eventsubscriber prüfen bei OnInsert,OnModify auf Rec.ISTEMPORARY. Was sie aber nicht tun, ist zu prüfen, ob sie auch im richtigen Mandanten sind. Geschweige denn, dass Sie das richtige tun (können).

Machst du ein Rec.CHANGECOMPANY und dann ein Rec.MODIFY(egal ob TRUE oder FALSE) werden auch die Eventsubscriber aufgerufen.
Lokale Record-Variablen der Subscriber oder auch davon aufgerufene Codeunits bleiben aber im aufrufenden Mandanten, was schon mal zu Komplikationen fĂĽhren kann. :roll:

Das war im alten System auch nicht anders, wenn du ein MODIFY(true) aufgerufen hast, weshalb man das tunlichst vermieden hat. Mit den Events kannst du das aber nicht mehr verhindern.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? 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.
fiddi
Moderator
Moderator
 
Beiträge: 7095
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Mandantentrennung NAV und SWS

Beitragvon Timo Lässer » 13. Januar 2020 16:35

Die Problematik mit CHANGECOMPANY ist mir aus den alten Zeiten noch bekannt.
Aber wie kann ich herausfinden, in welcher "Mandanten-Instanz" ein Record bzw. ein RecordRef ausgefĂĽhrt wird?

Bisher fangen alle meine EventSubscriber mit folgenden Zeilen an:
Code: Alles auswählen
IF (COMPANYNAME = '') OR RecRef.ISTEMPORARY THEN BEGIN
  EXIT;
END;


[Edit] Gefunden! Rec.CURRENTCOMPANY bzw. RecRef.CURRENTCOMPANY zeigt an, in welchem Mandanten die Variable gerade läuft.
Ich glaube, ich muss da mal ein paar EventSubscriber auf den aktuellen Stand der Wissenschaft bringen. ;-)
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: Mandantentrennung NAV und SWS

Beitragvon fiddi » 13. Januar 2020 16:44

Hallo,

da bist du dann aber einer der wenigen, die damit umgehen könnten. MS bekommt das selbst nicht auf die Reihe, und ob andere Extensions die du nutzt das tun, weißt du nicht.

Daher kann die Antwort eigentlich nur lauten: Finger Weg! oder eine Tabelle benutzen, von der du weiĂźt, das sie niemand anderes benutzt.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? 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.
fiddi
Moderator
Moderator
 
Beiträge: 7095
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Mandantentrennung NAV und SWS

Beitragvon Timo Lässer » 13. Januar 2020 16:55

Streng genommen kann ich keiner Record-Variablen mehr vertrauen, denn sie könnte ja in einer vorherigen Instanz direkt oder indirekt durch einen EventSubscriber im Kontext eines anderen Mandanten laufen.
Somit müsste ich jedesmal, wenn ich von einer Record-Variablen ausgehend die Daten in anderen Tabellen ändern möchte, immer zuerst die andere Record-Variable mit CHANGECOMPANY auf CURRENTCOMPANY der übergeordneten Variable setzen.

In "unseren" EventSubscribern werde ich mich jetzt mit dem Thema intensiver auseinandersetzen und prĂĽfen, wie ich in dem Fall reagiere.
a) EventSubscriber mit EXIT verlassen
b) EventSubscriber mit ERROR abbrechen
c) NewRecord.CHANGECOMPANY(OldRecord.CurrentCompany);
d) OldRecord.CurrentCompany per Parameter an die aufgerufene Funktion ĂĽbergeben und dort mit a)-d) darauf reagieren.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: Mandantentrennung NAV und SWS

Beitragvon fiddi » 13. Januar 2020 17:21

Hallo,

spätestens bei einer Codeunit, die von deinem Eventsubscriber aufgerufen wird, oder den lokalen Variablen von Sales Line die du in deinem Subscriber ist dann aber Schluss mit lustig.
Das kannst du fĂĽr deine Subscriber von Fall zu Fall tun, MS wirdsich darum wohl nicht kĂĽmmern.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? 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.
fiddi
Moderator
Moderator
 
Beiträge: 7095
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell


ZurĂĽck zu NAV 2016

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast