134: END IF;
135:
136: GL_MESSAGE.write_log('SHRD0209', 1, 'USERLOCK', lock_name);
137:
138: -- Check existing record in GL_MGT_SEG_UPGRADE_H
139: SELECT decode(min(chart_of_accounts_id), null, 'N', 'Y'),
140: min(mgt_seg_column_name),
141: min(assign_complete_flag)
142: INTO rerun_flag, l_mgt_seg_column_name, l_assign_complete_flag
139: SELECT decode(min(chart_of_accounts_id), null, 'N', 'Y'),
140: min(mgt_seg_column_name),
141: min(assign_complete_flag)
142: INTO rerun_flag, l_mgt_seg_column_name, l_assign_complete_flag
143: FROM GL_MGT_SEG_UPGRADE_H
144: WHERE chart_of_accounts_id = X_Chart_Of_Accounts_Id;
145:
146: -- If the upgrade is complate for the COA, or the management segment
147: -- selected is different, stop
161: RAISE get_sequence_error;
162: END;
163:
164: IF (rerun_flag = 'N') THEN
165: INSERT INTO GL_MGT_SEG_UPGRADE_H
166: (chart_of_accounts_id,
167: mgt_seg_column_name,
168: assign_complete_flag,
169: max_processed_batch_id,
184: sysdate,
185: l_user_id,
186: l_login_id);
187: ELSE
188: UPDATE GL_MGT_SEG_UPGRADE_H
189: SET max_batch_id = new_max_batch_id
190: WHERE chart_of_accounts_id = X_Chart_Of_Accounts_Id;
191: END IF;
192:
270:
271: l_user_id := FND_GLOBAL.user_id;
272: l_login_id := FND_GLOBAL.login_id;
273:
274: -- Check the record in GL_MGT_SEG_UPGRADE_H
275: SELECT min(assign_complete_flag),
276: min(mgt_seg_column_name),
277: nvl(min(max_processed_batch_id), 0),
278: min(max_batch_id)
277: nvl(min(max_processed_batch_id), 0),
278: min(max_batch_id)
279: INTO l_assign_complete_flag, l_mgt_seg_column_name,
280: l_max_proc_batch_id, l_max_batch_id
281: FROM GL_MGT_SEG_UPGRADE_H
282: WHERE chart_of_accounts_id = X_Chart_Of_Accounts_Id;
283:
284: IF (l_assign_complete_flag <> 'N') THEN
285: RAISE assign_complete_error;
286: END IF;
287:
288: -- Process posted batches that were recorded as unposted in previous run:
289: -- Move posted batch id to _GT
290: INSERT INTO GL_MGT_SEG_UPGRADE_GT
291: (je_batch_id)
292: SELECT msu.je_batch_id
293: FROM GL_MGT_SEG_UPGRADE MSU,
294: GL_JE_BATCHES B
289: -- Move posted batch id to _GT
290: INSERT INTO GL_MGT_SEG_UPGRADE_GT
291: (je_batch_id)
292: SELECT msu.je_batch_id
293: FROM GL_MGT_SEG_UPGRADE MSU,
294: GL_JE_BATCHES B
295: WHERE msu.chart_of_accounts_id = X_Chart_Of_Accounts_Id
296: AND b.je_batch_id = msu.je_batch_id
297: AND b.status || '' = 'P';
331: 'SEGMENT28', cc.segment28,
332: 'SEGMENT29', cc.segment29,
333: 'SEGMENT30', cc.segment30),
334: sysdate, l_user_id, sysdate, l_user_id, l_login_id
335: FROM GL_MGT_SEG_UPGRADE_GT GT,
336: GL_JE_HEADERS H,
337: GL_JE_LINES L,
338: GL_CODE_COMBINATIONS CC
339: WHERE h.je_batch_id = gt.je_batch_id
372: 'SEGMENT29', cc.segment29,
373: 'SEGMENT30', cc.segment30);
374:
375: -- Delete from the tracking table the je_batch_id processed
376: DELETE FROM GL_MGT_SEG_UPGRADE MSU
377: WHERE MSU.chart_of_accounts_id = X_Chart_Of_Accounts_Id
378: AND MSU.je_batch_id IN (SELECT gt.je_batch_id
379: FROM GL_MGT_SEG_UPGRADE_GT gt);
380:
375: -- Delete from the tracking table the je_batch_id processed
376: DELETE FROM GL_MGT_SEG_UPGRADE MSU
377: WHERE MSU.chart_of_accounts_id = X_Chart_Of_Accounts_Id
378: AND MSU.je_batch_id IN (SELECT gt.je_batch_id
379: FROM GL_MGT_SEG_UPGRADE_GT gt);
380:
381: -- Commit
382: COMMIT;
383:
388: LOOP
389: low_batch_id := l_max_proc_batch_id + 1;
390: high_batch_id := least(l_max_proc_batch_id + batch_size, l_max_batch_id);
391:
392: INSERT INTO GL_MGT_SEG_UPGRADE
393: (chart_of_accounts_id, je_batch_id, creation_date,
394: created_by, last_update_date, last_updated_by, last_update_login)
395: SELECT b.chart_of_accounts_id, b.je_batch_id,
396: sysdate, l_user_id, sysdate, l_user_id, l_login_id
442: AND b.status || '' = 'P'
443: AND b.chart_of_accounts_id = X_Chart_Of_Accounts_Id
444: AND NOT EXISTS
445: (SELECT msu.je_batch_id
446: FROM GL_MGT_SEG_UPGRADE MSU
447: WHERE msu.chart_of_accounts_id = X_Chart_Of_Accounts_Id
448: AND msu.je_batch_id = b.je_batch_id)
449: AND h.je_batch_id = b.je_batch_id
450: AND l.je_header_id = h.je_header_id
483: 'SEGMENT30', cc.segment30);
484:
485: l_max_proc_batch_id := high_batch_id;
486:
487: UPDATE GL_MGT_SEG_UPGRADE_H
488: SET max_processed_batch_id = high_batch_id
489: WHERE chart_of_accounts_id = X_Chart_Of_Accounts_Id;
490:
491: COMMIT;
541:
542: l_user_id := FND_GLOBAL.user_id;
543: l_login_id := FND_GLOBAL.login_id;
544:
545: -- Check the record in GL_MGT_SEG_UPGRADE_H
546: SELECT min(mgt_seg_column_name),
547: min(assign_complete_flag),
548: min(max_processed_batch_id)
549: INTO l_mgt_seg_column_name, l_assign_complete_flag, l_max_proc_batch_id
546: SELECT min(mgt_seg_column_name),
547: min(assign_complete_flag),
548: min(max_processed_batch_id)
549: INTO l_mgt_seg_column_name, l_assign_complete_flag, l_max_proc_batch_id
550: FROM GL_MGT_SEG_UPGRADE_H
551: WHERE chart_of_accounts_id = X_Chart_Of_Accounts_id;
552:
553: IF (l_assign_complete_flag <> 'N') THEN
554: RAISE assign_complete_error;
566: END IF;
567:
568: GL_MESSAGE.write_log('SHRD0209', 1, 'USERLOCK', lock_name);
569:
570: -- Process batches in GL_MGT_SEG_UPGRADE
571: INSERT INTO GL_JE_SEGMENT_VALUES
572: (je_header_id, segment_type_code, segment_value, creation_date,
573: created_by, last_update_date, last_updated_by, last_update_login)
574: SELECT l.je_header_id, 'M',
602: 'SEGMENT28', cc.segment28,
603: 'SEGMENT29', cc.segment29,
604: 'SEGMENT30', cc.segment30),
605: sysdate, l_user_id, sysdate, l_user_id, l_login_id
606: FROM GL_MGT_SEG_UPGRADE MSU,
607: GL_JE_HEADERS H,
608: GL_JE_LINES L,
609: GL_CODE_COMBINATIONS CC
610: WHERE msu.chart_of_accounts_id = X_Chart_Of_Accounts_Id
753: mgt_seg_value_set_id = segment.value_set_id
754: WHERE chart_of_accounts_id = X_Chart_Of_Accounts_Id;
755:
756: -- Assignment completed
757: UPDATE GL_MGT_SEG_UPGRADE_H
758: SET assign_complete_flag = 'Y',
759: max_processed_batch_id = null,
760: max_batch_id = null
761: WHERE chart_of_accounts_id = X_Chart_Of_Accounts_Id;
779:
780: -- Release user name lock GL_MGT_SEG_
781: lock_op_succeeded := release_lock(X_Chart_Of_Accounts_Id);
782:
783: -- Clean up tracking data in GL_MGT_SEG_UPGRADE
784: DELETE FROM GL_MGT_SEG_UPGRADE
785: WHERE chart_of_accounts_id = X_Chart_Of_Accounts_Id;
786:
787: GL_MESSAGE.func_succ(api_name || '.' || fn_name);
780: -- Release user name lock GL_MGT_SEG_
781: lock_op_succeeded := release_lock(X_Chart_Of_Accounts_Id);
782:
783: -- Clean up tracking data in GL_MGT_SEG_UPGRADE
784: DELETE FROM GL_MGT_SEG_UPGRADE
785: WHERE chart_of_accounts_id = X_Chart_Of_Accounts_Id;
786:
787: GL_MESSAGE.func_succ(api_name || '.' || fn_name);
788: EXCEPTION