Welcome To Support Community

Pipeline Pilot and BIOVIA Foundation

Advanced Search
Ask Search:
How can I create a shorter protocol link ?
instead of http://server:9944/webport/default/main.htm?protocol=Protocols/Web%20Services/SomeFolder/MyProtocol
I would like to have a shortcut, something like http://server/myprotocol

Thanks !!

Best Answer chosen by Cypryan (Symyx Technologies, Inc.) 
Michael Peeler (BIOVIA)Michael Peeler (BIOVIA)
If you just want a link to run the protocol, you can use:




or, if you like cryptic,


using the GUID of the protocol. You can find a protocol's GUID by opening the protocol in the PLP client and looking in the Information tab (switch on from the View > Component Windows menu if necessary). Click on the line "Component Type GUID" and select+copy the GUID value from the Help panel.

Another way to approach this is to create a routing layer in a package configuration, where you can map any URL to your protocol, or maybe a whole family of REST URLs to multiple protocols. This is described in the RESTful Web Services Guide in the Developer section of the Help Center. Actually, that also covers the information above. It also covers the various URL query string parameters you can use to determine how the results of the protocol are to be passed back to the caller.

HOWEVER, your URL was explicitly running the protocol inside Web Port, and if you want to stick with that approach, then I think you have to invoke Web Port with your protocol referenced in the query string. I think the shortest you could make it is:


using the GUID, but you may not like to see the GUID in the Web Port GUI!

You could also defne your own aliases, using a package-based extension to the apache httpd.conf file, but I don't know if you really want to go that far?

Anyway, that's about all I can think of right now!
Dear all,

I am currently packaging a few applications in Pipeline Pilot and wondered if there is a way to add dependencies for installation of a package that also includes version numbers to ensure the correct functioning of the package. 
How can I achieve this, currently I only seem to be able to define dependencies using the vendor/packagname syntax. 

If not yet available it would be a nice add-on for future releases of Pipeline Pilot.


Best Answer chosen by peter.schmidtke
AlyonaAlyona (BIOVIA) 
Dear Peter,

Thank you for the request. The enhancement is scheduled for a future release, PPP-40318.

Kind regards,
I'm trying to perform a POST method to a RESTful API web service that is expecting an accompanying tab-delimited text file upload.
Using curl this would be done using the [-T, --upload-file] option but I'm no sure if the HTTP Connector provides the same functionality.

Any pointers would be much appreciated
Thanks very much
Best Answer chosen by TMagnay
Hi - I've solved this for my immediate use case.

To use the HTTP Connector to transmit a file I used the Binary Reader component to read in teh file , piped that into the HTTP Connector and made the binary data the content of the Request Body.

HTTP Connector Parameter Settings:
HTTP Body Content: Send Request Body
Request Body: Binary
Content Type: text/plain --- this would change depending on the content of the file being transfered

To capture the response from the Web Service I used the Data from XML component in hte method largely analogous to what is described in the Biovia Web Services documentation. I did add an 'Additional Allowed Response' in the HTTP Connector so that I could parse "Bad Request" responses without the component generating an error.

Randy StegbauerRandy Stegbauer 
I clicked on a component in PP Pro Client 2016 and selected "Find Usage".

It displayed many nonexistent protocols.  When I click on one of them, it reports "Can not find the item "Protocols/foo/Bar" in protocol database pp_server.com.  It might have been deleted, renamed or moved."  This error message *is* true.  I did delete or rename or move these.

My question is *why* would they show up at all then?  I restarted the PP Apache server, but that didn't do anything.  My concern is that if *old* ones are showing up here then maybe the usages that actually exist are *not* showing up.

Thank you,
Randy Stegbauer
Best Answer chosen by Randy Stegbauer
LynnLynn (Accelrys) 
The catalog search indexing properties are set up in the admin portal web page.  How frequently is your app catalog set up to reindex?  What is the status of the last indexing build? Does it improve if you choose the option to rebuild now and wait for the indexing to complete?
I am currently setting up a PP 2017R2 server with LDAP connected authentication by using Kerberos on a RHEL 7 machine. Kerberos has been configured on the system and is working just fine (I can login with my AD accounts on the linux box).
In the Authentication/Security Settings of the Pipeline Pilot server I clicked Allow SPNEGO (Kerberos) and didn’t change any other settings.
I can now login to the Server with my pipeline Pilot Client with my AD credentials.
However, when I want to access the admin page for example (or whatever other web resource) I get a popup window asking me to authentify (screenshot attached)

I tried every possible login/pw local and AD account and nothing works. I can only click cancel and the popup disappears and then I can use the classical web login (shown below the popup) where authentication works.
I noticed that this popup only shows up when I activate the Kerberos Authentication in the PP admin page.
How can I get rid of this authentication Popup ?
Thanks in advance

Best Answer chosen by peter.schmidtke
Stephen PickettStephen Pickett
Hi Peter
We had the same issue when this setting was on with previous versions of PP. We use PAM to access our LDAP rather than touching the default machine authentication. In this case you can turn off Kerberos and the pop up disappears.

We are using AEP9.2.

I have a series of data records output from a protocol (HTTP Connector > Data From JSON > Flatten Heirachy)

Example JSON is shown below. The Flatten Heirarchy has a Select parameter "/generic/text/*" and it produces a series of data records:

ar: name:"Arabic"; dir: "rtl"
bg: name" "Bulgarian"; dir: "lrt"

What I want is to access the data record "names", i.e. the values "ar" and "bg" for the two records above.

I thought this would be available as metadata for the data root of each record but it wasn't there.

How can I obtain these values (using Pilotscript or otherwise)?

{"text":{"ar":{"name":"Arabic","dir":"rtl"},"bg":{"name":"Bulgarian","dir":"ltr"},"bs":{"name":"Bosnian","dir":"ltr"},"ca":{"name":"Catalan","dir":"ltr"},"cs":{"name":"Czech","dir":"ltr"},"cy":{"name":"Welsh","dir":"ltr"},"da":{"name":"Danish","dir":"ltr"},"de":{"name":"German","dir":"ltr"},"el":{"name":"Greek","dir":"ltr"},"en":{"name":"English","dir":"ltr"},"es":{"name":"Spanish","dir":"ltr"},"et":{"name":"Estonian","dir":"ltr"},"fa":{"name":"Persian","dir":"rtl"},"fi":{"name":"Finnish","dir":"ltr"},"fr":{"name":"French","dir":"ltr"},"he":{"name":"Hebrew","dir":"rtl"},"hi":{"name":"Hindi","dir":"ltr"},"hr":{"name":"Croatian","dir":"ltr"},"ht":{"name":"Haitian Creole","dir":"ltr"},"hu":{"name":"Hungarian","dir":"ltr"},"id":{"name":"Indonesian","dir":"ltr"},"it":{"name":"Italian","dir":"ltr"},"ja":{"name":"Japanese","dir":"ltr"},"ko":{"name":"Korean","dir":"ltr"},"lt":{"name":"Lithuanian","dir":"ltr"},"lv":{"name":"Latvian","dir":"ltr"},"ms":{"name":"Malay","dir":"ltr"},"mt":{"name":"Maltese","dir":"ltr"},"mww":{"name":"Hmong Daw","dir":"ltr"},"nb":{"name":"Norwegian","dir":"ltr"},"nl":{"name":"Dutch","dir":"ltr"},"otq":{"name":"Querétaro Otomi","dir":"ltr"},"pl":{"name":"Polish","dir":"ltr"},"pt":{"name":"Portuguese","dir":"ltr"},"ro":{"name":"Romanian","dir":"ltr"},"ru":{"name":"Russian","dir":"ltr"},"sk":{"name":"Slovak","dir":"ltr"},"sl":{"name":"Slovenian","dir":"ltr"},"sr-Cyrl":{"name":"Serbian (Cyrillic)","dir":"ltr"},"sr-Latn":{"name":"Serbian (Latin)","dir":"ltr"},"sv":{"name":"Swedish","dir":"ltr"},"sw":{"name":"Kiswahili","dir":"ltr"},"th":{"name":"Thai","dir":"ltr"},"tlh":{"name":"Klingon","dir":"ltr"},"tr":{"name":"Turkish","dir":"ltr"},"uk":{"name":"Ukrainian","dir":"ltr"},"ur":{"name":"Urdu","dir":"rtl"},"vi":{"name":"Vietnamese","dir":"ltr"},"yua":{"name":"Yucatec Maya","dir":"ltr"},"zh-Hans":{"name":"Chinese Simplified","dir":"ltr"},"zh-Hant":{"name":"Chinese Traditional","dir":"ltr"}}}
Best Answer chosen by chris.pudney1.4219763645279993E12
AndreiAndrei (BIOVIA) 
Hi Chris,

I would rather use the Detach Nodes component with '/generic/text/*' as the Select parameter. This way, you get 51 records out, one for each language. Then, to get the two-letter name, which will be the type of the root node of each record, you can use a bit of PilotScript in a Custom Manipulator:

language := nodetype(DataRoot());

I hope this helps.


What's the syntax required to pass an array -tpe parameter when using hte runjob.pl functionality.
Syntax for a simple parameter is as below:

http://<PPserver>/perlbin/runjob.pl?_protocol=<Prtotocol Name>&<MyParam>=<MyValue>&__QuickRun=true

How should I modify this to pass an array for the <MyValue>? Maybe <MyValue1,MyValue2,...> or <MyValue1|MyValue2|...>?
Is it even possible - the alternative would be to pass a string containng multiple values and have the protocol resolve that into an array.

Thanks in advance,
Best Answer chosen by TMagnay
If you pass in the parameter multiple times, the protocol sees an array of values:

http://<PPserver>/perlbin/runjob.pl?_protocol=<Prtotocol Name>&<MyParam>=<MyValue1>&<MyParam>=<MyValue2>&<MyParam>=<MyValue3>&__QuickRun=true

You could also pass in a set of delimited values and expand the results explicitly in the protocol.

I've made some changes to the httpd.conf file at 

However occasionally it seems to regenerate and lose the changes, changing back to the default install one. This is not too much of an issue as I can simply detect reverse the changes. However it would be helpful to know what events can cause the regernation and why. 
It does not seem to correspond to apache or server restarts. I know SSL certificate updates can trigger it, along with some changes to settings in ther admin portal. However the file regernates recently without either of these occuring.

Does anyone know what else can trigger it?


Best Answer chosen by Joe_B
Hi Joe,

The httpd.conf get reissue from time to time. Instead please try to deploy your additional directives under
<PP>\web\conf\. Any .conf file under that directory will be acknowledge by by the server on reboot and will remain untouch even when the server configuration gets reissue.

Another advantage of it is that you can use that .conf file in other servers, as long as makes sense.

And to your question ./Dbutil -t will regenerate the httpd.conf from its template. This is an internal mechanism and should not be modified.

Use the alternative <PP>\web\conf location for your additional directives as proposed above.

This is maybe beyond the scope of the component and more of an R scripting problem - I have very little R experience - but... Is it possible or has anyone managed to adapt the "R mixture Plot" component to plot multiple data sets on the same plot?

Ideally, I'd like overlay these four plots but so far haven't had any success

User-added image

Input data attached.
Best Answer chosen by murray.robertson

I did not see an attachment with your data, so I am attaching a protocol with some fake data to show how to do this. Basically, you send all data sets into the component, and define a color property with a different value for each set. Then set the "Color Property" parameter on the component to the name of this property.