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.
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.
Führen Sie die folgenden Schritte aus, um dieses Problem zu umgehen.
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.
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;