Home Forum Nuclos Entwicklung Makros und Regeln Abfrage nach existentem Attridut

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)
  • Autor
    Beiträge
  • #3145
    Jan Giebels
    Teilnehmer

    Hallo,
    wie kann ich in einer Fristenregel abfragen, ob ein Attribut mit einem bestimmten Namen in einer Entität vorhanden ist ?

    Ich brauche dies, um eine HashMap auf eine Entität zu mappen. Allerdings existieren in der Map mehr Keys als Attribute in der Entität und ich möchte nur die Einträge der Hashmap verarbeiten, die auch in der Entität vorhanden sind.

    Danke und Gruß

    Jan

    #3154
    Jan Giebels
    Teilnehmer

    Gibt es hierzu einen Tip?

    #3155
    Claudia Mangstl
    Teilnehmer

    Hallo,

    momentan gäbe es die Möglichkeit mit dem Heranziehen von Metadata-Caches über Umwege an die Metadaten ran zu kommen. Mit der Überarbeitung des RuleInterfaces, an der wir gerade entwickeln, wird das aber nicht mehr möglich sein. Die Metadaten sind ja bekannt und können somit auch in der Fristenregel entsprechend herangezogen werden.

    Ändern sich denn Ihre Metadaten so häufig, so dass diese in der Regel nicht angegeben werden können ?

    Viele Grüße,
    Claudia M.

    #3156
    Jan Giebels
    Teilnehmer

    Die Metadaten ändern sich eigentlich nicht. Wir wollen aber eine generische Fristenregel entwickeln die verschiedene Entitäten aus einer MySQL Datenbank befüllt.

    bisher haben wir folgendes Konstrukt:

    if (sKey.equals("products_quantity") ||
    sKey.equals("products_ordered") ||
    sKey.equals("products_price") ||
    sKey.equals("products_id") ||
    sKey.equals("products_weight") ||
    sKey.equals("master_categories_id")
    ) {
    try {
    server.setFieldValue(sEntity, iId, sKey, mapData.get(sKey));
    } catch (Exception ex) {
    server.logError("Error: "+sTable+" ("+sKey+"): " + mapData.get(sKey));
    }
    }

    sehr hässlich und wenig generisch. So müssten wir für jede Entität eine Extra Fristenregel anlegen und pflegen. Mit einer generischen Lösung könnten wir die Regel mit Parametern befüttern (Mysql Tabelle – Entität).

    sKey kommt aus einer Bibliotheksregel und ist der Spaltenname in den MySQL Tabellen die gleich den Attributen in Nuclos Entitäten sind.

    Dieser Datenabgleich zu einer MySQL Datenbank ist das absolute Kernstück unserer Anwendung und da bisher kein Weg existiert MySQL Tabellen gegen Nuclos Entitäten abzugleichen müssen wir uns dort mit eben jenen Krücken behelfen.

    #3157
    Jan Giebels
    Teilnehmer

    Ich dachte an eine Funktion, die in etwa so aussieht:

    Boolean test = server.existAttribute("Entität", "Attributename");

    #3158
    Claudia Mangstl
    Teilnehmer

    Hallo,

    ok ich nehme das mal mit in die Anforderung auf.

    Viele Grüße,
    Claudia M.

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)