我有几个客户在基线变更日志中遇到了问题,因为多个变更被集中到一个单一的变更日志引用号中。该场景发生在在给定的一个月内处理程序的多个更改的项目上。
变更过程将在时间表中完成,以反映所有的变更,然后所有的变更同时被加载到Deltek Cobra中。当他们输入更改号并添加评论时,问题就来了;每笔交易只有一个号码和评论。
从Deltek Cobra的角度来看,这笔交易是将数据从时间表中拉进来的。因此,即使在时间表中有三个变更,如果它们在相同的集成期间被引入Cobra,它们都被编码为相同的变更号。日志将正确地反映更改应用到的不同控制帐户,但是如果您的客户想要看到日志中分别标识的每个更改,他们就会遇到问题。
避免这个问题的一种方法是在集成向导上使用过滤器功能,并分别拉入每个更改,这样您就可以为每个更改拥有唯一的更改编号和注释。但是如果你已经把它们拉进来了,你就必须对日志本身做些改变。以下是如何做到这一点。
与Deltek Cobra中的所有数据一样,更改日志事务存储在数据库中的一个表中。您可以使用Cobra中的SQL命令实用程序检索和更新这些表中的记录。首先,通过精炼SQL语句,确保只影响想要的记录。一旦您确定您只会影响您想要的记录,您就可以将SQL语句更改为UPDATE脚本,并使用正确的更改编号和描述更新日志中的信息。这需要两个查询,我们将在下面介绍。
第一个查询是SELECT查询,它提取当前日志中的信息。最好的方法是在SELECT语句后使用*变量拉出表中的所有字段,这样您就可以看到表中的所有内容。您将希望从BASELOG表中提取数据,然后您将通过包含表中不同字段的特定值来筛选结果。
在下面的示例中,我将使用表中的PROGRAM、REFNO和CA1字段。REFNO字段是交易的参考编号,是您在日志报告标题“交易编号”下看到的值。我知道在查询中使用哪个,因为我从Log报告中提取了它。
Select * from baselog where title = ' xyz ' and ref = ' 1234 ' and (ca1 = ' 1.01.01 ' or ca1 = ' 1.01.02 ')
对于控制帐户,我使用CA1字段,你可以看到我在SQL语句中包含了一个“OR”,所以我可以告诉它寻找与多个控制帐户相关的记录,如果我需要。您可以更新CA1值以缩小返回到其他控制帐户的记录。重要的是CA1项在括号内。您将运行这个查询,以确保只包含您想要影响的记录。一旦查询的结果是您想要的,您就可以创建UPDATE查询。
下面的UPDATE查询将更新查询中标识的特定字段(CCN和Log Comment字段)。通过使用与上面的选择语句相同的“WHERE”子句,您就知道哪些记录将被更新。
使用UPDATE查询,您可以告诉系统您想为哪些字段设置值,然后再告诉系统设置这些字段的值。例如,如果我想用" 9876 "设置更改号字段(CCN),您可以使用set CCN = ' 9876 '。您可以在一个查询中设置多个字段的值,只需用逗号分隔字段及其值。下面的例子设置了我们用上面的SQL语句识别的记录的值:
更新BASELOG SET CCN = ' BCR-16-001 ', LOGCOMMENT = ' 2016材料详细规划。' where program = ' xyz ' and refno = ' 1234 ' and (ca1 = ' 1.01.01 ' or ca1 = ' 1.01.02 ')
应用此SQL语句后,日志将正确反映BCR号和2016年材料费用的评论。
最终的想法
在尝试这个之前,我有几个想法。您需要访问Deltek Cobra中的SQL命令实用程序和访问项目。如果您没有在菜单上看到它,那么您的登录名就不能访问该工具。
这是管理Cobra数据的一种高级方法。只有在熟悉SQL命令并拥有数据权限的情况下,才应该尝试这样做。在运行UPDATE查询之前,您应该联系Cobra管理员让他们知道你正在运行更新,这样他们就知道了。最后,在应用这种更改之前,一定要备份您的项目。