Here's a simple script to add a particular event detector to all data points identified by either a static or a query watchlist:

var xidPrefix = "ED_15m_status_"; //Used to see if a point already has the detector
var watchListXid = "WL_5275e48f-5819-4971-8462-0d1ed8ea8264"; //Identify the points to add to

var dataPoints = JSON.parse(JsonEmport.getConfiguration("dataPoints")).dataPoints;
var watchLists = JSON.parse(JsonEmport.getConfiguration("watchLists")).watchLists;

function findByXid(list, xid) {
    for( var k = 0; k < list.length; k+=1 )
        if( list[k].xid === xid )
            return list[k];
    return undefined;

var wl = findByXid(watchLists, watchListXid);
if(typeof wl === 'undefined')
    throw "Couldn't find watchlist with XID " + watchListXid + " to add detectors to";

var importPoints = [];
function addDetectorToDataPoint(dp) {
    for( var l = 0; l < dp.eventDetectors.length; l+=1 ) {
        if(dp.eventDetectors[l].xid.startsWith(xidPrefix)) //Don't add it twice
    var ed = { //Gotten by configuring one and exporting it
               "state": (dp.textRenderer.type === "BINARY" 
                      && dp.textRenderer.oneLabel === "Device Ok")
    //Note that compatibility is not being checked, but it should just fail
    // the individual points during the import if isn't a binary point.

if(wl.type === 'static') {
    //Okay, just look over an XID list
    for(var j = 0; j < wl.dataPoints.length; j+=1) {
        var dp = findByXid(dataPoints, wl.dataPoints[j]);
} else if(wl.type === 'query') {
    //Okay, use the query to get the data points from the DataPointQuery
    var addToPoints = DataPointQuery.query(wl.query);
    for(var j = 0; j < addToPoints.length; j+=1) {
        var dp = findByXid(dataPoints, addToPoints[j].getXid());

//Mango 3.5 will allow us to
//JsonEmport.setImportDuringValidation( true );


In Mango 3.5 there will be a way to tell the JsonEmport utility to run even during validation, but for now this script would have to actually run to perform the import.