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.
