Lol-Query: Systemfields auch mit Schema "All"

Bei unserem Blueclient gibt es momentan keine Möglichkeit, bei Angabe der SystemFields dennoch das field_schema: "All" anzuwenden:

def lol_query(...):
    ...
        if result_fields and len(result_fields) > 0:
            fields_element = XmlElement("Fields", {"field_schema": "DEF"})
            ...

        else:
            fields_element = XmlElement("Fields", {"field_schema": "ALL"})
    ...

Hintergrund:
Wenn man zum Beispiel zusätzlich zu den „customized“-Feldern die individuell für das Kundensystem implementiert wurden und auch einfach noch das ein oder andere Systemfeld (zum Beispiel die STDREG_ID) laden möchte, muss man immer alle Felder explizit angeben. Daurch wird aber automatisch field_schema: "DEF" gesetzt, das die Felder auf lediglich die angegebenen reduziert.

@rk Evtl. wäre die Lösung das field_schema beim Aufruf von lol_query() mitgeben zu können?

Guten morgen @wk,

ich habe gerade die Version 0.5.7 veröffentlicht in der du mit dem neuen optionalen Parameter field_schema kannst du nun das Standardverhalten übersteuern.

Einen passendes Beispiel findest du hier in den Unit Tests:

pip install ecmind-blue-client==0.5.7

1 „Gefällt mir“

@uw
Die Fieldschema-Erweiterung scheint noch nicht ganz rund zu laufen. Da hat sich wohl noch ein kleiner Fehlerteufel eingeschlichen :face_with_monocle:

Das Problem wurde gelöst :slight_smile: - Danke schön @uw

@wk ich habe gerade die Version 0.5.8 erstellt. In diese Version kann der Parameter field_schema auch als string übergeben werden. Das ist sicherlich in manchen Fällen praktischer als der Enum Typ. Wenn der String Wert nicht in den Enum Typ umgewandelt werden kann, dann wird ein ValueError erzeugt.

Siehe:

2 „Gefällt mir“