Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.48 KB | None | 0 0
  1. /**
  2. * this view wraps the ccc_rightsholder_agreement table. it's
  3. * only purpose is to fill the PTY_INST column with the rightsholders
  4. * account number. This is temporary work around to deal with a bug in
  5. * RMS migration.
  6. */
  7. create or replace view rms_mig_rh_agreement (
  8. AGR_INST,
  9. PTY_INST,
  10. AGT_INST,
  11. AGREEMENT_TYPE,
  12. START_DATE,
  13. END_DATE,
  14. AGR_STATUS_CD,
  15. OPTIONS,
  16. RENEWAL_NOTIFICATION,
  17. NOTIFICATION_STATUS,
  18. SIGNED_BY_NAME,
  19. SIGNED_BY_TITLE,
  20. CCC_ACCT_REP_ID,
  21. CCC_SIGNED_BY_NAME,
  22. CCC_SIGNED_BY_TITLE,
  23. EFFECTIVE_DATE,
  24. CRE_DTM,
  25. CRE_USER,
  26. UPD_DTM,
  27. UPD_USER,
  28. AUTHOR,
  29. FULL_EXTENT,
  30. COMMENTS,
  31. AGREEMENT_TEXT_CHANGE,
  32. EXCEPTION_TEXT,
  33. VLD_BEG_DTM,
  34. VLD_END_DTM) as
  35. select
  36. a.AGR_INST,
  37. p.account_num PTY_INST,
  38. a.AGT_INST,
  39. a.AGREEMENT_TYPE,
  40. a.START_DATE,
  41. a.END_DATE,
  42. a.AGR_STATUS_CD,
  43. a.OPTIONS,
  44. a.RENEWAL_NOTIFICATION,
  45. a.NOTIFICATION_STATUS,
  46. a.SIGNED_BY_NAME,
  47. a.SIGNED_BY_TITLE,
  48. decode(rep.emp_inst,
  49. null,'Not Applied in TF',
  50. rep.lname||decode(rep.fname,null,null,', ')||rep.fname) as CCC_ACCT_REP_ID,
  51. a.CCC_SIGNED_BY_NAME,
  52. a.CCC_SIGNED_BY_TITLE,
  53. a.EFFECTIVE_DATE,
  54. a.CRE_DTM,
  55. a.CRE_USER,
  56. a.UPD_DTM,
  57. a.UPD_USER,
  58. a.AUTHOR,
  59. a.FULL_EXTENT,
  60. a.COMMENTS,
  61. a.AGREEMENT_TEXT_CHANGE,
  62. a.EXCEPTION_TEXT,
  63. a.VLD_BEG_DTM,
  64. a.VLD_END_DTM
  65. from ccctf.ccc_rightsholder_agreement a,
  66. ccctf.ccc_party p,
  67. ccctf.ccc_employee rep
  68. where rep.emp_inst(+) = a.ccc_acct_rep_id
  69. and a.pty_inst = p.pty_inst
  70. and a.agt_inst in (4,5,6,12,16,39,58);
  71.  
  72. /*
  73. Creates a view of the agreements that need to be migrated.
  74. First, we include all agreement types that were at one time active and
  75. participating but have since been end dated.
  76. Second, we include all agreements that are active as of today and are
  77. either Participating, Refused, Withdrawn, Ceased, or Lost.
  78. */
  79. create or replace view rms_mig_agreements_v as
  80. -- first get "ended" participating agreements
  81. select rha.*
  82. from
  83. CCCTF.CCC_RIGHTSHOLDER_AGREEMENT rha
  84. where (pty_inst, agt_inst) in
  85. (select rha2.pty_inst, rha2.agt_inst
  86. from
  87. CCCTF.CCC_RIGHTSHOLDER_AGREEMENT rha2
  88. where rha2.agr_status_cd = 'P'
  89. and sysdate not between rha2.start_date and rha2.end_date
  90. and rha2.agt_inst in (4,5,6,12,16,39,58,60) )
  91. union
  92. -- now get agreements that are "current" as of today
  93. select rha.*
  94. from
  95. CCCTF.CCC_RIGHTSHOLDER_AGREEMENT rha
  96. where (rha.pty_inst, agt_inst) in
  97. (select rha2.pty_inst, rha2.agt_inst
  98. from
  99. CCCTF.CCC_RIGHTSHOLDER_AGREEMENT rha2
  100. where rha2.agr_status_cd in ('P','R','W','C','L')
  101. and sysdate between rha2.start_date and rha2.end_date
  102. and rha2.agt_inst in (4,5,6,12,16,39,58,60) );
  103.  
  104. /*
  105. Create a view that has a row for each rightsholder with additional columns
  106. describing its parent/child status
  107. */
  108. create or replace view rms_rightsholder_childtype_v
  109. as
  110. SELECT p.pty_inst rh_pty_inst,
  111. orgname rh_name,
  112. party_id rh_party_id,
  113. NVL (
  114. (SELECT UNIQUE 'YES'
  115. FROM ccc_party p1, ccc_pty_pTY_type rel -- is this an rro?
  116. WHERE p.pty_inst = rel.pty_inst
  117. AND ptt_inst = 3
  118. AND p.pty_inst = p1.pty_inst),
  119. 'NO')
  120. is_rro,
  121. NVL (
  122. (SELECT UNIQUE 'YES'
  123. FROM ccc_party p1, ccc_pty_pTY_rel rel -- any tf parties have rro relationships?
  124. WHERE p1.pty_inst = rel.child_pty_inst
  125. AND rel_type = 'RRO'
  126. AND p.pty_inst = p1.pty_inst),
  127. 'NO')
  128. is_rro_member,
  129. (SELECT (select ORGNAME
  130. from ccc_party rro
  131. where rro.pty_inst = par_pty_inst) rroname
  132. FROM ccc_party p1, ccc_pty_pTY_rel rel -- rro name if member
  133. WHERE p.pty_inst = rel.child_pty_inst
  134. AND rel_type = 'RRO'
  135. AND p.pty_inst = p1.pty_inst) members_rro_name,
  136. (SELECT (select par_pty_inst
  137. from ccc_party rro
  138. where rro.pty_inst = par_pty_inst) parent_pty_inst
  139. FROM ccc_party p1,
  140. ccc_pty_pTY_rel rel
  141. WHERE p.pty_inst = rel.child_pty_inst
  142. AND rel_type = 'RRO'
  143. AND p.pty_inst = p1.pty_inst) members_rro_pty_inst,
  144. NVL (
  145. (SELECT UNIQUE 'YES'
  146. FROM ccc_party p1, ccc_pty_pTY_rel rel -- any tf parties have rro relationships?
  147. WHERE p1.pty_inst = rel.child_pty_inst
  148. AND rel_type = 'SUBSIDIARY'
  149. AND p.pty_inst = p1.pty_inst),
  150. 'NO')
  151. is_subsidiary,
  152. (SELECT Par_pty_inst
  153. FROM ccc_party p1,
  154. ccc_pty_pTY_rel rel -- any tf parties have subsidiaries?
  155. WHERE p1.pty_inst = rel.child_pty_inst
  156. AND rel_type = 'SUBSIDIARY'
  157. AND p.pty_inst = p1.pty_inst
  158. AND ROWNUM = 1)
  159. parents_pty_inst,
  160. (SELECT (select ORGNAME
  161. from ccc_party parent
  162. where parent.pty_inst = par_pty_inst) name
  163. FROM ccc_party p1,
  164. ccc_pty_pTY_rel rel -- parents name if subsidiary
  165. WHERE p.pty_inst = rel.child_pty_inst
  166. AND rel_type = 'SUBSIDIARY'
  167. AND p.pty_inst = p1.pty_inst) parents_name,
  168. NULL chrh_country
  169. FROM ccc_party p,
  170. ccc_pty_pty_type pt
  171. WHERE p.pty_inst = pt.pty_inst
  172. AND ptt_inst = 1;
  173.  
  174. /*
  175. Creates a view with a row for each RH showing whether or not they have
  176. a direct deal with CCC.
  177. */
  178. create or replace view rms_direct_deal_right_v
  179. as
  180. SELECT
  181. case
  182. when rh_rct.is_rro = 'NO'
  183. and ra.agr_status_cd = 'P'
  184. and (rr.rgh_inst = ra.pty_inst
  185. or agr_rct.is_rro = 'NO')
  186. then 'Y'
  187. else 'N'
  188. end direct_deal,
  189. rr.rgh_inst rh_pty_inst,
  190. rh_rct.rh_name,
  191. rh_rct.is_rro,
  192. rh_rct.is_rro_member,
  193. rh_rct.is_subsidiary,
  194. ra.pty_inst agr_holders_pty_inst,
  195. agr_rct.rh_name agr_holders_name,
  196. agr_rct.is_rro agr_holder_is_rro,
  197. agr_rct.is_rro_member agr_holder_is_rro_member,
  198. r.rgt_inst,
  199. r.vld_beg_dtm,
  200. r.vld_end_dtm
  201. FROM
  202. rms_rightsholder_childtype_v rh_rct,
  203. rms_rightsholder_childtype_v agr_rct,
  204. ccctf.ccc_rightsholder_agreement ra,
  205. ccctf.ccc_right_rightsholder rr,
  206. ccctf.ccc_right r,
  207. ccctf.ccc_agreement_product_use apu,
  208. ccctf.ccc_product_use_schedule psc
  209. WHERE rh_rct.rh_pty_inst = rr.rgh_inst
  210. AND agr_rct.rh_pty_inst = ra.pty_inst
  211. AND r.rgt_inst = rr.rgt_inst(+)
  212. and r.vld_beg_dtm = rr.vld_beg_dtm(+)
  213. and r.vld_end_dtm = rr.vld_end_dtm(+)
  214. AND ra.agr_inst = apu.agr_inst
  215. AND r.apu_inst = apu.apu_inst
  216. AND apu.psc_inst = psc.psc_inst;
  217.  
  218. /*
  219. creates a table with all WR works from each WR RRO collection
  220. runtime: 352 secs. in PRE1 637 secs dev1
  221. */
  222. --drop the table if exists
  223. BEGIN
  224. EXECUTE IMMEDIATE 'DROP TABLE rms_rro_collection_works';
  225. EXCEPTION
  226. WHEN OTHERS THEN
  227. IF SQLCODE != -942 THEN
  228. RAISE;
  229. END IF;
  230. END;
  231. /
  232.  
  233. -- ensure we don't pick up non-preferred works
  234. create table rms_rro_collection_works
  235. (collection_name, tf_wks_inst, wr_wrk_inst, tf_wrk_inst, cre_dtm,
  236. cre_user, upd_dtm, upd_user)
  237. as
  238. SELECT c.collection_name, c.tf_wks_inst, w.wr_wrk_inst, w.tf_wrk_inst,
  239. wc.cre_dtm,wc.cre_usr, wc.upd_dtm, wc.upd_usr
  240. FROM COLLECTION@CCC2WR c,
  241. WORK_COLLECTION@CCC2WR wc,
  242. WORK@CCC2WR w
  243. WHERE c.COLLECTION_TYPE_CD = 'RRO'
  244. and c.col_inst = wc.col_inst
  245. and wc.wr_wrk_inst = w.wr_wrk_inst
  246. and w.preferred_wrk_ind = 1;
  247.  
  248. CREATE OR REPLACE VIEW RMS_MIG_workset_rights AS
  249. SELECT
  250. rgt.rgt_inst,
  251. prd.prd_inst,
  252. prd.abrv,
  253. rgt.wks_inst rgt_wks_inst,
  254. rgt.wrk_inst rgt_wrk_inst,
  255. pty.account_num rgt_account,
  256. decode(pty.person_org_type,'O',pty.orgname,pty.lname||', '||pty.fname) rh_name,
  257. ddr.is_rro rh_rro_flag,
  258. ddr.is_rro_member rh_rro_mem_flag,
  259. apty.account_num agr_account,
  260. ddr.agr_holders_name,
  261. ddr.agr_holder_is_rro agr_holder_rro_flag,
  262. ddr.agr_holder_is_rro_member agr_holder_rro_member_flag,
  263. rma.agr_inst,
  264. rma.agt_inst agr_type_inst,
  265. rma.agreement_type agr_type,
  266. rma.start_date agr_start_date,
  267. rma.end_date agr_end_date,
  268. rma.effective_date agr_eff_date,
  269. rma.agr_status_cd,
  270. rma.cre_dtm agr_cre_dtm,
  271. rma.cre_user agr_cre_user,
  272. rma.upd_dtm agr_upd_dtm,
  273. rma.upd_user agr_upd_user,
  274. rgt.grant_deny rgt_permission,
  275. rgt.tps_inst rgt_tps_inst,
  276. rgt.tpu_inst rgt_tpu_inst,
  277. rgt.vld_beg_dtm rgt_start_date,
  278. rgt.vld_end_dtm rgt_end_date,
  279. rgt.cre_dtm rgt_cre_dtm,
  280. rgt.cre_user rgt_cre_user,
  281. rgt.upd_dtm rgt_upd_dtm,
  282. rgt.upd_user rgt_upd_user,
  283. rgt.publication_beg_date rgt_pub_beg_date,
  284. rgt.publication_end_date rgt_pub_end_date,
  285. rgt.external_comments rgt_term,
  286. rgq.qualifier_text rgt_rqs,
  287. DECODE (RGTS_LIMITATION_TPS, 146, 'T', 'F') rgt_reponsive_right_flag,
  288. ddr.direct_deal rgt_direct_deal_flag,
  289. wks.setname workset_name,
  290. wkstyp.brf_dscr workset_type,
  291. wks.comments workset_comments
  292. FROM CCCTF.CCC_RIGHT rgt
  293. LEFT JOIN CCCTF.CCC_RIGHT_QUALIFIER rgq ON rgt.rgq_inst = rgq.rgq_inst
  294. INNER JOIN CCCTF.CCC_WORK_SET wks ON rgt.wks_inst = wks.wks_inst
  295. INNER JOIN CCCTF.CCC_GENERAL_LOOK_UP wkstyp ON (wks.wks_type_cd = wkstyp.cd AND wkstyp.catg = 'WORK_SET_TYPE_CODE')
  296. INNER JOIN RMS_DIRECT_DEAL_RIGHT_V ddr ON (rgt.rgt_inst = ddr.rgt_inst AND rgt.vld_beg_dtm = ddr.vld_beg_dtm AND rgt.vld_end_dtm = ddr.vld_end_dtm)
  297. INNER JOIN CCCTF.CCC_RIGHT_RIGHTSHOLDER rr ON (rgt.rgt_inst = rr.rgt_inst AND rgt.vld_beg_dtm = rr.vld_beg_dtm AND rgt.vld_end_dtm = rr.vld_end_dtm)
  298. INNER JOIN CCCTF.CCC_PARTY pty ON rr.rgh_inst = pty.pty_inst
  299. INNER JOIN CCCTF.CCC_AGREEMENT_PRODUCT_USE apu ON rgt.apu_inst = apu.apu_inst
  300. INNER JOIN CCCTF.CCC_PRODUCT_USE_SCHEDULE psc ON apu.psc_inst = psc.psc_inst
  301. INNER JOIN CCCTF.CCC_PRODUCT prd ON psc.prd_inst = prd.prd_inst
  302. INNER JOIN RMS_MIG_AGREEMENTS_V rma ON apu.agr_inst = rma.agr_inst
  303. INNER JOIN CCCTF.CCC_PARTY apty ON rma.pty_inst = apty.pty_inst
  304. WHERE
  305. rgt.lcn_inst IS NULL
  306. AND rgt.wks_inst IS NOT NULL
  307. AND rgt.wrk_inst IS NULL
  308. AND (prd.abrv in ('DPS') AND (rgt.tpu_inst IN (204,203,134,133) OR rgt.tps_inst IN (133,134))
  309. OR prd.abrv in ('TRS') AND (rgt.tpu_inst IN (1) OR rgt.tps_inst IN (3))
  310. OR prd.abrv in ('ARS') AND (rgt.tpu_inst IN (254) OR rgt.tps_inst IN (144))
  311. );
  312.  
  313. CREATE OR REPLACE VIEW RMS_MIG_work_rights AS
  314. SELECT
  315. rgt.rgt_inst,
  316. prd.prd_inst,
  317. prd.abrv,
  318. rgt.wks_inst rgt_wks_inst,
  319. rgt.wrk_inst rgt_wrk_inst,
  320. pty.account_num rgt_account,
  321. decode(pty.person_org_type,'O',pty.orgname,pty.lname||', '||pty.fname) rh_name,
  322. ddr.is_rro rh_rro_flag,
  323. ddr.is_rro_member rh_rro_mem_flag,
  324. apty.account_num agr_account,
  325. ddr.agr_holders_name,
  326. ddr.agr_holder_is_rro agr_holder_rro_flag,
  327. ddr.agr_holder_is_rro_member agr_holder_rro_member_flag,
  328. rma.agr_inst,
  329. rma.agt_inst agr_type_inst,
  330. rma.agreement_type agr_type,
  331. rma.start_date agr_start_date,
  332. rma.end_date agr_end_date,
  333. rma.effective_date agr_eff_date,
  334. rma.agr_status_cd,
  335. rma.cre_dtm agr_cre_dtm,
  336. rma.cre_user agr_cre_user,
  337. rma.upd_dtm agr_upd_dtm,
  338. rma.upd_user agr_upd_user,
  339. rgt.grant_deny rgt_permission,
  340. rgt.tps_inst rgt_tps_inst,
  341. rgt.tpu_inst rgt_tpu_inst,
  342. rgt.vld_beg_dtm rgt_start_date,
  343. rgt.vld_end_dtm rgt_end_date,
  344. rgt.cre_dtm rgt_cre_dtm,
  345. rgt.cre_user rgt_cre_user,
  346. rgt.upd_dtm rgt_upd_dtm,
  347. rgt.upd_user rgt_upd_user,
  348. rgt.publication_beg_date rgt_pub_beg_date,
  349. rgt.publication_end_date rgt_pub_end_date,
  350. rgt.external_comments rgt_term,
  351. rgq.qualifier_text rgt_rqs,
  352. DECODE (RGTS_LIMITATION_TPS, 146, 'T', 'F') rgt_reponsive_right_flag,
  353. ddr.direct_deal rgt_direct_deal_flag,
  354. wks.setname workset_name,
  355. wks.wks_type_cd workset_type,
  356. wks.comments workset_comments
  357. FROM CCCTF.CCC_RIGHT rgt
  358. LEFT JOIN CCCTF.CCC_RIGHT_QUALIFIER rgq ON rgt.rgq_inst = rgq.rgq_inst
  359. LEFT JOIN CCCTF.CCC_WORK_SET wks ON rgt.wks_inst = wks.wks_inst
  360. INNER JOIN RMS_DIRECT_DEAL_RIGHT_V ddr ON (rgt.rgt_inst = ddr.rgt_inst AND rgt.vld_beg_dtm = ddr.vld_beg_dtm AND rgt.vld_end_dtm = ddr.vld_end_dtm)
  361. INNER JOIN CCCTF.CCC_RIGHT_RIGHTSHOLDER rr ON (rgt.rgt_inst = rr.rgt_inst AND rgt.vld_beg_dtm = rr.vld_beg_dtm AND rgt.vld_end_dtm = rr.vld_end_dtm)
  362. INNER JOIN CCCTF.CCC_PARTY pty ON rr.rgh_inst = pty.pty_inst
  363. INNER JOIN CCCTF.CCC_AGREEMENT_PRODUCT_USE apu ON rgt.apu_inst = apu.apu_inst
  364. INNER JOIN CCCTF.CCC_PRODUCT_USE_SCHEDULE psc ON apu.psc_inst = psc.psc_inst
  365. INNER JOIN CCCTF.CCC_PRODUCT prd ON psc.prd_inst = prd.prd_inst
  366. INNER JOIN RMS_MIG_AGREEMENTS_V rma ON apu.agr_inst = rma.agr_inst
  367. INNER JOIN CCCTF.CCC_PARTY apty ON rma.pty_inst = apty.pty_inst
  368. WHERE
  369. rgt.lcn_inst IS NULL
  370. AND rgt.wks_inst IS NULL
  371. AND rgt.wrk_inst IS NOT NULL
  372. AND (prd.abrv in ('DPS') AND (rgt.tpu_inst IN (204,203,134,133) OR rgt.tps_inst IN (133,134))
  373. OR prd.abrv in ('TRS') AND (rgt.tpu_inst IN (1) OR rgt.tps_inst IN (3))
  374. OR prd.abrv in ('ARS') AND (rgt.tpu_inst IN (254) OR rgt.tps_inst IN (144))
  375. );
  376.  
  377. /*
  378. Create a table that associates works and their worksets. Table
  379. contains the works from TF that are in TF worksets unioned with
  380. the works from WR that are in RRO collections.
  381. */
  382. BEGIN
  383. EXECUTE IMMEDIATE 'DROP TABLE RMS_MIG_workset_work';
  384. EXCEPTION
  385. WHEN OTHERS THEN
  386. IF SQLCODE != -942 THEN
  387. RAISE;
  388. END IF;
  389. END;
  390. /
  391.  
  392. create table RMS_MIG_workset_work as
  393. -- first, get a row for each work in a tf workset
  394. select
  395. r.rgt_wks_inst,
  396. to_number(i.idno) wr_wrk_inst,
  397. rel.vld_beg_dtm ws_wrk_start_date,
  398. rel.vld_end_dtm ws_wrk_end_date,
  399. rel.cre_dtm ws_wrk_cre_dtm,
  400. rel.cre_user ws_wrk_cre_user,
  401. rel.upd_dtm ws_wrk_upd_dtm,
  402. rel.upd_user ws_wrk_upd_user
  403. from (select distinct rgt_wks_inst from RMS_MIG_workset_rights) r
  404. inner join ccc_wks_wrk_rel rel on r.rgt_wks_inst = rel.wks_inst
  405. inner join ccc_work_idno i on rel.wrk_inst = i.wrk_inst
  406. where i.type_cd = 'WR_WRK'
  407. and (sysdate between rel.vld_beg_dtm and rel.vld_end_dtm or sysdate < rel.vld_beg_dtm);
  408.  
  409. insert /*+ APPEND */ into RMS_MIG_workset_work
  410. -- second, get a row for each work in an rro collection that is not already
  411. -- in the tf workset
  412. select r.rgt_wks_inst,
  413. cw.wr_wrk_inst,
  414. cw.cre_dtm ws_wrk_start_date,
  415. to_date('31-DEC-3000') ws_wrk_end_date,
  416. cw.cre_dtm ws_wrk_cre_dtm,
  417. cw.cre_user ws_wrk_cre_user,
  418. cw.upd_dtm ws_wrk_upd_dtm,
  419. cw.upd_user ws_wrk_upd_user
  420. from (select distinct rgt_wks_inst from RMS_MIG_workset_rights) r
  421. inner join rro_coll_worksets rcw on r.rgt_wks_inst = rcw.secondary_tf_wks_inst
  422. inner join rms_rro_collection_works cw on rcw.primary_tf_wks_inst = cw.tf_wks_inst
  423. where
  424. (r.rgt_wks_inst, cw.wr_wrk_inst) in
  425. (select r2.rgt_wks_inst, cw2.wr_wrk_inst
  426. from (select distinct rgt_wks_inst from RMS_MIG_workset_rights) r2
  427. inner join rro_coll_worksets rcw2 on r2.rgt_wks_inst = rcw2.secondary_tf_wks_inst
  428. inner join rms_rro_collection_works cw2 on rcw2.primary_tf_wks_inst = cw2.tf_wks_inst
  429. minus
  430. select rgt_wks_inst, wr_wrk_inst from RMS_MIG_workset_work);
  431. commit;
  432.  
  433. /*
  434. Create a table that contains all the rights in TF. This
  435. includes rights defined at the workset level and those defined
  436. at the work level.
  437. */
  438. BEGIN
  439. EXECUTE IMMEDIATE 'DROP TABLE RMS_MIG_right_data';
  440. EXCEPTION
  441. WHEN OTHERS THEN
  442. IF SQLCODE != -942 THEN
  443. RAISE;
  444. END IF;
  445. END;
  446. /
  447.  
  448. create table RMS_MIG_right_data as
  449. SELECT
  450. NULL wr_wrk_inst, -- these rights at the workset level
  451. r.agr_inst,
  452. r.agr_account agr_account,
  453. r.agr_holders_name,
  454. ast.brf_dscr agr_status,
  455. r.agr_start_date,
  456. r.agr_end_date,
  457. r.agr_eff_date,
  458. r.agr_cre_dtm,
  459. r.agr_cre_user,
  460. r.agr_upd_dtm,
  461. r.agr_upd_user,
  462. tuse.dscr product,
  463. r.rgt_wks_inst tf_workset,
  464. r.rgt_account rgt_account,
  465. r.rh_name rh_name,
  466. r.rh_rro_flag rh_rro_flag,
  467. r.rh_rro_mem_flag rh_rro_member,
  468. g.brf_dscr permission_dscr,
  469. r.rgt_inst,
  470. r.rgt_start_date,
  471. r.rgt_end_date,
  472. r.rgt_pub_beg_date,
  473. r.rgt_pub_end_date,
  474. r.rgt_cre_dtm,
  475. r.rgt_cre_user,
  476. r.rgt_upd_dtm,
  477. r.rgt_upd_user,
  478. r.rgt_term external_comments,
  479. r.rgt_rqs right_qualifying_stmt,
  480. decode(r.prd_inst,3,'PRINT',48,'DIGITAL',80,'DIGITAL','unknown') distribution,
  481. r.rgt_reponsive_right_flag digital_deny,
  482. r.rgt_direct_deal_flag direct_deal,
  483. r.workset_name,
  484. r.workset_type,
  485. r.workset_comments,
  486. 'C' term_type,
  487. r.rgt_tps_inst
  488. FROM RMS_MIG_workset_rights r
  489. INNER JOIN ccc_general_look_up g ON (r.rgt_permission = g.cd AND g.catg = 'GRANT_DENY')
  490. INNER JOIN ccc_general_look_up ast ON (ast.cd = r.agr_status_cd AND ast.catg ='CCC_AGREEMENT_STATUS')
  491. LEFT JOIN ccc_tpus_tpu_rel trel ON trel.tps_inst = r.rgt_tps_inst
  492. INNER JOIN ccc_type_use tuse ON (tuse.tpu_inst = trel.tpu_inst OR tuse.tpu_inst = r.rgt_tpu_inst)
  493. WHERE
  494. (sysdate between r.rgt_start_date and r.rgt_end_date or sysdate < r.rgt_start_date)
  495. UNION
  496. SELECT
  497. to_number(wi.idno) wr_wrk_inst, -- these rights are at the work level
  498. r.agr_inst,
  499. r.agr_account agr_account,
  500. r.agr_holders_name,
  501. ast.brf_dscr agr_status,
  502. r.agr_start_date,
  503. r.agr_end_date,
  504. r.agr_eff_date,
  505. r.agr_cre_dtm,
  506. r.agr_cre_user,
  507. r.agr_upd_dtm,
  508. r.agr_upd_user,
  509. tuse.dscr product,
  510. r.rgt_wks_inst tf_workset,
  511. r.rgt_account rgt_account,
  512. r.rh_name rh_name,
  513. r.rh_rro_flag rh_rro_flag,
  514. r.rh_rro_mem_flag rh_rro_member,
  515. g.brf_dscr permission_dscr,
  516. r.rgt_inst,
  517. r.rgt_start_date,
  518. r.rgt_end_date,
  519. r.rgt_pub_beg_date,
  520. r.rgt_pub_end_date,
  521. r.rgt_cre_dtm,
  522. r.rgt_cre_user,
  523. r.rgt_upd_dtm,
  524. r.rgt_upd_user,
  525. r.rgt_term external_comments,
  526. r.rgt_rqs right_qualifying_stmt,
  527. decode(r.prd_inst,3,'PRINT',48,'DIGITAL',80,'DIGITAL','unknown') distribution,
  528. r.rgt_reponsive_right_flag digital_deny,
  529. r.rgt_direct_deal_flag direct_deal,
  530. r.workset_name,
  531. r.workset_type,
  532. r.workset_comments,
  533. 'C' term_type,
  534. r.rgt_tps_inst
  535. FROM RMS_MIG_work_rights r
  536. INNER JOIN ccc_general_look_up g ON (r.rgt_permission = g.cd AND g.catg = 'GRANT_DENY')
  537. INNER JOIN ccc_general_look_up ast ON (ast.cd = r.agr_status_cd AND ast.catg ='CCC_AGREEMENT_STATUS')
  538. INNER JOIN ccc_work_idno wi ON (r.rgt_wrk_inst = wi.wrk_inst AND wi.type_cd = 'WR_WRK')
  539. LEFT JOIN ccc_tpus_tpu_rel trel ON trel.tps_inst = r.rgt_tps_inst
  540. INNER JOIN ccc_type_use tuse ON (tuse.tpu_inst = trel.tpu_inst OR tuse.tpu_inst = r.rgt_tpu_inst)
  541. WHERE
  542. (sysdate between r.rgt_start_date and r.rgt_end_date or sysdate < r.rgt_start_date)
  543. ;
  544.  
  545. -- remove whitespace from END of terms
  546. update RMS_MIG_right_data
  547. set external_comments = regexp_replace(external_comments,'\s*$')
  548. where external_comments is not null
  549. and length(external_comments) != nvl(length(regexp_replace(external_comments,'\s*$')),0);
  550. commit;
  551.  
  552. -- remove whitespace from END of RQS
  553. update RMS_MIG_right_data
  554. set right_qualifying_stmt = regexp_replace(right_qualifying_stmt,'\s*$')
  555. where right_qualifying_stmt is not null
  556. and length(right_qualifying_stmt) != nvl(length(regexp_replace(right_qualifying_stmt,'\s*$')),0);
  557. commit;
  558.  
  559. -- remove whitespace from START of terms
  560. update RMS_MIG_right_data
  561. set external_comments = regexp_replace(external_comments,'^\s*')
  562. where external_comments is not null
  563. and length(external_comments) != nvl(length(regexp_replace(external_comments,'^\s*')),0);
  564. commit;
  565.  
  566. -- remove whitespace from START of RQS
  567. update RMS_MIG_right_data
  568. set right_qualifying_stmt = regexp_replace(right_qualifying_stmt,'^\s*')
  569. where right_qualifying_stmt is not null
  570. and length(right_qualifying_stmt) != nvl(length(regexp_replace(right_qualifying_stmt,'^\s*')),0);
  571. commit;
  572.  
  573. -- set the term type so Standard (S) if term is in the general_look_up table
  574. update RMS_MIG_right_data rd
  575. set term_type = 'S'
  576. where 1 = (select count(*) from ccc_general_look_up
  577. where dscr = rd.external_comments and catg = 'OVR_RGT_TF');
  578. commit;
  579.  
  580. /*
  581. This view is a union of the workset level rights (tf_workset is not null)
  582. and the work level rights (wr_wrk_inst is not null).
  583. For the workset level rights, we join to the rms_workset_work to get the
  584. works in the workset. No need to do this for the work level rights since the
  585. wr_wrk_inst is on the right record already
  586.  
  587. ensure we don't pick up Public Domain or CR
  588. */
  589. create or replace view rms_mig_work_right_data_v as
  590. SELECT
  591. ww.wr_wrk_inst,
  592. ww.ws_wrk_start_date,
  593. ww.ws_wrk_end_date,
  594. ww.ws_wrk_cre_dtm,
  595. ww.ws_wrk_cre_user,
  596. ww.ws_wrk_upd_dtm,
  597. ww.ws_wrk_upd_user,
  598. agr_inst,
  599. agr_account,
  600. agr_holders_name,
  601. agr_status,
  602. agr_start_date,
  603. agr_end_date,
  604. agr_eff_date,
  605. agr_cre_dtm,
  606. agr_cre_user,
  607. agr_upd_dtm,
  608. agr_upd_user,
  609. product,
  610. tf_workset,
  611. rgt_account,
  612. rh_name,
  613. rh_rro_flag,
  614. rh_rro_member,
  615. permission_dscr,
  616. rgt_inst,
  617. rgt_start_date,
  618. rgt_end_date,
  619. rgt_pub_beg_date,
  620. rgt_pub_end_date,
  621. rgt_cre_dtm,
  622. rgt_cre_user,
  623. rgt_upd_dtm,
  624. rgt_upd_user,
  625. external_comments,
  626. right_qualifying_stmt,
  627. distribution,
  628. digital_deny,
  629. direct_deal,
  630. d2.workset_name,
  631. d2.workset_type,
  632. d2.workset_comments,
  633. D2.term_type,
  634. rgt_tps_inst
  635. FROM RMS_MIG_right_data d2
  636. INNER JOIN RMS_MIG_workset_work ww ON d2.tf_workset = ww.rgt_wks_inst
  637. WHERE
  638. d2.tf_workset is not null
  639. AND d2.wr_wrk_inst is null
  640. AND ww.ws_wrk_end_date > ww.ws_wrk_start_date
  641. AND permission_dscr in ('Grant','Deny', 'Contact Rightsholder', 'Contact Rightsholder Directly') --ensure we don't pick up Public Domain or CR
  642. UNION ALL
  643. SELECT
  644. wr_wrk_inst,
  645. null ws_work_start_date,
  646. null ws_work_end_date,
  647. null ws_work_cre_dtm,
  648. null ws_work_cre_user,
  649. null ws_work_upd_dtm,
  650. null ws_work_upd_user,
  651. agr_inst,
  652. agr_account,
  653. agr_holders_name,
  654. agr_status,
  655. agr_start_date,
  656. agr_end_date,
  657. agr_eff_date,
  658. agr_cre_dtm,
  659. agr_cre_user,
  660. agr_upd_dtm,
  661. agr_upd_user,
  662. product,
  663. tf_workset,
  664. rgt_account,
  665. rh_name,
  666. rh_rro_flag,
  667. rh_rro_member,
  668. permission_dscr,
  669. rgt_inst,
  670. rgt_start_date,
  671. rgt_end_date,
  672. rgt_pub_beg_date,
  673. rgt_pub_end_date,
  674. rgt_cre_dtm,
  675. rgt_cre_user,
  676. rgt_upd_dtm,
  677. rgt_upd_user,
  678. external_comments,
  679. right_qualifying_stmt,
  680. distribution,
  681. digital_deny,
  682. direct_deal,
  683. d3.workset_name,
  684. d3.workset_type,
  685. d3.workset_comments,
  686. D3.term_type,
  687. rgt_tps_inst
  688. FROM RMS_MIG_right_data d3
  689. WHERE
  690. d3.tf_workset is null
  691. AND d3.wr_wrk_inst is not null
  692. AND permission_dscr in ('Grant','Deny', 'Contact Rightsholder', 'Contact Rightsholder Directly');
  693.  
  694. commit;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement