2012-03-16 64 views
3

我保存按鈕使用SSJS一些邏輯。我想保存數據源,所以我用保存()上的數據源方法不火QuerySave的/ postSave事件

document1.save();

腳本工作,但不執行QuerySave的/ postSave代碼。

唯一的解決方法是使用簡單的動作和分割按鈕事件塊「執行腳本」,「保存文件(簡單的動作)」和「執行腳本」(剛剛返回「導航」字符串)。

是否有可能保存數據源在SSJS和火QS/PS事件?

回答

15

請儘量將SSJS代碼:

var dsName = "document1.DATASOURCE"; 
var app = facesContext.getApplication(); 
var ds = app.getVariableResolver().resolveVariable(facesContext, dsName); 
ds.save(facesContext, true); 

變量DSNAME包含後跟 「.DATASOURCE」 您的數據源的名稱。使用它f.e.使用當前文檔,您必須更改爲「currentDocument.DATASOURCE」。

希望這有助於

斯文

+0

感謝,按預期工作:-) – 2012-03-20 14:08:59

+1

@Sven:我如何控制,如果保存sucessfull?在我的舊代碼中,我使用了 var res = document1.save(); (res){ var url = view.getPageName()+「?action = openDocument&documentId =」+ document1.getNoteID(); context.redirectToPage(url); } 所以,如果有一些問題,我不執行重定向,我顯示錯誤信息 – 2012-08-24 08:48:13

+0

* var ret = ds.save(facesContext,true); *保存方法有一個返回值:如果文檔已成功保存,否則是錯誤的。這意味着* querySave * -event沒有返回false。 – 2012-08-24 09:13:28

0

斯文是你的代碼和currentDocument.save(之差)是別的東西比QuerySave的和postsave發生了什麼?

+2

不同之處在於將使用的對象類型:如果保存文檔數據源,則調用NotesXspDocument類型對象的方法「保存」。如果您做了上述的操作,您將收到類型爲 – 2012-03-18 19:39:24

+2

的對象com.ibm.xsp.model.domino.DominoDocumentData;這個對象有另一種保存方法。第一個對象類型就像後端NotesDocument,第二個對象類似於NotesUIDocument類。 – 2012-03-18 19:39:58