2015-03-13 34 views
0

我正在使用Domino郵件REST API,並且能夠創建出現在草稿文件夾中的新草稿郵件。使用Domino REST API更新郵件草稿會導致郵件出現在發送文件夾中

當我更新草稿郵件時,它顯示在已發送文件夾中,並且不再顯示在草稿文件夾中。

這是意想不到的。該消息未被髮送。我也嘗試將From和To字段設置爲null,並且sresult始終是相同的。

部分代碼: Gson gson = new Gson(); String json = gson.toJson(message);

 // if message has an id then do update 
     if (href != null && href.trim().length() > 0) { 
      url = createFullQualifiedRequestUrl(href); 
      HttpPut request = new HttpPut(url); 
      request.setHeader("Content-Type", "application/json"); 
      request.setEntity(new StringEntity(json, "utf-8")); 
      response = this.executeRequest(request, username); 

     } else { 
      MailboxFolder folder = getFolder("drafts", username); 
      url = this.createFullQualifiedRequestUrl(folder.getLink() 
        .getHref()); 
      HttpPost request = new HttpPost(url); 
      request.setHeader("Content-Type", "application/json"); 
      request.setEntity(new StringEntity(json, "utf-8")); 
      response = this.executeRequest(request, username); 
     } 

     if (response != null) { 
      SendMessageResult result = parseResponse(response); 
      if(href != null) 
       result.setLocation(href); 
      return result; 
     } 
+0

此修補程序在擴展庫的最新版本中提供。完整版本號是901v00_12.20150311-1316。 – 2015-03-25 14:35:27

回答

2

這是REST郵件API中的錯誤,Richard對根本原因是正確的。該錯誤將在extension library(901v00_12)的下一個版本中修復。我無法確切知道12版何時可用,但應該很快。

1

很可能,您的問題是由將PostsDate項目設置爲非空值的事情引起的。

發送的「文件夾」不是文件夾。這是一個觀點。草稿「文件夾」也是如此。這也是一種觀點。如果您進入Domino Designer並查看視圖,則可以看到它們的選擇公式。你會看到他們這個樣子

發送

SELECT DeliveredDate = "" & PostedDate != "" & !(@IsMember("S"; ExcludeFromView)) 

草稿

SELECT PostedDate = "" & $MessageType = "" & @IsNotMember("D" : "A"; ExcludeFromView) & ISMAILSTATIONERY != 1 & Form != "Group" & Form != "Person" 

注意,這些是從一個比較老版本的郵件模板的拍攝,還等什麼你實際看到的可能會有所不同,但AFAIK這個想法並沒有改變。如果文件包含非空的「已發佈日期」項目並且「已發送日期」項目爲空或缺少,並且它們未標記爲排除,則它們將顯示在「已發送」中。如果文檔不包含這兩個日期項目中的任何一個,未標記爲排除,不是文具,並且不是組或人員文檔,則文檔將顯示在草稿中。這裏常見的一件事是依賴於已發佈的日期項目。

+0

謝謝。是的,正在設置'PostedDate',設置它的'東西'必須是用於更新草稿的官方Domino REST API .... – paul 2015-03-13 15:47:09

+0

AFAIK,沒有專門爲更新草稿而設計的API。只有一個用於更新文檔的通用API。該API調用有一些選項,其中之一是computewithform。您沒有向我們顯示您使用API​​請求發送的網址,但是如果您的代碼未設置computewithform = true,那麼默認情況下它可能是真的。其他更熟悉REST API的人可以證實這一點,因爲我只是在猜測。在標準備忘錄表單中執行代碼可能會設置在視圖選擇公式中引用的張貼日期或其他項目。 – 2015-03-13 17:15:34

相關問題