Google Sheets セル値の更新

指定した Google Sheets の対象シートの対象セルを指定したデータ項目の値で更新します。通信ログは、文字型データ項目に格納されます。

    A. OAuth2通信許可設定名 (←[OAuth 2.0 設定])単一行記述必須
    B. Spreadsheet ID が格納されている文字列型or選択肢型データを選択してくださいデータ項目選択文字列型(単一行)or選択型(ラジオ/セレクト/検索)必須
    C. Sheet の名前が格納されている文字列型データor選択肢型データを選択してくださいデータ項目選択文字列型(単一行)or選択型(ラジオ/セレクト/検索)必須
    D. 更新セルの座標が格納されている文字列型or選択肢型データを選択してください (例 "A1")データ項目選択文字列型(単一行)or選択型(ラジオ/セレクト/検索)必須
    E. セルを更新するデータが格納されているデータ項目を選択してくださいデータ項目選択文字列型or選択型(ラジオ/セレクト/検索)or数値型or日付型or日時型orユーザ型or組織型必須
    X. 通信ログが格納される文字列型データを選択してください (更新)データ項目選択文字列型(複数行)
    -設定変数名設定ラベル
    Aconf_OAuth2OAuth2通信許可設定名 (←[OAuth 2.0 設定])
    Bconf_DataIdBSpreadsheet ID が格納されている文字列型or選択肢型データを選択してください
    Cconf_DataIdCSheet の名前が格納されている文字列型データor選択肢型データを選択してください
    Dconf_DataIdD更新セルの座標が格納されている文字列型or選択肢型データを選択してください (例 "A1")
    Econf_DataIdEセルを更新するデータが格納されているデータ項目を選択してください
    Xconf_DataIdX通信ログが格納される文字列型データを選択してください (更新)
    // Google Spreadsheets Value Update via Sheets API v4 (ver. 20170828)
    // (c) 2017, Questetra, Inc. (the MIT License)
    
    ////// == 工程コンフィグの参照 / Config Retrieving ==
    var oauth2  = configs.get( "conf_OAuth2" ) + "";
    // Convert from 'java.lang.String' to 'JavaScript string' by '+""'
    var dataIdB = configs.get( "conf_DataIdB" ) + ""; // Data Identification Number (e.g. "9")
    var dataIdC = configs.get( "conf_DataIdC" ) + ""; 
    var dataIdD = configs.get( "conf_DataIdD" ) + "";
    var dataIdE = configs.get( "conf_DataIdE" ) + "";
    var dataIdX = configs.get( "conf_DataIdX" ) + "";
    
    ////// == ワークフローデータの参照 / Data Retrieving ==
    var fileId = ""; // e.g. "1PEZ5KEZc0RkUn7AbAe2lYaHXzbJ9jnZ2swIWPszRz6U"
    if( engine.findDataDefinitionByNumber( dataIdB ).matchDataType( "STRING_TEXTFIELD" ) ){
      fileId = data.get( dataIdB ) + ""; // convert to JavaScript string
    }else if( engine.findDataDefinitionByNumber( dataIdB ).matchDataType( "SELECT_SINGLE" ) ){
      fileId = data.get( dataIdB ).get(0).getValue() + "";
    }
    var sheetTitle = ""; // e.g. "Sheet1"
    if( engine.findDataDefinitionByNumber( dataIdC ).matchDataType( "STRING_TEXTFIELD" ) ){
      sheetTitle = data.get( dataIdC ) + "";
    }else if( engine.findDataDefinitionByNumber( dataIdC ).matchDataType( "SELECT_SINGLE" ) ){
      sheetTitle = data.get( dataIdC ).get(0).getValue() + "";
    }
    var cellCoordinate = ""; // e.g. "A1"
    if( engine.findDataDefinitionByNumber( dataIdD ).matchDataType( "STRING_TEXTFIELD" ) ){
      cellCoordinate = data.get( dataIdD ) + "";
    }else if( engine.findDataDefinitionByNumber( dataIdD ).matchDataType( "SELECT_SINGLE" ) ){
      cellCoordinate = data.get( dataIdD ).get(0).getValue() + "";
    }
    var updateValue = "";
    if( engine.findDataDefinitionByNumber( dataIdE ).matchDataType( "SELECT_SINGLE" ) ){
      updateValue = data.get( dataIdE ).get(0).getValue() + "";
    }else{
      updateValue = data.get( dataIdE ) + "";
    }
    
    ////// == 演算 / Calculating ==
    // preparing for API Request
    var apiRequest = httpClient.begin(); // HttpRequestWrapper
    
    // preparing for API Request (OAuth2 Access Token)
    var token = httpClient.getOAuth2Token( oauth2 );
    apiRequest = apiRequest.bearer( token );
    
    // preparing for API Request (Path parameters)
    var apiUri = "https://sheets.googleapis.com/v4/spreadsheets/";
      apiUri += fileId + "/values/" + sheetTitle + "!" + cellCoordinate;
    
    // preparing for API Request (Query parameters)
    apiRequest = apiRequest.queryParam( "valueInputOption", "USER_ENTERED" );
    
    // preparing for API Request (JSON Body)
    var requestObj = {};
      requestObj.values = [];
      requestObj.values[0] = [];
      requestObj.values[0][0] = updateValue;
    apiRequest = apiRequest.body( JSON.stringify( requestObj ), "application/json" );
    
    // PUT Request to the API
    var response = apiRequest.put( apiUri ); // HttpResponseWrapper
    var statusCode = response.getStatusCode() + "";
    var accessLog = "";
    accessLog += "---PUT request--- " + statusCode + "\n";
    accessLog += response.getResponseAsString() + "\n";
    
    // Retrieve Properties from Response-JSON
    // (no action)
    
    ////// == ワークフローデータへの代入 / Data Updating ==
    if( dataIdX !== "" ){
      retVal.put( dataIdX, accessLog );
    }
    

    • B’: Bで選択したデータ項目に格納されている Google Spreadsheet のID *
    • C’: Cで選択したデータ項目に格納されているシート名 (Sheet Title)
    • D’: Dで選択したデータ項目に格納されている更新セルの座標
    • E’: Eで選択したデータ項目に格納されているセルを更新するデータ
    • Spreadsheet B’ の Sheet C’ のセル D’ を E’ の値で更新します
    • 通信ログが X で選択したデータ項目に格納されます
    • * https://docs.google.com/spreadsheets/d/1exampleEXAMPLEexampleEXAMPLEexampleEXAMPLE0/edit#gid=0