2012-08-25 22 views
0

問:爲什麼e.parameter.wfId未定義(日誌)上運行下面的腳本(作爲web應用程序)e.parameter未定義

我把劇本這個URL

https://script.google.com/a/macros/gappspro.com/exec?service=my-webapp-key 後不帶參數(& wfId = somecharacters)

function doGet(e) { 

    var app = UiApp.createApplication().setTitle('Workflow Builder'); 

    var mainGrid = app.createGrid(2,1).setId('FILE_doGet_mainGrid'); 

    app.add(mainGrid); 

    var wfId = '1234567890' // FILE.doGet.randomString(); 

    mainGrid.setWidget(1,0, app.createTextBox().setValue(wfId).setId('wfId').setName('wfId')); 

    var handler = app.createServerHandler('func'); 
    handler.addCallbackElement(mainGrid); 

    Logger.log(e.parameter.wfId);  

    return app; 
    } 

function func(e) { 
    return x; 
} 

我想實現從詹姆斯·費雷拉的書企業應用要點的第8章的工作流腳本,並在添加文件部分我跑進proble m在運行腳本時未定義「var wfRowArray = FILE.ssOps.getWfRowFromSS(e.parameter.wfId)」行中的e.parameter.wfId。 (本書第134頁,不是PDF)。 在上面的示例中,我將代碼帶回了導致錯誤的實質,...對我來說。

回答

0

e.parameter.wfId只在你的func(e)函數中可用,而不在doGet中。變量e表示處理函數捕獲的callBackElement的元素。

+0

謝謝!正如我所提到的,我試圖實現james ferreira的企業應用程序基礎知識第8章中的工作流程腳本,並且在「添加文檔」部分中遇到了問題:e.parameter.wfId在「var wfRowArray = FILE」行中。 「ssOps.getWfRowFromSS(e.parameter.wfId)」在運行腳本時未定義。 (本書第134頁,不是PDF)。 我無法弄清楚我做錯了什麼。 我完全按照本書完成,在執行callbackelement之前,在doGet(e)函數本身中調用e.parameter.wfId。 – Pjotr

+0

對不起,我沒有注意到你的帖子的第一行中的網址......它確實也是一樣的e ;-),這個假設來自url本身 –

0

如果我已經正確理解你的問題,這是行爲的預期。 你說的 「H-載荷大小://script.google.com/a/macros/gappspro.com/exec服務=不帶參數的MY-webapp的鍵(& wfId = somecharacters)」

所以,我相信您沒有將任何URL參數傳遞給腳本URL,因此您將它們定義爲未定義。

如果調用的URL參數腳本,說 H-載荷大小://script.google.com/a/macros/gappspro.com/exec服務= MY-web應用& wfId = somecharacters 那麼你可以期待看到e.parameter.wfld