How to pass parameter(s) to timed trigger function in library script

后端 未结 1 1984
忘了有多久
忘了有多久 2020-12-17 18:31

I have created a function which trigger every after 30 mins, and I want to pass some parameter. I have one library which returns carHistory, and my spreadsheet from where I

相关标签:
1条回答
  • 2020-12-17 19:18

    Properties are a not-shared resource; each script has their own set of Properties which are not shared with other scripts. This behaviour affects how you can handle properties in a Library, as described in Resource Scoping.

    A not-shared resource means that both library and the including script have built-in access only to their instance of the resource. However, a library can provide access to its not-shared resources by having explicit functions that operate on them.

    In other words; the library's not-shared properties can be exposed to the main script by library functions.

    This function can be used to set up the operating parameters for your library trigger function:

    /**
     * Set name,value pairs of parameters for library function.
     *
     * @param {Object}  parameters  Object with named properties to be
     *                              used as library function parameters.
     */
    function setParameters( parameters ) {
      var props = PropertiesService.getUserProperties();
      for (var key in parameters) {
        var value = parameters[key];
        props.setProperty(key, value);
      }
    }
    

    You'd use it like this:

    function startOnce(){
      var uProps = {
        'Maker':'Honda',
        'Number':'US-xxx'
      });
    
      Library1.setParameters(uProps);
      Library1.carHistory();
    }
    
    0 讨论(0)
提交回复
热议问题