Page 1 of 1

Switch Photoshop Javascript - error 45

Posted: Tue Feb 03, 2015 4:33 pm
by rvandermueren
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

Posted: Tue Feb 03, 2015 4:49 pm
by dkelly
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

Switch Photoshop Javascript - error 45

Posted: Tue Feb 03, 2015 5:07 pm
by rvandermueren
I have removed the include, but still get the error referring to a line number not in the script.



Thanks,

Raymond.

Switch Photoshop Javascript - error 45

Posted: Wed Feb 04, 2015 6:53 pm
by gabrielp
Probably not it, but do you have the ExtendScript Toolkit installed on that machine? I know its needed for some scripting from Switch...

Switch Photoshop Javascript - error 45

Posted: Thu Feb 05, 2015 8:10 pm
by andrea mahoney
CC 2014 is only compatible with Switch 12 update 3. Do you have the latest update running?