admin管理员组文章数量:1130349
I have build an Sheets Add-on Which performs a task based on trigger setup by user So the problem is that User sets triggers for multiple sheets e.g Sync
the trigger is executed but only for 1st trigger in the list of triggers not all
The PROBLEM IS only one trigger is being triggered for all of the setup triggers
Logs for one trigger & the same logs comes for all triggers
Active Trigger: -5962537404932988746 for function: fetchSynctriggerWithDetails
Active Trigger: -9139074510508922527 for function: fetchSynctriggerWithDetails
Active Trigger: -1495623190131824397 for function: fetchSynctriggerWithDetails
Active Trigger: -1224866675796805716 for function: fetchSynctriggerWithDetails
Active Trigger: 1983234386806141271 for function: fetchSynctriggerWithDetails
Active Trigger: -8082155554848723508 for function: fetchSynctriggerWithDetails
Response: {"success":true,"triggerDetails":{"trigger_id":"-5962537404932988746","sheet_name":"SKU","databaseid":"1","trigger_time":"1hour"}}
so the problem is it has all the triggers but it always run for
Response: {"success":true,"triggerDetails":{"trigger_id":"-5962537404932988746","sheet_name":"SKU","databaseid":"1","trigger_time":"1hour"}}
Because it can;t find var triggerId = currentTrigger.getUniqueId(); for each trigger & each time it returns -5962537404932988746 as current trigger ID
which is wrong
ANY HELP IS APPRECIATED
function createSyncTrigger() {
/// all the setup for setting up trigger
// I am also saving trigger in PropertiesService
PropertiesService.getScriptProperties().setProperty(triggerId, JSON.stringify(triggerDetails));
}
Code snippet to fetch trigger details
function getTriggerDetailsSync() {
var triggers = ScriptApp.getProjectTriggers();
// Log all active triggers for debugging
triggers.forEach(trigger => {
Logger.log('Active Trigger: ' + trigger.getUniqueId() + ' for function: ' + trigger.getHandlerFunction());
});
//var currentTrigger = triggers.find(trigger => trigger.getHandlerFunction() === 'fetchSynctriggerWithDetails');
// Get the current trigger that invoked this function
var currentTrigger = ScriptApp.getProjectTriggers().find(trigger =>
trigger.getHandlerFunction() === 'fetchSynctriggerWithDetails'
);
if (!currentTrigger) {
Logger.log('No trigger found for fetchSynctriggerWithDetails');
return null;
}
var triggerId = currentTrigger.getUniqueId();
}
I have build an Sheets Add-on Which performs a task based on trigger setup by user So the problem is that User sets triggers for multiple sheets e.g Sync
the trigger is executed but only for 1st trigger in the list of triggers not all
The PROBLEM IS only one trigger is being triggered for all of the setup triggers
Logs for one trigger & the same logs comes for all triggers
Active Trigger: -5962537404932988746 for function: fetchSynctriggerWithDetails
Active Trigger: -9139074510508922527 for function: fetchSynctriggerWithDetails
Active Trigger: -1495623190131824397 for function: fetchSynctriggerWithDetails
Active Trigger: -1224866675796805716 for function: fetchSynctriggerWithDetails
Active Trigger: 1983234386806141271 for function: fetchSynctriggerWithDetails
Active Trigger: -8082155554848723508 for function: fetchSynctriggerWithDetails
Response: {"success":true,"triggerDetails":{"trigger_id":"-5962537404932988746","sheet_name":"SKU","databaseid":"1","trigger_time":"1hour"}}
so the problem is it has all the triggers but it always run for
Response: {"success":true,"triggerDetails":{"trigger_id":"-5962537404932988746","sheet_name":"SKU","databaseid":"1","trigger_time":"1hour"}}
Because it can;t find var triggerId = currentTrigger.getUniqueId(); for each trigger & each time it returns -5962537404932988746 as current trigger ID
which is wrong
ANY HELP IS APPRECIATED
function createSyncTrigger() {
/// all the setup for setting up trigger
// I am also saving trigger in PropertiesService
PropertiesService.getScriptProperties().setProperty(triggerId, JSON.stringify(triggerDetails));
}
Code snippet to fetch trigger details
function getTriggerDetailsSync() {
var triggers = ScriptApp.getProjectTriggers();
// Log all active triggers for debugging
triggers.forEach(trigger => {
Logger.log('Active Trigger: ' + trigger.getUniqueId() + ' for function: ' + trigger.getHandlerFunction());
});
//var currentTrigger = triggers.find(trigger => trigger.getHandlerFunction() === 'fetchSynctriggerWithDetails');
// Get the current trigger that invoked this function
var currentTrigger = ScriptApp.getProjectTriggers().find(trigger =>
trigger.getHandlerFunction() === 'fetchSynctriggerWithDetails'
);
if (!currentTrigger) {
Logger.log('No trigger found for fetchSynctriggerWithDetails');
return null;
}
var triggerId = currentTrigger.getUniqueId();
}
Share
Improve this question
edited Dec 26, 2024 at 1:09
Wicket
38k9 gold badges77 silver badges188 bronze badges
asked Dec 25, 2024 at 9:18
Parduman RanaParduman Rana
5210 bronze badges
1 Answer
Reset to default 1I somehow fixed it using events
// Func Called in the Trigger
// passing events to getTriggerDetailsimport func
function fetchTableDataWithDetails(e) {
var triggerDetails = getTriggerDetailsimport(e);
if (!triggerDetails) {
Logger.log('No trigger details found.');
return;
}
}
//USING EVENT TO GET CURRENT TRIGGER
function getTriggerDetailsimport(e) {
if (!e || !e.triggerUid) {
Logger.log('Error: No event object or triggerUid found.');
return null;
}
var triggerId = e.triggerUid; // Get the unique ID of the active trigger
Logger.log('Active Trigger ID: ' + triggerId);
}
& it works for each event of trigger i get correct trigger ID
//LOGS for some trigger events Active Trigger ID: 1983234386806141271 Active Trigger ID: -8082155554848723508 Active Trigger ID: -5962537404932988746
SO FINALLY IT WORKS
I have build an Sheets Add-on Which performs a task based on trigger setup by user So the problem is that User sets triggers for multiple sheets e.g Sync
the trigger is executed but only for 1st trigger in the list of triggers not all
The PROBLEM IS only one trigger is being triggered for all of the setup triggers
Logs for one trigger & the same logs comes for all triggers
Active Trigger: -5962537404932988746 for function: fetchSynctriggerWithDetails
Active Trigger: -9139074510508922527 for function: fetchSynctriggerWithDetails
Active Trigger: -1495623190131824397 for function: fetchSynctriggerWithDetails
Active Trigger: -1224866675796805716 for function: fetchSynctriggerWithDetails
Active Trigger: 1983234386806141271 for function: fetchSynctriggerWithDetails
Active Trigger: -8082155554848723508 for function: fetchSynctriggerWithDetails
Response: {"success":true,"triggerDetails":{"trigger_id":"-5962537404932988746","sheet_name":"SKU","databaseid":"1","trigger_time":"1hour"}}
so the problem is it has all the triggers but it always run for
Response: {"success":true,"triggerDetails":{"trigger_id":"-5962537404932988746","sheet_name":"SKU","databaseid":"1","trigger_time":"1hour"}}
Because it can;t find var triggerId = currentTrigger.getUniqueId(); for each trigger & each time it returns -5962537404932988746 as current trigger ID
which is wrong
ANY HELP IS APPRECIATED
function createSyncTrigger() {
/// all the setup for setting up trigger
// I am also saving trigger in PropertiesService
PropertiesService.getScriptProperties().setProperty(triggerId, JSON.stringify(triggerDetails));
}
Code snippet to fetch trigger details
function getTriggerDetailsSync() {
var triggers = ScriptApp.getProjectTriggers();
// Log all active triggers for debugging
triggers.forEach(trigger => {
Logger.log('Active Trigger: ' + trigger.getUniqueId() + ' for function: ' + trigger.getHandlerFunction());
});
//var currentTrigger = triggers.find(trigger => trigger.getHandlerFunction() === 'fetchSynctriggerWithDetails');
// Get the current trigger that invoked this function
var currentTrigger = ScriptApp.getProjectTriggers().find(trigger =>
trigger.getHandlerFunction() === 'fetchSynctriggerWithDetails'
);
if (!currentTrigger) {
Logger.log('No trigger found for fetchSynctriggerWithDetails');
return null;
}
var triggerId = currentTrigger.getUniqueId();
}
I have build an Sheets Add-on Which performs a task based on trigger setup by user So the problem is that User sets triggers for multiple sheets e.g Sync
the trigger is executed but only for 1st trigger in the list of triggers not all
The PROBLEM IS only one trigger is being triggered for all of the setup triggers
Logs for one trigger & the same logs comes for all triggers
Active Trigger: -5962537404932988746 for function: fetchSynctriggerWithDetails
Active Trigger: -9139074510508922527 for function: fetchSynctriggerWithDetails
Active Trigger: -1495623190131824397 for function: fetchSynctriggerWithDetails
Active Trigger: -1224866675796805716 for function: fetchSynctriggerWithDetails
Active Trigger: 1983234386806141271 for function: fetchSynctriggerWithDetails
Active Trigger: -8082155554848723508 for function: fetchSynctriggerWithDetails
Response: {"success":true,"triggerDetails":{"trigger_id":"-5962537404932988746","sheet_name":"SKU","databaseid":"1","trigger_time":"1hour"}}
so the problem is it has all the triggers but it always run for
Response: {"success":true,"triggerDetails":{"trigger_id":"-5962537404932988746","sheet_name":"SKU","databaseid":"1","trigger_time":"1hour"}}
Because it can;t find var triggerId = currentTrigger.getUniqueId(); for each trigger & each time it returns -5962537404932988746 as current trigger ID
which is wrong
ANY HELP IS APPRECIATED
function createSyncTrigger() {
/// all the setup for setting up trigger
// I am also saving trigger in PropertiesService
PropertiesService.getScriptProperties().setProperty(triggerId, JSON.stringify(triggerDetails));
}
Code snippet to fetch trigger details
function getTriggerDetailsSync() {
var triggers = ScriptApp.getProjectTriggers();
// Log all active triggers for debugging
triggers.forEach(trigger => {
Logger.log('Active Trigger: ' + trigger.getUniqueId() + ' for function: ' + trigger.getHandlerFunction());
});
//var currentTrigger = triggers.find(trigger => trigger.getHandlerFunction() === 'fetchSynctriggerWithDetails');
// Get the current trigger that invoked this function
var currentTrigger = ScriptApp.getProjectTriggers().find(trigger =>
trigger.getHandlerFunction() === 'fetchSynctriggerWithDetails'
);
if (!currentTrigger) {
Logger.log('No trigger found for fetchSynctriggerWithDetails');
return null;
}
var triggerId = currentTrigger.getUniqueId();
}
Share
Improve this question
edited Dec 26, 2024 at 1:09
Wicket
38k9 gold badges77 silver badges188 bronze badges
asked Dec 25, 2024 at 9:18
Parduman RanaParduman Rana
5210 bronze badges
1 Answer
Reset to default 1I somehow fixed it using events
// Func Called in the Trigger
// passing events to getTriggerDetailsimport func
function fetchTableDataWithDetails(e) {
var triggerDetails = getTriggerDetailsimport(e);
if (!triggerDetails) {
Logger.log('No trigger details found.');
return;
}
}
//USING EVENT TO GET CURRENT TRIGGER
function getTriggerDetailsimport(e) {
if (!e || !e.triggerUid) {
Logger.log('Error: No event object or triggerUid found.');
return null;
}
var triggerId = e.triggerUid; // Get the unique ID of the active trigger
Logger.log('Active Trigger ID: ' + triggerId);
}
& it works for each event of trigger i get correct trigger ID
//LOGS for some trigger events Active Trigger ID: 1983234386806141271 Active Trigger ID: -8082155554848723508 Active Trigger ID: -5962537404932988746
SO FINALLY IT WORKS
本文标签: javascriptHow to get current activetriggered trigger ID Stack Overflow
版权声明:本文标题:javascript - How to get current activetriggered trigger ID , - Stack Overflow 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/questions/1735954554a1366379.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论