2016-08-15 13 views
1

私は従来のNotesアプリケーションを更新することを任されています。 APIごととして、私は、データがフォーマットでAJAX/Domino Data Service APIを使用してLotus Notesリッチテキストフィールドを更新する

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

であれば、リッチテキストフィールドを更新することができるはずです(もちろん、JSONにシリアライズ)

しかし、何が起こるかは、元のRTフィールドが取得するということです3つのMIMEパートフィールド(同じ名前で、あなたが期待するものを含む、"Content-Type: multipart/mixed""boundary"など)に置き換えられ、"newData"は添付ファイル$FILEに格納されます。また、MIME固有のフィールドもほとんどドキュメントに追加されません($MIMETrack$NoteHasNativeMIMEMIME_Version)。

Notesのドキュメントが実際の機能と一致しないのは初めてのことではありませんが、誰かがこれを正常に実行できたかどうかは疑問でした。あるいは、AJAX経由でRTフィールドを更新する他の方法(できればHTTP PATCH)?

編集:これ以上の検査では、これは構成の問題であるようです。私は、RTフィールドを持つ文書からGETをやってみました(つまり、通常のWebフォームから送信されたテキスト「テストRTフィールド」を、含まれている)、期待される結果が

"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" 
} 
] 
} 

です。どこに、私は考えていない、どのようなヒントをいただければ幸いです。

+0

FWIWでは、サーバーでDomino 8.5.3 UP1が実行されています。9.xへの更新は実際にはオプションではありません。 – wutnau

+0

ドキュメントには、「添付ファイルや埋め込みオブジェクト、または添付ファイルや埋め込みオブジェクトのリッチテキストフィールドを作成または更新しようとすると、エラー400(Bad Request)が返されます」リッチテキストとMIMEは100%互換性があるので、そこにいくつかの問題が予想されるかもしれません。ドキュメントを更新するためにJavaまたはLotusScriptエージェントではなく、(新しい)APIを使用する理由はありますか? –

+0

newDataは有効なhtmlですか? –

答えて

1

Domino 8.5.3 UP1では、データサービスがリッチテキストフィールドを1つのHTML部分("type": "richtext"the 8.5.3 docで説明)に表しました。これにはいくつかの厳しい制限がありました。たとえば、イメージと添付ファイルが埋め込まれたリッチテキストフィールドを作成できませんでした。

ドミノ9.0以来、データサービスはリッチテキストフィールドを複数の部分(、the 9.0.1 docで説明されているように)として表します。ただし、古いリッチテキスト形式をPUTおよびPOSTすることはできますが、URLにmultipart=falseを指定することで古い形式を取得できます。言い換えれば、元のポスターはDomino 9.0を使用しているようで、期待どおりに動作しています。

関連する問題