定义属性

要创建属性:

  1. 依次选择管理属性
  2. 单击新建,然后输入:
    • 名称

    • 属性类型:

      • 日期

      • 日期和时间

      • 整数

      • 列表

        如果选择“列表”,请输入该问题的有效答案列表。

      • 多行文本

        最大长度应在 4,000 个字符以内。

        选择多行文本,然后输入行数,3 到 50 行。“多行文本”决定了在不滚动屏幕的情况下,在“操作”对话框中可以看到多少行文本。

        对于多行文本类型:如果您希望“操作”对话框中的自定义属性包括附件部分,请选中包括附件

      • 数字

        如果选择“数字”,请选择数字格式设置选项

        • 对于“小数位数”,输入要显示的小数位数值。

        • 如果希望数字显示千位分隔符(例如 1,000.00),请选择“千位分隔符”选项

        • 从“货币符号”列表中选择一个货币符号,例如美元 ($)。

        • 从“负数”列表中,选择如何显示负数,例如 (123)。

        • 从“比例”列表中选择数字的比例值,例如 1000。

      • 文本

      • TrueFalse

      • 用户

    • 计算

      注:

      此功能仅在 11.1.2.4.100(修补程序 20307212)中提供。有关新功能和更新至版本 11.1.2.4.100 的信息,请访问 My Oracle Support https://support.oracle.com

      计算属性是只读属性。只能根据调度执行计算:

      • 调度:在“任务列表”、“甘特图”或“BI 仪表板”视图中,您可以添加任何计算,无论是否将计算显式分配给任务,都会执行计算。

      • 模板:您不能将选择了“计算”选项的自定义属性添加为列或可筛选属性。

      管理员可以向“操作”对话框中的属性部分添加属性,使这些属性可供工作流用户查看。管理员可以将访问权限设置为“不显示”,从而将访问权限只给予某些角色。例如,对于计算属性 XYZ,管理员可以为其添加“查看者: 不显示”访问权限,这样 XYZ 便不会对查看者显示。

      任何用户角色均可在视图和 Portlet 中将计算属性添加为列。此外,也可以在“筛选器”面板中将它们添加为可筛选属性。

      当您选择计算时,会显示计算定义部分:

      • 计算类型:值列表由属性类型确定:

        • 将值分配给列表 - 将自定义值分配给列表类型的属性

        • 将列表分配给值 - 将自定义列表值分配给不同属性的值。

        • 条件 - 条件计算 (If – Then – Else)

        • 脚本形式 - 自由形式的脚本计算。脚本形式适用于整数、多行文本、数字或文本类型的属性。

        下表列出了选择了“计算”选项时各种属性类型可使用的计算类型:

        表 3-2 定义属性

        属性类型 将值分配给列表 条件 脚本形式 将列表分配给值
        日期        
        日期/时间        
        整数 X X X  
        列表   X   X
        多行文本 X X X  
        数字 X X X  
        文本 X X X  
        True/False   X    
        用户        
        是/否   X    
      • 当您选择脚本形式计算类型时,要输入自由形式的计算公式,请使用“添加属性”和“添加函数”:

        添加属性 - 选择一个属性并单击 将属性添加到计算中 将该属性插入到“计算定义”框中的光标位置。如果光标在一个单词或属性的中间,则该单词/属性将在定义中替换。根据脚本格式,添加的任何属性都会用括号 {} 括住名称。

      • 添加函数 - 选择一个函数并单击 将属性添加到计算中,将函数添加到“计算定义”中。在添加的函数中,每个参数都有占位符。

        例如,在计算定义中插入 DATE_DIFF 函数:

        DATE_DIFF(<Date1>, <Date2>, <Type>)

        然后用属性替换占位符:

        DATE_DIFF( {Start Date}, {End Date}, 'DAYS')

        其他脚本形式函数示例:

        • 添加月:返回与开始日期相差指定月数的日期。该日期始终处于指定的偏差月内。如果开始日期所在的那一天超过了偏差月中的最后一天,则将使用偏差月的最后一天。例如, EDate (31-Jan-2017, 1) 返回 (28-Feb-2017)。对于 Months,输入开始日期之前或之后的月数。月数为正值将产生将来的日期。负值将产生过去的日期。

          EDate(<Start Date>, <Months>, <Length>)

          示例:EDate(DATE(2017, 2, 15) 3)

        • 日期:基于在年、月和日指定的整数值返回日期值。例如,此函数将从函数中创建一个类型为“日期”的值,因此 DATE(2018, 5, 31) 将转换为 2018 年 5 月 31 日。然后,该日期将用于日期差额函数,提取某个日期(例如结束日期)与此特定日期之间的天数差额。

          DATE(<Year>, <Month>, <Day>)

        • 日期差异:返回两个日期之间相差的天数、小时数、分钟数或秒数。对于 Date1 和 Date2,可使用值 'TODAY' 和 'NOW',它们分别表示当前的日期(不含时间组件)和日期时间。

          有效类型为 DAYS、HOURS、MINUTES、SECONDS。

          DATE_DIFF(<Date1>, <Date2>, <Type>)

          示例:DATE_DIFF('TODAY', {Preparer End Date}, 'DAYS') 或 DATE_DIFF({Preparer End Date}, 'NOW', 'HOURS')

        • :以整数返回日期所在的那一天

          DAY(<DATE>)

        • 提取文本:返回值中自指定位置起的子字符串。

          SUBSTRING(<Value>, <Location>, <Length>)

          示例:SUBSTRING( {Name} , 5, 10)

        • If-Then-Else:允许用户将条件计算插入脚本形式计算。可以嵌套使用 IF_THEN_ELSE 计算,以支持 "ELSE IF" 类型的计算。

          IF_THEN_ELSE(<Condition>, <Value1>, <Value2>)

          示例:

          IF_THEN_ELSE( ( {Priority} = 'Low'), 'Good'
          IF_THEN_ELSE( ( {Priority} = 'Medium'), 'Better'. 'Best') )
        • Instring:返回搜索的值。

          INSTRING(<Value1>, <Value to Search>)

          示例:INSTRING({Name}, 'a')

        • 小写:以小写形式返回值

          LOWERCASE(<Value>)

          示例:LOWERCASE ({Task Code})

        • 最大值:返回属性列表中的最大值。可以包含任意数量的参数。

          MAX(<Value1>, <Value2>,<ValueN>)

          示例:MAX( {Scripted Substring Loc a}, {Scripted Substring Loc s}, {Scripted Substring Loc t} )

        • 最小值:返回属性列表中的最小值。可以包含任意数量的参数。

          MIN (<Value1>, <Value2>, <ValueN>)

          示例:MIN( {Scripted Substring Loc a}, {Scripted Substring Loc s}, {Scripted Substring Loc t} )

        • :以整数返回日期所在的月份 (1-12)

          MONTH (<DATE>)

        • 舍入:返回舍入到指定小数位数的值

          ROUND <Value1>, <Decimal Places>)

          示例:ROUND( ({Scripted Substring Loc t} / 7), '4')

        • 子字符串

          SUBSTRING(<Value>, <Location>, <Length>)

          示例:SUBSTRING( {Name}, 4, 10)

        • 文本位置:返回值中子字符串的索引,1 表示第一个位置。

          INSTRING(<Value>, <Value To Search>)

          示例:INSTRING( UPPERCASE( {Name} ), 'TAX' )

        • 大写:以大写形式返回值。

          UPPERCASE(<Value>)

          示例:UPPERCASE( {Name} )

        • :以整数返回日期所在的年份。

          YEAR (<DATE>)

  3. 当您尝试保存脚本形式计算时,会执行以下验证检查:
    • 计算的语法是否正确

    • 计算中指定的属性和函数是否存在

    • 函数的参数是否正确

    • 是否不存在循环回路