定義屬性

若要建立屬性,請執行下列動作:

  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)。對於月份,請輸入開始日期之前或之後的月數。正值月份會產生未來日期。負值會產生過去的日期。

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

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

        • 日期:傳回以指定的年、月和日整數值為基礎的日期值。例如,此函數會從函數建立「日期」類型值,因此 DATE(2018, 5, 31) 會轉換成 2018 年 5 月31 日。此值接著可以用在「日期差異」函數中,以提取某個日期 (例如結束日期) 和此特定日期之間中差異天數。

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

        • 日期差異:傳回兩個日期之間的天數、時數、分鐘數或秒數差異。對於「日期 1」和「日期 2」,可使用值 "TODAY" 和 "NOW",分別代表目前的日期 (不含時間元素) 和日期時間。

          有效類型為 DAYS、HOURS、MINUTES、SECONDS。

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

          範例:DATE_DIFF("TODAY", {Preparer End Date}, "DAYS") or 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(<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. 當您嘗試儲存「指令碼計算」時會執行下列驗證檢查:
    • 「計算」的「語法」正確

    • 「計算」中指定的「屬性」和「函數」存在

    • 「函數」的「參數」正確

    • 沒有「循環迴圈」