[gelöst] Abfrage von Daten aus anderem Mandanten

16. Dezember 2022 09:40

Hallo zusammen,

ich möchte sicherstellen, dass in der Tabelle "Ressource" die Nr. eindeutig über alle Mandanten ist, ohne die Tabelle selbst als mandantenübergreifend zu definieren.
Hat jemand eine Idee, wie man auf die Daten eines anderen Mandanten zugreifen kann?

Viele Grüße,
Uta
Zuletzt geändert von UGo am 16. Dezember 2022 11:40, insgesamt 1-mal geändert.

Re: Abfrage von Daten aus anderem Mandanten

16. Dezember 2022 09:49

Das Zauberwort lautet "CHANGECOMPANY".

Im OnInsert (und OnRename) musst du in einer Schleife über alle Mandanten (außer dem, in welchem du dich gerade befindest) laufen und dort in der Tabelle nachschauen, ob es die Nummer bereits gibt.

Rough-and-dirty Programmcode:
Code:
OnInsert()
Company.RESET;
Company.SETFILTER(Name,'<>%1',COMPANYNAME);
IF Company.FINDSET(FALSE) THEN BEGIN
  REPEAT
    Ressource
.CHANGECOMPANY(Company.Name);
    IF Ressource.GET(Rec."No.") THEN BEGIN
      ERROR
('Die Ressourcennr. wird bereits in einem anderen Mandanten verwendet.');
    END;
  UNTIL Company.NEXT = 0;
END;

Re: Abfrage von Daten aus anderem Mandanten

16. Dezember 2022 10:12

Alternativ kann man auch mandantenübergreifende Nummernserien verwenden. Dazu muss man die drei Tabellen (No. Series,No. Series Line,No. Series Relationship) und das Codeunit NoSeriesMgt. als Cross-Company-Varianten anlegen und miteinander verknüpfen. Überall dort, wo man dann mandantenübergreifende Nummern braucht (Inserttrigger usw.)
den Quellcode anpassen
NoSeriesMgt.InitSeries :greenarrow: NoSeriesMgtCrossCo.InitSeries
NoSeriesMgt.GetNextNo :greenarrow: NoSeriesMgtCrossCo.GetNextNo
usw.

Das nutze ich bei einem unserer Kunden schon seit nunmehr 13 Jahren, und aus dem anfänglichen Bedarfsfall für eine Tabelle kamen über die Jahre immer mehr dazu :-) . Es sollte aber auf die Fälle beschränkt bleiben, wo man es wirklich braucht, da sich die User ggf. mandantenübergreifend sperren können, wenn in einem Mandanten die Anlage eines neuen Datensatzes hakt.

Re: Abfrage von Daten aus anderem Mandanten

16. Dezember 2022 11:40

Hallo ihr beiden,

vielen Dank für die schnelle und kompetente Hilfe. Beide Vorschläge lösen das Problem.

Viele Grüße,
Uta