Seite 1 von 1

[gelöst] Abfrage von Daten aus anderem Mandanten

Verfasst: 16. Dezember 2022 09:40
von UGo
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

Re: Abfrage von Daten aus anderem Mandanten

Verfasst: 16. Dezember 2022 09:49
von Timo Lässer
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

Verfasst: 16. Dezember 2022 10:12
von Kowa
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

Verfasst: 16. Dezember 2022 11:40
von UGo
Hallo ihr beiden,

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

Viele Grüße,
Uta