trigger: upload file and run workflow

I am software developer at BioSolveIT and responsible for our PP Components: http://www.biosolveit.de/PipelinePilot/,

I think this Community is a very importent platform to share technical knowledge which helps to make customers work productive.

The aim of integrating our software into PP was to enable easy integration into complex workflows.

Once a workflow protocol is created, there are various ways to access to it:

  • GUI (PP Client)
  • Webbrowser (Web Port)
  • Command Line (RunProtocol.exe)
  • Web Service (SOAP)

The idea now is to trigger the run of an existing protocol on PP Server in a generic way, using a file on the Client (desktop for example...) and finally view the results.

My current Solution is:

  1. Using CommandLine tool RunProtocol.exe, because it's a very genric way (available to Windows and Linux out of the box).
  2. A custom Upload Protocol, basically using "Copy to Server" Component is used to upload the file from user client to PP Server.
    • RunProtocol.exe "upload.xml" -gui 1 -p "ClientFile=C:\Users\Edgar\Desktop\query.mol2" -p "Destination=\$(UserDir)\query.mol2"

  1. Finally the uploaded file now is available to existing protocols as input:
    • RunProtocol.exe "SearchDataBase.xml" -gui 1 -p "Query=\$(UserDir)\query.mol2"
  2. Notes:
    • To create such protocols read PP Help "Running Protocols from Command Line", basically you need to promote the key parameters (use "promote parameter" feature when editing Component paramemters)!
    • The option "-gui 1" is needed to wait until I/O is finished, when uploading file or viewing results.
  3. Problems:
    • "Copy To Server" Component does not work when PP Client and PP Server running both on same machine. (Here the "Copy File" Component can be used in addition)
    • "Copy To Server" Component does not work when using RunProtocol.exe on Linux Client and the PP server is running on Windows. (Here the "Copy File from Remote Host (SCP)" Component, where remote host is our linux client, can be used in addition) [As long as PP Clients are only available to windows, this scenario is not important]
    • Notes: The Error handling, using multiple copy components, must be set to "Send Data out the Fail Port".

Questions to Community:

  • Can you additional experiences to my upload file and run protocol Solution?
  • Are there other ways to upload a file? For example: How would this look like if using SOAP? Or is there a Web Port feature to trigger upload?