Hi,
I have created a javascript for Switch which does some checks in Photoshop and write some text to logfiles.
It works but I get the following error:
Script returned error: /tmp/SWITCH_applescript__461e7616:236:248: execution error: Adobe Photoshop CC 2014 got an error: General Photoshop error occurred. This functionality may not be available in this version of Photoshop. - Error 45: Object is invalid.Line: 198-> if(($error == null) && ($doc != null)) (8800)
I have tried several things but can't find what is causing this error. Does anyone have an idea?
Thanks,
Raymond.
----
The Switch Photoshop element has the following settings:
- Save as: Use script
- Script file: see below
- Argument 1: [Job.NameProper:Before=_]
- Arugment 2: [Job.Path]
- Arugment 3: [Job.NameProper].[Job.Extension]
Photoshop filenames are like: 11105202_S_LD.psd, 11105203_LD.psd
----
#target photoshop
#include "/Users/admin/Documents/Photoshop_Scripts/layerMaskLib.9.js"
//Set units to pixels.
var originalUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
app.displayDialogs = DialogModes.NO
var myDoc = $doc;
var docName = myDoc.name;
var fileName = $arg3;
var itemNumber = $arg1;
var psdSource = new File($arg2);
var psdCopy = new File ("/Volumes/ServerHD2/Switch Folders/Linedrawings/01_Separate_Layers/" + fileName);
var psdError = new File ("/Volumes/ServerHD2/Switch Folders/Linedrawings/Error/" + fileName);
var logDir = '/Volumes/ServerHD2/Switch Folders/Linedrawings/Logs/';
var layerLog = new File('/Volumes/ServerHD2/Switch Folders/Linedrawings/Logs/photoshopLayers.txt');
var destFolder = "/Volumes/ServerHD2/Switch Folders/Linedrawings/01_Separate_Layers/";
//Get number of available layers
var docLayer = myDoc.artLayers;
var numberLayers = docLayer.length;
//Set photoshop save options
var psdSaveAs = new PhotoshopSaveOptions();
psdSaveAs.alphaChannels=false;
psdSaveAs.layers=true;
//Check if file contains layers and close/remove file when not.
if (numberLayers == 0) {
errorLog = new File(logDir + fileName + '_error.txt');
errorLog.open('a');
errorLog.writeln(fileName + "No layers in document");
errorLog.close();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
psdSource.remove();
}
/*Loop through alll layers to get and check their names .
Only "product", "reflection", "shadow" or 10_20_30 formatted layer names are allowed.
*/
if (numberLayers > 0) {
try{
for (var i=0; i<numberLayers; i++) {
var layer = docLayer.name;
var decoLayer = String(docLayer.name);
var splitLayerName = decoLayer.split('_');
var splitDocName = docName.split('_');
var checkMethodNumber = parseInt(splitLayerName[0]);
if (isNaN(checkMethodNumber)) {
if (layer == 'product') {
}else{
if (layer == 'shadow') {
}else{
if (layer == 'reflection') {
}else{
var coppied = psdSource.copy(psdError) ;
if (coppied == true && psdError.exists) {
errorLog = new File(logDir+fileName+'_error.txt');
errorLog.open('a');
errorLog.writeln(fileName+"; Contains layer(s) with wrong name(s)! or misses required product layer!");
errorLog.close();
myDoc.close(SaveOptions.DONOTSAVECHANGES);
psdSource.remove();
}
}
}
}
}else{
}
}
var coppied = psdSource.copy(psdCopy) ;
if (coppied == true && psdCopy.exists) {
myDoc.close(SaveOptions.DONOTSAVECHANGES);
psdSource.remove();
}
//Reset preferences to original state
app.preferences.rulerUnits = originalUnit;
}
catch (e)
{
var errorFile = new File('/Volumes/Macintosh HD/Users/admin/Documents/Logs/switch-error.log');
errorFile.open(e);
errorFile.writeln(e);
errorFile.close();
//return theError
}
}
Switch Photoshop Javascript - error 45
-
- Newbie
- Posts: 2
- Joined: Tue Feb 05, 2013 9:26 pm
-
- TOP CONTRIBUTOR
- Posts: 628
- Joined: Mon Nov 29, 2010 8:45 pm
- Location: Alpharetta GA USA
- Contact:
Switch Photoshop Javascript - error 45
Your script doesn't contain line: 198 nor does it contain the line that errored: if(($error == null) && ($doc != null))
so it appears that the problem is inside of the included script layerMaskLib.9.js
so it appears that the problem is inside of the included script layerMaskLib.9.js
-
- Newbie
- Posts: 2
- Joined: Tue Feb 05, 2013 9:26 pm
Switch Photoshop Javascript - error 45
I have removed the include, but still get the error referring to a line number not in the script.
Thanks,
Raymond.
Thanks,
Raymond.
Switch Photoshop Javascript - error 45
Probably not it, but do you have the ExtendScript Toolkit installed on that machine? I know its needed for some scripting from Switch...
Chat: open-automation @ gitter
Code: open-automation & dominickp @ GitHub
Tools: Switch, Pitstop, EPMS, Veracore, PageDNA, SmartStream, Metrix
Code: open-automation & dominickp @ GitHub
Tools: Switch, Pitstop, EPMS, Veracore, PageDNA, SmartStream, Metrix
- andrea mahoney
- Newbie
- Posts: 19
- Joined: Tue Jan 25, 2011 8:53 pm
Switch Photoshop Javascript - error 45
CC 2014 is only compatible with Switch 12 update 3. Do you have the latest update running?