Delete

Beschreibung

Suchen der Datensätze analog create/update Prozess über Ordnungskriterien (siehe oben)

Code

Java
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 sind

    • FIELDS
      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 wird

  • logMap (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.