hilfdirselbst.ch
Facebook Twitter gamper-media
"Funktioniert nicht" ist keine hinreichende Fehlerbeschreibung.
Meister Propper S
Beiträge: 1283
24. Jan 2018, 01:30
Beitrag #1 von 1
Bewertung:
(269 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Count, JavaScript, Delegate


Ich habe hier ein Script was sehr gut für eine Sammelfreigabe funktioniert! Leider finde ich keine Variable was diese Routine umgeht. (Delegate)

Diese JS Node ist ein Bestandteil von einem Workflow.

Irgendeine Idee?

// framework
function solve_variables(html,row) {
var ret = '';
var idx = -1;
var lastidx = 0;
while ((idx=html.indexOf('${',idx+1))>=0) {
ret += html.substring(lastidx,idx);
var idx2 = html.indexOf('}',idx+1);
if (idx2>=0) {
var keys = html.substring(idx+2,idx2).split('.');
var val = row;
for (var i=1; i<keys.length;i++) {
val = val[keys];
}
ret += val;
lastidx = idx2+1;
}
else lastidx = idx;
}
ret += html.substring(lastidx);
return ret;
}

// set-up
var item_email_html = 'cloudflow://Temp/alpri_item_email.html';

// script
var emailok = true;
var itemhtml = '';
var fp = getParameters().files[0].split('/');

if (getParameters().variables.multiapproval!==undefined && getParameters().variables.multiapproval._id!==undefined) {
emailok = false;
var ret = custom_objects.list('multiapproval',['_id','equal to',getParameters().variables.multiapproval._id]);

if (ret.results!==undefined && ret.results.length>0) {

// define here all variables that you need to display in the email for each item
var it = {
filename:fp[fp.length-1],
filepath:getParameters().files[0],
proofscope_url:getParameters().variables.proofscope_url,
intern_proofscope_url:getParameters().variables.intern_proofscope_url
};

//
ret.results[0].counter++;
ret.results[0].items[ret.results[0].items.length] = it;
emailok = (ret.results[0].counter === ret.results[0].files.length);
if (emailok) {
custom_objects.delete('multiapproval',ret.results[0]._id);

// Sorting of the filenames
ret.results[0].items.sort(function(a, b){
var filenameA=a.filename.toLowerCase(), filenameB=b.filename.toLowerCase()
if (filenameA < filenameB) //sort string ascending
return -1
if (filenameA > filenameB)
return 1
return 0 //default return value (no sorting)
});

for (var i=0; i<ret.results[0].items.length; i++)
itemhtml += solve_variables(file.read_string(item_email_html).contents,ret.results[0].items);
console.log(itemhtml);
}
else custom_objects.update('multiapproval',ret.results[0]);
}
console.log(getParameters().files[0]);
console.log(emailok);
}
if (itemhtml==='') {
var obj = {
filename:fp[fp.length-1],
filepath:getParameters().files[0],
proofscope_url:getParameters().variables.proofscope_url,
intern_proofscope_url:getParameters().variables.intern_proofscope_url
};
itemhtml += solve_variables(file.read_string(item_email_html).contents,obj);
}
setResults({variables:{emailok:emailok,itemhtml:itemhtml}});
(Dieser Beitrag wurde von Meister Propper am 24. Jan 2018, 01:34 geändert)
Top
 
X