2010-06-05 27 views
1

我們有一位客戶正在使用Lotus Notes/Domino作爲其內容管理系統和Web服務器。出於很多原因,我們推薦他們放棄他們的Notes/Domino實現並轉換到更現代的平臺 - 比如Drupal。如何處理Drupal中的參數化查詢?

客戶端有幾個Web應用程序,這將非常適合Drupal。但是,我不確定在Drupal中實現其中一個Web應用程序的最佳方式。我遇到了知識障礙,並想知道你們中的任何一個人是否能填補空白。

現狀

客戶端具有一個Lotus Domino應用程序用作前端,用於查詢大DB2的數據存儲並通過網絡返回結果集(通常以表格的形式)提供給用戶。該Web應用程序提供了大約100個預定義查詢的訪問權限 - 其中50個是公開的,其中50個是安全的。大多數查詢接受一組用戶選擇的參數作爲輸入。查詢的輸出通常以列表(表格)格式返回給用戶。有限數量的結果集允許通過HTML表進行詳細記錄。

查詢參數通常涉及數據庫查詢本身。例如,單個查詢可能會將公司部門列表拖入下拉列表中。一旦選定了一個部門,第二個下屬部門就會進入下屬部門 - 但也許只有符合某些特殊標準的部門 - 例如那些在特定時間範圍內虧損的部門。大多數查詢有2-4個參數,平均值可能爲3.

該應用程序不涉及數據輸入。 Web應用程序永遠不會修改任何後端數據。所有訪問都完全基於查詢數據和查看結果。

查詢變化相對較少,而且目前的系統已經存在大約10年。在給定年份中可能會有10-20次查詢添加,修改或其他更改。客戶只是希望更改演示平臺,但絕對不想重新執行100個數據庫查詢。

項目實施後,客戶希望他們的員工接管並管理未來的變更。客戶的工作人員沒有Drupal或PHP的背景,但有些人願意根據需要學習。

你將如何過渡到Drupal?我的主要知識無效與我們如何管理查詢參數並訪問查詢本身有關。以下是一些具體問題,但可以隨時在與此實施相關的任何問題上加以注意。

  1. 我們是否需要手動構建100個表單 - 每個表單都包含給定查詢的參數?如果是這樣,我們將如何做到這一點?
  2. 大概需要多長時間來構建/配置這些表單中的每一個?
  3. 有沒有比手動構建100個表單更好的方法? (我知道使用CCK將數據輸入到自定義內容類型中,但由於我們沒有添加任何節點,因此我有點卡住了這可能如何工作。)
  4. 內部人員是否可以學習創建這些查詢參數表單 - 即使他們今天對Drupal不熟悉?他們會被要求做任何PHP編程嗎?
  5. 我們將如何從表單中查詢參數並針對DB2執行查詢?這是否需要一個自定義模塊?如果是這樣,每個查詢需要一個模塊還是一個模塊?(注:顯然可爲Drupal一個DB2驅動程序見http://groups.drupal.org/node/5511。)

注:我不是在尋找比Drupal的其他如Drupal的非常適合所有的客戶的其他需求CMS的建議,我希望幫助他們在單一平臺上實現標準化。

您可以提供的任何幫助將有所幫助。預先感謝您的幫助!

回答

1

查看Data模塊 - 它可能能夠幫助您實現解決方案。

您可能遇到的最大問題是通過Drupal連接到DB2服務器,因爲它是DBA層在沒有修補程序的情況下不支持它(如您發現的那樣)。

0

有幾件事情浮現在腦海。 您可以使用Table Wizard將任何定製表格公開到views。視圖基本上爲您提供了用於編寫自定義SQL查詢的UI。一旦你的表暴露在視圖中,你可以使用過濾器來「查詢」參數。此外,視圖支持許多顯示選項,包括表格和傳呼機。

如果您確實需要爲高級查詢編寫自己的表單,請查看Drupal Form API,這使得創建自定義php表單成爲一塊蛋糕。

視圖相當容易學習,並且根據我的經驗,大多數客戶很快就能看到它。這實際上取決於查詢的複雜性。

表單API應該很容易讓開發人員拿起,但確實需要php的基本知識和編寫Drupal代碼。

0

Lotus提供了一個Web服務來查詢它嗎?如果是這樣,您可以使用自定義表單(在您自己的模塊中)輕鬆完成此操作,並使用「服務」模塊查詢數據。

+0

您可以通過Web服務查詢Domino,是的。但這聽起來像是原始海報的客戶正在擺脫Domino並在不同的平臺上進行標準化,所以這可能無濟於事。 – Ben 2010-06-11 12:06:17

+0

是的,但是當OP使用CCK等確定一個堅實的結構時,可以查詢並將所有數據轉換到Drupal,然後依賴Views進行查詢。 – Kevin 2010-06-11 12:58:44