1
0

config_metadata.sql 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520
  1. CONNECT TO MWCONFIG~
  2. UPDATE MWCONFIG.CONFIG_METADATA SET ACTIVE=1, "XML"='<db-config>
  3. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}''</attribute>
  4. <attribute id="timestamp-check">2000</attribute>
  5. <element id="attribute">
  6. <attribute id="id">mapping-script</attribute>
  7. <text>
  8. String unescape(String p) {
  9. id.co.hanoman.config.Util.unescape(p);
  10. }
  11. String hex(String p) {
  12. id.co.hanoman.config.Util.hex(p);
  13. }
  14. void copyMessage() {
  15. id.co.hanoman.config.UtilMQ.copyMbMessage(tar.''!this'', msg.''!this'');
  16. }
  17. void copyMessage(String dest, String src) {
  18. id.co.hanoman.config.UtilMQ.copyMbMessage(id.co.hanoman.config.UtilMQ.getMbFolder(tar.''!this'', dest), id.co.hanoman.config.UtilMQ.getMbFolder(head.''!this'', src));
  19. }
  20. void copyMessage(String dest, String src, int depth) {
  21. id.co.hanoman.config.UtilMQ.copyMbMessage(id.co.hanoman.config.UtilMQ.getMbFolder(tar.''!this'', dest), id.co.hanoman.config.UtilMQ.getMbFolder(head.''!this'', src), depth);
  22. }
  23. void copyMessageToChild(String id) {
  24. id.co.hanoman.config.UtilMQ.copyMbMessage(id.co.hanoman.config.UtilMQ.getMbFolder(tar.''!this'', id), msg.''!this'');
  25. }
  26. void setValue(String name, String value) {
  27. mbt.createElementAsLastChild(com.ibm.broker.plugin.MbXMLNSC.FOLDER, name, value);
  28. }
  29. String counter(String id, int hiLength, int loLength, String dateReset) {
  30. id.co.hanoman.config.Util.counter(getParamValue("System", "counter." + id, getParamValue("System", "counter.path", null)), id, hiLength, loLength, dateReset);
  31. }
  32. String convert(String type, Object value, int length) {
  33. id.co.hanoman.config.Util.convert(type, value, length);
  34. }
  35. String decimalFormat(String format, Number value) {
  36. new java.text.DecimalFormat(format).format(value);
  37. }
  38. String getTimeZoneFormat(String format, String timeZone) {
  39. id.co.hanoman.config.Util.getTimeZoneFormat(format, timeZone);
  40. }
  41. String getTimeZoneFormat(String format, String timeZone, Date) {
  42. id.co.hanoman.config.Util.getTimeZoneFormat(format, timeZone, Date);
  43. }
  44. String getUID(String str) {
  45. id.co.hanoman.config.Util.getUID(str);
  46. }
  47. Object bitmap(Map msg, List fields) {
  48. id.co.hanoman.config.Util.bitmap(msg, fields);
  49. }
  50. Object bitmapHex(Map msg, List fields) {
  51. id.co.hanoman.config.Util.hex(id.co.hanoman.config.Util.bitmap(msg, fields));
  52. }
  53. Object dtree(String group, String treeRoot) {
  54. id.co.hanoman.mbplugin.codex.UtilCodex.dtree(config, ctx, group, treeRoot, msg, head, tar);
  55. }
  56. String getParamValue(String group, String name, String defaultValue) {
  57. id.co.hanoman.mbplugin.codex.UtilCodex.getParamValue(config, ctx, group, name, defaultValue, msg, head, local, tar, idx, size);
  58. }
  59. String getParamValueWithError(String group, String name, String error) {
  60. def v = id.co.hanoman.mbplugin.codex.UtilCodex.getParamValue(config, ctx, group, name, null, msg, head, local, tar, idx, size);
  61. if (v == null)
  62. throw new Exception(error);
  63. return v;
  64. }
  65. List getParamValues(String group, String name) {
  66. id.co.hanoman.mbplugin.codex.UtilCodex.getParamValues(config, ctx, group, name, defaultValue, msg, head, local, tar, idx, size);
  67. }
  68. String binaryToNumeric(String type, Object value) {
  69. id.co.hanoman.config.Util.binaryToNumeric(type, value);
  70. }
  71. String ebcdicToAscii(String value) {
  72. id.co.hanoman.config.Util.ebcdicToAscii(value);
  73. }
  74. String getCharge(int idx) {
  75. def v;
  76. if ((v = tar.get("charge_script_" + idx)) != null) {
  77. def script = id.co.hanoman.mbplugin.codex.MappingScript.init(config, ctx, "", "return " + v);
  78. script.setParam("charge_value", tar.get("charge_value_" + idx));
  79. return script.evalString(msg, head, local, tar, idx, size);
  80. } else if ((v = tar.get("charge_value_" + idx)) != null) {
  81. return v;
  82. }
  83. return null;
  84. }
  85. String getChargeValue(int idx) {
  86. def v;
  87. if ((v = tar.get("charge_value_" + idx)) != null) {
  88. return v;
  89. }
  90. return null;
  91. }
  92. String getAccount(int index) {
  93. return tar.get("charge_account_" + index);
  94. }
  95. String numericToBinaryCounter(String value, int idx) {
  96. new java.lang.Integer(value).toHexString(new java.lang.Integer(value) + new java.lang.Integer(idx));
  97. }
  98. void throwException(String error) {
  99. throw new Exception(error);
  100. }
  101. String padLeftMbElementOrString(Object obj, int i, String s) {
  102. return (obj instanceof String ? ((String)obj).padLeft(i, s) : ((com.ibm.broker.plugin.MbElement)obj).getValueAsString().padLeft(i, s));
  103. }
  104. void convertMsg() {
  105. Map map = new LinkedHashMap();
  106. id.co.hanoman.config.UtilMQ.convertData2Map(msg.''!this'', map);
  107. map.remove("!raw");
  108. map.remove("!remaining");
  109. map.remove("!remainingPos");
  110. id.co.hanoman.mbplugin.codex.CodexFactory cf = new id.co.hanoman.mbplugin.codex.CodexFactory(null, config);
  111. id.co.hanoman.mbplugin.codex.Codex cc = cf.getCodex("dsp-iso-response");
  112. id.co.hanoman.mbplugin.codex.CodexContext ctx = new id.co.hanoman.mbplugin.codex.CodexContext();
  113. cc.encode(ctx, map);
  114. String hex = id.co.hanoman.config.Util.dump(ctx.toByteArray(), 0, ctx.toByteArray().length);
  115. if (hex.length() > 999) {
  116. tar.responses1 = hex.substring(0, 999);
  117. hex = hex.substring(999);
  118. } else {
  119. tar.responses1 = hex;
  120. hex = "";
  121. }
  122. if (hex.length() > 999) {
  123. tar.responses2 = hex.substring(0, 999);
  124. hex = hex.substring(999);
  125. } else if (hex.length() > 0) {
  126. tar.responses2 = hex;
  127. hex = "";
  128. }
  129. if (hex.length() > 999) {
  130. tar.responses3 = hex.substring(0, 999);
  131. hex = hex.substring(999);
  132. } else if (hex.length() > 0) {
  133. tar.responses3 = hex;
  134. hex = "";
  135. }
  136. if (hex.length() > 0) {
  137. tar.responses4 = hex;
  138. }
  139. }
  140. String checkSpvOR(String hex) {
  141. String binaryString = Integer.toBinaryString(Integer.parseInt(hex, 16));
  142. String toCheck = binaryString.substring(binaryString.length() - 2, binaryString.length());
  143. if (toCheck.equals("10")) {
  144. return "FE";
  145. } else if (toCheck.equals("01")) {
  146. return "FD";
  147. } else if (toCheck.equals("11")) {
  148. return "FF";
  149. } else {
  150. return "FC";
  151. }
  152. }
  153. void normalizeF9() {
  154. Map map = new LinkedHashMap();
  155. id.co.hanoman.config.UtilMQ.convertData2Map(msg.''!this'', map);
  156. id.co.hanoman.mbplugin.codex.CodexFactory cf = new id.co.hanoman.mbplugin.codex.CodexFactory(null, config);
  157. id.co.hanoman.mbplugin.codex.Codex cc = cf.getCodex("dsp-abcs-response");
  158. id.co.hanoman.mbplugin.codex.CodexContext ctx = new id.co.hanoman.mbplugin.codex.CodexContext();
  159. cc.encode(ctx, map);
  160. String F9Concat = "";
  161. int countF9 = Integer.valueOf(map.get("!COUNT_F9"));
  162. F9Concat = String.valueOf(countF9).padLeft(3, "0");
  163. int i = 1;
  164. while (countF9 >= i) {
  165. F9Concat += map.get("!WITH_" + i + "_F9").toString().padLeft(20, "0") + map.get("!DEP_" + i + "_F9").toString().padLeft(20, "0") + map.get("!INT_" + i + "_F9").toString().padLeft(20, "0") + map.get("!BAL_" + i + "_F9").toString().padLeft(20, "0") + map.get("!TELL_" + i + "_F9").toString().padLeft(7, "0") + map.get("!DATE_" + i + "_F9").toString().padLeft(7, "0") + map.get("!TLPBB_" + i + "_F9").toString().padLeft(3, "0") + map.get("!TLLIN_" + i + "_F9").toString().padLeft(3, "0") + map.get("!TLSB_" + i + "_F9").toString().padLeft(4, "0");
  166. i++;
  167. }
  168. tar.F9Normalize = F9Concat;
  169. }
  170. String getNormalizeF9() {
  171. Map map = new LinkedHashMap();
  172. id.co.hanoman.config.UtilMQ.convertData2Map(msg.''!this'', map);
  173. id.co.hanoman.mbplugin.codex.CodexFactory cf = new id.co.hanoman.mbplugin.codex.CodexFactory(null, config);
  174. id.co.hanoman.mbplugin.codex.Codex cc = cf.getCodex("dsp-abcs-response");
  175. id.co.hanoman.mbplugin.codex.CodexContext ctx = new id.co.hanoman.mbplugin.codex.CodexContext();
  176. cc.encode(ctx, map);
  177. String F9Concat = "";
  178. int countF9 = Integer.valueOf(map.get("!COUNT_F9"));
  179. F9Concat = String.valueOf(countF9).padLeft(2, "0");
  180. int i = 1;
  181. while (countF9 >= i) {
  182. F9Concat += map.get("!WITH_" + i + "_F9").toString().padLeft(19, "0") + map.get("!DEP_" + i + "_F9").toString().padLeft(19, "0") + map.get("!INT_" + i + "_F9").toString().padLeft(19, "0") + map.get("!BAL_" + i + "_F9").toString().padLeft(19, "0") + map.get("!TELL_" + i + "_F9").toString().padLeft(7, "0") + map.get("!DATE_" + i + "_F9").toString().padLeft(7, "0") + map.get("!TLPBB_" + i + "_F9").toString().padLeft(3, "0") + map.get("!TLLIN_" + i + "_F9").toString().padLeft(3, "0") + map.get("!TLSB_" + i + "_F9").toString().padLeft(4, "0");
  183. i++;
  184. }
  185. return F9Concat;
  186. }
  187. String getNormalize42() {
  188. Map map = new LinkedHashMap();
  189. id.co.hanoman.config.UtilMQ.convertData2Map(msg.''!this'', map);
  190. id.co.hanoman.mbplugin.codex.CodexFactory cf = new id.co.hanoman.mbplugin.codex.CodexFactory(null, config);
  191. id.co.hanoman.mbplugin.codex.Codex cc = cf.getCodex("dsp-abcs-response");
  192. id.co.hanoman.mbplugin.codex.CodexContext ctx = new id.co.hanoman.mbplugin.codex.CodexContext();
  193. cc.encode(ctx, map);
  194. String StrConcat = "";
  195. StrConcat = map.get("!TELLERTRANCD_42").toString().padLeft(5, "0") + map.get("!TELLERTRANMNM_42").toString().padLeft(3, "0") + map.get("!TELLERJOURNALSEQ_42").toString().padLeft(7, "0") + map.get("!TELLER_42").toString().padLeft(7, "0") + map.get("!CTRLID_42").toString().padLeft(3, "0") + map.get("!WORKSTID_42").toString().padLeft(2, "0") + map.get("!HIGHOVRD_42").toString().padLeft(1, "0") + map.get("!NUMERR_42").toString().padLeft(2, "0") + map.get("!FILL_A_42").toString().padLeft(3, "0") + map.get("!FILL_B_42").toString().padLeft(1, "0");
  196. int count42 = Integer.valueOf(map.get("!NUMERR_42"));
  197. int i = 1;
  198. while (count42 >= i) {
  199. StrConcat += map.get("!EDIT_" + i + "_42").toString().padLeft(2, "0") + map.get("!OVERRIDE_" + i + "_42").toString().padLeft(1, "0") + map.get("!TLTX_" + i + "_42").toString().padLeft(1, "0") + map.get("!ADDINF_" + i + "_42").toString().padLeft(17, "0") + map.get("!FILLER1_" + i + "_42").toString().padLeft(3, "0") + map.get("!FILLER2_" + i + "_42").toString().padLeft(1, "0");
  200. i++;
  201. }
  202. StrConcat += map.get("!FILL_1_42").toString().padLeft(2, "0") + map.get("!FILL_2_42").toString().padLeft(1, "0") + map.get("!FILL_3_42").toString().padLeft(1, "0") + map.get("!FILL_4_42").toString().padLeft(17, "0") + map.get("!ERROR_42").toString().padLeft(50, "0");
  203. return StrConcat;
  204. }
  205. String passBookF9() {
  206. Map map = new LinkedHashMap();
  207. id.co.hanoman.config.UtilMQ.convertData2Map(msg.''!this'', map);
  208. String F9Concat = "";
  209. int countF9 = Integer.valueOf(map.get("!COUNT_F9"));
  210. int index = 0;
  211. int i = 1;
  212. if (countF9 > 12) {
  213. index = 12;
  214. } else {
  215. index = countF9;
  216. }
  217. F9Concat = String.valueOf(index) + "|";
  218. while (index >= i) {
  219. F9Concat += decimalFormat(".00", Double.valueOf(map.get("!WITH_" + i + "_F9"))) + "|" + decimalFormat(".00", Double.valueOf(map.get("!DEP_" + i + "_F9"))) + "|" + decimalFormat(".00", Double.valueOf(map.get("!INT_" + i + "_F9"))) + "|" + decimalFormat(".00", Double.valueOf(map.get("!BAL_" + i + "_F9"))) + "|" + Integer.valueOf(map.get("!TELL_" + i + "_F9")) + "|" + Integer.valueOf(map.get("!DATE_" + i + "_F9")) + "|" + map.get("!TLPBB_" + i + "_F9").toString() + "|" + Integer.valueOf(map.get("!TLLIN_" + i + "_F9")) + "|";
  220. i++;
  221. }
  222. return F9Concat;
  223. }
  224. String getMD5(String input) {
  225. java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
  226. byte[]messageDigest = md.digest(input.getBytes());
  227. BigInteger number = new BigInteger(1, messageDigest);
  228. String hashstr = number.toString(16);
  229. while (hashstr.length() &lt; 32) {
  230. hashstr = "0" + hashstr;
  231. }
  232. return hashstr;
  233. }
  234. String sha1(String input) {
  235. java.security.MessageDigest mDigest = java.security.MessageDigest.getInstance("SHA1");
  236. byte[]result = mDigest.digest(input.getBytes());
  237. StringBuffer sb = new StringBuffer();
  238. for (int i = 0; i &lt; result.length; i++) {
  239. sb.append(Integer.toString((result[i] &amp; 0xff) + 0x100, 16).substring(1));
  240. }
  241. return sb.toString();
  242. }
  243. </text>
  244. </element>
  245. <element id="ports">
  246. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''port''</attribute>
  247. <element id="port" query="select a.id, a.asynchronous, s.port, s.server, s.group, a.timestamp from ${schema}.adaptor a, ${schema}.server_port s where a.id = s.adaptor_id">
  248. <attribute id="server">${v.server}</attribute>
  249. <attribute id="id">${v.id}</attribute>
  250. <attribute id="tz">${v.timestamp}</attribute>
  251. <attribute id="group">${v.group}</attribute>
  252. <param id="asynchronous" boolean="true">${v.asynchronous}</param>
  253. <param id="port">${v.port}</param>
  254. <param id="closeQueue">${v.close_queue}</param>
  255. <element id="param" query="select adaptor_id, name, value from ${schema}.adaptor_param" filter-value="adaptor_id" filter-parent="id">
  256. <attribute id="id">${v.name}</attribute>
  257. <text>${v.value}</text>
  258. </element>
  259. <element id="codex" query="select id, codex_id, adaptor_id from ${schema}.adaptor_codex" filter-value="adaptor_id" filter-parent="id">
  260. <attribute id="id">${v.id}</attribute>
  261. <attribute id="src">/*/codex[@id=''${v.codex_id}'']</attribute>
  262. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''codex''</attribute>
  263. </element>
  264. </element>
  265. </element>
  266. <element id="clients">
  267. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''port''</attribute>
  268. <element id="client" query="select distinct ct.id, c.adaptor_id, c.node, a.asynchronous, c.keep_conn, c.reuse_delay, c.idle_wait, c.close_queue, c.control_queue, a.timestamp from ${schema}.adaptor a, ${schema}.client c, ${schema}.client_target ct where a.id = c.adaptor_id and a.id = ct.client_id" query-value="id, adaptor_id">
  269. <attribute id="id">${v.id}</attribute>
  270. <attribute id="adaptorId">${v.adaptor_id}</attribute>
  271. <attribute id="tz">${v.timestamp}</attribute>
  272. <attribute id="node">${v.node}</attribute>
  273. <param id="asynchronous" boolean="true">${v.asynchronous}</param>
  274. <param id="keepConnection">${v.keep_conn}</param>
  275. <param id="reuseDelay">${v.reuse_delay}</param>
  276. <param id="idleWait">${v.idle_wait}</param>
  277. <param id="closeQueue">${v.close_queue}</param>
  278. <param id="controlQueue">${v.control_queue}</param>
  279. <element id="param" query="select adaptor_id, name, value from ${schema}.adaptor_param" filter-value="adaptor_id" filter-parent="adaptor_id">
  280. <attribute id="id">${v.name}</attribute>
  281. <text>${v.value}</text>
  282. </element>
  283. <element id="target" query="select id, client_id, host, weight, seq from ${schema}.client_target" query-value="id, client_id" filter-value="id__client_id" filter-parent="id__adaptor_id">
  284. <attribute id="id">${v.id}|${v.seq}</attribute>
  285. <attribute id="weight">${v.weight}</attribute>
  286. <text>${v.host}</text>
  287. </element>
  288. <element id="codex" query="select id, codex_id, adaptor_id from ${schema}.adaptor_codex" filter-value="adaptor_id" filter-parent="adaptor_id">
  289. <attribute id="id">${v.id}</attribute>
  290. <attribute id="src">/*/codex[@id=''${v.codex_id}'']</attribute>
  291. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''codex''</attribute>
  292. </element>
  293. </element>
  294. </element>
  295. <element id="parser" query="select id from ${schema}.parser">
  296. <attribute id="id">${v.id}</attribute>
  297. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''parser''</attribute>
  298. <element id="codex" query="select parser_id, id, codex_id from ${schema}.parser_codex" filter-value="parser_id" filter-parent="id">
  299. <attribute id="id">${v.id}</attribute>
  300. <attribute id="src">/*/codex[@id=''${v.codex_id}'']</attribute>
  301. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''codex''</attribute>
  302. </element>
  303. </element>
  304. <element id="db" query="select id, driver, url, username, password, schema, timeout from ${schema}.dbconn">
  305. <attribute id="id">${v.id}</attribute>
  306. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''db''</attribute>
  307. <param id="driver">${v.driver}</param>
  308. <param id="url">${v.url}</param>
  309. <param id="username">${v.username}</param>
  310. <param id="password">${v.password}</param>
  311. <param id="schema">${v.schema}</param>
  312. <param id="timeout">${v.timeout}</param>
  313. </element>
  314. <element id="dbquery" lazy="true" query="select id, query from ${schema}.dbquery">
  315. <attribute id="id">${v.id}</attribute>
  316. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''db''</attribute>
  317. <text>${v.query}</text>
  318. </element>
  319. <element id="routing" query="select code_start, code_end, channel, start_date, end_date, subcodex, queue, status, additional, reply_to, reply_to_qmgr from ${schema}.routing_table">
  320. <attribute id="id">${v.channel}|${v.code_start}|${v.code_end}</attribute>
  321. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''routing''</attribute>
  322. <param id="code_start">${v.code_start}</param>
  323. <param id="code_end">${v.code_end}</param>
  324. <param id="channel">${v.channel}</param>
  325. <param id="start_date">${v.start_date}</param>
  326. <param id="end_date">${v.end_date}</param>
  327. <param id="subcodex">${v.subcodex}</param>
  328. <param id="queue">${v.queue}</param>
  329. <param id="status">${v.status}</param>
  330. <param id="additional">${v.additional}</param>
  331. <param id="replyTo">${v.reply_to}</param>
  332. <param id="replyToQMgr">${v.reply_to_qmgr}</param>
  333. </element>
  334. <element id="mapping" lazy="true" query="select id, description, module from ${schema}.mapping">
  335. <attribute id="id">${v.id}</attribute>
  336. <attribute id="__id">${v.module}</attribute>
  337. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''mapping''</attribute>
  338. <param id="description">${v.description}</param>
  339. <element id="group" query="select mapping_id, id, source, target, include_mapping_id, include_id from ${schema}.mapping_group order by id asc" query-value="mapping_id, id" filter-value="mapping_id" filter-parent="id">
  340. <attribute id="id">${v.id}</attribute>
  341. <attribute id="include_mapping_id">${v.include_mapping_id}</attribute>
  342. <attribute id="include_id">${v.include_id}</attribute>
  343. <param id="source">${v.source}</param>
  344. <param id="target">${v.target}</param>
  345. <element id="line" query="select mapping_id, mapping_group_id, name, text, seq from ${schema}.mapping_group_line order by seq asc" query-value="mapping_id, mapping_group_id" filter-value="mapping_id__mapping_group_id" filter-parent="mapping_id__id">
  346. <attribute id="name">${v.name}</attribute>
  347. <attribute id="seq">${v.seq}</attribute>
  348. <text>${v.text}</text>
  349. </element>
  350. </element>
  351. </element>
  352. <element id="host" query="select id, host, username, password, context from ${schema}.host">
  353. <attribute id="id">${v.id}</attribute>
  354. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''rpg''</attribute>
  355. <param id="host">${v.host}</param>
  356. <param id="username">${v.username}</param>
  357. <param id="password">${v.password}</param>
  358. <param id="context">${v.context}</param>
  359. </element>
  360. <element id="rpg-call" lazy="true" query="select id, cmd, timeout, host from ${schema}.rpg_call">
  361. <attribute id="id">${v.id}</attribute>
  362. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''rpg''</attribute>
  363. <param id="cmd">${v.cmd}</param>
  364. <param id="timeout">${v.timeout}</param>
  365. <element query="select id, host, username, password, context from ${schema}.host" filter-value="id" filter-parent="host">
  366. <param id="host">${v.host}</param>
  367. <param id="username">${v.username}</param>
  368. <param id="password">${v.password}</param>
  369. <param id="context">${v.context}</param>
  370. </element>
  371. <element id="arg" query="select rpg_call_id, name, type, length from ${schema}.rpg_call_arg order by id asc" filter-value="rpg_call_id" filter-parent="id">
  372. <attribute id="id">${v.name}</attribute>
  373. <param id="type">${v.type}</param>
  374. <param id="length">${v.length}</param>
  375. </element>
  376. </element>
  377. <element id="codex" lazy="true" query="select id, allow_partial, xml from ${schema}.codex" query-with-filter="select id, allow_partial, xml from ${schema}.codex where ${v.filter}">
  378. <attribute id="id">${v.id}</attribute>
  379. <attribute id="allow-partial" boolean="true">${v.allow_partial}</attribute>
  380. <attribute id="preload" boolean="true"/>
  381. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''codex''</attribute>
  382. <xml parent-attributes="type,charset,mask">${v.xml}</xml>
  383. </element>
  384. <element id="dtree-map" query="select group, path, value, module from ${schema}.dtree" query-value="group, path">
  385. <attribute id="id">${v.group}|${v.path}</attribute>
  386. <attribute id="__id">${v.module}</attribute>
  387. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''param''</attribute>
  388. <param id="group">${v.group}</param>
  389. <param id="path">${v.path}</param>
  390. <param id="value">${v.value}</param>
  391. <element id="map" query="select group, path, name, value from ${schema}.dtree_map" query-value="group, path" filter-value="group__path" filter-parent="group__path">
  392. <param id="name">${v.name}</param>
  393. <param id="value">${v.value}</param>
  394. </element>
  395. <element query="select ''CHARGES'' as group, id, c1_name, c1_value, c1_script, c1_account, c2_name, c2_value, c2_script, c2_account, c3_name, c3_value, c3_script, c3_account, c4_name, c4_value, c4_script, c4_account, c5_name, c5_value, c5_script, c5_account, c6_name, c6_value from ${schema}.charges" query-value="group, id" filter-value="group__id" filter-parent="group__path">
  396. <element id="map">
  397. <param id="name">charge_name_1</param>
  398. <param id="value">${v.c1_name}</param>
  399. </element>
  400. <element id="map">
  401. <param id="name">charge_value_1</param>
  402. <param id="value">${v.c1_value}</param>
  403. </element>
  404. <element id="map">
  405. <param id="name">charge_script_1</param>
  406. <param id="value">${v.c1_script}</param>
  407. </element>
  408. <element id="map">
  409. <param id="name">charge_account_1</param>
  410. <param id="value">${v.c1_account}</param>
  411. </element>
  412. <element id="map">
  413. <param id="name">charge_name_2</param>
  414. <param id="value">${v.c2_name}</param>
  415. </element>
  416. <element id="map">
  417. <param id="name">charge_value_2</param>
  418. <param id="value">${v.c2_value}</param>
  419. </element>
  420. <element id="map">
  421. <param id="name">charge_script_2</param>
  422. <param id="value">${v.c2_script}</param>
  423. </element>
  424. <element id="map">
  425. <param id="name">charge_account_2</param>
  426. <param id="value">${v.c2_account}</param>
  427. </element>
  428. <element id="map">
  429. <param id="name">charge_name_3</param>
  430. <param id="value">${v.c3_name}</param>
  431. </element>
  432. <element id="map">
  433. <param id="name">charge_value_3</param>
  434. <param id="value">${v.c3_value}</param>
  435. </element>
  436. <element id="map">
  437. <param id="name">charge_script_3</param>
  438. <param id="value">${v.c3_script}</param>
  439. </element>
  440. <element id="map">
  441. <param id="name">charge_account_3</param>
  442. <param id="value">${v.c3_account}</param>
  443. </element>
  444. <element id="map">
  445. <param id="name">charge_name_4</param>
  446. <param id="value">${v.c4_name}</param>
  447. </element>
  448. <element id="map">
  449. <param id="name">charge_value_4</param>
  450. <param id="value">${v.c4_value}</param>
  451. </element>
  452. <element id="map">
  453. <param id="name">charge_script_4</param>
  454. <param id="value">${v.c4_script}</param>
  455. </element>
  456. <element id="map">
  457. <param id="name">charge_account_4</param>
  458. <param id="value">${v.c4_account}</param>
  459. </element>
  460. <element id="map">
  461. <param id="name">charge_name_5</param>
  462. <param id="value">${v.c5_name}</param>
  463. </element>
  464. <element id="map">
  465. <param id="name">charge_value_5</param>
  466. <param id="value">${v.c5_value}</param>
  467. </element>
  468. <element id="map">
  469. <param id="name">charge_script_5</param>
  470. <param id="value">${v.c5_script}</param>
  471. </element>
  472. <element id="map">
  473. <param id="name">charge_account_5</param>
  474. <param id="value">${v.c5_account}</param>
  475. </element>
  476. <element id="map">
  477. <param id="name">charge_name_6</param>
  478. <param id="value">${v.c6_name}</param>
  479. </element>
  480. <element id="map">
  481. <param id="name">charge_value_6</param>
  482. <param id="value">${v.c6_value}</param>
  483. </element>
  484. </element>
  485. </element>
  486. <element id="param-map" query="select group, name, seq, value from ${schema}.param_map order by seq">
  487. <attribute id="id">${v.group}|${v.name}</attribute>
  488. <attribute id="seq">${v.seq}</attribute>
  489. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''param''</attribute>
  490. <param id="group">${v.group}</param>
  491. <param id="name">${v.name}</param>
  492. <param id="value">${v.value}</param>
  493. </element>
  494. <element id="param-map" query="select group, device_id, teller_id, terminal_id, ctrl_unit_id, terminal_ip from ${schema}.dev_teller_map order by group, device_id, teller_id">
  495. <attribute id="id">device_teller_map|${v.group}_${v.device_id}</attribute>
  496. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''param''</attribute>
  497. <param id="group">device_teller_map</param>
  498. <param id="name">${v.group}_${v.device_id}</param>
  499. <param id="value">${v.teller_id}|${v.terminal_id}|${v.ctrl_unit_id}|${v.terminal_ip}</param>
  500. </element>
  501. <element query="select group, original, target, detail from ${schema}.error_map">
  502. <element id="param-map">
  503. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''param''</attribute>
  504. <attribute id="id">error_map|${v.group}|${v.original}</attribute>
  505. <param id="group">error_map|${v.group}</param>
  506. <param id="name">${v.original}</param>
  507. <param id="value">${v.target}</param>
  508. </element>
  509. <element id="param-map">
  510. <attribute id="timestamp" trim="true">SELECT MAX(TIMESTAMP) FROM ${schema}.RELOADTS WHERE BROKER = ''${broker}'' AND EXECUTIONGROUP = ''${executionGroup}'' AND TYPE = ''param''</attribute>
  511. <attribute id="id">error_map_detail|${v.group}|${v.original}</attribute>
  512. <param id="group">error_map_detail|${v.group}</param>
  513. <param id="name">${v.original}</param>
  514. <param id="value">${v.detail}</param>
  515. </element>
  516. </element>
  517. <!--element id="certificate" query="select trim(id) as id, trim(password) as password, trim(key_index) as key_index from ${schema}.certificate"><attribute id="id">${v.id}</attribute><param id="password">${v.password}</param><param id="keyIndex">${v.key_index}</param></element-->
  518. <!-- element id="monitor" query="select id, delay, script from ${schema}.monitor"> <attribute id="id">${v.id}</attribute> <attribute id="delay">${v.delay}</attribute> <text>${v.script}</text> </element -->
  519. </db-config>', MODIFIED_BY='DB2INST1', "TIMESTAMP"=CURRENT_TIMESTAMP WHERE RID_BIT()=x'0400000000000000000095C77B000000'~