Hi All,
Is there anyway we can execute the javascript in workbench?
or is there any method to convert javascript to adobe script(execute script activity)?
Actually i have written javascript in live cycle designer while pdf designing. now i want the same javascript at server end.
Kindly someone help me to get this functionality.
Regards
Abhishek
Views
Replies
Total Likes
The Execute Script service will run code in Java. This is not Adobe script.
Jasmin
Views
Replies
Total Likes
Hi Jasmin,
Thanks for your quick reply.
I have a javascript which generate sha1hash output for input string.
I am getting an error while executing it in workbench.
If i want to use same algorithm in execute script how can i able to use it.
How should i convert this code in java?
Please find the javascript below for sha1hash algorithm
function sha1Hash(msg)
{
// constants [§4.2.1]
var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
// PREPROCESSING
msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1]
// convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1]
var l = msg.length/4 + 2; // length (in 32-bit integers) of msg + ‘1’ + appended length
var N = Math.ceil(l/16); // number of 16-integer-blocks required to hold 'l' ints
var M = new Array(N);
for (var i=0; i<N; i++) {
M[i] = new Array(16);
for (var j=0; j<16; j++) { // encode 4 chars per integer, big-endian encoding
M[i][j] = (msg.charCodeAt(i*64+j*4)<<24) | (msg.charCodeAt(i*64+j*4+1)<<16) |
(msg.charCodeAt(i*64+j*4+2)<<8) | (msg.charCodeAt(i*64+j*4+3));
}
}
// add length (in bits) into final pair of 32-bit integers (big-endian) [5.1.1]
// note: most significant word would be (len-1)*8 >>> 32, but since JS converts
// bitwise-op args to 32 bits, we need to simulate this by arithmetic operators
M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14])
M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;
// set initial hash value [§5.3.1]
var H0 = 0x67452301;
var H1 = 0xefcdab89;
var H2 = 0x98badcfe;
var H3 = 0x10325476;
var H4 = 0xc3d2e1f0;
// HASH COMPUTATION [§6.1.2]
var W = new Array(80); var a, b, c, d, e;
for (var i=0; i<N; i++) {
// 1 - prepare message schedule 'W'
for (var t=0; t<16; t++) W[t] = M[i][t];
for (var t=16; t<80; t++) W[t] = ROTL(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);
// 2 - initialise five working variables a, b, c, d, e with previous hash value
a = H0; b = H1; c = H2; d = H3; e = H4;
// 3 - main loop
for (var t=0; t<80; t++) {
var s = Math.floor(t/20); // seq for blocks of 'f' functions and 'K' constants
var T = (ROTL(a,5) + f(s,b,c,d) + e + K[s] + W[t]) & 0xffffffff;
e = d;
d = c;
c = ROTL(b, 30);
b = a;
a = T;
}
// 4 - compute the new intermediate hash value
H0 = (H0+a) & 0xffffffff; // note 'addition modulo 2^32'
H1 = (H1+b) & 0xffffffff;
H2 = (H2+c) & 0xffffffff;
H3 = (H3+d) & 0xffffffff;
H4 = (H4+e) & 0xffffffff;
}
return H0.toHexStr() + H1.toHexStr() + H2.toHexStr() + H3.toHexStr() + H4.toHexStr();
}
//
// function 'f' [§4.1.1]
//
function f(s, x, y, z)
{
switch (s) {
case 0: return (x & y) ^ (~x & z); // Ch()
case 1: return x ^ y ^ z; // Parity()
case 2: return (x & y) ^ (x & z) ^ (y & z); // Maj()
case 3: return x ^ y ^ z; // Parity()
}
}
//
// rotate left (circular left shift) value x by n positions [§3.2.5]
//
function ROTL(x, n)
{
return (x<<n) | (x>>>(32-n));
}
//
// extend Number class with a tailored hex-string method
// (note toString(16) is implementation-dependant, and
// in IE returns signed numbers when used on full words)
//
Number.prototype.toHexStr = function()
{
var s="", v;
for (var i=7; i>=0; i--) { v = (this>>>(i*4)) & 0xf; s += v.toString(16); }
return s;
}
Please reply for this
Thanks in advance.
Views
Replies
Total Likes
Hi,
I am some similar type of issue. Can i access control of the form from execute script on workbench.
Like i want to hide a button on form before rendering it to client's browser. let me know how can we access a perticular control on form before rendering it
--
Thanks & Regards
Sunil Gupta
Senior System Engineer
Infosys Technologies Ltd | Hyderabad, India
Mob:+ 91 9705666502
Views
Replies
Total Likes
I don't believe that the Execute Script service will execute JavaScript. I'm fairly certain it is actually Java BeanShell.
If you were really keen on executing JS, you could probably develop a custom component that executed JS, but you may be better off porting your code to regular Java.
Views
Replies
Total Likes
Hi Matt,
Thanks for your suggestions
How can i create cusom component in live cycle workbench which execute javascript?
I have read following link which help to create your own activity in workbench but i have no idea to execute javascript in java too
http://www.adobe.com/devnet/livecycle/articles/dsc_development.html
Please send me some important link to execute javascript in java or in adobe live cycle
Views
Replies
Total Likes
Hello,
I would probably start by getting familiar with DSC development, the link you point to will help. A DSC is basically just a POJO (plain old java object) wrapped with some special packaging that allows it to be deployed to the LC DSC container. Once you have that sorted, you could use a Java based JS interpreter like Mozilla Rhino (http://www.mozilla.org/rhino/) within the DSC to interpret the JS that you would assign to the DSC in your process.
Alternatively, if this is more or less a localized requirement to execute some JS, and you won't be doing it time and time again... I'd suggest just porting your Javascript to pure Java, and run it via the Execute Script service, or even create a DSC that specifically serves the same purpose as your script does. This approach will perform better at scale as well.
Good luck, and keep us apprised of your progress. There are lots of folks watching these forms that can probably help you out with DSC development questions.
-matt
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies