Hi Suresh

You’re right. I used one String with commas for the input of ForEach.
What do you mean that “You should change the inputs bwdFqFile and bwdSaiFile to 
String Arrays”?
Do you mean I have to change the definition of web service argument(bwdFqFile 
and bwdSaiFile) to StringArray Type?
Or
Do you mean I have to insert not “a comma separated string” but some other 
format of “String Arrays” when executing workflow?
I wonder “String Arrays” means a string with space character for separation.

Shinyoung.
From: Suresh Marru [mailto:[email protected]]
Sent: Wednesday, April 10, 2013 11:11 AM
To: [email protected]
Subject: Re: Question on ForEach

Hi Shinyoung,

Couple of things. You are using String and using Foreach, so it is assumed as 
one string with comas in it. You should change the inputs bwdFqFile and 
bwdSaiFile inputs to String Arrays.

Suresh

On Apr 9, 2013, at 4:38 AM, 안신영 <[email protected]<mailto:[email protected]>> 
wrote:


Hi Suresh.
This is Another questions different from my previous emails.

I am tring to use ForEach component.
I have register a service ‘bwa_aln_bwd’ which works well when I do not use 
ForEach component.
The output type of bwa_aln_bwd is URI type.

<image001.png>

Next, I compose a new workflow using ForEach, EndForEach component.
<image002.png>

When I executed as follows, I gave “/home/team/genome/Demo/sample_1.fq.00, 
/home/team/genome/Demo/sample_1.fq.01” as input_3
and “/home/team/genome/DemoOut/sample_1.fq.00.sai, 
/home/team/genome/DemoOut/sample_1.fq.01.sai” as input_4

<image003.png>
But Airavata show ‘Error Invoking API’

Error messages are

org.apache.airavata.client.api.AiravataAPIInvocationException: Error invoking 
API
at 
org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:228)
at 
org.apache.airavata.client.impl.ExecutionManagerImpl.runExperiment(ExecutionManagerImpl.java:80)
at 
org.apache.airavata.xbaya.ui.experiment.WorkflowInterpreterLaunchWindow$3.run(WorkflowInterpreterLaunchWindow.java:322)
Caused by: org.apache.airavata.workflow.model.component.ComponentException: 
could not find definition for type 
{http://airavata.apache.org/xbaya/Workflow1/xsd/}URIParameterTypeArrayType in 
{http://airavata.apache.org/xbaya/Workflow1/}Workflow1
at 
org.apache.airavata.workflow.model.component.ws.WSComponent.parseType(WSComponent.java:468)
at 
org.apache.airavata.workflow.model.component.ws.WSComponent.parseMessage(WSComponent.java:398)
at 
org.apache.airavata.workflow.model.component.ws.WSComponent.parseOperation(WSComponent.java:369)
at 
org.apache.airavata.workflow.model.component.ws.WSComponent.parsePortType(WSComponent.java:353)
at 
org.apache.airavata.workflow.model.component.ws.WSComponent.parse(WSComponent.java:345)
at 
org.apache.airavata.workflow.model.component.ws.WSComponent.<init>(WSComponent.java:132)
at 
org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:136)
at 
org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:110)
at org.apache.airavata.workflow.model.wf.Workflow.getInputs(Workflow.java:484)
at 
org.apache.airavata.client.impl.ExecutionManagerImpl.getWSComponentPortInputs(ExecutionManagerImpl.java:268)
at 
org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:185)
... 2 more

I expected that ForEach read StringArray, EndForEach wrote URIArray type.
I thought I don’t need to specify URIArray type as application parameter 
because ForEach, EndForEach hand Array type.

Any comment will be beneficial.
Thanks in advance.

Shinyoung.
From: Suresh Marru [mailto:[email protected]<http://apache.org>]
Sent: Friday, April 05, 2013 9:19 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: Another Question on parallel execution!

Hi Shinyoung,

Just drop both the applications in parallel and do not connect them. There can 
be multiple independent paths in the workflow and Airavata will execute them in 
parallel. If you connect the edges (inputs/outputs) then it assumes data 
dependency. You can connect the corners on the nodes which will be shown as 
dotted lines that will create control dependencies -- that is even if you do 
not have data dependency, execute one after another. But your case is simple, 
just have them mutually independent.

Suresh

On Apr 5, 2013, at 5:00 AM, 안신영 <[email protected]<mailto:[email protected]>> 
wrote:



Hi guys!

Let’s assume that a workflow contains several works(services). Some works are 
independent with each other, some works are dependent some other works.
Dependency mean that a work should be executed after another dependent work’s 
completion.
In this case, How can I configure some independent work to be executed 
simultaneously?
I will run this workflow in HPC cluster.

Regards,
Shinyoung.


Reply via email to