importPackage(Packages.de.elo.ix.client); importPackage(Packages.de.elo.ix.scripting); //@include lib_Class.js //@include lib_sol.common.ObjectUtils.js //@include lib_sol.common.UserUtils.js //@include lib_sol.common.ix.ServiceBase.js //@include lib_sol.common.ix.GenericDynKwl.js /** * * @author PZ, ELO Digital Office GmbH * @version 1.03.000 * * @eloix * * @requires sol.common.ix.ServiceBase * */ sol.define("sol.common.ix.services.TestGenericDynKwl", { extend: "sol.common.ix.ServiceBase", initialize: function (config) { var me = this; me.$super("sol.common.ix.ServiceBase", "initialize", [config]); }, test: function () { var me = this, result = {}, resultData = [], provider, sord, objKeys, inputFieldName; try { provider = sol.create("sol.common.ix.GenericDynKwl", me.providerConfig).getProvider(); sord = ixConnect.ix().createSord("0", "0", SordC.mbAllIndex); objKeys = me.buildFilter(); if (me.providerConfig && me.providerConfig.input) { inputFieldName = (me.providerConfig && me.providerConfig.input) ? me.providerConfig.input.name : ""; objKeys.push(me.createObjKey(inputFieldName, me.providerConfig.input.value)); } sord.objKeys = objKeys; provider.open(me.ec, sord, inputFieldName); if (provider.getMessage()) { result.message = provider.getMessage(); return result; } while (provider.hasMoreRows()) { resultData.push(provider.getNextRow()); } result.data = resultData; } catch (ex) { result.error = String(ex); } finally { if (provider && (sol.common.ObjectUtils.isFunction(provider.close))) { provider.close(); } } return result; }, buildFilter: function () { var me = this, objKeys = []; if (me.providerConfig && me.providerConfig.filter && (me.providerConfig.filter.length > 0)) { me.providerConfig.filter.forEach(function (param) { if (param.name && param.value) { objKeys.push(me.createObjKey(param.name, param.value)); } }); } return objKeys; }, createObjKey: function (name, value) { var objKey = new ObjKey(); objKey.name = name; objKey.data = [value]; return objKey; } }); /** * @member sol.common.ix.services.TestGenericDynKwl * @method RF_sol_service_TestGenericDynKwl * @static * @inheritdoc sol.common.ix.ServiceBase#RF_ServiceBaseName */ function RF_sol_service_TestGenericDynKwl(ec, args) { var params = {}, service; params.providerConfig = sol.common.ix.RfUtils.parseAndCheckParams(ec, arguments.callee.name, args); params.ec = ec; sol.common.ix.RfUtils.checkMainAdminRights(ec.user, params); service = sol.create("sol.common.ix.services.TestGenericDynKwl", params); return sol.common.ix.RfUtils.stringify(service.test()); }