自適應表單規則編輯器

概觀

Adobe Experience Manager Forms的規則編輯器功能使表單業務用戶和開發人員能夠編寫自適應表單對象的規則。 這些規則根據表單上的預設條件、用戶輸入和用戶操作定義對表單對象觸發的操作。 它有助於進一步簡化表單填充體驗,確保準確性和速度。

規則編輯器提供了一個直觀且簡化的用戶介面來編寫規則。 規則編輯器為所有用戶提供可視編輯器。 此外,只有對於表單超級用戶,規則編輯器才提供代碼編輯器來編寫規則和指令碼。 可以使用規則對自適應表單對象執行的一些關鍵操作包括:

  • 顯示或隱藏對象
  • 啟用或禁用對象
  • 為對象設定值
  • 驗證對象的值
  • 執行函式以計算對象的值
  • 調用表單資料模型服務並執行操作
  • 設定對象的屬性

規則編輯器取代了6.AEM1Forms版和早期版本中的指令碼功能。 但是,現有指令碼將保留在新規則編輯器中。 有關在規則編輯器中使用現有指令碼的詳細資訊,請參見 規則編輯器對現有指令碼的影響

添加到表單超級用戶組的用戶可以建立新指令碼並編輯現有指令碼。 表單用戶組中的用戶可以使用指令碼,但不能建立或編輯指令碼。

瞭解規則

規則是行動和條件的組合。 在規則編輯器中,操作包括隱藏、顯示、啟用、禁用或計算表單中對象的值等活動。 條件是通過對表單對象的狀態、值或屬性執行檢查和操作來計算的布爾表達式。 根據值( TrueFalse)返回。

規則編輯器提供一組預定義的規則類型,如「何時」、「顯示」、「隱藏」、「啟用」、「禁用」、「設定值」和「驗證」,以幫助您編寫規則。 每種規則類型都允許您定義規則中的條件和操作。 文檔進一步詳細說明了每種規則類型。

規則通常遵循以下結構之一:

條件 — 操作 在此構造中,規則首先定義一個條件,然後定義要觸發的操作。 該構造可與寫程式語言中的if-then語句相比。

在規則編輯器中, 規則類型強制條件 — 操作構造。

操作條件 在此構造中,規則首先定義要觸發的操作,然後定義要評估的條件。 此構造的另一個變體是action-condition-alternate操作,該操作還定義了在條件返回False時觸發的替代操作。

規則編輯器中的「顯示」、「隱藏」、「啟用」、「禁用」、「設定值」和「驗證」規則類型將強制執行操作條件規則構造。 預設情況下,「顯示」(Show)的替代操作為「隱藏」(Hide),「啟用」(Enable)的替代操作為「禁用」(Disable),反之亦然。 不能更改預設備用操作。

注意

可用的規則類型(包括在規則編輯器中定義的條件和操作)也取決於要在其上建立規則的表單對象的類型。 規則編輯器僅顯示用於為特定表單對象類型編寫條件和操作語句的有效規則類型和選項。 例如,您看不到面板對象的驗證、設定值、啟用和禁用規則類型。

有關規則編輯器中可用的規則類型的詳細資訊,請參見 規則編輯器中可用的規則類型

選擇規則構造的准則

雖然您可以使用任何規則構造來實現大多數使用情形,但以下是選擇一個構造而不是另一個構造的一些准則。 有關規則編輯器中可用規則的詳細資訊,請參見 規則編輯器中可用的規則類型

  • 建立規則時的一個典型經驗法則是在您正在編寫規則的對象上下文中考慮它。 請考慮您要根據用戶在欄位A中指定的值隱藏或顯示欄位B。在這種情況下,您正在評估欄位A上的條件,並且根據它返回的值,您正在觸發欄位B上的操作。

    因此,如果要在欄位B(要對其評估條件的對象)上編寫規則,請使用condition-action構造或When規則類型。 同樣,在欄位A上使用action-condition構造或「顯示」或「隱藏」規則類型。

  • 有時,您需要根據一個條件執行多個操作。 在這種情況下,建議使用條件 — 操作構造。 在此構造中,可以計算條件一次並指定多個操作語句。

    例如,要根據檢查用戶在欄位A中指定的值的條件隱藏欄位B、C和D,請使用條件 — 操作構造或在欄位A上的規則類型寫入一條規則,並指定控制欄位B、C和D的可見性的操作。否則,您需要在欄位B、C和D上使用三個單獨的規則,其中每個規則都檢查條件並顯示或隱藏相應的欄位。 在本示例中,在一個對象上寫入「當」(When)規則類型比在三個對象上顯示或隱藏規則類型更有效。

  • 要根據多個條件觸發操作,建議使用操作條件構造。 例如,要通過評估欄位B、C和D的條件來顯示和隱藏欄位A,請在欄位A上使用「顯示」或「隱藏」規則類型。

  • 如果規則包含一個條件的操作,則使用condition-action或action condition構造。

  • 如果規則檢查條件並在提供欄位中的值或退出欄位時立即執行操作,則建議在條件評估所依據的欄位上使用條件 — 操作構造或When規則類型編寫規則。

  • 當用戶更改應用When規則的對象的值時,將評估When規則中的條件。 但是,如果希望操作在伺服器端值發生更改時觸發,則建議編寫一條「當時」規則,該規則在初始化欄位時觸發操作。

  • 在編寫下拉清單、單選按鈕或複選框對象的規則時,表單中這些表單對象的選項或值將預先填充在規則編輯器中。

規則編輯器中的可用運算子類型和事件

規則編輯器提供了以下邏輯運算子和事件,您可以使用它們建立規則。

  • 等於
  • 不等於
  • 開頭為
  • 結尾為
  • 包含
  • 為空
  • 不為空
  • 已選擇: 當用戶為複選框、下拉菜單和單選按鈕選擇特定選項時,返回true。
  • 已初始化(事件): 當表單對象在瀏覽器中呈現時,返回true。
  • 已更改(事件): 當用戶更改表單對象的輸入值或選定選項時,返回true。

規則編輯器中可用的規則類型

規則編輯器提供了一組預定義的規則類型,可用於編寫規則。 讓我們詳細瞭解每種規則類型。 有關在規則編輯器中寫入規則的詳細資訊,請參見 寫入規則

時間

規則類型跟在後面 條件 — 操作 — 替代操作 規則構造,有時 條件作用 構造。 在此規則類型中,您首先為評估指定一個條件,然後在滿足條件時指定觸發操作( True)。 使用「當」(When)規則類型時,可以使用多個AND和OR運算子來建立 嵌套表達式

使用「當時」(When)規則類型,可以評估表單對象上的條件,並對一個或多個對象執行操作。

簡單地說,典型的When規則的結構如下:

When on Object A:

(Condition 1 AND Condition 2 OR Condition 3) is TRUE;

Then, do the following:

Action 2 on Object B;
AND
Action 3 on Object C;

當您在為該元件建立規則時擁有多值元件(如單選按鈕或清單)時,將自動檢索選項並使其可用於規則建立者。 您無需再次鍵入選項值。

例如,清單有四個選項:紅、藍、綠和黃。 在建立規則時,會自動檢索選項(單選按鈕),並使規則建立者可以使用這些選項,如下所示:

多值顯示選項

在編寫When規則時,可以觸發「清除值」(Clear Value)操作。 「清除值」(Clear Value Of)操作將清除指定對象的值。 在When語句中,將Clear Value作為選項,允許您建立具有多個欄位的複雜條件。

clearvalue

隱藏 隱藏指定的對象。

顯示 顯示指定的對象。

啟用 啟用指定的對象。

禁用 禁用指定的對象。

調用服務 調用在表單資料模型中配置的服務。 選擇「調用服務」操作時,將顯示一個欄位。 點擊該欄位後,它將顯示實例上所有表單資料模型中配置的所AEM有服務。 在選擇表單資料模型服務時,將出現附加欄位,您可以在其中使用指定服務的輸入和輸出參數映射表單對象。 請參閱用於調用表單資料模型服務的示例規則。

除了表單資料模型服務外,還可以指定直接WSDL URL來調用Web服務。 但是,表單資料模型服務有許多好處,並且推薦了調用服務的方法。

有關在表單資料模型中配置服務的詳細資訊,請參見 AEM Forms資料整合

設定值 計算和設定指定對象的值。 可以將對象值設定為字串、另一個對象的值、使用數學表達式或函式計算的值、對象屬性的值或配置表單資料模型服務的輸出值。 選擇Web服務選項時,它將顯示實例上所有表單資料模型中配置的所有AEM服務。 在選擇表單資料模型服務時,將出現附加欄位,您可以在其中使用指定服務的輸入和輸出參數映射表單對象。

有關在表單資料模型中配置服務的詳細資訊,請參見 AEM Forms資料整合

設定屬性 設定指定對象的屬性的值。

清除值 清除指定對象的值。

設定焦點 將焦點集中到指定的對象。

保存窗體 保存窗體。

提交Forms 提交表單。

重置窗體 重置窗體。

驗證表單 驗證表單。

添加實例 添加指定可重複面板或表行的實例。

刪除實例 刪除指定的可重複面板或表行的實例。

設定下列項目的值:

設定值 規則類型允許您根據指定的條件是否滿足來設定表單對象的值。 該值可以設定為另一個對象的值、字面字串、從數學表達式或函式中導出的值、另一個對象的屬性的值或表單資料模型服務的輸出。 同樣,您可以檢查從函式或數學表達式派生的元件、字串、屬性或值上的條件。

請注意,「設定規則類型的值」不適用於所有表單對象,如面板和工具欄按鈕。 標準規則集值具有以下結構:

將對象A的值設定為:

(字串ABC)或
(對象C的對象屬性X)OR
(函式的值)OR
(數學表達式中的值)OR
(資料模型服務或web服務的輸出值);

時間(可選):

(條件1和條件2和條件3)為真;

下面的示例將值 dependentid 欄位作為輸入並設定 RelationRelation 論據 getDependent 表單資料模型服務。

集值Web服務

使用表單資料模型服務設定值規則的示例

注意

此外,您還可以使用「設定規則值」從表單資料模型服務或Web服務的輸出中填充下拉清單元件中的所有值。 但是,請確保您選擇的輸出參數是陣列類型。 在陣列中返回的所有值在指定的下拉清單中都可用。

顯示

使用 顯示 規則類型,您可以根據條件是否滿足來編寫規則來顯示或隱藏表單對象。 如果條件不滿足或返回,則「顯示」規則類型還會觸發「隱藏」操作 False

典型的「顯示」規則的結構如下:

Show Object A;

When:

(Condition 1 OR Condition 2 OR Condition 3) is TRUE;

Else:

Hide Object A;

隱藏

與「顯示」(Show)規則類型類似,您可以使用 隱藏 用於根據條件是否滿足來顯示或隱藏表單對象的規則類型。 如果條件不滿足或返回,則隱藏規則類型還會觸發顯示操作 False

典型的隱藏規則的結構如下:

Hide Object A;

When:

(Condition 1 AND Condition 2 AND Condition 3) is TRUE;

Else:

Show Object A;

啟用

啟用 規則類型允許您根據條件是否滿足啟用或禁用表單對象。 如果條件不滿足或返回,則「啟用」規則類型還會觸發「禁用」操作 False

典型的「啟用」規則的結構如下:

Enable Object A;

When:

(Condition 1 AND Condition 2 AND Condition 3) is TRUE;

Else:

Disable Object A;

停用

與「啟用」規則類型類似, 禁用 規則類型允許您根據條件是否滿足啟用或禁用表單對象。 如果條件不滿足或返回,則「禁用」規則類型還會觸發「啟用」操作 False

典型的「禁用」規則的結構如下:

Disable Object A;

When:

(Condition 1 OR Condition 2 OR Condition 3) is TRUE;

Else:

Enable Object A;

驗證

驗證 規則類型使用表達式驗證欄位中的值。 例如,可以編寫表達式來檢查用於指定名稱的文本框是否不包含特殊字元或數字。

典型的驗證規則的結構如下:

Validate Object A;

Using:

(Expression 1 AND Expression 2 AND Expression 3) is TRUE;

注意

如果指定的值與驗證規則不符,則可以向用戶顯示驗證消息。 您可以在 指令碼驗證消息 欄位。

指令碼驗證

瞭解規則編輯器用戶介面

規則編輯器提供了一個全面而簡單的用戶介面來編寫和管理規則。 可以在創作模式下從自適應表單中啟動規則編輯器用戶介面。

要啟動規則編輯器用戶介面:

  1. 在創作模式下開啟自適應窗體。

  2. 按一下要為其編寫規則的表單對象,然後在元件工具欄中按一下 編輯規則。 將顯示規則編輯器用戶介面。

    建立規則

    此視圖中列出了選定窗體對象上的任何現有規則。 有關管理現有規則的資訊,請參見 管理規則

  3. 點擊 建立 寫一條新規則。 在首次啟動規則編輯器時,預設情況下將開啟規則編輯器用戶介面的可視編輯器。
    規則編輯器UI

    按一下放大

讓我們詳細瞭解規則編輯器UI的每個元件。

答:元件規則顯示

顯示用於啟動規則編輯器的自適應表單對象的標題以及當前選定的規則類型。 在上例中,規則編輯器從標題為「薪金」的自適應表單對象啟動,所選規則類型為「時間」。

B窗體對象和函式

規則編輯器用戶介面左側的窗格包含兩個頁籤: Forms物函式

「表單對象」頁籤顯示自適應表單中包含的所有對象的分層視圖。 它顯示對象的標題和類型。 編寫規則時,可將表單對象拖放到規則編輯器上。 在將對象或函式拖放到佔位符中時,建立或編輯規則時,佔位符會自動採取相應的值類型。

應用了一個或多個有效規則的表單對象用綠點標籤。 如果應用於表單對象的任何規則無效,則表單對象將標籤為黃點。

「函式」頁籤包括一組內置函式,如總和、最小值、最大值、平均值、數和驗證表單。 您可以使用這些函式在可重複面板和表行中計算值,並在編寫規則時在操作和條件語句中使用它們。 但是,您可以建立 自定義函式 也。

「函式」頁籤

注意

可以在「Forms對象和函式」頁籤中對對象和函式名稱和標題執行文本搜索。

在表單對象的左樹中,可以點擊表單對象以顯示應用於每個對象的規則。 您不僅可以瀏覽各種表單對象的規則,還可以在表單對象之間複製和貼上規則。 有關詳細資訊,請參見 複製 — 貼上規則

C.表單對象和函式切換

點擊時,切換按鈕可切換表單對象和函式窗格。

D可視規則編輯器

可視規則編輯器是規則編輯器用戶介面在可視編輯器模式下編寫規則的區域。 它允許您選擇規則類型並相應地定義條件和操作。 在規則中定義條件和操作時,可以從「表單對象和函式」窗格中拖放表單對象和函式。

有關使用可視規則編輯器的詳細資訊,請參見 寫入規則

E.可視代碼編輯器切換器

表單 — 超級用戶組中的用戶可以訪問代碼編輯器。 對於其他用戶,代碼編輯器不可用。 如果您具有權限,則可以使用規則編輯器上方的切換器,從可視編輯器模式切換到規則編輯器的代碼編輯器模式,反之亦然。 首次啟動規則編輯器時,它將在可視編輯器模式下開啟。 可以在可視編輯器模式下編寫規則,或切換到代碼編輯器模式以編寫規則指令碼。 但是,請注意,如果修改規則或在代碼編輯器中寫入規則,則無法切換回該規則的可視編輯器,除非清除代碼編輯器。

AEM Forms跟蹤上次用於編寫規則的規則編輯器模式。 下次啟動規則編輯器時,該編輯器將以該模式開啟。 但是,您也可以配置預設模式以在指定模式下開啟規則編輯器。 為此:

  1. 請訪問AEMWeb控制台,網址為https://[主機]:[埠]/system/console/configMgr。

  2. 按一下可編輯 自適應形式與交互通信Web通道配置

  3. 選擇 可視編輯器代碼編輯器規則編輯器的預設模式 下拉

  4. 按一下「儲存」。

F.完成並取消按鈕

完成 按鈕用於保存規則。 您可以保存不完整的規則。 但是,不完整無效且不執行。 下次從同一表單對象啟動規則編輯器時,將列出窗體對象上保存的規則。 您可以管理該視圖中的現有規則。 有關詳細資訊,請參見 管理規則

取消 按鈕將放棄對規則所做的任何更改並關閉規則編輯器。

寫入規則

可以使用可視規則編輯器或代碼編輯器編寫規則。 首次啟動規則編輯器時,它將在可視編輯器模式下開啟。 可以切換到代碼編輯器模式並編寫規則。 但是,請注意,如果在代碼編輯器中寫入或修改規則,則除非清除代碼編輯器,否則無法切換到該規則的可視編輯器。 下次啟動規則編輯器時,它將以上次用於建立規則的模式開啟。

讓我們首先看一下如何使用可視編輯器編寫規則。

使用可視編輯器

讓我們瞭解如何使用以下示例表單在可視編輯器中建立規則。

建立規則示例

貸款申請表示例中的「貸款要求」部分要求申請人指定其婚姻狀況、薪金,如果結婚,則指定其配偶的薪金。 規則根據用戶輸入計算貸款資格金額並顯示在「貸款資格」欄位中。 應用以下規則來實施方案:

  • 「配偶的薪金」欄位僅在「婚姻狀態」為「已婚」時才顯示。
  • 貸款資格金額是薪金總額的50%。

執行以下步驟來編寫規則:

  1. 首先,根據用戶為「婚姻狀態」單選按鈕選擇的選項,編寫規則以控制「配偶薪金」欄位的可見性。

    在擬定模式下開啟貸款申請表。 點擊 婚姻狀況 元件和抽頭 編輯規則。 下一步,點擊 建立 啟動規則編輯器。

    寫規則可視編輯器–1

    啟動規則編輯器時,預設情況下會選擇「何時」規則。 此外,在When語句中指定了從中啟動規則編輯器的表單對象(本例中為婚姻狀態)。

    雖然不能更改或修改所選對象,但可以使用規則下拉清單來選擇其他規則類型,如下所示。 如果要在另一個對象上建立規則,請點擊「取消」退出規則編輯器,然後從所需的窗體對象重新啟動它。

  2. 點擊 選擇狀態 下拉並選擇 等於。 的 輸入字串 的子菜單。

    寫規則可視編輯器–2

    在「婚姻狀態」單選按鈕中, 已婚 選項 01 值。 您可以在「編輯」單選按鈕對話框的「標題」頁籤中驗證已分配的值,如下所示。

    來自規則編輯器的單選按鈕值

  3. 輸入字串 欄位中,指定 0

    寫規則可視編輯器–4

    已將條件定義為 When Marital Status is equal to Married。 接下來,定義如果此條件為True則要執行的操作。

  4. 在Then語句中,選擇 顯示選擇操作 下拉。

    寫規則可視編輯器–5

  5. 拖放 配偶薪金 對話框 刪除對象或選擇此處 的子菜單。 或者,點擊 刪除對象或選擇此處 ,然後選擇 配偶薪金 的子菜單。

    寫規則可視編輯器–6

    規則在規則編輯器中顯示如下。

    寫規則可視編輯器–7

    點擊 完成 來保存規則。

  6. 重複步驟1至步驟5,以定義另一條規則,以在婚姻狀態為「單身」時隱藏「配偶薪金」欄位。 規則在規則編輯器中顯示如下。

    寫規則可視編輯器–8

    注意

    或者,您可以在「配偶薪金」欄位中編寫一條「顯示」規則,而不是在「婚姻狀態」欄位中編寫兩條「當」規則,以實現相同的行為。

    寫規則可視編輯器–9

  7. 接下來,編寫規則以計算貸款資格金額(即總薪金的50%),並將其顯示在「貸款資格」欄位中。 要實現此目標,請建立 設定值 「貸款資格」欄位的規則。

    在創作模式下,點擊 貸款資格 欄位和攻擊 編輯規則。 下一步,點擊 建立 啟動規則編輯器。

  8. 選擇 設定值 下拉清單中的規則。

    write-rules-visual-editor-10

  9. 點擊 選擇選項 選擇 數學表達式。 將開啟一個要寫入數學表達式的欄位。

    write-rules-visual-editor-11

  10. 在表達式欄位中:

    • 從「Forms對象」頁籤中選擇或拖放 薪金 欄位 刪除對象或選擇此處 的子菜單。
    • 選擇 選擇運算子 的子菜單。
    • 從「Forms對象」頁籤中選擇或拖放 配偶薪金 欄位 刪除對象或選擇此處 的子菜單。

    write-rules-visual-editor-12

  11. 接下來,在表達式欄位周圍的突出顯示區域中按一下,然後按一下 擴展表達式

    write-rules-visual-editor-13

    在擴展表達式欄位中,選擇 除以選擇運算子 欄位和 數字選擇選項 的子菜單。 然後,指定 2 的子菜單。

    write-rules-visual-editor-14

    注意

    可以使用「選擇選項」欄位中的元件、函式、數學表達式和屬性值來建立複雜表達式。

    接下來,建立一個條件,當返回True時,表達式將執行該條件。

  12. 點擊 添加條件 來修改標籤元素的屬性。

    write-rules-visual-editor-15

    在When語句中:

    • 從「Forms對象」頁籤中選擇或拖放 婚姻狀況 欄位 刪除對象或選擇此處 的子菜單。
    • 選擇i 等於選擇運算子 的子菜單。
    • 在另一個中選擇字串 刪除對象或選擇此處 欄位和指定 已婚輸入字串 的子菜單。

    規則最後在規則編輯器中顯示如下。 write-rules-visual-editor-16

    點擊 完成 來保存規則。

  13. 重複步驟7至12,以定義另一條規則,在婚姻狀態為「單一」時計算貸款資格。 規則在規則編輯器中顯示如下。

    write-rules-visual-editor-17

注意

或者,您可以使用「設定值」規則在為顯示和隱藏配偶薪金欄位而建立的「何時」規則中計算貸款資格。 「婚姻狀態」為「單一」時生成的組合規則,如下所示顯示在規則編輯器中。

同樣,您可以編寫一個組合規則來控制「配偶薪金」欄位的可見性,並在「婚姻狀態」為「已婚」時計算貸款資格。

write-rules-visual-editor-18

使用代碼編輯器

添加到表單超級用戶組的用戶可以使用代碼編輯器。 規則編輯器會自動為使用可視編輯器建立的任何規則生成JavaScript代碼。 可以從可視編輯器切換到代碼編輯器以查看生成的代碼。 但是,如果在代碼編輯器中修改規則代碼,則無法切換回可視編輯器。 如果您更喜歡在代碼編輯器中寫入規則,而不是在可視編輯器中寫入規則,則可以在代碼編輯器中重新寫入規則。 可視代碼編輯器切換器可幫助您在兩種模式之間切換。

代碼編輯器JavaScript是自適應表單的表達式語言。 所有表達式都是有效的JavaScript表達式,並使用自適應表單指令碼模型API。 這些表達式返回某些類型的值。 有關自適應表單類、事件、對象和公共API的完整清單,請參見 用於自適應表單的JavaScript庫API參考

有關在代碼編輯器中寫入規則的准則的詳細資訊,請參見 自適應表單表達式

在規則編輯器中編寫JavaScript代碼時,以下可視提示將幫助您瞭解結構和語法:

  • 語法突出顯示
  • 自動縮進
  • 表單對象、函式及其屬性的提示和建議
  • 自動完成表單元件名稱和常用JavaScript函式

javascriptrueeditor

規則編輯器中的自定義函式

除了「函式輸出」下列出的*Sum、*等現成功能外,您還可以編寫您經常需要的自定義函式。 確保您編寫的函式與 jsdoc 在上面。

隨附 jsdoc 是必需的:

  • 如果要自定義配置和說明。
  • 因為有多種方法在中聲明函式 JavaScript, 和注釋,讓你瞭解這些功能。

有關詳細資訊,請參見 usejsdoc.org

支援 jsdoc 標籤:

  • 私人

    語法: @private

    私有函式不作為自定義函式包含。

  • 名稱

    語法: @name funcName <Function Name>

    或者, , 您可以使用: @function funcName <Function Name> @func funcName <Function Name>

    funcName 是函式的名稱(不允許使用空格)。

    <Function Name> 是函式的顯示名稱。

  • 成員

    語法: @memberof namespace

    將命名空間附加到函式。

  • 參數

    語法: @param {type} name <Parameter Description>

    或者,您可以使用: @argument {type} name <Parameter Description> @arg {type} name <Parameter Description>

    顯示函式使用的參數。 函式可以具有多個參數標籤,每個參數的標籤按出現順序排列。

    {type} 表示參數類型。 允許的參數類型包括:

    1. 字串
    2. 數字
    3. 布林值

    所有其它參數類型都按上述一種分類。 不支援任何。 確保您選擇上述類型之一。 類型不區分大小寫。 參數中不允許有空格 name<Parameter Descrption>

  • 返回類型

    語法: @return {type}

    或者,您可以 @returns {type}

    添加有關函式的資訊,如其目標。

    {type}表示函式的返回類型。 允許的返回類型包括:

    1. 字串
    2. 數字
    3. 布林值
    4. 日期
    5. 陣列

    所有其他返回類型均按上述一種分類。 不支援任何。 確保您選擇上述類型之一。 返回類型不區分大小寫。

注意

自定義函式用於摘要之前的注釋。 摘要可以擴展到多行,直到遇到標籤。 在規則生成器中,將大小限制為單個,以提供簡明的說明。

添加自定義函式

例如,您要添加一個計算正方形面積的自定義函式。 邊長是用戶對自定義函式的輸入,它是使用窗體中的數字框接受的。 計算的輸出顯示在窗體中的另一個數字框中。 要添加自定義函式,必須先建立客戶端庫,然後將其添加到CRX儲存庫。

執行以下步驟建立客戶端庫並將其添加到CRX儲存庫中。

  1. 建立客戶端庫。 有關詳細資訊,請參見 使用客戶端庫

  2. 在CRXDE中,添加屬性 categories字串類型值為 customfunctionclientlib 的子菜單。

    注意

    customfunction是示例類別。 您可以為在 clientlib的子菜單。

在CRX儲存庫中添加客戶端庫後,請在自適應格式中使用它。 它允許您將自定義函式用作表單中的規則。 執行以下步驟以自適應形式添加客戶端庫。

  1. 在編輯模式下開啟窗體。

    要在編輯模式下開啟表單,請選擇一個表單並點擊 開啟

  2. 在編輯模式下,選擇一個元件,然後點擊 欄位級 > 自適應窗體容器,然後按一下 招商

  3. 在提要欄中的「客戶端庫名稱」下,添加您的客戶端庫。 ( customfunction )。

    添加自定義函式客戶端庫

  4. 選擇輸入數字框,然後點擊 編輯規則 開啟規則編輯器。

  5. 點擊 建立規則。 使用下面所示的選項,建立一個規則以在窗體的「輸出」欄位中保存輸入的平方值。
    使用自定義函式建立規則點擊 完成。 添加了自定義函式。

函式聲明支援的類型

函式語句

function area(len) {
    return len*len;
}

此函式包含在 jsdoc 注釋。

函式表達式

var area;
//Some codes later
/** */
area = function(len) {
    return len*len;
};

函式表達式和語句

var b={};
/** */
b.area = function(len) {
    return len*len;
}

函式聲明為變數

/** */
var x1,
    area = function(len) {
        return len*len;
    },
    x2 =5, x3 =true;

限制:custom函式只從變數清單中選取第一個函式聲明(如果加在一起)。 可以對聲明的每個函式使用函式表達式。

函式聲明為對象

var c = {
    b : {
        /** */
        area : function(len) {
            return len*len;
        }
    }
};
注意

確保您使用 jsdoc 來修改。 儘管 jsdoc鼓勵注釋,包括空 jsdoc注釋,將函式標籤為自定義函式。 它啟用自定義函式的預設處理。

管理規則

按一下表單對象並點擊時,將列出表單對象上的任何現有規則 編輯規則1。 您可以查看標題並預覽規則摘要。 此外,UI還允許您展開和查看完整的規則摘要、更改規則順序、編輯規則和刪除規則。

清單規則

您可以對規則執行以下操作:

  • 展開/折疊:規則清單中的「內容」列顯示規則內容。 如果整個規則內容在預設視圖中不可見,請點擊 擴展規則內容 來擴大它。

  • 重新排序:您建立的任何新規則都堆放在規則清單的底部。 規則從上到下執行。 頂部的規則首先執行,然後是同一類型的其他規則。 例如,如果從上到下分別有規則在第一個、第二個、第三個和第四個位置的When、Show、Enable和When,則頂部的When規則首先被執行,而第四個位置的When規則則被執行。 然後,將執行「顯示」和「啟用」規則。

    通過點擊 排序規則 或將其拖放到清單中所需的順序。

  • 編輯:要編輯規則,請選中規則標題旁的複選框。 此時將顯示用於編輯和刪除規則的其他選項。 點擊 編輯 以可視或代碼編輯器模式在規則編輯器中開啟選定規則,具體取決於用於建立規則的模式。

  • 刪除:要刪除規則,請選擇該規則並點擊 刪除

  • 啟用/禁用:您可能需要暫時暫停使用規則。 您可以選擇一個或多個規則,然後在「操作」工具欄中按一下「禁用」以禁用它們。 如果規則被禁用,則它不會在運行時執行。 要啟用已禁用的規則,可以選擇該規則並在操作工具欄中按一下啟用。 規則的狀態列顯示規則是啟用還是禁用。

禁用

複製 — 貼上規則

您可以將規則從一個欄位複製貼上到其他類似欄位以節省時間。

要複製 — 貼上規則,請執行以下操作:

  1. 按一下要從中複製規則的表單對象,然後在元件工具欄中按一下 編輯規則。 將顯示規則編輯器用戶介面,同時選定表單對象並顯示現有規則。

    複製規則

    有關管理現有規則的資訊,請參見 管理規則

  2. 選中規則標題旁邊的複選框。 此時將顯示用於管理規則的其他選項。 點選「 複製」。

    複製規則2

  3. 選擇要貼上規則的另一個窗體對象,然後點擊 貼上。 此外,可以編輯規則以對其進行更改。

    注意

    僅當該表單對象支援複製規則的事件時,才能將規則貼上到另一個表單對象。 例如,按鈕支援按一下事件。 您可以將帶有按一下事件的規則貼上到按鈕,但不能貼上到複選框。

  4. 點擊 完成 來保存規則。

嵌套表達式

規則編輯器允許您使用多個AND和OR運算子來建立嵌套規則。 可以在規則中混合使用多個AND和OR運算子。

下面是一個嵌套規則的示例,該規則在滿足所需條件時向用戶顯示有關子女監護資格的消息。

複合表達

也可以在規則內拖放條件來編輯它。 點擊並懸停在手柄上( 把手)。 當指針變為手形符號(如下所示)後,拖動並放下規則內任意位置的條件。 規則結構將更改。

拖放

日期表達式條件

規則編輯器允許您使用日期比較來建立條件。

以下是一個示例條件,如果房屋上的抵押貸款已經獲得,則該條件將顯示一個靜態文本對象,用戶通過填寫日期欄位來表示該對象。

當用戶填寫的物業抵押日期過去時,自適應表單會顯示有關收入計算的附註。 以下規則將用戶填寫的日期與當前日期進行比較,如果用戶填寫的日期早於當前日期,則表單將顯示文本消息(名為「收入」)。

dateexpression條件

當填充日期早於當前日期時,表單將按如下方式顯示文本消息(收入):

dateexpression條件

數字比較條件

規則編輯器允許您建立比較兩個數字的條件。

以下是一個示例條件,如果申請人當前地址所在的月數少於36,則顯示靜態文本對象。

數比較條件

當用戶表示他已在其現有住宅地址中居住不到36個月時,該表格顯示可請求額外居住證明的通知。

請求的附加校對

規則編輯器對現有指令碼的影響

在AEM Forms6.AEM1版以前的Forms功能包1中,表單作者和開發人員用於在「編輯」元件對話框的「指令碼」頁籤中編寫表達式,以將動態行為添加到自適應表單。 「指令碼」頁籤現在由規則編輯器替換。

必須在「指令碼」頁籤中編寫的任何指令碼或表達式都可在規則編輯器中使用。 雖然您無法在可視編輯器中查看或編輯它們,但如果您是forms-power-users組的一部分,則可以在代碼編輯器中編輯指令碼。

示例規則

調用表單資料模型服務

考慮Web服務 GetInterestRates 以貸款金額、保有期和申請人的信用評分為輸入,並返回包括百代金額和利率在內的貸款計畫。 使用Web服務作為資料源建立表單資料模型。 添加資料模型對象和 get 服務到窗體模型。 該服務顯示在表單資料模型的「服務」頁籤中。 然後,建立包括資料模型對象中的欄位的自適應表單,以捕獲貸款金額、保有期和信用評分的用戶輸入。 添加觸發Web服務以獲取計畫詳細資訊的按鈕。 輸出將填充到相應的欄位中。

以下規則顯示如何配置調用服務操作以完成示例方案。

示例調用服務

使用When規則觸發多個操作

在貸款申請表中,您要獲取貸款申請人是否是現有客戶。 根據用戶提供的資訊,客戶ID欄位應顯示或隱藏。 此外,如果用戶是現有客戶,則要將焦點設定在客戶ID欄位上。 貸款申請表包含以下元件:

  • 一個單選按鈕, 您是現有Geometrixx客戶嗎?,提供「是」和「否」選項。 「是」的值為 0 不是 1

  • 文本欄位, Geometrixx客戶ID,以指定客戶ID。

當您在單選按鈕上寫入When規則以實現此行為時,該規則將如下顯示在可視規則編輯器中。 時規則示例

在示例規則中,When節中的語句是條件,當返回True時,該條件將執行Then節中指定的操作。

規則在代碼編輯器中顯示如下。

時規則示例代碼

在規則中使用函式輸出

在採購訂單表單中,您有下表,用戶將在其中填寫訂單。 在下表中:

  • 第一行是可重複的,因此用戶可以訂購多個產品並指定不同的數量。 其元素名稱為 Row1
  • 可重複行的「產品數量」列中單元格的標題為「數量」。 此單元格的元素名稱為 productquantity
  • 表中的第二行是非可重複的,此行中「產品數量」列中單元格的標題是「總數量」。

示例函式表

答: 行1 B 數量 C. 總數量

現在,您要在「產品數量」(Product Quantity)列中為所有產品添加指定數量,並在「總數量」(Total Quantity)單元格中顯示總數。 您可以通過在「總數量」(Total Quantity)單元格上寫入「設定規則值」(Set Value Of)來實現此目標,如下所示。

示例函式輸出

示例函式 — 輸出 — 代碼

使用表達式驗證欄位值

在上例中說明的採購訂單表單中,您希望限制用戶訂購任何定價超過10000的產品的數量。 為此,您可以編寫驗證規則,如下所示。

示例驗證

示例 — validate-code

本頁內容