2016-08-15 57 views
1

我的任務是更新舊的Notes應用程序 - 我寧願基本上做其他任何事情,但這就是生活。由於每API,我應該能夠如果數據格式通過AJAX/Domino數據服務API更新Lotus Notes富文本字段

FieldName: { contentType: 'text/html', data: newData, type: 'richtext' } 

(序列化到JSON,當然)

但是,什麼情況是,原來的RT場得到更新富文本字段由三個MIME部分字段(名稱相同,包含您期望的內容,"Content-Type: multipart/mixed","boundary"等)替換,"newData"存儲在$FILE附件中。而且還有少數MIME專用字段被添加到文檔中($MIMETrack,$NoteHasNativeMIME,MIME_Version)。

現在這肯定不會是Notes文檔與實際功能不匹配的第一次,但我想知道是否有人成功地做到了這一點?或者,通過AJAX更新RT字段的任何其他方式(最好使用HTTP PATCH)?

編輯:經過進一步檢查,這似乎是一個配置問題。我試圖用RT領域的文檔(包含文本「測試RT場」,通過一個普通的web表單提交)做一個GET

"FieldName": { 
"contentType":"text/html", 
"data":"testing rt field", 
"type":"richtext" 
} 

而是預期的結果將根據API什麼返回是

"FieldName": { 
"type":"multipart", 
"content": [ 
{ 
"contentType":"multipart\/alternative; Boundary=\"0__=4DBB0A82DFA47A268f9e8a93df938690918c4DBB0A82DFA47A26\"", 
"contentDisposition":"inline" 
}, 
{ 
"contentType":"text\/plain; charset=US-ASCII", 
"data":"testing rt field", 
"boundary":"--0__=4DBB0A82DFA47A268f9e8a93df938690918c4DBB0A82DFA47A26" 
}, 
{ 
"contentType":"text\/html; charset=US-ASCII", 
"contentDisposition":"inline", 
"data":"<html><body><font size=\"2\" face=\"sans-serif\">testing rt field<\/font><\/body><\/html>", 
"boundary":"--0__=4DBB0A82DFA47A268f9e8a93df938690918c4DBB0A82DFA47A26" 
} 
] 
} 

(抱歉格式)

所以我猜有一個與我們的Domino配置某處有問題。在哪裏,我不知道,任何提示將不勝感激。

+0

FWIW,服務器運行Domino 8.5.3 UP1 - 並且更新到9.x不是真正的選項。 – wutnau

+0

該文檔還指出:「嘗試創建或更新帶有附件或嵌入對象的富文本字段或對附件或嵌入對象的引用時,返回錯誤400(錯誤請求)。」富文本和MIME不是100%兼容,所以你可能會遇到一些問題。爲什麼使用(新)API而不是Java或LotusScript代理來更新文檔是否有任何原因? –

+0

newData是有效的html嗎? –

回答

1

在Domino 8.5.3 UP1中,數據服務將富文本字段表示爲一個HTML部分(,如the 8.5.3 doc中所述)。這有一些嚴重的限制。例如,您無法創建包含嵌入圖像和附件的富文本字段。

從Domino 9.0開始,數據服務將豐富文本字段表示爲多個部分(the 9.0.1 doc中描述的"type": "multipart")。但是,您仍可以PUT和POST舊的富文本格式,並且您可以通過在URL中指定multipart=false來獲取舊格式。換句話說,原始的海報似乎在使用Domino 9.0,並且按預期工作。