创建任务管理器查询

创建自定义报表的第 1 步是创建查询。

要创建查询:

  1. 从主页中,选择应用程序,然后选择报表(例如,非合并报表)。

  2. 在查询选项卡上,单击 “新建”图标 新建。
  3. 在新建查询屏幕上,输入名称和可选说明。
  4. 从类型中选择一个选项:

    • 参数查询:“参数查询”类型用于显示您可以为此参数的值指定的一组选项。“参数查询”用于显示在为报表查询填充参数值时可使用的一组选项,这一组选项不是简单的已定义属性,而是一个需要定义的复杂查询。

      此参数查询示例列出了所有任务管理器期间:

      SELECT PERIOD_ID, PERIOD_NAME FROM FCC_PERIODSWHERE APP_ID=1

    • 报表查询:选择要包含在报表中的记录。可以应用安全筛选器,使用户仅可以看到根据其角色有权查看的数据和分配给他们的报表。若要对报表查询应用安全筛选器,请将以下语法添加到查询 WHERE CLAUSE 语句的结尾。

      $FCC_SECURITY_CLAUSE$

      在查询中使用 $FCC_SECURITY_CLAUSE$ 时,必须将 FCC_TASKS 设置为别名 TaskEO

      因为任务管理器附带的许多预定义查询均应用了安全筛选器,所以您可在构建自己的查询时将这些查询用作示例。

      例如,以下报表查询指定了调度任务来显示选定调度中所有高优先级任务的任务代码、名称、接受者和调度。

      SELECT TaskEO.TASK_CODEAS "$TASK_CODE$",

      TaskEO.TASK_NAMEAS "$NAME$" ,

      ((SELECT CASE WHEN FIRST_NAME IS NULL AND LAST_NAME IS NULL THEN USER_LOGIN ELSE FIRST_NAME||' '||LAST_NAME END FROM FCM_USERS WHERE USER_ID = (coalesce(AssigneeEO.ACTIVE_USER_ID, AssigneeEO.USER_ID))))AS "$ASSIGNEE$" ,

      DeploymentEO.DEPLOYMENT_NAMEAS "$SCHEDULE$"

      FROM FCC_TASKS TaskEO

      LEFT OUTER JOIN FCC_ACCESS AssigneeEO ON (TaskEO.TASK_ID = AssigneeEO.SOURCE_ID AND AssigneeEO.ACCESS_TYPE = "AS")

      LEFT OUTER JOIN FCC_DEPLOYMENTS DeploymentEO ON (TaskEO.SOURCE_ID = DeploymentEO.DEPLOYMENT_ID)

      WHERE (TaskEO.SOURCE_TYPE = "DEPLOYMENT")

      AND ((((TaskEO.PRIORITY=3 )

      AND (TaskEO.SOURCE_ID=~SCHEDULE~ ))))

  5. 单击“新建查询”对话框中的生成查询以构建查询。该对话框可帮助您创建针对数据库的查询,它允许您选择产品中的任何现有属性来进行查询和/或筛选。系统随后会生成 SQL 以匹配指定的属性和筛选器,此时您可以修改和增强该 SQL。

    1. 在选择类型屏幕上,选择以下选项:
      • 从查询中,选择模板任务或调度任务。
      • 可选:选中应用安全设置复选框,自动将用户安全筛选器应用于生成的查询。这会将安全令牌应用于生成报表时使用正确 SQL 填写的查询。
    2. 单击下一步。
      生成查询对话框。
  6. 从选择列中,选择要在查询中显示的列,然后单击下一步。
    选择列。
  7. 从选择筛选器中,单击创建条件或 创建条件组,然后选择用于创建筛选器的条件,以创建查询。
    选择筛选器。
  8. 单击确定。
  9. 可选:如果希望将来使用该报表,则单击生成样本 XML。
  10. 单击保存。
  11. 要测试查询是否有错误:
    • 单击“新建查询”对话框中的验证。您也可以从下拉列表中选择验证。

      验证查询

      该查询将显示在“查询”选项卡中。

      注:

      您可以使用“操作”菜单轻松删除查询或复制查询。
    • 单击下拉列表中的验证并解释计划以验证查询并生成此查询的执行计划。将生成一个与查询同名的 .txt 文件。您可以查看或下载生成的计划。

      打开此文件以查看生成的计划,其中包含运行此查询所执行的步骤序列。如果查询性能欠佳,您可以使用此计划来了解问题的原因,并确定提高查询性能的最佳方法。

      注:

      默认情况下,执行计划的生成仅适用于 OCI(第 2 代)环境。要在标准环境中启用它,请使用服务请求与 Oracle 联系。

使用日期参数

为任务管理器报表定义查询时,您可以定义运行时参数,然后将这些参数传递给报表查询。如果报表查询引用了定义为 date 数据类型的数据库列,则可能需要使用 to_date 函数,以确保在系统运行报表查询时正确解释报表参数。

在以下示例中,系统从用户捕获日期,并在 WHERE 子句中使用 to_date 函数将日期转换为查询的正确格式。日期字段的 WHERE 子句条目编码为 (TDATASEG.PERIODKEY)=to_date('~POVPERIOD~','YYYY-MM-DD'),以确保系统以正确的格式解释从参数中选择的日期。

完整查询为:

SELECT ENTITY, ENTITYX, ACCOUNT, PERIODKEY, tPOVPartition.PartName AS Partitionkey,  tPOVCategory.CatKey,  tPOVCategory.CatName,  ACCOUNTX, UD1, UD1X, UD2, UD2X, UD3, UD3X, UD4, UD4X, UD5, UD5X, UD6, UD6X, UD7, UD7X, UD8, UD8X, UD9, UD9X, UD10, UD10X, UD11, UD11X, UD12, UD12X, UD13, UD13X, UD14, UD14X, UD15, UD15X, UD16, UD17X, UD18, UD18X, UD19, UD19X, UD20,UD20X,DESC1,DESC2,DATAVIEW,CURKEY,AMOUNT,AMOUNTX  from TDATASEG INNER JOIN tPOVCategory  ON tDataSeg.CatKey = tPOVCategory.CatKey  INNER JOIN tPOVPartition  ON tDataSeg.PartitionKey = tPOVPartition.PartitionKey 
WHERE (((TDATASEG.PERIODKEY)=to_date('~POVPERIOD~','YYYY-MM-DD')) AND ((tPOVCategory.CatKey)=~POVCAT~) AND (~POVRULE~ is NULL or RULE_ID = ~POVRULE~) AND ((tPOVPartition.PartitionKey)=~POVLOC~ ))

期间查询定义为:

select periodkey, perioddesc from TPOVPERIOD

修改查询

系统管理员可以编辑任务管理器查询。

  1. 从主页中,依次选择应用程序和报表。

  2. 选择查询选项卡(如果未选择),然后从要编辑的查询旁边的 省略号图标。 选择编辑。

    注:

    如果它已锁定,请让系统管理员解锁。

  3. 选择任务管理器或 Supplemental Data Manager 查询。

  4. 在编辑查询中,根据需要编辑信息。
  5. 完成更改后,单击保存并关闭。