2012-06-18 18 views
1

在更高的層次上,我有一個任務來維護我的APEX應用程序在一個Subversion版本庫中,因此,我需要實現一致的(並且容易導入的)文件集。APEX:以編程方式導出*僅*應用程序組件 - 如何?

我的第一個選擇是使用Oracle的基於Java的實用程序(APEXExport & Apexsplitter)。

導出工作得很好,但我不想保留大的應用程序文件,並且拆分器部分似乎很容易出錯(由於受到某些約束違規,我無法重新導入拆分的應用程序,我沒有調查)。

另一種選擇是,我嘗試使用WWV_FLOW_UTILITY的API。這對於我現在使用的app-wise和page-wise導出都很好,但我也想將應用程序組件保存爲單獨的文件。

我實際上並不想使用APEX Web界面導出任何內容;我已經對系統軟件包進行了一些額外的研究,發現WWV_FLOW_GEN_API2似乎可以單獨導出組件,但它看起來不直觀(至少與WWV_FLOW_UTILITY相比)並且沒有記錄。

所以...任何簡單的方法將組件導出到單獨的文件的機會,或者我唯一的方法就是試着玩gen_api2或(lol,實際上,不是)嘗試模擬web界面並重現這些HTTP POST請求爲任何給定的組件集生成.sql?

謝謝。

更新:這是我的錯誤,當我嘗試導入劈裂應用:

......Button Template 572358005406745047 
begin 
* 
ERROR at line 1: 
ORA-00001: unique constraint (APEX_040100.WWV_FLOW_BUTTON_TEMP_PK) violated 
ORA-06512: at "APEX_040100.WWV_FLOW_API", line 6711 
ORA-06512: at line 3 
+0

我相信,如果您真的需要一些技術洞察力,最好在OTN論壇上提問這個問題,這些問題一再出現並且有更多專家駐留。我想如果SO有一個更積極和經驗豐富的頂尖觀衆,但沒有。無論哪種方式,我都不同意你的方法:使用wwv_flow apis,例如你在頁面導出中發現的,肯定會讓你早晚麻煩。 – Tom

+0

我是一個APEX新手,我完全接受建議!我同意你的看法,試圖重新發明輪子肯定不是最好的事情,但是,有趣的是,如果我堅持流動apis,我可能會遇到麻煩,但我已經*了*遇到apexexp + splitter問題。 :)是的,如果我在安裝腳本中殺死笨蛋,我可能會重新導入我的應用程序,但那樣會在那之後變得可信嗎?我不這麼認爲。所以,看起來我所剩下的只是本地web導出。 –

+0

事情是流量apis是無證的功能:它們可能會在升級過程中沒有任何通知的情況下發生變化,從而爲潛在的麻煩設置自己。沒有真正的「官方」方式來分解一個頁面,所以這是目前你所得到的最精細的東西(不是我不喜歡它)。但是如果我是你,我會在oracle apex論壇上收集更多意見和經驗 - 以防萬一。只要小心你現在選擇的東西,這樣你就不會再遇到麻煩了。 – Tom

回答

0

擺在Subversion版本庫的APEX應用程序的方式是使用APEXExport和APEXExportSplitter。對於我的家庭應用程序和工作項目,我使用這種方法。這並不總是順利,但我始終能夠使其工作。您可能需要在設置中使用包APEX_APPLICATION_INSTALLAPEX_INSTANCE_ADMIN中的一些步驟才能使其正常工作。這裏有a blogpost可能有助於這個過程。

請讓我們在導入過程中看到錯誤消息。

UPDATE

有一次我接到一個同事,導致同樣的錯誤消息的導出。 install.sql不止一次地調用同一個分割的源文件。這似乎也是這種情況。原因對我來說還是未知 - 可能是由於不同的版本 - 但調整install.sql並刪除重複的調用,然後再次導出和拆分解決了我們的問題。

Regards,
Rob。

+0

檢查我的更新關於錯誤消息 –

+0

在我看來,之前有人在導入應用程序之前發佈了'set_offset'而不是'generate_offset',現在我正在運行元數據ID衝突 –

相關問題