2017-01-15 33 views
0

我是NS套件腳本新手。Netsuite Suitelet - 有效會話

我創建了一個外部和內部的suitelet,然後部署了兩者。

對於外部suitelet(loginform.js):

  • 我使用https://rest.netsuite.com/rest/roles並傳遞從表單的用戶名和密碼。
  • 我得到一個響應代碼200,NS返回用戶的憑證。
  • 上我用 nlapiRequestURL(url)的帖子裏 url是內部suitelet

對於內部suitelet的終點

  • (verify.js)

    • 一個簡單的功能{ var login = nlapiGetLogin(); }
    • 所以如果登錄null然後用戶登錄

    因此,如果我登錄到Netsuite並執行內部suitelet,我得到有效的登錄對象。

    但是,如果外部suitelet調用內部suitelet,就會拋出權限訪問錯誤。

    我在這裏錯過了什麼?我知道我可能沒有「有效會話」。

    我看這個「有效會話」提到了很多的開發者指南中卻無處沒有說明如何創建或獲得本次會議。

    請幫助我創建或獲取此有效的NS會話。

  • +0

    你是什麼意思'external suitelet'?根據定義,所有的suitelet都是服務器端腳本。 – k1komans

    +0

    另外,您是否檢查過外部suitelet的腳本部署記錄?需要確保'作爲角色執行'具有相應的權限來執行您想要的操作。 – k1komans

    回答

    0

    內部小程序需要用戶進行身份驗證。在這種情況下,外部小程序(Netsuite)正在調用內部小程序(也稱爲Netsuite),並且由於外部小程序從未驗證過,它將不會加載。 Suitelets的身份驗證過程旨在供瀏覽器使用,因爲它在Web界面上運行並安裝了Cookie。

    你需要做兩Suitelets外部,使他們可以相互調用,您可能要添加認證頭,以確保連接。

    另外,我建議只使用一個內部suitelet並有NetSuite的通過設置用戶的客戶,讓他們獲得和提供爲客戶角色Suitelet部署處理登錄/身份驗證。您甚至可以通過將Suitelet設置爲以管理員身份運行來繞過客戶權限。如果您不希望每個客戶都有權訪問Suitelet,那麼只需在客戶記錄上設置一個自定義字段,以指示用戶是否有權訪問該字段。