Following script does what you need;

<script language="js">

function pad(number) {
        var r = String(number);
        if ( r.length === 1 ) {
                r = '0' + r;
        }
        return r;
   }

now = new Date();
  isoString =   now.getUTCFullYear()
   + '-' + pad( now.getUTCMonth() + 1 )
   + '-' + pad( now.getUTCDate() )
   + 'T' + pad( now.getUTCHours() )
   + ':' + pad( now.getUTCMinutes() )
   + ':' + pad( now.getUTCSeconds() )
   + '.' + String( (now.getUTCMilliseconds()/1000).toFixed(3) ).slice( 2, 5
)
   + 'Z';
    print(isoString);

</script>

This is based on the answer from [1].

[1] https://community.oracle.com/thread/2607436?start=0&tstart=0

Thanks,
Raj.

On Tue, Mar 29, 2016 at 5:16 PM, Lakmini Chathurika <lakm...@wso2.com>
wrote:

> Hi Nirodha
>
> Thanks for the quick response. I'll try using it.
>
> Thanks & Regards
> Lakmini.
>
>
> On Tue, Mar 29, 2016 at 9:36 PM, Nirodha Gallage <niro...@wso2.com> wrote:
>
>> Hi Lakmini,
>>
>> Javascript library comes with WSO2 ESB does not support all the
>> functions, only a limited set of basic functions are supported. That's what
>> causing this error. But I think you can use some of the functions as
>> mentioned in [1] to read elements of the date and then construct the date
>> as the way you want.
>>
>> [1] http://javascript.info/tutorial/datetime-functions
>>
>> Thanks
>>
>> On Tue, Mar 29, 2016 at 9:15 PM, Lakmini Chathurika <lakm...@wso2.com>
>> wrote:
>>
>>> Hi All,
>>>
>>> I'm trying to convert a javaScript  date (Eg: Tue Mar 29 2016 20:48:38
>>> GMT+0530 (IST)) in to ISO date format (Eg:2016-03-29T15:21:09.701Z) using
>>> ESB Script mediator. For the conversion I used  "toISOString()" [1] method.
>>> But I got the following error.
>>>
>>> [2016-03-29 20:38:56,681] ERROR - ScriptMediator The script engine
>>> returned an error executing the inlined js script function mediate
>>> com.sun.phobos.script.util.ExtendedScriptException:
>>> org.mozilla.javascript.EcmaError: TypeError: Cannot find function
>>> toISOString. (<Unknown Source>#2) in <Unknown Source> at line number 2
>>>     at
>>> com.sun.phobos.script.javascript.RhinoCompiledScript.eval(RhinoCompiledScript.java:68)
>>>     at javax.script.CompiledScript.eval(CompiledScript.java:92)
>>>     at
>>> org.apache.synapse.mediators.bsf.ScriptMediator.mediateForInlineScript(ScriptMediator.java:300)
>>>     at
>>> org.apache.synapse.mediators.bsf.ScriptMediator.invokeScript(ScriptMediator.java:239)
>>>     at
>>> org.apache.synapse.mediators.bsf.ScriptMediator.mediate(ScriptMediator.java:207)
>>>     at
>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
>>>     at
>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
>>>     at
>>> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)
>>>     at
>>> org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185)
>>>     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>>     at
>>> org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:395)
>>>     at
>>> org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142)
>>>     at
>>> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
>>>     at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>>     at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>     at java.lang.Thread.run(Thread.java:745)
>>> Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot find
>>> function toISOString. (<Unknown Source>#2)
>>>     at
>>> org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3350)
>>>     at
>>> org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3340)
>>>     at
>>> org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3356)
>>>     at
>>> org.mozilla.javascript.ScriptRuntime.typeError1(ScriptRuntime.java:3368)
>>>     at
>>> org.mozilla.javascript.ScriptRuntime.notFunctionError(ScriptRuntime.java:3428)
>>>     at
>>> org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2052)
>>>     at
>>> org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:117)
>>>     at org.mozilla.javascript.gen.c6028._c0(<Unknown Source>:2)
>>>     at org.mozilla.javascript.gen.c6028.call(<Unknown Source>)
>>>     at
>>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
>>>     at
>>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
>>>     at org.mozilla.javascript.gen.c6028.call(<Unknown Source>)
>>>     at org.mozilla.javascript.gen.c6028.exec(<Unknown Source>)
>>>     at
>>> com.sun.phobos.script.javascript.RhinoCompiledScript.eval(RhinoCompiledScript.java:55)
>>>     ... 15 more
>>>
>>> Proxy:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <proxy xmlns="http://ws.apache.org/ns/synapse";
>>>        name="testproxy"
>>>        transports="https,http"
>>>        statistics="disable"
>>>        trace="disable"
>>>        startOnLoad="true">
>>>    <target>
>>>       <inSequence>
>>>          <script language="js">var d=new Date();
>>>     var isoFormat = d.toISOString();
>>>     print(isoFormat);</script>
>>>       </inSequence>
>>>    </target>
>>>    <description/>
>>> </proxy>
>>>
>>> Are there any limitations in ESB Script Mediator or am I doing something
>>> wrong here?
>>> Any help is greatly appreciated.
>>>
>>> [1].http://www.w3schools.com/jsref/jsref_toisostring.asp
>>>
>>> Thanks & Regards
>>> Lakmini.
>>>
>>
>>
>>
>> --
>>
>> *Nirodha Gallage*
>> Associate Technical Lead, QA.
>> WSO2 Inc.: http://wso2.com/
>> Mobile: +94716429078
>>
>
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Rajkumar Rajaratnam
Committer & PMC Member, Apache Stratos
Software Engineer, WSO2

Mobile : +94777568639
Blogs : wso2tech.blogspot.com, wso2tech.wordpress.com
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to