Merkmal des Datentyps "Boolean" oder "Integer" wird nicht mit Standardwert aktualisiert

Die hier genannten Schritte können Sie als Ausweichlösung nutzen, wenn ein erweitertes Merkmal des Datentyps "Boolean" oder "Integer" nicht aktualisiert wird, wenn es auf den Standardwert gesetzt wird.

Problem

Wenn Sie versuchen, den Wert eines erweiterten Merkmals des Datentyps "Boolean" oder "Integer" mit einem einzelnen Wert auf seinen Standardwert zu setzen, wird das Merkmal nicht aktualisiert. Wenn Sie z. B. versuchen, den Wert des Datentyps "Integer" mit einem einzelnen Wert auf einen anderen Wert als "0" (Standardwert) zu setzen, verläuft die Aktualisierung erfolgreich. Wenn Sie versuchen, den Standardwert 0 zu verwenden, wird der Merkmalwert nicht aktualisiert. Analog dazu wird, wenn Sie versuchen, den Wert eines erweiterten Merkmals des Datentyps "Boolean" oder "Integer" auf "true" zu setzen, die Aktualisierung erfolgreich durchgeführt. Wenn Sie versuchen, das Merkmal auf seinen Standardwert "false" zu setzen, wird der Wert nicht aktualisiert.

Das geschieht nur, wenn das erweiterte Merkmal als einzelwertig definiert ist. Das ist eine Einschränkung von EMF.

Ausweichlösung

Führen Sie die folgenden Schritte aus, um dieses Problem zu umgehen.

Anmerkung: Stellen Sie sicher, dass Sie die Informationen gelesen und die Schritte ausgeführt haben, die im Thema Voraussetzungen für die Programmierung beschrieben sind.
  1. Sie können auch den wsadmin-Befehl createSchema() verwenden, um ein neues erweitertes Merkmal des Datentyps "Boolean" oder "Integer" mit mehreren Werten zu erstellen.

    Weitere Informationen finden Sie in den Themen Mustercode für die Erweiterung des Schemas im Dateirepository, Mustercode für die Erweiterung des Schemas im Repository für Merkmalserweiterungen und Mustercode für die Erweiterung des Schemas in einem LDAP-Repository.

    Sie können auch den wsadmin-Befehl addIdMgrPropertyToEntityTypes verwenden, um ein neues erweitertes Merkmal des Datentyps "Boolean" oder "Integer" mit mehreren Werten zu erstellen.

    Anmerkung: Sie können auch die Definition eines vorhandenen erweiterten Merkmals mit einem einzelnen Wert so ändern, dass mehrere Werte verwendet werden, indem Sie die Datei "wimxmlextension.xml" direkt bearbeite. Diese Vorgehensweise wird jedoch nicht empfohlen.
  2. Verwenden Sie die Methode create() oder update(), um den Wert des neuen Merkmals als seinen Standardwert anzugeben, d. h. "false" für das Merkmal "Boolean" bzw. "0" für das Merkmal "Integer". Der Merkmalwert muss erfolgreich aktualisiert werden.
    Der folgende Mustercode ist ein Beispiel dafür, wie die Methode create() verwendet wird, um den Standardwert "0" für ein Merkmal des Datentyps "Integer" festzulegen:
    DataObject root = SDOHelper.createRootDataObject();
    DataObject entity = SDOHelper.createEntityDataObject(root, null, SchemaConstants.DO_PERSON_ACCOUNT);
    // Set the properties of the person
    entity.set("uid", uid);
    entity.set("cn", cn);
    entity.set("sn", sn);
    // Create a new array list of size one
    List lst = new ArrayList();
    lst.add(0);
    entity.set("jersyNumber", lst );
    System.out.println("Input datagraph before creating user"+ printDO(root));
    // Create the PersonAccount entity
    root = service.create(root);
    // Print the output datagraph
    System.out.println("Output datagraph after creating user"+ printDO(root));
    return root;


Rechtliche Hinweise | Feedback