get_user_data_names()

Listet die Namen aller benutzerbezogenen Datensätze eines bestimmten Typs für den aktuell angemeldeten Benutzer über dms.GetUserDataNames.

1. Signatur

  • Sync

  • Async

ecm.system.get_user_data_names(
    data_type: ECMUserDataType | int,
) -> list[str]
await ecm.system.get_user_data_names(
    data_type: ECMUserDataType | int,
) -> list[str]

2. Parameter

Parameter Typ Standard Beschreibung

data_type

ECMUserDataType | int

Typkennung. ECMUserDataType enthält die dokumentierten Standard-Typen (z. B. STORED_QUERIES, EXTERNAL_PROGRAMS, AS_INI, ADDITIONAL_APP_CONFIG_80…85). Eigene registrierte Typen können als int übergeben werden.

3. Rückgabewert

list[str] — die Namen der Datensätze in der Reihenfolge, in der der Server sie geliefert hat (Name1, Name2, …). Eine leere Liste, wenn der Benutzer keinen Datensatz dieses Typs besitzt.

4. Wichtig: der Server liefert die Namen in Grossbuchstaben

Die Namen kommen in Grossbuchstaben zurück, unabhängig davon, mit welcher Schreibweise sie gespeichert wurden. Ein als my_app_config geschriebener Datensatz wird als MY_APP_CONFIG aufgeführt:

from ecmind_blue_client.ecm import ECMUserDataType

SLOT = ECMUserDataType.ADDITIONAL_APP_CONFIG_80

ecm.system.set_user_data("My_App_Config", SLOT, b"x")
assert ecm.system.get_user_data_names(SLOT) == ["MY_APP_CONFIG"]

Beim Abgleich mit einem bekannten Namen ohne Rücksicht auf die Schreibweise vergleichen:

if "my_app_config".upper() in ecm.system.get_user_data_names(SLOT):
    ...

Lesen und Löschen unterscheiden keine Gross- und Kleinschreibung, ein zurückgelieferter Name kann also direkt wieder an get_user_data() oder delete_user_data() übergeben werden.

5. Wichtig: Datensätze mit leerem Wert werden mit aufgeführt

Ein mit leerem Wert gespeicherter Datensatz ist ein Datensatz wie jeder andere und erscheint in der Liste. Nur delete_user_data() entfernt einen Namen daraus.

6. Beispiele

6.1. Alle Datensätze eines Typs auflisten und lesen

  • Sync

  • Async

from ecmind_blue_client.ecm import ECMUserDataType

SLOT = ECMUserDataType.ADDITIONAL_APP_CONFIG_80

for name in ecm.system.get_user_data_names(SLOT):
    print(name, ecm.system.get_user_data(name, SLOT))
from ecmind_blue_client.ecm import ECMUserDataType

SLOT = ECMUserDataType.ADDITIONAL_APP_CONFIG_80

for name in await ecm.system.get_user_data_names(SLOT):
    print(name, await ecm.system.get_user_data(name, SLOT))

6.2. Datensätze mit gemeinsamem Präfix aufräumen

from ecmind_blue_client.ecm import ECMUserDataType

SLOT = ECMUserDataType.ADDITIONAL_APP_CONFIG_80

for name in ecm.system.get_user_data_names(SLOT):
    if name.startswith("MY_APP_"):
        ecm.system.delete_user_data(name, SLOT)

7. Siehe auch