2014-03-19 30 views
3

我正試圖通過使用休息服務控制來更新特定文檔。 我已經設置了控制(documentJsonService,pathInfo,表單名稱等) 我知道我必須對服務的URL執行post(補丁)請求,後跟/ unid /(與我讀取的方式相同該文檔使用相同的其餘部分)。如何使用XPages中的休息服務(擴展庫)更新文檔

我有一個輸入欄和一個按鈕。我想爲該字段輸入一個值,按下按鈕並用該值更新文檔中的字段。我怎樣才能做到這一點?

+1

您是否嘗試使用JSON發送AJAX文章,該文章使用與get相同的結構,但僅包含字段? – stwissel

+2

我設法使它工作。如果有人遇到同樣的問題,我會發布解決方案。 –

+1

我們仍在等待您的回答 – stwissel

回答

0

這是js函數我在工作燈用於更新的Domino文檔:在Domino端

function updateDoc(docId,newValue) { 
    var identity = Base64.encode("myDominoUsername:myDominoPassword"); 
    path = "/Databases/Temp/dominoApp.nsf/BestRestTest.xsp/updateService/unid/"+docId; 
    var input = { 
    method : 'post', 
    returnedContentType : 'json', 
    headers:{ 
     Authorization: "Basic "+"b4lzdD234GG3M6SdW1XI=" //base64 encoding of your //credentials, see above. The function Base64.encode can be found by googling about it in //js. So you replace this string with identity variable. 
     "X-HTTP-Method-Override":"PATCH", 
     "Content-Type":"application/json" 
    }, 
    body: { 
     contentType: 'application/json; charset=utf-8', 
     content: JSON.stringify({"theField":newValue}) 
     }, 
    path : path 
    }; 
    return WL.Server.invokeHttp(input); 
} 

我現在已經增加了一個擴展庫REST控制(或者您可以使用Domino數據服務做)。我已經添加的屬性是:

  • PATHINFO:無論你想
  • 服務:documentJsonService
  • computeWithForm:真
  • defaultItems:真
  • 表格名稱:myformName

這是隻是客戶端的JavaScript,所以你可以用類似於XPage的方式來完成。

相關問題