深入探索Oracle AM时间管理之路(oracle am时间)

深入探索Oracle AM时间管理之路

时间管理是项目管理的核心,良好的时间管理可以使项目顺利完成,并取得良好的成果。而Oracle AM作为一种常用的项目管理工具,其时间管理功能也是给力的。那么今天我们就来深入探索一下Oracle AM时间管理之路吧!

一、时间管理功能概述

Oracle AM时间管理功能是指在Oracle AM中对项目的时间计划进行管理和监测的一系列功能,包括了时间计划制定、时间资源分配、时间进度跟踪和时间报告等功能。

具体的说,时间管理功能可以帮助用户:

1、 设计和制订项目工程时间进度计划

2、 确定时间资源的分配和调整

3、 监督项目执行的时间进度,及时发现并解决时间偏差

4、 生成与时间进度有关的各类汇总和详细报表

二、时间管理功能的实现

在Oracle AM中,时间管理主要通过以下三大步骤实现:

1、 时间计划制定

在Oracle AM中,时间计划制定主要是通过制定时间计划任务,来达成工期目标,并实现一系列时间控制的过程。从而使得项目进展顺利,并尽可能地减少时间偏差的发生。

具体的说,时间计划制定可以通过如下代码实现:

BEGIN
-- 初始化工作
declare
v_project_id NUMBER := 1;
v_workplan_id NUMBER;
v_work_item_workplan_id NUMBER;
begin
-- 找到工程项目并建立工作计划
select id into v_workplan_id
from proj_wbs
where project_id = v_project_id
and curr_version_ind = 'Y'
and rev_num = (select max(rev_num) from proj_wbs where curr_version_ind = 'Y' and project_id = v_project_id);
-- 添加任务
insert into proj_wbs (parent_id,
name,
level_num,
work_item_type_code,
est_start_date,
scheduled_end_date,
work_plan_id,
created_by)
values (v_workplan_id,
'任务名称A',
2,
'TASK',
to_date('2010-10-01', 'yyyy-mm-dd'),
to_date('2010-12-01', 'yyyy-mm-dd'),
v_workplan_id,
'SYS');

-- 添加任务指派记录
select id into v_work_item_workplan_id
from proj_wbs
where name = '任务名称A'
and level_num = 2
and work_plan_id = v_workplan_id
and curr_version_ind = 'Y'
and rev_num = (select max(rev_num) from proj_wbs where curr_version_ind = 'Y' and project_id = 1);
end;
END;

2、 时间资源分配

在Oracle AM中,时间资源分配主要是为项目中各项任务分配每个工作单元的时间,保证项目进度都在预定的时间计划范围内。

具体的说,时间资源分配可以通过如下代码实现:

BEGIN
-- 初始化工作
declare
v_project_id NUMBER := 1;
v_workplan_id NUMBER;
v_work_item_workplan_id NUMBER;
v_work_item_schedule_id NUMBER;
begin
-- 找到工程项目工作计划的ID
select id into v_workplan_id
from proj_wbs
where project_id = v_project_id
and curr_version_ind = 'Y'
and rev_num = (select max(rev_num) from proj_wbs where curr_version_ind = 'Y' and project_id = v_project_id);

-- 找到工程项目任务的ID
select id into v_work_item_workplan_id
from proj_wbs
where name = '任务名称A'
and level_num = 2
and work_plan_id = v_workplan_id
and curr_version_ind = 'Y'
and rev_num = (select max(rev_num) from proj_wbs where curr_version_ind = 'Y' and project_id = v_project_id);
-- 添加任务进度计划
insert into proj_wbs_time_periods (parent_wo_id,
created_by)
values (v_work_item_workplan_id,
'SYS');

-- 添加任务进度记录
select id into v_work_item_schedule_id
from proj_wbs_time_periods
where parent_wo_id = v_work_item_workplan_id
and curr_version_ind = 'Y'
and rev_num = (select max(rev_num) from proj_wbs_time_periods where curr_version_ind = 'Y' and parent_wo_id = v_work_item_workplan_id);
-- 设置任务进度计划
insert into proj_wbs_period_tasks (po_id,
planned_start_date,
planned_end_date,
work_plan_period_id,
created_by)
values (v_work_item_workplan_id,
to_date('2010-10-01', 'yyyy-mm-dd'),
to_date('2010-12-01', 'yyyy-mm-dd'),
v_work_item_schedule_id,
'SYS');
end;
END;

3、 时间进度跟踪

在Oracle AM中,时间进度跟踪主要是指对项目进行实时跟踪,并及时反馈时间上的偏差,同时记录时间调整的结果。从而保证项目进展符合计划,且及时做出调整。

具体的说,时间进度跟踪可以通过如下代码实现:

BEGIN
-- 初始化工作
declare
v_project_id NUMBER := 1;
v_workplan_id NUMBER;
v_work_item_workplan_id NUMBER;
v_work_item_schedule_id NUMBER;
begin
-- 找到工程项目工作计划的ID
select id into v_workplan_id
from proj_wbs
where project_id = v_project_id
and curr_version_ind = 'Y'
and rev_num = (select max(rev_num) from proj_wbs where curr_version_ind = 'Y' and project_id = v_project_id);

-- 找到工程项目任务的ID
select id into v_work_item_workplan_id
from proj_wbs
where name = '任务名称A'
and level_num = 2
and work_plan_id = v_workplan_id
and curr_version_ind = 'Y'
and rev_num = (select max(rev_num) from proj_wbs where curr_version_ind = 'Y' and project_id = v_project_id);
-- 找到工程项目任务的进度计划ID
select id into v_work_item_schedule_id
from proj_wbs_time_periods
where parent_wo_id = v_work_item_workplan_id
and curr_version_ind = 'Y'
and rev_num = (select max(rev_num) from proj_wbs_time_periods where curr_version_ind = 'Y' and parent_wo_id = v_work_item_workplan_id);
-- 更新任务进度计划
update proj_wbs_period_tasks
set planned_start_date = to_date('2010-10-05', 'yyyy-mm-dd'),
planned_end_date = to_date('2010-12-05', 'yyyy-mm-dd'),
last_updated_by = 'SYS'
where po_id = v_work_item_workplan_id
and work_plan_period_id = v_work_item_schedule_id
and curr_version_ind = 'Y'
and rev_num = (select max(rev_num) from proj_wbs_period_tasks where curr_version_ind = 'Y' and po_id = v_work_item_workplan_id and work_plan_period_id = v_work_item_schedule_id);
end;
END;

三、时间报告功能实现

时间报告功能主要是对一个项目或多个项目的时间进度,每一个工作任务所需的时间以及资源使用情况等统计和分析,并将统计和分析结果输出到各类报表中,便于管理者了解时间计划的实时情况。

具体的说,时间报告功能可以通过如下代码实现:

SELECT P.project_number,
P.name AS proj_name,
W.name AS task_name,
'Predecessors' AS predecessor,
'' AS role_name,
decode(t.start_time, null, '', to_char(t.start_time, 'DD-Mon-YY HH24:MI:SS')) AS start_time,
decode(t.end_time, null, '', to_char(t.end_time, 'DD-Mon-YY HH24:MI:SS')) AS end_time,
t.work_quant

数据运维技术 » 深入探索Oracle AM时间管理之路(oracle am时间)