Delete
Beschreibung
Suchen der Datensätze analog create/update Prozess über Ordnungskriterien (siehe oben)
Code
de.cursor.jevi.common.script.IScriptWorkSpace fncDelete(Map parameter, Map result, Map logMap)
{
if(logMap == null) logMap = SC12EVIBaseUtils.newLogMap();
if(result == null) SC12EVIBaseUtils.addError(logMap, "Parameter \"result\" is null");
if(!parameter.containsKey("fields") && parameter.get("fields") == null) SC12EVIBaseUtils.addError(logMap, "Parameter \"fields\" is not Set");
if(!parameter.containsKey("entityName") && parameter.get("entityName") == null) SC12EVIBaseUtils.addError(logMap, "Parameter \"entityName\" is not Set");
if(SC12EVIBaseUtils.hasError(logMap)) return null;
String entityName = parameter.get("entityName");
Map fields = parameter.get("fields");
List identifiers = ((!parameter.containsKey("identifiers") && parameter.get("identifiers") == null) ? null : parameter.get("identifiers"));
boolean multiple = ((!parameter.containsKey("multiple") && parameter.get("multiple") == null) ? false : parameter.get("multiple"));
boolean mandatory = ((!parameter.containsKey("mandatory") && parameter.get("mandatory") == null) ? true : parameter.get("mandatory"));
Map fieldValues = new HashMap();
List primaries = new ArrayList()
IScriptWorkSpace ws = WorkSpaceScriptUtils.createEmptyWorkSpace(entityName);
primaries = SC12CRUDUtils.getPrimaryKeyList(entityName, mandatory, identifiers, logMap, fields, fieldValues);
if(!SC12EVIBaseUtils.hasError(logMap))
{
ws = SC12CRUDUtils.deleteRecordsets(entityName, primaries, multiple, logMap);
}
if(!SC12EVIBaseUtils.hasError(logMap))
{
result.put("RECORDSET", SC12CRUDUtils.getRecordsets(ws, entityName));
result.put("ACTION", "DELETE");
result.put("SUCCESSFUL", "SUCCESS");
result.put("WARNINGS", SC12EVIBaseUtils.getWarnings(logMap));
}
else
{
result.put("RECORDSET", null);
result.put("ACTION", "ERROR");
result.put("SUCCESSFUL", "ERROR");
result.put("ERRORS", SC12EVIBaseUtils.getErrors(logMap));
result.put("WARNINGS", SC12EVIBaseUtils.getWarnings(logMap));
}
return ws;
}
Parameter
parameter
Typ - Map
Wertepaare mit den benötigten Parametern. Benötigte Werte sindFIELDS
Typ - Map
Wertepaare der Form <Interner technischer Feldname = neuer Wert> (z. B. "MatchCode.Customer" = "CURSOR GIESSEN").
Werden für die Suche nach dem Datensatz / den Datensätzen zur Löschung benötigt.ENTITY
Typ - String
Interner technischer Name der Entität in exakter Groß- / Kleinschreibung (z. B. "Customer", "ContactPerson").CRUD_MULTIPLE
Typ - boolean
Optionaler Parameter, wird dieser mit "true" übergeben, ist die Löschung > 1 Datensätze möglich. Dieser Parameter wird nur berücksichtigt,
wenn kein technischer Primärschlüssel (z. B. "Pk.Customer") als Eingabeparameter angegeben wird.
result
Typ - Map
Hashmap, in der das formatierte Ergebnis zurück gegeben wirdlogMap (optional)
Typ - Map
HashMap, in der das Logging während des Aufrufs geführt wird, falls dieses separat aufbereitet werden soll.
Rückgabe
IScriptWorkSpace
Die Funktion antwortet mit einem IScriptWorkSpace, in dem der gelöschte Datensatz ist.