我有一个 Jython 2.7 脚本,它接收 URL 并使用 URL 中的参数/值来创建或更新记录。
- 示例网址:
http://server:host/maximo/oslc/script/CREATEWO?&wonum=WO0001&description=Legacy&classstructureid=1666&wopriority=1&worktype=CM
细节:
- 接收 URL 并将参数/值放入变量中:
from psdi.server import MXServer from psdi.mbo import MboSet resp = {} wonum = request.getQueryParam("wonum") description = request.getQueryParam("description") classstructureid = request.getQueryParam("classstructureid") wopriority = request.getQueryParam("wopriority") worktype = request.getQueryParam("worktype")
- 一些与问题无关的行:
woset = MXServer.getMXServer().getMboSet("workorder",request.getUserInfo()) whereClause = "wonum= '" + wonum + "'" woset.setWhere(whereClause) woset.reset() woMbo = woset.moveFirst()
- 然后使用这些值创建新记录或更新现有记录:
#If workorder already exists, update it: if woMbo is not None: woMbo.setValue("description", description) woMbo.setValue("classstructureid", classstructureid) woMbo.setValue("wopriority", wopriority) woMbo.setValue("worktype", worktype) woset.save() woset.clear() woset.close() resp[0]='Updated workorder ' + wonum #Else, create a new workorder else: woMbo=woset.add() woMbo.setValue("wonum",wonum) woMbo.setValue("description", description) woMbo.setValue("classstructureid", classstructureid) woMbo.setValue("wopriority", wopriority) woMbo.setValue("worktype", worktype) woset.save() woset.clear() woset.close() resp[0]='Created workorder ' + wonum responseBody =resp[0]
问题:
不幸的是,字段名称/值在脚本中的3 个不同位置硬编码。
我想增强脚本,使它是动态的——不是硬编码的。
- 换句话说,如果脚本可以接受参数/值列表并简单地循环它们以更新或创建相应字段中的记录,那就太好了。
是否有可能做到这一点?