Read

Beschreibung

Generischer Prozess zum Lesen einzelner / mehrere Datensätze. Die Suche der zurückzugebenden Datensätze erfolgt gemäß GENERIC_CREATE_UPDATE Prozess. Suchen der Datensätze analog create/update Prozess über Ordnungskriterien (siehe oben)

Code

Java
de.cursor.jevi.common.script.IScriptWorkSpace fncRead(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   = false;
  Map              fieldValues = new HashMap();
  List             primaries   = new ArrayList()
  IScriptWorkSpace ws          = WorkSpaceScriptUtils.createEmptyWorkSpace(entityName);
    
  primaries = SC12CRUDUtils.getPrimaryKeyList(entityName, mandatory, identifiers, logMap, fields, fieldValues);
   
  ISearch getAcs = SearchUtils.createSearch(entityName, SearchUtils.createSearchCondition("Active." + entityName, false, false, SearchUtils.EQUAL, Boolean.TRUE));
  SearchUtils.addSearchCondition(getAcs, SearchUtils.createSearchCondition("Pk." + entityName, false, true, SearchUtils.IN, primaries));
  SearchUtils.setTopCount(getAcs, -1);
  ws = WorkSpaceScriptUtils.search(getAcs);
    
  if(!SC12EVIBaseUtils.hasError(logMap))
  {
    result.put("RECORDSET",  SC12CRUDUtils.getRecordsets(ws, entityName));
    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").
      Alle Wertepaare werden für spätere Prüfungen / Neuanlagen / Aktualisierungen verwendet. 

    • ENTITY
      Typ - String
      Interner technischer Name der Entität in exakter Groß- / Kleinschreibung (z. B. "Customer", "ContactPerson").

  • 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, mit den gefundenen Datensätzen.