UOF2如何修改已發佈表單

來自 | 8 月 12, 2024 | 一等一UOF系統, 程式 | 0 條留言

偶而會遇到表單設定錯誤,但已經發佈出去的窘境。

情況分類

  1. 單據還沒開始跑,停用 → 發佈新版本 → 重新啟用
  2. 單據已經開始跑了,如果問顧問會遇到同上的答案。

發佈後有哪些東西是可以改的?

  1. 流程 (這個有介面)
  2. 標題、註解、翻譯 (這個有介面)

如何透過資料庫修改欄位設定

建立一張測試表單

首先我先做一張有問題的測試表單來模擬,然後把表單給發行了,有問題的欄位是日期欄位,必填+無法修改預設值,等於說這張單會無法送出。之前我弄出無法送出的單都是勾到無法修改預設值,這個在系統中有最高的權限,後續在流程中的欄位填寫無論怎麼改都會導致無法更改,表單直接卡住。我覺得UOF應該做個防呆檢查…。

[SQL]找出表單在UOF系統當中的編號 VersionID

這邊要靠資料庫指令找出來,我發行的版本是2,表單名稱是「測試表單」

SELECT TOP (100) a.[FORM_ID] --表單ID
    ,a.[FORM_NAME] --表單名稱
    ,b.FORM_VERSION_ID --表單版本ID
    ,b.VERSION --版本

  FROM [dbo].[TB_WKF_FORM] AS a 
  LEFT JOIN [TB_WKF_FORM_VERSION] AS b
  ON a.FORM_ID = b.FORM_ID
  WHERE FORM_NAME = '測試表單';

找資料

表單ID

找到對應的VERSION ID後就可以從資料表[TB_WKF_FORM_VERSION] 撈出對應的表單,然後表單內容的位置會在VERSION_FIELD中。

找欄位資料

點開來後會是一個XML(看XML功能要比較新的SSMS版本才有)

表單XML

取消必填

這塊沒什麼技巧,就是從XML中找到對應的設定屬性,改掉預設值再UPDATE

<FieldItem fieldId="B06004" fieldName="日期" fieldSeq="3" fieldType="dateSelect" fieldRemark="" fieldTag="" DisplayLength="0" DecimalPoint="0" displayFieldName="True" externalData="False" wsUrl="" wsMethod="" wsAuth="False" wsAccount="" wsPassword="" wsSystemValueSend="" wsFormValueSend="" wsGetBeforeTime="False" wsVariation="False" delFlag="True" fieldDefault="2024/05/23" fieldModify="no">
    <extensionSetting />
    <fieldRestrict restrictChooseDateType="NotRestrict" restrictDaysBefore="" restrictDaysAfter="" />
    <fieldControlData fieldControlFlag="no" />
    <fieldModifyData Flag="accede" />
    <allowApplicentUser Flag="False" />
    <allowOtherUser Flag="False" />
    <visibleControl Flag="NoLimit" />
    <visibleUser Flag="&lt;UserSet&gt;&lt;/UserSet&gt;&#xD;&#xA;" Filler="False" />
</FieldItem>
  1. 欄位ID fieldId
  2. 欄位名稱 fieldName
  3. 欄位順序 fieldSeq
  4. 欄位類型 fieldType
  5. 外部資料externalData
  6. 允許修改預設值 fieldModify = "yes"
  7. 不允許修改預設值 fieldModify = "no"
  8. 預設值fieldDefault
  9. 顯示欄位標題 displayFieldName
  10. 欄位備註 fieldRemark

[SQL]更新的修改後的表單內容

UPDATE 
  [TB_WKF_FORM_VERSION]
SET 
  VERSION_FIELD = '新的表單內容'
WHERE 
  FORM_VERSION_ID = '表單ID'

0 條留言

提交留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *