跳轉到

取得 API 起單檔案

flowchart LR
    A(UOF X 站台) --> B(API 服務管理<br>取得金鑰)
    A --> C(表單維護<br>建立表單) --> D(匯出 API 起單檔案<br>formschema.cs)
flowchart LR
    A(GitHub下載範例) --> B(設定站台網址與金鑰)
    A --> C(將 formschema.cs 加入專案) --> D(設定申請者) --> J(起單)
    C --> F(填寫欄位資料)--> J
    C --> G(附件<br>-非必要-)--> J
    C --> H(Callback<br>-非必要-)--> J

要進行外部起單的第一件事,要先取得 API 起單檔案,在 UOF X 系統中,每個表單都有專屬的檔案,請先了解您要外部起單的單據是哪張,並先確認單據是否已經 發佈。沒有發佈的單據無法取得檔案,也無法接續後面的步驟。接下來,請使用具有 表單管理者 權限的帳號登入 UOF X

需要表單管理者權限

要取得 API 起單檔案,必須使用有 表單管理者 權限的帳號登入方能匯出

範例程式下載: https://github.com/UOfficeForceX/SDK-Quickstart

取得 API 起單檔案

登入 UOF X,從右上角的頭像切換為管理員,點選左邊選單的「工作流程」 > 「表單維護」

Image open-form-manager
開啟表單維護介面
從類別、表單清單中找到要外部起單的表單,點選表單名稱旁的「齒輪」圖案,並點選「匯出API起單檔案」
Image export-formschema
匯出 API 起單檔案
稍等系統處理完後會出現彈跳視窗,請點選「點我下載」
Image dialog-download-form
下載後您會得到一個 zip 壓縮檔,壓縮檔內的 formSchema.cs 即是 API 起單檔案 了。

API 起單檔案內容是什麼

每個表單都有各別設計的欄位,且每個欄位有不同的輸入邏輯,這對程式開發人員而言,要在外部起單產生表單資料是一大難題。因此 UOF X 系統將表單內容轉成 C# 的類別 (class),讓開發人員可以無痛的匯入專案中使用,匯出檔案的基本結構如下:

namespace Ede.Uofx.FormSchema.UofxFormSchema
{
  /// <summary>
  /// 此為表單主體
  /// </summary>
  public partial class UofxFormSchema
  {
    //此表單的 ID,不可修改
    public System.Guid FormId { get; set; } = new System.Guid("d268923c-0aa1-4b28-2847-08da07c64cd1");
    public System.Guid ScriptId { get; set; } = new System.Guid("cb865bd0-76dc-4c63-5697-08db3afccb4f");

    //此為外部起單需填寫的資訊
    public string Account { get; set; }
    public string CorpCode { get; set; }
    ...

    //這是表單的欄位
    public UofxFormSchemaFields Fields { get; set; } = new UofxFormSchemaFields();
  }

  public partial class UofxFormSchemaFields
  {
    /// <summary>
    /// 請假日期 <==此為設計時的欄位說明,在匯出時會自動帶入
    /// </summary>
    public System.DateTimeOffset? C001 { get; set; }

    /// <summary>
    /// 請假原因
    /// </summary>
    public string C002 { get; set; }

    ...
  }
}

在上面的範例中, class UofxFormSchema 是表單的主檔,裡面包含 ID、申請人、部門...等基本資訊,表單的所有欄位收在 class UofxFormSchemaFields 中,用表單設計時的欄位 code 當 class 屬性名稱,屬性 Type 也會依欄位而動態調整符合的型態。其餘可能還有 class FileItem 檔案物件、 enum UserSetItemType 組織類型選項...等,會依照表單的設計而動態產生。

解決 API 起單檔案名稱衝突問題

目前所有表單匯出的類別 (class) 名稱皆會是 UofxFormSchema,如果您專案中需參考多張 API 起單檔案 ,則會出現名稱衝突的問題,請打開匯出的檔案並修改 UofxFormSchema 為您想要的名稱。例如: 要將名稱修改為 MyFormSchema:

namespace Ede.Uofx.FormSchema.MyFormSchema //<== 改這
{
  /// <summary>
  /// 此為表單主體
  /// </summary>
  public partial class MyFormSchema //<== 改這
  {
    ...

    //這是表單的欄位
    public MyFormSchemaFields Fields { get; set; } = new MyFormSchemaFields(); //<== 改這
  }

  public partial class MyFormSchemaFields //<== 改這
  {
    ...
  }
}

未來將修正

計畫在未來的版本中將會優化調整此衝突問題

不要修改檔案其他內容

注意: 除了名稱調整之外,不應該手動修改 API 起單檔案的其他內容,如有更新需求,應該重新匯出取得最新的檔案。

我有問題

  • 為什麼登入後在選單看不到工作流程?

    因為登入的帳號不具有 表單管理者 權限

  • 為什麼「匯出API起單檔案」選項反灰無法點選?

    因為此表單尚未 發佈