2017-02-10 214 views
0

谷歌腳本功能我遇到了麻煩,觸發編輯功能時調用Workato REST API軟件從簡單基地接收數據,並在谷歌電子表格輸入。觸發與REST API請求

以下代碼自動分類說明在谷歌電子表格選項卡。

function onPost(){ 
 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 
    
 
    var ApprovedTab = ss.getSheetByName("APPROVED"); 
 
    var CollateralPending = ss.getSheetByName("COLLATERAL PENDING"); 
 
     var InProcessing = ss.getSheetByName("IN PROCESSING"); 
 
      var InClosing = ss.getSheetByName("IN CLOSING"); 
 
        var funded = ss.getSheetByName("FUNDED"); 
 
    
 
    
 
var ApprovedTabRange = ApprovedTab.getRange("A2:T99"); 
 
    var CollateralPendingRange = CollateralPending.getRange("A2:T99"); 
 
     var InProcessingRange = InProcessing.getRange("A2:T99"); 
 
     var InClosingRange = InClosing.getRange("A2:T99"); 
 
      var fundedRange = funded.getRange("A2:T99"); 
 
    
 
ApprovedTabRange.sort({ column : 1, ascending: true }); 
 
    CollateralPendingRange.sort({ column : 1, ascending: true }); 
 
    InProcessingRange.sort({ column : 1, ascending: true }); 
 
    InClosingRange.sort({ column : 1, ascending: true }); 
 
    fundedRange.sort({ column : 1, ascending: true }); 
 
    
 
}

當我嘗試使用onEdit代替onPOST等的並手動更新的行在電子表格中,它由ID欄排序行。

當我嘗試onPOST等,併發送從Workato一個更新請求,谷歌腳本功能不運行並且導致它不排序行。

任何幫助,將不勝感激。

謝謝

+0

你說你正在試圖調用onPOST等與REST調用。這是否意味着您的腳本是作爲webapp發佈的? –

+0

不,它不是。我實際上對Google腳本編程超級新手。我應該發佈它嗎?或者有什麼解決方案?謝謝 –

回答

2

如果我理解正確的,你想擁有的電子表格自動調用排序功能Workato在片編輯數據之後。

由於通過腳本或加載項進行的編輯不會生成OnEdit觸發器,因此您需要發送單獨的POST請求以在Workato更新數據後觸發電子表格中的Google Apps腳本功能。

要通過POST請求調用函數,必須命名函數「doPost()」而不是「onPost()」,然後您必須從「發佈」菜單將該腳本作爲Web應用程序發佈。

當發佈該腳本,你會想「執行爲」你,是訪問「任何人,甚至無名氏」。

發佈腳本作爲網絡應用程序允許它接收進入的GET或POST請求,通過命名doGet()doPost()功能。

在這裏看到的文檔: https://developers.google.com/apps-script/guides/web

+0

謝謝你的迴應,但它仍然沒有觸發功能。我不確定,如果我在這裏錯過了一步。 –

+0

我已經更新了我的函數,如下所示doPost,將其發佈爲webapp併發送POST請求,但仍然沒有觸發和排序函數。 爲腳本提供的URL返回一個錯誤的說法,「找不到腳本函數:的doGet」。 Altohugh我用doPost,URL說它是一個get方法。 –

+0

該URL將始終接受get和post請求,它會根據請求類型運行doPost或doGet。 –