Question
Scripts Cannot Find Datasets
I'm trying to run a script that essentially does a find and replace for text in a specific variable for all data sets. However, no matter what I try, the script cannot find any datasets, even though I am able to import them, apply them, and export them as files. Any ideas? Below is my script (saved as replaceBulletScript.jsx in the same directory as my PSD):
#target photoshop
// Function to replace all occurrences of "•" with "•" in the "New-Card-Effect" variable across all datasets
function replaceBulletInAllDatasets(targetVariableName, targetString, replacementString) {
try {
// Get the active document
var doc = app.activeDocument;
// Ensure datasets exist
if (!doc.dataSets || doc.dataSets.length === 0) {
alert(
"No datasets found in the active document: " + doc.name
);
return;
}
// Iterate through all datasets
for (var i = 0; i < doc.dataSets.length; i++) {
var dataSet = doc.dataSets[i];
// Loop through the variables in the dataset
for (var j = 0; j < dataSet.dataPoints.length; j++) {
var dataPoint = dataSet.dataPoints[j];
// Check if the variable name matches the target
if (dataPoint.variable.name === targetVariableName) {
// Replace the target string in the data point's value
if (dataPoint.value.indexOf(targetString) !== -1) {
dataPoint.value = dataPoint.value.split(targetString).join(replacementString);
}
}
}
}
alert("Replacement complete for all datasets with variable name: " + targetVariableName);
} catch (e) {
alert("An error occurred: " + e.message);
}
}
// Main execution
replaceBulletInAllDatasets("New-Card-Effect", "•", "•")
