Tags:
create new tag
, view all tags

Mitarbeiter-Listen

Allgemeine Informationen

  • Maillisten bleiben einen Tag gültig und werden über Nacht automatisch gelöscht
  • Maillisten bleiben permanent gespeichert, sofern sie einer Admingruppe zugeordnet werden
  • bevor eine Mail an eine Mailliste mit mehr als 4000 Mitgliedern geschickt werden kann, muss beim Service-Desk eine Anpassung der sog. throttling policy für das Absender-Konto beantragt werden
  • Mailverteiler können für beliebig viele Absender-Adressen freigegeben werden
  • soll eine Mailliste von ausserhalb der ETH angesteuert werden, müssen folgende Voraussetzungen erfüllt sein:
    • ein Contact mit der gewünschten Absender-Adresse existiert
    • der Mailverteiler ist für diesen Contact freigegeben
    • die Mail wird exakt von dieser Mailadresse an den Verteiler verschickt (envelope-from!)
  • die typische Fehlermeldung bei fehlerhafter Absender-Adresse lautet: 550 5.7.1 NotAuthorized; not authorized

Format und Beschreibung der Excel-Datei

Feldname Erklärung
PERSID Identifikation auf der PDB
Username nethz Username
E-Mail E-Mail-Adresse
Homepage Homepage dieser Person
UUID UNIX uid
Personenkategorie primäre ETH-Beziehung
Anrede Frau / Herr (evt. mit Titel)
Rufname Vorname(n)
Nachname Familienname(n)
AHV-Nr neue, 13-stellige AHV Nummer
Organisationseinheit Leitzahl bei einer Anstellung (mehrere Einträge pro Person möglich!)
Anstellung bis Anstellungsende
Matrikelnummer Immatrikulations-Nummer, Legi-Nummer
Departement Departementskürzel
Studiengang Studiengang
Semester Anzahl absolvierte Semester
Adresszeile 1 Postadresse Zeile 1 (allg. Versandadresse)
Adresszeile 2 Postadresse Zeile 2 (allg. Versandadresse)
Adresszeile 3 Postadresse Zeile 3 (allg. Versandadresse)
Land Ländercode
PLZ Postleitzahl
Ort Wohnort

Empfänger-Menge mit SQL auswählen

  • das Feld «zusätzliche E-Mail-Adressen» kann auch ein SQL-Statement enthalten, welches die NMID (=Primärschlüssel einer E-Mail-Adresse) enthält
  • Beispiel: Alle Professoren der Departemente D-CHAB, D-BIOL und D-BSSE
SELECT DISTINCT nmid
FROM email e, uname u, person p, ngroup_member nm, 
(
    SELECT include_grid grid
    FROM ngroup_includes
    START WITH grid IN (
        SELECT grid FROM ngroup
        WHERE name IN('T2020', 'T2030', 'T2060') 
        AND gtid = 3
    )
    CONNECT BY PRIOR include_grid = grid
) ni 
WHERE e.type = 1 and e.class = 1
AND e.nuid = p.primary_nuid
AND e.nuid = u.nuid
AND (p.title LIKE 'Frau Prof%' OR p.title LIKE 'Herr Prof%')
AND nm.grid = ni.grid
AND u.nuid = nm.nuid

Mail an austretende Studierende

  • Alle Studierenden (ausser Mobilitätsstudierenden), die im FS 13 (2013S) eingeschrieben waren
  • Ende FS 13 (2013S) mit Erfolg ausgetreten sind
  • im HS 13 (2013W) nicht für einen (konsekutiven) Studiengang eingeschrieben sind.
SELECT DISTINCT m.nmid
FROM email m
INNER JOIN person p ON ( p.primary_nuid = m.nuid AND m.type=1)
INNER JOIN dldb_einschreibung e ON (e.persid = p.persid)
INNER JOIN dldb_stud_immatrik i ON (i.persid = p.persid)
WHERE e.semkez='2013S'
  AND e.vollstaendigkeit>=3
  AND i.hoerer <> 50 -- keine Gaststudierende
  AND i.austrittsdatum > to_date('2013-05-01', 'YYYY-MM-DD')
  AND NOT EXISTS (
     SELECT NULL
     FROM dldb_einschreibung e2
     WHERE e2.persid = e.persid
     AND e2.immatrik_nr <> e.immatrik_nr
     AND e2.semkez = '2013W'
  )

Mail an Postdocs

  • Postdocs haben entweder Doktortitel oder einen PD - Titel
  • und eine Anstellung in einem Departement
  • untenstehendes SQL-Statement in das Feld «zusätzliche E-Mail-Adressen» kopieren
  • falls nicht alle Departemente angeschrieben werden sollen, anstatt der Totalisierungsleitzahl T0007 die entsprechenden Departements-Totalisierungsleitzahlen gemäss Org-DB eintragen (Komma getrennt, in einfachen Hochkommas)
SELECT DISTINCT nmid
FROM email e, uname u, person p, ngroup_member nm, 
(
  SELECT include_grid grid
  FROM ngroup_includes
  START WITH grid IN (
      SELECT grid FROM ngroup
      WHERE name IN('T0007') 
      AND gtid = 3
  )
  CONNECT BY PRIOR include_grid = grid
) ni 
WHERE e.type = 1 and e.class = 1
AND e.nuid = p.primary_nuid
AND e.nuid = u.nuid
AND (p.title LIKE 'Frau PD%' OR p.title LIKE 'Frau Dr.%'
OR p.title LIKE 'Herr PD%' OR p.title LIKE 'Herr Dr.%'
)
AND nm.grid = ni.grid
AND u.nuid = nm.nuid

Alle Personen, die eine Büroadresse im Hönggerberg haben

  • Vorgehen wie oben, mit folgendem SQL-Statement:
SELECT DISTINCT nmid
FROM email e, uname u, person p
WHERE e.type = 1 and e.class = 1
AND e.nuid = p.primary_nuid
AND e.nuid = u.nuid
AND EXISTS (
    SELECT NULL
    FROM adresse a
    WHERE a.adressbesitzer_id = p.adressbesitzer_id
    AND a.adrtyp IN (5,6,9)
    AND a.adrplz = '8093'
)

Alle Personen mit einer Büroadresse in einem bestimmten Gebäude (hier: STB)

SELECT DISTINCT nmid
FROM email e, uname u, person p
WHERE e.type = 1 and e.class = 1
AND e.nuid = p.primary_nuid
AND e.nuid = u.nuid
AND EXISTS (
    SELECT NULL
    FROM adresse a
    WHERE a.adressbesitzer_id = p.adressbesitzer_id
    AND a.adrtyp IN (5,6,9)
    AND a.adrzeil2 LIKE 'ETH Zürich, STB%'
)

Alle Personen, die Polykum erhalten sollen (ausser ASVZ-Leute)

SELECT DISTINCT m.nmid
FROM email m
INNER JOIN person p ON ( p.primary_nuid = m.nuid AND m.type=1)
INNER JOIN beziehung b ON ( p.persid = b.persid )
WHERE b.perskat IN ('Mitarbeiter', 'Emeritus', 'Dozent', 'Pensioniert', 'ETH-nahe')

MINUS

SELECT DISTINCT m.nmid
FROM email m
INNER JOIN person p ON ( p.primary_nuid = m.nuid AND m.type=1)
INNER JOIN ethnahe er ON (er.persid = p.persid)
WHERE er.leitzahl = '04838'

Alle Personen des D-MAVT ohne Professoren (Personenkreis 70)

SELECT DISTINCT e.nmid
FROM all_emails e
INNER JOIN person p ON (p.primary_nuid = e.nuid)
INNER JOIN ngroup_member nm ON (nm.nuid = p.primary_nuid)
INNER JOIN ( 
    SELECT include_grid
    FROM ngroup_includes
    START WITH grid IN (
        SELECT grid FROM ngroup
        WHERE name IN('T2130') 
        AND gtid = 3
    )
    CONNECT BY grid = PRIOR include_grid
) ni ON (ni.include_grid = nm.grid)
 WHERE e.type = 1  AND EXISTS (
    SELECT NULL
    FROM beziehung b
    WHERE b.persid = p.persid
AND b.perskat IN ('Dozent')
)
MINUS
SELECT DISTINCT nmid
FROM email e
INNER JOIN person p ON (p.primary_nuid = e.nuid AND e.type=1 AND e.class=1)
INNER JOIN dldb_ma_anstellung ma ON (
    ma.persid = p.persid 
    AND ma.anstbis > SYSDATE 
    AND ma.personenkreis IN ('70')
)

alle Mitarbeiter des D-MAVT inklusive Doktoranden aber ohne studentische Teilzeit-Mitarbeiter

SELECT e.nmid
FROM email e
INNER JOIN (
    SELECT p.npid, p.primary_nuid
    FROM person p
    INNER JOIN anstellung a ON (a.persid = p.persid)
    INNER JOIN (
        SELECT leitzahl_unten
        FROM orgstruktur
        START WITH leitzahl_oben IN ('T2130')
        CONNECT BY leitzahl_oben = PRIOR leitzahl_unten
    ) lz ON (lz.leitzahl_unten = a.oenr)
    WHERE p.perskat = 'Mitarbeiter'

    UNION

    SELECT p.npid, p.primary_nuid
    FROM person p
    INNER JOIN doz_periode a ON (a.persid = p.persid AND dept_leitzahl IN ('02130') )
    WHERE p.perskat = 'Dozent'

    UNION

    SELECT p.npid, p.primary_nuid
    FROM person p
    INNER JOIN (
        SELECT es.persid
        FROM einschreibung es
        INNER JOIN dldb_studiengang sg ON (
            sg.studiengangkz = es.studiengangkz AND sg.studiengangtyp='DR'
        )
        WHERE es.deptkz IN ('D-MAVT')
    ) ein ON (ein.persid = p.persid)
) pe ON (pe.primary_nuid = e.nuid AND e.type=1)

alle Mitarbeiter (ohne Doktoranden)

Die Hauptbeziehung einer Person zur ETH ist im Attribut p.perskat. Bei Studierenden und Doktoranden lautet die Hauptbeziehung immer auf «Student».

SELECT DISTINCT m.nmid
FROM email m
INNER JOIN person p ON ( p.primary_nuid = m.nuid AND m.type=1)
WHERE p.perskat IN ('Mitarbeiter', 'Dozent')

-- SwenVermeul - 2012-03-22

Topic revision: r10 - 2014-08-04 - vermeul
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback