探討 Forms 現代化的合作夥伴小組討論

觀看軟體開發副總裁 Joel Kallman 與全球 APEX 社群的專家一起探討 Oracle Forms 現代化。瞭解影片中關於使用 Oracle APEX 進行 Oracle Forms 應用程式現代化的優勢與挑戰。探討內容包含實際成功案例、挑戰,以及成功秘訣。

與會者

Joel Kallman (主持人)
Oracle 軟體開發副總裁 (位於美國俄亥俄州的哥倫布)

Dario Bilić
BiLog (位於克羅埃西亞的札格雷布) 董事會成員及經理人

Simon Greenwood
Explorer UK Ltd. (位於英國的里茲) 開發服務總監

Sergei Martens
Smart4APEX (位於荷蘭的蒂爾堡) 管理合作夥伴

Francis Mignault
Insum Solutions (位於加拿大的蒙特婁) 首席技術長暨共同創辦人

此錄影來自 APEX Office Hours:https://apex.oracle.com/officehours

主要討論重點

問題 1

可以請您簡單描述一個完成的專案 (或進行中的專案) 嗎?(11:55)

Dario:

  • 一間大型的區域型歐洲銀行
  • 使用 500 個 Oracle Forms;600 份 Oracle Reports
  • 使用 APEX、Java with Angular、.NET 進行試驗,升級成 Forms 12c
  • 以試驗選定的 Oracle APEX 作為基礎

Simon:

  • 能源部門 ISV,管理天然氣和電力的智慧量錶
  • 為全英國 4/6 的最大能源供應商所採用
  • 已移轉數百個 Forms
  • 進行現代化作業的原因:
    • 需要 SaaS 方案交付軟體 (僅限瀏覽器)
    • 針對平板電腦的新式應答式設計,不僅僅只限桌上型電腦使用
    • 降低進入點的成本
    • 需要有未來發展性的雲端產品選項 – 沒有 Oracle Forms 雲端服務
    • 業務擴展至歐洲,因此要提供多種語言的產品
    • Forms 開發人員已具備學習 APEX 的技術

Sergei:

  • 石油和天然氣業界的 Tank Terminal Company
  • 進行 Oracle Forms 現代化,為將來的企業預期成長做準備,並重新建構以更符合業務需求
  • 剛開始很猶豫是否要使用 ADF,後來相信 APEX 的作業速度更快
  • 關鍵任務 App 由兩個各有 10 人的小組負責開發

Francis:

  • 美國主要郵輪公司的船上物產管理系統 (登船、岸上停留、旅客服務、後勤單位和報表)
  • 多年來執行眾多專案
  • 已進行 300 個 Forms 以及為數眾多的報表的現代化
  • 進行現代化作業的原因:
    • 效能問題
    • 改善使用者介面
    • 可充分利用過去投資的所有 PL/SQL

問題 2

使用 APEX 進行現代化作業期間,您所採取的方式為何?重新編寫?部分移轉?建立與現有 Oracle Forms App 類似的新 App?(20:50)

Simon:

  • 應該要考量所有相關環境
  • 一般來說,重新編寫的優點是降低授權成本等等
  • 可以的話,希望以對等方式進行現代化作業,但不能夠這樣 – Forms 基本上是從屬端/伺服器類型的產品
  • 使用 APEX 建立新式 Web App
  • 從 Forms 移轉至其他系統沒有什麼神奇工具,就是必須重新開發
  • 儘可能重複使用程式碼

Sergei:

  • 開始的時候,使用一對一 (或一對多) 移轉,讓開發人員學會 APEX
  • 將觸發程式邏輯移入資料庫邏輯內
  • 選擇簡單又立見成效的新功能,促成業務績效圓滿達成
  • 注意移轉的「使用者群組」,讓他們不需要在 Forms 和 APEX 兩者之間往返作業

Francis:

  • 爆炸性的大改革不是可行之道,尤其是在一個專案中包山包海
  • 透過模組方式,針對現有 App 進行擴充、局部重新編寫
  • 先瞭解 APEX 這項產品後,然後開始用它來處理現有表格

問題 3

在這類型的專案中,您面對的最大挑戰是哪些?(29:40)

Sergei:

  • 將 Forms 開發人員的思維方式從儘可能塞進一個頁面中,轉變成友善網頁的設計
  • 針對大型專案,設定使用者介面標準並維持一致性
  • 範疇潛變 – 業務不斷地要求新功能

Simon:

  • Forms 開發人員習慣了持續的資料庫連線,所以都使用暫時表格 – 在 APEX 中,您必須使用 APEX 集合
  • 多列的編輯頁面
  • 在 APEX 中,使用項目和區塊觸發程式進行驗證,而不是在送出頁面時進行驗證
  • 嘗試複製 100% 的 Forms 處理 (例如,跨多個頁面) 時發生問題

問題 4

對客戶來說,最大的好處是什麼?客戶對於結果是否感到滿意?

Dario:

  • 已經支付過 APEX 的費用 (透過資料庫授權),因此可以省下脫離 Forms 的費用
  • 保留 Forms 開發人員,改為使用 APEX – 大幅節省成本
  • 快速地移轉至 Web 技術 – 透過 Web 進行部署 (集中化) 而不是往外推送給成千上萬的一般使用者
  • 藉由使用 APEX,取得行動裝置服務和 REST 服務功能
  • 新式 App 更吸引業務使用者

Francis:

  • 運用對 Oracle 產品的現有投資 – 授權、資料模型、相同的技術堆疊
  • 比起其他 Web 技術,在 APEX 中更容易訓練 Forms 開發人員
  • 快速邁進 21 世紀 - 行動式、應答式的現代化 App

問題 5

我們總是在討論要將投資主力保留在後端業務邏輯 (SQL 和 PL/SQL)。這是否為謬論?有多少的後端程式碼需要經過修正才能夠在這新世界中利用 APEX 進行作業?(41:50)

Francis:

  • 如果邏輯位於資料庫 (而不是在 Forms 內),就可以運用絕大多數的程式碼
  • 如果邏輯建置於 Forms (或產生的「設計工具」) 之中,要進入並擷取業務邏輯就比較困難
  • 可以使用 APEX 內建的 APEX Forms 移轉功能來加註邏輯
  • APEX 的貼近 Forms 開發策略 = 更易於重複使用

Dario:

  • 大部分的程式碼都位於 Forms 內部,因此必須嘗試將所有程式碼都移到資料庫
  • 如果程式碼已經在資料庫中,那麼就很方便重複使用了。

問題 6

可以描述您針對某項產品是否適合使用 APEX 進行現代化的評估過程嗎?可以舉出一個您不會使用 APEX 為 Forms App 進行現代化的例子嗎?(46:30)

Simon:

  • 不適用於 Web 架構的產品,例如 web_util (執行的是桌上型作業)
  • 判斷有多少程式碼位於 Forms 觸發程式中,決定是否要投入進行
  • 複查哪些區段仍在使用 (若部分區段已不再使用,就不需要進行現代化)

Dario:

  • APEX 以 Web 為基礎,不是從屬端/伺服器類型產品,因此有一些限制條件
  • 從屬端對 Forms 的掌控能力較強,但這不是 Web 時代的作業方式
  • 使用 Plug-in 和其他技術就可以滿足從屬端需求

問題 7

關於訓練具有 Forms 背景的人員來使用 APEX,可以分享您的經驗嗎?APEX 屬於網路範疇,而網路是另外一回事。(50:55)

Sergei:

  • 在公司內提供 3 階段的 Forms 開發人員訓練
    • 初階 – 先學習 APEX 基本技能;然後讓開發人員執行和進一步學習
    • 中階 – 頁面呈現階段、從屬端階段、處理階段
    • 進階 – 最佳做法與標準;一致性
  • 當他們開始著手開發後,則會說明 JS 和 CSS
  • Web 開發人員最好應具備 JS、CSS、HTML 的專業知識

Dario:

  • 開發團隊中最好加入 Web 技術專家,才能掌握最新的 Web 技術
  • 針對需要進行 Forms 現代化的人員開設研討會
  • 讓一般使用者注意到 APEX 社群 (twitter、apex.world) 的力量
  • 鼓勵發問 (甚至是在 Google 搜尋相關資訊)
  • 替多個頁面/App 通用的功能建立 Plug-in
  • 探究第三方架構,例如 FOEX

Francis:

  • 教育 Forms 開發人員關於 Web 的運作方式,但「心態轉變」才是最重要的
  • 讓開發人員使用 APEX 執行作業並建立簡單的 App
  • 與 Forms 開發人員建立合作夥伴關係並教導作業準則
  • 學習如何除錯/追蹤 App
  • 也需要訓練一般使用者 – 螢幕畫面和處理作業都會不一樣

問題 8

現有的 Forms 開發人員需要多久的時間才能夠勝任 APEX 和 Web 開發工作?他們能夠獨自承擔進一步的開發工作嗎?(1:01:45)

Dario:

  • 42 分鐘
  • 經過訓練後,若提供支援的話,幾週內應該就可以提供產能
  • 經過一兩個月後,應該可以在不需太多支援的情況下提供產能

Simon:

  • 幾天之內可以上線運作,幾週之後就可以勝任
  • 其他 Web 技術 (像是 JavaScript 或 jQuery) 需要較長的時間,可能需要幾個月
  • 開發人員必須要樂意接納 APEX,這需要時間和經驗

問題 9

客戶能夠獨自完成這項移轉嗎?這個 Office Hours 論壇是由許多合作夥伴所參與,如果是我正在看著這段影片,可能會心想「哇,我需要外力協助才能夠完成這項任務。」您覺得呢?

Francis:

  • 如果他們已經瞭解 APEX,就可以立刻自行開始作業
  • 擁有一個經驗豐富的指導人員/合作夥伴是很有幫助的
  • 合作夥伴如果具備相關工具,就能提供訓練和其他資源。
  • 合作夥伴具備挑戰、安全性、策略等各方面的豐富經驗
  • 客戶可以從小的原型開始

Sergei:

  • 小型 App 不會有什麼問題
  • 大型 App 則務必要使用最佳做法 (版本控制、環境、Plug-in …),合作夥伴可提供這些方法
  • 尤其重要的是,在前幾個月必須取得協助

問題 10

針對正在看這段影片而盤算著使用 APEX 為他們手上的 Forms App 進行現代化的觀眾,您有什麼特別的建議嗎?(1:08:40)

Dario:

  • 業務使用者愛用 APEX,管理工作也非它不可,開發人員更是愛不釋手,所以,就去做吧!
  • 參加一場 Oracle 或 APEX 會議,您就會明白使用過的人對這項產品的熱愛和滿意度

Simon:

  • 下載最新版本的 APEX
  • 在 apex.oracle.com 註冊
  • Forms 開發人員對 APEX 可快速上手
  • 複查現有 App,確定頁面目前仍在使用中
  • 進行移轉沒有什麼神奇工具,重要的是重新設計
  • 請參閱 Forms 的相關白皮書:「Java 從屬端藍圖」以評估未來需求
    { https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf}

Sergei:

  • 從小型專案開始 – 選擇一個小型專案,即可快速看到成效
  • 深入瞭解報表功能,例如「互動式報表」、「互動式方格」等等

Francis:

  • 立刻開始使用 APEX – 充分加以運用
  • 規劃使用者介面、安全性 (認證和授權) 以及導覽
  • 分階段進行開發,而不是爆炸性的大改革
  • 保持簡單 – 減少非必要的功能
  • 不要嘗試重新產生 Forms
  • 改變管理方式 – 使用者、開發人員、分析人員、DBA 都需要接受訓練
  • 參與 APEX 社群的互動