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