ZBC006.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. var gvZBCCodeResultRef = "/root/hidden/zbc/resultref";
  2. var gvZBCCodeCachePath="/root/hidden/zbccode";
  3. // 이 함수는 시스템 메시지바 화면에서 공통코드 및 유형코드 Cache를 위하여 사용된다.
  4. // biz_id_list 가 null이면 공통코드, null 이 아니면 유형코드이다.
  5. // minmum, sortfield_list, sortmethod_list 가 모두 null 인 경우에만 Cache에 저장된다.
  6. function zbcfGetCodeListCache(biz_id_list, cd_grup_id_list){
  7. model.makeNode(gvZBCCodeCachePath);
  8. model.makeNode(gvZBCCodeResultRef);
  9. var isKindCode = null;
  10. if (biz_id_list == null) {
  11. isKindCode = false;
  12. } else {
  13. isKindCode = true;
  14. }
  15. var biz_id = null;
  16. var cd_grup = null;
  17. var cd_grup_key = null;
  18. var cd_grup_node = null;
  19. var cd_grup_cnt = 0;
  20. // 요청한 코드그룹 ID들 중에서 Cache에 존재하지 않는 코드그룹 ID들만 submit 하도록 추린다.
  21. for(key in cd_grup_id_list) {
  22. cd_grup = cd_grup_id_list[key];
  23. if (isKindCode) {
  24. biz_id = biz_id_list[key];
  25. cd_grup_key = biz_id + cd_grup; // 유형코드에서 인스턴스는 업무구분과 코드그룹ID를 붙여서 사용한다.
  26. } else {
  27. cd_grup_key = cd_grup;
  28. }
  29. // 코드그룹이 이미 Cache에 존재하는지 확인한다.
  30. cd_grup_node = instance1.selectSingleNode(gvZBCCodeCachePath+"/"+cd_grup_key);
  31. if (cd_grup_node == null) { // Cache에 존재하지 않는다. 조회 조건에 추가한다.
  32. cd_grup_cnt = cd_grup_cnt + 1;
  33. if (isKindCode) {
  34. addParameter("bizid",biz_id);
  35. }
  36. addParameter("cdgrupid",cd_grup);
  37. addParameter("sortfield","dispseq");
  38. addParameter("sortmethod", "asc");
  39. }
  40. }
  41. var sourceNode = null;
  42. var submit_id = null;
  43. if (isKindCode) {
  44. submit_id = "TRZBC00105"; // 유형코드 조회용 submit
  45. } else {
  46. submit_id = "TRZBC00101"; // 공통코드 조회용 submit
  47. }
  48. if (cd_grup_cnt > 0) { // Cache에 없는 코드그룹들이 추려졌으므로 이를 사용하여 조회한다.
  49. if (submit(submit_id, "false", getParameterPath(), gvZBCCodeResultRef)) {
  50. // 조회된 코드 그룹 하나하나를 Cache 저장소로 이동시킨다.
  51. cd_grup_cnt = getParameterCount("cdgrupid");
  52. for(var i=0;i<cd_grup_cnt;i++) {
  53. cd_grup = getParameter("cdgrupid",i+1);
  54. if (isKindCode) {
  55. biz_id = getParameter("bizid",i+1);
  56. cd_grup_key = biz_id + cd_grup;
  57. } else {
  58. cd_grup_key = cd_grup;
  59. }
  60. //sourceNode = instance1.selectSingleNode(gvZBCCodeResultRef+"/"+cd_grup);
  61. //alert(gvZBCCodeCachePath+"/"+cd_grup+","+gvZBCCodeResultRef+"/"+cd_grup);
  62. model.makeNode(gvZBCCodeCachePath+"/"+cd_grup_key);
  63. model.copyNode(gvZBCCodeCachePath+"/"+cd_grup_key, gvZBCCodeResultRef+"/"+cd_grup_key);
  64. }
  65. model.removeNode(gvZBCCodeResultRef);
  66. clearParameter("bizid");
  67. clearParameter("cdgrupid");
  68. clearParameter("sortfield");
  69. clearParameter("sortmethod");
  70. }
  71. }
  72. }