Announcement

LabKey Support Forum
mauricio2016-12-07 06:30mauricio2016-12-13 06:28 Error: Data source "labware" has not been configured HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello! I am interested in having Labkey 16.3 in production alongside the modules 'workflow' and 'Genotyping'. Build a development machine with IntelliJ IDEA, in Ubuntu 16.04, following the tutorial:

https://www.labkey.org/home/Documentation/wiki-page.view?name=build

Running Labkey from the application (IntelliJ IDEA, in Debug or Run mode) everything works correctly, only when it starts it shows me a Warning:

"WARN DefaultModule 2016-12-07 09:35:03,148 localhost-startStop-1 : Module "HDRL" requires a data source called "labwareDataSource". It's not configured, so it will be created against the primary labkey database ("labkey") instead."

See Warning in Labkey01.png (Attached file).

Now, when I build the project and put it into production, I get an error when I want to delete folders (delete projects):

'Data source "labware" has not been configured'

See attached file: labkey02.png

Can anybody help me? Thanks! Mauricio

Melissa Laurie2011-08-26 09:03Jon (LabKey DevOps)2015-04-28 22:02 Custom Menus Showing Entire Page HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Can we create a custom menu with only 1 page linked to the top level menu choice? We have figured out how to make the custom menus work when there are multiple pages (see menu2.bmp for a screenshot) However when we only have one page to link the top level menu, we get that entire linked page showing up when you try to link it to the top level item. See menu1.bmp for a screen shot. Is there a fix other than creating multiple linking pages? Thanks
jdutra2013-09-23 09:01Jon (LabKey DevOps)2015-04-28 22:08 Bug in Data View? HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a query with a saved custom view. When we click on the custom view name in the Data Views webpart, we get the default view of the query instead. There appears to be an error in the URL that is generated by the Data Views. Here's the URL from Data Views (gives default view):

https://blis.urmc.rochester.edu/labkey/query/RPRC/Studies%20%26%20Labs/12-0047%20Healthy%20Vol/executeQuery.view?schemaName=study&query.queryName=SpecimenQC&Dataset.viewName=Specimen%20QC%20-%20Errors%20List

and here's the URL from Manage Views (works correctly):

https://blis.urmc.rochester.edu/labkey/query/RPRC/Studies%20%26%20Labs/12-0047%20Healthy%20Vol/executeQuery.view?schemaName=study&query.queryName=SpecimenQC&query.viewName=Specimen%20QC%20-%20Errors%20List

Notice the part I have bolded - the Data Views webpart seems to be incorrectly referring to the query as a dataset.

Thanks for your help! Jen
mauricio2016-12-13 06:48Jon (LabKey DevOps)2016-12-16 13:02 On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined" HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello! I am interested in having Labkey 16.3 in production. I have a development machine with IntelliJ IDEA, in Ubuntu 16.04.

Running Labkey from the application (IntelliJ IDEA, in Debug or Run mode) everything works correctly.

Now, when I build the project and put it into production, I get an error when I want to Submit new messages. I press SUBMIT button and the message is not load. In Chrome console I get the next error:

Uncaught TypeError: Cannot read property 'validate' of undefined insert.view?returnUrl=%2Flabkey%2Fproject%2Fhome%2Fbegin.view%3F:620

        at HTMLFormElement.onsubmit (insert.view?returnUrl=%2Flabkey%2Fproject%2Fhome%2Fbegin.view%3F:620)

        at submitForm (internal.min.js?1928029702:1)

        at HTMLAnchorElement.onclick (insert.view?returnUrl=%2Flabkey%2Fproject%2Fhome%2Fbegin.view%3F:640)

See Error in MessageError.png (Attached file).

Can anybody help me again?

Thanks!

Mauricio

kevink2010-01-19 15:25Jon (LabKey DevOps)2015-04-28 21:54 Firefox 3.5 now supported for Selenium testing of LabKey HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good news: you can run the selenium tests using Firefox 3.5 now!

Some of us have been using Firefox 3.5 for a few weeks and haven't noticed any issues running the tests.  If you run into any problems, please let us know.  The issue was with extra spaces appearing in the 'class' attribute in some of our xpaths.  Some change in FF 3.5 was causing the extra spaces to appear in the class attribute after using javascript to toggle the class (say from 'labkey-button' to 'labkey-disabled-button').  Normalizing the spaces in the xpath fixed the problem.

If you'd like to run tests against both FF 3.0 and 3.5, you can switch between them by either using the FIREFOX_HOME environment variable or setting the "selenium.browser" ant property on the command line.  For example,

ant drt "-Dselenium.browser=*firefox3 c:\Program Files\Mozilla Firefox3\firefox.exe"

Or you can set FIREFOX_HOME in your environment:

;; stop the server if it is running to pick up the new environment
ant stopSeleniumServer
FIREFOX_HOME=c:\Program Files\Mozilla Firefox3
ant drt

To use the second form, you'll have to stop the selenium server before the new environment will be picked up.

Kevin
jdutra2013-05-21 08:49Jon (LabKey DevOps)2015-04-28 22:07 Specimen QC HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I would like to be able to flag certain specimens upon import, either by explicitly setting the flags in the tsv file, or via a query that identifies vials and flags them (similar to the way I can set up queries that determine "Requestability Rules" and mark vials accordingly). The excerpt below (from the help documentation) implies that this might be possible, but I can't figure out how to do it. Could someone point me in the right direction?

Thanks! Jen

Vials or primary specimens that meet user-specified protocol-specific criteria are flagged. Examples of QC problems that could be detected with this method include: A saliva specimen present in a protocol that only collects blood (indicating a possibly incorrect protocol or primary type). Primary specimen aliquoted into an unexpectedly large number of vials, based on protocol expectations for specimen volume (indicating a possibly incorrect participantID, visit, or type for one or more subset of vials).
Brian Connolly2014-05-28 17:19Greg Taylor2014-06-04 16:52 Examples of using Python to work with LabKey Server HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Here at LabKey, I regularly use Python to create tools for managing the servers we use. I often use the LabKey Server Python API to interact with the LabKey Servers we are running. However, in a few instances I have been forced to write code to interact with a LabKey Server in ways not yet supported by the Python API.

Eventually this code might be included in the Python API, but until that happens I decided to share a few examples of what can be done.

  • upload_file.py
    • This script shows you how to upload a file from your workstation to the FileRoot of a Folder on your LabKey Server
    • How do I use this functionality?
      • LabKey uses AWS Spot Instances when running the servers used to test LabKey Server. These Spot Instances are started using a Python script which tracks each request in a log file. To make cost accounting easier, each start/stop of a Spot Instance is tracked in a List. When the script finishes the log file is uploaded to the FileRoot of the Folder containing the List and the URL of the uploaded file is included in the List record.
  • download_study_archive.py
    • This script shows you how to create a Study Archive and download the resulting Archive (in the form of a ZIP file) to your workstation.
    • How do I use this functionality?
      • I use a similar script to periodically move Study data from one LabKey Server to a second LabKey Server.

NOTE: These scripts are checked into the LabKey/Samples repository at Github. This repository is used by LabKey to share tools/scripts with the LabKey Server community. It currently contains scripts for the install and upgrade of a LabKey Server and the python scripts described above. Keep an eye on it for additional scripts that are coming soon.

slangley@scharp.org2014-02-24 19:07Greg Taylor2014-02-25 18:46 Building 14.1 from trunk source HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to build LabKey 14.1 (from trunk) and I'm running into this problem:

/local_static/IdeaProjects/labkey_trunk/server/build.xml:1226: The following error occurred while executing this line:
/local_static/IdeaProjects/labkey_trunk/server/build.xml:1343: Could not read filters from file /local_static/IdeaProjects/labkey_trunk/server/module.properties as it doesn't exist.

Is there a particular revision number or branch I should try?

Thanks.

jlumpe2015-02-21 17:50avital2015-02-24 13:20 How to upload files to LabKey asynchronously HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'd like to have the user upload some files to LabKey using a custom view. These would be placed in the file system in the standard way, just like when you upload them yourself using the FileContent module, but I don't want the user to see or have control over where they are uploaded. According to this PDF I found it looks like it's possible to do so with a POST request to a URL like "/labkey/_webdav/ProjectName/%40files/path/" or something but I haven't been able to figure it out. Basically I just want to render a view with a file input, with a button that uploads the file to a given folder the user has no control over. Is it possible?
Brian Connolly2014-12-15 14:20avital2014-12-15 15:06 Using the LabKey Server Client APIs if the SSLv3 protocol has been disabled on your LabKey Server HTMLClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
With the announcement, earlier this fall, of the POODLE vulnerability in SSLv3 a number of IT departments are starting to mandate that SSLv3 be disabled on all SSL based web servers. We have been testing the connectivity of the Client APIs to LabKey Servers where the SSLv3 protocol has been disabled. Here is what we found:

JAVA

The JAVA Client API works correctly and no changes were necessary.

JavaScript

The JavaScript Client API works correctly and no changes were necessary.

Rlabkey

The current version of the Rlabkey package(v2.1.126) is unable to connect to a LabKey Server with the SSLv3 protocol disabled. We are currently working on a fix to the problem which we expect to release it with LabKey Server v15.1 in March 2015 (See Issue 21891).

In the meantime, there is a workaround which allows the Rlabkey package to connect to a LabKey Server with the SSLv3 protocol disabled. The workaround is to add the following command to each of your R scripts or to your R session

labkey.setCurlOptions(sslversion=1)

Once set, this command tells R not to use SSLv3. Instead R will use the TLSv1+ protocol for all connections to a SSL server.

Perl

The current version of the Perl Client API package(v1.04) is unable to connect to a LabKey Server with the SSLv3 protocol disabled. We are currently working on a fix to the problem which we expect to release it with LabKey Server v15.1 in March 2015 (See Issue 22146).

Python

The Python Client API (v0.22 and earlier) was unable to connect to a LabKey Server with the SSLv3 protocol disabled. LabKey has released an update to the Python client API to fix the problem. The new version (v0.23), released in November, has been updated to fix this problem.

If you are seeing an error message similar to

urllib2.URLError: <urlopen error [Errno 1] _ssl.c:507: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure>

when using the Python API, you can upgrade the Python API to fix the problem. To upgrade you will need to download the latest version of the Python API (via LabKey Server download site) and follow in the installation instructions.

Brian Pratt2009-09-15 12:49Jon (LabKey DevOps)2018-11-16 23:23suggestions for enterprise pipeline network architecture?suggestions for enterprise pipeline network architecture? HTMLClosed     LabKey Support Forum
An important thing about AWS, as you point out, is the fact that IP addresses and FQDNs shift whenever you take an instance down and replace it with another (well, there are elastic IPs etc, but set that aside for now). Thus there are things like this: (from https://www.labkey.org/wiki/home/Documentation/page.view?name=configureFtp) Configuring LabKey Server to use the FTP Server Finally, you need to tell LabKey Server that there is a FTP server that it should tell users about. Go to the Site Settings (Manage Site->Admin Console->site settings). In the Configure File System Server section, fill in the server name and the port for the FTP server. If you have set up SSL on your FTP server, check the box. What's the proper way to do this programatically? I'd rather not hand users a list of manual steps for restarting a cluster (or for that matter for building an initial LabKey AMI). Thanks, Brian
Dave Bradlee2013-05-31 11:10Jon (LabKey DevOps)2018-11-16 23:24Specimen QCSpecimen QC HTMLClosed     LabKey Support Forum
It's actually not possible to specify a query on specimen import that would set QC flags. Also, there's no column on import that causes QC flags to be set. You can use the quality_comments column on import and those values will be put into the vial.LatestQualityComments field, but it does not cause QC flags to be set.
trent2012-04-22 22:48Jon (LabKey DevOps)2018-11-16 23:23Specifying PK On Query with a JoinSpecifying PK On Query with a Join HTMLClosed     LabKey Support Forum
Scrap this. I now realise you can (obviously) only define metadata for columns directly in the select definition. Sorry for the bump. Is there a trick when there is no join? i.e. How do I reference columns in linked tables - can't seem to get this to work.
Nick Kerr2011-03-25 07:44Jon (LabKey DevOps)2018-11-16 23:24something causing custom themes to be deleted?something causing custom themes to be deleted? HTMLClosed     LabKey Support Forum
Thanks for raising this issue. I've created a bug report and I'm working on a repro.
kevink2010-03-09 13:55Jon (LabKey DevOps)2018-11-16 23:23possible to delete records from an assay?possible to delete records from an assay? HTMLClosed     LabKey Support Forum
No, only entire runs can be deleted from an assay via the web UI. If you are using the client api you can remove results rows from the runs and re-save (see LABKEY.Assay.saveBatch())
Nick Kerr2012-09-05 13:39Jon (LabKey DevOps)2018-11-16 23:24LabKey Ext JS 4 JavaScript APIsLabKey Ext JS 4 JavaScript APIs HTMLClosed     LabKey Support Forum
Hi Scott,

1. We've implemented an experimental feature for ExtJS documentation moving forward that uses JSDuck (thanks to your recommendation). It's not available in production environments but you can access it by turning it on under "Admin Console" > "Experimental Features" > "JavaScript Documentation" in your local instance. When we do have public API wrapped for ExtJS 4+ components we will expose these docs publicly.

2. Currently, the classes found in internal/webapp/extWidgets are not considered part of our publicly supported API and as such I would not recommend using them for production environment apps.

In the case of the Ext4Store I'd recommend using our JavaScript Query API and populating data stores directly.

3. First, I'd recommend trying to use our dependency loading structure implemented in 12.2. See our documentation here. Second, the Ext.Loader will work you just have to ensure to configure it before use. See the Ext 4 docs on Ext.Loader.setConfig().

Thanks,
Nick
jeckels2015-02-22 01:12Jon (LabKey DevOps)2018-11-16 23:24How to upload files to LabKey asynchronouslyHow to upload files to LabKey asynchronously HTMLClosed     LabKey Support Forum
Hello, Yes, that's quite possible. There's some example code in the documentation here: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Exp.Data.html#constructor It shows both uploading a file directly from the user's file system, as well as uploading a text file that the user pasted into a form field or similar. Thanks, Josh
bill c white2014-02-19 18:43Jon (LabKey DevOps)2018-11-16 23:24Ext.MessageBox in SelectRows Callback?Ext.MessageBox in SelectRows Callback? HTMLClosed     LabKey Support Forum
If I add an alert after the message box, I see both on the screen until the hide at the end of the function. What should 'animEl' be? Maybe the message box is being rendered on another layer/container brought back by the alert but not there without it? // debugger; Ext.MessageBox.show({ msg: 'Please wait...', progressText: 'Loading...', width:300, wait:true, waitConfig: {interval:200}, //animEl: 'mb3' }); alert("After the Ext message box");
Ben Bimber2014-02-19 18:52Jon (LabKey DevOps)2018-11-16 23:24Ext.MessageBox in SelectRows Callback?Ext.MessageBox in SelectRows Callback? HTMLClosed     LabKey Support Forum
I think you might be able to simplify that to: Ext.Msg.wait('Loading...'); wait() will handle a lot of this config automatically for you. I typically only use the convenience methods of Ext.MessageBox like alert() or wait(). If I want to make any other sort of window, I'd typically do directly to an Ext Window. My guess is animEl is an element that should be used to animate showing the window (it looks like it grows from that element).
Jon (LabKey DevOps)2016-09-26 21:48Jon (LabKey DevOps)2018-11-16 23:23Difference between PHI and Protected in GUI.Difference between PHI and Protected in GUI. HTMLClosed     LabKey Support Forum

Hi Ariel,


Per our XML docs:

Protected: Protected columns are those that contain protected or identifiable information about participants, such as internal participant IDs, transplant dates, birth dates, etc.

PHI: Can be used to annotate a column with one of four PHI levels. Note that the LabKey Server code ignores this setting, but custom modules can implement special handling of PHI levels if they require it.

So PHI in this case is not about protecting the data, but about a PHI level that gets assigned. Currently, the Argos Project that is used by the Fred Hutch has multiple PHI levels that are used (source: https://www.labkey.org/home/Documentation/wiki-page.view?name=argosTour)



So if you need a field to be individually protected, you could use the protected XML tag or the UI (https://www.labkey.org/home/Documentation/wiki-page.view?name=propertyFields)

Regards,

Jon

balter2016-09-26 22:17Jon (LabKey DevOps)2018-11-16 23:23Difference between PHI and Protected in GUI.Difference between PHI and Protected in GUI. HTMLClosed     LabKey Support Forum
Thanks Jon. We have been tagging with both phi and protected because we weren't sure of the difference. Sounds like all we need is protected to make sure they don't get exported or published. Would it be correct to say that tagging in the .query.xml has the same effect as selecting protected in the "Edit Definition" GUI under Dataset Properties?
marki2011-08-26 09:19Jon (LabKey DevOps)2018-11-16 23:24Custom Menus Showing Entire PageCustom Menus Showing Entire Page HTMLClosed     LabKey Support Forum
There isn't currently an option to have a menu that is just a *link* to another page. The menu item always shows a web part (often a wiki page) when you hover over it. The best current solution is to make a menu that has a small abbreviated page containing a link or links. There is some work underway in 11.3 that might offer an option for a link directly in the menu bar.
Greg Taylor2014-02-25 16:01Jon (LabKey DevOps)2018-11-16 23:24Building 14.1 from trunk sourceBuilding 14.1 from trunk source HTMLClosed     LabKey Support Forum
Could you please include the full output and let us know how you are starting this build? I.e. are you starting the build from the command line or from within IntelliJ? We are not aware of this problem in the current revision of trunk. Greg
slangley@scharp.org2014-02-25 18:43Jon (LabKey DevOps)2018-11-16 23:24Building 14.1 from trunk sourceBuilding 14.1 from trunk source HTMLClosed     LabKey Support Forum
I was doing this from inside IntelliJ, clicking the build task of the server/build.xml file. I see it does work from the command line using a fresh checkout of trunk today. I guess that's good enough for me. Thanks.
slangley@scharp.org2014-02-28 18:26Jon (LabKey DevOps)2018-11-16 23:24Building 14.1 from trunk sourceBuilding 14.1 from trunk source HTMLClosed     LabKey Support Forum
By the way. The problems I encountered building LabKey inside IntelliJ seem to have only been with IntelliJ version 13.0.2. Everything seems to be working fine on IntellJ 12.1.6. This is all on SUSE Linux.
zolimov2023-12-15 11:06zolimov2023-12-15 11:06 Custom views with “Timeline” tab encounter this JS error message ext.Timeline MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello there,

Please review the attached document and assist with the solution. thank you,

Zafar Olimov
zolimov@immunetolerance.org

Software Test Engineer II | Data Collaboration Team
Immune Tolerance Network | Benaroya Research Institute @ Virginia Mason
1201 Ninth Avenue | Seattle, WA 98101

yukti agrawal2022-07-15 01:53yukti agrawal2022-07-15 01:53 Tomcat service is getting by itself after almost 24 hours MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

**Tomcat service one our prod server is getting killed by itself and hence labkey is giving 502 error after almost 24 hours everyday from last 3 days.
Labkey is running on EC2 instance on our server.

I have checked logs but couldn't find anything which causes the service to stop.**

willm2024-03-12 14:02willm2024-03-12 14:02 Teamcity CI/CD Maintenance tomorrow 3/12/2024 at 10:30am PDT MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

LabKey TeamCity CI/CD server will be down for maintenance beginning at approximately 10:30am PDT. We expect the outage to last for approximately 2 hours.

willm2024-03-04 08:56willm2024-03-04 08:56 Teamcity CI/CD Emergency Maintenance today 3/4/2024 at 9am PDT MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

LabKey TeamCity CI/CD server will be down for emergency maintenance beginning at 9am PDT. We expect the outage to last for approximately 30 mins. We apologize for the short notice.

willm2024-04-04 11:17willm2024-04-04 11:17 Teamcity CI/CD Maintenance tomorrow 4/5/2024 at 11am PDT MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

LabKey TeamCity CI/CD server will be down for maintenance beginning at approximately 11am PDT. We expect the outage to last for approximately 1 hour.

WayneH2018-06-01 13:17Will Holtz2018-06-20 11:03 Filtering Datasets by row MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Good afternoon,

I just wanted to know if there was a way to filter by row.. For example what we are trying to do is filter datasets to show rows that are not blank rather than applying a notnull filter to each field... But apply a global filter by row..

thanks.

Wayne H

Will Holtz2018-08-06 17:19Will Holtz2018-08-20 21:11 Full text search over hard table MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Is there a mechanism I can utilize in a file-based module to get a hard tabled indexed by the full-text search indexer?

thanks,
-Will

Will H.2023-08-28 18:12Will H.2023-08-28 18:12 Out of heap memory after upgrade from v23.3.2 to v23.7.0 MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have a cronjob that makes queries and then performs row deletions on lists using the LabKey API (via the python package). The queries are simple but can return a large number of rows. The deletions are batched to 900 rows per API call. This workflow has been running fine for a while.

Last week I upgraded from LabKey v23.3.2 to v23.7.0 and immediately started getting out of memory errors when performing the row deletions.

ERROR ExceptionUtil            2023-08-27T01:52:59,521     http-nio-8080-exec-2 : Unhandled exception: Java heap space
java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:3537) ~[?:?]
	at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:228) ~[?:?]
	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:582) ~[?:?]
	at java.lang.StringBuilder.append(StringBuilder.java:179) ~[?:?]
	at org.labkey.list.model.ListManager$2.exec(ListManager.java:844) ~[list-23.7.0.jar:?]
	at org.labkey.list.model.ListManager$2.exec(ListManager.java:840) ~[list-23.7.0.jar:?]
	at org.labkey.api.data.TableSelector.lambda$forEachResults$1(TableSelector.java:278) ~[api-23.7.0.jar:?]
	at org.labkey.api.data.TableSelector$$Lambda$1265/0x00007fc3d0e3c130.handle(Unknown Source) ~[?:?]
	at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleResultSet(SqlExecutingSelector.java:457) ~[api-23.7.0.jar:?]
	at org.labkey.api.data.TableSelector.forEachResults(TableSelector.java:273) ~[api-23.7.0.jar:?]
	at org.labkey.list.model.ListManager.indexEntireList(ListManager.java:839) ~[list-23.7.0.jar:?]
	at org.labkey.list.model.ListManager.lambda$deleteItemIndex$6(ListManager.java:592) ~[list-23.7.0.jar:?]
	at org.labkey.list.model.ListManager$$Lambda$1837/0x00007fc3d11bee58.run(Unknown Source) ~[?:?]
	at org.labkey.api.data.DbScope$CommitTaskOption.run(DbScope.java:2010) ~[api-23.7.0.jar:?]
	at org.labkey.api.data.DbScope$TransactionImpl.commit(DbScope.java:2327) ~[api-23.7.0.jar:?]
	at org.labkey.query.controllers.QueryController$BaseSaveRowsAction.executeJson(QueryController.java:4473) ~[query-23.7.0.jar:?]
	at org.labkey.query.controllers.QueryController$DeleteRowsAction.execute(QueryController.java:4622) ~[query-23.7.0.jar:?]
	at org.labkey.query.controllers.QueryController$DeleteRowsAction.execute(QueryController.java:4614) ~[query-23.7.0.jar:?]
	at org.labkey.api.action.BaseApiAction.handlePost(BaseApiAction.java:238) ~[api-23.7.0.jar:?]
	at org.labkey.api.action.BaseApiAction.handleRequest(BaseApiAction.java:128) ~[api-23.7.0.jar:?]
	at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:195) ~[api-23.7.0.jar:?]
	at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:512) ~[api-23.7.0.jar:?]
	at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1128) ~[api-23.7.0.jar:?]
	at org.labkey.api.view.ViewServlet._service(ViewServlet.java:240) ~[api-23.7.0.jar:?]
	at org.labkey.api.view.ViewServlet.service(ViewServlet.java:159) ~[api-23.7.0.jar:?]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[servlet-api.jar:4.0.FR]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[catalina.jar:9.0.79]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.79]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-websocket.jar:9.0.79]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.79]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.79]
	at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:43) ~[api-23.7.0.jar:?]

I am running with 16GB of heap:

-Xms16G -Xmx16G -XX:-HeapDumpOnOutOfMemoryError

And the overall load on the system is quite low.

When investigating I looked at /admin-memTracker.view and was surprised to see ~30 instances of "SearchService:index". But I haven't looked at this page before, so perhaps that is normal.

Some other system details:
Servlet Container Apache Tomcat/9.0.79
Java Runtime Vendor Eclipse Adoptium
Java Runtime Name OpenJDK Runtime Environment
Java Runtime Version 17.0.8+7
Database Product Name PostgreSQL
Database Product Version 15.3

Is anyone else running into out of memory issues after moving to v23.7.0?

Thanks,
-Will

WayneH2018-11-26 12:20WayneH2018-11-26 12:24 Batch creation of file sets MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi everyone

we have a file repository that will have a somewhat complicated structure because it is meant to facilitate incoming data from multiple sites and we would like to create fillesets for each of these so that we can expose only specific folders to users via the file web part. Creating these individually is doable but it would be much more preferable to create some automated/batch scripted process to generate these? Is there some way to do this in labkey? I don't see any where in the schema that we can list/add/update fillesets... that might be a path to a solution?

thanks,

Wayne H

WayneH2019-03-06 06:28WayneH2019-03-06 06:28 Assign group permissions via js api MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Good morning,

We see in the javascript API reference methods for creating containers, user accounts and groups and adding members to the groups.. We are unclear on how we set permissions/security policy on the groups we create in order to define roles and permissions for users in the project. Can you point us in the right direction for this.. Our aim is to manage groups and users profiles and permissions programmatically.

Thanks,

WH

WayneH2019-04-10 10:05WayneH2019-04-10 10:05 WebDAV views MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hey everyone, Is there any way to configure the labkey webDAV/webfiles client user view or functionality?
we would love to hide the folder tree from some users as well as the home folder in the tree in instances where we are showing the tree we would prefer to not show the home folder... Not at all familiar with this aspect so any help would be appreciated.

Thanks,

WayneH2019-12-05 13:18WayneH2019-12-05 13:18 datasetcolumns table not showing fields imported through assay module MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I imported some data to datasets via the assay module.. Wanting to produce a table describing the queries and fields in the schema but found that the datasetcolumns table in the study schema only shows fields created by the user not those created by the assay module.. Kinda odd..? Am I missing something? Don't want to ETL copy of data to another dataset for reporting..

Any thoughts?

Thanks,

Wayne

vipin2024-04-12 06:59vipin2024-04-12 06:59 database schema migration MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello LabKey support team,

I was running LabKey community edition version 21.11.4 and associated DB in postgres 14. Now I would like to migrate the instance to Version Number: 23.11.11 community edition.
I did the dump of the database and loaded it to the new database without issues but when I started the server, LabKey ended up with a couple of internal errors. Most of them are related to the foreign key mismatches. Is there a way to upgrade the schemas from previous versions? If you would like to have the complete error message I am happy to provide that as well. 
Regards,
Vipin

tstellin@scharp.org2020-06-29 12:23tstellin@scharp.org2020-06-29 12:23 Trigger process after successful specimen import MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

We'd like to kick off a post-specimen import process that starts when labkey finishes a specimen import pipeline job. Does a feature like this exist in Labkey Server? I've looked through the UI and documentation, and didn't see anything, but wanted to double-check and make sure it doesn't exist.

Thanks!
-Tobin

tstellin@scharp.org2020-04-17 09:14tstellin@scharp.org2020-04-17 09:14 Incremental update support for specimen import MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

We are curious if LabKey supports (or plans to support) an "incremental" specimen import. This would allow only the specimen event deltas to be specified in the .specimen ZIP archive imported into LabKey each day. It would require complicating the interface--for example, a record would need to signify a "deleted" event (in contrast to the current behavior, where a deletion is signified by the absence of a previously-seen specimen event).

I didn't see anything on the current documentation that suggests an incremental import is supported. My understanding is that the current behavior merges the new .specimen ZIP file with the specimens loaded from the previous import.

Thanks,
-Tobin

tstellin@scharp.org2022-08-12 05:25tstellin@scharp.org2022-08-12 05:25 A "pipeline-filewatcher" type job with pipeline task "Imports specimen using data file" reuses existing job record MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

A month or so ago we updated our labkey jobs to use the new "pipeline-filewatcher" type job with pipeline task "Imports specimen using data file". Since doing this, we have observed a strange behavior: instead of creating a new Job record for a new "Imports specimen using data file" task, LabKey re-uses the most recent previously-existing job record. See attachment.

The attachment shows that the job was created on 2022-06-27 and last updated on 2022-08-12. When the task starts, it seems to re-use the old Job record. Every day, this record (with primary key rowId=98469) is re-used and modified to reflect that day's import. The job details page https://atlas.scharp.org/cpas/pipeline-status/HVTN/Tools and Reports/Specimen Management/details.view?rowId=98469 lists all previous runs in the log output (which I think will eventually make the page difficult to load).

Is this behavior expected? In the past, a new Job record (with a "created on" set to the timestamp the task started) would be created. We also see this behavior on our staging system (running v22.3.9).

Trey2023-02-01 13:20Trey2023-02-01 13:20 Maintenance Notice - LabKey TeamCity Build Server on Friday, February 3rd 2023 MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing maintenance on the LabKey TeamCity server on Friday 2/3/2023 starting at 8 AM PST. During this maintenance the TeamCity Build Queue will be paused and no new builds will be started until the maintenance is completed. We are migrating to a multi-node, high availability configuration to improve performance and reliability.

The server will be offline periodically throughout the migration. We hope to have the maintenance complete and validated by 3PM.

We apologize for any inconvenience this may cause.

Susan Hert2022-05-02 13:12Susan Hert2022-05-02 13:12 Artifactory Configuration Change MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

On Thursday, May 5 at 8:00 Pacific time, we will be updating our Artifactory configuration such that our libs-release, plugins-release, and libs-snapshot repositories will no longer proxy for certain third-party maven repositories, including MavenCentral and https://plugins.gradle.org. You will likely not have to make any changes as a result of this reconfiguration since we have updated our build.gradle files in the develop branch as well as all currently supported release versions to declare the required external repositories separately. However, if you maintain your own build.gradle file that includes a repositories {} configuration, you may need to add

     mavenCentral() 

at the top of that configuration block or add a separate

        maven { url: “https://some.repository.url” }

declaration in order to properly resolve external artifacts.

If you have questions or problems as a result of this, please let us know.

stuartm2024-01-31 08:45stuartm2024-01-31 08:45 LabKey Teamcity Emergency Maintenance 1/31/2024 MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Teamcity was down this morning from 7:45 AM to 8:30 AM PDT due to unscheduled critical software updates.

We prefer to schedule these types of updates when possible, however given the urgency of the required updates, we elected to perform the maintenance as soon as possible.

We apologize for any inconvenience this may have caused.

stuartm2022-02-24 15:22stuartm2022-02-24 15:22 Scheduled Maintenance - LabKey TeamCity Server - Monday 2/28/2022 4PM-5PM PST MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing maintenance on the LabKey TeamCity server on Monday 02/28/2022 between 4 PM - 5 PM PST. This maintenance only affects developers. During this maintenance window the TeamCity Build Queue will be paused and no new builds will be started until the maintenance is completed. Any existing builds running on TeamCity agents will continue and not be interrupted.

We apologize for any inconvenience this may cause.

stuartm2022-06-02 15:46stuartm2022-06-02 15:46 Scheduled Maintenance - teamcity.labkey.org Friday 6/3/2022 7 AM PDT MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing maintenance on the LabKey TeamCity server on Friday 06/03/2022 between 7 - 8 AM PDT. During this maintenance window the TeamCity Build Queue will be paused and no new builds will be started until the maintenance is completed. Any existing builds running on TeamCity agents will continue and not be interrupted.

We apologize for any inconvenience this may cause.

stuartm2022-01-24 16:03stuartm2022-01-24 16:03 Maintance Notice - Teamcity Server 01/24/2022 4:30PM - 5:00PM PDT MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We have scheduled a short maintenance window tonight at 4:30 PM PDT to install updates to Teamcity.

We will pause the Teamcity queue, apply the updates and restart. We expect the downtime to be less than 30 minutes.

stuartm2023-08-09 17:38stuartm2023-08-09 17:38 LabKey TeamCity Server Maintenance Thursday 8/10/2023 between 7-8 AM PDT MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing maintenance on the LabKey TeamCity server on Thursday 8/10/2023 between 7-8 AM PDT. During this maintenance window the TeamCity Build Queue will be paused and no new builds will be started until the maintenance is completed. Any existing builds running on TeamCity agents will continue and not be interrupted.

We apologize for any inconvenience this may cause.

stuartm2022-10-04 11:09stuartm2022-10-04 11:09 Maintence Notice - Teamcity Build Server - Wednesday 4 -5 PM PDT MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing maintenance on the LabKey TeamCity build server on Wednesday 10/05/2022 between 4-5 PM PDT. During this maintenance window the TeamCity Build Queue will be paused and no new builds will be started until the maintenance is completed. Any existing builds running on TeamCity agents will continue and not be interrupted.

We apologize for any inconvenience this may cause.

stuartm2022-05-04 10:30stuartm2022-05-04 10:30 Scheduled Maintenance - teamcity.labkey.org Thursday 5/5/2022 4-5PM PDT MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing maintenance on the LabKey TeamCity server on Thursday 05/05/2022 between 4 PM - 5 PM PST. This maintenance only affects developers. During this maintenance window the TeamCity Build Queue will be paused and no new builds will be started until the maintenance is completed. Any existing builds running on TeamCity agents will continue and not be interrupted.

We apologize for any inconvenience this may cause.

stuartm2022-11-07 06:41stuartm2022-11-07 06:41 Maintence Notice - Teamcity Build Server - Monday 11/7/2022 7-8A M PST MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing maintenance on the LabKey TeamCity server on Monday 11/07/2022 between 7-8 AM PST. During this maintenance window the TeamCity Build Queue will be paused and no new builds will be started until the maintenance is completed. Any existing builds running on TeamCity agents will continue and not be interrupted.

We apologize for any inconvenience this may cause.

stuartm2023-06-12 07:56stuartm2023-06-12 07:56 LabKey TeamCity Emergency Maintenance Monday June 12th 2023 MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

LabKey TeamCity CI/CD server will be down for emergency maintenance beginning at 8 AM PDT. We expect the outage to last for approximately 30 mins. We apologize for the short notice.

stuartm2023-09-19 10:10stuartm2023-09-19 10:10 Teamcity CI/CD Emergency Maintenance today 9/19/2023 at Noon PDT MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

LabKey TeamCity CI/CD server will be down for emergency maintenance beginning at Noon PDT. We expect the outage to last for approximately 30 mins. We apologize for the short notice.

stuartm2022-12-13 15:07stuartm2022-12-13 15:07 Scheduled Maintenance - LabKey TeamCity Build Server - Wednesday 12/14/2022 between 4-5 PM PST MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing maintenance on the LabKey TeamCity server on Wednesday 12/14/2022 between 4-5 PM PST. During this maintenance window the TeamCity Build Queue will be paused and no new builds will be started until the maintenance is completed. Any existing builds running on TeamCity agents will continue and not be interrupted.

We apologize for any inconvenience this may cause.

stravsmi2023-06-22 23:27stravsmi2023-06-22 23:27 Capacity of "Lists"? MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

we are developing a solution based on LabKey Community and have different options for how to implement some functionality.

Is there a practical limitation to how large a "List", with per-row indexing, can get?
Is it feasible to have a "List" with many millions of rows, and to query it in reports?

Stefan Nicolet2020-11-10 03:59Stefan Nicolet2020-11-10 03:59 wiki bug MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

A long JSON message (attached) arrises when people edit (add, remove, modify) elements of a list that has been integrated into a wiki page the following way:

<h4>People in the network</h4><br>
<div id="list_div"></div>
<script>
var wp = new LABKEY.WebPart({ renderTo: 'list_div', partName: 'List - Single', partConfig: { listName: 'medict_network'}, frame: 'none'});
wp.render();
</script>

This bug does not happen if the edition is done on the list itself.

Sev2018-05-22 10:38Sev2018-07-02 08:52 Multiple demographics datasets MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello

Our users have requested that we hide demographics data from all but a small set of admin users for our LabKey instance. To strike a balance between setting up this level of security and still being able to use datasets that refer back to the participantid in the Demographics table, we have created a separate AdminDemographics dataset to supplement the Demographics dataset. AdminDemographics contains PHI such as MRN, Names, Birth dates, etc and the Demographics dataset contains only the participant ID column. We keep these in sync with triggers.

We created the AdminDemographics dataset via:
CREATE TABLE LIKE studydataset.demographics INCLUDING ALL
We registered it with LabKey as a dataset with the additional key column field set to the _key column in the dataset, marked as system managed. When we rolled this out, however, LabKey had assigned the MRN column to this additional key and marked it as System Managed, see attached screenshot.

The impact of this was that MRN was not allowed to be set by users when adding new records, breaking the ability to add new patients to the system. We were able to correct this by manually resetting the additional key column back to none. I also noticed if I select the 'Demographic Data' check box the MRN is settable on insert.

My questions:

  1. Why was MRN assigned to a system managed additional key column? Is 'MRN' some kind of reserved column name that gets auto assigned? The _key column exists distinct of the MRN column in the dataset.
  2. Besides enforcing zero or 1 row per participant as described here, what impact does checking the 'Demographic Data' option have on the system? Apart from making MRN settable when adding new records we want to know what else is going on so we can test thoroughly.

EDIT: I attached csv files for the admindemographics entries in the study.dataset and exp.domaindescriptor tables in case that is helpful

Thanks!

Sev

sadanand ranbhor2023-05-08 02:44sadanand ranbhor2023-05-08 02:44 Assay Data not getting fetched in API MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi Team,
I have created an assay project folder structure screen shot attached.I am trying too invoke http://<hostname>/labkey/Custom Project 2/subfolder/assay-assayList.api GET API and I get following error
{
"exception": "Method Not Allowed: GET",
"success": false
}

Is there any issue with the API URL which I have formed ?Please let me know.

sadanand ranbhor2023-05-08 01:20sadanand ranbhor2023-05-08 01:20 Sample Managerment MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello, I am working on labkey community version. I am looking for labkey Sample lifecycle implementation as the documentations/videos but I don't see the relevant menus in my system.Can you please suggest what could be going wrong? Is this feature only available with Professional edition.Please let me know

rpiercy2024-05-24 08:31rpiercy2024-05-24 08:31 Problem with Chart display when using Participant Groups and the Chart Wizard MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have run into a problem with examining data in time-based plots (version 21.7). I can view individual participant data appropriately and even all individuals' data on the same plot, but as soon as I try to display the data (as means with error bars) summarised according to my allocated groups (via Chart Layout tab), the system freezes - just says "loading..." which never ends.

Is this a bug please?

Thank you.

rita alves2020-08-07 07:39rita alves2020-08-07 07:39 Survey Design - Card Layout - Section skip logic MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

In case i am doing a survey design with a card layout. Is it possible to hide section based on an answer to a question in a different section?

Thank you in advance!

ramez saour2021-01-18 04:06ramez saour2021-01-18 04:06 migration from standard server to docker and authentication MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have migrated labkey and tomcat7 config from standard host to docker image tomcat8 and same config as labkey, however, since moved to docker I cant authenticate to labkey portal. is there way to use local account (admin) or configure ldap connection inside docker?

I have also
<Resource name="ldap/ConfigFactory" auth="Container"
type="org.labkey.premium.ldap.LdapConnectionConfigFactory"
factory="org.labkey.premium.ldap.LdapConnectionConfigFactory"
host="10.5.0.9"
port="389"
principal="CN=zSvcADBindRDLK,OU=ServiceAccounts,OU=GEL,DC=corp,DC=gel,DC=ac"
credentials="***********"
/>

panthea tzourio2020-08-10 03:46panthea tzourio2020-08-10 03:46 Date error msg: "couldn’t convert date field, should be of type timestamp" MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello support, our Labkey server is situated in France with CET time zone (Central Europe Time). We encounter a persistent CEST (Central Europe Summer Time) exception on date fields each time we try to import datasets in a Study type folder (time and participant are mandatory fields). Even the simple and structured excel files David Hansons uses for his demos produce the same error : “couldn’t convert date field, should be of type timestamp” while the field is already of type timestamp. The result is the same on both V18.3 and V20.3 (pre prod) Labkey installs. Please find attached, the Look and feel setting with the default date format to which I added a "z" to force the system date; the CEST error message, an example of an Excel file generating the exception. Only the “Demographics” file doesn't generate the error eventhough the date is in the same format. I assume there’s no such control on date field in demographics files. I deleted in Study the default CEST date format in case this caused the error but the result is the same. This very first step error prevents us to go further on our Labkey investigation tests.
Thanks in advance for your time.

ophira2021-03-22 09:50ophira2021-03-22 21:54 Problem while using the "Import and Export a XAR File" tutorial MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I am trying to understand the Experiment module using the documentation by following these instructions:
https://www.labkey.org/Documentation/wiki-page.view?name=xarSamples

I got stuck here:

  • Download either XarTutorial.zip or XarTutorial.tar.gz and extract to your computer.
  • Select the Pipeline tab, and click Setup.
  • Click Set a pipeline override.
  • Enter the path to the directory where you extracted the files.
  • Click Save.

On step “Select the Pipeline tab, and click Setup.”, I didn’t find any “Setup” and “Set a pipeline override” anywhere.
Should this feature work in the Trial version? In the CE version?

My trial server:
https://oa1.trial.labkey.host/home/project-begin.view?

Tried the above on the "Example Project" as well as a newly created project named "proj4experiment".

Thanks,
Ophir

oliver cencic2023-11-28 06:06oliver cencic2023-11-28 06:06 Error message when clicking "Save" under "Site > Admin Console > Site Settings" MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have just installed the latest Labkey version (LabKey23.11.1-2-community).

Everything is running fine so far. The only exception: when I apply changes under Site > Admin Console > Site Settings and click save, I get an error message (see below)

Can you give me advice on what is wrong?
KR, Oliver

Error Message: „Upps
Oops! An error has occurred.
Name is null
Please report this bug to LabKey Support by copying and pasting both your unique reference code and the full stack trace in the View Details section below.
Your unique reference code is: Z5C82Q

View Details:
java.lang.NullPointerException: Name is null
java.base/java.lang.Enum.valueOf(Enum.java:271)
org.labkey.api.util.UsageReportingLevel.valueOf(UsageReportingLevel.java:53)
org.labkey.core.admin.AdminController$CustomizeSiteAction.handlePost(AdminController.java:1220)
org.labkey.core.admin.AdminController$CustomizeSiteAction.handlePost(AdminController.java:1140)
org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:96)
org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:75)
org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:195)
org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:510)
org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1128)
org.labkey.api.view.ViewServlet._service(ViewServlet.java:240)
org.labkey.api.view.ViewServlet.service(ViewServlet.java:159)
javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:43)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1470)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:235)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:840)

oliver cencic2022-08-18 01:40oliver cencic2022-08-18 01:40 Download prolems community edition MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

When I try to download the community edition of LabKey I get the following error message (independent of the web browser I use):
"The form was unable to submit. Please contact the site administrator."
The same problem appears btw when I try to send the contact form. So, maybe there is a general issue with your website.
Can someone help to solve the issue?

niloofar nickaeen2024-01-04 23:49niloofar nickaeen2024-01-04 23:49 Creating an assay in the LabKey Server using an R script MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi.
I have used Rlabkey to create lists and manipulate data on those lists. However, now I need to create assays.
labkey.create.domain() which I have used to create lists, accepts the folowing domain types and assays are not an option:

• "IntList": A list with an integer key field
• "VarList": A list with a string key field
• "StudyDatasetVisit": A dataset in a visit based study
• "StudyDatasetDate": A dataset in a date based study
• "IssueDefinition": An issue list domain
• "SampleSet": Sample set
• "DataClass": Data class

Can you please guide me through creating an assay using an R script?

Thank you.

niloofar nickaeen2023-12-18 02:58niloofar nickaeen2023-12-18 02:58 error while trying to rebuild an old labkey configuration MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi. Our previous system administrator had configured Labkey using: Oracle JDK 1.8.0_181-b13, Apache Tomcat 8 and Labkey 18.2, postgresql 9.5.
Now I am sked to recreate the whole configuration, preferably with newer versions. I am on Ubuntu 22.04.3 LTS (Jammy) . I am using Labkey 23.7.4-7, Apache Tomcat 9 and OpenJDK17U and postgresql 15.5.
I followed the installation instructions and managed to successfully see the start up window for Labkey. at this point I am using an empty "labkey" database. I then proceeded to back up the previous database and files.
I backed up "Files" from /usr/local/labkey/files and put it in the same directory in the new configuration.
I furthermore, backed up and restored the old database in the empty "labkey" database.

However, now I get this error (I have attached screenshots of the whole log):

  • HTTP Status 500 – Internal Server Error
  • org.labkey.api.util.ConfigurationException: Error running scripts in module Core
  • org.postgresql.util.PSQLException: ERROR: cannot drop view core.activeusers because other objects depend on it
    Detail: view core.contacts depends on view core.activeusers
    Hint: Use DROP ... CASCADE to drop the dependent objects too.
    Where: SQL statement "DROP VIEW core.activeusers"

can you please help me with that?

nazric552020-02-02 12:41nazric552020-02-02 12:41 Error When Setting Up Developer Machine MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I've been following the documentation for setting up a developer machine (https://www.labkey.org/Documentation/wiki-page.view?name=devMachine) but I ran into issues in the "Build LabKey" section.

When running the command "gradlew deployApp" the build fails immediately after the "Task :server:stageModules" starts. (stacktrace pasted below)

The only other inconsistency I found in the guide was in the "Configure the LabKey Project in IntelliJ" section when it asks to edit the configurations there is no modules named "api_main" or "org.labkey-api_main", so I continued with "api" instead.

Other configuration information:
apache-tomcat-9.0.30
jdk-13.0.2 (OpenJDK)
When running the gradlew command I see that it's using Gradle 6.0
SVN revision 65036

Stacktrace from error (using --stacktrace flag)

Task :server:stageModules FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':server:stageModules'.

Specify at least one source--a file or a resource collection.

  • Try:
    Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':server:stageModules'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:187)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:185)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:166)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:374)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:361)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:354)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:340)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:72)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:191)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:168)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:41)
    at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:40)
    at org.gradle.execution.DefaultBuildWorkExecutor.access$000(DefaultBuildWorkExecutor.java:24)
    at org.gradle.execution.DefaultBuildWorkExecutor$1.proceed(DefaultBuildWorkExecutor.java:48)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:49)
    at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:40)
    at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:33)
    at org.gradle.execution.IncludedBuildLifecycleBuildWorkExecutor.execute(IncludedBuildLifecycleBuildWorkExecutor.java:36)
    at org.gradle.execution.DeprecateUndefinedBuildWorkExecutor.execute(DeprecateUndefinedBuildWorkExecutor.java:39)
    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.run(BuildOperationFiringBuildWorkerExecutor.java:56)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:41)
    at org.gradle.initialization.DefaultGradleLauncher.runWork(DefaultGradleLauncher.java:241)
    at org.gradle.initialization.DefaultGradleLauncher.doClassicBuildStages(DefaultGradleLauncher.java:151)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:130)
    at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:110)
    at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:60)
    at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:57)
    at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:85)
    at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:78)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:189)
    at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
    at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:78)
    at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:57)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63)
    at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
    at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
    at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
    at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
    at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
    at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
    at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
    at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
    at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:27)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    Caused by: : Specify at least one source--a file or a resource collection.
    at org.apache.tools.ant.taskdefs.Copy.validateAttributes(Copy.java:678)
    at org.apache.tools.ant.taskdefs.Copy.execute(Copy.java:450)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
    at org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:80)
    at org.gradle.api.internal.project.ant.BasicAntBuilder.doInvokeMethod(BasicAntBuilder.java:107)
    at org.labkey.gradle.plugin.ServerDeploy$_addTasks_closure2$_closure23.doCall(ServerDeploy.groovy:85)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:664)
    at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:637)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:539)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:524)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:507)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:109)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:258)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:247)
    at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:63)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
    at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
    at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:153)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:67)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:41)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
    at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:174)
    ... 125 more

  • Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 2s
5 actionable tasks: 1 executed, 4 up-to-date

murff2022-09-06 16:18murff2022-09-06 16:18 Make a Visit an integer MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

When setting up a new study if I pick visit, the users have the ability to enter decimal values for the visit. Ex (1.1000,1.2000, etc.)
How do I change that so the visit can only be an integer (1,2,3, etc).

jpellet2024-01-12 01:57mohara2024-01-12 17:14 Rlabkey - HTTP error code 500 using executeSql function MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
> sessionInfo()
R version 4.3.2 (2023-10-31)
Platform: aarch64-apple-darwin20 (64-bit)
Rlabkey_3.1.0

I got an error message (see below) using the executeSql function in Rlabkey.

test<-labkey.executeSql(
+     baseUrl="http://localhost:8080/labkey", 
+     folderPath = "/DEMO",
+     colNameOpt = "rname",
+     schemaName = "lists",
+     sql="SELECT * from Test")

Error in handleError(response, haltOnError) :
HTTP request was unsuccessful. Status code = 500, Error message = Error on line 1: Syntax error near 'U0VMRUNUJTIwKiUyMGZyb20lMjBUZXN...'

If I use the selectRows function I have the correct result:

> labkey.selectRows(
+     baseUrl="http://localhost:8080/labkey",
+     folderPath="/DEMO",
+     schemaName="lists",
+     queryName="Test")
  Patient ID GENDER Date
1       1022   Male      2016-08-08
2       1030   Male      2016-11-25
> 

I have checked all the logs and server configuration and I don't understand why the function executeSql does not work.

Thank you for your feedback.

mitch blocher2021-01-25 13:37mitch blocher2021-01-25 13:37 GUI not fully loading MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Ive noticed that occasionally The GUI will not display certain information such as scripts, Pop up boxed etc. I have ensured popups and JavaScript were enabled in my chrome browser, and cookies and Cache were deleted. All labkey servers worked fine except for one. The solution I found was to reset all settings in my chrome browser, however the specific culprit causing the issue was not found.

m boehmer2020-04-22 06:05m boehmer2020-04-22 06:05 Cannot access admin console after upgrade to 20.3 MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

After a manual upgrade to Labkey Server 20.3, when trying to access the admin console I receive the following error message:

An unexpected error occurred. If contacting support regarding this error, please refer to error code: VUNKPZ
java.lang.NoSuchFieldError: labkeyVersion

Any ideas what might went wrong?

max diesner2020-08-24 02:36max diesner2020-08-24 02:51 Lookups/Links to primary key/normal values in SQL queries MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

we have no for some time a community edition labkey server running in the lab and it is just awesome. I have recently setup some SQL queries for keeping track of our Lab inventory which is also working quite nicely. However there is a minor thing that keeps bugging me. The resulting query table does not copy automatically the lookup/ Text link for a certain value from the underlying table (list). I checked the documentation and it states that you can easily get this done by applying the lookup through the Metadata properties. Thus, i accordingly changed the column to a lookup from the appropriate underlying column. I also checked the Metadata code and can see that the appropriate <fk></fk> part has been added to the metadata code. Nevertheless the resulting table still does not show the appropriate text links. Do you need to check some option that i am missing or does the LEFT JOIN statement in the SQL code overrides any potential lookups for certain values? I am trying to connenct primary keys for your information. When i am referencing from a table where the value is already a lookup it is copying the textlink right away.

I am looking forward to hear from you!

Cheers Max

marcia hon2018-09-12 10:32marcia hon2018-09-26 10:26 Audit - Granularity MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I would like to ask you if in the Audit Log, we can see what records/variables were added/updated/deleted?

I need to have this very fine granularity.

Thanks,
Marcia

marcia hon2018-03-22 06:54marcia hon2018-04-09 05:57 Stored Procedure MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have a stored procedure that is supposed to work with assays.

How do I write the table in the stored procedure. I have tried: "FROM assay.General.Genotyping_Original.Data instrument;" but this gives me an error.

How can I, inside a stored procedures, connect to an existing assay?

Thanks,
Marcia

Marcel de Leeuw2021-01-31 06:31Marcel de Leeuw2021-01-31 06:31 Rlabkey webdav access failing with 401 unauthorized MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

We are unsuccessful acessing files on the labkey server through Rlabkey. Selectrows in a folder succeeds, bu then acessing files through webdav in the same folder for the same user (API key) fails with error code 401 (unauthorized). Aslo, webdav through the browser works fine. What needs to be configured for webdav through Rlabkey?

baseurl <- "http://bifx.mrmhealth.com:8080/labkey"
folderpath <- "/MRM Health/M002/Pre-clinical/E-00065 Rat"
setwd("~/labkey/M002/Pre-clinical")

library(Rlabkey)

labkey.mgx <- labkey.selectRows(
  baseUrl = baseurl,
  folderPath=folderpath, 
  schemaName="assay.General.Whole metagenome", 
  queryName="Runs", 
  viewName="", 
  colNameOpt="rname")
datafile <- gsub(".+@files/(.+)", "\\1", labkey.mgx$realtiveabundances)

labkey.webdav.get(
  baseUrl=baseurl,
  folderPath=folderpath,
  remoteFilePath=datafile,
  localFilePath="rat.mgx.tsv",
  overwrite=T)

Error in handleError(response, haltOnError) :
HTTP request was unsuccessful. Status code = 401, Error message = /_webdav/MRM Health/M002/Pre-clinical/E-00065 Rat/@files/assaydata/ca-mrm-bacteria-filtered-ra_2020_12_04_20_04.tsv

Thanks and regards

lubomir pavliska2022-04-27 13:03lubomir pavliska2022-04-27 13:03 Current user MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello.

How can I get the name of current user (current logged) in R Report? I need it for identification rows in excel file exported from R report.
I tried it via
res=GET("http://vav.fno.cz/login-whoAmI.api")
prettify(rawToChar(res$content))

but no working, empty content.

Thanks

Lubomir

kristen dang2021-04-22 17:54kristen dang2021-04-22 17:54 How to make a link in a List to a file in the Files tab using R API? MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,
I have several Lists that include a column listing relevant files which are also loaded in the Files tab. I would like to add a link to the List that points to the file in the Files tab. There is an extensive page on how to do this with the GUI, but I am not sure how to do it with the R labkey package. Can this be done with R?

kristen dang2021-04-23 10:32kristen dang2021-04-23 10:32 How to use createAndLoad for Lists or Datasets using R? MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,
In the R labkey package, I tried to use to use the labkey.domain.createAndLoad to create and load a list, but was unable to understand the error message. I'd like to be able to use this command for List and Dataset creation. Can you please suggest how I should address the issue with "strictFieldValidation?" I included my command and the response below.

labkey.domain.createAndLoad(baseUrl = labkey.getBaseUrl(),folderPath=fp,name="sequencing_vendor_QC_metrics", df=combined, domainKind="VarList")

Error in handleError(response, haltOnError) : 
HTTP request was unsuccessful. Status code = 500, Error message = Unrecognized field "strictFieldValidation" (class org.labkey.list.model.ListDomainKindProperties), not marked as ignorable (22 known properties: "entireListTitleTemplate", "discussionSetting", "keyName", "name", "entireListIndexSetting", "titleColumn", "eachItemBodyTemplate", "fileAttachmentIndex", "allowDelete", "listId", "eachItemBodySetting", "lastIndexed", "description", "allowExport", "eachItemTitleTemplate", "domainId", "entireListIndex", "allowUpload", "keyType", "entireListBodySetting", "entireListBodyTemplate", "eachItemIndex"])
kristen dang2021-04-23 10:42kristen dang2021-04-23 10:42 How to create and append to a dataset using R labkey API? MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,
I am having several errors when trying to use the R labkey API to create and load a dataset. I am able to load this same file as a dataset using the GUI, but cannot seem to do it with the R API.

When creating the design, I get an error about reserved fields. In the GUI I resolve this by matching specific upload file column names with reserved field names. I don't know how to do this in R:

 fields <- labkey.domain.inferFields(baseUrl=labkey.getBaseUrl(), folderPath=fp, df=inDF)
 dd <- labkey.domain.createDesign(name=batch$batch, fields=fields)
 k = which(dd$fields$name %in% c("ParticipantId", "visitCode", "sampleName"))
 dd$fields$isPrimaryKey[k] = TRUE

    eaLabkeyList = labkey.domain.create(baseUrl=labkey.getBaseUrl(), folderPath=fp, domainKind="StudyDatasetVisit", domainDesign=dd, options=list(categoryName="SequencingTest",demographics=FALSE,useTimeKeyField=FALSE,keyPropertyName="sampleName"))

Error:

HTTP request was unsuccessful. Status code = 500, Error message = java.lang.IllegalArgumentException: Property: ParticipantId is reserved or exists in the current domain.

Once I create this file in the web UI, I'm not able to append other data to it by upload since the column names don't match. Is there some documentation for how to take care of the key name matching so I can do this in R?

Thanks for any help.

kotlenik2021-12-27 10:05kotlenik2021-12-27 13:15 JSON as Lists column data type MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi guys,
I am exploring LabKey Server (dockerized community version 21.10.0, PostgreSQL as database)
for some features needed by my client, among others - custom JSON data for each entity recorded in list.
I was able to find TEXT column data type as an option to record custom JSON content for record in list,
practically as string.
Keeping in mind that these are options to use JSON specific functions within PostgresSQL,
https://www.labkey.org/Documentation/wiki-page.view?name=labkeysql#postgresJson
could you guide me towards material, or give me advice about alternative and more appropriate
ways to record and query back JSON in list records - through a more specific column data type, or
some other way?
Cheers and thanks,
Adam

Keith2023-03-30 11:23Keith2023-03-30 11:23 LabKey Upgrade Recommended: Security Update MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

LabKey is releasing hotfixes that address an important security vulnerability. It affects all LabKey products and was detected by our engineering team. The following maintenance releases include the security update:

  • 23.3.2
  • 22.11.9
  • 22.7.9
  • 22.3.11
  • 21.11.11

It is imperative that system administrators upgrade their LabKey Server instances immediately to remain secure. An updated and secured version of LabKey Server has been made available. We apologize for the inconvenience and thank you for patching your installations.

Please note that this update also includes other valuable but non-critical security improvements.

At this time, we are not releasing additional details as we do not want to make this vulnerability public for exploitation. We have no indications that anyone outside of LabKey is aware of the detected vulnerability.

We take security related issues very seriously, please reach out via the support forum if you have questions.

Keith2024-04-10 10:38Keith2024-04-10 10:38 Security updates released for LabKey Server MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We are reaching out to inform LabKey Server users about a critical security update that was released on Monday, April 8. This update addresses several issues, including a vulnerability affecting LabKey Servers operating in Development mode.

Development mode provides enhanced logging and troubleshooting features to help identify and solve developer coding issues. While a Production server should never run in Development mode, some Staging, Test, and Development servers are configured to run in this manner. Follow these steps to check if a server is in Development or Production mode.

We recommend upgrading your LabKey Server instances to one of the updated releases (links below). If you have servers running in Development mode, this upgrade should happen immediately:

Similarly, for local development instances, it is recommended to pull the latest changes from LabKey’s Github repository to incorporate these critical updates.

katy wiseman2024-06-26 06:41katy wiseman2024-06-26 06:41 Adding units to built in units lists MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-26 12:42 LabKey Support Forum

Hi,

I have the units column turned on in my sample tables but someone has asked for a new measurement unit, block. I don't seem to be able to add to this table, am I missing something? Otherwise I will make my own list and lookup to that instead.

Best,
Katy

katy wiseman2024-06-11 04:38katy wiseman2024-06-11 04:38 Description field not showing on insert new row in sample table MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-21 08:31 LabKey Support Forum

Hi,

I seem to be having an issues with the description field on a sample table. The description field is ticked in the table set up, and the display options are ticked in the advanced setting under edit metadata, but the field isn't showing up in the insert rows page. It is showing up in the grid view and the update rows page though.

We're on version 23.11.11 in our prod instance. We've been having some issues updating to the latest version (posts by GrumpyBadger). The fields do seem to be working in our dev instance which is 24.3.4 but I wanted to check I wasn't missing something whilst we get it updated.

Best,
Katy

katy wiseman2024-02-26 05:30katy wiseman2024-02-26 05:30 Permissions settings for seeing created by colums in sample tables MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I've set up a series of tables in LabKey community where I am the site admin but other users are project and folder administrator. I am able to see the associated name of the user in the created by column however the other project/folder administrator is only able to see the key of the user (screenshot attached). Are there any permissions that I can give that aren't full system admin giving the ability to see the user names instead of the key?

I've tried giving her "See user and group details" permissions site wide but it didn't help.

Thanks,

Katy

katy wiseman2023-02-21 08:20katy wiseman2023-02-21 08:20 Sample naming pattern - yearlySampleCount MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I'm trying to use the yearlySampleCount in my sample naming pattern but even in a new folder with nothing else in it it's not starting at 1. I entered ${yearlySampleCount} as my name expression and my first test sample was given a name of 17886. The next one was give 17887. I made a new project folder and made a new sample type with ${yearlySampleCount} as the naming expression and my first sample was given 17888. It looks like the scope is maybe extending across folders, but the documentation says it's only "All Sample Types / Data Classes in the current folder".

Is this how it's meant to be working or am I doing something very wrong?

Thanks,

Katy

katy wiseman2024-02-29 03:05katy wiseman2024-02-29 03:05 Remove "Name" field from derive sample forms MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I'm trying to remove the name field from the deriving samples forms becasue my users will fill any available field and ruin my automated naming. I've worked out how to remove it from input forms through "edit metadata" and advanced setting, but I can't work out how/if I can remover it from here as well.

Any ideas?

This is LabKey community and we're on version 23.11.5 as of today!

Best,

Katy

katy wiseman2024-05-16 09:35katy wiseman2024-05-16 09:35 Issue with lookup to a query MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hey,

I've been trying (and successfully managed before) to set a lookup in a sample table to point to a query.

I've set my "group_id" column in my query as the key field:

   <column columnName="group_id">
    <isKeyField>true</isKeyField>
  </column>

And then gone to my sample table and made my lookup field and successfully chosen my query as the target table and pressed save.

However, it just hangs when I try and add a row and when I go back in to the table design it tells me that my query table doesn't exist:
Current Folder > samples > mixcr_output_paired_metadata_grouped . Error: Lookup target table does not exist.

I'm not sure where it's going wrong. Any ideas?

Best,

Katy

karenchait8412020-11-05 01:19karenchait8412020-11-05 01:19 Setting expression matrix assay MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello, I am trying to set up Labkey as our labs database. Some of the projects include expression matrix data but the assay format is not as I expected. If I understand correctly in the Samples Type the columns are the samples so it is not an annotation file for samples, and the Assay List is the expression matrix but in a list format and not a matrix. Is there a different way to do it? For now I uploaded the data to a subfolder defined as study, but the genes annotations can't be integrated with the data.
Thanks for any advice,
Karen

karenchait8412020-11-05 01:27karenchait8412020-11-05 01:27 automatically defining all dataset fields with a specific number format MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,
In study module when I create a new dataset how can I define all fields with type decimal to have a specific number format? I have a very long list of fields and it impossible to do it manually for all of them. I tried to define the number format of the study folder but it did not solve this issue.
Thanks,
Karen

Karen Bates2020-04-08 08:54Karen Bates2020-04-08 08:54 Specimens not populating after completed specimen archive import MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I imported a new specimens archive and it said it was completed. However, the specimens are not populating in the Specimens Data tab. I noticed when I was importing the archive, there was not an option for "Replace" or "Merge" as the documentation suggested there would be. But I wasn't sure if that was because this was the first archive import for the study so therefore it's not necessary to replace or merge anything.

Is there an additional step after the import that needs to happen for the specimens to populate?

Thank you for your assistance!

justtopass2022-08-14 14:19justtopass2022-08-14 14:19 Installation error of labkey on mac MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi

I am trying to install labkey on mac but I get the below error when launching it. Would you please advise? Thanks

HTTP Status 404 – Not Found

Type Status Report

Message The requested resource [/labkey] is not available

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

joseph mackey2020-03-06 12:05joseph mackey2020-03-06 12:05 LDAP Authentication for Linux - Community Version (Moved from Installation Forum) MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

LDAP Authentication for Linux - Community Version joseph mackey EDIT 2020-02-21 14:36
Status: Active

Hello,
I have installed Labkey 19.3 Community Version.
While I have a connection string that works from the test screen, I cannot configure it in the LDAP Auth Settings.
I have configured other applications for AD authentication and works when using the sAMAccountName and the full DN (so does the test)
Even when adding the configuration to the labkey.xml file, does not seem to make a difference.

Is there a way to enable verbose logging for LDAP auth attempts?
When adding DN to the LDAP principle template, is there a way to substitute sAMAccountName instead of email or UID?
When using My full DN I am able to log in with my email and AD password but i'm the only user able to login with AD credentials.
Build info:
OS RedHat Enterprise Linux 7.7
Product Name PostgreSQL
Product Version 12.1
JDBC Driver Name PostgreSQL JDBC Driver
JDBC Driver Version 42.2.8
Servlet Container Apache Tomcat/9.0.30
Java Runtime Vendor N/A
Java Runtime Name OpenJDK Runtime Environment
Java Runtime Version 13.0.2+8

chetc (LabKey Support) responded: 2020-03-06 10:55
Hello,

Yes there is. There is no need to enable anything since this is already happening. The labkey.log file should indicate a LDAP login failure and so should the AuditLog found in the admin console.

You should be able to sub for anything. The principal template is used to search through the LDAP global directory and reassociate one value for another.

You can find more information about LDAP Configuration on our Documentation site.
https://www.labkey.org/Documentation/wiki-page.view?name=configLdap

Thanks,
Chet

chetc (LabKey Support) responded: 2020-03-06 10:55
Hello,

We appreciate you utilizing our forums!

However this forum will become inactive very soon. To follow up on this question or to ask new question please use our new forum.

LabKey Support Forum - https://www.labkey.org/home/Support/LabKey Support Forum/project-begin.view?

Thanks,
Chet

marcia hon2018-04-12 07:35Jon (LabKey DevOps)2018-04-20 12:35 Dataset and ETL MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I would like the following workflow:

  1. Assay data is uploaded and modified
  2. Copy assay to a dataset
  3. Via ETL, pass this data to another table (created with a module).
  4. The stored procedure determines into which tables data goes to.

How can I make sure that duplicates don't happen between steps 2 and 3?

Thanks,
Marcia

marcia hon2018-06-08 10:19Jon (LabKey DevOps)2018-06-22 18:58 R Report Error MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I get the following error when trying to run an R Report:

Error executing command
javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).

My script is the following:

knitr::opts_chunk$set(echo=FALSE, cache=FALSE, comment=FALSE, comments = "", warning=FALSE, eval = TRUE, encoding = "native.enc")
#knitr::opts_chunk$get();
knitr::pandoc('script.Rmd', format='html')
currentdir <- getwd()
assign("html_filename", paste(currentdir, "/script.html", sep=""))
assign("out_filename", paste("/nip/NRG_Samples/@files/Reports/GenotypingResults_CNR1rs2023239_DRD3rs6280/Report_GenotypingResults_CNR1rs2023239_DRD3rs6280_", format(Sys.time(), "%Y-%m-%d_%H:%M:%S"), ".html", sep=""))

#list.files(path = ".", pattern = NULL, all.files = FALSE,
#           full.names = FALSE, recursive = FALSE,
#           ignore.case = FALSE, include.dirs = FALSE, no.. = FALSE)

file.copy(from = html_filename, to = out_filename)

system("rm script.* *.tsv")
#system("rm cache/*.*")
#list.files(path = ".", pattern = NULL, all.files = FALSE,
#           full.names = FALSE, recursive = FALSE,
#           ignore.case = FALSE, include.dirs = FALSE, no.. = FALSE)

<html>...</html>

I look forward to your suggestions.

Thanks,
Marcia

Will Holtz2018-06-08 10:53Jon (LabKey DevOps)2018-06-15 23:32 Grid button bars and the new UI MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

In a file-based module, Is there a recommended way to add custom buttons with icons instead of text to a grid button bar? I'd like to get my custom buttons to match the look of the standard buttons, but don't see an obvious way of doing this short of hacking around in the DOM.

thanks,
-Will

Sev2018-06-25 12:40Jon (LabKey DevOps)2018-07-09 15:51 Use trigger script to provide info message MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello

We would like to give users an informational message following a dataset row insert that meets certain criteria. We have trigger scripts setup to check the criteria but it seems the only way to provide messages to the user is via the errors object, which would cancel the insert.

Is there a way we can set a message after an insert into a dataset that wont result in the transaction being cancelled?

Thanks

Sev

Will Holtz2019-02-06 17:14Jon (LabKey DevOps)2019-02-14 10:17 Dev setup problem - jsp directory not found MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I'm setting up a development machine, which I have done successfully several times before, but I keep running into this error (from catalina.log):

ERROR ExceptionUtil            2019-02-06 16:57:46,724     http-nio-8080-exec-1 : Unhandled exception: 500: Unexpected server error
javac: directory not found: /Users/wholtz/labkey/release18.3/build/modules/core/classes/java/jsp
Usage: javac <options> <source files>
use -help for a list of possible options

INFO  SqlScriptManager         2019-02-06 16:57:46,725           Module Upgrade : start running script : ms2-0.00-16.10.sql
ERROR ExceptionUtil            2019-02-06 16:57:46,734     http-nio-8080-exec-1 : Exception detected
javac: directory not found: /Users/wholtz/labkey/release18.3/build/modules/core/classes/java/jsp
Usage: javac <options> <source files>
use -help for a list of possible options

The full catalina.log is attached. If I create the missing jsp directory, this process gets further but stops whenever another module tries to display jsp.

I'm running:
Labkey 18.3
Apache Tomcat 8.5.37
Mac OS X 10.14.3
Oracle JDK 1.8.0_191-b12
Postgres 10.4

any ideas would be appreciated.

thanks,
-Will

marcia hon2019-02-28 11:44Jon (LabKey DevOps)2019-04-11 11:58 Error with Foreign Keys MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

This issue happens sometimes with different values, and I don't understand why this happens:

I have a custom table created via ETL. It has a column that references a lookup table.

When I put legitimate data into this column, I get the following error:

SqlExecutor.execute(); SQL []; ERROR: insert or update on table "samples_samplesnotreceived" violates foreign key constraint "fk_samsamnotrecdiagnosis1"
Detail: Key (diagnosis1)=(Hallucinogen Persisting Perception Disorder) is not present in table "diagnosis".; nested exception is org.postgresql.util.PSQLException: ERROR: insert or update on table "samples_samplesnotreceived" violates foreign key constraint "fk_samsamnotrecdiagnosis1"
Detail: Key (diagnosis1)=(Hallucinogen Persisting Perception Disorder) is not present in table "diagnosis".

"Hallucinogen Persisting Perception Disorder" is indeed in the "diagnosis" table but it is unable to recognize it.

Please let me know how to correct this.

Thanks,
Marcia

ccharpen2019-10-30 15:53Jon (LabKey DevOps)2019-10-30 22:39 Is there a way to create a container from the java api? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I was able to get all containers programmatically, but now I need to create them. I thought, if there was such an API, it'd be here: https://www.labkey.org/download/clientapi_docs/java-api-9.3/doc/org/labkey/remoteapi/PostCommand.html

But it's not. Any suggestions?

Edward2018-03-21 09:02Jon (LabKey DevOps)2018-04-07 23:40 Specimen Archive frozen_time not visible MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I am uploading specimen archive to labkey where it has values for forzen_time specified in the tsv file. However, in the grid view labkey does not show the frozen_time column. Also the column is not visible when I modify the grid view and so I cannot include it. At the backend, the column is present in the database and has values added in it. Is this a bug?? or am I missing something?

Also, is it possible to add user-defined fields to the specimen event? I added (for example) a field "frozen_date" to the specimen event and it is reflected in the database but the grid view does not show me this new field.

Ben Bimber2018-04-11 13:28Jon (LabKey DevOps)2018-04-20 12:13 Handling deletes on ETL where the source is a LK dataset? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

The ETL allows you to have a RemoteQuery source, such as a dataset on another server. If the source table is large and relatively stagnant, doing an incremental merge (based on the modified field) is in theory nice. However, I need to deal with the potential of deletes from the source table. In our case, the source has auditing, so I assume I could use the audit tables to try to figure that out (although queries against this are painfully slow). Is there an example of an existing ETL that selects from datasets, dealing with deletes?

Thanks,
Ben

marcia hon2018-04-17 07:36Jon (LabKey DevOps)2018-04-20 12:26 Error: removing module and delete schema MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

At Admin > Site > Admin Console,

I'm trying to delete a custom module/schema.

I go to the screen that has the following and click "OK":

"
Are you sure you want to remove the "genotype_etl" module and delete all data in the "genotype_etl" schema? This operation may render the server unusable and cannot be undone!

Deleting modules on a running server could leave it in an unpredictable state; be sure to restart your server.
"

Unfortunately, it runs for a long time and times out. The module is not removed and the schema is not deleted.

Please let me know how to fix this.

Thanks,
Marcia

marcia hon2018-06-06 08:19Jon (LabKey DevOps)2018-06-06 10:46 Error in clicking "EDIT" or "DETAILS" of a ETL created table MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I created a table via ETL module and I populate it via a StoredProcedure module.

However, when I try to Edit / see Details of the records, I get this error:

An unexpected error occurred
ExecutingSelector; uncategorized SQLException for SQL []; SQL state [XX000]; error code [0]; ERROR: failed to find conversion function from unknown to text; nested exception is org.postgresql.util.PSQLException: ERROR: failed to find conversion function from unknown to text

I look forward to your response.

Thanks,
Marcia

marcia hon2018-06-13 08:50Jon (LabKey DevOps)2018-06-22 20:30 How to make a table not be deleteable MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have created a table via module-etl.

Is there a way to force the table to not allow records to be deleted?

Thanks,
Marcia

marcia hon2018-06-21 08:13Jon (LabKey DevOps)2018-06-29 12:54 Transformation Jobs MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have several Transformation Jobs.

Is it possible to have "Data Transforms" view only show the Transformations we want?

For example,

Let's say I have transformation jobs: T1, T2, T3, T4, T5

I would like the "Data Transforms" webpart to only show : T3, T5

Thanks,
Marcia

marcia hon2019-01-03 09:18Jon (LabKey DevOps)2019-01-17 16:54 Editable Queries MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

Is it possible to create queries whose values are editable?

Thanks,
Marcia

Matt V2019-05-14 09:59Jon (LabKey DevOps)2019-05-29 21:41 Webpart permissions per user or group MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,
I'm creating a few new webparts and we need to limit who can see them. The permissions matrix (https://www.labkey.org/Documentation/wiki-page.view?name=webpartPermissions) has usually done the trick, but in this case it would be incredibly useful (borderline necessary) to be able to limit their display to groups or even specific users if groups aren't an option.

Is there a way to do this, even at a code level?

tvaisar@u.washington.edu2020-04-01 10:47Jon (LabKey DevOps)2020-05-15 09:13 Bug in version 20.3.0 MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,
think there is a bug in v.20.3.0, in the MS2runs view RunSummary - the modifications link shows html code rather than a pop-up with list of modifications. See attached screenshot.

Tomas

caroline norris2021-05-20 04:03Jon (LabKey DevOps)2021-06-03 16:41 Creating a single survey that posts data to multiple lists MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Is is possible to use the Survey feature to create a single survey that posts data to more than one list on submission?

There is no information on how to do this in the Survey documentation, so just wondering if it's possible to do so without any custom development on our part?

jeckels2018-05-01 19:19Jon (LabKey DevOps)2018-05-04 19:53 Upcoming Subversion server migration MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Later this month, we will be migrating from our long-standing Subversion server, hedgehog.fhcrc.org, to a brand new server.

For automated systems like TeamCity, our automated build and test system, we will be doing a phased migration. We will start synchronizing the new server with the existing server, in a read-only capacity, that lets systems pull from it.

A little later, we will make the new server the system of record, and flip the original server to be a read-only system until it is completely retired. We will be migrating all branches, and retain the full source code history.

Stay tuned for more information, including target dates and instructions for how to migrate any existing enlistments you may have locally. We expect this should be a fairly painless operation for developers.

Thanks,
Josh

harris2018-05-09 12:02Jon (LabKey DevOps)2018-05-18 15:36 Managing Visits: Visit Import Mapping MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,
I imported custom visit mapping data, per the documentation instructions. It was my understanding that the Visit labels should be updated based on this custom mapping, but that does not seem to be the case. See attached snapshots.

  • Is there something I am missing to allow the visit labels per the custom mapping?
  • Is there a way to populate the visit labels without having to do this manually?
marcia hon2018-06-28 10:28Jon (LabKey DevOps)2018-07-06 15:56 Data Transforms MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have different users who use different parts of a project.

Now, there are around 6 data transformations.

I would like to refine this so that a certain individual will only see 1 data transform.

Is this possible?

Thanks,
Marcia

eva pujadas2018-11-01 07:15Jon (LabKey DevOps)2018-11-15 12:37 Revoke delete sample set permissions MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Dear LabKey developers,

Is there a way to disable the "Delete Set" button in the "Sample Set Properties" view (see attached screenshot) or to revoke delete permissions to a user while still allowing him/her to edit sample sets?

Thanks in advance,
Eva

ccharpen2019-10-07 16:16Jon (LabKey DevOps)2019-10-09 21:22 Get list of all folders (Java) MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

As the title says, I want to get a hierarchical list of all folders.

This is what I've tried:

// Taking a stab in the dark here with the 'core' schema and 'Containers' query. 
SelectRowsCommand cmd = new SelectRowsCommand("core", "Containers");

// null for root. I was hoping this would return something useful, but as far as I can tell, it doesn't. 
SelectRowsResponse resp = cmd.execute(cn, null);

Thanks.

bront@kcr.uky.edu2019-12-03 09:35Jon (LabKey DevOps)2019-12-03 21:01 Question regarding LDAP in upcoming release MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

Is it true that LDAP will be a premium feature in version 20.1? Will database authentication remain in the community edition?

https://www.labkey.org/Documentation/wiki-page.view?name=configLdap

thanks,

bront

Ronny Kursawe2020-04-24 08:29Jon (LabKey DevOps)2020-05-15 09:14 FileNotificationCommand failes with "You must use the POST method when calling this action." error MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I would like to trigger pipeline jobs on a 19.3 server via Java client API. Therefore, I included the labkey-client-api-1.0.1-SNAPSHOT-all.jar in the project and wrote this code:

String user = "username";
String password = "password";
BasicAuthCredentialsProvider cp = new BasicAuthCredentialsProvider(user,password);
Connection cn = new Connection("http://localhost:8080/",cp);
FileNotificationCommand cmd = new FileNotificationCommand();
FileNotificationResponse response = cmd.execute(cn, "dummy collaboration/dummy study");

The server response is a 405 with the message: "You must use the POST method when calling this action." The _httpClientContext property of the Connection object shows that a GET request has been send.

How can I configure to send a POST request?

marcia hon2018-09-10 09:24Jon (LabKey DevOps)2018-09-24 14:28 Editing more than one record at a time MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

In my use-case, we would like the option whereby more than one record is updated at the same time.

Please let me know how this may be achieved as it is a crucial ability in our LabKey project.

Thanks,
Marcia

tgaluhn2018-09-25 16:26Jon (LabKey DevOps)2018-10-05 15:22 Announcement: DataIntegration module move from svn to git MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

As previously announced, in the upcoming 18.3 release of LabKey Server, the DataIntegration (ETL) module will be a premium feature to support LabKey continued investment in its development. To support this, effective with SVN trunk commit r60372, the module has been moved from LabKey’s SVN server into a private, LabKey-managed GitHub repository.

This will impact you if:

  • You have a local development box
  • You are pulling source code from the trunk in SVN, or will be pulling source code for 18.3 or subsequent releases
  • And at least one of the following is true on your development machine:
    • You are writing ETL xml definitions in a module
    • You are running ETLs defined by any module
    • You are writing user defined ETLs in the application

If you will be affected by this change and have not already been contacted, or if you have any other questions or concerns, please contact your LabKey representative.

Thank you!

Georgia Mayfield2019-06-24 15:10Jon (LabKey DevOps)2019-07-11 21:17 XML Schema error on manual entry of dataset with NUMERIC datatype MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I got an XMLSchema error on implementing a dataset in LabKey running on Postgres 9.5 regarding the NUMERIC datatype. The dataset was implemented with a required column of type NUMERIC, without a precision or scale specified. This is a valid datatype is Postgresql, and according to the LabKey SQL documentation is a LabKey defined valid datatype.

Our users have specifically requested the numeric datatype as it allows both integer and decimal values without padding zeroes after the decimal point, unlike the INTEGER or DOUBLE datatypes, the concern being that padded zeroes may appear to add degrees of certainty to an assay result which may or may not be true.

The dataset is able to instantiate with the datatype fine, and bulk upload with both integer and decimal values completes successfully and can be repeated.

However, on single entry I get a error related to the type. I am able to load one record without error, and the second time I click on the INSERT button the attached error takes place. This happens regardless of whether or not I insert an integer or decimal In the NUMERIC column during single entry. Seems like single entry is treating the NUMERIC datatype like the INTEGER datatype, and bulk upload is handling it appropriately.

Thanks!

Best, GM

hilariagrieve2021-03-04 03:13Jon (LabKey DevOps)2021-03-09 12:20 Upgrade Labkey MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi, I have installed the 17.2 version of Labkey Server Community Edition. I designed and implemented a LIMS for the Forensic Genetics Laboratory. I want to upgrade to 20.11 version but I read that is not recomended to upgrade from 17.2 to 20.3 directly. Can you send me the old versions to upgrade step by step the versions of labkey? I tried to installed a new instance of labkey and import the study folder but the assay data is not imported correctly. Thanks you very much. Hilaria Grieve

Jon (LabKey DevOps)2021-04-27 11:13Jon (LabKey DevOps)2021-04-29 09:01 Maintenance Notice: Migration of artifactory.labkey.com for Thursday, April 29th @ 8am PST MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be working to migrating the current artifactory.labkey.com instance to a new server starting on Thursday, April 29th at 8am PST.

During this time, all TeamCity jobs will be paused and Artifactory will be unavailable during the migration.

The estimated downtime is approximately two hours.

We apologize for any inconvenience this may cause.

ophira2021-08-15 04:24Jon (LabKey DevOps)2021-08-19 15:51 Using Aliases for Sample Types MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

We created several Sample Types in our Community Edition Labkey Server.
In one of our Sample Types, each row has its own Name which is determined by us during upload, say HA_###.
There is also the Alias field, where we can use to have a more meaningful name, which we can also change without changing the row's Primary Key.

A few questions about this:

  1. can multiple Aliases be assigned to a single row? on first glance it seems that only one Alias can be assigned to a single row. If this is impossible, we can of course concatenate different aliases to a single value ("alias1;alias2")
  2. are there any "special" traits to the Alias field? for example, I noticed that it's not unique, so two rows can have the same alias. I didn't find a lot on this topic in the Documentation, perhaps I missed something.

Thanks,
Ophir

Ben Bimber2018-04-03 16:02Jon (LabKey DevOps)2018-04-05 13:31 ETL dataset with a large IN filter? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I'd like to ETL a large dataset from one server to a second labkey server. The source table has data on a large # of subjects; however, I only want data from about 1000-2000 of them, and that list changes regularly. That whitelist of subjects only exists on the destination server (in a table). Is there a good way to implement this type of filter in the ETL? I am assuming an IN clause (which is basically what the ETL presents) would be a problem with this many IDs, but I havent formally tested that. I am considering requesting the entire dataset in the ETL, and then trying to add some kind of java transform code that would run on the destination server to skip over rows I dont want (probably not the most efficient, but maybe better than nothing).

The best case would probably be to make that whitelist of IDs available to the source server in a database table, so I could write a SQL join query, and then request this query unfiltered on my destination server. It would in theory be easy enough to make an ETL in the opposite direction to sync the whitelist of IDs from the destination server to the source server; however, for a variety of reasons I cant practically deploy code to the source server without a lot of hoops. My understanding is that I'd need code in order to add this ETL, is that right?

Is there another way to think about this problem that I'm missing?

Thanks

Trey2018-07-16 14:02Jon (LabKey DevOps)2018-07-21 00:20 TeamCity 2018.1 Upgrade MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We plan on upgrading TeamCity to 2018.1 later this week.
In preparation, we may need to take it offline briefly over the next day or two. We will send out a warning an hour before any such outage. They should last no more than 15 minutes; in-progress builds will be unaffected and the server should pick up right where it left off once it comes back up.

The upgrade itself may take the better part of a day. This thread will be updated at least 24 hours before we start the upgrade process.

Edward2018-09-05 05:01Jon (LabKey DevOps)2018-10-05 14:51 Joining tables based on Subject Id and Visits/Sequence MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I have a visit based study where there are multiple observations for a specific subject per visit. I have defined a sequence map (e.g., 1-10 sequence belongs to visit 1). Is there a way to create a data grid by joining the tables not based on visits sequence but by subject ids and any other column?

The reason is because if I try to join the two table where in one table I repeated visits and the second table has only one visit per subject, then the resulting grid has only visit joined and all the other rows are appended as if they belong to a different visit, which is not true.

In database terminology, I am talking about an outer merge of two tables based on subject id and visit ( not by subject id and visit sequence number).
Can anybody help here?

Susan Hert2018-10-22 07:27Jon (LabKey DevOps)2018-10-22 10:18 Schemas directory moved - action required MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

With r60757 in trunk, the schemas directory (<labkeyRoot>/schemas) has been moved into the api module (<labkeyRoot>/server/api/schemas). This consolidation makes for one less special part of the build, which should allow a bit of clean up in a later release of the gradle plugins.

To avoid having two jars for these XSDs if you are building from source, you will need to do some special cleaning. For those who prefer a ham-fisted approach, you can accomplish this with

   gradlew cleanBuild
   gradlew deployApp

and a little patience. (And if you're picking up this change along with the update of the Gradle Plugins version, which happened with r60731, you'll essentially be rebuilding everything anyway, so you might as well use this option.)

If you prefer a more delicate cleaning, you can do:

   rm -r build/modules/schemas/
   rm build/deploy/labkeyWebapp/WEB-INF/lib/schemas-18.3-SNAPSHOT-schemas.jar 
   gradlew deployApp

In either case, you'll want to follow this cleaning with a Gradle refresh in IntelliJ so it will pick up the new location of the XSDs in its build as well.

Thanks!

Susan

Matt V2018-12-12 15:47Jon (LabKey DevOps)2018-12-26 14:09 Lookup Dropdown Widget for Dataset to Dataset FKs MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,
I have a handful of datasets with FKs (lookups) out to lists and other datasets. On the insert/edit forms, the list lookups render as dropdown widgets with available options included. However, the dataset-->dataset lookups continue to render as plain text input boxes.

Is this expected behavior, or is there some way to force the dropdown widget type? I've played around with query.xml, the gui, and even manually added FKs to the table with no luck.

Thanks.

marcia hon2019-03-21 11:21Jon (LabKey DevOps)2019-04-11 11:56 Modules Restart MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

Currently, when I have a new module, I end up restarting the whole LabKey application.

Is there a way for updating/adding modules without restarting the whole LabKey system?

Thanks,
Marcia

cnathe2020-11-17 06:30Jon (LabKey DevOps)2020-11-17 16:35 LabKey React npm package available - @labkey/components MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello All,
For any LabKey module developers out there who are working on creating LabKey pages or applications using React, we would like to let you know that the first public version of the @labkey/components npm package has been released and is available for use within your modules. This package contains some React based components, models, actions, and utility functions that will help with data access and display of LabKey schemas/tables in your React application.

You can get further information about the available components, how to install the package locally, and see some example usages from the Public API doc page.

Thanks,
Cory Nathe

Jon (LabKey DevOps)2021-05-27 15:18Jon (LabKey DevOps)2021-05-30 19:22 Maintenance Notice: Migration of artifactory.labkey.com for Sunday, May 30th @ 12pm PST MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be working to migrating the current artifactory.labkey.com instance to a new server starting on Sunday, May 30th @ 12pm PST

During this time, all TeamCity jobs will be paused and Artifactory will be unavailable during the migration.

The estimated downtime is approximately seven hours.

We apologize for any inconvenience this may cause.

Thomas2021-08-05 01:29Jon (LabKey DevOps)2021-08-05 10:18 edit on list deletes entries rather than updates them MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I installed the latest labkey version 21.7.0 on windows 10 and have encountered a funny behaviour:
When I edit an entry of a list (pencil symbol) the row disappears from the list rather than being updated
I can add new rows to a list without problems, but edit = delete

Is this a problem with my setup? Has anyone else seen this?

Many thanks

jeckels2021-10-18 10:12Jon (LabKey DevOps)2021-12-21 10:31 Retiring SVN server (svn.mgt.labkey.host) on November 1, 2021 MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

For LabKey Server version 20.11 (about one year ago), we completely migrated all code and configuration from out Subversion server into a variety of GitHub repositories. We retained full history on these files, so that you can see all of the edits made from the beginning of the project.

https://www.labkey.org/Premium/announcements-thread.view?rowId=20912

As we are no longer actively producing builds for older releases, we will be archiving the SVN server, svn.mgt.labkey.host, on or around November 1. While we will retain the ability to spin it up, we do not anticipate needing it again.

If you are using 20.11 or later, you shouldn't be affected at all. If you are using 20.7 or earlier and actively pulling code from Subversion, you'll be unable to do this anymore. Please reach out if you anticipate any problems.

Thanks,
Josh

johann pellet2021-10-21 09:05Jon (LabKey DevOps)2021-12-21 13:54 Maximum length for a "Subject identifier" MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I am trying to import some data in a dataset and I have for one entry this error:
ParticipantID value 'XXX_test13_LongAmp_100-extend_1pg' is too long, maximum length is 32 characters.

Howether, in the Dataset Definition, the type for a ParticipantID is text and the maximum text lenght is set to 4000 characters.
Do we have any lenght restriction for a subject identifier? If yes, could we increase the maximum length?

Thanks.

Regards,
Johann

hannahb2021-12-10 13:55Jon (LabKey DevOps)2021-12-21 10:31 High priority- Log4J security announcement MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Yesterday, researchers announced a critical vulnerability (CVE-2021-44228) in Log4J, a popular Java logging library that LabKey Server versions 20.11 and later use.

All LabKey Server administrators must take action to protect their installations immediately, especially installations that are open on the public Internet. We are making these changes for all hosted customers today which will involve a short server downtime. You will receive notice of this downtime shortly.

Right now, administrators must add a system property (-Dlog4j2.formatMsgNoLookups=true) so that Java will disable the part of Log4J with the vulnerability. The exact mechanism for setting this property depends on how Tomcat is installed and launched.

For Linux installations, locate the JAVA_OPTS or CATALINA_OPTS environment variables for your Tomcat installation. These settings are typically located under the /etc/init.d/tomcat startup file, the /etc/systemd/system/tomcat.service startup file, the /etc/default/tomcat file, or the CATALINA_HOME/bin/setenv.sh script. Once the JAVA_OPTS or CATALINA_OPTS line is located, add -Dlog4j2.formatMsgNoLookups=true to the end of the line and restart Tomcat.

For Windows installations running Tomcat as a service, typically admins should use the “tomcat9w.exe” utility to adjust the settings. The following doc page shows how to adjust these kinds of settings in a variety of environments.

https://www.labkey.org/Documentation/wiki-page.view?name=configWebappMemory

If you are setting the system property, you can confirm that it was picked up after restarting Tomcat. Go to the Admin Console->System Properties and confirm that the “log4j2.formatMsgNoLookups” property is shown with the value “true”.

https://www.labkey.org/Documentation/wiki-page.view?name=siteManagement#diagnostics

Early next week we will release a patched version of LabKey Server that incorporates Log4J 2.15.0 that eliminates the need for the system property going forward. We will post this version to support portals as soon as it is available.

Please reach out via your support portal with questions and requests for help in making these changes.

For more details on the Log4J vulnerability itself, see https://github.com/advisories/GHSA-jfh8-c2jp-5v3q

Will Holtz2018-03-14 13:16Jon (LabKey DevOps)2018-03-16 21:14 build fails with cannot find symbol StringUtils MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have been trying to build r56184 (I think this is the 17.3 release) and it was failing with:

/Users/wholtz/code/labkey/trunk/server/modules/query/src/org/labkey/query/controllers/AbstractExternalSchemaForm.java:18: error: package org.apache.commons.lang does not exist
import org.apache.commons.lang.StringUtils;
                              ^
/Users/wholtz/code/labkey/trunk/server/modules/query/src/org/labkey/query/controllers/AbstractExternalSchemaForm.java:49: error: cannot find symbol
        if (StringUtils.isBlank(bean.getUserSchemaName()))
            ^
  symbol:   variable StringUtils ```

It appears that org.apache.commons:commons-lang changed to org.apache.commons:commons-lang3 and that the dependency on org.apache.commons:commons-lang is no longer declared. 
``` ./gradlew :server:modules:core:dependencies | grep lang ``` only gives command-lang3:3.5 results. I'm pretty clueless about setting up dependencies in gradle, but I edited server/modules/query/build.gradle to include ``` compile group: 'commons-lang', name: 'commons-lang', version: '2.6' ``` within the dependencies block and was then able to get the build to successfully complete. There may be better ways to do this.

I solved my problem but wanted to post here in case someone else hits this or if an improvement needs to be made to the dependencies definitions.

-Will
harris2018-04-30 14:33Jon (LabKey DevOps)2018-05-07 10:25 Additional Keys MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

The Edit Dataset Properties for the Study folder allows one additional key column. How can we add more than one additional key column? I'm currently using Creating Multiple Dataset Definitions from a TSV File. Is it possible to specify additional keys in this definition file?

jin2018-08-08 16:30Jon (LabKey DevOps)2018-08-09 14:15 Downloading Files from Labkey Server MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I'm wondering if there's a way to download files from Labkey using a shell script or something similar. Is it possible using the WebDav functionality of Labkey?

Thanks!

marcia hon2018-08-10 10:54Jon (LabKey DevOps)2018-08-27 11:44 ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681 MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

How is this error created? How can I fix it?

An unexpected error occurred
ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681

org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist
Position: 681
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:450)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:280)
at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:102)
at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:97)
at org.labkey.announcements.model.AnnouncementManager.getAnnouncements(AnnouncementManager.java:115)
at org.labkey.announcements.AnnouncementsController$AnnouncementWebPart$MessagesBean.<init>(AnnouncementsController.java:2316)
at org.labkey.announcements.AnnouncementsController$AnnouncementWebPart$MessagesBean.<init>(AnnouncementsController.java:2306)
at org.labkey.announcements.AnnouncementsController$AnnouncementWebPart.<init>(AnnouncementsController.java:2255)
at org.labkey.announcements.AnnouncementsController$AnnouncementWebPart.<init>(AnnouncementsController.java:2286)
at org.labkey.announcements.AnnouncementsController$AnnoucementWebPartFactory.getWebPartView(AnnouncementsController.java:2348)
at org.labkey.api.view.Portal.getWebPartViewSafe(Portal.java:1208)
at org.labkey.api.view.Portal.populatePortalView(Portal.java:995)
at org.labkey.api.view.Portal.populatePortalView(Portal.java:959)
at org.labkey.core.portal.ProjectController$BeginAction.getView(ProjectController.java:327)
at org.labkey.core.portal.ProjectController$BeginAction.getView(ProjectController.java:280)
at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:80)
at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:177)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:415)
at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1208)
at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1144)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist
Position: 681
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2453)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2153)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:286)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:432)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:358)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:171)
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:119)
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
at org.labkey.api.data.dialect.StatementWrapper.executeQuery(StatementWrapper.java:1157)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.executeQuery(SqlExecutingSelector.java:391)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.getResultSet(SqlExecutingSelector.java:331)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:261)
... 53 more
DialectSQL = SELECT *
FROM (
SELECT
Threads.RowId AS RowId,
Threads.EntityId AS EntityId,
Threads.CreatedBy AS CreatedBy,
Threads.Created AS Created,
Threads.ResponseCreatedBy AS ResponseCreatedBy,
Threads.ResponseCreated AS ResponseCreated,
Threads.AssignedTo AS AssignedTo,
Threads.Container AS Container,
Threads.Title AS Title,
Threads.Body AS Body,
Threads.RendererType AS RendererType,
Threads.Expires AS Expires,
Threads.Status AS Status,
Threads.LatestId AS LatestId,
Threads.discussionsrcidentifier AS discussionsrcidentifier,
Threads.discussionsrcurl AS discussionsrcurl,
Threads.ResponseCount AS ResponseCount,
Threads.Modified AS Modified,
Threads.LastIndexed AS LastIndexed
FROM comm."Threads" Threads ) x
WHERE (Container = ?)
ORDER BY Created DESC
LIMIT 101

...

sofia g2018-10-30 03:08Jon (LabKey DevOps)2018-11-13 12:52 Email notification when adding an existing user to a new project MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello all,

I know there is the possibility to add a new person to a project, and send an email notifying them about it, by adding them as new members to a group and including a message in folder permissions. However, for users that are already existing, no email is sent when they are added to the new goup.

I was wondering if there is such a functionality, to inform users by email whenever they are added to a new project. Is this something you would consider developing?

Best regards,
Sofia

marcia hon2019-02-28 10:34Jon (LabKey DevOps)2019-04-11 12:05 Auditing Custom Tables MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I created a custom Schema and corresponding custom tables.

How would I enable auditing of these tables? Is there some special commands in XML?

Thanks,
Marcia

eva pujadas2019-05-24 07:31Jon (LabKey DevOps)2019-06-07 14:02 500: Unexpected server error when deleting folders MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We are running LabKey 18.3 and have realized that project users (non site admin users), users with "Project Administrator" and "Folder Administrator" can not delete the folders (or sub-folders) which were created by themselves.

That is the error message:

500: Unexpected server error

java.lang.NullPointerException
at org.labkey.pipeline.api.PipelineManager.purge(PipelineManager.java:240)
at org.labkey.pipeline.PipelineModule.containerDeleted(PipelineModule.java:237)
at org.labkey.api.data.ContainerManager.fireDeleteContainer(ContainerManager.java:2108)
at org.labkey.api.data.ContainerManager.delete(ContainerManager.java:1573)
at org.labkey.core.admin.AdminController$DeleteFolderAction.handlePost(AdminController.java:6823)
at org.labkey.core.admin.AdminController$DeleteFolderAction.handlePost(AdminController.java:6784)
at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:101)
at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:80)
at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:177)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:482)
at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1266)
at org.labkey.api.view.ViewServlet._service(ViewServlet.java:204)
at org.labkey.api.view.ViewServlet.service(ViewServlet.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1241)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:215)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
request attributes
LABKEY.OriginalURL = http://labkey.scicore.unibas.ch/labkey/Handschin Group/test3/admin-deleteFolder.view?
LABKEY.StartTime = 1558707176893
LABKEY.action = deleteFolder
org.springframework.web.servlet.DispatcherServlet.CONTEXT = Root WebApplicationContext: startup date [Thu Feb 21 09:56:07 CET 2019]; parent: Root WebApplicationContext
LABKEY.controller = admin
LABKEY.Counter = 0
org.labkey.api.util.ExceptionUtil$exception = java.lang.NullPointerException
X-LABKEY-CSRF = 5013174ea2e084d8241882c5d776835a
LABKEY.container = /Handschin Group/test3
LABKEY.RequestURL = /labkey/Handschin%20Group/test3/admin-deleteFolder.view?
LABKEY.OriginalURLHelper = /labkey/Handschin%20Group/test3/admin-deleteFolder.view?

core schema database configuration
Server URL jdbc:postgresql://127.0.0.1/labkey
Product Name PostgreSQL
Product Version 9.6.6
Driver Name PostgreSQL JDBC Driver
Driver Version 42.2.5

Do you have any idea about which could be the error cause?

Thank you very much for your support,
Eva

millerjw42019-11-13 12:09Jon (LabKey DevOps)2019-11-29 17:02 Creating views from queries via API MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

Currently we are using LabKey to connect to an external MSSQL data source. When the data source is connected, it gives the ability to view these tables via the built-in queries on the connected schema. However, I would like all of these views to be available for users of the project by default and not have to go in and manually create a Query Report based on each of the 100 or so queries.

Is there any way to insert these query report views into the labkey project programmatically?

Thanks,
Jonathan

stuartm2021-10-27 09:59Jon (LabKey DevOps)2021-12-21 10:31 Maintance Notice - Teamcity Server 10/28/2021 5PM - 6PM PDT MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing maintenance on the LabKey TeamCity server on Thursday 10/28/2021 between 5 PM - 6 PM PDT. This maintenance only affects developers. During this maintenance window the TeamCity Build Queue will be paused and no new builds will be started until the maintenance is completed. Any existing builds running on TeamCity agents will continue and not be interrupted.

We apologize for any inconvenience this may cause.

schwarza2023-02-10 09:27Jon (LabKey DevOps)2023-02-14 09:55 Validation for Participant IDs MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

Is it possible to create a regex validator for Participant IDs?

If not, is there any other way to enforce constraints on Participant IDs at the time users enter data (e.g., require the IDs to be 10-digit numbers)?

Thank you!

Leah

Tim Holland2018-08-01 08:12Jon (LabKey DevOps)2018-08-02 10:09 assayFileUpload: larger file from JS variable MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I'm attempting to use LABKEY.Ajax.request to create an assay file with assayFileUpload using the contents of a Javascript variable, but when the fileContents parameter gets too big (even just on the order of a few hundred lines) the request fails. It uses the method described in the documentation here: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Exp.Data.html, with something like the following:

LABKEY.Ajax.request({
    url: LABKEY.ActionURL.buildURL("assay", "assayFileUpload", LABKEY.ActionURL.getContainer()),
    params: { protocolId: assay.id, fileName: name, fileContent: lines },
    success: function(response) {
        // ...do something...
    },
    failure: formFailed
});

Is there a recommended way to create a larger file from the contents of a Javascript variable that gets around this limitation? I'd prefer not to have to edit the Tomcat configuration files to do this.

ophira2021-06-02 01:25Jon (LabKey DevOps)2021-06-03 16:17 Labkey Community Edition Consulting MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

We started using Labkey Community Edition. For now, we are trying to avoid the costs of Premium editions, at least until we are certain that this solution is right for our organization.

However, we would love to consult with more experienced people regarding some design and implementation topics.
For this purpose, we are looking for someone who offers consulting services.

Are there organizations/individuals outside of Labkey who offer such a service?

Thanks,
Ophir

slatour2018-03-20 08:24Jon (LabKey DevOps)2018-06-25 16:05 File Transfers Between Projects MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,
I am trying to transfer files between projects on LabKey without having to export the entire file repository of a project and then individually deleting folders once they are imported to the desired project. Is it possible to select one folder/file at a time to transfer between repositories in projects? As of right now I am only able to export a project and select files as an export option and have ALL files be exported into a repository within my desired new project. Unfortunately I only want a few select files not the entire contents of a repository.

Any help would be appreciated.

Thanks,

-Sara

marcia hon2018-04-19 09:20Jon (LabKey DevOps)2018-05-18 14:39 Custom Schema and Table MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I created a custom schema and table in Labkey via ETL script.

Now, when I am at Labkey GUI and open this table, the option to "delete" is unavailable.

Please is there a way to allow for "delete".

Thanks,
Marcia

Georgia Mayfield2018-06-20 12:05Jon (LabKey DevOps)2018-07-27 11:13 File Repository Module write location, etc. MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi all,

My team is considering using the File Repository module for file upload/storage and has some questions on its functionality/implementation.

First off, where does File Repository actually write the uploaded files (by default)? I'm unable to track uploaded test files on either the machine or in the database. Is there an API into the Webdav repository? Also, is there any sort of built-in backup for File Repository?

Is there's no backup in File Repository itself, then we would need to map the write space to a network drive, such as an RDS repository. What would you estimate to be the complexity/requirements of that?

Additionally, we would be interested in keeping metadata about the uploaded files and clickable links to the files in a database table to retain out current functionality. What sort of metadata capture features like this exist for File Repository, if any? Would it be possible to cap file size, if needed?

System Info

  • OS: rhel 6
  • Version: 17.3

Thanks,
Georgia Mayfield
OHSU Computational Biology

eva pujadas2018-11-12 05:12Jon (LabKey DevOps)2018-11-27 10:38 Default value for boolean list field can not be set to false MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Dear LabKey,

We are running LabKey 18.2.
We have observed that it is not possible to set a boolean type field to default value "false" through the "Edit Design" menu.

To reproduce this bug:

  • from a list click "Design"
  • "Edit design"
  • Select the "Boolean" type field and go the the "Advanced" tab
  • In "Default Value" select "SET VALUE"
  • Enable the checkbox for the boolean field and save
    As a result the default value for this boolean field will be set to "true", instead of "[none]", as expected.

But, if you want to have a default value "false", repeating the steps and setting it to "false" will not work, it will permanently stay to default value "true".

Thanks for your support,
Eva

Trey2020-10-27 13:41Jon (LabKey DevOps)2020-10-27 23:01 TeamCity Trunk project rename MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

As announced previously, we have finished migrating our source code from SVN to Git.
To reflect this, we are updating the "Trunk" project name on TeamCity. Henceforth, it will be labeled "Develop" to match our Git branch naming.

Note: In order to maintain backward compatibility with existing bookmarks and scripts, IDs will not be changed at this time.

chetc (LabKey Support)2020-12-03 10:17Jon (LabKey DevOps)2020-12-14 09:52 Apologies for inadvertent notification email "RE: Table view permissions" MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

On 12/2, you were inadvertently sent a message from LabKey Support with the subject "RE: Table view permissions." The default email setting for our support forum was set too broadly; we have corrected the problem. We sincerely apologize for the inconvenience.

bront@kcr.uky.edu2022-01-05 13:24Jon (LabKey DevOps)2022-01-05 13:48 Issue with web sockets MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

hi,

We are working on setting up 21.11.3-4-nci on Ubuntu 18.04 and are having some problems with web sockets. We're getting 404 errors.

Our LabKey installation resides on a separate server behind an Apache reverse proxy. The only allowed connection is TLS over port 8443.

Here is our current Apache setup:

RewriteEngine on
RewriteCond ${HTTP:Upgrade} websocket [NC]
RewriteCond ${HTTP:Connection} upgrade [NC]
RewriteRule /(.*) wss://172.19.20.190:8443/$1 [P,L]

ProxyPass / https://172.19.20.190:8443/
ProxyPassReverse / https://172.19.20.190:8443/

Any help or examples would be greatly appreciated.

Thanks,

bront

Susan Hert2018-06-18 16:55Jon (LabKey DevOps)2018-06-25 23:39 Gradle Plugins Version 1.3 MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

With r58720 in trunk, the version of gradlePlugins has been updated to 1.3. As always, the full list of changes in this version are available in the README for the gradlePlugin repository. There are a couple of changes here that I wanted to call your attention to, one of which requires action from you for better success in building.

For the impatient, the summary is:

  • The build process will now download and use particular versions of npm and node. To avoid conflicts with node module versions, you need to remove any existing node_modules directories in the LabKey modules' enlistment directories before doing a build with the 1.3 gradlePlugin version. (If using npm from the command line, you should also update your path to reference the downloaded versions.)
  • Local builds will now fail if a conflict in version numbers is detected between two builds of a module (but you can change this behavior if you so desire).

Node and NPM

The build process will download the versions of npm and node that are specified by the properties npmVersion and nodeVersion, respectively, which are defined in the root-level gradle.properties file of the LabKey enlistment.

To avoid potential conflicts with node module versioning, you should remove any existing node_modules directories from your LabKey modules' directories before doing your first build with the 1.3 version. The 1.3 version of gradlePlugin provides a task, cleanNodeModules, that does just this. You can invoke this task at the root level of your enlistment and it will execute the task for all LabKey modules that have a package.json file. Alternatively, you can manually remove the node_module directory for each LabKey module that has one.

When running npm from the command line, you will want to be sure to use the version of npm that the gradle build uses. You can reference the versions for the core module in the <LABKEY_ROOT>/build/modules/core/.node/ directory.

On non-Windows platforms, the deployApp command creates symlinks for both node and npm in the directory .node at the root level of your enlistment:

trunk$ ls -la .node/
total 0
drwxr-xr-x   4 developer  staff   128 Jun 14 14:11 .
drwxr-xr-x  38 developer  staff  1216 Jun 18 10:36 ..
lrwxr-xr-x   1 developer  staff    90 Jun 14 14:11 node -> /Users/developer/Development/labkey/trunk/build/modules/core/.node/node-v8.11.3-darwin-x64
lrwxr-xr-x   1 developer  staff    77 Jun 14 13:58 npm -> /Users/developer/Development/labkey/trunk/build/modules/core/.node/npm-v5.6.0

If on Windows, you can create the symbolic links in the <LABKEY_ROOT>/.node directory manually to point to the node and npm versions in the core module's .node directory, as shown above. You should then put <LABKEY_ROOT>/.node/node/bin and <LABKEY_ROOT>/.node/npm/bin in your path.

If not using npm on the command line, the symbolic links and path changes are not necessary. (Note that the <LABKEY_ROOT>/.node directory won't exist until you run a deployApp command after updating to version 1.3.)

Local Build Version Discrepancies

With the 1.3 version, a feature that was incubating in the last release has now come out of incubation with a slight behavior change. You may have noticed if you did a build after someone updated a version of an external dependency that you would get a warning message something like this about version conflicts that would be produced by the build.

WARNING: Artifact versioning problem(s) in directory /Users/developer/Development/labkey/trunk/build/modules/api/explodedModule/lib:
  Conflicting version of commons-compress jar file (1.14 in directory vs. 1.16.1 from build).
  Conflicting version of objenesis jar file (1.0 in directory vs. 2.6 from build).

Now your build will fail if such version conflicts are detected (because the build would not be in a good state if both versions were included). If you need to, you can change that behavior by setting a value for the versionConflictAction parameter, as described in the Version Conflicts in Local Builds documentation.

marcia hon2018-12-03 12:45Jon (LabKey DevOps)2018-12-17 23:08 Linking between custom tables MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have table_a with column "participant"

and

table_b with column "participant".

I would like for these columns to be linked.

I know I can do foreign/primary key.

In the attached screenshot, I would like the Participantid to link both tables.

In my second screenshot, this is what I would like to have. A location with all the links.

I look forward to your expertise.

Thanks,

stuartm2018-12-10 07:05Jon (LabKey DevOps)2018-12-17 23:17 LabKey Artifactory Maintenance 12/10/2018 7 AM PST - 10 AM PST MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

Hello,

We will be performing scheduled maintenance on LabKey's artifactory server ( https://artifactory.labkey.com/ ) on Monday 12/10 between 7AM and 10 AM.

This will affect build artifacts during this maintenance period.

While Artifactory is unavailable, you should use the --offline flag for gradle when building.

We are performing this maintenance to install the latest security patches for Artifactory and its underlying operating system.

marcia hon2019-02-28 10:13Jon (LabKey DevOps)2019-04-11 12:06 Name Checker Pipeline MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

We have demographics tables with participantIDs that must have the following format: AAA##AAA####### .

Is it possible to create a pipeline that will verify that these naming conventions are followed?

Thanks,
Marcia

sjvanro2020-11-12 11:41Jon (LabKey DevOps)2020-12-08 21:31 Table view permissions MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

When impersonating a reader for my tables, I'm able to see data within the table. However, users within a group under reader permissions are not able to see data in the tables. How do I resolve this?

katy wiseman2021-01-14 01:43Jon (LabKey DevOps)2021-04-19 23:53 XML counter columns MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I'm trying to get an XML counter column to work as described here at the bottom of the page:
https://www.labkey.org/Documentation/Archive/20.7/wiki-page.view?name=sampleIDs

However it's not working. I've created the sample type as it's shown in the example and pasted the XML code into the XML metadata but it's not generating an automatic 'SampleInLot' number for each new 'Lot' in the table.

This is the XML metadata suggested:

<tables xmlns="http://labkey.org/data/xml">
<table tableName="MySampType" tableDbType="NOT_IN_DB">
<javaCustomizer class="org.labkey.experiment.api.CountOfUniqueValueTableCustomizer">
<properties>
<property name="counterName">
SampleCounter
</property>
<property name="counterType">
org.labkey.api.data.UniqueValueCounterDefinition
</property>
<!-- one or more pairedColumns used to derive the unique value -->
<property name="pairedColumn">
lot
</property>
<!-- one or more attachedColumns where the incrementing counter value is placed -->
<property name="attachedColumn">
sampleInLot
</property>
</properties>
</javaCustomizer>
</table>
</tables>

Does anyone have any thoughts about how to get this to work? Or any other alternatives?

Thanks,

Katy

Will Holtz2018-06-08 10:18Jon (LabKey DevOps)2018-06-15 15:59 LABKEY.QueryWebPart.standardButtons documentation is out of date MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

It appears that some of the LABKEY.QueryWebPart.standardButtons no longer work on v18.1.

<div id="ExampleDiv" />
<script>
new LABKEY.QueryWebPart({
        renderTo: 'ExampleDiv',
        schemaName: 'core',
        queryName: 'users',
        containerPath: '/',
        buttonBar: {
            items:[
              LABKEY.QueryWebPart.standardButtons.insertNew,
              LABKEY.QueryWebPart.standardButtons.pageSize
            ]
        },
 });
<script/>

Results in a message at the top of the grid, "WARNING: button bar configuration contains reference to buttons that don't exist. Invalid original text: insert new, paging."

-Will

adam2018-11-20 08:27Jon (LabKey DevOps)2018-12-04 13:47 Trunk builds now require Java 11 (or 12) MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We made a change yesterday so that trunk now requires Java 11, no longer supporting Java 8. This is in preparation for our 19.1 release, which will support only Java 11 and 12. If you build LabKey Server from trunk, or build Java modules that need to run on trunk builds, you will need to install Java 11 on your development machine: https://jdk.java.net/11 You will also need to upgrade test, staging, and production servers before deploying any post-18.3 build. You can run Java 11 and 8 side-by-side in case you still need to run 18.2 or older versions.

For more information, see the 18.3 Release Notes, our Supported Technologies page, or this post on the LabKey blog:

https://www.labkey.com/the-java-shake-up-what-it-means-to-labkey-and-you/

Let us know if you have any questions.

Thanks,
Adam

stevec2020-11-09 10:17Jon (LabKey DevOps)2020-11-09 11:04 Some code issues found by Static Code Analyzer that may need reviewing MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I ran a static Code Analyzer on the Labkey code and found the following issues that may need reviewing:

========================================================================================

  1. The String equals method is called with argument org.labkey.api.util.Path, not a String. The equals method will always return false.

2 examples, please note the getPath() method returns a org.labkey.api.util.Path, not a String.

Example 1

org.labkey.api.webdav.AbstractWebdavResource
				.......
				.......
  	  			public boolean canRead(User user, boolean forRead)
    				{
        			if ("/".equals(getPath()))

=====================================================================================
Example 2

			org.labkey.api.webdav.WebFilesResolverImpl
				.......
				.......
				 public boolean canRead(User user, boolean forRead)
				 {
         			 if ("/".equals(getPath()))

~========================================================================================

  1. The org.labkey.api.util.Path equals method is called and passes a String, the org.labkey.api.util.Path.equals method will return false when the input Object is not org.labkey.api.util.Path,

File: ./server/modules/platform/core/src/org/labkey/core/webdav/DavController.java


	      public void writeProperties(WebdavResource resource, Find type, List<String> propertiesVector)

			......
			......
			.......

   	          String displayName = resource.getPath().equals("/") ? "/" : resource.getName();

========================================================================================



 		       public void writeProperties(WebdavResource resource, Find type, List<String> propertiesVector) throws Exception
        		{
            		json.object();
            		json.key("id").value(resource.getPath());
            		String displayName = resource.getPath().equals("/") ? "/" : resource.getName();

========================================================================================
~

  1. The HashMap.get(Object) call passes in object ColumnInfo which is not the key defined for the HashMap. The HashMap key is a String.


     Map<String, Integer> outputMap = DataIteratorUtil.createColumnAndPropertyMap(it);       // String is the key to this HashMap

        ColumnInfo containerColumn = table.getColumn("container");
 

        Integer indexContainer = outputMap.get(containerColumn);       // containerColumn is not a String

=====================================================================================

~
4. NullPointerExceptions

variable raf will get NullPointerException

class: org.labkey.core.webdav.DavbController$PutAction

WebdavStatus doMethod() throws DavException, IOException, RedirectException {

....
.....
....

           RandomAccessFile raf = null;
            OutputStream os = null;

            try
            {
                if (!exists)
                {
                    temp = getTemporary();
                   if (temp)
                        markTempFile(resource);
                    deleteFileOnFail = true;
                }

                File file = resource.getFile();
                boolean isBrowserDev = getUser().isTrustedBrowserDev();
                if (range != null)
                {
                    if (resource.getContentType().startsWith("text/html") && !isBrowserDev)
                        throw new DavException(WebdavStatus.SC_FORBIDDEN, "Partial writing of html files is not allowed");
                    if (null != AntiVirusService.get())
                        throw new DavException(WebdavStatus.SC_FORBIDDEN, "Partial writing not supported with virus scanner enabled");
                    if (range.start > raf.length() || (range.end - range.start) > Integer.MAX_VALUE)

=====================================================================================

variable context will get NullPointerException

org.labkey.api.reports.report.ScriptReportDescriptor

   public ReportDescriptorDocument getDescriptorDocument(ImportContext context)
    {
        // if we are doing folder export (or module file save), we don't want to double save the script property
        if (null != context)
            return getDescriptorDocument(context.getContainer(), context, true, Set.of(Prop.script.name()));
        else
            return getDescriptorDocument(context.getContainer(), context, true, Collections.emptySet());
    }

=====================================================================================

  1. To honor if statement, remove Semicolon at:

if (BACKGROUND_WELL_GROUP.equals(group.getName()));

class: org.labkey.elispot.ElispotPlateTypeHandler

    {
        Map<String, Map<String, Double>> backgroundMap = new HashMap<>();
        WellGroup backgroundGroup = null;

        for (WellGroup group : plate.getWellGroups(WellGroup.Type.CONTROL))
        {
            if (BACKGROUND_WELL_GROUP.equals(group.getName()));
            {
                backgroundGroup = group;
                break;
            }
        }
Trey2021-09-29 17:08Jon (LabKey DevOps)2021-12-21 10:30 Update to test binaries in develop MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We are making some updates to the LabKey 'testAutomation' repository. They may require some action for folks but, hopefully, shouldn't be too disruptive.

  1. We are removing test.properties from source control and replacing it with test.properties.template. The gradle plugin (or the test harness) will generate test.properties from the template if it is missing when running tests.
    This change is intended to clean up folks' changelists a bit, similar to when we made template files for numerous IntelliJ config files that are frequently edited by IntelliJ.
    Additionally, the template file has been reorganized and annotated to help folks to understand and use the various properties.

  2. We are removing the chromedriver and geckodriver binaries from source control. The versions that are checked in are quite old and it isn't great practice to commit binaries into source control anyway. Going forward, you will need to install them manually.

What do you need to do?

  1. Backup your test.properties file. Once the change is merged and you've synced, run './gradlew :server:testAutomation:initProperties' to generate a new test.properties from the template file. Then copy your properties to the generated file (or restore your backup, but it won't have all the nice new annotations).
  2. Install up-to-date versions of geckodriver/chromedriver. Add/update 'webdriver.gecko.driver'/'webdriver.chrome.driver' properties in 'test.properties' to point at the corresponding binary. (Note: You can also install them somewhere seen by your PATH and forgo the driver properties)

I expect to merge these changes on Friday to let folks prepare and to wait for a needed gradle plugin change.

rakesh yadav2021-11-23 12:01Jon (LabKey DevOps)2021-12-21 13:54 KeyError CSRF MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello Team,

We are trying to query the LabKey using python API but unfortunately not receiving a response but the status code is 200.

This was the response when we passed 'disable_csrf=True', while passing 'disable_csrf=False' we are getting the error "Key Error = CSRF"

Can you please look into the issue and help me where we are going wrong.

Thanks and Regards

marcia hon2018-09-17 10:40Jon (LabKey DevOps)2018-10-01 20:34 Setting Audit Detail Level MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I created a custom table using modules.

How can I enable auditing of these custom tables.

Thanks,
Marcia

Trey2018-12-10 14:12Jon (LabKey DevOps)2018-12-20 15:56 Selenium 3 upgrade MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

LabKey uses Selenium to drive our functional UI test automation. The LabKey test team has been migrating our test code to Selenium 3 over the past few months. This will, among other things, allow our tests to run tests against more current releases of Firefox and protect us from incompatibilities with new versions of Java.

We've fixed most of the major issues we've encountered and are close to the home stretch. We have been performing the migration in a separate branch and we will merge our changes back to trunk on Tuesday, December 11.

This update is almost exclusively to test code and the following steps are necessary only if you currently run UI tests locally against trunk with Firefox 45. Selenium tests running under Chrome should continue to work, though there may be new failures due to minor performance variation in the newer version of Selenium. JavaScript test frameworks such as Jest should be unaffected.

After the merge

  • Install a current version of Firefox if you don't have it. We've been validating with 62.0.2 on TeamCity. Geckodriver claims to support 57+ but we hit some pretty significant issues with versions as late as 60. We generally recommend using the latest ESR release but there will not be a reliable (for testing) ESR release until next July.
  • Make sure server/test/test.properties is up-to-date
    • selenium.firefox.binary should point at a new version of Firefox instead of ESR 45
    • Make sure webtest.webdriver.logging=false. You'll get an unreasonable amount of logging if that isn't set
    • Run a test and make sure it works for you. Nothing in-depth, just make sure it works.

Please bear with us as we iron out the last few kinks over the next couple of weeks. Let us know immediately if you have any concerns or if you have any difficulty after the merge.

marcia hon2018-04-18 12:42Jon (LabKey DevOps)2018-04-20 12:25 Transformation Scripts MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I would like to the following script to be the transformation script:

SELECT
Genotyping_Original."participant id"
FROM study.Genotyping_Original as Genotyping_Original
WHERE NOT EXISTS
(
SELECT *
FROM genotype_etl.genotyping_original as GenoETL
WHERE
Genotyping_Original."participant id" = GenoETL."participant id"
)

However, it is always not giving me the correct results.

I think it's because there are two queries being referenced: study.Genotpying_Original and genotype_etl.genotyping_original . So it seems that it is not able to get information from genotype_etl.genotyping_original .

genotype_etl.genotyping_original is a schema and table that i create in the same transform.module package.

I look forward to your expertise.

Thanks,
Marcia

marcia hon2018-04-19 08:08Jon (LabKey DevOps)2018-04-20 12:28 Transformation Scripts MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have an assay: assay.general.nrg_assay .

How do I reference this assay in the transformation scripts?

In the ETL structure, where do I put this scirpt?

Is it supposed to be ../queries/assay/general/nrg_assay.sql?

Thanks,
Marcia

marcia hon2018-08-10 11:04Jon (LabKey DevOps)2018-08-27 11:44 ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist Position: 714 MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

Another error... how can i solve this?

An unexpected error occurred
ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist Position: 714

org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist
Position: 714
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:450)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:280)
at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:102)
at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:97)
at org.labkey.api.exp.OntologyManager.getPropertyObjects(OntologyManager.java:609)
at org.labkey.api.reports.model.ReportPropsManager.getPropertyValue(ReportPropsManager.java:175)
at org.labkey.api.reports.model.ReportPropsManager.getProperties(ReportPropsManager.java:243)
at org.labkey.api.reports.report.ReportDescriptor.initProperties(ReportDescriptor.java:382)
at org.labkey.query.reports.ReportServiceImpl._getInstance(ReportServiceImpl.java:436)
at org.labkey.query.reports.DatabaseReportCache$ReportCollections.lambda$new$0(DatabaseReportCache.java:63)
at org.labkey.api.data.BaseSelector.lambda$forEach$3(BaseSelector.java:314)
at org.labkey.api.data.BaseSelector.lambda$forEachMap$1(BaseSelector.java:232)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:263)
at org.labkey.api.data.BaseSelector.forEachMap(BaseSelector.java:226)
at org.labkey.api.data.BaseSelector.forEach(BaseSelector.java:316)
at org.labkey.api.data.BaseSelector.forEach(BaseSelector.java:295)
at org.labkey.query.reports.DatabaseReportCache$ReportCollections.<init>(DatabaseReportCache.java:62)
at org.labkey.query.reports.DatabaseReportCache$ReportCollections.<init>(DatabaseReportCache.java:47)
at org.labkey.query.reports.DatabaseReportCache.lambda$static$0(DatabaseReportCache.java:45)
at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:144)
at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:81)
at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:203)
at org.labkey.query.reports.DatabaseReportCache.getReportsByReportKey(DatabaseReportCache.java:122)
at org.labkey.query.reports.ReportServiceImpl.getReports(ReportServiceImpl.java:551)
at org.labkey.api.reports.report.view.ReportUtil.getReportsIncludingInherited(ReportUtil.java:330)
at org.labkey.api.query.QueryView.addReportViews(QueryView.java:1650)
at org.labkey.api.query.QueryView.createReportButton(QueryView.java:1386)
at org.labkey.study.assay.query.AssayListPortalView.populateButtonBar(AssayListPortalView.java:59)
at org.labkey.api.query.QueryView.setupDataView(QueryView.java:2002)
at org.labkey.api.query.QueryView.createDataView(QueryView.java:1990)
at org.labkey.study.assay.query.AssayListQueryView.createDataView(AssayListQueryView.java:95)
at org.labkey.study.assay.query.AssayListPortalView.createDataView(AssayListPortalView.java:51)
at org.labkey.api.query.QueryView.renderDataRegion(QueryView.java:2101)
at org.labkey.api.query.QueryView.renderView(QueryView.java:1854)
at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
at org.labkey.api.view.HttpView.render(HttpView.java:136)
at org.labkey.api.view.HttpView.render(HttpView.java:121)
at org.labkey.api.view.HttpView.include(HttpView.java:516)
at org.labkey.api.view.HttpView.include(HttpView.java:493)
at org.labkey.api.view.HttpView.include(HttpView.java:481)
at org.labkey.api.view.VBox.renderView(VBox.java:80)
at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
at org.labkey.api.view.HttpView.render(HttpView.java:136)
at org.labkey.api.view.HttpView.render(HttpView.java:121)
at org.labkey.api.view.HttpView.include(HttpView.java:516)
at org.labkey.api.view.HttpView.include(HttpView.java:493)
at org.labkey.api.view.HttpView.include(HttpView.java:481)
at org.labkey.api.view.VBox.renderView(VBox.java:80)
at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
at org.labkey.api.view.HttpView.render(HttpView.java:136)
at org.labkey.api.view.HttpView.render(HttpView.java:121)
at org.labkey.api.view.HttpView.include(HttpView.java:516)
at org.labkey.api.view.HttpView.include(HttpView.java:493)
at org.labkey.jsp.compiled.org.labkey.api.view.template.HomeTemplate_jsp._jspService(HomeTemplate_jsp.java:224)
at org.labkey.api.view.JspView.renderView(JspView.java:168)
at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
at org.labkey.api.view.HttpView.render(HttpView.java:136)
at org.labkey.api.view.HttpView.render(HttpView.java:121)
at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:528)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:423)
at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1208)
at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1144)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist
Position: 714
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2453)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2153)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:286)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:432)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:358)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:171)
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:119)
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
at org.labkey.api.data.dialect.StatementWrapper.executeQuery(StatementWrapper.java:1157)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.executeQuery(SqlExecutingSelector.java:391)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.getResultSet(SqlExecutingSelector.java:331)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:261)
... 95 more
DialectSQL = SELECT *
FROM (
SELECT
ObjectPropertiesView.ObjectId AS ObjectId,
ObjectPropertiesView.Container AS Container,
ObjectPropertiesView.ObjectURI AS ObjectURI,
ObjectPropertiesView.OwnerObjectId AS OwnerObjectId,
ObjectPropertiesView.name AS name,
ObjectPropertiesView.PropertyURI AS PropertyURI,
ObjectPropertiesView.RangeURI AS RangeURI,
ObjectPropertiesView.TypeTag AS TypeTag,
ObjectPropertiesView.FloatValue AS FloatValue,
ObjectPropertiesView.StringValue AS StringValue,
ObjectPropertiesView.DatetimeValue AS DatetimeValue,
ObjectPropertiesView.MvIndicator AS MvIndicator,
ObjectPropertiesView.PropertyId AS PropertyId,
ObjectPropertiesView.ConceptURI AS ConceptURI,
ObjectPropertiesView.Format AS Format
FROM exp."ObjectPropertiesView" ObjectPropertiesView ) x
WHERE (ObjectURI = ?) AND (Container = ?)

...

dabaker32018-10-24 08:07Jon (LabKey DevOps)2018-10-24 10:46 SQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL Operations MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

• We are using Javascript + SQL
• We are trying to check for duplicates (with a algorithm since we have paired data). Then we want add the data if certain columns changed data for a give ID (ID Column, not unique column)
••• We do not want to update the rows, if the row data changes we want to create a new row.

Here are the questions:
1.). Is there a way to use drop/create temp tables and then remove these temp tables?
• Here are the operations I would typically use: CREATE, INSERT, DELETE, DROP, RANK which are all unavailable since they are not read only.
2.) Is there a way to direct insert rows from one table/list to another without first downloading the data?
3.) Is there a way to delete all rows of a table in Javascript quickly? It takes me 29 seconds to delete 3000 rows using the deleteRows() javascript API

Here is the current process:
1.) I am selecting all keys from the temp table (pre-made as a list) and downloading them the script as a data object using labkey.query.selectRows(): <1 seconds (also can have a problem with multiple users accessing the temp table at the same time)
2.) Deleting all rows using labkey.query.deleteRows()
3. ) Inserting the new data as a labkey.query.importData() JSON row object (~3000 rows x 14 columns, 328kb as a text file)
4.) SQL Operation to find duplicates (Based on stored queries/views)
5.) Get new/unique rows and download to javascript
6.) Insert new rows

stuartm2019-12-31 14:52Jon (LabKey DevOps)2020-01-02 10:57 LabKey Teamcity Server Maintenance 12/31/2019 @ 3 PM MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be preforming scheduled maintenance on the LabKey TeamCity build server today at 3 PM PST to address some latency issues with the TeamCity Database. Downtime is expected to be approximately 30 mins.

During the maintenance window the TeamCity build queue will be paused and resumed once the maintenance has been completed.

Susan Hert2021-04-26 11:43Jon (LabKey DevOps)2021-05-18 14:20 Updates to IntelliJ config files in develop MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have just merged PR #66 in the LabKey/server repository to bring in some changes to the IntelliJ configuration files and to add a couple of tasks for setting up IntelliJ to use the LabKey default configurations.  These changes should mean you have to adjust fewer IntelliJ configurations manually when starting with a new enlistment and have fewer files in your "Never Commit These" change list.  The changes work best with IntelliJ Version 2021.1 or later.  Older (but not ancient) versions work as well but require more manual adjustment.

To avoid conflicts between the configuration files that this change deleted and the ones that get modified by Intellij for your local installation, please do the following before pulling down these changes:

  • Shut down IntelliJ
  • Make a copy of your .idea directory (just in case)
  • Stash the current changes in the .idea directory using git stash push -- .idea/ from the root of your LabKey enlistment
  • git pull
  • ./gradlew ijConfigure
  • Open your existing project in IntelliJ

Then:

  • Open your project in IntelliJ
  • Do a Refresh in the Gradle window.
  • If you are not using IntelliJ version 2021.1 or later
    • Edit the LabKey Dev configuration to fix the module classpath so it uses labkey-server.server.modules.platform.api.main
    • Edit the LabKey Production configuration to fix the module classpath so it uses labkey-server.server.modules.platform.api.main

If you are developing with TypeScript:

  • Go to Preferences -> Appearance & Behavior -> Path Variables and set a value for NODE_PATH that will point to the node binary used by the build (e.g., C:\Development\labkeyHome\build.node\node-v12.16.0\bin\node, or, for Mac or Linux, use the symlink created by the build that is version-independent: /Users/develop/labkeyHome/.node/node/bin/node).
  • Go to Preferences -> Languages & Frameworks -> Typescript and verify the Node interpreter settings. The interpreter should be pointing to the node version that you set as the NODE_PATH variable. If not, or if you need to change this at some point, you can do that here.

For instructions on setting up a development environment from scratch, see this page.

If you have any problems that seem related to these changes, please let us know.

Susan

Lapalmej2017-09-14 06:48Jon (LabKey DevOps)2017-09-21 20:20 Specimen, Set primaryType and derivativeType using R API MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

We are trying to import specimens to Labkey using the R API. When we tried the specimen is import but some fields (primaryType and derivativeType) that we enter are blank. Here is the R code:

toadd = data.frame(patient_id = "ptid" , GlobalUniqueId = "test_1", sequenceNum = 1, drawtimestamp = "20170303", primaryType = "Tissue", derivativeType = "gDNA", stringsAsFactors = FALSE)

labkey.importRows(baseUrl = "https://1.1.1.1/labkey"
                    folderPath = "/X/Y",
                    schemaName = "study",
                    queryName = "SpecimenDetail",
                    toImport = toadd)

after those 2 commands the specimen is import but primaryType and sampleType are blank

I am using Labkey server 16.3 on Centos7. my R version is 3.4.0 and I am using Rlabkey package 2.1.134

Thanks for your help
Joel

marcia hon2018-08-15 08:31Jon (LabKey DevOps)2018-09-05 09:56 Tables - Change Values for Multiple Rows MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have a dataset/assay/list table.

There are multiple rows.

I would like to change the value for one of the columns for all of the rows.

I know that I can do this on a row-by-row basis using "edit".

However, is it possible to do this at the same time for multiple rows?

Thanks,
Marcia

bjorn vandewalle2019-01-30 05:37Jon (LabKey DevOps)2019-02-13 14:01 Resources to learn survey implementation? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I am trying to better understand the different ways surveys can be implemented in LabKey Server. Besides the Electronic Data Capture documentation available on the site, are there any other resources available to better understand the mechanics behind the surveys, especially related to the JSON coding and its links to lists?

Kind regards,

Björn Vandewalle

Jon (LabKey DevOps)2021-06-03 14:42Jon (LabKey DevOps)2021-06-03 16:25 Maintenance Notice: Artifactory outage for Friday, June 4th 2021 @ 8am PST MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

The artifactory.labkey.com server will be taking offline for maintenance on Friday, June 4th 2021 @ 8am PST for approximately 30 minutes max.

During this time, the site will be unavailable and the TeamCity build queue will be paused.

We apologize for any inconvenience this may cause.

Will Holtz2018-05-21 14:36Jon (LabKey DevOps)2018-06-05 10:59 Rlabkey: labkey.selectRows with colSelect=c("*") gives error MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

The Rlabkey documentation for the colSelect parameter of labkey.selectRows states, "(optional) a vector of strings specifying which columns of a dataset or view to import. The wildcard character ("*") may also be used here to get all columns including those not in the default view."

On LabKey v18.1:

  labkey.selectRows(
    baseUrl = 'http://localhost:8080/labkey/',
    folderPath = '/',
    schemaName = 'core',
    queryName = 'users',
    colSelect = c("*")
  )

returns:

Error in makeDF(mydata, colSelect, showHidden, colNameOpt) : 
  The column "*" specified in the colSelect variable does not exist in the result set. Be sure you are using the column name for colNameOpt="fieldname" and the column label for colNameOpt="caption". See the documentation for more details.
Called from: makeDF(mydata, colSelect, showHidden, colNameOpt)

This same call without the colSelect parameter defined returns the expected data frame populated with user attributes. Am I messing something up or is this a bug?

thanks,

-Will

marcia hon2018-06-04 09:50Jon (LabKey DevOps)2018-06-05 10:42 Deleting record in Assay from Stored Procedure MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have an ETL Stored Procedure that gets data from an Assay.

Now, I would like that once this data has been copied to another table, that the data is erased in the Assay.

How do I do this in the Stored Procedure?

Thanks,
Marcia

stuartm2019-01-17 22:00Jon (LabKey DevOps)2019-01-23 10:47 Labkey Teamcity Server Scheduled Maintenance Sunday January 20th, 2019 1300 PST MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

We will be preforming scheduled maintenance on the LabKey TeamCity build server this Sunday January 20th starting at 13:00 PST.

During this maintenance window the TeamCity build queue will be paused and no builds will be processed.

We expect this maintenance work to take approximately 3 to 4 hours.

ians2020-10-21 14:41Jon (LabKey DevOps)2020-10-27 23:01 Source Code migration to Git MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi All,

For 20.11 we have finished migrating our source code to git. Prior releases will remain in SVN and continue to be maintained based upon our Release and Upgrade policy. Changes and updates to to the source code for 20.11 and beyond will only be performed in git. If you are building from SVN trunk source please migrate at your earliest convenience.

Migration instructions:

For this example these instructions the original enlistment is in ./trunk/:

  1. Clone the new repo's develop branch to a sibling directory of your current enlistment
    git clone https://github.com/LabKey/server labkeyServer
  2. Then reenlist or copy over the server/modules directory to the corresponding new location
    cp -r trunk/server/modules labkeyServer/server/
  3. Reenlist or Copy over any additional enlistments (./remoteapi/*, ./server/testAutomation, etc.)
  4. Copy over any other changes -- specifically ./settings.gradle, ./server/configs/pg.properties, ./server/configs/mssql.properties, etc.
    cp trunk/server/configs/pg.properties labkeyServer/server/configs/pg.properties
  5. cd into the new directory
  6. execute ./gradlew cleanNodeModules from the new enlistment's root --- our initial testers ran into some conflicts and errors within these directories
  7. execute ./gradlew pickPg or ./gradlew pickMSSQL
  8. The new enlistment should then build as normal.
  9. (optional) If you are using IntelliJ, you will need to update the various project settings as you would for any new enlistment. Copying over the .idea directory can retain these, but it may also carryover some project specific settings that don't apply in the new location.

Ian

Chichero2021-03-15 11:22Jon (LabKey DevOps)2021-04-19 23:54 Editor permission without deleting permission. MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Dear LabKey team,

Is there a way to allow a user to insert and update data in a dataset and a sample set without allowing for deleting this data?

Could you propose a workaround if it is not possible?

Thank you,
Natalia

marcia hon2018-03-16 06:27Jon (LabKey DevOps)2018-03-23 16:00 Data Transform Webpart MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have created an ETL module based on your tutorials. It works fine.

However, how do I add a "Data Transforms" web part? Is there some sort of configuration that I must do before?

Thanks,
Marcia

marcia hon2019-01-03 12:53Jon (LabKey DevOps)2019-01-17 17:01 Custom Tables built via XML modules MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have several custom tables that each have a column called "participantid".

Is it possible to link these tables by participantid?

Thanks,
Marcia

Trey2019-05-29 14:59Jon (LabKey DevOps)2019-05-30 12:01 Git Migration: Test and customModules MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We just finished the next step in our effort to migrate our source code from SVN to Git. The previous step was the creation of the platform and commonAssays repositories.

This time, we are migrating our central automated test code (from server/test) and all of the modules from server/customModules. The bulk of this change happed in SVN revision 63845.

Steps for updating your local enlistment to the new structure:

  1. Before syncing SVN, create a patch with any pending changes to server/test, server/customModules, externalModules/onprcEHRModules, externalModules/maccoss, or sampledata/qc
  2. Get rid of the dependencies.txt files that are generated in some of the resources/credits directories for modules that have moved. You can do this manually or with the gradle command: './gradlew cleanWriteDependenciesList'
  3. Do an SVN update
    • You may encounter tree conflicts if you skipped the previous step. Delete the directories manually and resolve the tree conflicts to continue.
  4. Clone 'https://github.com/LabKey/testAutomation.git' into the 'server' directory
    • Optional - only necessary if you wish to run automated tests
  5. Clone any, all, or none of the new module repositories into 'server/modules'
  6. Update any customizations to your settings.gradle file to use the new module locations
David Owen2019-09-12 07:51Jon (LabKey DevOps)2019-09-26 12:44 Create Project through Python API MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Is it possible to dynamically create a project through the Python API? I couldn't find much information in the documentation. If not, are there any other tools I can use to programmatically create projects?

Thanks,
Dave

WayneH2019-09-13 08:30Jon (LabKey DevOps)2019-09-23 10:19 End session via API MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Good afternoon,

just wondering if there was a way to end a session or logout via the server api .. It doesn't seem to be described in the documentation..

Thanks,

Wayne.

dslater2021-12-17 13:09Jon (LabKey DevOps)2021-12-17 13:12 Upgrading Old Version of Labkey MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

With the log4j vulnerability out, we were going to upgrade our version of Labkey but its been a few years since we have. We are currently on version 16.3. It looks like from https://www.labkey.org/Documentation/wiki-page.view?name=upgradeSupportPolicy, I have to do a bunch of intermediate upgrades. I need to get version 19.1 but the previous release page at https://www.labkey.org/Documentation/wiki-page.view?name=prevReleases does not have it. How am I able to get 19.1?

eva pujadas2018-05-07 23:11Jon (LabKey DevOps)2018-06-01 22:52 Missing domain kind? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Dear LabKey team,

We are running different instances of LabKey server, in version 18.1, and when performing a database check or validation, we always get the error that for a certain database table "audit.XXXXXX_queryloggingauditdomain" its domain kind is not found. E.g.

03 May 2018 09:16:35,236 ERROR: Could not find a domain kind for audit.c3d268_queryloggingauditdomain

Do you know the reason? Is there something to worry about?

Thanks and best,
Eva

jeckels2018-05-23 20:01Jon (LabKey DevOps)2018-07-30 12:02 Subversion migration complete MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

The migration of our SVN server from hedgehog.fhcrc.org to svn.mgt.labkey.host is now complete.

As previously announced, the hedgehog.fhcrc.org server is now in read-only mode and it is not mirroring updates that are written to the new server, so you will need to relocate any enlistments you currently have. This is done with the 'svn relocate' command from the root of each enlistment.

For example, at the root of your trunk enlistment, you would use the following command:

svn relocate https://svn.mgt.labkey.host/stedi/trunk

And for an 18.1 enlistment, the command would be:

svn relocate https://svn.mgt.labkey.host/stedi/branches/release18.1

Your svn credentials will stay the same and cpas is still a read-only user on the new server. Note that you may need to include the --username argument to svn to make it use the correct account name. Patterns for the names have varied over the years, but an example would be:

svn relocate https://svn.mgt.labkey.host/stedi/trunk --username jeckels@labkey.com

Thanks,

Josh

timcooper2022-02-15 00:58Jon (LabKey DevOps)2022-02-15 14:15 Configuring PGAdmin4 to access the labkey database MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I'm attempting to add my local LabKey server to PGAdmin4. The server is running and accessible at:

http://localhost:8080/labkey

I followed the setup detailed here:

https://www.labkey.org/Documentation/wiki-page.view?name=installComponents

However, I am receiving an error:

Unable to connect to server: connection to server at "localhost" (127.0.0.1), port 8080 failed: expected authentication requrest from server, but received H

My PGAdmin settings are as follows:

Host name/address: localhost
Port: 8080
Maintenance database: labkey
Username: labkey (used to setup tomcat - I've also tried the username I initially created when first accessing the labkey server at http://localhost:8080/labkey)
Password: the database password associated with 'labkey'

What am I doing wrong?

Thanks!

Ben Bimber2018-03-21 09:14Jon (LabKey DevOps)2018-03-27 14:02 Running two distinct sites off one LabKey Server instance? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have talked with some of you about this, but I wanted to revisit something we're considering. We have a couple smaller grants that would like a public facing LabKey site. These will be low use, and there is a lot of extra cost and time from paying for distinct VMs, configuring LK instances, etc. specific to each project. It would be really nice if we could host all of these off one LK instance, possibly adding/removing projects over time. Obviously I can make separate projects for each one; however, it would be highly preferable to make each one look and behave to users as though it was the only thing being hosted off that LK instance. A single site with different project doesnt behave like that at all. My base assumption is that each 'site' is actually a project within LabKey.

Requirements would be:

  • dedicated URL for each project (i.e. https://myproject.ohsu.edu, not https://labkey.ohsu.edu/myproject/). I think I can do some configuration in httpd to shuttle traffic from that project-specific URL to the LK project URL, but have not tried that. i dont know if there will be gotchas from the different host names. it would be nice to keep the URL in the browser with that project-specific URL, as opposed to doing a one-time redirect and then using generic URLs.

  • whenever people access their project, all site UI should look as though it is specific to their "site". for example, each project should have their own logo, and maybe color scheme. i believe that's possible to configure project-level already

  • this does mean regular users should never get UI that directs them to anything outside their project. this is the trickiest one. a lot of UI in LabKey directs you to /home, and because there is one /home shared across all these 'sites', it would need to be non-branded. it's ideally a never accessed folder.

Has anyone attempted to thought about this, and are there any pitfalls or problems I'm not thinking about?

harris2018-05-01 17:24Jon (LabKey DevOps)2018-05-03 14:53 Missing Values MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,
I'm trying to import data in an Assay folder. The file I wish to import has some missing data represented as N/A. For example, a data field called Area is Number(double), but does not allow me to upload the file if there are missing data. I tried following the documentation for Manage Missing Value Indicators, but still doesn't allow me to upload anything with N/A. Perhaps I have misunderstood the Missing Value Indicator functionality. Is there a way to translate specific values to missing so that data can be imported?

slatour2018-05-09 13:06Jon (LabKey DevOps)2018-05-18 14:15 Automatic Assay Imports MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I am currently required to upload ~500 files and import them into assay. This is tedious for a couple of reasons.

  1. There is no "Select all" button within the repository so I must manually select each file and then select "Import Data" button from the File Repository.

  2. After (1) is completed I still need to click Save and Next Run for each item I want to bring into the Assay

Is there a programmatic way to do this? I have tried using both Python and R APIs with no avail. Python only allows one row updated per call which is not helpful considering each of the 500 files has ~ 1000 rows.

Thanks in advance for any feedback,

  • Sara
marcia hon2018-06-13 07:26Jon (LabKey DevOps)2018-06-22 20:40 Stored Procedure and Lists Dropdown List MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have a list that I wish to treat like a lookup table.

I have a foreign key for it via a table i created in etl module.

This linkage works, however, visually, there is no dropdownlist that informs the user of what values are appropriate.

Please could you let me know how to make this dropdownlist appear?

Thanks,
Marcia

WayneH2019-04-29 08:59Jon (LabKey DevOps)2019-05-13 15:20 Assign and manage folder permissions for containers.. MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi Jon,
kind of in follow up to previous but hopefully asking the question a bit more clearly what we have is a list of about 1000 folders that are to received uploaded files from collaborators that they also need to have access to.. We have recreated these folders as containers and now need to assign permissions to control access to data to specific users. And hoping to find a way to have those users access their folder directly without seeing other extraneous data. (minimized view) We just want them to see the folders that we are pushing the users to. Basically we need to add group permissions to containers at scale using the javascript api for over 1000 folders/containers.
Just a project that I am working with someone on and trying to help them figure out how to manage these folders and data access via the js API. It's tough because we are dealing with such a large number of folders..

Jon (LabKey DevOps)2022-06-09 16:46Jon (LabKey DevOps)2022-06-09 22:46 Maintenance Notice - Upgrade of labkey.org for Thursday, June 9th 2022 @ 9pm Pacific Time MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

LabKey.org will be offline this evening at 9pm Pacific Time for an upgrade to LabKey 22.6 along with additional maintenance tasks.

The site will be offline for approximately two hours.

Please save your work before this time.

WayneH2018-06-20 07:01Jon (LabKey DevOps)2018-08-23 13:45 LImit to insertrows query MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello all,

we employ a script on our labkey server v16.3 (prof+ edition) that inserts a data array of 10k+ entries via the insertrows api call and it is failing.. it has no issues with smaller chunks of data so it appears that we have crossed a size limit.. a fix is kinda obvious but wanted to confirm with you what those limits are and if chunking things would be the solution or you may have an alternate approach you could recommend.

thanks,
WayneH

Will Holtz2018-07-30 18:47Jon (LabKey DevOps)2018-08-06 20:35 Can't declare foreign key relationship in module schemas/<schema>.xml metadata MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I made a hard table that contains a foreign key to a Labkey userid (beyond the standard userid fields of createdby, modifiedby, owner). In the module schemas/<schema>.xml metadata I declared the foreign key. In my grid views, I could not get the userid lookup to occur; the integer value was displayed, not the displayname field. I know there are a lot of restrictions on access to core.users and related tables and I thought I was just not getting some of that right. However, I eventually realized that by declaring the foreign key in the module queries/<schema>/<query>.query.xml metadata, I was able to get the lookup to work. It is unclear to me if there is some reason why the foreign key declaration in the schema/<schema>.xml file did not work or if this behavior is unexpected.

I made a minimal reproduction that is contained in the attached module file. In this module, two identical hard tables are created. UserMetadata.SchemaMetadata has the foreign key declared in schemas/UserMetadata.xml. UserMetadata.QueryMetadata has the foreign key declared in queries/UserMetadata/QueryMetadata.query.xml. In both tables, "associateduser" is the userid field I am trying to get the foreign key metadata applied to such that the lookup of displayname occurs. In the Labkey query browser, the associateduser field in UserMetadata.SchemaMetadata does not show a lookup column, while the same field in the UserMetadata.QueryMetadata table has "core.Users.UserId (DisplayName)" as the Lookup column.

I did my testing on Labkey v18.2, Postgres v10.4, Tomcat v8.5.24.

thanks,
-Will

stuartm2019-05-30 11:40Jon (LabKey DevOps)2019-05-31 10:34 Scheduled Maintenance: artifactory.labkey.com Friday May 31, 2019 7 AM - 10 AM PDT MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We will be performing scheduled maintenance on LabKey's artifactory server ( https://artifactory.labkey.com/ ) on Friday May 31 2019 between 7AM and 10 AM PDT.

This will affect build artifacts during this maintenance period.

While Artifactory is unavailable, you should use the --offline flag for gradle when building.

We are performing this maintenance to install the latest security patches for Artifactory and its underlying operating system.

Susan Hert2019-10-17 14:45Jon (LabKey DevOps)2019-10-26 00:43 Gradle Plugins Version 1.8 MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

As of r64631 in trunk, the gradlePluginsVersion has been updated to v1.8. This version brings some exciting (to a build-geek) changes, including:

  • Removal of the schemas jar for all modules (the schemas classes are now compiled into the implementation jar for each module that has them)
  • Renaming of the jsp jar files (to remove the classifiers)

Because of these jar changes, once you pull in this change, you will want to do a cleanBuild. Without this, you'll have stale schema jars in your build directory and you will likely end up with two copies of some of the JSP jars, which could make for confusing behavior.

With this plugin version and going forward with LabKey 19.3, we will also be publishing the artifacts of our builds in Artifactory a little differently. Namely:

  • We will publish the api jars under the group org.labkey.api (e.g., you can reference the core api jar file as org.labkey.api:core:19.3-SNAPSHOT)
  • We will publish the .module files under the group org.labkey.module (e.g., you can reference the core module file org.labkey.module:core:19.3-SNAPSHOT@module. The "@module" is necessary because the extension of that file is .module instead of .jar).

You shouldn't need to make any changes in your current build as a result of this unless you had explicitly been referencing artifacts using 'org.labkey' as the group instead of using the BuildUtils.addLabKeyDependency method.

The .module files have pom files published with them that declare dependencies on other modules, which allows for an easier mechanism for getting all the modules required for a valid server deployment. We are, however, still auditing these dependency declarations to make sure they capture everything they should and there will likely be refinements of this in the future.

To enable the publishing of the module dependencies, the use of the property moduleDependencies in the module.properties file is now deprecated in favor of declaring dependencies within a module's build.gradle file. See more information on how to do this here.

If you have any questions or problems, please let us know.

Susan

Edward2020-05-17 16:25Jon (LabKey DevOps)2020-08-10 10:57 Checkbox to select all columns from a table in gridview MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

When customising a grid, I have to manually check each column from other tables to make a new grid view. I have wide tables with approximately 150 columns in each, and I have to click 150 times if I want to select all columns from any of these tables. Is there a way to customise my grid by clicking a single checkbox to select all the columns from any of the wide tables?

In the attached screenshot, I have highlighted a checkbox for the whole table but click is disabled for it. Is there any way to enable this checkbox so a user can select all columns from any table with a single click?

hilariagrieve2021-01-26 08:03Jon (LabKey DevOps)2021-04-19 23:53 Troubleshotting Reloading Study in a new server with a new version of Labkey Server MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi!
I have problems reloading the Study in a new version of Labkey Server in another Server.
I have instaled in one server Labkey v17 with a Study Proyect data.
Now we have e new server, and I installed the new version of labkey v20.7. I tried to creat the same Study Proyect exporting the Study Proyect from the old server and importing this export in the new server.
Everything was fine untill the pipeline got an error.

This is the log file:
26 ene. 2021 11:55:33,943 INFO : Starting to run task 'org.labkey.study.importer.StudyImportInitialTask' at location 'webserver'
26 ene. 2021 11:55:36,082 INFO : Reloading study from LIMS SGFER_2021-01-26_10-44-53.folder.zip
26 ene. 2021 11:55:36,222 INFO : Loading top-level study properties (label, start/end date, description, etc.)
26 ene. 2021 11:55:40,028 INFO : Done importing top-level study properties (label, start/end date, description, etc.)
26 ene. 2021 11:55:49,286 INFO : Loading QC states
26 ene. 2021 11:55:50,341 INFO : Done importing QC states
26 ene. 2021 11:55:50,349 INFO : Loading treatment data tables
26 ene. 2021 11:55:51,090 INFO : Done importing treatment data tables
26 ene. 2021 11:55:51,138 INFO : Loading assay schedule tables
26 ene. 2021 11:55:51,620 INFO : Done importing assay schedule tables
26 ene. 2021 11:55:51,780 INFO : Loading datasets manifest from datasets_manifest.xml
26 ene. 2021 11:55:51,900 INFO : Loading dataset schema from datasets_metadata.xml
26 ene. 2021 11:55:56,663 INFO : Successfully completed task 'org.labkey.study.importer.StudyImportInitialTask'
26 ene. 2021 11:55:56,910 INFO : Starting to run task 'org.labkey.study.pipeline.StudyImportDatasetTask' at location 'webserver'
26 ene. 2021 11:55:57,055 INFO : Start batch Lims SGFER.dataset
26 ene. 2021 11:55:57,079 INFO : Causas: Starting delete
26 ene. 2021 11:55:57,098 INFO : Causas: Deleted 5075 rows
26 ene. 2021 11:55:57,130 INFO : Causas: Starting import from dataset5001,tsv
26 ene. 2021 11:56:14,049 DEBUG: commit complete
26 ene. 2021 11:56:14,084 INFO : Causas: Successfully imported 5091 rows from dataset5001,tsv
26 ene. 2021 11:56:14,126 INFO : Secuenciacion ABI: Starting delete
26 ene. 2021 11:56:14,128 INFO : Secuenciacion ABI: Deleted 0 rows
26 ene. 2021 11:56:14,147 INFO : Secuenciacion ABI: Starting import from dataset5003,tsv
26 ene. 2021 11:56:15,202 ERROR: dataset5003,tsv -- Two columns mapped to target column: CausasId
26 ene. 2021 11:56:15,339 INFO : Extracción de ADN: Starting delete
26 ene. 2021 11:56:15,341 INFO : Extracción de ADN: Deleted 0 rows
26 ene. 2021 11:56:15,344 INFO : Extracción de ADN: Starting import from dataset5004,tsv
26 ene. 2021 11:56:15,716 ERROR: dataset5004,tsv -- Two columns mapped to target column: CausasId
26 ene. 2021 11:56:15,737 INFO : Cuantificación Fluorimétrica: Starting delete
26 ene. 2021 11:56:15,739 INFO : Cuantificación Fluorimétrica: Deleted 0 rows
26 ene. 2021 11:56:15,741 INFO : Cuantificación Fluorimétrica: Starting import from dataset5005,tsv
26 ene. 2021 11:56:15,899 ERROR: dataset5005,tsv -- Two columns mapped to target column: CausasId
26 ene. 2021 11:56:15,921 INFO : Cuantificación Real Time: Starting delete
26 ene. 2021 11:56:15,923 INFO : Cuantificación Real Time: Deleted 0 rows
26 ene. 2021 11:56:15,926 INFO : Cuantificación Real Time: Starting import from dataset5006,tsv
26 ene. 2021 11:56:16,017 ERROR: dataset5006,tsv -- Two columns mapped to target column: CausasId
26 ene. 2021 11:56:16,039 INFO : Amplificación por PCR: Starting delete
26 ene. 2021 11:56:16,041 INFO : Amplificación por PCR: Deleted 0 rows
26 ene. 2021 11:56:16,044 INFO : Amplificación por PCR: Starting import from dataset5007,tsv
26 ene. 2021 11:56:16,538 ERROR: dataset5007,tsv -- Two columns mapped to target column: CausasId
26 ene. 2021 11:56:16,545 INFO : Finish batch Lims SGFER.dataset
26 ene. 2021 11:56:16,549 INFO : Updating participant visits
26 ene. 2021 11:56:16,566 INFO : Updating participants
26 ene. 2021 11:56:16,749 INFO : Updating participant visit table
26 ene. 2021 11:56:16,750 INFO : Updating visit table
26 ene. 2021 11:56:16,752 INFO : Updating cohorts
26 ene. 2021 11:56:16,754 INFO : Clearing participant visit caches
26 ene. 2021 11:56:16,757 INFO : Finished updating participants
26 ene. 2021 11:56:16,807 INFO : Successfully completed task 'org.labkey.study.pipeline.StudyImportDatasetTask'

I attached a dataset file example that got that error, and this have 2 columns names that mapped to target column CausasId, "CaudasId" and "ParticipantId".

Please, can you help me to resolve this problem?
Everything is reloaded in the new study but the datasets data.
Thank you very much!
Hilaria

Chidi2018-10-29 08:27Jon (LabKey DevOps)2018-11-12 14:41 Python API - How do we view the names of all the Datasets in a given study using an API call? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

How do we view the names of all the datasets in a study? Thank you very much.

mkuscuog2021-12-10 12:32Jon (LabKey DevOps)2021-12-28 16:57 Cannot select 'Use SASL authentication' MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I am not able to check Use SASL authentication in Configure LDAP Configuration popup on Authentication page. It is always unchecked when I open the configuration popup back after successful Apply.

Is there anything I am missing here? I don't remember having this issue in the old UI (long time back)

Thanks,
Mehmet.

harris2018-05-09 12:21Jon (LabKey DevOps)2018-05-18 14:28 Importing updated bulk data MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,
I am using the import bulk data functionality to load data and the initial data load works out nicely. I am looking into operationalizing this and have a couple of questions.

  1. If I want to update a full set of data (i.e., overwrite the existing dataset), the import bulk data option does not allow me to do this. I've only been able to import new rows. Is there a better way to refresh the entire dataset without having to delete first and then re-import?
  2. Does LabKey have a way to keep track of study data snapshot versions? For Phase 1 dose escalation studies, we need to do this weekly and need to refer to data snapshots from previous weeks (i.e., I want to see the data we used for last week's dose escalation decision.).
Will Holtz2018-06-27 16:42Jon (LabKey DevOps)2018-06-29 13:47 Rlabkey calls from Transformation script result in 401 - User does not have permission to perform this operation MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I want to share a workaround to a problem I had. I'm not expecting anyone to follow up on this as I don't know how to reproduce the issue.

I have several file-based modules that contain assays with transformation scripts written in R. These transformation scripts use Rlabkey to read and write data from the Labkey instance. Today, these modules started hanging during the transformation scripts. It appears the Rlabkey calls back to the Labkey instance were failing with a 401 error and the error message ' User does not have permission to perform this operation.' This would even happen when performing the upload as a Labkey admin user. I created a test module that contained a minimal transformation script:

library('Rlabkey')
${rLabkeySessionId}
print(labkey.selectRows(
    baseUrl = '${baseServerURL}',
    folderPath = '/',
    schemaName = 'core',
    queryName = 'users',
))

On my development instance on my laptop, this transformation script worked fine, but on my production server it gave the 401 error. After a few hours of trying to figure out what was going on, I restarted my tomcat instance and everything started working again. Reloading the application within tomcat did not help -- only a full tomcat stop and start worked. So, if you are in a similar situation, try a tomcat restart.

I'm running Labkey v18.1, Tomcat v8.5.30, R v3.4.4, Rlabkey v2.2.1, R package httr v1.3.1 and R package rjson v0.2.19 on Ubuntu v18.04.

-Will

Matt V2018-11-16 14:09Jon (LabKey DevOps)2018-11-30 14:28 Filter By Group in SQL Query Views MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We're currently using the "Filter by Group" functionality (https://www.labkey.org/Documentation/wiki-page.view?name=filteringData#group) for datasets and it's great. However, we have a few external schema sql queries with qviews that combine multiple datasets and would like to be able to use this same functionality.

I created a <module>/resources/queries/myview.query.xml file, the corresponding qview, and attempted to add the "filter" option or simply set includeStandardButtons to true, but it appears "Filter" doesn't exist for views.

Is this correct or is there a way to replicate/enable that functionality for queries?

Thanks!

johann pellet2021-06-11 07:59Jon (LabKey DevOps)2021-06-11 11:25 Problem to Import FlowJo Workspace MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I have a problem with my dataset when I am trying to import a Flowjob Workspace in my Labkey server (LabKey Server 19.3.0).

11 Jun 2021 16:51:18,000 DEBUG: Analysis results contains 275 statistics, 76 graphs
11 Jun 2021 16:51:21,656 ERROR: FlowJo Workspace import failed
org.labkey.api.query.RuntimeValidationException: name: Value is too long for column 'name', a maximum length of 256 is allowed. Supplied value was 259 characters long.
    at org.labkey.api.data.Table.insert(Table.java:708)
    at org.labkey.flow.persist.FlowManager.ensureAttributeName(FlowManager.java:468)
    at org.labkey.flow.persist.FlowManager.ensureAttributeName(FlowManager.java:484)
    at org.labkey.flow.persist.FlowManager.ensureAttributeNameAndAliases(FlowManager.java:549)
    at org.labkey.flow.persist.FlowManager.ensureStatisticNameAndAliases(FlowManager.java:508)
    at org.labkey.flow.persist.AttributeSetHelper.ensureStatisticNames(AttributeSetHelper.java:109)
    at org.labkey.flow.persist.AttributeSetHelper.prepareForSave(AttributeSetHelper.java:89)
    at org.labkey.flow.script.WorkspaceJob.extractAnalysis(WorkspaceJob.java:371)
    at org.labkey.flow.script.WorkspaceJob.createExperimentRun(WorkspaceJob.java:170)
    at org.labkey.flow.script.WorkspaceJob.createExperimentRun(WorkspaceJob.java:148)
    at org.labkey.flow.script.AbstractExternalAnalysisJob.doRun(AbstractExternalAnalysisJob.java:233)
    at org.labkey.flow.script.WorkspaceJob.doRun(WorkspaceJob.java:138)
    at org.labkey.flow.script.FlowJob.run(FlowJob.java:76)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: name: Value is too long for column 'name', a maximum length of 256 is allowed. Supplied value was 259 characters long.
    at org.labkey.api.query.RuntimeValidationException.<init>(RuntimeValidationException.java:36)
    ... 19 more
11 Jun 2021 16:51:21,693 INFO : Job completed at 2021-06- 16:51
11 Jun 2021 16:51:21,693 INFO : Elapsed time 40.326s```

The 'name' is too long to be inserted in the database (as I undestand).  Could you please tell me what name refers to this value.

Thank you.

Regards,
Johann
Ronny Kursawe2021-08-12 00:51Jon (LabKey DevOps)2021-08-19 15:51 Changing Base Column Labels in a Study MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We are using Labkey 17.3 and the import of study data with "Study Reload" via "Pipeline". Data are uploaded via WebDav into the pipeline folder.

If I got it correctly, the "datasets_metadata.xml" file allows to specify the names, labels and descriptions of columns. Besides that, there is an option to specify the "subjectColumnName" in the "study.xml" file.

After reloading the study, there is still a section of "Base Columns" (Please find a screenshot enclosed).

Is there an option to change the label and description of such columns? It seems that the settings of the "datasets_metadata.xml" do not work.

katy wiseman2022-02-08 09:11Jon (LabKey DevOps)2022-02-08 10:38 Conditional formatting for duplicate values MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I'm trying to set some conditional formatting to show when the same entry is in a column more than once. Is there way to do this with the conditional format criteria for a given field?

Thanks,

Katy

slatour2018-11-12 07:08Jon (LabKey DevOps)2018-11-27 17:19 16.3 to 18.2 Upgrade - Issue Tracker Differences MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi LabKey,

When running a User acceptance test after upgrading to 18.2 from 16.3 we noticed that the issue tracker is no longer populated from all project users. We noticed that the assigned users list is populated only if a user belongs to a project group AND has an editor or higher role. What was the reasoning behind this change? As of current, some users are editors but since they do not belong to a specific project group we have added them ad hoc in an editor role, therefore they will no longer be populated in the assigned list for issue tracking in version 18.2.

Please advise,

-Sara

Manoj Ramakrishnan2019-01-07 10:30Jon (LabKey DevOps)2019-01-23 15:08 Running into ClassNotFoundException for Dev Labkey setup MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,
I am following the setup as provided by this link :https://www.labkey.org/Documentation/wiki-page.view?name=devMachine

When I start the LabKey Dev start config I am running into this error. Any help is appreciated. AS notes I am on Tomcat, 8.5.37 and OpenJDK 11.

Thanks,
Manoj

Jan 06, 2019 7:45:24 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor [/Users/mramakrishnan/Tomcat/Labkey/8.5.37/libexec/conf/Catalina/localhost/labkey.xml]
Jan 06, 2019 7:45:24 PM org.apache.catalina.loader.WebappLoader startInternal
SEVERE: LifecycleException
java.lang.ClassNotFoundException: org.labkey.bootstrap.LabKeyBootstrapClassLoader
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at org.apache.catalina.loader.WebappLoader.createClassLoader(WebappLoader.java:507)
at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:392)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5124)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

Jan 06, 2019 7:45:24 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/labkey]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [WebappLoader[/labkey]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5124)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10 more
Caused by: org.apache.catalina.LifecycleException: start:
at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:417)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 12 more
Caused by: java.lang.ClassNotFoundException: org.labkey.bootstrap.LabKeyBootstrapClassLoader

olnerdybastid2018-04-25 08:47Jon (LabKey DevOps)2018-05-01 09:51 Querying for median value in LabKey? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I am writing a query to summarize some assay results with some very basic statistics (std dev, average, and median). The first two are already taken care of using standard LabKey SQL, but calculating median looks to be a bit more difficult unless I'm overlooking something

Our LabKey instance is deployed over Postgres, and I've seen multiple examples of how to do this natively in Postgres (one example here: https://www.periscopedata.com/blog/medians-in-sql). But I don't see anything analogous to to Postgres' ROW_NUMBER() in LabKey SQL, or any way to select an element by its position in a subselect. Is there a way to calculate median in a LabKey SQL query, or has anyone found an acceptable workaround to achieve this?

Will Holtz2018-08-06 13:52Jon (LabKey DevOps)2018-08-20 14:36 RLabkey: makeFilter on non-existant column returns all values MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I was surprised to see that the following R code returns the total number of users and not zero:

library(Rlabkey)
nrow(labkey.selectRows(
baseUrl="http://localhost:8080/labkey/",
folderPath="/",
schemaName="core",
queryName="users",
colFilter=makeFilter(c("foo", "EQUAL", "bar")),
) )

Perhaps that is an 'undefined' operation and therefore this output is valid. I would find it more useful to get zero back as that is more likely to break my code and make me realize I made a typo in my column name. This is with LabKey v18.2 and Rlabkey v2.2.2.

thanks,
-Will

marcia hon2018-11-21 11:11Jon (LabKey DevOps)2018-12-05 20:13 File Repository MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

With regards to the File Repository, in your documentation, you state:

A launching point for structured data files like Excel files, that can be imported into the LabKey Server database for more advanced analysis.

Please could you clarify what this means?

Does it mean that I can create datasets that link to these excel files on the fly? How does this work?

Thanks,
Marcia

olnerdybastid2018-03-16 16:00Jon (LabKey DevOps)2018-04-08 00:14 API insertRows to add samples fails with error 'Name expression required' MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I am trying to use the LabKey API to programatically insert new samples, but keep getting an error stating 'Name expression required' (though I am providing a value for 'Name'). I've verified that my API calls to select rows are good in the same table I want to insert into, so it seems to me like the problem is with the structure of the data I'm trying to pass to LabKey, and probably stems from a misunderstanding on my part of how the sample schemas are structured. I've reproduced a minimal example below using R and the HIV Study tutorial (I get the same error using JS):


base = 'http://localhost:8080/labkey'
folder = '/Tutorials/HIV Study'
schema = 'samples'
query = 'Study Specimens'

session <- getSession(baseUrl=base, folderPath=folder)

# Get samples from the tutorial HIV study -- this works, returns 496 rows
samples = labkey.selectRows(baseUrl=base, folderPath=folder,schemaName=schema, queryName=query)

# Now take the first row, change the name, and try to upload this as a 'new' sample 
sampleToUpload = samples[1,]
sampleToUpload[1,'Name'] = 'thisIsMySample'

# Doesn't work, returns 'HTTP request was unsuccessful. Status code = 400, Error message = Name expression required'
labkey.insertRows(baseUrl=base, folderPath=folder,schemaName=schema, queryName=query, sampleToUpload)
olnerdybastid2018-05-10 14:55Jon (LabKey DevOps)2018-05-18 15:52 Using ExtJS to create an editable grid in a wiki page MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I am looking to build an interface for our users to view & edit a table of sample set properties. Based on the docs I see here, it looks like the LabKey-recommended solution is to use ExtJS to achieve this. I tried to create a quick proof-of-concept example to see how this might work building a very simple interface on a wiki page, but the rendering of the ExtJS grid panel isn't remotely usable in its current form (see attached screenshot). I'm assuming the issue is easily solved by loading an additional stylesheet in my wiki, but I've yet to find one bundled with LabKey that properly renders my ExtJS grids. Is there a step that I'm missing in order to create usable ExtJS components in LabKey?

Below is the code I used to make this example:

<head>
<script type='text/javascript' src='https://mylkserver.brown.edu/labkey/ext-4.2.1/ext-all.js'></script>
<script type='text/javascript'>

LABKEY.requiresExt4ClientAPI(function(){

  var lkstore = Ext.create('LABKEY.ext4.data.Store', {
      containerPath: '/NDDdb',
      schemaName: 'assay.General.NanoDrop QC',
      queryName: 'NanoDropQCSummary',
      parameters: {'runID': 122},
      autoLoad: true
    });

  var panel = Ext.create('Ext.grid.Panel', {
      store: lkstore,
      layout: {
        type: 'vbox',
        align: 'stretch',
        padding: 5
      },
      columns: [{
          id: 'sID',
          header: 'P number',
          dataIndex: 'sID',
          flex: 1,
          editor: {
              allowBlank: false
          }
      }, {
            xtype: 'checkcolumn',
            header: 'QC status',
            dataIndex: 'QCstat',
            width: 60,
            editor: {
                xtype: 'checkbox',
                cls: 'x-grid-checkheader-editor'
            }
        }, {
          header: '# of reads',
          dataIndex: 'nReads',
          width: 20,
          editor: {
              xtype: 'combobox',
              typeAhead: true,
              triggerAction: 'all',
              selectOnTab: true,
              lazyRender: true,
              listClass: 'x-combo-list-small'
          }
      }],
      selModel: {
          selType: 'cellmodel'
      },
      renderTo: 'QCPanel',
      width: 600,
      height: 300,
      title: 'View QC data',
      frame: true
  });
})

</script>
</head>
<body>
  <div id = "QCPanel" /></form>
</body>
marcia hon2018-07-03 12:17Jon (LabKey DevOps)2018-07-11 13:25 Gridviews per User MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have a big table.

Now, I wish to filter it so that only user_x would be able to view the table filtered on x and nothing else.

For example, I have a table :

Name Department Date
Marcia English Nov 21, 2018
Bobby French Aug 12, 2017
John Portuguese Oct 30, 2016

So, I want Marcia to only see data filtered on "English". With Bobby, "French" and with John "Portuguese".

Is this possible and how do you do this?

Thanks,
Marcia

marcia hon2019-01-08 08:29Jon (LabKey DevOps)2019-01-23 15:25 Custom Demographics Table MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I have built a custom demographics table in LabKey using ETL scripts.

I would like to leverage the demographics option that populates participants into study.participants.

How could I make my custom demographics table automatically populate study.participants?

Thanks,
Marcia

sleisle2021-03-17 16:08Jon (LabKey DevOps)2021-04-19 23:54 Custom Postgres Method in Labkey Query MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello Labkey,

I'm attempting to use a custom postgres method to join two tables in a file-based module query, but when running the query, it errors out stating "Method not found". I saw a similar forum post from 2013 that talked about this being unsupported, but seeing how old the post was I figured I should check if it has been updated. Is there any way to call a custom method, or is it unsupported?

Thanks!

bront@kcr.uky.edu2018-09-04 09:44Jon (LabKey DevOps)2018-09-05 10:48 Charts not displaying correctly MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

hi,

After upgrading to 18.2, I notice that charts aren't displaying correctly. Oddly, the data is is being displayed, but there are no graphics representing the bars or pieces of the pie charts (see attachment).

Here are the required files that worked prior to the upgrade:

"clientapi/ext4/Util.js",
"clientapi/ext4/data/Reader.js",
"clientapi/ext4/data/Proxy.js",
"clientapi/ext4/data/Store.js",

Here are the files I am requiring additionally in my efforts to fix the issue:

"vischart.min.js",
"vis/genericChart/genericChartHelper.js",
"vis/lib/crossfilter-1.3.11.min.js",
"vis/vis.min.js"

I am using the following to create the charts:

Ext4.create('Ext4.chart.Chart', { })

Am I missing a CSS file? Should I be using LABKEY.vis or LABKEY.chart? Something else?

Thanks for your help.

bront

WayneH2018-10-31 09:40Jon (LabKey DevOps)2018-11-14 14:18 401 unauthorized error... using deleterows query MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Good morning,

we have been testing a workflow that we have currently running on a project in 16.3 pro+ and tested same on 17.3 community now testing on 18.2 community. The process here includes a perl script that reads existing data in a dataset (specifically the LSID) and is supposed to use that to delete the rows of data in that dataset via deleterows api function and then write new data to that table. We are able to read the data no problem to get the LSID but when we try to delete the rows we get a 401 error. If we delete the data manually we get a 401 error when we try to write the new data to the table... This worked in testing v17.3.. Not sure why we are not getting it to work now.. Is there any change in the api in v 18 that may be causing this? Or are we missing some detail..?

thanks

Wayne H

WayneH2019-05-08 11:29Jon (LabKey DevOps)2019-05-24 19:12 list permissions MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

looking for some suggestions regarding how to configure permissions such that project users are able to submit/edit data in a list via a js coded wiki page. I want to give them editor permissions over data content but not over wiki or other content..

thanks,

WayneH2019-06-17 08:30Jon (LabKey DevOps)2019-07-02 16:57 Remove avatar field in user details MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Good morning,
not sure if anyone else has had this issue or question but we wanted to remove the avatar field from the user profile/user details view for a project and can't seem to find a way to do so.. The field is hidden in the default user view but this seems to have no impact on what shows when users edit their profile..

We welcome any ideas..

Thanks,

Susan Hert2021-02-05 11:44Jon (LabKey DevOps)2021-04-19 23:54 Removing server/modules/build.gradle file MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

In order to do away with some flawed logic related to applying the LabKey gradle plugins, I am planning to remove the server/modules/build.gradle file early next week in our develop branches, in time for LabKey Server version 21.3.0. If you are maintaining your own local modules, you may need to add or update your build.gradle files in order to apply the plugin that had been being applied from this file. See this page for more details.

After this file is removed, and we update to the 1.25.0 version of the LabKey Gradle plugins, if the Gradle plugin detects a module that has a module.properties file but does not have a module task, a warning like the following will be shown at the end of running the deployApp command:

The following projects have a 'module.properties' file but no 'module' task. These modules will not be included in the deployed server. You should apply either the 'org.labkey.build.fileModule' or 'org.labkey.build.module' plugin in each project's 'build.gradle' file.
        :server:modules:myModule
        :server:modules:otherModule

You can fix this by applying the appropriate plugin as suggested or by defining your own module task that creates the .module file needed for inclusion in your LabKey Server instance.

Also, if you previously had a build.gradle file that references configurations, tasks, etc. defined in the Gradle plugins, you may encounter errors during the configuration phase when running a Gradle task like the following.

FAILURE: Build failed with an exception.

* Where:
Build file '/path/to/Development/labkey/root/server/modules/myModule/build.gradle' line: 6

* What went wrong:
A problem occurred evaluating project ':server:modules:myModule'.
> Could not find method implementation() for arguments com.sun.mail:jakarta.mail:1.6.5 on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

This is fixed in the same way, by applying the plugin that had been being applied in server/modules/build.gradle.

If you have questions or encounter problems, please let us know.

Susan

Brian Connolly (Proteinms.net)2018-09-20 16:10Jon (LabKey DevOps)2018-09-21 13:11 A helper for using the python API MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

One of the big annoyances when using it the LabKey python api is that I need to define the URL for the LabKey server as a bunch of different variables. This makes it hard to write scripts/tools for non programmers to use.

This problem has gotten so annoying lately that I wrote a little function to help me The function simply takes a LabKey URL and breaks it into it's component parts. It has been so useful I figured I would share it.

The function which will take a URL and

  1. Check if it for a LabKey Server
  2. Rip the URL apart and find the hostname, port, protocol, context path and container path.
def read_url(url):
    """
    Break apart URL provided into protocol, hostname and context path
    :param url: LabKey Server url
    """
    url_config = {}

    # Parse the url
    o = urlparse(url)

    # Verify URL is a URL
    if not o.scheme:
        raise ExitCommandWithMessage("URL specified is not valid. Please enter valid URL")
    if not o.netloc:
        raise ExitCommandWithMessage("URL specified is not valid. Please enter valid URL")

    # Check if URL includes a context path
    test_url = o.scheme + '://' + o.netloc + '/project-getContainers.view'
    response = requests.get(test_url)
    if response.status_code == 200:
        context_path = None
    else:
        context_path = o.path.split('/')[1]
        test_url = o.scheme + '://' + o.netloc + '/' + context_path + '/project-getContainers.view'
        response = requests.get(test_url)
        if response.status_code != 200:
            raise ExitCommandWithMessage("URL specified is not running a LabKey Server. Please enter valid URL")

    # Determine if URL includes a container path
    # This assumes using new style LabKey URLs
    if context_path is None:
        if len(o.path.split('/')) < 3:
            # The url does not contain a container path
            url_config['container_path'] = None
        else:
            url_config['container_path'] = o.path.rsplit('/', 1)[0]
    else:
        urlpath = o.path.split('/', maxsplit=2)
        if len(urlpath) < 4:
            # The url does not contain a container path
            url_config['container_path'] = None
        else:
            url_config['container_path'] = urlpath[2].rsplit('/', 1).join('/')

    # Create output for function
    url_config['labkey_server'] = o.netloc
    url_config['context_path'] = context_path
    if o.scheme == 'http':
        url_config['use_ssl'] = False
        url_config['verify_ssl'] = False
        url_config['url'] = "http://" + o.netloc
    elif o.scheme == 'https':
        url_config['use_ssl'] = True
        url_config['verify_ssl'] = True
        url_config['url'] = "https://" + o.netloc
    else:
        raise ExitCommandWithMessage("URL specified is not valid. Please enter valid URL")

    return url_config

To use this function, all you need to do is

from labkey.utils import create_server_context
import urlparse

labkey_url = "https://www.labkey.org/home/Developer/issues/project-begin.view?"
# Validate LabKey Server URL break into component parts
url_config = read_url(labkey_url)
server_context = create_server_context(url_config['labkey_server'],
                                       url_config['container_path'],
                                       url_config['context_path'],
                                       use_ssl=url_config['use_ssl'],
                                       verify_ssl=url_config['verify_ssl']
                                       )
....

I hope this helps.

Brian

PS: I also have some code that can be used to access the server using username/password (via basic auth) instead of relying on a netrc file. I would be happy to share if anyone is interested.

fcf2019-06-24 16:12Jon (LabKey DevOps)2019-06-24 19:40 Duplicate rows query MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I am working off a list and trying to duplicate rows to allow editing of the duplicates. It is for an order book where people can re-order supplies, making changes to the previous orders as necessary. I am modeling the code after a bulk edit, but I am having trouble selecting data to be edited and inserted. Here is the bulk edit code:

                 var url = LABKEY.ActionURL.buildURL('query', 'updateQueryRows.view', null, {
                       schemaName: dataRegion.schemaName,
                       'query.queryName': dataRegion.queryName,
                       dataRegionSelectionKey: dataRegion.selectionKey
                   });
                   var form = dataRegion.form;
                   console.log(typeof form);
                   if (form &amp;&amp; verifySelected.call(this, form, url, 'POST', 'rows')) {
                       submitForm(form);
                   }
                   return false;

I thought it would be appropriate to change updateQueryRows to some form of a select statement, but cannot get it to work. Is there a duplicate rows query function? Any ideas?

Will Holtz2018-03-29 18:46Jon (LabKey DevOps)2018-03-30 14:47 Null pointer exception from js call LABKEY.Message.sendMessage MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

In Labkey v17.1 (and earlier) I could send emails from a dummy user (announce@example.com) in my Labkey instance using the following code:

  <script type="text/javascript">
         function errorHandler(errorInfo, responseObj)
         {
             LABKEY.Utils.displayAjaxErrorResponse(responseObj, errorInfo);
         }
        function onSuccess(result)
         {
             alert('Message sent successfully.');
         }
        LABKEY.Message.sendMessage({
             msgFrom: 'announce@example.com',
             msgSubject: 'Testing email API...',
             msgRecipients: [
                 LABKEY.Message.createRecipient(LABKEY.Message.recipientType.to, 'realuser@example.com'),
             ],
             msgContent: [
                 LABKEY.Message.createMsgContent(LABKEY.Message.msgType.plain, 'This is a test message')
             ],
             success: onSuccess,
             failure: errorHandler,
         });
         </script>

In v18.1 this results in the user viewing the page with the js code to get the error 'An error occurred trying to load: java.lang.NullPointerException' and the following appears in the logs:

WARN SendMessageAction 2018-03-29 18:03:42,943 http-bio-443-exec-8 : The user: announce@example.com is either disabled or has never logged in and has been omitted.
WARN MailHelper 2018-03-29 18:03:43,050 http-bio-443-exec-8 : Exception sending email; check your SMTP configuration in labkey.xml
from: null
to: realuser@example.com
subject: Testing email API...
java.lang.NullPointerException
at org.labkey.api.util.MailHelper.getAddressStr(MailHelper.java:242)
at org.labkey.api.util.MailHelper.addAuditEvent(MailHelper.java:226)
at org.labkey.api.util.MailHelper.send(MailHelper.java:200)
at org.labkey.announcements.SendMessageAction.execute(SendMessageAction.java:132)
at org.labkey.announcements.SendMessageAction.execute(SendMessageAction.java:58)
at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:180)
at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:125)
at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:177)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:415)
at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1231)
at org.labkey.api.view.ViewServlet._service(ViewServlet.java:205)
at org.labkey.api.view.ViewServlet.service(ViewServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:214)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:279)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

Because my dummy user has never logged into my Labkey instance, getEmail(from) in server/modules/announcements/src/org/labkey/announcements/SendMessageAction.java line 124 returns null in v18.1 and this is the root of the problem. I logged into my dummy account and this resolved the issue for me, but I thought I'd report it in case there is a desire to clean up the error handling here.

-Will

celikalper842018-05-31 10:27Jon (LabKey DevOps)2018-06-29 13:44 users groups roles for all projects in a single table MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

We have a platform that uses labkey community edition among other tools. Each of these tools have their own access regulations user roles etc and we want to combine them into a single location for tracking and auditing purposes.

I have been playing with the core schema of labkey and seems like a combination of principals, members, roleassignments, containers and usersdata should give me what I need. The information I'm trying to extract is as follows:

username, name, last name, email, group, groupid, role, container (path included if possible).

It seems like groups and subgroups are also treated like users, and the column names of these tables are not immediately intuitive to me.
I know that we can get this from view in the GUI but what we want to achieve is a daemon that can query this at certain intervals (every night or twice a day) in an automated fashion.

Is there a SQL query that can achieve this goal or at the very least where can I find information about how these tables are related to one another.

Thanks
Alper

Will Holtz2018-06-04 23:23Jon (LabKey DevOps)2018-06-22 18:43 Data Grids and updating the URL to reflect current state MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

executeQuery.view does an excellent job of updating the page URL to keep track of the current filters, sorting and paging, such that if a user follows a link from the data grid and then uses the back button, the page is the same as when they left it. However, executeQuery.view isn't easy to extend without writing Java code. I frequently use javascript QueryWebParts so that I can easily customize and extend data grids, but my users get annoyed that these QueryWebPart data grids do not nicely retain their state like executeQuery.view does.

Is there some simple way to get QueryWebParts to update the URL to capture the current state of the grid? I understand there is the complexity of needing to deal with multiple QueryWebParts on a single page, but that doesn't seem like a show stopper. I likely can build this out using LABKEY.DataRegion events, but I can't imagine I'm the first person with this need and I'd rather not reinvent the wheel.

thanks,
-Will

dhanya sathyan2019-02-01 14:41Jon (LabKey DevOps)2019-02-07 10:39 Labkey Server on development environment is not working MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have been following the instructions on the Labkey website https://www.labkey.org/Documentation/wiki-page.view?name=devMachine accurately to set up my development environment. I also might have to tell you the Build from gradlew worked to completion showing me no errors. But after deploying it into Tomcat, the Lab key server shows the below error when we browse to : http://localhost:8080/labkey .

Configuration Error Detected at LabKey Server Startup
This server does not appear to be compiled for production mode
There is a problem with your configuration. Please contact your organization's server administrator for assistance or visit the LabKey Support Portal to view additional support options.
org.labkey.api.util.ConfigurationException: This server does not appear to be compiled for production mode
at org.labkey.api.module.ModuleLoader.verifyProductionModeMatchesBuild(ModuleLoader.java:476)
at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:344)
at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:249)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4657)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5304)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

So, then I build the code in production mode, which also ran smoothly . But again, after deploying it into Tomcat, the Lab key server shows the below error when we browse to : http://localhost:8080/labkey :

500: Unexpected server error. If contacting support regarding this error, please refer to error code: 2M8ESF
org.labkey.jsp.compiled.org.labkey.core.login.setPassword_jsp
java.lang.ClassNotFoundException: org.labkey.jsp.compiled.org.labkey.core.login.setPassword_jsp
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at org.labkey.api.jsp.JspClassLoader.loadClass(JspClassLoader.java:71)
at org.labkey.api.jsp.JspLoader.createPage(JspLoader.java:62)
at org.labkey.api.view.JspView.<init>(JspView.java:90)
at org.labkey.api.view.JspView.<init>(JspView.java:99)
at org.labkey.core.login.LoginController$AbstractSetPasswordAction.getView(LoginController.java:1490)
at org.labkey.core.login.LoginController$InitialUserAction.getView(LoginController.java:1785)

Your help in this regard is much appreciated.

WayneH2019-11-06 07:13Jon (LabKey DevOps)2019-11-22 12:02 Project User View error code 45B01R? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Good morning..

We recently found an error in one of our projects that has multiple group assignments to users. It appears as if the group ids are being interpreted as a string instead of integer values when there are multiple. One of the errors codes we got is 45B01R.. It generally says it cannot cannot convert the group ids to integer. We have two server implementations same version this one is the only one that shows the error.. the behavior this causes is the project user view cannot show the complete list of users because it stops rendering the list when it hits the error.

Any thoughts?

david sievers2020-01-28 09:34Jon (LabKey DevOps)2020-02-03 11:18 Transformation script that also queries a LabKey List/Assay? MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I'm developing a host of transformation scripts in Python, and I've been successful so far getting a couple examples to function. However, now I would like to be able to access more input variables, shall I say metadata, that I'm also storing in the parent LabKey Project folder as a List. I can access what is in the runProperties.tsv file, but I don't think this or the paths within will get me where I need to go.

What I'd like to do is validate naming conventions of incoming data columns against a directory of valid names within the transformation script. (Of course I could just use the Assay design itself to validate against during the import process, but I need to actually do this within the transformation script for my application.) I had initially thought of storing this directory in a text file next to the transformation script or also creating a list/set/dictionary object directly in the script. However, placing this data as a transparent and easily accessible LabKey List (or some other type of LK object) is most desirable.

Is there a preferred method of accessing LK Assay/List/DataClass tables from a transformation script? I could try using the LK API tools, but I'd like to avoid additional outside module import/usage within the script, and also avoid needing user credentials within the script, if there is a more direct method.

Thanks!

katy wiseman2022-06-14 09:57Jon (LabKey DevOps)2022-06-16 10:19 SQl WHERE statement trouble MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I'm trying to use a vey simple WHERE statement in my SQL query but I keep getting an error saying could not resolve column. You documentation seems to suggest what I'm trying to do is possible so I'm a bit lost.

I'm trying to do:
SELECT
*
FROM miseq_results

WHERE well = "A01"

and I get this error:
Query 'lists_temp_5991' has errors Edit Query
Error on line 5: Could not resolve column: A01 edit lists_temp_5991

and your documentation says that it should be possible to use where to filter on a value, rather than column=column:
Filter the results for certain values. Example:

SELECT *
FROM "Physical Exam"
WHERE YEAR(Date) = 2010 

Could someone help me with where I'm going wrong please?

Katy

hilariagrieve2021-05-19 08:19Jon (LabKey DevOps)2021-06-03 17:04 R Reports - R markdown- knitr pandoc - The input must be a UTF-8 encoded text. MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,
I have installed The last version of labkey Server in a new Server and I reload the study folder with some troubleshoots but finally I did it.
But, I have problems with R reports. I remember that I have the same problem with the old server and I solve It but I don't know how.
I was researching and tried a lot of things but I didn't make it.
The problem is with r markdown, knitr and the error is that the imput must be a UTF-8 encondec text, and The file script.Rmd is not encoded in UTF-8.
I tried to set the File : Save with Encoding UTF-8 in R studio like https://support.rstudio.com/hc/en-us/articles/200532197-Character-Encoding.

Here is the log file:

Error executing command
javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).

processing file: script.Rmd

|
| | 0%
|
|.......... | 14%
ordinary text without R code

|
|.................... | 29%
label: labkey (with options)
List of 1
$ echo: logi FALSE

|
|.............................. | 43%
ordinary text without R code

|
|........................................ | 57%
label: setup (with options)
List of 7
$ echo : logi FALSE
$ cache : logi TRUE
$ results : chr "hide"
$ warning : logi FALSE
$ comment : logi FALSE
$ message : logi FALSE
$ comments: chr ""

Loading required package: httr
Loading required package: jsonlite
Executing: pandoc -t html -o "script.html" "script.Rmd"
[WARNING] Could not deduce format from file extension .Rmd
Defaulting to markdown
UTF-8 decoding error in script.Rmd at byte offset 995 (e9).
The input must be a UTF-8 encoded text.
Quitting from lines 24-32 (script.Rmd)
Error in (function (input, format, ext, exec, cfg) : conversion failed
Calls: render ... eval -> eval -> <Anonymous> -> mapply -> <Anonymous>
Adem�s: Warning messages:
1: In readLines(con, warn = FALSE) :
entrada inv�lida encontrada en la conexi�n de entrada 'script.Rmd'
2: In xfun::read_utf8(input) :
The file script.Rmd is not encoded in UTF-8. These lines contain invalid UTF-8 characters: 15, 46, 53, 59, 61, 72, ...
3: In read_utf8(input[1]) :
The file script.Rmd is not encoded in UTF-8. These lines contain invalid UTF-8 characters: 15, 46, 53, 59, 61, 72, ...

Ejecuci�n interrumpida

olnerdybastid2018-03-29 12:19Jon (LabKey DevOps)2018-04-08 00:16 Difficulties adding my own CSS to style LabKey interface MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have a few questions stemming from my recent attempt to add CSS to an interface we're building in LabKey. In case it's relevant for troubleshooting, the UI I'm trying to build is located within a wiki web part. I've tried the following 3 approaches so far without success, and am curious to know why these methods aren't working (or in the case of the first, isn't working as expected).

  1. First, I followed the documentation here (https://www.labkey.org/Documentation/wiki-page.view?name=customizeLook#resources) and uploaded my own test CSS file. This method worked, but it seems as though LabKey cached the first CSS file I uploaded, and it now loads the same one each time--even after I deleted the file and tried to upload a new one in its place. Accessing our LabKey server (and after restarting Tomcat) from a different browser still loads that same CSS.

  2. Next, I put my CSS file (lkmain.css) in the same folder as the other out-of-the-box LabKey stylesheets (for me, the full path is /Applications/labkey/labkeywebapp/core/css) and added the following line to my javascript:

'LABKEY.requiresCss('core/css/lkmain.css');'

This throws a 404 error each time I load the page saying that resource can't be found. If I point to one of the predefined LabKey CSS files in that folder I don't see the same error.

  1. Finally I tried to link to my CSS (located in the same path as before) from within the <head> of my HTML. No error gets thrown this time, but the CSS I linked to isn't being loaded (as verified by looking at the Resources tab of the Developer console in Safari).

Any suggestions/explanation of why these methods aren't working would be most appreciated.

WayneH2021-06-30 07:19Jon (LabKey DevOps)2021-07-13 15:24 Project migration between servers-Incomplete MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Good morning,

we recently ran into an issue migrating a project between servers in our v18.2 community edition. We are preparing to migrate to a licensed current version but are really concerned about the problem we ran into.. On two different occasions one user's migration did not transfer over complete subfolder contents. I myself performed the same using the export/import tools and found that everything transferred over except for the file repository and the assay data (designs, batch/run data and tables). In my case I selected all of the options including files and all subfolder content.
The project is separated into three folders. One main folder and two subfolders within it. The assay data and file repository is in one of those subfolders. The assay data is in the top level folder although the designs/templates are in the subfolder where the file repository is located. I believe this is the structure we have.
Any thoughts on why we're having trouble migrating the project completely?

Thanks

Wayne

tvaisar@u.washington.edu2022-01-25 12:45Jon (LabKey DevOps)2022-01-25 13:14 Recommended Linux OS MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi Labkey team,
with the recent EOL of CentOS 8 (Dec 31,2021), I was wondering what is the recommended Linux operating system for Labkey Server?
a) if we were to upgrade current installation
b) if we were starting from scratch

Thanks a lot,

Tomas

Jon (LabKey DevOps)2020-12-15 18:09Jon (LabKey DevOps)2020-12-15 18:09 Security Vulnerability Notice for LabKey users on PostgreSQL - PgMiner botnet MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Due to the PgMiner botnet exploit/vulnerability (https://www.zdnet.com/article/pgminer-botnet-attacks-weakly-secured-postgresql-databases), we recommend any LabKey user that has a self-hosted environment to read the article and take the following precautions:

  • If you still have the default postgres user that came with your PostgreSQL installation, please do the following:
  1. Create a replacement superuser on your database.
  2. After creating the replacement user, delete the default postgres user.
  • Confirm that your PostgreSQL database can only be accessed by your LabKey server on your specific designated port. By default, PostgreSQL uses port 5432. Consider either changing to a different port or update your security settings (i.e. Firewall, pg_hba.conf file) so only your LabKey instance can access your PostgreSQL server.

For more information on securing your PostgreSQL server, please checkout the following resource:

https://www.enterprisedb.com/blog/how-to-secure-postgresql-security-hardening-best-practices-checklist-tips-encryption-authentication-vulnerabilities

johann pellet2020-05-12 09:48johann pellet2020-05-12 09:48 Import large proteomic assay to labkey MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi all,

I am trying to upload a large proteomic RMN dataset (9600 columns x 240 rows) into Labkey 19.3.
Below a subset of the matrix:

Sample_ID	9.99950027	9.99849987	9.99750042
  L-1025-01	3547.56219015	4502.33293817	3747.21499051
  L-1025-02	-918.88494389	1544.06141934	-553.62238202

The input matrix consists of N rows of samples with M columns of bin intensities.

Beforehand, I created the sample set NMR samples (below a subset)

Name	Volume	Unit
L-1025-01	130.0	uL
L-1025-02 	130.0	uL

When I trying to import the Assay, I choose the assay type General and in the Results Fields, I delete all the default fields before I import my matrix to Labkey.

This method does not work because labkey does not accept to import more than 1600 columns. See below an extract of the labkey.log

ERROR BaseApiAction            2020-05-12 13:02:16,710      ajp-nio-8009-exec-5 : ApiAction exception:                                    
org.springframework.dao.DataAccessResourceFailureException: SqlExecutor.execute(); SQL []; ERROR: tabl                                    es can have at most 1600 columns; nested exception is org.postgresql.util.PSQLException: ERROR: tables                                     can have at most 1600 columns

So what I did is to transpose my matrix like that (240 columns x 6900 rows):

Feature_ID  L-1025-01	  L-1025-02
9.99950027	3547.56219	-918.8849439
9.99849987	4502.332938	1544.061419
9.99750042	3747.214991	-553.622382

The Assay was created into Labkey after a very long time and an internal server error (I should check the Tomcat and/or Apache configuration).
But now, I don't see how I could import this Assay to my study matching my Sample Set created before. Indeed, when I click to Copy to Study, Participant IDs and Visit IDs are required for all rows. The problem is that each row is not a Sample_ID but a feature.... See images attached.
Ho I could manage this kind of array into Labkey. Should I do it with an other method?
Thank you for your help.

Regards,
Johann

johann pellet2020-04-02 03:07johann pellet2020-04-02 03:07 Custom site welcome page MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi all,

I would like more information about how we should proceed to customize an alternative welcome page (Labkey 19.3).
Despite the documentation here: (https://www.labkey.org/Documentation/19.3/wiki-page.view?name=customizeLook) and the help bubble in the Look and Feel Settings labkey page, it's not clear for me how to proceed.

Help buble:
The relative URL of the page, either a full LabKey view or simple HTML resource, to be loaded as the welcome page. The welcome page will be loaded when a user loads the site with no action provided (i.e. https://www.labkey.org). This is often used to provide a splash screen for guests. Note: do not include the contextPath in this string. For example: /myModule/welcome.view to select a view within a module, or /myModule/welcome.html for a simple HTML page in the web directory of your module.

What I tried is

  • to create in /usr/local/labkey/labkey/modules a new folder myModule. Into this folder I created a folder views and a file in views/welcome.html
  • in the Look and feel settings page I choose "myModule.welcome" .
    I also tried with other relative URL without success.

Thank you for your help.

Johann

jgane2020-06-25 12:28jgane2020-06-25 12:28 Generating a folder access report MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I was wondering if there is a way to generate a list of all users that have access to a folder for every folder/subfolder on LabKey? Essentially we want to collect the /folderAccess.view page for every folder into something like a JSON.

We tried using the R API to pull a list of all the folders on LabKey and then querying the core.Users table for each folder, however we ran into an issue where if a user is a part of a project group, they will show up in the core.Users table for every subfolder regardless of whether they actually have access to that subfolder or not. Even if that project group is not added to any folders and has no ability to access anything in that project, the users in that group will still show up in the core.Users table for every subfolder.

In case it helps we are running on version 20.3.

Any suggestions or ideas would be appreciated.

Thanks,
Jon

jgane2020-05-26 07:54jgane2020-05-26 07:56 File Upload Issue MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

We have a user who has been running into an issue trying to upload a specific HTML file to a files webpart on LabKey version 18.2, every time she does she gets an Unauthorized error stating "You do not have privileges to upload." and when checking the LabKey Primary Site Log File I see the error message below:

WARN FileSystemResource 2020-05-15 15:48:20,754 catalina-exec-16 : user@institution.org attempted to delete file that is not writable by LabKey Server. This may be a configuration problem. file: /mnt/labkey/Release_Prep/Sandbox_and_Resources/SB_CLIN/@files/Data_Quality_Report_VS.html

If I as an admin try to upload the file I am able to successfully, however if I impersonate her account and try I get the same permissions error. She is able to upload other files to this folder just fine and strangely enough she is able to upload the file to an issue in an issue tracker but just not to a files webpart. Additionally, no other users are reporting issues with uploading files.

Any help or insight on this would be appreciated.

Jon

jenica abrudan2023-10-12 12:56jenica abrudan2023-10-12 12:56 How to "refresh" a list MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

What is the best way to truncate and re-populate a list using JavaScript. Can that be done without LABKEY.Query.executeSql ?

jenica abrudan2023-11-29 06:51jenica abrudan2023-11-29 06:51 ETL status stuck MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

ETL status is stuck to 'running' and can't reset or truncate reset - it said the job is 'pending' and can't be reset. How do I get the ETL to re-run ?

jenica abrudan2023-04-05 07:09jenica abrudan2023-04-05 07:09 ViewName selection on survey lookup option MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have multiple survey fields where i need to select a lookup value from a list. Since the value sets a slightly different i am using viewName as in (https://www.labkey.org/Documentation/wiki-page.view?name=questionMetadata#viewName) but while this works for the first field - all subsequent fields have the same viewName applied even if the other fields have different viewName defined on the lookup.
Can different survey fields on the same survey use different viewName for subselecting values from the same lookup list ?

jenica abrudan2023-12-21 12:30jenica abrudan2023-12-21 12:30 How to use getParameter MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I am trying to use make a custom entry form for a list similar to orderReagents form but use a value passed in the url to pre-poluate the form and i have tried to use LABKEY.ActionURL.getParameter(parameterName:param) but it doesn't seem to pick the param value from the URL . Is there a specific way to build the URL to pass the param value to a wiki page different then for a query ?

james gregoric2020-09-11 10:18james gregoric2020-09-11 10:18 LabKey database not populated on startup MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

2020-09-11 Update: When we go to the Tomcat Web Application Manager page and click on the labkey link the following error appears:
java.lang.NullPointerException at
org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:1332) at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:499) at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:239)

Looking at our PostGres database we see that the LabKey tables have been created, but all tables are empty. So for some reason the tables are not being populated even though we clearly have write access to the database (since the tables were created by the startup process).

As noted in the error dump, the error occurs at line 1332 in ModuleLoader.java. (See ..\server\modules\platform\api\src\org\labkey\api\module). The code there reads:

1325 // If modules table doesn't exist (bootstrap case), then new up a core context
1326 if (getTableInfoModules().getTableType() == DatabaseTableType.NOT_IN_DB)
1327 coreContext = new ModuleContext(coreModule);
1328 else
1329 coreContext = getModuleContext("Core");
1330
1331 // Does the core module need to be upgraded?
1332 if (!coreContext.needsUpgrade(coreModule.getSchemaVersion()))
1333 return false;

Evidently, the call to ModuleContext() on line 1327 is returning a null value for coreContext. We assume that is because the database is not populated.

jack mason2024-06-18 07:44jack mason2024-06-18 07:44 Creating domain sample set using Python, how to add naming pattern MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-20 11:18 LabKey Support Forum

Am using the Python package to create some samples using the domain API.

Here is some example code:

from labkey.api_wrapper import APIWrapper

labkey_server = 'localhost:8443'
container_path = 'T Cell Cloning Samples/Sequencing'
contextPath = None
schema = 'samples'
table = 'tcc_sample_handover'
api = APIWrapper(labkey_server, container_path, contextPath)

definition = {
    "kind": "SampleSet",
    "domainDesign": {
        "name": "tcc_sample_handover",
        "description": "TCC Sample Handover",
        "fields": [
            {"name": "Name", "rangeURI": "string"},
            {"name": "hla_restriction", "rangeURI": "string"},
            {"name": "tcc_sample_id", "rangeURI": "string"},
            {"name": "tcc", "rangeURI": "string"},
            {"name": "antigen", "rangeURI": "string"},
            {"name": "peptide_sequence", "rangeURI": "string"},
            {"name": "donor", "rangeURI": "string"},
            {"name": "race_prep", "rangeURI": "boolean"},
            {"name": "post_sort_well", "rangeURI": "string"},
            {"name": "cell_per_well", "rangeURI": "string"},
            {"name": "date_frozen", "rangeURI": "dateTime"}
        ]
    }
}

result = api.domain.create(definition)
print(result)

I am unsure how I can add a naming pattern to the definition.
I've added an attachment for what the naming pattern looks like.
Here's a link to the labkey docs for naming patterns also:
https://www.labkey.org/Documentation/wiki-page.view?name=sampleIDs#:~:text=Each sample in a Sample,of the Sample Type definition.

inaki martinez2020-06-24 08:35inaki martinez2020-06-24 08:35 Enabling CORS and file deletion issues MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Dear Labkey community

we are having some issues while enabling CORS in labkey for some external collaborators. Our labkey instances work fine without CORS but as soon as we enable it, some labkey functionality does not work. As far as we could test, only file deletion stops working, but still is a problem.

Our labkey server has the following versions:

  • apache-tomcat: 8.5.53
  • openjdk:13.0.2
  • LabKey19.3.10-65330.20

The CORS configuration is as follows, although I've tried using just the default values without any luck.

      <filter>
        <filter-name>CorsFilter</filter-name>
        <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>

        <init-param>
          <param-name>cors.allowed.origins</param-name>
          <param-value>https://bc2-labkey-dev.bc2.unibas.ch, https://bc2-labkey-dev.bc2.unibas.ch, https://labkey-dev.scicore.unibas.ch, https://labkey-dev.scicore.unibas.ch, https://wiki.biozentrum.unibas.ch, https://labkey.scicore.unibas.ch</param-value>
        </init-param>

        <init-param>
          <param-name>cors.allowed.methods</param-name>
          <param-value>GET,POST,OPTIONS</param-value>
        </init-param>

        <init-param>
           <param-name>cors.allowed.headers</param-name>
           <param-value>Access-Control-Expose-Headers,Access-Control-Allow-Origin,X-Requested-With,Content-type,Authorization</param-value>
        </init-param>

        <init-param>
          <param-name>cors.exposed.headers</param-name>
          <param-value>Access-Control-Expose-Headers,Access-Control-Allow-Origin,X-Requested-With,Content-type,Authorization</param-value>
        </init-param>

        <init-param>
          <param-name>cors.support.credentials</param-name>
          <param-value>true</param-value>
        </init-param>

        <init-param>
          <param-name>cors.preflight.maxage</param-name>
          <param-value>1800</param-value>
        </init-param>
      </filter>

      <filter-mapping>
        <filter-name>CorsFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>

Even with a simpler CORS setup it does not work:

      <filter>
        <filter-name>CorsFilter</filter-name>
        <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>

        <init-param>
          <param-name>cors.allowed.origins</param-name>
          <param-value>*</param-value>
        </init-param>

      <filter-mapping>
        <filter-name>CorsFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>

Upon trying to delete a file I have just uploaded in the files tab, I get "Failed to delete" message. Firefox devel tools show:

Request URL:https://bc2-labkey-dev.bc2.unibas.ch/labkey/_webdav/home/%40files/afile_to_delete.txt?method=DELETE&pageId=4267287a-97a1-1038-bf7a-3c9cbf81b968
Request Method:POST
Remote Address:0.0.0.0:443
Status Code:
403
Version:HTTP/1.1
Referrer Policy:origin-when-cross-origin

The logs don't show any error during this request.

Is there anything else we should modify, or add for this to work? I'm currently out of ideas.

Best regards,
Iñaki

ians2022-07-19 16:46ians2022-07-19 16:46 Artifactory Migration MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

On Friday, July 22, we will be moving our Artifactory server and, as a consequence, the domain will be updated from artifactory.labkey.com to labkey.jfrog.io. We are working to update to the new URL in all gradle and npm files that reference the old URL in develop as well as our release branches for 21.11, 22.3, and 22.7. If you are not building your own standalone modules that reference the old URL, you won’t need to do anything other than pull down the latest code for the release you are building from.

If you are building your own module or otherwise have references to artifactory.labkey.com, you will need to update these to labkey.jfrog.io. A simple find and replace of artifactory.labkey.com:443 and artifactory.labkey.com with labkey.jfrog.io should be all you need to do.

Our recommended update steps are below. As a precaution, we recommend clearing the npm cache and the all node_modules directories prior to building. Please run these commands from the root directory of your enlistment:

npm cache clear --force   #(Optional command -- only recommended if you are doing active React development)
gradlew cleanNodeModules
gradlew deployApp

The domain artifactory.labkey.com will remain for unauthenticated reading until 8/12. Please submit a ticket to your support portal or contact your Account Manager if you have any questions.

hilariagrieve2021-03-03 06:17hilariagrieve2021-03-03 06:17 Module Upgrade : Error: Unable to initialize search index. MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

ALL SITE ERRORS returns me this log file. Can you help me?

ERROR LuceneSearchServiceImpl 2021-03-03 09:24:27,258 Module Upgrade : Error: Unable to initialize search index. Search will be disabled and new documents will not be indexed for searching until this is corrected and the server is restarted.
java.nio.file.NoSuchFileException: C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp\labkey_full_text_index_4zf_Lucene50_0.tip
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:115)
at java.nio.channels.FileChannel.open(FileChannel.java:287)
at java.nio.channels.FileChannel.open(FileChannel.java:335)
at org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:238)
at org.apache.lucene.codecs.blocktree.BlockTreeTermsReader.<init>(BlockTreeTermsReader.java:176)
at org.apache.lucene.codecs.lucene50.Lucene50PostingsFormat.fieldsProducer(Lucene50PostingsFormat.java:445)
at org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader.<init>(PerFieldPostingsFormat.java:292)
at org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.fieldsProducer(PerFieldPostingsFormat.java:372)
at org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:109)
at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:74)
at org.apache.lucene.index.ReadersAndUpdates.getReader(ReadersAndUpdates.java:145)
at org.apache.lucene.index.ReadersAndUpdates.getReadOnlyClone(ReadersAndUpdates.java:197)
at org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:103)
at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:473)
at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:103)
at org.apache.lucene.search.SearcherManager.<init>(SearcherManager.java:108)
at org.apache.lucene.search.SearcherManager.<init>(SearcherManager.java:76)
at org.labkey.search.model.WritableIndexManagerImpl.<init>(WritableIndexManagerImpl.java:106)
at org.labkey.search.model.WritableIndexManagerImpl.get(WritableIndexManagerImpl.java:86)
at org.labkey.search.model.LuceneSearchServiceImpl.initializeIndex(LuceneSearchServiceImpl.java:232)
at org.labkey.search.model.LuceneSearchServiceImpl.start(LuceneSearchServiceImpl.java:327)
at org.labkey.search.SearchModule.startBackgroundThreads(SearchModule.java:190)
at org.labkey.api.module.ModuleLoader.attemptStartBackgroundThreads(ModuleLoader.java:1309)
at org.labkey.api.module.ModuleLoader.initiateModuleStartup(ModuleLoader.java:1286)
at org.labkey.api.module.ModuleLoader.afterUpgrade(ModuleLoader.java:1451)
at org.labkey.api.module.ModuleLoader.lambda$startNonCoreUpgradeAndStartup$3(ModuleLoader.java:1433)
at java.lang.Thread.run(Thread.java:748)
ERROR StudyReload 2021-03-03 09:24:27,508 QuartzScheduler_Worker-1 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 09:29:27,418 QuartzScheduler_Worker-2 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 09:34:27,422 QuartzScheduler_Worker-3 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 09:39:27,426 QuartzScheduler_Worker-5 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 09:44:27,415 QuartzScheduler_Worker-6 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 09:49:27,419 QuartzScheduler_Worker-7 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 09:54:27,423 QuartzScheduler_Worker-9 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 09:59:27,427 uartzScheduler_Worker-10 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 10:04:27,416 QuartzScheduler_Worker-1 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 10:09:27,420 QuartzScheduler_Worker-3 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 10:14:27,424 QuartzScheduler_Worker-4 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 10:19:27,428 QuartzScheduler_Worker-5 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 10:24:27,417 QuartzScheduler_Worker-7 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 10:29:27,421 QuartzScheduler_Worker-8 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 10:34:27,425 QuartzScheduler_Worker-9 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 10:39:27,429 QuartzScheduler_Worker-1 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
ERROR StudyReload 2021-03-03 10:44:27,418 QuartzScheduler_Worker-2 : Study reload failed in folder /LIMS SGFER
org.labkey.api.admin.ImportException: Could not find file studyload.txt in the pipeline root for Lims SGFER
at org.labkey.study.importer.StudyReload$ReloadTask.attemptReload(StudyReload.java:398)
at org.labkey.study.importer.StudyReload$ReloadTask.execute(StudyReload.java:284)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)

hilariagrieve2020-12-04 05:05hilariagrieve2020-12-04 06:16 Error: Search is disabled because the search index is misconfigured. Contact the system administrator of this server. MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi!
I have this problem, how Can I fixit? thanks!

org.apache.lucene.store.LockObtainFailedException: Lock held by this virtual machine: C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp\labkey_full_text_index\write.lock
at org.apache.lucene.store.NativeFSLockFactory.obtainFSLock(NativeFSLockFactory.java:127)
at org.apache.lucene.store.FSLockFactory.obtainLock(FSLockFactory.java:41)
at org.apache.lucene.store.BaseDirectory.obtainLock(BaseDirectory.java:45)
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:804)
at org.labkey.search.model.WritableIndexManagerImpl.get(WritableIndexManagerImpl.java:78)
at org.labkey.search.model.LuceneSearchServiceImpl.initializeIndex(LuceneSearchServiceImpl.java:232)
at org.labkey.search.model.LuceneSearchServiceImpl.resetIndex(LuceneSearchServiceImpl.java:343)
at org.labkey.search.SearchController$AdminAction.handlePost(SearchController.java:319)
at org.labkey.search.SearchController$AdminAction.handlePost(SearchController.java:221)
at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:101)
at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:80)
at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:177)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:416)
at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1226)
at org.labkey.api.view.ViewServlet._service(ViewServlet.java:205)
at org.labkey.api.view.ViewServlet.service(ViewServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1147)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:217)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

hannahb2022-03-31 18:23hannahb2022-03-31 18:23 Spring MVC security vulnerability - LabKey upgrade required MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Yesterday, the developers of Spring MVC announced a security vulnerability, CVE-2022-22965. Spring is a popular open source library used by LabKey Server. We have assessed the vulnerability. While LabKey Server is fortunately not subject to the most commonly reported exploit variant, a customized attack against LabKey Server might succeed.

In the interest of providing hotfixes as quickly as possible, LabKey has applied the Spring development team’s recommended remediation for software that cannot immediately adopt the latest Spring MVC releases (5.3.18 or 5.2.20). We will upgrade to Spring 5.3.x in a future release, but have tested that the current hotfix eliminates the security concern.

By the end of the day today, the LabKey team will push new hotfixed builds to all Premium Edition Clients' support portal. We will also make these changes for all LabKey Cloud customers today which will involve a short server downtime. Community Edition clients should download the latest binaries and perform an upgrade.

In order to minimize the impact of this vulnerability, all administrators must upgrade their installations immediately.

As always, please reach out if you have any questions or concerns for us.

hannahb2022-11-03 10:54hannahb2022-11-03 10:54 LabKey Update Recommended: Apache Batik Disclosed Vulnerabilities MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

This is a recommendation to upgrade your LabKey Servers immediately - if you are a LabKey Cloud Customer, we will perform the upgrade and notify you of the short server downtime. For anyone managing their own LabKey Server, or for more details, read on.

Recently, the developers of Apache Batik announced two security vulnerabilities, https://nvd.nist.gov/vuln/detail/CVE-2022-41704 and https://nvd.nist.gov/vuln/detail/CVE-2022-42890

Batik is a library that LabKey Server uses to convert SVGs into PNGs and PDFs. We have assessed the vulnerability and determined that some versions of LabKey Server are impacted.

LabKey previously added a related mitigation, which is included in versions 22.7.3, 22.9.0, and 22.10.0 (and beyond). The mitigation addresses the vulnerability, even without the patch to Batik itself.

LabKey will include the latest version of Batik, 1.16, in the upcoming 22.7.8 and 22.11.0 releases. LabKey has also prepared version 22.3.10 to address 22.3.x deployments.

We recommend all LabKey users on versions older than 22.7.3 upgrade to one of the secured versions immediately. By the end of the day today, the LabKey team will push new secured builds to your support portal. We will also make these changes for all LabKey Cloud customers not already on secured versions which will involve a short server downtime. You will receive notice of this downtime.

Additionally, OpenSSL has disclosed two recent vulnerabilities in their 3.0.x versions. https://www.openssl.org/blog/blog/2022/11/01/email-address-overflows/

LabKey Server itself is NOT IMPACTED by this. However, other common software, including many recent Linux distributions, relies on OpenSSL so please be aware and patch as appropriate.

Please reach out if you have any questions or concerns for us.

hannahb2022-04-22 15:09hannahb2022-04-22 15:09 Java Vulnerability - Java upgrade recommended MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We were recently made aware of a potential Java vulnerability affecting ECDSA (Elliptic Curve Digital Signature Algorithm) signatures. For more details, see https://nvd.nist.gov/vuln/detail/CVE-2022-21449
This vulnerability affects deployments that use ECDSA, however, we strongly recommend that every deployment immediately upgrade to the latest Java release, 17.0.3+7.

As always, please reach out if you have any questions or concerns for us.

tstellin@scharp.org2022-03-01 05:15hannahb2022-03-02 14:40 Help with specimen import error: Cache timeout for SchemaTableInfos for labkey, exceeding 300000ms limit MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

On 2022-02-28 and 2022-02-22, our labkey server failed to import specimen data with an error we haven't seen before (stacktrace below). Are there any details on this error someone can provide? Is there a known way to address it?

...
28 Feb 2022 23:22:47,298 INFO : Updating vial rows 8040001 through 8050000.
28 Feb 2022 23:22:49,078 INFO : Updating processing locations on the specimen table...
28 Feb 2022 23:23:28,338 INFO : Complete.
28 Feb 2022 23:23:28,342 INFO : Updating first processed by initials on the specimen table...
28 Feb 2022 23:24:07,391 INFO : Complete.
28 Feb 2022 23:24:07,393 INFO : Updating vial availability...
28 Feb 2022 23:24:07,402 INFO : Marking vials unavailable based on Custom Query: study.UnavailableAccordingToLdms
28 Feb 2022 23:29:30,743 INFO : Deleting /services/data/hvtn/Specimen Management/specimens/220228212006615/primary_types.tsv
28 Feb 2022 23:29:30,760 INFO : Deleting /services/data/hvtn/Specimen Management/specimens/220228212006615/specimens.tsv
28 Feb 2022 23:29:30,764 INFO : Deleting /services/data/hvtn/Specimen Management/specimens/220228212006615/column_translations.tsv
28 Feb 2022 23:29:30,769 INFO : Deleting /services/data/hvtn/Specimen Management/specimens/220228212006615/additives.tsv
28 Feb 2022 23:29:30,772 INFO : Deleting /services/data/hvtn/Specimen Management/specimens/220228212006615/labware_sample_types.tsv
28 Feb 2022 23:29:30,776 INFO : Deleting /services/data/hvtn/Specimen Management/specimens/220228212006615/derivatives.tsv
28 Feb 2022 23:29:30,780 INFO : Deleting /services/data/hvtn/Specimen Management/specimens/220228212006615/labs.tsv
28 Feb 2022 23:29:30,787 INFO : Deleting /services/data/hvtn/Specimen Management/specimens/220228212006615
28 Feb 2022 23:29:30,835 INFO : Failed to complete task 'org.labkey.api.specimen.pipeline.StudyImportSpecimenTask'
28 Feb 2022 23:29:30,836 ERROR: Cache timeout for SchemaTableInfos for labkey, exceeding 300000ms limit
org.labkey.api.pipeline.PipelineJobException: Cache timeout for SchemaTableInfos for labkey, exceeding 300000ms limit
at org.labkey.api.specimen.pipeline.AbstractSpecimenTask.doImport(AbstractSpecimenTask.java:162)
at org.labkey.api.specimen.pipeline.AbstractSpecimenTask.run(AbstractSpecimenTask.java:67)
at org.labkey.api.pipeline.PipelineJob.runActiveTask(PipelineJob.java:818)
at org.labkey.api.pipeline.PipelineJob.run(PipelineJob.java:1055)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.RuntimeException: Cache timeout for SchemaTableInfos for labkey, exceeding 300000ms limit
at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:130)
at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:91)
at org.labkey.api.data.SchemaTableInfoCache.get(SchemaTableInfoCache.java:49)
at org.labkey.api.data.DbScope.getTable(DbScope.java:1148)
at org.labkey.api.data.DbSchema.getTable(DbSchema.java:426)
at org.labkey.experiment.api.property.StorageProvisionerImpl.getSchemaTableInfo(StorageProvisionerImpl.java:604)
at org.labkey.experiment.api.property.StorageProvisionerImpl.createTableInfoImpl(StorageProvisionerImpl.java:580)
at org.labkey.api.exp.api.StorageProvisioner.createTableInfo(StorageProvisioner.java:71)
at org.labkey.api.specimen.model.SpecimenTablesProvider.createTableInfo(SpecimenTablesProvider.java:201)
at org.labkey.api.specimen.model.SpecimenTablesProvider.createTableInfo(SpecimenTablesProvider.java:125)
at org.labkey.api.specimen.SpecimenSchema.getTableInfoSpecimen(SpecimenSchema.java:145)
at org.labkey.api.specimen.SpecimenSchema.getTableInfoSpecimen(SpecimenSchema.java:138)
at org.labkey.study.query.SpecimenDetailTable.getSpecimenAndVialFromSQL(SpecimenDetailTable.java:404)
at org.labkey.study.query.SpecimenDetailTable.getFromSQL(SpecimenDetailTable.java:374)
at org.labkey.api.data.AbstractTableInfo.getFromSQL(AbstractTableInfo.java:313)
at org.labkey.query.sql.QueryTable._getSql(QueryTable.java:363)
at org.labkey.query.sql.QueryTable.getFromSql(QueryTable.java:267)
at org.labkey.query.sql.QTable.appendSql(QTable.java:85)
at org.labkey.query.sql.QuerySelect._getSql(QuerySelect.java:1524)
at org.labkey.query.sql.QuerySelect.getSql(QuerySelect.java:1468)
at org.labkey.query.sql.QuerySelect$2.getFromSQL(QuerySelect.java:1296)
at org.labkey.query.QueryServiceImpl.getSelectSQL(QueryServiceImpl.java:2624)
at org.labkey.query.QueryServiceImpl.getSelectSQL(QueryServiceImpl.java:2440)
at org.labkey.api.data.Table.getSelectSQL(Table.java:1055)
at org.labkey.api.specimen.importer.RequestabilityManager$CustomQueryRule.getFilterSQL(RequestabilityManager.java:564)
at org.labkey.api.specimen.importer.RequestabilityManager$RequestableRule.updateRequestability(RequestabilityManager.java:408)
at org.labkey.api.specimen.importer.RequestabilityManager.updateRequestability(RequestabilityManager.java:828)
at org.labkey.api.specimen.importer.RequestabilityManager.updateRequestability(RequestabilityManager.java:845)
at org.labkey.api.specimen.importer.SpecimenImporter.updateCalculatedSpecimenData(SpecimenImporter.java:1083)
at org.labkey.api.specimen.importer.SpecimenImporter.process(SpecimenImporter.java:390)
at org.labkey.api.specimen.importer.SpecimenImporter.process(SpecimenImporter.java:306)
at org.labkey.api.specimen.pipeline.AbstractSpecimenTask.doImport(AbstractSpecimenTask.java:132)
... 9 more

GrumpyBadger2024-05-28 06:31GrumpyBadger2024-05-28 06:31 Error when upgrading MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I'm trying to upgrade our prod Labkey docker instance from 23.3.2 to 23.11.11.

The upgrade went ok on our dev instance but the upgrade fails every time when we try on prod, leaving things in a broken state so we have to roll back the database. I've done the database check via the UI and no issues are found.

The issue seems to be related to the Experiment module :

INFO  ModuleLoader             2024-05-28T14:04:00,532           Module Upgrade : Starting module 'Pipeline'
INFO  SpringModule             2024-05-28T14:04:00,533           Module Upgrade : Loading Spring configuration for the Pipeline module from [/WEB-INF/pipelineContext.xml]
INFO  ModuleLoader             2024-05-28T14:04:00,875           Module Upgrade : Starting module 'plateWellViewer'
INFO  ModuleLoader             2024-05-28T14:04:00,876           Module Upgrade : Starting module 'prevalenceDashboard'
INFO  ModuleLoader             2024-05-28T14:04:00,877           Module Upgrade : Starting module 'Query'
172.17.0.1 - - [28/May/2024:14:04:01 +0100] "POST /admin-sql-getModuleStatus.view HTTP/1.1" 200 3357
WARN  RoleManager              2024-05-28T14:04:01,228           Module Upgrade : Could not resolve the role org.labkey.api.security.roles.TrustedAnalystRole! The role may no longer exist, or may not yet be registered.
INFO  ModuleLoader             2024-05-28T14:04:01,228           Module Upgrade : Starting module 'Experiment'
INFO  SpringModule             2024-05-28T14:04:01,229           Module Upgrade : Loading Spring configuration for the Experiment module from [/WEB-INF/experimentContext.xml]
172.17.0.1 - - [28/May/2024:14:04:02 +0100] "POST /admin-sql-getModuleStatus.view HTTP/1.1" 200 3358
172.17.0.1 - - [28/May/2024:14:04:03 +0100] "POST /admin-sql-getModuleStatus.view HTTP/1.1" 200 3358
172.17.0.1 - - [28/May/2024:14:04:04 +0100] "POST /admin-sql-getModuleStatus.view HTTP/1.1" 200 3358
127.0.0.1 - - [28/May/2024:14:04:04 +0100] "GET /_/health HTTP/2.0" 200 15
172.17.0.1 - - [28/May/2024:14:04:05 +0100] "POST /admin-sql-getModuleStatus.view HTTP/1.1" 200 3358
172.17.0.1 - - [28/May/2024:14:04:06 +0100] "POST /admin-sql-getModuleStatus.view HTTP/1.1" 200 3358
FATAL ModuleLoader             2024-05-28T14:04:06,554           Module Upgrade : Startup failure, terminating
java.lang.NullPointerException: Cannot invoke "org.labkey.api.exp.property.ValidatorKind.getName()" because the return value of "org.labkey.api.exp.property.PropertyService.getValidatorKind(String)" is null
        at org.labkey.experiment.api.property.DomainImpl$PropertyChangeAuditInfo.lambda$renderValidators$0(DomainImpl.java:1107) ~[experiment-23.11.11.jar:?]
        at java.base/java.lang.Iterable.forEach(Unknown Source) ~[?:?]
        at java.base/java.util.Collections$UnmodifiableCollection.forEach(Unknown Source) ~[?:?]
        at org.labkey.experiment.api.property.DomainImpl$PropertyChangeAuditInfo.renderValidators(DomainImpl.java:1106) ~[experiment-23.11.11.jar:?]
        at org.labkey.experiment.api.property.DomainImpl.save(DomainImpl.java:718) ~[experiment-23.11.11.jar:?]
        at org.labkey.experiment.api.property.DomainImpl.save(DomainImpl.java:521) ~[experiment-23.11.11.jar:?]
        at org.labkey.experiment.api.property.DomainImpl.save(DomainImpl.java:369) ~[experiment-23.11.11.jar:?]
        at org.labkey.api.audit.AbstractAuditTypeProvider.ensureProperties(AbstractAuditTypeProvider.java:252) ~[api-23.11.11.jar:?]
        at org.labkey.api.audit.AbstractAuditTypeProvider.initializeProvider(AbstractAuditTypeProvider.java:149) ~[api-23.11.11.jar:?]
        at org.labkey.api.audit.AbstractAuditTypeProvider.<init>(AbstractAuditTypeProvider.java:109) ~[api-23.11.11.jar:?]
        at org.labkey.experiment.samples.SampleTimelineAuditProvider.<init>(SampleTimelineAuditProvider.java:58) ~[experiment-23.11.11.jar:?]
        at org.labkey.experiment.ExperimentModule.startupAfterSpringConfig(ExperimentModule.java:509) ~[experiment-23.11.11.jar:?]
        at org.labkey.api.module.SpringModule.doStartup(SpringModule.java:122) ~[api-23.11.11.jar:?]
        at org.labkey.api.module.DefaultModule.startup(DefaultModule.java:229) ~[api-23.11.11.jar:?]
        at org.labkey.api.module.ModuleLoader.completeStartup(ModuleLoader.java:1668) ~[api-23.11.11.jar:?]
        at org.labkey.api.module.ModuleLoader.initiateModuleStartup(ModuleLoader.java:1607) ~[api-23.11.11.jar:?]
        at org.labkey.api.module.ModuleLoader.afterUpgrade(ModuleLoader.java:1824) ~[api-23.11.11.jar:?]
        at org.labkey.api.module.ModuleLoader.lambda$startNonCoreUpgradeAndStartup$13(ModuleLoader.java:1803) ~[api-23.11.11.jar:?]
        at org.labkey.api.module.ModuleUpgrader.lambda$upgrade$0(ModuleUpgrader.java:111) ~[api-23.11.11.jar:?]
        at java.base/java.lang.Thread.run(Unknown Source) [?:?]
INFO  ContextListener          2024-05-28T14:04:06,587 gApplicationShutdownHook : Calling DefaultFileWatcher shutdownPre()
INFO  FileSystemWatcherImpl    2024-05-28T14:04:06,588       DefaultFileWatcher : FileSystemWatcherThread is terminating
INFO  ContextListener          2024-05-28T14:04:06,588 gApplicationShutdownHook : Calling PollingFileWatcher shutdownPre()
INFO  FileSystemWatcherImpl    2024-05-28T14:04:06,589       PollingFileWatcher : FileSystemWatcherThread is terminating

Anyone seen anything like this or have any advice?
(Full log attached)

Thanks,
Will

Gina M Scott2022-04-19 11:32Gina M Scott2022-04-19 11:32 LabKey version 19.3.7 MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We are facing the log4j issue and cyber is asking us to upgrade Tomcat -
Can someone tell me if Tomcat 9.0.31 will work without issues for LabKey verison 19.3.7.

thank you
Gina

eva pujadas2024-06-18 07:56eva pujadas2024-06-18 07:56 Permissions groups and APIs MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-18 10:45 LabKey Support Forum

Is it possible to create permission group for projects and assign them to roles in projects and sub-folders?
Thanks and regards,
Eva

eva pujadas2020-04-07 09:32eva pujadas2020-04-07 09:32 Error while running trigger script MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Dear LabKey support,

We have installed a new version of LabKey, 19.3.7, and are detecting a problem when running some trigger scripts attached to study datasets. The same scripts were working in the previous version.

The web interface error message is the following:
"script error: afterInsert trigger closed the connection, possibly due to constraint violation"

The error logs are attached.

The trigger JavaScript script performs some checks in a dataset and tries to insert new rows in two other datasets. The error seems to happen when trying to insert into the second dataset.

Thanks for any ideas about this error's cause.
Best regards,
Eva

eva pujadas2020-09-25 09:06eva pujadas2020-09-25 09:06 Questions about the study module MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Dear LabKey supporters,

We are using LabKey Server 19.3.7.

  1. Is it possible to have the PrticipantId filed to be of type integer? By default it is text, and it does not sort properly when the IDs are numbers. See attached screenshot "participant_id_sorting.png").

  2. When inserting a new record from the Participant view of a particular participant ID (see screenshot "insert_demographic_record_1.png"), shouldn't the form field for the participant ID be already populated with the ID? (see screenshot "insert_demographic_record_2.png").
    It seems this to be expected behavior, also because the URL to the insert form contains the participant ID as parameter. E.g. : ....dataset-insert.view?datasetId=5019&quf_ParticipantId=455585

Thank you and regards,
Eva

eva pujadas2020-06-18 09:23eva pujadas2020-06-18 09:23 List with timestamps unsorted MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Dear Labkey team,

We are having a strange issue when creating a new list imported from CSV file. The source CSV file is sorted by one of the columns representing the date and time, but that in the created list in some of the rows this sorting is not preserved after import. I attach an screenshot to visualize what I mean.

I attach also the example of CSV file (with about 85'000 lines). The file contain some "?" instead of numbers, which we are marking as "missing value indicators".

Do you know about some similar issue and what could cause it?

Thanks a lot,
Eva

etr2021-05-07 15:27etr2021-05-07 15:27 Trouble Starting LabKey Server Community Edition MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,
I am trying to install the Labkey server but I am experiencing some difficulties.
Please keep in mind I am not a usual user of either windows or tomcat for that matter.
Running on Windows Server 2012 R2, openjdk 16, tomcat 9.0

Catalina- log says something like this:

07-May-2021 22:05:40.736 SEVERE [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDescriptor Error deploying deployment descriptor [C:\labkey\apps\tomcat\conf\Catalina\localhost\labkey.xml]
	java.lang.IllegalStateException: Error starting child
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)
		at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:689)
		at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1881)
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
		at java.util.concurrent.FutureTask.run(Unknown Source)
		at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
		at java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
		at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:582)
		at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
		at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1660)
		at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:315)
		at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
		at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1151)
		at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1353)
		at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1357)
		at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1335)
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
		at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
		at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
		at java.lang.Thread.run(Unknown Source)
	Caused by: org.apache.catalina.LifecycleException: Error starting the loader
		at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:432)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5028)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
		... 25 more
	Caused by: java.lang.UnsupportedClassVersionError: org/labkey/bootstrap/LabKeyBootstrapClassLoader has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 52.0
		at java.lang.ClassLoader.defineClass1(Native Method)
		at java.lang.ClassLoader.defineClass(Unknown Source)
		at java.security.SecureClassLoader.defineClass(Unknown Source)
		at java.net.URLClassLoader.defineClass(Unknown Source)
		at java.net.URLClassLoader.access$100(Unknown Source)
		at java.net.URLClassLoader$1.run(Unknown Source)
		at java.net.URLClassLoader$1.run(Unknown Source)
		at java.security.AccessController.doPrivileged(Native Method)
		at java.net.URLClassLoader.findClass(Unknown Source)
		at java.lang.ClassLoader.loadClass(Unknown Source)
		at java.lang.ClassLoader.loadClass(Unknown Source)
		at java.lang.Class.forName0(Native Method)
		at java.lang.Class.forName(Unknown Source)
		at org.apache.catalina.loader.WebappLoader.createClassLoader(WebappLoader.java:536)
		at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:408)
		... 29 more
07-May-2021 22:05:40.738 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of deployment descriptor [C:\labkey\apps\tomcat\conf\Catalina\localhost\labkey.xml] has finished in [10] ms

If anyone can provide some info please.

Thanks,
ET

elovan2023-10-03 11:24elovan2023-10-03 11:24 Beta version for LK 23.11 MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

Will there be a beta version of LK 23.11 that will be released prior to 11/16/2023. We are going to bypass LK 23.7 and move right into LK 23.11.

Thank you,

Emily Lovan

ehands2021-10-05 09:38ehands2021-10-05 09:38 NAb new study folder missing specimen tab MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi there,

I am trying to create a new protocol study for HVTN Nab Montefiori lab, and when creating a 'Study' sub-folder in the Montefiori Approved Runs folder, I am no longer seeing the option to select 'Repository Type: Standard Specimen Repository'. As a result, when I go in afterwards to upload specimens to this study folder, there is no Specimen tab available to do this. Please let me know how this can be resolved,

Thanks,
Ellie

Edward2019-10-21 06:26Edward2019-10-21 06:26 Wrong column selected by Rlabkey when retrieving visits MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have a home folder where in I have five different sub-studies. In each of the sub-study, the visits starts from 1.1 to 12.1. When I try to retrieve rows from the tables in each of the study, only the first study returns correct sequences, i.e 1.1-12.1. Other sub-studies, return integer values such 7-19 or 48-60. When I tried to import the visit map through the following code, I found out that actually these returned integers are Rows Id and not the sequence number or the visit label. Can you kindly fix this issue? or is there any alternative to get all the columns of a table (except the hidden ones) plus the visit label?

labkey.data <- labkey.selectRows(
    baseUrl=labkey.url.base,
    folderPath=labkey.url.path,
    schemaName="study",
    queryName="Visit"
)

dhutchison2020-08-06 18:21dhutchison2020-08-06 18:21 R dataframe from external data source to data grid MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I have an R script that queries an external data source (through jdbc, not labkey.xml) and would like to display the resulting dataframe as a data grid in labkey. I want the data to be dynamically loaded - that is, the query runs each time the report is viewed. I'm thinking this should be straightforward, but not quite seeing how to do it.

For example:

result<- dbGetQuery(con, sql)
# ${htmlout:csvfile}
write(unlist(result), file="csvfile")

will output the result text in the report tab, but not as a grid.

If I don't "unlist", I get an error:

Error in cat(x, file = file, sep = c(rep.int(sep, ncolumns - 1), "\n"), :
argument 1 (type 'list') cannot be handled by 'cat'"

because write expects an atomic list, I guess.

Any thoughts on how to wrangle the dataframe into a Data Grid?

Thanks

dahlstromew2022-09-22 15:54dahlstromew2022-09-22 15:54 withCounter skipping over numbers MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,
We have a case where a user generated derivatives of a sample which has a "withCounter" modifier in the sample ID.
It is a simple modifier: LIB_${${MaterialInputs:first}_:withCounter(1,'00')}

In general, we only make one derivative for a sample, so the tail end of the sample ID would be _01.
However, a user generated a second set of derivative samples and they had _101 instead of _02 at the end.

The user assures me they didn't create and delete 99 derivatives....

I have not been able to reproduce this in our test environment, each derivative correctly counts up one digit at a time.
I also do not see any extra samples in the lineage trail.

What could cause this behavior?

Thanks
Eric

dahlstromew2022-10-11 10:06dahlstromew2022-10-11 10:13 Limit on number of sample derivatives created at a time in Sample Manager MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Is it possible to increase the number of sample derivatives a user can create at one time?
It seems we are limited to just 20 samples right now (see attached image).
Thanks

dahlstromew2022-08-12 09:13dahlstromew2022-08-12 09:13 Freezer Rack Configurations MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,
Is it possible to configure rack partitions?
For example;
Shelf01-->Rack01-->Partition01-->Plates
Partition02-->Plates
Partition03-->Plates
etc..

I do not see any partition configure racks as a storage unit.

The reason I ask is that we have various racks with different numbers of partitions, and in our case, we store up to 25 plates per partition. If I just configure rack01-->plates, there could be more than 100 plates, which isn't very clean to look at in the freezer view.
Also, our partitions are divided by projects and researchers, so that would be lost in the freezer configuration.

Thanks

connor henderson2023-08-22 08:41connor henderson2023-08-22 09:17 Python API - Connection with _netrc failing? MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I'm trying to create a Python script that connects to my LabKey server, however, I'm not getting past authentication when I provide either a username/password or an API key. I've tried moving the _netrc file to the C:/Users/user_account/ path to no avail. I'm not quite sure where I'm going wrong as everything seems to match the documentation.

Python Code

# LabKey Settings
container_path = "Test_Lab"
context_path = "labkey"
labkey_server = "mylabkeyserver.ca"
api_key = 'apikey|8ba5866e0f50c2b9...'

# Debug: print paths and _netrc contents
print(f"{'$HOME path:':20s}", os.environ['HOME'])
print(f"{'$HOME dir:':20s}", os.listdir(os.environ['HOME']))
print(f"{'_netrc contents:':20s}", open(os.environ['HOME'] + "\\_netrc").read())

# Create the connection to the LabKey API
labkey_api = APIWrapper(labkey_server, container_path, context_path, use_ssl = False, api_key = api_key)

# Connect and try to get available roles
print("\nGetting user")
result = labkey_api.security.get_roles()
print(result)

Results

$HOME path:          C:\development\labkey\common
$HOME dir:           ['_netrc']
_netrc contents:     machine	mylabkeyserver.ca	login	apikey	password	apikey|8ba5866e0f50c2b9...

Getting user
---------------------------------------------------------------------------
TimeoutError                              Traceback (most recent call last)
christian opitz2021-04-13 00:55christian opitz2021-04-13 00:55 RLabkey: Permissions when inserting/updating rows MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I am trying to update/insert rows using the provided R library. Trying with .netrc, explicitly setting admin user/password via labkey.setDefaults() or only using the API key generated as admin results in:

Error in handleError(response, haltOnError) :
HTTP request was unsuccessful. Status code = 403, Error message = User does not have permission to perform this operation.

Everything (API key, credentials) are tight to the administrator. I can however retrieve the data using getRows() or selectRows().

The target of the operation is a targetedmslist table that was imported via Skyline.

Any help is appreciated.

Thank you.

christian opitz2022-01-20 07:56christian opitz2022-01-20 07:56 Query validation fails and API getSchema MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Following the upgrade to 21.11.4 (thanks to log4j), I am not able to retrieve a table called RunRepresentativeDataState for the targetedms schema via the Rlabkey package. getSchema throws the following Error: Status code = 404, Error message = Could not find the query

Funnily enough the table is contained in the data frame returned by getQueries. However, one cannot use getQueryDetails with this particular as expected.

Running the query validation within Labkey confirms this error with: targetedms.RunRepresentativeDataState: Query not found: RunRepresentativeDataState

Is there any remedy to this?

Thank you very much.

Chichero2020-06-19 04:07Chichero2020-06-19 04:07 How to track deletion of a row in a dataset? MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have not found any log information that states explicitly that a particular user deleted an entry in a dataset. In our study I looked in Audit Log - Assay/Experiment Events but only found info about who created an entry, Derive sample from sampleid-X and comment with Run deleted.

Could you help me to find a log with precise information about who deleted, who created and who modified an entry in a dataset and/or a sample set?

Susan Hert2020-03-20 10:11chetc (LabKey Support)2020-03-26 16:54 Updated node and npm versions MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

This morning I updated the npm and node versions used in our trunk/develop builds. This means that when you pull in this change you are very likely going to see an error like this from node_sass when building:

ERROR in ./src/theme/index.scss (./node_modules/css-loader/dist/cjs.js??ref--5-1!./node_modules/sass-loader/lib/loader.js??ref--5-2!./src/theme/index.scss)
    Module build failed (from ./node_modules/sass-loader/lib/loader.js):
    Error: Missing binding /Users/dev/Development/labkey/trunk/labkey-ui-components/packages/components/node_modules/node-sass/vendor/darwin-x64-72/binding.node
    Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 12.x
    
    Found bindings for the following environments:
      - OS X 64-bit with Node.js 10.x

To remedy this, you can run ./gradlew cleanNodeModules (or, to be really thorough, ./gradlew -PmoduleSet=all cleanNodeModules) and then run your build command.

jgane2020-03-24 08:28chetc (LabKey Support)2020-03-25 14:34 Recent Security Update MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

I was just curious if there was any more information about the recent security update that was done in 20.3 and hotfixed into 19.3.7? What did the security issue pertain to? Did it affect any other versions of LabKey before 19.3?

Thanks,
Jon

david lee2020-07-10 11:45chetc (LabKey Support)2020-07-13 10:03 Mascot Server issue MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi.
A new user of Labkey here. We have just set up our Dev instance.
We are trying to connect to our internal Mascot server to run MS2 pipelines.
On the Admin config page we test connection and everything work... the report says "Test Passed"
I go to a project and try to set up a search... but get this error:
There was a problem retrieving the database list from the server: Failed to interact with the Mascot server.

Any help would be welcome.

Thanks

David Lee

mlane2020-08-13 14:42chetc (LabKey Support)2020-09-02 14:42 Labkey/Panorama server not recognized in Skyline MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

We just set up Community edition Labkey to test Panorama with Skyline. I was able to access it directly through browser, log-in and create project folders and subfolders setup as Panorama.

However, Skyline don't connect to the server and gives error that reads
that our server url is not a Panorama server. I'm wondering if it's a setting for the site, or permission? See attached for error message.

Thanks,

Monica Lane

tvaisar@u.washington.edu2020-05-11 04:36chetc (LabKey Support)2020-06-24 15:41 Patch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram library MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I recently ran into issue when uploading Skyline document with Chromatogram library into a Panorama folder on our Labkey Server. Vagisha pointed me to the Issue 40227: SQLException when importing a Skyline document with a chromatogram library, that she recently resolved.
I wonder if there is/will be a patched version of the v.20.3 community edition. This issue was only recently fixed (4/17) and closed 4/29. Latest v20.3.2 community edition is dated 3/19.

Thanks,
Tomas

dhutchison2020-02-29 18:09chetc (LabKey Support)2020-04-14 11:06 ggplotly MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,

Trying to get an interactive plot (heatmap) working, e.g., ggplotly, but it's not happening...

Any thoughts?

Here's what I've tried:
(saveWidget works fine in RStudio)

data<-as.data.frame(labkey.data)

# plot
ggp <- ggplot(data_melt, aes(Condition, Analyte)) +                           
                   geom_tile(aes(fill = value)) +
                   theme(axis.text.x = element_text( 
                   angle = 90, 
                   size=6)) +
                   scale_x_discrete(breaks = data_melt$Condition) 

works but not interactive and doesn't auto-size:

ggsave("${imgout:labkeyl_png}",plot=ggp,device="png")

save to a temp location not the report:

saveWidget(ggplotly(ggp), file = "test.html")

no error, but report doesn't show up:

saveWidget(ggplotly(ggp), file = "test.html")
rawHTML <- paste(readLines("test.html"),collapse="\n") 
# ${htmlout:output}
write(rawHTML, file="output")
chelsea st germain2023-04-14 15:19chelsea st germain2023-04-14 15:19 Error when editing style "There was a problem while saving: Illegal element" MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have been trying to add some style elements to my wiki web parts and the text itself works fine, but I try to throw in any style element and it throws an error saying "There was a problem while saving: Illegal element". I checked the html code on another site and the HTML code works fine elsewhere, so I dont' know why I'm getting the error.

Example code below:

<style>
.aligncenter {
text-align: center;
}
</style>

chelsea st germain2023-04-14 15:29chelsea st germain2023-04-14 15:29 Insert pdf as a printout in wiki MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

How do you insert a pdf or image into the wiki page? I've tried the following with no luck:

This doesn't work at all, this image file is just added as an attachment:

<img src=""final graph_LT_P_10.jpg">

This also doesn't work, and throws an error about an illegal element:

<!-- update web address for where pdf file is store in "data" element-->
<p><object style="min-height: 100vh; width: 100%;" width="320" height="240" data='/labkey/_webdav/FCIC/FCIC%20Task%20Work/T.08.00%20Cross-Cutting%20Analysis/Case%20Studies/HT-P-11_02/%40files/HT-P-11_02_CaseStudyBrief.pdf' /></object></p>

bkieft2024-06-17 16:42bkieft2024-06-17 16:42 Unable to get 24.3.4 working on my institution's container-based platform for deploying apps MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-18 14:58 LabKey Support Forum

I am attempting to upgrade from 23.11.11 to 24.3.4 on a container-based platform provided by my workplace. So, I have created a Dockerfile that containerizes the embedded LabKey LIMS distribution using the template provided in LabKey's github page. In doing so, I've completed all the instructions provided on the LabKey website for upgrading (migrating my web.xml and ROOT.xml (labkey.xml) configurations over to the application.properties file, moving the labkeyServer.jar into my image, creating the necessary new directories, etc.).

When I deploy my container, I get several errors during java execution of labkeyServer.jar (after the Labkey Server welcome message and Conditions Evaluation Report are printed). I will attach the log file here, but I believe the root cause of the crash is ModuleLoader. Some modules load just fine (API, Pipeline, Query, Experiment, Assay, Audit, etc.), but then I get several error messages during module loading from others (for example, see below).

Please tell me if this is a known issue and/or if I can get some assistance fixing my deployment. Thanks!

java.lang.NumberFormatException: For input string: "tcp://10.43.165.217:8080" ```

``` ERROR ModuleLoader             2024-06-17T16:30:38,986           Module Upgrade : Failure starting module: FileContent
java.lang.NullPointerException: Cannot invoke "org.labkey.api.message.settings.MessageConfigService.registerConfigType(org.labkey.api.message.settings.MessageConfigService$ConfigTypeProvider)" because the return value of "org.labkey.api.message.settings.MessageConfigService.get()" is null ```

``` ERROR ModuleLoader             2024-06-17T16:30:37,945           Module Upgrade : Failure starting module: Announcements
java.lang.NullPointerException: Cannot invoke "org.labkey.api.message.settings.MessageConfigService.registerConfigType(org.labkey.api.message.settings.MessageConfigService$ConfigTypeProvider)" because the return value of "org.labkey.api.message.settings.MessageConfigService.get()" is null ```
Bika2023-11-02 02:05Bika2023-11-02 02:05 HTTP Status 404 – Not Found MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I installed OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9 and apache-tomcat-9.0.82 and PostgreSQL-15 and LabKey23.3.12-15-community in ubuntu18.04.5. After installation running http ://localhost:8080/ works fine. HTTP Status 404 - Not Found appears when running http://localhost:8080/labkey. After diagnosing myself, I found that <CATALINA_HOME>/logs does not have labkey.log and labkey-errors.log.

Thanks,
Bika

Bika2023-12-08 00:33Bika2023-12-08 00:33 Build failed MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I want to try to generate deployable software from source code.
I have installed the development environment (https://www.labkey.org/Documentation/wiki-page.view?name=devMachine). It includes:
1.Window Server 2019 Standard
2.jdk_x64_17.0.9_9
3.apache-tomcat-9.0.83
4.postgresql-15.5-1
5.Labkey server-23.12.RC0/platform-23.12.RC0
6.IntelliJ IDEA 2023.2.5 (Community Edition)
Version number: IC-232.10227.8, built on November 9, 2023
Runtime version: 17.0.9+7-b1000.46 amd64
Virtual Machine OpenJDK 64-bit server VM: JetBrains s.r.o.

My first build took a long time but failed. I followed the error message and build again with stacktrace and still got the error message as attached.

Thanks,
Bika

Bika2022-04-06 22:16Bika2022-04-13 03:09 Problems with uploading files MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Dear Labkey

I have installed a Labkey Server v19.1 or v21.3. When I upload a file in the files interface. I get the following error:“Couldn't create file on server. This may be a server configuration problem. Contact the site administrator.” Please help me to solve this problem.

Deployment Environment for Labkey v19.1:
Windows Server 2008 R2 SP1
PostgreSQL Version 9.52
Java Runtime Version12.0.2.10
Apache Tomcat Version 9.0.37

Deployment Environment for Labkey v21.3:
Windows Server 2012 R2
PostgreSQL Version 13.1
Java Runtime Version 15.0.1.9
Apache Tomcat Version 9.0.40

Best Regards
Bika

bhaddock2024-03-29 11:11bhaddock2024-03-29 11:11 Table doesn't exist within schema MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I am trying to pull data from the table "HVTN SDMC Lab/Assay Data Status Tracker" using the labkey python API. The table is located at:
https://atlas.scharp.org/cpas/list/HVTN/Tools and Reports/SCHARP LDO/Assay Tracker/grid.view?listId=24

I have version 3.0.0 of the labkey package installed, and I have tried various combinations of variables which throw different errors. For example:

labkey_server = "atlas.scharp.org"
project_name = "HVTN"  # Project folder name
context_path = "cpas"
api = APIWrapper(labkey_server, project_name, context_path, use_ssl=True)

schema = "lists"
table =  "HVTN SDMC Lab/Assay Data Status Tracker"
result = api.query.select_rows(schema, table)

returns the error QueryNotFoundError: "404: The specified query 'HVTN SDMC Lab/Assay Data Status Tracker' does not exist in schema 'lists'" (full traceback attached).

When viewing the page on my browser (I'm using Chrome), the header says:
Lists / HVTN SDMC Lab/Assay Data Status Tracker
HVTN SDMC Lab/Assay Data Status Tracker [folder image] Assay Tracker
(see attached screenshot).

So I have also tried

labkey_server = "atlas.scharp.org"
project_name = "Assay Tracker"  # Project folder name
context_path = "cpas"
api = APIWrapper(labkey_server, project_name, context_path, use_ssl=True)

schema = "lists"
table =  "HVTN SDMC Lab/Assay Data Status Tracker"
result = api.query.select_rows(schema, table)

But then I get QueryNotFoundError: '404: No such project: /Assay Tracker'.

Going through https://github.com/LabKey/labkey-api-python I couldn't find any utilities that would list projects or tables within a schema -- is there such a method available? I'm sorry I know this is more of a question about the structure of the database I'm trying to access, but I can't figure out how to figure out that structure and thus the appropriate method arguments. Can you advise?

Thank you so much!
Beatrix

bhaddock2024-04-22 09:40bhaddock2024-04-22 09:40 Export user "name" vs "id" in Created By and Modified By column MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi LabKey,

I have a list that contains columns "Created By" and "Modified By", and I am trying to figure out how to access more of the data stored in those columns via your python API.

  • On the website, those columns contain a user's Display Name as a clickable link, which goes to a little summary page of the user.
  • When I use the "Export" button online to export the sheet to an excel workbook, the Created By and Modified By columns contain just the display names of users (no link or other data). I'm attaching a screenshot of the export button I'm referring to.
  • When I use the code below to access the data via your python API, those columns are labelled "CreatedBy" and "ModifiedBy", and contain user ids.
my_results = api.query.select_rows(
    schema_name='lists',
    query_name='HVTN SDMC Lab/Assay Data Status Tracker',
    view_name='Full Export'
)

Is there a way to use access the Display Names associated with those user ids via the python API?

Thanks so much!

Beatrix

Sev2018-03-13 15:32Ben Bimber2018-03-13 16:26 Using triggers to prevent insert MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello

I would like to restrict the insert of records into a dataset based on what values have historically been used for a given field. In particular, I am trying to prevent reuse of patient ids in the Demographics dataset. For example:

In the demographics dataset, a patient is assigned an id of 12345. Some time later, the patient is removed from the study and deleted from the demographics dataset. The patient id 12345 is no longer in the demographics dataset, but we want to prevent this id from being used again.

I have some postgres triggers setup to create a patient id history table, and a trigger applied to the demographics dataset to check against the history table when a new row is inserted. If the patient ID is found in the history table the insert is aborted, but I am unable to bubble up an error message to the UI to alert the user what has gone wrong.

I was looking into the trigger scripts documentation and I've been able to setup a beforeInsert trigger. I see how I can use the Labkey.Query API to check against the history table using the "row" parameter of the beforeInsert function, but I don't see a way to prevent the insert, or to provide a message to the user in the UI.

Is there a way I can prevent a record from being inserted as I've described and alert the user in the case that they are re-using an old patient id?

Thanks!

Sev

awilson@iavi.org2024-05-09 09:47awilson@iavi.org2024-05-09 09:47 Issues updating rows with Rlabkey MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

hello, recently updated to Labkey 24.3 also updated the Rlabkey package (version: 3.2.1) to work with new release.

I can pull data (apiKey|selectRows) into RStudio from labkey server without issue but writing to the server is where issues arise. Trying to insert rows (insertRows|importRows) from R Studio and getting the a 401 error. Have done this in previous releases of labkey (pre-tomcat embed) with no issue.

CONTENTS of ERROR:
Error in handleError(response, haltOnError) :
HTTP request was unsuccessful. Status code = 401, Error message = This request has an invalid security context. You may have signed in or signed out of this session. Try again by using the 'back' and 'refresh' button in your browser.

avital2019-03-20 15:00avital2019-03-20 15:00 Core migration to Git MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello -

LabKey is in the process of migrating our source code from SVN to GitHub. This Friday evening we will be migrating the server/ api, internal and modules directories to Git. This change will only affect SVN Trunk. After the migration the new repos will be found here: https://github.com/LabKey/platform, https://github.com/LabKey/commonassays. Once the migration is finished, we will announce the all-clear with final instructions on enlistment.

Thank you,
Avital

ambarish nag2022-05-31 21:52ambarish nag2022-05-31 21:52 How to specify full path to project folder ? MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hi,
I am looking at the code example for creating a list domain in https://github.com/LabKey/labkey-api-python/blob/develop/samples/domain_example.py
If I want to add a subfolder to the project folder name, e.g.
project_name ="Study/Study1" then the code crashes with the error: labkey.exceptions.ServerContextError: '"403: You don't have permission to create a new domain"'
How can this problem be fixed ?
Thanks in advance.

Jon (LabKey DevOps)2021-06-08 15:53adam2021-06-08 17:46 Maintenance Notice - artifactory.labkey.com update for Thursday, June 10th 2021 @ 8am PDT MARKDOWNClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

The artifactory.labkey.com server will be taken offline for maintenance on Thursday, June 10th 2021 @ 8am PDT for approximately 30 minutes max.

During this time, the site will be unavailable and the TeamCity build queue will be paused.

We apologize for any inconvenience this may cause.

Aaron Sword2023-04-05 10:44Aaron Sword2023-04-05 10:44 Getting duplicate key error after upgrade MARKDOWNActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Hello,

I am new to Labkey so if I get something wrong or you need more info just let me know. I have upgraded our dev environment to the latest version (23.3.2-5) and now I am getting this error: ERROR: duplicate key value violates unique constraint "uq_modulename". Can anyone tell me what I have done to my server and if there is a way to fix it? Any info is greatly appreciated.

Thanks

katy wiseman2023-04-04 02:52katy wiseman2023-04-04 02:52XML counter columnsXML counter columns MARKDOWNActive     LabKey Support Forum

Hi,

I have a further question related to the counter columns.

I have these working but is there any way to get them to start at a different number? We want to use this for our samples going fowards but we have legacy data which is going to take a long time to clean. We want to start using a new controlled system as soon as possible and deal with the legacy data in the background but not end up with the same sample names. Our thought is to skip ahead and start at say 1000 to avoid any overlap. Is there a way to do this?

Best,

Katy

chetc (LabKey Support)2021-02-05 16:48Jon (LabKey DevOps)2021-04-19 23:53XML counter columnsXML counter columns MARKDOWNClosed     LabKey Support Forum

Hello Katy,

We appreciate you reaching out to us!

The example on https://www.labkey.org/Documentation/Archive/20.7/wiki-page.view?name=sampleIDs does indeed work, but if you copied and pasted the metadata directly (as is) from that page it does not. There are some extra carriage returns/characters in the paste that cause issues. You don't see them arise in the UI but the primary site log file throws some warnings regarding the counter.

We will work to get that example corrected, thank you for bringing it to our attention!

Please try using (below). Note: Change the "tableName" to the table you are targeting and "counterName" to a name of your choice.

<tables xmlns="http://labkey.org/data/xml">
<table tableName="ForumTestXMLCounter" tableDbType="NOT_IN_DB">
<javaCustomizer class="org.labkey.experiment.api.CountOfUniqueValueTableCustomizer">
<properties>
<property name="counterName">TESTSampleCounter</property>
<property name="counterType">org.labkey.api.data.UniqueValueCounterDefinition</property>
<!-- one or more pairedColumns used to derive the unique value -->
<property name="pairedColumn">Lot</property>
<!-- one or more attachedColumns where the incrementing counter value is placed -->
<property name="attachedColumn">SampleInLot</property>
</properties>
</javaCustomizer>
</table>
</tables>

After changing your metadata you should note that the column "SampleInLot" shows the value of the counter and it uses the uniqueness of "Lot" to determine how to increment "SampleInLot" per "Lot", in this scenario.

Please let us know if there is anything we could clarify or if you still run into issues.

Thanks,
Chet

Edward2019-10-22 00:08Edward2019-10-22 00:08Wrong column selected by Rlabkey when retrieving visitsWrong column selected by Rlabkey when retrieving visits MARKDOWNActive     LabKey Support Forum

By closely examining different study tables in the database, where visits are defined, I found out that somehow labkey is fetching values from the "Row Id" from the visits tables. This I think is the bug. Perhaps it could be addressed by changing the "Row Id" in each table (wherever there are visits defined) to the actual numeric values of the visits? However, for this I will need to find out all the tables where visits are associated (row id) with other tables so that the tables' relationships in my database do not break. I have already found that "visit" and "participantvisit" are two tables that are associated and the row ids need to be change in both of them. What do you suggest in this case?

Edward2019-10-23 00:48Edward2019-10-23 00:48Wrong column selected by Rlabkey when retrieving visitsWrong column selected by Rlabkey when retrieving visits MARKDOWNActive     LabKey Support Forum

Hi Cory,

  1. I am querying each sub-study individually as there are different users for each of the sub-study and these users should be able to query only their own study.

  2. I use the following code for selecting rows from each sub-study:

my.data <- labkey.selectRows(baseUrl="https://url_for_labkey",
                   folderPath="/StudyRootFolder/study1",
                   schemaName="study",
                   colNameOpt = 'rname',
                   colSort = "+patient_id",
                  queryName="Patients_Demographics") 

At the back-end in postgresql, in tables "visit" and "participantvisit", I changed the "row id" number to values representing my actual visits and now when I query the sub-studies, I get the updated visits. However, it is strange that labkey.selectRows picks "row id" and not the actual visits.

Edward2019-10-30 06:54Edward2019-10-30 06:54Wrong column selected by Rlabkey when retrieving visitsWrong column selected by Rlabkey when retrieving visits MARKDOWNClosed     LabKey Support Forum

Thank you very much! I have tried your code and it works for me.

cnathe2019-10-22 06:10cnathe2019-10-22 06:10Wrong column selected by Rlabkey when retrieving visitsWrong column selected by Rlabkey when retrieving visits MARKDOWNActive     LabKey Support Forum

Edward,
I have a couple of quick questions that might help us to figure out what is causing the visit RowIds to be returned from your query instead of the Sequence Numbers.

  1. Are you querying each sub-study separately? or are you trying to do a top level query at the LabKey project level to get all of the data at once?
  2. Can you give us an example of the Rlabkey selectRows call you are using for the study data query? If we can see an example, we might be able to test it against some of our LabKey demo studies to see if they are showing similar behavior.
    Thanks,
    Cory Nathe
cnathe2019-10-23 06:15cnathe2019-10-23 06:15Wrong column selected by Rlabkey when retrieving visitsWrong column selected by Rlabkey when retrieving visits MARKDOWNActive     LabKey Support Forum

Edward,
I would advise against making direct updates to the back-end postgresql LabKey tables. As you mentioned there are several tables that reference the visit RowId that may be affected by a change to this table.

I was able to reproduce the behavior you are seeing locally using my Demo visit based study. As you are seeing, we return the visit RowIds by default for these selectRows query response. There is a parameter that you can pass to the labkey.selectRows call to help: includeDisplayValues=TRUE. This will add in a column for the visit label. Here is an example from my Demo Study:

labkey.data <- labkey.selectRows(
  baseUrl="http://localhost:8080/labkey", 
  folderPath="/Demo Study/Visit Study", 
  schemaName="study", 
  queryName="TestDataSet1", 
  colNameOpt="rname",
  includeDisplayValues=TRUE
)

  participantid participantvisit_visit field1 field2        review_state participantvisit_visit_label
1           123                   9749  test1      1 Reviewed-Rejected 2                           V1
2           123                   9750  test2      2 Reviewed-Rejected 2                           V2
mohara2022-09-23 17:05mohara2022-09-23 17:05withCounter skipping over numberswithCounter skipping over numbers MARKDOWNActive     LabKey Support Forum

Hi Eric:

I'm glad to hear that the general behavior of your naming pattern is now as expected; that's what I can reproduce locally as well with that pattern.
As far as reasons a sample might exist with that higher counter value, there are a few possible explanations:

  1. It's possible to provide a name during sample creation so that the pattern is not used, so if the name ending in _101 was typed or provided via file import with that 'typo', it could look the same as others of that series but not have been generated with the :withCounter modifier.

  2. The "MaterialIputs:first" element means the first sample parent, and because no sample type or property name is provided, the system will assume you mean the SampleID. In a case of more complex lineage or multiple parents (or multiple generations of parents of different types) it's possible that the parent selected as 'first' had more generated samples - you could tell that perhaps by looking at the full generated name (as well as the lineage of that sample).
    If you have a situation where parents are of different types, and you want to use the name of the parent of a specific type, you can increase the specificity of that naming pattern by using "MaterialInputs/SampleType/SampleID:first" (or similar).

  3. It may be the case that a large generation of samples was begun but cancelled, still 'reserving' the missing counter numbers, though that seems unlikely as it sounds like the sequence did not continue with 102, 103, etc. but the next generated ones were back in double digits.

  4. Another possibility, though unlikely, is that there was a different naming pattern in force when the _101 sample was generated. When the pattern is edited, the already existing names are not changed, so this could also explain what you saw.

There is additional documentation about naming patterns available in two topics, depending on which product you are using:

Hopefully that's helpful,

--Molly

hannahb2022-09-29 17:15hannahb2022-09-29 17:15withCounter skipping over numberswithCounter skipping over numbers MARKDOWNActive     LabKey Support Forum

Hi Eric,
Correction to my previous comment - unfortunately, this issue has not been addressed. Since the likely culprit is as Molly described in #3 due to a server crashing, I'd recommend keeping an eye out for aliquots created post crash and changing those manually at this time.
Regards,
Hannah

chetc (LabKey Support)2020-12-14 11:02Jon (LabKey DevOps)2021-02-05 13:22wiki bugwiki bug MARKDOWNClosed     LabKey Support Forum

Hello Stefan,

Thank you for reaching out to us, and for reporting this issue!

I was able to reproduce the error you outlined in your post and I have created a bug for the developer to address. You can follow it's progress at https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=41970.

In the meantime you could try using the list webpart that the UI provides. Or if you needed to add this to a wiki you could consider using a LABKEY.QueryWebPart.

There are examples for usage in the document linked below.
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html

Thanks,
Chet

mohara2023-04-05 13:25mohara2023-04-05 13:25ViewName selection on survey lookup optionViewName selection on survey lookup option MARKDOWNActive     LabKey Support Forum

Hi Jenica:

Thanks for reaching out. You're right that only a single viewName for a given list is supported in a survey. I'm not sure if this is intentional, but I can reproduce this locally trying to use two different "viewName" settings for different filtered views of one list for two different questions. Only the "first" one applies to both questions.

A good workaround for this scenario would be to create individual queries over the list and do the filtering there for each question's expected values, so that each survey question would be looking at a single (prefiltered) query instead of trying to filtering the same list 'on the fly'. Hope that helps.

If you need additional assistance, we can follow up on your Premium Support Portal.

--Molly

mohara2023-02-13 17:34Jon (LabKey DevOps)2023-02-14 09:55Validation for Participant IDsValidation for Participant IDs MARKDOWNClosed     LabKey Support Forum

Hi Leah:

Unfortunately, study participantIDs don't support regex validation - part of the reason is that a study will create new participants any time data comes in for a participantID that is not already in the study-wide table. That data can come into any dataset, and adding to that 'underlying' study-wide participant table is done as a 'side effect' - it's not possible to directly add rows to that table. Studies aren't set up to restrict to a predetermined list or ID format.

With some custom work, it might be possible to use trigger scripts to accomplish something like that kind of constraint. Every dataset would need to have the same trigger script with that format check on both beforeInsert() and beforeUpdate() - and do error checking/reporting from that script. Another custom option would be a to develop a custom form (such as JavaScript in a wiki) that could be used to validate the data entries before doing the actual insert.

Another option that might meet your needs would be to use conditional formatting after the data is inserted - IDs that didn't meet your criteria could be bolded/highlighted for correction, and the user doing that correcting would then need to 'merge' that 'wrong' participantID with the corrected one. Conditional formatting can't be applied based on regex, but there might be a way to construct filters to find malformed ones.

It looks like this question has also been asked in your organization's Support Portal, so we can follow up further there about what will work best for you.

Thanks,
--Molly

schwarza2023-02-14 09:01Jon (LabKey DevOps)2023-02-14 09:55Validation for Participant IDsValidation for Participant IDs MARKDOWNClosed     LabKey Support Forum

Hi Molly,

Thank you so much for this detailed and helpful reply! I'll discuss with my coworkers and get back to you if there are any other questions.

Leah

Sev2018-03-13 16:23Sev2018-03-13 16:23Using triggers to prevent insertUsing triggers to prevent insert MARKDOWNClosed     LabKey Support Forum

I was able to consult some other Labkey devs and got this working. If anyone else is wondering about this - the "error" parameter in the trigger functions is to be set and will be displayed to the user. For example:

function beforeInsert(row, errors){
    errors[null] = 'Don't feel like inserting this record rn'
}

will result in a record not getting inserted and the user seeing the message in the UI.

Ben Bimber2018-03-13 16:26Ben Bimber2018-03-13 16:26Using triggers to prevent insertUsing triggers to prevent insert MARKDOWNClosed     LabKey Support Forum

how does it behave if you try errors._form? we use this in our code, but it's possible that only appears properly if viewing through the Ext4 forms.

adam2021-03-04 14:34Jon (LabKey DevOps)2021-03-09 12:20Upgrade LabkeyUpgrade Labkey MARKDOWNClosed     LabKey Support Forum

Hilaria,

Our Previous Releases page, https://www.labkey.org/Documentation/wiki-page.view?name=prevReleases, provides access to older releases that you can use to upgrade. You may want to read through the release notes for each intervening version to understand all the changes and caveats.

The Upgrade Support Policy page will be helpful in identifying the next upgrade version, https://www.labkey.org/Documentation/wiki-page.view?name=upgradeSupportPolicy

Adam

mohara2024-06-18 11:13mohara2024-06-18 11:13Unable to get 24.3.4 working on my institution's container-based platform for deploying appsUnable to get 24.3.4 working on my institution's container-based platform for deploying apps MARKDOWNActive     LabKey Support Forum

Hi and thanks for reaching out.

I'm assuming you mean the Community Edition (and not a LIMS distribution, which would only be available with a Premium subscription). Was the previous server running in a docker container? I ask because that installation is not typical, but if you were previously using it, it's important to note that you need to reclone the dockerfile repo - the old and new versions are not cross-compatible, though offhand I don't have the details of what specifically symptoms of that incompatibility would look like.

When I look at that log, I see these errors above the ones you mention:

INFO  AppPropsImpl             2024-06-17T16:39:07,615           Module Upgrade : Setting site settings startup property 'sslRequired' to 'false'
INFO  AppPropsImpl             2024-06-17T16:39:07,615           Module Upgrade : Setting site settings startup property 'sslPort' to 'tcp://10.43.165.217:8080'
ERROR ModuleLoader             2024-06-17T16:39:07,615           Module Upgrade : Failure starting module: Core
java.lang.NumberFormatException: For input string: "tcp://10.43.165.217:8080"
...

Are you setting the sslPort to the full URL rather than just the 8080 port somewhere? In application.properties, you should have a line like:
server.port=8080
And not need to also set that as a "site settings startup property"... From that message, the full URL value could be in the database, or possibly specified in the docker environment? I'm not sure exactly, but I'd investigate where you are setting that property first.

--Molly

mohara2024-06-18 14:58mohara2024-06-18 14:58Unable to get 24.3.4 working on my institution's container-based platform for deploying appsUnable to get 24.3.4 working on my institution's container-based platform for deploying apps MARKDOWNActive     LabKey Support Forum

I'm not sure what other parts of the environment are setting things there - you shouldn't need to set that sslPort in /startup/basic_properties at all, as the port gets set in application.properties. I'm seeing lines like this near the top of that log, so somewhere you have something "meddling" with the properties, which is suspicious:

Adding secrets to config/application.properties from environment variables...
Adding database and smtp settings to config/application.properties from environment variables...
Purging secrets and other bits from environment variables...

I also wonder if you've tried accessing the server. It looks like you've added "debug=true" to your application.properties as well (or something did) and that's what's dumping that "Conditions Evaluation Report" into the log. When I start up my happy local machine, the "conditions" look the same as yours, so I don't think that indicates any problem necessarily. Try removing that and restarting, then checking to see if the site is up. If you have the logs from the prior instance, comparing those might help identify what is not working the same way now?

Another troubleshooting idea is to try starting the 24.3 server on a new/empty database to first get it running happily before addressing any possible upgrade issues, but I'm not seeing those in the logs, so not sure if that's a problem.

--Molly

bkieft2024-06-18 12:25bkieft2024-06-18 12:25Unable to get 24.3.4 working on my institution's container-based platform for deploying appsUnable to get 24.3.4 working on my institution's container-based platform for deploying apps MARKDOWNActive     LabKey Support Forum

Thanks for the reply, Molly.

Yes, I am talking about the community edition of 24.3.4. Our server was previously running 23.11.11 on the same resource, and yes I've made sure the template Dockerfile is the most updated form from github.

My server.port variable in application.properties is just set to 8080 as you've indicated. I'm not sure where/why it's getting expanded to the longer version and causing a NumberFormatException.

I read an issue on Medium where it's possible that the kubernetes code behind my container hosting platform is superseding the port variable. Is this a known issue? I tried reapplying the variable in a java properties file in /startup/basic_properties by changing the SiteSettings.sslPort variable from $LABKEY_PORT to hard-coded '8080'. That dropped all the warnings/errors that I was getting from ModuleLoader. Is this the "site settings startup property" you're referring to? My application is still not running correctly, so I'm attaching another updated log here. Please let me know if any of the issues here seem familiar to you, I know that this is a bit of a complex use case for the community edition.

etr2021-05-07 17:57Jon (LabKey DevOps)2021-05-18 14:20Trouble Starting LabKey Server Community EditionTrouble Starting LabKey Server Community Edition MARKDOWNClosed     LabKey Support Forum

Adam,
Indeed, it was my fault. After reinstalling tomcat I forgot to recopy the files. Thanks for the help. Will definitely use the 30 day free version also since i see tutorials work better there.

etr2021-05-07 16:31etr2021-05-07 16:31Trouble Starting LabKey Server Community EditionTrouble Starting LabKey Server Community Edition MARKDOWNActive     LabKey Support Forum

Did manage to find out that the windows installer of tomcat was automatically pointing to another folder of the Java Installation indeed. Changed but still continues to get errors:

07-May-2021 23:26:40.492 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.45
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Mar 30 2021 10:29:04 UTC
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.45.0
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Windows Server 2012 R2
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            6.3
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             C:\OpenJDK-16
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           16+36-2231
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         C:\labkey\apps\tomcat
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         C:\labkey\apps\tomcat
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\labkey\apps\tomcat
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\labkey\apps\tomcat
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\labkey\apps\tomcat\temp
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\labkey\apps\tomcat\conf\logging.properties
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: exit
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: abort
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms128m
07-May-2021 23:26:40.523 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx256m
07-May-2021 23:26:40.539 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.27] using APR version [1.7.0].
07-May-2021 23:26:40.539 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
07-May-2021 23:26:40.539 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
07-May-2021 23:26:40.539 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1k  25 Mar 2021]
07-May-2021 23:26:41.695 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
07-May-2021 23:26:42.023 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [2102] milliseconds
07-May-2021 23:26:42.117 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
07-May-2021 23:26:42.117 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.45]
07-May-2021 23:26:42.117 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment descriptor [C:\labkey\apps\tomcat\conf\Catalina\localhost\labkey.xml]
07-May-2021 23:26:42.382 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDescriptor Error deploying deployment descriptor [C:\labkey\apps\tomcat\conf\Catalina\localhost\labkey.xml]
	java.lang.IllegalStateException: Error starting child
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)
		at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:689)
		at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1881)
		at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
		at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
		at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
		at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:582)
		at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
		at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1611)
		at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
		at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
		at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
		at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
		at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
		at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:843)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
		at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
		at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
		at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
		at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
		at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.base/java.lang.reflect.Method.invoke(Method.java:567)
		at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
		at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
	Caused by: org.apache.catalina.LifecycleException: Error starting the loader
		at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:432)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5028)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
		... 37 more
	Caused by: java.lang.ClassNotFoundException: org.labkey.bootstrap.LabKeyBootstrapClassLoader
		at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:433)
		at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:586)
		at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
		at java.base/java.lang.Class.forName0(Native Method)
		at java.base/java.lang.Class.forName(Class.java:375)
		at org.apache.catalina.loader.WebappLoader.createClassLoader(WebappLoader.java:536)
		at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:408)
		... 41 more
07-May-2021 23:26:42.382 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of deployment descriptor [C:\labkey\apps\tomcat\conf\Catalina\localhost\labkey.xml] has finished in [265] ms
07-May-2021 23:26:42.398 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\labkey\apps\tomcat\webapps\docs]
07-May-2021 23:26:43.183 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\labkey\apps\tomcat\webapps\docs] has finished in [785] ms
07-May-2021 23:26:43.183 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\labkey\apps\tomcat\webapps\examples]
07-May-2021 23:26:44.324 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\labkey\apps\tomcat\webapps\examples] has finished in [1,141] ms
07-May-2021 23:26:44.324 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\labkey\apps\tomcat\webapps\host-manager]
07-May-2021 23:26:44.402 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\labkey\apps\tomcat\webapps\host-manager] has finished in [78] ms
07-May-2021 23:26:44.402 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\labkey\apps\tomcat\webapps\manager]
07-May-2021 23:26:44.636 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\labkey\apps\tomcat\webapps\manager] has finished in [234] ms
07-May-2021 23:26:44.636 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\labkey\apps\tomcat\webapps\ROOT]
07-May-2021 23:26:44.683 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\labkey\apps\tomcat\webapps\ROOT] has finished in [47] ms
07-May-2021 23:26:44.683 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
07-May-2021 23:26:44.699 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [2668] milliseconds

the labkey.xml looks like this:

<?xml version='1.0' encoding='utf-8'?>
<Context docBase="C:\labkey\labkey\labkeyWebapp" reloadable="true" crossContext="true">
    
    <Resource name="jdbc/labkeyDataSource" auth="Container"
        type="javax.sql.DataSource"
        username="labkey"
        password="XXXXX"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://localhost/labkey"
        maxTotal="20"
        maxIdle="10"
        maxWaitMillis="120000"
        accessToUnderlyingConnectionAllowed="true"
        validationQuery="SELECT 1"
        />
[...]

is this the correct way to write paths in windows?
<Context docBase="C:\labkey\labkey\labkeyWebapp" reloadable="true" crossContext="true">

adam2021-05-07 15:39adam2021-05-07 15:39Trouble Starting LabKey Server Community EditionTrouble Starting LabKey Server Community Edition MARKDOWNActive     LabKey Support Forum

The root exception ("...this version of the Java Runtime only recognizes class file versions up to 52.0") indicates that Tomcat is running under JDK 8, not JDK 16. Recent releases of LabKey Server require JDK 14, 15, or 16. See our Supported Technologies page.

Adam

adam2021-05-07 17:17adam2021-05-07 17:17Trouble Starting LabKey Server Community EditionTrouble Starting LabKey Server Community Edition MARKDOWNActive     LabKey Support Forum

Are you following the installation instructions here? https://www.labkey.org/Documentation/wiki-page.view?name=manualInstallWindows

Did you copy the "Tomcat Libraries" into CATALINA_HOME\lib? Tomcat is apparently not able to find labkeyBootstrap.jar.

LabKey offers a free 30-day cloud-hosted trial of LabKey Server. I strongly recommend this over attempting a manual installation, especially if you're not familiar with Windows or Tomcat. See https://www.labkey.com/trial-sign-up/

Adam

hilariagrieve2021-01-27 04:42Jon (LabKey DevOps)2021-04-19 23:53Troubleshotting Reloading Study in a new server with a new version of Labkey ServerTroubleshotting Reloading Study in a new server with a new version of Labkey Server MARKDOWNClosed     LabKey Support Forum

When I manually modify the .tsv file in the dataset 5003 and 5004, the systems returns the following log:

26 ene. 2021 12:58:23,219 INFO : Starting to run task 'org.labkey.study.pipeline.StandaloneDatasetTask' at location 'webserver'
26 ene. 2021 12:58:23,259 INFO : Start batch Lims SGFER.dataset
26 ene. 2021 12:58:23,319 INFO : Causas: Starting delete
26 ene. 2021 12:58:23,521 INFO : Causas: Deleted 5091 rows
26 ene. 2021 12:58:23,570 INFO : Causas: Starting import from dataset5001,tsv
26 ene. 2021 12:58:25,324 DEBUG: commit complete
26 ene. 2021 12:58:25,491 INFO : Causas: Successfully imported 5091 rows from dataset5001,tsv
26 ene. 2021 12:58:25,502 INFO : Secuenciacion ABI: Starting delete
26 ene. 2021 12:58:25,508 INFO : Secuenciacion ABI: Deleted 0 rows
26 ene. 2021 12:58:25,511 INFO : Secuenciacion ABI: Starting import from dataset5003,tsv
26 ene. 2021 12:58:27,614 ERROR: dataset5003,tsv -- Row 1 Missing value for required property: Run/STR_Kit1/STR_Kit_Id
26 ene. 2021 12:58:27,621 ERROR: dataset5003,tsv -- Row 1 Missing value for required property: Run/STR_Kit2/STR_Kit_Id
26 ene. 2021 12:58:27,625 ERROR: dataset5003,tsv -- Row 1 Missing value for required property: Run/STR_Kit3/STR_Kit_Id
26 ene. 2021 12:58:27,634 INFO : Extracción de ADN: Starting delete
26 ene. 2021 12:58:27,637 INFO : Extracción de ADN: Deleted 0 rows
26 ene. 2021 12:58:27,668 INFO : Extracción de ADN: Starting import from dataset5004,tsv
26 ene. 2021 12:58:28,004 ERROR: dataset5004,tsv -- Row 1 Missing value for required property: Run/IdInsumo/InsumoId
26 ene. 2021 12:58:28,020 INFO : Cuantificación Fluorimétrica: Starting delete
26 ene. 2021 12:58:28,023 INFO : Cuantificación Fluorimétrica: Deleted 0 rows
26 ene. 2021 12:58:28,032 INFO : Cuantificación Fluorimétrica: Starting import from dataset5005,tsv
26 ene. 2021 12:58:28,108 ERROR: dataset5005,tsv -- Two columns mapped to target column: CausasId
26 ene. 2021 12:58:28,298 INFO : Cuantificación Real Time: Starting delete
26 ene. 2021 12:58:28,301 INFO : Cuantificación Real Time: Deleted 0 rows
26 ene. 2021 12:58:28,316 INFO : Cuantificación Real Time: Starting import from dataset5006,tsv
26 ene. 2021 12:58:28,390 ERROR: dataset5006,tsv -- Two columns mapped to target column: CausasId
26 ene. 2021 12:58:28,434 INFO : Amplificación por PCR: Starting delete
26 ene. 2021 12:58:28,438 INFO : Amplificación por PCR: Deleted 0 rows
26 ene. 2021 12:58:28,450 INFO : Amplificación por PCR: Starting import from dataset5007,tsv
26 ene. 2021 12:58:28,566 ERROR: dataset5007,tsv -- Two columns mapped to target column: CausasId
26 ene. 2021 12:58:28,624 INFO : Finish batch Lims SGFER.dataset
26 ene. 2021 12:58:28,630 INFO : Updating participant visits
26 ene. 2021 12:58:28,631 INFO : Updating participants
26 ene. 2021 12:58:28,665 INFO : Updating participant visit table
26 ene. 2021 12:58:28,666 INFO : Updating visit table
26 ene. 2021 12:58:28,668 INFO : Updating cohorts
26 ene. 2021 12:58:28,670 INFO : Clearing participant visit caches
26 ene. 2021 12:58:28,685 INFO : Finished updating participants
26 ene. 2021 12:58:28,686 INFO : Successfully completed task 'org.labkey.study.pipeline.StandaloneDatasetTask'

chetc (LabKey Support)2021-02-22 10:16Jon (LabKey DevOps)2021-04-19 23:53Troubleshotting Reloading Study in a new server with a new version of Labkey ServerTroubleshotting Reloading Study in a new server with a new version of Labkey Server MARKDOWNClosed     LabKey Support Forum

Hello Hilaria,

Thank you for reaching out to us!

As you also pointed out, I see that you ran into "Two columns mapped to target column: CausasId" multiple times while importing in those datasets. It does look like one made it through without error the first time, dataset5001. After you made your changes the error message did change for the 2 tsv's you edited, however there is still an issue with those 2 and the other datasets.

For dataset5005, dataset5006, and dataset5007 you should try and resolve the "Two columns mapped to target column: CausasId" issue as you did previously.

For dataset5003 and dataset5004 you should try and determine the location of the missing value(s) it errors out on. Then populate the data.
dataset5003 - Row 1 Missing value for required property: Run/STR_Kit1/STR_Kit_Id
dataset5004 - Row 1 Missing value for required property: Run/IdInsumo/InsumoId

  1. What changes did you make to those dataset files?

Thanks,
Chet

tstellin@scharp.org2020-07-21 05:38Jon (LabKey DevOps)2020-08-10 10:58Trigger process after successful specimen importTrigger process after successful specimen import MARKDOWNClosed     LabKey Support Forum

Chet,

Yes, we're importing a specimen archive via a file trigger (we have a perl process that generates the archive off daily LDMS data, and then places a file on the filesystem to tell labkey to begin its specimen import process).

Adam,

I'll look into this. What we want is to execute a REFRESH MATERIALIZED VIEW sql statement once the specimen import has completed.

Thanks!
-Tobin

chetc (LabKey Support)2020-08-10 11:09Jon (LabKey DevOps)2020-09-18 10:41Trigger process after successful specimen importTrigger process after successful specimen import MARKDOWNClosed     LabKey Support Forum

Hello Tobin,

As far as I know there isn't really a built in feature for this. However, Adams suggestion seems like it would do the trick.

Where you able to give it a try?
Did you need any help setting this up?

Thanks,
Chet

chetc (LabKey Support)2020-07-20 12:08chetc (LabKey Support)2020-07-20 12:08Trigger process after successful specimen importTrigger process after successful specimen import MARKDOWNActive     LabKey Support Forum

Hello Tobin,

The answer is likely no, but to confirm, are you trying to import a study specimen archive? Or are you doing something else that happens to contain data about specimens?

What exactly are you trying to do as a part of that post-specimen import process?

https://www.labkey.org/Documentation/wiki-page.view?name=importSpecimenData

Thanks,
Chet

adam2020-07-20 13:44adam2020-07-20 13:53Trigger process after successful specimen importTrigger process after successful specimen import MARKDOWNActive     LabKey Support Forum

Not exactly what you asked for, but you could create a custom pipeline job that invokes the specimen import followed by your custom tasks(s). A Script-Based Pipeline gives you a great deal of power to orchestrate multiple pipeline tasks written in a variety of languages. You can, for example, specify a <taskref> that references a built-in task implemented in the platform, such as org.labkey.study.pipeline. SpecimenReloadJob, and then specify additional tasks that you write in Python, R, Java, etc.

Adam

marcia hon2018-04-19 08:06Jon (LabKey DevOps)2018-11-16 23:23Transformation ScriptsTransformation Scripts MARKDOWNClosed     LabKey Support Forum

I solved it by doing a different query.

SELECT *
FROM
(
SELECT * from A
EXCEPT
SELECT * from B
)

Thanks

mohara2022-07-15 09:01mohara2022-07-15 09:01Tomcat service is getting by itself after almost 24 hoursTomcat service is getting by itself after almost 24 hours MARKDOWNClosed     LabKey Support Forum

Hi Yukti:
I'm moving this to your premium Support Portal where we will further investigate what might be going on.
--Molly

willm2024-04-05 11:57willm2024-04-05 11:57Teamcity CI/CD Maintenance tomorrow 4/5/2024 at 11am PDTTeamcity CI/CD Maintenance tomorrow 4/5/2024 at 11am PDT MARKDOWNActive     LabKey Support Forum

Maintenance complete.

willm2024-03-13 11:54willm2024-03-13 11:54Teamcity CI/CD Maintenance tomorrow 3/12/2024 at 10:30am PDTTeamcity CI/CD Maintenance tomorrow 3/12/2024 at 10:30am PDT MARKDOWNActive     LabKey Support Forum

Maintenance complete.

willm2024-03-04 09:44willm2024-03-04 09:44Teamcity CI/CD Emergency Maintenance today 3/4/2024 at 9am PDTTeamcity CI/CD Emergency Maintenance today 3/4/2024 at 9am PDT MARKDOWNActive     LabKey Support Forum

Maintenance complete.

Trey2018-07-18 16:01Jon (LabKey DevOps)2018-11-16 23:24TeamCity 2018.1 UpgradeTeamCity 2018.1 Upgrade MARKDOWNClosed     LabKey Support Forum

IMPORTANT!

We will take TeamCity down tomorrow; 5PM Thursday, July 19th. We will begin disabling agents at 3PM to make sure no builds are running when we take TeamCity down.
We will take a backup overnight and upgrade the server on Friday. TeamCity should be back online before EOD Friday.

Thank you.

chetc (LabKey Support)2020-12-02 18:27Jon (LabKey DevOps)2020-12-08 21:31Table view permissionsTable view permissions MARKDOWNClosed     LabKey Support Forum

Hello,

Thank you for reaching out to us!

If a group has been given the reader role, then all users within that group essentially inherit that role as well. So they should be able to view the table you're referring to.

Could you provide some more context?

  1. Did a user that was a part of that group mention that they were not able to see the data or did you impersonate them?
  2. Are you positive that the user in question is a part of that group? (Just to double check)
  3. If you were to impersonate the group itself, can you see the data?
  4. What kind of table are you working with? Is it the result of a query, list, dataset, etc...

https://www.labkey.org/Documentation/wiki-page.view?name=projectGroups

Thanks,
Chet

jkasberger2020-12-02 20:37Jon (LabKey DevOps)2020-12-08 21:31Table view permissionsTable view permissions MARKDOWNClosed     LabKey Support Forum

Chet,

I don't think your answer was intended for me, I don't think anyone here asked that question.

Jay

Jon (LabKey DevOps)2020-12-08 21:31Jon (LabKey DevOps)2020-12-08 21:31Table view permissionsTable view permissions MARKDOWNClosed     LabKey Support Forum

Hi Jay,

The message was sent out in error to all users. (Please see https://www.labkey.org/home/Support/LabKey Support Forum/announcements-thread.view?rowId=21081 for more details).

We've corrected the issue and apologize for any confusion this may have caused.

Regards,

Jon

Anthony Corbett2018-08-21 06:51Jon (LabKey DevOps)2018-11-16 23:24Tables - Change Values for Multiple RowsTables - Change Values for Multiple Rows MARKDOWNClosed     LabKey Support Forum

I don't believe there is support for this in Labkey's native UI. But you can use their API clients to bulk update rows. This post may help: https://www.labkey.org/9e077eeb-b2ab-1029-961c-79704b7a2169/announcements-thread.view?entityId=44844567-b6ca-1032-80ef-e5ac46246e24&_docid=thread%3A44844567-b6ca-1032-80ef-e5ac46246e24

mohara2024-03-29 12:01mohara2024-03-29 12:01Table doesn't exist within schemaTable doesn't exist within schema MARKDOWNActive     LabKey Support Forum

Hi Beatrix:

The parameter name in those examples in the python API docs is unfortunately misleading, and it's already on the list to get them updated. In fact there is new documentation for API wrapper itself available here:
https://github.com/LabKey/labkey-api-python/blob/develop/docs/api_wrapper.md

Instead of "project_name", the better way to name it is "container_path" because that's what needs to be provided. To access a list in:
https://atlas.scharp.org/cpas/list/HVTN/Tools and Reports/SCHARP LDO/Assay Tracker/grid.view?listId=24

You'd need to use something more like this (here I've renamed the parameter and fixed the comment):

labkey_server = "atlas.scharp.org"
container_path = "HVTN/Tools and Reports/SCHARP LDO/Assay Tracker"  # Full folder path
context_path = "cpas"
api = APIWrapper(labkey_server, container_path, context_path, use_ssl=True)

schema = "lists"
table =  "HVTN SDMC Lab/Assay Data Status Tracker"
result = api.query.select_rows(schema, table)

It's possible that the slash in the name of the list could also run into issues, so if that doesn't work, try accessing a list name without a slash in it.

A really good way to get a 'starter' snippet of python for any table is to use the Export button, choose Script, and select Python. Clicking 'create script' will then give you the APIWrapper you need to get to that data.
In a local example I just tried, it's also possible you'll need to escape the slashes in the path, if the snippet I provided above doesn't work: i.e.:

container_path = "HVTN\/Tools and Reports\/SCHARP LDO\/Assay Tracker"  # Full folder path

Hopefully that helps,

--Molly

bhaddock2024-03-29 12:50bhaddock2024-03-29 12:50Table doesn't exist within schemaTable doesn't exist within schema MARKDOWNActive     LabKey Support Forum

Omg that export option is so helpful, thank you! The code snippet you provided worked perfectly, and the exported code snippets I tried worked when I removed the backslashes.

Thanks!

chetc (LabKey Support)2020-08-21 17:04Jon (LabKey DevOps)2020-09-18 10:42Survey Design - Card Layout - Section skip logicSurvey Design - Card Layout - Section skip logic MARKDOWNClosed     LabKey Support Forum

Hello,

I'm not sure if this is possible. There is a section property that you can use to disable a section when in card layout. initDisabled is what you would want to modify. Lets say you have a survey with two sections each containing some questions. In section 2 you can attach a listener to one of your questions that listens for changes from a question in section 1. So having questions affect other questions across sections is possible but I'm not sure if you could attach a listener to section that listens for change from a question. You should try and play around with that initDisabled property, and I can see if the devs have any suggestions.

Thanks,
Chet

katy wiseman2022-06-15 01:23katy wiseman2022-06-15 01:23SQl WHERE statement troubleSQl WHERE statement trouble MARKDOWNClosed     LabKey Support Forum

Ahhh thank you! That was a very easy fix :).
It also turns out I was having some problems as the well column is a look up so I need to put in some left joins as well for my WHERE statement to work on the text value rather than the primary key.

Matthew Bellew2022-06-14 09:59Jon (LabKey DevOps)2022-06-16 10:19SQl WHERE statement troubleSQl WHERE statement trouble MARKDOWNClosed     LabKey Support Forum

In SQL you use double-quotes around column names not strings (like most other languages). To create a string value you need to use single-quotes. E.g.

SELECT *
FROM miseq_results
WHERE well = 'A01'

Matthew Bellew2022-06-15 09:44Jon (LabKey DevOps)2022-06-16 10:19SQl WHERE statement troubleSQl WHERE statement trouble MARKDOWNClosed     LabKey Support Forum

Hi Katy,

Just so you know. If a lookup is defined LabKey SQL provides a simple syntax to refer to the joined table. For instance if "well" has a foreign key (lookup) defined, and the target table has a column called "name" you can simply use this syntax.

WHERE well.name = 'A01'

The "." in the "well.name" does the left outer join for you. Hope that's helpful.

katy wiseman2022-06-16 00:56Jon (LabKey DevOps)2022-06-16 10:20SQl WHERE statement troubleSQl WHERE statement trouble MARKDOWNClosed     LabKey Support Forum

Thank you! I didn't know that, that's very helpful!

chetc (LabKey Support)2020-04-27 16:50Jon (LabKey DevOps)2020-05-15 09:14Specimens not populating after completed specimen archive importSpecimens not populating after completed specimen archive import MARKDOWNClosed     LabKey Support Forum

Hello Karen,

Thank you for reaching out to us!

If you are importing an archive to a folder already containing a previous archive, then you would need to select either replace or merge.

No, there isn't an additional step that needs to happen. Simply importing the archive using these instructions should be enough. https://www.labkey.org/Documentation/wiki-page.view?name=importSpecimenData

Could make sure that the archive follows the format specification in https://www.labkey.org/Documentation/wiki-page.view?name=specimenArchiveFileFormat

If the format is correct and it still doesn't populate then click on "completed" after importing. Then send us the import log. There might be something in there that will help us figure this out.

Also, could you tell me the version of labkey you are using?

Thanks,
Chet

Anthony Corbett2017-09-15 20:37Jon (LabKey DevOps)2018-11-16 23:23Specimen, Set primaryType and derivativeType using R APISpecimen, Set primaryType and derivativeType using R API MARKDOWNClosed     LabKey Support Forum

I believe PrimaryType and DerivativeType are lookups to study.SpecimenPrimaryType.RowId and study.SpecimenDerivative.RowId respectively. Thus, you need to use the integer RowId of those tables.

I would query those tables to get the RowId and whatever column has your string label and then create a named vector to do the lookups. The following works in 17.1:

library(Rlabkey)
library(magrittr)

primaryTypes <- labkey.selectRows(
  baseUrl="https://localhost:8080/labkey", 
  folderPath="/containerPath", 
  schemaName="study", 
  queryName="SpecimenPrimaryType", 
  colSelect=c("RowId","Description"), 
  colNameOpt = 'rname'
) %$% setNames(rowid, as.character(description))

derivativeTypes <- labkey.selectRows(
  baseUrl="https://localhost:8080/labkey", 
  folderPath="/containerPath", 
  schemaName="study", 
  queryName="SpecimenDerivative", 
  colSelect=c("RowId","Description"), 
  colNameOpt = 'rname'
) %$% setNames(rowid, as.character(description))

Now you can use those for lookups:

toadd = data.frame(patient_id = "ptid" , GlobalUniqueId = "test_1", sequenceNum = 1, drawtimestamp = "20170303", primaryType = primaryTypes[["Tissue"]], derivativeType = derivativeTypes[["gDNA"]], stringsAsFactors = FALSE)

If you have many rows (e.g. imported from flat file or excel) where primaryType and derivativeType columns are your text labels already I would use dplyr::mutate to replace the string value with the rowid using the named vector lookup:

library(dplyr)
toadd <- mutate(toadd, primaryType=primaryTypes[primaryType], derivativeType=derivativeTypes[derivativeType])
Lapalmej2017-09-19 08:05Jon (LabKey DevOps)2018-11-16 23:24Specimen, Set primaryType and derivativeType using R APISpecimen, Set primaryType and derivativeType using R API MARKDOWNClosed     LabKey Support Forum

Thank you Anthony your solution is exactly what I was looking for!

Lapalmej2017-09-19 12:43Jon (LabKey DevOps)2018-11-16 23:24Specimen, Set primaryType and derivativeType using R APISpecimen, Set primaryType and derivativeType using R API MARKDOWNClosed     LabKey Support Forum

One last question:

Can I add new SpecimenPrimaryType from the API. I am able to import specimen with the solution you propose but It is not working if the primaryType is not in the SpecimenPrimaryType dataset.

Is there a way to import specimen with a new primaryType?

Thanks for your help
Joel

chetc (LabKey Support)2020-12-30 13:28Jon (LabKey DevOps)2021-02-05 13:22Setting expression matrix assaySetting expression matrix assay MARKDOWNClosed     LabKey Support Forum

Hello Karen,

I don't think I am fully grasping what you are asking but if you take a look at the doc below you may find what you are looking for. It goes over how to create an expression matrix assay design and how to add an annotation set.

https://www.labkey.org/Documentation/wiki-page.view?name=geoMicroarrayTutorial#feature

Thanks,
Chet

marcia hon2018-09-20 06:16Jon (LabKey DevOps)2018-11-16 23:23Setting Audit Detail LevelSetting Audit Detail Level MARKDOWNClosed     LabKey Support Forum

I have tried to add the following into the ns:table tab:

  1. ns:auditLoggingDETAILED</ns:auditLogging>
  2. <auditLogging>DETAILED</auditLogging>

I go to the audit called "Dataset events" and nothing appears there after i make changes to the table.

This is a very important feature for our project. Please let me know how to fix this.

Thanks,
Marcia

Trey2018-12-11 10:18Jon (LabKey DevOps)2018-12-20 15:56Selenium 3 upgradeSelenium 3 upgrade MARKDOWNClosed     LabKey Support Forum

I will be merging at 11AM PST

stuartm2022-12-14 16:36stuartm2022-12-14 16:36Scheduled Maintenance - LabKey TeamCity Build Server - Wednesday 12/14/2022 between 4-5 PM PSTScheduled Maintenance - LabKey TeamCity Build Server - Wednesday 12/14/2022 between 4-5 PM PST MARKDOWNActive     LabKey Support Forum

The scheduled maintenance has been completed successfully.

stuartm2019-05-31 10:33Jon (LabKey DevOps)2019-05-31 10:34Scheduled Maintenance: artifactory.labkey.com Friday May 31, 2019 7 AM - 10 AM PDTScheduled Maintenance: artifactory.labkey.com Friday May 31, 2019 7 AM - 10 AM PDT MARKDOWNClosed     LabKey Support Forum

The maintenance has been completed successfully.

mohara2023-02-21 10:52mohara2023-02-21 10:52Sample naming pattern - yearlySampleCountSample naming pattern - yearlySampleCount MARKDOWNActive     LabKey Support Forum

Hi Katy:

You're seeing the correct behavior, the documentation was wrong and I've corrected it. My apologies for this confusion. The yearlySampleCount (and other similar date-based counters) applies to all samples (and data classes/registry sources) across the site. This is true whether you use it standalone or as a modifier on a particular date field you might add.

If you want a local counter that will start at 1, you can use ${genId} - that will apply to a given Sample Type and container, typically used as part of a compound naming pattern.

Another good naming option is to use the ":withCounter" syntax to add an incrementing 'starts from 1' counter to your sample names. For example, if you had a "Blood" sample type and used the naming pattern ${Blood-:withCounter} you'd get names like: Blood-1, Blood-2, etc.

You could also have a "Year" column in your data, then use an element in your naming pattern like ${Blood-${Year}-:withCounter}
to get names like: Blood-2023-1, Blood-2023-2, etc. This could effectively give you the yearly-total tally you may be seeking, on a per-sample-type basis.

I hope one of these helps you get the behavior you're seeking, and happy to help further if not.

--Molly

katy wiseman2023-02-27 09:05katy wiseman2023-02-27 09:05Sample naming pattern - yearlySampleCountSample naming pattern - yearlySampleCount MARKDOWNActive     LabKey Support Forum

Thank you! I'll stop trying to do the impossible then. I'll try one of the other counters.

Best,

Katy

mohara2023-05-08 09:33mohara2023-05-08 09:33Sample ManagermentSample Managerment MARKDOWNActive     LabKey Support Forum

Yes, Sample Manager is available as a standalone application or also included with any Premium Edition of LabKey Server.

We'd be happy to help you determine the best fit for your research, and once we know what you're hoping to accomplish, could set up a hosted demo version to make it easier for you to get started.

adam2018-03-27 11:11Jon (LabKey DevOps)2018-11-16 23:24Running two distinct sites off one LabKey Server instance?Running two distinct sites off one LabKey Server instance? MARKDOWNClosed     LabKey Support Forum

Security groups and role assignments are project-scoped and would work reasonably well in this scenario. And yes, the "look and feel settings" set on a per project basis would help, as far as they go. Beyond that, treating projects as separate "sites" could be an uphill battle. In addition to the home project, there are quite a few site-wide resources, settings, and pages that might need to become project-scoped. Some that come to mind: the Shared project, base server URL, authentication settings, headers/footers/site welcome page, scripting engines, email templates, user management workflows, et al. You'd still be stuck with a single group of site administrators, site settings, and users (maybe that's what you want), and you'd have to be very prescriptive with role assignments to ensure that projects don't bleed into other "sites."

One easier alternative: Take advantage of LabKey's new cloud services, low-cost (or free, depending on your Premium Edition) hosting options that offload all the configuration and maintenance of your deployments. Your multiple sites could be administered and scaled independently. LabKey Cloud Services

Another alternative: Deploy your sites on-premise on a shared machine or VM. Use a single machine, database server, Tomcat instance, and LabKey distribution, but separate databases for each site. Configure Tomcat to respond to multiple domains. This would give you independent sites with distinct URLs but easier maintenance compared to distinct machines for each site.

Adam

Ben Bimber2018-03-27 12:11Jon (LabKey DevOps)2018-11-16 23:24Running two distinct sites off one LabKey Server instance?Running two distinct sites off one LabKey Server instance? MARKDOWNClosed     LabKey Support Forum

Thanks. Your idea about tomcat with multiple domains might be a better idea than my idea of multiple projects. The fact that some site settings are shared was actually generally a positive for our purposes; however, I bet we could synchronize some of that.

We actually more or less have a cloned VM per site/project now (though the dev-ops stuff isnt as efficient as it should be). Unfortunately we are also charged per VM, which is really kinda silly for the actual use these 'sites' get and the cost hoping to avoid. Even with the clones VM, there's still a non-zero time cost with each new VM instance as well.

Does LabKey have any newer features designed to help bootstrap a fresh instance with some config automatically applies? If you're spinning up cloud instances perhaps this has been considered?

jeckels2018-03-27 12:43Jon (LabKey DevOps)2018-11-16 23:23Running two distinct sites off one LabKey Server instance?Running two distinct sites off one LabKey Server instance? MARKDOWNClosed     LabKey Support Forum

Yes, please see ModuleLoader.getConfigProperties(), which we use when bootstrapping newly provisioned instances.

Thanks,
Josh

Will Holtz2018-06-08 10:39Jon (LabKey DevOps)2018-11-16 23:23R Report ErrorR Report Error MARKDOWNClosed     LabKey Support Forum

Hi Marcia,

If the last line of your script does not remove any files (because nothing matches your file globs), then that system() command will return 1. I'm guessing this results in the exit code for the whole script to be 1, and this gets interpreted as an error. You could try appending system('echo') to the end of your script and see if the behavior changes.

-Wil

Marcel de Leeuw2021-02-22 11:56Marcel de Leeuw2021-02-22 11:56Rlabkey webdav access failing with 401 unauthorizedRlabkey webdav access failing with 401 unauthorized MARKDOWNActive     LabKey Support Forum

Hello Chet,

I am the site admin and I created the API key I am using with Rlabkey as such.

Thanks,

Marcel de Leeuw
MRM Health
Senior Principal Scientist, Bioinformatics

chetc (LabKey Support)2021-04-26 12:36Jon (LabKey DevOps)2021-05-18 14:19Rlabkey webdav access failing with 401 unauthorizedRlabkey webdav access failing with 401 unauthorized MARKDOWNClosed     LabKey Support Forum

Hello Marcel,

I apologize for the delay in between responses. We try to address our forums when we get a chance but it's been very busy lately.

Since you are the Site Admin that API key should work for grabbing files. I'm curious to know how you were passing in your API key in that R script? Did you add (below) to your script to pass in the key?

library(Rlabkey)
labkey.setDefaults(apiKey="apikey|apikeyapikeyapikeyapikeyapikey")

It thats not all of it above (in your first post), could you share your whole script with us? Be sure to obscure the APIKey and BaseURL.

Thanks,
Chet

chetc (LabKey Support)2021-02-22 11:50chetc (LabKey Support)2021-02-22 11:50Rlabkey webdav access failing with 401 unauthorizedRlabkey webdav access failing with 401 unauthorized MARKDOWNActive     LabKey Support Forum

Hello,

Since you are still getting a 401 message, this means that there was an issue with Authorization. Can you tell me what roles that user that is experiencing the issue has? Are they an admin, dev, etc...

It could be the case that they do not have access, due to their current role.

Thanks,
Chet

chetc (LabKey Support)2021-04-27 12:54Jon (LabKey DevOps)2021-05-18 14:19RLabkey: Permissions when inserting/updating rowsRLabkey: Permissions when inserting/updating rows MARKDOWNClosed     LabKey Support Forum

Hello Christian,

In Panorama, those tables are read-only after import. If you want new values, you will need to update them in Skyline and re-import. You could also use a regular list.

If you're interested in helping shape the direction of Panorama’s ongoing development you should consider joining our Panorama Partners Program to discuss your specific use case.
https://www.labkey.com/products-services/panorama-partners-program/

Thanks,
Chet

mohara2024-01-12 17:44mohara2024-01-12 17:44Rlabkey - HTTP error code 500 using executeSql functionRlabkey - HTTP error code 500 using executeSql function MARKDOWNActive     LabKey Support Forum

Hi, and thanks for reaching out.

I took the liberty of reformatting your message and also truncating the syntax error string which looks odd to me. Is there any chance that's an API key you are using to authenticate? I wouldn't expect a key to ever appear in an error message like that and can't reproduce that happening, but it looks like something generated...

As some general troubleshooting steps, what happens if you drop the line setting colNameOpt from the executeSql? What if you add it to the selectRows? Do any of your field names contain a special character or are they excessively long perhaps? If you try only selecting one named column in your sql, does that succeed? Select * will also include 'internal' or system columns, which you may not want to be loading anyway.

test<-labkey.executeSql(
     baseUrl="http://localhost:8080/labkey", 
     folderPath = "/DEMO",
     schemaName = "lists",
     sql="SELECT Date from Test")

Another consideration is how you are authenticating. If you are using an API key or netrc file, have you tried directly authenticating using labkey.setDefaults in RStudio to see if there is a different result? As this is on your local machine, can you try adding another user account to see if the same behavior happens (and if the odd error code message is the same)?

To help any further, I'd need a bit more information from you. What version of LabKey are you running? Did you confirm that you are using (supported versions of tomcat, Java, and your database](https://www.labkey.org/Documentation/wiki-page.view?name=supported)?

--Molly

mohara2024-01-16 18:15mohara2024-01-16 18:15Rlabkey - HTTP error code 500 using executeSql functionRlabkey - HTTP error code 500 using executeSql function MARKDOWNActive     LabKey Support Forum

Thanks for that additional information and yes, it turns out there's a compatibility issue with those versions of R and Rlabkey with old versions of LabKey (including 22.11) causing this exact error. I'm able to reproduce this locally against 23.7 and didn't go back any farther. I'm not certain exactly what the issue is here, and it's possible that downgrading to using R version 3.x.x might resolve it, but that could add other issues so I didn't try this option myself.

Better yet, I can confirm that it is fixed/compatible in LabKey Server version 23.11, and will work with your versions of R, RStudio, Rlabkey, etc as detailed above. Since we recommend staying current with the latest LabKey Server release anyway, that's the best way forward.

You can find the latest release of LabKey Server 23.11 on our website here:

Note that to use an API key to authenticate against LabKey Server 23.11, you also need to have a system default domain set. It can be left set to the default "labkey.com" or set to your own domain. All this does is allow "users" (including the APIkey) to authenticate without also including an email account domain. If you try your executeSql after the upgrade using a newly generated API key and receive an authentication error, this would be the first thing to check.

Hope that helps,

--Molly

mohara2024-01-17 08:56mohara2024-01-17 08:56Rlabkey - HTTP error code 500 using executeSql functionRlabkey - HTTP error code 500 using executeSql function MARKDOWNActive     LabKey Support Forum

It turns out this is a known issue: In Rlabkey version 3.0, we started encoding the parameters to executeSql to avoid WAF rejection, and this is not compatible with versions of LabKey Server prior to 23.9. You can restore the prior behavior by including this before the call to executeSql:

labkey.setWafEncoding(FALSE)

Upgrading to 23.11 will also address this issue, and is still the recommended overall plan to remain current with all fixes and upgrades.

My apologies for missing this the first time as it is included in the Rlabkey release notes, which are now linked from our documentation as well:

--Molly

jpellet2024-01-16 03:21jpellet2024-01-16 03:21Rlabkey - HTTP error code 500 using executeSql functionRlabkey - HTTP error code 500 using executeSql function MARKDOWNActive     LabKey Support Forum

Dear Molly,

thank you for your reply.

Yes I use an API key to authenticate but the Syntax error 'U0VMRUNUJTIwKiUyMGZyb20lMjBUZXN...' does not match my API key.
I tested the same code with an other user account (so an other API key) and the message is exactly the same, with the same Syntax error.

I also tried to authenticate using labkey.setDefaults in RStudio with email and password, and I got the same error message.

I dropped the line setting colNameOpt from the executeSql, same Error message. I put colNameOpt to the selectRows and I got the correct result:

    baseUrl="http://localhost:8080/labkey",
    folderPath="/DEMO",
    schemaName="lists",
    queryName="Test",
    colNameOpt = "rname") 
 patient_id gender Date
1       1022   Male      2016-08-08
2       1030   Male      2016-11-25 ```

If I change the sql query to only select Gender using executeSql I get the same error message:

```test<-labkey.executeSql(
    baseUrl="http://localhost:8080/labkey", 
    folderPath = "/DEMO",
    schemaName = "lists",
    sql="SELECT gender from Test")
Error in handleError(response, haltOnError) : 
 HTTP request was unsuccessful. Status code = 500, Error message = Error on line 1: Syntax error near 'U0VMRUNUJTIwZ2VuZGVyJTIwZ....'

If I make a deliberate mistake on the sql query I get the same error.

Labkey version 22.11.0
Tomcat 9.0.83
Postgresql 13.13
Java 17.0.9

stuartm2021-11-02 16:11Jon (LabKey DevOps)2021-12-21 10:31Retiring SVN server (svn.mgt.labkey.host) on November 1, 2021Retiring SVN server (svn.mgt.labkey.host) on November 1, 2021 MARKDOWNClosed     LabKey Support Forum

Per the above announcement, the LabKey SVN Server has been turned off. We anticipate that we will no longer need this instance, however we will retain the instance per our SVN retirement plan for several months to ensure we no longer require it.

Susan Hert2021-02-08 09:40Jon (LabKey DevOps)2021-04-19 23:54Removing server/modules/build.gradle fileRemoving server/modules/build.gradle file MARKDOWNClosed     LabKey Support Forum

This file has now been removed in develop (9ae16b0).

Please be sure any of your new or existing LabKey modules define a module task, either via custom build logic or by applying the appropriate plugin.

Susan

mohara2024-02-29 13:40mohara2024-02-29 13:40Remove "Name" field from derive sample formsRemove "Name" field from derive sample forms MARKDOWNActive     LabKey Support Forum

Hi Katy:

That's great about the upgrade.
Did you mean to attach an image of where you are trying to remove the name field? If it's the editing panel, there is an advanced setting for the field to hide it there as well.

Also, I believe you're familiar with our Sample Manager and Biologics products, which both include features specifically designed for things like auto-generating custom/meaningful names, and protecting those names from user overwrites.

--Molly

mohara2024-03-05 09:12mohara2024-03-05 09:12Remove "Name" field from derive sample formsRemove "Name" field from derive sample forms MARKDOWNActive     LabKey Support Forum

Hi Katy:

As I believe you've heard from my colleague, you're right that in the LabKey Server interface, there isn't a way to hide that Name field on that Output Samples panel (though it need not be populated if you have a naming pattern for the Sample Type). In the Sample Manager or Biologics applications, the equivalent derivation operation will let you hide that field as well as prevent users from providing their own names for samples at all. Let us know if we can provide more information here.

Thanks,
--Molly

katy wiseman2024-03-04 06:09katy wiseman2024-03-04 06:09Remove "Name" field from derive sample formsRemove "Name" field from derive sample forms MARKDOWNActive     LabKey Support Forum

Hi Molly,

I thought about it but then didn't, so I've attahced the screenshot here. I've managed to remove it from the insert row form, and on the editing, but not in the derive sample - output sample window.

Thanks,

Katy

jgane2020-03-24 11:40chetc (LabKey Support)2020-03-26 16:54Recent Security UpdateRecent Security Update MARKDOWNClosed     LabKey Support Forum

Hi Adam,

Thanks for the prompt response. I understand why you cannot share more details, thank you for that information.

Jon

adam2020-03-24 10:04adam2020-03-24 10:04Recent Security UpdateRecent Security Update MARKDOWNActive     LabKey Support Forum

Hi Jon,

As I hope you can appreciate, we aren't sharing details about the exact nature of the vulnerability or potential method of exploit at this point; we want to provide our clients and users of the Community Edition ample opportunity to upgrade their servers first. I can share that the vulnerability was discovered by an expert, responsible security firm that we have engaged. We are not aware of any real-world exploits of this vulnerability. However, we strongly recommend that every LabKey Server deployment be upgraded to 20.3.0 or 19.3.7 immediately.

Thanks,
Adam

chetc (LabKey Support)2020-08-21 10:35Jon (LabKey DevOps)2020-09-18 10:42R dataframe from external data source to data gridR dataframe from external data source to data grid MARKDOWNClosed     LabKey Support Forum

Hello,

You can use (below) to get a grid like output. labkey.data would be the dataframe you pass in and be sure to include the comment, that allows labkey to display the tsv created. You can get more information on other kinds of outputs under the help tab in the report builder.

${tsvout:tsvfile}

write.table(labkey.data, file = "tsvfile", sep = "\t", qmethod = "double", col.names=NA)

Thanks,
Chet

chetc (LabKey Support)2020-10-12 14:37Jon (LabKey DevOps)2020-10-27 23:00Questions about the study moduleQuestions about the study module MARKDOWNClosed     LabKey Support Forum

Hello Eva,

It's sorting properly given that it defaults to a type of text. As far as I know you can't change the field type of participantID, the field is locked both during creation and editing.

Thanks,
Chet

adam2019-12-03 10:36Jon (LabKey DevOps)2019-12-03 21:01Question regarding LDAP in upcoming releaseQuestion regarding LDAP in upcoming release MARKDOWNClosed     LabKey Support Forum

Hi Bront,

Yes, as of LabKey Server 20.1, LDAP authentication will be available in all premium editions, but not the community edition. LDAP group/user synchronization and the LDAP authentication search feature are already premium only, and we're rewriting the code to incorporate LDAP search settings into the standard configuration page and support multiple configurations; maintaining our LDAP code across multiple repositories no longer makes sense. This also groups LabKey's enterprise-level authentication providers (LDAP, CAS, SAML, Duo) together in the Professional Edition and above.

Community Edition will continue to support database authentication; no change there. We added a "Has Password" column to the Site Users table to help administrators who want to migrate users from LDAP authentication to database authentication. See https://www.labkey.org/Documentation/Archive/19.3/wiki-page.view?name=manageUsers#site

Thanks,
Adam

jeckels2022-01-21 16:47jeckels2022-01-21 16:47Query validation fails and API getSchemaQuery validation fails and API getSchema MARKDOWNActive     LabKey Support Forum

Hi Christian,

Thanks for your report. I checked and there is indeed a metadata mismatch on this table. In some places the server is expecting the table name to be RunRepresentativeDataState and in others it's expecting it to be RepresentativeDataState_Run. The latter should work via the R API and other pathways so I recommend that approach.

Looking at the history of the code I can't any recent changes that would have impacted this, but it should be an easy to fix to reconcile them and have the server respond to either name in case there was a change that disconnected support for "RunRepresentativeDataState".

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=44713

Thanks,
Josh

jeckels2022-01-25 10:30jeckels2022-01-25 10:30Query validation fails and API getSchemaQuery validation fails and API getSchema MARKDOWNActive     LabKey Support Forum

Hi Christian,

We haven't yet rolled out a new maintenance release that includes this fix. Are you using PanoramaWeb.org or a separate deployment?

Thanks,
Josh

christian opitz2022-01-24 03:01christian opitz2022-01-24 03:01Query validation fails and API getSchemaQuery validation fails and API getSchema MARKDOWNActive     LabKey Support Forum

Hi Josh

Thank you for the timely reply. Seeing that you have already pushed a fix to repo, is it already part of the distributed zip file? So one can fix it by patching?

Otherwise I would need to change code to move away from query objects and explicitly call the schemas and views requested. I do not depend on the RunRepresentativeDataState at all but retrieving the entire object via getSchema() will yield the error.

Thanks again,
Christian

christian opitz2022-03-22 06:46christian opitz2022-03-22 06:46Query validation fails and API getSchemaQuery validation fails and API getSchema MARKDOWNActive     LabKey Support Forum

Dear Josh

I am very sorry for the late reply - a lot of things have been getting in my way. Thank you for following up.

We indeed use a separate instance. I have just seen the 22.3 that now comes without Panorama, which is a bummer. Is there any chance of having a revised 21.X to remediate the problem with the query meta tables?

Thanks a bucket,
Christian

mohara2023-08-22 09:29mohara2023-08-22 09:29Python API - Connection with _netrc failing?Python API - Connection with _netrc failing? MARKDOWNActive     LabKey Support Forum

Hi Connor:

When you're providing the credential in the netrc file, you don't need to also pass the api_key parameter, and in your example it is not set to anything. Try it with the call to APIWrapper reading:

labkey_api = APIWrapper(labkey_server, container_path, context_path, use_ssl = False)

and see if that picks up the credential. In addition, from the response snippet, it looks like your apikey in netrc still includes the "apikey|" prefix, which is [no longer used for newer API keys|(https://www.labkey.org/Documentation/wiki-page.view?name=releasenotes233#dev). Keys generated before this change with the prefix may still work, but it might be worth generating a new one on your server and using that. The key-generation UI will show you an R usage example which will show the key quoted as it should be used. Unless you are on an older version of LabKey Server, it will not include the prefix.

We can also move this topic to your Premium Support Portal if you need more specific assistance with your script and/or placement of the netrc file.

Hope that helps,

--Molly

mohara2023-08-22 10:09mohara2023-08-22 10:09Python API - Connection with _netrc failing?Python API - Connection with _netrc failing? MARKDOWNActive     LabKey Support Forum

The API will work with 22.7 of course, but yes, on that older server, the key you generate will have the prefix. Basically, if your netrc has the key as it was generated (and it hasn't expired) it should authenticate. I've also updated the documentation to clarify this and that when you're passing the authentication details in netrc, you should not include the api_key parameter in the API wrapper.

Assuming that's what you're doing, and it's good news that you can successfully connect to your local, another common issue with API wrapper calls is the context_path parameter - does the URL for the 22.7 server and container you want look like this?

http://mylabkeyserver.ca/labkey/Test_Lab

A common configuration for 'non-local/dev' instances is to use a ROOT.xml file instead of a labkey.xml file, meaning that instead the URL would be missing the "labkey/" and you would want to have your script use context_path='' (an empty string).

http://mylabkeyserver.ca/Test_Lab

I think it will work best to move this to your Support Portal, where we can better exchange more specific details of your script and configuration.

Thanks,
--Molly

connor henderson2023-08-22 09:41connor henderson2023-08-22 09:41Python API - Connection with _netrc failing?Python API - Connection with _netrc failing? MARKDOWNActive     LabKey Support Forum

We're presently upgrading from 22.7 to 23.7 so our current version uses the prefix. I've tried removing the 'apikey|' prefix and passing it via the _netrc file and by passing as a parameter to the API wrapper to no effect. I can connect to my 23.7 instance that's setup on my local machine; is it perhaps that the API no longer works with 22.7?

rpiercy2024-05-28 01:36rpiercy2024-05-28 01:36Problem with Chart display when using Participant Groups and the Chart WizardProblem with Chart display when using Participant Groups and the Chart Wizard MARKDOWNActive     LabKey Support Forum

Thank you Molly.

I am not seeing any specific errors and the problem happens in Safari and Chrome.

Yes, it works if I try to display a time chart with participant groups >show individual lines.

but
Show mean > None. Also does not work - again it just hangs.

I have groups and cohorts defined.

Richard

rpiercy2024-05-28 03:28rpiercy2024-05-28 03:28Problem with Chart display when using Participant Groups and the Chart WizardProblem with Chart display when using Participant Groups and the Chart Wizard MARKDOWNActive     LabKey Support Forum

I have been able to sort the error by saving data in an earlier version of Excel and re-uploading and removing some rows that had empty fields.

mohara2024-05-24 12:34mohara2024-05-24 12:34Problem with Chart display when using Participant Groups and the Chart WizardProblem with Chart display when using Participant Groups and the Chart Wizard MARKDOWNActive     LabKey Support Forum

Hi:

First, it maybe goes without saying that you'll want to upgrade your server to take advantage of numerous fixes, including but not limited to security updates mentioned in these release notes and this recent forum post. In your case this would be a multistep upgrade, as covered here.

We aren't able to do detailed troubleshooting on older versions, but some ideas:

Are you seeing any error messages in the log when it hangs like that?
Any errors in the developer tools/browser console?
Does it happen on a different browser? (Chrome vs. Firefox)?
Does a timechart showing by participant groups > Show individual lines work?
Does > Show mean > None work? i.e. is it only the specific combination of showing groups with means as Std Err bars or something broader?

I am able to create a scenario to get a 'Loading...' hang like that on a timechart, but only in a study that has neither participant groups nor cohorts - this seems unlikely to be why you are seeing that, but it's worth confirming the groups you want to use are still assigned and populated.

As a confirmation of basics on that older version, you can install our example study from the 21.7 documentation archives into a testing folder. That study includes a pre-built timechart that you should be able to use 'chart layout' to show the 'std err' bars. Assuming that works, hopefully you can work backwards to what may be different in your study?

Hope that helps, and thanks for reaching out.

--Molly

mohara2024-05-28 10:11mohara2024-05-28 10:11Problem with Chart display when using Participant Groups and the Chart WizardProblem with Chart display when using Participant Groups and the Chart Wizard MARKDOWNActive     LabKey Support Forum

Interesting, and glad you found a workaround. I suspect that something about calculating the mean/std err was not working with that missing data. I can't reproduce that here, so far, but I may not be missing enough of the same kind of data you were, or of course it may have been fixed since then.

--Molly

ophira2021-03-23 07:43ophira2021-03-23 07:43Problem while using the "Import and Export a XAR File" tutorialProblem while using the "Import and Export a XAR File" tutorial MARKDOWNActive     LabKey Support Forum

Update:

We got the Community Edition server installed, and the "Setup" button appears when I do the same on this server, tried to do the exact action (open a new project, and then go to Pipeline) but it still does not appear on the Trial server. I can now test this functionality using this server, so this is not a problem for me now.

chetc (LabKey Support)2021-03-23 07:53chetc (LabKey Support)2021-03-23 07:53Problem while using the "Import and Export a XAR File" tutorialProblem while using the "Import and Export a XAR File" tutorial MARKDOWNActive     LabKey Support Forum

Hello Ophir,

Thanks for reaching out to us!

Unfortunately trail servers do not support setting up a pipeline override which is why you're not seeing what the documentation mentions. If you would like to follow the XAR tutorial, you would have to download and install the server locally.

https://www.labkey.com/products-services/labkey-server/download-community-edition/

If you're interested in other tutorials, our docs team has curated a list of tutorials which you can use to tell which tutorials will work with a trial instance.

https://www.labkey.org/Documentation/wiki-page.view?name=tutorials

Thanks,
Chet

chetc (LabKey Support)2021-03-23 07:55chetc (LabKey Support)2021-03-23 07:55Problem while using the "Import and Export a XAR File" tutorialProblem while using the "Import and Export a XAR File" tutorial MARKDOWNActive     LabKey Support Forum

Hello Ophir,

I did not see your reply before posting mine. Glad to hear you got it working!

Thanks,
Chet

ophira2021-03-23 07:58chetc (LabKey Support)2021-04-13 15:35Problem while using the "Import and Export a XAR File" tutorialProblem while using the "Import and Export a XAR File" tutorial MARKDOWNClosed     LabKey Support Forum

Thanks for your response Chet and for the links to the tutorials. The documentation is very helpful in learning the system.

kevink2021-06-11 11:08Jon (LabKey DevOps)2021-06-11 11:26Problem to Import FlowJo WorkspaceProblem to Import FlowJo Workspace MARKDOWNClosed     LabKey Support Forum

It looks like the statistic name is too long by just a few characters. The statistic name is composed of the population name and the statistic of interest. For example, the name could look something like "/S/Lv/L/CD3+/IFNg+:Count" or "/S/Lv/L/CD3+/IFNg+:Freq_Of_Parent". I vaguely remember FlowJo had a limit on the total population name length such that it would fit under our current limit, but they may have increased it in recent years.

For a workaround, you can try shortening the population names and re-importing into LabKey. I've filed an issue to address this:

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43360

mohara2022-04-15 11:59mohara2022-04-15 11:59Problems with uploading filesProblems with uploading files MARKDOWNActive     LabKey Support Forum

Hi Bika:

Are you seeing the same error on both servers? Does the error happen in any container with any file type?
Have you checked your site file root (or project/folder file root if set) to ensure it points to a writable location on the underlying file system? Documentation: File Root Options

The best next step is to check the labkey.log for additional details about what is wrong. Repro the error again and then check the most recent logs. Documentation: How to find the logs.

If you aren't sure how to interpret the log errors you see, please attach the relevant portion and I can take a look.

--Molly

mohara2022-04-18 15:29mohara2022-04-18 15:29Problems with uploading filesProblems with uploading files MARKDOWNActive     LabKey Support Forum

That error log implies the problem is the permissions settings for your file system. On Windows, check the 'Properties > Security' tab for this location (and subdirectories if they exist) to make sure they are writable:
C:\Program Files (x86)\Labkey Server\files
If the file root isn't writable by LabKey, you can't upload files there. I was able to reproduce this locally by denying write access to the "Users" group in my enlistment; your specific configuration and permission needs may vary.

I've added the original error message you saw to the troubleshooting documentation here:
https://www.labkey.org/Documentation/wiki-page.view?name=troubleshootingAdmin#perms

Bika2022-04-15 18:55Bika2022-04-15 18:55Problems with uploading filesProblems with uploading files MARKDOWNActive     LabKey Support Forum

Hi Molly:

Thank you very much for your reply. Both servers are getting the same error. I upload test just text files. Checking the project/folder configuration are true. My user permission is site administrator. Attached is the error log. Also installed Labkey v8.1 uploads normally without error.

Best Regards
Bika

Bika2022-04-19 04:58Bika2022-04-19 04:58Problems with uploading filesProblems with uploading files MARKDOWNActive     LabKey Support Forum

Hi Molly:

The problem has been solved. Thank you very much.

Best Regards
Bika

mohara2024-02-26 11:05mohara2024-02-26 11:05Permissions settings for seeing created by colums in sample tablesPermissions settings for seeing created by colums in sample tables MARKDOWNActive     LabKey Support Forum

Hi Katy:
Generally, a Project or Folder Admin should be able to see the user name in that column, or at least that's all I can reproduce locally. Can you give me a bit more information to help troubleshoot here?

  1. What version of LabKey are you using?
  2. What kind of table contains that column? Is it a Sample table? List? SQL Query?
  3. Is there a lookup or cross-container query or similar related to that table/that 'created by' column you show clipped?
  4. Is there anything unusual about userID 1220? If the Project Admin creates a new row themselves, can they see their own user name?
  5. If the Project Admin uses the grid customizer, can they "follow the lookup" and also expose the "Display Name" for the "Created By" column?

--Molly

mohara2024-02-27 09:08mohara2024-02-27 09:08Permissions settings for seeing created by colums in sample tablesPermissions settings for seeing created by colums in sample tables MARKDOWNActive     LabKey Support Forum

Thanks, now I see what's happening.

My first recommendation is that you upgrade. Many updates, including security fixes, have happened since that version. At a minimum, upgrade to the latest maintenance release for 23.3, and ideally to the latest release available:

I can't reproduce this issue locally, so it's possible it's been fixed, and upgrading is all you'll need to do. Even readers should be able to see the display name of other users, though not other user details or group memberships.
If not, I believe the explanation is that these built-in lookups to user names are done on the "SiteUsers" table which is by design only accessible to site administrators. To display usernames to non-admins, you can edit the table metadata to make those lookups point to the project's "Users" table instead. Learn more about this in the documentation here:

As long as all you want to show is the username, assigning that other "See User and Group Details" role will not be necessary.

--Molly

katy wiseman2024-02-27 02:56katy wiseman2024-02-27 02:56Permissions settings for seeing created by colums in sample tablesPermissions settings for seeing created by colums in sample tables MARKDOWNActive     LabKey Support Forum

Hi Molly,

  1. What version of LabKey are you using? 23.3.2
  2. What kind of table contains that column? Is it a Sample table? List? SQL Query? It's a sample table
  3. Is there a lookup or cross-container query or similar related to that table/that 'created by' column you show clipped? No it's from the same table that I'm viewing
  4. Is there anything unusual about userID 1220? If the Project Admin creates a new row themselves, can they see their own user name? Yes she can see her own name. Other users can also view their name but no one elses, they come up as numbers for them.
  5. If the Project Admin uses the grid customizer, can they "follow the lookup" and also expose the "Display Name" for the "Created By" column? Display name shows as blank when added and viewed by the project/folder administrator for other people but shows the name for me for all users

Thanks,

Katy

katy wiseman2024-02-28 02:12katy wiseman2024-02-28 02:12Permissions settings for seeing created by colums in sample tablesPermissions settings for seeing created by colums in sample tables MARKDOWNActive     LabKey Support Forum

Hi Molly,

Thank you! I'ved asked IT to build an updated docker image for us with the latest version.

In the meantime the other solution has worked as well! Now it makes it much easier for her to track down users who've made a mess :).

Best,
Katy

mohara2024-06-18 09:02mohara2024-06-18 09:02Permissions groups and APIsPermissions groups and APIs MARKDOWNActive     LabKey Support Forum

Hi Eva:

Yes, you can use either site- or project-wide security groups for users, then assign roles to the group in whatever context you need. Documentation is here:

We can also move this question to your custom support portal linked from here for detailed followup about your specific needs.

--Molly

eva pujadas2024-06-18 09:13eva pujadas2024-06-18 09:13Permissions groups and APIsPermissions groups and APIs MARKDOWNActive     LabKey Support Forum

Hi Molly,
Thanks for your quick answer, we'll take a look at the documentation you propose.
About moving this question, yes, if you know how to do this, please move it to our support portal (in fact that was my intention when I created it...).
All the best,
Eva

tvaisar@u.washington.edu2020-05-27 12:10tvaisar@u.washington.edu2020-05-27 12:10Patch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram libraryPatch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram library MARKDOWNActive     LabKey Support Forum

Thanks Chet.
I will upgrade the installation as soon as I get a chance and will let you know.
Tomas

tvaisar@u.washington.edu2020-06-08 07:05tvaisar@u.washington.edu2020-06-08 07:05Patch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram libraryPatch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram library MARKDOWNActive     LabKey Support Forum

Thanks Chet,
Finally had a chance to upgrade our Labkey server and test. Works fine now.

Tomas

chetc (LabKey Support)2020-06-24 15:41Jon (LabKey DevOps)2020-08-10 10:56Patch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram libraryPatch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram library MARKDOWNClosed     LabKey Support Forum

Hello Tomas,

Glad to hear its working!

Thanks,
Chet

chetc (LabKey Support)2020-05-26 16:25chetc (LabKey Support)2020-05-26 16:25Patch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram libraryPatch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram library MARKDOWNActive     LabKey Support Forum

Hello Tomas,

We will get a revised Community build pushed out soon, unfortunately we don't have a solid timeline just yet. I will get the process started and update this post next week. They will be updated to 20.3.6 which has the fix you mentioned.

Thanks,
Chet

chetc (LabKey Support)2020-05-27 12:01chetc (LabKey Support)2020-05-27 12:01Patch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram libraryPatch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram library MARKDOWNActive     LabKey Support Forum

Hello Tomas,

The Community Edition build 20.3.6 has been pushed out.

Let me know if you were able to get what you needed.

Thanks,
Chet

mohara2023-08-29 10:36mohara2023-08-29 10:36Out of heap memory after upgrade from v23.3.2 to v23.7.0Out of heap memory after upgrade from v23.3.2 to v23.7.0 MARKDOWNActive     LabKey Support Forum

Hi Will:

The short answer is that we have not seen this reported as a common issue in upgrading to 23.7.0 in the Community Edition, and offhand nothing looks amiss in your environment. A few ideas:

  1. Have you checked out the rest of the log to see if there is something happening upstream of this exception?
  2. Since it looks this could be related to indexing, were you running these jobs immediately after the upgrade when perhaps an overall reindexing was happening at the same time?
  3. Is it consistent and have you isolated it to be only happening during deletion? i.e. does a version where you do the queries but not the deletion run successfully? Watching the query profiler might also provide hints?

--Molly

Jon (LabKey DevOps)2018-03-30 11:01Jon (LabKey DevOps)2018-11-16 23:24Null pointer exception from js call LABKEY.Message.sendMessageNull pointer exception from js call LABKEY.Message.sendMessage MARKDOWNClosed     LabKey Support Forum

Hi Will,

There has been a change in 18.1 regarding the sendMessage API at the end of the Release Notes for 18.1

Changes to Messages API - A new site-scoped role, Use SendMessage API, controls access to the LABKEY.Message API. Only users with this role can send messages via the API. Previously, read permission to a container automatically granted this level of access, so Guests or other groups might need to be added to the new role. Also, in a related change, the server no longer sends emails to users who have never logged into the server, except for the initial invitation email to set up their user account. (docs)

Regards,

Jon

ehands2021-10-05 10:12ehands2021-10-05 10:12NAb new study folder missing specimen tabNAb new study folder missing specimen tab MARKDOWNActive     LabKey Support Forum

Hi Adam,

Thanks for the quick response. I do have Page Admin permissions, but enabling the Specimen module as in the steps provided does not seem to be working still. I've tried creating a new folder after enabling the Specimen module and it still does not provide the Repository Type options in the folder creation process. When I reload the page or logout and then log back in, it seems like some of the time the Specimen module reverts to being unchecked and turned off. I'm not sure if it's malfunctioning?

Thanks,
Ellie

adam2021-10-05 10:01adam2021-10-05 10:01NAb new study folder missing specimen tabNAb new study folder missing specimen tab MARKDOWNActive     LabKey Support Forum

Hi Ellie,

You likely need to enable the Specimen module in your new subfolder via the Folder Management option. Assuming you're a folder administrator you can follow the steps near the top of this page: https://www.labkey.org/Documentation/wiki-page.view?name=specimensHome

Thanks,
Adam

adam2021-10-06 10:38adam2021-10-06 10:38NAb new study folder missing specimen tabNAb new study folder missing specimen tab MARKDOWNActive     LabKey Support Forum

The Repository Type options are no longer available at study creation time, but they can be set via the "Manage Study" administration page. Once the module is enabled all the specimen repository admin options should appear on that page.

I'm puzzled by your comment about the Specimen module disabling itself. If this continues to be a problem (or you're still having problems getting your specimen repository configured) then I think we should schedule a screen sharing session to investigate.

Thanks,
Adam

adam2021-10-06 13:16adam2021-10-06 13:16NAb new study folder missing specimen tabNAb new study folder missing specimen tab MARKDOWNClosed     LabKey Support Forum

Ellie reported that everything is working as expected now, so I'm closing out this thread

chetc (LabKey Support)2021-04-26 12:54Jon (LabKey DevOps)2021-05-18 14:19Module Upgrade : Error: Unable to initialize search index.Module Upgrade : Error: Unable to initialize search index. MARKDOWNClosed     LabKey Support Forum

Hello,

Sorry for taking so long to get to this. We try and address our forums when we get a chance, but it has been especially busy lately.

The error is saying that since "labkey_full_text_index_4zf_Lucene50_0.tip" file was not found at "C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp" location, it cannot initialize the search index and will not index new documents added to the server.

To correct this error, there are 2 ways you could go about it. Both methods will involving navigating to the "Full-Text Search Configuration" page. To do this click the "Gear Icon" --> "Site" --> "Admin Console (Settings tab) --> "Management/FULL-TEXT SEARCH"

  1. If you know where "labkey_full_text_index_4zf_Lucene50_0.tip" you could opt to change the "
    Path to full-text search index" so it points to the file. This will require that all of the data gets re-indexed.

  2. You could also "Delete" the current index and start the crawler again, essentially re-indexing all of your data.

Either way it seems like you will need to re-index your data which can be slow depending on how much there is. However you can just let it run in the background, and continue using the server.

More Information on Search:
https://www.labkey.org/Documentation/wiki-page.view?name=searchAdmin#search
https://www.labkey.org/Documentation/wiki-page.view?name=luceneSearch#terms

Let me know how it goes.

Thanks,
Chet

Jon (LabKey DevOps)2018-05-03 11:07Jon (LabKey DevOps)2018-11-16 23:24Missing ValuesMissing Values MARKDOWNClosed     LabKey Support Forum

Hi Laura,

Thanks for confirming.

Can you confirm that you've done the following?

Additional details can also be found here.

Assuming you did this on the folder-level:

  1. In the Missing Value section under the Gear Icon > Folder > Management > Missing Values tab, you should see two indicators that exist by default, a Q and an N. You can choose to add a 3rd one here called "N/A" with a description or remove/swap out the ones that exist for your "N/A" one.

MVSettingFolder

  1. You've set your field in your Assay Data (or anywhere you want that Missing Value Indicator to work) by going to the Advanced Tab of that field and enabling the Missing Value Indicator.

MVSettingField

Assuming you did this on the site-level:

  1. In the Missing Value section under the Gear Icon > Site > Admin Console > Missing Value Indicators in the Configuration section, you should see two indicators that exist by default, a Q and an N. You can choose to add a 3rd one here called "N/A" with a description or remove/swap out the ones that exist for your "N/A" one.

  2. You've set your field in your Assay Data (or anywhere you want that Missing Value Indicator to work) by going to the Advanced Tab of that field and enabling the Missing Value Indicator.

If you have done either of those things on the site or folder-level, then any uploads of that specific field that has the value of N/A should automatically set and should produce no errors in relation to that field and the MV setting.

Regards,

Jon

adam2021-01-18 08:59adam2021-01-18 08:59migration from standard server to docker and authenticationmigration from standard server to docker and authentication MARKDOWNClosed     LabKey Support Forum

Thanks for your post. We're continuing this discussion in your LabKey Support Portal.

Adam

mohara2022-09-07 10:31mohara2022-09-07 10:31Make a Visit an integerMake a Visit an integer MARKDOWNActive     LabKey Support Forum

Hi Murff:

I'm going to move this question to your premium support portal so we can better address it in the specific context of how you are setting up other parts of data entry for your study.

Generally, a study 'Visit' is defined as a range of decimal SequenceNum values, and can have an optional text label as well. In the default UI, users can type an integer, but it's treated as a decimal value when inserting a row in the UI for the SequenceNum and aligning the data in the matching 'Visit'. Learn more about visits here.

If customizing the entry form, you could constrain user entry to integer values. Or, if using bulk data entry from a file, you can make use of visit maps and text label aliases, letting users identify the visit by a name familar to them, all aligned with other data for that 'visit' by any other name. Learn more about visit names and aliases here.

Thanks,

--Molly

stuartm2022-11-07 07:56stuartm2022-11-07 07:56Maintence Notice - Teamcity Build Server - Monday 11/7/2022 7-8A M PSTMaintence Notice - Teamcity Build Server - Monday 11/7/2022 7-8A M PST MARKDOWNActive     LabKey Support Forum

The maintenance has completed.

Jon (LabKey DevOps)2021-04-29 09:01Jon (LabKey DevOps)2021-04-29 09:01Maintenance Notice: Migration of artifactory.labkey.com for Thursday, April 29th @ 8am PSTMaintenance Notice: Migration of artifactory.labkey.com for Thursday, April 29th @ 8am PST MARKDOWNClosed     LabKey Support Forum

Update: Due to unforeseen issues, we had to roll back again to the original server.

We apologize for any inconvenience this may have caused.

Jon (LabKey DevOps)2021-05-30 19:22Jon (LabKey DevOps)2021-05-30 19:22Maintenance Notice: Migration of artifactory.labkey.com for Sunday, May 30th @ 12pm PSTMaintenance Notice: Migration of artifactory.labkey.com for Sunday, May 30th @ 12pm PST MARKDOWNClosed     LabKey Support Forum

Migration is complete.

Trey2023-02-04 09:03Trey2023-02-04 09:03Maintenance Notice - LabKey TeamCity Build Server on Friday, February 3rd 2023Maintenance Notice - LabKey TeamCity Build Server on Friday, February 3rd 2023 MARKDOWNClosed     LabKey Support Forum

The maintenance has been completed successfully.

Jon (LabKey DevOps)2021-06-04 08:10Jon (LabKey DevOps)2021-06-04 08:10Maintenance Notice: Artifactory outage for Friday, June 4th 2021 @ 8am PSTMaintenance Notice: Artifactory outage for Friday, June 4th 2021 @ 8am PST MARKDOWNClosed     LabKey Support Forum

Maintenance Completed.

Jon (LabKey DevOps)2021-06-10 08:17Jon (LabKey DevOps)2021-06-10 08:17Maintenance Notice - artifactory.labkey.com update for Thursday, June 10th 2021 @ 8am PDTMaintenance Notice - artifactory.labkey.com update for Thursday, June 10th 2021 @ 8am PDT MARKDOWNClosed     LabKey Support Forum

Update Complete.

stuartm2022-01-24 17:02stuartm2022-01-24 17:02Maintance Notice - Teamcity Server 01/24/2022 4:30PM - 5:00PM PDTMaintance Notice - Teamcity Server 01/24/2022 4:30PM - 5:00PM PDT MARKDOWNActive     LabKey Support Forum

Maintenance has been completed successfully.

max diesner2020-10-05 03:11max diesner2020-10-05 03:11Lookups/Links to primary key/normal values in SQL queriesLookups/Links to primary key/normal values in SQL queries MARKDOWNActive     LabKey Support Forum

Hi Chet,

i just had time to revisit this problem on our server.

so here is some example code where it is also not working. I have a list with orders. The primary key is Ordernumber Labkey, the query should gives back just the entries with the status on unprocessed (to implement it in a dropdown menue elsewhere:


SELECT Orders."Ordernumber Labkey",
FROM Orders
WHERE Orders."Processed?"=true


This gives back the correct list with entries but the look up is not linked to the original list as explained earlier.

I also edited the Metadata XML file as follows:


<tables xmlns="http://labkey.org/data/xml">
<table tableName="Orders-unprocessed" tableDbType="NOT_IN_DB">
<columns>
<column columnName="Ordernumber Labkey">
<fk>
<fkColumnName>Ordernumber</fkColumnName>
<fkTable>Orders</fkTable>
<fkDbSchema>lists</fkDbSchema>
</fk>
</column>
</columns>
</table>
</tables>


Which is not altering anything. I am probably missing something but am not sure what.

looking forward to your help!

Max

max diesner2020-12-12 00:17max diesner2020-12-12 00:17Lookups/Links to primary key/normal values in SQL queriesLookups/Links to primary key/normal values in SQL queries MARKDOWNActive     LabKey Support Forum

Hi Chet,

thanks for the answer. I finally had last week time to review everything again and with your walk through i have found my mistake - I had a space in the primary key column name - rookie mistake as i have found out. Sry for the inconvinience. Nevertheless, everything is working as it should, i also understand and can setup the XML metadata as i want which solved quiet some problems ;). So thanks again!

I have a follow up question; is there an easy way to setup dependent lookups, e.g.:

Lookup 1
Machine 1
Machine 2

Dependent Lookup 2
(Machine 1)
Column 1
Column 2

or depending on the selection in lookup 1
(Machine 2)
Column 1
Column 2
Column 3

Another example directly from the server would be when adding a single list module on a labkey page. There you can select a list and then a second dropdown menue can be selected in order to select from the list of the corresponding list views.

Is there a native way through the XML data to set this up or has this to be implemented via for example Javascript?

Thanks again for your awesome work!

Max

chetc (LabKey Support)2020-09-15 13:29Jon (LabKey DevOps)2020-09-18 10:42Lookups/Links to primary key/normal values in SQL queriesLookups/Links to primary key/normal values in SQL queries MARKDOWNClosed     LabKey Support Forum

Hello Max,

As far as I know there is no option that needs to be enabled for this. Your approach is correct, if the lookup doesn't appear automatically you can opt to set up the link through metadata.

You may have already seen this doc but take a look https://www.labkey.org/Documentation/wiki-page.view?name=lookups

Would it be possible for you to show me your query and associated metadata. Having this will allow me troubleshoot further.

Thanks,
Chet

chetc (LabKey Support)2020-10-22 14:10Jon (LabKey DevOps)2020-10-27 23:01Lookups/Links to primary key/normal values in SQL queriesLookups/Links to primary key/normal values in SQL queries MARKDOWNClosed     LabKey Support Forum

Hello Max,

I tried the XML you sent and it seems to work as expected on my end. Ill walk you through what I have setup and then we can see if there are any discrepancies.

I have one list
List name - Orders
(orderDesign.png)
(orderData.png)

There is a query for this list called unprocessed-Orders
(unprocessedQueryXML.png)
(unprocessedQuery.png)
(unprocessedQueryResult.png)

When I added your XML (with proper columnName changes) the view of that query was able to render the lookups correctly.
(lookupResults.png)

You should make sure that the fkColumnName is specified properly. If you are on a newer version of LK you could try and setup the lookup via the field editor UI. https://www.labkey.org/Documentation/wiki-page.view?name=lookupDefine.

If you still aren't able to get it to work, send me screenshots of the list design and the query xml and I will try to troubleshoot further. A folder export would be good as well. https://www.labkey.org/Documentation/wiki-page.view?name=importExportFolder

Thanks,
Chet

chetc (LabKey Support)2020-12-30 13:46Jon (LabKey DevOps)2021-02-05 13:21Lookups/Links to primary key/normal values in SQL queriesLookups/Links to primary key/normal values in SQL queries MARKDOWNClosed     LabKey Support Forum

Hello Max,

No worries, glad you were able to get that working!

I don't follow what you're asking in regards to dependent lookups.

  1. Is there more than one machine (LabKey Server) in your scenario?
  2. Are you trying to setup a list with lookups and then filter the lookup columns via a pre-defined view?
  3. Or were you hoping to change where the lookup is pointing to based on the selected view?

https://www.labkey.org/Documentation/wiki-page.view?name=lookupDefine

Thanks,
Chet

chetc (LabKey Support)2020-07-14 16:29chetc (LabKey Support)2020-07-14 16:52List with timestamps unsortedList with timestamps unsorted MARKDOWNActive     LabKey Support Forum

Hello Eva,

Thank you for providing that csv to test with, unfortunately I wasn't able to reproduce the issue nor have I heard of something similar before. When I tried it that record seemed to be in place (see screenshot). You can set a default sort order (to date/time) in the default view definitions of the table. This will make it so the grid will default to using the date column when ordering as opposed to the primary key.

  1. What version of Labkey are you running?
  2. Were you hoping that the order of the primary key would also represent the order of the date/time column? As the primary key increases so does the date/time.

Thanks,
Chet

mohara2022-10-11 15:44mohara2022-10-11 15:44Limit on number of sample derivatives created at a time in Sample ManagerLimit on number of sample derivatives created at a time in Sample Manager MARKDOWNActive     LabKey Support Forum

Hi Eric:

Yes, that's the current limitation for creating derivatives in the UI, though removing that limit is in the plans for the 22.11 release. We can follow up further on your premium support portal if needed.

Meanwhile, you can create more derivatives at once by using the 'import from file' option. Documentation is here.

--Molly

joseph mackey2020-03-11 08:37joseph mackey2020-03-11 08:37LDAP Authentication for Linux - Community Version (Moved from Installation Forum)LDAP Authentication for Linux - Community Version (Moved from Installation Forum) MARKDOWNActive     LabKey Support Forum

Hello Chet.
I came across the page you suggested before.
I do not have option for LDAP Sync.
I also get errors when i try to do any substitutions other than ${email} or ${uid}:
Invalid template: valid replacements are ${email} and ${uid}
I added the LDAP settings to the labkey.xml file but Labkey seem to completely ignore it.

Regards,
Joseph

adam2020-04-09 14:51Jon (LabKey DevOps)2020-04-16 15:20LDAP Authentication for Linux - Community Version (Moved from Installation Forum)LDAP Authentication for Linux - Community Version (Moved from Installation Forum) MARKDOWNClosed     LabKey Support Forum

You have a security principal that works, so that's good. It looks like you just need to construct and specify a security principal template that produces a security principal in the same form.

What is the corresponding email address for user "admin"? Is it admin@myorganism.org?

If so, then this security principal template should work: cn=${uid},dc=myorganism,dc=org

As mentioned in the documentation, LabKey will replace ${uid} with the portion of the user's email address to the left of the @ symbol.

It doesn't look like you need LDAP Search... which is good, because, as I posted earlier, this rarely needed capability is not part of the Community Edition. Don't put any settings into labkey.xml; your LDAP authentication should be configured via the admin web UI only.

Adam

johann pellet2020-03-26 09:05johann pellet2020-03-26 09:05LDAP Authentication for Linux - Community Version (Moved from Installation Forum)LDAP Authentication for Linux - Community Version (Moved from Installation Forum) MARKDOWNActive     LabKey Support Forum

Dear all,

I spent 2 days trying to configure without success the LDAP authentication in Labley 19.3 (free for the Community Edition).

With the settings below:
LDAP Server URL: ldap://auth-ldap.myorganism.org:389
Security Principal: cn=admin,dc=myorganism,dc=org
Password: thecorrectpassword

The authentication succeeded.

But it's not clear for me to understand how I should configure correctly the LDAP page setting or the labkey.xml files to work with an email&password.

I tried to change the Security Principal to: mail=john.doe@myorganism.org,ou=users,dc=myorganism,dc=org but it did not work.

I tried to change the labkey.xml file following the LDAP Search Option section of the page :https://www.labkey.org/Documentation/Archive/19.3/wiki-page.view?name=configLdap#process, without success.
Could we use for the variable ldapSearch_username someting like "cn=admin,dc=myorganism,dc=org" or it should be an email?

Thanks for your feeback.

Johann

adam2020-03-11 16:36chetc (LabKey Support)2020-03-12 17:24LDAP Authentication for Linux - Community Version (Moved from Installation Forum)LDAP Authentication for Linux - Community Version (Moved from Installation Forum) MARKDOWNClosed     LabKey Support Forum

LDAP sync and LDAP search are premium features, not available in the Community Edition. In 20.3 (production release of LabKey Server coming out next week), LDAP authentication will become a premium feature as well. We've tried to make this clear in the documentation and the release notes.

Adam

mohara2022-04-19 12:12mohara2022-04-19 12:12LabKey version 19.3.7LabKey version 19.3.7 MARKDOWNActive     LabKey Support Forum

Hi Gina:

We'll respond in more detail on your premium Support Portal. I'll open a ticket for you there with this question.

Generally you can find details about what versions of Tomcat (and other components) will work in this documentation topic, available for every release of LabKey Server. For 19.3, for example, you can find it here:
https://www.labkey.org/Documentation/Archive/19.3/wiki-page.view?name=supported

--Molly

stuartm2019-12-31 16:05Jon (LabKey DevOps)2020-01-02 10:57LabKey Teamcity Server Maintenance 12/31/2019 @ 3 PMLabKey Teamcity Server Maintenance 12/31/2019 @ 3 PM MARKDOWNClosed     LabKey Support Forum

Maintenance completed successfully.

mlane2020-08-14 10:36mlane2020-08-14 10:36Labkey/Panorama server not recognized in SkylineLabkey/Panorama server not recognized in Skyline MARKDOWNActive     LabKey Support Forum

Hi,

I just wanted to update you that we resolved this particular issue with Skyline support team. In case you're interested, the fix is to add the Site: Guests user group to the Reader role. When Skyline is connecting to Panorama server, even though you give provide user account and password in the connection preferences, it doesn't use this information for initial check of the server. Of course, it does use the user log-in credentials to upload to the server.

They may address this in future version of Skyline but this is the workaround for now.

Monica

chetc (LabKey Support)2020-08-14 10:38chetc (LabKey Support)2020-08-14 10:38Labkey/Panorama server not recognized in SkylineLabkey/Panorama server not recognized in Skyline MARKDOWNActive     LabKey Support Forum

Hello Monica,

Thank you for reaching out to us!

There are a couple of things you could try

  1. Could you make sure that the correct context path is included? You may need to add /labkey to the URL.
  2. Even though Skyline asks for your username and password in the "Edit Server" dialog, Skyline does not use these credentials when Skyline is trying to determine whether the server is a Panorama server. You can workaround this behavior by changing the permissions for "home". Add "Site: Guests" to the reader section.

Let me know if you still run into issues after doing so.

Thanks,
Chet

mlane2020-08-14 12:21chetc (LabKey Support)2020-09-02 14:42Labkey/Panorama server not recognized in SkylineLabkey/Panorama server not recognized in Skyline MARKDOWNClosed     LabKey Support Forum

Thanks! I think our messages just crossed! Glad we came to same conclusion.

james gregoric2020-09-15 07:41james gregoric2020-09-15 07:41LabKey database not populated on startupLabKey database not populated on startup MARKDOWNActive     LabKey Support Forum

Touchdown! My sincere thanks to Jason and to Adam.

adam2020-09-14 15:35adam2020-09-14 15:35LabKey database not populated on startupLabKey database not populated on startup MARKDOWNActive     LabKey Support Forum

This usually indicates that a previous start of the server was able to create the database and the core schema, but failed (or was stopped prematurely) in the process of creating all the tables. Now that you've resolved the other issues preventing startup, I suggest you:

  • Shut down Tomcat
  • Delete your labkey database
  • Start Tomcat

LabKey should automatically create the database, schemas, and tables, and then populate tables with data.

Adam

adam2020-09-19 23:58adam2020-09-19 23:58LabKey database not populated on startupLabKey database not populated on startup MARKDOWNClosed     LabKey Support Forum

Glad to hear everything's working

Jon (LabKey DevOps)2021-06-03 16:16Jon (LabKey DevOps)2021-06-03 16:17Labkey Community Edition ConsultingLabkey Community Edition Consulting MARKDOWNClosed     LabKey Support Forum

Hello Ophir,

Unfortunately, there are no consulting companies that we're aware of that could provide this service for you.

That said, we would be happy to discuss this with you beyond our public forums.

I understand trying to figure out ways to minimize costs, but there are significant advantages to having a Premium edition vs the Community edition, such as more functionality and better Support for your needs.

Please contact us (https://www.labkey.com/about/contact/) or email info@labkey.com and let us know what questions/concerns/ideas/etc you have with regard to LabKey and we will do our best to address them.

Regards,

Jon

stuartm2018-12-10 09:45Jon (LabKey DevOps)2018-12-17 23:17LabKey Artifactory Maintenance 12/10/2018 7 AM PST - 10 AM PSTLabKey Artifactory Maintenance 12/10/2018 7 AM PST - 10 AM PST MARKDOWNClosed     LabKey Support Forum

Artifactory Maintenance has been completed.

kotlenik2022-01-14 02:29kotlenik2022-01-14 02:29JSON as Lists column data typeJSON as Lists column data type MARKDOWNActive     LabKey Support Forum

Hi guys,
we may close this thread. Steve Hanson helped me advising that SQL scripts module
https://www.labkey.org/Documentation/wiki-page.view?name=sqlScripts
could be used to construct custom JSON based columns in PostgreSQL database and use within
LabKey. Thanks Steve!
Cheers,
Adam

kotlenik2022-01-14 09:40kotlenik2022-01-14 09:40JSON as Lists column data typeJSON as Lists column data type MARKDOWNActive     LabKey Support Forum

Thank you Josh,
Cheers

jeckels2022-01-14 09:16jeckels2022-01-14 09:16JSON as Lists column data typeJSON as Lists column data type MARKDOWNActive     LabKey Support Forum

I'm glad that you're unblocked.

Note that you can also use the parse_jsonb() function in a SQL query to parse a VARCHAR-style column into a JSONB value. For example, with a hard-coded string value:

parse_jsonb('{"a":1, "b":null}')

https://www.labkey.org/Documentation/wiki-page.view?name=labkeysql

Thanks,
Josh

mohara2024-05-16 11:15mohara2024-05-16 11:15Issue with lookup to a queryIssue with lookup to a query MARKDOWNActive     LabKey Support Forum

Hi Katy:

What version of LabKey are you using? I wonder if you are hitting this issue, which was fixed in version 24.3, as well as maintenance release 23.11.11.

Issue 49511: Setting lookup to custom query shows "Error: Lookup target table does not exist."

In addition, if you're on any version lower than 23.11.11 now, you should upgrade to the latest maintenance release of either 24.3 or 23.11 as soon as possible because of the security update described in this other post.

--Molly

katy wiseman2024-05-17 00:42katy wiseman2024-05-17 00:42Issue with lookup to a queryIssue with lookup to a query MARKDOWNActive     LabKey Support Forum

Hi Molly,

Thank you! It looks like we're on a lower version. IT are going to love me... I'll let you know if it fixes it!

Best,
Katy

mohara2024-05-09 13:38mohara2024-05-09 13:38Issues updating rows with RlabkeyIssues updating rows with Rlabkey MARKDOWNActive     LabKey Support Forum

Hi, and thanks for reaching out.

That error message implies a problem in authentication or security settings, and I can confirm writing to the server v24.3 from RStudio does work with appropriate permissions, so some troubleshooting questions:

  1. Can you clarify how you're structuring the selectRows and insertRows calls? Presumably you're using the same apiKey authentication with both (possibly via a netrc file?) though the way you typed the question doesn't make that clear.

  2. Assuming it's the same apiKey you confirmed that the apikey was generated from an account with permission to insert/import into the table? If that account only has read access, insert would not work of course. Any chance container or account permissions changed?

  3. And was it an apiKey or a sessionKey that possibly expired? Regenerating a new apiKey and trying that would be good.

I've tried a few things locally and while I can't reproduce the specific error you report seeing, I did notice some unexpected error messages when I simulated missing a step in the upgrade process:

When you upgraded to 24.3, had you been using a context path (such as "/labkey" if you deployed with a configuration file named "labkey.xml")? If so, your baseUrl in R scripts may include it (i.e. for a local dev machine, something like "http://localhost:8080/labkey/").
If you've now deployed at the root as recommended, try the insert again without that part of the baseUrl. If making that change makes the insert work, then confirm that your application.properties includes a legacyContextPath set to match the context path previously in use.
context.legacyContextPath=/labkey

Hopefully one of these ideas helps,

--Molly

mohara2024-05-10 12:52mohara2024-05-10 12:52Issues updating rows with RlabkeyIssues updating rows with Rlabkey MARKDOWNActive     LabKey Support Forum

I'm not sure what you mean about "within network" vs. "outside of network" - that could be making a difference?
As far as a 'pull' working but not a 'push', that seems like a permissions issue - can the account that apikey will authenticate both read and insert into that list? In your two examples, there are different queryName values, so maybe that account can read one and not write the other?

But meanwhile, you should not put that setDefaults call within the insertRows. I'm not actually sure why it would work in selectRows either (if it does indeed work there). Depending on the rest of the script you're using, you could place it outside/call setDefaults separately/first,

labkey.setDefaults(apiKey="apikeyapikeyapikeyapikey")

labkey.data<-labkey.insertRows(baseUrl="http://xxx.xxx.xx.xxx:PORT", 
...

OR using a netrc file would mean you didn't need the key itself in the script.

Where to place and how to make sure a netrc gets referenced varies by OS.

--Molly

awilson@iavi.org2024-05-10 08:51awilson@iavi.org2024-05-10 09:02Issues updating rows with RlabkeyIssues updating rows with Rlabkey MARKDOWNActive     LabKey Support Forum

yes of course. here is the code i am using. I have success running the code within network but outside of network does not work for insertRows. my .netrc may not be correct. i have it in the base home folder. should it be in the labkey home or the R home instead? Seems strange a pull would work outside network but not a push.

selectRows:
  labkey.data<-labkey.selectRows(labkey.setDefaults(apiKey="apikeyapikeyapikeyapikey"),
  baseUrl="http://xxx.xxx.xx.xxx:PORT", 
  folderPath="/this/path/study", 
  schemaName="lists", 
  queryName="data")


insertRows:
  labkey.data<-labkey.insertRows(labkey.setDefaults(apiKey="apikeyapikeyapikeyapikey"),
  baseUrl="http://xxx.xxx.xx.xxx:PORT", 
  folderPath="/this/path/study", 
  schemaName="lists", 
  queryName="otherDataSameJSON",
  toInsert=labkey.data)
mohara2022-08-15 15:21mohara2022-08-15 16:41Installation error of labkey on macInstallation error of labkey on mac MARKDOWNActive     LabKey Support Forum

Hello:
Have you followed the installation steps and confirmed that you are installing the latest version, using the supported versions of all components, following the structure recommended? For MacOS, you'll generally follow the Linux instructions. I also notice you've submitted this question as feedback about a documentation topic that was deleted in 2018, so hopefully these current resources will help get you on the right track:

mohara2022-08-15 16:42mohara2022-08-15 16:42Installation error of labkey on macInstallation error of labkey on mac MARKDOWNActive     LabKey Support Forum

That you're getting that error page does indicate that you already have Java and Tomcat installed.
Check in the Tomcat ./logs directory and see if there is more detail about what might be wrong.

mohara2023-04-15 15:44mohara2023-04-15 15:44Insert pdf as a printout in wikiInsert pdf as a printout in wiki MARKDOWNActive     LabKey Support Forum

The easiest way to include an image in a wiki is to use a wiki-syntax page, then attach the image (jpg or png are common) to the page directly and include the image name in brackets within the text: [imageName.jpg]

The syntax in an HTML-syntax wiki is almost what you show: <img src="imageName.jpg">
I notice that what you pasted has an extra " before the image name which would prevent the image from displaying.

We don't directly support displaying a PDF within a wiki page (that could depend on browser settings, though none of the browsers I've tried will display them). You can work around this in a few ways:

  • obtaining a screen image (jpg or similar) and displaying it as above.
  • including a link to the image in a wiki-syntax page - ("link" or "new-tab-link" so that clicking will open it in a new tab) {link:PDF file will open when you click here|/full/path/to/desired.pdf}
  • if you have the Platform Developer (or Trusted Analyst) role, you'd be able to use <object> syntax as you show. That you don't have this permission is why you see the 'illegal element' error. If you have one of these roles, another idea is including a 'backup' plan in your <object> to give the user a download option if the browser won't display the PDF directly:
    <object data="/full/path/to/desired.pdf" type="application/pdf" width="100%" height="500px">
      <p>Unable to display PDF file. <a href="/full/path/to/desired.pdf">Download desired.pdf instead</a>.</p>
    </object>

There's lots more guidance in the Wiki User documentation topics.

--Molly

tstellin@scharp.org2020-04-17 11:48chetc (LabKey Support)2020-04-30 10:11Incremental update support for specimen importIncremental update support for specimen import MARKDOWNClosed     LabKey Support Forum

Hi Adam,

Thank you for the quick reply. It's exciting to hear Labkey is investigating performance improvements to the specimen import.

I'll decline the invite to the SCHARP leadership/Labkey meeting, but am happy to continue discussing the feature via email.

Thanks,
-Tobin

adam2020-04-17 10:52adam2020-04-17 10:52Incremental update support for specimen importIncremental update support for specimen import MARKDOWNActive     LabKey Support Forum

Hi Tobin,

We would love to support incremental imports... for specimens (which I'm sure is increasingly a pain point for SCHARP) as well as for lists and datasets. Since most of our clients aren't able to generate incremental archives, we would like to take this a step beyond what you describe. Our hope is to generate an incremental diff by analyzing a full archive against the previously loaded data, then processing that diff to perform the import in a tiny fraction of the time (assuming most data doesn't change between imports). The diff could also be used to provide more meaningful notifications, audit logging, and tracking, by showing exactly what data changed from import to import.

We've prototyped this approach, proving that it's viable and fast. We're now talking to clients about turning this concept into a production feature. Last week, I put this topic on the agenda for our next conversation with SCHARP leadership (May 1). You could join that meeting and/or we can discuss offline if you'd like. I'll reach out via email.

Adam

chetc (LabKey Support)2020-05-26 16:13Jon (LabKey DevOps)2020-08-10 10:56Import large proteomic assay to labkeyImport large proteomic assay to labkey MARKDOWNClosed     LabKey Support Forum

Hello Johann,

Generally the answer for modeling this kind of data in a relational DB is to make it a long skinny table. Instead of a row per sample and a column per feature, or a row per feature and a column per sample, you could make it one row per sample/feature combination (2.3 million rows).

What was the internal server error you got?

Thanks,
Chet

mohara2023-11-21 18:38mohara2023-11-21 18:38HTTP Status 404 – Not FoundHTTP Status 404 – Not Found MARKDOWNActive     LabKey Support Forum

Hi Bika:
Apologies for the delayed reply. It sounds like there may be a problem with the contents or location of your labkey.xml file.

When you say "http://localhost:8080/" works fine, what do you see exactly at that URL? Is it the tomcat startup page, or the working LabKey Server?

Assuming it's the tomcat page, a few things about your labkey.xml file to clarify:

  1. Is it located in the <TOMCAT_HOME>/conf/Catalina/localhost directory?

  2. Is there also any other *.xml file in there (such as ROOT.xml)?

  3. The version you sent has the database username as "labkey" and " password="******" -disappear"
    That ****** as password is presumably from you cleaning it up before posting. Can you confirm that those credentials are correct as an admin user on your data source?
    I'm not familiar with the -disappear parameter and would need to confirm whether it is supported in the resource configuration. Can you retry without that parameter?

  4. I am also more familiar with windows configurations of labkey.xml files - can you check that the docBase value here is correct?
    <Context docBase="LABKEY_HOME>/labkeywebapp" reloadable="true" crossContext="true">

Typically the actual path to that labkeywebapp location would be there. In our documentation example, that line reads:
<Context docBase="C:\labkey\labkey\labkeyWebapp" reloadable="true" crossContext="true">

Generally, I'd recommend rechecking the installation steps including those about the labkey.xml file. And of course, ideally you've sorted this out in the meantime.

Let me know if you are still unable to start your server.
--Molly

mohara2023-11-21 18:47mohara2023-11-21 18:47HTTP Status 404 – Not FoundHTTP Status 404 – Not Found MARKDOWNActive     LabKey Support Forum

One more idea: the contents of the catalina.out log may give you more information as well about what's happening during startup.

mohara2023-11-22 08:41mohara2023-11-22 08:41HTTP Status 404 – Not FoundHTTP Status 404 – Not Found MARKDOWNActive     LabKey Support Forum

Hi again, Bika:

I just noticed you specify you used "OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9". As listed on our supported technologies page, we recommend (and use ourselves) Eclipse Temurin 17 from Adoptium. This may not be the cause of the specific startup error, but you should confirm that you're using supported components in general:

--Molly

mohara2023-11-25 12:15mohara2023-11-25 12:15HTTP Status 404 – Not FoundHTTP Status 404 – Not Found MARKDOWNActive     LabKey Support Forum

Hi Bika:

The exception in your catalina.out file shows what's happening:
Caused by: java.lang.IllegalArgumentException: The main resource set specified [/usr/local/labkey/apps/apache-tomcat-9.0.82/webapps/labkey] is not a directory or war file, or is not readable (it does not exist or permissions to access it are missing)

This indicates that it's 'looking for' LabKey under your tomcat installation instead of under the LabKey enlistment where it almost certainly is located. We use $LABKEY_HOME as shorthand in our docs for the variable location of that installation. However, the way you have this in your labkey.xml file:
docBase="LABKEY_HOME/labkeywebapp"

...it's trying to find a relative path under tomcat, i.e. a directory with that variable name, which isn't right. Replace LABKEY_HOME in your labkey.xml file with the absolute path to where it is instead. For example, something like this if you followed our installation docs:
docBase="/usr/local/labkey/labkey/labkeywebapp"

Hope that helps,
--Molly

Bika2023-11-24 19:56Bika2023-11-24 19:56HTTP Status 404 – Not FoundHTTP Status 404 – Not Found MARKDOWNActive     LabKey Support Forum

Hi Molly and Mohara:

I checked the installation as per your reply comments (https://www.labkey.org/Documentation/wiki-page.view?name=installComponents). Checked catalina.out. modified labkey.xml. problem still not solved.

Thanks,
Bika

Bika2023-11-27 01:27Bika2023-11-27 01:27HTTP Status 404 – Not FoundHTTP Status 404 – Not Found MARKDOWNActive     LabKey Support Forum

Hi Molly and Mohara:

Problem solved and working.

Thank you very much.
Bika

varunn2023-12-21 12:34varunn2023-12-21 12:34How to use getParameterHow to use getParameter MARKDOWNActive     LabKey Support Forum

Hi Jenica,

Thanks for submitting this! I will move this onto your Support Portal and follow up with our team.

Thanks,

Varun

chetc (LabKey Support)2021-05-06 11:28Jon (LabKey DevOps)2021-05-18 14:20How to use createAndLoad for Lists or Datasets using R?How to use createAndLoad for Lists or Datasets using R? MARKDOWNClosed     LabKey Support Forum

Hello Kristen,

I tested the example from the R API docs and received the same error you did. I am not sure how to interpret it either. So for this question, I have opened up a bug so our developers can investigate and I also created a ticket for this in your support portal for tracking purposes.

Ticket in Portal: https://www.labkey.org/Juno/Support Tickets/issues-details.view?issueId=43106
Issue:https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43107

Thanks,
Chet

chetc (LabKey Support)2020-09-02 14:18Jon (LabKey DevOps)2020-09-18 10:41How to track deletion of a row in a dataset?How to track deletion of a row in a dataset? MARKDOWNClosed     LabKey Support Forum

Hello Natalia,

I think you need to have detailed auditing on to do that. Check out this doc on setting the audit level per table.
https://www.labkey.org/Documentation/wiki-page.view?name=audits#level

You will likely need to add that metadata to the samples table via the query browser.

Thanks,
Chet

Chichero2020-08-03 01:24Chichero2020-08-03 01:24How to track deletion of a row in a dataset?How to track deletion of a row in a dataset? MARKDOWNActive     LabKey Support Forum

Thank you very much for your reply!

As I understand the logs in the Experiment events show the deletion of a Sample Derivation Protocol and not a deletion of an entry in the Sample Set. So when e.g. I delete a sample with parents/daughters I also get their ids in some cases and therefore I can not be sure that the deletion was done in a particular sample set. Moreover if the sample does not have any Sample Derivation Protocols where the deletion is tracked? In this case I only found a row in Sample Sets events: Samples inserted or updated in: SampleSet_name when I deleted an entry.

Would it be possible to show the name of the Sample set where the deletion occurred in the logs?

Chichero2020-08-19 02:15Chichero2020-08-19 02:15How to track deletion of a row in a dataset?How to track deletion of a row in a dataset? MARKDOWNActive     LabKey Support Forum

Hello Chet,

Thank you for your reply!

I am still struggling to find a clear prove that a user has deleted a particular entry in a sample set.

From your screenshot I can see that Samples were deleted in a particular sample set by chetc. Would it be possible to find information which sample id exactly (a row in this sample set) was deleted?

Thanks,
Natalia

chetc (LabKey Support)2020-07-06 17:18chetc (LabKey Support)2020-07-06 17:18How to track deletion of a row in a dataset?How to track deletion of a row in a dataset? MARKDOWNActive     LabKey Support Forum

Hello,

Thank you for reaching out to us!

You should be able to see Audit information for both samplesets and datasets. If you navigate to the Audit log in the Admin console, then in the dropdown select either "Dataset Events" or "Sample Set Events". You should see what you are looking for (see screenshots).

Here are some docs that explains what is tracked by category.
https://www.labkey.org/Documentation/wiki-page.view?name=audits

Let me know if you were able to find what you're looking for.

Thanks,
Chet

chetc (LabKey Support)2020-08-17 14:38chetc (LabKey Support)2020-08-17 14:38How to track deletion of a row in a dataset?How to track deletion of a row in a dataset? MARKDOWNActive     LabKey Support Forum

Hello,

You should be able to see what sample set/type an entry was deleted out of in Sample Set Events (known as Sample Type in newer versions of labkey). In the screenshot attached you will see that I inserted and deleted a record from the "test1" sample type.

Let me know if you don't see records for delete in your audit log.

Thanks,
Chet

mohara2022-06-06 10:00mohara2022-06-06 10:00How to specify full path to project folder ?How to specify full path to project folder ? MARKDOWNActive     LabKey Support Forum

Hi Ambarish:

You'd see that error when the user account (or apikey) you are using to authenticate your python script does not have permission to create a list in that Study1 subfolder. The syntax itself is fine and works when permissions are set to allow list creation.

If your script worked for project_name="Study" and doesn't work for "Study/Study1", check the permissions on that subfolder through the UI. I can reproduce your error message when the container exists, but the user account does not have list creation permission there. A second possibility is that if you are authenticating using a session key, it may have expired.

If neither of these resolves your issue, please send the end part of the labkey.log which will give more details about the error.

--Molly

mohara2023-10-12 13:55mohara2023-10-12 13:55How to "refresh" a listHow to "refresh" a list MARKDOWNActive     LabKey Support Forum

Hi Jenica:

One option would be to use Query.truncateTable(), then Query.insertRows(). You would not typically use executeSql(), which is an action more for viewing/querying data, not editing it.

I'm going to move this question to your private support portal, where we can give more customized assistance about the context of your question and use case.

Thank you for reaching out,

--Molly

chetc (LabKey Support)2021-05-06 10:45Jon (LabKey DevOps)2021-05-18 14:20How to make a link in a List to a file in the Files tab using R API?How to make a link in a List to a file in the Files tab using R API? MARKDOWNClosed     LabKey Support Forum

Hello Kristen,

I apologize for the delay. We typically try and get to our forum posts within a couple of weeks, but since you are a premium user you can opt to use your support portal. Questions posted there are answered much faster. Let me know if you need assistance getting to that support portal, or if you just wanted to contribute to our forums!

Yes, this is possible via the RLabKey API. You can either create a new list and set the "URL" property at the time of creation or you can modify an existing list. Since your scenario fits the latter I will provide an example of how this can be accomplished. R code example attached.

Steps.

  1. Retrieve the list you want to modify using "labkey.domain.get"
  2. Modify the returned domain to include the URL on the desired field. Use the urlEncoding doc to help you determine the link. Linked below.
  3. Save the modified domain using "labkey.domain.save"

RLabKey: https://cran.r-project.org/web/packages/Rlabkey/Rlabkey.pdf
URL Field Property: https://www.labkey.org/Documentation/wiki-page.view?name=urlEncoding#sub

Thanks,
Chet

sadanand ranbhor2023-03-15 04:47sadanand ranbhor2023-03-15 04:47How to login to community edition set upHow to login to community edition set up MARKDOWNActive     LabKey Support Forum

I am not getting any user creation pop up.. I think there has to be user creation wizard set up for that..can you please share the details of configuration setup needed?

sadanand ranbhor2023-03-16 22:32sadanand ranbhor2023-03-16 22:32How to login to community edition set upHow to login to community edition set up MARKDOWNActive     LabKey Support Forum

Hi Molly,

PFA screenshot it of my home page it doesn't have the option to create the first user account (the site administrator) or home page.I referred to following url to set up docker image https://github.com/LabKey/Dockerfile.Please suggest what could be done and help me.

sadanand ranbhor2023-03-21 02:15sadanand ranbhor2023-03-21 02:15How to login to community edition set upHow to login to community edition set up MARKDOWNActive     LabKey Support Forum

Hi Molly,
Is there any update for the query mentioned above?
Hi Molly,

PFA screenshot it of my home page it doesn't have the option to create the first user account (the site administrator) or home page.I referred to following url to set up docker image https://github.com/LabKey/Dockerfile.Please suggest what could be done and help me.

sadanand ranbhor2023-03-22 03:24sadanand ranbhor2023-03-22 03:33How to login to community edition set upHow to login to community edition set up MARKDOWNActive     LabKey Support Forum

Hi Mohara,
I tried to configure dummy smtp server, but it doesn't work. I have following environment variable configured in my quickstart_env.sh file.PFA environment variables from the file. Please let me know if it needs any modifications.

sadanand ranbhor2023-03-22 22:17sadanand ranbhor2023-03-22 22:17How to login to community edition set upHow to login to community edition set up MARKDOWNActive     LabKey Support Forum

Hi Team,
Is there any update on the above comment?

mohara2023-03-09 09:23mohara2023-03-09 09:23How to login to community edition set upHow to login to community edition set up MARKDOWNActive     LabKey Support Forum

Hi Sandanad:
Thanks for getting started with LabKey Server!

Hopefully you were following the installation instructions available here for either Linux or Windows.
Once your local system is up and running, you'll go to http://localhost:8080/labkey and be prompted to create the first user account. You'll find lots more guidance after that in our documentation wikis.

--Molly

mohara2023-03-15 13:07mohara2023-03-15 13:07How to login to community edition set upHow to login to community edition set up MARKDOWNActive     LabKey Support Forum

Hi Sadanand:

I'm consolidating all three threads here and again encourage you to read the forum guidelines for how to give us the information we need to be able to help you find answers.

There isn't a "user creation wizard" and you don't need to configure SMTP to use a local LabKey Server on your own local Windows, Mac, or Linux machine. Whether you obtained your local Community Edition LabKey Server from the Installation Binaries or the Embedded Tomcat Beta Installer, I hope you read and completed all of the installation instructions. They end with instructions to navigate to either http://localhost:8080/labkey/ (Installation Binaries) or https://localhost:8443/ (Embedded Tomcat Beta Installer). There you'll see either the option to create the first user account (the site administrator), or the home page if that first account has already been created. In the upper right of the home page you'll see 'sign in' if you are not already signed in. If you're trying to use a server that someone else installed, they will have created that first site administrator account and be able to create a user account for you. In any event, the home page includes links to documentation, tutorials, and other resources to get you started.

I highly encourage you to reach out on our website with details of what you are hoping to accomplish with LabKey Server. We offer cloud-hosted servers and personalized professional support with our Premium Editions that might better suit your needs.

--Molly

mohara2023-03-21 13:29mohara2023-03-21 13:29How to login to community edition set upHow to login to community edition set up MARKDOWNActive     LabKey Support Forum

In the upper right of the home page image you sent, you can see 'Sign in', meaning the first user account already exists. If you can't sign into it, either someone else is the site admin who can grant you access, OR perhaps you made changes to the Dockerfile setup we provided in order to bypass creation of the first user account during startup, which also bypasses letting you set a password for that account. Without SMTP set up, this configuration would then require capturing and using a generated API key which you may not have intended to do.

If this is the case, please retry without bypassing that initial user creation process during startup (i.e. LABKEY_CREATE_INITIAL_USER should be empty/not set to any value; the README.md in that repo has much more detail). Then when you start up and first access the server URL, you will be prompted to create the first site admin account and set your own password.

If this is not enough help, please reach out on our website with details of what you are hoping to accomplish with LabKey Server. Once we know which of our lab management software solutions would be the best fit for your research, we can set up a cloud-hosted demo and login for you that would make it easier to get started.

mohara2023-03-23 10:29mohara2023-03-23 10:29How to login to community edition set upHow to login to community edition set up MARKDOWNClosed     LabKey Support Forum

Hi Sadanand:

Please review the Community Forum Guidelines. We are unable to provide custom support for the Community Edition. We respond to questions on this forum as time allows, but expected response times should be measured in weeks, not days. Bumping or duplicating your post is not permitted. My previous suggestion to try again using only our defaults is the best advice I can offer here. I'm closing this topic.

Your next step is to reach out on our website with details of what you are hoping to accomplish with LabKey Server. Once we know which of our lab management software solutions would be the best fit for your research, we can set up a cloud-hosted demo and login for you that would make it easier to get started.

Regards,
--Molly

chetc (LabKey Support)2021-05-06 12:55Jon (LabKey DevOps)2021-05-18 14:20How to create and append to a dataset using R labkey API?How to create and append to a dataset using R labkey API? MARKDOWNClosed     LabKey Support Forum

Hello Kristen,

There may be an issue with "labkey.domain.createAndLoad", a bug has been filed for this.

I tested "labkey.domain.create" endpoint with the result of "labkey.domain.inferFields" as the "domainDesign", and initially I did get the same error you did. But if you remove "ParticipantId" from the the dataframe (inDF in this case) it should resolve the error and create the domain. Even though "ParticipantId" in not a part of the design you passed in it will still be created.

After the domain has been created you can use "labkey.insertRows" to insert data into the dataset. When you do this be sure to include all of the required fields. I got locked up for a while since I wasn't passing in the date.

Attached to this post you will find a short R example that creates a dataset using fields inferred from a dataframe. Then insertRows was used to load data into the dataset.

Thanks,
Chet

Will H.2021-12-14 19:53Jon (LabKey DevOps)2021-12-21 10:32High priority- Log4J security announcementHigh priority- Log4J security announcement MARKDOWNClosed     LabKey Support Forum

I saw that LabKey v21.11.2 was released on Dec 14, 2021. I downloaded it in hopes that it contained Log4J v2.16.0. It contains v2.15.0 which is no longer considered safe. I'm posting this so others know v21.11.2 isn't the fix we are waiting for.

-Will

hannahb2021-12-15 07:55Jon (LabKey DevOps)2021-12-21 10:32High priority- Log4J security announcementHigh priority- Log4J security announcement MARKDOWNClosed     LabKey Support Forum

Following up on the critical Log4J vulnerability we communicated about on Friday December 10, we have released LabKey Server 21.11.2 and 21.7.10 that include Log4J version 2.15.0. We have posted updated installers on the Community Edition download page and on customer support portals.

Any installation running LabKey Server 20.11.x or later should immediately upgrade to 21.11.2 or 21.7.10 if an administrator has not already added the -Dlog4j2.formatMsgNoLookups=true system property. For servers that have already added the system property, deploying 21.11.2 or 21.7.10 is optional but recommended. Either approach mitigates the severe vulnerability in Log4J (CVE-2021-44228).

Unfortunately, the Log4J developers today announced a related, moderate vulnerability (CVE-2021-45046). Based on the information available, we have good reason to believe that LabKey Server deployments are NOT impacted. However, we are erring on the side of caution and will be creating new LabKey Server hotfixes that incorporate Log4J 2.16.0. Installations can be updated to this followup release on a non-emergency basis.

Do not wait for this followup hotfix to protect your servers, you should take action NOW by installing 21.7.10 or 21.11.2 or using the -D system property.

We are sorry for the rapid stream of updates and recommendations, but we want to ensure that all LabKey Server installations are secure and that we keep everyone informed.

hannahb2021-12-15 11:00Jon (LabKey DevOps)2021-12-21 10:32High priority- Log4J security announcementHigh priority- Log4J security announcement MARKDOWNClosed     LabKey Support Forum

Thanks, Will. As hopefully you saw, we are working on another hotfix to address the most recent moderate vulnerability. More information to come when we know more about the release date.

jeckels2021-12-15 11:42Jon (LabKey DevOps)2021-12-21 10:32High priority- Log4J security announcementHigh priority- Log4J security announcement MARKDOWNClosed     LabKey Support Forum

I wanted to follow up on Will's post. I want to make sure that no one is waiting for another build before protecting their server, either via the -D system property or by deploying LabKey Server 21.11.2 or 21.7.10. It is imperative to get that level of protection in place.

We are aware of the followup changes in Log4J 2.16.0 that address a related but significantly less severe problem. Based on the information released, we don't believe that LabKey Server is vulnerable but are opting on the side of caution and taking the Log4J team's recommendation of updating to 2.16.0.

I know everyone would prefer to only need to take one set of mitigation steps, but do not wait to protect yourselves from the first critical vulnerability.

Thanks,
Josh

jeckels2021-12-16 10:26Jon (LabKey DevOps)2021-12-21 10:32High priority- Log4J security announcementHigh priority- Log4J security announcement MARKDOWNClosed     LabKey Support Forum

We have finished testing and have released LabKey Server versions 21.11.3 and 21.7.11 which incorporate Log4J 2.16.0. We are in the process of pushing out new builds to customers' support portals and the Community Edition download page. These versions address both CVE-2021-44228 and CVE-2021-45046, and with the new builds you no longer need the -D system property as a mitigation (though it will cause no problems if you leave it in place).

We have separately been asked about older LabKey Server versions that use Log4J 1.2.17 which is vulnerable to CVE-2019-17571. Our assessment is that LabKey Server is not impacted, because it doesn't make use of the specific feature within Log4J 1.x that is vulnerable, a SocketServer. Thus, no mitigations are required, but we encourage all deployments to migrate to 21.11.3, the current supported, maintained version of LabKey Server.

Thanks,
Josh

Will H.2021-12-16 11:37Jon (LabKey DevOps)2021-12-21 10:32High priority- Log4J security announcementHigh priority- Log4J security announcement MARKDOWNClosed     LabKey Support Forum

Thank you to everyone at LabKey for getting these updates out quickly!

jeckels2021-12-19 09:49Jon (LabKey DevOps)2021-12-21 10:32High priority- Log4J security announcementHigh priority- Log4J security announcement MARKDOWNClosed     LabKey Support Forum

Log4J has announced yet another variant on these same issues, CVE-2021-45105. Fortunately, it only affects applications that use a non-default configuration of Log4J with a Pattern Layout that uses a Context Lookup.

LabKey Server does not use this configuration, so like the previous vulnerability, CVE-2021-45046, this newest announcement does not impact our users. Regardless, we will adopt the latest Log4J release, 2.17.0, for everyone's peace of mind, but it does not need to be rolled out as an emergency patch.

Thanks,
Josh

adam2021-12-30 11:53adam2021-12-30 11:53High priority- Log4J security announcementHigh priority- Log4J security announcement MARKDOWNActive     LabKey Support Forum

Yesterday, Log4J announced another potential vulnerability, CVE-2021-44832. In this case, an attacker would need write permissions to an application's log4j2.xml configuration file, which should never be the case in a LabKey Server deployment. Despite not being vulnerable, we have updated all current release branches to the latest Log4J release, 2.17.1, for additional assurance. The next maintenance releases (e.g., 21.11.5) will include this version but there's no need for emergency patching.

Thanks,
Adam

Susan Hert2018-06-19 16:37Jon (LabKey DevOps)2018-11-16 23:23Gradle Plugins Version 1.3Gradle Plugins Version 1.3 MARKDOWNClosed     LabKey Support Forum

In order to fix a problem with the symbolic links for node and npm on the Windows platform, Version 1.3.1 of the gradle plugins has been released and the gradle.properties has been updated to reference that version in r58755 in trunk.

Making symbolic links on Windows does not work as well as on non-Windows platforms (requiring some specific permissions to do so and the use of other commands, not supported by Java classes currently), so the change with v1.3.1 is to simply not try to create the links on the Windows platform. For Windows users, I recommend that you remove the .node directory created in <LABKEY_ROOT>. The task that the 1.3 version introduced created that directory with some mysterious system files (node.sys and npm.sys, or something like that) that are nothing like symbolic links and would lead to errors like the following in subsequent builds:

> Task :server:symlinkNode FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':server:symlinkNode'.
> java.nio.file.NotLinkException: The file or directory is not a reparse point.

Removing the <LABKEY_ROOT>/.node directory will make this error go away and the directory should not be created again.

If running npm on the command line, it is still recommended that you put the versions of npm and node that the build is using on your path (That is, you can reference <LABKEY_ROOT>/build/modules/core/.node/node*/bin and <LABKEY_ROOT>/build/modules/core/.node/npm*/bin), but, at the moment, there's little benefit to using symbolic links for that on Windows as the links won't get updated when versions change.

Susan Hert2017-12-11 19:13Susan Hert2017-12-11 19:14Gradle 4.3.1 upgradeGradle 4.3.1 upgrade MARKDOWNClosed     LabKey Support Forum

One other note here. You will need to upgrade your version of IntelliJ to version 2017.2.5 or later if you are doing the Gradle refresh in IntelliJ. Otherwise, you may encounter an error message such as:

Error:Can't register given path of type 'SOURCE' because it's out of content root.
Content root: 'C:/labkey/server/modules/query'
Given path: 'C:\labkey\build\modules\query\gensrc\antlr'

dhutchison2020-03-02 13:08dhutchison2020-03-02 13:11ggplotlyggplotly MARKDOWNActive     LabKey Support Forum

">Could you please send the entire source for your report?"
Sure thing:

library(ggplot2)
library(reshape2)
library(plotly)
library(htmlwidgets)

# this (fix Pandoc error)
Sys.setenv(RSTUDIO_PANDOC='C:/Program Files (x86)/Pandoc')

run<-as.data.frame(labkey.data)
#print(head(run))

data<-run[c(1,50,8:48)]

colnames(data)[colnames(data) == "specimenid"] <- "Name"
#print(dim(data))
#print(reshape2::melt(data$Name))

data<-aggregate(data[c(2:42)], list(data$Name), mean)
rownames(data) <- data$Group.1

data_melt<-reshape2::melt(data)

colnames(data_melt)[colnames(data_melt) == "Group.1"] <- "Condition"
colnames(data_melt)[colnames(data_melt) == "variable"] <- "Analyte"

# Create heatmap with ggplot2
ggp <- ggplot(data_melt, aes(Condition, Analyte)) +                           
              geom_tile(aes(fill = value)) +
               theme(axis.text.x = element_text( 
                   angle = 90, 
                   size=6)) +
             scale_x_discrete(breaks = data_melt$Condition)

# Save ggplotly as widget in file test.html -  fails ... permission?
#saveWidget(ggplotly(ggp), file = paste(labkey.url.base, labkey.url.path, "test.html", sep='')) 

# report doesn't show - now I get "Failed to retrieve report results"
# "output.html" saved to temp and is desired interactive plotly
#saveWidget(ggplotly(ggp), file = "test.html")
#rawHTML <- paste(readLines("test.html"),collapse="\n") 
## ${htmlout:output}
#write(rawHTML, file="output")

# "Failed to retrieve report results" writes "output" in temp location, 
# looks like html, but wont display in browser
#saveWidget(ggplotly(ggp), file = "output")
## ${htmlout:output}
#write(ggplotly(ggp), file="output")

# works, but not auto-sized, not interactive
ggsave("${imgout:labkeyl_png}",plot=ggp,device="png",width=5, height=8)

">When you saved the file to a temp location, did the interactive heatmap work as you wanted?"
yes, when writing raw HTML

">When using the "saveWidget" did you experience any issues with that function not being found?"
No, but there was a Pandoc error. It was in the system path but wasn't being seen by the report/script

">Are you using the ggplot2 library? or What packages/libraries are you using?"
yes, ggplot2

Disclosure: I am on an older version of labkey (18.2) - my next step was to create an installation with the latest LabKey and test it there. But it'd be helpful to know if you think it should work or not.

dhutchison2020-03-10 14:48dhutchison2020-03-10 14:48ggplotlyggplotly MARKDOWNActive     LabKey Support Forum

Hi Chet,

Any progress? It seems so close to working.

Don

chetc (LabKey Support)2020-03-02 12:04chetc (LabKey Support)2020-03-02 12:04ggplotlyggplotly MARKDOWNActive     LabKey Support Forum

Hello,

Thank you for reaching out to us!

Ive been playing around with this for some time and I need some more information from you.

  1. Could you please send the entire source for your report?
  2. When you saved the file to a temp location, did the interactive heatmap work as you wanted?
  3. When using the "saveWidget" did you experience any issues with that function not being found?
  4. Are you using the ggplot2 library? or What packages/libraries are you using?

Thanks,
Chet

chetc (LabKey Support)2020-03-03 09:38chetc (LabKey Support)2020-03-03 09:38ggplotlyggplotly MARKDOWNActive     LabKey Support Forum

Hello,

I am still working out a solution for this, but no I don't think that would be helpful for this issue.

Thanks,
Chet

chetc (LabKey Support)2020-03-11 16:40chetc (LabKey Support)2020-03-11 16:40ggplotlyggplotly MARKDOWNActive     LabKey Support Forum

Hello Don,

Unfortunately not. It does seem very close, there is a plot but it's just not interactive. I tried playing around with some other packages like RMarkdown, leaflet, and webshot but still no luck.

I've asked some of our developers and they are saying its unsupported.

Please let me know if there is anything else I can help you with.

Thanks,
Chet

dhutchison2020-03-13 13:32chetc (LabKey Support)2020-04-14 11:06ggplotlyggplotly MARKDOWNClosed     LabKey Support Forum

Hi Chet,

That's disappointing ... It would be great to be able to create custom html/js/jquery etc and send it to the report output. Pipeline Pilot does something like this in an output panel making that part at least nicely flexible.

From the forums, it seems shiny is/was supported in LabKey. Do you know if that is still the case?

Thanks,
Don

mohara2023-04-05 13:52mohara2023-04-05 13:52Getting duplicate key error after upgradeGetting duplicate key error after upgrade MARKDOWNActive     LabKey Support Forum

Hi Aaron:

Sorry the upgrade didn't go smoothly. I suspect this is related to the increased checking for unknown modules that we added in 23.3. That unique constraint on module names ("uq_modulename") was added to catch potential issues, so sounds like either you have two modules with the same name or the server thinks you do. On a running server, you can see such unknown modules at the bottom of the module-details page, though if your server isn't starting up, you won't be able to see that page of course.

You should see the rest of the stack trace when you get that error, and it should include the name of the module violating the constraint. The full stack should be in the logs if not directly in the UI where you see the message. Does that help you identify what may have changed? If you see the name of a module that exists but has different casing (for example), try changing the casing to match. If it's a module that you used previously and dropped, try restoring it if possible (with the same name and casing) and see if that resolves this issue. Be aware with this latter option, of course, that module schemas can only be upgraded to 23.3 if they were previously on 22.1 (or later). Details are in our upgrade support policy.

If you need further assistance, please attach the full stack trace or log file, and tell us what version you were upgrading from, so that we can get a better idea of what might be going on.

Thank you for reaching out,

--Molly

mohara2023-04-06 12:03mohara2023-04-06 12:03Getting duplicate key error after upgradeGetting duplicate key error after upgrade MARKDOWNActive     LabKey Support Forum

Thanks Aaron, that's helpful.

Glad the duplicate module issue is resolved, and that makes sense as it's a frequently used 'test' module name.

That new error is unrelated, but one we know about and have fixed in our next maintenance release (23.3.3). Learn more in the internal issue here.

As mentioned there, this is only an issue when your upgrade of the compliance module skips the 22.11 release. You may be able to work around this one by first upgrading to 22.11.9 and then 23.3.2.

--Molly

mohara2023-04-07 12:58mohara2023-04-07 12:58Getting duplicate key error after upgradeGetting duplicate key error after upgrade MARKDOWNActive     LabKey Support Forum

Based on how you phrased that, it's important to note that you can't downgrade a database to an earlier version, i.e. once you've upgraded to 23.3, you can't go back to 22.11. You'd have to roll back to the 22.7 version (i.e. restore it from backup) and upgrade that first to 22.11 and then to 23.3.
If that's what you did, are you seeing this on 22.11.9? Are there other errors in the logs or during startup?

Aaron Sword2023-04-06 11:36Aaron Sword2023-04-06 11:36Getting duplicate key error after upgradeGetting duplicate key error after upgrade MARKDOWNActive     LabKey Support Forum

Hello Molly,

Thank you for the quick reply. The version we upgraded from was 22.7.0. I have attached the original error in full, and the most recent error also. We didn't find any duplicate modules, even ones with differing cases. However, I removed the module it was complaining about in the original error (helloworld) and now that it is gone we get a SQL error. Any ideas?

Thanks!

Aaron Sword2023-04-07 06:19Aaron Sword2023-04-07 06:19Getting duplicate key error after upgradeGetting duplicate key error after upgrade MARKDOWNActive     LabKey Support Forum

Hello again,

I have downgraded to 22.11.0, my apologies, I did not realize I needed to upgrade in increments. Now, I am getting a java class error maybe (attached)? Any thoughts on this one?

Thanks

Aaron Sword2023-04-10 07:46Aaron Sword2023-04-10 07:46Getting duplicate key error after upgradeGetting duplicate key error after upgrade MARKDOWNActive     LabKey Support Forum

Welp, I did indeed downgrade to 2.11 and the SQL error is gone. I'm getting a java cast class bootstrap error now. As for restoring from backup, I can do that for the application server, labkey itself. However, it's a long story but there is no backup of the database server, that's one reason I am trying so hard to fix it. I have attached what I get in the log file when I start up tomcat, maybe that will show something helpful. I really appreciate all of your help on this. Thanks!

ccharpen2019-10-09 16:22ccharpen2019-10-09 16:22Get list of all folders (Java)Get list of all folders (Java) MARKDOWNActive     LabKey Support Forum

Bump. Got anything for me, labkey?

chetc (LabKey Support)2020-07-15 16:10Jon (LabKey DevOps)2020-08-10 10:57Generating a folder access reportGenerating a folder access report MARKDOWNClosed     LabKey Support Forum

Hello Jon,

Project groups are applied to the particular project and the folders beneath it, which explains why you're seeing the group show up in core.Users for the subfolders. I'm not sure if there is a simple way to collect the data you're after in a JSON like format. I can check with the devs to see if they have any ideas. I poked around in the R API and found that labkey.getFolder can be used to get the permission level of the current user for the folder it's called on, but that doesn't give you all of the users that have access. Would you mind sharing your R script, so I can take a look?

  1. Is there a particular type of access you are trying to locate (Ex: Reader, Editor)

Thanks,
Chet

mohara2022-08-12 10:15mohara2022-08-12 10:15Freezer Rack ConfigurationsFreezer Rack Configurations MARKDOWNActive     LabKey Support Forum

Certainly. You can nest arbitrary levels of the "non-terminal" storage types, i.e. the storage that can't directly contain samples like shelves and racks; you can also name them however suits your storage system and add labels to guide users.

For example, to configure your example, you could put 3 "Racks" within each Rack, then name the nested ones "Partition01", etc. Then you can use the "Label" field for each partition to include the name of the project and researcher. Add as many plates as each partition needs (only one shown in the image for simplicity). Then when users are navigating the freezer system to find or store samples, they will see the details you included. The attached image shows your example in practice.

Learn more about configuring freezers in the Sample Manager documentation here.

--Molly

dahlstromew2022-08-12 10:40dahlstromew2022-08-12 10:40Freezer Rack ConfigurationsFreezer Rack Configurations MARKDOWNActive     LabKey Support Forum

Great, I thought this might be the case, but didn't think using a rack to partition a rack would work.
Thanks!

chetc (LabKey Support)2020-06-30 16:38Jon (LabKey DevOps)2020-08-10 10:57File Upload IssueFile Upload Issue MARKDOWNClosed     LabKey Support Forum

Hello Jon,

Let me make sure that I'm understanding this correctly. They are able to upload other HTML files containing JS to this folder, but this file in particular results in issues?

If possible, could you send me that file? What is the code trying to do?

Thanks,
Chet

jgane2020-06-16 14:02jgane2020-06-16 14:02File Upload IssueFile Upload Issue MARKDOWNActive     LabKey Support Forum

Hey Chet,

Thanks for the reply. Yes the HTML file does have javascript in it, however the user has been able to upload a few dozen other HTML files with javascript, it's just this one file in particular that LabKey won't let them upload.

Best,
Jon

chetc (LabKey Support)2020-06-15 16:16chetc (LabKey Support)2020-06-15 16:16File Upload IssueFile Upload Issue MARKDOWNActive     LabKey Support Forum

Hello Jon,

Does the HTML file contain any JavaScript? If so, then the user will need to be either a "Site Admin" or a part of the "Developers" group. I believe the issue tracker is treated differently than a regular files webpart.

Hope this helps!

Thanks,
Chet

adam2018-06-21 11:51Jon (LabKey DevOps)2018-11-16 23:23File Repository Module write location, etc.File Repository Module write location, etc. MARKDOWNClosed     LabKey Support Forum

Hi Georgia,

LabKey provides many options for file storage, including local file system, network drives, and cloud storage (Amazon S3). All three integrate with the file browser UI, WebDAV clients and APIs, and the data processing pipeline for analysis and import of data. You can configure any number of custom properties to associate meta data with files; values can be provided (and retrieved) via the UI and the LabKey query API. LabKey automatically creates an on-disk folder hierarchy that matches the LabKey folder structure, but you can override this to provide a custom layout and split the repository between different file systems, if desired. LabKey provides no built-in backup facilities, but standard file system backup approaches should work fine. Other capabilities worth mentioning include full-text search over document repositories and the ability to configure file watchers to automatically load assay, study, and other data.

This probably raises even more questions, but a discussion would be the best way to review your specific requirements and use cases. I've been in communication with some of your colleagues recently, so I'll add you to an email thread and provide some suggestions for next steps.

Thanks,
Adam

Georgia Mayfield2018-07-23 15:16Jon (LabKey DevOps)2018-11-16 23:23File Repository Module write location, etc.File Repository Module write location, etc. MARKDOWNClosed     LabKey Support Forum

Hi Adam,

If both the local file system and a network drive can be a mappable location for use with File Repository, where and how specifically is that set/managed?

When I say I need to keep metadata about the files uploaded to File Repository in the database, I mean I need to keep file metadata in a table in the underlying relational database. You're suggesting the LabKey query API would be capable of integrating with File Repository like this?

Best, G

chetc (LabKey Support)2020-05-12 15:32Jon (LabKey DevOps)2020-05-15 09:14FileNotificationCommand failes with "You must use the POST method when calling this action." errorFileNotificationCommand failes with "You must use the POST method when calling this action." error MARKDOWNClosed     LabKey Support Forum

Hello,

This was actually a bug that we recently addressed. It has been fixed in version 1.2.1-SNAPSHOT. I believe you should be able to use your existing code with 1.2.1, but if you have any issues please let us know.

Thanks,
Chet

chetc (LabKey Support)2020-05-18 14:05Jon (LabKey DevOps)2020-08-10 10:58FileNotificationCommand failes with "You must use the POST method when calling this action." errorFileNotificationCommand failes with "You must use the POST method when calling this action." error MARKDOWNClosed     LabKey Support Forum

Hello,

I was mistaken in my last post. We've addressed the issue, but it's not yet available for public use. I am not positive of when it will be available but I will update this post once we have a date or release.

Thanks,
Chet

Steve2024-04-22 12:59Steve2024-04-22 13:00Export user "name" vs "id" in Created By and Modified By columnExport user "name" vs "id" in Created By and Modified By column MARKDOWNActive     LabKey Support Forum

Hi Beatrix:

If you specify the columns to return, you can get the DisplayName as follows:

my_results = api.query.select_rows(
    schema_name='issues',
    query_name='Issues',
    columns='IssueId, CreatedBy/DisplayName'
)
mohara2023-11-29 10:06mohara2023-11-29 10:06ETL status stuckETL status stuck MARKDOWNActive     LabKey Support Forum

Hi Jenica:

Generally, using the ETL UI and/or the pipeline status page for the job (reached by clicking the "Last Status" in the UI) will let you cancel and/or reset an ETL. The logs may also give more information about what may be holding it up.

I'm going to move this to your custom Support Portal so that we can get a bit more detailed information about what's going on in your case.

--Molly

Matthew Bellew2018-04-03 16:07Jon (LabKey DevOps)2018-11-16 23:24ETL dataset with a large IN filter?ETL dataset with a large IN filter? MARKDOWNClosed     LabKey Support Forum

I think you're on the right track with a two-step ETL.

Do you have permission to write into a table in the source database?

  • If yes, first ETL can copy the id's to the source database, and then select (with join) in the 'main' ETL.

  • If no, I might pursue a full copy into a 'staging' table then select with join into the final table.

Ben Bimber2018-04-03 16:15Jon (LabKey DevOps)2018-11-16 23:23ETL dataset with a large IN filter?ETL dataset with a large IN filter? MARKDOWNClosed     LabKey Support Forum

that's an interesting idea. i do have write permission in the DBs. so I need to setup the source DB on my server as an external schema, right? This would solve the problem of pushing that whitelist to the source server.

is there some way I dont know about to do an executeSQL-type select in ETL instead of RemoteQueryTransformStep (which seems to require schema/query)? This is marginally preferable since the query definition would live on the destination server, in code, rather than my defining/saving SQL through the UI on the source server.

Matthew Bellew2018-04-03 16:30Jon (LabKey DevOps)2018-11-16 23:24ETL dataset with a large IN filter?ETL dataset with a large IN filter? MARKDOWNClosed     LabKey Support Forum

The typical thing way is to add a labkey query (.sql) that goes in your module along with your ETL (.xml) definition. As in this tutorial.

https://www.labkey.org/Documentation/wiki-page.view?name=etlTutorial3

Ben Bimber2018-04-03 16:51Jon (LabKey DevOps)2018-11-16 23:23ETL dataset with a large IN filter?ETL dataset with a large IN filter? MARKDOWNClosed     LabKey Support Forum

right, though this would ideally be present on the source server. pushing IDs from destination to source direct in the DB will be robust enough to get over my major problem. I'll just define the select queries in the DB of the source server (not perfect, but good enough for now), and write my ETL to target those remote queries. thanks.

Ben Bimber2018-04-03 16:56Jon (LabKey DevOps)2018-11-16 23:24ETL dataset with a large IN filter?ETL dataset with a large IN filter? MARKDOWNClosed     LabKey Support Forum

Thinking about this, if the total # of records to push isnt huge, it is probably also possible to write an ETL task that simply uses the java API to do a remote insert, isnt it? There doesnt appear to be an existing API to cleanly pull up the credentials for saved connections (ideally you'd share the user/password saved for a given data source), but that probably wouldnt be a big leap.

niloofar nickaeen2023-12-19 03:24niloofar nickaeen2023-12-19 03:24error while trying to rebuild an old labkey configurationerror while trying to rebuild an old labkey configuration MARKDOWNActive     LabKey Support Forum

Thank you so much Molly.

and another question, in the Link for the previous releases, I cannot find the download link for the binaries - Labkey version 18.2. Only documents are there. can you also help me with this?

Thank you.

mohara2023-12-18 10:19mohara2023-12-18 10:19error while trying to rebuild an old labkey configurationerror while trying to rebuild an old labkey configuration MARKDOWNActive     LabKey Support Forum

Hi:

You won't be able to upgrade an 18.2 LabKey database directly to version 23.7. Those errors indicate problems making 'leaps' instead of the supported steps to upgrade modules and schemas. Please refer to this topic to help decide which intermediate steps you'll want to make. At first glance, 18.2 to 20.7, then 20.7 to 21.11, 21.11 to 22.11, and finally 22.11 to 23.11 (recommended over 23.7 as it was released about a month ago) might be the shortest path.

Keep in mind that with each step, you must use supported versions of Java, Tomcat, and Postgres, so you may also need to upgrade those in steps (particularly the JDK). You can find the supported versions of components for each LabKey version in the documentation archives. For example, in 20.7, this page shows which versions of Java, Tomcat, and Postgres are supported.

You can move through the archives easily by editing the URL to replace the version number, then make an upgrade component 'step' plan to get from 18.2 to 23.11 that works best for you. A few surrounding releases are shown on each grid, though there is no comprehensive grid going all the way back to 2018.

Obtain the necessary intermediate releases of LabKey Server from this page:

We highly recommend being careful to back up the database before every step in your upgrade plan and test at least basic functionality at each step, in order to be able to go back and retry with a different combination if necessary. Be even more careful never to 'downgrade' a database (i.e. start up using a database that was either fully or partially upgraded to a later release) as this can corrupt data and/or put the server in a bad state.

Hope that helps,

--Molly

mohara2023-12-19 09:00mohara2023-12-19 09:00error while trying to rebuild an old labkey configurationerror while trying to rebuild an old labkey configuration MARKDOWNActive     LabKey Support Forum

We don't generally provide (or recommend) binaries that old, though you can also step back into the archives by version for that page. We've changed the queries that back the list over time, so it isn't populated in all archives, but at least one version includes 18.2:

I want to emphasize that this is not a trivial upgrade series, and we're unable to offer custom support on this forum. Depending on the scope of data stored in the current LabKey instance, it may make more sense to manually migrate data using export from the current instance and reimport to the new empty database. If the scope is large or complex, I'd recommend getting in touch via our website so that we can discuss custom upgrade support, including that moving to our cloud would certainly make things easier for you. Let us know what you're already accomplishing with LabKey Server. We're glad you got in touch and here to help!

--Molly

kevink2020-04-07 15:06kevink2020-04-07 15:06Error while running trigger scriptError while running trigger script MARKDOWNActive     LabKey Support Forum

Hi Eva,

I think you are running into Issue 40011 which should be fixed in 19.3.9 and 20.3.1. Can you upgrade to check if that resolves the issue?

Kevin

eva pujadas2020-04-14 01:01eva pujadas2020-04-14 01:01Error while running trigger scriptError while running trigger script MARKDOWNActive     LabKey Support Forum

Hi Kevin,

Thanks a lot for your answer.
Could you let me know where to download the 19.3.9 fix that we can upgrade?

Best regards,
Eva

GrumpyBadger2024-05-28 09:05GrumpyBadger2024-05-28 09:08Error when upgradingError when upgrading MARKDOWNActive     LabKey Support Forum

That returns 873 rows, which sounds a little more than "fairly small"..

I'm guessing lots of these are invalid.. Let me know if you need the full results.

GrumpyBadger2024-05-28 09:57GrumpyBadger2024-05-28 09:57Error when upgradingError when upgrading MARKDOWNActive     LabKey Support Forum

Yep, I get :

urn:lsid:labkey.com:PropertyValidator:textchoice
urn:lsid:labkey.com:PropertyValidator:regex
urn:lsid:labkey.com:PropertyValidator:range
urn:lsid:labkey.com:PropertyValidator:length
urn:lsid:labkey.com:PropertyValidator:lookup

W

GrumpyBadger2024-05-28 10:40GrumpyBadger2024-05-28 10:40Error when upgradingError when upgrading MARKDOWNActive     LabKey Support Forum

There's 16 such rows, I'll remove them and retry the upgrade..

Thanks!,
W

GrumpyBadger2024-05-28 12:28GrumpyBadger2024-05-28 12:28Error when upgradingError when upgrading MARKDOWNActive     LabKey Support Forum

Yep, that did it!

Thank you!
W

GrumpyBadger2024-05-29 00:56GrumpyBadger2024-05-29 00:56Error when upgradingError when upgrading MARKDOWNActive     LabKey Support Forum

Spoke too soon! :(

Checking Container Column References...

Checking PropertyDescriptor and DomainDescriptor consistency...

Checking Schema consistency with tableXML.

core: OK
prop: OK
test: OK
comm: OK
pipeline: OK
query: OK
junit: OK
exp
ERROR: Table "List", column "EntireListTitleSetting" found in XML but not in database.
ERROR: Table "List", column "EachItemTitleSetting" found in XML but not in database.
ERROR: Table "Material", column "RecomputeRollup" found in XML but not in database.
ERROR: Table "material", column "availablealiquotcount" missing from XML.
ERROR: Table "material", column "availablealiquotvolume" missing from XML.
ERROR: Table "material", column "storedamount" missing from XML.
ERROR: Table "material", column "units" missing from XML.
ERROR: Table "dataclass", column "dataparentimportaliasmap" missing from XML.
ERROR: Table "ExperimentRunMaterialInputs", column "RecomputeRollup" found in XML but not in database.
ERROR: Table "experimentrunmaterialinputs", column "availablealiquotcount" missing from XML.
ERROR: Table "experimentrunmaterialinputs", column "availablealiquotvolume" missing from XML.
ERROR: Table "experimentrunmaterialinputs", column "storedamount" missing from XML.
ERROR: Table "experimentrunmaterialinputs", column "units" missing from XML.
ERROR: Table "datatypeexclusion" missing from XML.
assay
ERROR: Table "well", column "sampleid" missing from XML.
ERROR: Table "plateproperty" missing from XML.
filecontent: OK
issues: OK
study: OK
survey: OK


Checking Consistency of Provisioned Storage... 916 domains use Storage Provisioner
database table assayresult.c16d63_biacore_data_fields has column 'createdby' without a property descriptor
database table assayresult.c16d63_biacore_data_fields has column 'created' without a property descriptor
database table assayresult.c16d63_biacore_data_fields has column 'modified' without a property descriptor
database table assayresult.c16d63_biacore_data_fields has column 'modifiedby' without a property descriptor
See this page for more info: https://localhost:8443/Tutorials/Assay%20Tutorial/experiment-types-repair.view?domainUri=urn%3Alsid%3Alabkey.com%3AAssayDomain-Data.Folder-16%3ABiacore
database table assayresult.c67d1621_qpcr_data_fields has column 'createdby' without a property descriptor
database table assayresult.c67d1621_qpcr_data_fields has column 'created' without a property descriptor
database table assayresult.c67d1621_qpcr_data_fields has column 'modified' without a property descriptor
database table assayresult.c67d1621_qpcr_data_fields has column 'modifiedby' without a property descriptor
See this page for more info: https://localhost:8443/Target%20Identification%20and%20Validation/experiment-types-repair.view?domainUri=urn%3Alsid%3Alabkey.com%3AAssayDomain-Data.Folder-67.b10d0342-e052-103c-b59a-dcb7e9d37af6%3Aqpcr
database table assayresult.c179d1712_qpcr_data_fields has column 'createdby' without a property descriptor
database table assayresult.c179d1712_qpcr_data_fields has column 'created' without a property descriptor
database table assayresult.c179d1712_qpcr_data_fields has column 'modified' without a property descriptor
database table assayresult.c179d1712_qpcr_data_fields has column 'modifiedby' without a property descriptor
See this page for more info: https://localhost:8443/Molecular%20samples%20and%20assays/qPCR/experiment-types-repair.view?domainUri=urn%3Alsid%3Alabkey.com%3AAssayDomain-Data.Folder-179%3AqPCR
database table assayresult.c57d471_cell_culture_data_fields has column 'createdby' without a property descriptor
database table assayresult.c57d471_cell_culture_data_fields has column 'created' without a property descriptor
database table assayresult.c57d471_cell_culture_data_fields has column 'modified' without a property descriptor
database table assayresult.c57d471_cell_culture_data_fields has column 'modifiedby' without a property descriptor
See this page for more info: https://localhost:8443/Tutorials/Tutorials%20Katy/Assay%20tutorial/experiment-types-repair.view?domainUri=urn%3Alsid%3Alabkey.com%3AAssayDomain-Data.Folder-57%3ACell%2BCulture
database table assayresult.c16d1218_test_data_fields has column 'createdby' without a property descriptor
database table assayresult.c16d1218_test_data_fields has column 'created' without a property descriptor
database table assayresult.c16d1218_test_data_fields has column 'modified' without a property descriptor
database table assayresult.c16d1218_test_data_fields has column 'modifiedby' without a property descriptor
See this page for more info: https://localhost:8443/Tutorials/Assay%20Tutorial/experiment-types-repair.view?domainUri=urn%3Alsid%3Alabkey.com%3AAssayDomain-Data.Folder-16%3Atest
database table assayresult.c16d66_cell_culture_modified_data_fields has column 'createdby' without a property descriptor
database table assayresult.c16d66_cell_culture_modified_data_fields has column 'created' without a property descriptor
database table assayresult.c16d66_cell_culture_modified_data_fields has column 'modified' without a property descriptor
database table assayresult.c16d66_cell_culture_modified_data_fields has column 'modifiedby' without a property descriptor
See this page for more info: https://localhost:8443/Tutorials/Assay%20Tutorial/experiment-types-repair.view?domainUri=urn%3Alsid%3Alabkey.com%3AAssayDomain-Data.Folder-16%3ACell%2BCulture%2BModified
database table assayresult.c26d408_cloning_elispot_data_fields has column 'createdby' without a property descriptor
database table assayresult.c26d408_cloning_elispot_data_fields has column 'created' without a property descriptor
database table assayresult.c26d408_cloning_elispot_data_fields has column 'modified' without a property descriptor
database table assayresult.c26d408_cloning_elispot_data_fields has column 'modifiedby' without a property descriptor
See this page for more info: https://localhost:8443/Tutorials/Caroline%20Test/experiment-types-repair.view?domainUri=urn%3Alsid%3Alabkey.com%3AAssayDomain-Data.Folder-26%3ACloning%2BELISpot
database table assayresult.c16d56_cel_culture_data_fields has column 'createdby' without a property descriptor
database table assayresult.c16d56_cel_culture_data_fields has column 'created' without a property descriptor
database table assayresult.c16d56_cel_culture_data_fields has column 'modified' without a property descriptor
database table assayresult.c16d56_cel_culture_data_fields has column 'modifiedby' without a property descriptor
See this page for more info: https://localhost:8443/Tutorials/Assay%20Tutorial/experiment-types-repair.view?domainUri=urn%3Alsid%3Alabkey.com%3AAssayDomain-Data.Folder-16%3ACel%2BCulture
database table assayresult.c57d478_cell_culture_modified_data_fields has column 'createdby' without a property descriptor
database table assayresult.c57d478_cell_culture_modified_data_fields has column 'created' without a property descriptor
database table assayresult.c57d478_cell_culture_modified_data_fields has column 'modified' without a property descriptor
database table assayresult.c57d478_cell_culture_modified_data_fields has column 'modifiedby' without a property descriptor
See this page for more info: https://localhost:8443/Tutorials/Tutorials%20Katy/Assay%20tutorial/experiment-types-repair.view?domainUri=urn%3Alsid%3Alabkey.com%3AAssayDomain-Data.Folder-57%3ACell%2BCulture%2BModified


Database Consistency checker complete
adam2024-05-28 08:11adam2024-05-28 08:11Error when upgradingError when upgrading MARKDOWNActive     LabKey Support Forum

Hi Will,

I think I know what's going on; I believe there's one or more corrupted rows in the validators table. Could you run this query directly against this instance's database (via psql, pgAdmin 4, or similar tool) and share the results? There should be a fairly small number of rows.

SELECT * FROM exp.PropertyValidator

Thanks,
Adam

adam2024-05-28 09:28adam2024-05-28 09:28Error when upgradingError when upgrading MARKDOWNActive     LabKey Support Forum

Okay, fair enough. :) In that case, let's try this:

SELECT DISTINCT TypeURI FROM exp.PropertyValidator

I expect we'll see 'urn:lsid:labkey.com:PropertyValidator:length' in there.

Adam

adam2024-05-28 10:31adam2024-05-28 10:31Error when upgradingError when upgrading MARKDOWNActive     LabKey Support Forum

The solution is simple; execute this SQL to delete the invalid rows:

DELETE FROM exp.PropertyValidator WHERE TypeURI = 'urn:lsid:labkey.com:PropertyValidator:length'

The "length" validators were created long ago, but are no longer valid. These rows should have been deleted by the upgrade process back in 2021. Somehow, your server skipped that part of the upgrade; this could happen if the server was shut down part of the way through a past upgrade. Please let us know if this fixes the problem.

Separately, I'll look at making the code resilient to unrecognized validators; we definitely shouldn't block server startup.

Adam

adam2024-05-29 15:19adam2024-05-29 15:19Error when upgradingError when upgrading MARKDOWNActive     LabKey Support Forum

Well, that's not good (obviously). It seems like you have a current deployment problem in addition to past upgrade problems. Normally, a Premium Edition subscription provides the avenue for us to rectify problems like this (and maximize the value of your deployment). I will reach out privately (via email) to see if we can get you up and running again with a minimal effort.

Adam

adam2024-05-30 11:35adam2024-05-30 11:35Error when upgradingError when upgrading MARKDOWNClosed     LabKey Support Forum

This issue was resolved and the server is running correctly now. The OP's deployment was getting unintentionally "downgraded" to an earlier LabKey Server version by an automated nightly process. This explains the schema inconsistencies that were appearing every morning.

chetc (LabKey Support)2020-02-14 12:18chetc (LabKey Support)2020-03-12 17:22Error When Setting Up Developer MachineError When Setting Up Developer Machine MARKDOWNClosed     LabKey Support Forum

Hello,

Your build issues are most likely linked to

"The only other inconsistency I found in the guide was in the "Configure the LabKey Project in IntelliJ" section when it asks to edit the configurations there is no modules named "api_main" or "org.labkey-api_main", so I continued with "api" instead."

You should see api_main or org.labkey-api_main in the modules list. Please make sure that you have completed the "Clone Core Modules from GitHub" section in the guide properly. Pay close attention to the paths where the cloned repos should go.

Once you've added them you can run a "gradlew projects" command to see if the cloned repos are there under server / modules.

Thanks,
Chet

mohara2023-04-15 14:57mohara2023-04-15 14:57Error when editing style "There was a problem while saving: Illegal element"Error when editing style "There was a problem while saving: Illegal element" MARKDOWNActive     LabKey Support Forum

Hi Chelsea:

In order to be able to use tags like <style> in HTML-format wikis, you would need to have either the "Platform Developer" site level role (or with Premium Editions, the "Trusted Analyst" role also supports this operation). Learn about Developer Roles here.

However, there are other options for wiki styles like that. One alternative is to apply the style in-line. A non developer could include syntax like this in a wiki-syntax page:
{div:style=text-align:center}
Center this text.
{div}

Or in an HTML-syntax page, you use:
<div style="text-align:center;">
Center this text.
</div>

Another alternative is to include your styles in a custom CSS file that can be included at the site or project level. At least the Project Administrator role is required to apply the CSS to the project (or site), but once in place wiki editors gain the ability to use those named styles in wikis without having the developer or admin role. As an example, we use a "bluebox" style for instruction boxes in our documentation and show that example in the documentation here.

Hope that helps,

--Molly

chetc (LabKey Support)2021-01-20 12:29Jon (LabKey DevOps)2021-02-05 13:22Error: Search is disabled because the search index is misconfigured. Contact the system administrator of this server.Error: Search is disabled because the search index is misconfigured. Contact the system administrator of this server. MARKDOWNClosed     LabKey Support Forum

Hello,

This issue usually occurs when the full text search index file is being used by another process making it unavailable to LabKey.

Based off of the path (virtual machine: C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp\labkey_full_text_index\write.lock) in the stack I'm guessing you are using a windows machine.

You could use the resource monitor

  1. Open Resource Monitor, which can be found
    - By searching for Resource Monitor or resmon.exe in the start menu
    - As a button on the Performance tab in your Task Manager
  2. Go to the CPU tab of the resource monitor
  3. Use the search field in the Associated Handles section
    - Here you can search for "labkey_full_text_index\write.lock"

Once you locate the process using that file you can terminate it. If the crawler doesn't automatically continue, you may need to go to "Admin Console" --> "Management/Full-Text Search" and start the crawler.

If these steps do not resolve the issue you may consider deleting the index and allowing it to create a new one, but you will likely need to terminate the process holding that .lock file to accomplish this as well.

Thanks,
Chet

marcia hon2018-04-19 08:06Jon (LabKey DevOps)2018-11-16 23:24Error: removing module and delete schemaError: removing module and delete schema MARKDOWNClosed     LabKey Support Forum

I solved this by reloading the web browser. And also, sometimes by restarting Tomcat.

oliver cencic2023-11-30 23:09oliver cencic2023-11-30 23:09Error message when clicking "Save" under "Site > Admin Console > Site Settings"Error message when clicking "Save" under "Site > Admin Console > Site Settings" MARKDOWNActive     LabKey Support Forum

Thanks for your lightning-fast reaction!
Oliver

mohara2023-11-28 10:50mohara2023-11-28 10:50Error message when clicking "Save" under "Site > Admin Console > Site Settings"Error message when clicking "Save" under "Site > Admin Console > Site Settings" MARKDOWNActive     LabKey Support Forum

Hi Oliver:

Thank you for reporting this bug to us. We are working on a fix now.

Depending on what site settings you wanted to change, you may be able to continue working on your server using the defaults and change settings later after upgrading. I'll let you know as soon as we have a fix available.

--Molly

mohara2023-11-30 12:49mohara2023-11-30 12:49Error message when clicking "Save" under "Site > Admin Console > Site Settings"Error message when clicking "Save" under "Site > Admin Console > Site Settings" MARKDOWNActive     LabKey Support Forum

Hi Oliver:

This issue has been fixed in the maintenance release 23.11.2, published today.

You can upgrade to this version and will be able to edit site settings again. Apologies for the inconvenience.

--Molly

marcia hon2018-06-06 09:36Jon (LabKey DevOps)2018-11-16 23:24Error in clicking "EDIT" or "DETAILS" of a ETL created tableError in clicking "EDIT" or "DETAILS" of a ETL created table MARKDOWNClosed     LabKey Support Forum

I solved it.

Apparently, my primary key was spelled incorrectly.

Also, I did casting to integer when inserting/updating.

Thanks,
Marcia

WayneH2019-09-23 07:00Jon (LabKey DevOps)2019-09-23 10:19End session via APIEnd session via API MARKDOWNClosed     LabKey Support Forum

nevermind this inquiry, we implemented a workaround that satisfies our requirements..

Matthew Bellew2020-06-25 10:10Matthew Bellew2020-06-25 10:13Enabling CORS and file deletion issuesEnabling CORS and file deletion issues MARKDOWNActive     LabKey Support Forum

I don't know much about CORS, but WebDav uses a lot of methods in addition to GET, POST, and OPTIONS. In addition, it uses: DELETE, PUT, COPY, LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH, and UNLOCK. Perhaps those need to be added to the "cors.allowed.methods" section.

I see that the request above uses POST, however, so the other idea is permissions or CSRF checking.

Matthew Bellew2020-06-26 10:48Matthew Bellew2020-06-26 10:48Enabling CORS and file deletion issuesEnabling CORS and file deletion issues MARKDOWNActive     LabKey Support Forum

Perhaps you have to add "Cookie" to the allowed headers, so the session is recognized for authentication? I will try to set this up locally to test as well.

Matthew Bellew2020-06-26 13:02Matthew Bellew2020-06-26 13:04Enabling CORS and file deletion issuesEnabling CORS and file deletion issues MARKDOWNActive     LabKey Support Forum

I got this to work, but CorsFilter is picky!

  1. Content-Type can not be blank. Setting it to "application/x-www-form-urlencoded" works.
  2. Using API keys to log in did work (still playing with regular Cookie/JSESSION authentication)
  3. For other developers trying to repro, you need to include the non default ports in the CORS config e.g. http://localhost:8080

xhr.open('POST', 'http://lk:8080/labkey/_webdav/home/%40files/1.jpg?method=DELETE');
xhr.setRequestHeader("Authorization", "Basic " + btoa('apikey:apikey|6a79d45d50b400eb787abbeb67838854'));
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = someHandler;
xhr.send();

Matthew Bellew2020-06-26 13:38Matthew Bellew2020-06-26 13:38Enabling CORS and file deletion issuesEnabling CORS and file deletion issues MARKDOWNActive     LabKey Support Forum

And you have to specify xhr.withCredentials to send cookies. So this works if the user is logged in to the 'remote' web server. I don't know if all browsers support this.

xhr.open('POST', 'http://lk:8080/labkey/_webdav/home/%40files/2.jpg?method=DELETE');
xhr.withCredentials = true;
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = someHandler;
xhr.send();

Matthew Bellew2020-06-26 16:07Jon (LabKey DevOps)2020-08-10 10:57Enabling CORS and file deletion issuesEnabling CORS and file deletion issues MARKDOWNClosed     LabKey Support Forum

The changes were required in the browser Javascript code. I had to explicitly set the "Content-Type" header and the withCredentials flag on the XMLHttpRequest object.

inaki martinez2020-06-26 02:08inaki martinez2020-06-26 02:08Enabling CORS and file deletion issuesEnabling CORS and file deletion issues MARKDOWNActive     LabKey Support Forum

There is one detail that is confusing to me, as the issue does not happen if CORS is disabled, I can upload and delete files without trouble. So if I'm not explicitly enabling any CSRF filter, how is that is enforced/applied with the CORS filter? (I think you are right that having POST allowed, it must be something else).

I looked at the request headers to see I there was something missing and found X-LABKEY-CSRF, but adding it to the cors.allowed.headers does not change things

inaki martinez2020-06-26 15:49inaki martinez2020-06-26 15:49Enabling CORS and file deletion issuesEnabling CORS and file deletion issues MARKDOWNActive     LabKey Support Forum

I have tried adding the cookie header and other headers shown by Chrome, but none make it work.

The methods you describe should be added to the web.xml configuration file or is something that has to be done at the application level?

adam2021-04-10 09:51Jon (LabKey DevOps)2021-04-19 23:54Editor permission without deleting permission.Editor permission without deleting permission. MARKDOWNClosed     LabKey Support Forum

There is no built-in security role that supports read, insert, and update permissions, but disallows delete. The reasoning here is that update is effectively as destructive as delete, since with that permission I can change every value in the row to some other value.

If this is still an important requirement, then you could create and register a custom security role that grants just the permissions you want. This requires a Java module, but the code should be straightforward. See the existing EditorRole for a good starting point.

Adam

Chichero2021-04-22 06:35Jon (LabKey DevOps)2021-12-21 13:40Editor permission without deleting permission.Editor permission without deleting permission. MARKDOWNClosed     LabKey Support Forum

Hi Adam,

Thank you for your advice. For our project it is essential not to loose samples which is a row with a sample ID in a Sample Set. So for us editing and deleting makes a difference. Unfortunately I know little about Java so deploying and editing a Java module for LabKey will be a complicated task. If I find time I will look into it.

In this case are there any possibilities to give editor roles to a group of people for a specific sample set? I did find this functionality for datasets.

Natalia

adam2021-05-04 16:51Jon (LabKey DevOps)2021-05-18 14:19Editor permission without deleting permission.Editor permission without deleting permission. MARKDOWNClosed     LabKey Support Forum

As you found, LabKey Study provides fine-grained access control on a dataset-by-dataset basis and we improved this for the 21.3 release. Fine-grained access control for sample types is not currently an option, unfortunately. You could of course put the sample types in different folders and grant Editor permissions to different groups of users in each; you could even use a filtered schema to make all the sample types readable in a third folder. There are likely some downsides to this approach.

FYI: We have created custom security roles and implemented advanced security options to meet the specific needs of our clients; let us know if you have any interest in discussing.

Adam

Chichero2021-09-22 06:38Jon (LabKey DevOps)2021-12-21 13:40Editor permission without deleting permission.Editor permission without deleting permission. MARKDOWNClosed     LabKey Support Forum

Hi Adam,

Would it be possible to organise a meeting to disscuss advanced security options? We will be glad to consider various solutions that can meet our needs.

Feel free to contact me via email,
Natalia

Jon (LabKey DevOps)2019-06-24 19:40Jon (LabKey DevOps)2019-06-24 19:40Duplicate rows queryDuplicate rows query MARKDOWNClosed     LabKey Support Forum

Hi Frank,

We'll move your question to your Premium Support Ticket portal and work with you there.

Regards,

Jon

mohara2022-08-18 09:56mohara2022-08-18 09:56Download prolems community editionDownload prolems community edition MARKDOWNActive     LabKey Support Forum

My apologies, Oliver. You're right that there was a general problem with our website accepting form submissions.
This has been fixed and should work for you now. Thank you for bringing this to our attention.

--Molly

Matthew Bellew2018-08-09 13:55Jon (LabKey DevOps)2018-11-16 23:23Downloading Files from Labkey ServerDownloading Files from Labkey Server MARKDOWNClosed     LabKey Support Forum

There is nothing special about downloading files from a LabKey server. You can use any command line tools that work with any website. For instance, wget in Window PowerShell, or wget in Linux bash.

Matt

olnerdybastid2018-04-03 15:55Jon (LabKey DevOps)2018-11-16 23:24Difficulties adding my own CSS to style LabKey interfaceDifficulties adding my own CSS to style LabKey interface MARKDOWNClosed     LabKey Support Forum

Updating to say that the 'problem' with option #1 was entirely user error on my end: my initial test CSS was uploaded as a project resource (project settings -> resources tab), whereas my subsequent changes to the custom CSS were all at the site-level (admin console -> look and feel settings -> resources tab). Since it looks as though the project-level CSS supersedes the site-level one, the latter wasn't getting loaded when I viewed my wiki.

Still curious to know why/if approaches 2 and 3 don't work though.

Jon (LabKey DevOps)2018-04-08 00:16Jon (LabKey DevOps)2018-11-16 23:24Difficulties adding my own CSS to style LabKey interfaceDifficulties adding my own CSS to style LabKey interface MARKDOWNClosed     LabKey Support Forum

Hello,

Did you set the permissions and the owner properly on those custom CSS files to match up with the other ones?

Regards,

Jon

Will Holtz2019-02-13 16:45Jon (LabKey DevOps)2019-02-14 10:17Dev setup problem - jsp directory not foundDev setup problem - jsp directory not found MARKDOWNClosed     LabKey Support Forum

Changing to OpenJDK v11.0.2 fixed this issue.

The mac development machine setup page still indicates that Oracle Java 8 should be used. That page might be due for an update.

-Will

mohara2024-06-11 09:52mohara2024-06-11 09:52Description field not showing on insert new row in sample tableDescription field not showing on insert new row in sample table MARKDOWNActive     LabKey Support Forum

Hi Katy:
I'm not sure what's causing that and sounds like you've checked the right things. The field must be enabled (box checked in the "Default Fields" section) and the Advanced Settings box for "Show on insert form when updating a single row of data" must be checked.

As you know, for default fields in a Sample Type, you reach that advanced settings box via the schema browser. Did you check both the samples schema and the exp.materials schema? Check the settings for that field of your sample type in both those places and see if the box is unchecked in either. It seems from my quick check that the samples schema will override whatever is set in exp.materials, though it's worth checking both on your version. Also check both places to be sure that there is no XML metadata overriding the checkbox with <shownInInsertView>false</shownInInsertView>.

Hope that helps,
--Molly

mohara2024-06-19 11:49mohara2024-06-19 11:49Description field not showing on insert new row in sample tableDescription field not showing on insert new row in sample table MARKDOWNActive     LabKey Support Forum

Hi Katy:

That's great news that the upgrade completed successfully!

On this question, I'm also puzzled. To be extra clear, is that XML in the samples schema for your Sample Type? With the correct <table> and other syntax surrounding it - but nothing else there? You shouldn't need that to be there at all, though it looks correct to me, so removing it entirely . And there is nothing in the XML for exp.materials for that type? You mentioned earlier that fields were working (showing up) on your dev instance of 24.3.4, but now they aren't? Or they aren't on this server? Is this true for all Sample Types? If you create a new one with nothing new/special, does it also hide that field on insert?

Something specific must be different about this Sample Type, or this type on this server in this container, and it's hard to know what that might be without looking at it in person. You're probably right that a user-defined field would work for you just as well. Or if a newly created Sample Type works correctly, then rebuilding your type from that and migrating the data could be another workaround.

--Molly

mohara2024-06-20 10:45mohara2024-06-20 10:45Description field not showing on insert new row in sample tableDescription field not showing on insert new row in sample table MARKDOWNActive     LabKey Support Forum

Your last sentence opens another idea - if this is happening in a subfolder, is the sample type also defined in the top level project and/or the /Shared project? If so, those settings may be different there. I can't reproduce exactly what you're reporting, but do some unusual show/hide behavior where those settings are sometimes inherited and sometimes overwritten depending on the order in which things are changed, so check those other containers to see if you have that same name sample type set to be always showing that field on insert.

If that's not it then re-creating new ones may be the only choice.

--Molly

mohara2024-06-21 08:31mohara2024-06-21 08:31Description field not showing on insert new row in sample tableDescription field not showing on insert new row in sample table MARKDOWNClosed     LabKey Support Forum

That's great news! Glad to have an answer!
--Molly

katy wiseman2024-06-19 02:56katy wiseman2024-06-19 02:56Description field not showing on insert new row in sample tableDescription field not showing on insert new row in sample table MARKDOWNActive     LabKey Support Forum

Hi Molly,

We've managed to do our update, yay! But it's still not fixed this issue.

I've checked:
the "Default fields" secton and description is ticket
the advanced setting and all the tick boxes are ticked
the XML metadata and all of the and the tick boxes have inserted this, which looks okay:
<column columnName="Description">
<isHidden>false</isHidden>
<shownInInsertView>true</shownInInsertView>
<shownInUpdateView>true</shownInUpdateView>
<shownInDetailsView>true</shownInDetailsView>
</column>
the exp.materials schema and all of the advanced boxes are ticked and there's no additonal XML.

I am stuck. I'm so confused as it's coming up on the update form, just not the insert. I might just have to make my own field for now and not use the system field. Any other ideas?

Best,
Katy

katy wiseman2024-06-20 02:31katy wiseman2024-06-20 02:31Description field not showing on insert new row in sample tableDescription field not showing on insert new row in sample table MARKDOWNActive     LabKey Support Forum

Hi Molly,

This is the full XML for that table in the sample schema:
<tables xmlns="http://labkey.org/data/xml">
<table tableName="RNAseq_projects" tableDbType="NOT_IN_DB">
<columns>
<column columnName="Description">
<isHidden>false</isHidden>
<shownInInsertView>true</shownInInsertView>
<shownInUpdateView>true</shownInUpdateView>
<shownInDetailsView>true</shownInDetailsView>
</column>
</columns>
</table>
</tables>

If I remove the bit i sent earlier it un-ticks the boxes on the advanced settings.
I also tried a different sample table in the same folder and it's doing the same thing.

The exp.materials table has:
<tables xmlns="http://labkey.org/data/xml">
<table tableName="RNAseq_projects" tableDbType="NOT_IN_DB">
<columns>
</columns>
</table>
</tables>

I've just checked in dev on a different table (the RNASeq ones don't exist in dev) and it's working fine. Selected description for the default fields and it's appeared in the insert form and ticked all the boxes in the advanced settings. However, it didn't add the XML:
<tables xmlns="http://labkey.org/data/xml">
<table tableName="section_to_sample_and_target" tableDbType="NOT_IN_DB">
<columns>
</columns>
</table>
</tables>

I've then tried making a new sample table in prod and it works fine.... I also tried a different sample table in a different folder and it's fine! So it's just these two sample tables in this specific sub folder.... I might need to re-make them :(

Best,
Katy

katy wiseman2024-06-21 02:55katy wiseman2024-06-21 02:55Description field not showing on insert new row in sample tableDescription field not showing on insert new row in sample table MARKDOWNActive     LabKey Support Forum

Oh. My. Goodness. We've cracked it! They tables did exist a folder up. I wasn't using them in the subfolder, I'd already re-made them with the same names but I think I was looking at the tables in the folder above when I was trying to edit them. I've since deleted the tables in the folder above, so that I don't get confgused again, and checked that everything is sitll working. The description field is now appearing in the correct tables! I am having trouble getting rid of the alias and flag columns but they can just stay at this point.

Thank you so much for all of your help!

Best,

Katy

marcia hon2018-06-05 07:44Jon (LabKey DevOps)2018-11-16 23:24Deleting record in Assay from Stored ProcedureDeleting record in Assay from Stored Procedure MARKDOWNClosed     LabKey Support Forum

I found a solution.

To reference any tables in Stored Procedure / ETL , you need to reference how it is named in Postgres.

For example, if I have an assay called "test", in Postgres, it is stored in "assayresult" with the table name of "c123456_test".

So to reference it in Postgres, you would use: assayresult.c123456_test .

Thanks!

panthea tzourio2020-08-11 03:45panthea tzourio2020-08-11 03:45Date error msg: "couldn’t convert date field, should be of type timestamp"Date error msg: "couldn’t convert date field, should be of type timestamp" MARKDOWNActive     LabKey Support Forum

Bonjour Chet,
Thx a lot for your time. I've no doubt that imports go well for you as it was with David's demos with the same files. The question is why it doesn't work for us?!
I tried again and again with other files and encountered the same exception this time with a ViralLoadPCR from David's demo files (attached).
I wonder what is exactly the meaning of this Labkey msg: "should be of type timestamp" when the field is already of the type datetime. Is this referring to the system date instead ? I beleive something involving the date in our system is set in a way different than in yours that doesn't match what is expected by Labkey and generates this timestamp and CEST exception. It seems that CEST is not interferring in your Labkey date while it does in our's. But I don't see where I can replace CEST to CET else than what I've already done? Maybe a screenshot of your setting to CET for comparaison could help?

panthea tzourio2020-08-18 06:09panthea tzourio2020-08-18 06:09Date error msg: "couldn’t convert date field, should be of type timestamp"Date error msg: "couldn’t convert date field, should be of type timestamp" MARKDOWNActive     LabKey Support Forum

Merci for your time Chet. As for your question suggestion :"to add "CET" for the timezone in your data", I'm not sure I understand exactly what you want me to do. I must say I've tried everything possible: even rewritten manually the dates in any possible format, American or French. The problème is Java overwrites the system date (CEST), whatever the files date format or the Study folder date format be. I just even tried to add a vba Module to a rejected excel file to force the CET time instead of the system CEST. Please see the Notepad file attached. No change in the outcome. Still CEST timezone is read. Same error msg with our own research data or Labkey demo data.
I should add that in my Study configurations I always change the CEST default time to CET, still the error CEST msg appears when submit to the import to the database !

The odd thing is that this Java behaviour with european time zone is not the same from file to file! Demographics.xls file with an identical Date field format is imported to Labkey server while the same structured file LabResults.xls produces the CEST error msg! Maybe in the first, the system is not parsing on date while in the second it does.
I'm thinking of abandoning Study feature and try other type of project types like Lists, but it's a pitty as we lose all the UI and prebuilt features for Study type (clinical research, cohorts, ...).
Would you please let me know if there's another French or Center Europe Labkey customer? I can maybe try to see how they deal with this specific problem.
Hopefuly this bug will be fixed in the coming version.
Panthéa

chetc (LabKey Support)2020-09-15 13:21Jon (LabKey DevOps)2020-09-18 10:42Date error msg: "couldn’t convert date field, should be of type timestamp"Date error msg: "couldn’t convert date field, should be of type timestamp" MARKDOWNClosed     LabKey Support Forum

Hello Panthéa,

I apologize for the delayed response.

Hello Panthéa,

I wanted you to add "CET" as the timezone in your data. My hope there was that the system would just opt to use the timezone specified by the input file. But since it seems to use "CEST" regardless I don't think this will help. We actually opened up a bug for this which you can follow here https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=41109.

After discussing this with Molly who spent some time on this issue, we think that including support for “CEST” still may not resolve the issue. We think that it may have more to do with how the date is being parsed. By that I mean whether your system is set to use “U.S date parsing” or “Non-US date parsing”. You can find this setting in Labkey under the Admin console → Look and feel settings. Our theory is that perhaps the parsing setting is not set appropriately for the data in the file. For example, if you are testing with files from our tutorials that assume US date parsing while you have Non US parsing set you will likely run into issues. To test this could you change your “Look and Feel” settings to use US based parsing and try out the tutorials files again? Be sure to change the setting back when you are done testing.

The reason you are seeing differences between the demographics file versus the LabResults is because the demographics file only contains one date 02/02/2020 which is the same if you were to parse it using US settings or even European settings. The LabResults file contains a range of future dates that may not be able to be parsed either way like the date in the demographics file.

Another strategy is to eliminate the complications of using the Excel/.xls file formatting - Excel may be displaying dates one way but the underlying date code might still be wrong. To eliminate this, you could use text files instead. For example, the attached .csv file contains the same data as the LabResults file attached to our tutorial, but formatted as comma separated values, essentially forcing 'year-first' date codes (without timezones) which will always be accepted. Could you try this file to see if it gets parsed appropriately?

chetc (LabKey Support)2020-08-10 11:33chetc (LabKey Support)2020-08-10 11:33Date error msg: "couldn’t convert date field, should be of type timestamp"Date error msg: "couldn’t convert date field, should be of type timestamp" MARKDOWNActive     LabKey Support Forum

Hello,

Thank you for reaching out to us!

Is the file you sent the same as the file from the screenshot? I just tried to reproduce the problem by

  1. Changed my local timezone to match yours (CET)
  2. Created a date based study
  3. Change look and feel settings to include z (from the screenshot)
  4. Create a dataset using that xls file
  5. Data uploaded successfully

Let me know what you think, and please check if its the same.

Thanks,
Chet

chetc (LabKey Support)2020-08-11 11:02chetc (LabKey Support)2020-08-11 11:02Date error msg: "couldn’t convert date field, should be of type timestamp"Date error msg: "couldn’t convert date field, should be of type timestamp" MARKDOWNActive     LabKey Support Forum

Hello,

I believe that message is saying that whatever labkey received couldn't be parsed as a timestamp. We did some more digging on this yesterday and found that "European time zone codes "CET", "(CET)" and "(Europe/Paris)" all work fine - but the ones including the S or the date, like CEST, CEST 2021, (CEST) etc. are not being recognized." We have opened up a bug for this, which you can follow at https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=41109

I am still working on a workaround for this to get you unblocked. I will let you know what I find.

Thanks,
Chet

chetc (LabKey Support)2020-08-17 14:47chetc (LabKey Support)2020-08-17 14:47Date error msg: "couldn’t convert date field, should be of type timestamp"Date error msg: "couldn’t convert date field, should be of type timestamp" MARKDOWNActive     LabKey Support Forum

Hello,

Unfortunately, I wasn't able to work out a straightforward workaround for this.

We do have a fix for this that will be available in a newer version of labkey. Originally we thought that the timezone was being specified in the file you were uploading, but after taking a closer look it's not there. Regardless, CEST (which java doesn't like) is getting appended to the data at some point causing labkey give you an error. Would it be possible for you to add "CET" for the timezone in your data?

Thanks,
Chet

marcia hon2018-03-16 07:12Jon (LabKey DevOps)2018-11-16 23:23Data Transform WebpartData Transform Webpart MARKDOWNClosed     LabKey Support Forum

I found the answer.

At Folder Management, Folder type > "Modules", checkmark "DataIntegration".

Thanks

vipin2024-04-15 23:04vipin2024-04-15 23:04database schema migrationdatabase schema migration MARKDOWNActive     LabKey Support Forum

Hi Adam,
Sorry for the late reply from my side. Yeah it somehow landed in the spam folder even though the mail address was in the allowlist.
Thank you for your reply thread. The documentation was very helpful to migrate the database schema from my old instance to the new version of LabKey. I successfully migrated the old database schema and updated the instance with the latest release version of the LabKey (23.11.11). 
​Yes I will take care of upgrading the instance every four months with the latest release candidates.
Thank you very much for your support! This case can be closed.
Regards,
Vipin

adam2024-04-12 17:02adam2024-04-12 17:02database schema migrationdatabase schema migration MARKDOWNActive     LabKey Support Forum

Hi Vipin,

I answered this over email a few days ago; you may want to search your spam folders again. I'll repeat it here in case you can't find it. And for the benefit of others.

LabKey automatically upgrades all of your database schemas, as long as you're upgrading from a version that's compatible with your desired upgrade version. Unfortunately, 21.11.4 is too old to upgrade directly to 23.11.11, so you'll need to upgrade to an interim version first, say 22.11.9, and then upgrade that to 23.11.11. This is documented in more detail on this page: https://www.labkey.org/Documentation/wiki-page.view?name=upgradeSupportPolicy

You can obtain previous Community Edition versions here: https://www.labkey.org/Documentation/wiki-page.view?name=prevReleases As you'll see, we remove upgrade support for an entire year's worth of releases at the beginning of each year; as such, if you're not planning to upgrade regularly you should deploy releases that are made early in the year, such as 24.3. That gives you nearly two years of upgrade window. (But mostly I encourage upgrades to the latest version every four months to ensure you receive all the improvements and security fixes.)

Regards,
Adam

mohara2023-12-15 11:20mohara2023-12-15 11:20Custom views with “Timeline” tab encounter this JS error message ext.TimelineCustom views with “Timeline” tab encounter this JS error message ext.Timeline MARKDOWNActive     LabKey Support Forum

Hi Zafar:

I'm going to move this question to your Premium Support Portal where we can more easily address it.
Thanks for reaching out,

--Molly

chetc (LabKey Support)2020-04-17 14:50Jon (LabKey DevOps)2020-05-15 09:13Custom site welcome pageCustom site welcome page MARKDOWNClosed     LabKey Support Forum

Hello Johann,

I tried following the steps

  1. Created myModule/views/welcome.html in labkey/modules
  2. Restarted tomcat
  3. In the look and feel settings page I set "Alternative site welcome page" to "/myModule/welcome.view" (viewEntry.png)
  4. Hit Save

The welcome page will be loaded when a user loads the site with no action provided (i.e. https://www.labkey.org). So in my case this was http://localhost:8080/labkey/. See (view.png). This loads a view as expected.

If you want a simple HTML page

"or /myModule/welcome.html for a simple HTML page in the web directory of your module." --> From the docs. This could use a bit of clarification, and we can get the doc updates.

But to have the simple HTML page you need to

  1. Add a another folder in in myModule called web
  2. Within web create another folder called myModule and add your welcome.html here
  3. Should look like
  • myModule
    ---view
    ---web
    ------myModule
    ---------welcome.html
  1. In the look and feel settings page I set "Alternative site welcome page" to "/myModule/welcome.html" (htmlEntry.png)
  2. You should see html.png

This doc lays out the structure of a module.
https://www.labkey.org/Documentation/wiki-page.view?name=moduleDirectoryStructures

Questions

  1. in the Look and feel settings page I choose "myModule.welcome". Did you select this by setting "Alternative site welcome page" to "/myModule/welcome.view"?
  2. What was the other relative URL you tried?

Thanks,
Chet

chetc (LabKey Support)2021-04-13 15:42Jon (LabKey DevOps)2021-04-19 23:54Custom Postgres Method in Labkey QueryCustom Postgres Method in Labkey Query MARKDOWNClosed     LabKey Support Forum

Hello,

Unfortunately, this is still unsupported. Similar to the post you linked, the postgres methods that we do support are documented https://www.labkey.org/wiki/home/Documentation/page.view?name=labkeySql. We have definitely added to the methods we support since that post was created. If you haven't already you should take a look at that document, there maybe another method you could use.

Thanks,
Chet

chetc (LabKey Support)2021-04-14 07:06Jon (LabKey DevOps)2021-04-19 23:54Custom Postgres Method in Labkey QueryCustom Postgres Method in Labkey Query MARKDOWNClosed     LabKey Support Forum

Hello,

My apologies, I stated that this was not possible. That is not true, there is a way to create and enable custom database functions. It's not as straightforward as writing a query in the schema browser but involves adding a pass through method in a Java module. Take a look at the link below.

https://github.com/LabKey/platform/blob/aa7e89ca1446b5e797a993bfb6ace04137557a99/api/src/org/labkey/api/query/QueryService.java#L494

Note: This must be done with caution as they become available server-wide, so they need to be safe enough to be allowed in any LabKey SQL query.

Thanks,
Chet

mohara2022-05-02 09:21mohara2022-05-02 09:21Current userCurrent user MARKDOWNActive     LabKey Support Forum

Hi Lubomir:

There are a couple of ways to get the current logged in user in a LabKey R report.

  1. There is an implicit variable "labkey.user.email" that will return the email address of any user. This and other substitutions are listed on the Help tab in the R report builder, and in the documentation here.
    --
    print(labkey.user.email)

  2. You can use the Rlabkey package which includes "labkey.whoami" that will return the display name (or user ID) if you prefer that. You can also use the substitution token "labkey.url.base" to provide the URL for you. Documentation for Rlabkey is on CRAN here.
    --
    library(Rlabkey)
    user <- labkey.whoAmI(labkey.url.base)
    print(user$id)
    print(user$displayName)

Hopefully one of these will meet your needs,

--Molly

mohara2024-06-19 11:27mohara2024-06-19 11:27Creating domain sample set using Python, how to add naming patternCreating domain sample set using Python, how to add naming pattern MARKDOWNActive     LabKey Support Forum

Hi Jack:

Your best bet here is to define the Sample Type itself using the UI, where you can set up the naming pattern, as well as all the fields needed. Then you can use the python API to populate it.

Another option, since your naming pattern looks to be just the value from a different column, would be to either change the source spreadsheet to rename it OR possibly use an import alias on the SampleID (Name) field, though I have not tried that using the python API myself.

Thanks for reaching out and hope that helps,

--Molly

mohara2024-06-20 11:18mohara2024-06-20 11:18Creating domain sample set using Python, how to add naming patternCreating domain sample set using Python, how to add naming pattern MARKDOWNActive     LabKey Support Forum

Sure, here's a bit more:
What I meant is that the naming pattern you want to use:
${tcc_sample_id}
...is just saying to use the value in the "tcc_sample_id" column of your data (source spreadsheet is how I phrased that).

However the data will be provided, that column will have to exist and have unique values to provide the unique sample naming. One solution is to rename that column in your data to be "Name" instead. If that's possible, then your samples will automatically end up with those names.

If you can't change the incoming data, another possibility is to use an import alias. Essentially, you tell the "Name" field that it should look for "tcc_sample_id" in the data and put that directly in as the sample Name.

Some relevant documentation:

Note that I have not specifically tried the alias on the Name field for a sample type being set via API, and we're not able to provide detailed developer support on this forum, but I believe it is settable there, and that's something else to try if you can't change the actual incoming data field name.

Another resource you may find helpful as you learn the various LabKey terms and options is the playlist available here:

Hope that helps,

--Molly

jack mason2024-06-20 04:03jack mason2024-06-20 04:03Creating domain sample set using Python, how to add naming patternCreating domain sample set using Python, how to add naming pattern MARKDOWNActive     LabKey Support Forum

Hi Molly,

Thank you for the response, I understand that I can only add the naming pattern through the UI.

I am not sure what you mean by source spreadsheets or import aliases, I have not used these terms in LabKey before.
Could you further explain please (with documentation links if possible)? :)

Kind Regards,

Jack

mohara2024-01-09 10:54mohara2024-01-09 10:54Creating an assay in the LabKey Server using an R scriptCreating an assay in the LabKey Server using an R script MARKDOWNActive     LabKey Support Forum

Hi Niloofar:

LabKey assay designs are a combination of several domains, and there isn't an API for creating that assay design itself. You can create the design using the UI (simplest, and covers a great many use cases) and then add runs/batches using the experiment.saveBatch API, though that also isn't as straightforward as using the UI or simply file import automation to add assay runs and data. Learn more here:

Another option if needed is to add a file-based assay design in a module, though that would likely involve more support than I can provide here. You can learn more about what's involved in an assay design in the documentation here:

I know my colleague Jason also reached out to you by email, so I'd be happy to follow up there as needed.

Thanks,
--Molly

avital2019-03-25 09:30Jon (LabKey DevOps)2019-03-26 22:45Core migration to GitCore migration to Git MARKDOWNClosed     LabKey Support Forum

Migration is complete. Our build system and test suites are running using the new folder structure.

Enlistment steps are below:

Step 0: Create stash/patch of any pending changes spanning trunk/server/api, trunk/server/internal, & trunk/server/modules/*
Step 1: Get rid of the dependencies.txt files that are generated in some of the resources/credits directories for modules that have moved. You can do this manually or by running the following gradle command
./gradlew cleanWriteDependenciesList
Step 2: do an SVN update -- This may take awhile. Quite a few files & directories have been removed from SVN (and moved to Git).
Step 3: From within trunk/server/modules clone the new github repositories

Step 4: Update trunk/settings.gradle file BuildUtils.includeModules with the highlighted paths -- This is only required if you don't use the default file.

Thanks,
Avital

chetc (LabKey Support)2020-06-01 12:57Jon (LabKey DevOps)2020-08-10 10:57Checkbox to select all columns from a table in gridviewCheckbox to select all columns from a table in gridview MARKDOWNClosed     LabKey Support Forum

Hello,

Unfortunately, this is not something that we have optimized the UI for. So there really isn't a way to bulk select columns.

Let me know if I can help you with anything else!

Thanks,
Chet

cnathe2018-09-04 09:54Jon (LabKey DevOps)2018-11-16 23:23Charts not displaying correctlyCharts not displaying correctly MARKDOWNClosed     LabKey Support Forum

Hi Bront,
I would assume, as you are, that this is a JS or CSS dependency issue. Are you getting any errors in the browser console window that might help identify which one?

Also, are you loading / listing the dependencies in a related xml file or in the JS code? If from an xml file, I believe you'll want to make sure that the following is included: <dependency path="vis/vis"/>. If from the JS code, try using the LABKEY.requiresVisualization helper as that should pull in all necessary files instead of having to list them out individually.

Thanks,
Cory

bront@kcr.uky.edu2018-09-04 10:14Jon (LabKey DevOps)2018-11-16 23:24Charts not displaying correctlyCharts not displaying correctly MARKDOWNClosed     LabKey Support Forum

Hi Cory,

I am not seeing any console errors, and I am loading dependencies via JS in a wiki page.

Is this how I should be using the requiresVisualization helper?

LABKEY.requiresScript(javaScriptFiles, function() {

LABKEY.requiresVisualization(function() {
    
    Ext4.onReady(function() {
        
    })
    
})

});

It seems to be loading the vis library (see attachment), but no changes to the charts on the page.

Thanks for your help.

bront

Nick Kerr2018-09-05 10:41Jon (LabKey DevOps)2018-11-16 23:23Charts not displaying correctlyCharts not displaying correctly MARKDOWNClosed     LabKey Support Forum

Hi Bront,

After further investigation I've opened issue #35368. In short, a css override is causing Ext.chart.Chart's to not display the contents of the chart.

Thanks,
Nick

stravsmi2023-06-27 02:12stravsmi2023-06-27 02:12Capacity of "Lists"?Capacity of "Lists"? MARKDOWNClosed     LabKey Support Forum

Thanks!

mohara2023-06-23 14:24mohara2023-06-23 14:24Capacity of "Lists"?Capacity of "Lists"? MARKDOWNActive     LabKey Support Forum

Hi, and thanks for reaching out.

You may run up against database limits (on number of columns or overall capacity) but there isn't an intrinsic limit on list size in LabKey. We have users successfully using lists with millions of rows. Depending on the reporting and querying you plan to do, of course you may run into performance issues, but that would be true of any large set of data. Lists are a flexible option for representing data that may meet your needs.

Hope that helps,

--Molly

Will Holtz2018-08-06 17:02Jon (LabKey DevOps)2018-11-16 23:24Can't declare foreign key relationship in module schemas/<schema>.xml metadataCan't declare foreign key relationship in module schemas/<schema>.xml metadata MARKDOWNClosed     LabKey Support Forum

It appears I asked this same question in a slightly different way 2 years ago..
https://www.labkey.org/9e077eeb-b2ab-1029-961c-79704b7a2169/announcements-thread.view?entityId=0e688e74-c7ba-1033-bc76-a3afb1590fd0&_docid=thread%3A0e688e74-c7ba-1033-bc76-a3afb1590fd0

And looking back at Josh's old answer has cleared this up for me yet again.

-Will

m boehmer2020-05-07 05:53m boehmer2020-05-07 05:53Cannot access admin console after upgrade to 20.3Cannot access admin console after upgrade to 20.3 MARKDOWNClosed     LabKey Support Forum

Hi Chet,

the mistake was indeed not to fully delete the labkeyWebapp directory.

Cheers,

Maik

chetc (LabKey Support)2020-05-06 15:55chetc (LabKey Support)2020-05-06 15:55Cannot access admin console after upgrade to 20.3Cannot access admin console after upgrade to 20.3 MARKDOWNActive     LabKey Support Forum

Hello,

This is likely the result of a partial upgrade, where some but not all of the binaries get upgraded. To troubleshooting this, please try the following

  1. Shut down the Tomcat service
  2. Delete your modules and labkeyWebapp directories (be sure to actually delete the entire directory instead of copy-replace )
  3. Recopy those directories from the new version you downloaded
  4. Restart the Tomcat service

https://www.labkey.org/Documentation/wiki-page.view?name=trouble&_docid=wiki%3A32d70d44-ed56-1034-b734-fe851e088836

Thanks,
Chet

Will Holtz2018-03-14 13:17Jon (LabKey DevOps)2018-11-16 23:24build fails with cannot find symbol StringUtilsbuild fails with cannot find symbol StringUtils MARKDOWNClosed     LabKey Support Forum

Hmm.. My attempt to utilize Markdown for the first time in the forum appears to have been a bust. Sorry about that and ignore those triple ticks.

-Will

Susan Hert2018-03-16 20:06Jon (LabKey DevOps)2018-11-16 23:23build fails with cannot find symbol StringUtilsbuild fails with cannot find symbol StringUtils MARKDOWNClosed     LabKey Support Forum

This was fixed with r56210 in the release17.3 branch, which changed AbstractExternalSchemaForm.java to use commons.lang3.StringUtils instead of commons.lang.StringUtils.

The problem occurred because one of the repositories we were using for getting external dependencies became unavailable, which revealed that we were using the unintended StringUtils class.

Susan

mohara2023-12-11 16:12mohara2023-12-11 16:12Build failedBuild failed MARKDOWNActive     LabKey Support Forum

Hi Bika:

I'm not sure exactly what is happening with that build, but right off, #5 on your list says you're trying to build "server-23.12.RC0/platform-23.12.RC0" which is odd. When you follow the instructions, you'll have the 'develop' branch by default, and may want to switch to the 'release23.11' branch to have the most stable released version. I'm not sure where you got what you're trying to build.

Next, it's unusual that you have your JDK in #2 listed as "jdk_x64_17.0.9_9". The specific JDK that we support and recommend would not default to that name. Did you use another vendor's JDK? The name itself doesn't matter, it just seems an odd rename if that's what you did.

From looking at your log, you may be executing the 'deployApp' task from the server subdirectory, instead of from the LABKEY_HOME location (which it looks like you named"C:\Labkey\LABKEY_HOME" ?). The instructions also include an abbreviated map of what the directory structure should look like to make sure you have cloned the necessary parts correctly.

I'm glad you've reached out, but we're not able to provide custom development support on this forum. Please contact us on our website with details of what you are hoping to accomplish with LabKey Server and why building from source might (or might not) be necessary for your goals. We offer cloud-hosted servers and personalized professional and developer support with our Premium Editions that might better suit your needs.

--Molly

mohara2023-12-14 09:37mohara2023-12-14 09:37Build failedBuild failed MARKDOWNActive     LabKey Support Forum

Hi Bika:

The build process itself hasn't changed in that time, and our documentation is up to date, so perhaps starting from scratch will be your best way forward. To build 23.11, you first need to sync everything in your enlistment to the "release23.11" branch, then run the build commands from the LABKEY_HOME location (not the server subdirectory as it looks like you tried earlier).

Once you get it built, you'll also need to start your 23.11 on a new database since you can't upgrade from 21.3 to 23.11.

--Molly

mohara2024-01-08 10:56mohara2024-01-08 10:56Build failedBuild failed MARKDOWNActive     LabKey Support Forum

Hi Bika:

I'm glad to hear the official release is working fine. I'm not exactly following why you're attaching that catalina log - that error implies some sort of encoding mismatch, which is not an error we've seen in this version (or others) so it seems a step was missed or something left over from a previous attempt was not started from scratch? We're not able to provide custom developer support on this forum, and I encourage you to contact us on our website about what you are hoping to accomplish and how we can help.

At any rate, since you can deploy and run the official version successfully, you should be all set.

Thanks,

--Molly

Bika2023-12-13 21:28Bika2023-12-13 21:28Build failedBuild failed MARKDOWNActive     LabKey Support Forum

Hi Molly:
I'm a big fan of Labkey. I have successfully built Labkey19.1 and Labkey21.3 from source. Now build Labkey23.11 in the same way fails. Has this Labkey23.11 changed significantly from them? If there are changes from that version already?

Thanks,
Bika

Bika2024-01-01 23:32Bika2024-01-01 23:56Build failedBuild failed MARKDOWNActive     LabKey Support Forum

Hi Molly,

My build has become successful. After deploying and starting Apache Tomcat 9.0 Tomcat9 I found that the modules were not unpacked successfully. Checking all the modules in catalina log, there is "2-byte UTF-8 sequence of bytes 2 Invalid" error message. See the attached file. In addition, I tested to install the official Labkey release in the same deployment environment and it works fine.

Thanks,
Bika

chetc (LabKey Support)2020-04-17 12:37Jon (LabKey DevOps)2020-05-15 09:13Bug in version 20.3.0Bug in version 20.3.0 MARKDOWNClosed     LabKey Support Forum

Hello Tomas,

Thank you for pointing this out!

We have created a bug for this issue. You can follow it at https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=40151

Best,
Chet

mohara2023-10-03 11:37mohara2023-10-03 11:37Beta version for LK 23.11Beta version for LK 23.11 MARKDOWNActive     LabKey Support Forum

Hi Emily:

We don't release beta versions prior to our major releases like 23.11, but if there are particular features or changes you are interested in previewing, you can work with your Account Manager and/or open a ticket on your Client Support Portal so that we can give you more personalized answers.

While we strongly recommend staying current with the latest release, particularly in order to be able to receive any security hotfixes if any become necessary, we understand there may be tradeoffs leading to skipping a release in some cases.

Thanks for reaching out,

--Molly

chetc (LabKey Support)2020-12-21 11:33Jon (LabKey DevOps)2021-02-05 13:22automatically defining all dataset fields with a specific number formatautomatically defining all dataset fields with a specific number format MARKDOWNClosed     LabKey Support Forum

Hello Karen,

Thank you for reaching out to us!

Unfortunately, changing the display format in bulk is not something our "Dataset Design Editor" supports. Changing the display format on the folder level is a great idea and should work.

  1. What version of LabKey are you using?
  2. What was the format string you specified on the folder level?

You can use https://www.labkey.org/Documentation/wiki-page.view?name=dateFormats as a refernce for what format strings can be used.

Thanks,
Chet

kevink2018-08-02 10:03Jon (LabKey DevOps)2018-11-16 23:23assayFileUpload: larger file from JS variableassayFileUpload: larger file from JS variable MARKDOWNClosed     LabKey Support Forum

You can use a multipart form post instead. You can create a file using the string contents:

var form = window.FormData();
form.set('fileName', 'foo.txt');
form.set('fileContent', '...');

LABKEY.Ajax.request({
    url: LABKEY.ActionURL.buildURL("assay", "assayFileUpload", null, { protocolId: assay.id }),
    form: form
});

Or you can let the user upload a file using a file input:

<form id='myform'>
  <input name='myfile' type='file'>
</form>
<button onclick='uploadMe();return false;'>Upload</button>

<script>
function uploadMe()
{
  var form = document.getElementById('myform');
  LABKEY.Ajax.request({
    url: LABKEY.ActionURL.buildURL("assay", "assayFileUpload", null, {protocolId: assay.id }),
    form: form
  });
}
</scrit>
sadanand ranbhor2023-05-09 00:06sadanand ranbhor2023-05-09 00:49Assay Data not getting fetched in APIAssay Data not getting fetched in API MARKDOWNActive     LabKey Support Forum

Please refer to the document link.It says that it is a GET method.

https://www.labkey.org/Documentation/wiki-page.view?name=remoteAPIs#assay

Nick Kerr2023-05-08 08:18Nick Kerr2023-05-08 08:18Assay Data not getting fetched in APIAssay Data not getting fetched in API MARKDOWNActive     LabKey Support Forum

Hi Sadanand,

The URL looks well formed. Try using POST instead.

Thanks,
Nick Kerr

ians2022-07-22 15:48ians2022-07-22 15:48Artifactory MigrationArtifactory Migration -- Completed MARKDOWNActive     LabKey Support Forum

This work has been completed.

The Artifactory server has been migrated to https://labkey.jfrog.io. The references for 21.11, 22.3, and 22.7 have been updated to now use this new URL. If you are not building your own standalone modules, after pulling down the latest release code there are no additional actions needed.

As stated previously if you are building your own module(s) or otherwise have references to artifactory.labkey.com, you will need to update these to labkey.jfrog.io. A simple find and replace of artifactory.labkey.com:443 and artifactory.labkey.com with labkey.jfrog.io should fully update the URL.

Our recommended post-update steps are below. As a precaution, if you are doing active React development, we recommend clearing the npm cache and all the node_modules directories prior to building. Please run these commands from the root directory of your enlistment:

npm cache clear --force   #(Optional command -- only recommended if you are doing active React development)
gradlew cleanNodeModules
gradlew deployApp

The domain artifactory.labkey.com will remain for unauthenticated reading until 8/12. Please submit a ticket to your support portal or contact your Account Manager if you have any questions.

Susan Hert2022-05-05 08:18Susan Hert2022-05-05 08:18Artifactory Configuration ChangeArtifactory Configuration Change MARKDOWNActive     LabKey Support Forum

This work has been completed. Let us know if you encounter any problems.

mohara2022-08-12 09:12mohara2022-08-12 09:12A "pipeline-filewatcher" type job with pipeline task "Imports specimen using data file" reuses existing job recordA "pipeline-filewatcher" type job with pipeline task "Imports specimen using data file" reuses existing job record MARKDOWNActive     LabKey Support Forum

Hi:
I'm transferring this to your premium support portal. Your account manager will be able to access that link and better investigate what might be happening here.
--Molly

kevink2018-03-19 17:07Jon (LabKey DevOps)2018-11-16 23:24API insertRows to add samples fails with error 'Name expression required'API insertRows to add samples fails with error 'Name expression required' MARKDOWNClosed     LabKey Support Forum

Sorry you are having issues inserting samples. Unfortunately, I haven't been able to reproduce this issue. When you go to the SampleSet details page, does the SampleSet list the Id Column(s) or the Name Expression?

olnerdybastid2018-03-20 04:19Jon (LabKey DevOps)2018-11-16 23:24API insertRows to add samples fails with error 'Name expression required'API insertRows to add samples fails with error 'Name expression required' MARKDOWNClosed     LabKey Support Forum

Thanks for having a look. Are you referring to the contents of the web part titled (by default) 'Sample Set Contents'? If so, when I add that web part I see two columns displayed, 'Name' and 'Flag' in the grid view. Looking over the available columns that are listed when I customize the grid view, I see both 'Name' and 'Id' but not 'Name Expression'. Let me know if I'm not looking in the correct place for Sample Set details.

olnerdybastid2018-04-02 07:50Jon (LabKey DevOps)2018-11-16 23:24API insertRows to add samples fails with error 'Name expression required'API insertRows to add samples fails with error 'Name expression required' MARKDOWNClosed     LabKey Support Forum

Ah, I see. I took a look at the Edit Set area of the Sample Set I'm trying to insert into ('Study Specimens') and the Name Expression field is blank. I tried specifying some different name expressions in the Edit Set interface including ${Name} and ${randomID} and then trying to to insert samples again with the same procedure as before, but with no luck. Same error message occurs--'Name expression required'.

After setting the 'Name Expression' field back to its default value (which is empty in the HIV tutorial), I tried two different things while I was messing around with this over the weekend. First, per your suggestion, I made a data frame with a single row consisting of a single column ('Name') and tried to insert that. Same error.

folder = '/Tutorials/HIV Study'
schema = 'samples'
query = 'Study Specimens'

session <- getSession(baseUrl=base, folderPath=folder)

# Make a data frame that specifies a sample name

sampleToUpload = data.frame(matrix(c('P666666'), nrow=1))
colnames(sampleToUpload)=c('Name')

# Doesn't work, returns 'HTTP request was unsuccessful. Status code = 400, Error message = Name expression required'
labkey.insertRows(baseUrl=base, folderPath=folder,schemaName=schema, queryName=query, sampleToUpload)

Secondly, I navigated to the 'Upload Specimens' page, downloaded the template workbook, and entered data for a dummy sample (see attached Excel sheet). When I paste that sheet into the 'Upload Specimens' section I can add the sample just fine. When I read it into an R data frame first and try to insert it via API however I still get the same Name Expression error:

#Using template provided from the 'Upload Specimens' page
library(gdata)

sampleToUpload = read.xls('myHIVspecimen')
# Doesn't work, returns 'HTTP request was unsuccessful. Status code = 400, Error message = Name expression required'
labkey.insertRows(baseUrl=base, folderPath=folder,schemaName=schema, queryName=query, sampleToUpload)

You mentioned that the error didn't replicate for you. Can I ask what columns you passed in the data frame when you made the insertRows call so I can make sure I'm structuring my data frame correctly?

Nick Kerr2017-06-27 12:24Will Holtz2018-01-26 09:05 Node.js build dependency RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Starting in 17.2 (specifically r51632) our build has taken a dependency on Node.js and the node package manager (npm). We recommend installing/upgrading to the latest LTS version (6.x as of this writing) and ensuring you have both node/npm available on your path. Operating system specific installations are available on their website.

We've taken this dependency in order to help us build a more rich look and feel, improve theme tooling, and in general give us access to the tools available via npm.

Note to module developers: If you already have a package.json declared at the root of your module our build currently requires certain "scripts" targets be available.

  • build
  • build-prod
  • clean
  • setup
Please respond if you have any questions or problems.

Nick

susanh+test12017-12-07 13:32Susan Hert2017-12-11 19:13 Gradle 4.3.1 upgrade RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
With r55385 in trunk, we have upgraded the version of gradle in trunk/develop from 3.4.1 to 4.3.1. Because of this, and the fact that with Gradle 4.X the default organization of output directories changed, you will probably want to do a cleanBuild after you sync SVN and pick up this change. (It's not strictly necessary as I've been switching back and forth between versions quite a lot lately without cleanBuild in between, but it will make for a less cluttered build space.)

You will notice right away that the console output is quite different with this version of Gradle. There are a lot of other new features the Gradle team has added, which you can explore yourself. One that might be of particular interest for those who don't like to type is the support of camel-case abbreviations for gradle tasks. So you can deploy the core module like so:

./gradlew :se:mo:co:dM

There are some warnings produced in the build about things we use that will be removed in Gradle 5.0. We'll work on getting those fixed with the next gradlePlugins version (Issue 32413).

As always, let us know if you encounter problems or have questions. If you get stuck and it seems like it is because of this upgrade, it is easy to switch back to the 3.4.1 version of gradle to check if that's the problem or get yourself unblocked by doing this:

./gradlew wrapper --gradle-version=3.4.1

Thanks!

Susan

rthomas@scharp.org2006-03-01 17:18Jon (LabKey DevOps)2015-04-24 15:47 Developer Question: Multiple Data Sources2006-04-01 17:18RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

I created a second DataSource in the cpas.xml file. From the log files, I can see that upon cpas initialization, the database is successfully opened.

Is it possible to use the data base classes in org.fhcrc.cpas.data.* to access the data in the new DataSource? If not, could you give me pointers on what classes will I have to either implement or write from scratch to be able to do this from within the module?

Is there any documentation on using your API?

Thanks Bob

arauch2006-01-12 15:56Jon (LabKey DevOps)2015-04-24 15:47 CPAS Architecture2007-01-01 00:00RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
This presentation describes some of the CPAS architecture fundamentals. It may help those interested in understanding the source code. A few caveats:
  • The document is an overview… it's not complete.
  • Our architecture is still changing rapidly. For example, we're moving away from templates (Groovy, Velocity) toward JSPs.
Later this year we plan to publish more documentation and hold courses for those interested in developing on CPAS.
boroko2@yahoo.com2006-07-25 19:47Jon (LabKey DevOps)2015-04-24 15:48 build error2006-08-25 00:00RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi CPAS,

I tried to build the Cpas sources using intellij IDE but got stuck with some errors
i read some previous posts but seems their error is different from mine
here i've attached the error.log file

thanks for helping ^_^

sebkieran@yahoo.com2006-07-02 18:52Jon (LabKey DevOps)2015-04-24 15:48 ant build error2006-08-02 00:00RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

i was trying to build the modules/build.xml but i got this error:

BUILD FAILED
/root/Desktop/CPAS-Source/modules/build.xml:628: The following error occurred while executing this line:
/root/Desktop/CPAS-Source/modules/build.xml:190: java.lang.IllegalStateException

can anyone tell me whats this error about?

adam2015-10-08 17:27Jon (LabKey DevOps)2015-10-09 10:10 15.2 Build and Tomcat 7.0.64 RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We recently discovered that the Tomcat team made a change in their most recent 7.x release, 7.0.64, that breaks our build of LabkeyServerBootstrapClassLoader. (They changed WebappClassLoader to implement a new interface, InstrumentableClassLoader, which hasn't been on our classpath; more details here.) Fortunately, the fix was easy and has been pushed to the release15.2 and modules15.2 branches; sync up to the latest changes there if you need to.

This is only relevant if you're building one of these branches against the very latest Tomcat release. (Trunk is not affected, since we already addressed this issue as part of our 15.3 Tomcat 8 support work.)

Thanks to Jon Richardson of University of Wisconsin for pointing out the problem at the LabKey User Conference last week.

Adam

lucifer07@gmail.com2006-07-18 21:35Jon (LabKey DevOps)2015-04-24 15:48 IntelliJ build error2006-08-18 00:00RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm currently trying to build CPAS from the source codes I downloaded from the downloads page but I get this
message when I'm trying to run pick_pg target. Any help please?


this is the error:


/root/Desktop/CPAS-Source/modules/beehive-tools.xml:136: Warning: taskdef class org.apache.beehive.controls.runtime.packaging.ControlJarTask cannot be found

trent2011-08-09 16:58Jon (LabKey DevOps)2015-04-28 22:02 Can you add an Editable Column to an EditorGridPanel where the Data Source is Read Only RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
First of all, I found this post on the sencha forums: http://www.sencha.com/forum/showthread.php?53009-Adding-removing-fields-and-columns , so I tried implementing that but if I added the call to add a column directly after creating the grid panel, it throws an error of some property being undefined - so probably something isn't properly initialized yet. That's OK - I figured I could just add a button that would add the column. That kinds of breaks the layout, which is fine, I can just make the call to set the size of the panel and that fixes it.

The problem is, the added column is not editable - even if I specify the attribute: editable: true. I think that perhaps there is some behind the scenes stuff going on that determines if a column is editable or not?

Anyway, I then had a thought that I could just create a new query which the extra column already added and then pass that in as the queryname. That's good, it gets the data displaying - but still not editable.

I also tried editing at run time. i.e. I created a query from a list (so not editable), then perform the following:

var t = grid.colModel; var v = t.config1; v.editable = true; //check to make sure console.log(grid.colModel.config1.editable);//output is true

but still no joy.

So, in summary - is there any way I can add a column to a specific data source that will be editable even if the underlying data isn't?

adam2017-06-07 21:03Jon (LabKey DevOps)2017-06-08 12:12 Required steps for those executing gradle builds on trunk RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If you've executed any LabKey gradle builds on your development machine then you need to perform some simple, but important, steps to ensure you don't end up with multiple copies of key JAR files in your <tomcat>/lib directory.

Tomcat requires all classes referenced by labkey.xml to be on its own classpath, so standard practice is to copy JDBC drivers, javax.mail.jar, bootstrap classloader JARs, etc. into <tomcat>/lib. For many years, LabKey has distributed "unversioned" copies of the JAR files it requires to provide a straightforward upgrade process.

When first released, our gradle build switched to deploying versioned copies of JAR files into <tomcat>/lib (e.g., jtds-1.3.1.jar instead of jtds.jar). Yesterday, we changed gradlePlugins to deploy unversioned files, matching our previous approach.

If you've built with gradle then you must remove the versioned files from your <tomcat>/lib directory, otherwise you'll end up with multiple copies of these JARs (which will lead to problems). Follow these steps:

  • Delete six versioned JAR files from your <tomcat>/lib directory. You can delete them manually or execute gradlew cleanTomcatLib. (Another option is to download the latest Tomcat release, install it, and update CATALINA_HOME.) These files (or similarly named ones) need to be removed:
    • ant-1.7.0.jar
    • javax.mail-1.5.5.jar
    • jtds-1.3.1.jar
    • labkeyBootstrap-17.2-SNAPSHOT.jar
    • mysql-connector-java-5.1.39.jar
    • postgresql-42.0.0.jar
  • Delete all files in your /build/staging/tomcat-lib directory.
  • Copy the unversioned JAR files into <tomcat>/lib by executing gradlew setup.
Your <tomcat>/lib directory should now contain the files below (plus many of Tomcat's own JAR files), but none of the versioned files mentioned above:
  • mail.jar
  • jtds.jar
  • labkeyBoostrap.jar
  • mysql.jar
  • postgresql.jar
Note that ant.jar is no longer copied, because we eliminated that dependency last week. See issue 30479.

Please respond if you have any questions or problems.

Adam

Trey2015-12-09 14:25Jon (LabKey DevOps)2016-03-01 14:28 IntelliJ project files RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In r41306, we converted LabKey trunk to use IntelliJ's directory-based project format. This will make it easier to manage the project and hopefully help us avoid the accidental changes that hit LabKey.ipr periodically (or at least make them easier to fix).

The impact of this will be minimal for most developers. Once you sync to this revision, you just need to re-create the workspace file and open the new project.
-Close project
-Copy <labkey_home>/server/.idea/workspace.template.xml to <labkey_home>/server/.idea/workspace.xml
-Open new project by selecting <labkey_home>/server

If you have customized your workspace somehow, you might want to convert those setting to the new project.
-Delete <labkey_home/server/.idea if it exists
-Open project using LabKey.ipr (may need to fetch r41305 to restore this file)
-File | Save as Directory-Based Format
-Close project
-Delete everything in <labkey_home>/.idea except for workspace.xml
-SVN update
-Open new project by selecting <labkey_home>/server

We will leave the old project files in place for a week to ease the transition. The ipr and the iws template will be removed after that.

References:
https://www.jetbrains.com/idea/help/project.html#ProjectFiles
https://www.jetbrains.com/idea/help/converting-projects-into-directory-based-format.html
https://www.labkey.org/wiki/home/Documentation/page.view?name=build#intellij

kimsm@cshs.org2006-01-12 15:23Jon (LabKey DevOps)2015-04-24 15:47 CPAS development2006-02-01 00:00RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I don't know if this is the appropriate place to post this question, but here goes: what type of java framework is the CPAS team using to code CPAS. A couple of us here at Cedars Sinai were thinking about developing some MS2 modules to plug into CPAS, but after we took a look at the source code, we weren't sure what the CPAS team uses to develop this application. Our main confusion is with the .jpf files. Is this the JAVA Plugin Framework or JAVA PageFlow?

Very curious.

S.

boroko2@yahoo.com2006-06-15 00:10Jon (LabKey DevOps)2015-04-24 15:47 Need help on deploying CPAS into IDE for development2006-07-15 00:00RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

im currently downloaded the CPAS source file and i have a project to work on MyEclipse Enterprise Edition. I've used it before to deploy simple application but i dont know how to get started with deploying CPAS into Eclipse as it seems complicated.

it would be great if someone can help me here.

trent2011-07-18 16:27Jon (LabKey DevOps)2015-04-28 22:02 Java Module Help RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Wondering if someone can point me in the right direction re: java modules?

So anyway, I've seen the Demo module, but I think it would be more beneficial for me to create my own to learn how everything ties in.

So anyway, I run the create_module ant script, give it a name of helloworld. Point it to the path of <labkey_src_root>servermoduleshelloworld

Just so its in the same directory as all the other modules, and so that I don't need to worry about more VM parameters, passing an external directory. Once I've got it working, i'll be more confident to do that.

At this stage, I have made no changes to the module, try running and building and go to Admin -> Manage Project -> Folder Settings. On the right, you can see a list of the available modules, but I see no presence of the one I have just created.

Back in intelliJ I notice the classes for said module, have a red circle with a line through them, like the no smoking graphic. I found the key for icons for IntelliJ - http://www.jetbrains.com/idea/webhelp/symbols.html - that this means "Java Class located out of the source root" so thought perhaps this is affecting it being included as a module.

So I saw in the File Menu the New Module… item, where you can import an existing module (which I guess is what you are talking about in the documentation when you mention about importing modules from an external directory). So I clicked that -> import existing module, pointed it to the .iml file and followed the steps. Now the red circle with line is gone.

I build again and run and go to Admin -> Manage Project -> Folder Settings. But, still see no presence of the module I have just created.

Am I doing something wrong or missing any steps? After running the create_module ant script, are there some other configs that need doing before the module appears in LabKey? Or is it because the generated module is too basic to be included as a module.

adam2014-11-22 11:48Jon (LabKey DevOps)2015-05-20 15:19 Recent Java Client API Changes RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Developers using the Java client API should be aware that we've made some significant changes to this library. Earlier this month, we migrated the underlying HTTP library it uses from Apache Commons HttpClient 3.1 to Apache HttpComponents HttpClient 4.3.5. The 4.x project was started (10 years ago) to replace 3.x, which is now "end of life" and hasn't seen any security, reliability, or feature updates since 2007. https://hc.apache.org/httpclient-legacy/index.html

The conversion was complicated by the fact that 4.x was a complete rewrite, introducing new concepts, usage patterns, and class hierarchy. We made every effort to hide these changes from mainstream users of our Java client API. However, a few of our public and protected methods exposed HttpClient 3.x classes that have been removed (HttpMethod, HttpConnectionManager, and the old HttpClient), making 100% compatibility impossible. We encourage early testing of this new version, especially if you've extended our classes (e.g., implemented your own Commands). Please report any issues you find with the new library.

We will officially release the new client library alongside LabKey Server 15.1, but the changes can be tested today by building from trunk.

Adam

A. Tyrell2015-02-16 11:49Jon (LabKey DevOps)2015-02-19 13:28 "Folder" column in new and existing Queries RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
After upgrading to 14.3, we have noticed that when creating new queries, the Folder column is being added to the output once the query is saved. Our current workaround is to simply hide the column using a Customized view.

However, we have many existing queries, where this "Folder" column has been added. Is there a way to turn off or hide the Folder column globally so it is not affecting our existing queries and reports.

trent2012-03-05 14:47Jon (LabKey DevOps)2015-04-28 22:03 Licensing Requirement for Using ExtJS RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, Just after feedback about what the actual requirement is, or what others have done.

ExtJS says: "the most important is that you must provide the source code of your application to your users so they can be free to modify your application for their own needs."

In this context, I am unsure if application is referring to the wider labkey application, or how we've applied the components available.

If that latter, I interpret as somehow feeding back to people using your (our) application. In this case, the usage is in a file based module, and I would presume the best thing to do would be create a project for users (or add a link in the module itself), with the option to download the zipped-up module, so that they can easily find all source. Even though the source can easily be viewed, but I think the intent is to make the source code easily available for download.

If it's the former, since its labkey software making the library available, perhaps this is all we have to do. My boss thinks its more about feeding back anything we do back to labkey, and not specifically making it available to our users?

Just want to make sure we are correctly satisfying the licensing requirements.

Thoughts?

jeckels2014-10-21 16:12jeckels2014-10-21 16:13 Subversion 1.8 RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
As you may know, Fred Hutchinson Cancer Research Center, which hosts the SVN repository for LabKey Server, recently upgraded its server to the latest release and to new hardware. To take full advantage of the changes, you'll want to make sure your client install of SVN is updated as well. We've seen significant improvements in the latency of many common SVN operations, especially around Annotate and History requests.

Here are recommended steps for Windows using TortoiseSVN. Other platforms would be similar:

Make sure you are running with the latest IntelliJ (13.1.5)

Install the latest version of TortoiseSVN (1.8.10). When you install, be sure to mark that you would like to install the command line tools as well.

Cygwin users: Cygwin makes svn available as well via the /usr/bin directory. Be sure that IntelliJ, Tortoise, and command line tools are all using the same SVN install, so your PATH to have it find the Tortoise executable before searching cygwin. Something like "...;C:Program FilesTortoiseSVNbin;C:cygwinbin;...".

After everything is properly installed, run "svn upgrade" at the root of your SVN enlistments. If you have the proteomics binaries checked out into external/windows, run the command in each of the subdirectories as well.

In IntelliJ, be sure that IntelliJ is confugured to use the svn command line client, via File->Settings->Version Control->Subversion.

For more details, see http://blog.jetbrains.com/idea/2013/12/subversion-1-8-and-intellij-idea-13/

You should see much snappier performance when working the SVN server.

Thanks, Josh

adam2014-10-01 18:53avital2014-10-02 13:20 Recent Build Changes RADEOXClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In August, we made some significant performance improvements to the LabKey Server build. The standard build (invoked from the command line via ant build) now skips several time-consuming steps that aren't usually needed on development machines, including:
  • Minimizing and gzipping browser-retrieved resources (e.g., JavaScript libraries, stylesheets)
  • Copying all webapp resources to staging and deploy directories
  • Producing JavaScript and Java documentation from comments in the source
  • Targeting all popular browsers when compiling GWT applications and optimizing the generated code
These changes mean a much faster build for developers, but also mean the resulting artifacts are not suitable for production deployment. If you build and deploy your own LabKey Server distribution you must use one of the "dist" targets or the new "production" target (ant production); development builds will no longer run in production mode.

See the Build LabKey section of the Set up a Development Machine page for more details.

Adam

adam2007-01-03 16:00adam2007-01-03 16:00<3cd0ae21-d8dc-1028-b3b2-79704b7afcaa>Deploying CPAS2006-07-08 00:00RADEOXClosed     LabKey Support Forum 
Leo Dashevskiy2017-09-01 12:40Leo Dashevskiy2017-09-01 12:40unicode constants in queriesunicode constants in queries RADEOXClosed     LabKey Support Forum
Took the liberty…
adam2017-08-12 18:12Jon (LabKey DevOps)2018-11-16 23:24unicode constants in queriesunicode constants in queries RADEOXClosed     LabKey Support Forum
Have you tried the chr() function? For example:

replace(myField, '/', chr(8203)) AS myNewField

Adam

Will Holtz2017-08-12 20:51Jon (LabKey DevOps)2018-11-16 23:24unicode constants in queriesunicode constants in queries RADEOXClosed     LabKey Support Forum
For some reason, I thought chr() was limited to ASCII, but you are correct.

thanks! -Will

adam2015-08-26 07:51Jon (LabKey DevOps)2018-11-16 23:23The rules around what gets replaced and what gets added when reuploading a folder structureThe rules around what gets replaced and what gets added when reuploading a folder structure RADEOXClosed     LabKey Support Forum
You should consider building one or more modules to manage your standard queries, reports, views, webparts, etc. With modules, you can develop your resources under source code control and then deploy standard versions to multiple servers. Here's a starting point: https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleDirectoryStructures

We don't have a formal API for exporting/importing folders. That would be a nice addition… and wouldn't be difficult. You might be able to automate exports by posting directly to the folderManagement action and automate imports using the pipeline, but this can be tricky and fragile. We've also considered generalizing the "study reload" feature to folders, to provide an option for (say) nightly auto-reloading from a folder archive. One other existing option that may be relevant: at the point you create a new folder in the UI you can specify a "template folder" and select the objects to copy from that template.

As for the replacement rules, here are the guiding principles:

  1. Existing objects in the folder are left alone unless there's a replacement in the archive.
  2. Individual objects are replaced if they have a canonical name… and an object with the same name is present in both archive and folder. For example, query names, list names, and dataset ids are canonical names, so these objects get replaced if names match. A new object (name not present in the folder) simply gets inserted.
  3. We take a "best effort" approach to importing. For example, if an archive refers to a folder or user that doesn't exist in the target system, the import process will do its best to succeed by resolving to the current folder or ignoring unknown users.
As you've seen, renaming a query (changing its canonical name) via folder import isn't possible under these rules. Since the name identifies the query there's no way to detect a rename. Webparts, on the other hand, are replaced as a group because they don't have individual names; the assumption is that the archive represents the full list of webparts.

I hope this helps...

Adam

alx dobre2015-08-26 08:06Jon (LabKey DevOps)2018-11-16 23:23The rules around what gets replaced and what gets added when reuploading a folder structureThe rules around what gets replaced and what gets added when reuploading a folder structure RADEOXClosed     LabKey Support Forum
Thank you for the detailed response Adam. Much appreciated :)

I have been looking at custom modules to see if they can be used to do folder configuration. Indeed we are already using a custom module and it's under source control and automated build + deploy.

Where I ran aground with using modules was when I realised that there isn't a way to specify multiple folders inside a custom module. It seems to me a custom module just gets added to a folder via the folder type, it does not specify a multiple folder structure. Given that we have a lot of folders it would not make sense for us to do a custom module for each individual folder.

Please let me know if I am missing something cause if there is actually a way to do folders in a custom module we may well go that route.

adam2010-03-29 10:00Jon (LabKey DevOps)2018-11-16 23:23sync data between development and test servers?sync data between development and test servers? RADEOXClosed     LabKey Support Forum
Dumping and restoring the entire labkey database (i.e., all labkey schemas) will generally work best. Several production installations of LabKey use this method to snapshot their primary database and move it to their test and staging servers. Just be aware that ALL settings, users, and permissions will be copied with the database. In the case of moving a production database to a dev or test server, you'll probably want to make modifications, such as:
  • De-activate most users (to prevent them from getting email notifications from the clone, e.g.)
  • Change the color scheme and header name (to make it more obvious which server you're using)
  • Change base server URL and exception reporting settings (on a dev machine)
  • Look at the SSL and authentication settings
If you're going to do this regularly, I suggest writing a SQL script that automatically performs these changes.

Restoring individual tables will not work very well, since container ids, user ids, and other foreign keys will differ between servers.

Ben Bimber2010-03-29 12:17Jon (LabKey DevOps)2018-11-16 23:24sync data between development and test servers?sync data between development and test servers? RADEOXClosed     LabKey Support Forum
mark - i thought you weren't going to be working this week.

do you guys have any existing SQL scripts I could take and modify for this purpose? it's probably a smart thing for us to have something like this.

Brian Connolly2010-03-29 15:33Jon (LabKey DevOps)2018-11-16 23:24sync data between development and test servers?sync data between development and test servers? RADEOXClosed     LabKey Support Forum
Ben - We do have an existing script for handing most of the tasks outlined by Adam. I will send it to you via email.
trent2011-08-24 17:27trent2012-04-22 22:42Specifying PK On Query with a JoinSpecifying PK On Query with a Join RADEOXClosed     LabKey Support Forum
Awesome, That did the trick!

Thanks!

adam2016-09-17 07:36Jon (LabKey DevOps)2018-11-16 23:24Server not startingServer not starting RADEOXClosed     LabKey Support Forum
The exception clearly states the problem: "This server does not appear to be compiled for production mode". You are attempting to run in production mode with a server compiled in dev mode. You either need to start this webapp in dev mode (-Ddevmode=true) or compile a production build. See the Creating Production Builds page.

Also, I strongly suggest following all the recommendations on the Supported Technologies page. This shows the versions of all dependencies that we have tested thoroughly for compatibility. In particular, recently released Tomcat 8.0.37 introduced a change that causes our build to fail. At this point, we have addressed the problem only on the release16.2 branch.

Adam

balter2016-09-17 09:12Jon (LabKey DevOps)2018-11-16 23:23Server not startingServer not starting RADEOXClosed     LabKey Support Forum
Hi Adam,

I have two configurations under the run configurations. LabKey_Dev has devmode set to true. LabKey_Production has devmode set to false. I thought that compiling with the debug button would automatically compile in development mode.

I just noticed the dropdown menu to the left of the compile button to select which configuration to compile! Set to my development configuration, it builds!

Fortunately, I have updated to 16.2 ;)

Thanks!

Ariel

adam2016-09-17 12:36Jon (LabKey DevOps)2018-11-16 23:24Server not startingServer not starting RADEOXClosed     LabKey Support Forum
Glad to hear everything is working!

Just to clarify, we've been discussing three different, largely independent concepts:

  1. Development vs. production build. The ant task you choose (ant build vs. ant production) solely determines the kind of build you produce. IntelliJ knows nothing about compiling development vs. production builds.
  2. Development vs. production mode. Running a build in development mode enables dynamic re-compilation of JSP files, loading various resources from the source location, enhanced logging, and other conveniences for developers. Choosing an IntelliJ run configuration ("LabKey Development" or "LabKey Production") is one way to pick this mode.
  3. IntelliJ Run vs. Debug option. These buttons run the current build using the currently selected run configuration, and determine whether IntelliJ debugging is enabled or not.
These three are independent of each other, except that you must have a production build in order to run in production mode.

Adam

adam2012-02-22 14:41Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
I took a look at your patch. A couple minor issues:
  1. Your editor/IDE seems to be replacing spaces with tabs and reformatting line lengths, etc. It would be much easier if you could turn off this reformatting.
  2. There is a stray "e.printStackTrace();" in there… I'm assuming you didn't mean to include that.
  3. The commented out statement (searchCtls.setReturningAttributes(returnedAtts)) should be removed or re-enabled (or put under a run-time switch, if necessary).
  4. We will probably not bother with the pg.properties and labkey.xml changes; we'll document the new settings and anyone who needs this functionality can easily add the properties directly to their labkey.xml.
More substantial issues:
  1. Your patch includes a hard-coded, Rochester-specific constant in the code: "DC=urmc-sh,DC=rochester,DC=edu". Committing to the standard code base will require generalizing this, perhaps as another setting in labkey.xml.
  2. The patch would be smaller and the logic more straightforward if you checked for the presence of the special settings before attempting to authenticate. If the settings exist, use the search account to look up the user's principal; if the settings doesn't exist, just use the email that was typed in.
I've attached a revised patch of just the key file, removing the comments, tabs, and the reformatting (to focus on the important changes), but not addressing the other issues I mentioned. I'd like to hear your feedback on the suggestions and then we can decide how to proceed.

Adam

michael_stover@urmc.rochester.edu2012-02-24 07:18Jon (LabKey DevOps)2018-11-16 23:23Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
Issues 1-4 I have no opinion on - it's your code at that point, do what you want with it.

5. is obviously an oversight by me. Putting it into labkey.xml works fine by me 6. This is also fine by me.

Andy Straw2012-03-09 07:38Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
I'm taking over the work on this from Michael Stover. I'm new to LabKey, so please be patient with me. Thanks.

Some of the code for our modification seems like it doesn't need to be run every time someone attempts to authenticate. In particular, the code that does the JNDI lookup of the username, password, and searchBase that are used to search LDAP - we realy only need to execute this code once. Would it make sense to do that in activate()? I'm not familiar with when that method is called or what it's for, but it looks like it might be the right place to do that.

Please advise. Thanks.

adam2012-03-09 13:57Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
Welcome aboard! We promise to go easy on you :)

activate() would be a reasonable place to do this, as would the provider or manager constructor, since the labkey.xml settings won't change under you (if the file changes, Tomcat will restart the webapp).

However, I wouldn't actually worry about this at all… JNDI is called constantly and I'm sure these values are cached in memory.

Adam

Andy Straw2012-03-13 06:29Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
Here is an updated patch for LdapAuthenticationManager.java. I believe I've addressed all you concerns and suggestions, which resulted in some minor re-factoring. I have also added more error checking and logging which I think will make it significantly easier to diagnose problems that might occur - particularly related to configuration settings. I believe I have tested just about every path.

Please review this, and let me know if any further changes are necessary, of if you need any more info. If it looks okay, we'd like to get it into the 12.1 release, if that's possible.

Thanks.

Andy

adam2012-03-13 17:33Jon (LabKey DevOps)2018-11-16 23:23Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
Thanks, Andy. I'll need a bit of time to review it in detail, but on first glance the patch looks very good. Will let you know if I see anything major, but I expect we'll be able to get this into 12.1.

One question that just dawned on me: is there a reason why the new properties must reside in the labkey.xml file? The other LDAP properties are stored in the database and accessed via the admin UI… it seems odd to have these in two places.

Thanks, Adam

Andy Straw2012-03-14 05:51Jon (LabKey DevOps)2018-11-16 23:23Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
I wasn't involved in the original design of this solution, so I don't know if there was a conscious decision to have these new properties in labkey.xml versus elsewhere or not.

Michael: If you're reading this, can you comment?

Obviously, there would be more work to update the LDAP configuration UI to support these additional properties. The UI would be slightly more complicated because there would be two "modes" of data entry: 1) Current mode, where you enter:

  • servers
  • domain
  • template
  • SASL?
2) New mode, where you enter:
  • servers
  • domain
  • ldapSearch username
  • ldapSearch password
  • ldapSearch searchBase
  • SASL?
Note that in the new mode, the "template" property is NOT used.

Being new to LabKey, I don't know how much work it would be to update the UI like this. Looks like it would require additional data members on the LdapController.Config class, additional form elements in the corresponding configure.jsp, and some way to show/hide the form elements appropriate for the chosen mode, and some way to choose the mode. Also, LdapAuthenticationManager.java would need updating, but that would be pretty straightforward - might simplify that class a bit.

Some alternatives for the dealing with the different modes in the UI:

  • The form shows all properties for both modes. Documentation (or text on the page) tells users which fields are required for which mode. We infer the mode by seeing if any of ldapSearch fields are filled in. Simple to implement, but probably the most confusing UI for users.
  • Change the template from a text field to a drop-down list with three choices: ${uid}, ${email}, ${emailSearch}. The choice in this drop-down determines the mode (first two are current mode, last one is new mode), as well as driving which form elements are shown/hidden. This requires some JavaScript to dynamically show/hide form elements. It also means the value for template is constrained to the values in the drop-down list, not whatever the user wants to enter - not sure if that's okay.
Let me know what you all think about this. Thanks.

Andy

Andy Straw2012-03-14 07:51Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
One more thought/question on changing the LDAP configuration UI:

Do you want to expose the "new mode" to the general user population, or would it be better to keep this as an undocumented (or less-well-documented) feature, and not clutter the current UI with it? I have the impression that this new mode is needed only by us at the U of R. Using environment values set in labkey.xml means the new mode is not exposed through the UI, and makes the impact of the change smaller: no change to Config class, no change to configure.jsp, perhaps no change to documentation. I'm also not clear on whether additional Config data members affects any database schema.

Andy

adam2012-03-14 09:22Jon (LabKey DevOps)2018-11-16 23:23Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
It's certainly not the mainstream use case, but we have heard of a couple other deployments with similar problems because email address doesn't correspond to LDAP login id. I'm not sure if your solution will address every problem deployment, but it's worth a shot. I do think it's worth integrating into the main UI, hiding the new mode behind a checkbox… it'll be easier to test, maintain, document and use.

If we get pressed for time, we could commit the current approach in 12.1 and migrate later, but updating the UI should be straightforward (even with the conditional) and the LDAP settings get stored in a property bag anyway, so that's easy.

I'll integrate your patch and look at migrating the settings. Either way, I'll need your help with testing the final solution, since I don't have an LDAP server configured this way.

Adam

Andy Straw2012-03-14 11:31Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
If you're willing to take our patch, and make the additional changes (configuration UI, Config object, etc.), I am willing to test the additional changes in our environment.

Our priority is to get the patch into 12.1, with or without the UI changes.

Thanks.

Andy

Andy Straw2012-03-20 12:29Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
Would you please provide a quick status update on this? Will it get into 12.1? And if so, with or without the UI? Do you have an estimate of when you'll have something you want me test?

Thanks.

Andy

adam2012-03-20 12:43Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
Plan is still to include it in 12.1. I'll review the patch in detail today or tomorrow, and will let you know if there are any issues. Not sure if I'll make the UI changes for 12.1, but it seems like you're okay either way. Commit will likely take place in the next couple days, so testing late this week would be ideal.

Adam

adam2012-03-26 11:43Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
I've reviewed the changes, applied the patch, tested the normal code path, tested the "search by email" code path, and committed the changes in r19655. I left the configuration parameters in labkey.xml for 12.1, but I expect to move these at some point (12.2?) to the standard LDAP configuration UI as we've discussed.

One minor question: your patch includes a commented out line "// searchCtls.setReturningAttributes(returnedAtts);" (current line #258)… should this be removed or enabled?

Please sync up and test the commit against your configuration.

Adam

Andy Straw2012-03-27 13:21Jon (LabKey DevOps)2018-11-16 23:23Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
We'll be testing this tomorrow morning (3/28) on an instance built from trunk - we confirmed that we have the updated LdapAuthenticationManager. We'll let you know how that goes, as soon as we finish that testing.

Thanks.

Andy

Andy Straw2012-03-28 08:47Jon (LabKey DevOps)2018-11-16 23:23Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
All tests passed against our configuration.

You can remove that commented-out line (#258).

Thanks.

Is there a target date for general availability of 12.1?

Andy

adam2012-03-31 18:07Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
Great, glad it's all working.

We created our 12.1 release branch yesterday, which means we're wrapping up. Key clients started deploying 12.1 on their test & staging servers several weeks ago. Based on timing of previous releases, I expect we'll be posting official installers mid April.

Adam

Andy Straw2012-04-30 08:51Jon (LabKey DevOps)2018-11-16 23:23Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
We have downloaded 12.1 and upgraded our development server to 12.1 We have configured it to use LDAP, just as we did with the patch we wrote. Authentication against LDAP works fine.

However, what we are seeing is that users who were users before the switch to LDAP authentication can log in with EITHER their old password (as it is stored in the LabKey database) OR their LDAP credentials.

This seems like a bug, because your docs state the following (from https://www.labkey.org/wiki/home/Documentation/page.view?name=configLdap ):

"LDAP Domain: Specifies the email domain that will be authenticated using LDAP. All users signing in with an email addresses from this domain will be authenticated against the LDAP server; all other email addresses will be authenticated against the logins table in the database. Leave blank to not use LDAP authentication (always use the database)."

Would you please let us know if this is a bug or not, and also suggest a way that we can force authentication to use LDAP for these users.

Thanks

Andy Straw University of Rochester

adam2012-04-30 12:58Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
This behavior is by design. Accepting multiple credentials for the same account allows non-disruptive transition from database to LDAP authentication. It's also important for site administrators (at a minimum) to have an alternate authentication means, in case the LDAP server goes down or its configuration changes. The documentation should clarify the fact that LabKey attempts to authenticate every login using all configured mechanisms.

If you want to proactively prevent LDAP users from using their database passwords you can delete the appropriate rows from core.Logins.

Adam

Andy Straw2012-05-01 07:19Jon (LabKey DevOps)2018-11-16 23:23Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
Thanks for clarifying. Yes - the documentation should be clearer about how this works.

I want to be sure I understand how core.logins (and related) tables work. Let me know if I have this right:

  • An entry in core.logins means the user can authenticate against the password stored in the labkey database. If no entry in core.logins, they would have to authenticate via LDAP (if so configured). Removing an entry in core.logins does NOT mean the user's account is gone - just their ability to authenticate using the password stored in the labkey database. So, for us to force users to authenticate against LDAP, we would remove there records in core.logins.
  • You connect a user who successfully authenticates via LDAP, to who they are according to labkey, via the name field of core.principals. Then, core.principals ties their name (email address) to their userid, which is used to tie them to core.usersdata, core.members, perhaps other tables.
Related question: If a user's email address changes, how do we deal with that, since their email address is also their user name. We don't want to create a new user (new userid, etc.), but there isn't a UI to change a user's email address, since that's also their user name. Is it simply a matter of updating their name field in core.principals? (Looks like core.usersdata.displayname defaults to email as well, but that's not necessarily their email, I believe.)

Thanks.

Andy

adam2012-05-01 14:10Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution RADEOXClosed     LabKey Support Forum
Yes, a row in core.Logins merely indicates that user can login using the saved password (or, more accurately, a password whose hash matches the saved hash). If you remove the row the user won't be able to login using database authentication (LDAP will be their only option). The user's account is unaffected.

Site admins CAN change users' email addresses / user names. See the "Change Email" button on the details page for each user.

Adam

jeckels2014-11-22 17:26Jon (LabKey DevOps)2018-11-16 23:24Recent Java Client API ChangesRecent Java Client API Changes RADEOXClosed     LabKey Support Forum
For those who aren't already grabbing source from our Subversion server (for details, please see https://www.labkey.org/wiki/home/Documentation/page.view?name=svn), I'm attaching a copy of the pre-built Java client library. It should work against both 14.3 and 15.1 servers.

Thanks, Josh

Andy Straw2015-05-14 10:14Jon (LabKey DevOps)2018-11-16 23:23Recent Java Client API ChangesRecent Java Client API Changes RADEOXClosed     LabKey Support Forum
We are finally migrating to 15.1, and have some code in a standalone client app that is affected by this change in http library. We have a List in LabKey in which one field is of type File; we manually upload a text file to this field when we insert a new record to this List. Our app that uses the LabKey client API and the http library can calculate the URL to fetch this file, and wants to read its contents.

Our code that works with LabKey 14.3 and HttpClient 3.x is the following:

GetMethod get = new GetMethod( urlString );
labkeyConnection.executeMethod( get );
String fileContents = get.getResponseBodyAsString();

where urlString is the URL as a String, labkeyConnection is a org.labkey.remoteapi.Connection, properly authenticated via username and password.

I think I figured out most of how to re-write this using the new API - except for authentication. Here is what I have so far (without error/exception handling):

CloseableHttpClient httpClient = labkeyConnection.getHttpClient( 60 );
HttpGet get = new HttpGet( urlString );
CloseableHttpResponse response = httpClient.execute( get );
HttpEntity entity = response.getEntity();
String fileContents = EntityUtils.toString( httpEntity );

When I execute this, the fileContents appears to be the login page, rather the file I want. I started looking at the docs for how to do authentication with the new HttpClient APIs here: https://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html and it seems like rather a lot of code (CredentialsProvider, AuthCache, BasicScheme, HttpClientContext, etc.), and I'm wondering why I have to re-authenticate, if I'm using the CloseableHttpClient object gotten from the LabKey Connection object - to which I've already provided host, port, username and password.

Am I doing something wrong? Is there an easier/different way to do this with the new APIs?

Thanks.

Andy Straw University of Rochester

Andy Straw2015-05-14 12:29Jon (LabKey DevOps)2018-11-16 23:24Recent Java Client API ChangesRecent Java Client API Changes RADEOXClosed     LabKey Support Forum
I was able to get authentication to work, but this required another 10 lines of code to properly create the HttpClientContext that is needed as a second parameter the execute() method of CloseableHttpClient. Since the code to create the context object requires only the LabKey Connection object, it would be nice if your API somehow could do that for us. Here's the way I factored this into a helper method:

private static HttpClientContext buildHttpContext( Connection labkeyConnection ) throws MalformedURLException {
URL labkeyBaseUrl = new URL( labkeyConnection.getBaseUrl() );
HttpHost labkeyHost = new HttpHost( labkeyBaseUrl.getHost(), labkeyBaseUrl.getPort(), labkeyBaseUrl.getProtocol() );
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials( new AuthScope(labkeyHost),
new UsernamePasswordCredentials(labkeyConnection.getEmail(), labkeyConnection.getPassword()) );
AuthCache authCache = new BasicAuthCache();
authCache.put( labkeyHost, new BasicScheme());
HttpClientContext httpContext = HttpClientContext.create();
httpContext.setCredentialsProvider(credsProvider);
httpContext.setAuthCache(authCache);
return httpContext;
}

Andy

jeckels2015-05-15 10:44Jon (LabKey DevOps)2018-11-16 23:23Recent Java Client API ChangesRecent Java Client API Changes RADEOXClosed     LabKey Support Forum
Hi Andy,

I think this is due to a change in the way that HttpClient 4.x deals with "preemptive" authentication, relative to the approach in 3.x. I have an idea of a way to make this easier within the Java client API, but would like to test it with the same URL that you're hitting in this case. From your code, I'm assuming that it's not an "API" URL, which means that it won't challenge the client for Basic Auth credentials, resulting in sending back the login page.

Can you share the controller/action from your URL?

Thanks, Josh

Andy Straw2015-05-15 11:04Jon (LabKey DevOps)2018-11-16 23:24Recent Java Client API ChangesRecent Java Client API Changes RADEOXClosed     LabKey Support Forum
Here is an example URL. The URL is generated by LabKey as the value of a hidden column in the list, and corresponds to the download link for the File property. For example, the File property is called "TemplateFile", and the URL ends up in a property called "_labkeyurl_TemplateFile":

/list/MyContainerPathGoesHere/download.view?entityId=a8cd2f13-a660-1032-96ac-a38b824db812&name=GateTemplate.txt

I have run into another problem with this. The code above works from an external program where I can specify the username and password when I run the app. But it doesn't work when part of a transformation script where I'm authenticating by grabbing the JSESSIONID cookie name and value off the script command line, and calling addCookie() on the Connection. Calling addCookie() works if I'm using the Connection with the Labkey client API (authenticates fine), but does not work with the CloseableHttpClient object I get from that Connection. Just as when using username/password, that Client object does not have any of the authentication info that I gave the Connection, and so I have to (essentially) re-authenticate separately with the Client. So far, I haven't figure out how to do that using a cookie. As I said before: in 14.3, I didn't have to jump through any of these hoops. The executeMethod() method on Connection did all the hard work for me; but that method is no longer in the Connection API as of 15.1.

Thanks.

Andy

Andy Straw2015-05-15 11:29Jon (LabKey DevOps)2018-11-16 23:24Recent Java Client API ChangesRecent Java Client API Changes RADEOXClosed     LabKey Support Forum
Looking at the source for Connection, I see code similar to my buildHttpContext() method above in your executeRequest() method (works with username/password), and I see code similar to what I need to do for using the Cookie in addCookie(). But I have no way to use/reuse your code. Could you make something like your executeRequest() method public? That might be just what I need - though not sure about the Cookie case (i.e., case where getEmail() is null in executeRequest()).

Andy

jeckels2015-05-20 09:19Jon (LabKey DevOps)2018-11-16 23:23Recent Java Client API ChangesRecent Java Client API Changes RADEOXClosed     LabKey Support Forum
Hi Andy,

With revision 38038 in the trunk, I made a change that enables this usage pattern:

Connection cn = Connection("http://localhost/labkey", "jeckels@labkey.com", "PASSWORD"); CloseableHttpClient httpClient = cn.ensureAuthenticated(); HttpGet get = new HttpGet(url); CloseableHttpResponse response = httpClient.execute(get); HttpEntity entity = response.getEntity(); String fileContents = EntityUtils.toString(entity);

I think this fits what you've requested, but please let me know.

Thanks, Josh

Andy Straw2015-05-20 09:32Jon (LabKey DevOps)2018-11-16 23:24Recent Java Client API ChangesRecent Java Client API Changes RADEOXClosed     LabKey Support Forum
Thanks. Will it also work if the LabKey Connection is authenticated using a session cookie, like so?

// Create connection and authenticate with cookie, instead of username + password.
Connection cn = Connection("http://localhost/labkey");
cn.addCookie( "JSESSIONID", sessionId, "localhost", "/labkey/", null, false );
// Code is same from here.
CloseableHttpClient httpClient = cn.ensureAuthenticated();
HttpGet get = new HttpGet(url);
CloseableHttpResponse response = httpClient.execute(get);
HttpEntity entity = response.getEntity();
String fileContents = EntityUtils.toString(entity);
jeckels2015-05-20 10:08Jon (LabKey DevOps)2018-11-16 23:23Recent Java Client API ChangesRecent Java Client API Changes RADEOXClosed     LabKey Support Forum
I haven't tested, but I expect that will work. The primary change is to make all of the HttpClient instances share the same CookieStore, so calling addCookie() should do the trick.

Thanks, Josh

adam2015-11-27 15:16adam2015-11-27 15:16PATH variable update for trunk/16.1 development buildsPATH variable update for trunk/16.1 development builds RADEOXClosed     LabKey Support Forum
15.3 branch commit r41156 should fix the underlying problem for 15.3 and beyond. For example, if you include the trunk version of ant on your PATH then builds of the 15.3 branch should now succeed. (Those building pre-15.3 may still need to change their system PATH.) More details at Issue 24986: Each branch should use its own version of labkeytasks.jar

Adam

trent2011-07-10 21:38trent2011-09-27 22:53Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
Ok.. i've come up with a somewhat hacky solution.

I figured out how to add function support into the datasource (from the Method class). SO I added in support for some basic string, numeric, and date function that I find most useful/common.

One of which is the to_char function. So, create a new query from the data source, adding a new field:

to_char(participant_id) participant_id_hidden

that returns the value without the '.0' at the end of it. Customize the view of this query to not display the new field and save as the default. In the metadata for the original field (participant_id), specify a format mask of # and in the URL (this also remove the '.0' from the display), and so that I can link to the participant view from this query (since the original format with .0 results in a no data found), have the URL like:

/labkey/study/externalData/test1/participant.view?participantId=${participant_id_hidden}

adam2011-06-21 07:22Jon (LabKey DevOps)2018-11-16 23:23Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
No apologies necessary… writing a new dialect is an ambitious undertaking. (When I suggested earlier that writing one "wouldn't be hard" I meant for someone very familiar with LabKey internals.)

I haven't run your code since I don't have Oracle running locally, but it looks like LabKey is attempting to read result set meta data after the underlying statement is closed; apparently the other four databases we support allow this. This comes up because LabKey caches result sets in many cases to free up JDBC connections. The solution is likely invasive… we probably need to cache the meta data as well in CachedResultSetImpl for Oracle.

As for the other things you mentioned in your message and code:

  • You should probably try to get / parse the actual product version instead of using the driver version. JDBC drivers are typically backward (and often forward) compatible with different server versions; the dialect is most concerned with actual server version, since server version (not driver version) determines SQL syntax, capabilities supported, reserved words, etc.
  • I believe the database name is used only for logging and error reporting… if a LabKey Server is connecting to many databases it's helpful to point admins to the problematic one. But not a critical thing right now.
  • Oracle doesn't support LIMIT or OFFSET? That's terrible...
Adam
trent2011-06-21 15:54Jon (LabKey DevOps)2018-11-16 23:24Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
"ambitious undertaking"

haha, yeah. been getting there slowly!

"The solution is likely invasive… we probably need to cache the meta data as well in CachedResultSetImpl for Oracle."

Oh right. Sounds a bit over my head. See if I can figure out what's going on.

"no LIMIT or OFFSET"

Yeah, I didn't even know such clauses existed until I used LabKey.

marki2011-06-21 16:58Jon (LabKey DevOps)2018-11-16 23:24Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
This seems to be the accepted way to do LIMIT & OFFSET:

http://stackoverflow.com/questions/241622/paging-with-oracle

It might be possible to use this technique in your dialect limitRows implementation.

kevink2011-06-21 17:16Jon (LabKey DevOps)2018-11-16 23:24Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
We do something similar in MicrosoftSqlServer2005Dialect._limitRows() so it should be pretty easy to adapt for Oracle.
adam2011-06-26 13:00Jon (LabKey DevOps)2018-11-16 23:23Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
I modified one of our existing ResultSetMetaData implementations to cache a ResultSet's meta data and added a shouldCacheMetaData() method to SqlDialect to cause it to be used. Default setting is false, but your Oracle dialect implementation should set it to true… and let's see what happens.

Adam

trent2011-06-26 23:15Jon (LabKey DevOps)2018-11-16 23:23Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
Awesome stuff! Its working. :-) Thank you muchly.

So aside from this needing more testing and addressing the above mentioned issues, what's the best way forward? It's probably impractical to be building this from source (i.e. adding the changes needed), in a prod scenario. I was reading the doco about finding a comitter and submitting a patch to them or something.I suppose other things to think about are version support. i.e. Im only having tested this with 11gR2, so I guess it would be best to limit to that release to start with.... (that is assuming this change would be wanted to be added into labkey)

adam2011-06-27 01:31Jon (LabKey DevOps)2018-11-16 23:24Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
This would be a great addition to LabKey, Trent. I can work with you to get it reviewed, added to the code base, and available for release in 11.2 (given the core changes necessary, it's not practical to integrate with previous versions).

I'll email you separately to work through the details.

Adam

trent2011-07-05 23:02Jon (LabKey DevOps)2018-11-16 23:24Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
Is there anyway I can enforce the number fields for the defined tables to be Integers?

I'm not certain on other databases implementation, but generally I use a NUMBER field on Oracle which is being generated in labkey as a Float. (which makes sense, as a NUMBER field can be a float in oracle - but I know this particular field will never be a float)..

Im thinking that the answer is in the metadata? But am having trouble getting it to work.

I have seen the xml doco: https://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/elements/datatype.html

which says: The name of the SQL datatype of this column as would be specified in a CREATE TABLE statement.

but when I try specifying a different datatype it doesn't seem to make any difference. Possibly my syntax is way off?

<ns:tables xmlns:ns="http://labkey.org/data/xml">  <ns:table tableName="specimen" tableDbType="NOT_IN_DB">    <ns:columns>      <ns:column columnName="SPECIMEN_ID">        <ns:datatype>INT</ns:datatype>        <ns:description>dfgdgfgdfgdfgd</ns:description>      </ns:column>    </ns:columns>  </ns:table> </ns:tables>

Matthew Bellew2011-07-06 07:31Jon (LabKey DevOps)2018-11-16 23:23Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
When creating a table info from a physical table in the database, we first create the ColumnInfo using the metadata the database provides. In this case there are certain fields of the ColumnInfo that we will not override using the xml schema. "datatype" is one of them.

see ColumnInfo.loadFromXml() and ColumnInfo.createFromDatabaseMetaData(). Also note the "false" parameter in the call to ColumnInfo.loadFromXml() from SchemaTableInfo.loadFromXml() at line 620.

If the field can never be a float, isn't there a way to set the type in the CREATE TABLE statement to enforce that, so that LabKey will know it is really an INT column?

trent2011-07-07 16:18Jon (LabKey DevOps)2018-11-16 23:23Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
"datatype" is one of them.

Oh, right. No worries.

If the field can never be a float, isn't there a way to set the type in the CREATE TABLE statement to enforce that, so that LabKey will know it is really an INT column?

Well, the field can be float, in that it's theoretically possible. I'm saying that it would never be the case. In previous roles, I have always specified number columns as 'number' (data type) - whether they be floats or int's. I imagine its a common practice. I don't think its exactly a possibility for me to go changing the datatypes of tables.

OK. I think I saw somewhere that it loads in tables and views. So im going to try creating a view, casting number fields to int's and see if that solves the problem. (just gotta wait for that priv before i can test)

trent2011-07-07 16:53Jon (LabKey DevOps)2018-11-16 23:24Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
Ok. finished doing more tests.

create or replace view
v_specimens
as
select cast(specimen_id as INTEGER) specimen_id, date_Drawn, participant_id, vial_type, quantity, measurement, visit_no, location, total_count, available_count
from specimen

desc v_specimens
Name Null Type

SPECIMEN_ID NUMBER(38)
DATE_DRAWN DATE
PARTICIPANT_ID NUMBER
VIAL_TYPE CHAR(5)
QUANTITY NUMBER
MEASUREMENT CHAR(2)
VISIT_NO NUMBER
LOCATION VARCHAR2(4000)
TOTAL_COUNT NUMBER
AVAILABLE_COUNT NUMBER

Specifying the database as Integer doesn't change anything. As the rdbms still just has the data type as NUMBER, with the precision,scale specified - so more of a convenience then specifying precisions/scale yourself.

SO, still comes through as Number (Double) in LabKey.

(off-topic: would be good to have a no format [like pre or code html tags] formatting option)

Matthew Bellew2011-07-07 17:08Jon (LabKey DevOps)2018-11-16 23:24Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
If the Oracle JDBC driver is reporting INTEGER the same as it reports NUMERIC(?, 0), we may have to modify ColumnInfo.createFromDatabaseMetaData().

You can put a breakpoint there to see what the metadata is reporting.

trent2011-07-07 22:45Jon (LabKey DevOps)2018-11-16 23:24Oracle Data SourceOracle Data Source RADEOXClosed     LabKey Support Forum
SO, it just always returns as Decimal, where the type is specified.

In that function, i was attempting something like:

ResultSetMetaData md = rsCols.getMetaData(); md.getPrecision(1); md.getScale(1);

but it just returns 0 all the time =/

hmm.. im just thinking now, this may be because this function - rsCols is the column information and not the actual data. Still you (or I would) think it would work it out.

beyond that, my idea was then do:

if(dbmd.getDatabaseProductName().equalsIgnoreCase("Oracle")) {                //todo: doubles (re assign to INTEGER if no decimals.)            }

Matthew Bellew2006-06-15 09:37Jon (LabKey DevOps)2018-11-16 23:24Need help on deploying CPAS into IDE for developmentNeed help on deploying CPAS into IDE for development2006-07-15 00:00RADEOXClosed     LabKey Support Forum
Unfortunately, it is hard for us to give you much guidance, as none of the core CPAS developers use Eclipse.

I do know this. You need set up Eclipse to not try to auto-build everything. That will really mess things up. You want to use the external ant build files (<CPAS>/modules/build.xml).

You may want to try to copy the cpas tree under your eclipse workspace directory. We have the eclipse project files (.project .classpath .externalToolBuilders/ant_build.launch) checked into our source tree. They should be more or less correct, but are not used actively.

It would be a great contribution if we had a good help topic on this subject. Any takers?

Matthew Bellew2006-06-15 09:39Jon (LabKey DevOps)2018-11-16 23:24Need help on deploying CPAS into IDE for developmentNeed help on deploying CPAS into IDE for development2006-07-15 00:00RADEOXClosed     LabKey Support Forum
I should have mentioned. We all use IntelliJ IDEA http://www.jetbrains.com/idea/. They have a free 30-day trial. That's the easiest way to get started. Then after 30-days you can decide whether to purchase that product, or help us write our Eclipse help page.
boroko2@yahoo.com2006-06-15 19:20Jon (LabKey DevOps)2018-11-16 23:24Need help on deploying CPAS into IDE for developmentNeed help on deploying CPAS into IDE for development2006-07-15 00:00RADEOXClosed     LabKey Support Forum
I've downloaded and installed IntelliJ IDEA.

But after reading the HELP documentation i still cant figure out how to deploy CPAS.

need some help on the deployment,
thanks

tamram2006-06-15 23:55Jon (LabKey DevOps)2018-11-16 23:24Need help on deploying CPAS into IDE for developmentNeed help on deploying CPAS into IDE for development2006-07-15 00:00RADEOXClosed     LabKey Support Forum
At which step in the process are you running into trouble, and what kind of error are you seeing?
boroko2@yahoo.com2006-06-16 00:18Jon (LabKey DevOps)2018-11-16 23:24Need help on deploying CPAS into IDE for developmentNeed help on deploying CPAS into IDE for development2006-07-15 00:00RADEOXClosed     LabKey Support Forum
java.lang.NoClassDefFoundError: and
Exception in thread "main"
Process finished with exit code 1
mbellew@fhcrc.org2006-06-16 11:41Jon (LabKey DevOps)2018-11-16 23:23Need help on deploying CPAS into IDE for developmentNeed help on deploying CPAS into IDE for development2006-07-15 00:00RADEOXClosed     LabKey Support Forum
Assuming everything is built and deployed correctly.

It's possible the paths in the run command are not correct. Drop down the debug list (e.g. where it ways Tomcat RUN" and hit Edit configurations. Make sure all the paths in that long VM parameters dialog look correct. In particular look for -classpath option and make sure it points to bootstrap.jar in the tomcat bin directory (on my machine -classpath "D:/tomcat-5.5.9/bin/boostrap.jar".

adam2007-01-03 16:07adam2007-01-03 16:07Need help on deploying CPAS into IDE for developmentNeed help on deploying CPAS into IDE for development2006-07-15 00:00RADEOXClosed     LabKey Support Forum 
marki2012-03-05 14:53Jon (LabKey DevOps)2018-11-16 23:24Licensing Requirement for Using ExtJSLicensing Requirement for Using ExtJS RADEOXClosed     LabKey Support Forum
It is my understanding that code does not need to be included in LabKey as long as source is freely available under an acceptable open source license somewhere.

For a file-based module making the source available in the module seems fine as long as it is not obfuscated. I would recommend putting copyright and a reference to the license in every file.

adam2016-08-13 07:48Jon (LabKey DevOps)2018-11-16 23:24Joining external and internal schemasJoining external and internal schemas RADEOXClosed     LabKey Support Forum
As Jon has indicated, LabKey doesn't support direct joining of data from different database servers; we've tried to make that clear in the documentation: https://www.labkey.org/home/Documentation/wiki-page.view?name=externalSchemas

An option worth investigating in your case: PostgreSQL supports "foreign data wrappers" for many database servers, including MySQL, https://wiki.postgresql.org/wiki/Foreign_data_wrappers I haven't ever used these, but you might be able to use the MySQL FDW to make your MySQL tables act as if there were native PostgreSQL tables. You'd then execute your joins as PostgreSQL queries.

Adam

jeckels2011-07-18 17:42Jon (LabKey DevOps)2018-11-16 23:24Java Module HelpJava Module Help RADEOXClosed     LabKey Support Forum
Hi Trent,

Your module won't automatically get built by the Ant script, even if it's in the standard module directory.

To get your module added to the server's list, you'll need to either add it to the core system build (in <LABKEY_ROOT>/server/build.xml, add it to the lists in the "build_classes_parallel" and "build_classes_sequential" targets), or directly invoke the build.xml that was included as part of your module. Either way, you should end up with a helloworld.module in <LABKEY_ROOT>/build/deploy/modules, which will make the server notice it at startup time.

Thanks, Josh

trent2011-07-18 18:34Jon (LabKey DevOps)2018-11-16 23:23Java Module HelpJava Module Help RADEOXClosed     LabKey Support Forum
Hi, Thanks.

Not really sure what you mean to do when invoking the build.xml directly? Tried right clicking and selecting Make Module 'helloworld' but I don't think that's what you mean. Or is it just one of the ant targets you can use to invoke it?

In any case, I added a new target to the main build.xml file:

<target name="helloworld">
       <antcall target="sub_build_module">
           <param name="moduleName" value="helloworld" />        </antcall>
   </target>

(Possibly this is what you meant above? Have this target and then running that target from the list of ant scripts)

And, then did you what you mentioned above. Adding the antcall to both build_classes_parallel and build_classes_sequential

<antcall target="helloworld" />

its now appearing in the list of modules.

...Now to figure out how these work :)

jeckels2011-07-19 14:32Jon (LabKey DevOps)2018-11-16 23:24Java Module HelpJava Module Help RADEOXClosed     LabKey Support Forum
Hi Trent,

Yes, that's what I meant, though I forgot to mention that you'd need to introduce the new target for helloworld as well.

You could potentially use the build.xml that's inside of your module's directory (and either run it from the command line or add it to the list of build.xml files that IntelliJ looks at), but it's probably easiest to take the approach that you did with adding a new target.

Thanks, Josh

trent2011-07-19 21:18Jon (LabKey DevOps)2018-11-16 23:24Java Module HelpJava Module Help RADEOXClosed     LabKey Support Forum
So is it the expected behaviour for schema you create in a module not to be an option in the schema browser?

i.e. the demo module creates a demo schema, but this is not accessible through schema browser.

jeckels2011-07-27 17:50Jon (LabKey DevOps)2018-11-16 23:23Java Module HelpJava Module Help RADEOXClosed     LabKey Support Forum
Hi Trent,

For security reasons, we don't automatically expose all of the schemas and tables in the underlying database. In many cases, for example, the schema won't include a container column and you don't want a user who has access to any folder on the server to be able to access it.

If you have Java code, you can choose how to expose your tables. The simplest example is in org.labkey.api.module.SimpleModule - check out the startupAfterSpringConfig() method. It exposes all of the underlying database schemas that the module declares.

Thanks, Josh

trent2011-11-21 23:07Jon (LabKey DevOps)2018-11-16 23:23Java Module HelpJava Module Help RADEOXClosed     LabKey Support Forum
Just putting this here for documentation purposes. And in case im doing it a noobs way, someone can tell me...

For a file based module, the above method won't work. You instead need to just copy the directory to the module directory. So the target name would instead be:

<target name="helloworld" >
       <copy todir="${deploy.modules.dir}/helloworld">
           <fileset dir="${basedir}/customModules/helloworld">
           </fileset>
       </copy>
   </target>

With potential include or exclude elements inside the fileset node, to filter out particular files.

slangley@scharp.org2016-03-01 14:08slangley@scharp.org2016-03-01 14:08IntelliJ project filesIntelliJ project files RADEOXClosed     LabKey Support Forum
I'm playing with the 16.1 branch now - which doesn't have the project template files anymore.

Say, which version of IntelliJ are you using at LabKey these days?

Thanks.

adam2006-07-19 08:55Jon (LabKey DevOps)2018-11-16 23:24IntelliJ build errorIntelliJ build error2006-08-18 00:00RADEOXClosed     LabKey Support Forum
That is just a warning and can be ignored. If the last message is "Ant build completed..." you should be fine.

Note that an IntelliJ ant integration bug causes the last line to report the wrong number of errors and warnings… in particular, it reports "one error" when no error actually occured. Again, this can be ignored.

sebkieran@yahoo.com2006-07-20 02:20Jon (LabKey DevOps)2018-11-16 23:24IntelliJ build errorIntelliJ build error2006-08-18 00:00RADEOXClosed     LabKey Support Forum
I tried running the build target in IntelliJ and I get 1 warning without any errors as the Ant build is completed. However, when I try to run the project, I get this error.. Any help would be much appreciated.

C:jdk1.5.0_06binjava -ea -Xmx768M -Dsun.io.useCanonCaches=false -Djava.endorsed.dirs=C:apache-tomcat-5.5.17/common/endorsed -classpath C:jdk1.5.0_06/lib/tools.jar:C:apache-tomcat-5.5.17/bin/bootstrap.jar -Dcatalina.base=C:apache-tomcat-5.5.17 -Dcatalina.home=C:apache-tomcat-5.5.17 -Djava.io.tmpdir=C:apache-tomcat-5.5.17/temp -Dgroovy.cache=false -Dgroovy.root=C:C:CPAS1.4-4355-src/modules -Ddevmode=true -Didea.launcher.port=7534 "-Didea.launcher.bin.path=C:Program FilesJetBrainsIntelliJ IDEA 5.1bin" -Dfile.encoding=windows-1252 com.intellij.rt.execution.application.AppMain org.apache.catalina.startup.Bootstrap Start java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain Exception in thread "main" Process finished with exit code 1

wnels2@uky.edu2006-07-20 06:07Jon (LabKey DevOps)2018-11-16 23:24IntelliJ build errorIntelliJ build error2006-08-18 00:00RADEOXClosed     LabKey Support Forum
I just had this error. Josh at labkey sent me this info and it worked (since the West coast might not be awake for a while I'll forward it to you):

You'll need to add another JAR to your -classpath argument. On my machine it's C:/Program Files/JetBrains/IntelliJ IDEA 5.1/lib/idea_rt.jar.

Also, if you are on Windows you need to change the ":"s separator in the class path string to ";"s.

Bill

sebkieran@yahoo.com2006-07-23 18:12Jon (LabKey DevOps)2018-11-16 23:24IntelliJ build errorIntelliJ build error2006-08-18 00:00RADEOXClosed     LabKey Support Forum
Which modules' classpath arguments in IntelliJ do I add this JAR to?
jeckels2006-07-23 21:11Jon (LabKey DevOps)2018-11-16 23:24IntelliJ build errorIntelliJ build error2006-08-18 00:00RADEOXClosed     LabKey Support Forum
It should be added to the -classpath argument in your Debug Configuration. It doesn't need to be added to any module's classpath, which are not included in the debug profile.
sebkieran@yahoo.com2006-07-23 23:57Jon (LabKey DevOps)2018-11-16 23:24IntelliJ build errorIntelliJ build error2006-08-18 00:00RADEOXClosed     LabKey Support Forum
I've managed to get things started but I've encountered another error.
adam2006-07-24 08:21Jon (LabKey DevOps)2018-11-16 23:23IntelliJ build errorIntelliJ build error2006-08-18 00:00RADEOXClosed     LabKey Support Forum
Some other service is already using port 8080. Is the CPAS instance of Tomcat running already? Do you have another web server (IIS, Apache, another instance of Tomcat) installed and running on 8080? You'll need to shut down this service before IntelliJ can start the CPAS instance of Tomcat on this port. Either that, or change the port assigned to Tomcat in server.xml; see https://cpas.fhcrc.org/Wiki/home/help/1.5/page.view?name=configTo
sebkieran@yahoo.com2006-07-25 19:18Jon (LabKey DevOps)2018-11-16 23:24IntelliJ build errorIntelliJ build error2006-08-18 00:00RADEOXClosed     LabKey Support Forum
Thanks for the help so far! =)
adam2007-01-04 09:28adam2007-01-04 09:28IntelliJ build errorIntelliJ build error2006-08-18 00:00RADEOXClosed     LabKey Support Forum 
adam2015-05-03 15:35Jon (LabKey DevOps)2018-11-16 23:24Inconsistencies when exporting/importing lists or datasets usging XML formatsInconsistencies when exporting/importing lists or datasets usging XML formats RADEOXClosed     LabKey Support Forum
Hi Eva,

Thanks so much for reporting these discrepancies and including all the details.

  • Conditional formats should be imported from list archives, but it looks like the import code has a bug. We'll fix this (and add a test case so it continues to work) for 15.2. See https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=23235
  • We have not yet added support for round-tripping default values/types and field validators through export/import. The only reason is that adding these properties will require a modest amount of design, development, and testing work, and current clients have not raised this as important for their use cases. We'd be happy to discuss options over email. (Note that the existing "defaultValue" element is not used during export/import, it's currently used only during meta data overrides.)
Thanks, Adam
eva pujadas2015-05-05 00:48Jon (LabKey DevOps)2018-11-16 23:24Inconsistencies when exporting/importing lists or datasets usging XML formatsInconsistencies when exporting/importing lists or datasets usging XML formats RADEOXClosed     LabKey Support Forum
Hi Adam,

thanks a lot for your complete and fast answer and for creating the issue, which, BTW, is already resolved.

We will discuss internally the possibility about your offer to discuss options for including round-tripping default values/types and field validators.

Best, Eva

Ben Bimber2012-04-06 17:20Jon (LabKey DevOps)2018-11-16 23:23How to use Ext.form.field.ComboBox with LABKEY.ext.Store ?How to use Ext.form.field.ComboBox with LABKEY.ext.Store ? RADEOXClosed     LabKey Support Forum
Hi Leo,

The LabKey store works essentially the same as an Ext one that it extends. The primary reason the LabKey store was created is b/c this store is able to query and save records from the LabKey server. There's a few things you should look at with this example:

1) In your post you are mixing Ext3 code (the LabKey store) with Ext4 (the combo). While Ext3 and Ext4 are similar, it's unlikely you can mix and match like this. Instead I'd suggest using the Ext3 combo. We are working on migrating our API to Ext4; however, we do not have a public release of an Ext4 LabKey store yet.

2) You need to load the store. Unless you tell it to get the records from the server, it will have 0 records. You can either add 'autoLoad: true' to the config or call load() after you create it. See my example below.

3) displayField and valueField are Ext config properties of the combo, not the store. They tell the combo which fields to display in the pick list, and which to use as the underlying value when you pick an item. These need to match a field present in the associated store, and they are case-sensitive. This looks like a custom query, so I cant say for sure what you should use as values for these.

4) Ext3 combos require a few other config options to populate correctly. It's annoying (ext4 is improved). See the extra config added to my example below.

This pattern should work for you:

   var storeSampleIds = new LABKEY.ext.Store({        schemaName: 'flow',        queryName: 'SampleIds',        autoLoad: true //required to load the store    });

new Ext.form.ComboBox({        store: storeSampleIds,        queryMode: 'local',        triggerAction: 'all',        renderTo: 'comboBoxSampleIds',        displayField: 'myField', //should be a case-sensitive match to a field's name in the query flow.SampleIds        valueField: 'myValueField' //see above    });

Let me know if you have any questions.

adam2012-05-14 08:03Jon (LabKey DevOps)2018-11-16 23:24How to add webpart for java moduleHow to add webpart for java module RADEOXClosed     LabKey Support Forum
In that case, I have to wonder if your module is getting compiled and deployed correctly. Perhaps LabKey is continuing to load an older version of your module.
  • Find the list of modules on the admin console and expand your module.
  • Does the "Module Class" match the Java class of your module? It shouldn't be org.labkey.api.module.SimpleModule, since this is a Java module.
  • Do the build time, build path, and extracted path match your expectations?
You could also add logging statements to your init() and startup() methods to rule out breakpoint issues.

Adam

wit2wit2016-10-27 03:13wit2wit2016-10-27 03:13How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
I want the actual SRC package to rebuild, similar to generate your community-bin package, but was never able to achieve needs your help.

Thanks

adam2016-08-14 08:08Jon (LabKey DevOps)2018-11-16 23:24How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
Follow the steps on the Set up a Development Machine page, in particular, the "Build and Run LabKey" section and the table of key ant targets. Once you have built the entire server via "ant build", you can build just the core module by invoking the "ant core" target. You could also try HotSwapping Java classes, if you expect to perform many develop-build-test iterations.

Adam

wit2wit2016-09-16 01:39Jon (LabKey DevOps)2018-11-16 23:24How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
I follow the instructions above to use compile with ant build(standard.xml).I used the source package is Labkey16.1-42836.12-src.how can I see the newly generated target file? Which directory?

Thanks!

jeckels2016-09-16 07:20Jon (LabKey DevOps)2018-11-16 23:24How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
If the build succeeded, the newly built core.module file will be under the ./build/deploy/modules directory.

Thanks, Josh

wit2wit2016-09-16 19:44Jon (LabKey DevOps)2018-11-16 23:23How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
I didn't find the./build/deploy/modules directory. My IDE is IntelliJ IDEA Community Edition 2016.1. Help me!

Thanks

jeckels2016-09-19 09:26Jon (LabKey DevOps)2018-11-16 23:24How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
You need to use ./server/build.xml when running "ant build", as described here:

https://www.labkey.org/home/Documentation/wiki-page.view?name=build#build

Thanks, Josh

wit2wit2016-10-12 23:50Jon (LabKey DevOps)2018-11-16 23:24How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
How to build C: LabKey16.1-42836.12-src build modules core classes into core.jar? how to write contents of manifest.txt?

Thanks

Jon (LabKey DevOps)2016-10-13 13:58Jon (LabKey DevOps)2018-11-16 23:24How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
Hello,

Did you follow the guide that Adam mentioned earlier?

https://www.labkey.org/home/Documentation/wiki-page.view?name=build

Although you're using the actual SRC package rather than using SVN to pull the source code from hedgehog.fhcrc.org, the work in the end is the same. The core.jar would get automatically created upon compiling and automatically create that core.jar into the ./build/deploy/modules/core/lib/ directory.

Regards,

Jon

wit2wit2016-10-13 17:53Jon (LabKey DevOps)2018-11-16 23:24How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
I found my ./build/deploy/modules is empty. The ./Build/modules/core/classesy have compiling generated files.

Thanks

Jon (LabKey DevOps)2016-10-14 11:04Jon (LabKey DevOps)2016-10-14 11:04How do I generate a new core.module?How do I generate a new core.module? RADEOXClosed     LabKey Support Forum
Thanks for letting us know. We'll consider this closed.

Feel free to create a new support forum question if you have any new questions.

Regards,

Jon

adam2008-06-18 12:20Jon (LabKey DevOps)2018-11-16 23:24GO Term import brokenGO Term import broken RADEOXClosed     LabKey Support Forum
Fixed in the release8.2 branch. Details here.
adam2016-12-15 16:36Jon (LabKey DevOps)2018-11-16 23:24Getting full-text search results to honor tableUrlGetting full-text search results to honor tableUrl RADEOXClosed     LabKey Support Forum
Hi Will,

Yes, I remember and yes, these both appear to be bugs. I looked at them after we discussed in person, but I appreciate the reminder. I've opened issues in our list to ensure they're tracked to resolution:

Thanks, Adam
trent2011-07-10 22:05Jon (LabKey DevOps)2018-11-16 23:24filtering using 'equals on of', where it's 1 of 700 thingsfiltering using 'equals on of', where it's 1 of 700 things RADEOXClosed     LabKey Support Forum
Hi bimber,

I don't have any suggestions for you - but I wonder if you can share how you tackled this? Did you figure out a solution for your above problem?

For collecting the id's did you just do like:

var output;
var array = editorGrid.getSelectionModel().selections.items;
for(i=0;i<array.length;i++){
output += arrayi.data.someId +',';
}

or is there a simpler way?

Ben Bimber2011-07-11 10:29Jon (LabKey DevOps)2018-11-16 23:24filtering using 'equals on of', where it's 1 of 700 thingsfiltering using 'equals on of', where it's 1 of 700 things RADEOXClosed     LabKey Support Forum
i dont know the full context of your code, but if you're just talking about getting a list of the IDs based on a store, then yes, that's probably about as simple as you'll get. however, you should probably technically do:

getSelectionModel().getSelections()

I have come to like Ext.each() instead of the for loop, but that's not really consequential one way or the other.

trent2011-07-13 21:11Jon (LabKey DevOps)2018-11-16 23:24filtering using 'equals on of', where it's 1 of 700 thingsfiltering using 'equals on of', where it's 1 of 700 things RADEOXClosed     LabKey Support Forum
I decided to go with the Query Web Part over the Editor Grid Panel to maintain a consistent interface.

As to the original problem, the best thing I can come up with is for you to increase the max http header size in the tomcat connector config.

<Connector port="8080" maxHttpHeaderSize="32000"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              connectionTimeout="20000" disableUploadTimeout="true" />

i.e. increasing the maxHttpHeaderSize. By default it's 8k I believe.

http://tomcat.apache.org/tomcat-5.5-doc/config/http.html

Maya Li2011-09-19 15:45Maya Li2011-09-19 15:45Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 RADEOXClosed     LabKey Support Forum
Thanks to Brian. The problem has been resolved. :)
trent2011-09-18 17:01Jon (LabKey DevOps)2018-11-16 23:24Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 RADEOXClosed     LabKey Support Forum
Hi Maya,

I find it interesting that you didn't have problems with email sending prior to 11.2 since you use tls. (Since I was unable to get it working without the latest change, having tried various resource combinations).

This is our resource that works:

<Resource name="mail/Session" auth="Container"
       type="javax.mail.Session"
       mail.smtp.host="mail.example.com"
       mail.smtp.user="xxxxx"
       mail.smtp.password="xxxxx"
       mail.smtp.port="587"
       mail.smtp.auth="true"
       mail.smtp.starttls.enable="true"/>

Maya Li2011-09-19 11:34Jon (LabKey DevOps)2018-11-16 23:24Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 RADEOXClosed     LabKey Support Forum
Thanks, Trent. Our Resource definition is as follows:

<Resource name="mail/Session" auth="Container" type="javax.mail.Session" password="xxxx"       mail.debug="false"       mail.smtp.user="xxxx"       mail.smtp.host="smtp.washington.edu"       mail.smtp.auth="true"       mail.smtp.port="465"       mail.smtp.starttls.enable="true"       mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"       description="email resource"   />

Our System Admin tried the setting on a local tomcat with a new java.mail package. The setting only worked when he changed mail.smtp.user to mail.user. Unfortunately, the latter setting didn't work on the LabKey server.

This problem only seemed to have propped up after we upgraded to the new server. The setting worked for the last version.

adam2010-05-28 18:56Jon (LabKey DevOps)2018-11-16 23:24External LoginExternal Login RADEOXClosed     LabKey Support Forum
The LabKey login page is not an XML request action… it's an HTML form for browsers to use. When filled with correct credentials and submitted (posted), it changes internal server state to associate the submitting browser's LabKey session cookie with the just authenticated user. It's not going to send back any interesting data (what data were you expecting?)… the JavaScript code won't be able to do anything very useful with the login action.

Backing up for second, here are some basics (perhaps you know all this):

  1. The web (or, more accurately, HTTP) is stateless. Despite appearances, clients don't really get "logged in". If a server wants to keep content secure it must authenticate every single request sent to it. The client accessing the server (whether it's a web browser, client code, or server code) must therefore provide credentials to the server for each and every request, and the server must validate these credentials every time.
  2. Basic authentication is one of the most common and standard ways for a client to provide credentials on every request, as Matt suggested. The client provides an id and password, and the server validates them on every request. This is quite secure, as long as you're using SSL against the server. Our client and server APIs authenticate via Basic authentication.
  3. Browsers accessing LabKey use a different method of providing credentials on every request, to provide a better user experience compared to a Basic authentication dialog. Every browser visiting the site gets a unique token in a session cookie. The browser presents this cookie on every request. The server can then associate internal information with this unique token. When a user "logs on" (submits valid id/password credentials from the login form), the server associates this authenticated user with the browser's session cookie, and doesn't bother the user to enter id/password until the session expires, the browser is closed, the user logs out, etc. In this way, the session cookie becomes a temporary credential… it's a proxy for the id/password for a period of time.
In summary, if you want to call the LabKey APIs you should use Basic authentication over SSL. If you want a browser to authenticate with LabKey you should redirect the browser to the login page and let it handle all the posting and cookie handling. If you want to write your own server that delegates authentication and authorization to LabKey then you should use the remote login API. If you want to do something else then it would help if you could explain in more detail.

Adam

flek.mys@googlemail.com2010-05-31 00:43Jon (LabKey DevOps)2018-11-16 23:24External LoginExternal Login RADEOXClosed     LabKey Support Forum
Thanks, your post helps me to understand things better :) I'll see if I get things to work.

EDIT: Just to mentioned what I was expecting from the javascript: "Most of the API actions require the user to be logged in so that the correct permissions can be evaluated. Therefore, client applications and scripts must first make an HTTP POST request to the LabKey login view. To login, do an HTTP POST request for the following URL:

http://<MyServer>/<LabkeyRoot>/login/login.post

where "<MyServer>" is the name of your server and "<LabkeyRoot>" is the name of your server's context path ('labkey' by default).

Set the content-type to “application/x-www-form-urlencoded” and in the post body, include the following parameters:

email=<UserEmailAddress>&password=<UserPassword>

In the resulting HTTP response, a cookie by the name of “JSESSIONID” will be returned. This cookie must be passed in all subsequent HTTP requests. In many runtime environments, the HTTP support libraries will do this automatically. Note that the HTTP response from a login request will be a redirect to the Home project’s portal page (response code of 301). The application or script can ignore this redirect and simply request the desired API actions, passing the returned JSESSIONID cookie."

I was just wondering whats wrong because I don't get any useful http status. But I'll try basic authentication this time :)

Best regards,

Josh

adam2010-05-31 09:00Jon (LabKey DevOps)2018-11-16 23:24External LoginExternal Login RADEOXClosed     LabKey Support Forum
Thanks for pointing out the documentation -- it's accurate, but we should clarify our recommendations better.

As for your JavaScript, it does work for me if I make three changes:

  1. Change "getXmlHttpRequest()" to "new XMLHttpRequest()", since there's no getXmlHttpRequest() function defined in your code.
  2. Change the content type from "application/json" to "application/x-www-form-urlencoded". The sample code you modified may have been using JSON, but this action is a form post and requires the content type stated in the documentation.
  3. Send the parameters instead of null. You must send the user name and password.
When running the script in my browser (FireFox) from an HTML wiki page on my LabKey Server, the script invokes the login action and (if the credentials are correct) the cookie is returned and set automatically. This is an interesting experiment, but it's not extremely useful in most real-world scenarios. The script will fail if run on a server with a different domain (browsers limit XMLHttpRequest for security reasons) but if the page calling the LabKey apis resides on LabKey Server already then the server will handle login automatically. If you're ultimately going to be using PHP or some other server language, you'll need to use its HTTP request class/object to construct and send this request, save the jsessionid cookie, and resend it with every request.

Or you can just include the Basic authentication header on every request.

Adam

adam2016-12-07 06:52Jon (LabKey DevOps)2018-11-16 23:23Error: Data source "labware" has not been configuredError: Data source "labware" has not been configured RADEOXClosed     LabKey Support Forum
As the warning suggests, the HDRL module requires a labwareDataSource; in production deployments, this module interacts directly with the Oracle database underlying an instance of LabWare, accessed via this specially named data source. You should remove this module from your deployment. In fact, you'll probably want to remove many of the standard dev build modules from your deployment. See the Customizing the Build page and use the "ant dist" target to create a production distribution with just the modules you require.

Adam

mauricio2016-12-13 05:59Jon (LabKey DevOps)2018-11-16 23:24Error: Data source "labware" has not been configuredError: Data source "labware" has not been configured RADEOXClosed     LabKey Support Forum
I remove the module and everything worked fine! Thanks Adam!!!
adam2015-10-06 09:20Jon (LabKey DevOps)2018-11-16 23:24Entire LabKey MigrationEntire LabKey Migration RADEOXClosed     LabKey Support Forum
Folder export/import will round trip many objects from a folder or a tree of folders, but its not sufficient to replicate an entire LabKey Server. You need to use database backup/restore to round trip all data in the labkey database, so that every module's data is copied to your new system. Also, if you have important data in the file system (assay results, file uploads, etc.) you'll need to replicate that to the new system as well.

By "vLabKey15.2-39071.18-bin" I assume you're referring to a LabKey Server distribution file (typically it would end in .zip or .tar.gz). This is a single, binary distribution that includes a specific set of modules and no source at all. A couple options, once you've replicated the database and the files to the new system:

  • If the vLabKey15.2-39071.18-bin distribution includes all the modules you care about, simply deploy it on the new system.
  • If you need additional modules, you could deploy vLabKey15.2-39071.18-bin and then add the extra modules to externalModules.
  • Build an official distribution from source. As we discussed, you can create and build custom distributions from source. Sync up to the release15.2 branch, copy one of the existing xml files in $LABKEY_HOME/server/distributions to "lewis.xml", edit the file to add/remove modules and specify the desired format, and then run "ant dist -Dname=lewis". You now have a standard distribution you can use on every server, ensuring a consistent set of deployed modules. (As a convenience, the /distributions directory can appear inside a custom module directory as well.)
Adam
lewis j mcgibbney2015-10-06 13:35Jon (LabKey DevOps)2018-11-16 23:24Entire LabKey MigrationEntire LabKey Migration RADEOXClosed     LabKey Support Forum
Hi Adam, Thanks for reply.

> By "vLabKey15.2-39071.18-bin" I assume you're referring to a LabKey Server distribution file (typically it would end in .zip or .tar.gz). This is a single, binary distribution that includes a specific set of modules and no source at all.

Correct

Thanks for the explicit heads up on the remainder of the information. We are working on this today so I'll check back in here later with an update. Thanks again Adam. Most helpful.

arauch2006-03-01 19:19Jon (LabKey DevOps)2018-11-16 23:23Developer Question: Multiple Data SourcesDeveloper Question: Multiple Data Sources2006-04-01 17:18RADEOXClosed     LabKey Support Forum
Yes, you should be able to use all the CPAS apis with your new database. But no, we don't have a lot of developer documentation at this point, other than the overview slides I posted earlier. The key files to look at include:
  • Table.java: a simple, low level data access layer with methods like insert, delete, update, executeQuery, select, etc.
  • DbSchema.java, TableInfo.java, ColumnInfo.java: use to access metadata for your tables and columns. These get passed to Table, DataRegion, and other data classes.
  • /cpasProperties/xxx.xml (e.g., ms2.xml, core.xml): how we specify additional meta data associated with columns and tables (e.g., captions, format strings, display widths)
  • SqlDialects: used to retrieve database-specific syntax and constructs.
  • DataRegion/GridView: our data grid… provides UI for displaying, filtering, and sorting tables/views/resultsets.
Adam
adam2007-01-03 13:39adam2007-01-03 13:39Developer Question: Multiple Data SourcesDeveloper Question: Multiple Data Sources2006-04-01 00:00RADEOXClosed     LabKey Support Forum 
arauch2006-01-12 15:49Jon (LabKey DevOps)2018-11-16 23:23CPAS developmentCPAS development2006-02-01 00:00RADEOXClosed     LabKey Support Forum
Our JPFs are Java Page Flows. Specifically, we use the Apache Beehive implementation of page flows (see http://beehive.apache.org).

That's just one piece of the framework, however. I have a slide deck that explains some of the architecture. I'll post it in a separate message.

adam2006-12-04 22:08adam2006-12-04 22:08CPAS developmentCPAS development2006-02-01 00:00RADEOXClosed     LabKey Support Forum 
adam2007-01-03 13:34Jon (LabKey DevOps)2018-11-16 23:24CPAS ArchitectureCPAS Architecture RADEOXClosed     LabKey Support Forum 
adam2007-01-04 09:43Jon (LabKey DevOps)2018-11-16 23:23CPAS ArchitectureCPAS Architecture RADEOXClosedadam    LabKey Support Forum 
trent2011-08-16 20:30trent2011-09-28 16:35Can you add an Editable Column to an EditorGridPanel where the Data Source is Read OnlyCan you add an Editable Column to an EditorGridPanel where the Data Source is Read Only RADEOXClosed     LabKey Support Forum
Just as a side note for anyone that may be interested. That script I found on Sencha isn't even necessary as I was trolling through the LabKey Javascript API doco, and found this:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Utils.html#.convertToExcel

Which returns an Excel spreadsheet based on the JSON data sent through. Very cool!

Ben Bimber2011-08-09 17:07Jon (LabKey DevOps)2018-11-16 23:24Can you add an Editable Column to an EditorGridPanel where the Data Source is Read OnlyCan you add an Editable Column to an EditorGridPanel where the Data Source is Read Only RADEOXClosed     LabKey Support Forum
hi trent,

i think it's as simple as changing the editable property on your store and/or editorgrid. it probably gets set when the store loads, but you could listen for that even and change it. you could add your column at this point too.

if you want to get more involved, look at what ehrStore.js does in the EHR module. That extends the labkey store. the onProxyLoad method listens for when the query metadata is returned by the server. at this point you can modify or augment it. it's a pretty low level way to hook into things.

out of curiosity, what's the point of editing 1 column if it isnt going to be submitted?

trent2011-08-09 17:28Jon (LabKey DevOps)2018-11-16 23:24Can you add an Editable Column to an EditorGridPanel where the Data Source is Read OnlyCan you add an Editable Column to an EditorGridPanel where the Data Source is Read Only RADEOXClosed     LabKey Support Forum
Thanks. Well I took a look at the store documentation, and there is one config option updatable, so I tried setting that to true (and after checking, it defaults to true anyways); And I also have editable specified as true in the instantiation of the editorgridpanel.

But I'll take a look in the ehrStore.js - that might give me some more clues, thanks.

… just trying out an idea; I found some code to export a grid to XLS format. So seeing if we can get the specimen repo working this way; the requests work by clients requesting a specific vial size, which I don't think the built in specimen repo supports.

Ben Bimber2011-08-09 17:35Jon (LabKey DevOps)2018-11-16 23:24Can you add an Editable Column to an EditorGridPanel where the Data Source is Read OnlyCan you add an Editable Column to an EditorGridPanel where the Data Source is Read Only RADEOXClosed     LabKey Support Forum
you know i think the labkey editorgridpanel has a columnModelCustomize event (or something similar). i believe the way you are supposed to manipulate column in that grid is to listen for that event (which is async since the store must load data from the server) and then modify the columns array it returns. that would allow you to all the column, but you may run into a problem downstream because that column wouldnt actually exist in the store. if this does work though it's easier and requires knowing less about the guts of ext.

hooking into the store as i mentioned above is a step upstream of the EditorGridPanel's columnModelCustomize event. it's more work to get it working (although not that much work), but might be more robust.

trent2011-08-09 17:38Jon (LabKey DevOps)2018-11-16 23:24Can you add an Editable Column to an EditorGridPanel where the Data Source is Read OnlyCan you add an Editable Column to an EditorGridPanel where the Data Source is Read Only RADEOXClosed     LabKey Support Forum
ah right. cool.

just thinking about it, i think i may be looking at this wrong. There are obviously events that take place after editing a column value to update the store, which is why its preventing the columns being editable.

I might be better of just calling the selectRows function and creating an ArrayStore based on the returned data.

Ben Bimber2011-08-10 06:36Jon (LabKey DevOps)2018-11-16 23:24Can you add an Editable Column to an EditorGridPanel where the Data Source is Read OnlyCan you add an Editable Column to an EditorGridPanel where the Data Source is Read Only RADEOXClosed     LabKey Support Forum
hi trey,

a few other comments:

  1. how are you debugging this?
2. the array store thing is probably feasible, but i think you'll find simpler and more robust approaches. i pretty much never use selectRows() for anything these days since passing your data through a store is just much better. it does take some wrapping your head around it though. if you plan to do anything along these lines in the future, i'd suggest taking a little time on this.

3. i saw you mentioned grid -> excel. i dont know what route you were thinking of using, but while the labkey store supports exporting to excel, it appears to be tied to the underlying SQL query, rather than the records in the client-side store. therefore if you're adding values on the client that wont be reflected. however, LABKEY.Utils.convertToExcel can do this. on the client you'd iterate over your store's records, build an excel object and then use this API to return an excel file.

trent2011-08-10 18:14Jon (LabKey DevOps)2018-11-16 23:24Can you add an Editable Column to an EditorGridPanel where the Data Source is Read OnlyCan you add an Editable Column to an EditorGridPanel where the Data Source is Read Only RADEOXClosed     LabKey Support Forum
  1. As you may have noticed, I use console.log a bit. I use chrome, so just use the dev tools included.
2. Ok, I took a better look at the customizecolumnmodel event - actually the documentation provides an example of using it.

However, even if I update the field in the event, it still doesn't become updatable. (I try updating the sortable field there, and that does get affected - it's just the editable that doesn't).

In the example they provide, they call a custom renderer function, so thought maybe something is in there:

function newTest(columnModel, index){
       if (columnModel != undefined){
           console.log(index.vol.editable);
           i = index.vol;
           i.sortable = false;
           i.renderer = newRenderer;
           index.vol.editable = true;
           console.log(index.vol.editable);
       }
   }

function newRenderer(data, cellMetaData, record, rowIndex, colIndex, store){
       console.log('*******');
       console.log(data);
       console.log(cellMetaData);
       console.log(record);
       console.log(rowIndex);
       console.log(colIndex);
       console.log(store);
   }

If I inspect record, the store object has a property of updatable which is set to true, which add to the confusion.

3. I was looking at this code: http://www.sencha.com/forum/showthread.php?32400-GridPanel-directly-to-Excel … but just now I thought I better test it to make sure it actually works. Unfortunately it looks like there are some server side validation that don't like some of the values in the script. So I may have to look for another solution.

Thanks for all your help and advice.. appreciate it :)

jeckels2006-07-26 10:50Jon (LabKey DevOps)2018-11-16 23:24build errorbuild error2006-08-25 00:00RADEOXClosed     LabKey Support Forum
Your build looks like it's failing because it can't find apt, which is a new tool included in JDK 1.5. You might need to add your JAVA_HOME/bin directory to your path before starting IntelliJ.

I'm not sure how IntelliJ's Ant integration interacts with the system environment variables, the JDK you're using to run IntelliJ, and the JDK you've configured IntelliJ to use for the CPAS project.

You could also try to build from the command line. Try running "ant build" from the <cpas-root>/modules directory. You'll need JDK 1.5 and Ant on your path.

adam2007-01-04 09:26adam2007-01-04 09:26build errorbuild error2006-08-25 00:00RADEOXClosed     LabKey Support Forum 
jeckels2006-07-05 13:17Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error2006-08-02 00:00RADEOXClosed     LabKey Support Forum
It looks like there's some sort of problem with the XMLBeans build. CPAS uses XMLBeans (see http://xmlbeans.apache.org/ for info about XMLBeans) to create strongly typed Java classes for parsing and creating XML files.

Do you get any more detail, like a stack trace? How are you running Ant? From the command line? From inside an IDE?

sebkieran@yahoo.com2006-07-05 20:42Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error2006-08-02 00:00RADEOXClosed     LabKey Support Forum
sorry i dont know whats a stack trace and im running it from Eclipse IDE
jeckels2006-07-06 10:18Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error2006-08-02 00:00RADEOXClosed     LabKey Support Forum
A stack trace would give the full Java stack at the time that the IllegalStateException happened, potentially giving us more insight into exactly where it failed, and would be printed immediately after the output that you included in your original posting.

If you're not familiar with Java stack traces, you may not have enough Java experience to be effective at editing the CPAS source. We're working on making CPAS easier for others to modify and extend, but right now it requires significant Java skills.

You could also try building with Ant from the command line instead of inside Eclipse. We regularly build from the command line and inside IntelliJ, but don't use Eclipse so we don't have experience in diagnosing problems that might be Eclipse-specific.

adam2007-01-04 09:09adam2007-01-04 09:09ant build errorant build error2006-08-02 00:00RADEOXClosed     LabKey Support Forum 
kevink2014-07-01 16:09Jon (LabKey DevOps)2018-11-16 23:23Adding result rows to a runAdding result rows to a run RADEOXClosed     LabKey Support Forum
Hi Will,

For file-based module assays, you can use the LABKEY.Experiment.saveBatch() method to add new data rows to an existing assay run. The saveBatch() API take a batch aka LABKEY.Exp.RunGroup object that contains an array of runs each of which contains an array of dataRows. For example, to add new data results to an existing run:

var assayId = <id of the assay>;
var batchId = <id of the batch previously imported>;

LABKEY.Experiment.loadBatch({
assayId: assayId,
batchId: batchId,
success: function (batch) {
// add a result row to an existing run
var row = {mydata: 100};
batch.runs[0].dataRows.push(row);

LABKEY.Experiment.saveBatch({
assayId: assayId,
batch: batch,
success: function (updatedBatch) { … }
});
}
});

For more on writing file-based module assays, see: https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleassay

We'd love to follow up about the various different approaches to developing assays -- I'll send you an email off the board.

Thanks, Kevin

Lili2010-06-28 09:43Lili2010-06-28 09:43Action to upload Study .zipAction to upload Study .zip RADEOXClosed     LabKey Support Forum
Thank you for the reply, Adam. I ended up with combining changes in both Java and Javascript: I added new Action classes into study, core, etc. Controllers; and then made Ajax calls to these Actions in wiki javascript. Things functions the way as we wanted.
adam2010-05-10 13:21Jon (LabKey DevOps)2018-11-16 23:24Action to upload Study .zipAction to upload Study .zip RADEOXClosed     LabKey Support Forum
Sounds like you want to add a new Java action. Two options:
  1. Create a new action class inside the StudyController. This should be fairly straightforward since you'd simply augment an existing module & controller. The StudyController has many examples you can emulate.
  2. Create your own Java module and add this action to a new controller. This would provide more flexibility and encapsulation; you wouldn't run the risk of merge conflicts as we release new versions of the study module. The "create_module" ant task will walk you through the creation of a new module. You can still pattern your new action based on the StudyController action classes.
Adam
Lili2010-05-10 13:46Jon (LabKey DevOps)2018-11-16 23:23Action to upload Study .zipAction to upload Study .zip RADEOXClosed     LabKey Support Forum
Thank you, Adam. Option 1 seems easier so I will move on with that unless i have to go with option 2. I was trying to add Peter's "apisamples" module but couldn't get it added. So I'll stay away from option 2 first.

For option 1, I've been looking at the "core" where we have "admin" actions such as creating folder, but then I was brought into the "security" for editing permissions, which step I need to predefine and take care of in my Action too.

Besides creating an Action class, can I do all of I need in javascript by reusing/calling existing Actions sequentially?

adam2010-05-11 13:45Jon (LabKey DevOps)2018-11-16 23:24Action to upload Study .zipAction to upload Study .zip RADEOXClosed     LabKey Support Forum
Adding your action directly to the StudyController is a fine place to start; you can always move it to a custom module later.

I'm not familiar enough with your workflow to say whether Java, JavaScript, or some combination of the two is best here. Definitely review the JavaScript API, https://www.labkey.org/download/clientapi_docs/javascript-api -- building a JavaScript workflow that leverages the public API is very powerful and relatively easy. Of course, the functions you need must be exposed and keep in mind that the user doing the uploading will need all the necessary permissions. (I.e., looks like the user must have folder create permissions, study admin permissions, etc.)

Adam

adam2010-06-28 11:25adam2010-06-28 11:25Action to upload Study .zipAction to upload Study .zip RADEOXClosed     LabKey Support Forum
Thanks for the update -- glad things are working out for you.

Adam

Zoya Pasha2017-11-07 02:27Zoya Pasha2017-11-08 01:53 Labkey user defined queries TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a way to set access rights for a user such that he/she is able to view just the user - defined queries in the query browser, and not the built - in queries?
Zoya Pasha2017-11-07 02:31Zoya Pasha2017-11-13 20:25 Access rights in a module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am building a module where I wish a user to add/edit queries. For any set of users, if I give them Folder Administrator rights, they can add/edit queries, as well as the wiki pages. How do I restrict them from editing the wiki pages? Also, I want them to be able to edit the user - defined queries only. How do I go about it?
wit2wit2016-08-13 22:25wit2wit2016-10-27 03:13 How do I generate a new core.module? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have updated the core->login->PasswordRule.java. How do I generate a new core.module? I hope to have a step by step guide.

Thanks!
Will Holtz2014-12-29 08:23Will Holtz2015-01-23 17:27 When used with parameterized query, PIVOT requires an explicit values list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I would like to display assay results, on a per run basis, where I group multiple results on the SampleName field and pivot to get column names from Molecule, a foreign key value in each result (the Molecule field in Data is a foreign key to myschema.Molecule). I am able to perform this with the following query:

PARAMETERS (GETRUN INTEGER)
SELECT
   d.SampleName,
   m.Name as "Molecule (mM)",
   AVG(d.WellConc) as conc
FROM (
   SELECT SampleName, WellConc, Molecule
   FROM Data
   WHERE Run = GETRUN
) as d
JOIN myschema.Molecule AS m
ON d.Molecule=m.RowId
GROUP BY d.SampleName, m.Name
PIVOT conc BY "Molecule (mM)" IN (
   SELECT Name
   FROM myschema.Molecule
)

This results in a column for every member of myschema.Molecule. Because myschema.Molecule could have many entries, and each run will only contain foreign keys to a few myschema.Molecule entries, I would like to only display columns for the molecules referenced by the run being displayed. I tried the two variations listed below, and both fail with the error, "When used with parameterized query, PIVOT requires an explicit values list." The only differences in the three queries are after the PIVOT line.

PARAMETERS (GETRUN INTEGER)
SELECT
   d.SampleName,
   m.Name as "Molecule (mM)",
   AVG(d.WellConc) as conc
FROM (
   SELECT SampleName, WellConc, Molecule
   FROM Data
   WHERE Run = GETRUN
) as d
JOIN myschema.Molecule AS m
ON d.Molecule=m.RowId
GROUP BY d.SampleName, m.Name
PIVOT conc BY "Molecule (mM)"

------ other variation -------

PARAMETERS (GETRUN INTEGER)
SELECT
   d.SampleName,
   m.Name as "Molecule (mM)",
   AVG(d.WellConc) as conc
FROM (
   SELECT SampleName, WellConc, Molecule
   FROM Data
   WHERE Run = GETRUN
) as d
JOIN myschema.Molecule AS m
ON d.Molecule=m.RowId
GROUP BY d.SampleName, m.Name
PIVOT conc BY "Molecule (mM)" IN (
   SELECT Name
   FROM myschema.Molecule
      WHERE RowId IN (
         SELECT Molecule
         FROM Data
         WHERE Run = GETRUN
      )
)

Is there another way to structure my query that will allow the pivot to run? Or am I stuck with displaying a column for every myschema.Molecule record?

thanks!
-Will
Bernie2015-08-27 12:27Will Holtz2015-09-15 09:41 New LabKey Server 15.2 build is available TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
An updated 15.2 release (15.2-39349.20) is available for download. This release includes a number of important bug fixes and performance improvements.

Please see:

- https://www.labkey.com/download-labkey-server
- https://www.labkey.org/wiki/home/Documentation/page.view?name=sourceCode
- https://www.labkey.org/wiki/home/Documentation/page.view?name=prevReleases

Thanks,
Bernie
Will Holtz2015-01-21 13:37Will Holtz2015-01-26 08:49 Setting metadata on default fields in module based-assay TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

In a module-based assay I define assay domains via batch/run/result.xml. For the fields I define in these files, I can set metadata. However, I am unable to set metadata for default fields (Comments, Flag, etc) because Labkey gives an error if I try to list these in the domain xml files. Is there a way to automatically apply metadata to such fields in a module-based assay? In particular I am trying to set the Hidden, ShowInInsertView, ShowInUpdateView, and ShowInDetailsView fields.

thanks!
-Will
Will Holtz2017-03-15 11:09Will Holtz2017-03-28 17:53 showInsertNewButton in QWP does not toggle Bulk Import TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The following code hides the Insert New Row functionality, but Import Bulk Data is still accessible.

<div id="MyQuery" />
<script>
new LABKEY.QueryWebPart({
        renderTo: 'MyQuery',
        schemaName: 'core',
        queryName: 'users',
    showInsertNewButton: false,
        buttonBar: {
        includeStandardButtons: true,
        }
    });
</script>

Is that intentional?

-Will
Will Holtz2015-11-12 15:55Will Holtz2016-02-29 07:59 Problem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have a webpart that contains the following:

<div id='RunsDiv'/>

<script type="text/javascript">
Ext4.onReady(function() {
    var qwp1 = new LABKEY.QueryWebPart({
        renderTo: 'RunsDiv',
        schemaName: 'assay.hplc.HPLC-Assay',
        queryName: 'Runs',
        buttonBar: {
            includeStandardButtons: true
        }
    });
});
</script>

From an instance of this webpart, I am able to change to different table views. If I try changing to an R view, then the table disappears, but it is not replaced with the output of my R view. On my javascript console I get the following error:

GET http://localhost:8080/project/home/HPLC/LABKEY/ext4/ScriptReportPanel.js?_dc=1447372276556 404 (Not Found)

Is there something more I need to add to my webpart to support R views? or is this a bug?

I am running v15.2 (without the August update).

thanks,
-Will
Will Holtz2016-11-22 14:04Will Holtz2016-11-22 14:43 Removing transformation script from assay instance TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have an assay instance with a transformation script associated with it via the assay's config.xml file. I would like to remove this transformation script. The assay is already in production, so I'm looking for a solution that does not involve dropping the existing assay instance and data and then creating a new assay instance.

I tried looking through the database for the transformation script filename. I found that transformation scripts added via the assay designer are in the table exp.objectproperty, but transformation scripts added by config.xml do not appear in this table.

Any suggestions for where to look in the DB or how to otherwise remove the transformation script?

thanks!
-Will
Will Holtz2016-01-28 15:31Will Holtz2016-03-01 16:55 Rserve with assay transformation scripts TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have Rserve working in a two-computer configuration. Currently this is just on my development machine (OSX) with the Rserve computer running in a linux VM. I tested that my Labkey instance can communicate with Rserve by running this simple report:

write.table(Sys.info(), file = "${tsvout:tsvfile}", sep = "\t", qmethod = "double", col.names=NA)

The output generated confirms the R code was executed on the Rserve VM.

I have several file-based modules that contain assays with data import transformation scripts. These transformation scripts are written in R and I would like for them to benefit from the Rserve performance bump. I tried to import data to an assay and got the following error:

Saving runs failed. eval failed, request status: error code: 127 Error in setwd("/foo/bar/trunk/server/localModules/HPLC/resources/assay/hplc/scripts/TransformAndValidationFiles/AssayId_4/65/") : cannot change working directory

That setwd command does not appear in my transformation script, so I’m guessing it is part of some setup done before the script. I added a path mapping to my Rserve configuration that mapped /foo/bar/trunk/server to a location within my Rserve VM. This allowed the transformation script to be found and start executing.

I then got the error:
Saving runs failed. eval failed, request status: error code: 127 Error: cannot open the connection Call sequence: 12: file(con, "r") 11: readLines("/foo/bar/trunk/server/localModules/HPLC/resources/assay/hplc/scripts/TransformAndValidationFiles/AssayId_4/65/runProperties.tsv") 10: readRunPropertiesFile() 9: eval(expr, envir, enclos) 8: eval(ei, envir) 7: withVisible(eval(ei, envir)) 6: source("/labkey/MODULEroot/localModules/HPLC/resources/assay/hplc/scripts/TransformAndValidationFiles/AssayId_4/65/HPLC_Transform.R") 5: eval(expr, envir, enclos) 4: eval(expr, pf) 3: withVisible(eval(expr, pf)) 2: evalVis(expr) 1: capture.output(source("/labkey/MODULEroot/localModules/HPLC/resources/assay/hplc/scripts/TransformAndValidationFiles/AssayId_4/65/HPLC_Transform.R"))

The file runProperties.tsv could also not be found because of path issues. Since it seems Labkey is setting the working directory to the location of runProperties.tsv, I just added a call to basename() for the runProperties.tsv read.

Finally, my script tries to read in the uploaded file from: /foo/bar/trunk/build/deploy/files/home/HPLC/@files/assaydata/uploaded_file.txt
If I was performing this upload from a pipeline, then labkey.remote.pipeline.root
Would get automatically pre-pended to my script according to: https://www.labkey.org/home/Documentation/wiki-page.view?name=LabKeyRserve. And I could use that to construct an absolute location of the file. But labkey.remote.pipeline.root does not appear to be set during an assay transformation. I can think of some ways to hack around this, but they aren’t as clean or portable. Has anyone else dealt with this problem yet?

thanks,
-Will
Will Holtz2015-09-09 12:17Will Holtz2015-09-11 10:11 hard table with lookup to second hard table in different folder TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have two file based modules and they both contain hard tables that they automatically generate via sql scripts within each module. I also have xml metadata defined for both hard tables in the modules. I have a single project, /home, and each module are in a different folder within home - /home/folder1 and /home/folder2. Module2 in folder2 contains a hard table, table2, that has a lookup in a hard table, table1, within Module1 in folder1. If I directly connect to my DB and look at the table structure, everything including the foreign keys exist and look good. When I view the table2 schema in the labkey schema browser, the lookup column is empty for this field. But when I use the labkey schema browser to edit the table2 metadata, then the lookup appears to exist. When I view table2 data in labkey, the lookup field into table1 displays the integer values. When I try to insert a new row into table2 using labkey, I get a text entry box and not a drop down menu for the lookup field in question.

I thought because I put both of my modules under the same project, they would be able to access each others tables. Is this incorrect? Do they need to be in the same folder? Or do I need to make use of the 'shared' project? I tried adding metadata for the foreign key, but nothing changed.

thanks,
-Will
Will Holtz2016-03-02 15:17Will Holtz2016-03-03 09:28 Rounding weirdness with scientific notation formatString TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have the query:
SELECT
    0.00055555 AS a,
    0.55555 AS b,
    555.55 AS c;

and associated metadata:
<?xml version="1.0" encoding="UTF-8"?>

<query xmlns="http://labkey.org/data/xml/query">
    <metadata>
        <tables xmlns="http://labkey.org/data/xml">
            <table tableName="TestFormat" tableDbType="NOT_IN_DB">
                <columns>
                    <column columnName="a">
                        <formatString>##0.#E0</formatString>
                    </column>
                    <column columnName="b">
                        <formatString>##0.#E0</formatString>
                    </column>
                    <column columnName="c">
                        <formatString>##0.#E0</formatString>
                    </column>
                </columns>
            </table>
        </tables>
    </metadata>
</query>

By viewing the query output in the schema browser I get the following:
    
A B C
 555.6E-6 555.5E-3 555.5E0

I would have expected the final digit of each of these to get rounded up to 6, but it only happened for A. This is with Postgres v9.5 and Labkey revision 41716.

-Will
Jon (LabKey DevOps)2017-06-20 11:32Trey2017-06-21 10:58 Firefox ESR Warning TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Note to all LabKey developers running automated tests using Firefox ESR:

Firefox ESR 52.2 was recently released. It is the first "qualified" version of ESR 52, so any existing install of ESR 45 might auto-upgrade if you aren't careful. Firefox 45 is, currently, the highest version supported by LabKey's UI test framework.

If you need to re-download ESR 45 if you experience issues using it, please do so here:

https://ftp.mozilla.org/pub/firefox/releases/45.9.0esr/

Look in "<your_os>/en_US" to get the installer.

You may also want to make sure you have auto update turned off (menu preferences/advanced/Update tab)
Ben Bimber2011-05-04 06:01Trey2015-02-09 14:08 observation on labkey window installer TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
it's been a long time since I used the windows installer for labkey, and i doubt many labkey devs use it, but something recently brought up a memory from before I thought I'd pass along:

the installer adds both labkey and postgres. it puts postgres in a non-standard location, buried under c:\program files\LabKey Server\ or something like that.

if at some future point you want to upgrade postgres using the postgres GUI installer (ie. not the labkey installer), that's not obviously possible. whenever i did this, the postgres installer never recognized the existing postgres install, and the pg installer (at least last time i used it) didnt give the option to specify a custom install location.

if the purpose of the one-click installer is to simplify, you might want to consider the pg upgrade scenario and see if it works as you'd like. it has been at least i year since i used it, so maybe things have changed and/or i missed something at the time. i have no idea the labkey installer tries to upgrade postgres as part of the upgrade or not, but maybe that's the right route in order to be sure the pg version is labkey-compatible.

this isnt really a current obstacle, but i thought i'd mention it.
trent2011-06-01 22:46trent2011-09-27 22:50 Query Join with External Data Source Possible? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Just wondering if it's possible to construct a query with an externally defined schema? (In my case, SAS)

I've seen the following documentation: https://www.labkey.org/wiki/home/Documentation/page.view?name=crossFolderQueries but I don't think that addresses the situation - at least i've tried a bunch of different techniques with no success.

I've tried by creating a new query connected to both lists, and the external schema. If I try from the external schema, I get a sharenet exception. something to the effect:

Sharenet.S206.ex.txt: Sharenet.S252.ex.txt: -2013077488 ERROR: SQL passthru expression contained these errors: ERROR 22-322: Syntax error, <rest of error snipped>

i.e. select *
from "/Shared".lists.gender

If I try from the other way around I just get - ERROR: schema "clin1" does not exist

i.e. select *
from "/Shared"."CLIN1".test

Thanks :)
trent2011-06-07 19:00trent2011-09-27 22:51 External Data Source for a Study? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
What's the best way to go about this?

I know I can define an external data source, and present this with a query web part, or an ext grid referencing the query name - but I don't think it's possible to integrate with a study's data sets? I.e. if I have an external data source where labs/sites are stored, I can define an external data source for that and present that on the page via a Query Web Part, but it doesn't tie it with the study overview - where it outputs the number of datasets, sites, etc (afaik).

I was suggested about the pipeline feature to load in the data-is this the best method? From my quick investigation, you point the study 'Reload' feature to a location - so that means on the external data, have a scheduled job that exports the data into the format that the reload feature expects, and configure labkey to refresh the data on a daily basis?

Im not really sure if I've got the right ideas or am on the right track.....

(Actually, its mainly lab results to be managed within lab key, with the rest of the data coming from external sources - if that matters any.)

I have toyed with the idea if I should just be creating a collaborative module, and building it that way - but since the study module has the base design down, seems like it'd be a fair bit of (perhaps unnecessary) extra work

Thanks.
trent2011-10-13 21:17trent2011-10-14 03:25 Table Metadata XML Mutliple Attributes in UpdateUrl TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is table metadata designed more for custom modules that would only require one URL parameter. I ask because:

1. Create a list
- person_id PK
- name
- age
2. Create a page to display the data
- name: person
- source:

<script type="text/javascript">

Ext.onReady(function(){
  console.log(LABKEY.ActionURL.getParameter('person_id'));
});


</script>

(just for testing purposes)

3. Go to schema browser: lists: Person.
4. Edit MetaData
5. Edit Source
6. XML Metadata tab
7. Specify (just to verify it works)
<ns:tables xmlns:ns="http://labkey.org/data/xml">
  <ns:table tableName="Person" tableDbType="NOT_IN_DB">
    <ns:updateUrl>/wiki/page.view?name=person</ns:updateUrl>
  </ns:table>
</ns:tables>
8. Save and go to Data Tab. Verify Edit link. Yep works.
9. XML Metadata tab
10. Specify (add pk field)
<ns:tables xmlns:ns="http://labkey.org/data/xml">
  <ns:table tableName="Person" tableDbType="NOT_IN_DB">
    <ns:updateUrl>/wiki/page.view?name=person&person_id=${person_id}</ns:updateUrl>
  </ns:table>
</ns:tables>
11. Save and go to Data Tab. At this point, no data is returned due to an error:

error: Unexpected character encountered (lex state 3): 'p' (line 3, column 47)
Metadata XML error: Unexpected character encountered (lex state 3): 'p' (line 3, column 47)

So it obviously doesn't like having 2 parameters.
trent2015-12-08 14:01trent2015-12-10 16:33 Java Transformation Script Basics TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm on LabKey 14.1 at the moment, and I'm trying to get a transformation script going. After not having a good result with the perl version, I decided to give it a go in Java.

I'm a little confused by the runDataFile line. I can see that by looking at other examples - the destination you need to write to is the last value on the line (index 3). I've verified this with a simple:

outputWriter.write("ParticipantID\tSequenceNum\tHCVSequence");
outputWriter.newLine();
outputWriter.write("4\t4\tAGCTA");

Where outputWriter points to that path: C:\Program Files\LabKey Server\files\VHKEY3\@files\assaydata\Sequences-2015-12-09-0811.tsv

But where should I be getting the input from? I thought it was the second value, but when I check the file length, it's coming back as 0:

File f = new File(this.inputFilePath);
if (f.length() == 0 ){
// throw new Exception("Input file '" + this.inputFilePath + "' is empty");
}

Which gives me: Input file 'C:\Program Files\LabKey Server\files\VHKEY3\@files\TransformAndValidationFiles\AssayId_70\82\runDataFile.tsv' is empty

Additionally:

if (!f.exists()){
    throw new Exception("Input file '" + f.getAbsolutePath() + "' is not existent");
}

Input file 'C:\Program Files\LabKey Server\files\VHKEY3\@files\TransformAndValidationFiles\AssayId_70\64\runDataFile.tsv' is not existent

And when I check that path - indeed I only see the runProperties.tsv file. Have I got something mixed up here?
trent2011-06-28 16:45trent2011-09-27 22:52 Create View From Manage Views - No Pagination - Slow TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

Not sure if this has come up yet, but I did just test on the source from 2 days ago, and the same results occurred. Perhaps its just that no body creates views this way with such large datasets.

When you create a view via the manage views interface (im in a study at the moment), the page seems to get smashed, as the grid isn't paginated (this is the most likely explanation).

i.e. From Study

1. Click Manage Views
2. Click Create -> Grid View
3. Label for View - test1; Base Data Set as the dataset of interest
4. Click Create View
5. It takes you to the view. URL: /labkey/study/Demo Study/dataset.view?Dataset.reportId=db%3A6&datasetId=5005

However, the view is not paginated (and with 270 000 records with 30 columns,it becomes quite massive), so in my machine (tried 2 machines just in case my machine was a dog) the page becomes unusable. Can't even scroll (well, you can, but at a very slow pace), click any links, etc.

Obviously, the better way to create the views is to open the actual data set and go to views -> customize view; and save that way. But on the method mentioned above, perhaps it would be better to have a default pagination size specified when creating the view?

Ta,
Trent
trent2011-06-06 17:13trent2011-09-27 22:51 Setting Up a Development Environment - svnant.classpath not found TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hoping someone can be of some assistance- just trying to set up a development machine to go through the building modules lessons - so I am attempting to follow this guide: https://www.labkey.org/wiki/home/Documentation/page.view?name=build

I am up to the bit: Build and Run LabKey

(Actually, I also have an issue before that - setting up the Tomcat RUN configuration; it says it can't find org.apache.catalina.startup.Bootstrap in module LabKey. Looking at the existing LabKey Development configuration, it has API specified for the 'Use classpath and JDK of module' field, and doesn't throw the error - but the doco says to use the LabKey item in that field (which from an earlier step points to the 1.6 JDK), so not sure if that's safe to do or not...)

Anyway, so I ran the pick_pg ant target - all good; then tried to run build , but get a bunch (4) of errors which seem to be surrounding the reference to svnant.classpath parameter, from the build.xml file

<path>\build.xml:6: Reference svnant.classpath not found.

I am thinking perhaps in the Ant build properties, I am supposed to add additional classpath?

Thanks for any help in advance. :-)

edit: relevant line from build.xml:

<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" />
steve harris2017-09-05 02:38steve harris2017-09-11 06:01 Customising SpecimenDetail TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi

(not sure if this is a dev question - happy to repost in the developers forum or for you to move if so)

I'm playing with the advanced specimen repository in 'stand alone LIMS' mode.

Is is possible to hide unused, non-mandatory fields on the SpecimenDetail web page. I can see some of the fields, such as for the freezer location, can be deleted, but there are many more fields that will just confuse my users so it would be great if I could hide them until needed. And how can I ensure that the configuration change survives upgrades to LabKey?

Thanks

Steve
slangley@scharp.org2017-03-02 11:54slangley@scharp.org2017-03-07 10:07 LABKEY.Filter.Types and isTableWise attribute TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have some JavaScript code that attempts to create a LABKEY.Filter using our own FilterType that we create on the fly in our code.

This broke with LabKey 16.3 because now a FilterType is supposed to define a function:

  (boolean) isTableWise()

This was the SVN revision:
 47010 n.arnold on 10/19/16 at 9:10 AM Filter: Table/Query-wise search operator

So what is meant by a "wise table"? And what's the consequence of returning true or false?

Thanks.

Scott
slangley@scharp.org2015-01-07 11:26slangley@scharp.org2015-01-14 11:17 What's the plan for supporting IE11 and above? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When we upgraded our standard browser to IE11, I had to write work-arounds for a few UI issues in our modules.

Is there a plan to better support IE11 and future browsers in general? Perhaps an estimate for migrating to Ext JS 5.0 or 5.1? Or a recommended browser-backward-compatibility mode?

Thanks.
simonm2016-02-09 15:11simonm2016-02-29 10:59 Building surveys - concatenate field values TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm having trouble building a survey with some simple functionality and I was hoping someone could point me in the right direction. Specifically:

1) Does anyone have a simple working example of showing/hiding fields based on the input value of another field? I know an example is included in the documentation but I can't make it work.

2) I would like to set the primary key field to a value concatenated from three other fields (patient,visit,sample). How do I do this?

In general, any reference to allowed syntax for a LabKey survey would be greatly appreciated, or pointers to example surveys (aside from those in the documentation).

Thanks,

Simon
Shadi Eshghi2016-05-27 10:48Shadi Eshghi2016-07-01 17:50 Error: Failed to retrieve report results TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am working on an R view and keep getting this error: Failed to retrieve report results. This happens regardless of the contents of the R script. I'd really appreciate any hints on troubleshooting this issue.

Thanks!
saravanan adaikkalavan2015-06-10 12:58saravanan adaikkalavan2015-06-11 13:06 Load dynamic wiki pages on TABS TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

    I'm creating a new TAB and trying to load a wiki page in that tab. I have attached an image in which it shows the options to embed a wiki page. Can I load the wiki page dynamically through code in the tabs? I mean, can I pass a parameter and load the appropriate wiki page in the tab?

Thanks!
sadanand ranbhor2023-03-08 21:28sadanand ranbhor2023-03-08 21:28 How to login to community edition set up TEXT_WITH_LINKSActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have set up local LabKey community edition. How to l get access to login first time?
rpiercy2022-12-14 04:29rpiercy2022-12-14 04:29 Chart / Graphical display of Cohorts that change during a study TEXT_WITH_LINKSActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have set up a visit based study with initially 3 Cohorts of participants. During the study 2 more separate Cohorts are generated from within one of the existing Cohorts to make 5 final cohorts. (i.e. some participants start in one cohort and then shift into two others, as their treatments change).

Setting this up with automatic cohort assignment with a dataset and visits seems straightforwards. However, when I try to view the data within any dataset graphically with time on the X axis and with participants grouped according to their cohort at any given time, it seems not to recognise that the cohorts change.

Is this actually possible to view graphically please (with correct cohort assignment at different times)?

I am using Labkey server 21.7.

Thank you.

Richard
nkanaskar2016-01-01 21:39nkanaskar2016-01-03 22:21 R view error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am trying to run the R script from the Data Analysis tutorial at
https://www.labkey.org/home/Documentation/wiki-page.view?name=simpleDataTablesTutorial4

My R configuration screen shot is attached. The sample R script is as below -

png(filename="${imgout:RChart1.png}");
plot(labkey.data$systolicbloodpressure, labkey.data$diastolicbloodpressure,
main="Systolic vs. Diastolic: All Visits",
xlab="Diastolic", ylab="Systolic", xlim =c(60, 210), ylim =c(40, 150));
dev.off();

When i click on the View tab, it throws the error

Error executing command
javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.

Can anyone please help me on this.
Thanks,
Nitin Kanaskar
IT Research, UAMS
Mike Raboin2015-06-22 10:21Mike Raboin2015-07-07 10:15 Rlabkey selectRows function problem TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I’ve run into a problem trying to access PRIMe via R. I get the following error when I try to use labkey.selectRows():

Error in function (type, msg, asError = TRUE) :
  error:1411809D:SSL routines:SSL_CHECK_SERVERHELLO_TLSEXT:tls invalid ecpointformat list

From the information I’ve been able to track down, this seems to be some problem with the ssl version in RCurl, but I haven't been able to find a solution. Is there a parameter somewhere I need to reset somewhere to specify a different ssl version?

Thanks!
Mike
Leo Dashevskiy2015-10-20 15:02Matthew Bellew2017-01-14 09:26 Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good afternoon, folks!

Build: 40168.872

A way to reproduce:

                    qwpDataset = new LABKEY.QueryWebPart({
                        bodyClass: 'dataset-body',
                        queryName: <some query>,
                        schemaName: <some schema>
                    });

                    qwpDataset.render( <dome div id or el> );

Querying then in a console via:

> $('.dataset-body')

I'm expecting to see some output, but I get an empty array.
Can anyone repro this or am I doing something wrong or misunderstanding this?

Thanks.
-Leo
martin2014-11-12 02:05martin2014-11-13 08:38 external module refreshing TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I created an external HTML+javascript module and it displays and works ok, however, when i make a simple change in my .html file, it doesn't automatically refresh on the server.

this seems unusual because when i tried this on other installation of labkey server it updated really quickly

the only difference i can think of is that my server (14.1) runs on ubuntu while the other one (14.2) runs on windows

do you have any suggestions?
restarting tomcat helps to solve it, but i really can't afford to do it that often.

thanks,

martin
Mark22015-03-27 09:18Mark22015-03-30 13:07 Batch editing of rows TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
HI

I was wondering if someone can show me or point to an example for implementing batch editing of rows in a grid or batch editing by using the survey or another simple means.

Say I selected 5 rows from a grid for example and wanted to add in the same information for every field for each of those 5 rows, I was wondering can that be done in a grid by selection and then batching editing via a form or something else?

I have a grid embedded into a wiki the code as below but dont know if or how it can be extended so it can run in batch editing mode and update or edit a selection of rows instead of one row at a time.

Thanks in advance again


<script type="text/javascript">
    var _grid;

    //use the Ext.onReady() function to define what code should
    //be executed once the page is fully loaded.
    //you must use this if you supply a renderTo config property
    Ext.onReady(function(){
        _grid = new LABKEY.ext.EditorGridPanel({
            store: new LABKEY.ext.Store({
    schemaName: '$schemaName',
containerPath: '$containerPath',
 columns: 'Subject ID,Time Point,Microarray comm',
        queryName: '$queryName'
            }),
            renderTo: 'grid',
            width: 1200,
            height: 100,
            autoHeight: true,
            enableFilters:true,
        pageSize:10,
            editable: true
        });
    });
</script>
<div id='grid'/>
marcia hon2018-02-08 08:02marcia hon2018-02-12 07:18 Uploading CSV to List TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I uploaded a CSV file via Admin>Site>AdminConsole>Pipeline .

How can I now push this CSV file to a List?

The reason I am asking is that we have huge files that need to be uploaded and I'm trying to find ways to upload the files.

Thanks,
Marcia
marcia hon2018-02-09 05:28marcia hon2018-02-12 07:19 RLabkey - Upload Taking a Long Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

We are trying to automate the process of uploading into Labkey.

We are trying to use RLabkey library to insert.

There are 50,000,000 records and we kept it running. Still after one week it is still uploading.

I tried uploading via the "Bulk Upload GUI" option, and it takes 25 minutes.

Please let us know how to get RLabkey to upload in a good time as we would like to automate this process.

Thanks,
Marcia
marcia hon2018-02-02 06:40marcia hon2018-02-05 10:57 Modules TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

How do I create a custom module?

How do you compile it?

I would like to create my own module based on testtriggers.module . I would like it to be called something like ProjectA.module .

Also, how can I rename testtriggers.module?

Thanks,
Marcia
marcia hon2018-02-05 09:45marcia hon2018-02-12 07:18 Transformation Script TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

Is there such a thing as a Transformation script for datasets? I have done it with assays, but not datasets.
marcia hon2018-01-30 06:33marcia hon2018-02-01 06:55 _netrc TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have configured _netrc.txt as specified in the documentation.

I get the error:

Error in processResponse(mydata, header, handle) :
  HTTP request was unsuccessful. Status code = 401, Error message = NA 401

My HOME variable is set to: C:\Users\marcia_hon\Documents

Also, my _netrc.txt file is set to:

machine labkey.camh.ca
login email@camh.ca
password password_for_emal@camh.ca

My script is:

library(Rlabkey)
query <- paste('SELECT AnimalId FROM AnimalInfo WHERE AnimalId = 8')
data <- labkey.executeSql(baseUrl="url",
                           folderPath="folder_path",
                           schemaName="lists",
                           sql = query,
                           showHidden = TRUE)

I appreciate all your help.

Marcia
Lili2010-05-07 11:31Lili2010-05-10 12:30 Customize subfolder initial view TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
How can I customize the initial view of a subfolder below project level? For example, I'd like to display R diagrams when user fist comes to the subfolder.
lewis j mcgibbney2015-03-16 12:26lewis j mcgibbney2015-03-16 14:18 Build Error with Labkey Trunk - Server TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi Folks,
I am struggling to build server out of trunk at the following version

lmcgibbn@LMC-032857 /usr/local/labkey/server(master) $ svn info
Path: .
Working Copy Root Path: /usr/local/labkey
URL: https://hedgehog.fhcrc.org/tor/stedi/trunk/server
Relative URL: ^/trunk/server
Repository Root: https://hedgehog.fhcrc.org/tor/stedi
Repository UUID: a4ab64de-fbdc-0310-83ae-be1847ca59a0
Revision: 37086
Node Kind: directory
Schedule: normal
Last Changed Author: a.galuhn
Last Changed Rev: 37085
Last Changed Date: 2015-03-16 11:37:17 -0700 (Mon, 16 Mar 2015)

I've attached by build log where it complains about config.properties not being present... which is true. I don't know what this file is meant to look like.
I'm using the following JDK and Apache Ant version

lmcgibbn@LMC-032857 /usr/local/labkey/server(master) $ ant -version
Apache Ant(TM) version 1.9.4 compiled on April 29 2014
lmcgibbn@LMC-032857 /usr/local/labkey/server(master) $ java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)

Does anyone have an idea what is meant to go into config.properties?
Thanks
Lewis
Leo Dashevskiy2015-03-18 10:43Leo Dashevskiy2015-03-19 15:39 Querying for the Announcements TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi folks!

I know that the Announcements webpart is visible even without a user being logged in, which means it is visible to the guest user, correct?

We have a 'home page' for our LK server that we'd like to have a mirroring copy of the main Announcements webpart, so my question is: is there an API to obtain the listing of Announcements or maybe they are stored in the database in a nice format somewhere, in which case in which schema and table?

Thanks.
-Leo
Leo Dashevskiy2014-12-19 10:07Leo Dashevskiy2014-12-19 11:14 A bug with the "Add user" interface? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello there!

Steps to reproduce:

1. Navigate to <labkey portal>/security/addUsers.view?#blank - the UI to add new users.
2. Enable the checkbox "Clone permissions from user"
3. Start typing someone's name / email into the adjacent text box, select a user, which has a "Display name", which is not his email, note that it is the "Displayed name", not the email that gets shown in the text box
4. Click the "Permissions" button, expecting to see the permissions of the selected user
5. 404 page not found pop up, since the picked "Display name" value is passed to the email parameter

Thanks.
-Leo
Leo Dashevskiy2012-09-06 15:29Leo Dashevskiy2018-10-27 23:49 Sorting in Labkey-SQL TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

I have a combo, which gets its data from a LABKEY.ext.Store, which in turns get its data from a query.

Some rows of a particular column in the query are:

<B710-A> / <R780-A>
FSC-A / FSC-H
FSC-A / SSC-A
<R660-A> / <G560-A>

and this is the order, in which the rows get displayed

I was expecting and would like for sorting to be like:

<B710-A> / <R780-A>
<R660-A> / <G560-A>
FSC-A / FSC-H
FSC-A / SSC-A

or the reverse, but looks like the db ignores the leading "<" altogether.

Is there special syntax to achieve, what I'm after?

Thanks.
-Leo
Leo Dashevskiy2014-07-03 11:58Leo Dashevskiy2015-10-20 14:49 Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Thanks.
Leo Dashevskiy2014-11-11 12:45Leo Dashevskiy2014-11-11 13:53 A quick question about the difference between the LABKEY.user.isAdmin and LABKEY.user.isSystemAdmin TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
What is it exactly? Thanks.

-Leo
Leo Dashevskiy2013-12-17 15:35Leo Dashevskiy2015-03-18 10:33 An issue with resizing a web part, when the webpart's title is long TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Steps to reproduce:

1) add a new Wiki webpart
2) for its title specify:
"A really long long long title to see if the layout breaks indeed"
3) for its source specify:

<script type='text/javascript'>
    if ( window.jQuery == undefined )
        document.write( decodeURI("%3Cscript src='//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js' type='text/javascript'%3E%3C/script%3E") );
</script>

<script type='text/javascript'>

Ext.namespace('LABKEY.ext');

LABKEY.ext.test_HAI_vs_GE = Ext.extend( Ext.Panel, {

    constructor : function(config) {

        var pnlReport = new Ext.Panel({
            bodyStyle: 'padding: 1px;',
            defaults: {
                autoHeight: true,
                hideMode: 'offsets'
            },
            forceLayout: true,
            html: 'Switch to the \'Parameters\' tab, select the parameter values and click the \'RUN\' button to generate the report',
            layout: 'fit',
            title: 'Report'
        });

        var pnlTabs = new Ext.TabPanel({
            activeTab: 0,
            autoHeight: true,
            defaults: {
                autoHeight: true,
                border: false,
                hideMode: 'offsets',
                style: 'padding-bottom: 4px; padding-right: 4px; padding-left: 4px;'
            },
            deferredRender: false,
            forceLayout: true,
            items: [
                pnlReport
            ],
            layoutOnTabChange: true,
            minTabWidth: 100,
            resizeTabs: true
        });

        this.border = false;
        this.boxMinWidth = 370;
        this.cls = 'hai_vs_ge';
        this.frame = false;
        this.items = pnlTabs;
        this.layout = 'fit';
        this.renderTo = config.webPartDivId;
        this.webPartDivId = config.webPartDivId;
        this.width = document.getElementById(config.webPartDivId).offsetWidth;

        LABKEY.ext.test_HAI_vs_GE.superclass.constructor.apply(this, arguments);

    }, // end constructor

    resize: function(){
    }
}); // end HAI_vs_GE Panel class


    var initHAI_vs_GE = function(){
        var webPartDiv = 'test';

        var resizeModule;

        var HAI_vs_GE = new LABKEY.ext.test_HAI_vs_GE({
            webPartDivId: webPartDiv
        });

        resizeModule = function(w, h){

            LABKEY.ext.Utils.resizeToViewport( HAI_vs_GE, w, -1, null, null, -5 );

            HAI_vs_GE.resize();
        };

        Ext.EventManager.onWindowResize( resizeModule );
        Ext.EventManager.fireWindowResize();

    };

    Ext.onReady( initHAI_vs_GE );

</script>

<div id='test'></div>

<style type="text/css">
/*
    vim: ts=4:sw=4:nu:fdc=4:nospell
*/
/*
    Copyright 2013 Fred Hutchinson Cancer Research Center

    Licensed under the Apache License, Version 2.0 (the 'License');
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an 'AS IS' BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
*/

@charset 'utf-8';


.labkey-knitr #fw_container {
    width: 80%;
    margin: 0 auto;
}

.labkey-knitr .caption {
    font-weight: bold;
    font-size: 100%;
    text-align: center;
}

.labkey-knitr .knitr_table {
    margin: 0px auto;
}

.labkey-knitr .knitr_table table {
    border-collapse: collapse;
    border-spacing: 0px;
    margin: 0px;
}
.labkey-knitr .knitr_table th {
    padding: 5px;
    font-weight: bold;
    background-color: #ccc;
}
.labkey-knitr .knitr_table td {
    padding: 5px;
}

.labkey-knitr .knitr_table tr:nth-child(odd) {
    background-color:#fff;
}

.labkey-knitr .knitr_table tr:nth-child(even) {
    background-color:#eee;
}

.labkey-knitr p {
    clear: both;
}

.labkey-knitr body {
    width: 800px;
    margin: auto;
}

.labkey-knitr pre, .labkey-knitr img {
    max-width: 100%;
}

.labkey-knitr img {
    display: block;
    margin: auto;
}

/* ************************************************************ */
.hai_vs_ge legend {
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}


.hai_vs_ge {
    line-height: 100% !important;
}

.iconConfigure {
    background-image: url(../_images/configure.png);
}

.iconDelete {
    background-image: url(../_images/delete.png);
}

.iconExport {
    background-image: url(../_images/download.png);
}

.iconImport {
    background-image: url(../_images/upload.png);
}

.iconNew {
    background-image: url(../_images/folder_new.png);
}

.iconReload {
    background-image: url(../_images/reload.png);
}

.iconUpdate {
    background-image: url(../_images/editprops.png);
}


/* Error code from R */
pre, .ext-mb-text {
    white-space: pre-wrap;
}

/* Class specs */

.right-text {
    text-align: right;
}

.left-text {
    text-align: left;
}

/* Centered text */
.centered-text, .bold-centered-text, .sortable-list li, .hai_vs_ge .x-grid3-hd-row {
    text-align: center !important;
}

/* Bold text */
.bold-text, .bold-centered-text, .sortable-list li, .infoMask div, .hai_vs_ge .mask-loading div, .ux-lovcombo-list-item-all {
    font-weight: bold !important;
}

/* Auto margin */
.centered-table {
    margin: auto;
}

.hai_vs_ge .x-btn {
    margin-right: 0px !important;
}

/* Zero margin */
.hai_vs_ge .x-tab-strip, .sortable-list, .ulList {
    margin: 0;
}

/* Zero padding */
.hai_vs_ge .x-tab-panel-header, .sortable-list, .ulList {
    padding: 0;
}

/* Hidden class */
.hidden {
    display: none;
    visibility: hidden;
}

.simple-panel-header {
    background-color: white;
    border-bottom-width: 0px !important;
    font-family: verdana, arial, helvetica, sans-serif;
    padding-bottom: 3px;
    padding-left: 0px;
}

.simpler-panel-header {
    background-color: white;
    font-family: verdana, arial, helvetica, sans-serif;
    padding-bottom: 3px;
    padding-left: 5px;
}

.white-background {
    background-color: white !important;
}

.hai_vs_ge .mask-loading {
    border-left: 0px;
    left: 0 !important;
    margin-left: 0px;
    padding-left: 0px;
    width: 100%;
    z-index: 999;
}

.hai_vs_ge .mask-loading div {
    background: no-repeat 5px 5px;
    background-color: white !important;
    background-image: url(images/loading.gif) !important;
    background-position: 0% 50%;
    padding: 5px 10px 5px 25px;
    text-align: center;
}

.infoMask {
    width: 100% !important;
    z-index: 999;
}

.infoMask div {
    background-color: white;
    cursor: default;
    text-align: center;
}

/* Safari fixes not to cut off the radio button */
.hai_vs_ge .x-form-radio {
    margin-left: 2px !important;
}
.hai_vs_ge .x-form-check-wrap {
    margin-bottom: 1px;
}

.hai_vs_ge ul.x-tab-strip-top {
    padding-top: 0px;
}


/* Ext4 */
.hai_vs_ge .x4-btn-inner {
    padding-left: 4px;
    padding-right: 4px;
}


/* Tweaks for jQuery drag-and-drop in particular and list in general */
.draggableHandle {
    cursor: move;
}

.ui-state-highlight {
    width: 1em;
    line-height: 1.2em;
}

.ui-sortable-helper, .sortable-list, .ulList, .hai_vs_ge .x-tree-node, .hai_vs_ge .x-tree-node-ct {
    list-style-type: none;
}

.sortable-list li, .ulList li {
    margin: 3px 0px 3px 4px; /* 0.2em 0.3em 0.2em 0.3em */
    padding: 1px;
    float: left;
}

.sortable-list li {
    font-size: 1em;
}

/**********************************/
/* Ext Tree Fixes */
.hai_vs_ge .x-tree-node,
.hai_vs_ge .x-tree-node-ct,
.hai_vs_ge .x-tree-root-ct {
    padding-left: 0px;
    -webkit-padding-start: 0px;
}

.hai_vs_ge .x-tree-root-ct {
    margin: 0;
    -webkit-margin-before: 0em;
    -webkit-margin-after: 0em;
    -moz-padding-start: 0px;
}

.hai_vs_ge .x-tree-selected {
    background-color: white !important;
}

.hai_vs_ge .x-tree-node-over {
    background-color: white !important;
}

/**********************************/

/* Ext TabPanel fixes */
.hai_vs_ge .x-tab-strip {
    padding-left: 5px;
}

.hai_vs_ge .x-tab-right {
    border-bottom-width: 0px !important;
}

/********************************/

/* Ext.Resizable fix */
.hai_vs_ge .xresizable-wrap {
    margin: 0 auto;
}
/********************************/

/* Ext GridPanel fixes */

/* Fix for the column headers to look better: the pull-down arrow link will not overlap with the text */
.hai_vs_ge .x-grid3-hd-inner {
    padding-right: 15px;
}

/* Important fix for proper alignment */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
    .hai_vs_ge .x-grid3-cell {
        box-sizing: border-box;
    }
}

/* Override not to have the blue default background of numberers and rowSelectionCheckBoxes */
.hai_vs_ge .x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,
.hai_vs_ge .x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,
.hai_vs_ge .x-grid3-body .x-grid3-row-selected .x-grid3-td-expander {
    background-image: none;
}

/* Fix for the numberer background not to look ugly for larger column widths */
.hai_vs_ge .x-grid3-body .x-grid3-td-numberer {
    background-image: none;
}

/* Make text selectable */
.hai_vs_ge .x-list-body dt EM,
.hai_vs_ge .x-list-header-inner DIV EM,
.hai_vs_ge .x-grid3-row td,
.hai_vs_ge .x-grid3-summary-row td,
.hai_vs_ge .x-grid3-cell-text,
.hai_vs_ge .x-grid3-hd-text,
.hai_vs_ge .x-grid3-hd,
.hai_vs_ge .x-grid3-row
{
    -moz-user-select: inherit !important;
    -khtml-user-select: text !important;
    -webkit-user-select: text !important;
}

/*************************************/

/* Fix so that the buttons on toolbars look normal (not text) */
.hai_vs_ge .x-toolbar .x-btn-tl,
.hai_vs_ge .x-toolbar .x-btn-tr,
.hai_vs_ge .x-toolbar .x-btn-tc,
.hai_vs_ge .x-toolbar .x-btn-ml,
.hai_vs_ge .x-toolbar .x-btn-mr,
.hai_vs_ge .x-toolbar .x-btn-mc,
.hai_vs_ge .x-toolbar .x-btn-bl,
.hai_vs_ge .x-toolbar .x-btn-br,
.hai_vs_ge .x-toolbar .x-btn-bc {
    background-image:url(../gtheme/img/lkbtn.gif);
}

.hai_vs_ge .x-toolbar .x-btn-tl{
    background-position: 0 0;
}
.hai_vs_ge .x-toolbar .x-btn-tr{
    background-position: -3px 0;
}
.hai_vs_ge .x-toolbar .x-btn-tc{
    background-position: 0 -6px;
}

.hai_vs_ge .x-toolbar .x-btn-ml{
    background-position: 0px -24px;
}
.hai_vs_ge .x-toolbar .x-btn-mr{
    background-position: -3px -24px;
}

.hai_vs_ge .x-toolbar .x-btn-mc{
    background-position: 0 -1096px;
}
.hai_vs_ge .x-toolbar .x-btn-bl{
    background-position: 0 -3px;
}
.hai_vs_ge .x-toolbar .x-btn-br{
    background-position: -3px -3px;
}
.hai_vs_ge .x-toolbar .x-btn-bc{
    background-position: 0 -15px;
}
/**********************************/

.extra5pxPadding {
    padding: 5px !important;
}

.extra10pxPaddingLeft {
    padding-left: 10px !important;
}

#fancybox-buttons ul {
    width: 73px !important;
}

</style>

4) make your window narrow (say 600 px)
5) observe how LABKEY.ext.Utils.resizeToViewport() makes a large empty region on the right of the webpart to appear (incorrectly computes the width somewhere)

Note that if you do not use the LABKEY.ext.Utils.resizeToViewport() method and just reload the page, when your window is about 600 px wide, then the inner panel renders correctly

Thanks.
-Leo
Leo Dashevskiy2015-01-02 13:49Leo Dashevskiy2015-01-05 13:12 Mechanism of the custom wiki as a drop-down via a menu link TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello, folks!

In order to 'demo' the contents of one such wiki menu, we have a need to 'simulate' a mouse hovering over the menu link item, so that the wiki drop down rolls out.

My initial thinking was to do it via some DOM manipulation, namely, changing the menu link item's styling to 'selected' and turning on the visibility for the actual wiki drop down. That almost worked except the menu seems to be loaded on demand and so when I do turn its visibility on, I do not see the actual menu wiki contents, but I see a loading gif icon. See the attached screenshot. (If I by hand hover over the menu link item, the wiki drop down displays correctly and afterwards if I do the DOM manipulation described above, then the wiki menu shows as expected, since it has already been loaded/fetched, so it seems.)

Is there some way to programmatically trigger the drop-down or something along these lines?

Any recommendations or suggestions are welcome.

Thanks.
-Leo
Leo Dashevskiy2014-12-12 09:19Leo Dashevskiy2014-12-12 15:25 Profiling a LabKey SQL query with some "virtual" tables... TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good morning, everyone!

There is a query I'd like to optimize by profiling it.
It seems, though, that it relies on some "virtual" LabKey tables, since I'm unable to find via pgAdmin the schema and table it relies on. I have the following line in my LabKey SQL statement:

FROM
 assay.ExpressionMatrix.matrix.InputSamples AS GEM

Where / how is this line translated to the actual underlying SQL?

Thanks.
-Leo
Leo Dashevskiy2015-06-01 09:00Leo Dashevskiy2015-06-01 10:26 A bug in executing a query through JavaScript? (Not respecting ORDER BY) TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good morning, folks!

Here is an example, where the query is displayed as expected:

https://test.immunespace.org/query/Studies/executeQuery.view?query.queryName=Test&schemaName=study&query.containerFilterName=CurrentAndSubfolders

The query "Test" has the following SQL code in it:

SELECT
 Label,
 CAST( Num AS INTEGER ) AS Num,
 hipc_funded
FROM
(
   SELECT
    Label,
    REPLACE( Label, 'SDY', '' ) AS Num,
    hipc_funded
   FROM
    StudyProperties
   WHERE
    Label != 'SDY_template'
) AS First
ORDER BY
 Num

Note that in the "View" menu I picked the "Folder Filter" to be "Current folder and subfolders".


If now I open the JS console and execute the following:

SQL = 'SELECT Label, CAST( Num AS INTEGER ) AS Num, hipc_funded FROM ( SELECT Label, REPLACE( Label, \'SDY\', \'\' ) AS Num, hipc_funded FROM StudyProperties WHERE Label != \'SDY_template\' ) AS First ORDER BY Num'


            LABKEY.Query.executeSql({
                containerFilter: 'CurrentAndFirstChildren',
                containerPath: '/Studies',
                schemaName: 'study',
                sql: SQL,
                success: function(d){
                    console.log( d.rows[0].Num + ', ' + d.rows[1].Num );
                }
            })

The result is:

162, 61

But I expect those numbers to be in proper ascending order.

What is going on here?

Thanks.
-Leo
Leo Dashevskiy2017-09-01 12:37Leo Dashevskiy2017-09-07 16:09 Two innocuous little questions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello all!

1.
Do LABKEY.user.isGuest and LABKEY.user.isSignedIn always have opposite values or are there some exceptions?

2.
Wanted to see if it's a bug or a feature on your guys' end.
We've got a table column initially called: "study_time_t0_event"
Your caption engine converts it to "Study Time T0Event".

For some reason we query it with colNameOpt = 'caption' (and not 'rname') and then "munge" it:
lowercase it and replace "_" with " ", but that results in: "study_time_t0event", which is different from the original, and that creates some problems that are resolved manually...
So my question is: is it intended in your case instead of replacing "_" with a " " to drop the "_" after a numeric?

Thanks and good Friday to all!
-Leo
Leo Dashevskiy2016-07-29 11:15Leo Dashevskiy2016-07-29 15:10 Manipulating the system database to reset the favicon logo TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello there!

We have a testing server that periodically gets to become an identical copy data-wise of the production server with a few visual tweaks to differentiate it from production.

We have a SQL script that does the latter. One thing we still have to do "by hand" is resetting the favicon icon from a custom one to default, and so I was wondering, what SQL needs to be run to do so programmatically.

Thanks.
-Leo
Leo Dashevskiy2015-04-06 15:09Leo Dashevskiy2016-03-02 16:15 Custom view for a query web part - is there a way not to display the bar with the View name. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello, folks!

We are rendering a QueryWebPart into a panel's body. We dynamically generate it based on the supplied queryName and schemaName. For one such combination, it is necessary to provide in the config a custom viewName.
We see that in such case there's a bar above the main grid showing the view name that can be closed via the X button at the right end.

Is there a config or a param to specify not to show this top bar by default?
Or at worst is there a way to click the X button programmatically?

Thanks.
-Leo
Leo Dashevskiy2017-02-23 16:18Leo Dashevskiy2017-02-28 13:11 Is it possible to pull in a CSS file within a Wiki ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
This works when placed in an HTML file of a file-based module, in my case, the "footer", which might not be regular module, I'm not sure, but not when placed into a UI based wiki:

<link rel="stylesheet" href="<%=contextPath%>/ISCore/Common/ISCore.css">

I do not see the <link> tag in the source code of the rendered wiki.

Thanks.
-Leo
Will Holtz2017-08-12 11:42Leo Dashevskiy2017-09-01 12:40 unicode constants in queries TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In a query file, I would like to replace a character with a zero width space, to allow for line breaks. I tried

replace(myField, '/', U&'\200B') AS myNewField

But I get an error 'Could not resolve column: U'. Is there away to write a unicode constant in Labkey SQL? I'm sure I can accomplish this by adding Java code for column formatting, but doing it in a query would be much simpler....

The underlying DB is Postgresql, and I am still running Labkey v17.1

Thanks!
-Will
Leo Dashevskiy2013-11-13 18:39Leo Dashevskiy2014-12-12 09:21 Web part location strictly on the right? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

I need for a web part to only be allowed to be added to a dashboard on the right hand side, in the narrow version.

I followed the direction here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=webPartConfig&_docid=wiki%3A908a88be-ab7e-102a-bed1-d104f9cd81b1


Here is my begin.webpart.xml file sitting in <module name>/resources/views/:

<webpart title='navTree' xmlns='http://labkey.org/data/xml/webpart'>
    <view name='begin'/>
    <locations>
        <location name='right'/>
    </locations>
</webpart>

But my module name then shows up both in the left drop-down 'add webpart' as well as the right one...

Thanks.
-Leo
Leo Dashevskiy2015-04-27 15:33Leo Dashevskiy2015-10-20 13:24 Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello, folks!


Is there a JavaScript API, which would allow conversion from a string-based filter description: "age%7Egt=0" (decoded would read "age~gt=0")


directly to an object, which is the result of the call:

LABKEY.Filter.create('age', 0, LABKEY.Filter.Types.GREATER_THAN)


And if there isn't one, it seems that it is needed, since you have 2 differnt approaches to filter type names.

On a related note: the R package Rlabkey's makeFilter() method seems to explicitly have such a mapping the other way and the class LABKEY.Filter.FilterDefinition seems to also have a method getURLSuffix(), which does the backward mapping, from what is needed.

Thanks.
-Leo
Leo Dashevskiy2015-10-20 15:06Leo Dashevskiy2015-10-21 17:25 Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Or is it not possible because this LABKEY.Filter.Types.IN filter's value is not primitive, but more like an encoded array of strings?

Thanks.
-Leo
Leo Dashevskiy2016-05-26 13:40Leo Dashevskiy2016-05-31 16:15 Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi guys!

I've got a module based query that has the need for the container column.

https://test.immunespace.org/query/Studies/executeQuery.view?schemaName=study&query.queryName=GEE_studyCohortsInfo

Simply including "container" as an extra column pulled in the container's EntityId, but I need the container's name.

So I modified the query's metadata to make that column a lookup (foreign key) and the column is now a proper clickable link with the correct text in the rendered view and in the Schema Browser it is a link, which expands properly to show all of the available columns of the core.Containers table.

But I'm unable to include the name of the container in the query as part of another column either by specifying "container.Name", which results in an error: "Unknown field", or by using "container", which pulls in the EntityId, not the name.

My query XML contains the following:

            <table tableName='GEE_studyCohortsInfo' tableDbType='TABLE'>
                <columns>
                    <column columnName='Container'>
                        <fk>
                            <fkColumnName>EntityId</fkColumnName>
                            <fkDbSchema>core</fkDbSchema>
                            <fkDisplayColumnName>DisplayName</fkDisplayColumnName>
                            <fkTable>Containers</fkTable>
                        </fk>
                    </column>
                </columns>
            </table>

I need to include the following column: cohort || ' (' || <container name> || ')'

By the way, it appears that a module based query behaves differently than a UI based one:

Here is a link to a copy of the query (with the metadata included):
https://test.immunespace.org/query/Studies/begin.view?schemaName=study&queryName=Test#sbh-qdp-%26study%26Test
The lookup does not work. I played around with <fkDisplayColumnName useRawValue/>, but that didn't help.

What am I doing wrong?

Thanks.
-Leo
laurapas2016-01-29 11:38laurapas2016-01-29 12:01 Automatically populate a blank list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
Do you have any suggestions for automatically populating standard lists when creating a particular folder type (e.g., Panorama)? Right now, I'm using a list archive file and importing it manually, as per the LabKey list documentation/tutorial. I'd like to get rid of manual steps if possible.

Regards,
Laura
kune2014-10-31 02:37kune2014-11-03 02:05 Simple Module HTML elements id`s TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I tried to construct a simple module consisting of HTML, some javascript files, image files and css files and defined webpart xml. Everything worked as i expected until i tried to add the same module webpart twice on the same page... These identical modules mixed their layouts together. I expect it`s because of clashing IDs of HTML elements. Is there a way to provide private a namespace of module or should i walk around it using HTML classes instead of IDs?

Thank you for your response, Michal
kune2015-03-03 01:23kune2015-03-03 20:17 Problem with FK references core.Users TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello am developing client side file based module that defines own schema and i want to point some foreign keys to core schema is it possible?

One of my tables looks like that:

CREATE SCHEMA WorkFlowManagement;

CREATE TABLE WorkFlowManagement.WorkFlows(
    WorkFlowId BIGSERIAL NOT NULL,
    WorkFlowName TEXT NOT NULL UNIQUE ,
    ResponsiblePersonId INTEGER,
    ContainerPath TEXT NOT NULL,
    WorkFlowType TEXT NOT NULL,

    CONSTRAINT PK_WorkFlowId PRIMARY KEY (WorkFlowId),
    CONSTRAINT FK_ResponsiblePersonId FOREIGN KEY (ResponsiblePersonId) REFERENCES core.Users(UserId)
    ON UPDATE NO ACTION
    ON DELETE SET NULL
);


This will end up with 500 error:
ERROR: referenced relation "users" is not a table

It seems like there are no table users. I correctly set dependency on core module in module.xml (checked without db script). schema.xml should be correctly defined too.

Any help will be appreciated.

Thanks Michal.
bront@kcr.uky.edu2015-04-06 15:03kevink2015-04-07 10:47 Create a Container with Default Module via JavaScript TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I see where I can create a new container via JavaScript:

LABKEY.Security.createContainer({
name:'testLab'
})

Is it also possible with JavaScript, to add a module to this newly created container (and maybe assign permissions)?

Thanks,

bront
Leo Dashevskiy2014-07-29 14:15kevink2014-08-07 14:31 A bug in the Flow Samples joining logic TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Steps to reproduce:

1. Import some FCS files
2. Import a tsv file with sample set data (with just one row referencing one signle FCS file)
3. Join the FCS files to the sample set from 2. (by specifying the join fields)
4. Append the sample set above with another one (with just one row, but referencing a different FCS file)

Expected result: the set of joined FCS files should now be of size 2
Observed result: the set of joined FCS files is still of size 1

SVN revision: 33495

Thanks.
Will Holtz2015-01-09 13:56Karl Lum2015-01-21 11:29 runProperties.tsv does not contain runDataUploadedFile field TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
An issue I previously reported was recently fixed:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=21065 (module based assays with transformed data don't serialize transformed data rows) -- thanks! I grabbed a recent revision of the development branch (r35909) and tried to perform the repro listed at the top of that issue (2014-07-10). When I try to import the data set into the assay (via an excel file), I get the error:

Error in file(file, "rt") : invalid 'description' argument
Calls: read.table -> file
Execution halted

The transformation script is failing because runProperties.tsv does not have a runDataUploadedFile field. This same step completes for me on my v14.2 system.

Should I expect this to work with the revision I checked out? Perhaps the revision I checked out has some incomplete work surrounding transformations?

thanks!
-Will
juan anaya2017-05-03 07:56juan anaya2017-05-05 05:16 Running R scripts from local machine while server in admin mode TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a development server and a production server and when I implement new scripts into the development server, I want to put the server into administrator mode so nobody can login while I'm doing the testing. However, when I try to run the scripts from the local machine, I get a 401 error, even though my account information is in the script and my account is an admin account. Here is the error that I get:

Error in processResponse(mydata, header, handle) :
  HTTP request was unsuccessful. Status code = 401, Error message = Found

It works fine when I run the script while not in admin mode.
wnels2@uky.edu2008-01-31 13:48Jon (LabKey DevOps)2015-04-28 21:52 navPageHeader TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I think this is a quick question. Can you tell me how to set the title of the GWT page that I am loading? By default it is set to hostname:container (it's style is labeled navPageHeader). I think I need to set the <html><title> for the document as well.
If you could point me to some example code I would be grateful.
 
Thanks,
Bill
Ben Bimber2010-03-30 17:33Jon (LabKey DevOps)2015-04-28 21:55 change display name on a query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
is there an xml property to change the display name on a query? i have a ton of these stored in a file based module and i've named them things like demographicsAge.sql for the Age query based on the demographics dataset. It makes sense for file organization, but users would probably prefer to see if called 'Age'.

I looked through tableinfo.xsd, but the obvious properties like tableTitle did not seem to work. is there something i'm missing? thanks.
Ben Bimber2010-07-07 16:00Jon (LabKey DevOps)2015-04-28 21:59 possible to set lookup validator in query XML? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
for a query, you can define a lookup validator, which restricts entered values. can i put something in the query XML that creates that or is that only possible through the GUI? thanks for the help.
Ben Bimber2010-07-13 13:13Jon (LabKey DevOps)2015-04-28 21:59 Ext Forms and CSS TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Here is a page with example Ext forms:
http://www.sencha.com/deploy/dev/examples/form/dynamic.html

If I copy this code and try to run it through labkey, there's some obvious CSS distinctions. I'm not too worried about some of the more superficial distinctions, but collapsible form sections are not working properly. The sizing of those is off (see attached screenshot), causing fields to get clipped. I'm guessing that has something to do with CSS differences, although I could be wrong.

We need to make a lot of forms and Ext seems like the right route. Do differences in CSS probably explain this? Does anyone have suggestions on the best approach to get around that? thanks.
Ben Bimber2010-10-25 11:58Jon (LabKey DevOps)2015-04-28 22:00 conditional names on views? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
on each labkey page, in the upper left corner, immediately below the menu bar there's a title. This is determined by the name of your view or wiki page. You can edit this title in the .view.xml file. However, can I conditionalize this using JS code? My specific scenarios are things like:

1. We might want the title to be something like 'Animal Id: '+subject, where subject is a variable taken from the URL or other code

2. We might have a single HTML/js page that load forms. There might be a url param that sets formType. We might want the page titled 'Physical Exam' or 'Weight', depending on this param.

thanks for the help.
michael_stover@urmc.rochester.edu2011-07-26 08:40Jon (LabKey DevOps)2015-04-28 22:02 exporting a study TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I've been exporting some studies and moving them to a new server. I discovered that specimen requests do not seem to be exported. Is this true? Also, the Specimen Request Settings did not transfer. How do I copy the requests and the request settings to a new server?
ppirrotte@tgen.org2011-10-02 10:35Jon (LabKey DevOps)2015-04-28 22:02 trigger pipeline jobs using java client api TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

To automate our workflow from acquisition to analysis we've been pushing MS raw files towards the Labkey/CPAS webdav directory where they wait to be processed.

Is there a way to trigger the xtandem pipeline (+peptide/protein prophet) via the java client api?

Kind regards,

Patrick
dennisw2012-06-20 12:23Jon (LabKey DevOps)2015-04-28 22:04 checkForReload.view question regarding specimen import TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I wrote a windows service to help with importing study data into our labkey server, and used Adam R's suggestion to to generate a web request (checkForReload.view) to trigger a new pipeline job. This was working well while we were using the 20297 build. Now that we have upgraded to the 20551 build we are seeing that it is still importing the datasets, but after it's done it seems to stop there and does not go on to try to import the new .specimen archive.
Leo Dashevskiy2012-07-09 14:22Jon (LabKey DevOps)2015-04-28 22:04 How does one "OR" two LABKEY.FIlter-s ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Specifying them in a filterArray by default creates an "AND" relationship between them, correct?
Is there a way to "OR" a subset of them, so that this subset is "AND"-ed with the rest of the filters in the arrray?

Thanks.
slangley@scharp.org2012-08-29 18:43Jon (LabKey DevOps)2015-04-28 22:06 Using multiple containerPaths with LABKEY.Security.getContainers() TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Does the LABKEY.Security.getContainers() method still support passing in an array of containerPaths as per the documentation?

I tried it this afternoon and the ActionURL.js is throwing an exception as if it expects the passed in containerPath to always be a string rather than being an array.

Screenshot attached.

Thanks.

Scott
--
Scott Langley
Systems Analyst/Programmer
Statistical Center for HIV/AIDS Research and Prevention (SCHARP)
Fred Hutchinson Cancer Research Center
Seattle, Washington

slangley@scharp.org
adam2013-04-10 17:25Jon (LabKey DevOps)2015-04-28 22:07 R.I.P. Java 6 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Oracle eliminated public support for Java 6 in February and LabKey deprecated Java 6 support in 13.1; for months, we've encouraged everyone to upgrade to Java 7. We're now officially pulling the plug on Java 6: as of tomorrow, the code on the trunk will no longer compile or run on Java 6. If you're still using that 6.5-year-old JDK then it's definitely time to upgrade...

Adam
jwiltse2013-07-22 07:43Jon (LabKey DevOps)2015-04-28 22:08 Is 4pl method curve fit method available with ELISA module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
ELISA module has limited statistical modeling option (linear only). Is 4pl model option available for the ELISA module? If not, are there any plans to add it?
reshmyunni17782013-08-30 02:32Jon (LabKey DevOps)2015-04-28 22:08 Problem with alert display TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I tried to show alert when message received from activemq queue.But it doesn't display.
Code :
public void onMessage(Message message){
try{
if(message instanceof TextMessage){
TextMessage textMessage = (TextMessage)message;
System.out.println("Received message '" + textMessage.getText() +"'");
JOptionPane.showMessageDialog(null, "Received message");
}
}catch(JMSException e){
System.out.println("Caught:" + e);
e.printStackTrace();
}
}

The message printed in console.
Also tried 'Window.alert'.Nothing shown.
Please help me.
Mark22015-03-24 12:31Jon (LabKey DevOps)2015-03-24 13:39 Uploading of files with mutiple tabs within the same folder/project TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have 3 Tabs in one project area. In each Tab I added in the web part "Files". When I upload a file in Tab1 it is also shown in Tab2 and Tab3.

How do I restrict this so that any file that get uploaded in a specific tab is only shown in that tab. Can someone show me or point me to an example of how this can be done.


Thanks in advance
Will Holtz2016-01-07 12:56Jon (LabKey DevOps)2016-01-11 15:25 Using LABKEY.vis TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
An old post (https://www.labkey.org/home/Developer/Forum/announcements-thread.view?rowId=8340) describes how to load all the necessary javascript dependancies for using LABKEY.vis. It is a slightly cumbersome process. Is this still best practice? I noticed that there are some libraries of javascript dependencies defined for LABKEY.vis, (server/internal/webapp/vis/visDependencies.lib.xml and server/internal/webapp/vis/vis.lib.xml). But I can't figure out how to load either of these libraries via my respective .view.xml file.

thanks,
-Will
Will Holtz2016-02-08 16:49Jon (LabKey DevOps)2016-03-01 11:41 detailsQueryRow.view controller with user defined queries TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a file-based module that defines a query on list. It is a very simple query that just has some CASE statements to change how column values are displayed. I can get a details view of a row from the original list using:
/labkey/query/home/MyModule/detailsQueryRow.view?schemaName=lists&queryName=MyList&pk=${rowid}

But if I try to view the details of that same row via the query:
/labkey/query/home/MyModule/detailsQueryRow.view?schemaName=lists&queryName=MyQuery&pk=${rowid}

I get "You do not have permission to read this data". This is all being done with the project/folder admin account. I don't define any access permissions within my module. Is this expected behavior?

thanks!
-Will
Susan Hert2016-03-28 08:43Jon (LabKey DevOps)2017-05-01 21:38 LabKey Server build converting to Gradle TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
During the 16.2 release cycle, we are preparing for the conversion of our build process from Ant to Gradle (http://gradle.org/).

This conversion allows us to improve our build process and better handle dependencies among our modules as well as with third-party libraries. For the 16.2 release, we will continue to support Ant. If you are developing a module that relies on an Ant build file, we will do our best to continue to support that even after the conversion. (Gradle provides convenient mechanisms for integrating with Ant (https://docs.gradle.org/current/userguide/ant.html)).

More details on this change and what it means for developers will be posted as we work through this conversion.

Thanks,

Susan
james skane 930892016-07-15 11:14Jon (LabKey DevOps)2016-07-21 13:32 Pulling LabKey data via python api TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
After setting up my netrc file according to the instructions, I have not been able to pull any data from labkey. Instead am receiving a "ServerContextError" when using the python export script that labkey provides. Is there anything wrong with the following script?


import labkey

server_context = labkey.utils.create_server_context('52.36.10.100', 'home/db_test', use_ssl=True)

my_results = labkey.query.select_rows(
    server_context=server_context,
    schema_name='study',
    query_name='db_test'
)


The ServerContextError is somewhat vague, so any advice on how to resolve this issue would be greatly appreciated!
gkericks2017-02-28 08:25Jon (LabKey DevOps)2017-04-05 11:38 Importing reports from xml files TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi there,

I have been using the study import/reload functionality in Labkey extensively. I am integrating with an external system and I have been doing that by writing data out in the Labkey xml format and importing it as a study. I would like to do the same thing for reports (in particular R reports) so that when I import a study the reports are there already. Is there any way to do this? I know there is an xml specification for reports but I don't know how to connect them to a study.

Any tips or thoughts on this would be much appreciated. Thanks!
Tek Wojenski2017-06-01 06:44Jon (LabKey DevOps)2017-06-02 14:04 Schemas in Schema Browser TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Using the same user, the list of available schemas in the schema browser varies between different sessions for that user. What can be causing this, its very intermittent.
Ben Bimber2017-09-12 14:40Jon (LabKey DevOps)2017-09-12 22:02 Timing of new UI Changes? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi guys - we're just started looking over the new UI and generally it looks great. However, we're going to have some custom code that we will need to adapt when you flip the switch and the new UI becomes default. Do you have a recommendation on when clients should be doing this? For example, while we're toying w/ the new UI on dev machines, our 17.2 production servers will be using the old UI.

If there is a situation where we need different behaviors on old- vs. new-UI, is there a recommended flag or anything that client-side code should use to figure out which UI is being used?

Thanks,
Ben
Edward2018-02-27 06:58Jon (LabKey DevOps)2018-03-05 13:13 Specimens dataset customization TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have a specimen dataset with the following fields:

global_unique_specimen_id   
specimen_number   
draw_timestamp   
visit_value   
ptid   
Sample_Taken_Status   
Sample_Type   
Sample_Arrive_Date   
Sample_Freeze_Date   
Sample_Freeze_Time   
Location

If I use the default labkey specimen template then I labkey does not add the last 6 fields. Is there a way to define these as specimen columns and then whenever I upload specimen data, the data is mapped on to these columns??
Jon (LabKey DevOps)2022-12-12 14:21Jon (LabKey DevOps)2022-12-12 23:02 Maintenance Notice - Upgrade of labkey.org for Monday, December 12th 2022 @ 9:00pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 9:00pm Pacific Time for an upgrade to LabKey 22.12

The site will be offline for approximately one hour.

Please save your work before this time.
jrue@novonordisk.com2007-06-04 15:41Jon (LabKey DevOps)2015-04-28 21:51 File System Server configuration in 2.1 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I was attempting to set up the Apache FTP server today as per your documentation but found the download from your site incomplete. It didn't contain the FTP server but only the labkey config file and integration jar file. When I downloaded the FTP server from the apache site and add in the labkey components, I was unable to start the server using the labkey config file after I had modified it for my site. Has anyone had a similar problem or any success setting up the FTP server?

Thanks,
Jon
aschwin.vanderwoude@btk.fi2008-04-21 02:30Jon (LabKey DevOps)2015-04-28 21:52 new issue: Failed CPAS job cannot be restarted easily TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

In the issue-tracker I couldn't find a way to create a new issue, which I assume is due to a lack of permissions for my user.
I also searched through the issues and didn't find the following report yet.

When a CPAS pipeline fails for whatever reason (e.g. Mascot failed due to a server restart) the state of the job changes to ERROR as expected. Unfortunately, when trying to start the job again with the same files and search-protocol it won't start the job as labkey indicates the job is RUNNING.
It seems the only way to get it to work again, is to force the job to COMPLETE, delete it and remove the corresponding directory structure from the server.

If another method exists to get a job to run again, I would love to know about it.

This bug is present in Labkey 8.1, which runs on:
   * Debian Etch
   * Postgres 8.1
   * Tomcat 5.5.20-2etch2

-Aschwin
Ben Bimber2010-05-10 10:51Jon (LabKey DevOps)2015-04-28 21:59 way to get source XML for query views? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
if i create an XML view in labkey, is it possible to find the XML source behind it? i'm trying to create these in a file based module so they can go under version control and be more easily synced between servers. there does not seem to be an obvious 'view source' button. are they stored in the server somewhere as files or somewhere in postgres?
Ben Bimber2010-05-10 13:47Jon (LabKey DevOps)2015-04-28 21:59 do StudyData and Participant tables have dataSet IDs? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
all datasets in a study have IDs. the participant view accepts a datasetId param, which dictates the set of animals that are used for the 'previous animal'/'next animal' buttons.

do the build-in tables Participant or StudyData have dataset IDs that can be used in the url param described above?
Ben Bimber2010-05-19 06:02Jon (LabKey DevOps)2015-04-28 21:59 use JS code to filter a QWP w/o page reloading? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i have a QWP with a custom button. the button handler runs a query and returns a list of subject IDs. i'd like to take this list of IDs and filter the grid (query.id~in=x;y;z). it'd be nice to do this without page reloading since 10.2 supports that.

can i use javascript to apply a filter to that grid? in the past i always did this sort of thing using URL params, but this requires navigation.

thanks in advance.
Ben Bimber2010-06-11 13:37Jon (LabKey DevOps)2015-04-28 21:59 typo in assay documentation? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
on this page:
https://www.labkey.org/wiki/home/Documentation/page.view?name=programmaticQC

it says that 'assayed' is the value entered in the AssayId field. i'm guessing 'assayed' is supposed to be 'assayId'?
ashoka@seraprognostics.com2010-07-02 12:10Jon (LabKey DevOps)2015-04-28 21:59 Error in retrieving Date fields using Rlabkey with R 2.11.1 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a query in Labkey as follows:
SELECT MS2SearchRuns.Name AS DatasetName,
MS2SearchRuns.MS2Details.PeptideCount AS PeptideCount,
MS2SearchRuns.MS2Details.Created
FROM MS2SearchRuns

which returns a Date field as the last item. If I use labkey.selectRows in Rlabkey to retrieve this data in R, I get an error message with the new R version (2.11.1):

Error in strptime(x, format, tz = "GMT") :
  use of %Z for input is not supported

It used to work fine with the older version of R (I had a 2.10.x before). I noticed that R has changed strptime starting 2.11.0. Any ideas?

Thanks,
-Ashoka
Ben Bimber2010-07-13 12:54Jon (LabKey DevOps)2015-04-28 21:59 does labkey SQL allow regular expression matching? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
does labkey sql allow regular expressions? i did not see it in the documentation. i am trying to do the following:

species can be inferred from subjectID using pattern matching. I have a table with the columns Species and Pattern. I'd like to join this table to study.participant where the Id matches the pattern in the pattern column.

I could approximate this using a bunch of LIKE "r%"; however, using a true regular expression would make it much cleaner and more accurate. thanks.
Ben Bimber2010-08-16 11:25Jon (LabKey DevOps)2015-04-28 21:59 Nightly DB Maintenance still running despite being turned off TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We're running a big data upload for the EHR. I have turned off daily maintenance in the admin console during this process (the import runs periodic analyze). However, the nightly maintenance is still running. Do I need to turn it off somewhere else? Do I need to bounce tomcat for that to take effect? Can I query something in postgres to verify whether maintenance is actually turned off or not?

Thanks.
Ben Bimber2010-10-14 11:03Jon (LabKey DevOps)2015-04-28 22:00 more hard tables / studydata TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
one of our pages runs executeSql() study data. this statement:

"SELECT DISTINCT s.Id FROM study.studydata s WHERE s.LSID IN ('urn:lsid:primate.wisc.edu:Study.Data-108:1047.2.0100922E7.r95061.34f573ec-17a0-102e-8c2a-9926f351b9ae')"

throws this error:

ERROR: UNION types text and integer cannot be matched Position: 1458

seems like it might be related to the other studyData bug i posted earlier?
Ben Bimber2010-10-19 10:23Jon (LabKey DevOps)2015-04-28 22:00 best approach to create webpart? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a lot of webparts that basically look like this:

<script>
Ext.onReady(function(){

someQWP.render('someDiv');

})
</script>
<div id="someDiv"/>



pre-creating that DIV and using the ID to render is not ideal, since it will break down if two instances of this webpart are on the same page. is there a better approach? we could create the DIV using JS; however, I wouldnt know where to target that. thanks for the help.
Ben Bimber2011-02-09 10:34Jon (LabKey DevOps)2015-04-28 22:01 question on use of validation scripts TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The EHR has a list called projects. It has one row per project. Periodically the university sends us a TSV list of all projects. Some of these rows may be different from existing rows, but most are not. I would like to create a mechanism such that a user can cut/paste the entire list from UW, hit upload, then let some code run that figures out whether each row needs to be updated then only makes changes if needed. Can validation scripts be used to contain that logic?

The basic idea is:

- accept TSV input in text area
- some code needs to perform some simple transform/validation on the fields
- per each transformed row, compare to existing table based on project field (the PK). if changes exist, update, if not, do nothing. a validation script could be made to abort with an error, but I dont know if it can be made to simply skip a row without failing the entire batch.

The alternative is to wipe the entire table and replace; however, I'd prefer to retain the audit history on these records if possible.

The whole process could run client-side without a huge amount of work, but there's a lot of awkward back and forth between server and client.
Ben Bimber2011-03-23 10:56Jon (LabKey DevOps)2015-04-28 22:01 something causing custom themes to be deleted? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
yesterday I started working with the 11.1 theme designer. i created a custom theme, saved it, then set it as the theme for multiple projects. I have been unable to figure out what caused it, but twice today my site theme has been reset to the default, and that custom theme has been deleted. it might be a site restart or build that triggered that event, but I cant repro it.

is there anything that would be expected to delete that theme? thanks for the help.
christian.pfaff@novartis.com2011-07-20 06:41Jon (LabKey DevOps)2015-04-28 22:02 Data transformation script run parameters TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello

When you define a ScriptEngine for DataTransformation of type Java you set the "Program Command" as follows:

-jar "${scriptFile}" "${runInfo}"

Is there a documentation of the ${} variables, which are available in this context? I searched for it and couldn't find it.

Thanks in advance and best regards, Christian
slangley@scharp.org2011-08-18 16:32Jon (LabKey DevOps)2015-04-28 22:02 A Fix for Linux Builds TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
On my Linux machine, I need to modify the build.xml file to add this setting inside the <javac> ant tasks:

 encoding="utf-8"

Otherwise, I get these types of compilation errors when certain source files in the module directory are compiled:

"unmappable character for encoding ASCII"

Apparently on my SUSE Linux machine, ASCII is the default encoding.
Ben Bimber2011-09-19 05:12Jon (LabKey DevOps)2015-04-28 22:02 automatically configure project resource in intellij? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in intellij, under File->Settings->Resources, in the 'configure external resources' section you can enter the URI and file-location for the XSD files used in the various XML files. this is very useful b/c intellij can autocorrect and autocomplete; however, it has always been a very manual process. further, every time i switch labkey versions I need to redo it, since file paths might change (say i have 2 copied check out).

is there a better way to do that? thanks in advance.
Ben Bimber2011-09-22 13:20Jon (LabKey DevOps)2015-04-28 22:02 use sql to expand list of principal IDs into a list of the component user IDs? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a table that stores a list of the people who 'subscribe' to certain events. this table has 2 columns: eventName and principalId. The latter is either a userId or a groupId. I'd like to issue a query through the API that takes my list and expands the groups to find all the distinct users subscribing to a given event. the following works, but for my own edification is there a more elegant method to do what i'm trying? not that this is that hard, but it seemed like it ought to be possible in a single query.

--first find groups
select
n.notificationtype,
n.recipient,
m.Userid,
from ehr.notificationrecipients n
left join core.members m on (n.recipient = m.GroupId)
where m.userid is not null

union all

--then union to users
select
n.notificationtype,
n.recipient,
u.UserId,
from ehr.notificationrecipients n
left join core.users u on (n.recipient = u.userid)
where u.userid is not null

thanks.
jdutra2011-12-09 13:38Jon (LabKey DevOps)2015-04-28 22:03 Can't get column widths right in query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a very simple query:

SELECT
Result AS "Flu Type",
COUNT(ParticipantId) AS "Number of Positives"
FROM "rtPCR Result Dataset"
WHERE Result<>'Negative'
GROUP BY Result

with the following Metadata

<ns:tables xmlns:ns="http://labkey.org/data/xml" xmlns="http://labkey.org/data/xml/query">
      <ns:table tableName="PCR_Positives" tableDbType="NOT_IN_DB">
        <ns:columns>
          <ns:column columnName="Flu Type">
            <ns:displayWidth>400</ns:displayWidth>
          </ns:column>
           <ns:column columnName="Number of Positives">
            <ns:displayWidth>100</ns:displayWidth>
          </ns:column>
        </ns:columns>
      </ns:table>
    </ns:tables>

Basically, I would like the Flu Type to have enough room that it will fit on one line. The Number of Positives is a number less than 100, and doesn't need much room at all. However, no matter what displayWidths I put in the metadata, the Flu Type column stays tiny. I have successfully used metadata very similar to the above in other queries, and it has worked. In fact, if I add a random column to this query, and give that column a displayWidth, it works. But the displayWidth on the two existing columns does not seem to work.

A picture of the resulting query is attached. Any suggestions would be appreciated!

- Jen
trent2012-05-30 18:32Jon (LabKey DevOps)2015-04-28 22:03 EditorGridPanel Export Uses Default View Instead of Specified View (in store)? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

Just noticed that if you create an LABKEY.ext.EditorGridPanel with a store (LABKEY.ext.Store) that specifies a custom view to use, the exporting is still using the default view for the table. Is this by design?
slangley@scharp.org2012-11-26 16:38Jon (LabKey DevOps)2015-04-28 22:06 Have you looked at Deft JS? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey Developers,

Have you looked at the Deft JS Library?

  http://www.sencha.com/blog/deftjs-loosely-coupled-mvc-through-dependency-injection/
  http://deftjs.org/

I was thinking of how it might be useful for instantiating the appropriate types of my custom Ext JS classes at runtime using a factory function, based on the results of a database query.

Thanks.

Scott
ymei2012-11-27 09:14Jon (LabKey DevOps)2015-04-28 22:06 How to get the names of all lists in a directory? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

Is there a quick way to get all names/querynames of all the lists in a directory? Or I have to use directly sql "show tables"?

Thanks,
Yongguo
A. Tyrell2013-05-15 13:53Jon (LabKey DevOps)2015-04-28 22:07 Manually Refreshing Ancillary Studies TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have created an Ancillary Study and its data refresh style is set to Manual.
According to the documentation (https://www.labkey.org/wiki/home/Documentation/page.view?name=ancillaryStudy), all I need to do is select Admin -> Go To Module -> Ancillary Study Manual Refresh.

I do not see this option. The only item similar to the aforementioned is Admin -> Go To Module -> "Study Name" Start Page but this does not refresh the data.

How can I refresh the data for this kind of ancillary study?

Thanks,

A. Tyrell
Leo Dashevskiy2013-06-28 17:59Jon (LabKey DevOps)2015-04-28 22:08 Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi guys!

I have the following table in the opencyto_quality_control schema:

CREATE TABLE opencyto_quality_control.stats
(
    Container ENTITYID NOT NULL,
    sId INT NOT NULL,
    fileId INT NOT NULL,
    gsId INT NOT NULL,
    population TEXT NOT NULL,
    stats TEXT NOT NULL,
    node TEXT NOT NULL,
    channel TEXT NOT NULL,
    value NUMERIC NOT NULL,

      CONSTRAINT PK_stats PRIMARY KEY (sId, Container)
    , CONSTRAINT FK_stats_gsTbl FOREIGN KEY (gsId, Container)
        REFERENCES opencyto_preprocessing.gsTbl (gsId, Container)
        ON DELETE CASCADE
-- ,
-- CONSTRAINT FK_stats_meta FOREIGN KEY (fcsId)
-- REFERENCES opencyto_quality_control.meta (fcsId)
-- ON DELETE RESTRICT
);

<ns:table tableName="stats" tableDbType="TABLE">
        <ns:columns>
            <ns:column columnName="sid">
                <ns:columnTitle>sid</ns:columnTitle>
            </ns:column>
            <ns:column columnName="container"/>
            <ns:column columnName="fileid">
                <ns:columnTitle>fileid</ns:columnTitle>
                <ns:fk>
                    <ns:fkDbSchema>flow</ns:fkDbSchema>
                    <ns:fkTable>FCSFiles</ns:fkTable>
                    <ns:fkColumnName>RowId</ns:fkColumnName>
                </ns:fk>
            </ns:column>
            <ns:column columnName="gsid">
                <ns:columnTitle>gsid</ns:columnTitle>
                <ns:fk>
                    <ns:fkDbSchema>opencyto_preprocessing</ns:fkDbSchema>
                    <ns:fkTable>gstbl</ns:fkTable>
                    <ns:fkColumnName>gsid</ns:fkColumnName>
                </ns:fk>
            </ns:column>
            <ns:column columnName="population">
                <ns:columnTitle>population</ns:columnTitle>
            </ns:column>
            <ns:column columnName="stats">
                <ns:columnTitle>stats</ns:columnTitle>
            </ns:column>
            <ns:column columnName="node">
                <ns:columnTitle>node</ns:columnTitle>
            </ns:column>
            <ns:column columnName="channel">
                <ns:columnTitle>channel</ns:columnTitle>
            </ns:column>
            <ns:column columnName="value">
                <ns:columnTitle>value</ns:columnTitle>
            </ns:column>
        </ns:columns>
    </ns:table>

As can be seen, it references a table gsTbl from schema opencyto_preprocessing.

If a proper entry exists in the latter table, then the stats table can be correctly populated and in the 'view' of the table one is even able to see the link with the value of the 'Name' column of the referenced row from gsTbl.

As soon as gsTbl is cleared, any tables refering to gsTbl from the opencyto_preprocessing schema in a similar fashion (via ON DELETE CASCADE), get cleared as well as expected, whereas the stats table from the opencyto_quality_control schema does not. Instead the link with the value of the 'Name' column of the referenced row from gsTbl turns into plain text with the gsId value surrounded with '<' and '>' !?

Why does this happen and how can I make it respect the ON DELETE CASCADE statement!

Thanks.
-Leo
Leo Dashevskiy2013-07-23 12:36Jon (LabKey DevOps)2015-04-28 22:08 Error at startup after upgrading to the trunk version: 27583 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
500: Unexpected server error

A failure occurred during LabKey Server startup.

java.lang.NoSuchMethodError: org.labkey.api.ehr.EHRService.registerSimpleFormType(Lorg/labkey/api/ehr/EHRService$FORM_TYPE;Lorg/labkey/api/module/Module;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       at org.labkey.onprc_ehr.ONPRC_EHRModule.registerEHRResources(ONPRC_EHRModule.java:184)
       at org.labkey.onprc_ehr.ONPRC_EHRModule.doStartupAfterSpringConfig(ONPRC_EHRModule.java:103)
       at org.labkey.api.ldk.ExtendedSimpleModule.startupAfterSpringConfig(ExtendedSimpleModule.java:79)
       at org.labkey.api.module.SpringModule.doStartup(SpringModule.java:119)
       at org.labkey.api.module.DefaultModule.startup(DefaultModule.java:273)
       at org.labkey.api.module.ModuleLoader.ensureStartupComplete(ModuleLoader.java:874)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:797)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:171)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
       at java.lang.Thread.run(Thread.java:722)
bront@kcr.uky.edu2013-11-12 10:02Jon (LabKey DevOps)2015-04-28 22:08 Integrating R view with Javascript TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am trying to call a saved R view via LABKEY.QueryWebPart. The data grid appears, but I can't see the R view (a bar chart).

The viewName matches the saved R view.

I may be going wrong with the updateURL, but currently my R view requires no params to run (everything is hard coded)

Should I perhaps be using LABKEY.WebPart() instead of QueryWebPart?

q = new LABKEY.QueryWebPart({
      renderTo: 'queryTestDiv1',
      title: 'test',
      schemaName: 'epi',
      queryName: 'water',
      viewName:'chart_view2',
      buttonBar: {
        includeStandardButtons: true
        },
        updateURL:'/epidemiologic_data/begin.view?qwp1.queryName=water&xaxis=age_cat&yaxis=cr&qwp1.reportId=db%3A299'
});

Many thanks,

bront
tstellin@scharp.org2013-12-02 05:48Jon (LabKey DevOps)2015-04-28 22:08 Developer documentation for labkey permission classes? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

Is there documentation for the set of permission classes org.labkey.api.security.roles.* and org.labkey.api.security.permission.*? We have some code that relies on these classes and would like to link to any documentation, if available. I tried building the labkey server javadocs but none of the javadoc pages for each class had very much description.

Thanks,
-Tobin
Jinze An2015-06-29 06:31Jon (LabKey DevOps)2015-06-30 11:15 Checkbox in column header TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a simple way to get the select all/deselect all checkbox in the header of a custom column? I've found the source that's tied to the left-most column in a generated grid view, but it seems to be more or less hard-coded in with little room for replication elsewhere (unless I've missed something, which is entirely possible).

Thanks in advance.
Ben Bimber2015-10-16 09:18Jon (LabKey DevOps)2015-10-16 13:21 tell production server to look for modules in secondary location? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
On one of our production servers, we are now including a module not part of our core distribution. when i do the normal manual-install.sh script, this blows away labkey/modules, meaning my custom module is also gone. i thought there was some way to tell the server to also check in a secondary location, like labkey/customModules, where I could drop my additional modules and they would remain even if I update my core code. I tried /extraModules and /customModules on the hope there was a default setting. Do I need to add something to ROOT.xml/labkey.xml?

Thanks.
Ben Bimber2015-11-05 12:01Jon (LabKey DevOps)2015-11-06 10:58 Parameterize the Columns in a PIVOT Query? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Pivot queries are very useful, but it's really common for the pivot to produce a ridiculously large list of columns. Take this example: you have a table listing lab test results. There are a lot of potential values for the type of test. Any given patient only has a finite number of test records. if you write the standard PIVOT, the list of columns will be any available test, and does not by default do anything smart to limit to only those columns with data in the selected rows. I was hoping parameterized queries would give me an out - no luck.

Below is an example of SQL I'm trying to use. Is there a way to modify this such that the list of columns will be anything less than every possible value in the whole table? Thanks in advance:

PARAMETERS(SPECIES CHAR default NULL, LOCUS CHAR default NULL, CATEGORY CHAR default NULL)

SELECT
  a.analysis_id,
  a.lineages,
  sum(a.percent) as percent

FROM sequenceanalysis.alignment_summary_by_lineage a

GROUP BY a.analysis_id, a.lineages
PIVOT percent BY lineages in (
  SELECT DISTINCT r.lineage FROM sequenceanalysis.ref_nt_sequences r
  WHERE r.lineage is not null

--this is my attempt to filter the list of allowable columns based on the query params. does not appear to work.
    AND (r.species = SPECIES OR SPECIES is null)
    AND (r.locus = LOCUS OR LOCUS is null)
    AND (r.category = CATEGORY OR CATEGORY is null)
  ORDER BY r.lineage
)
Ben Bimber2016-05-27 10:18Jon (LabKey DevOps)2016-05-27 11:09 devmode auto-loading of HTML/JS from modules in /server/optionalModules? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a module in github. I cloned it into /server/optionalModules/<moduleName>. When I build, it gets built fine. However, when I make edits to HTML/JS/XML files, they dont appear to hot swap like I would expect for simple modules. Should I expect them to, and do I need to do anything to make that happen?

Thanks.
eva pujadas2016-08-31 08:41Jon (LabKey DevOps)2016-08-31 13:15 Database check errors TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey team,

We have recently upgraded to LabKey 16.2 and run a database check/validation getting the following result:

31 Aug 2016 17:18:36,204 INFO : Starting to check domains
31 Aug 2016 17:18:49,415 INFO : 273 domains use Storage Provisioner
31 Aug 2016 17:18:49,416 ERROR: Could not find a domain kind for audit.c3d1482_queryloggingauditdomain
31 Aug 2016 17:18:49,436 ERROR: Table studydataset.c34d201_pic_freerecall does not have an associated domain.
31 Aug 2016 17:18:49,445 ERROR: Table studydataset.c34d202_pic_encoding does not have an associated domain.
31 Aug 2016 17:18:49,453 ERROR: Table studydataset.c34d203_pics does not have an associated domain.
31 Aug 2016 17:18:49,462 ERROR: Table studydataset.c34d204_nback does not have an associated domain.
31 Aug 2016 17:18:49,467 ERROR: Table studydataset.c34d205_hormone does not have an associated domain.
31 Aug 2016 17:18:49,476 ERROR: Table studydataset.c34d206_demographics does not have an associated domain.
31 Aug 2016 17:18:49,479 ERROR: Table studydataset.c34d207_quest_psycho does not have an associated domain.
31 Aug 2016 17:18:49,484 ERROR: Table studydataset.c34d208_quest_medical does not have an associated domain.
31 Aug 2016 17:18:49,487 INFO : Check complete, 9 errors found

Do you know how these errors can be corrected?

Thanks a lot,
Eva Pujadas
Zoya Pasha2017-11-03 02:54Jon (LabKey DevOps)2018-01-22 22:27 Get SQL query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I wish to get the complete SQL query defined in the query browser. The LABKEY.Query.getQueryDetails method gives information about the query, however, it does not fetch the query text as such. Is there a way to do so? Also, is there a way to add/edit/control the queries from a wiki page?
Ben Bimber2018-01-15 15:04Jon (LabKey DevOps)2018-01-15 21:52 RLabkey makeFilter with filters as variable? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
This is hopefully a simple question for anyone who knows R better. RLabkey allows you to make a filter using the makeFilter function:

makeFilter(c('myColumn', EQUALS,'value1'), c('myColumn2',EQUALS,'value2))

you can see that makeFilter uses R's elipsis argument, and this is read as a vector of vectors (i think?):

https://github.com/cran/Rlabkey/blob/49299ba7b5eaf5127d8dca8dba2f38739dff6454/R/makeFilter.R

I'd like to build up my filter list upstream in code, such as:

filters <- c(
     c('myColumn', EQUALS,'value1'),
     c('myColumn2',EQUALS,'value2)
)
makeFilter(filters)

or as a list:

filters <- list(
     c('myColumn', EQUALS,'value1'),
     c('myColumn2',EQUALS,'value2)
)
makeFilter(filters)

This seems like a very basic thing to do. However, in each case this will not work. c() in R recursively flattens out all my lists. list() isnt the correct type expected by makeFilter(). I cant see any way to make an R variable convert into the variable argument R expects with '...'. Is there a way to do this? Thanks in advance.
Edward2018-02-12 10:28Jon (LabKey DevOps)2018-02-12 13:50 Labkey github asks for password TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I am trying to download/clone labkey biologics module from the official github of labkey but it asks me for username and password. I tried cpas both as username and password but it does not work. Do anyone know what username and password I have to use??
Jon (LabKey DevOps)2022-03-18 16:03Jon (LabKey DevOps)2022-03-18 20:10 Maintenance Notice - Minor Update of labkey.org for Friday, March 18th 2022 @ 8pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
A minor update to labkey.org will occur this evening on Friday, March 18th 2022 @ 8pm PST.

The server should be offline for no more than 30 minutes.

Please save your work before this time.
wnels2@uky.edu2009-04-27 09:29Jon (LabKey DevOps)2015-04-28 21:53 ms2.spectradata TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm moving a database to another server and need to reload the ms2.spectradata table separately. I can't drop the table because of a dependency. I'm assuming there is a foreign key constraint somewhere but I have not been able to find it in any of the create table scripts when browsing with the pgAdminII tool. Can you tell me how to locate the dependency?

Thanks,
Bill
Peter2010-01-05 07:57Jon (LabKey DevOps)2015-04-28 21:54 Sample code for javascript api using FormPanel and grid TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Attached is a file-based moduule that gives some example code using the LABKEY,ext.EditorGrid and the LABKEY.ext.FormPanel. More discussion to come.

Peter
Ben Bimber2010-02-23 12:09Jon (LabKey DevOps)2015-04-28 21:55 does QWP support containerPath? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
by any chance does the queryWebPart have undocumented support for something like containerPath (picking the container where the query is located)?
Ben Bimber2010-03-09 15:02Jon (LabKey DevOps)2015-04-28 21:55 Filters and case insensitive EQUAL? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just realized that EQUALS seems to be case sensitive. Is there any way to have an EQUALS operator that is case insensitive?

My application is a form that builds a URL and takes the user to a filtered grid. Unless anyone has a suggestion, I'm just gonna make the default operator 'begins with', which should help most cases. If someone does try to search using 'equals' they might be surprised by the result though.

Example URL:

.../executeQuery.view?query.queryName=Animal&schemaName=study&query.Species/species~eq=cyno
Ben Bimber2010-04-02 08:04Jon (LabKey DevOps)2015-04-28 21:55 R API Suggestion: Return date fields as dates, not factors TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
when writing an R view on a query, dates fields seem to be converted to factors in labkey.data. you can convert them back, labkey.data$date = as.Date(labkey.data$date), but it would be nice if this were not needed. graphs work a lot better if dates are dates.
Ben Bimber2010-04-08 11:01Jon (LabKey DevOps)2015-04-28 21:55 I think this is a bug - or very odd behavior TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a list. One of the field is a lookup on another table. One user changed her default view on this list to include two columns from this other table.

When she downloads the template to import spreadsheet data, this template file contains columns for the two columns from that other list. This probably should not happen, since these columns will get rejected on import. Is this a bug or the way it's supposed to behave?

I can provide a url to this list if needed.
Ben Bimber2010-09-23 06:02Jon (LabKey DevOps)2015-04-28 22:00 small feature request: put links to delete, copy, etc in assay manager page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
right now, the assays has a bar of links above the grid on the run/result/batch pages. one of these is called 'manage' and it's a menu with items for delete, copy, etc. that's the only place in the whole assay UI where you can do these actions. seems like these should actually exist in both the assay designer page and possibly the page where you can view a list of all the assays.
Ben Bimber2010-10-08 09:09Jon (LabKey DevOps)2015-04-28 22:00 labkey sql and converting numeric value to string TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i have something like this in sql:

t1.volume || ' ' || t1.vunits as volume,

t1.volume is a numeric column. it's returning:
0.59999999999999998 ml

instead of the much nicer and expected:
0.6 ml

the value of that column is actually 0.6. any idea why the process of converting to a string does that? can i avoid it? unfortunately this does not fix it:

round(t1.volume, 2) || ' ' || t1.vunits as volume,

thanks for the help.
Ben Bimber2010-10-26 07:19Jon (LabKey DevOps)2015-04-28 22:00 small issue with menu bar and 10.3 css TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
one observation on the 10.3 stylesheet: above the menu bar there's a thick blue line. most of the time the menu bar touches this line. however, on some pages during render some space gets introduced. sometimes it's small, sometimes it's large. i attached a screenshot showing the two. it's possible this was happening before the 10.3 stylesheet and i just never noticed it.
Ben Bimber2010-11-15 17:46Jon (LabKey DevOps)2015-04-28 22:00 QC state and study data TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
QCState does not appear to be a field in StudyData.  This seems like it should be, and it would make it much easier to globally find all records under review, or with errors.  Is there a trick to add this field to studydata? thanks.
Ben Bimber2010-11-16 16:03Jon (LabKey DevOps)2015-04-28 22:00 query still running in postgres after killing labkey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
this afternoon my laptop started getting real slow. postgres was taking up 80% of my cpu, so i looked in pgadmin and saw it was still running a query that i had initiated in labkey about 4 hours earlier. that morning i was working on a labkey query called demographicsVL. i one permutation of this query took forever to load in a browser, so i closed the browser tab and didnt think about it again. apparently closing the browser tab didnt kill it.

prior to opening pg admin, i completely stopped tomcat, which is why i was especially surprised to see it still running.
Ben Bimber2011-05-11 11:10Jon (LabKey DevOps)2015-04-28 22:01 another SQL documentation request TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in 11.1 parameterized SQL queries were introduced. i have one example:

PARAMETERS(DAYS INTEGER)
SELECT *
FROM tasks
WHERE modified > TIMESTAMPADD(DAY, -1*DAYS, NOW())

is there any more documentation on this? if i want to declare 2 parameters, does it work like:

PARAMETERS(DAYS INTEGER, DAYS2 INTEGER)

Can we do anything fancier like give them a default value? thanks.
michael_stover@urmc.rochester.edu2011-06-14 11:58Jon (LabKey DevOps)2015-04-28 22:02 How to trigger a server-side script to run? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I would like to write server-side scripts that can be triggered to run via buttons on a wiki page, or via javascript. I know there are certain places these scripts can be triggered, like during import to an assay, but what about just from javascript on a wiki page?
jdutra2011-06-28 07:13Jon (LabKey DevOps)2015-04-28 22:02 Time Chart Interval problems TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are trying to make time charts for some of our data. I've tried on several different datasets, all with multiple date/time fields, but on the X-Axis tab, where it says "Calculate interval between:", the date on the left is always blank, and the dropdown is empty. There are dates in the dropdown on the right. Am I missing something here? What do I have to do to get dates to show up in the left dropdown?

Thanks,
Jen
Maya Li2011-11-28 13:50Jon (LabKey DevOps)2015-04-28 22:03 Labkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm developing a module with my own defined database schema. I am trying to insert a row into a table with the following definition:

CREATE TABLE litterbox.specimenrequirements
(
  m_requirementid serial NOT NULL,
  studyid bigint,
  sequencenumber integer,
  organ character varying(50),
  numtumorcases integer,
  desirepairnormal boolean,
  numtissuesamples integer DEFAULT 0,
  sizepertissuesample character varying(10),
  numbloodsamples integer DEFAULT 0,
  volperbloodsample integer,
  typeofblood character varying(10),
  mintumorperblock integer DEFAULT 0,
  maxtumorperblock integer DEFAULT (-1),
  sourcesurgery boolean,
  sourcebiopsy boolean,
  transportmethod character varying(10),
  container entityid,
  entityid entityid,
  createdby userid,
  created timestamp without time zone,
  modifiedby userid,
  modified timestamp without time zone,
  CONSTRAINT pk_specimenrequirements PRIMARY KEY (m_requirementid),
  CONSTRAINT fk_specimenrequirements FOREIGN KEY (studyid)
      REFERENCES litterbox.study (m_studyid) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
);

I am simply trying to insert a row with the following JavaScript code:

function addTissueSpec() {
        alert('add tissue start');
         alert(InitTissueForm.organ.value);
         LABKEY.Query.insertRows({
                schemaName: 'litterbox',
                queryName: 'specimenrequirements',
                rowDataArray: [{
                        "studyid": _studyId,
                        "organ" : InitTissueForm.organ.value,
                        "numtissuesamples": InitTissueForm.numtissuesamples.value,
                        "sizepertissuesample" : InitTissueForm.sizepertissuesample.value
                    }],
                
                successCallback: function(data) {
                    var requirementId = data.rows[0].m_requirementid;
                    alert(requirementId + " added success");
                },
                failureCallback: function() {alert('Something went wrong');}
            });
       
    }

When I call addTissueSpec(), I get the following javascript error (truncated to show only the top):

{
    "exceptionClass": "org.labkey.api.query.InvalidKeyException",
    "exception": "Value for key field 'm_requirementid' was null or not supplied!",
    "stackTrace": [
        "org.labkey.api.query.DefaultQueryUpdateService.getKeys(DefaultQueryUpdateService.java:397)",
        "org.labkey.api.query.DefaultQueryUpdateService.getRow(DefaultQueryUpdateService.java:134)",
        "org.labkey.api.query.AbstractQueryUpdateService.getRows(AbstractQueryUpdateService.java:72)",
        "org.labkey.query.controllers.QueryController$CommandType$1.saveRows(QueryController.java:2611)",
        "org.labkey.query.controllers.QueryController$BaseSaveRowsAction.executeJson(QueryController.java:2769)",
        "org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:2826)",
        "org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:2819)",
        "org.labkey.api.action.ApiAction.handlePost(ApiAction.java:147)",
        "org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:98)",
        "org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:166)",
        "org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)",
..

I have written similar code which has worked on other table with similar set up before. I have tried to also add 'm_requirementid: 8' in the rowDataArray config and that didn't seem to work either. Any help with possible leads is appreciated.

Maya
Maya Li2012-01-27 09:50Jon (LabKey DevOps)2015-04-28 22:03 Projects webpart TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I created a project with custom type, with only my custom module turned on and no other modules (not even the portal module). When I use the left navigation menu to navigate to the project, it leads me directly to my preset custom module. This is the correct expected behavior. However, if I put in a "projects" web part in the home portal, the links to the projects direct me to an empty "portal" page for the project instead of the module. I suspect this is a bug.
Leo Dashevskiy2012-05-01 19:00Jon (LabKey DevOps)2015-04-28 22:03 How to call an R script from within a JS code TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

Would someone be able to tell me, please, how to just call an R code from withing JavaScript?
The code does not return an image (may be some kind of a return status indicator), it does need get the input parameters from the JS side.

Thanks.
trent2012-08-22 19:34Jon (LabKey DevOps)2015-04-28 22:04 Escape forward slash in xml TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Any tricks?

In the case of a customView columns, the behaviour of forward slash is to link to data in another table. What about in the case of the column name actually containing a "/".

<customView xmlns="http://labkey.org/data/xml/queryCustomView">
    <columns>
        <column name="ParticipantId"></column>
        <column name="col (a/l)"></column>
    </columns>
</customView>
(fwiw - I tried html escaping it.)
I've gone against using this technique and instead just edited the the query xml file to hide out columns. Still, would be interested to know if the above can be achieved.
slangley@scharp.org2012-09-05 12:12Jon (LabKey DevOps)2015-04-28 22:06 LabKey Ext JS 4 JavaScript APIs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a few questions related to Ext JS 4:

1. I see that the LabKey JavaScript API documentation page still lists just the classes built on top of Ext JS 3.x.
    https://www.labkey.org/download/clientapi_docs/javascript-api/
Will you generate documentation for classes built on top of Ext JS 4.x as well?

2. Is the code that is located in the internal module, such as:
    internal/webapp/extWidgets/Ext4Store.js
still considered experimental and subject to change? I wondered if that is why it's not in the api/webapp/clientapi/core directory?

3. Have you noticed any problems with using the Ext JS 4's Ext.Loader mechanism for loading JavaScript dependencies? I see it's used in a few custom Modules but not in the standard modules. It seems like a better way to "Don't Repeat Yourself" when it comes to specifying JavaScript dependencies.

Thanks.

Scott
bront@kcr.uky.edu2012-10-05 06:29Jon (LabKey DevOps)2015-04-28 22:06 drag and drop in files web part? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is it possible to drag and drop files in the files web part from one directory to another in the tree... or will this require custom programming?

Thanks,

bront
Anthony Corbett2013-03-27 14:34Jon (LabKey DevOps)2015-04-28 22:07 LABKEY.Experiment.saveBatch Exception with InputMaterial from different container than API invocation. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
This is using Labkey 12.3.

I'm writing an file based assay and I'm getting an exception stating that the inputMaterial on the run is not in the container from where I'm invoking the API call (i.e. getViewContext.getContainer() ).

Here is my setup:

Containers:

 Project Folder (this is the study folder with Study Specimens Sample Set).
  |
  |- Lab Data (this is where the file based assay module is enabled)

The assay module is enabled on the Lab Data container and the assay definition is on the Project Folder.

From within the Lab Data folder I'm importing data. Upload.html is asking for Batch Properties: TargetStudy and SpecimenID.

Using those two things I'm running a query to return the RowId and Name for the Material in the target study's "Study Specimens":

LABKEY.Query.selectRows({
  containerPath: "12502f24-6b36-1030-80d3-a8cd94b9bb8c", // targetStudy's EntityId
  schemaName: "Samples",
  queryName: "Study Specimens",
  filterArray: [ LABKEY.Filter.create("name", specimenID) ],
  columns: [ "LSID", "Name", "RowId"]
  sucess: function() {....}
});

I create an LABKEY.Exp.Material from the single row returned and attach that on the run and the run on the batch and call LABKEY.Experiment.saveBatch from the "Lab Data" container.

I recieve back the following Exception:
"exceptionClass": "org.labkey.api.view.NotFoundException"

"exception": "Material with row id 2881 is not in folder org.labkey.api.data.Container@869360086 /Study/Lab Data/ 12503144-6b36-1030-80d3-a8cd94b9bb8c"
    
"stackTrace": [
"org.labkey.study.controllers.assay.actions.SaveAssayBatchAction.handleMaterial(SaveAssayBatchAction.java:423)",
"org.labkey.study.controllers.assay.actions.SaveAssayBatchAction.rewriteProtocolApplications(SaveAssayBatchAction.java:241)",
"org.labkey.study.controllers.assay.actions.SaveAssayBatchAction.handleRun(SaveAssayBatchAction.java:205)", "org.labkey.study.controllers.assay.actions.SaveAssayBatchAction.handleBatch(SaveAssayBatchAction.java:507)", "org.labkey.study.controllers.assay.actions.SaveAssayBatchAction.executeAction(SaveAssayBatchAction.java:97)",
        "org.labkey.study.controllers.assay.actions.AbstractAssayAPIAction.execute(AbstractAssayAPIAction.java:76)",
        "org.labkey.study.controllers.assay.actions.AbstractAssayAPIAction.execute(AbstractAssayAPIAction.java:54)",
        "org.labkey.api.action.ApiAction.handlePost(ApiAction.java:152)",
        "org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:87)",
        "org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:177)",
        "org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)",
        "org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:353)",
        "org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:921)",
        "org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)",
        "javax.servlet.http.HttpServlet.service(HttpServlet.java:717)"
...

Looking at SaveAssayBatchAction.java:423 it seems that the code is assuming that only "valid" container for a material is from where I invoke the API action! Thus, it does not allow Materials with a different container to be apart of a run, even if that container is the parent Project study folder that I choose from the targetStudy dropdown for batch properties (target study options is a queries for only studies the user has access to already).

Can this be changed so that it checks user's read permissions to the material's container or something similar? This way the API can be invoked from any container with input material(s) that are "legal" because the user has read access to the material's container.

Regards,

Anthony Corbett
jdutra2013-05-10 08:46Jon (LabKey DevOps)2015-04-28 22:07 13.1 Specimen Requests TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm having some trouble with specimen requests in 13.1. The functionality seems to be OK, but the way the specimens are displayed when making a request is wrong. Here's what's happening: I go in and create a new request. Then I click on Specimen Search. I check the boxes for several specimens and then go to Request Options -> Add To Existing Request. The "Vials Currently in Request" list, which should be empty, has a long list of specimens in it. If I add my vials to the request, and look at it by going to the Specimen Request -> View Current Requests, and clicking on Details for my new request, the request is correct (it has just the vials I added).

Although users can still request specimens, the long "Vials Currently in Request" list is going to be very confusing to them, and I'm not sure what, if anything, happens if they try to "Remove Checked Vials" for specimens that were never in the request to begin with.

Is this a bug in 13.1, or is there something I'm doing wrong? Any advice would be appreciated.

Thanks!
Jen
reshmyunni17782013-08-02 01:41Jon (LabKey DevOps)2015-04-28 22:08 Change UI of Data Pipeline web part TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
How can I add a button to Data Pipeline web part in labkey?Which of files need changes?
Please help me.
Leo Dashevskiy2013-08-22 09:43Jon (LabKey DevOps)2015-04-28 22:08 What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good morning!

I am running the following version of the Labkey server at the moment:

[09:26:28]:~/Labkey/release/server svn info
Path: .
URL: https://hedgehog.fhcrc.org/tor/stedi/branches/modules13.2/server
Repository Root: https://hedgehog.fhcrc.org/tor/stedi
Repository UUID: a4ab64de-fbdc-0310-83ae-be1847ca59a0
Revision: 27966
Node Kind: directory
Schedule: normal
Last Changed Author: k.krouse
Last Changed Rev: 27946
Last Changed Date: 2013-08-20 16:00:23 -0700 (Tue, 20 Aug 2013)


Here is the listing of the server folder, where the main build.xml resides:

[09:26:29]:~/Labkey/release/server ll
total 484
drwxrwxr-x 6 ldashevs ldashevs 4096 2013-08-21 15:13 api
drwxrwxr-x 6 ldashevs ldashevs 4096 2013-08-21 15:10 applets
drwxrwxr-x 4 ldashevs ldashevs 4096 2012-04-02 11:46 bootstrap
-rw-rw-r-- 1 ldashevs ldashevs 172 2012-04-02 11:46 build-info.properties.template
-rw-rw-r-- 1 ldashevs ldashevs 151822 2013-08-21 15:13 build.xml
-rw-rw-r-- 1 ldashevs ldashevs 544 2012-06-26 12:01 config.properties
drwxrwxr-x 7 ldashevs ldashevs 4096 2013-01-17 10:40 configs
drwxrwxr-x 42 ldashevs ldashevs 4096 2013-08-21 15:09 customModules
drwxrwxr-x 8 ldashevs ldashevs 4096 2013-08-21 15:08 installer
drwxrwxr-x 3 ldashevs ldashevs 4096 2012-05-02 16:07 intellijBuild
drwxrwxr-x 7 ldashevs ldashevs 4096 2013-06-24 13:48 internal
-rw-rw-r-- 1 ldashevs ldashevs 2949 2013-08-21 15:13 LabKey.iml
-rw-rw-r-- 1 ldashevs ldashevs 106110 2013-08-21 15:33 LabKey.ipr
-rw-rw-r-- 1 ldashevs ldashevs 122661 2013-08-22 09:11 LabKey.iws
-rw-rw-r-- 1 ldashevs ldashevs 34512 2013-06-24 11:46 LabKey.iws.template
drwxrwxr-x 34 ldashevs ldashevs 4096 2013-06-24 11:49 modules
drwxrwxr-x 6 ldashevs ldashevs 4096 2012-06-25 15:17 moduleTemplate
-rw-rw-r-- 1 ldashevs ldashevs 322 2012-04-02 11:46 module.template.properties
-rw-rw-r-- 1 ldashevs ldashevs 1196 2013-06-24 11:46 module.template.xml
-rw-rw-r-- 1 ldashevs ldashevs 1220 2012-06-25 15:28 simplemodule.template.xml
-rw-rw-r-- 1 ldashevs ldashevs 2587 2012-04-02 11:46 standalone_build.xml
drwxrwxr-x 10 ldashevs ldashevs 4096 2013-08-21 15:08 test


I used to have build.xml within my module's folder (sitting in customModules folder), but that now is giving an error, so I was told to remove it.

But now my modules are not being seen by the server, they are not being built.

I am not seeing 'standard.modules' file, which would list what is being built - should I manually create it in the server folder?

Also within my folder I have a file opencyto.modules:

[09:31:55]:~/Labkey/release/server ll customModules/OpenCytoPreprocessing/
total 20
-rw-rw-r-- 1 ldashevs ldashevs 143 2013-08-08 14:54 module.properties
-rw-rw-r-- 1 ldashevs ldashevs 1200 2013-03-18 14:19 module.template.xml
-rw-rw-r-- 1 ldashevs ldashevs 32 2013-08-20 18:14 opencyto.modules
-rw-rw-r-- 1 ldashevs ldashevs 141 2012-09-04 14:50 README.md
drwxrwxr-x 8 ldashevs ldashevs 4096 2013-08-20 16:43 resources

, which contains just one line:

[09:32:32]:~/Labkey/release/server cat customModules/OpenCytoPreprocessing/opencyto.modules
server/customModules/OpenCyto*


From the server folder above I try and run "ant -DmodulesFile=/home/ldashevs/Labkey/release/server/customModules/OpenCytoPreprocessing/opencyto.modules", but that does not have any effect. (Does it matter if I have the server running or not at that time?)

Are there any docs written up about this new approach?

Please, help.
Thanks.

-Leo

P.S. I personally don't like the new approach already because making this ant call above seems to do a lot of superfluous stuff that has already been done by the regular ant call - in the past I used to just navigate to my module's folder, call ant and in 2 seconds only the needed module would be staged and built properly...
himanshu mendhe2015-05-12 13:36Jon (LabKey DevOps)2015-05-14 17:00 Write to a file in Java module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi!
I have created a Java module and would like to write to a .doc file in the module. I would also like the same file, or a copy of it to get downloaded once it is created.
However, when I try to do the following:

OutputStream fos = new FileOutputStream(new File(this.getClass().getResource(report).toURI().toString()));

('report' is the filename)

I get a FileNotFoundException thrown by FileOutputStream. I had to add the .toString method because on the plain URI, File() was throwing a URI-Not-hierarchical exception.

When I just input a String(filename) to the File() constructor I am able to write to the file, but that file is stored on Tomcat-home.

Is there a way to initiate a download of the said file from tomcat-home? What other options do I have?
Will Holtz2016-04-26 14:42Jon (LabKey DevOps)2016-04-26 21:13 SQL concat() gives error when more than 2 arguments TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The Labkey SQL documentation (https://www.labkey.org/wiki/home/Documentation/page.view?name=labkeysql) indicates that concat() can take n arguments. However the following statement

SELECT concat('a', 'b', 'c') AS combined;

gives the error:

Error on line 1: CONCAT function expects 2 arguments

This is on Labkey v16.1 with Postgres v9.5.2.

-Will
diego2016-06-09 15:35Jon (LabKey DevOps)2016-06-09 15:49 Location of Query Snapshot... TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Trying to find location of the query snapshot option...

https://www.labkey.org/home/Documentation/wiki-page.view?name=querySnapshot

Thanks in advance!
Diego
wit2wit2016-10-14 23:42Jon (LabKey DevOps)2016-12-15 22:51 Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am using Ant build to compile the generated a new target, but ./build/deploy/modules is empty. Why?

Thanks
hilariagrieve2016-10-24 04:10Jon (LabKey DevOps)2016-11-02 23:52 ETL Store Procedure TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi!
I am trying to make a dataset with finals results.
I have a general assay, "Secuenciación ABI" that using a script loads the secuencing data (like the file I attached called "secuenciación.png")
Here, each raw has the results for a specific marker (Marker:D10S1248/Alele1:13/Alelle2:14).

So what I want to do, is make a datasets called "Perfiles Genéticos" that joins all the information for one SpecimenID and ParticipantID, like the second file I attached "perfilesgeneticos.png".

Can I do this with ETL Module? o what do you suggest me?

I don't know how.
Thanks for your help.

Regards,
Hilaria
gkericks2017-05-08 09:41Jon (LabKey DevOps)2017-05-09 23:16 Project Contacts web part not showing any users TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

We have a project folder of type "Collaboration". In it we have added a number of users in various groups. If I check admin->Folder->Project Users I can verify that the users were indeed added and belong to various groups. However, when we use the "Contacts" web part the web part always appears blank. Any ideas why this would be? The only documentation I could find says that this should work.

Thanks
WayneH2017-10-03 12:25Jon (LabKey DevOps)2017-10-05 22:03 perl trigger script to process dataset data TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I'm hoping you can help me better understand and I hope I ask the question clearly. I'm not getting this.
We have existing data in a data set that we want to process via a perl trigger script. We want this script to read data from one dataset whenever new rows are added and populate results in another dataset. The documentation that you provide indicates that a javascript file needs to be added to the appropriate folder to run a trigger script (in this case I believe that would be 'MODULE_NAME/queries/study/QUERY_NAME.js'). But would this require root access to drop this file into the folder or can this be done by an alternate method, or via the web interface. Is there a solution using the pipeline module or some other means to accomplish this task?

It's not clear to me at all how this can work so hoping you can inform me.

Thanks,

Wayne H
faruqia2017-10-20 16:55Jon (LabKey DevOps)2017-10-24 22:23 HTTP request was unsuccessful. Status code = 401, Error message = Unauthorized TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm trying to use Rlabkey library from my laptop locally and am getting the above error message. I have followed all the instructions listed in this previous thread but nothing is working.

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=10110

Please advice.

Thanks,
Ali
toan nguyen2017-12-08 12:10Jon (LabKey DevOps)2018-01-23 00:03 how to change pipeline to use tpp 5.0 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

 I got the follow error

 "/usr/local/tpp/bin/ProteinProphet 'xxxxxxxxxxxxxxxxxxxxxxxxx.pep.xml' 'xxxxxxxxxxxxxxxxxxxxxxxxx.prot.xml' NOPLOT"

It appears the command ProteinProphet in TPP 5.0 is no longer have the "NOPLOT" option.
  Where do I update pipeline/ms2 config to make this change ?

Thanks
Toan.
marcia hon2018-02-20 07:55Jon (LabKey DevOps)2018-02-20 11:17 Image for R Report TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I would like to add a logo to my R Report that uses HTML.

I have tried the following:

<center>
<img src="/external/rprshnas01/nip/rdrshlabkeyv/ETL_TEST/ETL_Workpace/@files/report_logo.jpg"/>
</center>

I think the problem is what directory I should point to for the logo?

I look forward to your input.

Thanks,
Marcia
Edward2018-03-01 08:09Jon (LabKey DevOps)2018-03-05 13:04 Remove shared folder TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

Is there any way to delete the "shared" folder? I tried to use folder management but there I did not see any delete option for deleting the shared folder. However, I do see delete button for other folders. Anyone with a good suggestion?

Thanks in advance!
marcia hon2018-03-08 08:05Jon (LabKey DevOps)2018-03-09 16:10 Speed of Queries in Labkey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

Is there some configuration settings that I can modify in order to make my Labkey queries run faster?

I'm having a very hard time with queries that do many calculations and also pivots.

One query took up to 30 minutes to return results.

Thanks,
Marcia
Jon (LabKey DevOps)2021-11-11 13:43Jon (LabKey DevOps)2021-11-11 21:48 Maintenance Notice - Upgrade of labkey.org to LabKey 21.11 for Thursday, Nov 11th 2021 @ 9pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello everyone,

LabKey.org will be down this evening (Thursday, Nov 11th) for an upgrade to LabKey 21.11 starting at 9pm PST.

The server will be offline for approximately one hour.

Please save your work before this time.

LabKey Support
kanchink@mail.nih.gov2007-06-29 03:57Jon (LabKey DevOps)2015-04-28 21:51 exp:ApplicationType TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

A question regarding the ApplicationType values....From the examples, I notice that ApplicationType values can be SamplePrep, ExperimentRun, ExperimentRunOutput, ProtocolApplication.

Are there any constant set of values defined for ApplicationType (a look-up table....)? Or are the values user defined?

Is there any mapping between the ApplicationType value and the Protocol's rdf:about value? For example, there is a protocol with rdf:about containing the substring "SamplePrep". This protocol's name is "Sample Prep Protocol" and the ApplicationType is "ProtocolApplication". Is there any rule in place that says only protocols with ApplicationType=ProtocolApplication can be a SamplePrep protocol?

Thanks.
wnels2@uky.edu2008-02-15 14:46Jon (LabKey DevOps)2015-04-28 21:52 ActionURL TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Greetings,
I’m trying to get a url string for the cancel button on the search form. I’m in org.labkey.ms2.pipeline.PipelineController.SequestSearchAction.
If I do this:
ActionURL returnURL = new ActionURL(org.labkey.pipeline.PipelineController.ReturnToRefererAction.class, getContainer());
it will not compile; says that it cannot find the package org.labkey.pipeline.PipelineController?
I’m trying to get a string like this: /labkey/Pipeline/<projectName>/returnToReferrer.view using returnURL.getAction().

How should I be doing this?

Thanks,
BIll
tholzman@fhcrc.org2008-04-25 11:48Jon (LabKey DevOps)2015-04-28 21:52 Limits on HTML in WIKI pages? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
What are the limits on HTML in WIKI (and I assume, MESSAGE) pages? I tried to place an excel-converted spreadsheet on a wiki page. Initially it crashed the page display service and made the page very hard to delete. After removing external namespace references it displays properly on normal browsers (firefox, ie, safari) but loses all its formatting, color and fonts on the WIKI page.
ddavis14@its.jnj.com2008-05-16 06:49Jon (LabKey DevOps)2015-04-28 21:52 GWT Integration TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The difficulty that we have is with the following:

1) Wrapping the GWT Servlet with Lab Key APIs. Although we can display the GWT app in LabKey, we have not been successful in exposing the GWT servlet via LabKey’s APIs.

2) What is the best practice of deploying jars that are referenced by the back end process to the LabKey app, in the context of a new custom module?
dho@mac.com2009-05-12 17:26Jon (LabKey DevOps)2015-04-28 21:53 Assays and Simple Modules TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi:

I've been playing around with Simple Modules for the last few days. Is there any chance the documentation at:

https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleassay

will be updated?

Also, I've been able to create custom HTML views within the Simple Modules. I apologize if this is a naive/simple question, but is there a way to execute a query and get the results as an array that can be manipulated outside of the grid view (i.e., in a customized HTML/Javascript page that would be part of a simple module).

Thanks in advance,

dave
wnels2@uky.edu2009-08-19 08:51Jon (LabKey DevOps)2015-04-28 21:54 build hangs at target: setup task: replace TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Through IntelliJ the build for the 9.2 branch hangs in the setup target. It works okay using ant command line.
I don't understand the comment; is it telling me what the task should be doing or do I need to manually edit something?
Thanks,
Bill

 <!-- Replace string ${jdbcDatabase} in the file with value of database property -->
        <replace file="${build.dir}/labkey.xml">
            <replacefilter token="$${jdbcURLParameters}" value="${jdbcURLParameters}"/>
            <replacefilter token="$${jdbcDatabase}" value="${database}"/>
        </replace>
adam2009-12-15 15:33Jon (LabKey DevOps)2015-04-28 21:54 Speeding up the GWT portion of LabKey builds TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The GWT build accounts for a large percentage of LabKey server build time. For production builds, GWT generates six separate permutations of the JavaScript to handle the popular browsers. Most developers and the automated tests only care about the firefox permutation. Matt has built a firefox-only version of the GWT compiler jar and some of us have hacked the build file or replaced the standard jar to take advantage of it. Earlier today, I added support for an environment variable to make this easier. Just define a system environment variable as shown below and our GWT build will generate a single permutation; you won't need to modify files or take any action with new branches.

   gwt-user.jar=gwt-user-firefox.jar

Note: We currently use GWT 1.6 and Google just released GWT 2.0, which includes a bunch of cool new things including a -draftCompile switch. We'll look at this soon, but in the mean time the environment variable is the way to go.

Adam
Brian Pratt2009-12-15 17:00Jon (LabKey DevOps)2015-04-28 21:54 programatically set globus node security info and default pipeline root? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
It appears that the pipeline root and Globus SSL security info can only be set through the web UI. As I'm working to make it possible to have the cluster exist only when needed it would be ideal if information about that node could be handled dynamically (through XML config files?). Or am I just missing something? It seems odd to insist on a manual file upload to get the globus private key into the system, and it's also annoying, since the control assumes that key is present on the web *client* for upload, which it normally isn't without a bit of bother.

Thanks,
Brian Pratt
Ben Bimber2010-03-05 05:53Jon (LabKey DevOps)2015-04-28 21:55 Study import and metadata for StudyData and Participant tables TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We're importing the EHR study nightly from a file dump. If I want to define custom metadata for lists or datasets, I can do so in list.xml or datasets.xml. However, where would I define custom metadata for either the StudyData or Participant tables (the automatically created ones)?

Specifically, I'd like to define a min width for the description field in StudyData and add a bunch of aliases to the Participant table.

Also, if we have a custom noun in our study, how does this impact metadata? For example, the particiapnt table is actually called 'animal' in our study. Should the metadata reflect this? In our dataset XML file, all the tables refer to participantId, even though it will be called 'animal' in our study, so perhaps this translation happens later?
Ben Bimber2010-03-16 15:12Jon (LabKey DevOps)2015-04-28 21:55 possible to specify something like 'not in default view' instead of 'isHidden'? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
table metadata lets us set 'isHidden' for a field, which makes it either hidden or not. is it possible to set something like 'not in default grid', which does exactly what it sounds like, except doesnt make this a hidden field? it seems to me that hidden fields should be those we dont actually want users seeing b/c they are confusing or we just dont want them visible. Not in default view applies that it's available, but we simply dont want to see it in most grids.
Ben Bimber2010-04-26 05:28Jon (LabKey DevOps)2015-04-28 21:55 Assays: Possible to use expressions as default values? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In an assay definition, is it possible to set 'current user' as the default value for a field? is it possible to set 'current date' as a default value?
Ben Bimber2010-04-28 06:33Jon (LabKey DevOps)2015-04-28 21:55 question on missing value indicators TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
my understanding of missing value indicators is that they are essentially qualifiers that can be added to a given field. we have a list of animal birthdays, some of which are estimated. is this an example where using a missing value indicator of 'estimated' (or 'E') would make sense? it's not really missing per se, but it is a qualification of the field value.
Ben Bimber2010-05-21 15:50Jon (LabKey DevOps)2015-04-28 21:59 possible to listen for file download from LABKEY.ext.EditorGridPanel? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a page with a LABKEY.ext.EditorGridPanel. One of the columns is a file attachment. Is it possible to listen for when a user downloads a file and trigger a function that inserts on record whenever this event occurs?
Ben Bimber2010-06-23 06:48Jon (LabKey DevOps)2015-04-28 21:59 possible to manually create delete button for assay results domain? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in assays there is no delete button on the default results grid. i get the impression this was a design decision - you can delete an entire run, but not just one result. in our case this doesnt really apply - deleting single results is fine and actually useful.

it seems fairly straightforward to add a custom button that would use LABKEY.Query.deleteRows to delete results. is there anything specific to assays such that LABKEY.Query.deleteRows would not work? are there other reasons why a single result record cannot be deleted?

thanks for the help.
Lili2010-07-19 07:34Jon (LabKey DevOps)2015-04-28 21:59 Flow Jo demo file 404 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm following the tutorial on FlowJo demo: https://www.labkey.org/wiki/home/Documentation/page.view?name=installServerAndGetFlowDemo.

It indicates to download the demo zip from:

https://www.labkey.org/files/home/Flow/demo/Flow%20Demo/labkey-flow-demo.zip

But this URL gives 404.

Please help.

Thanks,
Lili
Ben Bimber2010-07-21 11:31Jon (LabKey DevOps)2015-04-28 21:59 changes to issue tracker that happened in 10.2 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In 10.2 the comments field on issue trackers became required. I can see why that change was made, but it's actually causing inconvenience for some of our users. We have a number of issue trackers set up for many different purposes. In more than 1 case the users were creating issues that had titles only. While that does not make sense for an issue tracker when it's a bug tracker, it did make sense for these issue trackers. Now that comments became required, this is not longer possible.

In the issue tracker admin, there's a section called 'required fields' where you get to pick what's required. Could comments appear here so we at least get a choice?
Ben Bimber2010-09-30 07:23Jon (LabKey DevOps)2015-04-28 22:00 possible to run SQL to find places where views are defined? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
a large number of the EHR views have been switched to files. however, sometimes there were older views created in labkey of the same name. can SQL be run to find where those exist? something that just identifies all the places where a view has been defined in labkey would be good enough. if someone could point me to the right table(s) i might be able to figure out the rest.
Ben Bimber2010-10-14 16:25Jon (LabKey DevOps)2015-04-28 22:00 metadata and studies TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
within the past couple days several fields that historically were hidden in default viewed stopped being hidden. was this deliberate or accidental? if it's accidental can the following be set back to hidden? or at least taken out of the default view?

created by
modified by
parentId
Ben Bimber2010-11-19 08:10Jon (LabKey DevOps)2015-04-28 22:00 create a QCState that works for executeQuery.view? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the EHR we load a lot of datasets in QWPs, and these by default do not have the 'special' study dataset buttons like QCState. I am considering creating a QCstate button that I can add to any query. Before I do that, is there some better mechanism that lets me take advantage of the existing QCState button?

Along the same vein, can I take advantage of the Cohort button or do i need to make my own?

Thanks for the help.
michael_stover@urmc.rochester.edu2011-02-10 06:56Jon (LabKey DevOps)2015-04-28 22:01 How to make the built-in queries invisible TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm making Queries for Elispot Assays, but when I include the Query webpart, I see my new queries plus all the built-in ones. I don't want to see all the built-in queries, just the one's I make. Is there a way make built-in queries invisible to the user?
jdutra2011-06-13 12:37Jon (LabKey DevOps)2015-04-28 22:02 addRecord method of store TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have the following code:

_store = new LABKEY.ext.Store({
        schemaName: 'study',
        queryName: 'Demographics',
        updatable: true,
        columns: 'ParticipantId, OrigID'
    });


which successfully creates a data store. I'd like to add a record to the store. I've tried the following:

_store.addRecord({'ParticipantId': 'hello', 'OrigID': 'goodbye'});

and, just to try the simplest case,

_store.addRecord({});

but my javascript code always hangs on that line. Apparently there is something wrong with the way I'm attempting to call addRecord. Is there any way someone could give me a little example of how it works?

Thanks,
Jen
Ben Bimber2011-09-14 12:25Jon (LabKey DevOps)2015-04-28 22:02 how integrated is oracle? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in the 11.2 release, you said labkey now supports oracle data sources. is oracle supported to the same degree as postgres/msssql, such that all of labkey-sql is available and such that you actually install labkey on it? or can you just setup oracle as an external data source?

if the former is true, is anyone using a primarily oracle install?
jdutra2011-09-26 06:42Jon (LabKey DevOps)2015-04-28 22:02 Duplicate Participant Ids in Participant List TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
All of a sudden one of our studies lists each Participant Id twice in the participant list. If I click on the ids, the first one for each participant is right, and takes me to a list of the participant's dataset entries for clinical data. The second one takes me to a blank list and it shows "Participant - FAM001 Â" after I click on it. The real ID is FAM001. The specimen search lists each participantId only once, and it doesn't show the  after the id. Any ideas how this got this way or what I can do to fix it?


Thanks,
Jen
slangley@scharp.org2011-11-29 15:34Jon (LabKey DevOps)2015-04-28 22:03 How to use the LABKEY.MultiRequest Class? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If I put the attached code into a Wiki WebPart, I would expect that the LABKEY.MultiRequest class will execute the three requests I have added to it, and then call the final callback method when the three requests complete.

But the final callback method seems to never get called. What am I doing wrong?

Thanks.
npham@primate.wisc.edu2012-05-02 09:49Jon (LabKey DevOps)2015-04-28 22:03 NullPointerException error for a LabKey list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When I try to edit information on one of our lists, I get a 500: Unexpected Server Error. I tried to remake the list as well and I am still getting the same problem. Other lists under this module seem to be working properly.

Here is the error message:

java.lang.NullPointerException
       at org.labkey.list.view.ListDefinitionForm.setName(ListDefinitionForm.java:137)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773)
       at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
       at org.apache.commons.beanutils.PropertyUtilsBean.copyProperties(PropertyUtilsBean.java:213)
       at org.apache.commons.beanutils.PropertyUtils.copyProperties(PropertyUtils.java:140)
       at org.labkey.api.action.BaseViewAction.defaultBindParameters(BaseViewAction.java:287)
       at org.labkey.api.action.BaseViewAction.defaultBindParameters(BaseViewAction.java:269)
       at org.labkey.api.action.FormViewAction.bindParameters(FormViewAction.java:115)
       at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:64)
       at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:173)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:346)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:874)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:156)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:693)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
       at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:581)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
       at java.lang.Thread.run(Thread.java:662)
request attributes
LABKEY.StartTime = 1335976864672
javax.servlet.request.ssl_session = 4fa15c7ef4e463d87def1316e05b6685d3a441703897f29f1b7999970aeb945a
LABKEY.container = /WNPRC/WNPRC_Laboratories/oconnor
LABKEY.action = update
LABKEY.RequestURL = /list/WNPRC/WNPRC_Laboratories/oconnor/update.view?listId=1538&pk=2010-0486&returnUrl=%2Flist%2FWNPRC%2FWNPRC_Laboratories%2Foconnor%2Fgrid.view%3FlistId%3D1538
javax.servlet.request.key_size = 128
LABKEY.OriginalURLHelper = /list/WNPRC/WNPRC_Laboratories/oconnor/update.view?listId=1538&pk=2010-0486&returnUrl=%2Flist%2FWNPRC%2FWNPRC_Laboratories%2Foconnor%2Fgrid.view%3FlistId%3D1538
LABKEY.controller = list
javax.servlet.request.cipher_suite = TLS_DHE_RSA_WITH_AES_128_CBC_SHA
LABKEY.OriginalURL = https://ehr.primate.wisc.edu/list/WNPRC/WNPRC_Laboratories/oconnor/update.view?listId=1538&pk=2010-0486&returnUrl=%2Flist%2FWNPRC%2FWNPRC_Laboratories%2Foconnor%2Fgrid.view%3FlistId%3D1538
LABKEY.Counter = 0

core schema database configuration
Server URL    jdbc:postgresql://localhost/labkey
Product Name    PostgreSQL
Product Version    8.4.7
Driver Name    PostgreSQL Native Driver
Driver Version    PostgreSQL 9.1 JDBC4 (build 901)

Thanks for the help
sadcat@u.washington.edu2012-06-05 18:40Jon (LabKey DevOps)2015-04-28 22:03 FIle editing ... TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
This is not a development question per se, but I cannot think of any other place to put it. A couple of users of our site are unhappy that they cannot "open a file already on LabKey, edit it, and save the edits to LabKey" (they are using the file management widget). Is there any sort of File Editor in LabLay or Ext?

Thanks,
X
slangley@scharp.org2012-06-28 11:01Jon (LabKey DevOps)2015-04-28 22:04 Migrating ActionButtons to not use deprecated constructor for 12.2 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In recompiling our Java modules against LabKey 12.2 (trunk), we are hitting compile errors from our use of the deprecated constructor:

    @Deprecated /** Use version that takes an action class instead */
    private ActionButton(String actionName, String caption)
    {
        assert StringUtils.containsNone(actionName,"/:?") : "this is for _actions_, use setUrl() or setScript()";
        _actionName = StringExpressionFactory.create(actionName);
        _caption = StringExpressionFactory.create(caption);
    }

Could you help explain which version of the constructor to use that "takes an action class"?

And give the code - below - from Elispot Module where we are experiencing these compile errors, could you give an example of such a migration?

Thanks.

Scott Langley
slangley@scharp.org

    private static final String VIEW_BEGIN = "begin.view";
    ...
    String actionName = "insertToStudy.view";
    ...
    String actionName = "insertToLabs.view";
    ...
    String actionName = "insertToStudyLabs.view";
    ...
    String actionName = "insertToBatch.view?labstudyseqId="+queryValue;
    ...
    String actionName = "insertToPlate.view?batchseqId="+queryValue;
    ...

    protected ButtonBar getButtonBar(String insertAction,String actionName)
    {
        ButtonBar bb = new ButtonBar();
        ActionButton insertButton = new ActionButton(ActionButton.BUTTON_DO_INSERT);
        insertButton.setActionName(insertAction);
        insertButton.setCaption("Insert a Row");
        bb.add(insertButton);
        ActionButton viewButton = new ActionButton(actionName,"View Data");
        bb.add(viewButton);

        ActionButton goBack = new ActionButton(VIEW_BEGIN, "Go Back");
        ActionURL backURL = new ActionURL(EliSpotModule.NAME,VIEW_BEGIN, getContainer());
        goBack.setURL(backURL.getLocalURIString());
        bb.add(goBack);
        return bb;
    }


    private DataRegion getDataRegion(Container c,List<ColumnInfo> cInfo,String actionName)
    {
        DataRegion rgn = new DataRegion();
        rgn.setColumns(cInfo);
        ButtonBar gridButtonBar = new ButtonBar();
        ActionButton insert = new ActionButton(actionName, "Insert a Record");
        insert.setActionType(ActionButton.Action.LINK);
        insert.setDisplayModes(DataRegion.MODE_GRID);
        gridButtonBar.add(insert);
        ActionURL backURL = new ActionURL(EliSpotModule.NAME,VIEW_BEGIN, c);
        ActionButton goBack = new ActionButton(VIEW_BEGIN, "Go Back");
        goBack.setURL(backURL.getLocalURIString());
        gridButtonBar.add(goBack);
        rgn.setButtonBar(gridButtonBar,DataRegion.MODE_GRID);
        rgn.setShowBorders(true);
        rgn.setShadeAlternatingRows(true);
        return rgn;
    }
slangley@scharp.org2012-09-14 18:10Jon (LabKey DevOps)2015-04-28 22:06 Ext JS 4 Extras TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Could you add the Ext.ux classes from the Ext JS distribution directory:

   extjs-4.1.0/examples/ux/

to the Ext JS 4 included with LabKey?

Specifically, I'd like to be able to use the Ext.ux.grid.FiltersFeature for adding column filtering to Ext JS 4 grids as in this Ext JS example:

http://docs.sencha.com/ext-js/4-1/#!/example/grid-filtering/grid-filter-local.html

Thanks.

Scott
Ben Bimber2013-05-01 15:52Jon (LabKey DevOps)2015-04-28 22:07 does LabKey expose sessionId anywhere visible? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Does anybody know if LK shows the sessionID to a user anywhere in the UI? I didnt see this on the admin console, or similar pages. It's available as LABKEY.user.sessionId if you want to open the JS console. I have a couple developers who will be needing that to test SSRS, and I hoped there would be a quick, graphical way to get it. If not, I'll rig something up. Thanks.
alexander karpikov2013-09-10 15:49Jon (LabKey DevOps)2015-04-28 22:08 Rlabkey and flow question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

I have successfully installed rLabkey and can query from a flow analysis. For instance this works

  getRows(s, scobj$FCSAnalyses$Run)

However, I can not seem to query statistics. The following statement fails.

  getRows(s, scobj$FCSAnalyses$Statistic/Lymphocytes:Freq_Of_Parent)

Do you have advice on the correct syntax for querying statistic columns?

Thanks,
Sasha
jeckels2013-10-09 16:36Jon (LabKey DevOps)2015-04-28 22:08 Change to file layout in downloads for 13.3 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just made a change to the file structure for our .tar.gz and .zip downloads that will affect 13.3.

For many releases, we split JAR files into two separate subdirectories, ./server-lib and ./common-lib. The distinction was important for Tomcat 5.5, which had corresponding ./server/lib and ./common/lib directories for its file (and classloader) layout. We no longer support Tomcat 5.5, and Tomcat 6 and 7 have a single ./lib directory. Therefore, we've consolidated the two directories into a single ./tomcat-lib directory in our distributions.

Our Windows installer and Linux upgrade scripts will automatically work with the new layout. f you have a different upgrade process, you may need to update your scripts or your manual workflow. Instead of pulling files from both server-lib and common-lib, you'll just need to pull them from the tomcat-lib directory.

Let us know if you have any questions.

Thanks,
Josh
matthew.monroe@pnnl.gov2013-10-16 11:58Jon (LabKey DevOps)2015-04-28 22:08 Adding a new search engine TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
A colleague of mine is considering using LabKey for tracking and analyzing proteomics data. I see that the Proteomics Core in LabKey supports Mascot, Sequest, and X!Tandem. He, however, wondered if LabKey could be extended to support MSGF+. So, my question is, would it be feasible for me to write a custom module to analyze a dataset with an alternative search engine, or is search engine automation too deeply integrated with the core code? If a module is feasible, can you point me to any specific pages in your extensive online documentation that would provide some guidance on what would be entailed in the module development?

Thanks,
 Matt
Will Holtz2015-03-04 11:16Jon (LabKey DevOps)2015-03-06 23:02 Transformation script not providing AssayRunTSVData field TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a transformation script within a module-based assay that is written in R. Most of the time the import and transformation works fine. However, sometimes the runProperties.tsv file does not contain the line "runDataFile <filename> AssayRunTSVData <filename>". This causes my script to fail, as it doesn't know where to save the transformation output. Unfortunately I have not been able to find test case that always reproduces this problem. I have observed the problem about 10 times now, but with multiple attempts, the transformation has always been successful. Any ideas why those parameters are occasionally getting left out?

thanks,
-Will
laurapas2015-05-07 16:58Jon (LabKey DevOps)2015-05-07 20:37 source reusable r functions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I will have some r functions that I'd like to reuse within modules and standalone reports. Do you have any recommendations for storage and source() of reusable r functions within LabKey? I suppose I could create a package and include in our R installation, but I was wondering if there is another way to store/access my reusable functions.
feifei bao2015-05-27 13:23Jon (LabKey DevOps)2015-06-02 16:56 How to remove search and pages parts on wiki page? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, I have a question that on every wiki page I have the search box and page web parts. Some page web parts I can remove. But some I can not. How can I just leave the wiki page I created and remove the search box, pages web part as well as 'select web part' part?

Thank you very much

Feifei
eva pujadas2015-12-03 02:15Jon (LabKey DevOps)2015-12-13 21:41 Unexpected edit behavior with primary key column containing blanks TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey developers,

We have observed a strange behavior when editing a row in a list using the "EDIT" link menu in the list view.
That is happening when a list has a primary with column name containing a blank, e.g. when importing your Demographics dataset example which contains the column name "Participant ID".
If, in the procedure of creating the new list, the primary column is called "Participant ID", editing a row will try to change the primary key value to some value similar to "{101344,101344}"
If the primary key column is called "ParticipantID" (no blank in the column name), editing of a row works properly.

I hope that can help.
Eva
Will Holtz2016-03-10 14:44Jon (LabKey DevOps)2016-03-18 07:48 Populating returnUrl within the url metadata TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
There are a fair number of places within Labkey where return URLs are passed via a returnUrl parameter within a URL. I'd like to use one of these URLs in a table metadata <url> field, but I don't see a good way to populate the returnUrl value. One option is to apply the metadata to an LABKEY.QueryWebPart via the config.metadata parameter. This seems a bit clunky to me. Is there any substitution that I can use for the current URL that would work in a resources/schemas/SCHEMANAME.xml file? I'm thinking of something along the lines of the ${contextPath}, ${containerPath} substitutions.

thanks!
-Will
klutz2016-06-03 13:32Jon (LabKey DevOps)2016-06-24 10:44 Labkey pivot query limit TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are working with two fairly large data sets, one at 750 proteins and another at ~1400 genes, we are storing this data in long format and can successfully use SQL to pivot each table and create a report individually.

When I try to JOIN the two data sets I get the following error:
ExecutingSelector; SQL []; ERROR: target lists can have at most 1664 entries; nested exception is org.postgresql.util.PSQLException: ERROR: target lists can have at most 1664 entries

We want to be able to share full and integrated data sets, which would be slightly over 2000 columns, more if we want to include more. We are using Labkey version 15.3 on CentOS.

I am wondering...

1. Is this a hard limit of Postgres SQL and Labkey or is this be user error?
2. What would be the common solution/practice for data sets with more than 2000 columns in labkey?

Thank you,
Kristen Lutz

-Indoc Research
Sossy Sahakian2017-02-03 10:19Jon (LabKey DevOps)2017-02-15 23:40 Customizing Contacts web part TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi!

I am trying to find out how we could customize the Contacts web part to display the groups each user is a part of when placed in the project and folder dashboards. I see the groups in the Admin console, but they do not appear when the Contacts web part is placed in a project or folder.

Thank you!
-S.
atul sharma2017-07-14 00:27Jon (LabKey DevOps)2017-07-18 21:34 query execution fail while using between in javascript (labkey query api method) TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am facing an issue, The between keyword throws error while running.

PFD:

I am using:
var m_fro_date=new Date(somedate);
var currentInsertDate=new Date(somedate2);

LABKEY.Query.executeSql({
               schemaName: 'DEMOSCHEMA',
               sql: 'SELECT * FROM ' + Importantdata+
            +'where import_date between {ts \''+m_fro_date+'\'}' +' and {ts \'' +currentInsertDate+'\' }',
        success: function(data){
        alert("YES!!");
      }
});

Error message box says unexpected token "between".

Please help

Regards
Atul
Matt V2017-10-13 09:49Jon (LabKey DevOps)2017-10-14 15:55 Building for production, gradle error: could not determine dependencies TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Following this guide: https://www.labkey.org/Documentation/wiki-page.view?name=productionBuilds

If I run a simple ./gradlew deployApp (optionally cleanBuild), then everything goes smoothly. Naturally I run into the following error on the web server:
    Configuration Error Detected at LabKey Server Startup
    This server does not appear to be compiled for production mode
       org.labkey.api.util.ConfigurationException: This server does not appear to be compiled for production mode
       at org.labkey.api.module.ModuleLoader.verifyProductionModeMatchesBuild(ModuleLoader.java:430)
       at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:329)
       at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:244)
       ...


However, if I add the -PdeployMode=prod flag I encounter into the following error:

$ ./gradlew deployApp -PdeployMode=prod --stacktrace
:buildSrc:compileJava NO-SOURCE
:buildSrc:compileGroovy NO-SOURCE
:buildSrc:processResources NO-SOURCE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava NO-SOURCE
:buildSrc:compileTestGroovy NO-SOURCE
:buildSrc:processTestResources NO-SOURCE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test NO-SOURCE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':server:modules:visualization:compressClientLibs'.
> java.lang.RuntimeException: ERROR: Unable to find script file: /build/QA/web/vis/chartWizard/baseChartWizardPanel.js from library: /build/QA/web/source/server/modules/visualization/resources/web/vischart.lib.xml

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.GradleException: Could not determine the dependencies of task ':server:modules:visualization:compressClientLibs'.
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.resolve(CachingTaskDependencyResolveContext.java:67)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:55)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.addToTaskGraph(DefaultTaskExecutionPlan.java:139)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.addTasks(DefaultTaskGraphExecuter.java:101)
        at org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:47)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
        at org.gradle.execution.DefaultTasksBuildExecutionAction.configure(DefaultTasksBuildExecutionAction.java:44)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
        at org.gradle.execution.ExcludedTaskFilteringBuildConfigurationAction.configure(ExcludedTaskFilteringBuildConfigurationAction.java:47)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.select(DefaultBuildConfigurationActionExecuter.java:36)
        at org.gradle.initialization.DefaultGradleLauncher$CalculateTaskGraphAction.execute(DefaultGradleLauncher.java:246)
        at org.gradle.initialization.DefaultGradleLauncher$CalculateTaskGraphAction.execute(DefaultGradleLauncher.java:243)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:172)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102)
        at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: ERROR: Unable to find script file: /build/QA/web/vis/chartWizard/baseChartWizardPanel.js from library: /build/QA/web/source/server/modules/visualization/resources/web/vischart.lib.xml
        at org.labkey.gradle.task.ClientLibsCompress.parseXmlFile(ClientLibsCompress.groovy:197)
        at org.labkey.gradle.task.ClientLibsCompress$_getImporterMap_closure1.doCall(ClientLibsCompress.groovy:61)
        at org.labkey.gradle.task.ClientLibsCompress.getImporterMap(ClientLibsCompress.groovy:59)
        at org.labkey.gradle.task.ClientLibsCompress_Decorated.getImporterMap(Unknown Source)
        at org.labkey.gradle.task.ClientLibsCompress_Decorated$getImporterMap$0.callCurrent(Unknown Source)
        at org.labkey.gradle.task.ClientLibsCompress.getInputFiles(ClientLibsCompress.groovy:99)
        at org.labkey.gradle.task.ClientLibsCompress_Decorated.getInputFiles(Unknown Source)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.TaskPropertyInfo$4.create(TaskPropertyInfo.java:99)
        at org.gradle.util.SingleMessageLogger.whileDisabled(SingleMessageLogger.java:217)
        at org.gradle.api.internal.project.taskfactory.TaskPropertyInfo.getValue(TaskPropertyInfo.java:97)
        at org.gradle.api.internal.project.taskfactory.TaskClassValidator$FutureValue.call(TaskClassValidator.java:62)
        at org.gradle.util.GUtil.uncheckedCall(GUtil.java:402)
        at org.gradle.api.internal.file.collections.BuildDependenciesOnlyFileCollectionResolveContext.add(BuildDependenciesOnlyFileCollectionResolveContext.java:72)
        at org.gradle.api.internal.file.collections.BuildDependenciesOnlyFileCollectionResolveContext.add(BuildDependenciesOnlyFileCollectionResolveContext.java:84)
        at org.gradle.api.internal.tasks.TaskPropertyFileCollection.visitContents(TaskPropertyFileCollection.java:53)
        at org.gradle.api.internal.file.CompositeFileCollection.visitDependencies(CompositeFileCollection.java:166)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext$TaskGraphImpl.getNodeValues(CachingTaskDependencyResolveContext.java:88)
        at org.gradle.internal.graph.CachingDirectedGraphWalker$GraphWithEmpyEdges.getNodeValues(CachingDirectedGraphWalker.java:202)
        at org.gradle.internal.graph.CachingDirectedGraphWalker.doSearch(CachingDirectedGraphWalker.java:112)
        at org.gradle.internal.graph.CachingDirectedGraphWalker.findValues(CachingDirectedGraphWalker.java:64)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.doResolve(CachingTaskDependencyResolveContext.java:76)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.resolve(CachingTaskDependencyResolveContext.java:65)
        ... 57 more
Caused by: java.lang.RuntimeException: ERROR: Unable to find script file: /build/QA/web/vis/chartWizard/baseChartWizardPanel.js from library: /build/QA/web/source/server/modules/visualization/resources/web/vischart.lib.xml
        at org.labkey.gradle.task.ClientLibsCompress$XmlImporter.startElement(ClientLibsCompress.groovy:353)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
        at org.labkey.gradle.task.ClientLibsCompress.parseXmlFile(ClientLibsCompress.groovy:192)
        ... 79 more


BUILD FAILED

Adding cleanBuild doesn't fix it. I'm building from a terminal, not within IntelliJ since that's part of our release process. The LabKey source is freshly downloaded from SVN, then our modules added, then this whole process kicks off. Not sure what to try next, any ideas?
Edward2018-02-12 04:34Jon (LabKey DevOps)2018-02-12 13:57 Labkey Biologics and Labkey Server TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I would like to use both Labkey server and Labkey biologics on the same computer. Is it possible?

I am asking this question because the instruction for setting labkey biologics states that labkey biologics can be enabled in labkey server by re-building the code for labkey server (https://www.labkey.org/Documentation/wiki-page.view?name=buildingBiologics&_docid=wiki%3A16340131-7af1-1035-b86e-fe851e083e48).

I would like to keep both labkey server and labkey bilogics because of the additional features by biologics. Do anybody know if it is possible?
zromer2018-02-19 21:30Jon (LabKey DevOps)2018-02-20 11:51 Transform scripts for preprocessing uploads to assay modules TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If I have data that is being uploaded to an assay module which doesn't match the format required by the module can I use a transform script to preprocess / transform the data into the required format? This was my original understanding of what they were for but I'm having trouble getting the transform scripts to run on data requiring transformation before upload, while they seem to run fine on data which is already in the right shape.
marcia hon2018-02-27 08:33Jon (LabKey DevOps)2018-02-28 20:53 R-Report - Saving TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have the following:

```{r setup, echo=FALSE, cache=TRUE, results='hide', warning=FALSE, comment=FALSE, warning=FALSE, message=FALSE, encoding = 'UTF-8',comments = ""}
knitr::opts_chunk$set(echo=FALSE, cache=TRUE, comment=FALSE, comments = "", warning=FALSE, eval = TRUE, encoding = "native.enc")
knitr::pandoc('script.Rmd', format='html')
```

```{r, echo=FALSE, cache=TRUE, results='hide', warning=FALSE, comment=FALSE, warning=FALSE, message=FALSE, encoding = 'UTF-8',comments = ""}
currentdir <- getwd()
assign("html_filename", paste(currentdir, "/script.html", sep=""))
assign("out_filename", paste("/directory/@files/Reports/Results/Report_", format(Sys.time(), "%Y-%m-%d_%H:%M:%S"), ".html", sep=""))
file.copy(from = html_filename, to = out_filename)
system("rm script.* *.tsv")
```

This code sometimes saves the file and sometimes does not save the file. Is there a way to force it to save always?

Thanks,
Marcia
Jon (LabKey DevOps)2021-01-20 13:01Jon (LabKey DevOps)2021-01-22 07:55 COMPLETE - Scheduled Maintenance: artifactory.labkey.com Friday January 22, 2021 @ 7 AM PDT TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We will be performing scheduled maintenance on LabKey's artifactory server ( https://artifactory.labkey.com/ ) on Friday January 22, 2021 @ 7 AM PDT.

The expected downtime should be approximately 60-90 minutes.

This will affect build artifacts during this maintenance period.

While Artifactory is unavailable, you should use the --offline flag for gradle when building.

We are performing this maintenance to install the latest security patches for Artifactory and its underlying operating system.
slangley@scharp.org2008-01-10 14:03Jon (LabKey DevOps)2015-04-28 21:52 The LabKey Architecture TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
To aid in my understanding, could you at a high-level document what classes and relationships of LabKey may map to known Design Patterns?

One Design Patterns book I've thinking of in particular that you could compare with is:
 Patterns of Enterprise Application Architecture bye Martin Fowler.

And you need not worry about documenting the design patterns used by other frameworks that LabKey buils on - Spring, Struts, etc. - because those are documented other places.

Thanks.

Scott
wnels2@uky.edu2008-06-23 12:49Jon (LabKey DevOps)2015-04-28 21:53 ConversionQueue temp directory TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm in the process of adding the ConversionQueue to our pipeline. I use the CPAS installer so my Labkey server is in c:/Program Files/Labkey Server/apache...... I'd like to install the ConvertionQuene on this server.

The .RAW is moved into the tomcat tmp directory before running readw.exe but readw.exe can't handle the spaces in the the tmp directory path. Is there a way to change the tmp dir that is used by ConvertionQuene?

Also, I will need to add the Bruker(.yep) and ABI(.wiff) converters. Can I commit the code for the extra converters to the Labkey repository?

Thanks,
Bill
wnels2@uky.edu2009-01-28 11:36Jon (LabKey DevOps)2015-04-28 21:53 build error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm installing a new development machine. I've checked out branch 8.3. Upgraded to IntelliJ 8.0. I'm getting this error:
C:\CPAS\server\build.xml:651: org.apache.jasper.JasperException: file:C:/CPAS/build/modules/experiment/jspTempDir/webapp/org/labkey/experiment/controllers/list/customizeSingleListWebPart.jsp(54,46) Attribute value props.get("listId") is quoted with " which must be escaped when used within the value
C:\CPAS\server\build.xml:651: org.apache.jasper.JasperException: file:C:/CPAS/build/modules/experiment/jspTempDir/webapp/org/labkey/experiment/controllers/list/customizeSingleListWebPart.jsp(54,46) Attribute value props.get("listId") is quoted with " which must be escaped when used within the value

If I escape the quotes it will continue to another jsp with the same error. Is there something in my configuration that causes this?

Thanks,
Bill

P.S. Adam: Your advice on how to use lists in the study module was a great help. Thanks!
wnels2@uky.edu2009-04-30 11:47Jon (LabKey DevOps)2015-04-28 21:53 update rowId TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
For the method Table.update(User user, TableInfo table, K fieldsIn, Object rowId, Object rowVersion),
how does the application determine which column is used for rowId; the primary key?
I didn't notice any annotation in the schema.xml or in the table's model bean.

Thanks,
Bill
Brian Pratt2009-09-30 15:17Jon (LabKey DevOps)2015-04-28 21:54 DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com." TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Feels like I've gotten myself into some halfway state - any ideas on how to reset so DRT succeeds?

When I hit this state I then have to go in and get rid of all the users created during the security test, should I also be getting rid of myself? Neither scenario seems to lead to success, maybe there's something more fundamental that needs hosing out?

Thanks,

Brian
wnels2@uky.edu2010-02-17 09:32Jon (LabKey DevOps)2015-04-28 21:55 server crashing TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
My labkey webapp has been crashing every night after System maintenance. I have to restart tomcat to recover.
The code is from the cloud10 branch that was created just before the 10.1 branch. log file is attached. problem starts at line number 3496. The gist of the repeating error is below.
Thanks,
Bill

Exception in thread "Lucene Merge Thread #0" org.apache.lucene.index.MergePolicy$MergeException: java.io.FileNotFoundException: /usr/local/apache-tomcat-5.5.27/temp/labkey_full_text_index/_24w.cfs (Too many open files)
    at org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:347)
    at org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:312)
Caused by: java.io.FileNotFoundException: /usr/local/apache-tomcat-5.5.27/temp/labkey_full_text_index/_24w.cfs (Too many open files)
    at java.io.RandomAccessFile.open(Native Method)
Ben Bimber2010-02-22 11:46Jon (LabKey DevOps)2015-04-28 21:55 best way to reset entire labkey install TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
What's the best method to wipe an entire labkey install (ie. the one on my laptop) and start fresh? Is there anything short of uninstalling labkey, deleting the postgres schema and reinstalling labkey?

-Ben
Ben Bimber2010-02-23 21:06Jon (LabKey DevOps)2015-04-28 21:55 menu bar oddity TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
on the menu bar, the text of the left-most item is always the name of the active project. however, the URL of that link is always 'begin.view' of the folder you're currently in. this mix and match behavior doesnt make sense to me. It seems like the menu item should either have the text and URL of the project root or have the text and URL of the folder you're currently in.
wnels2@uky.edu2010-02-25 19:05Jon (LabKey DevOps)2015-04-28 21:55 merge TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to sync a branch to the trunk. The branch was created at r12993, right be fore the 10.1 branch.
Build is failing because it cannot find org.labkey.data.xml.ActionLink. It appears that this package is created during the build; the package is there but not the class.
Thanks,
Bill
Ben Bimber2010-03-03 09:42Jon (LabKey DevOps)2015-04-28 21:55 site level file root vs. assay pipeline root? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I set the site-level file root for our site. In a subfolder, I have an assay. I would have thought that assay would inherit the file root and use the correct folder for the pipeline. However, the assay is asking me to set the pipeline root. Is this a bug or is that the expected behavior? I can send someone a link to see the issue if needed.
Lili2010-05-07 11:27Jon (LabKey DevOps)2015-04-28 21:59 Action to upload Study .zip TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I created a form in a wiki web part for user to upload a Study .zip file, which contains data spreadsheets and structural meta information such as view definitions. When user clicks on submit, they will create a new Study - new subfolder is created for the study, and data is uploaded into DB.

I'm thinking to create a new Action class to do this job. How do I plug in a new Action? What do I need to build and deploy?

And is there any other approach?
Ben Bimber2010-09-02 09:46Jon (LabKey DevOps)2015-04-28 21:59 labkey menu logs to console? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i noticed that when you hover over an item in the labkey menu, it logs a message to the console. it looks like something leftover from development. i doubt it really hurts anything, but is there a need to keep this logging?
Ben Bimber2010-10-13 02:27Jon (LabKey DevOps)2015-04-28 22:00 bug associated with study hard table transition TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I updated my laptop to the latest trunk version then let it move all the EHR study data to hard tables. about 48H later, it finished. most queries seem to run still, but i get the following error when trying to run anything involving studyData:

ERROR: UNION types text and integer cannot be matched Position: 1280
Ignoring filter/sort on column 'date' because it does not exist.
Ben Bimber2011-04-29 17:05Jon (LabKey DevOps)2015-04-28 22:01 queries based on an assay checked into subversion TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Assays have a definition that defines a basic set of columns. however, each instance of that assay could have different columns. each instance can also get a different name.

A second center is installing the MHC Assay. That module has the assay definition, metadata, some simple UI and queries. thanks to 11.1 changes, the first three can now be tied to the assay definition in general, and are not linked to a specific instance of that assay. this makes them much more portable.

any query based on an assay currently needs to point to a specific instance of that assay. this is b/c the name of that assay instance is built right into the source table's name, such as 'MHC_SSP Runs'. in order to write a query about an assay table, you need to hard-code the name of that assay instance.

because we want to share the queries with the other center, i'm going to have them name their assay instance the same as ours. this isnt really a hardship, but it is fragile. is there any option besides that?

thanks.
michael_stover@urmc.rochester.edu2011-05-02 12:00Jon (LabKey DevOps)2015-04-28 22:01 11.1 upgrade and now can't copy-to-study TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to copy an assay to a study, the same assay I previously successfully copied. The only thing I can think of that's changed is that the system has been upgraded to 11.1. When I try to copy-to-study, I get the following:

java.lang.NullPointerException
       at org.labkey.api.exp.api.StorageProvisioner.createTableInfo(StorageProvisioner.java:460)
       at org.labkey.study.model.DataSetDefinition.loadStorageTableInfo(DataSetDefinition.java:426)
       at org.labkey.study.model.DataSetDefinition.getStorageTableInfo(DataSetDefinition.java:460)
       at org.labkey.study.model.DataSetDefinition$DatasetSchemaTableInfo.<init>(DataSetDefinition.java:736)
       at org.labkey.study.model.DataSetDefinition.getTableInfo(DataSetDefinition.java:389)
       at org.labkey.study.model.DataSetDefinition.importDatasetData(DataSetDefinition.java:1256)
       at org.labkey.study.model.StudyManager.importDatasetData(StudyManager.java:2334)
       at org.labkey.study.assay.AssayPublishManager._publishAssayData(AssayPublishManager.java:301)
       at org.labkey.study.assay.AssayPublishManager.publishAssayData(AssayPublishManager.java:211)
       at org.labkey.study.assay.AssayPublishManager.publishAssayData(AssayPublishManager.java:180)
       at org.labkey.api.study.assay.AbstractAssayProvider.copyToStudy(AbstractAssayProvider.java:186)
       at org.labkey.api.study.actions.PublishConfirmAction.attemptCopy(PublishConfirmAction.java:441)
       at org.labkey.api.study.actions.PublishConfirmAction.getView(PublishConfirmAction.java:234)
       at org.labkey.api.study.actions.PublishConfirmAction.getView(PublishConfirmAction.java:50)
       at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:61)
       at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:166)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:348)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:756)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:609)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
       at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:837)
       at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
       at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1287)
       at java.lang.Thread.run(Unknown Source)
request attributes
LABKEY.StartTime = 1304362766728
LABKEY.action = publishConfirm
org.springframework.web.servlet.DispatcherServlet.CONTEXT = org.springframework.web.context.support.XmlWebApplicationContext@d9dbd1: display name [Study WebApplicationContext]; startup date [Thu Apr 21 11:08:09 EDT 2011]; parent: org.springframework.web.context.support.XmlWebApplicationContext@b1a4e2
LABKEY.controller = assay
LABKEY.container = /CBIM/Zand Lab
LABKEY.RequestURL = /labkey/assay/CBIM/Zand%20Lab/publishConfirm.view?defaultValueSource=UserSpecified&validate=false
LABKEY.OriginalURLHelper = /labkey/assay/CBIM/Zand%20Lab/publishConfirm.view?defaultValueSource=UserSpecified&validate=false
LABKEY.OriginalURL = http://immdev.bst.rochester.edu:8080/labkey/assay/CBIM/Zand%20Lab/publishConfirm.view?defaultValueSource=UserSpecified&validate=false
LABKEY.Counter = 0

core schema database configuration
Server URL    jdbc:postgresql://localhost/labkey
Product Name    PostgreSQL
Product Version    8.3.7
Driver Name    PostgreSQL Native Driver
Driver Version    PostgreSQL 9.0 JDBC4 (build 801)
jdutra2011-06-14 09:43Jon (LabKey DevOps)2015-04-28 22:02 Error: transaction aborted TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have some data entry wiki pages in labkey, which save data to one or more datasets. Usually the code works fine, but every once in a while that same code gives me the error "Error: transaction aborted". When this happens, the data may have saved to all of the relevant data sets, some but not others, or none of them. It's very inconsistent. I don't see any information in the stack trace about this error, either. Does anyone have any ideas as to what might be causing this?

Thanks,
Jen
trent2011-07-31 18:48Jon (LabKey DevOps)2015-04-28 22:02 Data not Paged after Creating Chart View TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
On a large dataset:

View Dataset
Click Views -> Create -> Chart View
XY Scatter Plot -> Any X axis -> Any Y axis
Save Chart
Name it anything -> testchart
<redirected to chart view of the data> or <click on the chart view from the Views web part on the study portal page>
Click on Data tab to view the data again (which I presume would be a common task, after viewing chart)

Data is not paged, causing browser to lock up. Similar to issue mentioned: https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=5454 (nb: Was going to update original issue, but figured since it is not exactly the same situation, best to mention it here).

(Paging issue only occurs after first viewing the chart - if you go directly to the data from the study portal page, paging is fine)
Ben Bimber2011-09-30 05:01Jon (LabKey DevOps)2015-04-28 22:02 insertRows() from within validation script for purpose of logging errors TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I posted earlier about logging client-side errors. Essentially I use insertRows() in the error callback to log errors to the audit table. I did the same thing within server-side validation scripts, but noticed an issue this morning. My understanding is that all SQL calls within the validation script are 1 transaction. therefore if there is an error, all SQL changes are reverted. in other words, if my script fails, then my attempt to log the error in the audit log will get rolled back.

Is this observation correct and is it possible to insertRows from within a validation script in a manner that will not be rolled back if the script otherwise fails?

thanks.
Maya Li2011-12-09 13:29Jon (LabKey DevOps)2015-04-28 22:03 Recovered Objects TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We recently did a database check and two recovered objects popped up in the form of _RecoveredObjects[#####] in our project list. There is no known content in the webdav for these recovered objects. Is it save to delete them? What could have gone wrong that caused these recovered objects to pop up.
jdutra2012-07-19 09:18Jon (LabKey DevOps)2015-04-28 22:04 Specimen archive TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
There is a field listed in the specimen archive format documentation called parent_specimen_id. I'm looking for a way to show that one vial came from another vial. For example, a vial of blood cells was sorted into several vials which contain CD4, CD8, etc. I would like the CD4 vial information to have a link to the original cell vial. Parent_specimen_id seemed promising, but it's numeric, which means I can't put a global unique id in there. Is it meant to have some internally generated key instead?

I notice there are also text fields for unique_specimen_id and other_specimen_id, and it's not really clear to me what these are for either.

Is it possible to do what I'm trying to do? And if it is, could you point me towards the right field(s) to use?

Thanks so much,
Jen
Leo Dashevskiy2012-07-26 13:29Jon (LabKey DevOps)2015-04-28 22:04 Custom tables for a module/web part TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

We will have a need for some custom tables for our web part in the future.

I know that the sql files for the tables creation (and update) go into <web part folder>/schemas/dbscripts/postgresql/ and should follow the format <web part name>-<old version>-<new version>.sql

Could someone, please, explain, what is the associated XML file, referred to as "schema file" on this page: https://www.labkey.org/wiki/home/Documentation/page.view?name=includeDatabaseScripts .
On that same page it mentions that it can be created automatically on my behalf and so there is no need to type it up by hand, is that right? So does it get updated automatically as well with each change in the tables' structure or I would need to regenerate it each time my schema changes? The server does update the schemas themselves, when the version of the web part changes, via the sql scripts mentioned above, hence the naming convention, is that correct?

Thanks.
-Leo
Anthony Corbett2012-10-03 08:12Jon (LabKey DevOps)2015-04-28 22:06 SQL NOT IN using another query's column for filtering TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm working on creating queries that will supply summary statistics for an NIH inclusion report. Data must be reported as count of Participants for each Race grouped by Sex.

The dataset that holds this information is named 'Demographics' and has the following fields defined:

Field: Data Type:
----------- --------------
ParticipantId String
SequenceNum Int // always -1
Sex Int // lookup to list that represents Sex: 0=Male 1=Female
White Int // lookup to list that represents Booleans: 0=False 1=True
Black Int // lookup to list that represents Booleans: 0=False 1=True
Asian Int // lookup to list that represents Booleans: 0=False 1=True
NatAmer Int // lookup to list that represents Booleans: 0=False 1=True
Pacific Int // lookup to list that represents Booleans 0=False 1=True
NotReported Int // lookup to list that represents Booleans 0=False 1=True

Data structure Rules:
1. Each row in the dataset represents a single Participant's Racial makeup
2. Each Participant can have multiple races indicated (Each row can have 1's in multiple columns).


To create the summary statistics for the count of participants for each race grouped by Sex I started with the following query:

SELECT
  demo.Sex,
  SUM(demo.White) as white,
  SUM(demo.Black) as black,
  SUM(demo.Asian) as asian,
  SUM(demo.NatAmer) as nativeAmerican,
  SUM(demo.Pacific) as pacific,
  SUM(demo.NotReported) as notReported,
  Count(demo.ParticipantId) as total,
FROM Demographics as demo
GROUP BY demo.Sex

Since each race value is a Int (0 or 1) I can use SUM to aggregate the count of races grouped by Sex, great.

However, because rule #2 above the counts of each race/sex doesn't match the total (count of Partipcants of each Sex). I will deal with counts of multi-racial participants in another way... Therefore, I need to use a WHERE clause to filter out those Participants with multiple races indicated. There is multiple ways to write this WHERE clause:

1. Computing the number of 1's (True's) for each row and checking if it equals 1 (only one race indicated)
WHERE demo.White + demo.Black + demo.Asian + demo.NatAmer + demo.Pacific + demo.NotReported = 1

2. Refactor the above WHERE computation into a subquery, then use a NOT IN to filter ParticiantId's
WHERE demo.ParticipantId NOT IN (
    SELECT
      Demographics.ParticipantId,
    FROM Demographics
    WHERE (
      Demographics.White +
      Demographics.Black +
      Demographics.Asian +
      Demographics.NatAmer +
      Demographics.Pacific +
      Demographics.NotReported
    ) > 1
)

Both work and produce the same results. I actually prefer the second WHERE clause as I can see other queries I'll need to write where knowing which participants are multi-racial will need to be known. So the next logical step is to put the subquery in it's own named query called 'MultipleRaceParticipants'.

Unfortunately, when I try to use 'MultipleRaceParticipants' in the WHERE's NOT IN clause it can't resolve the ParticipantId column of the named query.

SQL QUERY:
------------------------
SELECT
  demo.Sex,
  SUM(demo.White) as white,
  SUM(demo.Black) as black,
  SUM(demo.Asian) as asian,
  SUM(demo.NatAmer) as nativeAmerican,
  SUM(demo.Pacific) as pacific,
  SUM(demo.NotReported) as notReported,
  COUNT(demo.ParticipantId) as total,
FROM Demographics as demo
WHERE demo.ParticipantId NOT IN ( MultipleRaceParticipants.ParticipantId )
GROUP BY demo.Sex

ERROR:
-------------------
Error on line 11: Could not resolve column: MultipleRaceParticipants/ParticipantId


Do I have a [LABKEY] SQL syntax error or does the query service not allow named queries inside a NOT IN operation?

Any help would be appreciated!

Thanks,

Anthony Corbett
Department of Biostatistics and Computational Biology
University of Rochester
Ben Bimber2013-02-05 09:07Jon (LabKey DevOps)2015-04-28 22:07 would you use LK's timeline if you were making a new project today? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey has a timeline module, which doesnt appear to have a lot of active work. Looking at reviews for the timeline JS package it uses, it appears the timeline widget it uses is no longer under active development.

I'm wondering: 1) does anyone know if there are groups continuing to actively use this, and 2) if you were to make a timeline today, would you use it or look elsewhere first?
Ben Bimber2013-02-11 10:30Jon (LabKey DevOps)2015-04-28 22:07 compressed indexes TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
thought you guys might want to be aware - we've been experimenting with compressed indexes on our server with some good preliminary results. our study is quite large, and we have added several custom indexes on all datasets (mostly targets of FKs). these indexes make a noticeable difference.

space concerns prompted the investigation into compression, but apparently it can also be a perf boost (disk IO trumps the overhead of compression). after compression we saved about 10gb on the disk, and test queries are actually quicker. this isnt exactly an exhaustive test yet, but it's looking quite good. may be something to keep in mind for other big installs. this is on SQLserver 2008 r2.

at the moment we're not doing a lot of writes (except background jobs), so we will need to evaluate further on that. posts seem to suggest the impact is minimal though.
Leo Dashevskiy2013-02-15 09:08Jon (LabKey DevOps)2015-04-28 22:07 Direct interaction between different modules without page reload TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there any mechanism to let one module know that something happened in another module (data loaded into db by the latter, so that the former can reload its data sources)? (Right now I have to reload the page for the former to refresh its sources, which is not convenient...)

where my modules each are of this form:

<script type='text/javascript'>

    var initOpenCyto<moduleName> = function(){
        var webPartDiv = <%=webpartContext%>.wrapperDivId;

        var OpenCyto<moduleName> = new LABKEY.ext.OpenCyto<moduleName>({
            webPartDivId: webPartDiv
        });
    }

    Ext.onReady( initOpenCyto<moduleName> );

</script>
Ben Bimber2013-08-29 09:59Jon (LabKey DevOps)2015-04-28 22:08 13.2 menu bar changes TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi guys,

i generally like the menu bar changes in 13.2, but we're finding one issue. we have a webpart used in the menu that renders and ext panel w/ a combo. when expanded, the combo list frequently extends outside the menu's area. therefore when clicking an item in the combo, the cursor is outside the menu's area. pre-13.2, clicking an item in the combo was never a problem. post 13.2, the menu seems to collapse much quicker. this means when you select a combo item the menu closes on you.

could whoever did the menu work comment on that? did we change how the menus render/collapse?

thanks.
cyrus2015-05-01 08:18Jon (LabKey DevOps)2015-05-04 16:28 vanilla Spring + LabKey Binary vs LabKey module development TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hey LabKey folks. Thanks for answering my previous questions. I greatly appreciate it.

I'm looking for your input/opinion about the architecture of a project we're working on in our shop. Earlier in the production cycle, we decided to develop it as a LabKey module. The idea was to limit or eliminate all Java code and develop only a thick Javascript client to do what we needed done. Since then, we've now learned that we will have to develop some Java code and create/maintain DB tables outside of LabKey's core functions.

So as the newest member of the team, coming in with limited perspective, I'm trying to wrap my head around the pros/cons of developing an application in vanilla Spring/Spring security + unmodified LabKey binary VS developing an application as a LabKey module.

Here's what I've got so far:

vanilla spring/spring security + LabKey Binary - PROS
-------------------------------------
- Plentiful public documentation (StackExchange, Google searches, etc)
- Developer portability (special knowledge of LK not required)
- Newer techs (JPA, Boot, Java 8 syntax/libraries)
- Easier installation/deployment (one executable jar vs LK source's relatively involved installation process)
- IDE agnostic (LK source development seems to essentially require IntelliJ, we tried Eclipse but failed)
- Zero manual DB config with JPA annotations (we do require some custom tables)
- Easier/more straightforward unit test coverage

vanilla Spring/Spring Security + LK binary CONS
-----------------------------------------------
- Requires some bridge between application user accounts and LabKey accounts? (Who can access what inside LabKey?)

LabKey Module - PROS
-------------
- Out-of-the-box access control granularity (But maybe LK binary provides this too?)
- Out-of-the-box user account management (Add, remove, change permissions, etc)
- Easier visualization integration (But maybe LK binary provides this too?)
- Easier SAS integration (But maybe just as easy as LK binary?)
- ?

LabKey Module - CONS
-------------
- Java code (which we do require some of) is not guaranteed to be stable over time.

As you can see, I'm not getting it and it's got me in a bit of developaralysis. So, ultimately, my question is pretty simple:

"What can a developer do by developing a LabKey module that they can't do (at least not as easily) with a Spring/SpringSecurity/LabKey binary setup instead?"

At what point, when hearing application requirements, would you say "Ok, building the application separately and leveraging LK binary isn't going to work for you. You need to develop a module."?
feifei bao2015-05-12 09:34Jon (LabKey DevOps)2015-05-14 16:58 QueryWebPart config problem TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

When I create LABKEY.QueryWebPart. The default view does not include 'checkbox', 'edit' and 'detailed' column.

In the config, I set 'showRecordSelectors: true'. The query can show the checkbox column.
But when I set 'showDetailsColumn: true' and 'showUpdateColumn: true', it does not work.

Can anyone help me to figure out what is wrong with it?

Thank you very much.

Feifei
saravanan adaikkalavan2015-06-10 08:16Jon (LabKey DevOps)2015-06-15 21:50 Problem with Wiki page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

   How can I include one wiki page into another? I followed the documentation to embed live content(https://www.labkey.org/wiki/home/Documentation/page.view?name=include). I followed the AJAX way to include the page. But, It just shows the replication of the current page in the specified div. My new wiki page has HTML, CSS and Javascript contents.

To be more specific is the code I'm using

var test = new LABKEY.WebPart({
   partName: 'Wiki',
   renderTo: 'test_container',
   name: 'test_page',
});
test.render();

And, test_page is in the same directory as the page I'm having this code.

Thanks!
lewis j mcgibbney2015-08-24 15:05Jon (LabKey DevOps)2015-08-25 22:59 Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi Folks,
We are experiencing critical errors when attempting to upgrade Labkey server as follows.

* Java 1.7.X --> 1.8.X
* Labkey 14.4 --> 15.2
* PostgreSQL 8.4 --> 9.4
* Apache Tomcat 7.0.X

Once the DB has been backed up, we are attempting to run the upgrade script on CentOS release 6.6 (Final) as follows

./manual-upgrade.sh -l /data/local/LabKey14.3-35337.10-bin -d /root/LabKey15.2-39071.18-bin -c /opt/apache-tomcat-7.0.57 -u tomcat7

I am having issues with the upgrade. I worked on it for a while but can't get past the following errors after the upgrade (errors from labkey.org in the tomcat/logs folder):

ERROR ModuleLoader 2015-08-21 09:12:36,898 localhost-startStop-1 : Failure occurred during ModuleLoader init.
javax.servlet.ServletException: java.lang.IllegalArgumentException: DA0000091
        at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:1018)
        at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:329)
        at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:230)
        at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4830)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5510)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
        at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1859)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        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: java.lang.IllegalArgumentException: DA0000091
        at org.labkey.api.util.GUID.<init>(GUID.java:277)
        at org.labkey.api.data.Container.<init>(Container.java:128)
        at org.labkey.api.data.ContainerManager$ContainerFactory.handle(ContainerManager.java:2443)
        at org.labkey.api.data.ContainerManager$ContainerFactory.handleArrayList(ContainerManager.java:2456)
        at org.labkey.api.data.BaseSelector$ArrayListResultSetHandler.handle(BaseSelector.java:146)
        at org.labkey.api.data.BaseSelector$1.handle(BaseSelector.java:167)
        at org.labkey.api.data.BaseSelector$1.handle(BaseSelector.java:163)
        at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:256)
        at org.labkey.api.data.BaseSelector.getObject(BaseSelector.java:163)
        at org.labkey.api.data.BaseSelector.getObject(BaseSelector.java:158)
        at org.labkey.api.data.ContainerManager.getForPath(ContainerManager.java:897)
        at org.labkey.api.data.ContainerManager.getForPath(ContainerManager.java:882)
        at org.labkey.api.data.ContainerManager.getRoot(ContainerManager.java:936)
        at org.labkey.api.settings.AppProps.getWriteableInstance(AppProps.java:48)
        at org.labkey.core.CoreModule.afterUpdate(CoreModule.java:498)
        at org.labkey.api.module.ModuleUpgrader.upgrade(ModuleUpgrader.java:60)
        at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:1009)

If I restart tomcat I then see the following errors:


org.labkey.api.data.SqlScriptRunner$SqlScriptException: core-14.30-14.31.sql : SqlExecutor.execute(); bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: function "bulkimport" already exists with same argument types
       at org.labkey.api.data.SqlScriptManager.runScript(SqlScriptManager.java:208)
       at org.labkey.api.data.SqlScriptRunner.runScripts(SqlScriptRunner.java:82)
       at org.labkey.api.module.DefaultModule.versionUpdate(DefaultModule.java:366)
       at org.labkey.api.module.ModuleUpgrader.upgrade(ModuleUpgrader.java:59)
       at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:1009)
       at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:329)
       at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:230)
       at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
       at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
       at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
       at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4830)
       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5510)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
       at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
       at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
       at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1859)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
       at java.util.concurrent.FutureTask.run(FutureTask.java:262)
       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.springframework.jdbc.BadSqlGrammarException: SqlExecutor.execute(); bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: function "bulkimport" already exists with same argument types
       at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:97)
       at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
       at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
       at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
       at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
       at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:104)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:73)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:68)
       at org.labkey.api.data.SqlScriptExecutor$Block.execute(SqlScriptExecutor.java:201)
       at org.labkey.api.data.SqlScriptExecutor.execute(SqlScriptExecutor.java:96)
       at org.labkey.api.data.dialect.SqlDialect.runSql(SqlDialect.java:597)
       at org.labkey.api.data.SqlScriptManager.runScript(SqlScriptManager.java:203)
       ... 22 more
Caused by: org.postgresql.util.PSQLException: ERROR: function "bulkimport" already exists with same argument types
       at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270)
       at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998)
       at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:570)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:406)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:398)
       at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
       at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
       at org.labkey.api.data.dialect.StatementWrapper.execute(StatementWrapper.java:1908)
       at org.labkey.api.data.SqlExecutor$NormalStatementExecutor.execute(SqlExecutor.java:131)
       at org.labkey.api.data.SqlExecutor$NormalStatementExecutor.execute(SqlExecutor.java:119)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:97)

Any ideas what is going wrong here please? It is crucial that we are able to use the data already present within the database.
Thank you in advance.
Lewis
Will Holtz2015-11-18 16:31Jon (LabKey DevOps)2015-11-18 17:03 Webpart with parameters TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'd like to create a webpart within my file based module and allow for it to be customized via a parameter. It appears that <wp:customizeHandler> is probably part of what I need in my .webpart.xml file. There is not much documentation. Are there any examples of this? I grepped through the source tree and didn't find any. It appears this feature was just added in the last couple of months.

thanks,
-Will
Will Holtz2015-12-10 12:16Jon (LabKey DevOps)2015-12-14 21:48 Convert time interval to units of hours TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a SQL query that subtracts two datetime fields to create a time interval column. By default, this interval column displays like '0 years 0 mons 1 days 7 hours 55 mins 0.00 secs'. In a view, I would like to display the total number of hours instead (31.917). I have not been able to find a way to accomplish this via metadata or a transformation within the SQL query. Does anyone know how to do this? I am running v15.3 on Postgres.

thanks!
-Will
Will Holtz2015-12-10 13:50Jon (LabKey DevOps)2015-12-30 16:27 using a parameterized SQL query within another SQL query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm building a parameterized SQL query that is complex enough that I'd like to break it up into some smaller queries that I can string together. Is it possible to call a parameterized SQL query from another SQL query? I searched the docs a bit, but couldn't find anything directly related.

thanks,
-Will
Ben Bimber2016-05-04 12:46Jon (LabKey DevOps)2016-07-11 18:18 Study w/ Data in datasets, but patients table is empty? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a newly created study (continuous study), with a handful of datasets. I just imported a few hundred records across a couple datasets. I was expecting study.patients to be auto-populated w/ the new IDs. Is this not how it works anymore? Do i need to specify something in the study config to tell LK to maintain the patient list for me?

Thanks,
Ben
Ben Bimber2016-07-06 09:57Jon (LabKey DevOps)2016-07-22 21:43 Intellij 2016.1 and <%=webpartContext%> in HTML pages TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I recently updated to intellij 2016.1. In module-based HTML views, LabKey supports the substitution "<%=webpartContext%>", which isnt valid JS. In previous intellij versions, it seemed to basically ignore this - that text turned red, but the rest of page was error-free. In this new intellij version, the <%=webpartContext%> is apparently handled differently and now intellij is finding errors all over my page. Has anyone else seen this, and is there a way to work around it? Maybe add an exception to the code analysis or something?

Thanks in advance for help.
eva pujadas2016-08-12 08:50Jon (LabKey DevOps)2016-08-15 10:27 Joining external and internal schemas TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey developers,

We would like to join tables from and external schema with tables from the internal schema on LabKey Server. Since it is not possible to do that through the web interface, which would be the recommended way to join such tables?

Is it possible to query external schemas using some API (e.g. Python)?

Our external database is MySQL, and the internal LabKey one is Postgres. The MySQL table we would like to join contains about 1 million rows.

Thank you for your help.
Regards,
Eva
balter2016-09-25 16:56Jon (LabKey DevOps)2016-09-26 21:22 Exclude Columns from Date Shift TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
On this page

https://www.labkey.org/home/Documentation/wiki-page.view?name=studyPubPHI

it says that you can override specific date columns from getting shifted when publishing a study. Is there a way to configure this in the .query.xml file?
pelzc2016-09-28 11:42Jon (LabKey DevOps)2016-09-28 22:37 Is it possible to set a field as "Required" in a dataset's XML metadata? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Through the GUI, one may set a field in a dataset to "Required" by checking a box when editing the dataset definition. I would like to be able to set this attribute in a file based module (similar to setting the "isHidden" attribute to true). If there is not a "isRequired" attribute, any suggestions on how to set this option programmatically would be appreciated. Also, is there is list of attributes that are supported in the XML metatdata?
Jason Feingold2016-11-10 11:33Jon (LabKey DevOps)2016-11-10 13:19 Study - Date of Birth (old Date) seems to get corrupted TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We track date of birth for our patients. This can often be an old date. For example, 10/04/1939

It seems that each time we save the patient demographics record (a study data set). the date of birth is being pushed back by the offset between PST and GMT.

here is what I've been able to track-down. But not quite sure how to fix it.

User Interface -> 10/04/1939
Postback Data -> 1939-10-04T07:00:00.000Z


AbstractQueryUpdateService.java, line 510 "row = coerceTypes(row);"
Before Callto coerceTypes: "1939-10-04T07:00:00.000Z"
After Call to coerceTypes: "Tue Oct 03 23:00:00 PST 1939" <=== This is a problem


It seems to happen to dates that are older than about 1941.
Will Holtz2017-03-14 12:10Jon (LabKey DevOps)2017-03-14 22:19 Silent failure from Import Lookups by Alternate key TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
1. Create list "Simple" and add field "Name"
2. Create list "WithFk" and add field "Lookup" that is a fk to list Simple
3. Go to list WithFk and click "Insert>Import Bulk Data"
4. In the Data text input box put:
Lookup
Foo
5. check "Import Lookups by Alternate Key"
6. Click "Submit"

I then get a dialog "Success, 1 row inserted" and the Lookup field of the new row is NULL. I expected this case to give me an error message and fail to insert the row. If I make Lookup a required field in WithFk, then the bulk insert does fail. However, my use case does not allow the field to be required.

Is this a bug or do my expectations not match the developers?

thanks,
-Will
dennisw2017-05-24 12:10Jon (LabKey DevOps)2017-05-24 16:06 Java API date returned in odd format TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When making a Java API call to retrieve a dataset, I'm seeing dates returned in this format when using the standard call (as shown in Export > Java API):

for (Map<String, Object> row : response.getRows())
                    {
                         System.out.println(row);
                    }

..... MMDT={"value":Wed May 23 00:00:00 EDT 2007} .....

In the study's datasets_metadata.xml, the column is defined as:

<column columnName="MMDT">
    <datatype>timestamp</datatype>
        <columnTitle>MMTT Date</columnTitle>
        <rangeURI>http://www.w3.org/2001/XMLSchema#dateTime</rangeURI>
</column>

Is there any reason it would be appearing in this format as opposed to an ISO format?
Susan Hert2017-07-10 13:06Jon (LabKey DevOps)2017-07-10 22:09 Updating to labkeyVersion 17.3-SNAPSHOT in trunk TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
With r52117 in trunk, the labkeyVersion property has been updated from 17.2-SNAPSHOT to 17.3-SNAPSHOT. After you sync with SVN and pick up this change, you will need to run the following command

   gradlew cleanBuild deployApp

in order to clean out the artifacts with the 17.2-SNAPSHOT version and create 17.3-SNAPSHOT versions. If you don't do this, you'll end up with two versions of the artifacts on your classpath and then you'll be left wondering why the changes you just made in some module are not showing up in your application.

Let us know if you encounter any problems.

Susan
Myriam2017-08-25 02:46Jon (LabKey DevOps)2017-09-01 12:38 SQL string comparison with postgresql regex functions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I want to execute SQL query into javascript page of Labkey filtering my selections with a regex.

Is it possible with Labkey ? I've looked at Labkey's SQL reference (https://www.labkey.org/Documentation/wiki-page.view?name=labkeySql) and saw that we can use the regexp_replace function of postgresql.

But for the moment, i just want to use the ~ symbol of postgres for string comparison is it possible ? Or is there any other way ?

Thanks

Myriam
eva pujadas2017-12-14 08:07Jon (LabKey DevOps)2017-12-18 15:19 Error while upgrading LabKey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey supporters,

We have upgraded our LabKey server from version 16.3 to 17.3.
First of all postgresql has been upgraded from version 9.3 to 9.6.
Then we have upgraded LabKey stepwise in the following way: from 16.3 to 17.1, from 17.1 to 17.2 and finally 17.2 to 17.3.
On the step when upgrading from 17.1 to 17.2 we got an SQL exception (see attached file with log message).
Do you know what could be the cause of it?

Another question, a practical one: would it have been possible to upgrade LabKey directly from version 16.3 to 17.3?

Thank you very much!
Eva
marcia hon2018-02-16 09:58Jon (LabKey DevOps)2018-02-22 01:26 ETL to Dataset TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have an ETL module. It gets data from an assay and then uploads it to a dataset.

The problem is that it is making the combination of ParticipantID and VisitID as a key. Therefore, I cannot upload more of this combination.

My understanding, is that this should be possible.

A solution that I'm thinking of, is to make all columns together as the primary key. Please could you let me know how to specify what belongs to a primary key?

I look forward to your feedback.

Thanks,
Marcia
guruprasadurs@yahoo.co.in2008-04-10 20:38Jon (LabKey DevOps)2015-04-28 21:52 Version Compiibity Between Tomcat 5.0.25 and Tomcat 5.5 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is it possible to install Labkey and FTP in Tomcat 5.0.25. I tried but in logs it is telling version compatibility problem with bootstraploader.jar.and also i have compatible version java sdk.
Pontius Pilate2008-09-12 12:05Jon (LabKey DevOps)2015-04-28 21:53 Runtime error when queueing pipelinejob TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hey Guys,

I am having problems passing a TableInfo to a PipelineJob within the ms2 module. If I pass it a null in lieu of the TableInfo I get a small null exception but everything runs smooth otherwise: the job's run() and done() get called, the job shows up in the queue list and logs fine etc. When I do pass the TableInfo (a SpectraCountTableInfo) I get a humungous exception, several labkey errors along the lines of "failed to set job status to X," and my system slows to a crawl for at least several minutes. Nonetheless, once this long process is complete, the job gets ran and the TableInfo behaves as you would want: I access it from within the job, it's fine.

So my question is, if I want to pass a large chunk of data to a pipelinejob, do I use TableInfo, or something else? The pipelinejobs I've been studying for reference all deal with File objects, but that doesn't really suit my needs (I think)... I want to pass a (possibly large) piece of data from the database to a job so it can get processed while I sit and watch it in the queue... I was going off what I found in the Demo module as far as using the TableInfo. Don't see what the problem is. Maybe I'm missing something. I'm working off a fairly recent (a month or so) trunk checkout, on xubuntu with java 1.6.0.

Thanks for reading,
Nate
Insillicos

Here's an outline of the relevant code:

public class PepcAction extends RunListHandlerAction<SpectraCountForm, QueryView>
    {

      .... etc ...

     public ModelAndView getView(SpectraCountForm form, BindException errors) throws Exception
        {

         .... etc ...

         TableInfo table = schema.createSpectraCountTable(_config, getViewContext(), _form);

         if (null != table)
            {
            PepcPipelineJob job = new PepcPipelineJob(getViewBackgroundInfo(), table);
            service.queueJob(job);
            }

         .... etc ...
Ben Bimber2010-02-23 19:05Jon (LabKey DevOps)2015-04-28 21:55 LABKEY.page.assay.domains TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In an assay page, metadata for the assay can be found under LABKEY.page.assay, with metadata for each domain under LABKEY.page.assay.domains. Instead of each domain being named a consistent 'batch', 'run' and 'result', they are named '{assay name} {domain} Fields'. ie.

LABKEY.page.assay.domains['MHC_SSP Result Fields']

Is there a reason why assay name and 'Fields' need to be here? this is more human readable, but adds complexity when trying to work with it. if appending assay name exists so that multiple assays can co-exist on the same page, wouldnt it make more sense to do something like:

LABKEY.page.assay.{assay name}.domains.result
Ben Bimber2010-07-26 05:26Jon (LabKey DevOps)2015-04-28 21:59 EditorGridPanel and getFieldEditorConfig TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LABKEY.EditorGridPanel has a method called getDefaultEditor. it is designed to return a pre-configured ext component based on field metadata. it's the same idea as LABKEY.ext.FormHelper.getFieldEditorConfig, except getFieldEditorConfig has been improved and the two will behave subtly different at this point. We're trying to use an editor grid as part of a form, and consistency between regular fields and cells of a grid will be useful.

in order to have consistency, I extended EditorGridPanel and overrode that method as follows, but it might be a good idea for both FormPanel and EditorGridPanel to use the same code.

Ext.override(LABKEY.EditorGridPanel,{
    getDefaultEditor : LABKEY.ext.FormHelper.getFieldEditorConfig
})
Ben Bimber2010-09-30 04:54Jon (LabKey DevOps)2015-04-28 22:00 feature request / bug TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in the site admin you can specify a CSS theme. you can do the same thing at the project level. the problem is that once you set this in a project, there is no way I can find to go back and choose 'inherit site theme'. seems like 'clear', 'use site theme' or something to that effect should be an option in the project admin page.
Ben Bimber2010-10-04 06:06Jon (LabKey DevOps)2015-04-28 22:00 R and Laakey Server TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
fyi - in the Rlabkey PDF on the first page it says 'this package allows the user to query Laakey Server'.
Ben Bimber2010-10-15 09:55Jon (LabKey DevOps)2015-04-28 22:00 load a QWP with data offset to today's date? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have queries that return records with dates in the past and dates in the future. is there any good solution to load this query in a QWP with an offset such that the first record with today's date is on the active page? the normal approach of sorting on date doesnt work if your data contains future records. thanks.
Ben Bimber2010-11-05 09:28Jon (LabKey DevOps)2015-04-28 22:00 variable number of decimals TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a table of weights. weights >1kg are accurate to 2 decimals. weights less than 1 are accurate to 3. in a perfect world, weights would display like:

17.20
0.394
0.300

as opposed to
17.2
0.394
0.3

Several users dont like the fact that since number columns are right aligned, the 0.394 and 0.3 are not lined up. Is there anything we can do about that? I think I could add a format string to force 3 decimals; however, we would only want 3 decimals for numbers <1, and 2 decimals for numbers >1.

Are there tricks I'm not thinking of? Thanks for the help.
awilson@iavi.org2010-11-10 14:17Jon (LabKey DevOps)2015-04-28 22:00 TinyMCE and formatting TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a way to prevent the tinyMCE from booting out scripted style content when toggling between visual and source mode? If i close it out and look at the view it is fine but if i toggle it will kick out what i have just created.

any suggestions?
Ben Bimber2010-11-23 07:31Jon (LabKey DevOps)2015-04-28 22:00 Creating an 'Import Data' button for external schema hard tables? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
if the table in an external schema has a PK, labkey is able to insert/delete from it. When viewed in executeQuery, this table has buttons to do these actions. However, it doesnt have an 'import data' action (aka spreadsheet import). I'm going to need to enable that on some tables and would hope to do that in a pretty generic way.

Does anyone has suggests on the best approach? Can I add some button that redirects to an existing labkey page? If I create the HTML UI to capture the file and/or spreadsheet text blob, can I post that to some existing API where it would get processed? Is there a different approach I should use?

It would be nice if the same approach could be adapted so I could add import data to multiple kinds of tables, including regular lists. lists don't have an import data button when embedded using a QWP, at least as far as i know.

thanks for the help.
Maya Li2011-09-30 10:16Jon (LabKey DevOps)2015-04-28 22:02 Rename folder causes file part folder content missing TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have created a file structure using folder containers. For each folder, I put in a file web part. When I renamed the root folder, all of the file web parts appear empty with previously uploaded files missing. The problem went away when the root folder name was reverted back. Is there a way to rename folders without this side effect? Note, the checkbox for "Add a folder alias for the folder's current name. This will make links that still target the old folder name continue to work." was checked when I renamed the folder.

Thanks!
Maya
Leo Dashevskiy2012-05-22 17:51Jon (LabKey DevOps)2015-04-28 22:03 What exactly does it take to have jQuery enabled/working within my custom Labkey module? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Are some additional tweaks needed, is this not enough?

<link rel="stylesheet" href="<%=contextPath%>/jQuery/development-bundle/themes/base/jquery.ui.all.css">
<script type="text/javascript" src='<%=contextPath%>/jQuery/js/jquery-1.7.2.min.js'></script>
<style type="text/css"></style>
<script src="<%=contextPath%>/jQuery/development-bundle/ui/jquery.ui.core.js"></script>
<script src="<%=contextPath%>/jQuery/development-bundle/ui/jquery.ui.widget.js"></script>
<script src="<%=contextPath%>/jQuery/development-bundle/ui/jquery.ui.datepicker.js"></script>
<link rel="stylesheet" href="<%=contextPath%>/jQuery/development-bundle/demos/demos.css">
<script>
    $(function() {
        $( "#datepicker" ).datepicker();
    });
</script>
<link rel="stylesheet" type="text/css" href="data:text/css,">
<script type="text/javascript" src="<%=contextPath%>/jQuery/js/jquery-ui-1.8.20.custom.min.js"></script>

<input type="text" id="datepicker" class="hasDatepicker">

Thanks.
jdutra2012-06-04 13:48Jon (LabKey DevOps)2015-04-28 22:03 EntityID vs Container TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a little program that uses the java api to check if a dataset column is based on a list. If it is, it queries the actual list to find all possible values for the column. When the list is in the same folder as the dataset, this works fine. However, sometimes the list is stored elsewhere. I'm using Study.DataSetColumns to find information about the dataset column. When it's based on a list, and the list is NOT in the current folder, the LookupContainer column is filled in. However, it's not filled in with a container path, but with an entityId. What is the best way to translate the entityId into a path so that I can find the right list?

I know there is a Core.Containers dataset in each folder, which includes the EntityId of that folder and the EntityId of the parent. I guess I could move up the folder hierarchy looking for a match, but I'm wondering if there's a more straightforward way of doing this. Any help is appreciated!

- Jen
Leo Dashevskiy2012-09-19 11:19Jon (LabKey DevOps)2015-04-28 22:06 Id of the image returned by R back to JS TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

When using LABKEY.WebPart and returning back from R an image, the image, so it seems, gets an id=resultImage.

What if I have 2 copies of the same module with that LABKEY.WebPart, then the id becomes non-unique and things get messy...

Is there some built in way to specify this id (I would append the copy's unique webPartId to it) or do you recommend I manipulate it manually?

Thanks.
-Leo
Anthony Corbett2013-01-24 08:55Jon (LabKey DevOps)2015-04-28 22:07 Error when using Labkey.Query.insertRows with a null value for server managed key. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
As part of upgrading our Labkey server from 12.2 to 12.3, I was doing some testing on my javascript code that used LABKEY.Query.insertRow() and I'm seeing behavior differences for a single use case.


In some of our clinical studies there are datasets which have multiple rows per ParticipantVisit and therefore need a third composite key. In the instances where we don't have a pre-defined number of rows (as in using a list for a lookup to restrict the value of the composite keys) or care about using a date along with the ParticipantId and SeqNum we tend to use a Labkey managed auto-incrementing int column called 'id'.


When I execute the following insert command, where the managed key is sent with a null value, I receive an error response from the server:

LABKEY.Query.insertRows({
  schemaName: 'study',
  queryName: 'Current Medications',
  rows: [
     { id: null, frequency: '2xdaily', ParticipantId: 'AP002', SequenceNum: 99, dose: '85mg', medication: 'asprin' }
  ]
});


Error: Could not convert '2xdaily' for field SequenceNum, should be of type BigDecimal


I'm not sure why it is trying to use a completely different field value for SequenceNum? This exact code worked on 12.2.

I did further testing on 12.3 and if I leave out the managed key and null value from the row's JSON it inserts fine.

Also, I tried going to the grid view then to insert new to try the Labkey generated form to insert new data. And this works fine.

I think the Labkey managed key should be ignored during an insertRows() operation (maybe ignored if null and an error if it is populated?); certainly it should NOT be mixing up the SequenceNum value...
Anthony Corbett2013-02-06 08:30Jon (LabKey DevOps)2015-04-28 22:07 Labkey Java client library question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm wondering if Labkey provides maven or ivy repo. for their client API code, specifically the java jar file?

Our build and source environment is using ivy to retrieve dependencies for all our code. The only problem is that we currently have the LK client API jar checked into a lib directory but are pulling that jar's dependencies through ivy.

This means if the next version of the LK client API jar changes the version of a dependency we have to manually fix the ivy.xml file to the dependency's new version. I would like to be able to point to LK client jar in ivy and have all its dependencies downloaded transitively.

Thanks,

Anthony Corbett
rubiaasharaf92222013-07-04 04:40Jon (LabKey DevOps)2015-04-28 22:08 How to execute new java module? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I developed my first java module using create_module in ant build.The module is recognized by the LabKey Server in "Folder setting". But in admin console Build OS,Build Path,Build Time,Build User etc.. are seemed empty. Extracted Path is correct. Module Class is "org.labkey.api.module.SimpleModule". Module Dependencies is "<none>". I am stuck with my requirement ,Some one out there please help me out.

Thanks
Olivier2015-04-14 06:13Jon (LabKey DevOps)2015-04-17 10:33 Truncating lists TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

How can I truncate all entries from a list (SQL: truncate) without selecting and deleting the rows?

Thanks,
Olivier
laurapas2015-08-05 21:50Jon (LabKey DevOps)2015-08-12 09:37 Add R data frame records to Labkey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
I created a user-defined query from some Skyline data. I have an R script that reads in this user-defined query and calculates some statistics. I would like to take the resulting R data frame and store in Labkey (perhaps via labkey.insertRows ?) so that it can either be viewed in Labkey or accessed externally through R & Rlabkey. Is labkey.insertRows the best way to do this? If so, would I need to create a blank table first? Or can I create one directly through the Rlabkey package?
Will Holtz2015-12-30 17:03Jon (LabKey DevOps)2016-01-07 12:12 Slow queries on assay results TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a module-based assay that is currently in use with 2.5k runs and 399k data (result) rows stored. The .data table contains a FK molecule, to hplc.molecule, a small hard table with ~40 rows . If I run the following query from within Labkey:

PARAMETERS (FOO INTEGER)
SELECT DISTINCT molecule FROM assay.hplc.hplc01.data WHERE run = FOO;

The expanded query that actually is sent to the database server is (comment lines stripped and re-indented):

SELECT *
        FROM
                (
                SELECT
                        MoleculesRead.molecule AS molecule,
                        MoleculesRead$molecule$.name AS "molecule$name"
                FROM
                        (
                        SELECT DISTINCT Data_2.molecule AS molecule
                        FROM
                                (
                                SELECT * FROM assayresult.c9d43_hplc_minus_assay_result_fields
                                WHERE ((SELECT d.Container FROM exp.Data d WHERE d.RowId = DataId)='b2db3469-9848-1032-a179-c669927523e7')
                                ) Data_2
                        WHERE ((SELECT RunId FROM exp.data d WHERE d.RowId = Data_2.DataId)=CAST(? AS INTEGER))
                        ) MoleculesRead
                        LEFT OUTER JOIN hplc.molecule MoleculesRead$molecule$
                        ON (MoleculesRead.molecule = MoleculesRead$molecule$.rowid)
                ) x
ORDER BY molecule ASC
LIMIT 101;

This takes about 3.7 seconds to run on my development machine and this is the Postgres execution plan:
 Limit (cost=6638817.83..6638817.93 rows=1 width=13) (actual time=3723.912..3723.924 rows=8 loops=1)
   -> Merge Left Join (cost=6638817.83..6638817.93 rows=1 width=13) (actual time=3723.910..3723.920 rows=8 loops=1)
         Merge Cond: (c9d43_hplc_minus_assay_result_fields.molecule = "moleculesread$molecule$".rowid)
         -> Sort (cost=6638816.39..6638816.40 rows=1 width=4) (actual time=3723.878..3723.879 rows=8 loops=1)
               Sort Key: c9d43_hplc_minus_assay_result_fields.molecule
               Sort Method: quicksort Memory: 25kB
               -> HashAggregate (cost=6638816.36..6638816.37 rows=1 width=4) (actual time=3723.864..3723.866 rows=8 loops=1)
                     -> Seq Scan on c9d43_hplc_minus_assay_result_fields (cost=0.00..6638816.34 rows=10 width=4) (actual time=1769.616..3723.833 rows=32 loops=1)
                           Filter: ((((SubPlan 1))::text = 'b2db3469-9848-1032-a179-c669927523e7'::text) AND ((SubPlan 2) = 817))
                           Rows Removed by Filter: 399097
                           SubPlan 1
                             -> Index Scan using pk_data on data d (cost=0.28..8.30 rows=1 width=37) (actual time=0.003..0.004 rows=1 loops=399129)
                                   Index Cond: (rowid = c9d43_hplc_minus_assay_result_fields.dataid)
                           SubPlan 2
                             -> Index Scan using pk_data on data d_1 (cost=0.28..8.30 rows=1 width=4) (actual time=0.003..0.003 rows=1 loops=399129)
                                   Index Cond: (rowid = c9d43_hplc_minus_assay_result_fields.dataid)
         -> Sort (cost=1.44..1.48 rows=15 width=13) (actual time=0.027..0.028 rows=15 loops=1)
               Sort Key: "moleculesread$molecule$".rowid
               Sort Method: quicksort Memory: 25kB
               -> Seq Scan on molecule "moleculesread$molecule$" (cost=0.00..1.15 rows=15 width=13) (actual time=0.003..0.008 rows=15 loops=1)

I was surprised how slowly this was running for me. The execution plan shows that almost all the computation is spent on lookups in the exp.data using the pk_data index. This lookup appears to be done once for every row in my .data table. So the problem isn't a lack of an index. I then tried changing the run filter from a sub-query into an JOIN with a WHERE clause as shown here: (all changes from the above query are called out on the comment lines)

EXPLAIN ANALYZE SELECT *
        FROM
                (
                SELECT
                        MoleculesRead.molecule AS molecule,
                        MoleculesRead$molecule$.name AS "molecule$name"
                FROM
                        (
                        SELECT DISTINCT Data_2.molecule AS molecule
                        FROM
                                (
                                SELECT * FROM assayresult.c9d43_hplc_minus_assay_result_fields
                                WHERE ((SELECT d.Container FROM exp.Data d WHERE d.RowId = DataId)='b2db3469-9848-1032-a179-c669927523e7')
                                ) Data_2
                        -- Replace the following line:
                        -- WHERE ((SELECT RunId FROM exp.data d WHERE d.RowId = Data_2.DataId)=CAST(? AS INTEGER))
                        -- with the following block of lines:
                        JOIN
                                exp.data AS d
                        ON
                                d.RowId = Data_2.DataId
                        WHERE
                                d.RunId = CAST(? AS INTEGER)
                        -- end block of lines
                        ) MoleculesRead
                        LEFT OUTER JOIN hplc.molecule MoleculesRead$molecule$
                        ON (MoleculesRead.molecule = MoleculesRead$molecule$.rowid)
                ) x
ORDER BY molecule ASC
LIMIT 101;

This takes about 0.6ms seconds to run on my development machine and this is the Postgres execution plan:
 Limit (cost=23384.52..23384.61 rows=1 width=13) (actual time=0.333..0.347 rows=8 loops=1)
   -> Merge Left Join (cost=23384.52..23384.61 rows=1 width=13) (actual time=0.331..0.343 rows=8 loops=1)
         Merge Cond: (c9d43_hplc_minus_assay_result_fields.molecule = "moleculesread$molecule$".rowid)
         -> Sort (cost=23383.08..23383.08 rows=1 width=4) (actual time=0.307..0.308 rows=8 loops=1)
               Sort Key: c9d43_hplc_minus_assay_result_fields.molecule
               Sort Method: quicksort Memory: 25kB
               -> HashAggregate (cost=23383.05..23383.06 rows=1 width=4) (actual time=0.295..0.298 rows=8 loops=1)
                     -> Nested Loop (cost=13.99..23383.04 rows=1 width=4) (actual time=0.076..0.271 rows=32 loops=1)
                           -> Index Scan using idx_cl_data_runid on data d (cost=0.28..8.40 rows=3 width=4) (actual time=0.013..0.016 rows=4 loops=1)
                                 Index Cond: (runid = 817)
                           -> Bitmap Heap Scan on c9d43_hplc_minus_assay_result_fields (cost=13.70..7791.51 rows=4 width=8) (actual time=0.013..0.057 rows=8 loops=4)
                                 Recheck Cond: (dataid = d.rowid)
                                 Filter: (((SubPlan 1))::text = 'b2db3469-9848-1032-a179-c669927523e7'::text)
                                 -> Bitmap Index Scan on c1427504204us_assay_result_fields_dataid (cost=0.00..13.70 rows=704 width=0) (actual time=0.006..0.006 rows=8 loops=4)
                                       Index Cond: (dataid = d.rowid)
                                 SubPlan 1
                                   -> Index Scan using pk_data on data d_1 (cost=0.28..8.30 rows=1 width=37) (actual time=0.004..0.004 rows=1 loops=32)
                                         Index Cond: (rowid = c9d43_hplc_minus_assay_result_fields.dataid)
         -> Sort (cost=1.44..1.48 rows=15 width=13) (actual time=0.021..0.022 rows=15 loops=1)
               Sort Key: "moleculesread$molecule$".rowid
               Sort Method: quicksort Memory: 25kB
               -> Seq Scan on molecule "moleculesread$molecule$" (cost=0.00..1.15 rows=15 width=13) (actual time=0.004..0.007 rows=15 loops=1)

So on my development machine, this resulted in a 6000x performance increase and 283x decrease in execution plan cost.

I am running Postgres v9.3.4.2 and Labkey v15.3.

Obviously the Labkey code that translates internal SQL queries to the queries that are sent to the database server is a generalized system that can't expected to be give optimal results across all possible inputs. However, I wonder if the relative simplicity of this test case might shed some light on possible improvements that could be made. I also realize this could just be a case of bad optimization by Postgres and that other database servers may not show such a larger performance differential between the two cases. Unfortunately I don't have any other database server up and running.

And of course, if anyone has thoughts on how to get this query to run faster from within in Labkey v15.3, I'd love to hear it.

thanks,
-Will
balter2016-09-26 21:28Jon (LabKey DevOps)2016-09-26 22:26 Difference between PHI and Protected in GUI. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
What is the difference between phi and protected in the .query.xml files?

<column columnName="First Name">
    <columnTitle>First Name</columnTitle>
    <phi>PHI</phi>
    <protected>true</protected>
</column>

Also how does this differ form setting a field to protected in the "Edit Definition" GUI under Dataset Properties?
balter2016-10-16 16:25Jon (LabKey DevOps)2016-10-26 22:41 Programmatically setting QC states TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a goal to set as many configurations as possible through the code base. I explain this more here:

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=13677

I've studied the pages on setting the QC states through the GUI

https://www.labkey.org/home/Documentation/wiki-page.view?name=datasetQualityControl

and linked pages.

I located the XML schema for QC states https://www.labkey.org/download/schema-docs/xml-schemas/schemas/study_xsd/elements/qcStates.html, but I can't figure out how I would use this to make the sort of configurations in the GUI.

Is there a way to specify the QC states in a configuration file? Can it be done by querying the database. Would it need to be done with java code?
dennisw2017-09-22 11:22Jon (LabKey DevOps)2017-09-22 13:06 LDAP question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I saw an older question about LDAP servers, but I have a slightly different question:

If using a wildcard address and not a named DC, will LabKey latch onto one DC and require a restart if that one fails?


Is there way to have more than one non-wildcard DC's on the same domain or would that be a good idea? (I think this was answered in the old LDAP post 'yes, if someone is interested in having us do that')

Thanks
WayneH2017-10-11 10:54Jon (LabKey DevOps)2017-10-17 21:36 Server error upon automatic cohort creation TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When we try to run automatic cohort creation in one of our projects we get the follow error. Cannot determine why the system is throwing the error or how to solve it. Any thoughts?
-----------------------------------------------
500: Unexpected server error

ExecutingSelector; bad SQL grammar []; nested exception is java.sql.SQLException: Invalid column name 'SequenceNumMin'.
...
Caused by: java.sql.SQLException: Invalid column name 'SequenceNumMin'.
...
DialectSQL = SELECT P.ParticipantId, -1 AS VisitRowId, -1 AS CohortId, D.SF_ID
    FROM study.Participant P
     LEFT OUTER JOIN studyDataset.c192d2018_ehas_hhq_y1_v2 D ON P.ParticipantId = D.participantid
    WHERE P.Container = ?
    ORDER BY P.ParticipantId, D.SequenceNumMin

request attributes
LABKEY.StartTime = 1507738377833
org.springframework.web.servlet.DispatcherServlet.CONTEXT = Study WebApplicationContext: startup date [Tue Oct 10 14:28:24 EDT 2017]; parent: Root WebApplicationContext
org.apache.tomcat.util.net.secure_protocol_version = TLSv1.2
LABKEY.Counter = 0
javax.servlet.request.key_size = 0
LABKEY.container = /DHO_Healthy Aging_Workspace/Petek
LABKEY.RequestURL = /cohort/DHO_Healthy%20Aging_Workspace/Petek/manageCohorts.view?
javax.servlet.request.cipher_suite = TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
javax.servlet.request.ssl_session_id = 59de423a4d73764c18388ad10081980b4856c769d34aa680568ffe7565803504
LABKEY.OriginalURL = https://labkeydev.emory.edu/cohort/DHO_Healthy%20Aging_Workspace/Petek/manageCohorts.view?
LABKEY.action = manageCohorts
LABKEY.controller = cohort
javax.servlet.request.ssl_session = 59de423a4d73764c18388ad10081980b4856c769d34aa680568ffe7565803504
X-LABKEY-CSRF = c8c52fb8915ea679e401534fe0cd8888
LABKEY.OriginalURLHelper = /cohort/DHO_Healthy%20Aging_Workspace/Petek/manageCohorts.view?
javax.servlet.request.ssl_session_mgr = org.apache.tomcat.util.net.jsse.JSSESupport@7acb3d01

...
Ben Bimber2018-01-03 09:18Jon (LabKey DevOps)2018-01-03 10:14 New UI with others themes besides Seattle? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi guys - overall I think the new UI is great and a nice improvement. However, I noticed that themes besides the default blue one dont quite look as polished. notably, fonts are often blue and some elements also dont match the color of a non-blue theme. Are you expecting to improve this?

Could I request that some of the devs (perhaps especially the UI focused ones) switch to non-blue themes on their local installs for a while to get more eyes on this?
marcia hon2018-02-20 11:30Jon (LabKey DevOps)2018-02-23 23:31 Printing R Report TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have created an R Report using HTML.

How do I print this report?

Thanks,
Marcia
kanchink@mail.nih.gov2007-10-02 11:15Jon (LabKey DevOps)2015-04-28 21:51 ProtocolParameters & ProtocolApplicationParameters TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the XAR file, we can define ProtocolParameters and ProtocolApplicationParameters. All the example XAR files that I have seen so far have the exact same elements (and values) defined in both ProtocolParameters and ProtocolApplicationParameters.

Given that ProtocolParameters are essentially to be used for expanding the ProtocolApplication objects(Inputs and Outputs in the ExperimentLog format), does CPAS read the ProtocolApplicationParameters?

Thanks.
wnels2@uky.edu2009-06-04 07:36Jon (LabKey DevOps)2015-04-28 21:54 build hangs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
intermitently the build will hang in the setup target at the replace step:

        <!-- Replace string ${jdbcDatabase} in the file with value of database property -->
        <replace file="${build.dir}/labkey.xml">
            <replacefilter token="$${jdbcURLParameters}" value="${jdbcURLParameters}"/>
            <replacefilter token="$${jdbcDatabase}" value="${database}"/>
        </replace>

Does anybody know why this might happen?

Thanks,
Bill
wnels2@uky.edu2009-08-31 08:08Jon (LabKey DevOps)2015-04-28 21:54 C:\CPAS\docs\mule\config\org\labkey\hello\mule TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I ran across a package called org\labkey\hello\mule. Is there documentation that goes along with this?
Thanks,
Bill
Ben Bimber2010-02-19 06:56Jon (LabKey DevOps)2015-04-28 21:55 selectively transfering folders between labkey servers? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a test server and a production server. I also do a lot of development on my laptop. Is there any way to configure a folder on one labkey install, export the entire content, then import into another server?

I write as much as I can as simple modules, which are very portable. However, I do not know how to transfer the next level of tweaking like folders/subfolders, configuring which webparts are shown, etc. I've been able to co-opt the study export feature for data like lists (even when data is not actually a study), but this does not do everything.

Thanks.
Ben Bimber2010-03-09 09:35Jon (LabKey DevOps)2015-04-28 21:55 possible to delete records from an assay? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
is it possible to delete records from an assay? did forget to set some parameter in my assay definition? thanks.
Ben Bimber2010-03-19 10:19Jon (LabKey DevOps)2015-04-28 21:55 do datasets not have a default Details URL? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
On the EHR we have an app to display QWPs that show grids from different datasets. I've been trying to get a details column to show up using the config option showDetailsColumn:true. It doesnt work though. I read that this only show the details column if an details URL exists. I also tried to view a dataset grid through the normal UI and see that no details column is present (although edit is).

Does this mean that datasets do not have a default details URL? did we somehow override this as part of the metadata on our study import? Manually setting the details URL is not a problem. If so, what's the right URL to use? the dataset ID will differ on different servers I believe.

Thanks.
Ben Bimber2011-05-07 14:14Jon (LabKey DevOps)2015-04-28 22:01 can a group_concat column have a URL? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a SQL statement that includes a column generated using group_concat(). in general, labkey allows you to assign a URL for a given column. when i tried to do this for the group_concat column, i got this error:

An unexpected error occurred

java.lang.AssertionError
       at org.labkey.api.data.MultiValuedRenderContext.next(MultiValuedRenderContext.java:76)
       at org.labkey.api.data.MultiValuedDisplayColumn.renderGridCellContents(MultiValuedDisplayColumn.java:51)
       at org.labkey.api.data.DisplayColumn.renderGridDataCell(DisplayColumn.java:659)
       at org.labkey.api.data.DataRegion.renderTableRow(DataRegion.java:1456)
       at org.labkey.api.data.DataRegion.renderTableContents(DataRegion.java:1420)
       at org.labkey.api.data.DataRegion._renderTable(DataRegion.java:893)
       at org.labkey.api.data.DataRegion.render(DataRegion.java:2431)
       at org.labkey.api.data.DataRegion.renderTable(DataRegion.java:701)
       at org.labkey.api.view.GridView._renderDataRegion(GridView.java:64)
       at org.labkey.api.view.DataView.renderView(DataView.java:144)
       at org.labkey.api.view.DataView.renderView(DataView.java:33)
       at org.labkey.api.view.WebPartView.renderView(WebPartView.java:778)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
       at org.labkey.api.view.HttpView.render(HttpView.java:139)
       at org.labkey.api.view.HttpView.render(HttpView.java:121)
       at org.labkey.api.view.HttpView.include(HttpView.java:542)
       at org.labkey.api.view.HttpView.include(HttpView.java:519)
       at org.labkey.api.query.QueryView.renderDataRegion(QueryView.java:1462)
       at org.labkey.api.query.QueryView.renderView(QueryView.java:1227)
       at org.labkey.api.view.WebPartView.renderView(WebPartView.java:778)
       at org.labkey.api.query.QueryView.renderView(QueryView.java:1252)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
       at org.labkey.api.view.HttpView.render(HttpView.java:139)
       at org.labkey.api.view.HttpView.render(HttpView.java:121)
       at org.labkey.api.view.HttpView.include(HttpView.java:542)
       at org.labkey.api.view.HttpView.include(HttpView.java:519)
       at org.labkey.jsp.compiled.org.labkey.api.view.template.CommonTemplate_jsp._jspService(CommonTemplate_jsp.java:222)
       at org.labkey.api.view.JspView.renderView(JspView.java:121)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
       at org.labkey.api.view.HttpView.render(HttpView.java:139)
       at org.labkey.api.view.HttpView.render(HttpView.java:121)
       at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:447)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:356)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:756)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:609)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
       at java.lang.Thread.run(Thread.java:619)

request attributes
LABKEY.StartTime = 1304802707015
LABKEY.container = /WNPRC/EHR
LABKEY.action = executeQuery
LABKEY.RequestURL = /labkey/query/WNPRC/EHR/executeQuery.view?schemaName=study&query.queryName=demographicsAssignmentSummary
LABKEY.OriginalURLHelper = /labkey/query/WNPRC/EHR/executeQuery.view?schemaName=study&query.queryName=demographicsAssignmentSummary
LABKEY.controller = query
LABKEY.OriginalURL = http://localhost:8080/labkey/query/WNPRC/EHR/executeQuery.view?schemaName=study&query.queryName=demographicsAssignmentSummary
LABKEY.Counter = 0

core schema database configuration
Server URL    jdbc:postgresql://localhost:5432/labkey
Product Name    PostgreSQL
Product Version    8.4.6
Driver Name    PostgreSQL Native Driver
Driver Version    PostgreSQL 9.0 JDBC4 (build 801)

any reason why a group_concat column cant get a URL? the query works fine if i drop the URL from metadata. for what its worth, the query and metadata from from .sql and .query.xml files in a file-based module. the url i'm attempting to use is:

                    <column columnName="ActiveAssignments">
                         <columnTitle>Active Assignments (avail=all)</columnTitle>
                         <displayWidth>110</displayWidth>
                         <url>/ehr/executeQuery.view?schemaName=study&amp;
                             query.queryName=Assignment&amp;
                             query.Id~eq=${Id}&amp;
                             query.enddate~isblank&amp;
                         </url>
                     </column>

thanks.
Ben Bimber2011-05-09 20:06Jon (LabKey DevOps)2015-04-28 22:01 has the queryName in the URL always been case sensitive? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i'm pretty sure this is new to 11.1, but I could be wrong:

suddenly the name of the query in the URL has become case sensitive. for example:

http://localhost:8080/labkey/query/WNPRC/EHR/executeQuery.view?schemaName=study&query.queryName=alleleFrequencies

will work, but:

http://localhost:8080/labkey/query/WNPRC/EHR/executeQuery.view?schemaName=study&query.queryName=AlleleFrequencies

will not. i'm pretty sure i havent always been that careful in my URLs, which is why i think this must be new behavior. could be wrong though.
Ben Bimber2011-06-22 05:18Jon (LabKey DevOps)2015-04-28 22:02 labkey context path in CSS files? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i have a CSS file with this line:

@import url("/labkey/ehr/stylesheet-red-limited.css");

on one server labkey is running as the root webapp, but on another it is not. ideally i'd like to convert the '/labkey' into some sort of substitution akin to <%=contextPath%>. is there anything along these lines that works in CSS?

thanks.
Maya Li2012-01-05 11:03Jon (LabKey DevOps)2015-04-28 22:03 embed multiple webparts TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a simple piece of code that tries to embed two webparts. But it only embeds on and ignores the other. How do I get it to embed both of them?


<script type="text/javascript">
    
    var studyListWebPart = new LABKEY.QueryWebPart({
      partName: 'Maru Study List',
      renderTo: 'studyListDiv'
    });
   
    
    var messageWebPart = new LABKEY.WebPart({
        partName: "Messages",
        renderTo: 'mDiv'
    });
   
    Ext.onReady(function(){
         studyListWebPart.render();
         messageWebPart.render();
    });
</script>

<div id="main">
    <div id="mDiv"/>
    <div id="studyListDiv"/>
</div>
tgal@kcr.uky.edu2012-01-20 05:19Jon (LabKey DevOps)2015-04-28 22:03 Source code is not available TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm trying to download the source code for v11.3 but it's not available. Are you guys aware of this?

Thanks,
Tamas
jdutra2012-05-30 06:54Jon (LabKey DevOps)2015-04-28 22:03 Cohort Issues TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a study with a manually set cohort. About half the subjects in the study are assigned to "LAIV", the other half to "TIV". In the study navigator for the clinical data, everything looks right. However, if I run the specimen report by specimen type for all cohorts, most of the visits appear as they should, but some of them (Day 8 and later) appear under "No cohort assigned" for both the LAIV and TIV subjects. This is an unchanging cohort, and the Visit columns in the specimen records are correct (Day 8, Day 9, etc), so I don't understand why this would happen. In fact, if I go to the specimen table filtered by an LAIV subject and choose Participant Groups -> Cohort -> LAIV, the Day 8, Day 9, etc records still appear in the grid.

Could there be some other setting in the specimen information that's causing the cohort to not match up? I tried clearing out the cohorts and manually reassigning them all to see if that helped, but it made no difference. I've attached a file with some screenshots.

Thanks for any help,
Jen
Leo Dashevskiy2012-09-26 16:38Jon (LabKey DevOps)2015-04-28 22:06 Horizontal web part sizing TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

I have a custom file-based web part and for some reason, if besides it such web parts as "Files" or "Experiment Runs" are also included on a project's home page / dashboard, then my web part's outer container (the <%=webpartContext%>.wrapperDivId) gets severely stretched horizontally (to over 5K pixels), whereas its child ('pnlTabs' see below) stays of proper width.

I sort of mimicked how the sizing is done in 'dataViews.jsp', but it uses Ext4 and I'm using Ext(3).
And extra line I added was
        Ext.EventManager.fireWindowResize();

(If the web part is on its own or I have other web parts, which are my own, then there is no such sizing issue...)

In my begin.html I have:


<script type='text/javascript'>

    var initOpenCytoVisualization = function()
    {
        var webPartDiv = <%=webpartContext%>.wrapperDivId;

        var OpenCytoVisualization = new LABKEY.ext.OpenCytoVisualization({
            webPartDivId: webPartDiv
        });

        var resizeModule = function(w, h) {

            LABKEY.Utils.resizeToViewport( OpenCytoVisualization, w, -1, null, null, 0 );

            OpenCytoVisualization.resize();
        };

        Ext.EventManager.onWindowResize( resizeModule );
        Ext.EventManager.fireWindowResize();
    }

    Ext.onReady( initOpenCytoVisualization );

</script>



And my OpenCytoVisualization.js has:


Ext.namespace('LABKEY', 'LABKEY.ext');

LABKEY.ext.OpenCytoVisualization = Ext.extend( Ext.Panel, {

            constructor : function(config) {
...
                this.items = [ pnlTabs ];
                this.layout = 'fit';
                this.renderTo = config.webPartDivId;

                LABKEY.ext.OpenCytoVisualization.superclass.constructor.apply(this, arguments);

            }, // end constructor

            resize : function(){ ... }

        } // end OpenCytoVisualization Panel class
);


Any help is appreciated!

Thanks.
-Leo
bront@kcr.uky.edu2013-02-11 14:25Jon (LabKey DevOps)2015-04-28 22:07 editable external mySQL schema TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I've exposed an external mySQL schema to LabKey, and this is and has been working perfectly well for a number of months. When I try to make it editable, however, no luck. I have granted the mySQL user permissions and granted select, insert, update, delete permissions on particular tables, and reloaded the schema but the "editable" checkbox remains gray.

Also, the tables in mySQL have primary keys.

Any suggestions on where I am going wrong?

thanks,

b
Leo Dashevskiy2013-07-23 14:28Jon (LabKey DevOps)2015-04-28 22:08 How to use/interact with embedded 'Files' Web Part? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, guys!

I was in need for our project of a files/folders browser for a user to select an uploaded folder.

It was suggested that I can use the already existing and rich 'Files' web part for it, which is what I did:

        var wikiWebPartRenderer = new LABKEY.WebPart({
            frame: 'none',
            partName: 'Files',
            renderTo: pnlImport.getId()
        });
        wikiWebPartRenderer.render();

where pnlImport is just my container panel and part of the overall UI.

My question now is: how can I obtain the selected file/folder and have it available in JS for further work?
A related question is: can this 'Files' web part be customized (suppose to only display folders and not to show the 'Import workspace' button)?

Thanks.
-Leo
martin2015-04-07 03:42Jon (LabKey DevOps)2015-04-09 10:27 core/Members availability TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

i am trying to display logged users their groups, using query to core/Members but it shows empty unless i give the users folder administrator permission.

this is unexpected, considering the fact, that Members should be available to any logged user (according to description in schema browser)

am i missing something?

thank you for answering my question
martin
feifei bao2015-06-04 13:41Jon (LabKey DevOps)2015-06-04 16:14 XML url problem TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have a question that how can we build dynamic URL in XML metadata rather than using hard code. Except the filter portion (like recordID=${Species}), I mean some other parts like the container path. Can I have a way to replace url parts like '/labkey/wiki/'?

Thank you very much.

Feifei
jeckels2016-05-11 09:58Jon (LabKey DevOps)2016-05-11 11:32 Security update for IntelliJ TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
For those who are using IntelliJ for LabKey Server development, you may have already received the email below. It's not necessarily clear to me if the vulnerabilities affect the features we tend to use within IntelliJ, but a good idea to update regardless.

Thanks,
Josh


Hello from JetBrains,

According to our records, you (or your team) are using an IDE by JetBrains.
Please take a minute to read this email and take action.

We have just released an important update for all IntelliJ-based IDEs, including older versions.
This update addresses critical security vulnerabilities inside the underlying IntelliJ Platform.

We know that an IDE is an important tool in your daily development work and we want to make
sure you are aware of the issues and update your installation as soon as possible.

Simply switch to your IDE and check for updates right now.

Please find more information and more ways to update in this blog post:
http://blog.jetbrains.com/blog/2016/05/security-update-for-intellij-based-ides.

If you have any questions, please contact us at support@jetbrains.com.

Your JetBrains Team
eva pujadas2016-05-17 07:00Jon (LabKey DevOps)2016-05-18 10:04 Lookup validators fail on import data TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Has the issue "Issue 25193: Lookup Validator not functioning between lists" been fixed in LabKey 16.1?
https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=25193

I've just tried it and it does not seem so, since behavior is the same as in the previous version 15.3: values not present in the lookup table are imported instead of displaying an error before import.

Thank you very much,
Eva
leyshock2016-09-27 10:28Jon (LabKey DevOps)2016-09-28 11:42 Download path for entire folder, in FileContent module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I'm trying to get a download path / link for an entire folder stored in a FileContent module. The instructions here (https://www.labkey.org/home/Documentation/wiki-page.view?name=fileSharing) clearly show how to get a path to a single file, but do not show how to get a path to an entire folder.

With the info given here (https://www.labkey.org/home/Documentation/wiki-page.view?name=fileURL) I suspect I could put together a solution, but before I try to do so I figured I ask to see if there's a precedent for this. I looked through the wiki and forums but didn't find anything.

Any suggestions appreciated.

Thanks, Patrick
Romina2016-12-02 14:15Jon (LabKey DevOps)2016-12-02 18:30 Compiling labkey 16.2 on Ubuntu. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello, this is my first time compilling labkey and I have this problem at class WikiWebdavProvider.java whit these imports:
import org.labkey.data.xml.wiki.WikiType;
import org.labkey.data.xml.wiki.WikisDocument;
import org.labkey.data.xml.wiki.WikisType;

There is not any WikiType.java, WikisDocument.java, WikisType.java in the labkey project.
How can I fix this problem?

Thanks,
Romina.
Will Holtz2017-03-15 10:55Jon (LabKey DevOps)2017-03-15 11:21 Removing buttons from QueryWebPart TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If I make a wiki page with the source:

<div id="MyQuery" />
<script>
new LABKEY.QueryWebPart({
        renderTo: 'MyQuery',
        schemaName: 'core',
        queryName: 'users',
        buttonBar: {
            items: []
        }
    });
</script>

Then I'd expect that I don't get any buttons. But I do -- I get:
Grid Views
Reports
Charts
Insert
Delete
Export
Print
Paging

But if I change the items line to:
items: [{}]

Then I don't get any buttons. Obviously, I am not in need of a fix, but maybe I can prevent someone else from spending 30 minutes figuring this out.

-Will
Ju Yeong Kim2017-09-22 09:56Jon (LabKey DevOps)2017-09-22 12:01 HTTP selectRows.api with particiapnt group filter TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Your operating system: MaxOS
Web browser: chrome
Version number of LabKey Server: 17.2
A detailed description of your problem or question, including instructions for reproducing your issue:

I have a participant group filter called "rabbits", and when I tried to use this filter with selectRows.api, it returns the unfiltered data.

https://BASEURL.ORG/query/MYPROJECT/selectRows.api?schemaName=study&query.queryName=Demographics&query.SubjectId/rabbits~eq=rabbits

For some reason, selectRows.api cannot handle the participant group filter (query.SubjectId/rabbits~eq=rabbits).
Edward2018-02-05 05:42Jon (LabKey DevOps)2018-02-12 14:35 Sample IDs generator TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

I am a beginner in labkey development and would like to know if there is a sample generator function in labkey server? I know that this feature exists in Labkey Biologics, which is not available as open-source.

Any thoughts on how to achieve this task? Thanks in advance!
zhangrunxuan@gmail.com2007-04-25 02:49Jon (LabKey DevOps)2015-04-24 15:48 ERROR: Failed running Mascot.2007-05-25 00:00TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I fetched the labkey 2.0 source code yesterday from https://hedgehog.fhcrc.org/tor/stedi/branches/release2.0.
and used it for mascot search. Here is the problem i came across:

The error in the log for the run:

24 Apr 2007 19:09:29,930 INFO : Mascot search for 060508_Yeast_ITRAQ_F14.mzXML
24 Apr 2007 19:09:29,932 INFO : =======================================
24 Apr 2007 19:09:30,374 INFO : MzXML2Search output
24 Apr 2007 19:09:30,383 INFO : =======================================
24 Apr 2007 19:11:24,077 INFO : running: MzXML2Search -mgf 060508_Yeast_ITRAQ_F14.mzXML
24 Apr 2007 19:11:24,306 INFO :
24 Apr 2007 19:11:24,308 INFO : MzXML2Search - Mascot Generic Format
24 Apr 2007 19:11:24,309 INFO :
24 Apr 2007 19:11:24,317 INFO : Reading 060508_Yeast_ITRAQ_F14.mzXML
24 Apr 2007 19:11:24,319 INFO : Getting the index offset
24 Apr 2007 19:11:24,320 INFO : Reading the index
24 Apr 2007 19:12:15,127 INFO : scan: 1 000% 2 000%
   3 000% 4 000% 5 000% 6

...............................................
099% 5107 099% 5108 099% 5109 100%
24 Apr 2007 19:12:15,161 INFO : Done.
24 Apr 2007 19:12:15,163 INFO :
24 Apr 2007 19:12:15,167 INFO : mascot client output
24 Apr 2007 19:12:15,173 INFO : =======================================
24 Apr 2007 19:12:15,769 INFO : ../bin/ms-searchcontrol.exe - Version 2.1.0 - Server: Apache/2.0.52 (CentOS)
24 Apr 2007 19:12:15,803 INFO : Creating Mascot session...
24 Apr 2007 19:12:15,850 INFO : Mascot session# started.
24 Apr 2007 19:12:15,852 INFO : Creating Mascot search task...
24 Apr 2007 19:12:15,951 INFO : Mascot search task#117743473501 created with 'nph-mascot.exe'.
24 Apr 2007 19:12:15,955 INFO : Submitting search to Mascot server...
24 Apr 2007 19:12:15,996 INFO : Submitting query file, size=227796521
24 Apr 2007 19:12:45,962 INFO : Mascot search task status: query upload completed
24 Apr 2007 19:19:02,812 INFO : Search submitted.
24 Apr 2007 19:19:02,829 INFO : Mascot search status verbose reporting on
24 Apr 2007 19:19:33,060 INFO : Mascot search status: complete

24 Apr 2007 19:19:43,064 INFO : Retrieving Mascot search result...
24 Apr 2007 19:19:43,184 INFO : Downloaded 47 bytes of result file.
24 Apr 2007 19:19:43,187 INFO : First line of Mascot result file does not start with 'MIME-Version:'... will remove file
24 Apr 2007 19:19:43,189 INFO : First 1 line(s)
problem=Error return from ms-searchcontrol.exe
24 Apr 2007 19:19:43,192 INFO : Mascot session ended.
24 Apr 2007 19:19:43,194 ERROR: Failed running Mascot.

In cpas-errors. log:

ERROR PipelineJob 2007-04-24 16:22:30,245 JobThread-2.1 : Failed running Mascot.


However, i have checked the .dat file from Mascot, it is starting with "MIME-Version: 1.0 (Generated by Mascot version 1.0)".




Does anyone have any idea what might be the problem?

Thank you!

Runxuan
wnels2@uky.edu2008-04-01 12:52Jon (LabKey DevOps)2015-04-28 21:52 test error:JDWP No transports TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Sometimes if I stop the drt tests before they have finished I will get the following error when I start the next batch:

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=JVMTI_ERROR_INTERNAL(113)
ERROR: transport error 202: bind failed: Address already in use ["transport.c",L41]
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) ["debugInit.c",L500]
JDWP exit error JVMTI_ERROR_INTERNAL(113): No transports initialized
C:\CPAS\server\test\build.xml:641: Java returned: 1
    at org.apache.tools.ant.taskdefs.Java.execute(Java.java:107)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
.
.
.
I can't figure out how to stop the process that must be already using it without rebooting my PC. Does anyone know an easier/quicker way?

Thanks,
Bill
wnels2@uky.edu2009-05-20 07:28Jon (LabKey DevOps)2015-04-28 21:54 Cardinals look and feel TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm setting the look and feel for a new Labkey server at a rival university, the University of Louisville.
Their colors are red, black, and white. Ours are blue and white.
Through the Admin console> look and feel settings> resources tab I've been able to switch most of the blue text to black by modifying the style sheet at stylesheet.css?revision=14. There is one blue header that I just can't seem to find though. Which style is the main title under the nav trail using?
I'm sure you can appreciate the seriousness of this matter.
Thanks,
Bill
natalie.tasman@insilicos.com2009-07-23 17:58Jon (LabKey DevOps)2015-04-28 21:54 note regarding TPP binaries in LabKey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
A LabKey member recently checked in TPP binaries under the SVN commit log "add xtandem unix binaries". The checkin did contain xtandem binary, but as part of the larger set of TPP binaries. Just to be clear, the TPP (Trans-Proteomic Pipeline) does contain a version of X!Tandem, but I don't think it's the same version that LabKey wants to use, at least historically. I'm definitely interested if LabKey plans to sync to the TPP's branch- let me know if that's the intention.

Hope this helps clarify things,

Natalie
kgrady15@u.washington.edu2009-09-18 13:08Jon (LabKey DevOps)2015-04-28 21:54 Data Transformation & Java TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I downloaded three sample files that were emailed to my group for data transformation:
AbstractAssayValidator.java
AssayTransform.java
AssayValidator.java

Since AssayTransform and AssayValidator extend AbstractAssayValidator, I made two jar files:
AbstractAssayValidator + AssayTransform (AssayTransform.jar)
AbstractAssayValidator + AssayValidator (AssayValidator.jar)

Whenever I try to import data with the AssayTransform.jar file in the Data Transform field of the assay, an error comes back saying "unable to access [path]...AssayTransform.jar" Is this a problem with the way I am grouping the files in each .jar, or something else?
Ben Bimber2010-04-26 12:24Jon (LabKey DevOps)2015-04-28 21:55 server crash TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi guys,

our labkey server crashed at ~2pm today. to my knowledge, there was nothing out of the ordinary going on. below is the tomcat log. see out of memory errors near the bottom. is there any other information we should get?



ERROR Table 2010-04-26 12:30:26,109 t: http-8443-Processor22 : internalExecuteQuery
org.postgresql.util.PSQLException: ERROR: canceling statement due to user request
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:367)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
    at org.labkey.api.data.StatementWrapper.executeQuery(StatementWrapper.java:540)
    at org.labkey.api.data.Table._executeQuery(Table.java:120)
    at org.labkey.api.data.Table.executeQuery(Table.java:280)
    at org.labkey.api.data.Table.selectForDisplay(Table.java:1385)
    at org.labkey.api.data.Table.access$300(Table.java:53)
    at org.labkey.api.data.Table$2.call(Table.java:1397)
    at org.labkey.api.data.Table$2.call(Table.java:1395)
    at org.labkey.api.data.AsyncQueryRequest$1.run(AsyncQueryRequest.java:69)
    at java.lang.Thread.run(Thread.java:637)
ERROR Table 2010-04-26 12:30:26,142 t: http-8443-Processor22 : SQL [56395]
    SELECT *
    FROM (
    SELECT
    AuditLog.intkey1 AS IntKey1,
    AuditLog.key2 AS Key2,
    AuditLog.rowid AS RowId,
    AuditLog.containerid AS ContainerId,
    ContainerId$.name AS "containerid$name",
    AuditLog.created AS Date,
    AuditLog.createdby AS CreatedBy,
    CreatedBy$.displayname AS "createdby$displayname",
    AuditLog.impersonatedby AS ImpersonatedBy,
    ImpersonatedBy$.displayname AS "impersonatedby$displayname",
    AuditLog.projectid AS ProjectId,
    ProjectId$.name AS "projectid$name",
    AuditLog.key1 AS Key1,
    AuditLog.key3 AS Key3,
    AuditLog.comment AS Comment,
    AuditLog.eventtype AS EventType
    FROM audit.auditlog AuditLog
    
        LEFT OUTER JOIN core.containers AS ContainerId$ ON (AuditLog.containerid = ContainerId$.entityid)
    
        LEFT OUTER JOIN core.usersdata AS CreatedBy$ ON (AuditLog.createdby = CreatedBy$.userid)
    
        LEFT OUTER JOIN core.usersdata AS ImpersonatedBy$ ON (AuditLog.impersonatedby = ImpersonatedBy$.userid)
    
        LEFT OUTER JOIN core.containers AS ProjectId$ ON (AuditLog.projectid = ProjectId$.entityid)) x
    
    WHERE (EventType = ?) AND (Key2 = ?)
    ORDER BY Date DESC
    LIMIT 101
    ?[1] ListAuditEvent
    ?[2] 8e545b21-3314-102d-8be6-493dbd27736f

    org.labkey.api.data.Table$2.call(Table.java:1397)
    org.labkey.api.data.Table$2.call(Table.java:1395)
    org.labkey.api.data.AsyncQueryRequest$1.run(AsyncQueryRequest.java:69)
    java.lang.Thread.run(Thread.java:637)
ERROR WebPartView 2010-04-26 14:02:44,960 http-8443-Processor10 : renderView() exception in org.labkey.experiment.controllers.exp.ExperimentRunGraphView while responding to /labkey/experiment/WNPRC/WNPRC_Units/Research_Services/MHC_SSP/showRunGraph.view?rowId=78
ERROR WebPartView 2010-04-26 14:02:53,135 http-8443-Processor10 : renderView() exception in org.labkey.api.view.template.HomeTemplate while responding to /labkey/experiment/WNPRC/WNPRC_Units/Research_Services/MHC_SSP/showRunGraph.view?rowId=78
java.lang.OutOfMemoryError: PermGen space
ERROR DefaultModule 2010-04-26 14:02:56,372 http-8443-Processor10 : error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:04:57,818 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:04:59,308 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:00,814 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:02,295 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:03,776 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:05,247 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:08,174 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:09,637 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:14,025 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:16,972 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:18,439 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:22,848 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:24,319 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:28,716 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:30,182 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:34,587 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:36,045 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:40,417 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:41,873 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:46,254 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:49,173 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:50,642 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:55,040 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:05:57,238 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:00,902 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:02,367 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:06,767 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:08,228 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:12,619 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:15,538 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:16,994 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:21,371 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:22,835 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:27,243 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:28,702 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:33,089 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:34,580 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:38,957 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:41,877 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:43,342 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:47,734 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:50,662 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:52,120 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:56,509 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:06:57,964 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:02,340 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:03,800 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:08,188 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:11,107 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:14,024 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:15,484 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:19,868 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:21,324 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:25,708 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:27,171 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:31,555 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:33,019 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:37,426 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:38,886 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:43,273 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:44,739 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:49,129 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:51,326 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:54,985 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:07:56,442 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:00,818 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:02,276 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:06,683 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:09,606 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:11,075 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:15,487 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:16,951 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:21,335 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:22,800 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:27,190 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:30,110 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:31,617 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:08:49,263 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:05,514 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:14,416 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:15,953 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:20,378 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:23,307 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:24,773 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:29,156 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:30,619 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:35,013 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:36,472 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:40,852 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:42,308 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:46,682 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:48,137 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:52,521 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:53,981 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:58,362 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:09:59,823 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:04,203 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:05,661 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:10,046 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:11,508 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:15,881 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:17,338 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:21,715 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:23,910 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:27,559 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:30,483 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:31,947 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:36,358 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:39,274 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:40,733 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:45,116 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:46,571 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:50,966 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:52,432 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:56,827 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:10:58,286 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:02,672 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:04,134 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:08,528 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:10,723 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:14,389 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:15,856 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:20,251 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:21,713 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:26,120 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:27,578 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:31,960 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:34,902 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:37,839 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:39,300 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:43,694 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:45,161 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:49,545 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:51,015 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:55,411 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:11:56,879 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:01,271 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:02,735 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:10,082 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:11,550 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:15,953 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:18,153 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:21,816 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:24,750 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:26,220 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:30,610 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:32,078 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:36,497 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:37,965 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:42,349 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:43,808 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:48,184 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:49,641 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:54,052 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:55,538 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:12:59,942 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:01,408 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:05,814 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:07,288 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:11,708 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:13,899 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:17,559 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:19,019 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:23,413 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:26,345 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:29,279 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:30,746 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:35,159 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:36,614 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:40,998 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:42,464 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:46,845 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:48,309 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:52,714 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:54,913 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:13:58,580 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:00,043 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:04,424 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:05,889 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:10,269 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:11,730 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:16,124 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:17,584 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:21,994 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:23,461 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:27,847 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:29,306 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:33,708 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:35,174 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:39,574 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:41,776 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:45,428 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:48,350 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:49,817 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:54,227 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:14:55,689 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:00,080 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:02,274 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:05,934 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:07,399 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:11,802 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:14,002 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:17,672 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:19,135 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:23,528 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:24,993 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:29,382 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:30,852 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:35,277 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:36,743 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
ERROR DavCrawler 2010-04-26 14:15:41,145 DavCrawler : Unexpected error
java.lang.OutOfMemoryError: PermGen space
Lili2010-05-07 11:29Jon (LabKey DevOps)2015-04-28 21:59 Editable Data Grid TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If I create a view of data table, for example, in a wiki web part, how do I make each of the cells editable by user and allow them to submit the data table into DB?
Ben Bimber2010-06-15 15:59Jon (LabKey DevOps)2015-04-28 21:59 filtering date ranges in a labkey grid TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
There are two types of data in the EHR that involve date ranges:

Housing: an animal is housed in a given room/cage for some period of time. We have a table of housing records the contain the animal, location, startDate and endDate. A null endDate indicates the animal is still in that location.

Projects: an animal can be assigned to any number of projects at one time. The same basic idea applies as housing: we have a table with animalId, projectNumber, startDate and endDate.

One type of question that comes up commonly is something like "show me all the locations where animal X has been housed over the past year". this seems simple, but the date-range element makes it tricky. if I just filter on startDate>=Y, then I potentially miss a housing record that started before date Y, but extended after it. Likewise, if an animal was housed somewhere from Dec 31, 2004 though Jan 1 2006, then it becomes tricky using labkey filters to show where he was housed in 2005.

you really need some sort of 'BETWEEN' or 'OR' filtering scheme that uses two columns in 1 filter. I dont think this is possible in a labkey grid. In theory I could write javascript apps for specific situations (ie. user types a date in a box and JS code translates that into the right query). This in itself is not hard, but the problem is that any number of permutations of the same basic idea can be asked. One of the great aspects of the filterable grid is that it gives users a lot of power to answer their own questions and you sorta lose that if you end up with all these application-specific JS pages.

Is there anything to help here I'm missing? Are there any tricks I can do to better represent/filter date ranges in a grid? Can I write a query on top of the dataset that calculates some helpful columns? Are there filtering tricks I'm not aware of?

Thanks for the help.
Ben Bimber2010-07-12 08:09Jon (LabKey DevOps)2015-04-28 21:59 labkey still sending emails from old email after changing system email in admin console TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We recently changed the system email in the admin console from EHR@primate.wisc.edu to EHR-do-not-reply@primate.wisc.edu. However, we're still getting emails from EHR@primate.wisc.edu. This includes auto-emails from issue trackers and the pipeline.

I ran this query:

SELECT *
FROM prop.Properties p
left join prop.PropertySets s on s.Set = p.Set
where value like '%@%'

There's 6 records where the name is SystemEmailAddress. Most show the old email, but one shows the new one. Should these other records exist? Are there pipeline overrides that might still be set to use the old email, even though we replaced it in the admin console?
Ben Bimber2010-07-13 07:33Jon (LabKey DevOps)2015-04-28 21:59 Issue tracker suggestion plus patch TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the issue tracker when you create an issue, there is the top section with various fields and a large textarea for the body of the message. As odd as this may sound, a whole lot of users do not see this textarea. It does blend into the page and lacks the orange header label (like that you see when you submit a message).

Attached is a patch that adds the orange label (see attached png). it's admittedly a quick fix. because of how this page is structured (as three distinct tables), it could be a little nicer, but it does make the textarea more visible.

I'm not sure what the right procedure for changes to the core code is at this point, but this one is pretty small. if it looks ok i could just check it in directly.
Ben Bimber2010-08-24 14:49Jon (LabKey DevOps)2015-04-28 21:59 files webpart bug TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
if you have multiple file webparts on the same page, there is a problem with the upload button. normally when you hit that button a section expands, like the export action of a QWP. when you have multiple file webparts on a page, the upload section of all webparts except the first one is blank. perhaps the code is trying to use something like getById() that will break if that's no longer unique?

example here:
https://xnight.primate.wisc.edu:8443/labkey/project/WNPRC/EHR/Logs/begin.view?
Ben Bimber2010-09-07 08:01Jon (LabKey DevOps)2015-04-28 21:59 inconsistency in handling of store null record caption TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LABKEY.ext.FormHelper.getFieldEditor is designed to interpret metadata and return a correctly configured Ext component. When that component is a combobox, there's code that inserts a blank record into the select menu, which is needed b/c otherwise the user could not actively choose null on the select menu. the caption of the null record currently defaults to '[none]'. there is a param which should allow a custom nullCaption, but this is not working. it's the result of an inconsistency between LABKEY.ext.FormHelper.getLookupStore and LABKEY.ext.Store.

In LABKEY.ext.FormHelper.getLookupStore, the following code exists starting at FormPanel.js line 528, which adds :

            if (!c.required)
            {
                config.nullRecord = {
                    displayColumn: c.lookup.displayColumn,
                    nullCaption: c.lookupNullCaption || "[none]"
                };
            }
            config.autoLoad = true;
            store = new LABKEY.ext.Store(config);

When creating the field, if you specify a lookupNullCaption, you should be able to override the default value of '[none]'. LABKEY.ext.FormHelper.getLookupStore attempts to do this above by supporting lookupNullCaption (see above). It then called LABKEY.ext.Store to actually create the store. Unfortunately, this is the code from LABKEY.ext.Store, line 600:

        if(this.nullRecord)
        {
            //create an extra record with a blank id column
            //and the null caption in the display column
            var data = {};
            data[this.reader.meta.id] = "";
            data[this.nullRecord.displayColumn] = this.nullCaption || "[none]";

so LABKEY.ext.Store is expecting this.nullCaption, but is being given this.nullRecord.nullCaption. the simplest fix is to change Store.js line 606 to:

data[this.nullRecord.displayColumn] = this.nullRecord.nullCaption || "[none]";

The above is the least intrusive fix to make this work. It seems like the proper solution might be for LABKEY.ext.FormHelper.getLookupStore to blindly pass the config options into LABKEY.ext.Store and let that code deal with setting t he proper caption, rather than doing essentially the same thing twice.

In addition to LABKEY.ext.FormHelper.getLookupStore, the following also do essentially the same thing:
LABKEY.ext.Store.getLookupStore
LABKEY.Utils.createExtStore

The same could be applied to them as well.
Ben Bimber2011-02-24 08:26Jon (LabKey DevOps)2015-04-28 22:01 what's ontology/concepts designed to do? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in the admin console there's an item called 'Ontology'. It seems to allow you to import lists of concepts, which describe terms, give synonyms, etc. is this used by labkey's free text search? if not, where does it come into play? does this system allow for relationships between concepts that are more advanced than synonyms?

also, at least on my machine, when you hit 'View Types' i get a null pointer exception.

thanks.
jdutra2011-04-20 13:04Jon (LabKey DevOps)2015-04-28 22:01 Uniqueness problem when saving to two datasets TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have some wiki pages that accept user input, and then save the inputted data to labkey study datasets using LABKEY.Query.insertRows. I seem to have a problem when I am saving data to more than one dataset. If the first insertRows is successful, I perform a second insertRows, and get the following 'ERROR: duplicate key value violates unique constraint "pk_participant"'. This happens most of the time, but every once in a while it works. Sometimes I'm trying to save one record to one dataset, and multiple records to a second dataset, and it saves at least one record for the second dataset before giving me the error. I'm stumped. Any ideas?

I'm using FireFox 4.0.

- Jen
Ben Bimber2011-05-09 06:48Jon (LabKey DevOps)2015-04-28 22:01 Report webpart and filters TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Pre-11.1, we had a custom view that loaded a report webpart. The page loaded an R report that makes a bar graph of a table. In the past, i was able to pass filters to this R report in the partConfig object. Is something like this still possible? Below is the code:

            var config = {
                partName: 'Report',
                renderTo: 'colonyPopulationChange',
                partConfig: {
                    title: 'Population Change',
                    schemaName: 'study',
                    showSection: 'barchart&tsvfile',
                    reportId : 'module:ehr/schemas/study/colonyPopulationChange/Bar Chart.r',
                    'query.queryName': 'colonyPopulationChange',
//NOTE: the only reason I include 3 variants is b/c throughout the past couple versions, each of these names was the supported syntax at one point
//at this point none seem to work
                    '_union.species~neq': 'Unknown',
                    '_select.species~neq': 'Unknown',
                    'query.species~neq': 'Unknown'
                },
                errorCallback: EHR.utils.onError
                //,scope: this
            };

            new LABKEY.WebPart(config).render();

the page is here:

https://xnight.primate.wisc.edu:8443/labkey/ehr/WNPRC/EHR/populationOverview.view?

What is the supported name/syntax for applying filters on the URL for a report?

thanks.
Ben Bimber2011-06-07 13:28Jon (LabKey DevOps)2015-04-28 22:02 labkey SQL: doing a join with IN TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
say i have 2 tables. a column on one of these tables is a CSV string, stored as varchar (ie. 'apple,banana,lemon'). I want to join a second table to it, using something like:

select * from table1 t1
LEFT JOIN table2 t2
ON (t1.col IN t2.col)

using my fruit example, if a given row from table1 has a value of apple, banana or lemon, that row should join to the row in table2.

can something like this work? labkey isnt throwing a SQL error, but it also isnt joining properly. i realize that having data in a CSV string is not very good, but in this situation it's much easier for the user to maintain it, rather than using a mapping table or something.

thanks.
slangley@scharp.org2011-07-22 12:42Jon (LabKey DevOps)2015-04-28 22:02 What are the limitations on EditableGrid's with config.sql-based Store's? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
From the documentation, I see that grids defined using Stores populated via SQL queries are read-only:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ext.Store.html

{String} config.sql
  A LabKey SQL statement to execute to fetch the data. You may specify either a queryName or sql, but not both. Note that when using sql, the store becomes read-only, as it has no way to know how to update/insert/delete the rows.

I suspect, however, that there are additional limitations:

  1. Interactive grid column filtering has no effect on the rows displayed in the grid.
  2. Exporting of the grid to Excel is not supported.

If my above suspicions are incorrect, then I have some cases which I can discuss further where those limitations do appear to be true.

Thanks.
trent2011-09-07 19:10Jon (LabKey DevOps)2015-04-28 22:02 Whats the Accepted Way to Load External Scripts/Style? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i.e. just say I want a custom stylesheet.

Upload an attachment to the wiki page, look at the attachment list, disable listing attachments (for usability), and insert that link?

http://labkey-dev:8080/labkey/wiki/home/s1/download.view?entityId=abd1f051-bb02-102e-9801-323117fd92b4&name=test.css

Or... upload into the files path for the project: /usr/local/labkey/files/home/@files: test.css, and the just reference: href="/labkey/files/home/%40files/test.css"

Or... create a new folder in the labkeywebapp folder to store custom scripts e.g.:

/usr/local/labkey/labkeywebapp/custom : test.css, and then just reference: href="/labkey/custom/test.css" (which obviously requires some caution when upgrading)
psisk@broadinstitute.org2011-11-17 09:57Jon (LabKey DevOps)2015-04-28 22:03 Download Links go away TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When I add download links to the File web component using the columns dropdown menu, the download links appear and are usable. However, when I leave the site and return, the links have disappeared. Is this usual and expected behavior, a bug or do I need to do something to make the download links persistent.

Thanks,

Peter Sisk
pdogra@stanford.edu2012-04-19 16:29Jon (LabKey DevOps)2015-04-28 22:03 Where should applet files be placed TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have setup Labkey on a Windows XP machine and using Labkey version 11.3. I have uploaded my data and I have created a Javascript view that basically adds an applet to the HTML page. The applet that I want to display is the JavaTreeView applet. I have placed the applet .jar files in the <tomcat_home>/server/lib but I get an error that the .jar files and the applet class are not found. I am new to labkey and can't figure out where I should put these files so that they are accessible? Any help would be very much appreciated!

Thanks!
trent2012-05-20 19:48Jon (LabKey DevOps)2015-04-28 22:03 Deleting a DataSet doesn't Remove Views (study) TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

Not sure if this is intentional or not (maybe unknown); When you create a dataset, then create a named view on that dataset, then down the line, remove the dataset for whatever reason. Any named views remain in the system.

Semi-Resolution: go to the manage views page /reports/<path/to/project/folder>/manageViews.view, select the view, select delete (11.3).

I do note however, an admin doesn't get access to all views (i.e. private views user X has created). User X may be a bit baffled by the error: Query 'Person' in schema 'study' doesn't exist, When they go to access the view.
sadcat@u.washington.edu2012-09-04 14:05Jon (LabKey DevOps)2015-04-28 22:06 Packaging, porting whole project from dev to test TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I wonder - is there a way to package a whole project? For example, we have a fairly complex project (many folders, some custom UI, users-permissions, custom modules), which we need to replicate over several servers - what's the easiest way to do that?

If there is no easy mechanism to package a server, is there a way to script parts of it? There are , of course, database scripts to recreate the database - is it possible to manually write scripts to, say, create users with appropriate permissions, possibly even to construct the UI?

Thanks!
Xenia
slangley@scharp.org2013-01-07 15:43Jon (LabKey DevOps)2015-04-28 22:07 Access to FolderType TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Could you add the current container's folderType to the JavaScript window.LABKEY.container object so that it is not necessary to look it up separately using a call to the LABKEY.Security.getContainers() function?

I like to modify the behavior of some JavaScript functions based on the current container's folderType.
Ben Bimber2013-03-25 14:04Jon (LabKey DevOps)2015-04-28 22:07 update docs? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
the instructions for enlisting from svn still suggest using tortise 1.6, since higher didnt work with Intellij 10.x. should these be updated, or at least the language changed? i assume the recommendation is intellij 11.x / svn 1.7?
jdutra2013-03-28 12:46Jon (LabKey DevOps)2015-04-28 22:07 Disappearing dataset??!! TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a dataset called CohortAssignment, in a study where the clinical datasets are reloaded using a manual study reload periodically. I reloaded the study yesterday and everything was fine. I was testing out a report which queries the cohort assignment dataset extensively. One moment it was working, and the next moment all the queries were failing with a QueryParseException: Table CohortAssignment not found.

The dataset was still there. I could see the structure, but when I clicked "View Data", I got an error saying "Table or query not found: Cohort Assignment" (attached). There was no information in the error logs.

Eventually I tried "Edit Definition" and then clicked "Save" without changing anything. The next time I tried to view the data, it was there. Do you have any idea what might have gone wrong there, or how I can prevent this from happening in the future?
Leo Dashevskiy2013-05-16 12:51Jon (LabKey DevOps)2015-04-28 22:07 LABKEY SQL capability to decode URI ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, guys!

Is there built-in syntax to convert a raw db entry such as:

/home/ldashevs/Labkey/flowFiles/RV144/@files/XML%20files/RV144%20Batch%201022.xml

into the 'proper' form of

/home/ldashevs/Labkey/flowFiles/RV144/@files/XML files/RV144 Batch 1022.xml

?

I could not find one. And if there isn't a built-in way, is there a mechanism to define a custom function in LABKEY SQL? If so, how? (Right now within my .sql file, which is the query source for a LABKEY.ext.Store, I just have a SELECT statement...)

Thanks.
-Leo
rubiaasharaf92222013-05-22 23:04Jon (LabKey DevOps)2015-04-28 22:08 need solution TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
it is the very first time that i trying labkey server, after installation on intelliJ , on running got the error

Error: Could not find or load main class com.intellij.rt.execution.application.AppMain
Leo Dashevskiy2013-12-06 13:43Jon (LabKey DevOps)2015-04-28 22:08 How does one include a custom Java-based module (in particular 'hipcdb')? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Thanks.
-Leo
Olivier2015-05-11 08:31Jon (LabKey DevOps)2015-05-11 17:21 Default value: current date TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have a list with a date field: how can I set the current date as default value?

Thanks,
Olivier
lewis j mcgibbney2015-06-02 10:24Jon (LabKey DevOps)2015-06-02 23:21 Release Announcements List TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am looking to subscribe out internal email list to a labkey-announce@ list if one is possible.
Can anyone please detail the email list (very/low traffic) which I can subscribe to?
Thank you
Lewis
trent2016-03-17 19:46Jon (LabKey DevOps)2016-03-18 07:29 QueryWebPart deprecated? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I've just been asked to upgrade our instance of LabKey. We were on 14.1 so quite a few versions out of date. Just resolving a couple of issues with some (file-based) modules.

I note that LABKEY.QueryWebPart no longer resolves? Upon looking at the API docs - it is still listed. https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html.

Playing around on the console I see QueryWebPart2 appears (which isn't in the API docs) - is this favoured now?

I glanced over the release notes between 14.1 and 16.1 to see if anything was mentioned, but couldn't see anything (possible overlooked though).

Cheers,
eva pujadas2016-10-04 08:51Jon (LabKey DevOps)2016-10-05 11:07 Scripting pipelines with more than one input file TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey supporters,

Is it possible to specify more than one input file when defining a task?
E.g.:
<task xmlns="http://labkey.org/pipeline/xml"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:type="ScriptTaskType"
    name="HelloWorld"
    version="1.0">
  <description>Simple Hello World R task</description>
  <inputs>
    <file name="input.csv" required="true" />
    <file name="input2.csv" required="true" />
  </inputs>
  <script file="HelloWorld.R"/>
</task>

How would then the both input files be read from the called script "HelloWorld.R"?
I've tried it, and using ${input.csv} and ${input2.csv} does not work. It reports the error message that the file does not exist.

Thank you very much,
Eva
hilariagrieve2016-11-02 04:55Jon (LabKey DevOps)2016-11-07 13:51 Rlabkey HTTPS connections TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi!
I am configuring RLabkey and in the diagnostic process I had some Troubleshooting Rlabkey Connections,
When I tried to access to a http direction, it works fine.
But, when I tried to acces to a https direction, I doesn't work.

when I Run the following in an R view:
------------------------------------------------------
library(Rlabkey)

   labkey.setCurlOptions(ssl.verifypeer=FALSE, ssl.verifyhost=FALSE)
   cat("\n\nAttempt a connection to Google. If it works, print first 200 characters of website. \n")
    x = getURLContent("https://www.google.com")
    substring(x,0,200)
------------------------------------------------------

I have this in the report tab:
------------------------------------------------------

Error executing command
javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
Loading required package: RCurl
Loading required package: bitops
Loading required package: rjson
$cainfo
[1] "C:\\Users\\SSTJ04; C:\\labkey"

$useragent
[1] "Rlabkey"

$sslversion
[1] 1

$followlocation
[1] TRUE

$ssl.verifyhost
[1] FALSE

$ssl.verifypeer
[1] FALSE

attr(,"class")
[1] "CURLOptions"


Attempt a connection to Google. If it works, print first 200 characters of website.
Error in function (type, msg, asError = TRUE) :
  Failed to connect to 10.101.2.22 port 443: Timed out
Calls: getURLContent -> curlPerform -> .Call -> <Anonymous> -> fun
Ejecuci?n interrumpida


-------------------------------------------------------

My _netrc file, I think is configurated ok, but I don't know....

machine local host
login hilariagrieve@hotmail.com
password xxxxx

machine 10.101.136.102
login hilariagrieve@hotmail.com
password xxxxx


Is that ok? What could be the problem?

Thanks
Will Holtz2017-08-01 17:43Jon (LabKey DevOps)2017-08-03 18:21 creating both sides of a FK using LABKEY.Query.saveRows() TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Table A has a foreign key into table B. I'd like to insert into both tables A and B in a single transaction and create both sides of the foreign key relationship. The resulting record inserted into A would be pointing to the record inserted into B, both inserted in the same transactions. I'm trying to do this with client side javascript and LABKEY.Query.saveRows(). I thought perhaps I could explicitly set the rowid field for inserts into table B, but I get an error about the rowid not existing. I'm guessing I need to use Java to do this, but please let me know if you can think of way around this.

thanks,

-Will
Leo Dashevskiy2017-09-14 15:13Jon (LabKey DevOps)2017-09-29 14:16 Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If yes, could an example be provided?

If no, why not and can such support be added? ;)

Thanks.
-Leo
marcia hon2018-02-23 10:32Jon (LabKey DevOps)2018-03-09 14:44 SQL Query with Parameters TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I wish to create an SQL query that uses parameters.

These parameters I would like to use in the "IN" command.

For example:

WHERE values IN parameters

How do I do this? If I enter something like this in parameters it does not work: value1, value2, value3

Thanks,
Marcia
rosnerd2007-07-27 13:03Jon (LabKey DevOps)2015-04-28 21:51 Deleting an Issue from a project's Issues list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there and easy way in the web interface to delete an issue
from a project's issues list? Please let me know if I'm missing
something, but I couldn't find a documented way to delete an
issue if it was created in error.

Does the only way to delete an issue involve deleting the record
directly from the database?

Thanks,

Dan
Ben Bimber2010-04-07 15:23Jon (LabKey DevOps)2015-04-28 21:55 query -> calendar like view? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
have you guys ever taken a query and displayed the results in something that looks like a calendar? our query returns dates where a particular observation was made. i'd like to display a month by month summary showing which days the observation was made. my guess is that i could build something using ext's calendar, but i dont think there's currently a way to create a javascript view in labkey. that could have changed.

thanks.
Ben Bimber2010-04-28 16:19Jon (LabKey DevOps)2015-04-28 21:55 gridURL param and name of dataset? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i'm making a custom grid page for all EHR datasets. in each dataset's metadata, can I parameterize the name of the dataset like this:


<gridUrl>/EHR_Reporting/showDataset.view?dataset=${dataset}</gridUrl>

note the ${dataset}, instead of needing to write out the name for each dataset?


as a side note, our grid details page is using dataset name instead of the numeric dataset ID (which is what most of the study uses), b/c the QWP doesnt accept dataset ID as far as I know.
Ben Bimber2010-08-22 21:51Jon (LabKey DevOps)2015-04-28 21:59 Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a custom pipeline. the pipeline is associated with .sff files. example here:
https://xnight.primate.wisc.edu:8443/labkey/project/WNPRC/WNPRC_Units/Research_Services/Research_Computing/SequenceAnalysis/begin.view?

If I check a file in the files webpart, then hit the 'import data' button, my pipeline is an option. This pipeline can also be configured to show up as a button on the file webpart toolbar. the way these pipelines behave is a a pretty good import mechanism.

In that same folder I created a workbook. in that workbook there is a files webpart. what dictates which pipeline buttons show up in the workbook files webpart by default? can i configure that somewhere? it does not seem to inherit from the folder.

on a related topic: can i define which webparts are part of each new workbook? right now each webpart always has a files webpart and an expt runs webpart.

thanks for the help.
Ben Bimber2010-10-04 05:34Jon (LabKey DevOps)2015-04-28 22:00 possible to sort of date portion of a date/time field TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a dataset which stores observations by room. vets want to see all observations by day, sorted by room/cage. the sort would be date/room/cage. the problem is that since date is a date/time field, the time portion of this field takes over sorting.

what's the best solution for this? it would be possible to wrap the date column with SQL to extract the date portion then sort on this new column. accomplishing this in labkey isnt terribly difficult, but it does require adding a new SQL statement, wrapping the column, etc. is there a simpler mechanism to handle that sort at the level of view?
Ben Bimber2010-12-02 07:37Jon (LabKey DevOps)2015-04-28 22:00 more obvious visual cue that a QWP is showing a given view? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When you add filters to a QWP, you get a line of text above the QWP saying something like 'the view X is filtered on Y'. When you load a QWP that is showing a specific view, but no extra filters, you dont get any sort of visual cue that you're looking at this view, as opposed to the full query. Is there any way to cause the QWP to show something to indicate that?

if we wanted to split hairs, i'd say this is most important when your view applies filters to the data, but less essential when it applies column changes or sorts. I would also say that we probably dont want to list the specific filters this view applies (like what happens for regular filters).

the reason i ask is b/c we have lots of views on study.participant. when the user loads one of these views, the page just says 'Participant' at the top, then loads a grid w/ some number of records. There's nothing obvious to tell you that you're looking at a subset of the total study except hitting the view button or looking at the number of records.

thanks.
Ben Bimber2011-04-01 13:22Jon (LabKey DevOps)2015-04-28 22:01 what setting dictates whether a pipeline can have two simultaneous jobs? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a pipeline this is configured to execute the runs on a separate server. we're starting to get more usage on it. i originally thought the pipeline was setup such that only one run could execute at once. any subsequent runs would be queued until the first one completed. that's not what's happening. is there some setting to configure this to be the case?

it isnt causing problems for now, since the most i'm seeing 2-3 runs simultaneously. i'd prefer not to see 10 though.

thanks in advance.
michael_stover@urmc.rochester.edu2011-05-27 10:54Jon (LabKey DevOps)2015-04-28 22:01 Another specimen question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Specimen Condition goes somewhere, but I can't find it. What table & column is this info in?
jdutra2011-10-14 10:10Jon (LabKey DevOps)2015-04-28 22:02 Copy to Study suddenly broken TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Because of some corrections to our specimen data, I needed to re-copy two assays to a study. I deleted the two datasets, and went to the source assays. When I try to copy the assays to study, I get to the "Verify Results" page, and everything seems to have validated correctly. When I continue to copy to study, I get a null Pointer Exception message. A dataset was created but cannot be accessed because of the null pointer errors. I have attached a screenshot of the error I get when copying to study, as well as a copy of the error log. This is happening repeatedly, and with two completely different assays. If anyone has any idea what went wrong I'd appreciate it.

Thanks,
Jen
jdutra2011-11-08 12:53Jon (LabKey DevOps)2015-04-28 22:03 Permissions for Copied to Study Assays TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have an assay that has been copied to a study, resulting in a dataset called HAI Results. The study has per-dataset permissions, and one of our user groups has been assigned Read access to the HAI Results dataset. As long as the default view of HAI Results is not changed, everything works fine. However, if I add some specimen information to the view - say the Draw Timestamp and the Primary Type, then the HAI Results dataset crashes when a user from the group with Read access tries to access it. They click on the HAI Results dataset and a blank screen appears with "500: Unexpected server error" in red at the top. If I remove the extra fields, users can see view the HAI Results dataset again.

Users in this group can view specimens, so I don't understand why adding specimen information would be a problem. Am I doing something wrong?

I attached the "show more details" from the error message, in case that helps.

Thanks!
- Jen
Leo Dashevskiy2012-04-06 18:25Jon (LabKey DevOps)2015-04-28 22:03 Where/how to change the default name "Begin" of a custom webpart/module. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
My <moduleName>.webpart.xml file is as follows:

<webpart title="FlowGraph" xmlns="http://labkey.org/data/xml/webpart">
        <view name="begin"/>
</webpart>


So I would like at the top of my webpart, for the title (, which is on the left on the same darker row, where there are the 3 buttons: move up, move down, and remove on the right), to display not the default "Begin", but rather my webpart's name: FlowGraph.

Thanks.
-Lev
Leo Dashevskiy2012-09-19 18:24Jon (LabKey DevOps)2015-04-28 22:06 Web part error, what does it mean, what is the cause? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi Labkey folks!

A pop up comes up with

header: Error
text: Error getting the web part: transaction aborted


This happens after a render() call to an R script, which takes its time to process a large number of FCS files and return a success status message. Before it can return this message, in this situation, it shows this error.

Thanks.
-Leo
tstellin@scharp.org2012-12-03 10:55Jon (LabKey DevOps)2015-04-28 22:06 Postgresql exception while inserting into List in 12.3 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

We have a form that uses labkey's javascript API to insert form data into a labkey list. The form works fine in 12.2, but on our 12.3 staging server, we get this error back from the LABKEY.Query.insertRows() function:

"ERROR: Functions cannot have more than 100 arguments."

And in tomcat's error logs:

ERROR Table 2012-12-03 10:40:46,167 http-8080-Processor17 : SQL Exception
org.postgresql.util.PSQLException: ERROR: functions cannot have more than 100 arguments
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:372)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:364)
    at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
    at org.labkey.api.data.dialect.StatementWrapper.execute(StatementWrapper.java:984)
    at org.labkey.api.data.Table.execute(Table.java:189)
    at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:71)
    at org.labkey.api.data.LegacySqlExecutor.execute(LegacySqlExecutor.java:39)
    at org.labkey.api.data.Table.execute(Table.java:442)
    at org.labkey.api.data.StatementUtils.createStatement(StatementUtils.java:542)
    at org.labkey.api.data.StatementUtils.insertStatement(StatementUtils.java:116)
    at org.labkey.api.etl.TableInsertDataIterator.init(TableInsertDataIterator.java:76)
    at org.labkey.api.etl.TableInsertDataIterator.onFirst(TableInsertDataIterator.java:102)
    at org.labkey.api.etl.StatementDataIterator.next(StatementDataIterator.java:157)
    at org.labkey.api.etl.TableInsertDataIterator.next(TableInsertDataIterator.java:33)
    at org.labkey.api.etl.MapDataIterator$MapDataIteratorImpl.next(MapDataIterator.java:112)
    at org.labkey.api.etl.WrapperDataIterator.next(WrapperDataIterator.java:67)
    at org.labkey.api.query.AbstractQueryUpdateService$1.next(AbstractQueryUpdateService.java:190)
    at org.labkey.api.etl.Pump.run(Pump.java:60)
    at org.labkey.api.query.AbstractQueryUpdateService._pump(AbstractQueryUpdateService.java:199)
    at org.labkey.api.query.AbstractQueryUpdateService._importRowsUsingETL(AbstractQueryUpdateService.java:172)
    at org.labkey.api.query.AbstractQueryUpdateService._insertRowsUsingETL(AbstractQueryUpdateService.java:231)
    at org.labkey.list.model.ListQueryUpdateService.insertRows(ListQueryUpdateService.java:78)
    at org.labkey.query.controllers.QueryController$CommandType$1.saveRows(QueryController.java:2870)
    at org.labkey.query.controllers.QueryController$BaseSaveRowsAction.executeJson(QueryController.java:3062)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:3129)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:3122)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:152)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:87)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:172)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:353)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1058)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:157)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:697)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:170)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:679)

Any ideas as to what could be going on?
tstellin@scharp.org2013-01-09 12:35Jon (LabKey DevOps)2015-04-28 22:07 Best way to manipulate QueryWebPart buttonbar buttons? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I'm writing a file-based module that uses a QueryWebPart. The requirements ask for one of the QueryWebPart's buttons (as defined by the QueryWebPart's buttonBar config) to be disabled/enabled based on the presence of another object in the dom. What's the best way to enable or disable a specific QueryWebPart button?

Thanks,
-Tobin
dennisw2013-01-30 10:02Jon (LabKey DevOps)2015-04-28 22:07 Two sample projects showing the use of Processing (Java) and LabKey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

We are making available two demonstration projects written in Java that show how to use the Processing data visualization framework to create interactive programs to display data from our Immune Tolerance Network TrialShare system. TrialShare runs on LabKey 12.3, and was created to help clinical trials researchers to present and discover data related to immune system research.
 
There is a 2D and a 3D program, and the source code and necessary libraries are included in the .zip files. Both programs use the LabKey API, Processing 2.0, and the ControlP5 library. The 3D program also uses Proscene for camera control.

To access the .zip files, you will have to register for a free account at https://www.itntrialshare.org (click on the Request an Account button on the right center). We only require this because you will need to agree to our terms of use, since we are sponsored by NIAID. Registration is free and instant; you should receive your email with the registration link within a few seconds.

Once you have a username and password, you can find the source code and libraries at:
https://www.itntrialshare.org/_webdav/Shared/%40files/Source/processingTrialshare2D.zip
https://www.itntrialshare.org/_webdav/Shared/%40files/Source/processingTrialshare3D.zip

.. or you can go to the Source folder in the file browser at:
https://www.itntrialshare.org/project/Shared/begin.view?

If you are using IntelliJ IDEA, you’ll just need to extract the 2D or 3D source archive to a location of your choosing, and then File>Import Project and choose select that file.
Make sure that you set the JDK to at least 1.7 and the project language level to at least 7.0 (File>Project Structure).
 
In Edit Configurations (when you try to run the program), you will need to create a launch configuration based on Application. The main class will be org.immunetolerance.trialshare.processing.Main.

In the constructor of the TrialShareConnectAndReceive class, you will see the line cn = new Connection("https://www.itntrialshare.org/", "youremail@somewhere.com", "yourtrialsharepassword");. You should enter your username(email) and password here. However, I’ve also included serialized versions of the data within the projects in case you wish to work offline or cannot connect to the server.

That’s about it, the program should run but it does take a few seconds before the visualization starts.

The programs run in Jframes with the extended Processing applets inside them.

Please let us know whether you succeed (or fail) at getting these to run. If you are an Eclipse or Netbeans user, we don’t foresee any problems getting the programs to compile and run but we certainly welcome your feedback and perhaps even the steps needed for those IDE’s. If you have any questions, you can contact us at trialsharesupport@immunetolerance.org
jdutra2013-02-19 12:46Jon (LabKey DevOps)2015-04-28 22:07 API Timeout TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I need to delete all the records from a list using the java API. Right now there are 221 records. If I manually go into labkey, show all the records, and delete them all, it works and takes more than 2 minutes (seems like a long time).

When I try to do the same thing using the java API, I get a timeout error after 1 minute. The timeouts on our server are longer than that - it appears to be a client-side timeout. I checked the timeouts in the HttpConnection - both the connection timeout and the socket timeout are 0, which should be infinite. Do you have any idea what is timing out or how I can fix it? The error is below:

java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at sun.security.ssl.InputRecord.readFully(Unknown Source)
    at sun.security.ssl.InputRecord.read(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
    at sun.security.ssl.AppInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
    at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
    at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
    at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
    at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at org.labkey.remoteapi.Connection.executeMethod(Connection.java:271)
    at org.labkey.remoteapi.Command.execute(Command.java:217)
    at edu.rochester.urmc.cbim.immkey.util.JenUtils.PropScreen.deleteListRows(PropScreen.java:62)
    at edu.rochester.urmc.cbim.immkey.util.JenUtils.PropScreen.processFile(PropScreen.java:158)
    at edu.rochester.urmc.cbim.immkey.util.JenUtils.PropXUploader.main(PropXUploader.java:254)

Thanks,
Jen
trent2013-08-06 04:03Jon (LabKey DevOps)2015-04-28 22:08 ExtJS and Updating old dates TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have an ExtJS form.

Is there a good way to handle old dates? Should I use some particular function to get the value?

In the form, I use the code: dob = form.findField('date_of_birth').getValue(); This always prints out the correct date.

Use case 1: 5/4/1971 (dd/mm/yyyy) (Works fine)

above call logs: Mon Apr 05 1971 00:00:00 GMT+1000 (AUS Eastern Standard Time)
date field sent in HTTP request as: 1971-04-04T14:00:00.000Z
resulting save data: 1971/04/05 00:00:00

Use case 2: 4/4/1971 (dd/mm/yyyy/ (Does not work fine)

above call logs: Sun Apr 04 1971 00:00:00 GMT+1100 (AUS Eastern Daylight Time)
date field sent in HTTP request as: 1971-04-03T13:00:00.000Z
resulting save data: 1971/04/03 23:00:00

Is there a good way to handle old dates? I also tried passing in: Ext4.Date.parse(form.findField('date_of_birth').rawValue, 'd/m/Y') but to no avail.

Appreciate any advice :)
jdutra2013-09-12 12:47Jon (LabKey DevOps)2015-04-28 22:08 Study reload question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Can a study reload include lists? Or does "study reload" really just include study datasets? I am putting lists in the pipeline, but they don't seem to be getting imported. Maybe I don't have them in the right place?

Here's my scenario:
I have a study where the datasets are reloaded daily from an external data source. Included in the study is a screening log, which must be stored as a list since it has no participant id. Currently, the automated upload deals with the list separately, using the java api to delete all the records in that list and re-populate it. However, the deletion is so slow that it sometimes causes a timeout, and as the log has grown, it has become an unmanageable problem (the log has about 400 rows). This is what caused me to experiment with including the list in the study reload, but that isn't working for me either. Any suggestions on how to get either of these methods working, or another different way to update the list, would be appreciated.

- Jen
Anthony Corbett2013-09-23 09:26Jon (LabKey DevOps)2015-04-28 22:08 Exception on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a query built in Labkey's SQL and it worked fine in a previous version of Labkey, however in 13.1 it throws an exception while trying to parse this query. See the attached screenshot.

I am unable to edit the source, properties, or metadata as they all end up in a 500 Error: Unexpected Server error with the same NPE; Here are the details:

org.labkey.query.sql.Query$QueryInternalException: Internal error while parsing "SELECT
demo.ParticipantId,
contactInfo.infant_name,
demo.hospital_enroll_site,
demo.ParticipantId.Cohort,
contactInfo.medRec_num,
hsd.admission_date,
hsd.discharge_date,
demo.enroll_date,
st.date as StudyTerminationDate
FROM Demographics demo
LEFT JOIN "Contact Sheet" contactInfo ON contactInfo.ParticipantId = demo.ParticipantId
LEFT JOIN "Hospital Summary Dates" hsd ON hsd.ParticipantId = demo.ParticipantId
LEFT JOIN "Study Termination" st ON st.ParticipantId = demo.ParticipantId
WHERE demo.ParticipantId.Cohort.Label = 'hospital'
  OR hsd.ParticipantId IN (
      SELECT pcrResults.ParticipantId
      FROM "RSV PCR Results" pcrResults
      WHERE lower(pcrResults.result) <> 'negative'
      UNION
      SELECT AncCultureResults.ParticipantId
      FROM "Ancillary Illness Culture Results" AncCultureResults
      WHERE AncCultureResults.viral_culture = 1; -- 1 = RSV
  )"
       at org.labkey.query.sql.Query.wrapRuntimeException(Query.java:523)
       at org.labkey.query.sql.Query.getTableInfo(Query.java:497)
       at org.labkey.query.QueryDefinitionImpl.createTable(QueryDefinitionImpl.java:400)
       at org.labkey.query.QueryDefinitionImpl.getTable(QueryDefinitionImpl.java:369)
       at org.labkey.api.query.UserSchema.createView(UserSchema.java:442)
       at org.labkey.study.query.StudyQuerySchema.createView(StudyQuerySchema.java:521)
       at org.labkey.api.query.UserSchema.createView(UserSchema.java:432)
       at org.labkey.api.query.QueryForm.createSchema(QueryForm.java:213)
       at org.labkey.api.query.QueryForm.getSchema(QueryForm.java:293)
       at org.labkey.api.query.QueryForm.getQuerySettings(QueryForm.java:237)
       at org.labkey.api.query.QueryForm.getQueryName(QueryForm.java:310)
       at org.labkey.api.query.QueryForm.getQueryDef(QueryForm.java:315)
       at org.labkey.query.controllers.QueryController$SourceQueryAction.getView(QueryController.java:650)
       at org.labkey.query.controllers.QueryController$SourceQueryAction.getView(QueryController.java:638)
       at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:104)
       at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:75)
       at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:177)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:354)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:928)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:806)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:171)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
       at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
       at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:311)
       at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)
       at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)
       at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
       at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.NullPointerException
request attributes
LABKEY.StartTime = 1379953447252
javax.servlet.request.ssl_session = C7274216E8E78CBDCD7DCA69BAEAE56C283A0B1FAA57296421C3058C2EE9F2AD
LABKEY.container = /RPRC/Studies & Labs/12-0004 Peds RSV
LABKEY.action = sourceQuery
LABKEY.RequestURL = /labkey/query/RPRC/Studies%20%26%20Labs/12-0004%20Peds%20RSV/sourceQuery.view?schemaName=study&query.queryName=ParticipantsDatesOfServiceDetails
javax.servlet.request.key_size = 256
LABKEY.OriginalURLHelper = /labkey/query/RPRC/Studies%20%26%20Labs/12-0004%20Peds%20RSV/sourceQuery.view?schemaName=study&query.queryName=ParticipantsDatesOfServiceDetails
LABKEY.controller = query
javax.servlet.request.cipher_suite = DHE-RSA-AES256-SHA
X-LABKEY-CSRF = 25c4aae477fe3c7f871707f400fa33f7
LABKEY.OriginalURL = https://blis.urmc.rochester.edu/labkey/query/RPRC/Studies%20%26%20Labs/12-0004%20Peds%20RSV/sourceQuery.view?schemaName=study&query.queryName=ParticipantsDatesOfServiceDetails
LABKEY.Counter = 0

core schema database configuration
Server URL    jdbc:postgresql://localhost/labkey
Product Name    PostgreSQL
Product Version    8.4.9
Driver Name    PostgreSQL Native Driver
Driver Version    PostgreSQL 9.2 JDBC4 (build 1001)


How can I get to the source of this query so I can debug it and get it working again. I"m thinking that one of the dataset schema's or something has changed that I need to update.

Thanks,

Anthony
feifei bao2015-05-01 11:46Jon (LabKey DevOps)2015-05-04 16:28 Connecting multiple table with Lookup TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

Labkey can join views is a "lookup column". I wander can I connect multiple tables with one common column? In "Edit Design" one column can only set one lookup and also I can not edit SQL source for the tables. So I am not sure whether I can realize this with some other ways.

Best regards,

Feifei
cheryl2015-08-24 08:23Jon (LabKey DevOps)2015-08-24 12:17 2 Assay Run Web Parts in One Folder TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a folder that contains 2 AssayRun Web Parts for two different NAb assay designs.

Is there a way to move one of these to another folder?
alx dobre2015-09-16 07:59Jon (LabKey DevOps)2015-09-17 14:18 Labkey folder tabs are not responsive TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have a page that requires 10 tabs on it. The tabs have a rather long name of about 30 chars each.

It turns out that if the tabs go beyond the page width (1024 PX) then they overflow and the user cannot click them.

To be clear I am talking about the tabs described here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=tabs
Leo Dashevskiy2015-10-27 12:53Jon (LabKey DevOps)2016-02-28 20:13 What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM] TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Thanks.
-Leo
Will Holtz2016-03-02 13:54Jon (LabKey DevOps)2016-03-02 15:45 metadata formatString not honored when number is generated with ifnull() TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a query:
SELECT
    0.111111111111111 AS a,
    ifnull(0.111111111111111, 1) AS b,
    CAST(ifnull(0.111111111111111, 1) AS NUMERIC) AS c;

and metadata for the query:
<?xml version="1.0" encoding="UTF-8"?>

<query xmlns="http://labkey.org/data/xml/query">
    <metadata>
        <tables xmlns="http://labkey.org/data/xml">
            <table tableName="TestFormat" tableDbType="NOT_IN_DB">
                <columns>
                    <column columnName="a">
                        <formatString>##0.####E0</formatString>
                    </column>
                    <column columnName="b">
                        <formatString>##0.####E0</formatString>
                    </column>
                    <column columnName="c">
                        <formatString>##0.####E0</formatString>
                    </column>
                </columns>
            </table>
        </tables>
    </metadata>
</query>

The output I get by viewing the data in the schema browser is:
A B C
111.1111E-3    0.111111111111111    111.1111E-3

I was expecting to get:
A B C
111.1111E-3    111.1111E-3    111.1111E-3

This is using postgres 9.5 with labkey revision 41716. I couldn't find any detailed documentation on ifnull() -- perhaps my expectations are just off. I can easily add a CAST to my query, so I'm no longer impacted by this.

-Will
diego2016-05-04 08:31Jon (LabKey DevOps)2016-05-04 14:29 Importing Datasets (Studies) without Dates TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Had a meeting with the researchers of my group and it turns out that some of the older studies do not have any date or start date fields. CSV files are referenced via a Participant_ID. Is there a way of importing that sort of CSV files and would I be able to join tables solely on Participant_ID? Have attached a diagram.

Thanks in advance!

Diego
liuy302017-06-01 14:27Jon (LabKey DevOps)2017-06-02 14:03 insert/update rows error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to insert rows into a labkey list named DASChemaObject and the schema is in the attachment, which are exactly the same as what I populated here. I kept getting api exception saying that the "org.labkey.remoteapi.CommandException: The existing row was not found." while the list is empty(attachment).

Annotation Logs:

2017-06-01 17:15:58 [OK] Processing file: SDD-2016-36.csv
2017-06-01 17:15:58 The first Row is {a=hasco:DASchemaObject, hasURI=chear-kb:DASO-dehp-1-2016-36, hasco:isPIConfirmed=false, hasco:hasRole=, sio:inRelationTo=chear-kb:DASO-mehp-1-2016-36, hasco:hasEntity=chear:DEHP, hasco:partOfSchema=chear-kb:DAS-SDD-2016-36, sio:Relation=sio:hasPart, hasco:isVirtual=true}
2017-06-01 17:15:59 [ERROR] CommitRows inside AutoAnnotator: org.labkey.remoteapi.CommandException: The existing row was not found.

Please help! Going crazy.
Thanks
marcia hon2018-02-27 08:22Jon (LabKey DevOps)2018-03-09 14:50 WebPart TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I would like to create a WebPart that contains links to queries.

For example:

1. query01
2. query02
3. query03
4. query04
5. query05

Please let me know how to accomplish this.

Thanks,
Marcia
wnels2@uky.edu2007-08-14 05:54Jon (LabKey DevOps)2015-04-28 21:51 RE: Issue #3666, "Sequest pipeline broken," has been updated TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
I’m trying to resolve the bug #3666 and to patch a new server install. To do this I need to move the newly compiled ms2 module to a labkey server that was installed with the installer. I think I had been able to do this before buy just moving the ms2.jar. Now it appears that ms2.module is the file to be moved but this doesn’t work either. I get the error below. I really do need to patch this system so that it will run fractions with sequest. Is that possible?

Thanks,
Bill

A failure occurred during LabKey Server startup.
java.lang.NoSuchMethodError: org.labkey.api.exp.api.ExperimentService$Interface.registerExperimentRunFilter(Lorg/labkey/api/exp/ExperimentRunFilter;)V
       at org.labkey.ms2.MS2Module.startup(MS2Module.java:139)
       at org.labkey.api.module.ModuleLoader.startup(ModuleLoader.java:912)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:866)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:82)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       at java.lang.Thread.run(Unknown Source)
kanchink@mail.nih.gov2008-01-25 05:13Jon (LabKey DevOps)2015-04-28 21:52 XAR format for ver. 2.3 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Have there been any updates to the XAR format in CPAS 2.3?

Thanks!
wnels2@uky.edu2009-06-26 12:04Jon (LabKey DevOps)2015-04-28 21:54 exp.propertyvalidator" does not exist TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I just did an update rebuild on the trunk, then went into the admin console>site settings to set the address of my Mascot server. When I clicked save it threw the exception below:

Thanks,
Bill


500: Unexpected server error

ERROR: relation "exp.propertyvalidator" does not exist
org.postgresql.util.PSQLException: ERROR: relation "exp.propertyvalidator" does not exist
       at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
       at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)
       at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
       at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
       at org.labkey.api.data.ConnectionWrapper$StatementWrapper.executeQuery(ConnectionWrapper.java:984)
       at org.labkey.api.data.Table._executeQuery(Table.java:117)
       at org.labkey.api.data.Table._executeQuery(Table.java:89)
       at org.labkey.api.data.Table.internalExecuteQueryArray(Table.java:323)
       at org.labkey.api.data.Table.executeQuery(Table.java:310)
       at org.labkey.experiment.api.property.DomainPropertyManager._getValidators(DomainPropertyManager.java:80)
       at org.labkey.experiment.api.property.DomainPropertyManager.getValidators(DomainPropertyManager.java:66)
       at org.labkey.experiment.api.property.PropertyServiceImpl.getPropertyValidators(PropertyServiceImpl.java:132)
       at org.labkey.api.exp.OntologyManager.insertProperties(OntologyManager.java:1361)
       at org.labkey.api.exp.OntologyManager.insertProperties(OntologyManager.java:1517)
       at org.labkey.audit.AuditLogImpl.addEventProperties(AuditLogImpl.java:435)
       at org.labkey.audit.AuditLogImpl.addEvent(AuditLogImpl.java:391)
       at org.labkey.api.settings.AbstractWriteableSettingsGroup.writeAuditLogEvent(AbstractWriteableSettingsGroup.java:113)
       at org.labkey.core.admin.AdminController$ShowCustomizeSiteAction.handlePost(AdminController.java:1265)
       at org.labkey.core.admin.AdminController$ShowCustomizeSiteAction.handlePost(AdminController.java:1086)
       at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:91)
       at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:75)
       at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:167)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:336)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:726)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:140)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:124)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:651)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:101)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
       at java.lang.Thread.run(Thread.java:619)
request attributes
LABKEY.StartTime = 1246042657209
LABKEY.container = /
LABKEY.action = showCustomizeSite
LABKEY.RequestURL = /labkey/admin/showCustomizeSite.view?upgradeInProgress=1
LABKEY.controller = admin
LABKEY.OriginalURL = http://californium:8080/labkey/admin/showCustomizeSite.view?upgradeInProgress=1

core schema database configuration
Server URL    jdbc:postgresql://localhost/labkey
Product Name    PostgreSQL
Product Version    8.3.5
Driver Name    PostgreSQL Native Driver
Driver Version    PostgreSQL 8.3 JDBC3 with SSL (build 604)
nicholas.arnold@proteinai.com2010-01-15 13:48Jon (LabKey DevOps)2015-04-28 21:54 FormPanel item ghosted TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm working with the LABKEY.ext.FormPanel which is used to display a form on a report that is using a LABKEY.Query.selectRows object to fill the form values. The form is being rendered to a div and the values are filled in correctly.

The problem I'm having is that the items are coming up "ghosted" making them hard to read as well as unprintable (the purpose of the report is to be printable). An example of my form is:

        var form = new LABKEY.ext.FormPanel({

            selectRowsResults : data,
            border : false,
            items : [{name:'Name', fieldLabel:'Batch Number'},
                {name:'DM'},
                {name:'Batch_size'}]
        });

I've attempted to change the xtype parameter for an item to 'displayfield', however this causes the page to error. I've attached an image of how the form is being displayed to show an example of the incorrect result.

Nick
Ben Bimber2010-04-15 16:15Jon (LabKey DevOps)2015-04-28 21:55 create view to show 'records in past 6 months'? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
is there any mechanism to create a grid filter that accomplishes something like 'date within the past 6 months'? we have a table of birth records and it would be useful of have a view called 'recent births'.

i could write a separate query to do this, but the way a QWP works it would make a lot more sense to users for it to be a view. the toggle query button is rarely practical since it cannot be set to show a subset of queries in that folder.
Ben Bimber2010-06-02 15:56Jon (LabKey DevOps)2015-04-28 21:59 Study Import: possible to set QC state on import from TSV file? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
our study imports nightly from TSV files. these TSV files are generated using a script that dumps the data from a mysql db.

is it possible to create a column in the TSV files that will set the QC state of a record?
Ben Bimber2010-06-08 09:27Jon (LabKey DevOps)2015-04-28 21:59 LABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a page that uses LABKEY.Query.insertRows() to insert a record into a list. I recently noticed that onSuccess was getting called even if that record was not being inserted due to an error (in this case my code spelled a field name wrong). That particular field was required, so the record would fail validation. It's not clear whether that insert failed b/c of this or b/c that field name was not recognized.

In either event, is that what's supposed to happen when the record is not actually inserted? or should onError() get called instead?
Ben Bimber2010-06-23 07:48Jon (LabKey DevOps)2015-04-28 21:59 does a user role exist that allows user to create new project users without being a site admin? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have two projects. One is for the core WNPRC data. There's a new project that was created so one lab could share some data with external collaborators. I'd prefer to give members of that lab full control over that project, including the ability to add new project users, without granting them site admin status. I made their user group a project and folder admin in this new project. They can manage users, but cannot add new users. Is there any way to give them 'add project user' privileges or is that exclusive to site admins? thanks.
Ben Bimber2010-06-23 09:45Jon (LabKey DevOps)2015-04-28 21:59 custom URL strings for a field TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In lists you can define a custom URL for a field. there is a max character length on the URL string. when you have many nested folders, the URL rapidly becomes too long. i tried these two things to workaround it:

1. I tried to make a relative URL (ie. ../otherFolder/list.view...), but this URL failed b/c of a bad format string (i think it expects 'http'). perhaps there is a different way to write relative URLs i'm not aware of.

2. normally i'd write a URL in labkey like: href="<%=contextPath%>/query<%=containerPath%>/executeQuery.view. b/c the full container path gets reduced in size, this gets rids of the URL length problem. however, this fails URL validation (no http) and also gives an invalid character error.

I ended up aliasing the folder in question to reduce URL length. Is there a better solution?

thanks in advance.
Ben Bimber2010-07-06 06:55Jon (LabKey DevOps)2015-04-28 21:59 persistent assay result domain buttons TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have an assay and I would like to customize the buttons that appear in a QWP when loading the result domain of an assay. There's two approaches I know to do this, both of which work on the Run or Batch domains:

1. override metadata for that query

2. define buttons when loading a QWP. ie:

EHR.Assay.results = function(){
    EHR.Assay.showButtonBar(LABKEY.page.assay);
    var wp = new LABKEY.QueryWebPart({
        renderTo:"webPart"
       ,schemaName: "assay"
       ,queryName: LABKEY.page.assay.name+" Data"
       ,frame: 'none'
       ,buttonBar: {
           includeStandardButtons: false,
           items:[
             LABKEY.QueryWebPart.standardButtons.insertNew,
             LABKEY.QueryWebPart.standardButtons.views,
             LABKEY.QueryWebPart.standardButtons.exportRows,
             LABKEY.QueryWebPart.standardButtons.print,
             LABKEY.QueryWebPart.standardButtons.pageSize
           ]
           }
    }).render();
}

The above approach works on everything but assay results. I know this topic has come up once before, but is there any way to get around that? thanks for the help.
Ben Bimber2010-07-20 15:39Jon (LabKey DevOps)2015-04-28 21:59 possible problem with views and embedded QWP? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a dataset called chemistryResults. We have a file-based default view that uses a lookup to join in some extra columns.

you can go directly to that query here and see those columns:
https://xnight.primate.wisc.edu:8443/labkey/study/WNPRC/EHR/dataset.view?datasetId=1056

we have a page that loads a QWP of the same query here:
https://xnight.primate.wisc.edu:8443/labkey/EHR_Reporting/WNPRC/EHR/animalHistory.view?participantId=r89033&report=34&showReport=1

the code behind this does not specify a viewName. however, this embedded QWP loads with a generic default view, not the default view specified by our file. is that a bug or am i doing something wrong? thanks for the help.
Ben Bimber2010-09-13 11:38Jon (LabKey DevOps)2015-04-28 22:00 possibly to bulk edit field URLs? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a study where a bunch of fields have URLs that contain 'EHR_reporting'. That is the previous name of the EHR module. I need to change all these URLs. if i run this query:

SELECT *
  FROM exp.propertydescriptor
  where url like '%reporting%'

i think i'm finding all these fields. If I update the url field on these rows, will I change all the URL metadata? is that stored anywhere else? it is not in any XML files in our module. Are there any undue risks from doing this? Is metadata from different types of tables stored somewhere else?

Every time I ask one of these questions you warn that this isnt how we're supposed to make changes; however, it really seems like a faster and more fool proof (i cant miss anything this way). A different approach would be to try to reload the study with updated XML files; however, this is neither a fast nor error free process either from our experience.

Thanks for the help.
slangley@scharp.org2010-09-14 13:46Jon (LabKey DevOps)2015-04-28 22:00 Can External Schemas be used with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Or do only LabKey internal Schemas work with the LABKEY.ext.Store class?

Thanks.
Ben Bimber2010-10-06 05:56Jon (LabKey DevOps)2015-04-28 22:00 login screen on chrome and safari TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
when you log in to labkey, there's the largely blank screen with textboxes for username and password. on firefox when you hit enter, this will submit the form. on chrome and safari, this does not - you have to actually click the button with the cursor. this is largely just an inconvenience, but it's not the behavior users expect and it is a nuisance. i'm assuming maybe it's b/c labkey buttons are not true html buttons?
Ben Bimber2010-11-15 17:51Jon (LabKey DevOps)2015-04-28 22:00 get assay in parent folder to show up in workbooks TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a folder with an assay. in this folder we added workbooks. ideally, when you create a workbook the assay that is defined in the parent folder would show up as an option in the workbook. however, that's not what is happening. i would assume that if i create this assay at the project level, it would show up? is there any trick to get assays defined in the parent folder (but not project) to show up in workbooks?

assuming the answer to that is no, is there any way move the definition of an existing assay to the folder level? thanks.
Ben Bimber2010-11-22 06:26Jon (LabKey DevOps)2015-04-28 22:00 R script memory error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am trying to run an R script using the pipeline. the script uses an R package to calculate a big matrix (~5000x5000ish) showing the kinship coefficient between every animal in our study. When I run the script, it throws the following error, which seems to be memory related. 248.7 Mb doesnt sound all that big. Does anyone have troubleshooting suggestions? Thanks in advance for the help.



https://xnight.primate.wisc.edu:8443/labkey/pipeline-status/WNPRC/EHR/showFile.view?rowId=132&filename=report.log

Loading required package: rjson
R(13514) malloc: *** mmap(size=260759552) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
R(13514) malloc: *** mmap(size=260759552) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Error: cannot allocate vector of size 248.7 Mb
Execution halted

    at org.labkey.api.reports.report.ExternalScriptEngineReport.runScript(ExternalScriptEngineReport.java:150)
    at org.labkey.api.reports.report.RReportJob.run(RReportJob.java:130)
    at org.labkey.pipeline.mule.PipelineJobRunner.run(PipelineJobRunner.java:31)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.mule.impl.model.resolvers.DynamicEntryPoint.invokeMethod(DynamicEntryPoint.java:312)
    at org.mule.impl.model.resolvers.DynamicEntryPoint.invoke(DynamicEntryPoint.java:259)
    at org.mule.impl.DefaultLifecycleAdapter.intercept(DefaultLifecycleAdapter.java:193)
    at org.mule.impl.InterceptorsInvoker.execute(InterceptorsInvoker.java:47)
    at org.mule.impl.model.DefaultMuleProxy.run(DefaultMuleProxy.java:470)
    at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy.rejectedExecution(ThreadPoolExecutor.java:1895)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:765)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1288)
    at org.mule.impl.work.ScheduleWorkExecutor.doExecute(ScheduleWorkExecutor.java:39)
    at org.mule.impl.work.MuleWorkManager.executeWork(MuleWorkManager.java:277)
    at org.mule.impl.work.MuleWorkManager.scheduleWork(MuleWorkManager.java:244)
    at org.mule.impl.model.seda.SedaComponent.run(SedaComponent.java:483)
    at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:637)
Caused by: javax.script.ScriptException: Loading required package: survival
Ben Bimber2010-12-13 06:59Jon (LabKey DevOps)2015-04-28 22:00 suggestions on most efficient way to move labkey lists into hard tables? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in the EHR we have a number of small lists that serve as lookups for various other tables. moving these into hard tables has seemed to provide a not insignificant performance improvement. two questions:

1. After migrating lists into hard tables, what is the most efficient way to update metadata to reflect these changes. Anything that is coded in files can be modified in intellij (primarily the query metadata xml files). Things like list and dataset definitions are not. Is there a good solution to update the latter? Are there other places I am not considering that might need to be updated to reflect the new lookup targets?

2. Is there an efficient way to study-wide identify any broken lookups? Query validation handles many potential problems, but I do not think it would catch a bad lookup if that field doesnt appear in the SQL (unless i'm mistaken about something).

Thanks for the help.
Ben Bimber2010-12-16 10:33Jon (LabKey DevOps)2015-04-28 22:00 weird behavior from a lookup TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a query where one of the columns is a lookup to a different query. The target of this lookup is called lookups.rooms, where lookups is an external schema. The lookup is defined using this XML:

                    <column columnName="room">
                        <displayWidth>40</displayWidth>
                        <fk>
                          <fkFolderPath>/wnprc/ehr</fkFolderPath>
                          <fkDbSchema>lookups</fkDbSchema>
                          <fkTable>rooms</fkTable>
                          <fkColumnName>room</fkColumnName>
                        </fk>
                    </column>

If I go to the schema browser, this lookup is reported as:

lookups._select.room (room)

note that it uses '_select', instead of 'rooms'. in the schema browser, this lookup appears to resolve correctly (because it shows the expandable plus sign, and it shows the columns present in lookups.rooms). the problem is that the metadata returned by selectRows() reports the lookup target as '_select'. Therefore combo boxes and anything else that tries to resolve that lookup throws an error, because the table lookups._select doesnt exist.

Is there an explanation for why this might be happening? I've tried clearing the cache, but that did not change it. Thanks in advance.
Ben Bimber2011-01-03 12:58Jon (LabKey DevOps)2015-04-28 22:00 Lookups and the SQL labkey generates TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Our study has a lot of lookups defined on the datasets. The majority of these lookups point to simple one-column tables that are used solely to generate a combobox that restricts allowable values for data entry.

My understanding of how labkey works is that whenever you load a dataset, if there is a lookup labkey will auto-join to that table in order to find the display value for that field. Much of the time this make sense since the stored value does not equal the display value. However, in the above situation it doesnt, and it potentially adds a lot of overhead. First, is that assumption about lookups and labkey SQL correct (each lookup always results in a join)? If that is true, can it be avoided?

Thanks.
jdutra2011-05-05 08:26Jon (LabKey DevOps)2015-04-28 22:01 Created and Modified Info in Dataset TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I notice that when I modify a record in a study dataset, the date created and createdby are both overwritten, and end up identical to the modification date and modifiedby. Could I have set something up wrong, or is this supposed to work this way?

TIA,
Jen
Melissa Laurie2011-08-18 15:58Jon (LabKey DevOps)2015-04-28 22:02 Issue Tracker TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is it possible to delete issues in a tracker. I read that as a rule issues are kept and users views filter out the closed issues. I have two issues in my tracker that were pilot issues and I would like these removed so people cannot ever see them. Is this possible?
https://www.tbsystemsbiology.org/issues/TB%20Systems%20Biology%20Intranet/Proposals/details.view?issueId=3
and
https://www.tbsystemsbiology.org/issues/TB%20Systems%20Biology%20Intranet/Proposals/details.view?issueId=2
If using views is the only way to work around this please send me some additional information about how I can keep others from seeing these.

Also, at the administrator level is there a way to ensure that all users emails preferences are set to receive these messages? The assigned to user has not received any emails and I am stumped as to what the problem could be.
Leo Dashevskiy2012-04-27 17:51Jon (LabKey DevOps)2015-04-28 22:03 Projects listing order TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello, I have two labkey machines. Both in "dev" mode, both have a new project created called "Test Flow". So since they're dev machines, both contain on the main Projects dashboard besides the custom project mentioned above also "Home" and "_mothership" ones. When I go to Admin->Site->Admin Console->Project Display Order, there if I was to choose custom order and reorder the projects, there is no effect on the order of the projects listings in either of the 2 machine. If in the same menu I choose "sort projects alphabetically", it does not work for either of the 2 machines: one has order Home, _mothership, Test Flow and the other -- Test Flow, _mothership, Home.
Is that a bug?

Thanks.
Anthony Corbett2013-03-13 12:56Jon (LabKey DevOps)2015-04-28 22:07 General Assays and Non-required Run Data TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have a general assay where there are only 2 data fields:
SpecimenID Titer

The specimenId is also a run property that will be specified by the user when uploading a run (A run is scoped the the specimen). The titer will be calculated from a set of run properties. So in a transformation script I was going to populate the data fields by copying the SpecimenId from the run property and then doing a calculation and populating the Titer field. Therefore, there isn't any Run Data to paste in or a file to upload. Is there a way for General to NOT prompt for Run Data (like a Null DataCollector)?


Thanks,

Anthony
rubiaasharaf92222013-06-24 02:27Jon (LabKey DevOps)2015-04-28 22:08 How to build newly added folder in project? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I would like to display an image using <img> tag in a jsp page.Now the image is in a new folder that i have newly added in project folder.But that folder is not getting build.(that image is not present in build folder).How to get it in build folder after building the project?Please help me to find a solution to it.
Thanks
Will Holtz2015-01-13 10:58Jon (LabKey DevOps)2017-02-13 15:19 java classpath separator - ; vs : TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Twice now I have setup a development machine under OSX by following the directions at: https://www.labkey.org/wiki/home/Documentation/page.view?name=build (Set up a Development Machine). These directions are generally quite good, but I would like to propose a small addition. Can you make a note that the java classpath separator character is ";" under Windows and ":" under unix/OSX?

Thanks!
-Will
feifei bao2015-04-25 14:08Jon (LabKey DevOps)2015-05-07 20:37 how to save the selection in a list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have a question that after selecting some rows(using checkboxes) in a list, how can I use information(for example: disease column) based on the selected rows in another wiki page?

Thank you very much.

Feifei
fb92002015-05-04 10:15Jon (LabKey DevOps)2015-05-05 15:13 Get primary key of inserted row TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

I use the LABKEY.Query.insertRows() function as the example LABKEY shows to insert a record into a list. In the insertion, I want to get the url with the id number(primary key).

I tried this successCallback function:

successCallback: function(data){
                     window.location =
                        '/wiki/home/Study/demo/page.view?name=confirmation&userid='
                        + LABKEY.Security.currentUser.id;
             },

But this id number does not show my list primary number. Could someone help me about this? How to get the primary key number in the insert function?

Thank you very much.

Anny
alx dobre2015-08-26 02:26Jon (LabKey DevOps)2017-04-26 13:41 A way to automatically upload a folder structure zip file TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Besides the UI way to upload a folder structure zip file (Admin -> Folder -> Management -> Import), I am looking for an automatic way to do this via a build script. I can use Maven, shell scripts, JAVA etc...

The documentation seems to only mention the UI:
https://help.labkey.org/wiki/home/Documentation/Archive/14.3/page.view?name=importExportFolder

Is there some web service or API call that I can make to upload a folder structure? Or some place on the Labkey server that I can copy it to be automatically uploaded (similar to custom modules inside /externalModules)?

I noticed there is a /files physical folder structure on the labkey machine where I find imported assays and the unzipped folder structure file if I uploaded it .
laurapas2015-12-17 13:46Jon (LabKey DevOps)2016-01-11 15:25 new targetedms.peptide error? in Panorama TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
I am seeing an error in 15.3 that I don't recall seeing in previous versions. See attachment. I'm not able to view the peptide query. The Skyline file that I'm using has been there for many months and I'm just looking at it again. Is this a new issue?
Jon (LabKey DevOps)2016-02-01 16:13Jon (LabKey DevOps)2016-02-02 21:03 Tomcat/WebDav bug fixed on LabKey 15.3 r42135.48 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
An important bug has been fixed on LabKey 15.3 r42135.48 regarding WebDav and the recent updates to Tomcat, specifically Tomcat 8.0.30+ and Tomcat 7.0.67+

Due to unforeseen changes with Tomcat's handling of WebDav calls, some functions with the FileContent module (Files Web Part) would cause issues with creating new folders, generate Error 400 responses in the background, or even prevent LabKey from starting due to the WebDav controller failing during the initialization.

All WebDav bugs have been identified and fixed, so if you have plans on upgrading Tomcat to one of the two versions listed above, please make sure you download our revised LabKey 15.3 build.

Regards,

Jon - LabKey Support
david beaumont2016-10-20 11:55Jon (LabKey DevOps)2017-02-13 14:44 Removing code chuck from PDF export using KNITR/Rmarkdown/Pandoc TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am using Knitr/Rmarkdown/Pandoc/Miktex to create a PDF report.

My first script includes the markdown report, I then call it via another script and render it for export.
 
When creating the PDF my code doesn't show because I include {r echo=false} at the begging of all my code chunks but it appears the initial labkey code is displaying (see attached). How might I hide this from my export?

David
simon buckner2017-01-19 10:57Jon (LabKey DevOps)2017-01-20 00:02 bootstrap initClassLoaders the double quote character only be used to quote paths TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I downloaded revision 48803 of Labkey on Windows 10 and imported into IntelliJ IDEA 2016.3.3. I am also using Apache Tomcat 8.5.11

By default, the Debug Configuration "LabKey Development" contained the following VM options:

-Dcatalina.base="./" -Dcatalina.home="./" -Djava.io.tmpdir="./temp" -Ddevmode=true -ea -Dsun.io.useCanonCaches=false -Xmx1G

When running, this yielded the error:

org.apache.catalina.startup.Bootstrap.initClassLoaders Class loader creation threw exception
 java.lang.IllegalArgumentException: The double quote ["] character only be used
 to quote paths. It must not appear in a path.

I fixed this by simply removing all the quotes in the VM options. I do not know if they are there intentionally, but I have found this to be a solution to the above error.
gkericks2017-03-06 09:26Jon (LabKey DevOps)2017-03-07 01:15 Visit map access from RLabkey interface TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm use the R scripting functionality for writing reports within a Labkey project. It is simple enough to work with the data that is in a particular dataset but I am hitting a wall when trying to access other data about a study. In particular, I would love to be able to query the visit map for a study. I have found the RLabkey R library that lets a person query study metadata, but have not figured out how to query the visit map (and it is not stated explicitly in the RLabkey documentation). Does anybody know what function should be used and how the parameters should look (or if it is even possible)?
wlt962582017-07-19 10:37Jon (LabKey DevOps)2017-07-20 11:59 Rlabkey package saveBatch command causing fatal error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I am trying to automatically add data from an assay run into a study using an R script connected to the assay. In the script, I am trying to use the labkey.saveBatch command to do this. When the script is executed it stalls at the saveBatch command.


library(Rlabkey)
baseUrl <- "http://localhost:8080/labkey"
folderPath <- "/Demo/Demo_Study"

#gets assay information
${rLabkeySessionId}
rpPath<- "${runInfo}"

rpIn<- read.table(rpPath, col.names=c("name", "val1", "val2", "val3"),
                  header=FALSE, check.names=FALSE,
                  stringsAsFactors=FALSE, sep="\t", quote="", fill=TRUE, na.strings="");
runProps <- rpIn[1,2]
runData <- read.table(rpIn[14,2])

labkey.saveBatch(baseUrl, folderPath, assayName = "HBV_IC50", runData, "", runProps)


The batch properties field is blank because there are none in the assay.
Is there anything that I am doing wrong with this script or anything I should know when using the saveBatch command?

Thank you, William Tavis.
marcia hon2018-03-05 11:08Jon (LabKey DevOps)2018-03-09 15:49 "data_2" error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

How do I fix this error:

View has errors
org.postgresql.util.PSQLException: ERROR: table name "data_2" specified more than once


My script is the following:

    SELECT G1.SeriesName AS SeriesName, G1.Locus AS Locus, COUNT(DISTINCT G1.LabID) AS ConflictingGenotypes
    FROM NRG01_CMH_assay_Genotyping AS G1
        INNER JOIN NRG01_CMH_assay_Genotyping AS G2
                ON G1.ParticipantID = G2.ParticipantID
                   AND G1.Locus = G2.Locus
                   AND (G1.Allele1 <> G2.Allele1 OR G1.Allele2 <> G2.Allele2)
       GROUP BY G1.SeriesName, G1.Locus
Jon (LabKey DevOps)2021-04-02 14:54Jon (LabKey DevOps)2021-04-08 13:50 Maintenance Notice: Migration of artifactory.labkey.com for Monday, April 5th @ 11am PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We will be working to migrating the current artifactory.labkey.com instance to a new server starting on Monday, April 5th at 11am PST.

During this time, all TeamCity jobs will be paused and Artifactory will be unavailable during the migration.

The estimated downtime is approximately one hour.

We apologize for any inconvenience this may cause.
Jon (LabKey DevOps)2021-10-13 15:10Jon (LabKey DevOps)2021-12-21 10:30 Maintenance Notice - Upgrade of labkey.org to LabKey 21.10 for Wednesday, Oct 13th 2021 @ 9pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello everyone,

LabKey.org will be down this evening (Wednesday, Oct 13th) for an upgrade to LabKey 21.10 starting at 9pm PST.

The server will be offline for approximately one hour.

Please save your work before this time.

LabKey Support
slangley@scharp.org2007-10-29 16:53Jon (LabKey DevOps)2015-04-28 21:51 Demo appliation View Grid button doesn't work TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
That is, when I click on the View Grid button on the Portal page of my test install of LabKey after entering several person/age entries, I would assume that the 'View Grid' button on the Portal page would result in the entries being displayed in a grid on that page.

But the button press only causes the identical page to be returned by the server.

This behaves the same way for me on Firefox and IE 6.
jrue@novonordisk.com2007-12-04 10:49Jon (LabKey DevOps)2015-04-28 21:52 Sequest Pipeline Job bug in Solaris TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
There is a bug either in the implementation of bsdtar on Solaris 10 or with its use in the Sequest pipeline job. It has been a long time since I tracked down this error so I can't remember exactly the issue but never the less, if anyone is running the server on the Solaris 10 the Sequest pipeline will not work.

This can be fixed by replacing the wildcard on line 295 of org.labkey.ms2.pipeline.SequestPipelineJob.java with the "this dir" character.

This:
iReturn = runSubProcess(new ProcessBuilder("bsdtar.exe", "czf", fileTgz.getAbsolutePath(), "*"), dirOutputDta);

to this:
iReturn = runSubProcess(new ProcessBuilder("bsdtar.exe", "czf", fileTgz.getAbsolutePath(), "."), dirOutputDta);
pdickerson2008-02-15 14:17Jon (LabKey DevOps)2015-04-28 21:52 Problems installing/starting FTP Server TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have LabKey version 2.3 installed on a Windows machine (Windows Server 2003), and that's working. However, I attempted to add the FTP Server and I can't find enough information to get it running.

I read the information on this page:
https://www.labkey.org/Wiki/home/documentation/page.view?name=configureFtp
I downloaded and unzipped the "Pipeline FTP Integration" ZIP file, and moved the contents to the "Program Files\LabKey Server" folder (at the same level as the "apache-tomcat-5.5-20" and "labkeywebapp" folders).

In LabKey Site Settings, I set the FTP server address to localhost and the port number to 21, and saved the settings. However, I can't find a way to start the FTP server. I tried running the "ftp.bat" file in the bin folder, with the parameters specified in the README file, but this never returned to the command prompt. I also tried running the "service.bat" file to install it as a service, but it wasn't obvious that it succeeded.

Can you please provide more details on how to configure and start the FTP service (and how to tell from within LabKey whether the FTP server is running correctly)?

Thanks.
guruprasadurs@yahoo.co.in2008-04-10 23:42Jon (LabKey DevOps)2015-04-28 21:52 HTTP Status 404 - /labkey/ftp error in Windows OS TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I m able to get labkey server.I have placed ftpserver folder in C:\Program Files\LabKey Server\ftpserver.I made the changes in ftpd.xml which is located in C:\Program Files\LabKey Server\ftpserver\res\conf and i made the change java home in ftpd.sh in C:\Program Files\LabKey Server\ftpserver\bin and after that when i starting a service in command prompt it will saying

C:\Program Files\LabKey Server\ftpserver\bin>service install LabkeyFTP -xml res\conf\ftpd.xml

Installing the service 'LabkeyFTP' ...
Using FTPD_HOME: C:\Program Files\LabKey Server\ftpserver
Using JAVA_HOME: C:\j2sdk1.4.2_05
Using JVM: C:\j2sdk1.4.2_05\jre\bin\server\jvm.dll
start
start;-xml
start;-xml;res\conf\ftpd.xml
start;-xml;res\conf\ftpd.xml
Failed installing 'LabkeyFTP' service
and if i go to http://localhost:8080/labkey/ftp in IE it will giving HTTP Status 404 - /labkey/ftp error

plz let me know what i did mistake here..i have attached ftpd.xml and ftpd.sh
Ben Bimber2010-03-17 07:51Jon (LabKey DevOps)2015-04-28 21:55 embed R view without showing console? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
you can embed an R view using something like:

        var queryConfig = {
            partName: 'Report',
            renderTo: target,
            partConfig: {
                title: rowData.get("ReportTitle") + ": " + subject,
                schemaName: rowData.get("Schema"),
                reportId : rowData.get("Report"),
                'query.queryName': rowData.get("QueryName"),
                'query.Id~in': subject,
                '_select.Id~in': subject
                //showSection: 'histogram'
            },
        new LABKEY.WebPart(queryConfig).render();

Can the config.showSection param be used to do this? How do I figure out what the names of the sections of my report are? Do they match exactly that text in the headers that appear above each section? do i somehow define this in my R script?

thanks.
Ben Bimber2010-10-01 08:25Jon (LabKey DevOps)2015-04-28 22:00 another small feature request TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
study.studydata has a field called dataset. it shows the name of the dataset corresponding to that record. currently it shows the dataset's name, as opposed to it's label. can this be made to show the more user-friendly dataset label instead of dataset name? it's not clear whether this column is actually a lookup or not.

i did not see an obvious way in the GUI to change that. can it be done in xml?

thanks for the help.
arne.mueller@novartis.com2011-02-03 09:13Jon (LabKey DevOps)2015-04-28 22:01 SSL error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear All,

I'm brand new to labkey and this list ... and already ran into problems ;-(

We've a labkey server on-site and I'd like to connect to it using the java api. The problem is that it's an SSL connection, and the certificate seems expired. I can connect with a browser (though I've to accept an exception for the connection), but using the java API I get the following exception:


Exception in thread "main" javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateExpiredException: NotAfter: Thu Apr 22 14:50:15 CEST 2010
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1649)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:235)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1206)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:632)
    at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
    at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:828)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.flushRequestOutputStream(MultiThreadedHttpConnectionManager.java:1565)
    at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2116)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at org.labkey.remoteapi.Connection.executeMethod(Connection.java:271)
    at org.labkey.remoteapi.Command.execute(Command.java:216)
    at com.novartis.pcs.labkey.ConnectionTest.main(ConnectionTest.java:28)
Caused by: java.security.cert.CertificateExpiredException: NotAfter: Thu Apr 22 14:50:15 CEST 2010
    at sun.security.x509.CertificateValidity.valid(CertificateValidity.java:256)
    at sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:570)
    at sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:543)
    at org.apache.commons.httpclient.contrib.ssl.EasyX509TrustManager.checkServerTrusted(EasyX509TrustManager.java:102)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1198)
    ... 20 more

I've setAcceptSelfSignedCerts(true), but it still won't work. Any hints?

    thanks a lot for your help,

   arne
Ben Bimber2011-03-02 11:58Jon (LabKey DevOps)2015-04-28 22:01 can container fitlers be part of a saved view? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in a file-based module you can save XML files that define views. these can include the columns, sort and filters. Can these also include containerFilters? I did not see an obvious way to include them, but could have missed it.

thanks.
Ben Bimber2011-03-04 09:47Jon (LabKey DevOps)2015-04-28 22:01 coax query to show an update column? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a hard table for all 'tasks' in the EHR. the update link of this table will open a specific page designed to edit that task.

we also have a query that takes this hard table and joins it to studydata to find 'Tasks By Participant' (aka all distinct combinations of TaskId/participantId). This table displays 1 row for each of the latter. Each of these queries provides a different way to do the same thing. A user would want to find their task by name/type (the hard table) or find it by participant (the query). In both cases, they want to find a record, click on it, then get taken to the same edit UI.

for continuity, it would be nice if I could coax the query to show an update column. this would make the hard table and query look similar to the end user and similar to everywhere else in labkey. any chance that's possible? i realize I can make one of the columns into a URL, but that doesnt keep consistency.

thanks.
Ben Bimber2011-03-09 08:23Jon (LabKey DevOps)2015-04-28 22:01 can client-side code insert into the mothership schema? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The EHR has complex client-side code. In order to capture errors, most EHR API calls use a standard error callback (EHR.utils.onError). This inserts a row into the table ehr.client_errors. It stores the page, exception, user, etc. Pretty simple idea.

However, there's already something in labkey that does this: the mothership schema. Any chance it's possible to directly insert these records there? As a general rule, I'm trying to have as few EHR-specific things as we can.

Thanks in advance.
Ben Bimber2011-04-19 12:52Jon (LabKey DevOps)2015-04-28 22:01 override assayBegin.view? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
when defining a file-based assay, you can create runs.html, results.html & batches.html files that allow you to override the default assayRuns, assayResult & assayBatches pages.

there is also a view called assayBegin. this is where labkey links the user by default from the assay list page. can this page be overridden?

thanks.
jdutra2011-04-26 09:17Jon (LabKey DevOps)2015-04-28 22:01 Help with running updateRows TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am having some trouble successfully running updateRows. I have this code:

    LABKEY.Query.updateRows({
               schemaName: 'study',
             queryName: 'Vaccination Record',
            rowDataArray: vaccRow,
              successCallback: moveAlong });

where vaccRow contains all the fields/values to be updated, including ParticipantId and SequenceNum, which should be the keys for the dataset. moveAlong just goes on to the next step in the process if the update is successful. This code works fine as an insertRows, where the row doesn't exist yet, but when I run the updateRows I get an error that says: "No lsid, and no KeyManagement". Nothing gets written to the log. This is my first time using updateRows, and I'm sure I'm missing something obvious.

Tia,
Jen
jdutra2011-06-16 09:11Jon (LabKey DevOps)2015-04-28 22:02 Communications failure saving EditorGridPanel TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a DE wiki page with an EditorGridPanel as one part of it. When the user hits submit, one of the things the code does is call _grid.saveChanges(). This is necessary because the users often change a cell and then immediately hit submit, resulting in their change being lost. The saveChanges call prompts an error message to flash on the screen: "Could not save changes because of the following error: communications error." The message immediately disappears, and the changes are saved successfully. What could be causing this?

Thanks,
Jen
Ben Bimber2011-06-22 15:27Jon (LabKey DevOps)2015-04-28 22:02 assay transform scripts and file-based assays TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
assays can have a transform script. when you setup an instance of your assay, you can specify the file path to a transform script file.

assays can be defined in a file based module. the purpose of defining the domains, metadata, etc in files is so it is versioned and is very easy to sync between instances of labkey. if done well, it should require very little or no end-user configuration to get the assay set up and working consistently.

so far as i can tell, transform scripts dont fit well into that. i didnt see a method of specifying a default transform script with your assay definition. I also did not see a way to consistently write the file path to your transform script (ie. relative to the module perhaps?). are both of those true? is there a way to work with transform scripts that makes the setup more automatic?

thanks.
Ben Bimber2011-09-26 06:19Jon (LabKey DevOps)2015-04-28 22:02 examples of using API for custom excel uploads? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i heard that in 11.2 as part of enabling spreadsheet upload to hard tables there was an API for doing this. is there an example anywhere or documentation? sorry if i missed it.

thanks.
Leo Dashevskiy2012-05-21 14:56Jon (LabKey DevOps)2015-04-28 22:03 What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The former is good for retrieving (static) data from Labkey's db, but is not flexible enough (since it's query-based) for real-time on-the-fly data manipulation: filtering and sorting, that's why I would like to utilize the latter for these purposes.

Thanks.
slangley@scharp.org2012-11-26 16:28Jon (LabKey DevOps)2015-04-28 22:06 WebPart JavaScript API TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Would it be possible to provide some JavaScript API functions to:

1. return the array of webparts that appear on the current page?
2. return the webpart that contains a given rendered Ext JS Component?
3. programatically change the title of a given webpart?

Thanks.

Scott
Ben Bimber2013-04-23 11:20Jon (LabKey DevOps)2015-04-28 22:07 expected behavior for OORIndicators and PIVOT? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a table with a column called 'result' and a column called 'resultOORIndicator'. Because of the latter, LK automatically appends the OOR indicator (ie. < or >) to the result when displaying it. In general, when you have a query that SELECTs from this source table, if you also include resultOORIndicator in that select, then LK will preserve the magic behavior. The table in question is an assay results domain, fwiw.

I'd like to make a PIVOT query based on this raw table. The pivot query has a GROUP BY on this table. When I do this, LK no longer automatically append the OOR indicator. I can manually do this in my SQL, but that's a little awkward and doesnt preserve the datatype (need to cast to varchar). Is there any way to preserve OOR indicator behaior when grouping data? Thanks in advance.
Leo Dashevskiy2013-05-20 12:06Jon (LabKey DevOps)2015-04-28 22:07 Cannot sort the results of a query with SELECT * ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hey, guys!

If I use:

SELECT
 Name
FROM
 FCSFiles
WHERE
 FCSFiles.Run.FCSFileCount != 0 AND
 FCSFiles.Run.ProtocolStep = 'Analysis'
ORDER BY
 Name

then the resulting table is sorted by the 'Name' column, but if I use:

SELECT
 *
FROM
 FCSFiles
WHERE
 FCSFiles.Run.FCSFileCount != 0 AND
 FCSFiles.Run.ProtocolStep = 'Analysis'
ORDER BY
 Name

then the result comes back not sorted.

What's going on here?

Thanks.
-Leo
Leo Dashevskiy2013-06-28 14:46Jon (LabKey DevOps)2015-04-28 22:08 A bug or an implicit restriction? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hey, folks!

SVN revision: 27177

I have a custom table:

CREATE TABLE opencyto_preprocessing.projections
(
    Container ENTITYID NOT NULL,
    name TEXT NOT NULL,
    path TEXT NOT NULL,
    x_axis TEXT NOT NULL,
    y_axis TEXT NOT NULL,
    x_key TEXT NOT NULL,
    y_key TEXT NOT NULL,
    gsId INT NOT NULL,

-- CONSTRAINT UQ_table UNIQUE (Container, <cols-list>), -- cols combination to make unique to the project
    CONSTRAINT PK_projections PRIMARY KEY (Container, name, x_axis, y_axis, gsId),
    CONSTRAINT FK_projections_gsTbl FOREIGN KEY (gsId, Container)
        REFERENCES opencyto_preprocessing.gsTbl (gsId, Container)
        ON DELETE CASCADE
);

<ns:table tableName='projections' tableDbType='TABLE'>
        <ns:description>
            The 'projections' table contains the projections information associated with gating sets.
        </ns:description>
        <ns:columns>
            <ns:column columnName='container'/>
            <ns:column columnName='name'/>
            <ns:column columnName='path'/>
            <ns:column columnName='x_axis'>
                <ns:columnTitle>X Marker and Channel Name</ns:columnTitle>
            </ns:column>
            <ns:column columnName='y_axis'>
                <ns:columnTitle>Y Marker and Channel Name</ns:columnTitle>
            </ns:column>
            <ns:column columnName='x_key'>
                <ns:columnTitle>X Channel Name</ns:columnTitle>
            </ns:column>
            <ns:column columnName='y_key'>
                <ns:columnTitle>Y Channel Name</ns:columnTitle>
            </ns:column>
            <ns:column columnName='gsid'/>
        </ns:columns>
    </ns:table>


I am writing (via Rlabkey package from R's data.frame) into some rows for all columns 'normal' text (call these rows 'regular') and for some rows (call them 'irregular') - 'Name' and 'Path' columns get 'normal' text and the other columns get a space ' '.

When I click on 'edit' or 'details' for a 'regular' row I get the pages with respective interfaces.

Whereas if I click for an 'irregular' row:

- on 'edit', then I get just the following message: "Could not find row in current project or folder." (no editable fields and action buttons)

- on 'details', then I get no details/summary table, the the 'Details' header and the 2 buttons on the bottom.

Thanks.
-Leo
reshmyunni17782013-07-16 21:55Jon (LabKey DevOps)2015-04-28 22:08 Problem in start ActiveMQ server. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I installed apache-activemq-5.1.0 in Mac.It starts fine without any changes.Can connect the localhost:8161/admin.
Then I made changes as in 'https://www.labkey.org/wiki/home/Documentation/page.view?name=jmsQueue&_docid=wiki%3Afc7255ee-9dfd-102b-9838-d104f9cd7d30'.
Executed command for start the ActiveMQ server.Then I got '[1] 1029' in terminal.
Is there any problem in ActiveMQ server configuration?Any changes need in labkey to implement ActiveMQ?
Please help me.
bront@kcr.uky.edu2013-07-31 11:24Jon (LabKey DevOps)2015-04-28 22:08 Running Debug in IntelliJ TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

Using the "Set up a Development Machine" instructions, IntelliJ now makes and runs the Labkey debug configuration. Tomcat starts and is accessible at http://localhost:8080. Also, PostgreSQL is up and running (according to pgAdmin).

When I navigate, however, to http://localhost:8080/labkey I get a 404.

Any ideas on where I might be going wrong?

Here are the VM settings...

-Dcatalina.base="./"
-Dcatalina.home="./"
-Djava.io.tmpdir="./temp"
-Ddevmode=true -ea
-Dsun.io.useCanonCaches=false -Xmx1G
-XX:MaxPermSize=512M -classpath
"/Library/Tomcat/bin/bootstrap.jar:/Library/Tomcat/bin/tomcat-juli.jar"

Many thanks...
pelzc2016-01-20 15:59Jon (LabKey DevOps)2016-01-22 13:27  List Archive Export Fails when list contains query metadata overide TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a list with XML metadata defined for one column. When I try to do a list archive export, I get an empty archive and a null pointer exception in the labkey log. Here is the XML metadata:

<tables xmlns="http://labkey.org/data/xml">
    <table tableName="OmeroImages" tableDbType="NOT_IN_DB">
        <columns>
              <column columnName="OmeroId">
              </column>
          </columns>
    </table>
</tables>

Here is the logged stack trace:

ERROR ExceptionUtil 2016-01-20 15:46:52,813 ajp-bio-8009-exec-13 : Exception detected and logged to mothership
java.lang.NullPointerException
    at org.labkey.list.model.ListWriter$ListTableInfoWriter.writeColumn(ListWriter.java:366)
    at org.labkey.api.data.TableInfoWriter.writeTable(TableInfoWriter.java:66)
    at org.labkey.list.model.ListWriter$ListTableInfoWriter.writeTable(ListWriter.java:346)
    at org.labkey.list.model.ListWriter.write(ListWriter.java:134)
    at org.labkey.list.controllers.ListController$ExportListArchiveAction.export(ListController.java:1164)
    at org.labkey.list.controllers.ListController$ExportListArchiveAction.export(ListController.java:1143)
    at org.labkey.api.action.ExportAction.getView(ExportAction.java:53)
    at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:80)
    at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:214)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:414)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1218)
    at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1121)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:160)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
ERROR ExceptionUtil 2016-01-20 15:46:52,817 ajp-bio-8009-exec-13 : Unhandled exception: 500: Unexpected server error
java.lang.NullPointerException
    at org.labkey.list.model.ListWriter$ListTableInfoWriter.writeColumn(ListWriter.java:366)
    at org.labkey.api.data.TableInfoWriter.writeTable(TableInfoWriter.java:66)
    at org.labkey.list.model.ListWriter$ListTableInfoWriter.writeTable(ListWriter.java:346)
    at org.labkey.list.model.ListWriter.write(ListWriter.java:134)
    at org.labkey.list.controllers.ListController$ExportListArchiveAction.export(ListController.java:1164)
    at org.labkey.list.controllers.ListController$ExportListArchiveAction.export(ListController.java:1143)
    at org.labkey.api.action.ExportAction.getView(ExportAction.java:53)
    at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:80)
    at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:214)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:414)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1218)
    at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1121)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:160)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
hramos2016-09-15 19:45Jon (LabKey DevOps)2016-09-20 13:50 rlabkey - selectRows - "Flag" field comes back with strange values TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have a sample set with many rows of data and only 1 or two of the flags are set on all of these rows. However, whenever I select the data through rlabkey with the standard selectRows call, all of Flag values are set to something like this:
urn:lsid:fhcrc.org:Sample.9.Homologue:MSSR00001

Is there a reason for this? Is there a way for selectRows to simply return an empty string if the field is actually empty on my labkey server?

Thanks!

Hector
Jason Feingold2016-10-03 11:45Jon (LabKey DevOps)2016-10-04 12:46 Lists with PHI fields that are attachments TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I created a list that has an attachment field where users's can upload files about a patient involved in the study.
I marked the field as both PHI and Protected in the query XML file.
When I export the study and include the list, the TSV file does not have information about the attached file; however, the files (containing PHI) are still exported.

Is there any way to prevent this?
hilariagrieve2016-10-19 06:27Jon (LabKey DevOps)2016-10-24 12:07 ParticipantID is not correctly displayed TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi!
I updated the platform to the 16.2 labkey server. Then, The ParticipantID (CausaId for me) is displayed like "****", I didn't change anything and I don't know why and how to displayes the real IDs.

Can you help me?


Thanks.
Will Holtz2017-02-14 17:28Jon (LabKey DevOps)2017-06-24 21:25 Linked Schemas and Permissions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have two projects on my server:
Main - where all data writing occurs, only authenticated users have access
Display -Guests have reader access

I have a query derived from an assay run table within Main. The query is exposed to Display using a linked schema. When I try to view the data in the linked schema in an unauthenticated session, I get the error: "Table or query not found: MyLinkedSchema." But when an authenticated user accesses the linked schema, from within the Display project, the data shows up. This is on v16.3.

Any ideas what I'm doing wrong? Thanks!

-Will
Matt V2017-02-28 14:24Jon (LabKey DevOps)2017-03-28 11:48 Error - Module has already been set; renderView exception TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am periodically encountering a "500: Unexpected server error - Module has already been set."
There is the following error included in the log:
ERROR WebPartView : renderView() exception in org.labkey.api.view.template.DialogTemplate while responding to /login/home/login.view?
Unfortunately, this error means a restart is necessary to get things up and running again.

Appears to be tied to the renderView() within WebPartView on login...maybe? It seems to happen independently of deployments, sometimes follows maintenance, but the errors aren't reproducible pattern and don't necessarily appear tied to user events. For example, logging in may display a visible error, but this one happened at 2:15am when no logins occurred (according to the audit).

Curious if anyone else has experienced similar and/or has any ideas. I saw this thread: https://www.labkey.org/home/Support/Server%20Forum/announcements-thread.view?rowId=13871, but it didn't lead me anywhere.

Thanks!

---------------------------------------------
The stack trace for the most recent event is:
ERROR ExceptionUtil
java.lang.IllegalStateException: Module has already been set.
    at org.labkey.api.view.BaseWebPartFactory.setModule(BaseWebPartFactory.java:177)
    at org.labkey.api.module.DefaultModule.getWebPartFactories(DefaultModule.java:414)
    at org.labkey.api.view.Portal.initMaps(Portal.java:1129)
    at org.labkey.api.view.Portal.getViewMap(Portal.java:1117)
    at org.labkey.api.view.Portal.getPortalPart(Portal.java:1105)
    at org.labkey.api.module.SimpleFolderType.createWebParts(SimpleFolderType.java:269)
    at org.labkey.api.view.SimpleFolderTab.<init>(SimpleFolderTab.java:98)
    at org.labkey.api.module.SimpleFolderType.createFolderTabs(SimpleFolderType.java:216)
    at org.labkey.api.module.SimpleFolderType.<init>(SimpleFolderType.java:108)
    at org.labkey.api.module.SimpleFolderType.create(SimpleFolderType.java:153)
    at org.labkey.api.module.FolderTypeManager$SimpleFolderTypeCacheHandler$1.load(FolderTypeManager.java:277)
    at org.labkey.api.module.FolderTypeManager$SimpleFolderTypeCacheHandler$1.load(FolderTypeManager.java:267)
    at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:144)
    at org.labkey.api.module.ModuleResourceCache.getResource(ModuleResourceCache.java:66)
    at org.labkey.api.module.ModuleResourceCache.getResources(ModuleResourceCache.java:95)
    at org.labkey.api.module.FolderTypeManager.getSimpleFolderTypes(FolderTypeManager.java:240)
    at org.labkey.api.module.FolderTypeManager.ensureAllFolderTypes(FolderTypeManager.java:128)
    at org.labkey.api.module.FolderTypeManager.getFolderType(FolderTypeManager.java:148)
    at org.labkey.api.data.ContainerManager.getFolderType(ContainerManager.java:473)
    at org.labkey.api.data.Container.getFolderType(Container.java:795)
    at org.labkey.api.data.Container.getActiveModules(Container.java:1010)
    at org.labkey.api.data.Container.getActiveModules(Container.java:910)
    at org.labkey.api.util.PageFlowUtil.getModuleClientContext(PageFlowUtil.java:2538)
    at org.labkey.api.util.PageFlowUtil.jsInitObject(PageFlowUtil.java:1978)
    at org.labkey.api.util.PageFlowUtil.getLabkeyJS(PageFlowUtil.java:1812)
    at org.labkey.api.util.PageFlowUtil.getIncludes(PageFlowUtil.java:1594)
    at org.labkey.api.util.PageFlowUtil.getStandardIncludes(PageFlowUtil.java:1536)
    at org.labkey.api.util.PageFlowUtil.getStandardIncludes(PageFlowUtil.java:1515)
    at org.labkey.jsp.compiled.org.labkey.api.view.template.dialogTemplate_jsp._jspService(dialogTemplate_jsp.java:163)
    at org.labkey.api.view.JspView.renderView(JspView.java:168)
    at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
    at org.labkey.api.view.HttpView.render(HttpView.java:136)
    at org.labkey.api.view.HttpView.render(HttpView.java:121)
    at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:522)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:417)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1281)
    at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1144)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Matt V2017-04-05 15:30Jon (LabKey DevOps)2017-04-27 18:36 Share dependencies between modules TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm currently exploring splitting one large module into several semi-separate ones. As an example, assume this would yield three modules, A, B, and C (there are more in reality).

-B and C depend on A (won't work if A is disabled).
-A ideally has a list of client dependencies common to B and C defined in its module.xml. For example, bootstrap CSS.
-However, A doesn't necessarily have any components rendered in a particular view and may or may not have helper functions in use at any given time.

Is there a way I can get that CSS to be included when components from B and C are rendered without having to define that CSS as a client dependency in each of their module.xml files? (Bigger question would be can I share JS libs or other stuff as well).

Additionally/alternatively, is there a way I could define a list of site-wide includes in a module of my own without having to modify LabKey's source? Kind of like adding to a master page of sorts.

Thanks!
toan nguyen2018-01-05 11:28Jon (LabKey DevOps)2018-01-05 20:17 TPP 5.0 - InteractParser - buffer overflow detected TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

  It appears InteractParser in TPP 5 is not working well.
  InteractParser in TPP 4.3 is working fine.

Thanks
Toan


running: "/usr/local/tpp/bin/InteractParser 'xxxxxxxxxxxxxx_msprefix.pep.xml' 'xxxxxxxxxxxxxx_raw.pep.xml' -L'7'"
 file 1: xxxxxxxxxxxxxxxxxxx_msprefix_raw.pep.xml
SUCCESS: CORRECTED data file /20171221-7339800375367778709.work/xxxxxxxxxxxxxxx_msprefix.mzXML in msms_run_summary tag ...
SUCCESS: CORRECTED data file /20171221-7339800375367778709.work/xxxxxxxxxxxxxxx_msprefix.mzXML in msms_run_summary tag ...
 processed altogether 5147 results
*** buffer overflow detected ***: /usr/local/tpp/bin/InteractParser terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f2e805f47e5]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f2e8069611c]
/lib/x86_64-linux-gnu/libc.so.6(+0x117120)[0x7f2e80694120]
/lib/x86_64-linux-gnu/libc.so.6(+0x116689)[0x7f2e80693689]
/lib/x86_64-linux-gnu/libc.so.6(_IO_default_xsputn+0x80)[0x7f2e805f86b0]
/lib/x86_64-linux-gnu/libc.so.6(_IO_vfprintf+0xc90)[0x7f2e805cae00]
/lib/x86_64-linux-gnu/libc.so.6(__vsprintf_chk+0x84)[0x7f2e80693714]
/lib/x86_64-linux-gnu/libc.so.6(__sprintf_chk+0x7d)[0x7f2e8069366d]
/usr/local/tpp/bin/InteractParser[0x414e4e]
/usr/local/tpp/bin/InteractParser[0x40e1a0]
/usr/local/tpp/bin/InteractParser[0x40abca]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f2e8059d830]
/usr/local/tpp/bin/InteractParser[0x40ca29]
======= Memory map: ========
00400000-0064b000 r-xp 00000000 08:01 393493 /usr/local/tpp/bin/InteractParser
0084b000-00876000 r--p 0024b000 08:01 393493 /usr/local/tpp/bin/InteractParser
00876000-008b5000 rw-p 00276000 08:01 393493 /usr/local/tpp/bin/InteractParser
008b5000-008ba000 rw-p 00000000 00:00 0
010e7000-0254b000 rw-p 00000000 00:00 0 [heap]
7f2e7fac9000-7f2e80488000 r--p 00000000 08:01 141861 /usr/lib/locale/locale-archive
7f2e8057d000-7f2e8073d000 r-xp 00000000 08:01 7054 /lib/x86_64-linux-gnu/libc-2.23.so
7f2e8073d000-7f2e8093d000 ---p 001c0000 08:01 7054 /lib/x86_64-linux-gnu/libc-2.23.so
7f2e8093d000-7f2e80941000 r--p 001c0000 08:01 7054 /lib/x86_64-linux-gnu/libc-2.23.so
7f2e80941000-7f2e80943000 rw-p 001c4000 08:01 7054 /lib/x86_64-linux-gnu/libc-2.23.so
7f2e80943000-7f2e80947000 rw-p 00000000 00:00 0
7f2e80947000-7f2e8095d000 r-xp 00000000 08:01 7092 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f2e8095d000-7f2e80b5c000 ---p 00016000 08:01 7092 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f2e80b5c000-7f2e80b5d000 rw-p 00015000 08:01 7092 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f2e80b5d000-7f2e80c65000 r-xp 00000000 08:01 7124 /lib/x86_64-linux-gnu/libm-2.23.so
7f2e80c65000-7f2e80e64000 ---p 00108000 08:01 7124 /lib/x86_64-linux-gnu/libm-2.23.so
7f2e80e64000-7f2e80e65000 r--p 00107000 08:01 7124 /lib/x86_64-linux-gnu/libm-2.23.so
7f2e80e65000-7f2e80e66000 rw-p 00108000 08:01 7124 /lib/x86_64-linux-gnu/libm-2.23.so
7f2e80e66000-7f2e80fd8000 r-xp 00000000 08:01 134315 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f2e80fd8000-7f2e811d8000 ---p 00172000 08:01 134315 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f2e811d8000-7f2e811e2000 r--p 00172000 08:01 134315 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f2e811e2000-7f2e811e4000 rw-p 0017c000 08:01 134315 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f2e811e4000-7f2e811e8000 rw-p 00000000 00:00 0
7f2e811e8000-7f2e811ef000 r-xp 00000000 08:01 7208 /lib/x86_64-linux-gnu/librt-2.23.so
7f2e811ef000-7f2e813ee000 ---p 00007000 08:01 7208 /lib/x86_64-linux-gnu/librt-2.23.so
7f2e813ee000-7f2e813ef000 r--p 00006000 08:01 7208 /lib/x86_64-linux-gnu/librt-2.23.so
7f2e813ef000-7f2e813f0000 rw-p 00007000 08:01 7208 /lib/x86_64-linux-gnu/librt-2.23.so
7f2e813f0000-7f2e81408000 r-xp 00000000 08:01 7200 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f2e81408000-7f2e81607000 ---p 00018000 08:01 7200 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f2e81607000-7f2e81608000 r--p 00017000 08:01 7200 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f2e81608000-7f2e81609000 rw-p 00018000 08:01 7200 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f2e81609000-7f2e8160d000 rw-p 00000000 00:00 0
7f2e8160d000-7f2e81626000 r-xp 00000000 08:01 7245 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f2e81626000-7f2e81825000 ---p 00019000 08:01 7245 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f2e81825000-7f2e81826000 r--p 00018000 08:01 7245 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f2e81826000-7f2e81827000 rw-p 00019000 08:01 7245 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f2e81827000-7f2e8184d000 r-xp 00000000 08:01 7026 /lib/x86_64-linux-gnu/ld-2.23.so
7f2e81937000-7f2e81a33000 rw-p 00000000 00:00 0
7f2e81a42000-7f2e81a43000 rw-p 00000000 00:00 0
7f2e81a43000-7f2e81a4a000 r--s 00000000 08:01 267771 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f2e81a4a000-7f2e81a4c000 rw-p 00000000 00:00 0
7f2e81a4c000-7f2e81a4d000 r--p 00025000 08:01 7026 /lib/x86_64-linux-gnu/ld-2.23.so
7f2e81a4d000-7f2e81a4e000 rw-p 00026000 08:01 7026 /lib/x86_64-linux-gnu/ld-2.23.so
7f2e81a4e000-7f2e81a4f000 rw-p 00000000 00:00 0
7ffc78071000-7ffc78092000 rw-p 00000000 00:00 0 [stack]
7ffc78160000-7ffc78162000 r--p 00000000 00:00 0 [vvar]
7ffc78162000-7ffc78164000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Aborted (core dumped)
tlynch@primate.wisc.edu2010-02-03 07:06Jon (LabKey DevOps)2015-04-28 21:55 The installFlowMacOSX example needs editing TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The MacFlow example postgresql section contains inconsistent logfile locations.

the instructions suggest createing a logs folder but later suggests:

Start the Postgres server
<YourServerName>:pgsql postgres$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l
 /usr/local/pgsql/data/postgres.log start

A few lines down the instructions revert to:

Stop the server

<YourServerName>:pgsql postgres$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l
   /usr/local/pgsql/logs/logfile stop

and to start it again:

<YourServerName>:pgsql postgres$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l
 /usr/local/pgsql/data/logs/logfile start
Trey2010-02-16 16:43Jon (LabKey DevOps)2015-04-28 21:55 9.3 archived on TeamCity TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have archived the 'labkey branch 9_3' project to clean up TeamCity a bit.
This merely removes it from the main page and pauses all of its build configurations. These configurations, including results and build artifacts, will be retained.

For anybody who wishes to view old results or run tests on labkey 9.3; it is still available in the 'Projects' drop-down on the TeamCity overview page.

Note: BVTs will not start automatically after an SVN checkin for this branch. You will have to start all 9.3 builds manually (don't forget the Daily suite).

Thanks,
Trey
Ben Bimber2010-06-02 15:50Jon (LabKey DevOps)2015-04-28 21:59 Automatic cohort assignment not working? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In our study, i have set up automatic cohort assignment, based on a field in one of our datasets. setting this up seems very straightforward.

after setting this up, I hit 'update assignments' and the correct cohorts were created. however, no animals were assigned to any cohort. am i missing something or is this a bug?

see here:
https://xnight.primate.wisc.edu:8443/labkey/cohort/WNPRC/EHR/manageCohorts.view?

thanks for the help.
Ben Bimber2010-07-11 17:43Jon (LabKey DevOps)2015-04-28 21:59 possible to make second upload page for an assay? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a file-based assay that includes a custom upload.html page. This HTML page is configured for the normal import pathway that most users will see. However, I need to import a lot of legacy data. I wrote a second upload page with code to take this data as one big excel file, then pivot it into one big batch with a series of runs grouped using subjectId (aka one run per subject).

I developed this second HTML page by replacing our normal upload.html page. while this new page is probably a one-time use, it wouldnt hurt to keep it around and to have it somewhere I could access via the web. Is there anywhere in the module where I can put this file such that the normal upload.html page is preserved, yet I would still be able to link directly to this new page should I ever need to?

I moved the custom upload.html file to the views directory of the module. However, when I load this page I get the error 'LABKEY.page is undefined' - which I assume happens b/c this view isnt being loaded by the assay code and does not have the assay-specific objects. I could probably use the API to get the same information, but I thought I'd ask if there's anything quicker first.

Thanks for the help.
Ben Bimber2010-10-15 10:42Jon (LabKey DevOps)2015-04-28 22:00 problem with QWP removable filters TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
a week or two ago josh added a QWP config option called removableFilters. This is an array of filters you can provide in your JS code that are able to be removed by the user. Using this param causes the names of the filters to become visible with a 'clear all' link; however, 'clear all' doesnt actually do anything. see attached screenshot.
Ben Bimber2010-11-17 07:54Jon (LabKey DevOps)2015-04-28 22:00 how to add blank 'notes' column to a query? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
our vets print the results of queries on paper, then take these with them as they do rounds. Each row of the query contains an abnormal observation that was observed that day. They want this printout to contain a few inches of white space on the right. The legacy system gives them a table with an empty column called 'notes', where they write notes.

I would like to try to fake this in labkey. One option is to wrap a column on studydata and create a lookup to a query along the lines of:

SELECT
s.lsid,
null AS note
FROM study.studydata s

Then join this notes column into the dataset. It's an awkward way to accomplish that, but it would allow the user to add a blank column into any dataset, then print.

Is there a more direct route to accomplish this sort of thing? Thanks for the help.
Ben Bimber2011-05-04 13:48Jon (LabKey DevOps)2015-04-28 22:01 places where labkey hard codes filepaths in database? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we're about to migrate to a new server. the labkey file root is going to be copied, but the path to this location will be different. it appears labkey hard codes the paths to certain files in the db.

for example:

pipeline.statusfiles
exp.datas
maybe more

In theory I could create a sym link on the new server that replicates the old fileroot. the old filepaths would still work. I could also try to do a very careful find/replace directly in postgres on those 2 offending columns. i'd replace the old file root with the new one.

does anyone have experience with this? Are there any tables i missed besides those 2?

thanks for any help or advice.
Ben Bimber2011-09-27 11:54Jon (LabKey DevOps)2015-04-28 22:02 working with dataset audit trails when your lsid can change? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
the PK of datasets is the lsid. that's a combination of id/date and possibly a third key if specified. the audit trail stores this value. the data stored in the audit trail itself is actually pretty nice.

however, if you change the date of a record, or ID for that matter, you LSID changes and I dont see a clean way to find the complete history of this record. is there something i'm overlooking? i'm guessing the audit trail hasnt actually been thoroughly used by a lot of clients, but this seems like a big usability problem. i get that auditing is tough if your PK changes, but lsid is a PK that is inherently prone to change.

in our scenario, we have a second keyfield, a GUID, that's part of lsid. therefore you can search the audit trail using logic like 'find rows where lsid like '%'||objectid||'%', but this query is not very efficient.

is there something better i'm missing?

thanks in advance.
michael_stover@urmc.rochester.edu2012-03-08 11:43Jon (LabKey DevOps)2015-04-28 22:03 Rlabkey "Moved Temporarily" troubles TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are using Rlabkey to get data from the server, using the Export -> Scripts function. We have two statisticians doing this. It works for one, doesn't for the other. As far as I can tell, they have the same code on their machines - R version 2.14, Java 6 update 31. Copy and paste the export script, and on one machine, it works, on the other we get a 401 "Moved Temporarily" problem, which is often caused by http client code that is not following redirects.

Any ideas what the difference is between these two machines and how we can fix it?
Leo Dashevskiy2012-12-19 16:13Jon (LabKey DevOps)2015-04-28 22:07 R report web part error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is such an error exclusive to R errors only:

<font class="labkey-error">Error executing command</font> ?

It's the red text that shows up, when an R script errors out...

Thanks.
Anthony Corbett2013-01-21 06:59Jon (LabKey DevOps)2015-04-28 22:07 Creating an Ancillary study with assay data in parent study TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I was trying to create an ancillary study from an larger study. This original study had some datasets which were assay data that was copied to the study. I selected a participant group for the participants I wanted to use in the ancillary study, then I choose ALL datasets (including the assay datasets) and I received errors like the following while it was trying to create the new study:


1 -
An error occurred trying to create the study: Error importing study objects : org.springframework.validation.BeanPropertyBindingResult: 1 errors Error in object 'form': codes [importDatasetSchemas.form,importDatasetSchemas]; arguments []; default message [Field name cannot end with the suffix 'mvIndicator': cd62lp_mvindicator]

2 -
An error occurred trying to create the study: Error importing study objects : org.springframework.validation.BeanPropertyBindingResult: 1 errors Error in object 'form': codes [importDatasetSchemas.form,importDatasetSchemas]; arguments []; default message [Field name cannot end with the suffix 'mvIndicator': h1_ha_mvindicator]


These errors are pointing to datasets which were assay data copied to the study. I do not have control over the design (field names, enabling MVIndicators) for these assay datasets.

I had to end up leaving out these assay datasets in order to get the ancillary study to be created.

Any advice?
Anthony Corbett2013-04-22 12:09Jon (LabKey DevOps)2015-04-28 22:07 Specimen Repository Alias GlobalUniqueID TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In a current use case I have to need to alias the current GlobalUniqueId column in the Specimen Repository. In this case a shared resource lab is taking in specimens with a Customer ID and internally using their own Internal ID. When results and data are returned to the Customer there is a need to map back to the CustomerID in the copy to study assay results dataset grid view.

In 13.1 I saw the addition of alias for ParticipantIds and didn't know if there were plans to do the same for Specimen GloablUniqueIds?

Ideally, there would be a second column "GlobalUniqueIDAlias" available in any grid where SpecimenID is a look up and this column could be brought into the grid view. Places where this would be helpful are the assay results grid and the assay dataset when copied to study.

So in the short term I'm wondering if I can use a different field in the Specimen Repository as a convention for the CustomerID and which one would be the best choice in terms of being able to customize grid views to bring in this column. I tried the 'type_type' column but this column is not available as a column in the customize view for the assay results or assay study datasets. I also tried the 'class_id' column but this is restricted to 4 characters in length.

Any suggestions?

Thanks,

Anthony
Anthony Corbett2013-06-05 07:34Jon (LabKey DevOps)2015-04-28 22:08 Labkey SVN public user/pass not working TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
https://www.labkey.org/wiki/home/Documentation/page.view?name=svn

The info for accessing the SVN repo is not working. Auth fails with the given user/password
cheryl@scharp.org2013-08-07 12:48Jon (LabKey DevOps)2015-04-28 22:08 Changing page on editorgridpanel TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have an editorgridpanel where it has multiple pages.
If I know a record id number, is there a way to move to the page that record is on and select it?
I don’t want to filter the grid.
jdutra2013-11-21 11:07Jon (LabKey DevOps)2015-04-28 22:08 Specimen Request Management TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to set up a workflow for making specimen requests that requires approval from the study PI. I'm having some trouble getting the permissions the way I want them, and maybe it isn't possible.

First, I have marked a few people as specimen coordinators, because this gives them the permissions to move the request through each stage to a final resolution. However, this also gives them permission to change the requirements, actors, notifications, etc, and I really don't want them to be able to do this - I only want them to be able to work with existing requests. Is there any way around this?

Second, I set up a general requirement for actor "Reviewer". Obviously I defined an actor called "Reviewer", and I made the study PI the only member of the "Reviewer" group. It appears that any specimen coordinator can complete the requirement, even though they are not part of the "Reviewer" group. In addition, any specimen coordinator can move this request to a final state, even if the requirement has not been completed.

I guess I'm a little confused about the purpose of a requirement, if it doesn't actually have to be completed, and if it is completed, it doesn't need to be done by the specified actor. Have I set something up wrong? Or is this really not a process at all, but just supposed to be a guideline for people to follow?

Thanks for any suggestions,
Jen
(using 13.2)
fb92002015-05-05 11:10Jon (LabKey DevOps)2015-05-12 13:30 Customize query problem TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I want to know can I have some way to render a boolean column to checkbox in query? I know the build-in tables have the checkbox column, but I want to realize it in query.

Thank you very much.

Anny
rsautera2015-05-18 16:07Jon (LabKey DevOps)2015-05-20 15:00 Creating ParticipantGroups using the JS API TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
I am trying to create participant groups programmatically. The use case is to automatically create participants groups for demographics after importing data (via an ETL) into a new study.

I was looking at the JavaScript API but it looks like there is a single function to update existing groups. Am I reading this correctly and all groups have to be created through the UI?

Even with the update, how can I get a list of the rowId of existing participant groups? I looked for them in the study schema (the subject table view can be customized to show participant groups) but I could not display the Id. I tried a few random Ids just to test the API but could not get a natch: "Could not find participant group with rowId 1"

Here is the doc I used:
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ParticipantGroup.html#constructor
and
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/src/api_webapp_clientapi_core_ParticipantGroup.js.html
pelzc2017-03-08 17:08Jon (LabKey DevOps)2017-03-14 21:10 Rlabkey 2.1.133 failing on dates prior to 1970 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm using labkey.selectRows() to read a Dataset into R.
Dates prior to 1970 are showing up in R as <NA>.
Note that dates prior to 1970 are represented as negative numbers in R.
I am having this problem with R version 3.3.2 (2016-10-31) / Rlabkey 2.1.133 (2017-01-12).
I do NOT have this problem with R version 3.3.1 (2016-06-21) / Rlabkey 2.1.131 (2016-09-07).
So I believe that this is a new problem with the latest version of Rlabkey (however, I've not tried other combinations of R and Rlabkey).
This is with LabKey 16.20.
atul sharma2017-09-13 03:45Jon (LabKey DevOps)2017-09-21 15:51 Shell Script running from wiki Page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi All,

I have a shell script. Is there any way to execute that script from a button click on wiki page?

What actually that script will do?

Fetch data from database and modify that as per the need and insert back to the database.

Please help.

Regards:
Atul
simon buckner2017-10-10 13:55Jon (LabKey DevOps)2017-10-12 13:47 Labkey assay unable to find transformation script upon data upload TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am using Python for my transform script. When assigning it to our assay under the Assay Properties screen, Labkey finds the file and saves successfully. However, when data is imported into the assay, the following error is thrown:

"An error occurred when running the script 'fullTransformer.py', exit code: 2). /opt/rh/python27/root/usr/bin/python: can't open file '“fullTransformer.py”': [Errno 2] No such file or directory"

I'm not sure whether this is a Labkey issue, or an issue with Python, Tomcat, or any file/folder permissions. Is there a known reason why Labkey might be able to find a script when setting assay properties, but not when it runs it?

Thanks,

Simon
marcia hon2018-05-30 05:52Jon (LabKey DevOps)2018-06-22 20:42 How to make custom tables' rows editable TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I created a module that consists of tables with the following definitions:

CREATE TABLE nrg01cmh_samples.Samples_Template (
    SeriesID VARCHAR(50),
    CollaboratorID VARCHAR(50),
    Sex VARCHAR(1),
    DateSampleDrawn DATE,
    DateSampleReceived DATE
);
---
   <ns:table tableName="Samples_Template" tableDbType="TABLE">
    <ns:columns>
      <ns:column columnName="SeriesID" />
      <ns:column columnName="CollaboratorID"/>
      <ns:column columnName="Sex"/>
      <ns:column columnName="DateSampleDrawn"/>
      <ns:column columnName="DateSampleReceived"/>
    </ns:columns>
   </ns:table>

However, when I access these tables in Labkey, I am not able to edit the rows as there is not "Edit" link.

The ability to edit these values is very important to our project.

Please let me know how to correct this issue.

Thanks,
Marcia
qing chang2020-10-06 07:19Jon (LabKey DevOps)2020-11-02 15:34 list table quadruples when upgrading labkey from v17 to v19.1 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have recently upgraded one of our labkey servers from v17 to v20.7. We had to first upgrade to v19.1 before going to 20.7. We use postgresql 9.6 as backend.

We noticed there was a big jump in storage usage after upgraded to 19.1. A closer look revealed that ALL list type tables have quadrupled in storage usage without any changes in contents. One of the table was 10G, it became 40G after upgrade.
-------
 list.c185d2069_modc_test | 10 GB
 list.c185d2069_modc_test | 40 GB
-------

The row count is 50 mil before and after upgrade. The first 10 rows are identical. I have no reason to believe there is any difference in other rows.

Can someone shed some light on this?

Thanks in advance.

Qing Chang
Jon (LabKey DevOps)2022-01-13 12:32Jon (LabKey DevOps)2022-01-13 12:32 Maintenance Notice - Upgrade of labkey.org to LabKey 22.1 for Thursday, January 13th 2022 @ 7pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 7pm PST for an upgrade to LabKey 22.1

The site will be offline for approximately one hour.

Please save your work before this time.
wnels2@uky.edu2009-12-21 09:02Jon (LabKey DevOps)2015-04-28 21:54 IntelliJ 9 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When will LabKey be moving to IntelliJ 9. It appeared that the open source development license is changing. Will the new open source version support the LabKey build or do we have to buy it now?
Thanks,
Bill
wnels2@uky.edu2010-01-13 10:31Jon (LabKey DevOps)2015-04-28 21:54 fasta root changed? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just updated from trunk. My fasta path was changed from <project root>\databases to <project root>\@files. It also created the <project root>\@files directory. It won't let me save the correct path; keeps going back to <project root>\@files. Also, when trying to modify the fasta root it is case sensitive on windows; after correcting the case it will proceed but doesn't really save it.

Thanks,
Bill
Ben Bimber2010-07-09 11:42Jon (LabKey DevOps)2015-04-28 21:59 is the LABKEY.ext.formPanel example right? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in the documentation example for LABKEY.ext.formPanel it shows adding a submit button like this:

        var form = new LABKEY.ext.FormPanel(
        {
            selectRowsResults:data,
            addAllFields:true,
            buttons:["submit"]
            //items:[{name:'myField', fieldLabel:'My Field', helpPopup:{title:'help', html:'read the manual'}}]
        });
        form.render('formDiv');

This makes a form, but doesnt actually make a submit button (it just makes text). I dont see anything in the code that would cause the string 'submit' to make a button. In the other uses of .ext.formPanel in labkey (and ext doc), buttons are added more like:
buttons:[{text:'Submit', handler:SubmitButton_onClick}],

That's what i would have expected - and that does work. Is there something I'm not seeing?
Ben Bimber2010-08-31 08:10Jon (LabKey DevOps)2015-04-28 21:59 problem with web folder after moving file-based module? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
After discussing with Josh and others, I merged the folders of customModules/EHR_reporting (a file based module) into customModules/ehr/, which contains a java module. None of the folders overlapped, so this basically involved moving the views, queries, reports and web folders.

After doing this, queries and reports are working fine.

The problem is that I am not able to access HTML views or JS files. The old address for a page is something like:
http://localhost:8080/labkey/EHR_Reporting/WNPRC/EHR/animalHistory.view?

i modified it to:
http://localhost:8080/labkey/ehr/WNPRC/EHR/animalHistory.view?

to reflect the new location. however, i keep getting a "404: page not found" error. this should be all that's required, right? is there some odd thing going on b/c EHR is java-based?

I did notice that in the following location was created on my HD, which is empty:
<labkey root>\build\deploy\modules\ehr\web

could the java module be creating this empty location, which is overriding the file-based module files?

thanks for the help.
Ben Bimber2010-10-25 09:15Jon (LabKey DevOps)2015-04-28 22:00 some event reset the site email on my development server TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i just noticed this morning that the site email on my development machine was a hutch email. the only thing I can imagine that would change this is one of the labkey updates (i regularly check out from the trunk). i'm assuming this is not something you want to be doing. it's possible something else I did changed that email, but i cant really think what that would be...
Ben Bimber2010-11-09 06:59Jon (LabKey DevOps)2015-04-28 22:00 hosted labkey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Assume some lab decides to use hosted labkey, and they receive a folder on your site. The add various data and files. Then assume their institution decides to install labkey and they want to migrate this folder from labkey, back to their local server. Is there any sort of path to do that?

I ask b/c I wonder if that isnt a worthwhile selling point. While your hosting is free, any PI should rightly ask the question: what happens to my data should something ever happen to labkey?
Ben Bimber2010-12-16 16:46Jon (LabKey DevOps)2015-04-28 22:00 difference between readOnly and userEditable? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LABKEY.Query.FieldMetaData includes both "userEditable" and "readOnly". What is the intended difference between the two? Is there a specific scenario where these dont match? Thanks.
Ben Bimber2010-12-17 05:27Jon (LabKey DevOps)2015-04-28 22:00 activeMQ and labkey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a production server running activeMQ. we have a client machine that executes certain pipeline jobs. that client is

i tried to start a pipeline job in labkey, and the job had a status of 'waiting' for a long time. after a day, i restarted the pipeline java process on the client machine, and immediately this pipeline job started.

In the log of the client machine, I see this:


INFO 2010-12-14 14:01:30,888 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopping: ActiveMqJmsConnector{this=140b8fd, started=true, initialised=true, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:01:30,890 [UMOManager.1] org.mule.providers.jms.JmsMessageDispatcher: Disconnected: JmsMessageDispatcher{this=20dcb7, endpoint=jms://status.queue}
INFO 2010-12-14 14:01:30,891 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopped: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:01:30,892 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Disconnected: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:01:30,892 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopped: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:01:30,896 [UMOManager.5] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Connected: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:01:30,992 [UMOManager.6] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Starting: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
ERROR 2010-12-14 14:01:45,993 [UMOManager.6] org.mule.providers.SimpleRetryConnectionStrategy: Failed to connect/reconnect: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}. Root Exception was: Failed to start Jms Connection. Type: class org.mule.umo.lifecycle.LifecycleException
org.mule.umo.lifecycle.LifecycleException: Failed to start Jms Connection
    at org.mule.providers.jms.JmsConnector.doStart(JmsConnector.java:504)
    at org.mule.providers.AbstractConnector.startConnector(AbstractConnector.java:367)
    at org.mule.providers.AbstractConnector.connect(AbstractConnector.java:1186)
    at org.mule.providers.SimpleRetryConnectionStrategy.doConnect(SimpleRetryConnectionStrategy.java:76)
    at org.mule.providers.AbstractConnectionStrategy$1.run(AbstractConnectionStrategy.java:57)
    at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:619)
INFO 2010-12-14 14:01:45,993 [UMOManager.6] org.mule.providers.SimpleRetryConnectionStrategy: Waiting for 5000ms before reconnecting. Failed attempt 1 of unlimited
INFO 2010-12-14 14:11:00,817 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopping: ActiveMqJmsConnector{this=fb6763, started=true, initialised=true, name='jmsConnectorTask', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:11:16,060 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopped: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:11:16,060 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Disconnected: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:11:16,060 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopped: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:11:16,064 [UMOManager.7] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Connected: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:11:16,161 [UMOManager.8] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Starting: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:11:20,713 [UMOManager.8] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Started: ActiveMqJmsConnector{this=140b8fd, started=true, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:22:55,355 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopping: ActiveMqJmsConnector{this=140b8fd, started=true, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:22:55,356 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopped: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
ERROR 2010-12-14 14:22:55,356 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Failed to disconnect: Initialisation Failure: The transport is not running.
org.mule.providers.ConnectException: Initialisation Failure: The transport is not running.
    at org.mule.providers.jms.activemq.ActiveMqJmsConnector.doDisconnect(ActiveMqJmsConnector.java:99)
    at org.mule.providers.AbstractConnector.disconnect(AbstractConnector.java:1215)
    at org.mule.providers.AbstractConnector.stopConnector(AbstractConnector.java:437)
    at org.mule.providers.jms.JmsConnector$1.onException(JmsConnector.java:285)
    at org.apache.activemq.ActiveMQConnection$4.run(ActiveMQConnection.java:1524)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:619)
Caused by: javax.jms.JMSException: The transport is not running.
    at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:58)
    at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1213)
    at org.apache.activemq.ActiveMQConnection.close(ActiveMQConnection.java:579)
    at org.mule.providers.jms.activemq.ActiveMqJmsConnector.doDisconnect(ActiveMqJmsConnector.java:94)
    ... 7 more
Caused by: java.io.IOException: The transport is not running.
    at org.apache.activemq.transport.TransportSupport.checkStarted(TransportSupport.java:103)
    at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:117)
    at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:141)
    at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:80)
    at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:93)
    at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:47)
    at org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:69)
    at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:79)
    at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1203)
    ... 9 more
INFO 2010-12-14 14:22:55,357 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopped: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:22:55,362 [UMOManager.9] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Connected: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:22:55,457 [UMOManager.10] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Starting: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:23:01,062 [UMOManager.10] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Started: ActiveMqJmsConnector{this=140b8fd, started=true, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:26:57,737 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopping: ActiveMqJmsConnector{this=140b8fd, started=true, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:26:57,738 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopped: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:26:57,738 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Disconnected: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:26:57,738 [AcitveMQ Connection Worker: tcp://xnight.primate.wisc.edu/192.168.1.15:61616] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Stopped: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:26:57,740 [UMOManager.11] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Connected: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[jms], serviceOverrides=null}
INFO 2010-12-14 14:26:57,839 [UMOManager.12] org.mule.providers.jms.activemq.ActiveMqJmsConnector: Starting: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}
ERROR 2010-12-14 14:27:12,839 [UMOManager.12] org.mule.providers.SimpleRetryConnectionStrategy: Failed to connect/reconnect: ActiveMqJmsConnector{this=140b8fd, started=false, initialised=false, name='jmsConnectorStatus', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=true, supportedProtocols=[jms], serviceOverrides=null}. Root Exception was: Failed to start Jms Connection. Type: class org.mule.umo.lifecycle.LifecycleException
org.mule.umo.lifecycle.LifecycleException: Failed to start Jms Connection
    at org.mule.providers.jms.JmsConnector.doStart(JmsConnector.java:504)
    at org.mule.providers.AbstractConnector.startConnector(AbstractConnector.java:367)
    at org.mule.providers.AbstractConnector.connect(AbstractConnector.java:1186)
    at org.mule.providers.SimpleRetryConnectionStrategy.doConnect(SimpleRetryConnectionStrategy.java:76)
    at org.mule.providers.AbstractConnectionStrategy$1.run(AbstractConnectionStrategy.java:57)
    at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:619)
INFO 2010-12-14 14:27:12,840 [UMOManager.12] org.mule.providers.SimpleRetryConnectionStrategy: Waiting for 5000ms before reconnecting. Failed attempt 1 of unlimited



That block represents the entries on 12-14. After this last one it stopped retrying. On 12-12 the log shows a successful pipeline job (plus many unsuccessful, but that wasnt activeMQ's fault) and on 12-17 I restarted the java process on the client and it successfully started the job. There's no entries between 12-14 and 12-17.

The logs seems to suggest the activeMQ connector is shutting down? Is that just part of trying to reconnect? Does this log suggest anything else I should be testing?

For what it's worth, the client machine runs monit, which periodically checks to see if the java process is running (it was) and it also tests port 61616 on xnight. Neither of these threw errors during this time period. Thanks for any help.
Ben Bimber2010-12-20 07:34Jon (LabKey DevOps)2015-04-28 22:00 JS API to get baseURL? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a javascript API, like the other ActionURL APIs to get the current baseURL? While this generally isnt necessary for navigating around the site, there's a case where I want to hand off information to an external script. For this, finding baseURL is needed. It's analogous to what context provided to R.

If something does not already exist, I would suggest this small addition to LABKEY.ActionURL:

        /**
         * Get the current base URL, which includes context path
         * for example: http://labkey.org/labkey/
         * @return {String} Current base URL.
         */
        getBaseUrl : function()
        {
            return window.location.protocol + '//' + window.location.host + LABKEY.ActionURL.getContextPath() + '/';
        },

If not exactly this, something along these lines would probably be useful.
slangley@scharp.org2010-12-20 18:14Jon (LabKey DevOps)2015-04-28 22:00 Differences between LabKey ComboBox Implementations TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I've wanting to use a ComboBox with the possible values populated from a LabKey.ext.Store. Why would I want to use one of these implemenations over the other?

1. LABKEY.ext.ComboBox defined in ./server/api/webapp/clientapi/FormPanel.js

2. EHR.ext.customFields.LabKeyCombo defined in ./server/customModules/ehr/webapp/ehr/utilities.js

Both of these implementations extend Ext.form.ComboBox. EHR.ext.customFields.LabKeyCombo seems to be quite new so one would think it's more up-to-date.

Thanks.

Scott Langley
Ben Bimber2011-02-25 05:04Jon (LabKey DevOps)2015-04-28 22:01 assays and .query.xml files TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in 11.1 we're going to be able to create .query.xml files tied to a specific assay definition. in a simple module they live in:

/assays/{assay name}/query/

they are named Data.query.xml, Runs.query.xml and Batch.query.xml. In the query folder, can I also create views, and other files that would normally live in the top-level query folder of that module? Being able to tie these files to a specific assay definition is quite nice, so I'l prefer to put all the files here that I can.

Thanks.
Ben Bimber2011-04-28 08:16Jon (LabKey DevOps)2015-04-28 22:01 dependencies in file based module config TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
the config file for a file based module allows you to specify 'ModuleDependencies', which looks like a CSV list of modules. Is that enforced? What's it do otherwise?

Thanks.
michael_stover@urmc.rochester.edu2011-05-06 12:14Jon (LabKey DevOps)2015-04-28 22:01 Trouble with Visit Days TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If I specify a visit day that has a range of values, ie 100.0-110.0, it works fine with datasets and the Study Navigator view. However, the specimen inventory tables do not seem able to resolve the right visit day. So, when looking at vials, for visit day, I see <103.0> instead of "Season 1" (which is the label for the visit day). Not too big a deal, but the real problem is in the vial reports, under the visit day "Season 1" no vials show up.

If I instead create 10 visit days, each covering just one number, 100, 101, 102, etc, then this view works, but of course that is ugly, and the Study Navigator view now looks terrible.

Clearly, it is a bug that the specimen inventory is not figuring out the correct study day.
jdutra2011-05-26 14:40Jon (LabKey DevOps)2015-04-28 22:01 More View Permission Questions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I downgraded my browser for now so that I could make view permissions "explicit". But I'm still a little bit confused about how they work. First, when I create the view it asks me if I'd like to make it available to all users. But if I say yes, it doesn't really make the view available to all users, but to users who have permissions to the underlying datasets. This is the same thing as choosing "default" in Manage Views, but it gives the permissions a different name ("public" vs "default"). Is that how this is supposed to work?

Here is what I am trying to do: I have a study dataset, called Demographics, that is not readable by most users. However, I would like ALL users to be able to see certain columns from that dataset and also see the data from those "public" columns summarized in a wiki page. By creating a view with explicit permissions and checking all groups, I can allow my users to see the columns. But they still can't see the wiki page. If I do a selectRows with schemaName="Demographics" and viewName="Public", users get an error message that SchemaName Demographics does not exist (because they don't have permissions to read it). Is there any way to accomplish this?

Thanks,
Jen
ashoka@seraprognostics.com2011-09-27 15:13Jon (LabKey DevOps)2015-04-28 22:02 New certificate for globus fails TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,
Our security certificate for Globus expired and we created a new one following the instructions in https://www.labkey.org/wiki/home/Documentation/page.view?name=globusServer. Everything seems to go fine until we used the new user certificates in the project. The jobs don't get submitted to the cluster. Here's the (part of the) error message from the log file:
ERROR: ; nested exception is:
    org.globus.common.ChainedIOException: Authentication failed [Caused by: Failure unspecified at GSS-API level [Caused by: Bad certificate (The signature of 'O=Grid,OU=GlobusTest,OU=simpleCA-medusa.tgen.org,CN=host/medusa.tgen.org' certificate does not match its issuer)]]
org.mule.umo.ComponentException: Failed to invoke org.labkey.pipeline.mule.PipelineJobRunnerGlobus. Component that caused exception is: PipelineJobRunnerGlobusUMO. Message payload is of type: ActiveMQTextMessage
    at org.mule.impl.DefaultLifecycleAdapter.intercept(DefaultLifecycleAdapter.java:199)
.....

What might be going wrong here?
We seem to be running LabKey Version 10.10 and the cluster is running CentOS 5.2.
#uname -a
Linux medusa 2.6.18-92.1.13.el5xen #1 SMP Wed Sep 24 20:01:15 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

Appreciate any help.
-Ashoka
Ben Bimber2011-09-28 07:34Jon (LabKey DevOps)2015-04-28 22:02 how to log longer strings for auditing TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
across the EHR, I set most of the failure callbacks to use a standard function that inserts a message into the audit trail. i've got this working both client-side and in validation scripts. this has provided a really good mechanism to find out when something goes wrong. the only problem is that it seems i'm limited to 200 characters when inserting into the audit trail. Is this just a limitation to that table, or am i missing something? i ask b/c i'd like to insert the whole stack trace to provided better debugging info.

thanks.
michael_stover@urmc.rochester.edu2011-12-09 13:49Jon (LabKey DevOps)2015-04-28 22:03 building labkey from source - NullPointerException TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I checked out the 11.2 branch and I built labkey from source. When I run, I get the following:


java.lang.NullPointerException
    at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:294)
    at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:215)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3666)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4258)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:634)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:561)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:496)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1203)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

Is there a configuration step I missed?
michael_stover@urmc.rochester.edu2012-01-27 07:09Jon (LabKey DevOps)2015-04-28 22:03 500 error trying to export a large query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a query that returns 35,000 rows of 12 columns, all numbers. The query takes a good minute to run (it is doing a pivot on about 1.3 million rows, still a minute seems excessively slow, and subsequent calls are never any faster).

When I try to export, either as an excel or as a tab file, I usually get a 500 error. In the logs, I see:

ERROR TextWriter 2012-01-27 10:07:47,921 TP-Processor5 : PrintWriter error

or:


ERROR ExcelWriter 2012-01-27 09:37:10,335 TP-Processor5 : ClientAbortException: java.net.SocketException: Broken pipe

An ideas? Anything I can do to improve the performance of these queries and exports?
jdutra2012-04-24 07:07Jon (LabKey DevOps)2015-04-28 22:03 Audit log no longer tracks insertions? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have just noticed a difference in the audit log for dataset events between 11.1 and 11.3. In 11.1, creation of new records was tracked. A record would appear with the notation "A new dataset record was inserted" and the email of the user who created the record. In addition, you could click on Details to see what information was in the record.

In 11.3, it appears that creation of new records is no longer recorded in the dataset events log. Modifications are there, but I don't see any insertions. Is there a way to turn that on and off now, and we somehow have it off?

In addition, I notice that a problem from last year involving the created by (user and date) information in the datasets being overwritten (https://www.labkey.org/announcements/home/Developer/Forum/thread.view?entityId=57d02455-5944-102e-83ef-56716a13d9ec&_docid=thread%3A57d02455-5944-102e-83ef-56716a13d9ec) has never been fixed. Which means that right now once a record has been modified, we have no information anywhere about when it was created or who created it. Is there somewhere else I should look for this?

Thanks for your help,
Jen
trent2012-06-07 22:34Jon (LabKey DevOps)2015-04-28 22:04 DataSet MVIndicator - Column with Spaces TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Ran into this issue the other day. After attempting to import a dataset, that contains the 'N' character and with a column header containing a space, will get the error: ERROR: column cc.space field_MVIndicator does not exist Position: 211.

Some obvious solutions are to change the missing value indicator value - https://www.labkey.org/wiki/home/Documentation/page.view?name=manageMissing, or remove spaces from header when creating datasets. (i.e. when creating a dataset that may contain missing value indicators, to ensure the header has no spaces)

By the way, I believe the actual problem is in the construction of the SQL query, because the field has a space, it is being enclosed in quotes. As a result, it is case sensitive. At least in postgres, the column is all lower case.

(Only applies for create wizard. I don't think missing value indicators are obeyed on import data functionality.)
slangley@scharp.org2012-08-30 13:40Jon (LabKey DevOps)2015-04-28 22:06 Ext JS target for LabKey 12.3 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Do you know what version of Ext JS you are going to target for the LabKey 12.3 release?

4.1.0 ?

4.1.1 ?
http://cdn.sencha.com/ext-4.1.1-gpl/release-notes.html

Thanks.

Scott
Ben Bimber2013-01-24 17:58Jon (LabKey DevOps)2015-04-28 22:07 date/time filtering using +0d? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
labkey supports filtering syntax like:

date~dategte=+0d
or
date~datelte=+1d

which will filter the column date for any date greater than now(), or less than 1 day in the future, respectively. it's a very useful feature.

this syntax only works on the date versions of GTE and LTE. unless i'm wrong, this means we're comparing on the date-portion only, rather than date/time. therefore

date~dategte=+0d

actually means 'any record where the date portion of the datetime value is in the future', rather than truly meaning >=now(). it doesnt look like we support +0d syntax on LTE or GTE. this comes from CompareType.asDate(), which only gets called through the date-specific filters.

It would be nice if CompareType or SimpleFiler could automatically apply that parsing if the column was a date; however, neither of those appear to have any information about the datatype of the column they're bound to. They have a FieldKey only.

It is possible to get +0d syntax, while also filtering on date/time? If not, and I hate to suggest it, but would you consider an additional filter type (something like datetimegte, datetimelte)? i dont love the latter idea, but it isnt that much of an addition.
Anthony Corbett2013-03-14 14:32Jon (LabKey DevOps)2015-04-28 22:07 parse error for result.xml domain in file based module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm getting the following parse error when creating a new assay design from a custom file-based assay. It is stating that it isn't expecting the RangeURI element inside the PropertyDescriptor... though this element looks to be in the definition in the schema docs.

Unable to load assay template: 500 There was an error processing the request.
Unable to parse [GelCard]assay/gelcard/domains/result.xml: error:
cvc-complex-type.2.4a: Expected elements '
SearchTerms@http://cpas.fhcrc.org/exp/xml
SemanticType@http://cpas.fhcrc.org/exp/xml
Format@http://cpas.fhcrc.org/exp/xml
URL@http://cpas.fhcrc.org/exp/xml
FK@http://cpas.fhcrc.org/exp/xml
ImportAliases@http://cpas.fhcrc.org/exp/xml
MvEnabled@http://cpas.fhcrc.org/exp/xml
DefaultType@http://cpas.fhcrc.org/exp/xml
DefaultValue@http://cpas.fhcrc.org/exp/xml
PropertyValidator@http://cpas.fhcrc.org/exp/xml
ConditionalFormats@http://cpas.fhcrc.org/exp/xml' instead of 'RangeURI@http://cpas.fhcrc.org/exp/xml' here in element PropertyDescriptor@http://cpas.fhcrc.org/exp/xml

Attached is the result.xml file I'm using.
Leo Dashevskiy2013-06-03 11:21Jon (LabKey DevOps)2015-04-28 22:08 SVN revision 26741: [Search] module experienced errors during startup TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LUCENE_43
 Full details:
java.lang.NoSuchFieldError: LUCENE_43
    at org.labkey.search.model.LuceneSearchServiceImpl.<clinit>(LuceneSearchServiceImpl.java:113)
    at org.labkey.search.SearchModule.init(SearchModule.java:109)
    at org.labkey.api.module.DefaultModule.initialize(DefaultModule.java:186)
    at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:293)
    at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:220)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
jdutra2013-10-04 14:08Jon (LabKey DevOps)2015-04-28 22:08 Problem with Requestability Rules TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have added a custom query to the requestability rules for a a study. The query is item #3 in my active rules, with only the mandatory "Locked in Request Check" after it.

My query returns a list of 781 vials. Then I import specimens, and 775 vials are marked unavailable based on my query. The other 6 vials are all for the same subject/timepoint, and have the same primary and derivative type. They are still available after specimen import.

I can't figure out why they are not being marked as unavailable. The GlobalUniqueIds for these vials are correct in the query. They are not involved in a request, and the request check is the only thing that runs after the query. Could there be a deleted request hanging around somewhere that is screwing this up? Any other suggestions as to what might cause this problem?

We are still using labkey 13.1, in case that matters.

Thanks for your help,
Jen
cyrus2015-04-16 08:52Jon (LabKey DevOps)2015-04-17 10:32 How can I create a custom mapping that accepts MultipartFile? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In vanilla Spring, I'm doing this:

>>>
@RequestMapping(value="/convertXLSToJSON", method=RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public String handleFileUpload(@RequestParam("file") MultipartFile file)
{
    System.out.println("Converting XLS to json...");
    // Apache POI conversion stuff
    return somejsonobject.toString();
}
>>>

How is this accomplished in a LabKey custom module? (Specifically, I'm working in the "demo" module for now.)

Thanks in advance for any help you can provide.
jlumpe2015-05-11 17:07Jon (LabKey DevOps)2015-05-11 17:21 Error received by LabKey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Error received by LabKey:

org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "core.usersearchterms" does not exist
  Position: 322
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:276)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
    at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:443)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:263)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:121)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:156)
    at org.labkey.wiki.WikiManager.indexWikiContainerFast(WikiManager.java:648)
    at org.labkey.wiki.WikiManager.indexWikis(WikiManager.java:614)
    at org.labkey.wiki.WikiModule$1.run(WikiModule.java:218)
    at org.labkey.search.model.AbstractSearchService$5.run(AbstractSearchService.java:901)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.postgresql.util.PSQLException: ERROR: relation "core.usersearchterms" does not exist
  Position: 322
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:561)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:419)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:304)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
    at org.labkey.api.data.dialect.StatementWrapper.executeQuery(StatementWrapper.java:603)
    at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.executeQuery(SqlExecutingSelector.java:384)
    at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.getResultSet(SqlExecutingSelector.java:324)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:249)
    ... 7 more
Will Holtz2015-09-10 17:10Jon (LabKey DevOps)2015-09-14 12:38 link text for URL field in list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a list that contains a text field and this text field is used to store an absolute URL to an external web page. Currently the URL gets displayed in the grid view. This takes up a lot of visual space and also doesn't provide any information to the users, as the URLs don't contain any human parseable information. Is there any way to provide a constant link text for all URLs in this column?

this page: https://www.labkey.org/wiki/home/Documentation/page.view?name=urlEncoding
has a related trick where a query is used to generate such a column. However, this results in other functionality lost, such as the ability to edit rows, and I need to retain the list functionality. Additionally, sometimes the field will be empty and then I would like for nothing to be displayed, and I don't think the query solution satisfies this requirement either.

I'm guessing this isn't possible without some on-the-fly replacement via javascript, but maybe someone has another trick.

thanks,

-Will
diego2016-02-19 13:42Jon (LabKey DevOps)2016-03-01 11:23 Building HelloWorld Module not working... TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have followed instructions regarding building the helloworld module, everything works as writteen until I click "Update Folder".

"Hello World Web Part" is not listed in the <Select Web Part> dropdown...

What am I doing wrong?

Have attached a couple screenshots...

Hello World Tutorial -> https://www.labkey.org/home/Documentation/wiki-page.view?name=helloWorldModule

Thanks,
Diego
Leo Dashevskiy2016-03-02 12:44Jon (LabKey DevOps)2016-10-14 11:59 A variable of a dataregion associated with a QueryWebPart is not set properly TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
qwpDataset = new LABKEY.QueryWebPart({
    frame: 'none',
    queryName: dataset,
    renderTo: 'someDiv',
    schemaName: schemaName
});

In the button bar using the "PAGE SIZE" drop-down menu pick "Show All", then in the console:


dataregion = qwpDataset.getDataRegion();

console.log( dataregion.totalRows );
> null


For other "PAGE SIZE" drop-down numeric menu options, the value is set correctly.
I'm relying on it to see if the dataregion/QueryWebPart is empty or not (without requerying anything).
If there's an alternative way to tell, I'd like to hear about it.

So far I'll have to rely on querying the DOM for "tr.labkey-alternate-row" and "tr.labkey-row" and summing them up :(
eva pujadas2016-05-03 05:36Jon (LabKey DevOps)2016-05-04 21:48 Single project backup / restore TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey Team,

We are running an instance of LabKey v 15.3, which hosts several projects for several research groups, having each research group permissions to manage a single project.

For backups, we are following LabKey procedures, and backing up database and files of the entire instance.
In case some of the research groups would break something, would it be possible to restore data only from this one single project without affecting the other groups?
If not, is there a way to backup database contents and files belonging to each single project separately?
Maybe a possibility would be to export each project separately for backup but, is there a way to automatize folder exports?

Thanks a lot for your help,
Eva Pujadas
Matt Blanchard2016-05-18 07:10Jon (LabKey DevOps)2016-05-18 10:05 Client API bug TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
There seems to be a bug/typo in the LABKEY.ext4.data.Store Javascript Client library.

In the file /clientapi/ext4/data/Store.js:

171 if (config.parameters){
172 for (var n in oconfig.parameters)
173 baseParams["query.param." + n] = config.parameters[n];
174 }


The variable oconfig is not defined. It should be config.parameters.

This bug prevents me from using a parameterized query without jumping through some javascript hoops.

Not sure how to report this as an issue in the Labkey Bug Tracker. Please advise.

Thanks,.
Matt Blanchard
UNC-CH
Matthew Walker2017-03-07 14:24Jon (LabKey DevOps)2017-03-09 14:13 Oracle DB connection TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to configure labkey to retrieve/display data from a 10g oracle database. I went through the documentation for External Oracle Data Sources and went to the set up external schema step but there's never anything new. I've tried various iterations of url setting and restart tomcat every time. I can tnsping the oracle database from the server. Should the oracle database appear as a new data source when I go to define the external schema?
wit2wit2017-03-13 07:03Jon (LabKey DevOps)2017-03-29 23:35 Sometimes the jsp garbled TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I use IntelliJ idea to build system right.I see gibberish onscreen when I click on a workbook.

Thanks
liuy302017-05-11 13:57Jon (LabKey DevOps)2017-05-11 14:47 update one cell in a row (labkey java api) TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have a row in labkey which contains 10 cells:

key, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

for example, if i just want to update the value of cell 10, instead of putting everything into row = new HashMap<String,Object>();

is there a way to just provide the cell that needs to be updated using the UpdateRowsCommand();

Thank you very much.
Ju Yeong Kim2017-10-20 16:28Jon (LabKey DevOps)2017-10-23 13:31 Using parameter in lookup column TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is it possible to use parameters in lookup column?

For example,

```SQL
PARAMETERS(groupLabel VARCHAR DEFAULT 'mice')
SELECT participantid.groupLabel
FROM Demographics
```

where participantid.mice exists
Zoya Pasha2017-11-06 22:04Jon (LabKey DevOps)2017-11-17 14:25 Support - jQuery CDN TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am trying to get a jQuery popup form on a wiki page. For this I am using the following in the script tag:

LABKEY.Utils.requiresCSS("https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css");
LABKEY.Utils.requiresScript("https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js");
LABKEY.Utils.requiresScript("https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js");

However, whenever I click on a button, irrespective of whether it is a default one on the page or custom made, it just shows the loading sign. There is no progress after that. I cannot go to a different page, or edit the current page. I am unable to do anything after that. Please suggest!!
marcia hon2018-01-31 07:07Jon (LabKey DevOps)2018-02-01 13:50 Triggers - Keys TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I am investigating the trigger modules. I am able to get the sample # 1 to work.

My question is how do I make the keys start from another number instead of at 1.

I have tried the following code, but it did not work:

/* TESTING SEQUENCING */
CREATE SEQUENCE seq_test START 1000000;
    
CREATE TABLE testtriggers.Items (
    ItemId int DEFAULT nextval('seq_test') NOT NULL,
    ItemName varchar(255) NOT NULL,
    Price numeric(7,2),
    Category int,
    CONSTRAINT pk_Items PRIMARY KEY (ItemId),
    CONSTRAINT fk_Items_Categories FOREIGN KEY(Category) REFERENCES testtriggers.Categories(CategoryId)
);
marcia hon2018-03-02 08:05Jon (LabKey DevOps)2018-03-09 15:02 How to create a new Schema TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

How do I create a new schema?

Thanks,
Marcia
WayneH2018-10-09 06:40Jon (LabKey DevOps)2018-10-23 18:55 Insert User Data TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is it possible to bulk insert user data to the core user schema?

thanks

Wayne H
wnels2@uky.edu2007-04-12 12:21Jon (LabKey DevOps)2015-04-24 15:48 Mascot2XML crash2007-05-12 00:00TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Chee-Hong,
Here's the .dat file that crashes Mascot2XML. It's from a thermo icat run but I just used default Mascot params. I was able to run other thermo files okay but they were from a different machine.
Thanks a lot.
Bill
aschwin.vanderwoude@btk.fi2008-06-17 04:50Jon (LabKey DevOps)2015-04-28 21:53 GO Term import broken TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

It seems the format for the file 'term_synonym.txt' has recently changed and makes the import functionalilty choke on it. The change must have occurred some time after the 2008-05-15 release, as that works, and 2008-05-31 and later don't work.

-Aschwin
wnels2@uky.edu2010-02-05 12:09Jon (LabKey DevOps)2015-04-28 21:55 can't find search button TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just updated from the trunk and can't find the search button any more. Logged in as administrator, in the project I click the Process and import data button > check the check-box next to the mzXML file > click Admin.
The manage pipeline actions dialog appears but there are no search engine actions?
thanks,
Bill
Ben Bimber2010-03-15 16:40Jon (LabKey DevOps)2015-04-28 21:55 issue with cross-folder query? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a folder with a list located here:

Project: WNPRC
Folder path: /WNPRC_Units/Animal_Services/Compliance_Training/EmployeeDB
schema: lists
QueryName: Employees
Full URL (in case i'm interpreting wrong):
http://localhost:8080/labkey/list/WNPRC/WNPRC_Units/Animal_Services/Compliance_Training/Private/EmployeeDB/grid.view?listId=68

I want to query this list from the following folder:
WNPRC/WNPRC_Units/Animal_Services/Compliance_Training/Public/

Here is my query:

SELECT
e.PersonID
FROM WNPRC."WNPRC_Units/Animal_Services/Compliance_Training/Private/EmployeeDB/".lists.Employees e

According to the documentation here:
https://www.labkey.org/wiki/home/Documentation/page.view?name=crossFolderQueries

This seems right. Project is WNPRC, path relative to the project is quoted, schema is lists and table is Employees. I get an error:

There was an error while parsing this query: Error on line 3:Table WNPRC.WNPRC_Units/Animal_Services/Compliance_Training/Private/EmployeeDB/.lists.Employees not found.

Is there something I'm doing wrong? Can I only query study data cross-folder?

thanks for any help.
Ben Bimber2010-03-23 14:10Jon (LabKey DevOps)2015-04-28 21:55 might have an R report bug? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
either I found an R bug or I'm misinterpreting how this is supposed to behave:

We have a dataset called weights, with an R view called 'weight graph'. I load the dataset grid, then filter on subject.

I switch to the weight graph view by selecting 'weight graph' from the view button menu. I would have expected the R view to be filtered the same as my grid, but it is not. attached screenshot shows the R report screen, plus my URL which has the query.Id~startswith filter.

if i re-filter the data using the data tab for the R view, it becomes filtered.
Ben Bimber2010-05-03 13:03Jon (LabKey DevOps)2015-04-28 21:59 file-based query view: change name of field?? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When creating a view through the GUI, you can add fields and assign custom display names to them. When writing a file-based query view, can I do the same thing in XML? Here's an example in which I use a lookup and I'd like the column title to be 'Age', instead of the default name of 'Id age AgeInYears'.

    <columns>
        <column name="Id/age/AgeInYears"/>
    </columns>

Thanks for the help.
Ben Bimber2010-08-25 12:48Jon (LabKey DevOps)2015-04-28 21:59 global find/replace in dataset? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a study with a dataset called chemistryResults. That dataset has a field called 'testid'. I'd like to change every instance of the value 'URICACID' to 'UA' and every instance of 'ALK' to 'ALKP'. Are there any good options to accomplish that? i'd estimate as much as 20K occurrences of each.

I think I found my field using:
select * from exp.propertydescriptor where propertyid=7075

This query returns the rows:
select * from exp.objectproperty WHERE propertyid=7075 AND (stringvalue = 'ALK' OR stringvalue = 'URICACID')

I could run an update to fix my rows. I would probably also need to drop studydataset.hematologyResults, then view it through labkey to trigger a re-materialization.

Should this procedure work? It seems much easier to do it through postgres than any alternative I can think of.
Ben Bimber2010-09-27 10:26Jon (LabKey DevOps)2015-04-28 22:00 how to make column widths behave better? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
attached is a screenshot of an embedded QWP. it has about 10 column. one of the columns, 'remark' is a multi line string. the others are simple strings, dates or numeric. the width of these columns is very far from what we'd like. the columns Id, User, Location and SNOMED are all short strings or blank, yet get lots of width. Remark, the only multiline string, is crowded.

what options exist to rectify this? If I put the same text in Clinical Remarks.query.xml, it does reserve space.

                    <column columnName="Remark">
                        <isHidden>false</isHidden>
                        <displayWidth>250</displayWidth>
                    </column>

Manually setting columns widths is not a great solution when dealing with lots of tables and columns, but it's better than nothing. This fixes that one column, but a number of the other columns are also receiving unnecessarily large width. It seems like perhaps any column that is a lookup is getting a larger width? If this is true, can that behavior be revisited?

Questions are:

1. can i force the column width to increase in some other manner?

2. can i set the width in a more global way, instead of query by query? remark is a column from studyData. I tried to add that same XML to studyData.query.xml; however, it did not work. Should I expect this be inherited?

does anyone have other thoughts or suggestions? thanks for the help.
Ben Bimber2010-11-15 14:06Jon (LabKey DevOps)2015-04-28 22:00 dataregion and returning distinct values TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
a lot of applications require users to do things like filter a dataset, then return all distinct particpant IDs from those records. To accommodate this, I'd like to make a button called 'Return distinct IDs' that does exactly that.

My existing approach is below. It works on small record sets, but has problems for datasets w/ lots of records. I should say upfront: if the user checks nothing, I would assume that it auto-selects all records. The importance of this will be apparent in a minute.

Existing button handler:

function getDistinct(dataRegion){
    var checked = dataRegion.getChecked();
    var sql = "SELECT DISTINCT s.Id FROM study."+dataRegion.queryName+" s WHERE s.LSID IN ('" + checked.join("', '") + "')";

    LABKEY.Query.executeSql({
         schemaName: 'study',
         sql: sql,
         successCallback: function(data){
             ...work with Ids...
         }
         });
}

It is quite common for a user to filter a query, have up to 500,000 results, then want the distinct Ids. getChecked() simply isnt practical, since it requires that the entire 500K rows be visible, which is not practically going to happen. Are there other strategies?

One idea I can think of would be to try to translate the dataregion's filters into a SQL string, then execute using a comparable approach as above. Does this seem like a reasonable approach to anyone? Is there a better one? Thanks for the help.
Ben Bimber2010-11-29 10:06Jon (LabKey DevOps)2015-04-28 22:00 unsaved changes for default view of QWP impact other tabs in browser? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In 10.3 customize view changed. You can now alter the columns/filters/sorts in your grid without saving that view. I recently noticed that if you alter the default view, but do not save it, that other QWPs or calls to getQueryDetails() for that query on a different tab in the browser reflect these changes. i assume that has something to do w/ how these changes to the QWP are cached? is that supposed to happen?
Ben Bimber2011-01-17 07:22Jon (LabKey DevOps)2015-04-28 22:01 LABKEY.ext.Store and large list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The EHR has a number of fields that lookup to lists.snomed, which is a list with 4,620 records. I've been building Ext forms that contain comboboxes. By default most fields with lookups are created as combos. Therefore a number of fields were creating combos with 4620 records.

I was having a problems with pages hanging after loading. the primary panels would render and everything would look normal, but the browser would freeze for a few seconds. It look forever to figure out the problem, but when I preventing these combos from being created, it fixed the problem.

In hindsight the problem seems pretty simple. either parsing that much JSON or creating a combo with 4600 options just doesnt work well on the client. There is also that labkey combo plugin which does some work to figure out the combo width (i think it measures the rows, but could be wrong), which also cant be good with that many rows.

The question is: should this have been a problem, or is that just an expected limitation?

Even though in metadata that field is going to point to the original lists.snomed, I was planning to override that in the form code with a subset of that list, since a combo with 4000 entries just isnt usable even if it was fast.
Ben Bimber2011-02-01 07:59Jon (LabKey DevOps)2015-04-28 22:01 LABKEY.Message and sending emails to people who are not users TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LABKEY.Message seems designed to only allow sending of emails to people who are members of the site. Our site is configured to use an LDAP server and every labkey login is keyed to an email from our department. While all users technically have this email, many use different ones as their primary emails.

We have a lab who is creating an email notification system and they want to be able to send emails to other email addresses. Is there a good way to send emails to non-registered email addresses?

I suggested that maybe their code could spawn a "mailto" link instead of using LABKEY.Message. Not as nice, but potentially could work. The users could also make their official email forward to gmail, but I'm not sure if people are going to go for that.

Thanks.
michael_stover@urmc.rochester.edu2011-04-29 08:41Jon (LabKey DevOps)2015-04-28 22:01 Logging in with LDAP TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Right now labkey only supports using ldap for one email domain. However, we would like all users to login with LDAP, regardless of email domain. Is this planned for the future? Is it possible to get it in the next update?
jdutra2011-07-28 07:28Jon (LabKey DevOps)2015-04-28 22:02 Specimen Requests TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If I go to create a specimen request using the following sequence:

- Create new Request under Specimens
- Create and View Details
- Specimen Search
- select the specimens I want by clicking on the checkbox for each row
- Choose "Add to existing request" from the Request options menu at the top

The request that comes up by default in the "Request Vial" screen may or may not be the one I just created. If I'm not paying close attention, it's easy to add my specimens to the wrong request. Maybe I'm going about this the wrong way? But it seems to me that when I follow this sequence, where I have just created a request and said I'd like to add specimens to it, the request that shows up by default should be the one I just created.

Thanks for any help,
- Jen
Maya Li2012-01-11 08:28Jon (LabKey DevOps)2015-04-28 22:03 Vertical Tab Panel TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey's latest release 11.3 uses vertical tab panel for some multi-stepped tasks such as module upgrade. It happens to be something that could be very useful for me. Do you have the tabPanel Javascript API open for file-based module developers?

Thanks!
jdutra2012-02-15 09:19Jon (LabKey DevOps)2015-04-28 22:03 Column labels won't wrap for date fields TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I've noticed that the column labels don't seem to wrap for date fields, even though they wrap automatically for other types of fields. So if I need to use a very long label for a date, the field keeps getting wider and wider. Is there anything I can do to change this (other than using shorter labels)? I've included an example, which is a general assay.
Leo Dashevskiy2012-05-16 18:47Jon (LabKey DevOps)2015-04-28 22:03 LABKEY.ext.Store and filters TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I would like to dynamically change (remove old, apply new, or may be to change a parameter of an existing filter) the filters being applied to the Labkey store, so that the updated filtered store can be displayed in a (lov)comboBox.

What is the correct way to achieve this?

Can only LABKEY.Filter be applied to a Labkey store?

If my Labkey store is driven by a generated sql statement, then seems like directly changing the store's sql statement does not have any effect on what's actually displayed in the drop-down menu of the comboBox, the result of the original query gets displayed still.

What is the method of a Labkey store .setUserFilters() that I could not find documentation about on https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ext.Store.html

Please, advise!
Thanks.
jdutra2012-07-30 11:55Jon (LabKey DevOps)2015-04-28 22:04 Bug in xml editor for queries? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I think there may be a bug when editing queries. I have some fairly simple xml for a query. This query has always worked perfectly. But when I chose "Edit Source" for the query, even though I didn't change anything, I started getting an xml parse error. It seems that it doesn't like the "&", and I have to replace it with "&amp;". That gets rid of the error and the query works again. But if I choose to "Edit Source" again, the saved xml appears the same way it did originally, and I have to replace the ampersand again in order to save it successfully. My xml as it always appears when I open the editor is below:

<ns:tables xmlns:ns="http://labkey.org/data/xml">
  <ns:table tableName="Revax_Elispot" tableDbType="NOT_IN_DB">
    <ns:columns>
      <ns:column columnName="prot">
        <ns:isHidden>true</ns:isHidden>
        <ns:shownInDetailsView>false</ns:shownInDetailsView>
      </ns:column>
      <ns:column columnName="Protocol">
        <ns:url>/labkey/wiki/home/page.view?name=OpenFile&file=${prot}</ns:url>
      </ns:column>
    </ns:columns>
  </ns:table>
</ns:tables>

Thanks,
Jen
Daniel Nicolalde2012-11-12 11:35Jon (LabKey DevOps)2015-04-28 22:06 Problem with Searching in EHR TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We had a problem with the Labkey system last Friday. The system halted in the morning around 8:27 AM. The log file reported the following error message:

Nov 9, 2012 8:26:37 AM org.apache.tomcat.util.threads.ThreadPool logFull
SEVERE: All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status

I touch the threadDumpRequest file and also did a pgstat.sh and than restarted Tomcat. Now the Full-text Search is giving the following error:

java.io.FileNotFoundException: /var/tmp/labkey_full_text_index_2/_bbk.prx (No such file or directory)
       at java.io.RandomAccessFile.open(Native Method)
       at java.io.RandomAccessFile.<init>(RandomAccessFile.java:216)
       at org.apache.lucene.store.SimpleFSDirectory$SimpleFSIndexInput$Descriptor.<init>(SimpleFSDirectory.java:70)
       at org.apache.lucene.store.SimpleFSDirectory$SimpleFSIndexInput.<init>(SimpleFSDirectory.java:97)

We think this was cause by the search engine not able to find several file in the system. This is similar to the problem we were having a month ago with the folders under the oconnor directory. I need some guidance on how to review the threatdump and fix this problem so it does not happen again.

Thank you

Daniel
nizarellouze2013-04-05 00:29Jon (LabKey DevOps)2015-04-28 22:07 Labkey as portlet in liferay TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, we are planning to integrate labkey as portlet in liferay, my question is what's better using labkey api or refactoring the labkey source code?

Nizar
Anthony Corbett2013-04-22 12:16Jon (LabKey DevOps)2015-04-28 22:07 Import data with TabLoader and skipping first N lines TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a file format from a Nanodrop instrument which looks like this:

Module:    Nucleic Acid
Path:    10 mm
Software:    3.7.1
Firmware:   
Sample ID    User ID    Date    Time    ng/ul    A260    A280    260/280    260/230   
Z109    Default     2/12/2013     2:31 PM     12.78     0.320     0.127
Z110    Default     2/12/2013     2:31 PM     8.88     0.222     0.065
Z111    Default     2/12/2013     2:32 PM     16.65     0.416     0.118


I am planning on creating a Java based assay module to import this data. I'm wondering if the TabLoader class has a way to skip the first 4 lines of this file or if I'll have to write my own parser.

It looks like the parent class DataLoader has a _skipLines member variable but its usage looks to be very specific and not generic enough for my use case. Am I correct in this?

Thanks,

Anthony
Anthony Corbett2013-05-06 13:32Jon (LabKey DevOps)2015-04-28 22:07 Charting assay results grouping by DerivativeType TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have some assay results which have the same Participant/SequenceNum but have different Primary/Derivative Types. After I copy these results to the study I can add in the Primary and Derivative Type Columns from the Specimen Repository into the DataGrid. However, when I go to chart these results as a time series the Primary and Derivative columns are not available under the measures options for "Divide data into Series: One Per Participant and XXXXXX".

Am I not copying the results correctly to the study or do I need to configure something else to be able to use Primary/Derivative columns as dimensions?

Thanks,

Anthony
Ben Bimber2015-03-13 14:16Jon (LabKey DevOps)2015-03-23 15:15 Time to Rethink the Grid TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey is getting more of a user community these days, so I thought I'd try something new. This is an open letter to LabKey staff and the community at large, which I hope might spark some discussion about the product.

If you dont know me, I have been working with LabKey for more than 5 years, and managed several big LabKey projects for the University of Wisconsin and OHSU. In addition to writing code and using LabKey in my own research, I spend a lot of time talking/interacting with users who are completely new to LabKey. As someone intimately familiar with LabKey, the latter has been really interesting and eye opening.

LabKey has evolved a lot since I started working with it. It's great to see the recent focus and changes in user experience. The fact that increasing resources being devoted to user experience speaks to the success and maturity of the product. Even with the improvements, I do think there's one big area that's been left behind. In LabKey, the data grid is probably the most fundamental widget that exists. Virtually every application ends up interacting with a grid in some form. The functionality underlying the grid is absolute gold. The flexibility to interact with and cut across your data provides us with more benefit than anything else in the product. However, I also have to acknowledge that when any new user sees it (even tech savvy ones), virtually no one understands what to do with it. I spend a lot of time with smart people and the degree to which people dont get it has been a little astounding. I'm plenty guilty in my own apps of saying 'just train them', but I really think the grid needs a re-think. Not only does it do a suboptimal job of showcasing what should be the greatest power of LabKey, it's a major impediment for new users.

I'm writing this now because I understand the grid and customize view are being migrated to Ext4. That's a big undertaking that inherently means the widget is going to be revamped. There a few observations and suggestions I think would be very beneficial to the product's accessibility to new users.

I attached some more detailed suggestions and comments, but here's the highlights:

1) I dont quite understand it, but when I show new users a grid, they never understand any of the capabilities. They dont recognize that you can click column headers (I know...). Equally important, the terms 'Views' and 'Customize View' dont mean anything to people. They simply need to go. The functions customize view provides are hugely important though. Rather than one 'customize view' item on the menu, simply having 'change columns', 'change filters' and 'change sort' (even if all these did was open the existing customize view tab) would be a major improvement in user understanding. It would be understandable, and more quickly direct the user to the action they need.

2) The Views / Charts buttons muddle together two distinct ideas. There's two concepts: 1) change things about the current table (filter/sort/columns), and 2) visualize/chart your data in some other form. All of the options currently presented on these 2 buttons divide on these lines. We should split up the existing items between the two buttons to make it clearer to people.

3) We shouldnt start by dumping all a table with all rows in front of the user and secondarily making them ask a question about the data (ie. filter). I'm pretty guilty of doing this in the apps I write. If you look at how most other sites handle search (take expedia, amazon, ebay or your favorite site), the user typically goes to a page where they are given fields to enter search terms, and only after this to do they load a grid of data. One could imagine that instead of always loading a DataRegion that shows all the rows, when the user first hits it we just expand the filter panel and dont load data yet. We left the user add filters (ie. ask their questions), and only then load. LabKey has a harder problem to solve then any of the websites I list since the types of questions people want to ask are very diverse. That's in contrast to booking a flight, where there's a obvious, predictable set of fields to display to start. One could also imagine we have some table-level basic to control which fields are pre-shown as available filters. This would at least give a way for each table to more rationally define what set of search options a user might want.


The reason I posted this here was to hopefully at least provoke some thought in other LabKey clients/users. As I critique our own applications, I'm coming to the conclusion that this is one of our biggest flaws.
lewis j mcgibbney2015-03-16 14:57Jon (LabKey DevOps)2015-03-16 15:39 Integration Point for Implementing Solr Search TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi Folks,
I'm looking to extend Labkey server with a Solr connector. Right now I am working my way through the install documentation (thank you Jon for helping me out). In addition I'm working with the Javadoc and have successfully imported the project into Eclipse based on the recent tutorial documentation posted to the list.
I wonder if someone can please help me locate which package(s) is/are responsible for reading and writing data to underlying data stores/data sources.
Having built the Javadoc, I am working my way through the source.
Thanks in advance.
Lewis
martin2015-04-16 03:31Jon (LabKey DevOps)2015-04-17 10:32 privileged application TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

we are trying to give some users a permission to create folders or set folder permissions (and generally other admin stuff), but don't want to make those users (even folder) administrators

is there a way to let those non-admins run a privileged (preferably javascript) application that will itself have administrator permissions?

best regards,
martin
Anthony Corbett2015-08-05 07:16Jon (LabKey DevOps)2015-08-06 23:12 Show time portion of DateTime field in DataGrids TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is it possible to show the time portion in addition to the date of a DateTime field in data grids?
lewis j mcgibbney2015-10-02 11:51Jon (LabKey DevOps)2015-10-06 16:26 Implement an QueryUpdateService TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi Folks,
Having spoken with Adam a few times on this scenario now I thought I would log an issue and begin working on a QueryUpdateService API for the remoteapi Java API.

Lets take the following scenario as a driver for understanding what this API should provide. Say we want to learn of both 1) new Studies added to LabKey by our users, and 2) updates to existing Studies e.g. field updates or something similar. Basically a a typical CRUD update which is implemented through QueryService.

Right now (with the current remoteapi) we have two options;

1) from time-to-time query everything (all containers containing data) and check for what has been updated. This most likely involves maintaining a signature of what the state was when we last queried. We can then create a new signature and do a diff on the two. A difference is signatures indicates that something has been updated. We then pull the new data and do something with it. This is not ideal as we need to query LabKey frequently!, or

2) develop a listener which binds to some existing LabKey service. This is our integration point and justification behind the implementation of an QueryUpdateService. Updates should be sucked out automatically hence removing the requirement to constantly query the services.

Finally, I have looked into the QueryChangeListener which kinda sounds like the same. It exposes the following API

void queryChanged(User user, Container container, ContainerFilter scope, SchemaKey schema, QueryChangeListener.QueryProperty property, java.util.Collection<QueryChangeListener.QueryPropertyChange> changes)
This method is called when a set of tables or queries are changed in the given container and schema.

void queryCreated(User user, Container container, ContainerFilter scope, SchemaKey schema, java.util.Collection<java.lang.String> queries)
This method is called when a set of tables or queries are created in the given container and schema.

void queryDeleted(User user, Container container, ContainerFilter scope, SchemaKey schema, java.util.Collection<java.lang.String> queries)
This method is called when a set of tables or queries are deleted from the given container and schema.

java.util.Collection<java.lang.String>     queryDependents(User user, Container container, ContainerFilter scope, SchemaKey schema, java.util.Collection<java.lang.String> queries)
Get a textual representation of items that depdend on a table or query.

The above API does not satisfy the requirement for one to receive updates as and when they come in to LabKey!

I am very keen to discuss this here.
diego2016-06-01 13:37Jon (LabKey DevOps)2016-06-01 14:08 Changing "Uncategorized" Header Name? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Have created a mock study with assigned visits, once clicking "Clinical and Assay Data" there is a list of datasets and custom views... Was wanting to change the header label from "Uncategorized" to something else, also would like to add a few other headers. I have attached a screenshot... Hope this makes sense!

Thanks in advance!
Diego
Matt V2017-09-13 14:01Jon (LabKey DevOps)2017-09-14 15:56 URL context/container/project path on the java side TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We've been working on a backend module that outputs links elsewhere on the site. In this case, the rendered output links to participants based on an ID. This portion of the module renders within a webpart within a tab in a top level project.

In the backend code, I can do
    String baseURL = ActionURL.getBaseServerURL();
to get the current baseURL and contextPath just fine, e.g. https://localhost:8443/labkey. However, I can't seem to get the project (container?) https://localhost:8443/labkey/myproject. Instead, the information returned is all relevant to the webpart, not the parent of the webpart.

I've also tried using the various methods within the HttpView class (e.g. HttpView.getContextURL()), but they point to the root of this module/baseURL and don't include the project.

Even better would be a way to directly link to the participants for the current project/folder.

Any help with one of these approaches? Unfortunately the JS side isn't really an option in this instance.
Edward2017-12-21 05:01Jon (LabKey DevOps)2017-12-28 00:55 Remove Support and Give UI Feedback from Menu TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi Labkey Supporters,

I have recently started using Labkey server and am in the process of configuring it to better suit our needs. Is it possible to remove the buttons/links for "Support" and "Give UI Feedback" from the Menu on the right hand side?

Alternatively, if the links cannot be removed, is there any way to redirect these links to my pre-defined pages?

Thanks in advance!
druderman@appliedminds.com2007-01-13 07:41Jon (LabKey DevOps)2015-04-28 21:50 CPAS client development kit: way to add to database? TEXT_WITH_LINKSClosedadam9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In looking through the CPAS client development kit Javadocs (v1.6), I don't see an obvious way to add to the database (say, add a new experiment or sample). Is this functionality available?

Thanks,
Dan
jrue@novonordisk.com2007-04-16 21:21Jon (LabKey DevOps)2015-04-24 15:48 Issue Module Extension2007-05-16 00:00TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I created a small extension to the Issues module that shows all issue details from the list.view page. This new page simple displays all the issue details of the issue list (all filtering and ordering is preserved) on a single page. This simplifies viewing multiple issue details. Currently one has to either select a single issue to view its details or use the "Jump to issue" dialog and then either go back a page and select another issue or use the "Jump to issue" dialog again. I find the "view all details" useful for both viewing the status of multiple issues and for creating a printable view of multiple issues.

I have attached a couple screen shots that show the added functionality. On the Issues List page, there is a new button added next to the "Export To Text" button. The Issue Details page aggregates all the issues from the generating Issue List page.

Let me know if this is something useful to the project.

Thanks,
Jon
wnels2@uky.edu2009-10-09 11:25Jon (LabKey DevOps)2015-04-28 21:54 version of Mule? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
what is the version of mule currently in the trunk?
Thanks,
Bill
Ben Bimber2010-03-10 08:13Jon (LabKey DevOps)2015-04-28 21:55 getQueryDetails() slow when query contains multiple lookups? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to use LABKEY.query.getQueryDetails() on the participant table of a study. LABKEY.query.getQueryDetails() runs reasonably fast on most tables, but not participant. In the participant table, I have aliased the participant field 10 times, each of these being a lookup to another query. Because getQueryDetails() returns the structure of any lookups, am I correct that this probably explains the slowness I see. Basically I've asked getQueryDetails() to do 10X as much work, right?

I did not see anything documented, but can I run getQueryDetails() with a view specified so that I exclude columns I don't need (and their associated lookups)?

There's some overriding EHR study performance issues and maybe this is just one manifestation.
Ben Bimber2010-09-24 07:09Jon (LabKey DevOps)2015-04-28 22:00 multivalue column and user groups TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in 10.3 support for multivalue columns is being added. one place where this would be quite useful is core.users. having a column that showed all the groups to which that user belonged would be a very useful piece of info not as easily obtained right now. you can drill into the user and get at this idea, but the group_concat string in a filterable grid would be a lot nicer.
Ben Bimber2011-02-11 05:45Jon (LabKey DevOps)2015-04-28 22:01 understanding different lookup behaviors of different types of tables TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have datasets, list, and hard tables exposed through external modules. There is some slightly different behavior on the handling of foreign keys and I'm hoping someone might be able to say something about what behavior we should expect:

when using any of labkey's built-in table types, any lookup is automatically resolved. in a dataregion, the cell holding this value is rendered as a link to the target of the lookup, and labkey usually automatically shows the display field of the lookup target, as opposed to the value stored in that table. When a the values of that lookup is not found in the target table, the cell renders with <> brackets and it filters as though the value is null.

With hard tables, I see differences. Lookups do not seem to automatically render as a link to the lookup target. They do not automatically show the display field from the target table. Instead they tend to show the actual value of the cell. They do render with brackets if the value of the lookup is not found.

Because labkey renders broken lookups with <>, this seems to indicate that labkey is still resolving that lookup on hard tables, even though the rendering is different. The questions I have are:

1. is this difference an expected behavior
2. should i anticipate it staying this way
3. in those cases where we do want to show URLs or show the display field of the lookup, should I manually add URLs or tweak the view accordingly?

none of the above are inherent problems, i'm just trying to make sure i understand what to expect.
Ben Bimber2011-02-28 13:00Jon (LabKey DevOps)2015-04-28 22:01 LABKEY.Query.containerFilter with workbooks TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I dont know if this is new or just new to me, but the new containerFilter options are nice. I do have questions about some of the options:

    * currentPlusProject: Include the current folder and the project that contains it

let's assume you're either in a workbook or a subfolder several levels down from the project root. in this situation, does 'the project that contains it' refer to the project root folder (ie. one folder only) or does it refer to the project plus all child folders contained within that project?

    * currentAndParents: Include the current folder and its parent folders

why is parents plural? how does a folder have more than 1 parent? does this traverse up the full folder hierarchy until it hits the site/project root? if true, is there any way to get just the immediate parent?


I am primarily interested in 2 cases involving workbooks:

1. When in a folder that contains workbooks, there are cases where we'd want a filter that shows the current folder plus all workbooks records. The existing currentAndSubfolders option seems to cover this.

2. When in a workbook, you might want to show either:

- records in that workbook plus records in the immediate parent folder (ie. one level up, not multiple levels up)
- records in that workbook, records in the immediate parent folder, and records from other children of that parent.

The filters currentPlusProject and currentAndParents seems to be similar to this, but their descriptions are a little ambiguous.

One related question: is it possible from within a workbook to find the containerPath of your immediate parent? If that were possible, you could just use that as a container filter without worrying about all sorts of specific permutations on containerFilter.

Thanks.
Ben Bimber2011-05-02 08:59Jon (LabKey DevOps)2015-04-28 22:01 11.1: did something change about handling webdav or file permissions? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
pre-11.1, we had some files shared through a files webpart, here:

https://xnight.primate.wisc.edu:8443/labkey/project/WNPRC/EHR/Logs/begin.view?

after the update, these files all show their size a 0kb and you cant download them. these files all have 'labkey' as the owner, which is the user running tomcat. is there some new permission within labkey? did something else change in 11.1? or should i start looking at the filesystem level to see if something inadvertently got changed.

thanks.
Ben Bimber2011-05-10 10:18Jon (LabKey DevOps)2015-04-28 22:01 find instances of hard coded paths in wikis? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we're about to migrate to a new server, with a new address. i'm trying to find any remaining hard-coded URLs to the old server address. If I remember correctly, wiki content is actually stored in postgres. Can I do a query within postgres to find any page containing 'xnight.primate.wisc.edu'? i'd plan to correct these through labkey, but a side-wide way to find them would help.

are there other places in the DB where a URL might be hard coded? maybe the URLs in property descriptors?

thanks,
ben
jean.matscher@novartis.com2011-05-11 01:27Jon (LabKey DevOps)2015-04-28 22:01 Issue with MS2 Notification API using subfolders TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear all,

we have successfully tested the MS2 Notification API, running automated MS2 searches
- with raw files located in T:/LabKeyRoot_v11/v11_Test/@Files,
- the pipeline root being T:/LabKeyRoot_v11/v11_Test


We are now attempting to setup the automated search with raw files located in a subfolder T:/LabKeyRoot_v11/v11_Test/Aggregates/@Files
and accordingly changed the values in the file list csv, but get the following error message:

org.labkey.remoteapi.CommandException: File with path T:/LabKeyRoot_v11/v11_Test/Aggregates/@Files\2010_03_03_cytochromeC_0_50_40minD.raw is not under the pipeline root for this folder


We tried different configurations in config.properties and the csv, but were not able to get the searches submitted. I've attached the following files:
- Full log file of the submission
- The config.properties and csv files for the Root folder (Successful) and the Subfolder (Error).


Is this due to a limitation of the API, or an incorrect file setup on our side?


Thanks for any help here, best regards
Jean
Ben Bimber2011-08-10 05:02Jon (LabKey DevOps)2015-04-28 22:02 tracking down an error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am seeing this error popping up perioidically in labkey.log:

ERROR AbstractSearchService 2011-08-08 21:19:19,133 SearchService:runner : Error running org.labkey.wiki.WikiModule$1@35ffcafa
java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "=c"
    at java.net.URLDecoder.decode(URLDecoder.java:173)
    at org.labkey.api.util.PageFlowUtil.decode(PageFlowUtil.java:568)
    at org.labkey.wiki.renderer.HtmlRenderer.format(HtmlRenderer.java:86)
    at org.labkey.wiki.RenderedWikiResource.getHtml(RenderedWikiResource.java:57)
    at org.labkey.wiki.RenderedWikiResource.setBody(RenderedWikiResource.java:40)
    at org.labkey.wiki.WikiWebdavProvider$WikiPageResource.<init>(WikiWebdavProvider.java:356)
    at org.labkey.wiki.RenderedWikiResource.<init>(RenderedWikiResource.java:34)
    at org.labkey.wiki.WikiManager.indexWikiContainerFast(WikiManager.java:674)
    at org.labkey.wiki.WikiManager.indexWikis(WikiManager.java:579)
    at org.labkey.wiki.WikiModule$1.run(WikiModule.java:224)
    at org.labkey.search.model.AbstractSearchService$4.run(AbstractSearchService.java:789)
    at java.lang.Thread.run(Thread.java:662)

anyone have an idea on how to track down which wiki it's referring to? thanks.
Ben Bimber2011-09-23 10:44Jon (LabKey DevOps)2015-04-28 22:02 one bad email failing whole email with LABKEY.Message TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
from within a validation script I am sending emails using LABKEY.Message. I'm trying to send it a lot of emails. one of them is failing for some reason (it's a valid labkey user, but it's possible the email itself isnt valid).

below is the error. does it provide any information that says whether labkey is the source of the error or whether the SMTP server is rejecting it?

if labkey is what's rejecting it, can i add some flag that forces the email to continue even if one of the emails is bad?

javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
    com.sun.mail.smtp.SMTPAddressFailedException: 550 5.1.1 <emailRemoved@primate.wisc.edu>... User unknown

    at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1835)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1098)
    at javax.mail.Transport.send0(Transport.java:195)
    at javax.mail.Transport.send(Transport.java:124)
    at org.labkey.api.util.MailHelper.send(MailHelper.java:174)
    at org.labkey.announcements.SendMessageAction.execute(SendMessageAction.java:120)
    at org.labkey.announcements.SendMessageAction.execute(SendMessageAction.java:52)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:147)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:98)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:166)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:346)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:765)
    at org.labkey.api.view.ViewServlet.mockDispatch(ViewServlet.java:504)
    at sun.reflect.GeneratedMethodAccessor601.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
    at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
    at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
    at org.mozilla.javascript.gen.scripts_labkey_adapter_bridge_js_8._c_mockRequest_5(scripts/labkey/adapter/bridge.js:58)
    at org.mozilla.javascript.gen.scripts_labkey_adapter_bridge_js_8.call(scripts/labkey/adapter/bridge.js)
    at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:97)
    at org.mozilla.javascript.gen.scripts_labkey_adapter_bridge_js_8._c_anonymous_6(scripts/labkey/adapter/bridge.js:85)
    at org.mozilla.javascript.gen.scripts_labkey_adapter_bridge_js_8.call(scripts/labkey/adapter/bridge.js)
    at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
    at org.mozilla.javascript.gen.scripts_Ext_js_7._c_anonymous_104(scripts/Ext.js:2119)
    at org.mozilla.javascript.gen.scripts_Ext_js_7.call(scripts/Ext.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
    at org.mozilla.javascript.gen.scripts_labkey_Ajax_js_9._c_anonymous_2(scripts/labkey/Ajax.js:51)
    at org.mozilla.javascript.gen.scripts_labkey_Ajax_js_9.call(scripts/labkey/Ajax.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
    at org.mozilla.javascript.gen.scripts_labkey_Message_js_11._c_anonymous_2(scripts/labkey/Message.js:165)
    at org.mozilla.javascript.gen.scripts_labkey_Message_js_11.call(scripts/labkey/Message.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17._c_anonymous_29(scripts/ehr/validation.js:843)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17.call(scripts/ehr/validation.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
    at org.mozilla.javascript.gen.queries_study_Deaths_js_382._c_onComplete_2(queries/study/Deaths.js:35)
    at org.mozilla.javascript.gen.queries_study_Deaths_js_382.call(queries/study/Deaths.js)
    at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17._c_complete_8(scripts/ehr/validation.js:170)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17.call(scripts/ehr/validation.js)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:426)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3161)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17.call(scripts/ehr/validation.js)
    at org.labkey.api.script.RhinoScriptEngine.invokeMethod(RhinoScriptEngine.java:265)
    at org.labkey.api.script.RhinoEngine.invokeMethod(RhinoService.java:632)
    at org.labkey.api.script.ScriptReferenceImpl.invokeFn(RhinoService.java:361)
    at org.labkey.api.data.AbstractTableInfo.invokeTableScript(AbstractTableInfo.java:923)
    at org.labkey.api.data.AbstractTableInfo.fireBatchTrigger(AbstractTableInfo.java:947)
    at org.labkey.api.query.AbstractQueryUpdateService.insertRows(AbstractQueryUpdateService.java:113)
    at org.labkey.study.query.DatasetUpdateService.insertRows(DatasetUpdateService.java:69)
    at org.labkey.query.controllers.QueryController$CommandType$1.saveRows(QueryController.java:2610)
    at org.labkey.query.controllers.QueryController$BaseSaveRowsAction.executeJson(QueryController.java:2769)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:2826)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:2819)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:147)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:98)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:166)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:346)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:765)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:684)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:581)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:662)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.1.1 <emailRemoved@primate.wisc.edu>... User unknown
michael_stover@urmc.rochester.edu2011-12-13 13:31Jon (LabKey DevOps)2015-04-28 22:03 Gene Pattern TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Do you know if any of your users also use the Gene Pattern application server for analysis purpose, and has anyone ever looked into ways to integrate Labkey with GenePattern? They seem remarkably complementary, and I am considering researching how we might get these two system to talk to each other.
dennisw2012-04-11 07:59Jon (LabKey DevOps)2015-04-28 22:03 Data Cut Date / refreshDate question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The UI popup for adding/changing the Data Cut Date (AKA refreshDate) for a dataset in the Data Views webpart works great, but we need to do a bulk change on several groups of datasets. Where is the refreshDate stored? Is it in one of the LK tables in the DB? I know we have to shut down the LK server to manually change data in the DB, but this is a one time change we need to do so that would be fine.
Anthony Corbett2012-05-22 09:21Jon (LabKey DevOps)2015-04-28 22:03 containerFilter on queries for lists schema TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I'm trying to query lists with the same name in two different subFolders. At the common parent container I create a LABKE selectRows query for the lists and common query name and then set the containerFilter to CurrentAndSubfolders but I receive a 404 Error that it can't find the queryName.

My request looks like this:

{"schemaName":"lists","apiVersion":9.1,"containerFilter":"CurrentAndSubfolders","query.maxRows":0,"query.queryName":"Events","limit":10000,"page":1,"start":0,"commands":[]}


The error is:

    "exceptionClass": "org.labkey.api.view.NotFoundException",
    "exception": "Query 'Events' in schema 'lists' doesn't exist.",
    "stackTrace": [
        "org.labkey.query.controllers.QueryController.ensureQueryExists(QueryController.java:296)",
        "org.labkey.query.controllers.QueryController$SelectRowsAction.execute(QueryController.java:2327)",
     . . .


Is it not possible to use the containerFilter for the lists schema?

Thanks!
jeffrey_williams@urmc.rochester.edu2012-08-15 09:16Jon (LabKey DevOps)2015-04-28 22:04 Bug in XML meta data TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I found that if the XML metadata in a custom query has an ampersand in it, you must convert it to an XML encoded ampersand before saving the XML metadata otherwise labkey will store it incorrectly and give you a parse error.
slangley@scharp.org2012-10-17 10:36Jon (LabKey DevOps)2015-04-28 22:06 Java Security Patch TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I see that Oracle released a patch to Java that fixes a number of critical, remotely-exploitable security vulnerabilities.

http://www.oracle.com/technetwork/topics/security/javacpuoct2012-1515924.html

Can you give us a sense of how easily exploitable these might be on LabKey server and what priority should be given to upgrading our Java platform?

Could you run your full test suite using this new Java to determine if it introduces any regressions?

Thanks.

Scott
jdutra2012-10-31 09:55Jon (LabKey DevOps)2015-04-28 22:06 Specimen Sites & Labs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a way to delete items from a study's list of sites/labs? The "Manage" page for that only allows you to add a new lab with an id and a label only, or edit the labels of existing labs. You can't set up the booleans for a lab this way (endpoint lab, clinic, etc) and you can't delete them. If I put the labs I want into a labs.tsv file and import it as part of a specimen import, then I am able to set booleans for new and existing labs, but leaving a lab out of the tsv file does not remove it from the study.

The labs I want to get rid of are not referenced in any of the specimen tables, and are not needed for the study in question. Any suggestions as to how to do this?

Thanks!
- Jen
Leo Dashevskiy2013-01-10 15:41Jon (LabKey DevOps)2015-04-28 22:07 Issue with LABKEY.ext.Store TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good day!

While upgrading from server version 12.1 to server version 12.3, I ran into an issue with LABKEY.ext.Store
It seems important to mention that my instance used the 'sql' config option.
The way I have used it in the past was:

filterArrayToApply.push(
                    LABKEY.Filter.create(
                        <column name>,
                        <values separated by ;>,
                        LABKEY.Filter.Types.IN
                    )
                );

strFilteredTable.setUserFilters(filterArrayToApply);
strFilteredTable.load();

and this worked as I expected, filtering the store nicely in 12.1 (as per Ben's recommendation in the past).

It does not work so for 12.3 - the filtering does not seem to happen at all.

Btw, is it okey, that when the superclass constructor is called, the qsParams is empty, whereas baseParams is not?

So here is a glimpse at a part of the state of the store before and after the code above is run:

before:
strFilteredTable.getUserFilters()
[]

after:
strFilteredTable.getUserFilters()
[
Object
]

So the filter gets written, but does not seem to get applied!


FYI:

Core 12.32
Build OS    Mac OS X
Build Path    /Library/LabKey/server/../build/modules/core
Build Time    January 11 2013, 9:44 AM
Build User    cytomatic
Extracted Path    /Library/LabKey/build/deploy/modules/core
Module Class    org.labkey.core.CoreModule
Module Dependencies    <none>
SVN Revision    23982
SVN URL    https://hedgehog.fhcrc.org/tor/stedi/trunk/server
Version    12.32


Please, advise!
Anthony Corbett2013-02-15 13:14Jon (LabKey DevOps)2015-04-28 22:07 parse rrors for deleteURL and importURL elements in table metadata XML TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Even though deleteURL and importURL are in the xsd for the tableInfo schema:

  https://www.labkey.org/download/schema-docs/xml-schemas/index.html?schemas/tableInfo_xsd/elements/deleteUrl.html
  https://www.labkey.org/download/schema-docs/xml-schemas/index.html?schemas/tableInfo_xsd/elements/importUrl.html

I'm getting parse errors when I try to add those to my list's metadata XML:

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="Specimens Submitted to GRC" tableDbType="TABLE">
    <insertUrl></insertUrl> <!-- works -->
    <updateUrl></updateUrl> <!-- works -->
    <tableUrl></tableUrl> <!-- works -->
    <deleteUrl></deleteUrl> <!-- parse error -->
    <importUrl></importUrl> <!-- parse error, though the documentation doesn't say it can be blank -->
  </table>
</tables>


I'm really trying to remove all way to modify the list in the GUI. Admins can go to the schema browser.
jdutra2013-03-26 09:21Jon (LabKey DevOps)2015-04-28 22:07 Specimen Comments TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When I look at the specimen views (by individual vial, by vial group, and history), all 3 of them have a comment column. The specimen archive instructions say that a 200C comment can be included, and that it's an attribute of the draw. However, when I include comments, they show up in history view, and are apparently considered to be an attribute of the event. The comment columns for the individual vial and vial group are empty. What are these comments? Is there a way to import data into them in the archive?

Thanks,
Jen
Ben Bimber2013-04-02 14:19Jon (LabKey DevOps)2015-04-28 22:07 expected behavior for .deleted? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Within the various folders of the LK file root, folders named .deleted are created. Certain events cause deleted files to end up in these folders. I had a couple questions:

1) should any deleted file get moved to the corresponding .deleted folder?

2) is there a process to eventually clean up these deleted files?
Anthony Corbett2013-04-05 13:24Jon (LabKey DevOps)2015-04-28 22:07 Ancillary Study's Study Specimens Sample Set doesn't exists TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm using 12.3 and I thought I saw some enhancements coming in 13.1 for creating ancillary studies, not sure if these were some of them.

When an ancillary study was created I noticed two things:

1. All Specimens from the Specimen Repository were copied into the ancillary study for those participants that were selected. Is there a way to filter those to only a select few vials?

2. For all specimens that show up in the specimen repository the shadow Sample Set "Study Samples" does not exist. This is how I'm currently resolving Material RowIds for inputs to custom assays.
reshmyunni17782013-07-23 22:21Jon (LabKey DevOps)2015-04-28 22:08 Problem with starting activemq in Mac TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I replaced activemq.xml with sample activemq.xml attached in labkey site.
Executed command '<ACTIVEMQ_HOME>/bin/macosx/activemq start xbean:<ACTIVEMQ_HOME>/conf/activemq.xml > <ACTIVEMQ_HOME>/smlog 2>&1'.But smlog file shows only 'Starting ActiveMQ Broker...' .I waited a few seconds.
Not get started.Can't connect to localhost:8161/admin.
Before change in activemq.xml,activemq start command worked fine.Attached activemq.xml,activemq.log and wrapper.log.Please help me.
feifei bao2015-04-20 09:51Jon (LabKey DevOps)2015-04-24 10:46 How to render the boolean field TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have a list in my wiki page. For one specific column, I want it can render the boolean field with other text. If boolean value is false, it displays "create" with a specific URL. Otherwise, it displays "download" which is linked to download page. I think it should be realized in "Schema Browser". Could someone help me of this?

Thank you very much.

Feifei
eva pujadas2015-05-13 07:42Jon (LabKey DevOps)2015-05-14 09:49 Custom HTML of list forms and views TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there any way to change the HTML design of the "INSERT NEW" form in lists?
The basic question would be if there is some way to modify the default template for "INSERT NEW", "EDIT" or "details" of records in certain lists.

I know one can link for example the "INSERT NEW" button of a list to
- a self-created JavaScript view (https://www.labkey.org/wiki/home/Documentation/page.view?name=jsViews)
- or to a self-created wiki page (https://www.labkey.org/wiki/home/Documentation/page.view?name=reagentRequestForm)
by updating the XML metadata of the list:
https://www.labkey.org/wiki/home/Documentation/page.view?name=customButtonBars
https://www.labkey.org/wiki/home/Documentation/page.view?name=tableMetadata

But that involves creating the HTML form and page view from scratch. Is there any way to update the existing templates?
That would be useful for example in tables with many columns, to split the input fields in several columns instead of having them in a long list.

Thank you very much,
Eva Pujadas
eva pujadas2015-12-03 01:54Jon (LabKey DevOps)2018-06-16 00:15 Importing list does not update existing records TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey developers,

We have seen that there is an issue concerning updating of existing list records:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10472

Since updating of rows with existing keys is not working, is there an alternative way of updating existing records by importing a list?
Or, do you plan to fix the issue in the near future?

Currently the only work around we can think of is first deleting the rows which need to be updated, and then import the updated same rows, procedure which requires a considerable amount of effort, besides being error-prone.

Thanks a lot for your support,
Eva
Ben Bimber2015-12-04 10:02Jon (LabKey DevOps)2015-12-28 14:44 mildly responsive webparts? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Our modules are very Ext4-heavy, and render content into webparts. If you resize the page, it would be nice if our content did a better job of resizing itself. In Ext, the viewport is generally how this would get handled, but this expects a full-page app (so far as i can tell). Does anyone know a good solution or best-practice for content rendered in a webpart, without or without Ext? Thanks.
bill c white2015-12-07 10:15Jon (LabKey DevOps)2015-12-07 12:01 Shiny Apps in LabKey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have been asked by colleagues if Shiny can be used to develop LabKey applications. Is this recommended or discouraged or considered. Thanks.
Will Holtz2016-01-19 11:37Jon (LabKey DevOps)2016-01-21 17:08 LABKEY.Message.sendMessage HTML encoding bug TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just noticed that when I upgraded to v15.3 from v15.2, one of my calls to LABKEY.Message.sendMessage() had a significant change in output and seems to be broken. Here is some code that produces the output in question:

<script type="text/javascript">

function getEmailAddress() {
        // Need a real user's email address due to labkey restrictions on email sending
    LABKEY.Query.selectRows({
            schemaName: 'core',
            queryName: 'users',
            columns: ['email'],
            maxRows: 1,
            success: emailURL,
            failure: function() {alert('No emails found!');}
        });
}

function emailURL(data, response) {
    var email = data.rows[0].Email;
    var url='http://www.labkey.org/';
    var msgConfig = {
             msgFrom: email,
             msgSubject: 'Test of URL in HTML email',
             msgRecipients: [
                 LABKEY.Message.createRecipient(LABKEY.Message.recipientType.to, email)
             ],
             msgContent: [
                 LABKEY.Message.createMsgContent(LABKEY.Message.msgType.html,
            'A test <a href="' + url + '">link</a> to labkey.org')
             ],
             failure: function(errorInfo, responseObj) {
                alert('Failed to send email. '+errorInfo.exception);
             }
        };
    LABKEY.Message.sendMessage(msgConfig);
}


Ext4.onReady(function() {
    getEmailAddress();
});

</script>

With v15.3 I get an email containing:
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

A test &lt;a href=&quot;<a href="http://www.labkey.org/&quot;&gt;link&lt;/a&gt;">http://www.labkey.org/&quot;&gt;link&lt;/a&gt;</a> to labkey.org

I haven't run this exact code under v15.2 (as I don't have v15.2 handy anymore), but I have some old emails created by similar code on v15.2 and I believe the output from v15.2 would be:
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

A test <a href="http://www.labkey.org/">link</a> to labkey.org

The message generated by v15.3 results in the follow DOM (using Chrome v47.0 and viewing the message in Gmail):
A test &lt;a href="<a href="http://www.labkey.org/%22%3Elink%3C/a%3E" target="_blank">http://www.labkey.org/"&gt;<wbr>link&lt;/a&gt;</a> to <a href="http://labkey.org" target="_blank">labkey.org</a>

Which doesn't seem to be what I asked for in my call to LABKEY.Message.sendMessage. Let me know if that all makes sense.

thanks,
-Will
eva pujadas2016-07-28 03:05Jon (LabKey DevOps)2016-08-01 23:57 Manipulating Specimens using R API TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are trying to access / modify specimens using Rlabkey without success.

While trying to update one of the tables with R, we got the following error message:
> labkey.insertRows(baseUrl = baseUrl,
+ folderPath = folderPath,
+ schemaName = "study",
+ queryName = "LocationSpecimenList",
+ toInsert = test)
Fehler in processResponse(mydata, header, handle) :
  HTTP request was unsuccessful. Status code = 500, Error message = The query 'LocationSpecimenList' in the schema 'study' is not updatable via the HTTP-based APIs.

Is it basically possible to manipulate specimens using the R API?

Thanks and best,
Eva
A. Tyrell2016-11-08 09:31Jon (LabKey DevOps)2016-11-09 20:45 LabKey and Tableau TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a version of the Javascript API, that allows you to authenticate and access data outside of LabKey.

"LabKey Server uses form-based authentication, by default, for all user-agents (ie browsers). However, it will correctly accept HTTP basic authentication headers if presented. I recommend using Basic Auth when programmatically accessing the server." I tried prepending the username and password to the hostname of the URL but I got the following message when I point the WebConnector tool from Tableau to a javascript export from a dataset with the credentials prepended...
"Redirect from ... to ... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8888' is therefore not allowed access."
bront@kcr.uky.edu2017-03-03 08:38Jon (LabKey DevOps)2017-03-07 01:14 SQL CASE Statement with Boolean TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am working on a SQL query in LabKey with a CASE statement that returns a Boolean value, but I am getting an error ("exceptionClass" : "org.labkey.query.sql.Query$QueryInternalException").

SELECT
CASE
    WHEN Message.gender = 'M' then true
    ELSE false
        END as booleanTest
FROM Message
WHERE Message.messageId = '12345';

Also, I have tried setting the Boolean values to 1 and 0, which enables the query to execute but then I end up with NaN errors when JavaScript code expects true/false.

Is it possible to fix the SQL or should I just refactor my JS code?

Many thanks,

bront
jimp2017-05-05 13:29Jon (LabKey DevOps)2017-05-08 11:13 Deleting /trunk/server/.idea directory Monday May 8th as part of transition to Gradle TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
On Monday May 8th, as one of our final steps in the conversion from Ant to Gradle, we will be deleting the directory: trunk/server/.idea.

This should not cause problems for developers who are already building LabKey using Gradle.

This will break builds for developers using trunk who are still building LabKey using Ant from IntelliJ.

Also, on Tuesday next week we will start deleting the .iml files that are listed for all modules in: /trunk/server/.idea/modules.xml

If you are building LabKey locally and have not yet had a chance to convert to using Gradle please refer to our documentation (https://labkey.org/Documentation/wiki-page.view?name=gradleBuild) and the webinar about building LabKey with Gradle (https://youtu.be/Yso6c7V8GPU) for more details about converting.

More info on the transition to Gradle can be found in past forum posts here: https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=12615

Thanks,
Jim
Ben Bimber2017-10-13 12:34Jon (LabKey DevOps)2017-10-13 12:43 Possible to enable LDAP authentication, but only if a LK account is created? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a site where users need to register. For convenience, I'd like to connect this to our institution's LDAP server, since a good portion of users will come from there. However, when I do this any valid LDAP account can immediately log on, at least to the level of what 'All Sites Users' can view. This is presumably because as soon as someone logs in with a valid LDAP account, a LabKey user is created.

Is there any way to get behavior such that LDAP will be used for authentication, but only if there was an account created on the LK side (i.e. dont auto-create from LDAP)?

Thanks for any help.
Ben Bimber2017-11-14 14:41Jon (LabKey DevOps)2017-11-14 15:21 LabKey sites and google search? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

We have a LabKey site designed to share data, but most content is behind a password. I registered our URL with google, but as expected there's a limited # of pages they can index. However, if you look at what's indexed, we're getting actions like resetPassword indexed. This isnt a bug per-se, but I thought I'd point this out in case there's anything that would make sense to add meta tags or similar that might block google crawlers (such as https://support.google.com/webmasters/answer/93710?hl=en). An example of our google hits are here (not sure if you'll get the same hits as me).

https://www.google.com/search?q=mgap+ohsu
A. Tyrell2018-02-21 13:04Jon (LabKey DevOps)2018-02-21 14:01 Length of a Column Exceeds 4000 characters TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I would like to import data in either a list or a dataset but I am running into an issue where I cannot import a column if its length exceeds 4000 characters.
I changed the data type from Text to Memo as well.

Thanks,

Alicia
WayneH2018-04-30 05:43Jon (LabKey DevOps)2018-05-18 13:52 upload file sanity check and verification in Labkey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good morning all,

We want to verify that a file correctly matches a specific naming convention upon completion of upload.. Via the files web part or javascript. Do you have any insight as to how we may accomplish this?


Thanks,

Wayne H
Jon (LabKey DevOps)2021-04-22 13:20Jon (LabKey DevOps)2021-04-26 19:37 Maintenance Notice: Migration of artifactory.labkey.com for Monday, April 26th @ 8am PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We will be working to migrating the current artifactory.labkey.com instance to a new server starting on Monday, April 26th at 8am PST.

During this time, all TeamCity jobs will be paused and Artifactory will be unavailable during the migration.

The estimated downtime is approximately two hours.

We apologize for any inconvenience this may cause.
Jon (LabKey DevOps)2022-03-04 10:38Jon (LabKey DevOps)2022-03-04 10:38 Maintenance Notice: artifactory.labkey.com access will be limited for Friday, March 4th 2022 @ 4pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Special work is required for the artifactory.labkey.com server this early evening at 4pm PST.

During this time, the TeamCity queue will be paused and the artifactory.labkey.com server will be intermittently available.

The expected outage window will last no later than 5pm PST.

We apologize for an inconvenience this may cause.
natalie.tasman@insilicos.com2009-06-25 17:13Jon (LabKey DevOps)2015-04-28 21:54 Labkey Server API access for both container and data manipulatulation TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello all,

I've been corresponding with Dave S., who followed up to my original post to the cpas-developers list. I'd thought I'd repost here, as Dave explained that most traffic is currently on these forums. Dave helped me refine my questions, so I think I have more of the terminology down at this point :)

I'm interested in completely standalone access. For example, consider a small perl commandline script that would create a new proteomics ms2 project and load hundreds of files per project. According to Dave, this functionality isn't yet in the API; he did mention that it might be possible to do something similar through pipeline automation. Any info on both topics (extending the API and pipeline automation) would be much appreciated.

As I posted to the cpas-dev list, I've met some of the LabKey team before, but by way of introduction: I am recently employed at Insilicos, working primarily with Brian Pratt. Previously I was at the ISB in the Aebersold Lab as one of the primary TPP developers. I'll still be working with the TPP, as well as probably getting more experience with LabKey as part of the ongoing work Brian is doing.

By the way, the link from the Forums page (https://www.labkey.org/project/home/Developer/Forum/begin.view?) to the CPAS Proteomics forum is broken (https://project/home/CPAS/support/start.view?)

Thanks,

Natalie
Brian Pratt2009-08-06 17:35Jon (LabKey DevOps)2015-04-28 21:54 suggestions for enterprise pipeline network architecture? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
So I'm turning my attention to an Amazon EC2 implementation of the Enterprise Pipeline, and wonder if anyone could do a quick and dirty network diagram of a typical layout or layouts.

The major pieces would seem to be the LabKey web server, database server, Conversion server, Globus GRAM server and the search cluster nodes. The cluster nodes are what they are, the conversion server is a windows box (they do have those on EC2 now), but it seems the other bits could be on one or many different linux machines. Clearly how that gets divvied up depends a lot on anticipated load, any general rules on how what goes where in general?

Thanks,

Brian
Ben Bimber2010-03-18 06:14Jon (LabKey DevOps)2015-04-28 21:55 Schedule perl script as pipeline job? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
is it possible to schedule a perl script to run as a pipeline job? since I assume this is run as the labkey user, does this mean any authentication for the API is handled, much like when we run R scripts within labkey? i'm thinking about scheduling a postgres backup script.

if scheduling in the pipeline is not easily possible, could this be faked by creating the script, then setting it up to 'run in background as a pipeline job', as seems to be possible with perl reports?
Ben Bimber2010-08-09 12:01Jon (LabKey DevOps)2015-04-28 21:59 possible to change default behavior on some dataset fields? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
study datasets have the following fields:

created
modified
SequenceNum

the above fields are (i think) automatically populated, implying that they are not shown in the default insert view.

when you run getQueryDetails, this API returns metadata for a given dataset. Each field has a 'shownInInsertView' property. these fields all have showInInsertView=true. assuming that my logic above is correct, can that get changed to false? i'm designing EHR form code and it would be nice if the API returned a more sensible value.

i've come up with fixes, so it's not an immediate problem, but it'd be nice to fix the api. i wouldnt be surprised if this just never came up before.

thanks.
Ben Bimber2010-08-30 07:01Jon (LabKey DevOps)2015-04-28 21:59 looking for advice/insight into EditorGridPanel column widths TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have been trying to improve the behavior of LABKEY.EditorGridPanel. For the EHR we are creating data entry forms. In some sections of a form, we need to support a variable number of entries (ie. a patient was given some number of medication during a visit. the number of distinct records per form will vary). Using something like LABKEY.EditorGridPanel is a descent way to accomplish that.

I've talked about this with at least 1-2 other devs, so I dont think I'm the only person with this problem: EditorGridPanel almost never renders with appropriate column widths. I believe this stems from the fact that it uses the 'scale' property that's returned by the API (which itself is a little questionable at times). EditorGrid sets a fixed with for every column. The problem arises if the total width it sets exceeds the width of your grid. You end up with some columns inappropriately wide and the columns on the right being ~10px wide. In the 1-2 cases where we use this (column width is precisely why we dont), I added a columnModelCustomize handler that manually sets widths.

My first question is: is there something I'm missing about the use of EditorGridPanel? Was it designed to be used in some manner that results in friendlier column widths?

In a perfect world, perhaps the grid would behave a little more like an HTML table - with columns auto-sizing. I've been scouring the Ext forums, but have not yet found an ideal solution to produce that behavior. Below are thoughts I have come up with that might improve the column width behavior:

1. stop trying to set width altogether in EditorGridPanel. this results in equal width columns. equal width is not always what you want, but at least columns stop getting cut off

2. continue to use the scale property, but rather than use that value as the width, find the proportion of available width. ie. if you have 5 columns, each with a scale property of 100, but your total grid with is 400, then each column gets: AvailWidth/TotalRequestedWidth * Scale. This assumes that the API is providing a reasonable estimate for the column width relative to the other columns. We just down-size according to available space.

3. there is an approach used in plugin called autosizecolumns. the plugin itself adds a handler so that when you doubleclick a column, it auto-resizes (like excel). that might be a nice addition to editgridpanel, but does not solve the problem that onRender it has odd column widths.

4. the plugin determines column width by setting the width to 0, finding the scrollWidth property, then setting the width to that. perhaps this logic or something like it could get incorporated into LABKEY.EditorGridPanel? The problem is that this works when the grid has data, but makes less sense when it is empty. it would auto-size based on the header in that case.

5. maybe look into the API such that the scale property it returns makes more sense?

My initial thoughts are something along the lines of combining #2 with #3. Does anyone else have thoughts about how column width should get handled?

Thanks for any help.
slangley@scharp.org2010-09-30 15:00Jon (LabKey DevOps)2015-04-28 22:00 The keys[] array in Query.ModifyRowsResults? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When I do a LABKEY.Query.insertRows() command via the JavaScript API on an external schema in PostgreSQL, the object passed to the successCallback function doesn't appear to have a keys[] property as I read in the documentation here:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.ModifyRowsResults.html

To find the primary key of the row(s) inserted, I have to inspect the row[] array for what I know to be the primary key field for that particular table.

Is this a known limitation?

Thanks.

Scott Langley
Ben Bimber2011-01-02 07:17Jon (LabKey DevOps)2015-04-28 22:00 error messages returned by saveRows.view TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I submitted data to the server using saveRows.view, where some rows lacked participantIds and dates. The server should clearly reject these; however, instead of an intelligible error message being returned to the client, it threw a java error (below) and simply returned 'Internal Server Error'. It would be better if it returned something more descriptive. That logic is easy enough to throw in an EHR validation script; however, it would be best if the server took care of validating required fields.

Below is the full message:

ERROR ExceptionUtil 2011-01-02 09:11:40,772 http-8080-Processor22 : Unhandled exception: 500: Unexpected server error
java.lang.AssertionError: All dataset rows should be associated with a participant/Id
    at org.labkey.study.query.DatasetUpdateService.getParticipant(DatasetUpdateService.java:99)
    at org.labkey.study.query.DatasetUpdateService.insertRow(DatasetUpdateService.java:77)
    at org.labkey.api.query.AbstractQueryUpdateService.insertRows(AbstractQueryUpdateService.java:99)
    at org.labkey.study.query.DatasetUpdateService.insertRows(DatasetUpdateService.java:66)
    at org.labkey.query.controllers.QueryController$CommandType$2.saveRows(QueryController.java:2672)
    at org.labkey.query.controllers.QueryController$BaseSaveRowsAction.executeJson(QueryController.java:2812)
    at org.labkey.query.controllers.QueryController$SaveRowsAction.execute(QueryController.java:2937)
    at org.labkey.query.controllers.QueryController$SaveRowsAction.execute(QueryController.java:2891)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:144)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:95)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:167)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:349)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:756)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:166)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:603)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:138)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:619)
Ben Bimber2011-03-22 09:02Jon (LabKey DevOps)2015-04-28 22:01 relative URLs / contextPath in wikis TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in HTML pages, labkey allows substitutions like <%=contextPath%> to permit relative URLs. does something similar exist for wiki pages? I did not see anything here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=moreWikiSyntax

I tried to edit the source of the wiki page, and inserted <%=contextPath%>, but that gives an error. If there is no substitution, how does one generally write relative URLs in wikis? the links in question are not to other wiki pages (which have a special syntax). examples would include:

1. linking to executeQuery.view to show a table
2. linking to an HTML page defined in a module
3. could apply to pretty much any other labkey page.

thanks in advance.
Ben Bimber2011-03-28 05:16Jon (LabKey DevOps)2015-04-28 22:01 exp.runs jobStore column TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in exp.runs, there is a column called jobStore. That columns contains a string of the XML associated with that job's XML file (protocol i think is labkey's term). In other contexts Labkey is able to return the XML of a run as a JSON object. Is there any pre-existing mechanism to return this XML in a json or other more JS friendly format, like you added around 10.2 or 10.3?

i'm interested b/c I would like to make a mechanism to present the user with a 'job summary' text output that essentially takes the info from the XML file and presents it more along the lines of a table.

thanks in advance.
Ben Bimber2011-04-08 08:27Jon (LabKey DevOps)2015-04-28 22:01 weird behavior from a lookup #2 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a list with a list of employees. the PK is the employee ID. We have a second list where one column is employeeId, and it looks up to the first list. the default view on the employee list applies a filter to show only active employees.

the employee list has a record where the PK is 'disalvo'. this record does exist, but that employee is inactive, so that record is not present in the default view. the second list has a record where 'disalvo' is used. This shows up like a broken lookup. The only explanation I can see would be that disalvo isnt part of the default view. however, this row does exist and that lookup should not behave like it cannot be resolved.

this seems like a bug to me.
Ben Bimber2011-04-26 08:13Jon (LabKey DevOps)2015-04-28 22:01 pipeline configuration when trying to accept multiple file extensions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a pipeline defined in the sequenceAnalysis module. I'd like to enable this pipeline to execute on 4 different input file extensions. at this point i'm open to ugly workarounds, like creating 4 distinct pipeline definitions. Here is what I have unsuccessfully tried thus far:

Tried using this XML, patterned off microarray:

        <!--<constructor-arg>-->
            <!--<list>-->
                <!--<value>.sff</value>-->
                <!--<value>.fastq</value>-->
                <!--<value>.fasta</value>-->
                <!--<value>.fa</value>-->
                <!--<value>.fq</value>-->
            <!--</list>-->
        <!--</constructor-arg>-->
        <!--<constructor-arg value=".sff"/>-->

If I use this, the pipeline will recognize all those extensions (ie. labkey will allow me to initiate a pipeline job). The problem is that this pipeline executes on a different server. The first step of such a pipeline involves copying the input file from the labkey server to the client server. If I use the above XML, labkey always appends '.sff' to the input file's name. It therefore fails because 'input.fastq.sff' does not exist (assuming the input file originally had a .fastq. extension). Example error log here:

https://xnight.primate.wisc.edu:8443/labkey/pipeline-status/WNPRC/WNPRC_Units/Research_Services/Research_Computing/SequenceAnalysis/showFile.view?rowId=356&filename=flu.fastq.log

2. I tried duplicating the "org.labkey.api.pipeline.TaskPipelineRegistrar" class once per file extension. I gave each instance a distinct initialInputExt property. When I did this, the last instance of TaskPipelineRegistrar seemed to stomp on the first ones. The pipeline successfully worked for that file extension, but not the earlier ones.

3. I tried duplicating the org.labkey.api.pipeline.file.FileAnalysisTaskPipelineSettings block within a single TaskPipelineRegistrar. same outcome as above.



I looked throughout subversion and found a few examples or other pipelines microarray and ms2 do similar things and I have a few questions:

1. microarrayContext.xml uses multiple file extensions. it's the only example I saw where a pipeline did this. it has:

    <bean id="tiffFileType" class="org.labkey.api.util.FileType">
        <constructor-arg>
            <list>
                <value>.tiff</value>
                <value>.tif</value>
            </list>
        </constructor-arg>
        <constructor-arg value=".tiff"/>
    </bean>

when i try something similar for sequencing, i get an error. I hit that error only b/c I am running this pipeline split between 2 servers. do existing microarray pipelines always execute on the same server as labkey? if none of these use 2 servers, then plausibly this was just never an issue before. if not, i'm confused why i get an error specifically for this pipeline.

2. in the pipeline config you originally sent, the pipeline property of the TaskPipelineRegistrar used the class "org.labkey.api.pipeline.file.FileAnalysisTaskPipelineSettings" instead of TaskPipelineSettings. The latter is used by several other pipelines. In fact ms2context.xml actually has multiple beans for org.labkey.api.pipeline.TaskPipelineSettings in the same file, which is what Josh originally suggested. I tried that, but only the last bean was recognized. What's the difference between TaskPipelineSettings and FileAnalysisTaskPipelineSettings?

Are there other things I should be trying? Are there other ways to just duplicate the whole pipeline config and create one pipeline config per file extension?

Thanks for any help.
Ben Bimber2011-05-01 12:33Jon (LabKey DevOps)2015-04-28 22:01 coax QCState column to show up in default views? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
study datasets have a QCState column. when using a QWP or executeQuery.view (ie. not datasets.view), this column does not appear in the default view. I am trying to reverse that. I was hoping I would be able to override the metadata on that column and make it appear in the default view, but this has not been successful so far. I have tried:

1. adding this to studydata.query.xml:

                    <column columnName="QCState">
                        <isHidden>false</isHidden>
                        <shownInDetailsView>true</shownInDetailsView>
                        <!--<columnTitle>Status</columnTitle>-->
                    </column>

2. tried adding the above to specific datasets

3. created a file called QCState.query.xml in order to alter the metadata on the QCState table. I tried altering shownInDetailsView and isHidden for label and rowid, with no effect

Can this be done? Thanks for any help or suggestions.
Ben Bimber2011-06-08 11:53Jon (LabKey DevOps)2015-04-28 22:02 query based on list that has file attachment columns does not render attachments normally TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i have a list where one column has a type of file attachment. when you load this list in labkey, that column renders with the file icon and it is a link to download the file. if i write this query:

select * from lists.myTable

then the file columns render normally. if i do:

select column1, fileColumn from lists.myTable

then the file columns render with the file icon, but they are not links to download the file. should I do writing the second SQL differently? the reason I do not want select * is two-fold. first, I'm writing this second query so that users cannot see some of the original columns, even if they try. second, 'select *' causes normally hidden column to stop being hidden.

thanks.
Melissa Laurie2011-07-15 16:08Jon (LabKey DevOps)2015-04-28 22:02 TB Server Issue Tracker Crash TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When I tried to change the name of the Areas field on the issue tracker it crashed the tracker.
I am with the TB Systems Biology group. Thank you.
https://tbsystemsbiology.org/issues/TB%20Systems%20Biology%20Intranet/Proposals/list.view?#details

An unexpected error occurred
Column (Admin Only) already exists.

Show more details

java.lang.IllegalArgumentException: Column (Admin Only) already exists.
       at org.labkey.api.data.AbstractTableInfo.addColumn(AbstractTableInfo.java:383)
       at org.labkey.issue.query.IssuesTable.addAllColumns(IssuesTable.java:95)
       at org.labkey.issue.query.IssuesTable.<init>(IssuesTable.java:48)
       at org.labkey.issue.query.IssuesQuerySchema$TableType$1.createTable(IssuesQuerySchema.java:43)
       at org.labkey.issue.query.IssuesQuerySchema.createTable(IssuesQuerySchema.java:94)
       at org.labkey.api.query.UserSchema._getTableOrQuery(UserSchema.java:99)
       at org.labkey.api.query.UserSchema.getTable(UserSchema.java:75)
       at org.labkey.query.TableQueryDefinition.getTable(TableQueryDefinition.java:201)
       at org.labkey.api.query.QueryView.createTable(QueryView.java:1745)
       at org.labkey.api.query.QueryView.getTable(QueryView.java:1752)
       at org.labkey.api.query.QueryView.renderDataRegion(QueryView.java:1455)
       at org.labkey.api.query.QueryView.renderView(QueryView.java:1227)
       at org.labkey.api.view.WebPartView.renderView(WebPartView.java:778)
       at org.labkey.api.query.QueryView.renderView(QueryView.java:1252)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
       at org.labkey.api.view.HttpView.render(HttpView.java:139)
       at org.labkey.api.view.HttpView.render(HttpView.java:121)
       at org.labkey.api.view.HttpView.include(HttpView.java:542)
       at org.labkey.api.view.HttpView.include(HttpView.java:519)
       at org.labkey.api.view.HttpView.include(HttpView.java:510)
       at org.labkey.api.view.VBox.renderView(VBox.java:71)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
       at org.labkey.api.view.HttpView.render(HttpView.java:139)
       at org.labkey.api.view.HttpView.render(HttpView.java:121)
       at org.labkey.api.view.HttpView.include(HttpView.java:542)
       at org.labkey.api.view.HttpView.include(HttpView.java:519)
       at org.labkey.jsp.compiled.org.labkey.api.view.template.CommonTemplate_jsp._jspService(CommonTemplate_jsp.java:222)
       at org.labkey.api.view.JspView.renderView(JspView.java:121)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
       at org.labkey.api.view.HttpView.render(HttpView.java:139)
       at org.labkey.api.view.HttpView.render(HttpView.java:121)
       at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:447)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:356)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:756)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:609)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
       at java.lang.Thread.run(Thread.java:662)

request attributes
LABKEY.StartTime = 1310769503204
javax.servlet.request.ssl_session = 4e20be6847be3fd3e6aa06a8143bc73a7529995e9c3e73bc1a906f06a7b30469
LABKEY.container = /TB Systems Biology Intranet/Proposals
LABKEY.action = list
LABKEY.RequestURL = /issues/TB%20Systems%20Biology%20Intranet/Proposals/list.view?
javax.servlet.request.key_size = 128
LABKEY.OriginalURLHelper = /issues/TB%20Systems%20Biology%20Intranet/Proposals/list.view?
LABKEY.controller = issues
javax.servlet.request.cipher_suite = TLS_DHE_RSA_WITH_AES_128_CBC_SHA
LABKEY.OriginalURL = https://tbsystemsbiology.org/issues/TB%20Systems%20Biology%20Intranet/Proposals/list.view?
LABKEY.Counter = 0

core schema database configuration
Server URL    jdbc:postgresql://localhost/labkey
Product Name    PostgreSQL
Product Version    8.4.7
Driver Name    PostgreSQL Native Driver
Driver Version    PostgreSQL 9.0 JDBC4 (build 801)
trent2011-08-24 17:02Jon (LabKey DevOps)2015-04-28 22:02 Specifying PK On Query with a Join TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Anyone know how do I specify a PK when my query has a join (or if its possible)?

Im generally use the LABKEY.DataRegion object to get the selected items, but when there's a join, no column is marked as a PK, so just returns an empty set of strings as the checked items.

LABKEY.DataRegions[wp.dataRegionName].getChecked()

https://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/schema-summary.html :

<xs:element minOccurs="0" name="pkColumnName" type="xs:string">
<xs:annotation>
<xs:documentation>
A comma-separated ordered list of the column name values that comprise the primary
key of the table. Used for list export/import.
</xs:documentation>
</xs:annotation>
</xs:element>

https://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/elements/pkColumnName.html

XML Representation Summary
<dat:pkColumnName
       
Content:
{ xs:string }
</dat:pkColumnName>

So I tried adding to my metadata xml:

<ns:tables xmlns:ns="http://labkey.org/data/xml">
  <ns:table tableName="test1" tableDbType="NOT_IN_DB">
    <ns:columns>
      <ns:column columnName="specimen_id">
        <ns:description>blabla</ns:description>
      </ns:column>
    </ns:columns>
    <ns:pkColumnName>
    list_id
    </ns:pkColumnName>
  </ns:table>
</ns:tables>

Is my syntax fail? (It doesn't mark that col as PK)
awilson@iavi.org2011-10-21 11:10Jon (LabKey DevOps)2015-04-28 22:02 TZM Nab Assay Four Parameter TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the TZM Nab assay there are options for 4 Parameter and 5 Parameter log graphing functions. We do not use the same plate layout as the assay module requires. Is there a way to build this in from SQL or R scripts to generate the IC50/80 results. What is the source code for the calculations written in and is it available?
Brian Connolly2012-02-17 13:33Jon (LabKey DevOps)2015-04-28 22:03 LabKey Server v11.3 Security Hotfix available TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

In the course of our normal testing, we have identified a vulnerability that could allow attackers to gain access to non-public data. This issue affects version 10.3 through 11.3. We have found no evidence of any attempts to exploit the vulnerability.

We have a patched version of 11.3 ready for deployment, and recommend that it be applied as soon as possible. You can download the new patched version of 11.3 from our download site at http://www.labkey.com/forms/register-to-download-labkey-server

Brian Connolly
mpeterson@mitre.org2012-03-06 09:14Jon (LabKey DevOps)2015-04-28 22:03 File upload using Java API (FormViewAction) TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have a question about using Spring's MultipartFile class in a form. Can this be done using a FormViewAction, or do I need to superclass the standard Spring controllers to do this? I've tried using a form bean that has a Multipartfile, but always get null for the object, but when I switch to Strings, everything works OK.

Thanks,
Matt
jdutra2012-05-08 07:31Jon (LabKey DevOps)2015-04-28 22:03 Audit log in 12.1 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi - Sorry to post this again, but I have verified that what I wrote below is also true in 12.1. Any suggestions for how to handle this would be much appreciated - change tracking is extremely important for some of our new studies.

 ** I have just noticed a difference in the audit log for dataset events between 11.1 and 11.3. In 11.1, creation of new records was tracked. A record would appear with the notation "A new dataset record was inserted" and the email of the user who created the record. In addition, you could click on Details to see what information was in the record.

In 11.3, it appears that creation of new records is no longer recorded in the dataset events log. Modifications are there, but I don't see any insertions. Is there a way to turn that on and off now, and we somehow have it off? In addition, I notice that a problem from last year involving the created by (user and date) information in the datasets being overwritten (https://www.labkey.org/announcements/home/Developer/Forum/thread.view?entityId=57d02455-5944-102e-83ef-56716a13d9ec&_docid=thread%3A57d02455-5944-102e-83ef-56716a13d9ec) has never been fixed. Which means that right now once a record has been modified, we have no information anywhere about when it was created or who created it. Is there somewhere else I should look for this? **

Thanks for your help, Jen
jdutra2012-08-20 06:32Jon (LabKey DevOps)2015-04-28 22:04 other_specimen_id and parent_specimen_id fields TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Last month I asked about these fields, and was told that they don't do anything special (like provide links) but they are optional fields that I can use and query if I choose. The big problem I'm having at this point is that I can't find any of these fields. For example, I've decided to put the GlobalUniqueID for a linked specimen into the other_specimen_id field (as listed in the help). I checked my inventory.specimens file, and I have the ids right where I want them. But after I import, I can't find the data or the field anywhere. The table on the help page (https://www.labkey.org/wiki/home/Documentation/page.view?name=specimenArchiveFileFormat) says that other_specimen_id is an attribute of "Event". So I looked for it by clicking on the history of the specimen, but there's nothing there. I tried customize view on the history screen to see if that field was not included in my default view, but didn't find it there either. I went to the schema browser and looked at the field lists for all of the specimen tables, but still didn't find it. Could someone point me in the right direction so that I can get to this field and use it in a query or custom view?

Thanks so much,
Jen
tstellin@scharp.org2012-12-27 10:17Jon (LabKey DevOps)2015-04-28 22:07 X-axis labels with LABKEY.vis.Plot TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm using the LABKEY.vis.Plot api to create a levey-jennings graph for viability data. On the whole everything works great (it's quite intuitive to use!) but I had a question about X-axis labels: is there any mechanism to draw them vertically? In my graph each tick is a date + specimen ID, so each label can be upwards of 20 characters. The graph must also render upwards of 60-70 ticks. Unless I set the graph width to several thousand pixels, the X-axis labels look scrunched together (see screenshot). If not, that's fine--I'll work out some other solution.

Thanks,
-Tobin
Anthony Corbett2013-01-25 07:09Jon (LabKey DevOps)2015-04-28 22:07 error in executeSql() - Faceted Filtering on QueryWebPart in child folder TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I have a customized view of SpecimenSummary and in a child container I've created a wiki page and added the following QueryWebPart:

function renderGrid( pid ) {
    if(pid) {
      qwp = new LABKEY.QueryWebPart({
        renderTo: gridDivId,
            containerPath: '/ZandR01/Clinical Studies/32056 - ABO',
        schemaName: 'study',
        queryName: 'SpecimenSummary',
            viewName: 'LabSpecimenSummary',
            removeableFilters: [
        LABKEY.Filter.create('ParticipantId', pid)
        ],
            sort: 'SequenceNum,PrimaryType,DerivativeType',
            allowChooseQuery: false,
            allowChooseView: false,
            frame: false
      });
    }
  }

All worked well until you try to filter on any column that has Faceted Filtering behavior enabled. In 12.2 it hangs trying to render the filter dialog (you have to refresh the whole page to get out of it as it is a modal dialog) and on 12.3 the filter dialog shows but the loading of the 'choose values' tab never happens (I can atleast go to choose filter and that works).

When I open firebug I can see an error response from the server during an executeSql operation. Here is the Request and Response:

-------------
-- Request
--------------
Parametersapplication/x-www-form-urlencoded

apiVersion    9.1
maxRows    250
schemaName    study
sql    SELECT CASE WHEN value IS NULL then '' ELSE cast(value as varchar) END as value, null as displayValue FROM (SELECT DISTINCT t.ParticipantId AS value FROM "SpecimenSummary" t) s

Source
schemaName=study&sql=SELECT%20CASE%20WHEN%20value%20IS%20NULL%20then%20''%20ELSE%20cast(value%20as%20varchar)%20END%20as%20value%2C%20null%20as%20displayValue%20FROM%20(SELECT%20DISTINCT%20t.ParticipantId%20AS%20value%20FROM%20%22SpecimenSummary%22%20t)%20s&maxRows=250&apiVersion=9.1

-------------------
-- Error Response
-------------------

{
    "exceptionClass": "org.labkey.api.query.QueryParseException",
    "exception": "Error on line 1:Table SpecimenSummary not found.",
    "stackTrace": [
        "org.labkey.query.sql.Query.parseError(Query.java:547)",
        "org.labkey.query.sql.Query.resolveTable(Query.java:614)",
        "org.labkey.query.sql.QuerySelect.initializeSelect(QuerySelect.java:257)",
        "org.labkey.query.sql.QuerySelect.<init>(QuerySelect.java:122)",
        "org.labkey.query.sql.Query.createQueryRelation(Query.java:264)",
        "org.labkey.query.sql.QuerySelect.createSubquery(QuerySelect.java:152)",
        "org.labkey.query.sql.QuerySelect.initializeSelect(QuerySelect.java:249)",
        "org.labkey.query.sql.QuerySelect.<init>(QuerySelect.java:122)",
        "org.labkey.query.sql.Query.createQueryRelation(Query.java:264)",
        "org.labkey.query.sql.Query._parse(Query.java:231)",
        "org.labkey.query.sql.Query.parse(Query.java:194)",
        "org.labkey.query.sql.Query.parse(Query.java:210)",
        "org.labkey.query.QueryDefinitionImpl.getQuery(QueryDefinitionImpl.java:296)",
        "org.labkey.query.QueryDefinitionImpl.getQuery(QueryDefinitionImpl.java:281)",
        "org.labkey.query.QueryDefinitionImpl.getTable(QueryDefinitionImpl.java:358)",
        "org.labkey.api.query.QueryView.createTable(QueryView.java:2108)",
        "org.labkey.api.query.QueryView.getTable(QueryView.java:2115)",
        "org.labkey.query.controllers.QueryController$ExecuteSqlAction.execute(QueryController.java:2508)",


It looks to me that the executeSql operation is not taking the containerPath I set on the QueryWebPart into consideration.
Ben Bimber2013-04-26 09:46Jon (LabKey DevOps)2015-04-28 22:07 excel error when exporting a column that uses scientific notation TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a table where the format string on a numeric column is: '0.###E00'. When we export this grid to excel (both 97 and 2007 formats), excel gives errors, complaining about bad formatting. The excel error is kinda cryptic:

<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<logFileName>error022040_01.xml</logFileName>
<summary>
Errors were detected in file 'C:\Users\bimber\Desktop\Data_2013-04-26_09-40-38.xlsx'
</summary>
<repairedRecords summary="Following is a list of repairs:">
<repairedRecord>
Repaired Records: Format from /xl/styles.xml part (Styles)
</repairedRecord>
</repairedRecords>
</recoveryLog>

however, i think I narrowed the problem down to having a column that uses scientific notation (the format string above). seems like a bug?
Leo Dashevskiy2013-07-03 12:20Jon (LabKey DevOps)2015-04-28 22:08 What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
to be able to update the Labkey data base tables with changes made to this store?

Thanks.
-Leo
Leo Dashevskiy2013-09-04 16:43Jon (LabKey DevOps)2015-04-28 22:08 Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If so, what is the proper syntax?

SELECT DISTINCT
 CAST( projections.name AS INT ) AS Index
...

does not seem to work...

Thanks.
-Leo
Anthony Corbett2013-10-15 15:07Jon (LabKey DevOps)2015-04-28 22:08 13.2 Dataset label versus name - Can't find ViewName TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm doing some internal upgrade testing on 13.2 for our servers and I noticed that the labkey log file now produces warnings for doing a Query.selectRows API call where the queryName is the dataset label and not the dataset name:

WARN DataSetQueryView 2013-10-15 17:15:13,599 TP-Processor5 : Dataset in schema'study' was referenced by label (Protocol Deviation), not name (protocolDeviation).

When no viewName parameter has been specified, this seems to be just a warning and the QUERY API selectRows still returns the data as expected. However if you have a custom viewName specified you get an error:

Parameters:
query.queryName    'Protocol Deviation'
query.viewName    'Protocol Deviation Report'
schemaName    'study'

Error:
{
  "exceptionClass" : "org.labkey.api.view.NotFoundException",
  "exception" : "The view named 'Protocol Deviation Report' does not exist for this user!",
  "stackTrace" : [ "org.labkey.query.controllers.QueryController$SelectRowsAction.execute(QueryController.java:2190)", "org.labkey.query.controllers.QueryController$SelectRowsAction.execute(QueryController.java:2148)", "org.labkey.api.action.ApiAction.handlePost(ApiAction.java:161)", "org.labkey.api.action.ApiAction.handleGet(ApiAction.java:94)", "org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:88)", "org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:177)", "org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)", "org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:354)", "org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:989)", "org.labkey.api.view.ViewServlet.service(ViewServlet.java:165)", "javax.servlet.http.HttpServlet.service(HttpServlet.java:717)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)", "org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)", "org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)", "org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:800)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)", "org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:171)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)", "org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)", "org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)", "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)", "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)", "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)", "org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)", "org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)", "org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:311)", "org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)", "org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)", "org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)", "org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)", "java.lang.Thread.run(Thread.java:724)" ]
}

If I change the queryName in the above Paramters from the dataset label 'Protocol Deviation' to the dataset name 'protocolDeviation' it works 13.2 but breaks on 13.1.

Seems like 13.1 does viewName resolution is based on dataset label and now in 13.2 veiwName resolution is based on dataset name.

So the change from dataset label to name is almost backwards compatible, except when using an explicit viewName. Since there is a warning message now for API calls based on dataset label is it Labkey's recommendation going from 13.2 forward to use dataset name for queryName parameter?

Also, the above error isn't logged in labkey.log file. It is returned to the browser, which is where I copied it from.
Ben Bimber2013-10-23 09:18Jon (LabKey DevOps)2015-04-28 22:08 Calculate Age in Years + Days using LabKey SQL? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to create a calculated field showing the age of subjects in a person-friendly years and days (ie. "1 years and 28 days"). LabKey SQL has functions for timestampdiff(), age(), etc. There's two pieces to this problem: rounded age in years and the remainder days. The first is easy. The second is where I have a problem. Currently I have an expression that takes the decimal portion of age-in-days divided by 365. That's pretty close, but leap years are a problem. I'm trying to figure out a better solution, but dont have any good ideas.

If I cannot find anything in SQL, my next idea is to give this a custom DisplayColumn, which renders a string using java code. The advantage is that I have a lot more ability to calculate/format my value. The drawback is that I lose some ability to sort/filter. This said, I could be smart about the raw value, and still get some reasonable behavior.

Thanks for any ideas.
rsautera2013-11-21 14:42Jon (LabKey DevOps)2015-04-28 22:08 Filter $labkey.data using a query view TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I want to filter some data associated with a report.

I followed the instructions here to create an XML query view:
https://www.labkey.org/wiki/home/Documentation/page.view?name=addCustomQueryView

The organisation of my module is as follow:
├── queries
│   └── hipcdb
│   └── study_pubmed
│   └── study_pubinfo.qview.xml
├── README
├── reports
│   └── schemas
│   └── hipcdb
│   └── study_pubmed
│   └── study_pubinfo.Rmd

My query view is:
<customView xmlns="http://labkey.org/data/xml">
        <filters>
                <filter column="study_accession" operator="eq" value="SDY61"/>
        </filters>
</customView>

No matter what I write in the qview, the report doesn't seem to pick up the changes.

Is a query view the right tool for this?
Is the file tree correct?
Do I have to bounce the server to pick up changes from a queryview? Or a new build is enough?

Renan
alx dobre2015-04-30 02:51Jon (LabKey DevOps)2015-05-28 23:44 Send report result via mail regularly TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello fellow developers :)

I have the following requirements to implement: do a query report and send the results via mail every day if and only if the data returned by the report changes.

I did the query report and it works properly. I reviewed the LK documentation and set myself up to be notified when that report changes (placed it in a category and managed notifications). The report is both visible and active.

Problem is, 24 hours later I have not received any notification. I know the server can send mails cause we can receive the user creation/update mails.

Here are my questions:
- Is this the right approach for the above requirements or would you implement it differently?
- can I manually test the sending of a report change digest mail? if so how?
- at what time each day is the 24 hour digest sent?
- where can I see a record of the e-mails sent by the system?
- is the digest triggered by changes in the data returned by the query report? or just a change in the report parameters?
- I saw that only a LK user can register to be notified by a report -> I need to register just an e-mail -> so can I achieve this via a custom JAVA module = run a report regularly and send the result via mail to a specific e-mail?


Thank you in advance for your time :)
martin2015-05-19 01:39Jon (LabKey DevOps)2015-06-03 22:37 module-defined schema permissions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
i defined new schema in my module (placed under resources->schemas), activated module in my project and LabKey successfully loaded all my tables so that I can work with them from any place inside the project.
This works great.

However, i cannot find a way to assign permissions to tables of this schema.
If I understand correctly, it isn't folder based, therefore it is fully available to anyone who has at least reader permissions to the whole project and an option to click their way (or is able to guess the url) to the page that displays it all.

This is a problem, because users can see all the information in these tables, and not (for example) only information they entered.
It will be crucial for us to have an option to hide rows based either on a specific value somewhere in that particular rows (eg. based on group they belong to)

Or at least somehow imitate the folder based security of lists...so that users will see only information connected to the folders they have reader permissions in.

Could you help us with that?
Thank you very much
Martin
cheryl2015-10-29 15:04Jon (LabKey DevOps)2015-11-02 15:33 Assay Design created from Assay Module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi-
I created an assay module with the fields defined in a results.xml file.
One of the fields that was originally defined in the results.xml file was defined as an int.
I know that I can change the xml file definition to string, but as far as I can tell, that would only affect new assay designs.
There is already data populated into an assay design that was created from this module, but the lab using that assay design had never filled data into the field that I want to change the field type for.
Is there any way to change that field type or delete the field and add a new field back in to the actual assay design?
eva pujadas2015-11-13 04:01Jon (LabKey DevOps)2015-11-13 13:07 500: Unexpected server error with NullPointerException TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
That's just to report the cause of several "500: Unexpected server error" we got because of a "wrong designed" list in LabKey.

By error we created a list with primary key of type Integer, with an activated "Missing Value Indicators" checkbox in the "Advanced" tab of the "Edit Design" view.
That produced a series of errors, all with a "500: Unexpected server error" message, which, unfortunately, did no give us any clue about the possible cause.
The errors appear when:
- exporting the lists through the menu "Admin -> Folder -> Management -> Export"
- editing a record in this list
- inserting a new record in this list
After some investigation we found out the cause of that error.
I hope that can help others in case they face the same issue, and that it can help to build a more robust LabKey.

Thanks to the LabKey team for your great work,
Eva
eva pujadas2015-12-18 09:58Jon (LabKey DevOps)2016-01-14 14:33 Download files from filtered list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are using the URL field property in lists, to point to image files we have stored in the files directory of a LabKey folder's project using webdav.
E.g.: /labkey/_webdav/MyProject/MyFolder/%40files/${pictureFileName}

We would like to be able to download the image files, for example in a zip container, of the filtered rows in the list.
That would be a similar feature to the already existing "EXPORT" in lists, which can export the filtered rows'data in several formats: Excel, text file, etc...
The alternative we have at the moment is selecting the files in the "Files" web part and download them. The Download feature in the files web part performs exactly what we would need, i.e. zipping the selected files to download. The drawback of this option is that the files can not be selected based on data stored in lists.

From your experience, which would be the recommended approach to develop such a functionality?

Thanks a lot,
eva
laurapas2016-01-14 17:02Jon (LabKey DevOps)2016-02-12 13:13 Accessing multiple queries in R View TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
I am able to access the labkey.data as the data that I've chosen to base my R View on, but what if I need to access multiple queries (custom list, another custom SQL query, etc...) within the R script? I thought to use labkey.selectRows, but getting an error (See below). I can access fine outside LabKey, but not successful within LabKey. Is there a better way to access multiple data tables? Or I am doing something wrong?


# Get peptide reference
peptideref <- labkey.selectRows(
  baseUrl="https://labkey-dev.roche.com:8443/labkey",
  folderPath="/gRED/results",
  schemaName="lists",
  queryName="peptidereference",
  viewName="",
  colNameOpt = "fieldname",
  containerFilter=NULL
)
############

Error in function (type, msg, asError = TRUE) :
  Unknown SSL protocol error in connection to labkey-dev.roche.com:8443
Calls: labkey.selectRows ... getURI -> curlPerform -> .Call -> <Anonymous> -> fun
Execution halted
Will Holtz2016-01-29 18:09Jon (LabKey DevOps)2016-02-28 18:46 Rserve fails when executing report from module with space in path TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Labkey performs URI encoding of paths that it sends to Rserve. This causes filenames with spaces in them to become invalid. Here is a reproduction of the issue:

1 - configure your instance to use Rserve
2 -add attached SchemaSpace.module to your instance
3 -activate SchemaSpace module in a folder (/home)
4- Add a report WebPart containing 'My Report'

If the report successfully runs, then you'll see
## [1] "labkey.data" "labkey.debug.endReadLabkeyData"
## [3] "labkey.debug.startReadLabkeyData" "labkey.file.root"
## [5] "labkey.makeHref" "labkey.pipeline.root"
## [7] "labkey.remote.pipeline.root" "labkey.resolveLSID"
## [9] "labkey.sessionCookieContents" "labkey.sessionCookieName"
## [11] "labkey.url" "labkey.url.base"
## [13] "labkey.url.params" "labkey.url.path"
## [15] "labkey.user.email"

But with the bug you will get:
Error executing command
javax.script.ScriptException: java.lang.RuntimeException: eval failed, request status: error code: 127
Error in setwd("/labkey/reports_temp/a4852be2-2f8c-1031-849a-6046259667e7/Report_module_SchemaSpace_reports_schemas_SchemaSpace_My%20Table_MyReport.Rmd/cached/") :
  cannot change working directory

Below is a patch for a possible fix.

-Will

--- server/api/src/org/labkey/api/reports/RserveScriptEngine.java    (revision 41716)
+++ server/api/src/org/labkey/api/reports/RserveScriptEngine.java    (working copy)
@@ -29,10 +29,12 @@
 import javax.script.ScriptContext;
 import javax.script.ScriptException;
 import java.io.File;
+import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.List;
 import java.util.Map;
+import java.net.URLDecoder;
 
 public class RserveScriptEngine extends RScriptEngine
 {
@@ -275,11 +277,14 @@
                 LOG.debug("Mapped path '" + localURI + "' ==> '" + remoteURI + "'");
 
                 if (remoteURI.startsWith("file:"))
+ {
+ remoteURI = URLDecoder.decode(remoteURI, "UTF-8");
                     return remoteURI.substring(5);
+ }
 
                 return remoteURI;
             }
- catch (URISyntaxException e)
+ catch (URISyntaxException|UnsupportedEncodingException e)
             {
                 LOG.warn("Error mapping localURI '" + localURI + "' to remote RServe path: " + e.getMessage());
             }
laurapas2016-02-08 16:12Jon (LabKey DevOps)2016-02-23 13:23 labkey.deleteRows TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
I am trying to delete rows via labkey.deleteRows. I'm not sure why the rows are not deleting. I read the RLabkey documentation but unable to figure this out; no errors/warning either. The $rowsAffected have the correct number of rows, but nothing happens. Am I missing something?

labkey.deleteRows(baseUrl="https://labkey-dev.roche.com:8443/labkey",
+ folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
+ schemaName="lists",
+ queryName="QuaSAR_LODLOQFINAL",
+ toDelete=data.frame(Peptide=c("A","B","C"),
+ stringsAsFactors = FALSE)
+ )
$rowsAffected
[1] 16

$queryName
[1] "QuaSAR_LODLOQFINAL"

$schemaName
[1] "lists"

$containerPath
[1] "/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results"

$rows
list()

$command
[1] "delete"
balter2016-09-16 07:48Jon (LabKey DevOps)2016-09-19 11:55 Server not starting TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm having a consistent problem with my server starting. I've tried rebuilding my dev environment multiple times, and run into the same problem.

I run debug (bug icon). It seems like the modules aren't getting loaded. Than build hangs with

    Sep 16, 2016 7:38:02 AM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 2950 ms

At this point tomcat is running

If I try debug again, it stop with

    Disconnected from the target VM, address: '127.0.0.1:60319', transport: 'socket'
    Process finished with exit code 0

If I stop tomcat and verify with ps -ef | grep tomcat and debug I get the first error again.

I'm certain I have all of my run configurations set properly. In fact, I'm creating my dev environment again and again, and sometimes it will actually run a few times properly, but then I get the hang on server startup effect again.

I've attached the debug trace.

EDIT:
------
Just hit debug again and got a different trace which I've attached.
Matt V2017-04-25 13:34Jon (LabKey DevOps)2017-04-26 17:29 Edit links for module custom SQL queries TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Within a module I have some custom queries, some use a .sql file. When managing basic datasets or those without SQL, there are links to edit existing rows. However, I'm not seeing a way to do that with my custom SQL. It is possible to insert new rows though.

Is it possible to re-add those edit links or otherwise build them myself in a way that LabKey will pick up?
dennisw2017-08-10 09:53Jon (LabKey DevOps)2017-08-10 12:25 Alternative Site Welcome Page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the Look and Feel Settings, there is a configuration field for an Alternative Site Welcome Page which has a help link to the Look and Feel Settings help page, but there is no related help that I can find explaining what that is. How does it differ from the login or custom login page? Thanks.
t skripcak2017-08-24 07:43Jon (LabKey DevOps)2017-08-30 12:33 Deprecated LoginAction post handler TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I am new here, trying to figure out whether it is possible to automate the login to LabKey when it is opened by external web application. The that I found here regarding this topic are a bit obsolete. In 17.2 release notes it is stated that post handler for web form authentication have been deprecated (and I get an error message when I try to execute it on labkey that tells me the same). Is there another way how could I automate the login (without using single sign on).

the /login/createToken.view seems to be useful only for web-API however I would like to automate the login process for users when external application is redirecting to labkey instance.

best

Tomas
Ben Bimber2018-05-21 09:18Jon (LabKey DevOps)2018-06-04 10:46 Intellij 2017 and Gradle build? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I recently set up a new dev machine and it's been a while since I did much java development, but I'm finding builds/hot swapping to be painfully slow. I am using the latest Intellij, 2017.3. I assume this means I must be doing something out of sync with how most LabKey devs have this set up. I have a couple questions:

1) Are many devs using Intellij 2017 or still 2016?

2) I noticed Intellij and command line gradle seemed to be outputting to different directories (intellij was using paths like server\api\out, I think). This might relate to this issue:

https://youtrack.jetbrains.com/issue/IDEA-175172

Based on what was suggested there, I enabled:

File | Settings | Build, Execution, Deployment | Build Tools | Gradle | Runner => Delegate IDE build/run actions to gradle.

Which made a major difference on build time. However, I dont think classpath is set correctly since when I try to build the project through intellij, the GWT classes give errors. Is this a familiar issue for LK devs, and/or is there something else I should be looking into?

Thanks in advance.
natalie.tasman@insilicos.com2009-07-15 16:29Jon (LabKey DevOps)2015-04-28 21:54 request: SVN notification formatting TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

A somewhat minor request from an outsider perspective: any chance you could send out SVN commit notification emails with the message log *above* the list of source changes? I know it's possible for some SVN server configs-- at least with the default SourceForge setup. I'm trying to get more involved with the LabKey project and it would make it a lot easier to focus on the relevant commits if I could see the log message up top. For example, I'd much rather see something like this (see below), rather than the current situation. Again, a minor point :)

Thanks for considering,

Natalie

==Example reformatted commit notice==

Log:
8319 : **NullPointerException in WebdavResolverImpl$WebFolderResource.find()
8318 : **IllegalStateException from ExperimentController$ShowFileAction.getDataView()
8317 : **Incorrect ContentType sent for .js files
8316 : **SQLException when selecting string constant as column value
8310 : **Expand/collapse in folder tree renders incorrectly with intermediate folders with no permissions
8281 : **Import Data fails with Unexpected exception when upload each multiple MageML files individually
6042 : **Peptide Search button causes errors off screen

Modified:
  branches/release9.2/server/api/src/org/labkey/api/util/mime.txt
  branches/release9.2/server/api/src/org/labkey/api/view/menu/NavTreeMenu.java
  branches/release9.2/server/api/webapp/WEB-INF/web.xml
  branches/release9.2/server/internal/webapp/util.js
  branches/release9.2/server/modules/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java
  branches/release9.2/server/modules/microarray/src/org/labkey/microarray/assay/MageMLDataHandler.java
  branches/release9.2/server/modules/ms2/gwtsrc/org/labkey/ms2/pipeline/client/ProtocolComposite.java
  branches/release9.2/server/modules/ms2/gwtsrc/org/labkey/ms2/pipeline/client/Search.java
  branches/release9.2/server/modules/ms2/gwtsrc/org/labkey/ms2/pipeline/client/mascot/MascotSequenceDbComposite.java
  branches/release9.2/server/modules/pipeline/src/org/labkey/pipeline/PipelineWebdavProvider.java
  branches/release9.2/server/modules/query/src/org/labkey/query/sql/QString.java
  branches/release9.2/server/modules/query/src/org/labkey/query/sql/SqlParser.java
  branches/release9.2/server/modules/study/src/org/labkey/study/assay/query/AssaySchemaImpl.java
  branches/release9.2/server/test/src/org/labkey/test/ms2/AbstractMS2SearchEngineTest.java
  branches/release9.2/server/test/src/org/labkey/test/ms2/MascotTest.java
Brian Pratt2010-01-05 11:37Jon (LabKey DevOps)2015-04-28 21:54 BVT/DRT timeout values TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
My system gets quite busy and slow at times (especially when being backed up) and it becomes necessary to increase selenium timeout values. Many are hardcoded at 5000ms, and some use the WAIT_FOR_GWT value (which is also set to 5000ms).

Is there any significance to the fact that some are hardcoded and some are not, or can I safely change all those hardcoded "5000" values to WAIT_FOR_GWT? Thereafter I can easily tweak the behavior of my local copy of the code by just tweaking WAIT_FOR_GWT.
Ben Bimber2010-03-18 12:23Jon (LabKey DevOps)2015-04-28 21:55 wrapped columns, study import and list.xml error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
here's a portion of list.xml from a study import. near the bottom I try to alias 2 fields using XML that works when i do it through the GUI or cut/paste in metadata (search wrappedColumnName). However, it throws an error when i use this for a study import. The error is:

Error creating list "project": Unknown property type "null" for property "totalAssigned". Can I define these wrapped columns on import?


    <table tableName="origin" tableDbType="TABLE">
      <tableTitle>Origin Codes</tableTitle>
      <columns>
        <column columnName="code">
          <datatype>varchar</datatype>
          <columnTitle>Code</columnTitle>
          <nullable>false</nullable>
          <isKeyField>true</isKeyField>
        </column>
        <column columnName="meaning">
          <datatype>varchar</datatype>
          <columnTitle>Meaning</columnTitle>
        </column>
      </columns>
      <pkColumnName>code</pkColumnName>
    </table>
    <table tableName="project" tableDbType="TABLE">
      <tableTitle>IACUC Projects</tableTitle>
      <columns>
        <column columnName="pno">
          <datatype>varchar</datatype>
          <columnTitle>Project</columnTitle>
          <nullable>false</nullable>
          <isKeyField>true</isKeyField>
        </column>
        <column columnName="protocol">
          <datatype>varchar</datatype>
          <columnTitle>Protocol</columnTitle>
          <fk>
            <fkDbSchema>lists</fkDbSchema>
            <fkTable>protocol</fkTable>
            <fkColumnName>protocol</fkColumnName>
          </fk>
        </column>
        <column columnName="account">
          <datatype>varchar</datatype>
          <columnTitle>Account</columnTitle>
        </column>
        <column columnName="inves">
          <datatype>varchar</datatype>
          <columnTitle>Investigator</columnTitle>
        </column>
        <column columnName="avail">
          <datatype>varchar</datatype>
          <columnTitle>Availability</columnTitle>
          <fk>
            <fkDbSchema>lists</fkDbSchema>
            <fkTable>avail</fkTable>
            <fkColumnName>code</fkColumnName>
          </fk>
        </column>
        <column columnName="title">
          <datatype>varchar</datatype>
          <columnTitle>Title</columnTitle>
        </column>
        <column columnName="research">
          <datatype>boolean</datatype>
          <columnTitle>Research</columnTitle>
        </column>
        <column columnName="reqname">
          <datatype>varchar</datatype>
          <columnTitle>Requestor Name</columnTitle>
        </column>
        <column columnName="totalAssigned" wrappedColumnName="pno">
          <columnTitle>Animals Assigned</columnTitle>
          <fk>
            <fkDbSchema>lists</fkDbSchema>
            <fkTable>projectTotalAssigned</fkTable>
            <fkColumnName>pno</fkColumnName>
          </fk>
        </column>
        <column columnName="lastAssignment" wrappedColumnName="pno">
          <columnTitle>Last Assignment Date</columnTitle>
          <fk>
            <fkDbSchema>lists</fkDbSchema>
            <fkTable>projectLastAssignmentDate</fkTable>
            <fkColumnName>pno</fkColumnName>
          </fk>
        </column>
      </columns>
      <pkColumnName>pno</pkColumnName>
    </table>
Ben Bimber2010-04-16 04:59Jon (LabKey DevOps)2015-04-28 21:55 Setting URL from a grid when value might be null TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I can define custom URLs for fields in a query like this:

                    <column columnName="animalCount">
                        <datatype>integer</datatype>
                        <columnTitle>Animal Count</columnTitle>
                         <url>/query/executeQuery.view?schemaName=study&amp;
                            query.queryName=demographics&amp;
                            query.Id/Species/Species~eq=${species}&amp;
                            query.Id/Age/AgeInYears~eq=${AgeInYears}&amp;
                            query.sex~eq=${sex}&amp;
                        </url>
                    </column>

I am finding this problem quite commonly:

In the above example, the sex field can sometimes be null. If the user follows the resulting link, they go to something like:

..../executeQuery.view?.......&query.sex~eq=

This seems to filter on sex equals empty string, not sex is blank. Hence no records are returned. Is there any way around this? I dont really know what the right fix would be. Either the code behind creating the URLs would need to translate '~eq=' into 'isblank' (which i dont know that we always want) or code behind QWP filters would need to do something similar.
Ben Bimber2010-04-19 12:23Jon (LabKey DevOps)2015-04-28 21:55 Track Site Usage by User Group? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We're interested in tracking site usage by user group. Google analytics tracks many useful metrics, but I do not believe it would have the information to track this type of information.

Does LabKey store a list of user visits in some table that queryable? If this existed, it could be combined with the tables in the core schema to make a report of visits by User Group - or whatever other sort of slice is needed.

the query auditLog.audit seems to present events from the active folder only. I've been looking over it, but do not yet see any records for logins. Are login events stored somewhere I'm missing? Is there a better approach to generate this sort of usage-by-usergroup report?

Thanks.
Ben Bimber2010-04-20 06:28Jon (LabKey DevOps)2015-04-28 21:55 Viable way to track page load times? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We're interested in finding some way to quantify and track page loading times for our labkey site. We already have google analytics set up, but this does not track load times. I came across this from google:

http://code.google.com/apis/analytics/docs/tracking/eventTrackerGuide.html

While I dont think it would be easy for us to do this site-wide, most of our users load queries through a javascript app I wrote found here:

https://xnight.primate.wisc.edu:8443/labkey/EHR_Reporting/WNPRC/EHR/animalHistory.view?

Therefore we could catch the time of query load, name of query and send it to anaytics along the lines of:

pageTracker._trackEvent('Queries', 'Query Load Time', queryName, loadTime);

Is there any reason this would not be a good option? Is there something already in labkey i dont know about? The admin console does some query performance tracking, but the information stored there seems most tailored to identifying slow of frequent queries, and not as well suited to tracking specific queries/reports over time.
Ben Bimber2010-06-23 11:47Jon (LabKey DevOps)2015-04-28 21:59 possible cross tab bugs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have been experimenting with cross tabs and assay data. I made a cross tab here:
https://xnight.primate.wisc.edu:8443/labkey/query/WNPRC/WNPRC_Units/Research_Services/MHC_SSP/Private/MHC_DB/executeQuery.view?schemaName=assay&query.queryName=SSP_Summary&query.Id~startswith=r950&query.PrimerPair~startswith=a

There's a couple points worth noting:

1. creating the crosstab is simple enough. however, once you define your fields and hit 'submit', labkey loads that crosstab on your entire assay domain. the concept of giving a preview is good, but the assay has 105,000 records. it eventually completed, but it would be nice if labkey remembered whatever filters were applied when you went to the 'create crosstab' page so it didnt try to load the whole thing.

2. i created the crosstab. i went to my original grid, filtered it, then tried to load the crosstab (on ~20 records). the crosstab loaded, but it did not remember the grid filters, so i got 105,000 records again. I can appreciate why filters were not applied in point 1, but it seems like they should be remembered in this situation. example here:

https://xnight.primate.wisc.edu:8443/labkey/query/WNPRC/WNPRC_Units/Research_Services/MHC_SSP/Private/MHC_DB/executeQuery.view?query.Id~startswith=r950&query.PrimerPair~startswith=a&query.queryName=SSP_Summary&schemaName=assay&query.reportId=db%3A19

3.crosstabs have an 'export to excel' button, which is a good thing. but it throws a java error when i try to export this cross tab. might have something to do with it being too large. the above URL will repro that.

Looking to the future:

Aggregating data and creating aggregate views is quite important across the board in the EHR. Crosstabs fulfill the majority of scenarios, but they are a little rough. It's a basic HTML output: no sorting, no filtering, etc. Instead of using crosstabs I'm considering writing the code to aggregate data in R, then trying to output the results into some sort of grid (either labkey or ext). While it requires that I write the code, it gives us a lot more control. That includes control over the type of aggregate function (ie. could be some oddball custom function instead of just sum, min, max), allows custom formatting (like coloring cells fitting criteria), etc.

I have spoken with some of you about possible ways to approach this in the past, but perhaps some of you could comment a little here. Assuming I create a dataframe in R with my new aggregated data, what is the best approach to try to display that in a grid? The approach some of us discussed before was along the lines of converting R->json, then posting to a custom JS page that would interpret this and display the grid. a labkey grid is probably preferable, but I believe an ext grid would be needed since those accept array stores and labkey does not.

I could also write R code that directly outputs HTML/javascript, but that seems like it would be kind of a pain unless there's a really good R package to handle that (which i have not yet found). Although I might be able to write a reusable function that accepts the dataframe and does all the work, so i at least only have to write that once.

Is there anything already in labkey that would assist this? Any other comments or ideas on how to approach that?
Ben Bimber2010-08-03 12:31Jon (LabKey DevOps)2015-04-28 21:59 use audit table for other auditing? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a nightly postgres backup script. on completion, it inserts a record into a labkey list with some info about that job. it's a perl script and uses the perl api to insert that record.

there's no real problem with this approach, but it occurred to me that the audit table is really designed to hold these sort of events. is there any reason not to insert records into the audit table? can i actually insert a record into audit via the labkey api or would that require either using postgres directly or setting up audit as an external schema?

thanks.
Ben Bimber2011-01-14 10:52Jon (LabKey DevOps)2015-04-28 22:01 failed pipeline jobs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have 2 questions related to deleting old pipeline jobs:

1. We have a pipeline that executes on a client server using activeMQ. During the debug process, a number of bugs were exposed in the pipeline code that caused jobs to unexpectedly fail. Some of the time these failures caused the entire pipeline process to stop, leaving the temp directory and files on the client machine. Is it safe to delete these unwanted files?

2. Related to question 1: there are a bunch of pipeline jobs that have 'ERROR' status in the folder where I ran them. Can I safely either 'complete' or 'fail' them just to get them out of the way?

Now to pipeline jobs that completed successfully:

3. Many pipeline jobs have completed normally. The results are exposed to users through a pipeline files webpart. Each pipeline job gets a subfolder. I have found that users often look at them, and if they want to change something in the result, they often delete the pipeline results and restart a pipeline job. As far as I'm aware, even though these are presumably deleted through labkey via webDAV, there will still be DB records pointing to a non-existent file. Any harm here? Assuming users do legitimately want to get rid of some pipeline runs, is there a preferred way to do so?

Thanks.
michael_stover@urmc.rochester.edu2011-05-27 10:08Jon (LabKey DevOps)2015-04-28 22:01 Specimen Import Questions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
1. Once a lab has been entered via a specimen import, how can it be removed?
2. Why do some fields not go anywhere in Labkey? Ie, shipped_to_lab seems to just get dropped.
3. Why is there a specimenevent table where crucial information is kept that cannot be part of the normal vial or specimen views?
Brian Connolly2012-04-26 13:02Jon (LabKey DevOps)2015-04-28 22:03 How to add webpart for java module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
X-CASE GmbH is a German company which is currently involved in a research project. Our task in this project is to develop a backend for a sample administration. At the moment, we are evaluating some standard software to choose from.

Having set up your server, I tried to develop my first Java module (with createModule). Although the module is recognized by the LabKey Server in "Folder setting", I am not able to add any webpart. I have also set some breakpoints in my module but neither of them is ever executed. Am I missing some information? Is there some additional information I can rely on?

My system is a Windows XP, Tomcat6, LabKey Server 11.3, IntelliJ 10.5.4.
slangley@scharp.org2012-11-05 18:38Jon (LabKey DevOps)2015-04-28 22:06 JavaScript LABKEY.Query API and Database transactions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I see there is a transaction id returned from the LABKEY.Query.executeSQL() method that can be used to abort a "async request". This may or not be related to the actual database transaction in progress.

Is there any way to use the LabKey JavaScript API to control the committing of data base transactions? That is:

SET AUTOCOMMIT { = | TO } { ON | OFF };

BEGIN;
SAVEPOINT;
COMMIT;
ROLLBACK;

Although "not intended for use in applications or interactive sessions",
perhaps Postgres prepared transactions would work?
  http://www.postgresql.org/docs/9.1/static/sql-prepare-transaction.html

Thanks.

Scott
Anthony Corbett2013-01-21 06:52Jon (LabKey DevOps)2015-04-28 22:07 Custom List metadata on export/import list archive. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I ran in to an issue, it was easy enough to fix, but was wondering if I happen to miss some option during an export of a list archive.

I created a list which references study.DataSets.dataSetId as a foreign key. When designing the list this table was not an option to pick from for a lookup. Therefore, in order to wire up the lookup so queries could use the dot notation to the Datasets columns I had to manually add the following table metadata XML through the Schema Browser:

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="CohortVisit_eCRFSections" tableDbType="TABLE">
    <columns>
      <column columnName="dataSetId">
        <datatype>integer</datatype>
        <columnTitle>Data Set</columnTitle>
        <fk>
          <fkDbSchema>study</fkDbSchema>
          <fkTable>DataSets</fkTable>
          <fkColumnName>DataSetId</fkColumnName>
        </fk>
      </column>
    </columns>
  </table>
</tables>

This worked great and I can now build queries against the list that auto join the DataSet rows using the DataSetId. However, once I exported an archive of the lists from our dev server to production the metaData did not follow it as part of the export.

Did I not export this correctly. Just wondering for future reference and to document any 'gotcha' for our dev team.

Much appreciated!

-
Anthony Corbett
Ben Bimber2013-02-06 09:03Jon (LabKey DevOps)2015-04-28 22:07 examine ontology manager? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a big DB - ~150gb. Our study has 15m records, so this isnt totally surprising. however, exp.object is enormous, much bigger than i'd expect. i'd like to figure out what exactly is causing all this. does anyone have advise on how to best approximate what's being stored here? we have almost no lists, but i would expect audit trail to store records here.

no need to provide the full SQL - a description would probably be good enough to get us going.

thanks.
Anthony Corbett2013-03-20 08:15Jon (LabKey DevOps)2015-04-28 22:07 File upload from file-based module Assay TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm having issues uploading a file from a file-based module assay. I've looked that the suggested examples from https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleassay.

In all the upload.html files that do file uploads they use a version of the following HTML and Ext Javascript:

<form id="upload_form" enctype="multipart/form-data" method="POST">
   <div id="fileUploadField"></div>
</form>

<script type="text/javascript">
var expData;

Ext.onReady(function () {
    
    function handleNewFileUpload(form, action) {
       if (action && action.result && action.result.id) {
          expData = new LABKEY.Exp.Data(action.result);
       }
    }

    var form = new Ext.form.BasicForm(
      Ext.get("upload_form"), {
      fileUpload: true,
      frame: false,
      url: LABKEY.ActionURL.buildURL('assay', 'assayFileUpload'),
      listeners: {
        "actioncomplete": function (f, action) {
          handleNewFileUpload(f, action);
        },
        "actionfailed": function (f, action) {
          handleNewFileUpload(f, action);
        }
      }
    });

    new Ext.form.FileUploadField({
      renderTo: "fileUploadField",
      buttonText: "Upload New File...",
      buttonOnly: true,
      buttonCfg: {
        cls: "labkey-button"
      },
      listeners: {
        "fileselected": function (fb, v) {
          form.submit();
        }
      }
    });
})
</script>

When I look at firebug for the response from the POST to AssayController's assayFileUpload Action the response (action.result) looks like this:

 { success: true }

There is no id attribute of the ExpData created on the server in the response.

When I attach a debugger on the server in AbstractFileUploadAction.export(), the FileUploadForm instance does not have a fileName or fileContent. Maybe the parameters aren't being bound correctly to this bean?

I'm using Firefox 19 and Tomcat 6.0.35 locally, could there be a Tomcat specific configuration issue here?

Thanks,

Anthony Corbett
Ben Bimber2013-03-21 08:35Jon (LabKey DevOps)2015-04-28 22:07 Anybody familiar w/ SSRS, SSIS or similar sqlserver products? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Does anyone at LabKey have experience w/ SQL Server's reporting/business intelligence tools like SSRS or SSIS? Maybe some of the former MS employees?

I ask b/c we're exploring the feasibility of using LabKey as a data source for these tools, and I think we would want to pull in data from LK over the HTTP APIs, rather than interact directly against the DB. The purpose of that is for security, seeing UserSchemas, etc. The most promising avenue I can see is consuming data using the same API as excel web query, which basically provides a tab-delimited table. I've seen some posts suggesting consuming web-based tab-delimited data is possible, but no actual how-tos, yet. I'd be curious if anyone has suggestions or comments. Thanks.
Leo Dashevskiy2013-04-12 14:04Jon (LabKey DevOps)2015-04-28 22:07 LABKEY.Query.selectRows( ) not respecting the columns config option or ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
is it not supposed to, if another column is specified in the filterArray config?

LABKEY.Query.selectRows({
                            columns: ['RootPath'],
                            filterArray: LABKEY.Filter.create(
                                    'FileId',
                                    filesIds.join(';'),
                                    LABKEY.Filter.Types.IN
                            ),
                            queryName: 'RootPath',
                            schemaName: 'flow',
                            success: function(data){
                                console.log( data.columnModel.length );
                            }
                        })

, where

RootPath query is:

SELECT DISTINCT
 FCSFiles.Run.FilePathRoot AS RootPath,
 FCSFiles.RowId AS FileId
FROM
 FCSFiles
WHERE
 FCSFiles.Run.FilePathRoot IS NOT NULL

Update: it does not matter, if the filterArray config is present or not -- the columns: config does not get respected...

Thanks.
-Leo
volker2013-05-30 03:22Jon (LabKey DevOps)2015-04-28 22:08 INSERT INTO using the webinterface TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are using Labkey 12.2 and I would like to set up a study template for users without SLQ or Java knowledge.

One thing we would like to have is, if users enter the Personal Identification Number (PID) in the participant dataset, all other datasets automatically insert a new row using this PID.

To insert data from one table into another one I can use the INSERT INTO command and refer via SELECT and FROM to the data. SQL code would be something like:

INSERT INTO Table2
 (client_last_name, client_first_name, taskDescription, category)
 (SELECT clientLastName, clientFirstName, incidentDescription, category
  FROM Table1)

How can I do this using the webinterface ?
Via lookup the existing PID numbers are shown in a drop down list for the according field, but I did not find a way to do a lookup without programming it.

Any help, suggestions, etc. appreciated.

Thanks,
Volker
rubiaasharaf92222013-06-17 23:56Jon (LabKey DevOps)2015-04-28 22:08 How to change the UI of the LabKey Server ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am working on windows os, LabKey version 13.1, and FireFox browser.I want to change the ui of existing labkey (adding extra tabs,buttons,icons and changing options in navigation bars etc..).For this purpose can i use api or should i make changes in code.If i wish to make changes in code where is my starting point ,i am completely stuck with the situations roads are all block please somebody make my way clear
Thank you
Anthony Corbett2013-09-16 12:30Jon (LabKey DevOps)2015-04-28 22:08 LABKEY.vis scripts not loaded TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm starting to look into creating custom visualizations and wanted to use LABKEY.vis to create a line graph on a wiki page. However I'm getting an error that LABKEY.vis is not a valid object.

Do I need to use LABKEY.Utils.requiresScript() to pull in all the LABKEY.vis scripts? If so, can someone please show an example. If not, can you please let me know the correct way to use this functionality.

I'm using 13.1

much appreciated,

Anthony
Andy Straw2013-10-21 12:00Jon (LabKey DevOps)2015-04-28 22:08 Using FileMaker as an external data source TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Looking at accessing an external database from LabKey. Docs list specific databases that are supported (MySql, PostgreSQL, etc.): https://www.labkey.org/wiki/home/Documentation/page.view?name=externalSchemas .

We have a lab that is looking at using FileMaker to build some database applications, and we would like to integrate our LabKey instance with that database. FileMaker has a JDBC driver (see http://www.filemaker.com/help/html/odbc.18.2.html#1027617 and http://www.filemaker.com/support/product/docs/12/fmp/fm12_odbc_jdbc_guide_en.pdf ), so I'm wondering whether using the "external data source" mechanism would work. Does LabKey have any experience with customers using an external data source that is a FileMaker database? Are there specific gotchas (in regard to supported metadata features in the JDBC driver, for example) that we should look at? Does your "external data source" code depend on specific database vendor features/code, or might this "just work", if the JDBC driver is complete enough?

Thanks for any info, suggestions.

Andy Straw
University of Rochester
Leo Dashevskiy2013-11-13 12:37Jon (LabKey DevOps)2015-04-28 22:08 Labkey revision 29447 does not go through the upgrade stage TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
after a clean build I still get the following error:

500: Unexpected server error

A failure occurred during LabKey Server startup.

org.springframework.jdbc.BadSqlGrammarException: SqlExecutor.execute(); bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: constraint "fk_completiondates_employeeid" of relation "completiondates" does not exist
       at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:111)
       at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
       at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:38)
       at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:32)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:94)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:64)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:59)
       at org.labkey.api.data.SqlScriptExecutor$Block.execute(SqlScriptExecutor.java:168)
       at org.labkey.api.data.SqlScriptExecutor.execute(SqlScriptExecutor.java:64)
       at org.labkey.core.dialect.PostgreSql84Dialect.runSql(PostgreSql84Dialect.java:864)
       at org.labkey.core.dialect.PostgreSql90Dialect.runSql(PostgreSql90Dialect.java:29)
       at org.labkey.api.data.SqlScriptManager.runScript(SqlScriptManager.java:200)
       at org.labkey.api.data.SqlScriptRunner.runScripts(SqlScriptRunner.java:82)
       at org.labkey.api.module.DefaultModule.versionUpdate(DefaultModule.java:347)
       at org.labkey.api.module.ModuleUpgrader.upgrade(ModuleUpgrader.java:59)
       at org.labkey.api.module.ModuleUpgrader$1.run(ModuleUpgrader.java:75)
Caused by: org.postgresql.util.PSQLException: ERROR: constraint "fk_completiondates_employeeid" of relation "completiondates" does not exist
       at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
       at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
       at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:403)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:395)
       at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
       at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
       at org.labkey.api.data.dialect.StatementWrapper.execute(StatementWrapper.java:1015)
       at org.labkey.api.data.SqlExecutor$NormalStatementExecutor.execute(SqlExecutor.java:121)
       at org.labkey.api.data.SqlExecutor$NormalStatementExecutor.execute(SqlExecutor.java:109)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:89)
       ... 11 more

Thanks.
laurapas2015-04-16 13:49Jon (LabKey DevOps)2015-04-17 10:31 SQL query in a module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have an SQL query that works fine when i create it stand-alone through the schema browser. When I add the same query to a module and run on the same data, I get an error:
ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying + character varying Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts. Position: 1350

The error is coming from my local installation of LabKey. I'm not sure if that has anything to do with it. I use the local installation to do some testing before putting the module on our server. Can someone help me figure out what I'm doing wrong?
himanshu mendhe2015-04-22 08:12Jon (LabKey DevOps)2015-05-04 16:30 How to modify a stored document (.doc) and let user download it from wiki page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
I want to create a wiki page where I require the user to click a button which should invoke an execution of a .jar/.bin file which creates a new .doc file based on a template (again .doc). This file then gets downloaded on the user's machine.
I wan't to know how I could achieve this in a file-based module?
eva pujadas2015-08-27 01:00Jon (LabKey DevOps)2015-08-28 14:42 Export/Import list fields with lookup tables from another folder TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are using LabKey 15.2 and saw that now the import/export of fields supports lookup fields (LookupSchema + LookupQuery). Great!
Unfortunately we realized that when the lookup list resides in another folder it is not exported in the fields definition.

We tried several combinations of specifying the path to the folder in which the lookup-table is located, in the "Import fields" definition, without success.
Is there a way to do that?

Thank you very much for your great product and support,
Eva Pujadas
Will Holtz2016-01-27 17:15Jon (LabKey DevOps)2016-02-28 18:47 Rserve Vagrant host fails to provision TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Looks like ohai had some name changes that broke Rserve.rb
https://github.com/chef/chef-web-docs/issues/259
See trivial fix below.

-Will

--- vagrant/chef-solo/cookbooks/R/recipes/Rserve.rb    (revision 42086)
+++ vagrant/chef-solo/cookbooks/R/recipes/Rserve.rb    (working copy)
@@ -18,7 +18,7 @@
 #
 ohai "reload_passwd" do
   action :nothing
- plugin "passwd"
+ plugin "etc"
 end
diego2016-04-26 10:47Jon (LabKey DevOps)2016-05-11 15:15 Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am working on a simple module based on the HelloWorld example --> https://www.labkey.org/home/Documentation/wiki-page.view?name=helloWorldModule

"helloworld" module location --> /usr/local/labkey/externalModules/helloworld

Keep on getting a 404 error Jquery can not be located...

using the following forum post as a base: https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=6894

Have attached the code and a screenshot!

Thanks in advance!
Diego
marcia hon2018-02-12 12:47Jon (LabKey DevOps)2018-02-16 18:45 Python Engine TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

Please help me complete the Python Engine:

I have the following:

     Language - python
     Language Version – 2.7.12
     File Extensions - .py
     Program Path - /usr/bin/python


What do I put for:
     Program Command
     Output File Name

?
Jon (LabKey DevOps)2022-02-10 17:01Jon (LabKey DevOps)2022-02-10 22:05 Maintenance Notice - Upgrade of labkey.org to LabKey 22.2 for Thursday, February 10th 2022 @ 9pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 9pm PST for an upgrade to LabKey 22.2

The site will be offline for approximately one hour.

Please save your work before this time.
rosnerd2007-07-27 13:12Jon (LabKey DevOps)2015-04-28 21:51 Question about FileContent module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Pardon my cross posting but I just realized this question might
be better asked on the developer's list.

I'm trying to use the filecontent module in 2.1 based on
instructions described in previous post by Mark Igra on 6/26/07
included below.

I've tried these instructions on my 2.1 installation with no success.

Before I dig any deeper, can you confirm that filecontent module was
included in the 2.1-6772 build. I checked the ~/modules directory
and was expecting to see something like filecontent. However I wasn't
able to find anything like that.

Thank you.

Dan

+++ Begin Mark's original message +++

The somewhat experimental FileContent module may be what you want. This allows you to set up a file system directory tree on disk that parallels the folder hierarchy you've defined in your project. The server will return files from your file system given the correct URLs.

To configure the root directory for the home project go to:

http://localhost:8080/labkey/FileContent/home/begin.view

For any other project, substitute the project name for "home" in the above URL. And of course substitute your proper server, port & context path.

This page should give you a set of hints on how to use the module. If you place test.html in the root of your file tree you will be able to retrieve it using

http://localhost:8080/labkey/FileContent/home/sendFile.view?fileName=test.html

The accompanying files servlet is configured to return the files using standard URL, so instead of using sendFile.view?fileName=test.html

http://localhost:8080/labkey/files/home/test.html

would work. This allows you to have URLs that look like they come from a standard web app, but have LabKey's per-folder security enforced.

+++ End Mark's original message +++
slangley@scharp.org2007-12-19 13:43Jon (LabKey DevOps)2015-04-28 21:52 Composing an object from the database with non-primitive fields TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the LabKey framework, how would I go about instantiating an object for a Class that I have defined where not all of the fields of the class are defined in a single database table?

That is, if the data for a class is primarily associated with columns in a particular table, but certain columns of that table are foreign keys into other tables, does LabKey provide a convenient way to reconstruct/populate non-primitive fields of my class by doing additional queries to the database tables referenced by foreign keys?
wnels2@uky.edu2008-02-01 13:36Jon (LabKey DevOps)2015-04-28 21:52 GWT hosted mode TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In order to post less questions I need to get configure InteliJ for GWT hosted mode so I can run the debugger. If you have been successful configuring this can you please send a capture of your Run/Debug Configurations.
Thanks,
Bill
pdickerson2008-04-01 11:13Jon (LabKey DevOps)2015-04-28 21:52 Suggestion - consider WebDAV instead of FTP for uploading files? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have found the FTP approach for uploading files to be very cumbersome and fraught with the potential for human errors.

Have you considered using WebDAV instead of FTP for uploading files?
 http://www.webdav.org/
"WebDAV stands for 'Web-based Distributed Authoring and Versioning'. It is a set of extensions to the HTTP protocol which allows users to collaboratively edit and manage files on remote web servers."
"Since DAV works over HTTP, you get all the benefits of HTTP that FTP cannot provide. For example: strong authentication, encryption, proxy support, and caching."


There is a version for Apache:
 http://www.webdav.org/mod_dav/
"mod_dav is an Apache module to provide DAV capabilities (RFC 2518) for your Apache web server. It is an Open Source module, provided under an Apache-style license."
myatthu1986@gmail.com2008-12-16 09:45Jon (LabKey DevOps)2015-04-28 21:53 Problems installing/starting FTP Server TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello all,

I am using apache ftp sever ftpserver-1.0.0-M3.
I want to access my ftp server from any computers which is same network or not.
eg. ftp://pcname:2121/..

if you have ftpd.xml file,please share me.
I want to know how and where to define server address in ftpd.xml file.

here is my current ftp file...

<?xml version="1.0" encoding="UTF-8"?>

<server xmlns="http://mina.apache.org/ftpserver/spring/v1"
    xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd "
    id="myServer">
    
    <listeners>
        <nio-listener name="pc69" port="2121" implicit-ssl="false" idle-timeout="60" local-address="***.***.*.***">           
            <data-connection idle-timeout="600">
                <active enabled="true" local-address="***.***.*.***" local-port="2121" ip-check="true" />
                <passive ports="2121" address="pc69" external-address="***.***.*.***" />
            </data-connection>
            <blacklist>1.2.3.0/16, 1.2.4.0/16, 1.2.3.4</blacklist>
        </nio-listener>
    </listeners>
    
    <file-user-manager file="./res/user.gen" />
    
</server>
wnels2@uky.edu2009-05-06 13:14Jon (LabKey DevOps)2015-04-28 21:53 insert view TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Sorry for all of the questions but I'm almost done.
I want a column in an insert form to contain a value but be hidden or readonly (preferably readonly).
When I am successful in making the field readonly it won't bind the value of that field to the table's model bean. I've tryed variations of the following code.
 
 private DataRegion getMyDataRegion()
    {
        DataRegion rgn = new DataRegion();
        TableInfo tableInfo = MySchema.getInstance().getTableInfoMy();
        List<ColumnInfo> columns = tableInfo.getColumns("MyId, field1, field2");
        //the value for MyId is set after the dataregion is returned.
        //columns.get(0).setUserEditable(false); Works but doesn't bind value to bean
        //columns.get(0).setIsHidden(true ); Doesn't seem to do anything?
        //columns.get(0).setIsUnselectable(true); Doesn't seem to do anything?
        //columns.get(0).setReadOnly(true); Works but doesn't bind value to bean
        rgn.setColumns(columns);
        ActionButton button = new ActionButton("myaction.post", "Submit");
        button.setActionType(ActionButton.Action.POST);
        rgn.setButtonBar(new ButtonBar().add(button ));

        return rgn;
    }

Thanks,
Bill
Ben Bimber2010-03-18 05:31Jon (LabKey DevOps)2015-04-28 21:55 webparts in menu take full screen width on safari/chrome? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a webpart displayed in the menu bar. It has a table with a width of 300. On firefox, it respects this width. On safari or chrome, it extends all the way to the right edge of the screen. Has anyone seen this before?

Thanks.
Ben Bimber2010-05-21 10:13Jon (LabKey DevOps)2015-04-28 21:59 Question on SQL statement TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a table with the columns: SubjectId, StartDate, EndDate, Location, Number of Roommates. I'd like to write a query that finds all animals without roomates, and reports their total days alone. The difficult part is that b/c locations can change, we could have multiple consecutive rows with zero roommates. take this data:

Id StartDate EndDate Location NumRoommates
Animal1 1/5/2000 <null> Room3 0
Animal1 1/3/2000 1/5/2000 Room2 0
Animal1 1/1/2000 1/3/2000 Room1 1
Animal1 12/1/1999 1/1/2000 Room0 0

For this animal, the current location has zero roomates. We can see he's been alone since 1/3/2000 and want to calculate 'days alone' using this date. Does anyone have suggestions on how to approach that using SQL?
Ben Bimber2010-07-09 08:50Jon (LabKey DevOps)2015-04-28 21:59 ext date and time picker? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
is there anywhere in labkey that uses an ext date and time select menu, as opposed to a date-only select menu? looking at the ext forums, there seem to be a few options out there.

also, has anyone added a 'clear' button to the date picker? there are also some examples of this out there. i've seen ones where the 'clear' button appears next to the 'today' button on the date picker menu. simply deleting the text in the ext date component doesnt trigger the same events.
Ben Bimber2010-08-26 14:15Jon (LabKey DevOps)2015-04-28 21:59 anyone used R api with SSL? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
our server uses SSL. i have run R scripts on it before; however, I have never called the R api from within one before. i just tried it and got this message:

Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) :
  Couldn't resolve host 'xnight.primate.wisc.edu'
Calls: labkey.selectRows -> getURI -> curlPerform -> .Call
Execution halted

I am making the assumption that this is SSL related, since the same script worked fine on my laptop.

Can anyone confirm whether Rlabkey should work w/ SSL?
Ben Bimber2010-08-27 06:27Jon (LabKey DevOps)2015-04-28 21:59 QWP timeout issue? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
There's a weird issue with embedded QWPs and long queries. I've observed this for a while, but have just recently began to investigate it:

We have a page here that loads QWPs. You pick a report, and the corresponding QWP loads below it. Page here:
https://xnight.primate.wisc.edu:8443/labkey/EHR_Reporting/WNPRC/EHR/animalHistory.view?

The same code is used to load every query. Most of the queries load quickly, without issue. However, some of the queries are just slower to run. The problem is that after 30 seconds, onSuccess seems to get called no matter what. When that happens, I see this in the console:

uncaught exception: Couldn't get dataregion 'aqwp104' object.

this happens after 30 secs very consistently. i have the timeout option on the QWP set to 0. After 30 secs I also see this in the intellij console:

ERROR Table 2010-08-27 08:25:47,668 t: http-8080-Processor22 : internalExecuteQuery
org.postgresql.util.PSQLException: ERROR: canceling statement due to user request
(full message below)

Anyone have suggestions on things to try?




Below is the code that loads the QWP, including the QWP config:

    loadQuery: function(rowData, subject)
    {
        var filterArray = [LABKEY.Filter.create('Id', subject, LABKEY.Filter.Types.EQUALS_ONE_OF)];
        var div = document.getElementById('reportDiv');
        var target = div.appendChild(document.createElement('span'));

        var queryConfig = {
            title: rowData.get("ReportTitle") + ": " + subject.replace(/;/g, "; "),
            schemaName: rowData.get("Schema"),
            queryName: rowData.get("QueryName"),
            allowChooseQuery: false,
            allowChooseView: false,
            showInsertNewButton: false,
            showDeleteButton: false,
            showDetailsColumn: true,
            showUpdateColumn: false,
            showRecordSelectors: true,
            buttonBarPosition: 'top',
            timeout: 0,
            filters: filterArray,
            successCallback: this.endMsg,
            errorCallback: function(error){target.innerHTML = 'ERROR: ' + error.exception + '<br>'; this.endMsg; EHR.UTILITIES.onError(error)},
            scope: this
        };

        if (rowData.get("View"))
        {
            queryConfig.viewName = rowData.get("View")
        }

        if (rowData.get("ContainerPath"))
        {
            queryConfig.containerPath = rowData.get("ContainerPath");
        }

        new LABKEY.QueryWebPart(queryConfig).render(target);

    },

    endMsg: function(){
//this shows that the callback is being called.
        console.log('Success callback called');
//this turns off the spinning wheel 'Loading...' indicator
Ext.fly(this.wheel).remove();

        //log using analytics
        var loadTime = new Date().getTime() - this.startTime;
        pageTracker._trackEvent('AnimalReport', 'LoadTime', this.reportName, loadTime);
    }


Below is the full error I see in the console:

ERROR Table 2010-08-27 08:25:47,668 t: http-8080-Processor22 : internalExecuteQuery
org.postgresql.util.PSQLException: ERROR: canceling statement due to user request
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:367)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
    at org.labkey.api.data.StatementWrapper.executeQuery(StatementWrapper.java:540)
    at org.labkey.api.data.Table._executeQuery(Table.java:120)
    at org.labkey.api.data.Table.executeQuery(Table.java:280)
    at org.labkey.api.data.Table.selectForDisplay(Table.java:1386)
    at org.labkey.api.data.Table.access$300(Table.java:53)
    at org.labkey.api.data.Table$2.call(Table.java:1398)
    at org.labkey.api.data.Table$2.call(Table.java:1395)
    at org.labkey.api.data.AsyncQueryRequest$1.run(AsyncQueryRequest.java:69)
    at java.lang.Thread.run(Thread.java:619)
ERROR Table 2010-08-27 08:25:47,670 t: http-8080-Processor22 : SQL [5292]
    -- <QueryServiceImpl.getSelectSQL()>
        SELECT *
        FROM (
        SELECT
        Hematology_Results.Id AS Id,
        Hematology_Results.Date AS Date,
        Hematology_Results.testid AS testid,
        Hematology_Results$testid$.key AS "testid$testid",
        Hematology_Results.result AS result,
        Hematology_Results.resultOORIndicator AS resultOORIndicator,
        Hematology_Results.units AS units,
        Hematology_Results.unitsMVIndicator AS unitsMVIndicator,
        Hematology_Results.qualresult AS qualresult,
        Hematology_Results.Remark AS Remark,
        Hematology_Results$RefRange$.AgeAtTime AS RefRange_ageAtTime,
        Hematology_Results$RefRange$.ref_range_min AS RefRange_ref_range_min,
        Hematology_Results$RefRange$.ref_range_max AS RefRange_ref_range_max,
        Hematology_Results$RefRange$.status AS RefRange_status,
        Hematology_Results.lsid AS lsid
        FROM studydataset.c108_hematologyresults Hematology_Results
            LEFT OUTER JOIN (SELECT * FROM exp.indexvarchar WHERE ((listid = 1235))) AS Hematology_Results$testid$ ON (Hematology_Results.testid = Hematology_Results$testid$.key)
            LEFT OUTER JOIN (
        -- <QuerySelect@3685603 name='study.hematologyRefRange'>
            -- | /*
            -- | * Copyright (c) 2010 LabKey Corporation
            -- | *
            -- | * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
            -- | */
            -- | SELECT
            -- | c.lsid,
            -- | c.id.species.species as species,
            -- | c.id.ageclass.ageClass as ageClass,
            -- | c.id.dataset.demographics.gender as gender,
            -- | c.testId,
            -- | c.AgeAtTime,
            -- | r.ref_range_min,
            -- | r.ref_range_max,
            -- | (round(r.ref_range_min, 1) || '-' || round(r.ref_range_max, 1)) as range,
            -- | CASE
            -- | WHEN r.ref_range_max IS NULL or r.ref_range_min IS NULL
            -- | THEN null
            -- | WHEN c.result is NULL
            -- | THEN null
            -- | WHEN convert(c.result, double) >= r.ref_range_min AND convert(c.result, double) <= r.ref_range_max
            -- | THEN 'Normal'
            -- | WHEN convert(c.result, double) < r.ref_range_min
            -- | THEN 'Low'
            -- | WHEN convert(c.result, double) > r.ref_range_max
            -- | THEN 'High'
            -- | END as status
            -- | FROM (
            -- | SELECT
            -- | c.lsid,
            -- | c.testId,
            -- | c.result,
            -- | c.id,
            -- | CASE
            -- | WHEN c.id.dataset.demographics.birth is null or c.date is null
            -- | THEN null
            -- | ELSE
            -- | ROUND(CONVERT(age_in_months(c.id.dataset.demographics.birth, c.date), DOUBLE) / 12, 1)
            -- | END as AgeAtTime
            -- | FROM hematologyResults c
            -- | ) c
            -- | LEFT JOIN lists.ageclass ac
            -- | ON (
            -- | c.ageAtTime IS NOT NULL AND
            -- | c.ageAtTime >= ac."min" AND
            -- | (c.ageAtTime <= ac."max" OR ac."max" is null) AND
            -- | c.id.Species.species = ac.species
            -- | )
            -- | LEFT JOIN lists.lab_test_range r ON (
            -- | c.testId = r.test AND
            -- | c.id.species.species = r.species AND
            -- | c.id.ageclass.ageClass = r.age_class AND
            -- | c.id.dataset.demographics.gender = r.gender
            -- | )
            SELECT c_3.lsid AS lsid,
            c_3.Id_Species_species AS species,
            c_3.Id_AgeClass_AgeClass AS ageClass,
            c_3.Demographics_gender AS gender,
            c_3.testId AS testId,
            c_3.AgeAtTime AS AgeAtTime,
            r_5.ref_range_min AS ref_range_min,
            r_5.ref_range_max AS ref_range_max,
            {fn round((r_5.ref_range_min)*10.0)}/10.0||'-'||{fn round((r_5.ref_range_max)*10.0)}/10.0 AS range,
             CASE
            WHEN(r_5.ref_range_max IS NULL OR r_5.ref_range_min IS NULL)THEN(NULL)
            WHEN(c_3.result IS NULL)THEN(NULL)
            WHEN(CAST(c_3.result AS DOUBLE PRECISION)>=r_5.ref_range_min AND CAST(c_3.result AS DOUBLE PRECISION)<=r_5.ref_range_max)THEN('Normal')
            WHEN(CAST(c_3.result AS DOUBLE PRECISION)<r_5.ref_range_min)THEN('Low')
            WHEN(CAST(c_3.result AS DOUBLE PRECISION)>r_5.ref_range_max)THEN('High')
            END AS status
            FROM (
            -- <QuerySelect@13152602>
                -- | /*
                -- | * Copyright (c) 2010 LabKey Corporation
                -- | *
                -- | * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
                -- | */
                -- | SELECT
                -- | c.lsid,
                -- | c.id.species.species as species,
                -- | c.id.ageclass.ageClass as ageClass,
                -- | c.id.dataset.demographics.gender as gender,
                -- | c.testId,
                -- | c.AgeAtTime,
                -- | r.ref_range_min,
                -- | r.ref_range_max,
                -- | (round(r.ref_range_min, 1) || '-' || round(r.ref_range_max, 1)) as range,
                -- | CASE
                -- | WHEN r.ref_range_max IS NULL or r.ref_range_min IS NULL
                -- | THEN null
                -- | WHEN c.result is NULL
                -- | THEN null
                -- | WHEN convert(c.result, double) >= r.ref_range_min AND convert(c.result, double) <= r.ref_range_max
                -- | THEN 'Normal'
                -- | WHEN convert(c.result, double) < r.ref_range_min
                -- | THEN 'Low'
                -- | WHEN convert(c.result, double) > r.ref_range_max
                -- | THEN 'High'
                -- | END as status
                -- | FROM (
                -- | SELECT
                -- | c.lsid,
                -- | c.testId,
                -- | c.result,
                -- | c.id,
                -- | CASE
                -- | WHEN c.id.dataset.demographics.birth is null or c.date is null
                -- | THEN null
                -- | ELSE
                -- | ROUND(CONVERT(age_in_months(c.id.dataset.demographics.birth, c.date), DOUBLE) / 12, 1)
                -- | END as AgeAtTime
                -- | FROM hematologyResults c
                -- | ) c
                -- | LEFT JOIN lists.ageclass ac
                -- | ON (
                -- | c.ageAtTime IS NOT NULL AND
                -- | c.ageAtTime >= ac."min" AND
                -- | (c.ageAtTime <= ac."max" OR ac."max" is null) AND
                -- | c.id.Species.species = ac.species
                -- | )
                -- | LEFT JOIN lists.lab_test_range r ON (
                -- | c.testId = r.test AND
                -- | c.id.species.species = r.species AND
                -- | c.id.ageclass.ageClass = r.age_class AND
                -- | c.id.dataset.demographics.gender = r.gender
                -- | )
                SELECT c_2.lsid AS lsid,
                c_2.testid AS testId,
                c_2.result AS result,
                c_2.Id AS id,
                 CASE
                WHEN(c_2.Demographics_birth IS NULL OR c_2.Date IS NULL)THEN(NULL)
                ELSE ({fn round((CAST((CASE WHEN ({fn dayofmonth(c_2.Demographics_birth)}>{fn dayofmonth(c_2.Date)}) THEN (12*({fn year(c_2.Date)}-{fn year(c_2.Demographics_birth)})+{fn month(c_2.Date)}-{fn month(c_2.Demographics_birth)}-1) ELSE (12*({fn year(c_2.Date)}-{fn year(c_2.Demographics_birth)})+{fn month(c_2.Date)}-{fn month(c_2.Demographics_birth)}) END) AS DOUBLE PRECISION)/12)*10.0)}/10.0)
                END AS AgeAtTime,
                c_2.Id_Species AS Id_Species,
                c_2.Id_Species_species AS Id_Species_species,
                c_2.Id_AgeClass AS Id_AgeClass,
                c_2.Id_AgeClass_AgeClass AS Id_AgeClass_AgeClass,
                c_2.Id_DataSet AS Id_DataSet,
                c_2.Demographics AS Demographics,
                c_2.Demographics_gender AS Demographics_gender
                FROM (
                -- <QueryTable@14909357 savedName='studydataset.c108_hematologyresults' name='Hematology Results' class='DataSetTable'>
                    SELECT studydataset_c108_hematologyresults_6.Date AS Date, studydataset_c108_hematologyresults_6.Id AS Id, studydataset_c108_hematologyresults_6$Id$.participantid AS Id_AgeClass, studydataset_c108_hematologyresults_6$Id$AgeClass$.AgeClass AS Id_AgeClass_AgeClass, studydataset_c108_hematologyresults_6$Id$.participantid AS Id_DataSet, studydataset_c108_hematologyresults_6$Id$.participantid AS Demographics, studydataset_c108_hematologyresults_6$Demographics$.birth AS Demographics_birth, studydataset_c108_hematologyresults_6$Demographics$.gender AS Demographics_gender, studydataset_c108_hematologyresults_6$Id$.participantid AS Id_Species, studydataset_c108_hematologyresults_6$Id$Species$.species AS Id_Species_species, studydataset_c108_hematologyresults_6.lsid AS lsid, studydataset_c108_hematologyresults_6.result AS result, studydataset_c108_hematologyresults_6.testid AS testid
                    FROM studydataset.c108_hematologyresults AS studydataset_c108_hematologyresults_6
                        LEFT OUTER JOIN (SELECT * FROM study.participant WHERE (container IN (?))) AS studydataset_c108_hematologyresults_6$Id$ ON (studydataset_c108_hematologyresults_6.Id = studydataset_c108_hematologyresults_6$Id$.participantid)
                        LEFT OUTER JOIN (
                    -- <QuerySelect@32843116 name='study.demographicsAgeClass'>
                        -- | /*
                        -- | * Copyright (c) 2010 LabKey Corporation
                        -- | *
                        -- | * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
                        -- | */
                        -- | SELECT
                        -- | d.id,
                        -- | ac.AgeClass,
                        -- | --ac.dataset,
                        -- | FROM study.Demographics d
                        -- | LEFT JOIN lists.ageclass ac
                        -- | ON (
                        -- | d.id.age.ageInYears IS NOT NULL AND
                        -- | d.id.age.ageInYears >= ac."min" AND
                        -- | (d.id.age.ageInYears <= ac."max" OR ac."max" is null) AND
                        -- | d.id.Species.species = ac.species
                        -- | )
                        SELECT d_2.Id AS id,
                        ac_3.ageclass AS AgeClass
                        FROM (
                        -- <QueryTable@15053279 savedName='studydataset.c108_demographics' name='Demographics' class='DataSetTable'>
                            SELECT studydataset_c108_demographics_4.Id AS Id, studydataset_c108_demographics_4$Id$.participantid AS Id_Species, studydataset_c108_demographics_4$Id$Species$.species AS Id_Species_species, studydataset_c108_demographics_4$Id$.participantid AS Id_Age, studydataset_c108_demographics_4$Id$Age$.AgeInYears AS Id_Age_AgeInYears, studydataset_c108_demographics_4.lsid AS lsid
                            FROM studydataset.c108_demographics AS studydataset_c108_demographics_4
                                LEFT OUTER JOIN (SELECT * FROM study.participant WHERE (container IN (?))) AS studydataset_c108_demographics_4$Id$ ON (studydataset_c108_demographics_4.Id = studydataset_c108_demographics_4$Id$.participantid)
                                LEFT OUTER JOIN (
                            -- <QuerySelect@3019819 name='study.demographicsSpecies'>
                                -- | /*
                                -- | * Copyright (c) 2010 LabKey Corporation
                                -- | *
                                -- | * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
                                -- | */
                                -- | SELECT
                                -- | d.Id AS Id,
                                -- | CASE
                                -- | WHEN(d.Id like 'r%')THEN('Rhesus')
                                -- | WHEN(d.Id like 'cy%')THEN('Cynomolgus')
                                -- | WHEN(d.Id like 'cj%')THEN('Marmoset')
                                -- | WHEN(d.Id like 'm%')THEN('Marmoset')
                                -- | WHEN(d.Id like 'tx%')THEN('Marmoset')
                                -- | WHEN(d.Id like 'ag%')THEN('Vervet')
                                -- | WHEN(d.Id like 'so%')THEN('Cotton-top Tamarin')
                                -- | WHEN(d.Id like 'st%')THEN('Stump Tailed')
                                -- | ELSE 'Unknown'
                                -- | END AS species,
                                -- | FROM study.Demographics d
                                -- | -- LEFT JOIN lists.species s ON (d.id ~* s.prefix)
                                SELECT d_2.Id AS Id,
                                 CASE
                                WHEN(d_2.Id LIKE 'r%')THEN('Rhesus')
                                WHEN(d_2.Id LIKE 'cy%')THEN('Cynomolgus')
                                WHEN(d_2.Id LIKE 'cj%')THEN('Marmoset')
                                WHEN(d_2.Id LIKE 'm%')THEN('Marmoset')
                                WHEN(d_2.Id LIKE 'tx%')THEN('Marmoset')
                                WHEN(d_2.Id LIKE 'ag%')THEN('Vervet')
                                WHEN(d_2.Id LIKE 'so%')THEN('Cotton-top Tamarin')
                                WHEN(d_2.Id LIKE 'st%')THEN('Stump Tailed')
                                ELSE ('Unknown')
                                END AS species
                                FROM (
                                -- <QueryTable@21555752 savedName='studydataset.c108_demographics' name='Demographics' class='DataSetTable'>
                                    SELECT studydataset_c108_demographics_3.Id AS Id, studydataset_c108_demographics_3.lsid AS lsid
                                    FROM studydataset.c108_demographics AS studydataset_c108_demographics_3
                                -- </QueryTable@21555752>
                                ) d_2
                            -- </QuerySelect@3019819>
                            ) AS studydataset_c108_demographics_4$Id$Species$ ON (studydataset_c108_demographics_4$Id$.participantid = studydataset_c108_demographics_4$Id$Species$.Id)
                                LEFT OUTER JOIN (
                            -- <QuerySelect@8896621 name='study.demographicsAge'>
                                -- | /*
                                -- | * Copyright (c) 2010 LabKey Corporation
                                -- | *
                                -- | * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
                                -- | */
                                -- | SELECT
                                -- | d.id,
                                -- | d.birth,
                                -- | --CONVERT(age(d.birth, COALESCE(d.death, curdate())), INTEGER) AS "AgeInYearsRounded",
                                -- | floor(age(d.birth, COALESCE(d.death, curdate()))) AS "AgeInYearsRounded",
                                -- | CONVERT(age_in_months(d.birth, COALESCE(d.death, curdate())), INTEGER) AS "AgeInMonths",
                                -- | ROUND(CONVERT(age_in_months(d.birth, COALESCE(d.death, curdate())), DOUBLE) / 12, 1) AS "AgeInYears",
                                -- | FROM study.Demographics d
                                SELECT d_2.Id AS id,
                                d_2.birth AS birth,
                                {fn floor((CASE WHEN ({fn month(d_2.birth)}>{fn month(coalesce(d_2.death,{fn curdate()}))} OR {fn month(d_2.birth)}={fn month(coalesce(d_2.death,{fn curdate()}))} AND {fn dayofmonth(d_2.birth)}>{fn dayofmonth(coalesce(d_2.death,{fn curdate()}))}) THEN ({fn year(coalesce(d_2.death,{fn curdate()}))}-{fn year(d_2.birth)}-1) ELSE ({fn year(coalesce(d_2.death,{fn curdate()}))}-{fn year(d_2.birth)}) END))} AS AgeInYearsRounded,
                                CAST((CASE WHEN ({fn dayofmonth(d_2.birth)}>{fn dayofmonth(coalesce(d_2.death,{fn curdate()}))}) THEN (12*({fn year(coalesce(d_2.death,{fn curdate()}))}-{fn year(d_2.birth)})+{fn month(coalesce(d_2.death,{fn curdate()}))}-{fn month(d_2.birth)}-1) ELSE (12*({fn year(coalesce(d_2.death,{fn curdate()}))}-{fn year(d_2.birth)})+{fn month(coalesce(d_2.death,{fn curdate()}))}-{fn month(d_2.birth)}) END) AS INTEGER) AS AgeInMonths,
                                {fn round((CAST((CASE WHEN ({fn dayofmonth(d_2.birth)}>{fn dayofmonth(coalesce(d_2.death,{fn curdate()}))}) THEN (12*({fn year(coalesce(d_2.death,{fn curdate()}))}-{fn year(d_2.birth)})+{fn month(coalesce(d_2.death,{fn curdate()}))}-{fn month(d_2.birth)}-1) ELSE (12*({fn year(coalesce(d_2.death,{fn curdate()}))}-{fn year(d_2.birth)})+{fn month(coalesce(d_2.death,{fn curdate()}))}-{fn month(d_2.birth)}) END) AS DOUBLE PRECISION)/12)*10.0)}/10.0 AS AgeInYears
                                FROM (
                                -- <QueryTable@9985211 savedName='studydataset.c108_demographics' name='Demographics' class='DataSetTable'>
                                    SELECT studydataset_c108_demographics_3.birth AS birth, studydataset_c108_demographics_3.death AS death, studydataset_c108_demographics_3.Id AS Id, studydataset_c108_demographics_3.lsid AS lsid
                                    FROM studydataset.c108_demographics AS studydataset_c108_demographics_3
                                -- </QueryTable@9985211>
                                ) d_2
                            -- </QuerySelect@8896621>
                            ) AS studydataset_c108_demographics_4$Id$Age$ ON (studydataset_c108_demographics_4$Id$.participantid = studydataset_c108_demographics_4$Id$Age$.id)
                        -- </QueryTable@15053279>
                        ) d_2
                        LEFT JOIN (
                        -- <QueryTable@8735258 name='ageclass' class='ListTable'>
                            SELECT
                            CAST((SELECT FloatValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7473 AND exp.ObjectProperty.ObjectId = ageclass_5.objectid) AS INT)
                             AS ageclass, ageclass_5.key AS key,
                            (SELECT FloatValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7475 AND exp.ObjectProperty.ObjectId = ageclass_5.objectid)
                             AS max,
                            (SELECT FloatValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7474 AND exp.ObjectProperty.ObjectId = ageclass_5.objectid)
                             AS min,
                            CAST((SELECT StringValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7472 AND exp.ObjectProperty.ObjectId = ageclass_5.objectid) AS VARCHAR(4000))
                             AS species
                            FROM (
                            SELECT * FROM exp.indexinteger WHERE ((listid = 1258))) ageclass_5
                        -- </QueryTable@8735258>
                        ) ac_3 ON d_2.Id_Age_AgeInYears IS NOT NULL AND d_2.Id_Age_AgeInYears>=ac_3.min AND (d_2.Id_Age_AgeInYears<=ac_3.max OR ac_3.max IS NULL) AND d_2.Id_Species_species=ac_3.species
                    -- </QuerySelect@32843116>
                    ) AS studydataset_c108_hematologyresults_6$Id$AgeClass$ ON (studydataset_c108_hematologyresults_6$Id$.participantid = studydataset_c108_hematologyresults_6$Id$AgeClass$.id)
                        LEFT OUTER JOIN studydataset.c108_demographics AS studydataset_c108_hematologyresults_6$Demographics$ ON (studydataset_c108_hematologyresults_6$Id$.participantid = studydataset_c108_hematologyresults_6$Demographics$.Id)
                        LEFT OUTER JOIN (
                    -- <QuerySelect@11025560 name='study.demographicsSpecies'>
                        -- | /*
                        -- | * Copyright (c) 2010 LabKey Corporation
                        -- | *
                        -- | * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
                        -- | */
                        -- | SELECT
                        -- | d.Id AS Id,
                        -- | CASE
                        -- | WHEN(d.Id like 'r%')THEN('Rhesus')
                        -- | WHEN(d.Id like 'cy%')THEN('Cynomolgus')
                        -- | WHEN(d.Id like 'cj%')THEN('Marmoset')
                        -- | WHEN(d.Id like 'm%')THEN('Marmoset')
                        -- | WHEN(d.Id like 'tx%')THEN('Marmoset')
                        -- | WHEN(d.Id like 'ag%')THEN('Vervet')
                        -- | WHEN(d.Id like 'so%')THEN('Cotton-top Tamarin')
                        -- | WHEN(d.Id like 'st%')THEN('Stump Tailed')
                        -- | ELSE 'Unknown'
                        -- | END AS species,
                        -- | FROM study.Demographics d
                        -- | -- LEFT JOIN lists.species s ON (d.id ~* s.prefix)
                        SELECT d_2.Id AS Id,
                         CASE
                        WHEN(d_2.Id LIKE 'r%')THEN('Rhesus')
                        WHEN(d_2.Id LIKE 'cy%')THEN('Cynomolgus')
                        WHEN(d_2.Id LIKE 'cj%')THEN('Marmoset')
                        WHEN(d_2.Id LIKE 'm%')THEN('Marmoset')
                        WHEN(d_2.Id LIKE 'tx%')THEN('Marmoset')
                        WHEN(d_2.Id LIKE 'ag%')THEN('Vervet')
                        WHEN(d_2.Id LIKE 'so%')THEN('Cotton-top Tamarin')
                        WHEN(d_2.Id LIKE 'st%')THEN('Stump Tailed')
                        ELSE ('Unknown')
                        END AS species
                        FROM (
                        -- <QueryTable@18350249 savedName='studydataset.c108_demographics' name='Demographics' class='DataSetTable'>
                            SELECT studydataset_c108_demographics_3.Id AS Id, studydataset_c108_demographics_3.lsid AS lsid
                            FROM studydataset.c108_demographics AS studydataset_c108_demographics_3
                        -- </QueryTable@18350249>
                        ) d_2
                    -- </QuerySelect@11025560>
                    ) AS studydataset_c108_hematologyresults_6$Id$Species$ ON (studydataset_c108_hematologyresults_6$Id$.participantid = studydataset_c108_hematologyresults_6$Id$Species$.Id)
                -- </QueryTable@14909357>
                ) c_2
            -- </QuerySelect@13152602>
            ) c_3
            LEFT JOIN (
            -- <QueryTable@7152527 name='ageclass' class='ListTable'>
                SELECT ageclass_7.key AS key,
                (SELECT FloatValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7475 AND exp.ObjectProperty.ObjectId = ageclass_7.objectid)
                 AS max,
                (SELECT FloatValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7474 AND exp.ObjectProperty.ObjectId = ageclass_7.objectid)
                 AS min,
                CAST((SELECT StringValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7472 AND exp.ObjectProperty.ObjectId = ageclass_7.objectid) AS VARCHAR(4000))
                 AS species
                FROM (
                SELECT * FROM exp.indexinteger WHERE ((listid = 1258))) ageclass_7
            -- </QueryTable@7152527>
            ) ac_4 ON c_3.AgeAtTime IS NOT NULL AND c_3.AgeAtTime>=ac_4.min AND (c_3.AgeAtTime<=ac_4.max OR ac_4.max IS NULL) AND c_3.Id_Species_species=ac_4.species
            LEFT JOIN (
            -- <QueryTable@25211612 name='lab_test_range' class='ListTable'>
                SELECT lab_test_range_8.key AS Key,
                CAST((SELECT FloatValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7549 AND exp.ObjectProperty.ObjectId = lab_test_range_8.objectid) AS INT)
                 AS age_class,
                CAST((SELECT StringValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7548 AND exp.ObjectProperty.ObjectId = lab_test_range_8.objectid) AS VARCHAR(4000))
                 AS gender,
                (SELECT FloatValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7551 AND exp.ObjectProperty.ObjectId = lab_test_range_8.objectid)
                 AS ref_range_max,
                (SELECT FloatValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7550 AND exp.ObjectProperty.ObjectId = lab_test_range_8.objectid)
                 AS ref_range_min,
                CAST((SELECT StringValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7547 AND exp.ObjectProperty.ObjectId = lab_test_range_8.objectid) AS VARCHAR(4000))
                 AS species,
                CAST((SELECT StringValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 7546 AND exp.ObjectProperty.ObjectId = lab_test_range_8.objectid) AS VARCHAR(4000))
                 AS test
                FROM (
                SELECT * FROM exp.indexinteger WHERE ((listid = 1262))) lab_test_range_8
            -- </QueryTable@25211612>
            ) r_5 ON c_3.testId=r_5.test AND c_3.Id_Species_species=r_5.species AND c_3.Id_AgeClass_AgeClass=r_5.age_class AND c_3.Demographics_gender=r_5.gender
        -- </QuerySelect@3685603>
        ) AS Hematology_Results$RefRange$ ON (Hematology_Results.lsid = Hematology_Results$RefRange$.lsid)) x
        WHERE (Id IN (?))
        ORDER BY Id ASC, Date DESC
        LIMIT 101
    -- </QueryServiceImpl.getSelectSQL()>
    ?[1] 29e3860b-02b5-102d-b524-493dbd27b599
    ?[2] 29e3860b-02b5-102d-b524-493dbd27b599
    ?[3] r95061

    org.labkey.api.data.Table$2.call(Table.java:1398)
    org.labkey.api.data.Table$2.call(Table.java:1395)
    org.labkey.api.data.AsyncQueryRequest$1.run(AsyncQueryRequest.java:69)
    java.lang.Thread.run(Thread.java:619)
Ben Bimber2010-11-15 10:38Jon (LabKey DevOps)2015-04-28 22:00 clarification on validation script and 10.3 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hello,

I am hoping I can clarify the expected behavior of when/where validation scripts will be run, as of 10.3:

there are 4 categories of tables I'm inserted in:
Datasets
Lists
Assays
Hard tables in an external schema

There are several questions I have for each type of table:

1. should validation scripts work at all
2. are there any potential import scenarios under which the validation script will not run? the import types I know about are:
-single sample 'Insert New'
-excel batch upload 'Import Data'
-http APIs. includes JS, R, perl
-pipeline import for lists or datasets

I would like to figure out all above scenarios where the validation script would NOT run. the ones I know about are:

1. validation scripts will not run at all for assays. this has probably not changed.
2. pre-10.3, it would not run for any sort of excel-based import on any table type
3. pre-10.3, it was not hooked up to hard tables in external schemas
4. pre-10.3, i didnt think they worked on lists either

Are the above accurate in 10.3?
Ben Bimber2010-11-29 14:15Jon (LabKey DevOps)2015-04-28 22:00 dataset query name in a tableURL? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
there is a reusable details page called detailsQueryRow.view. For a query, one might set a tableURL like this:

<tableUrl>/query/detailsQueryRow.view?schemaName=study&amp;query.queryName=obs&amp;lsid=${lsid}</tableUrl>

However, obs is just a string. When repeating this across a whole study, it would be nice to have a substitution for query name. Datasets already have a 'dataset' column, but this is the entityID of the dataset, not it's string name.

Can any of the following work:

1. I did not find a way to use a lookup in the URL. ie. query.queryName=${dataset/name}. is that possible?

2. Is there any sort of substitution that puts the name of your query into a URL like that?

thanks for the help.
Ben Bimber2011-02-17 10:58Jon (LabKey DevOps)2015-04-28 22:01 issue summary webpart causing issues TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a simple collaboration folder where I tried to add an issues summary webpart:

https://xnight.primate.wisc.edu:8443/labkey/project/WNPRC/WNPRC_Units/Other/IACUC%20Review/begin.view

there's 10's of folders almost exactly like this one on our site. they all work fine. for some reason, this issues WP throws errors and does not load.

The code behind the issue summary WP is very simple. It uses Ext.get() to find a div, then updates this DIV with the HTML from a given page. for some bizarre reason this folder is giving an error and not loading that content. it says 'Ext.get('issues') is null'. If I inspect with firebug, that DIV exists. My only guess is that perhaps it has something to do with the order in which that code is run? It's just weird that I can only reproduce it in this folder.


I created this folder new this morning. The only things I did was modify which users have permissions, then try to add this WP. nothing else has been done to it. i reproduced it in both chrome and firefox.

Anyone have thoughts?

Thanks for the help.
Ben Bimber2011-03-22 10:29Jon (LabKey DevOps)2015-04-28 22:01 SelectRows and advanced display options TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In a dataregion, labkey has a fairly sophisticated handling of display values. for example, if a column is a lookup, labkey will generally resolve that lookup and display the lookup's display value instead of the raw value. It also automatically shows URLs. LABKEY.Query.selectRows() returns information about a query. the response of this API includes the URL for columns, if defined. It appears as an additional property named something like: "_labkeyurl_title".

Is there any way to get more detailed information about lookups and display columns? For example, it would be really useful if selectRows also returned the properties like "_labkeydisplay_title", which would be the display value.

This comes up b/c I am trying to create a reusable details panel. Ideally this would show the same thing as a dataregion, except the row is pivoted. Thanks for the help.
Ben Bimber2011-03-31 03:10Jon (LabKey DevOps)2015-04-28 22:01 query result that doesnt make any sense TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Both my laptop and our test server are cloned from a postgres backup from our production server. they were taken at slightly different times, so they're not quite identical, but they're close.

I have a query that runs fine locally, but is returning a completely confusing reuslt on test-ehr. The query attempts to identify the amount of blood drawn in the last 30 days for an animal:

SELECT b.id, sum(b.quantity) as BloodLast30, count(*) as te, max(lsid) as lsid
FROM study."Blood Draws" b
WHERE b.id='r95061' AND b.date >= '2011-03-01' AND b.date <= '2011-03-31'
GROUP BY b.id

It should return a small number. Instead this returns 7380, which makes no sense. I added the count(*) and LSID to get more info. That query also says the LSID is:

urn:lsid:primate.wisc.edu:Study.Data-108:1008.2.0110322E7.r95061.f593e0ef-370a-102e-803d-079f4fb02595

but when i try to find that:
https://test-ehr.primate.wisc.edu:8443/labkey/query/WNPRC/EHR/executeQuery.view?schemaName=study&query.queryName=Blood%20Draws&query.Id~startswith=r95061&query.lsid~eq=urn:lsid:primate.wisc.edu:Study.Data-108:1008.2.0110322E7.r95061.f593e0ef-370a-102e-803d-079f4fb02595

that record doesnt exist. likewise for studydata:

https://test-ehr.primate.wisc.edu:8443/labkey/query/WNPRC/EHR/executeQuery.view?schemaName=study&query.queryName=StudyData&query.Id~startswith=r95061&query.lsid~eq=urn:lsid:primate.wisc.edu:Study.Data-108:1008.2.0110322E7.r95061.f593e0ef-370a-102e-803d-079f4fb02595

any idea what could be happening here?

thanks for the help.
Ben Bimber2011-09-04 13:42Jon (LabKey DevOps)2015-04-28 22:02 change target of help link in top-right of site? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in the top-right of pages there's a 'help' link, by the admin menu. at some point i thought someone told me the target of this link could be customized. for example, right now it goes to the default labkey page, which honestly doesnt do much for most of our users. we also have a help link in our menu bar, which directs the user to a site-specific help page, but the upper-right link tends to be more obvious and it's a little confusing to have 2 things called help.

in the admin console there's the option to change the support link, which i did. i didnt look too carefully, but i could not find anything that actually pointed to that target (which defaults to home/support). out of curiosity, where does that link show up?

thanks for the help.
mpeterson@mitre.org2012-03-16 15:16Jon (LabKey DevOps)2015-04-28 22:03 NullPointerException in Schema Browser and Check TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I'm implementing a module in Java, and I'm having trouble getting the data to show in the Query Browser. If I click on the module name, I get a NullPointerException (The stack trace is below).

I've tried to use the debugger, but I'm getting a transaction cancelled error when I try to figure out which assertation is causing the exception. I would guess that this is coming from reading the schema XML file, but figured I would post a question here to make sure before heading down that rabbit hole.

We are currently developing against LabKey 11.2

java.lang.NullPointerException
    at org.labkey.api.data.SchemaColumnMetaData.addColumn(SchemaColumnMetaData.java:207)
    at org.labkey.api.data.SchemaColumnMetaData.loadColumnsFromXml(SchemaColumnMetaData.java:123)
    at org.labkey.api.data.SchemaColumnMetaData.<init>(SchemaColumnMetaData.java:78)
    at org.labkey.api.data.SchemaTableInfo.getColumnMetaData(SchemaTableInfo.java:320)
    at org.labkey.api.data.SchemaTableInfo.getTitleColumn(SchemaTableInfo.java:209)
    at org.labkey.api.data.ColumnInfo$SchemaForeignKey.createLookupColumn(ColumnInfo.java:1053)
    at org.labkey.api.data.ColumnInfo.getDisplayField(ColumnInfo.java:478)
    at org.labkey.api.data.ColumnInfo.getWidth(ColumnInfo.java:534)
    at org.labkey.api.data.ColumnInfo.setExtraAttributesFrom(ColumnInfo.java:285)
    at org.labkey.api.data.ColumnInfo.copyAttributesFrom(ColumnInfo.java:245)
    at org.labkey.api.query.FilteredTable.wrapColumn(FilteredTable.java:215)
    at org.labkey.api.query.FilteredTable.wrapColumn(FilteredTable.java:227)
    at org.labkey.query.data.SimpleUserSchema$SimpleTable.wrapAllColumns(SimpleUserSchema.java:137)
    at org.labkey.query.data.SimpleUserSchema$SimpleTable.<init>(SimpleUserSchema.java:125)
    at org.labkey.query.data.SimpleUserSchema.createTable(SimpleUserSchema.java:89)
    at org.labkey.query.data.SimpleUserSchema.createTable(SimpleUserSchema.java:84)
    at org.labkey.api.query.UserSchema._getTableOrQuery(UserSchema.java:99)
    at org.labkey.api.query.UserSchema.getTable(UserSchema.java:75)
    at org.labkey.api.query.UserSchema.getTable(UserSchema.java:126)
    at org.labkey.query.controllers.GetSchemaQueryTreeAction.execute(GetSchemaQueryTreeAction.java:132)
    at org.labkey.query.controllers.GetSchemaQueryTreeAction.execute(GetSchemaQueryTreeAction.java:43)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:147)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:98)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:166)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:346)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:765)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:684)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:662
slangley@scharp.org2012-03-29 13:49Jon (LabKey DevOps)2015-04-28 22:03 Wanting Another Container Filter Type TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Of the container filters that are available, I thought, or hoped that the filter:

   'currentPlusProject: Include the current folder and the project that contains it

might behave this way:

  "Include all folders for which the user has read permission in the project that contains the current folder"

instead, it behaves this way:
   
  "Include the current folder and the the root folder of the project that contains it"

So, how about making a new container filter type that behaves the way I want it to. You could call it:

"allProjectFolders: Include all folders for which the user has read permission in the current project."

Thanks.

Scott
Leo Dashevskiy2012-05-16 14:02Jon (LabKey DevOps)2015-04-28 22:03 Has anyone implemented or seen a "horizontal" drag-and-drop of items within an Ext Panel? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
This has way less to do with LabKey, I realize, but you guys look like a very knowledgeable bunch, so I am giving it a shot here. May be you can direct me to some useful resources about this...

The layout of my panel is "column" so that when I add items to it sequentially via the panel.items.add() call, iterating through my input array and generating each iteration an appropriate object to add, the objects (all the same height) show up in the panel just the way I want them, they overflow: the panel width is fixed, if there is not enough room on the current line at the end of it for next object to be added, then the panel's height increases and the last object is added as the first on the new line. Now this left to right, then carry-over to the beginning of the next line and go left to right again, flow is important to the design.

The idea now is to empower this with drag and drop ability, so that any element can be dragged and dropped in between horizontally-wise any other two objects and so that all of the objects "to the right" (including all of the lines below) shift right to make space for the object being dragged and dropped. Hopefully, I am making myself clear here.

Thanks.
sadcat@u.washington.edu2012-06-01 11:34Jon (LabKey DevOps)2015-04-28 22:03 Lists and Folders TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have a project that has a certain hierarchy - a top folder, and a couple of subfolders. The top folder has two lists. I would like to have access to those lists from subfolders (namely - to add a "Lists" webpart to a Portal on a subfolder and see lists belonging to the superfolder). Is that possible? Right now I can, of course, add a list webpart, but it does not see the lists in the folder one level up

Thanks,
X
Ben Bimber2013-02-20 08:20Jon (LabKey DevOps)2015-04-28 22:07 expected size for full-text search index? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Our server's full text search index is about 8.5GB. This was a little surprising given how we're using our site. As a point of reference, could someone post the size of labkey.org's search index or perhaps experience with index size from other large production sites?

Also - should I expect dataset records to get indexed?

Thanks.
Leo Dashevskiy2013-03-25 11:07Jon (LabKey DevOps)2015-04-28 22:07 Not able to build the latest (25373) development version TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good morning, folks!

After updating from svn, I modify the following 2 files within the server folder in the following way:

dhcp157184:server cytomatic$ diff build.xml_BAK build.xml
28c28
< <condition property="tomcat.home" value="/Library/Tomcat/6.0.35" else="/Library/Tomcat/6.0.35">
---
> <condition property="tomcat.home" value="${env.CATALINA_HOME}" else="${tomcat.home}">
dhcp157184:server cytomatic$ diff configs/pg.properties_BAK configs/pg.properties
21c21
< jdbcPassword=postgres
---
> jdbcPassword=sasa

to include the exact path to the Tomcat Apache server installation and also to include the set up password for my postgres data base system.

Within that same subfolder 'server', I run first 'ant clean', then simply 'ant'.

I get the following:

...
sub_build_gwt:

copy_public_to_module:
     [copy] Copying 4 files to /Library/LabKey/build/modules/pipeline/explodedModule/web

-sub_build_jsp_check:

sub_build_jsp:
     [echo] sub_build_jsp /Library/LabKey/server/../build/modules/core/explodedModule/lib/core_jsp.jar /Library/LabKey/server/modules/core/src ${jspUpToDate}

pre_build_jsp:
    [mkdir] Created dir: /Library/LabKey/build/modules/core/jspTempDir
    [mkdir] Created dir: /Library/LabKey/build/modules/core/jspTempDir/webapp

BUILD FAILED
/Library/LabKey/server/build.xml:2393: The following error occurred while executing this line:
/Library/LabKey/server/build.xml:661: The following error occurred while executing this line:
/Library/LabKey/server/build.xml:1567: The following error occurred while executing this line:
/Library/LabKey/server/build.xml:1619: The following error occurred while executing this line:
/Library/LabKey/server/build.xml:2061: The following error occurred while executing this line:
/Library/LabKey/server/customModules/onprc_ehr/build.xml:27: The following error occurred while executing this line:
/Library/LabKey/server/build.xml:1236: The following error occurred while executing this line:
/Library/LabKey/server/build.xml:1358: The following error occurred while executing this line:
/Library/LabKey/server/build.xml:1452: Compile failed; see the compiler error output for details.

Total time: 2 minutes 16 seconds

copy_jsp_to_webapp:
     [copy] Copying 84 files to /Library/LabKey/build/modules/core/jspTempDir/webapp

sub_jar_module:
      [jar] Building jar: /Library/LabKey/build/modules/mothership/explodedModule/lib/mothership.jar

deployApp:

What am I doing wrong and how can I remedy this to compile the latest version?
Thanks.
-Leo
Leo Dashevskiy2013-03-26 15:32Jon (LabKey DevOps)2015-04-28 22:07 What is the way in JS to obtain the current project's File Root path? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum 
reshmyunni17782013-08-25 21:37Jon (LabKey DevOps)2015-04-28 22:08 ActiveMQ messaging to labkey user TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I added a button for file importing.When import a file,the activemq queue will send a message 'File is imported' and receive that message.The console will display the message.I am running labkey and activemq in localhost.
How labkey user can know message is received from activemq queue?Any way to show this message in UI.What changes need for this?
Please help me.
feifei bao2015-04-07 07:39Jon (LabKey DevOps)2015-04-13 15:49 Links and insert problems of list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm new to LabKey. Right now I've come across some problems I hope someone can help me. In a page, I imported a list. When I click "INSERT NEW", I want it links to another new wiki page I created rather than the Labkey default page. I can not find the right place to change it.

The new wiki page is a custom form which is consistent with the content in the list. Once I click the "submit" button I can insert a new row to the list. For this part, do I need to use the LABKEY.Query.insertRows() API call to insert rows?

Thank you very much.

Feifei
Ben Bimber2015-08-13 08:48Jon (LabKey DevOps)2015-08-17 11:49 Open Office Docs Over WebDav? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey is useful as a web-based way to manage documents; however, the fact that you cant edit them limits this a lot. This limitation makes it more of a document archive. There are a growing number of web-based ways to edit office documents. Office Online will let you open a document from a URL (https://blogs.office.com/2013/04/10/office-web-viewer-view-office-documents-in-a-browser/), and standalone MS office in theory will also let you open from a WebDav URL, which could enable editing. I did some quick googling and experimenting on this yesterday. It seems like we're really close; however, neither of those 2 options played well with authentication. Has anyone else explored anything along these lines?

Note: another avenue to explore could be browser plugins. Chrome/FF both seem to have options tailored toward opening office docs directly in MS office. If that worked, it would be possible to click a document in LK, open in your local MS office and do live editing - which would be very useful.

I may do some more looking, but thought I'd post the question/idea here.
tlynch@primate.wisc.edu2016-08-03 13:44Jon (LabKey DevOps)2016-08-04 14:22 Error executing R Plot - Peer's certificate has expired TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I noticed a similar issue "Accessing multiple queries in R View" from January 14, 2016. What was the cause / solution?

I'm using a self signed certificate that has not expired. Here is the error:

javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
Loading required package: Matrix
Loading required package: quadprog
Loading required package: RCurl
Loading required package: bitops
Loading required package: rjson
Error in function (type, msg, asError = TRUE) :
  Peer's Certificate has expired.
Calls: labkey.selectRows ... getURI -> curlPerform -> .Call -> <Anonymous> -> fun
Execution halted

Thanks,

Tom
Will Holtz2016-12-15 13:38Jon (LabKey DevOps)2016-12-15 16:58 Getting full-text search results to honor tableUrl TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a list and have created a page that I'd like to use as a customized details view for rows in this list. I would like to have this customized details page be accessible from the "Details" column of the grid and also be the destination that full-text search links to for these records. At the 2016 Labkey Users Workshop, I discussed this with Adam Rauch. He informed me that I could accomplish this using <tableUrl>. I have set <tableUrl> and in the grid view my details link are now pointing to the customized details view. However, I have not been able to get the full-text search results to point to the customized details view.

I tried changing the full-text search options for the list properties, to see if this would correctly re-index the list rows. More specifically, I turned off "Index each item as a separate document", saved the list design, turned on "Index each item as a separate document", and saved the list design again. This did not cause the full-text search to link to the customized details view. Is there something else I need to do to get this to work? I suppose I could delete the whole Lucene index so that it would be rebuilt from scratch, but I'd rather not unless someone is confident this would solve my problem.

thanks!
-Will
simon buckner2017-02-20 12:50Jon (LabKey DevOps)2017-02-22 11:56 Saving a Batch via Python API TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Issue: When using the Labkey Python API, I am unable to save a batch, although I am able via the UI. The API follows a different flow that does not seem to be preserving uploaded data.

I downloaded the Python API from here: https://github.com/LabKey/labkey-api-python, and based my script off of this sample: https://github.com/LabKey/labkey-api-python/blob/master/samples/save_batch_example.py

I noticed that the flow for the save_batch() API call begins at SaveAssayBatchAction.java:executeAction(), whereas the UI upload is directed to UploadWizardAction.java:saveExperimentRun(). When uploading from the UI, the batch saves just fine. When uploading from the API, it makes it to TsvDataExchangeHandler.java:_writeRunData(). This line:

dataFiles.addAll(context.getUploadedData().values());

...seems to be giving me trouble. From the UI, the context variable is an instance of AssayRunUploadContext, and uploadedData is an ArrayList<File>. When using the Python API, context is an instance of ModuleRunUploadForm, and uploadedData is an ArrayList<JSONObject>. This does not seem to be valid somewhere in the code, as Python returns the error:

labkey.exceptions.RequestError: '400: runDataUploadedFile not found in assay run properties.'

The uploaded file property is not being set because the uploadedData field is not found/recognized in the context object.

Is this a known issue? If not, is there anything about the Python API I am missing?

Thanks,

Simon
fcf2017-06-02 12:01Jon (LabKey DevOps)2017-06-02 23:26 Cannot edit custom fields of named file set TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
This appears to be a bug in Labkey 17.1.
The server is setup with CentOS 7.3.1611, PostgreSQL 9.5.7, Tomcat 8.0.37, Java 1.8.0

Steps to reproduce:
1. Go to a project. On the portal tab, add a Files web part.
2. Choose customize off the dropdown list next to the word Files.
3. Pick Configure File Roots
4. Create a named file set with a root different than the default.
5. Choose the new file root to be the new file set
6. Click on the admin cog, then the "File Properties" tab, "Use Custom File Properties"
7. Create a few custom file properties. Click Submit.
8. Right click a file and select "Edit Properties". Click Save.

RESULT: The edits will not be saved. The edits WILL be saved if the default file root is used, just not for a customized file set. No errors are generated in any log.
Sev2017-10-02 15:08Jon (LabKey DevOps)2017-10-06 14:39 Programattically assign per dataset permissions in server TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello

I'm currently using the per dataset permissions to control access on our LabKey system. When we deploy a new release, which includes both LabKey server and our custom module, these permissions appear to be reset (all dataset permissions set to None). This means we need to go back in and manually set permissions for each dataset every time we run a release. I'm looking for a way to do this programmatically on the server side.

Ive read some other forum threads that refer to the JS Security API as a means to set the per dataset permissions. In this thread Josh alluded to a server-side way of applying the permissions.

https://www.labkey.org/9e077eeb-b2ab-1029-961c-79704b7a2169/announcements-thread.view?entityId=064f01d0-47a9-1034-ad32-84e20e6fc1c0&_docid=thread%3A064f01d0-47a9-1034-ad32-84e20e6fc1c0

It doesn't look like the security API is available in Java, so my question is how could we programmatically apply the per dataset permissions on the server side, so they are correctly set when we deploy a new release?

Some other related threads:

https://www.labkey.org/9e077eeb-b2ab-1029-961c-79704b7a2169/announcements-thread.view?entityId=5859d892-040c-1030-9bea-987439a6bb4e&_docid=thread%3A5859d892-040c-1030-9bea-987439a6bb4e

https://www.labkey.org/9e077eeb-b2ab-1029-961c-79704b7a2169/announcements-thread.view?entityId=f8a5aec4-db61-102f-ab5e-987439a645c2&_docid=thread%3Af8a5aec4-db61-102f-ab5e-987439a645c2

Thanks for your help!

Sev
Ben Bimber2018-01-03 09:30Jon (LabKey DevOps)2018-01-03 11:58 New UI and Button Bars TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
A little more UI feedback: I like what you've done w/ the button bars in terms of switching from text to icons. it's a lot cleaner. however, any table with a mixture of text and icon buttons really looks bad now. as an example, a new vanilla list has this (attached).

As a couple of you know, I proposed that LK support a standard 'More' button (perhaps '...' as the icon). This button opens a menu, showing extra buttons/actions. This would make it easy to make these extra buttons accessible without clutter and also be a pretty low-effort way to avoid clutter with these text-only buttons (finding a reasonable icon for everything is higher effort). You essentially had this feature a release or two ago but then removed it...
marcia hon2018-02-12 07:40Jon (LabKey DevOps)2018-02-16 18:28 Conditional Validation TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

We have a situation where:

1. If DOBUnknown is checked off, then DOB should be empty
2. And vs versa, if DOB has a values, DOBUnknown should be empty

How could we enforce these conditions?

Thanks,
Marcia
jeckels2018-05-21 10:52Jon (LabKey DevOps)2018-06-01 22:30 Subversion server migration scheduled - Wednesday May 23, 7PM PDT TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
As previously [communicated on this forum](https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=17652), we are switching from our long-standing Subversion server to a new system.

The cutover has now been scheduled for 7PM PDT on Wednesday May 23.

The new server is [https://svn.mgt.labkey.host/](https://svn.mgt.labkey.host/) and is actively mirroring the existing server, hedgehog. It retains full history from the previous repository. TeamCity is already pulling from the new server.

At the moment the new server is a read-only copy, and allows connections using the generic cpas/cpas username/password combination. At 7PM on Wednesday, the previous server will be flipped to be read-only, and accounts will be enabled on the new server. Existing credentials will be retained, so you should continue using whatever account you have been using.

The previous server will continue running for a few weeks in case any problems are found, but will be decommissioned soon.

After the cutover, you will be able to use SVN's "relocate" command to point an existing enlistment to the new server. It takes a few minutes and will retain any local edits you have in progress. More detail will follow at the time of migration.

Thanks,

Josh


Edit: Migration Complete. Please refer to the following post for instructions on using the new SVN repository:

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=17762
slangley@scharp.org2007-11-30 13:56Jon (LabKey DevOps)2015-04-28 21:52 Startup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I downloaded and built the Labkey 2.3 branch source and tried to run it against a new database.

I'm seeing this issue:

    http://localhost:8080/labkey/admin/moduleStatus.view

Missing Struts Module Configuration
There is no Struts module configuration registered for /org/labkey/core/admin/moduleStatus.do (module path /org/labkey/core/admin).

I'm using the IntelliJ 7.0.1; Java EE 5 SDK Update 3 which includes Java SE 6 Update 3; Apache Tomcat 5.5.20; all running on Windows XP Pro SP2 (32-bit).

Similar error messages appear in the console log:

log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.Embedded).
log4j:WARN Please initialize the log4j system properly.
INFO DbSchema 2007-11-30 13:43:42,155 main : Loading DbSchema "core" using the following configuration:
    Server URL: jdbc:postgresql://sqltest/scott_lk23test
    Database Product Name: PostgreSQL
    Database Product Version: 8.2.4
    JDBC Driver Name: PostgreSQL Native Driver
    JDBC Driver Version: PostgreSQL 8.2 JDBC3 with SSL (build 506)
ERROR terActionServlet 2007-11-30 13:43:45,665 main : Could not load Struts module configuration for /WEB-INF/classes/_pageflow/struts-config.xml.
INFO ViewServlet 2007-11-30 13:44:17,128 8080-Processor25 : ViewServlet.init: org.apache.catalina.core.StandardWrapperFacade@111c3f0
INFO DbSchema 2007-11-30 13:44:17,237 8080-Processor25 : Loading DbSchema "prop"
ERROR terActionServlet 2007-11-30 13:44:18,610 8080-Processor25 : No module configuration registered for /org/labkey/core/admin/moduleStatus.do (module path /org/labkey/core/admin).

Has anything changed with the Labkey 'core' module lately that may be causing this.
I'll try using a recent Java JDK 1.5 - instead of 1.6 - and see if that helps.

Thanks.

Scott Langley
gilbertsavier@gmail.com2009-07-10 03:20Jon (LabKey DevOps)2015-04-28 21:54 Take thumbnail of URL home page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum


Hi Qualifiers,
     I have a simple task in Java that is we take a thumbnail an one of the website home page, when we give an URL like in one text box that time control goes to home page of the specified URL and take a picture that home page as a thumbnail and stored in an our specified local disk like we give more than one an up to 100 URLS at a time and stored orderly stored in an our specified local disk so you have any tool or Java code for this task please post an our forum I will try that.

                Thanks in advance for your help.

Regards,
Gilbertsavier.
[url=http://www.mioot.com]Live chat By mioot [/url]
Ben Bimber2010-04-02 08:42Jon (LabKey DevOps)2015-04-28 21:55 Do file based modules allow XML for R script metadata? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
pretty much every other sort of file in a file based module allows an XML file to describe other attributes. do R report support this and is there an example of one of these XML files anywhere?
Ben Bimber2010-06-02 16:25Jon (LabKey DevOps)2015-04-28 21:59 possible to retroactively define QC state? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a large study in labkey. we have not historically used QC states on our records, but it would be a good idea to do so. i created the allowable values for QC state and set which are public. I also set the default such that newly imported records will be assigned a QC state. however, all existing records currently have blank QC states. is there any easy way to set the QC state on all existing records? we'd basically like to set the QC set on every existing record to 'approved'. thanks.
Ben Bimber2010-08-18 12:17Jon (LabKey DevOps)2015-04-28 21:59 Query -> R report / filter issue TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Say I load a query, then apply some filters. If I switch to an R view, should those filters be maintained when R initially loads the report? I thought this came up once before and was fixed. However, on our 10.2 server, I do not see these filters being respected. This is potentially a bug.

If the R view loads once (meaning it loads all data in that query), then I can toggle to the 'data' tab, apply filters, and these filters will be respected.

The reason this came up is b/c we have a large dataset called weights. We have an R view that makes a weight graph, one panel per subject. It works fine with a small amount of data, but loading this from 600K records doesnt work so well.
Ben Bimber2010-11-15 07:44Jon (LabKey DevOps)2015-04-28 22:00 make menu item disabled by default? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in query metadata you can have something like:

                    <item text="More Actions" insertPosition="end">
                        <item text="Jump To History">
                            <onClick>
                                historyHandler(dataRegion, dataRegionName);
                            </onClick>
                        </item>
                        <item text="Jump To Other Dataset">
                            <onClick>
                                datasetHandler(dataRegion, dataRegionName);
                            </onClick>
                        </item>
                    </item>

Is there any way to make either the top level button or menu items disabled by default? This is not the same as 'requiresSelection'. The rationale for disabling by default would be for the onLoad JS code to enable the menu item as needed. The alternative would be not to have a menu item at all, and for the onLoad code to create one if appropriate.
Ben Bimber2010-12-06 07:23Jon (LabKey DevOps)2015-04-28 22:00 advice on overriding/supplementing metadata from server in a labkey store? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Here's my question first, followed by explanation:

LABKEY.ext.Store queries the server for your query, and the server returns JSON data with metadata about that table. When I create that store, I want to provide a metadata object. When the server returns the JSON data, I want to merge my custom metadata with that returned by the server.

The purpose of this is to have fine control over the behavior of all things ext. The store and it's metadata is the center of how the components are created, how records created/submitted/validated, etc. If you can get this right, you need a lot less work elsewhere. While some part of this problem would be solved by having the server return more complex metadata, it wont do everything, because sometimes different pages would use the same query and require unique metadata. Further, the really cool things to set would be functions (see Ext.data.Record.convert). The latter can be used to do some cool things like dynamic default values. ie:

"return now()" or "return Ext.get('someField').getValue()"

I think what I need to figure out is the store's reader. There do not seem to be events associated with loading of the server's response. Does anyone (perhaps who wrote LABKEY.ext.Store) have any suggestion or thought into that?

One lesser option would be to just override the default Record type of the store, which gets some of the way there, but is not as good a solution.
michael_stover@urmc.rochester.edu2011-01-20 13:01Jon (LabKey DevOps)2015-04-28 22:01 Can't get a transform script to run for elispot assay import TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I've made a couple of transform scripts to use when importing elispot data. I've tried javascript and perl scripts, but what keeps happening is when I import the .ctl file and go through the steps of inputing sample and antigen information, at the end, right when it's supposed to run the transform script, I get a small little error message that says:

    Unable to load data file: Plate reader type not found

Of course, am using the CTL plate reader and it works as soon as I remove the validation script from the assay design. Unfortunately, no errors appear in the error log. The console file I set up for the scripting engine is not written to. There appears to be no output at all other than this erroneous error message. I can't even get started making a working script because I have no clue how to get past this. Any ideas?
Ben Bimber2011-05-25 11:11Jon (LabKey DevOps)2015-04-28 22:01 whats the right postgres datatype for a file? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i'm looking to move a labkey list into a hard table. one of the columns is labkey's 'attachment' type, which hold a file. whats the right datatype to use in the SQL create statement to replicate that?

thanks.
Ben Bimber2011-07-27 11:05Jon (LabKey DevOps)2015-04-28 22:02 case insensitive LIKE search in postgres TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
if you use labkey's 'contains' filter to do a search, it's case insensitive. what i seemed to be seeing was that if you do a LIKE search through labkey but using raw SQL is that LIKE is case sensitive (which is what postgres is). ILIKE did not seem to be supported. I'm guessing labkey just passes like 'LIKE' through to pg, so we're inheriting postgres' behavior?

Should it be possible to write a SQL statement (not a labkey filter) against postgres that gives a case insensitive LIKE?

Thanks.
Jason2012-02-10 13:56Jon (LabKey DevOps)2015-04-28 22:03 Java API Client able to add studies to StudyProperties query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am brand new to Labkey Server and client API. I have local installation of Labkey Server running and I am trying to use the Java API to add studies under a project folder. My questions are as follows:

1. Is it possible to have multiple studies under one project folder?
2. Why am I unable to execute the following code even though I am a Site Administrator? I get a 401 Unauthorized response code, but I am able to select and update from the same schema/table.

Connection cn = new Connection("http://localhost:8080/labkey", "email address goes here", "password goes here");

InsertRowsCommand cmd = new InsertRowsCommand("study", "StudyProperties");

Map<String, Object> row = new HashMap<String, Object>();
row.put("Label", "This is a study label");   
row.put("Investigator", "Smith, John");           

cmd.addRow(row);
        
SaveRowsResponse resp;
try {
    resp = cmd.execute(cn, "Project folder name goes here");
    System.out.println(resp.getRowsAffected());
}
catch (CommandException e) {           
    System.out.println(e.getStatusCode());
    System.out.println(e.getMessage());
    System.out.println(e.getResponseText());
}

Any help would be greatly appreciated!
Anthony Corbett2012-05-14 08:03Jon (LabKey DevOps)2015-04-28 22:03 LSID generation for Study datasets TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Labkey server version 12.1

I'm trying to setup a study dataset, called Progress Notes, which will allows N number of entries, ie. rows, for any participant and is not tied to a visit (Sequence Number). In order to achieve this I performed the following steps when creating the dataset:

1. Marked the dataset as a 'demographic' dataset. I'm assuming, please correct me if I'm wrong, that a demographic dataset means that the entries are associated with the PariticpantID regardless of Sequence Number, and thus associated to the Participant across the 'whole' of the study.

2. In order to make a row unique (as there is no Sequence Number) I added an integer field, named noteID, which I set to be managed by Labkey so that it will auto-increment the value making the composite ParticipantID-noteID key unique per row.


Unfortunately, the managed noteID is not used in the generation of the lsid (the real PK). I get the following error when trying to insert a new record for a participant that already has a row in the dataset:

ERROR: duplicate key value violates unique constraint "c14d117_progress_notes_pk"
  Detail: Key (lsid)=(urn:lsid:urmc.rochester.edu:Study.Data-14:5015.01-13) already exists.



If I make the dataset non-demographic the lsid will generate with the managed (auto-incremented) id at the end.

    urn:lsid:urmc.rochester.edu:Study.Data-14:5015.01-13.11.0000.12

    urn:lsid:urmc.rochester.edu:Study.Data-14:5015.01-13.11.0000.10

However, this forces a sequence number (11 in the lsid's above) to be specified which isn't applicable to the progress notes, which can be added at any time in my use case.


I prefer not to use lists for the following reasons:

1. There is no convenience of automatic inserts of created/createdBy and modified/modifiedBy for lists. These fields will have to be additional fields on the list which will cause a lot of boiler plate code to be written on the client side business logic before insertion. Really I can't trust all the client side data as authoritative and the server side should really be doing this.
 
2. The Entity ID guid does not show up in the audit log for list events so there is no way, that is clearly evident, to produce an audit trail (Even though a lsid changes over time [per modification] making this difficult anyways).

3. Even though I can set the ParticipantID field in a list to the 'Subject/Participant (String)' look-up type I loose the hyperlink to the Participant overview from the ParticipantID column in the 'view data' grid. In addition Labkey's EXT4 editableGrid doesn't see that this list field is a Subject/Participant lookup and therefore I loose the dropdown of possible ParticipantID to choose from, this making the user entry more error prone. The editable grid populates fine with possible ParticipantIDs when the source is a study dataset. To me this points to a metadata issue with lists that have a lookup type of Subject/Participant.



Is it possible to generate the lsid using the managed ID field with a demographic data set?


If this isn't clear or you need more information please let me know.


Thanks,

Anthony Corbett
University of Rochester
Dept Biostatistics and Computational Biology
gstarrett@primate.wisc.edu2012-08-29 14:35Jon (LabKey DevOps)2015-04-28 22:06 QWP not showing newly added entries TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a query web part set up within a wiki that I'm using to do a pretty simple search of our allele database. The qwp is rendered when the user fills out a form and clicks a submit button. I have a similar form on the same page that is set up to insert the values from the form into a new entry within the table holding the allele information. When I make a new entry I can see it if I directly navigate to the table to view the data, but not when I render the qwp. The other thing is if I use LabKey's built in insert function and click cancel the new entries will load if I submit the form completely blank. That is until I navigate away and return to the page. Please find my javascript below:

Inserting the data into the new table

function subInsert(data) {
        var uidValue = data.rows[0].maxId + 1;
        console.log(myValues2);
        //console.log(maxId);
        //var uidValue = maxId.rows[0].maxId + 1;
        console.log(uidValue);
        var userId = LABKEY.Security.currentUser.displayName;
        var d = new Date();
        var date = d.getDate();
        var year = d.getFullYear();
        var month = d.getMonth() + 1;
             LABKEY.Query.insertRows({
                 schemaName: 'oconnor',
                 queryName: 'dna_sequences_draft_2013',
             rows: [
                {'allele_name': myValues2['alleleName'],
                'region': myValues2['region'],
                'file_active': 1,
                'locus': myValues2['locus'],
                'allele_family': myValues2['alleleFamily'],
                'species': myValues2['species'],
                'origin': myValues2['origin'],
                'genbank_id': myValues2['genbankId'],
                'ipd_accession': myValues2['ipdAccession'],
                'previous_name': myValues2['previousName'],
                'last_edit': year + "-" + month + "-" + date,
                'initials': userId,
                'sequence': myValues2['sequence'],
                'modified_by': userId,
                'type': myValues2['type'],
                'uid': uidValue,
                'id': uidValue,
                'comments': myValues2['comments'],
                'variant': 1,
                'reference': 1,
                'full_length': myValues2['fullLength']
                }],
             successCallback: function() {Ext.MessageBox.alert('Insert Allele', 'Successfully inserted ' + myValues2['alleleName']);},
         });
}

creating the qwp

var qwp1 = new LABKEY.QueryWebPart({
    renderTo: 'queryTestDiv1',
    title: 'Search Results',
    schemaName: 'oconnor',
    queryName: 'dna_sequences_draft_2013',
    containerFilter: 'currentAndSubfolders',
    filters: [LABKEY.Filter.create('species', myValues['species'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('file_active', '1', LABKEY.Filter.Types.EQUAL), LABKEY.Filter.create('allele_name', myValues['alleleName'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('region', myValues['region'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('locus', myValues['locus'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('origin', myValues['origin'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('type', myValues['type'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('allele_family', myValues['alleleFamily'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('comments', myValues['comments'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('modified_by', myValues['modifiedBy'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('previous_name', myValues['previousName'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('genbank_id', myValues['genbankId'], LABKEY.Filter.Types.CONTAINS), LABKEY.Filter.create('ipd_accession', myValues['ipdAccession'], LABKEY.Filter.Types.CONTAINS)],
    showUpdateColumn: true,
    maxRows: myValues['rb-auto'],
    buttonBar: {
        includeStandardButtons: false,
        items:[
          //LABKEY.QueryWebPart.standardButtons.insertNew,
          LABKEY.QueryWebPart.standardButtons.deleteRows,
          LABKEY.QueryWebPart.standardButtons.exportRows
        ]
    }
});
Leo Dashevskiy2012-09-11 11:07Jon (LabKey DevOps)2015-04-28 22:06 Ext.define not available? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

Within my module I have


 the "begin.html" file with the following:


<script type='text/javascript'>    LABKEY.requiresExt4ClientAPI(); </script>
...
<script type='text/javascript'>
    LABKEY.requiresScript(
            [
...
                'FlowGraph.js'])
</script>



and then the "FlowGraph.js" file with the following:


Ext.define('LABKEY.ext.FlowGraph', {

    extend : 'Ext.panel.Panel',

    constructor : function(config) {
...
    this.callParent([config]);
    }
});


I get the error:

Uncaught TypeError: Object #<Object> has no method 'define' FlowGraph.js:9
(anonymous function)


and in the console Ext in actuality does not have the 'define' method (though Ext4 does), but it is being used elsewhere all over the place -- what am I not doing right and how to fix that?

Thanks.
-Leo
slangley@scharp.org2012-10-01 18:30Jon (LabKey DevOps)2015-04-28 22:06 Cross-Folder query problem in 12.2 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
According to the docs:

   https://www.labkey.org/wiki/home/Documentation/page.view?name=crossFolderQueries

This user-defined query that references a query or list defined in another folder should work:

  SELECT * FROM Project."HVTN Publications and Analyses/_data/".lists."Publications"

but instead it gives:

  Error on line 1:Table Project.HVTN Publications and Analyses/_data/.lists.Publications not found.
    Can't resolve column: Publications."*"

likewise, this query executed on the '_data' folder, itself, fails:

  SELECT Publications.pub_category FROM Project."HVTN Publications and Analyses/_data/".lists."Publications"

with:

  Error on line 1:Table Project.HVTN Publications and Analyses/_data/.lists.Publications not found.

Is this problem something that will be fixed when we apply this fix?

  https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=15772

Thanks.

Scott
Anthony Corbett2012-10-23 08:11Jon (LabKey DevOps)2015-04-28 22:06 Changing dataset table metadata TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I've implemented electionic CRF forms using wiki pages. Now I'm trying to update a dataset's metadata so that the updateURL points to a wiki page; this way the edit link on the grid will do straight to the wiki page. I tried following https://www.labkey.org/wiki/home/Documentation/page.view?name=tableMetadata which says to use the following xml:

<ns:table tableName="DOB" tableDbType="TABLE">
  <ns:updateUrl>/wiki/page.view?name=Enrollment&action=dob&pid=${ParticipantId}</ns:updateUrl>
</ns:table>


However, when I save I get the message 'saved with parse errors'. There is no feedback as to what the parse error was, maybe it isn't validate xml against the tableInfo XSD? I did notice in other table definitions had the columns specified, but when I click the edit metadata button below the field properties nothing populates in the xml view.

Thanks in advance!

-
Anthony Corbett
Leo Dashevskiy2013-02-06 22:04Jon (LabKey DevOps)2015-04-28 22:07 LABKEY.WebPart.render() times out TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello folks!

I am making a .render() call on a LABKEY.WebPart object from my JS code and the back-end R code takes a while to run and return something. My LABKEY.WebPart gives me a time-out exactly 5 minutes after I make the .render() call, but I need more.

By the way, I already did have some timeout issue before elsewhere and so I did set "Ext.Ajax.timeout = 3600000;" in a global setting in a piece of code that should have been imported way before the .render() call above. The value above is an hour and I was under the impression (from dealing with that other issue) that it is being respected...

Any thoughts on how can I extend/avoid this time out?

Thanks.
-Leo
slangley@scharp.org2013-05-21 13:25Jon (LabKey DevOps)2015-04-28 22:07 Strategy for resetting test data? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm writing a test for this java-based module, unsupportedModules/scharp/peptide, that should be possible for you to run as part of your automated test suite. I would like to know what strategies you recommend for resetting the data stored in the module's schema after running the test.

As part of the resources/schema/ SQL scripts for the module, certain data necessary for the module to function properly is loaded into several of the module's database schema tables. Then, as part of the execution of the test, additional data is uploaded into the tables via selenium commands.

At the conclusion of the test, I would like to reset the database tables to the state they were in before the test was run - with just the initial data loaded. This would involve working with more than just one database table because the act of uploading calls several Postgres server-side functions that end up modifying multiple tables.

Possible strategies I can think of are:

A. Do nothing - if your automated test suite is designed to only run once against a database before the database is dropped and recreated from scratch.

B. Programmatically delete the module and the schema at the conclusion of the test through a call to the AdminController's DeleteModuleAction.

C. Write a custom SQL script that is invoked at the end of the test that knows precisely which records to delete, perhaps useing the current timestamp to filter for the desired records.

What strategies do you use?

Thanks.

Scott Langley
bront@kcr.uky.edu2013-08-12 07:02Jon (LabKey DevOps)2015-04-28 22:08 psqlexception on external schemas TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In an effort to migrate LabKey's data from PostgreSQL 8.1 to 9.1, I did a pg_dump and restore of the LabKey database, which seemed to work

I can log into LabKey, but I am now getting errors referencing our external schemas.

These external schemas were NOT part of the upgrade (they were already in PG 9.1).

There is no error when I try to reload schema, but I still get "Schema does not exist error".

When I delete and attempt to re-create a schema, I get this error:

org.postgresql.util.PSQLException: ERROR: column "dbschemaname" of relation "externalschema" does not exist

DialectSQL = INSERT INTO query.externalschema
     (entityid, created, createdby, modified, modifiedby, container, userschemaname, editable, metadata, datasource, indexable, tables, DbSchemaName)
     VALUES (?, ?, ?, ?, ?, ?, ?, ?, NULL, ?, ?, ?, ?)
    RETURNING externalschemaid

request attributes
LABKEY.StartTime = 1376315250901
LABKEY.container = /xxx
LABKEY.action = insertExternalSchema
LABKEY.RequestURL = /labkey/query/DoD%20Lung%20Study%20%28LCRI%29/insertExternalSchema.view?
LABKEY.OriginalURLHelper = /labkey/query/DoD%20Lung%20Study%20%28LCRI%29/insertExternalSchema.view?
LABKEY.controller = query
X-LABKEY-CSRF = 4bd5bb8a53beb10b0ecaf1517b861aee
LABKEY.OriginalURL = https://mcclabkey.uky.edu/labkey/query/DoD%20Lung%20Study%20%28LCRI%29/insertExternalSchema.view?
LABKEY.Counter = 0

core schema database configuration
Server URL    jdbc:postgresql://xxx/labkey_prod?sslmode=require
Product Name    PostgreSQL
Product Version    9.1.9
Driver Name    PostgreSQL Native Driver
Driver Version    PostgreSQL 9.2 JDBC4 (build 1001)

Any ideas what might be going on?

Many thanks,

bront
jdutra2013-10-25 08:35Jon (LabKey DevOps)2015-04-28 22:08 Can I make a timechart on a query? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The instructions for creating a timechart in the help start with:

 - Navigate to the dataset, view, or query of interest.

In 13.1, when I try to make a timechart based on a query, the "Add Measure" window says no results were found for the the current filter, even though some of the columns of my query have been marked as measures, and work as measures in other types of charts. The heading of the first column on this window is "Dataset", which I'm assuming means I may not be able to do this with a query.

In 13.2, I try the same thing and get the same result. The heading of the first column in 13.2 has been changed to "Dataset/Query", but the behavior hasn't changed.

Is it possible in either version to make timecharts based on a query? If so, what am I doing wrong? If not, do you plan to make this feature available in a future version?

Thanks for any suggestions!
Jen
Ben Bimber2013-11-13 07:57Jon (LabKey DevOps)2015-04-28 22:08 Display Table of Users With Read Access to a Folder? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a good way to create a query that displays all users who have read access to a given folder? I dont see this in core, and I think it would be somewhat tricky to do in DB SQL with inheritance.

If this isnt easy in SQL, is there an existing non-admin page to just display the list of users with read access? My scenario is that I'd like to make something simple that non-admins can click to show 'who has access to read my data'. I could perhaps do something with the JS client API or make my own custom action, but I thought I'd check to see what exists first.

Thanks for any ideas.
anders kielland2015-02-11 03:54Jon (LabKey DevOps)2015-02-13 09:43 Inaccessible Dataset TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a dataset in a study folder that is not accessible (giving the following error message):

500: Unexpected server error
Column date already exists for table c10d88_ogtt

Cannot be deleted by an administrator, and Schema Browser cannot be opened for the respective folder.

See attachment for full error message.

Can anyone help with this please?
Rgd, Anders
feifei bao2015-04-16 07:55Jon (LabKey DevOps)2015-04-20 11:12 Ext.form.TextField problem TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I try to do a similar filter function based on the labkey example:
https://www.labkey.org/wiki/home/Documentation/page.view?name=tutorialActionURL

While in my part, I put the user input from and the filter list in the same wiki page. So it show the search box and list at the same time. After I click the "search" button, the page updates and shows the filtered results. How can I make the search box still shows the content inputted by user in the filtered page?

Thank you very much.

Feifei
michele monnardfeller2015-04-30 04:10Jon (LabKey DevOps)2015-06-29 11:07 Survey drop-down lists TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello
I have two problems with the drop-down lists in surveys.

If I've somehow selected one item I didn't want to select, I can't undo it and let it blank. Is there any option to select "none"?

The second problem is that I would like to make a likert scale like question. So I have to be able to get the level of satisfaction on a scale from 1-5. Until now we have used drop-down lists but it's not really the best solution. Is there another way?
alx dobre2015-08-26 02:34Jon (LabKey DevOps)2015-09-01 11:15 The rules around what gets replaced and what gets added when reuploading a folder structure TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have been experimenting with the upload of a folder structure as we are trying to fully automate our Labkey configuration.

The only way to import/export folders that I found is through the Admin -> Folder -> Management -> Import/Export in the UI. Please let me know if there is another way to programatically specify the folders, queries and web parts structure.

The thing with automatic deployment though is that we would like to make changes and re upload the structure as we develop for it. What I found when uploading folder zip files was that when I re upload queries with the exact same name as existing queries then the content gets replaced -> which is expected and desired.

However if I change the name of a query and upload then no replacement takes place, both the queries are there. Which one could say that it's somewhat expected.

But when I turn around and do the same thing with web parts inside the folder (wiki pages in my case) I see that the web parts get entirely replaced in all cases.

My question: Is there a way to properly clean a folder before uploading it's new configuration? Specifically for renaming a query.
Ben Bimber2017-04-26 13:12Jon (LabKey DevOps)2017-05-01 12:50 Server That Only Has One Project? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a new LK instance that exists primarily as a public portal to share one kind of data. It will only have one project. Once the user logs in, they will only ever need to do anything within this single project.

I can turn off most UI related to switching projects; however, dealing with /home is a little awkward. There's 2 main ways I can think to deal with this:

1) Make separate project for our data. Weirdness is that if the user just types in our base URL, LabKey will take them to /home. I could put a simple landing page in /home with a link to our actual project (which I've usually done in this situation), or perhaps make automatic navigation from /home/begin.view -> our module (this seems awkward). Can I make this server treat my project as though is it the 'default' project and redirect here instead of /home?

2) Store all of our data in /home. This would not be a good idea on a multi-project server, but could be OK for this case. I cant change the name of /Home; however, I could probably change the title (if i go direct against the database). I'm sorta temped to try this.

Thanks for any ideas,
Ben
Anthony Corbett2017-09-15 13:42Jon (LabKey DevOps)2017-09-18 12:56 Developer Machine Setup documentation inconsistencies TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In "Set Up a Development Machine" the labkey environment variable is called "LABKEY_HOME" and on the "Notes on Seeing up a Mac for Labkey Development" the labkey environment variable is called "LABKEY_ROOT".

In addition, there are multiple places in both of these wiki pages for what should be added to PATH.

Set Up a Development Machine says <LABKEY_HOME>\build\deploy\bin

Notes on Seeing up a Mac for Labkey Development says two different things:
      PATH = <labkey-root>/external/ant/bin:<labkey-root>/external/osx/bin:<your-normal-path>
      vs
      export PATH=$LABKEY_ROOT/external/ant/bin:$LABKEY_ROOT/build/deploy/bin:$PATH

So my question is what is actually needed on the PATH???

1. Is external/ant/bin needed? According to the Mac Notes it is, but that isn't on the main set up anymore with the move to gradle.

2. On my Mac it seems to me that build/deploy/bin contains the exact same things as external/osx/bin. I checked this via: diff <(ls -1 $LABKEY_HOME/build/deploy/bin) <(ls -1 $LABKEY_HOME/external/osx/bin)

So does that mean I only need one or the other? If so which is best?

Thanks,

Anthony
tbrachmann2017-10-16 10:56Jon (LabKey DevOps)2017-10-16 21:40 Set Study Reload programmatically TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I'm wondering if its possible to send an HTTP request to allow a study to be reloaded. Not the trigger to reload the study, but to configure the study for manual reload. I am importing all of our studies into LabKey, and would like future studies to reload automatically.

I can send a POST request with my credentials and the data "allowReload=true" to http://<server>/<project>/<study>/study-manageReload.view? but I get back the error "401: This request has an invalid security context". Is there any way around this?

Thanks.
cmwest32017-11-14 13:45Jon (LabKey DevOps)2017-11-17 11:38 Study Import/Export Not Updating Lookup IDs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are having issues where the lsid in "lists" of a study is not updating it's link correctly as the study ID changes on Import from another server. I've attached a number of screenshots to follow along with the process in order to re-create the issue.

Attachment 1: QtbiScanAnalyses Schema
-Note the CtScan and PetScan rows and how the Lookup field is "study.CtScans.lsid (ParticipantId)" and "study.PetScans.lsid (ParticipantId)", respectively.

Attachment 2: Export Process
-The export process is shown where everything is exported as a zip file from the source server.

Attachment 3 & 4: New Study Creation
- A new study is created on the destination server as the same name and type as what's on the source server. Permissions are currently selected as my user only.

In the new study "Import Study" is selected and the generated zip file from the source server is selected.

Attachment 1 & 5:
-Back in the schema browser and in the "lists" folder and in the "QtbiScanAnalyses" schema shown in attachment 1 on the destination server, "View Data" is selected.
-In attachment 5, the Ct Scan and Pet Scan fields display a raw URN where the study ID is being displayed as 20 when it should be 5. This indicates that the Lookup links aren't being updated on import and we believe this information should be updated automatically.

Attachment 6:
-To correct this issue, we currently have to go in manually and select the correct scan from the provided drop-down list which is linked to the QtbiScanAnalyses lists object, which would be an extremely arduous task if there were many participants but need to migrate between servers.

Attachment 7: Updated Ct and Pet Scan links
- The links have since been updated **UPDATE** Even though it appears the links have been updated, reviewing the data on our application reveals that the urn stays the same i.e. it is still has the old urn. How would we update this manually as a workaround?

To resolve this issue, would it be possible to have LabKey update these Lookup links automatically? If not, what workaround might there be?

Thank you
eva pujadas2017-12-11 05:26Jon (LabKey DevOps)2017-12-12 15:36 How to use a site-level custom theme? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey supporters,

We are evaluating LabKey 17.3 and would like to deploy it in production. Currently we are using a custom theme for the look and feel of our production environment. How can we continue using the current custom theme in order not to confuse our users?
In previous LabKey versions, there was a link "Define Web Themes" next to the theme selection drop-down box; see docu in

https://www.labkey.org/Documentation/Archive/17.2/wiki-page.view?name=customizeLook
and
https://www.labkey.org/Documentation/Archive/17.2/wiki-page.view?name=customizeTheme

In version 17.3 we can not find such a possibility.

Thanks a lot for your support,
Eva Pujadas
Edward2018-02-15 08:06Jon (LabKey DevOps)2018-02-16 18:21 Remove unwanted menu items TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I am using Labkey within an organization for storing data and want to have a strict control over different menu items.
Is there a way to remove unwanted menu items such as, Give UI Feedback and/or Labkey Documentation?

Regards,
Edward
Jon (LabKey DevOps)2022-02-11 17:02Jon (LabKey DevOps)2022-02-11 17:02 Maintenance Notice - Update of labkey.org for Friday, February 11th 2022 @ 5:30pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
An update to labkey.org will occur at 5:30pm PST.

The site should be down for approximately 30 minutes.

Please save your work before this time.

We apologize for any inconvenience.
Jon (LabKey DevOps)2022-03-10 12:12Jon (LabKey DevOps)2022-03-10 22:13 Maintenance Notice - Upgrade of labkey.org to LabKey 22.3 for Thursday, March 10th 2022 @ 9pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 9pm PST for an upgrade to LabKey 22.3

The site will be offline for approximately one hour.

Please save your work before this time.
wnels2@uky.edu2008-04-03 09:59Jon (LabKey DevOps)2015-04-28 21:52 ModelAndView alternatives TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I need to return a success or failure message back to a submitted gwt form. I would like to return plain/text with key words in the content. I don't know how to do this with out it getting inserted into Labey template. What is the most direct way to do this?

Thanks,
Bill
wnels2@uky.edu2009-11-02 11:11Jon (LabKey DevOps)2015-04-28 21:54 restarting task progression after remote task TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I've added a task to the pipeline that runs remotely, its location name is cloud. I've added a Mule service that listens for the Cloud task's complete message and runs the org.labkey.pipeline.mule.StatusRequestHandler. This appears to work and the complete status is written to the database but the the progression never starts up again. The PipelineJob.runStateMachine returns false when the task is not local.
How does the next task get put on ActiveMQ?

Thanks,
Bill
jeckels2010-02-12 09:25Jon (LabKey DevOps)2015-04-28 21:55 10.1 is branched TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just created the 10.1 branch in Subversion:

https://hedgehog.fhcrc.org/tor/stedi/branches/release10.1

Please switch your enlistment over or create a new one.

Remember that all branch changes need a bug in the issue tracker, triage approval, and a code review.

We'll be getting TeamCity building on the branch shortly. There will likely be a failure or two as it switches over - we'll post a followup note when it's down to real test failures, if any.

Thanks,
Josh
Ben Bimber2010-03-18 10:54Jon (LabKey DevOps)2015-04-28 21:55 More R: how best to store results for future use? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'd like to create script so users can rapidly view family structure around some small number of index animals. There's R packages to do the pedigree plotting. There's also packages to calculate a matrix of family relationships, which is used to extract generations (ie. figure out which animals to include in my small family tree).

Calculating this matric takes time and it changes infrequently (gotta do it on the whole colony). It seems like this is a perfect case for a script that runs as a pipeline job. I have a script to calculate this matrix, and other scripts consume the result. Within labkey, what is the best way to store that matrix?

should I have the R script put it in the filesystem? if i have a view scheduled to run as a pipeline, does it somehow already make variables available to scripts that include them?

thanks.
Ben Bimber2010-04-15 14:05Jon (LabKey DevOps)2015-04-28 21:55 java error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
if you have a query, and you go to a URL that tries to filter that query on a non-existent column the QWP says something to the effect of 'Ignoring filter/sort on columns 'age.AgeInYears', 'species' because they do not exist.'

If you then try to change the view of this query you get the following java error. This is reproducible with several queries. Error below:



An unexpected error occurred

javax.servlet.ServletException
       at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
       at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
       at org.labkey.jsp.compiled.org.labkey.query.controllers.chooseColumns_jsp._jspService(chooseColumns_jsp.java:331)
       at org.labkey.api.view.JspView.renderView(JspView.java:119)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:186)
       at org.labkey.api.view.HttpView.render(HttpView.java:140)
       at org.labkey.api.view.HttpView.render(HttpView.java:122)
       at org.labkey.api.view.HttpView.include(HttpView.java:566)
       at org.labkey.jsp.compiled.org.labkey.api.view.template.CommonTemplate_jsp._jspService(CommonTemplate_jsp.java:207)
       at org.labkey.api.view.JspView.renderView(JspView.java:119)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:186)
       at org.labkey.api.view.HttpView.render(HttpView.java:140)
       at org.labkey.api.view.HttpView.render(HttpView.java:122)
       at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:427)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:342)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:742)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:150)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:601)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:101)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
       at java.lang.Thread.run(Thread.java:619)

java.lang.AssertionError
       at org.labkey.study.query.ParticipantVisitDataSetTable.<init>(ParticipantVisitDataSetTable.java:49)
       at org.labkey.study.query.ParticipantDataSetTable$2.getLookupTableInfo(ParticipantDataSetTable.java:126)
       at org.labkey.api.data.ColumnInfo.getFkTableInfo(ColumnInfo.java:483)
       at org.labkey.query.controllers.ChooseColumnsForm.addColumns(ChooseColumnsForm.java:148)
       at org.labkey.query.controllers.ChooseColumnsForm.addColumns(ChooseColumnsForm.java:151)
       at org.labkey.query.controllers.ChooseColumnsForm.addColumns(ChooseColumnsForm.java:151)
       at org.labkey.query.controllers.ChooseColumnsForm.getAvailableColumns(ChooseColumnsForm.java:171)
       at org.labkey.query.controllers.ChooseColumnsForm.getCaption(ChooseColumnsForm.java:214)
       at org.labkey.query.controllers.ChooseColumnsForm.getFilterColumnNamesFromURL(ChooseColumnsForm.java:204)
       at org.labkey.jsp.compiled.org.labkey.query.controllers.chooseColumns_jsp._jspService(chooseColumns_jsp.java:221)
       at org.labkey.api.view.JspView.renderView(JspView.java:119)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:186)
       at org.labkey.api.view.HttpView.render(HttpView.java:140)
       at org.labkey.api.view.HttpView.render(HttpView.java:122)
       at org.labkey.api.view.HttpView.include(HttpView.java:566)
       at org.labkey.jsp.compiled.org.labkey.api.view.template.CommonTemplate_jsp._jspService(CommonTemplate_jsp.java:207)
       at org.labkey.api.view.JspView.renderView(JspView.java:119)
       at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:186)
       at org.labkey.api.view.HttpView.render(HttpView.java:140)
       at org.labkey.api.view.HttpView.render(HttpView.java:122)
       at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:427)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:342)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:742)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:150)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:601)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:101)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
       at java.lang.Thread.run(Thread.java:619)

request attributes
LABKEY.StartTime = 1271365330143
query = org.labkey.query.controllers.ChooseColumnsForm@19d9248
LABKEY.container = /WNPRC/EHR
LABKEY.OriginalURL = http://localhost:8080/labkey/query/WNPRC/EHR/chooseColumns.view?query.queryName=demographics&schemaName=study&srcURL=%2Flabkey%2Fquery%2FWNPRC%2FEHR%2FexecuteQuery.view%3FschemaName%3Dstudy%26query.queryName%3Ddemographics%26query.species%257Eeq%3DCyno%26query.age%252FAgeInYears%257Eeq%3D4.0%26query.sex%257Eeq%3Df%26%3D&dataRegionName=query&queryName=demographics
LABKEY.action = chooseColumns
org.springframework.validation.BindingResult.query = org.springframework.validation.BeanPropertyBindingResult: 0 errors
LABKEY.controller = query
LABKEY.RequestURL = /labkey/query/WNPRC/EHR/chooseColumns.view?query.queryName=demographics&schemaName=study&srcURL=%2Flabkey%2Fquery%2FWNPRC%2FEHR%2FexecuteQuery.view%3FschemaName%3Dstudy%26query.queryName%3Ddemographics%26query.species%257Eeq%3DCyno%26query.age%252FAgeInYears%257Eeq%3D4.0%26query.sex%257Eeq%3Df%26%3D&dataRegionName=query&queryName=demographics
LABKEY.OriginalURLHelper = /labkey/query/WNPRC/EHR/chooseColumns.view?query.queryName=demographics&schemaName=study&srcURL=%2Flabkey%2Fquery%2FWNPRC%2FEHR%2FexecuteQuery.view%3FschemaName%3Dstudy%26query.queryName%3Ddemographics%26query.species%257Eeq%3DCyno%26query.age%252FAgeInYears%257Eeq%3D4.0%26query.sex%257Eeq%3Df%26%3D&dataRegionName=query&queryName=demographics

core schema database configuration
Server URL    jdbc:postgresql://localhost:5432/labkey2
Product Name    PostgreSQL
Product Version    8.4.3
Driver Name    PostgreSQL Native Driver
Driver Version    PostgreSQL 8.4 JDBC3 (build 701)
Ben Bimber2010-04-30 14:23Jon (LabKey DevOps)2015-04-28 21:59 view or webpart: customize the URL of the title? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
there is a rectangular header above most HTML views with the title of that view. In some cases this title is a URL to something else. In file-based XML, can I define a custom URL for a view? what if it's a webpart? i did not see any mention of URLs in either view.xsd or webpart.xsd

thanks for any help.
Ben Bimber2010-07-01 09:17Jon (LabKey DevOps)2015-04-28 21:59 QWP custom buttons and XML metadata TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In labkey you can now add custom buttons to a QWP and also selectively include the default buttons. Doing this in javascript is documented.

You can also create an XML file to supple metadata for a query. In this XML file, you can also add buttons, like this:

                <buttonBarOptions position="both" includeStandardButtons="false">
                    <includeScript>/EHR_Reporting/studyButtons.js</includeScript>
                    <item requiresSelection="true" text="View Chart">
                        <onClick>
                            historyHandler();
                        </onClick>
                    </item>
                </buttonBarOptions>

The above example does not include the standard buttons. Can I selectively add them back one by one, as I can in javascript? What would this syntax look like?

Thanks for the help.
Ben Bimber2010-07-06 13:07Jon (LabKey DevOps)2015-04-28 21:59 add QC state field in an assay? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'd like to add QC state fields to some assays. While I doubt I can actually add a 'QC state' field in the same sense as the study QC state, it would be nice to mimic this as much as possible. I'm planning to just create an integer field called 'QC state'. It will lookup against the same study.QCstate table used by the main study. This will allow it to grab available QC states and 'public' values. I may or may not

I have a couple questions:

1. Can/should I add any sort of concept or propertyURI to this field?

2. When I edit a QWP button bar, certain built-in buttons can be accessed by name (ie. LABKEY.QueryWebPart.standardButtons.insertNew). Can I grab the QC state button like this?
Ben Bimber2010-07-27 05:47Jon (LabKey DevOps)2015-04-28 21:59 do lists supprt the datatype entityid? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
the subject basically says it all. for the ehr datasets, we recently changed the uuid field from a datatype of varchar to entityid. we did not do this for lists. i'm not sure if i should make that change or not. thanks for the help.
Ben Bimber2010-09-07 13:57Jon (LabKey DevOps)2015-04-28 22:00 possible bug: folderType XML file issue TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I recently tried to create a folderType using an XML file. Making the file itself was fine, but there's a problem with how labkey handles the file:

i created the XML file and started tomcat. i did not actually create a folder of this type yet. i then edited my XML file, forgot about it, and eventually restarted tomcat. labkey threw errors about already having a folderType of this name registered. that's kinda of a problem when trying to develop these, since you will inevitably need to make changes. most other file-based stuff does not work like this.

it seems like a folderType XML file should be analogous to the XML definition of an assay. in an assay, you have XML files that define the domains. when you create an instance of that assay, the assay essentially takes a snapshot of those XML files. if you edit the original XML files, the assay is unchanged. that's how I imagine a folderType XML ought to behave. when you create a folder with a given folderType, it inherits the webparts. if you change that XML file the folder is unchanged. it seems like that must be how already folders behave b/c I can create an instance of a portal folder, then add/change webparts. the instance of that folderType is distinct from the folderType definition.

the file in question is checked into the EHR module. for the time being I changed the extension to '.tmp' to stop the errors. change that back, bounce tomcat, then make a change to the file if you want to see what i'm talking about.
Ben Bimber2010-12-06 05:31Jon (LabKey DevOps)2015-04-28 22:00 another query still running after leaving page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
on our production server i attempted to load a large list. this is the cagenotes a few of us talked about on the call last week. it took a while so i navigated away from the page. i was looking at postgres' activity and i saw that the list query still kept running for at least 1 min. i manually killed it, so i cant say whether it would have eventually completed or not.
michael_stover@urmc.rochester.edu2011-03-18 07:41Jon (LabKey DevOps)2015-04-28 22:01 how to delete wiki pages? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Let's say you did something silly and made a completely broken wiki page. I can't delete it because I can't get to it, and the edit link appears to only be available from the wiki page itself. Help?
Ben Bimber2011-06-03 13:46Jon (LabKey DevOps)2015-04-28 22:02 show 3 most recent weights for each subject? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a table of weights, with the columns, participantId, date and weight. is there a good way to write a query to show the 3 most recent weights for each subject? i'd be happy with either 3 rows per subject or something like a group_concat of the 3 weights.

i was attempting the query below, but this sort of subselect does not seem to be allowed:

SELECT
d.id,

(SELECT
  group_concat(w.weight) As weights
  FROM study.weight w
  WHERE w.id=d.id
  ORDER BY w.date desc
  LIMIT 3
  ) AS weights

FROM study.demographics d

otherwise, i believe finding 'most recent weight' means finding the max date per subject, then joining back on itself to find the corresponding weight. if you want the 3 newest weights, doing that 3X would get really ugly.

thanks for any help.
nlim@immunetolerance.org2011-06-24 11:13Jon (LabKey DevOps)2015-04-28 22:02 Problem with participant reports TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
(copied from email)

A while ago (maybe older version 10.something), I used to generate participant chart using R as following instructions below.
https://www.labkey.org/wiki/home/Documentation/page.view?name=participantLattice&_docid=wiki%3A1d6135fe-4f82-102a-b2cd-d104f9cd70ed
And I could see the “next participant” tab in the view so that I could navigate through each participant.
 
But in the current updated version, this tab is not activated even though I checked the “participant chart” box.
I tried against several different data but nothing worked.
 
Noha
 
--- (in reply to cory)

I tried to do simple chart on actual study data and it worked.
But it still doesn’t work against “user-defined query” based table.
That’s why I’m suspecting I should modify some properties on my query table.
Another issue I have is that we expect to see a filtered data in the view so that we can build a plot only for one participant.
Your screen shot showed that current participant is “249318596”,
but the actual data shown in the console seems to have all the participant data.
brian.derocher@noblis.org2011-08-02 13:50Jon (LabKey DevOps)2015-04-28 22:02 module extension TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to build a module that's an extension of the issues module. I had to copy issues.jar into the lib folder for my new module (workflow). So i'm wondering if that's right.

Thanks,
Brian
slangley@scharp.org2011-10-27 14:42Jon (LabKey DevOps)2015-04-28 22:02 Ext JS 4.0 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm going to start playing around with using Ext JS 4.0 in a mini-module. For the upcoming LabKey 11.3 release, will you be upgrading to Ext JS 4.0.7 or stay with 4.0.2a?

Thanks.

Scott
jdutra2012-06-07 13:35Jon (LabKey DevOps)2015-04-28 22:04 Display column for lookup TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm a little confused about the display column for a lookup. If I have a lookup field abc in a dataset (which links to a list), how is it determined which column from the specified list shows up in the grid? For instance, if I go to the dataset and choose Customize View, abc appears with a plus sign next to it. I can click on the plus sign to manually select one of the columns from the list for display.

But I can also check the box next to abc (which is how it is done by default). When I look at our current datasets, and the box next to abc is the only one checked, sometimes the dataset displays the list's key column. Sometimes it displays a different column. We must have set something differently either in the datasets or the lists to make that happen, but I can't figure out what!

A related question: if I run getMetaData() on a SelectRowsResponse of a dataset with a lookup field, how does it determine the value of fields.lookup.displayColumn? It doesn't seem to be returning the column I have manually selected for the default view.

Any help is appreciated,
- Jen
Ben Bimber2012-10-16 12:02Jon (LabKey DevOps)2015-04-28 22:06 is the folder-level 'manage filepaths' page exposed anywhere? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
you can set file roots on the project or folder level. in project settings, there's a tab to set file roots at the project level. On the folder management page, there is not. There is an action to do just this, FileContentController.ShowAdminAction, but it doesnt seem that we really expose this anywhere. Is you add a files webpart, hit customize, then 'configure file roots' and you get there. Kinda hidden though.

Is there a more direct entry point? What would you think about making this 'manage file roots' page a tab under folder management?
Anthony Corbett2013-01-24 08:39Jon (LabKey DevOps)2015-04-28 22:07 Rendering QueryWebPart in Ext.Window TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

I want to be able to create multiple Ext.Window popups that each contain a QueryWebPart. More concretely, I want to display a custom view of SpecimenSummary where each Participant they search for would open a new Ext.Window containing a QueryWebPart of SpecimenSummary filtered to just that Participant. How best can this be done?

I'm wondering if I can use the items array of Ext.Window to automattically render the QueryWebPart inside of it's layout?


Thanks in advance!

-
Anthony Corbett
jdutra2013-01-24 14:44Jon (LabKey DevOps)2015-04-28 22:07 Change in executeSql defaults? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are testing labkey v12.3 on our development server. I have an executeSql query that retrieves 188 rows. In 12.2, it gives me all 188 rows, but in 12.3 it returns only the first 100, as if it is paging the data by default. The documentation says that the default is to return all rows, which is generally what I want so I have never used the maxRows parameter. I tried setting maxRows to 188 in my query in 12.3 and it works correctly again. Have you changed the default behavior? I have lots of executeSql queries that assume all rows are being returned by the server.

Thanks for your help,
- Jen
reshmyunni17782013-06-25 03:55Jon (LabKey DevOps)2015-04-28 22:08 How to reduce labkey development build time in mac? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Labkey build in mac takes 2-3 hours.How much time does labkey build takes?Anyway to reduce the build time?Please help me.
Leo Dashevskiy2013-07-05 14:26Jon (LabKey DevOps)2015-04-28 22:08 Cannot make use of the Export via an R script functionality TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, guys!

The view on a table has a filter of type 'Equals one of' (equivalent to 'IN', right?) and its argument is a string made up of 1619 values (each consecutive pair having a ';' in between them and each value being a 5-digit RowId number).

So the URL which is supposed to generate the necessary R code seems to be legit, but the page itself is not rendering properly for me.

Is this a limitation on the length of the URL or something else?

FYI, Rlabkey call labkey.selectRows() with the equivalent arguments is failing, but that's probably for Cory's attention separetely.

Thanks.
-Leo
rubiaasharaf92222013-07-30 21:44Jon (LabKey DevOps)2015-04-28 22:08 The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am using windows 7 .On building labke the console shows as follows and build not completed successfully.The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\jdk1.7.0_02\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Users\Jalal\AppData\Roaming\JetBrains\IntelliJ IDEA Community Edition 12.1.3\bin\..\.\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Toshiba\Bluetooth Toshiba Stack\sys\;C:\Program Files (x86)\Toshiba\Bluetooth Toshiba Stack\sys\x64\;C:\Apache Ant\apache-ant-1.8.4\bin;D:\jdk1.7.0_02\bin;D:\apache-tomcat-6.0.37;D:\jdk1.7.0_02;D:\LabKey\external\ant\bin;D:\LabKey\external\bin;c:\users\jalal\appdata\roaming\jetbrains\intellij idea community edition 12.1.3\jre\jre\bin;
But labkey was fine before cleaning (ant build - clean).
Any body please help me to find out a solution to it so that i could run labkey successfully.
Andy Straw2014-06-09 13:00Jon (LabKey DevOps)2016-12-27 14:51 Overriding run properties in assay transformation script TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a Java transformation script for an assay. The workflow does NOT involve the user selecting a file, so the default assayId (i.e., name of the run) ends up being something like <AssayDesignName>-<DateTimeStamp>.tmp, which isn't very descriptive. I want my transformation script to set the assayId of the run in a particular way so the user doesn't have to set it. (I want to set the value of assayId based on another run property that the user DOES have to choose, but he/she chooses that from a drop-down list, because that property is a lookup.)

I'm trying to set the assayId by writing to the file whose path is given by the "transformedRunPropertiesFile" property in the runProperties.tsv file. I write a tab-delimited line to that file in the same format as the runProperties.tsv file:

assayId<tab>valueIWant<tab>java.lang.String (where <tab> is actually the tab character)

I also tried simply

assayId<tab>valueIWant

but neither had an affect on the assayId of the resulting run. The file "transformedRunProperties.tsv" is definitely getting written - I see it next to runProperties.tsv - and it has the line above in it.

Is it possible to set the assayId of the run this way? If not, is there another way to do this from a transformation script? I couldn't find any documentation about how to set/override run-level properties from a transformation script.

Thanks.

Andy Straw
University of Rochester
Will Holtz2015-04-07 10:12Jon (LabKey DevOps)2015-04-07 14:13 Upgrade to v15.1 breaks Javascript call to LABKEY.ext4.data.Store() TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just upgraded to v15.1 from v14.3 (I also did a Java v7 to v8 upgrade at the same time). I have some custom javascript in a module that calls LABKEY.ext4.data.Store() and LABKEY.ext4 is now undefined. I didn't find anything in the release notes about Javascript API changes. Any ideas what is going on?

thanks,

-Will
vincentR2015-09-29 07:48Jon (LabKey DevOps)2015-10-01 14:11 Survey Designer issue with "useDefaultLabel" option TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I am using the built-in survey designer from LabKey.
In the form it creates I would like to hide the "Survey Label" field. From the documentation, it seems that an option exists: "useDefaultLabel":true (info from this "page":https://www.labkey.org/wiki/home/Documentation/page.view?name=surveyOptions)

However, this option does not seem to be taken into account. The "Survey Label" field stays visible, and required, on the page of the form.

Could you please let me know if I am using this option wrongly ?

For info, when I try the option "labelCaption", I get the expected update of the "Survey Label".

many thanks for your help,

Vincent.

---- JSON config
{
  "survey" : {
    "useDefaultLabel": true,
    "layout" : "auto",
    "showCounts" : false,
    "sections" : [ {
      "questions" : [ {
        ....
Will Holtz2016-03-08 16:20Jon (LabKey DevOps)2016-03-08 21:43 Hard table with foreign key to assay run TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi -- I am trying to create a hard table that has an FK to an assay run. In the .sql file that creates the table, I have a FK to exp.experimentrun. In the xml file that defines the table metadata I have the following:

<?xml version="1.0" encoding="UTF-8"?>

<ns:tables xsi:schemaLocation="http://labkey.org/data/xml ..\..\..\..\..\schemas\tableInfo.xsd" xmlns:ns="http://labkey.org/data/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ns:table tableName="Plate" tableDbType="TABLE">
        <ns:columns>
            <ns:column columnName="OD">
                <ns:fk>
                    <ns:fkFolderPath>/home/OD</ns:fkFolderPath>
                    <ns:fkColumnName>RowId</ns:fkColumnName>
                    <ns:fkDbSchema>assay.OD.OD</ns:fkDbSchema>
                    <ns:fkTable>Runs</ns:fkTable>
                </ns:fk>
            </ns:column>
        </ns:columns>
    </ns:table>
</ns:tables>

When I view the metadata for this table via the Labkey Schema Browser, it does not show anything under lookup column for this row. Anyone know what I'm missing or if there is a better way of creating the lookup?

thanks,
-Will
balter2016-08-18 12:38Jon (LabKey DevOps)2016-08-25 14:21 Store permissions in XML file to load at build or boot? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is it possible to store security and permissions configurations in a file somewhere that will load and update at build or at boot? We are trying to keep as much as possible in the code base to make for better tracking, versioning, and deployment of similar installs.
hilariagrieve2017-02-02 06:19Jon (LabKey DevOps)2017-02-13 15:31 upgrading labkey server to 16.3 version TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, I am trying to upgrade labkey server from 16.2 to 16.3 version.
I got an error:

500: Unexpected server error

A failure occurred during LabKey Server startup.

org.labkey.api.data.SqlScriptRunner$SqlScriptException: study-16.20-16.30.sql : Can't invoke method updatePKAndContainer(ModuleContext moduleContext) on class org.labkey.study.StudyUpgradeCode
       at org.labkey.api.data.SqlScriptManager.runScript(SqlScriptManager.java:211)
       at org.labkey.api.data.SqlScriptRunner.runScripts(SqlScriptRunner.java:82)
       at org.labkey.api.module.DefaultModule.versionUpdate(DefaultModule.java:327)
       at org.labkey.api.module.ModuleUpgrader.upgrade(ModuleUpgrader.java:82)
       at org.labkey.api.module.ModuleUpgrader.lambda$upgrade$0(ModuleUpgrader.java:94)
       at java.lang.Thread.run(Thread.java:745)


the last upgrade from 15.3 to 16.2 version I haven't get any problem.

Can you help me?
Matt V2017-12-06 12:06Jon (LabKey DevOps)2017-12-11 22:31 Error when upgrading from 17.2 to 17.3 with study.QCstate and moveQCStateToCore TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Working on moving from 17.2 to 17.3. When I start the development server within IntelliJ, I run into the following errors:
org.labkey.api.data.SqlScriptRunner$SqlScriptException: study-17.20-17.30.sql : Can't invoke method moveQCStateToCore(ModuleContext moduleContext) on class org.labkey.study.StudyUpgradeCode
       at org.labkey.api.data.SqlScriptManager.runScript(SqlScriptManager.java:220)
       at org.labkey.api.data.SqlScriptRunner.runScripts(SqlScriptRunner.java:82)
       at org.labkey.api.module.DefaultModule.versionUpdate(DefaultModule.java:335)
       at org.labkey.api.module.ModuleUpgrader.upgrade(ModuleUpgrader.java:83)
       at org.labkey.api.module.ModuleUpgrader.lambda$upgrade$0(ModuleUpgrader.java:95)
       at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Can't invoke method moveQCStateToCore(ModuleContext moduleContext) on class org.labkey.study.StudyUpgradeCode
       at org.labkey.api.data.SqlScriptExecutor$JavaCodeBlock.lambda$execute$0(SqlScriptExecutor.java:211)
       at org.labkey.api.data.SqlScriptExecutor$JavaCodeBlock.execute(SqlScriptExecutor.java:228)
       at org.labkey.api.data.SqlScriptExecutor.lambda$execute$0(SqlScriptExecutor.java:101)
       at java.util.ArrayList.forEach(ArrayList.java:1249)
       at org.labkey.api.data.SqlScriptExecutor.execute(SqlScriptExecutor.java:98)
       at org.labkey.api.data.dialect.SqlDialect.runSql(SqlDialect.java:588)
       at org.labkey.api.data.SqlScriptManager.runScript(SqlScriptManager.java:215)
       ... 5 more
Caused by: java.lang.reflect.InvocationTargetException
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at org.labkey.api.data.SqlScriptExecutor$JavaCodeBlock.lambda$execute$0(SqlScriptExecutor.java:207)
       ... 11 more

Caused by: org.springframework.jdbc.UncategorizedSQLException: SqlExecutor.execute(); uncategorized SQLException for SQL []; SQL state [2BP01]; error code [0]; ERROR: cannot drop table study.qcstate because other objects depend on it
  Detail: constraint fk_mytable__qcstate on table studydataset.mytable depends on table study.qcstate

I'm not 100% sure, but I'm betting the errors are caused by the upgrade script needing to drop study.qcstate to recreate it as part of the upgrade process? If I keep going through the log I see a couple hundred similar errors. Every so often I also run into:
    Hint: Use DROP ... CASCADE to drop the dependent objects too.
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
    at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:129)
    at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:75)
    at org.labkey.study.StudyUpgradeCode.moveQCStateToCore(StudyUpgradeCode.java:393)
    ... 16 more

Curious if you have any suggestions or have run into similar issues to date. I can always create an upgrade script for my modules that drops the FKs ahead of time and then recreates them later, but I was hoping for an easier solution.
la272019-06-05 09:38Jon (LabKey DevOps)2019-06-18 20:49 Row not updating using updateRows() TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have Java script code that says this:

 LABKEY.Query.updateRows({
        schemaName:"lists",
        queryName :"Reagent Requests",
        rows: [{"Key": 3,
            "ClientId": "123",
        }]
    });

I am trying to update the Reageant Requests Tutorial Form's row 3's cell named ClientId with 123. I have made sure the keyname is Key but it will not update. It gives me "existing row not found." I put this function in the submitRequest() function found in the tutorial code.

   function submitRequest() {

        // Insert form data into the list.
       LABKEY.Query.insertRows({
           schemaName: 'lists',
           queryName: 'Reagent Requests',
           rowDataArray: [{
               "Name": document.ReagentReqForm.DisplayName.value,
               "Email": document.ReagentReqForm.Email.value,
               "UserID": document.ReagentReqForm.UserID.value,
               "Reagent": document.ReagentReqForm.Reagent.value,
               "Quantity": parseInt(document.ReagentReqForm.Quantity.value),
               "Date": new Date(),
               "Comments": document.ReagentReqForm.Comments.value,
               "Fulfilled": 'false'
           }],
           success: function(data) {
               // The set of URL parameters.
               var params = {
                   "name": 'confirmation', // The destination wiki page. The name of this parameter is not arbitrary.
                   "userid": LABKEY.Security.currentUser.id // The name of this parameter is arbitrary.
               };

                // This changes the page after building the URL. Note that the wiki page destination name is set in params.
               var wikiURL = LABKEY.ActionURL.buildURL("wiki", "page", LABKEY.ActionURL.getContainer(), params);
               window.location = wikiURL;
           }
       });
   
    LABKEY.Query.updateRows({
        schemaName:"lists",
        queryName :"Reagent Requests",
        rows: [{"Key": "3",
            "ClientId": "123",
               }]
               });
               
}


 </script>
Jon (LabKey DevOps)2022-02-17 16:27Jon (LabKey DevOps)2022-02-18 07:58 Maintenance Notice: artifactory.labkey.com upgrade for Friday, February 18th 2022 @ 7am PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello Everyone,

An upgrade of https://artifactory.labkey.com will occur for Friday, February 18th @ 7am PST.

The estimated outage time is approximately one hour. Please plan accordingly.

Regards,

Jon
Jon (LabKey DevOps)2023-04-17 15:48Jon (LabKey DevOps)2023-04-17 20:24 Maintenance Notice - Upgrade of LabKey.org for Monday, April 17th 2023 @ 8:00pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 8:00pm Pacific Time for a maintenance upgrade.

The site will be offline for no more than 30 minutes.

Please save your work before this time.
wnels2@uky.edu2009-01-08 11:02Jon (LabKey DevOps)2015-04-28 21:53 drt problem TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to run the drt targets from the command prompt, from the LABKEY_HOME/server/test/build.xml, in release 8.3 and I'm getting and error.
...
[junit] Loading scripts from seleniumHelpers.js

[junit] testSteps(org.labkey.test.drt.XTandemTest)
[junit] com.thoughtworks.selenium.SeleniumException: ERROR Server Exception: sessionId should not be null; has this session been started yet?
[junit] at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:73)
[junit] at com.thoughtworks.selenium.HttpCommandProcessor.getString(HttpCommandProcessor.java:154)
[junit] at com.thoughtworks.selenium.DefaultSelenium.getEval(DefaultSelenium.java:334)
[junit] at org.labkey.test.BaseSeleniumWebTest.setUp(BaseSeleniumWebTest.java:102)
....

Josh sent me to http://blog.taragana.com/index.php/archive/9-important-tips-for-selenium-remote-control-java-client-test-tool/ for some trouble shooting tips. At this site they said that the error was caused by firefox not being on the path. I added it to the path and confirmed that it will open from the command line but same error. I updated from firefox 3.0.4 to 3.0.5 but still same error. The tests have been working previously. I have installed chrome since my last successful test? Has anybobody seen this error before?
Thanks,
Bill
Ben Bimber2010-07-07 12:38Jon (LabKey DevOps)2015-04-28 21:59 possible problem with validation scripts when dataset label contains spaces TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have gotten most validation scripts working. However, I cannot get them working when the dataset label has spaces. Take this example:

dataset name: 'behavetrem'
label: 'Behavior Remarks'

I have tried files named either 'Behavior Remarks.js' or behavetrem.js. Neither of these scripts is running as far as I can tell from the console. Two questions:

1. am i supposed to use dataset name or label in the validation script filename?

2. If I'm supposed to use label, is labkey handling situations where spaces are in the label correctly?
Ben Bimber2010-07-12 05:00Jon (LabKey DevOps)2015-04-28 21:59 permissions error when running R script? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have been able to run R scripts on our server in the past, although it doesnt happen that often. Recently I noticed the following error when I try to run an R script though labkey. Based on the error, does anyone have suggestions on troubleshooting steps or things I should follow up? Thanks.


javax.script.ScriptException: /Library/Frameworks/R.framework/Resources/bin/BATCH: line 55: 8331 Bus error ${R_HOME}/bin/R -f ${in} ${opts} ${R_BATCH_OPTIONS} > ${out} 2>&1
Sun Jul 11 18:31:10 xnight.primate.wisc.edu R[8331] <Error>: kCGErrorRangeCheck : On-demand launch of the Window Server is allowed for root user only.
Sun Jul 11 18:31:10 xnight.primate.wisc.edu R[8331] <Error>: kCGErrorRangeCheck : Set a breakpoint at CGErrorBreakpoint() to catch errors as they are returned

 *** caught bus error ***
address 0x0, cause 'non-existent physical address'

Traceback:
 1: axis(if (horiz) 2 else 1, at = at.l, labels = names.arg, lty = axis.lty, cex.axis = cex.names, ...)
 2: barplot.default(data, main = "Population Change By Species", xlab = "Category", col = colors, legend = rownames(data), beside = TRUE)
 3: barplot(data, main = "Population Change By Species", xlab = "Category", col = colors, legend = rownames(data), beside = TRUE)
aborting ...
Ben Bimber2010-08-26 10:41Jon (LabKey DevOps)2015-04-28 21:59 database size TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
a little while back we had an issue where our DB was bloated w/ a lot of extra records in the audit table. prior to clearing these records I was unable to successfully restore a pg_dump of our production server into my development machine. after clearing these, the size went down and i was able to restore.

over the past 2 weeks we've moved a substantial amount of data in and out of labkey. we reloaded the whole EHR study. in theory this should be a relatively neutral move, since the rows deleted roughly equals the rows inserted. the filesize of our nightly postgres dumps has gone up considerably compared to before. i am once again getting errors when trying to restore that pg_dump file on my machine.

would it be possible to send any of the queries or other troubleshooting you guys did to identify problems last time? i have no reason to suspect that audit is the problem; however, something is much bigger than before.
slangley@scharp.org2010-10-14 18:01Jon (LabKey DevOps)2015-04-28 22:00 LookupRenderers for non-editable columns in LABKEY.ext.EditorGridPanel TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm using a hacked version of LABKEY.ext.EditorGridPanel where I have the autoSave property set to false - so that I'm invoking the saveChanges() function from another Javascript function in my app.

One of the non-editable columns is a foreign-key lookup on another table, that is automatically displaying a text field next to the foreign-key in the other table.

(All these tables are external schema-type tables in PostgreSQL).

When in a webpage I make some edits to the editable fields in some row of my EditorGridPanel, followed by an invocation of the saveChanges() function to persist those changes.

After saving, the EditorGridPanel refreshes. In the non-editable column that previously displayed the descriptive text from the foreign-key lookup table, instead, now appears the numeric foreign-key value.

(I assume the LABKEY.ext.Store.onCommitSuccess() function is modifying the displayed row contents based on the content of the rows returned in the JSON response.)

If I tweak this section of LABKEY.ext.EditorGridPanel from:

    getDefaultRenderer : function(col, meta) {
        if(meta.lookup && this.lookups && col.editable) //no need to use a lookup renderer if column is not editable
            return this.getLookupRenderer(col, meta);

to:
    getDefaultRenderer : function(col, meta) {
        if(meta.lookup && this.lookups)
            return this.getLookupRenderer(col, meta);

then things seem to work as I expect. That is, after a saveChanges(), my foreign-key-looked up text field continues to be displayed in place of the actual, non-editable, foreign-key values.

Is this the right fix / work-around?

Thanks.
Ben Bimber2010-11-05 13:32Jon (LabKey DevOps)2015-04-28 22:00 friendliness suggestion TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If you go to a labkey page and dont have permission, you get a 'you dont have permission to perform this operation' page. It would be kinda useful if the page also had something like 'If you believe this is an error, click here to notify the site administrator'. This could be as simple as a mailto link the opened an email to the site admin email, possibly with some context in the body of the email.

On a similar vein, on the labkey login screen where you enter your password, a 'Click here to request an account' link would be nice. This could also be as simple as opening an email.
Ben Bimber2011-01-11 06:50Jon (LabKey DevOps)2015-04-28 22:00 suggestion on titles given to lookup columns TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In a dataregion, if you have a lookup defined, you can bring in other columns from that query. When you do this, labkey automatically pre-fixes their names in the column header with the source query. ie:

Id/CurrentLocation/Room

There's a few problems with this:

1. while that makes perfect sense from a database perspective, no end user ever knows what that means and it becomes either confusing or gives a really funny looking title.

2. Labkey does not retain the '/', so the above name looks like "Id CurrentLocation Root", which makes it even more confusing.

3. in the new customize view UI, labkey uses the column name only both in the field tree, and in the right-hand panels listing columns and filters. This behavior actually makes sense to me; however, it is not consistent with the string used in the column header.

I'd advocate for changing the behavior of the column headers to match the rest of customize view. I really think users would understand that a whole lot more. If not, at least retain a backslash or something in the header name instead of making it a space.
Ben Bimber2011-03-31 14:16Jon (LabKey DevOps)2015-04-28 22:01 using pipeline webpart like a file webpart? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have workbooks, from within which users will kick off pipeline analysis jobs. the workbook serves 2 purposes:

1. sort of a 'silo' from which to contain multiple analysis jobs. the outcome of these jobs will all get dropped in this workbook. this gives users a way to historically see what files went with what. Without workbooks the parent folder would accumulate lots of misc analysis jobs and becocme unmanageable

2. we want to let users deposit whatever misc non-pipeline related files they have. these could be anything.

The question is:

For all the user really cares, the pipeline webpart is the same thing as the files webpart. they store in different places, but they will not really know or care about this subtlety. is there any downside to simply using the pipeline folder for points 1 and 2? other than possible name conflicts or something?

putting non-pipeline related files in a separate files webpart is technically preferable, but I dont know how to make the end-user experience of that work. they'd end up depositing all the files they want to use in the pipeline in the files webpart and get confused as to why they couldnt start the pipeline.

i'd appreciate any suggestions or thoughts. thanks.
Ben Bimber2011-04-20 06:22Jon (LabKey DevOps)2015-04-28 22:01 questions about different types of filters and when they can be removed TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
QWPs can be filtered in a lot of different ways:

1. filters in the URL
2. filters applied as part of the view
3. filters applied as post params, which seem to behave differently than filters in the url. this may encompass other items in this list
4. filters applied using the JS code, which seem to behave more like post params. the JS code support both removable filters and non-removable filters.

There is also an option for the QWP called 'apply view filters'. the corresponding url param is ignoreFilters.

As best as I can figure out, here's how it breaks down:

1. filters applied through the URL are always visible to the user (ie. there's text saying 'query filtered on X') and they can always be removed by the user
2. filters applied as post params are never visible (ie. the user has no real way of knowing that filter is being applied) and they can never be removed by the user as far as i can tell.
3. filters applied as part of a view are a hybrid. they do not appear as visibly as #1. however, the user can edit the view and see that this filter exists. they can also remove them using customize view. the ignoreFilters option also removes them.

the ignoreFilter option seems to remove #3, but will never remove #2. are the above observations accurate? Is there a better way to conceptually break this down?

thanks.
jean.matscher@novartis.com2011-06-06 02:18Jon (LabKey DevOps)2015-04-28 22:02 MS2 Pipeline question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear all,

to test our installation script as well as the setup of automated sequest searches, we installed a staging system to play with.
To simplify the setup, we have defined the same Message Queue as well as the same remote sequest worker for both systems.

Now on our original system, we have the following execution locations for the data pipeline
    * sequest
    * webserver
    * webserver-fasta-check
    * webserver-high-priority

wheras on the new staging system, the sequest entry is missing and we cannot run sequest searches.

Question:
Can the missing sequest entry maybe due to sharing both MQ and remote worker accross 2 LabKey instances?
If this setup is ok, can you advise where else to search for the source of the issue?


Thanks in advance for any hint, best regards
Jean
Ben Bimber2011-06-14 11:00Jon (LabKey DevOps)2015-04-28 22:02 best way to programmatically make a dataregion refresh? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i have a button attached to a query. this button can result in updates to rows show in the dataregion. therefore in the onSuccess() callback for that call to updateRows(), I'd like to force the dataregion to refresh itself. this is a labkey dataregion, not an ext editorGridPanel.

the button's handler is vaguely like this:

function markComplete(dataRegion, menu, schemaName, queryName){

//capture user input then build an array of the rows to be updated. code omitted for simplicity

//then call updateRows()
LABKEY.Query.updateRows({
     schemaName: schemaName,
     queryName: queryName,
     rows: toUpdate,
     scope: this,
     success: function(){
          Ext.Msg.hide();

//and here i'd like to force a refresh of the dataregion.
//the function markComplete() is passed a reference to the dataregion, so we can operate on that

     },
     failure: EHR.utils.onError
});

}

i am reading DataRegion.js. Unless I'm missing something, there is some obvious, shared 'refresh' method. I could do something like set the view of the dataregion to the currently selected view, or combine changeSort() and getUserSort() to change the sort of the same sort that is currently used (ie. trigger a reload without actually changing anything). i have not fully researched whether any of these would capture all the possible user-applied filters/sorts though.

what's the best to force a refresh of the dataregion for the purpose of reloading data, without changing anything else?

thanks in advance.
kleemann@scharp.org2011-08-29 16:09Jon (LabKey DevOps)2015-04-28 22:02 prepared statement with labkey SQL? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm code reviewing some javascript that constructs SQL and passes it to labkey server via new LABKEY.ext.Store({ sql: "SELECT ..."}) as well as other APIs. Various string values are simply concatenated into a SQL string which is error prone and can possibly be a security problem.

Is there a way to construct a prepared statement in labkey SQL such as passing an object instead of a string. e.g.

var first_name = "Ted"
var age = 30
var s=new LABKEY.ext.Store({ sql:{ sql:"SELECT first_name,last_name FROM person WHERE first_name=? AND AGE<?", arg1:first_name, arg2:age }})

instead of

var first_name = "Ted"
var age = 30
var s = new LABKEY.ext.Store({ sql:"SELECT first_name,last_name FROM person WHERE first_name='" + first_name + "' AND AGE<" + age })

If not, is there an easy way to SQL quote the arguments based on javascript type?

Robert.
jdutra2012-05-02 09:00Jon (LabKey DevOps)2015-04-28 22:03 java api with self-signed certificate TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am trying to test some java code that uses the labkey api on our development server, which has a self-signed certificate. I get a slew of certification errors from httpclient. I am using the following:

Connection cn = new org.labkey.remoteapi.Connection("https://my-development-server/labkey");
cn.setEmail(userName);
cn.setPassword(passWord);
cn.setAcceptSelfSignedCerts(true);

Adding the last line did not change anything at all. Does the setAcceptSelfSignedCerts method work? Or am I doing something wrong? If someone could suggest a way to work around this, that would be terrific.

- Jen
Leo Dashevskiy2012-05-29 13:47Jon (LabKey DevOps)2015-04-28 22:03 LABKEY.ext.Store TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Could you, please, tell me, if the query for my store produces list with non unique values in one of the columns and I am displaying just that one column. Is there a way to display just the unique values in that column (without redoing the query to include the DISTINCT keyword for that column, because I would like to keep the entire initial query with all of its columns)?

Thanks.
Leo Dashevskiy2012-08-08 18:06Jon (LabKey DevOps)2015-04-28 22:04 Is it an inconsistency/bug? Rlabkey package, lsSchemas method TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

lsProjects(), for example, does return what it says it returns, whereas lsSchemas() does not return the declared value (but it definitely should per the man page and the vignette!), instead it just prints out the available queries:

> lsSchemas
function (session)
{
    print(.getSchemasAsList(session))
}
<environment: namespace:Rlabkey>

> lsProjects
function (baseUrl)
{
    folders <- labkey.getFolders(baseUrl, "/", includeSubfolders = TRUE,
        depth = 1)
    folders <- folders[(folders$folderPath != "/"), ]
    return(sort(as.array(folders$folderPath)))
}
<environment: namespace:Rlabkey>

So it is impossible to assign the output of lsSchemas() to a variable and to later use it (to return back to a Labkey R view, for example)

Thanks.
Leo Dashevskiy2012-08-14 16:09Jon (LabKey DevOps)2015-04-28 22:04 Rlabkey performance TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The table is like this:

CREATE TABLE qualifier.stats
(
    sId INT NOT NULL,
    Container ENTITYID NOT NULL,
    id INT NOT NULL,
    gsId INT NOT NULL,
    population TEXT NOT NULL,
    stats TEXT NOT NULL,
    node TEXT NOT NULL,
    channel TEXT NOT NULL,
    value NUMERIC NOT NULL,

    CONSTRAINT PK_stats PRIMARY KEY (sId),
    CONSTRAINT FK_stats_gsTbl FOREIGN KEY (gsId)
      REFERENCES qualifier.gsTbl (gsId)
      ON DELETE CASCADE
)


where gsId references:

CREATE TABLE qualifier.gsTbl
(
    gsId INT NOT NULL,
    Container ENTITYID NOT NULL,
    gsName TEXT NOT NULL,
    objLink TEXT NOT NULL,

    CONSTRAINT PK_gsTbl PRIMARY KEY (gsId)
);

and

id references the FCSFiles virtual table.


Inserting about 15K rows into that first table with 8 columns from an R session on one machine at the Hutch to my machine (a modern desktop), where Labkey is running, also at the Hutch, takes about 5 minutes, is that as expected?

Thanks.
Daniel Nicolalde2012-10-29 16:23Jon (LabKey DevOps)2015-04-28 22:06 Differences between Lists and Datasets TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi Josh,

I am trying to add a couple of tables to the EHR system, but I am running into a bit of a conceptual problem. What is the difference between Lists and Datasets. Both seams to be able to defined columns, lookups and add data to a table. I am trying to create a solution for immunology service similar to the freezer inventory system of the oconnor module, I changed the immunology_services folder to a Lab folder and it allows me to create Datasets. I also add the capability to add List to this folder.

Botton line, I want to know what is the advantage of using list versus datasets for this specific request. The group interested in the solution needs four tables that are link to each other through lookups.

Thank you

Daniel
tstellin@scharp.org2012-12-21 08:47Jon (LabKey DevOps)2015-04-28 22:07 Help with javascript API's insertRows() TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm developing a labkey 12.3 w/Ext4 file module that inserts rows into a table in a user-created schema (in a postgres db). The table contains multiple date columns whose dates are collected via a Ext form with datefield xtype widgets. Every time I try to insert I get this error:

ERROR: column "date_used" is of type timestamp without time zone but expression is of type character varying Hint: You will need to rewrite or cast the expression. Position: 240

Where "date_used" could be any one of the date columns. I tried creating my table with date columns of type "date," "timestamp without time zone," and "timestamp with time zone." I get the same error every time. I tried getting the values for each date with form.getValues() and creating a new Date() object from each date field, but got the same error. I also tried getting each Ext datefield widget individually by name and used its getValue() method, but got the same error. When I inspect the values just before LABKEY.Query.insertRows, each date field's value is a Date() object (although I did try using plain date strings as well). Any ideas as to what I could be doing wrong?
bront@kcr.uky.edu2013-02-20 04:52Jon (LabKey DevOps)2015-04-28 22:07 pl/pgsql via javascript TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm wondering if it is possible to execute a pl/pgsql function via labkey.query?

thanks
Leo Dashevskiy2013-08-07 15:14Jon (LabKey DevOps)2015-04-28 22:08 A bug? JavaScript (Ext) error when customizing a grid's view TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Core svn revisions: 27583 and 27739.

Steps to reproduce:

1) load a page with a table of FCS files in a particular run, URL is of the form:

<labkey_root>/flow-run/<container>/showRun.view?runId=<integer>

2) on the grid's menu click "View" -> "Customize view"

for the production-type server one gets:

GET https://immunespace.org/images/elbow-minus-nl.gif 404 (Not Found) ext-base.js:21
Ext.lib.Dom.getXY ext-base.js:21
Ext.lib.Dom.getY ext-base.js:21
Ext.Element.addMethods.getY ext-all.js:21
L ext3.min.js:1
LABKEY.DataRegion.Ext.extend._showButtonPanel ext3.min.js:1
LABKEY.Query.getQueryDetails.success ext3.min.js:1
(anonymous function) core.min.js:1
Ext.apply.callback ext-all-sandbox.js:21
Ext.define.onComplete ext-all-sandbox.js:21
Ext.define.onStateChange ext-all-sandbox.js:21
(anonymous function) ext-all-sandbox.js:21


and for the development-type server one gets:

GET http://dhcp157039.fhcrc.org:8080/labkey/images/elbow-minus-nl.gif 404 (Not Found) ext-base-debug.js:1780
Ext.lib.Dom.getXY ext-base-debug.js:1780
Ext.lib.Dom.getY ext-base-debug.js:1755
Ext.Element.addMethods.getY ext-all-debug.js:3124
callback DataRegion.js:1574
LABKEY.DataRegion.Ext.extend._showButtonPanel DataRegion.js:1644
LABKEY.Query.getQueryDetails.success DataRegion.js:1729
(anonymous function) Utils.js:391
Ext.apply.callback ext-all-sandbox-debug.js:6430
Ext.define.onComplete ext-all-sandbox-debug.js:37298
Ext.define.onStateChange ext-all-sandbox-debug.js:37259
(anonymous function) ext-all-sandbox-debug.js:1823
Ben Bimber2015-03-02 11:19Jon (LabKey DevOps)2015-03-12 12:52 Files webpart and file offset? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I'm hoping to load a files webpart that loads itself on a specific subfolder, without obscuring all folders. For example, say this is my file system:

/
   /Folder1
   /Folder2


I'd load something like:

http://localhost:8080/labkey/filecontent/home/begin.view?path=Folder1&folderTreeVisible=true

This would load a files webpart that displays the content of /Folder1, but still shows the folder tree letter the user toggle back to the root or /Folder2. I am able to pass in rootOffset to the files webpart. This loads Folder1, but doesnt let the user switch to anything above that path.

Am I missing an option here?

Thanks in advance.
cyrus2015-04-27 12:37Jon (LabKey DevOps)2015-05-08 14:41 Spring and JPA versions in Labkey 15.1? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey folks,

I'm a LabKey noob, but I've spent a few weeks getting familiar with and building an application in vanilla Spring. As I look to start migrating my application into LabKey as a module, I'm fuzzy about how the pieces fit together.

Right now, when I run my application in vanilla Spring, the database gets dropped, recreated and repopulated with some dummy data in my Application file, which is exactly what I want during development. The database tables are created entirely by JPA annotations (@Entity, @OneToMany, etc) and I've never had to touch any Spring xml files since I use Spring Boot. So a few questions already:

1. What version of Spring and JPA does LabKey 15.1 use?

2. Does LabKey 15.1 use Spring security or does it have its own custom access control layer?

3. Does LabKey 15.1 support Spring Boot out-of-the-box? If not, can it be added? If so, how? (Otherwise, I'll need XML files, in which case, where should those reside in my LabKey module?)

4. Will a LabKey module have an "application.properties" file as a Spring Boot application does? If so, where should it reside? If not, where are these vital settings instead?

My Spring boot application.properties file, for example:
>>>>
spring.datasource.url=jdbc:postgresql://localhost:5432/refcig
spring.datasource.username=postgres
spring.datasource.password=sasa
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.show-sql=true
http.mappers.jsonPrettyPrint=true
multipart.maxFileSize: 512KB
multipart.maxRequestSize: 512KB
spring.view.prefix=/WEB-INF/jsp/
spring.view.suffix=.jsp
server.contextPath=
>>>>

5. Will LabKey be able to drop my db tables and reconstruct them from either annotation or XML file configurations each time LabKey is restarted, like vanilla Spring does? If not, what's the suggested development method? Create and manipulate tables manually as needed?

I think with some of these basics covered, I'll be better equipped to dive in to LabKey. Thanks in advance for any help.
blackhole6122015-07-15 10:26Jon (LabKey DevOps)2015-07-23 16:55 Accessing raw Assay batch files in R View TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

What is the template for where the raw files are stored once they are imported? Currently, I am importing files into an Assay run without filling out any of the run properties and just clicking "save and import next file", mostly because the files are named in a specific format and I don't want to have to re-input the name of each file for each assay id. In the R view I am creating, when I print out labkey.data, it has columns for links, name, run_groups, batch, batch_name, folder, rowid, batch_folder, batch_rowid, among some other ones. Is there a way for me to take the information in labkey.data to access those raw files?

Right now, I am guessing where the files are stored. The error is that the path to the files that I am guessing does not exist in current working directory ('/usr/bin/apache-tomcat-7.0.57/temp/reports_temp/Report_db_58/40'), which is why I am curious if there is a way to build a valid path to the files using the information from labkey.data
annica seidel2016-09-27 02:07Jon (LabKey DevOps)2016-09-27 12:37 Change main site administrator TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

is it possible to change the main site administrator (the person, which set up the server)?
We have a personal change and all email the current site admin will get (for example if a user will be created), should be send to an another person.
Where can I do this?

Annica
chrishu2017-01-05 18:04Jon (LabKey DevOps)2017-03-08 22:06 js transformation script help TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Working on Ubuntu, testing in Chrome.

I would like to create an assay transformation script in javascript, so that I can reuse our (Allen Institute) other js modules. I am able to upload an assay file, my transformation script runs, and it does execute LABKEY api calls. Now for testing, I need a way to run my script outside Labkey. I am trying to do this using node, but it fails when I try to require in the LABKEY api module. Any advice on accomplishing this? Thanks!
WayneH2017-10-23 21:56Jon (LabKey DevOps)2017-11-04 21:47 Parameterized Query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
I've been testing use of the parameterized query and found that for the fields specified in the query any rows with null values are omitted from the result. Is this normal behavior? How can I have it include null values for those fields where parameters are used? Note, I have included a "case" statement in the SQL to default to unfiltered for the given field if there is no parameter specified

for example:
WHERE Gender = (Case WHEN Sex != '' THEN Sex else Gender END)

Should I do something differently to ensure that the rows where gender is null are not dropped? It otherwise retains rows that contain some data...

Thanks,

Wayne
Jon (LabKey DevOps)2022-04-13 10:50Jon (LabKey DevOps)2022-04-13 22:14 Maintenance Notice - Upgrade of labkey.org for Wednesday, April 13th 2022 @ 9pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 9pm Pacific Time for an upgrade to LabKey 22.4

The site will be offline for approximately one hour.

Please save your work before this time.
Jon (LabKey DevOps)2022-08-10 12:21Jon (LabKey DevOps)2022-08-10 21:02 Maintenance Notice - Upgrade of labkey.org for Wednesday, August 10th 2022 @ 8pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 8pm Pacific Time for an upgrade to LabKey 22.8

The site will be offline for approximately one hour.

Please save your work before this time.
Jon (LabKey DevOps)2022-09-09 12:22Jon (LabKey DevOps)2022-09-09 21:12 Maintenance Notice - Upgrade of labkey.org for Friday, September 9th 2022 @ 8pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 8pm Pacific Time for an upgrade to LabKey 22.9

The site will be offline for approximately one hour.

Please save your work before this time.
Jon (LabKey DevOps)2022-09-13 17:10Jon (LabKey DevOps)2022-09-13 21:25 Maintenance Notice - Upgrade of labkey.org for Tuesday, September 13th 2022 @ 9pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 9pm Pacific Time for an upgrade

The site will be offline for approximately 30 minutes.

Please save your work before this time.
Jon (LabKey DevOps)2023-01-11 15:39Jon (LabKey DevOps)2023-01-11 15:39 Maintenance Notice - Upgrade of LabKey.org for Wednesday, January 11th 2023 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 8:30pm Pacific Time for an upgrade to LabKey 23.1

The site will be offline for approximately one hour.

Please save your work before this time.
Ben Bimber2010-03-10 09:59Jon (LabKey DevOps)2015-04-28 21:55 R API and executeSQL TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am trying to query lk from an R script and am receiving an error from the results. below is the R code:

------

library(Rlabkey)

pedigree <- labkey.executeSql(
baseUrl="http://localhost:8080/labkey",
folderPath="/WNPRC/EHR",
schemaName="study",
sql = "select p.sex, p.id FROM study.pedigree p ",
#showHidden = FALSE
)
#pedigree.sire,
pedigree;

----

when i run this query and try to select both columns in my SQL statement, I get this error:

> pedigree <- labkey.executeSql(
+ baseUrl="http://localhost:8080/labkey",
+ folderPath="/WNPRC/EHR",
+ schemaName="study",
+ sql = "select p.sex, p.id FROM study.pedigree p ",
+ #showHidden = FALSE
+ )
Error in names(hold.dat) <- names(decode$rows[[1]]) :
  'names' attribute [3] must be the same length as the vector [1]
Calls: labkey.executeSql -> makeDF
Execution halted


When I try to run this query to return only the ID column, it works and returns this:

> #pedigree.sire,
> pedigree;
         Id
1 rhaa35
2 rhae81
3 rham30
4 rhao45
5 rhau10
6 rhau34
7 rhan92
8 rh-z19
.....




The output is normal. However, when I try to return p.sex (which is a lookup), I get a list for each record:



+ sql = "select p.sex FROM study.pedigree p ",
+ #showHidden = FALSE
+ )
> #pedigree.sire,
> pedigree;
                                                                 Sex
1 list("NA")
2 list("NA")
3 list("NA")
4 list("NA")
5 list("f", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=f")
6 list("f", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=f")
7 list("f", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=f")
8 list("f", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=f")
9 list("f", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=f")
10 list("m", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=m")
11 list("f", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=f")
12 list("m", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=m")
13 list("m", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=m")
14 list("m", "/labkey/list/WNPRC/EHR/details.view?listId=24&pk=m")


I'm assuming this has something to do with the fact that this field is a lookup. i should point out that study.pedigree is a query, not a dataset. Here is the SQL:

SELECT

d.id,
d.dam,
d.sire,

--TODO: handle sex better
CASE d.sex
  WHEN 'm' THEN 1
  WHEN 'f' THEN 2
  WHEN 'e' THEN 1
  WHEN 'c' THEN 2
  WHEN 'v' THEN 1
END AS sex,

FROM study.demographics d

Does anyone have a thought why the first executeSQL() would not be able to produce a dataframe? Do I need to edit the metadata of my query? Thanks in advance.
Ben Bimber2010-04-02 10:23Jon (LabKey DevOps)2015-04-28 21:55 possible to retroactively set field as 'required'? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
the list export/import feature is extremely useful. however, it does not seem to export all the metadata for those lists. it mostly misses validation related information. this would be a minor inconvenience except that labkey does not let you set a field as 'required' once data already exists in a table. this means that when you re-import, because it makes the list and imports data you're stuck. is there a way to force a field to be required once data is in it? all existing rows have values for this field.

workarounds might include deleting all the records, changing the fields to 'required', then re-importing, but that kinda defeats the point of using the import/export mechanism. i will also look into whether i can manually edit the list.xml file produced by the list export to fill in any metadata missed by the list export.
Ben Bimber2010-04-15 15:38Jon (LabKey DevOps)2015-04-28 21:55 any way to store a 10,000 character string in a list? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i have a list with a field whose type is multiline text. i'd like to store the NT sequence of viral genomes in a list - ~10K characters/ea. I'm getting an error on import saying 'too long for varchar(4000)'. any way around this besides making an external schema with a hard table and pointing to it?
Ben Bimber2010-07-09 06:49Jon (LabKey DevOps)2015-04-28 21:59 question on handling 'case numbers' TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Our path department uses case numbers for procedures. They take this format: 1999b013. First 4 digits are year, 'b' stands for biopsy and '013' means it was the 13th of the year. The last part auto increments upward. There are 3 allowable types (a,b,e), although in theory that might grow. Each type has its own numeric series (ie. 1999b01, 1999b02,.. along with 1999a01, 1999a02, etc). I dont particularly like this system, but I need to support it in some form.

I'm trying to figure out how to best do that in labkey. My questions are:

1. I am assuming I have a field called 'caseno' in the table that actually stores this string. the alternative is to calculate it using SQL and join it. is one approach better?

2. I am assuming that I would calculate the next caseno when the user loads the import form using javascript. To do this, the form code needs to run a query to identify the next number in the series for that procedure type. The alternative is to try to calculate that in a validation script, but the validation script cannot run sql. is that the best place to calculate it?

3. Should I explicitly store the procedure number in it's own column (either in addition to the caseno string or as a substitute)? this would be an integer column that i'd need to manually auto-increment by procedure type and year. This makes identifying the next procedure number in a series somewhat simpler, but also requires manually maintaining this new column.

Thanks for the help and let me know if any clarification would help.
Ben Bimber2010-07-28 05:17Jon (LabKey DevOps)2015-04-28 21:59 how to handle data that can be true/false/null TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
There's many instances where we need to values that are either true, false or not performed (ie. null). not performed is not the same thing as false. what's the best way to capture that in the database and what are good approaches to represent that in a webform?

boolean as a datatype might work as long as null isnt treated the same as false. a checkbox does not work as an inputtype, since null is the same thing as false. i am thinking that a combobox with three entries is probably best. this combo could be registered as an xtype, so it's easily reusable. are there other standard ways to handling this?

thanks.
Ben Bimber2010-09-16 15:15Jon (LabKey DevOps)2015-04-28 22:00 webdav documentation TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
awilson@iavi.org2011-03-29 07:30Jon (LabKey DevOps)2015-04-28 22:01 webpart and css TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
is there a way to use positional css on webparts? if i have a wiki with 5 different webpart r images on them is there a way to position items on the page?
Ben Bimber2011-09-26 07:02Jon (LabKey DevOps)2015-04-28 22:02 excel upload template and field names vs labels TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
fields have both a name and a label. the latter usually being the person-friendly version. when you download an excel template using the new 11.2 UI, this template gives you an excel file in which the columns are labeled using the field names, as opposed to labels. is that the intent of the code?
Maya Li2011-12-05 15:22Jon (LabKey DevOps)2015-04-28 22:03 module schema not found after upgrade TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm building a file-based module. The module runs perfectly in my development environment. When I deploy my module from my development environment to production environment, labkey ran a smooth upgrade process and created the new schema that I needed. But there is just one problem, the schema is not visible from the module or labkey app. The schema is not visible from the developer schema browser. An error message of "schema not found" pops up when I run my module code. The bizarre thing is that Admin Console->Database check's get xml doc tool sees my module and schema associated with it.

I have tried re-generating the module schema xml file. The admin console error log is empty after deployment. The full log file seems to run the database sql file correctly with no problems. No error is found in database check.

What else could be the problem here?
Andy Straw2012-05-09 12:11Jon (LabKey DevOps)2015-04-28 22:03 AssertionFailedError when running DRT TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to run the Developer Regression Test (DRT) as documented here: https://www.labkey.org/wiki/home/Documentation/page.view?name=checkin
I'm using 12.1, built from source, running on Windows 7. When I run "ant drt" in server/test/, I see the following:

...
14:56:31,011 =============== Completed BasicTest (1 of 5) =================

testSteps(org.labkey.test.tests.BasicTest)

junit.framework.AssertionFailedError: Asserts must be enabled to track memory leaks; please add -ea to your server VM params and restart.

at org.labkey.test.BaseSeleniumWebTest.checkLeaks(BaseSeleniumWebTest.java:1403)
...

Full log file is attached.

Which "server" is the error referring to? I assumed it meant tomcat, but I tried adding -ea to CATALINA_OPTS, as well as modifying catalina.sh to always use -ea on the java command line, and that didn't help. (I'm using cygwin - that's why I'm using catalina.sh, not catalina.bat.)

Please help. Thanks.

Andy Straw
University of Rochester
Leo Dashevskiy2012-05-11 15:43Jon (LabKey DevOps)2015-04-28 22:03 Ext: tying the disabling of a button to the LABKEY.WebPart.render() TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

I have a button that via a WebPart calls an R script that generates an image that shows up in that WebPart.

I would like to disable the button, while the R script is running (so that the user does not have the ability to press the button again and launch another concurrent R script!), which actually means, disabling the button until the moment the generated image "comes back" and shows up.

I actually got the Ext mask to work so that, when the user presses the button, the WebPart, which launches the R script, is masked exactly until the moment the image is generated.

The thing is, when the button is pressed, I explicitly make the call to .show() of the mask, but I nowhere have explicitly specified its .hide() method. So I am assuming that it does get called somewhere somehow, once the image gets displayed. Which to me means, if I understand, how it works correctly, that the rendering of the generated image fires some event, which gets listened to by the mask and once the mask receives the event, the handler for it is to call the .hide() method. So my idea is to figure out exactly, which event does the WebPart fire, once the image is generated, and to add a listener to that event to the button and then the handler for it would be to enable the button back.

Could you consult me, if indeed the WebPart (or something else) does indeed fire some event once the image output of an R script gets displayed in the WebPart?

Below is some code in the order it gets called in the Ext.onReady() method.


WebPart creation:

        var graphWebPartConfig = {
            reportId: '<path to the R script>',
            ... < extra params > ...
        };

        var graphWebPart = new LABKEY.WebPart({
            frame: 'none',
            partConfig: graphWebPartConfig,
            partName: 'Report',
            renderTo: 'Graph'
        });


Mask creation:

        var mask = new Ext.LoadMask('Graph', {
            msg: "Generating the graphics, please, wait..."
        });


Button creation:

        new Ext4.Button({
            handler: function() {
                mask.show();

                // set graphWebPart config params to pass to the R script here

                graphWebPart.render();
            },
            renderTo: 'buttonGraph',
            text: 'Graph'
        });


and the HTML snippet is naturally just: <div id='Graph'></div>

Thanks.
Leo Dashevskiy2012-07-02 16:20Jon (LabKey DevOps)2015-04-28 22:04 Error after calling render() on a webPart object TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Uncaught SyntaxError: Unexpected token < ext-all-debug.js:4934
(anonymous function) ext-all-debug.js:4934
loadAjaxContent Utils.js:1105
renderPart WebPart.js:168
Ext.extend.handleResponse ext-all-debug.js:4643
handleTransactionResponse ext-base-debug.js:1888
checkResponse ext-base-debug.js:1936
(anonymous function)

In line 168 of WebPart.js

LABKEY.Utils.loadAjaxContent(response, targetElem, _success, _scope):

targetElem is an existing <div> in the DOM hard-coded in the HTML file and
response is an object with some attributes like
status: 200
statusText: OK
responseText:

<table class="labkey-output"><tr><td><pre>File already exists, no need to recreate it!
</pre></td></tr></table><br/>

which is what I'm after: my R code is

if ( true )
 txt <- "File already exists, no need to recreate it!";

write(txt, file="${txtout:textOutput}");

So what is the issue/problem here?

Is the Ext.util.JSON.decode() method not liking the <br/> piece at the end?
It was working before for me...

Recently I upgraded the server from 12.1 to 12.2

Thanks.
-Leo
Leo Dashevskiy2012-08-07 15:28Jon (LabKey DevOps)2015-04-28 22:04 Rlabkey package (potentially unorthodox) usage TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello there!

I would like to utilize the Rlabkey R package in order to manipulate Labkey's database tables.

The manipulation is to be done via an R script, which will be launched from within a JavaScript based web part, which is part of a Labkey server itself.

So, the idea is to have user A log into Labkey, start interacting with a JS web part, then via it, kick off an R script, which would connect back to the Labkey's db tables via Rlabkey to get and process some data (and then return something back to the web part the script originated from). It is my understanding that R should connect back to labkey with the same user A credentials that user A uses to log into Labkey itself.

How exactly can one do that?

I know that the traditional usage of Rlabkey is to use it in an interactive R session to query the db tables. And in order to do that, one needs to have a file named .netrc (for Unix) sitting in the home folder with proper credentials. But what about my case?

Thanks.
-Leo
slangley@scharp.org2012-11-08 10:38Jon (LabKey DevOps)2015-04-28 22:06 Timestamps with Timezones in Database Tables? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I read in a couple of old tickets, referenced below, where you decided not to use timezones with dates & timestamps. For us, we see an advantage with using timezones in that it makes data sharing simpler and more consistent. Would we run into any problems if we used timestamps with timezones in our external schemas? Any plans to support timestamps with timezones in the future directly in LabKey?

Thanks.

Scott

 
  
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=8521&_docid=issue%3A8521
  
"Everyone decided that the server should be timezone-less. No timezone indicator returned from the server now."
  
  
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=14706&_docid=issue%3A14706
  
"Using DatatypeConverter seems reasonable for now, and we can look at making parseDateTimeUS() handle this case if we want.
  
Here's the one thing to be careful of. We parse datetime w/ timezone, but we save datetime w/o timezone (in the current timezone of the server).
  
In this case we are parsing date w/ timezone. We should be careful not to inadvertently save this as a datetime. We don't want 2011-06-28+01:00 to become 2011-06-27 15:00:00, or something crazy like that. We should probably simply drop the timezone altogether and store 2011-06-28 (server tz). "
Andy Straw2013-03-06 13:00Jon (LabKey DevOps)2015-04-28 22:07 Bug in generated SAS code - client API TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Using LabKey's ability to generate a SAS script for fetching the data grid I'm looking at, we generated a script that doesn't work. See attached log file from SAS.

Note that the filter uses operators DATE_GREATER_THAN_OR_EQUAL and DATE_LESS_THAN_OR_EQUAL that are not valid operators in the SAS client API: https://www.labkey.org/wiki/home/Documentation/page.view?name=sasMacros

(I also looked at the SAS source for the labkeyMakeFilter macro, and it looks like that macro doesn't support those operators.)

Is this a bug?

We're using LabKey 12.3 build 24024 (and the corresponding SAS client API).

Andy Straw
University of Rochester
Leo Dashevskiy2013-04-10 11:24Jon (LabKey DevOps)2015-04-28 22:07 Column values type for LABKEY.ext.Store TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

I am using LABKEY.ext.Store with an sql config option.

I am seeing that if the query column has values, which are all strings (with at least one non-numeric character), then within the store the type of the records of that column is set to 'string', whereas if the query column has what looks like numbers, then within the store the type of the records of that column is set to 'numeric'. The thing is, I need for uniformity and conformity to have those 'numeric' field types to actually be 'string' (i.e. 5 should be in fact '5') -- are there configs to achieve this?
If not, then how should Store.js be tweaked/overridden to get this to work or may be it is the database that returns the 'numeric' columns and the store has nothing to do with it and just consumes what it's fed, and in that case it's the query properties (where?) that need to be modified, I'm not sure.

Your help is appreciated.
Thanks.
-Leo
jdutra2013-08-26 08:35Jon (LabKey DevOps)2015-04-28 22:08 Participant Group permissions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am a little confused about how permissions work with participant groups. As a site admin, I have set up some participant groups for a study. Various users will add subjects through wiki eCRFs, and I have code in the eCRFs that automatically determines what group(s) the new subject should belong to and updates those groups. If I use the eCRFs, everything works fine. If the users use the eCRFs, there is a "bad request" response to the call that updates the participant group. The users in question are all editors on the folder. The study is set up with per-dataset permissions. We have labkey server v13.1.

It seems like maybe participant groups can only be updated by the person who created them? If so, is that because of the way I set up the groups or the permissions, or is that just how they work? Any suggestions, or a link to information about how participant groups and permissions relate to each other would be really helpful. We use participant groups a lot here - occasionally users set them up for their own purposes, but most often administrators set up groups and it often happens that we'd want certain users to be able to update the groups.

Thanks for any help,
Jen
bront@kcr.uky.edu2013-12-02 14:22Jon (LabKey DevOps)2015-04-28 22:08 Calling R script with Javascript TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I have been working on creating a generic R-script that I can pass config parameters via Javascript. This works.

Is there a way, however, to pass references to different tables/views?

I was unsuccessful when I tried to modify read.table("${input_data}", header=TRUE, sep="\t") to accept a different dataset.

The following does not look promising...

"Views created independently of grid views do not have access to labkey.data objects. Such views are listed under the None heading in the list on the Manage Views page."

from : https://www.labkey.org/wiki/home/Documentation/page.view?name=rBuilder

Many thanks,

b
Leo Dashevskiy2013-12-02 14:59Jon (LabKey DevOps)2015-04-28 22:08 Error during a new module's initialization TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good afternoon, folks!

I am developing a new module.

When the 'modules are upgrading' UI is running, in the IntelliJ's console I see the following warning and error:

WARN Table 2013-12-02 14:55:26,628 Module Upgrade : SQL Exception
org.labkey.api.data.Table$OptimisticConflictException: Optimistic concurrency exception: Row deleted
    at org.labkey.api.data.Table$OptimisticConflictException.create(Table.java:1257)
    at org.labkey.api.data.Table.update(Table.java:1043)
    at org.labkey.api.data.Table.update(Table.java:929)
    at org.labkey.api.module.ModuleLoader.updateModuleProperties(ModuleLoader.java:1281)
    at org.labkey.api.module.ModuleLoader.completeUpgrade(ModuleLoader.java:1258)
    at org.labkey.api.module.ModuleLoader.access$400(ModuleLoader.java:115)
    at org.labkey.api.module.ModuleLoader$3.run(ModuleLoader.java:1241)
    at org.labkey.api.module.ModuleUpgrader$1.run(ModuleUpgrader.java:76)
WARN Table 2013-12-02 14:55:26,630 Module Upgrade : SQL
    UPDATE core.modules
        SET autouninstall=?, schemas=NULL
        WHERE name=?
    ?[1] false
    ?[2] HAI_vs_GE

    org.labkey.api.module.ModuleLoader.updateModuleProperties(ModuleLoader.java:1281)
    org.labkey.api.module.ModuleLoader.completeUpgrade(ModuleLoader.java:1258)
    org.labkey.api.module.ModuleLoader.access$400(ModuleLoader.java:115)
    org.labkey.api.module.ModuleLoader$3.run(ModuleLoader.java:1241)
    org.labkey.api.module.ModuleUpgrader$1.run(ModuleUpgrader.java:76)
ERROR ExceptionUtil 2013-12-02 14:55:26,631 Module Upgrade : Exception detected and logged to mothership:
org.labkey.api.data.Table$OptimisticConflictException: Optimistic concurrency exception: Row deleted
    at org.labkey.api.data.Table$OptimisticConflictException.create(Table.java:1257)
    at org.labkey.api.data.Table.update(Table.java:1043)
    at org.labkey.api.data.Table.update(Table.java:929)
    at org.labkey.api.module.ModuleLoader.updateModuleProperties(ModuleLoader.java:1281)
    at org.labkey.api.module.ModuleLoader.completeUpgrade(ModuleLoader.java:1258)
    at org.labkey.api.module.ModuleLoader.access$400(ModuleLoader.java:115)
    at org.labkey.api.module.ModuleLoader$3.run(ModuleLoader.java:1241)
    at org.labkey.api.module.ModuleUpgrader$1.run(ModuleUpgrader.java:76)


What is the cause of it and how would I correct it?

I see the module's name in the 'Folders Management' UI, but when I enable the checkbox and save, the web part's name is not showing in the drop down menu.

Also, the module's name appears in the 'Unknown Modules' portion of the modules admin page.

Thanks.
-Leo
lukas streit2015-04-29 05:37Jon (LabKey DevOps)2015-05-07 20:37 Cannot insert duplicate key in object 'study.ParticipantVisit' TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Build Number    35337.10
Build OS    Windows Server 2008 R2
Version    14.30
---------------------------------------

Hello
After restoring the LabKey-Db on our testserver, an error raised after trying import specimen.

---------- ERROR ---------------
500: Unexpected server error
SqlExecutor.execute(); SQL []; Violation of PRIMARY KEY constraint 'PK_ParticipantVisit'. Cannot insert duplicate key in object 'study.ParticipantVisit'. The duplicate key value is (270615a9-5e94-1031-8d2b-04451a238e40, 4190513, 2.0000).; nested exception is java.sql.SQLException: Violation of PRIMARY KEY constraint 'PK_ParticipantVisit'. Cannot insert duplicate key in object 'study.ParticipantVisit'. The duplicate key value is (270615a9-5e94-1031-8d2b-04451a238e40, 4190513, 2.0000).

org.springframework.dao.DataIntegrityViolationException: SqlExecutor.execute(); SQL []; Violation of PRIMARY KEY constraint 'PK_ParticipantVisit'. Cannot insert duplicate key in object 'study.ParticipantVisit'. The duplicate key value is (270615a9-5e94-1031-8d2b-04451a238e40, 4190513, 2.0000).; nested exception is java.sql.SQLException: Violation of PRIMARY KEY constraint 'PK_ParticipantVisit'. Cannot insert duplicate key in object 'study.ParticipantVisit'......

---------------------------------

Also when I deleted the duplicated keys in 'study.ParticipantVisit' or tried to import different specimens, the error contained always the same key (270615a9-5e94-1031-8d2b-04451a238e40, 4190513, 2.0000) It doesn't matter wheter it exists or not.
Matthiew Bellw advised me to publishe the problem here in Developers forum. Hope you have a hint.

Lukas
bront@kcr.uky.edu2015-08-12 11:22Jon (LabKey DevOps)2015-08-13 10:53 Querying a list and a external datasource TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I have created list within a project, and I would like to create a query that joins that list to a table which is accessed via an external schema.

I can see the list data in the LabKey UI, but when I try to query via:

SELECT u.user
FROM "/Care_Plans/".lists."users" u   

I get the following error:

Bad SQL grammar. Select command denied to user: ExternalSchemaUser@...

The ExternalSchemaUser is the name of the external data source, so maybe it's not possible to connect a list with an external datasource?

We're on 15.1 with PostgreSQL 9.1.18.

Many thanks,

bront
alx dobre2015-08-26 02:19Jon (LabKey DevOps)2015-08-26 10:41 Export identical query names in different schemas in the same folder TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have set up some of my folders with several queries that have identical names but they are in separate schemas.

When doing this via the UI all is well and my configuration works just fine.

When I attempt to export the folder via Admin -> Folder -> Management -> Export the server throws a duplicate query name error.

Looking at the structure of the zip file the exporter would generate the complaint makes sense as it places all the queries in the same physical folder regardless of their schema. The schema info is inside the xml besides the sql file.

I want to check with you guys if there is a workaround to this error or if I have to refactor all my queries to have a unique name per folder.
eva pujadas2015-11-06 06:27Jon (LabKey DevOps)2015-11-06 11:12 Predefine demographic datasets TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is it either possible to predefine demographics-datasets in the XML visit map or in the bulk-import of the datasets?
We couldn’t find that option yet, but it would be very useful.

Thanks a lot for your support,
Eva
Will Holtz2016-01-30 08:50Jon (LabKey DevOps)2016-04-29 16:29 Using plotly.js within Labkey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I've been trying to use plotly.js within Labkey with the hope of generating interactive plots. I thought the easiest route to achieving this would be to create an R report with Labkey that contains a knitr document and then in that knitr document, use the R plotly library to generate the interactive plots. Finally, I'd like to use Rserve to make all this run faster, but that is an aside at this point.

My reasoning for going through R, rather than directly using the plotly javascript library, was not wanting to have to transform the data coming from Labkey into the format required by plotly.js. Additionally, using the plotly R library means that I can create my plots using ggplot2 (which I am already well versed in) and then automatically convert them to plotly plots (via ggplotly). I also could have skipped the knitr step, and directly used the plotly R library within an R view, but it isn't clear to me how to get the plotly R library to output javascript/HTML that Labkey could display. I'm guessing this is possible -- it just wasn't clear to me.

So, using the Lakbey>R report>knitr>plotly approach yields a document that contains "<!–html_preserve–>" tags flanking where the plot should be. Between the html_preserve tags is a bunch of json containing the data for the plot, but I don't see the javascript for the actual plot generation. Some Googling has revealed that knitr is generating the html_preserve tags and it has something to do with escaping other HTML tags. This thread https://github.com/rstudio/rmarkdown/issues/326 indicates that this HTML escaping behavior can be modified by passing options to md_extentions in knitr. I tried including the YAML header with md_extensions options in my Rmd file that generates my R report, but it appears that Labkey does not process the header as such. I spent a few minutes looking at the Labkey R report generation java code and couldn't find exactly how knitr is getting called.

Has anyone else gotten interactive plots with plotly.js working within Labkey? It would be a big win for the Labkey community to be able to easily leverage all the power of plotly. Any thoughts or pointers are appreciated.

thanks,
-Will
laurapas2016-02-23 12:49Jon (LabKey DevOps)2016-02-24 13:57 List design and labkey.selectRows TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
As a follow up to the forum thread that I submitted a couple of weeks ago (titled labkey.deleteRows), I redesigned my lists so that the primary key would be an Integer that I can specify it myself instead of the Auto-integer. One problem I see now is that the resulting R labkey.selectRows is resulting in a duplicate primary key column. See attachment snapshots for my list creation. Here is the labkey.selectRows that I am using.

peptideref <- labkey.selectRows(
  baseUrl="https://labkey-dev.roche.com:8443/labkey",
  folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
  schemaName="lists",
  queryName="peptidereference",
  showHidden = TRUE,
  colNameOpt = "fieldname",
  containerFilter=NULL
)

> str(peptideref)
'data.frame':    67 obs. of 8 variables:
 $ Skyline Number: num 1 2 4 5 6 7 8 9 10 11 ...
 $ Category : chr "Spike" ...
 $ Panel : chr "V1" ...
 $ Conc : chr "M" ...
 $ Conc Level : chr "M11" ...
 $ Protein : chr "P68082" ...
 $ Peptide : chr "HGTVVLTALGGILK" ...
 $ Skyline Number: num 1 2 4 5 6 7 8 9 10 11 ...


I tried showHidden = FALSE and it does not make a difference; I get the same duplicate primary key. Is there something I am missing?
Will Holtz2016-03-23 18:06Jon (LabKey DevOps)2016-10-05 23:05 Failing to hide column when PIVOT is used TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the following code, I set metadata to hide a column, but the column is still displayed. If the PIVOT line is commented out, then the column does get hidden. I am testing this on Labkey r41716 with Postgres v9.5. Is this an expected limitation of the PIVOT or has something gone wrong?

thanks!
-Will

<div id="MyDiv"></div>
<script type="text/javascript">
Ext4.onReady(function() {
    var qwp1 = new LABKEY.QueryWebPart({
        renderTo: 'MyDiv',
        schemaName: 'Core',
        sql: `
            SELECT
                myGroup,
                attribute,
                AVG(value) as meanValue
            FROM
                (SELECT
                    'cats' AS myGroup,
                    'tails' AS attribute,
                    1 AS value
                )
            GROUP BY
                myGroup,
                attribute
            PIVOT meanValue BY attribute;
        `,
        metadata: {type: 'xml', value:
            `<tables xmlns="http://labkey.org/data/xml">
                <table tableName="MyQuery" tableDbType="NOT_IN_DB">
                    <columns>
                      <column columnName="myGroup">
                        <columnTitle>A Hidden Column</columnTitle>
                          <isHidden>true</isHidden>
                       </column>
                    </columns>
                </table>
            </tables>
            `
        }
    });
});
</script>
bront@kcr.uky.edu2016-05-16 10:29Jon (LabKey DevOps)2016-05-24 15:27 Files Web Part Height TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is it possible to set the height on the Files web part?

Many thanks,

bront

<h2>Embedded Files Web Part</h2>

<div id='fileDiv'></div>

<script type="text/javascript">
LABKEY.requiresScript("fileBrowser.js");
LABKEY.requiresScript("FileContent.js");
LABKEY.requiresScript("FileUploadField.js");
LABKEY.requiresScript("PipelineAction.js"); //required if in production mode

Ext.onReady(function() {

    var wikiWebPartRenderer = new LABKEY.WebPart({
      partName: 'Files',
      renderTo: 'fileDiv',
      partConfig: {
          'height': '1000px' // ?????
      }
    });

wikiWebPartRenderer.render();
});
</script>
ARD2016-09-08 10:26Jon (LabKey DevOps)2016-10-19 23:51 ant build error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have problem while compiling labkey source code (latest version).


 /Users/xxxxx/labkey/server/bootstrap/src/org/labkey/bootstrap/LabkeyServerBootstrapClassLoader.java:39: error: cannot access PermissionCheck

I don't understand this error. What will be the reason to get this error and how to fix it!


#ant build

Buildfile: /Users/xxxxx/labkey/server/build.xml

set_prod_props:

ensure_enlistment_id:

set_dev_props:

echo_props:
     [echo] GWT gwt-user-firefox
     [echo] tomcat.home=/Users/xxxxx/apache-tomcat-8.5.5
     [echo] java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre
     [echo] ant.java.version=1.8
     [echo] java.source.and.target=1.8
     [echo] java.rt.dir=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib
     [echo] labkey.xml.template=../webapps/labkey.xml
     [echo] enlistment.id=89dc87c0-d811-4899-8b6f-f13f2e4d54f5

query_svn_number:
   [delete] Deleting: /Users/xxxxx/labkey/build/#vcs.properties#
     [echo] ## query_svn_number loaded revision: ${Revision} ${URL}
[propertyfile] Updating property file: /Users/xxxxx/labkey/build/#vcs.properties#

build:

uptodate_build_schemas:

build_schemas:

build_log4j:
     [copy] Copying 1 file to /Users/xxxxx/labkey/build/staging/labkeyWebapp/WEB-INF/classes

build_classes:

build_bootstrap_jar:
    [javac] Compiling 22 source files to /Users/xxxxx/labkey/build/bootstrap
    [javac] /Users/xxxxx/labkey/server/bootstrap/src/org/labkey/bootstrap/LabkeyServerBootstrapClassLoader.java:39: error: cannot access PermissionCheck
    [javac] public class LabkeyServerBootstrapClassLoader extends WebappClassLoader
    [javac] ^
    [javac] class file for org.apache.tomcat.util.security.PermissionCheck not found
    [javac] /Users/xxxxx/labkey/server/bootstrap/src/org/labkey/bootstrap/LabkeyServerBootstrapClassLoader.java:127: error: cannot find symbol
    [javac] MethodHandle handle = MethodHandles.lookup().findSpecial(WebappClassLoader.class, "setResources", MethodType.methodType(void.class, parameterType), getClass());
    [javac] ^
    [javac] symbol: method getClass()
    [javac] location: class LabkeyServerBootstrapClassLoader
    [javac] /Users/xxxxx/labkey/server/bootstrap/src/org/labkey/bootstrap/LabkeyServerBootstrapClassLoader.java:128: error: cannot find symbol
    [javac] handle.invoke(this, resources);
    [javac] ^
    [javac] symbol: variable this
    [javac] location: class LabkeyServerBootstrapClassLoader
    [javac] /Users/xxxxx/labkey/server/bootstrap/src/org/labkey/bootstrap/LabkeyServerBootstrapClassLoader.java:146: error: cannot find symbol
    [javac] addURL(jarFileUrl);
    [javac] ^
    [javac] symbol: method addURL(URL)
    [javac] location: class LabkeyServerBootstrapClassLoader
    [javac] /Users/xxxxx/labkey/server/bootstrap/src/org/labkey/bootstrap/LabkeyServerBootstrapClassLoader.java:161: error: cannot find symbol
    [javac] if (super.modified())
    [javac] ^
    [javac] symbol: variable super
    [javac] location: class LabkeyServerBootstrapClassLoader
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 5 errors

BUILD FAILED
/Users/xxxxx/labkey/server/build.xml:2401: The following error occurred while executing this line:
/Users/xxxxx/labkey/server/build.xml:716: The following error occurred while executing this line:
/Users/xxxxx/labkey/server/build.xml:2471: Compile failed; see the compiler error output for details.
tbrachmann2017-09-15 11:09Jon (LabKey DevOps)2017-09-15 23:35 Unit Tests TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

Is it possible to run unit tests for a single module with gradle on the command line? With "./gradlew tasks" I see a "test" task but have had no success in running it on a single module (with an "assertTrue(false)" test I see no indication that a test has failed).

I can run unit tests on the server with the junit module, but would prefer to do it on the command line because its faster.

Thanks!
Matt V2017-09-20 15:06Jon (LabKey DevOps)2017-09-21 19:01 Issues including external dependencies in 17.2 with gradle TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm working on upgrading to 17.2 and have hit a snag with external dependencies.

I have two custom modules. In one's lib directory, I have a number of "external" jar dependencies. Some examples include (not all-inclusive):

    javax.persistence.jar
    hibernate-core-5.2.9.Final.jar
    hibernate-commons-annotations-5.0.1.Final.jar
    hibernate-jpa-2.1-api-1.0.0.Final.jar

Using just one example, this module's build.gradle looks like:
    import org.labkey.gradle.util.BuildUtils

    apply plugin: 'java'
    apply plugin: 'org.labkey.module'

    dependencies {
        BuildUtils.addLabKeyDependency(project: project, config: "compile", depProjectPath: ":externalModules:labModules:LDK", depProjectConfig: "apiCompile")
        external 'org.hibernate:hibernate-core:5.2.9.Final'
    }


Unfortunately, a deployApp fails with the following:
    * What went wrong:
    Could not resolve all dependencies for configuration ':CompBioLabKey:Modules:CompBioStudy:external'.
    > Could not resolve org.hibernate:hibernate-core:5.2.9.Final.
      Required by:
          project :CompBioLabKey:Modules:CompBioStudy
       > Could not resolve org.hibernate:hibernate-core:5.2.9.Final.
          > Could not get resource 'https://artifactory.labkey.com/artifactory/libs-release/org/hibernate/hibernate-core/5.2.9.Final/hibernate-core-5.2.9.Final.jar'.
             > Could not HEAD 'https://artifactory.labkey.com/artifactory/libs-release/org/hibernate/hibernate-core/5.2.9.Final/hibernate-core-5.2.9.Final.jar'. Received status code 401 from server: Unauthorized


If I switch this around to the following:
    import org.labkey.gradle.util.BuildUtils

    apply plugin: 'java'
    apply plugin: 'org.labkey.module'

    dependencies {
        BuildUtils.addLabKeyDependency(project: project, config: "compile", depProjectPath: ":externalModules:labModules:LDK", depProjectConfig: "apiCompile")
        external fileTree(dir: 'lib', include: '*.jar')
    }

then it will build but fail during runtime.


Spent a bunch of time on this and am at a loss for what to do now. Any ideas?
Ben Bimber2018-03-02 09:21Jon (LabKey DevOps)2018-03-02 15:46 Minimum necessary permissions on SQLServer? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
For as far as I remember, the LabKey guidance for installing on SQLServer has bee that the labkey database account should be syadmin or equivalent. While this obviously grants the LK application permission to do whatever it needs, it really is far in excess of what it really ought to be. LabKey does install the CLR functions and create a database; however, it doesnt manger users/permissions or things like this. In an increasingly security conscious environment, having that additional sysadmin account, even if it's a service account, is less defensible and we're getting from DBA pushback. In a scenario in which a single Sqlserver instance hosts multiple LK servers (each potentially sub-admined by different people), that global SQL permission is also less appealing.

Have you considered whether you could issue recommendations/guidance on a more targeted permission set for SQLServer permission set that would give the LK app permission to do what it needs, without opening up everything?

Thanks in advance.
Jon (LabKey DevOps)2022-11-10 13:09Jon (LabKey DevOps)2022-11-10 21:33 Maintenance Notice - Upgrade of labkey.org for Thursday, November 10th 2022 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 8:30pm Pacific Time for an upgrade to LabKey 22.11

The site will be offline for approximately one hour.

Please save your work before this time.
wnels2@uky.edu2008-02-05 14:42Jon (LabKey DevOps)2015-04-28 21:52 GWT Build TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When I update a GWT client and build, the changes do not always appear on the web page in server mode. The changes are visible with hosted mode though. If I execute the clean target and then rebuild, the changes do appear with server mode but this takes a really long time.

Does anybody have some tips in this area?

Thanks,
Bill
wnels2@uky.edu2009-01-21 03:28Jon (LabKey DevOps)2015-04-28 21:53 standard fields TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the demo module's SQL scripts the a comment indicates that there are standard fields in a LabKey table.
    -- standard fields
    _ts TIMESTAMP DEFAULT now(),
    RowId SERIAL,
    CreatedBy USERID,
    Created TIMESTAMP,
    ModifiedBy USERID,
    Modified TIMESTAMP,
    Owner USERID NULL

But, not all of the LabKey tables use these fields. What are they used for and when are they required?

Thanks,
Bill
wnels2@uky.edu2009-11-28 21:00Jon (LabKey DevOps)2015-04-28 21:54 mule error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have added a task to the mule pipeline. It works most of the but every once in a while I get the exception below. Also, the pipeline will get stuck intermittently - restarting ActiveMQ will restart everything. Everything is running on a laptop - no globus. Do you have any suggestions on how to trouble shoot this?
Thanks,
Bill

28 Nov 2009 22:13:30,359 ERROR: class org.mule.umo.ComponentException
org.mule.umo.ComponentException: Failed to invoke org.labkey.pipeline.mule.PipelineJobRunner. Component that caused exception is: PipelineJobRunnerUMO. Message payload is of type: ActiveMQTextMessage
    at org.mule.impl.DefaultLifecycleAdapter.intercept(DefaultLifecycleAdapter.java:199)
    at org.mule.impl.InterceptorsInvoker.execute(InterceptorsInvoker.java:47)
    at org.mule.impl.model.DefaultMuleProxy.run(DefaultMuleProxy.java:470)
    at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy.rejectedExecution(ThreadPoolExecutor.java:1895)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:765)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1288)
    at org.mule.impl.work.ScheduleWorkExecutor.doExecute(ScheduleWorkExecutor.java:39)
    at org.mule.impl.work.MuleWorkManager.executeWork(MuleWorkManager.java:277)
    at org.mule.impl.work.MuleWorkManager.scheduleWork(MuleWorkManager.java:244)
    at org.mule.impl.model.seda.SedaComponent.run(SedaComponent.java:483)
    at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:418)
    at java.util.Properties.load0(Properties.java:337)
    at java.util.Properties.load(Properties.java:325)
    at org.labkey.ms2.pipeline.aws.Credentials.loadProperties(Credentials.java:65)
    at org.labkey.ms2.pipeline.aws.Credentials.<init>(Credentials.java:24)
    at org.labkey.ms2.pipeline.aws.CredentialFactory.getCredentials(CredentialFactory.java:19)
    at org.labkey.ms2.pipeline.aws.S3Utilities.initS3Service(S3Utilities.java:161)
    at org.labkey.ms2.pipeline.aws.S3Utilities.getS3Utilities(S3Utilities.java:39)
    at org.labkey.ms2.pipeline.aws.S3Utilities.uploadData(S3Utilities.java:46)
    at org.labkey.ms2.pipeline.tandem.XTandemSearchTask.run(XTandemSearchTask.java:175)
    at org.labkey.api.pipeline.PipelineJob.runActiveTask(PipelineJob.java:621)
    at org.labkey.api.pipeline.PipelineJob.run(PipelineJob.java:844)
    at org.labkey.pipeline.mule.PipelineJobRunner.run(PipelineJobRunner.java:31)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.mule.impl.model.resolvers.DynamicEntryPoint.invokeMethod(DynamicEntryPoint.java:312)
    at org.mule.impl.model.resolvers.DynamicEntryPoint.invoke(DynamicEntryPoint.java:259)
    at org.mule.impl.DefaultLifecycleAdapter.intercept(DefaultLifecycleAdapter.java:193)
    ... 14 more
Ben Bimber2010-10-11 05:52Jon (LabKey DevOps)2015-04-28 22:00 QWP/filters and URL: very confusing behavior. probably bug. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have an issue tracker summary webpart here:

https://xnight.primate.wisc.edu:8443/labkey/project/WNPRC/WNPRC_Units/Director/Executive%20Committee/begin.view?

if you click on the links you get a QWP of the issue tracker list, filtered to a certain view. this filter is applied by the URL. if you then toggle the view to 'all issues', you get zero issues. there is no visual feedback to show that any sort of filter is applied. i know enough about QWPs to see that, then hit 'remove view filter' from the views button. this reveals 4 total issues. most users wont get that and will be confused why there's no issues.

there are several possible bugs here:

1. perhaps revisit how the default 'all issues' view works in the issue tracker
2. revisit the lack of any sort of visual feedback on the QWP about those filters. that is possibly a more general problem
Ben Bimber2010-11-05 08:37Jon (LabKey DevOps)2015-04-28 22:00 user groups comprised of user groups TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
labkey allows us to create groups of users. it does not directly allow the create of groups based on other groups (as far as i know).

it's very common for a given action (like whether a button shows up) to be limited to members of some number of groups. rather than create and maintain membership in a new group specifically for each purpose like this, it would be preferable to define some type of group based on other groups. often these conditions are more complex and cannot be correlated with 'does user have read/write access to the folder where a given query is located'. likewise they dont correlate with dataset security. frequently in certain cases we might expose UI to allow a certain user group to write to a table, but in other situations we dont want that exposed.

if I have JS code on a page, one option would be to hard encode the list of allowable groups and have the code ask 'is the user a member of groups X,Y or Z'. The downside is that these groups are hard coded. The labkey way of testing security seems to be doing something like 'does user have read/write/edit access to folder X'. One way to solve my problem is to create a dummy folder that has nothing to do with the folder where the UI is located. I could then give different user groups different levels of access to this folder. my JS code could then ask 'does the user have read access to this folder'. if true, i show the button. this would do exactly what I need it to do and would actually be somewhat versatile since by giving different groups different levels of folder access a lot of info could be stored in the permissions from 1 folder. however, creating a folder without any content to handle this security purpose seems odd. Is it a reasonable approach and/or is there a better one?
Ben Bimber2011-02-25 07:54Jon (LabKey DevOps)2015-04-28 22:01 LABKEY.Message.sendMessage and msgFrom TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
With LABKEY.Message.sendMessage you can specify 'msgFrom'. Is there any way for javascript code to figure out the site or project's official email? the one you set in the admin console that's used by all the other automated emails? it would be preferable not to hard encode an email in scripts.

thanks.
Ben Bimber2011-05-04 05:49Jon (LabKey DevOps)2015-04-28 22:01 labkey PIVOT syntax? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
is the labkey pivot syntax documented anywhere? i didnt see anything when i search the doc site for 'pivot' and the word pivot doesnt appear in any SQL files in the project.

i know i've seen 2 examples of it, one where the pivot columns were hard-coded and one where they came from a subselect, but i cant seem to find those now.

would it be possible to post it and/or add it to the doc? here's where i'd normally expect it:

https://www.labkey.org/wiki/home/Documentation/page.view?name=labkeySql

thanks.
Ben Bimber2011-06-03 09:32Jon (LabKey DevOps)2015-04-28 22:02 possible to write a SQL statement that searches current container plus child containers? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in labkey a query view can be given something like a container filter, hard coded in the SQL, which forces that query to return all results from the current folder plus children? here is the application:

one of our labs has a folder with workbooks. these workbooks store files. their system uses a master list, located in the parent folder of these workbooks. this list has a column called 'workbook', which is a pointer to the workbook itself.

what they want to do is something like:

SELECT * from expt_db e JOIN exp.datas d [from this folder plus all the child folders] on (e.workbook=d.container)

the point is to make a master list of files, joined to other metadata about the expt, contained in lists.expt_db. can such a thing be done?

if it cannot be done directly, one idea I had was to created a select query that is just 'select * from exp.datas', then change the default view to have a container filter that will show all folders. maybe if you join lists.expt_db to that it would accomplish the desired effect.

thanks for any help.
Ben Bimber2011-06-22 08:21Jon (LabKey DevOps)2015-04-28 22:02 potential bug related to LABKEY.Exp.Data.getContent() TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a lab using a custom assay. this assay overrides the upload with with the code from AssayUpload.js in the EHR module. the following happens:

1. there's a text area where the cut/paste TSV text
2. this is posted to assayFileUpload
3. the response is used to created a new LABKEY.Exp.Data() object
4. this object contains a property that is the path to the TSV file that was stored on the server by step 1
5. it calls LABKEY.Exp.Data.getContent() to return an object representing the content of that TSV file.

virtually all of the time this works fine. The core of this code has been in use for a long time, in both the SSP and VL modules. I attached an excel file that gives a weird result from getContent(). you'll note there's a column called CellNumber, which is a number. most of the time it is 1, but it can also be a decimal like 1.5. virtually all of the time, these files parse correctly. however, with the attached file it throws an error. you'll see the last 3 rows have a value of 1.5. when this file is returned by the server, instead of 1.5, that column shows up as 'null'. i've tried to reduce the row number, but it then parses correctly. if i throw a value of 1.5 on one of the earlier rows, it also parses correctly. other info:

1. if i look on the server, the file created by the post to assayFileUpload is correct. therefore the right data is being sent to the server and it's being saved correctly.
2. this is specific to the parsing or post-processing of that file

My one idea was that I think labkey approached TSV files by reading the first X number of rows, then trying to infer the data type. Could it be taking this file, reading the first X rows, assuming the type is integer and then getting an error when the last 3 are not? I'm at a loss to explain why else it would behave like this.

thanks for the help.
Ben Bimber2011-08-02 09:09Jon (LabKey DevOps)2015-04-28 22:02 can a guest use executeSql is they have read access to a folder? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am testing the labkey perl API. I switched the test to use issues.issues from labkey.org, instead of a query on wisconsin's server. i used issues.issues from /home/documentation and am running the API without providing a username. the call to selectRows() works fine.

However, when I try this:

my $sql = Labkey::Query::executeSql(
    -baseUrl => 'https://labkey.org/',
    -containerPath => 'home/Documentation/',
    -schemaName => 'issues',
    -sql => 'SELECT max(i.issueid) as id FROM issues.issues i',
    -debug => 1,
    -loginAsGuest => 1,
);

something is failing when parsing the response, although i havent fully dug into that yet. i think it might be redirecting and asking for authentication.

if guests have read access to a folder, do they also have the ability to run arbitrary SQL, or is there some other permission governing that?

thanks.
Ben Bimber2011-08-12 05:36Jon (LabKey DevOps)2015-04-28 22:02 Comment on Labkey store TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just tracked down an obscure bug related to saving records. In LABKEY.ext.Store, when a record is submitted to the server, a property called 'saveInProgress' is added to each client-side Ext record. This makes sense. However, when you call getChanges(), the method that builds the commands to send to the sever, the process looks like this:

-call getChanges(), which accepts an array of records as the argument
-the store iterates over these records and builds the object of commands to commit to the server
-if any of these records has saveInProgress=true, then it skips it. Fine behavior, except it does this silently. Therefore if you are in a situation where you try to commit X records, where some already have a transaction in progress, it will drop some of your records without warning. assuming the saving of the other records worked, it fires the commitcomplete event as if everything was normal.

there are ways to work around it, like listening for the beforecommit event and comparing the number of records you tried to save against the commands being sent to the server, but it seems like the store should provide something more verbose when it decides to change the intended plan.
dennisw2012-12-31 13:00Jon (LabKey DevOps)2015-04-28 22:07 Webparts without reportId TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

Since we have three servers (sometimes with different reportId's and different versions of LabKey), we were trying to figure out how to get an R report as a webpart within the participants detail page without having to specify the report id parameter. This works just fine in many cases:

            var imgRenderer = new LABKEY.WebPart
                    ({
                        partName: 'Report',
                        renderTo: 'dsaPanel',
                        frame: 'none',
                        success: dsaSuccess,
                        failure: dsaFail,
                        partConfig:
                        {
                            title: '',
                            schemaName: 'study',
                            queryName: dsaQueryName,
                            reportName: dsaReportName,
                            showSection: dsaShowSec,
                            'query.ParticipantId~eq' : participantId
                        }
                    }).render();

(dsaQueryName etc. are strings set at the beginning of the page for easy use)

Anyway, it's really convenient not to have to use the reportId parameter. It makes it a lot easier to just be able to move this js from one server to another. Hope it helps someone.
Ben Bimber2013-04-05 11:19Jon (LabKey DevOps)2015-04-28 22:07 possible to join a regular query to a parameterized query, applying params? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a fairly complicated parameterized query written in labkey sql. this query accepts 2 numeric parameters. There are 2 ways this query is used.

1) run directly by user, where the user inputs the params (working fine)

2) we have a second table where we have cached expected values for PTIDs. it would be really convenient to join this table to my parameterized query, in order to apply these default values to that query. i dont see any way that this would work though. is there any way to accomplish this?

The alternative is to duplicate my complicated SQL query into a parameterized one and a non-parameterized one. just trying to avoid that.

Thanks in advance for any help.
Leo Dashevskiy2013-07-19 18:56Jon (LabKey DevOps)2015-04-28 22:08 While importing FlowJo workspaces, Labkey server gives the following errors TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
for one workspace it's:

Error java.lang.OutOfMemoryError: Java heap space


for another one it's:

java.lang.OutOfMemoryError: GC overhead limit exceeded


I should note that this has not happened before at all with any other workspaces and moreover I have previously already successfully imported these same 2 FlowJo workspaces.

Thanks.
-Leo
Anthony Corbett2013-10-29 08:36Jon (LabKey DevOps)2015-04-28 22:08 Moving an Assay Container's file root and updating Data file pointers TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have an assay container with some assay designs which already have imported runs. I'm now trying to move the file root (at the folder level) to another location. I tested this and it seems to move the root and create a new @files directory in the new location, however, none of the files were copied from the old location to the new.

If I do manually move the files, will I then need to update the file pointers in the exp.Data table?

Is there a better way to migrate this container and its data to a new file system location and still have the database in a consistent state (file pointers are not orphaned)?

Thanks in advance,

Anthony
Will Holtz2015-01-27 14:05Jon (LabKey DevOps)2015-01-28 09:42 PIVOT fails when two elements of IN list only differ by letter case TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The following query fails with the error message, "Error on line 5: Duplicate pivot column name: Foo."
SELECT
    MAX(userid) as id, displayname
FROM Core.users
GROUP BY displayname
PIVOT id BY displayname IN ('foo', 'Foo')

Without the IN clause it works fine. In modules/query/src/org/labkey/query/sql/QueryPivot.java, the pivotValue variable is of type CaseInsensitiveMapWrapper. Is the case insensitivity needed for some reason? I've worked around this in my project, but wanted to report it.

-Will
james welch2015-02-26 09:18Jon (LabKey DevOps)2015-02-26 15:28 Merge option not merging in ETL TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi - I'm new to LabKey - it's a great tool, but I've come across a problem I hope someone can help me with.

I'm trying to create an example ETL that sucks data out of an external PostgresQL table and copies it into a list.
My ETL xml file is defined as follows.

<code>
<?xml version="1.0" encoding="UTF-8"?>
<etl xmlns="http://labkey.org/etl/xml">
    <name>Example: Cities to Labkey List</name>
    <transforms>
        <transform id="transfer1">
            <description>description</description>
            <source schemaName="cities" queryName="city"/>
            <destination schemaName="lists" queryName="MyList" targetOption="merge"/>
        </transform>
    </transforms>
    <incrementalFilter className="ModifiedSinceFilterStrategy" timestampColumnName="updated" />
    <schedule><poll interval="2m" /></schedule>
</etl>
</code>

This works for inserting newly added data. But when I modify a pre-existing row, the ETL fails with the following error:

ERROR: duplicate key value violates unique constraint "c2d22_mylist_pk"
...
Detail: Key (id)=(30) already exists.
Where: SQL statement "INSERT INTO list.c2d22_mylist (...)

It looks as though the filter is trying to INSERT on a duplicate key, rather than UPDATE as intended.
Am I doing something wrong, or have I misunderstood the documentation?

Many thanks.
Ole2015-05-22 04:49Jon (LabKey DevOps)2015-07-14 16:29 Complex Query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I do have a question about the posibility of simplifying my complex queries i'm using at the moment.
I'm using rather long queries to collect and calculate data from different (list) tables. These lists contain different values all assigned to identical primary keys. For example

table 1 (measured data):
| labID (primary key)| element1_concentration| element2_concentration |

table 2 (data needed for calculation):
| labID (primary key) | weight | volume |

table 3 (sampletable):
| labID (primary key) | description | label |

My query then calculates new values based on the entries in all of the tables, resulting in a new one:

result table:
| labID (primary key) | label | calculated_element1_concentration | calculated_element2_concentration |

At the moment i have to "manually" calculate each of the elemt1, element2 ... concentrations, resulting in a very long query and more or less the same code over and over again. It would be really nice to cycle through all the required elements 1, 2 ... using a loop, so that my query only contains one calculation function.
Is this possible using the given sql-language in labkey? Or is my understanding of databases and sql just to limited to get it the right way?

Thank you very much
Ole
alx dobre2015-08-25 07:49Jon (LabKey DevOps)2015-10-22 22:52 How to export a folder with linked schemas TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

When I try to export the folder structure via Admin-> Folder -> Management -> Export, I can export folders just fine except the ones where I have linked schemas defined.

When I try to export such a folder I get the following error message:
Could not find schema <linked schema name> in <folder name I was trying to export>for user null with query <query name based on linked schema>.

I searched around for the meaning of the above error message and I found this issue referencing it but it does not help with my troubles:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=23317

So how can I export a folder with queries that are based on linked schemas please?
laurapas2015-10-12 10:58Jon (LabKey DevOps)2015-10-12 15:05 Help with .netrc on Linux and RLabkey data access TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We're trying to set up a .netrc on a Linux system and a simple test (see below) shows that it's not working. Is there anything we need to do on the LabKey server side to enable this? I also posted this

restibco@rescomp5007>pwd
/gne/home/restibco

restibco@rescomp5007>cat .netrc
machine labkey-test.roche.com login OMNIBD01 xxxxxx
machine labkey-dev.roche.com login OMNIBD01 xxxxxx


restibco@rescomp5007>ftp labkey-dev.roche.com
ftp: connect: Connection refused
Will Holtz2016-01-10 08:13Jon (LabKey DevOps)2016-02-28 18:58 Bug report: LABKEY.QueryWebPart() dropping filter TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Here are the steps to reproduce this bug:
1) Create a LABKEY.QueryWebPart():

<div id='WebPartBugDiv'/>
Ext4.onReady(function() {
    var qwp1 = new LABKEY.QueryWebPart({
        renderTo: 'WebPartBugDiv',
        schemaName: 'core',
        queryName: 'users'
    });
});

2) click on the header row of the email column and select 'Filter...' from the drop down menu.
3) Within the single dialog box, add two filters of the same filter type: contains 'foo' and contains 'bar'
4) click ok to close the filter dialog
5) note that filter status displayed under the button bar only lists "(Email CONTAINS bar)" and not "(Email CONTAINS foo) and (Email CONTAINS bar)"

This bug appears to be limited to the LABKEY.QueryWebPart(), as grids from java modules do not display this behavior. Also, repeatedly adding a single filter via the dialog box works, so it is something about adding two filters within a single dialog box. And adding two filters of different types within a single dialog box works.

-Will
Will Holtz2016-10-04 09:14Jon (LabKey DevOps)2016-10-04 13:59 Grid views and alternate format strings TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a grid and one of the columns in that grid I would like to have the number of decimal places displayed to be dependent on the grid view. So with grid view A, the format string is ###.0 and with grid view B, the format string is ###.00. I can't find a way to do this in a .qview.xml file, but perhaps I am missing something in my reading of the labkey xsd. Is this possible?

I can make a new query (SELECT * FROM existingQuery) and set a different format string in the .query.xml file for the new query. But then I have two queries instead of two views.

thanks,

-Will
Anthony Corbett2017-03-26 14:17Jon (LabKey DevOps)2017-04-04 13:11 Sample Set property lookup to core.Container TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have two projects setup in a new 17.1 instance, one is called /CoreLab and the other is called /Projects. The /Projects project contains workbook containers as its direct children. These workbooks contain samples submitted by end users. Once samples are entered into the project's study they "submitted" to the CoreLab container by inserted new samples into a sample set in /CoreLab called AccessionedSamples. This sample set has these fields:

Name: a Name Expression set to S${batchRandomId}.${yearlySampleCount}
SpecimenId: The original SpecimenID in the project (workbook container)
Project: The entityId of the project (workbook container) in the /Projects project.

When trying to make the sample set's Project field a lookup to core.Container by setting the lookup as follows:
    Folder: /Projects
    Schema: core
    Table: Container

It doesn't correctly do the lookup, but puts angle brackets around the entityId (e.g <eecab1a5-f241-1034-a3ab-97dc5b50629f>)

I can, however, successfully setup a list in /CoreLab which contains a field called Project which is the same lookup to /Projects' core.Container.
marcia hon2018-03-07 10:20Jon (LabKey DevOps)2018-03-09 16:17 Grouping in Pivot Query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have a query, that requires a pivot. However, I am unable to get the group by to work appropriately. My query is:
...
'CYP1A2_rs762551'
)
AND D.LabID<100
GROUP BY D.SeriesName, D.LabID, D.CollaboratorSampleID, D.Sex, G.Locus, G.Allele1, G.Allele2

PIVOT Alleles BY Locus

ORDER BY SeriesName, LabID, CollaboratorSampleID, Sex

...


I would like Group by to work for : D.SeriesName, D.LabID, D.CollaboratorSampleID, D.Sex

Not to include Locus, and Allele1/2

I look forward for your insight.
Jon (LabKey DevOps)2022-02-24 17:03Jon (LabKey DevOps)2022-02-24 17:03 Maintenance Notice: artifactory.labkey.com upgrade for Monday, February 28th 2022 @ 7am PST TEXT_WITH_LINKSActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
An upgrade of https://artifactory.labkey.com will occur on Monday, Feb 28th 2022 @ 7am PST

The estimated downtime will be approximately one hour. The TeamCity queue will be paused during this time.

Please plan accordingly.
Jon (LabKey DevOps)2022-03-29 19:55Jon (LabKey DevOps)2022-03-29 21:16 Maintenance Notice - Update of labkey.org for Monday, March 29th 2022 @ 9pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
An upgrade of labkey.org will occur this evening at 9pm PST.

The site is expected to be down for no more than 30 minutes.

Please save your work before this time.

We apologize for any inconvenience this may cause.
Jon (LabKey DevOps)2022-07-15 10:57Jon (LabKey DevOps)2022-07-15 23:35 Maintenance Notice - Upgrade of labkey.org for Friday, July 15th 2022 @ 10pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 10pm Pacific Time for an upgrade to LabKey 22.7

The site will be offline for approximately one hour.

Please save your work before this time.
Jon (LabKey DevOps)2022-09-20 15:19Jon (LabKey DevOps)2022-09-20 15:19 Maintenance Notice - Update of labkey.org for Tuesday, September 20th 2022 @ 5pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 5pm Pacific Time for an update

The site will be offline for approximately 15 minutes.

Please save your work before this time.
Jon (LabKey DevOps)2023-03-09 18:47Jon (LabKey DevOps)2023-03-09 18:47 Maintenance Notice - Upgrade of LabKey.org for Thursday, March 9th 2023 @ 9:30pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 9:30pm Pacific Time for an upgrade to LabKey 23.3

The site will be offline for approximately one hour.

Please save your work before this time.
Jon (LabKey DevOps)2023-05-11 14:15Jon (LabKey DevOps)2023-05-11 22:10 Maintenance Notice - Upgrade of LabKey.org for Thursday, May 11th 2023 @ 9:00pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 9:00pm Pacific Time for an upgrade to LabKey 23.5

The site will be offline for approximately one hour.

Please save your work before this time.
jrue@novonordisk.com2007-05-03 12:50Jon (LabKey DevOps)2015-04-24 15:48 LDAP SASL authentication extension2007-06-03 00:00TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I was trying to set our Labkey server to use LDAP but ran into authentication problems with our Active Directory configuration. Our Active Directory servers are not configured to allow "simple" security authentication. They require one of the MD5 SASL mechanisms. I am sure it would be a useful addition to allow the Labkey LDAP settings the option of using one of the SASL mechanisms in addition to the "simple" one.

So I spent a little time yesterday adding in this capability in the form of a single checkbox. This may or may not be the best solution but it does offer a very simple way to add SASL mechanisms. Toggling the checkbox changes the value used in the LDAP Context.SECURITY_AUTHENTICATION between "simple" and "DIGEST-MD5 CRAM-MD5 GSSAPI". The three SASL mechanisms (digest, cram, and gss) are according to the JNDI documentation the three currently supported mechanisms. Putting all three in a single list should cover all the bases as if the first mechanism in the list is not supported it tries the second and so on. If none of the mechanisms are supported an AuthenticationNotSupportedException is thrown which is caught by the existing code.

Other options are using a text input and requiring that the specific SASL mechanism be input directly. This is more configurable but requires the users know the options available and the exact string to use. The other option is to simply alter the existing Context.SECURITY_AUTHENTICATION string to "DIGEST-MD5 CRAM-MD5 GSSAPI simple". This would be a catch-all type setup but might obscure the details of how LDAP is working too much for some users.

Anyway if you think this would be a useful addition I can run the DRT and send in an svndiff log. It was a pretty straightforward change but one I need to have in order to use LDAP.

Thanks,
Jon
kanchink@mail.nih.gov2007-05-10 07:51Jon (LabKey DevOps)2015-04-28 21:51 CPAS 2.0 Xar.xml XSD TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I downloaded the sample xar.xml file for CPAS 2.0. The XSD location is incorrect.
I am currently working at the Center for Bioinformatics, National Cancer Institute, MD. Currently involved in a project that will server (partly) as a Xar.xml authoring tool. Towards this end, it will be highly beneficial for me to take a look at the XSD for xar.xml in cpas 2.0. When i look at the website, I can only find XSD's for upto v 1.7
Thanks - Kris
wnels2@uky.edu2008-04-14 03:27Jon (LabKey DevOps)2015-04-28 21:52 css TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I would like to add and/or modify some styles in the style sheet.
 For example I'd like gwt-textArea to include white-space:nowrap and add new green text style for messages.

I found the master at /org/labkey/core/stylesheet.jsp? but this is always called with a revision #.

Can you tell me how this works and the best way to make changes?

Thanks,
Bill
Ben Bimber2010-02-22 13:59Jon (LabKey DevOps)2015-04-28 21:55 problem with specific webpart/html filenames? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am creating a number of HTML views and .webpart.xml files. Usually these work just fine to add content, but there's specific cases that cause an error. The behavior is this:

-The name of the desired webpart will appear in the dropdown menu
-When I try to add it to a portal page, the page refreshes w/o errors (normal behavior), but no part is added. No record is inserted in the 'portal' table in postgres

The parameter that causes the import to stop working is 'title' in webpart.xml. See this trio of files:

File: wnprcUnits.html:

<html>Hello world</html>

File: wnprcUnits.view.xml:

<view xmlns="http://labkey.org/data/xml/view"
       title="WNPRC Units">
</view>

File: wnprcUnits.webpart.xml

<webpart xmlns="http://labkey.org/data/xml/webpart"
         title="wnprcUnits">
   <view name="wnprcUnits"/>
</webpart>

With these files as written, the webpart adds just fine. However, if I change the title param of the webpart.xml file to title="WNPRC Units", it is no longer added. I have changed the title successfully in other cases, but in this case and a handful of others it does not work.
Ben Bimber2010-06-29 05:30Jon (LabKey DevOps)2015-04-28 21:59 question on configuring development machine TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I recently installed win7 64-bit and had to reconfigure labkey on my development machine. I have labkey running, but have 2 questions:

1. when i start debug in intellij, the console gives this notice:

INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jdk1.6.0_20\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\SlikSvn\bin\;C:\Program Files (x86)\QuickTime\QTSystem\;c:\program files (x86)\jetbrains\intellij idea 94.192\jre\jre\bin

The labkey documentation below does not say anything about adding tomcat to my path, should I? Doc here:
https://www.labkey.org/wiki/home/Documentation/page.view?name=build

2. Our production server runs 10.1. On my machine I built from the 10.2 branch. I used pg_dump to make a copy of the production server and restore the labkey, postgres and template1 databases from the production server onto my machine. I realize they are different versions, but this has worked once or twice before. I am able to start labkey on my machine and the pages look normal. However, queries are not loading. If I look in pg_admin, stuff like this is running:

    -- <QueryServiceImpl.getSelectSQL()>
    SELECT Key, ReportName, Report_Category, ReportType, ReportTitle, Visible, ContainerPath, Schema, QueryName, View, Report, DateFieldName, ReportCategory1, ReportCategory
    FROM (
    SELECT
    reports.key AS Key,
    CAST   

and this:

    -- <QueryServiceImpl.getSelectSQL()>
    SELECT *
    FROM (
    SELECT
    reports.key AS Key,
    CAST((SELECT StringValue FROM exp.ObjectProperty WHERE exp.ObjectProperty.PropertyId = 2041 AND exp.ObjectProperty.ObjectId = reports.objectid) AS VARCHAR(4000)) AS    

I think pg_admin might be cropping the SQL in what is displays. I assume these are the normal queries associated with loading a list? This list only has about 30 rows and this has been going for several hours, which just doesnt seem right. Is it possible something didn't copy properly when i did the pg_dump/restore? Are there troubleshooting steps I can take? Thanks for the help.
Ben Bimber2010-06-30 07:31Jon (LabKey DevOps)2015-04-28 21:59 questions on calculated / wrapped fields TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a number of study datasets. Each dataset has a date field. We also have a 'demographics' dataset that contains the birthday of each animal. For pretty much every dataset, it would be useful to have a calculated field called 'age at the time', which is a simple SQL expression taking the date field minus birthday.

LabKey supports the concept of aliasing a column. To date, I have used this to wrap either the Id or ObjectId columns and created a lookup to some new query. This query contained whatever calculated fields I wanted. Maybe I'm missing something, but I'm not entirely sure what other purpose aliasing a column would serve. This method sorta works, but is a little cumbersome (this behaves a little weird in the UI, which i can write about if you want), especially when all we want is to add a simple calculation.

Is there a more direct mechanism to add a calculated SQL expression as a column to a table in labkey?
Ben Bimber2010-07-09 07:51Jon (LabKey DevOps)2015-04-28 21:59 embedding a QWP and URL filters/sorts TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have replaced the default runs.html and results.html pages in an assay with custom pages. These custom pages load a QWP with the corresponding assay domain query. On the run page, each run name has a URL that points to the result page, filtered on that runId:

../assayResults.view?rowId=43&MHC_SSP_Data.Run/RowId~eq=40

If I follow this url, it loads the custom results.html page. This page loads a QWP of the results domain. The problem is that when loading a QWP, it does not by default look in the URL for filters. What's the most robust way to handle this?

One option is to put code on my page that looks for filters/sorts in the URL and adds them to the QWP when loading. It'll work, but I dont think filters added in this way are removable (there's a bug on 'clear all'). In this specific instance, I know what URL params to expect and I know what QWP they will apply to. However, if this same idea comes up in another context, this won't work so well. What if I have two QWPs embedded in a page? Is there a more robust solution? Is there any code in the API or QWP that I can take advantage of? is there any javascript code to parse filters out of the URL? does the QWP have any features I dont know about that might assist here? thanks for the help.
Ben Bimber2010-11-01 07:01Jon (LabKey DevOps)2015-04-28 22:00 behavior of 'next' link on QWPs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I received an interesting comment from a user:

When reading chronological records in a QWP, the user tends to start at the top, read down the grid, then hit next. When you hit next, the QWP reloads w/o refreshing the page. After the reload, the cursor is still at the bottom of the QWP, not the top (where they probably want to be).

While this is only a minor inconvenience, would you guys consider changing the behavior of the 'next' and 'previous' links so they jumped the page to the top of the QWP?
Ben Bimber2011-01-21 06:57Jon (LabKey DevOps)2015-04-28 22:01 Genetic Details Page / Deciphering Audit trail TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The EHR has datasets, lists and 2 external schemas exposed through the module. The hard tables don't have a default details page and I'd like to make a generic one. Datasets also dont have a default details page, but we've been using detailsQueryRow.view, which is a pretty generic page I think Kevin made.

There are cases where we need to supplement the details page on a dataset with other info. For example, the detail page might show the usual table of the row's values, then load one or more QWPs showing records from other tables.

The other requirement I'd like to add to all our details pages that is not currently present is a link to show the audit history of that record.

Wherever possible, I'd like to take advantage of functionality in the core, rather than write our own. The questions are:

1. I can probably make an HTML page where I make an Ext AJAX request to load detailsQueryRow.view into a DIV, then add other QWPs below. That is the only core labkey functionality I can find to take advantage of to help with the details pages.

2. Is there any sort of central way to obtain an audit trail? I barely see these exposed anywhere in labkey, so if not, could anyone point me to how I might construct the link to provide the audit history for:

-dataset record
-list record
-hard table record (these might not even be audited)

3. is there anything i'm missing that would help this process?

Thanks for the help.
Ben Bimber2011-03-17 14:00Jon (LabKey DevOps)2015-04-28 22:01 show wiki page to guests without wikiTOC showing up? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a wiki page here:

https://xnight.primate.wisc.edu:8443/labkey/wiki/WNPRC/WNPRC_Units/Research_Services/Assay_Services/Public/page.view?name=Assay%20Services%20Description

the permissions on that folder should allow guests to read. however, when this page shows, there's the right-hand 'search' and wikiTOC webparts. any way to get rid of those? can i render this wiki page through some other mechanism that will show just the page without the rest? thanks.
trent2011-09-27 19:17Jon (LabKey DevOps)2015-04-28 22:02 Whats Up With the Date Filter TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Currently having issues with one of my queries, simple select date,count(*) from list group by date. But despite there being two identical rows, it doesn't count accordingly. I tried select distinct without the count, but still places them on differing rows... so not sure why that is. I tried testing by creating a separate list, but the same doesn't occur. Im inserting the date value via JS so maybe that's causing the issue. date_received: new Date() ; I think maybe i should convert the date object to a string value before inserting. (thats the only possible issue i can think of)

Anyway, that's not the point of this thread.

When I filter by a date, it seems to apply the date for date-1.

1. Create list with date field
2. populate data
3. view data
4. click date column -> filter
5. specify date using date picker (typing manually has the same affect)
(This sets a date in a different format than the labkey default, which imo, is confusing in itself for users)
i.e. ill pick September 14th, 2011
6. Click OK.

Date filter becomes: Filter: (DATE(date) = 2011-09-13)

Is this expected behavior?
Ben Bimber2013-04-09 12:34Jon (LabKey DevOps)2015-04-28 22:07 query difference between servers? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a custom SQL query that includes this field:

group_concat(distinct t.rooms, chr(10))

it's an aggregate that concatenates strings with a newline. when i display this query in a DataRegion, it renders right. on my local machine (sqlserver, tomcat6, running build from onprc12.3 branch), when I query it using the JS API, the value contains the newline character.

however, when I run this on our production server (sqlserver, tomcat6, linux box, identical build), there is no newline character in the response from the JS API. Rendering in a DataRegion looks fine. It appears that something involving the generation of the JSON, or delivering it to the browser, is eliminating that newline.

can anyone suggest any troubleshooting steps? thanks in advance.
bront@kcr.uky.edu2013-05-15 13:58Jon (LabKey DevOps)2015-04-28 22:07 Javascript app and wiki toolbar TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am working on an application using the LabKey Javascript API embedded in wiki pages.

The group of users using the app are set as Editors so that they can insert/update data in the database (any lesser permissions and they get an "unauthorized" error).

I would, however, like hide the edit/new/manage toolbar from them.

Is this possible? Or do I have the permissions set incorrectly?

Many thanks,

b
lfraj2013-05-22 00:27Jon (LabKey DevOps)2015-04-28 22:07 Java api: uploading files to a list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

We are using an external tool to view and modify lists in labkey. We have lists with some columns of Attachment type (file type). How can we modify the rows of the lists from the external application using Java Api? The method UpdateRowsCommand only supports string type. We would like to upload files to certains rows in these lists of labkey.

We are trying to use UpdateRowsCommand:

UpdateRowsCommand cmdUpd = new UpdateRowsCommand("lists", "miLista");
HashMap<String,Object> row = new HashMap<String,Object>();
row.put("Volume", "file:/C:/prueba.txt");
cmdUpd.addRow(row);
SaveRowsResponse response = cmdUpd.execute(cn, project);


But we get an error from Labkey:

ERROR ExceptionUtil 2013-05-22 13:35:22,121 http-8080-17 : Exception detected and logged to mothership:
java.lang.ClassCastException: java.io.File cannot be cast to java.lang.String
    at org.labkey.api.exp.ObjectProperty.init(ObjectProperty.java:169)
    at org.labkey.api.exp.ObjectProperty.<init>(ObjectProperty.java:125)
    at org.labkey.list.model.ListItemImpl.setProperty(ListItemImpl.java:425)
    at org.labkey.list.model.ListQueryUpdateService.populateBean(ListQueryUpdateService.java:241)
    at org.labkey.list.model.ListQueryUpdateService.updateRow(ListQueryUpdateService.java:142)
    at org.labkey.api.query.AbstractQueryUpdateService.updateRows(AbstractQueryUpdateService.java:461)
    at org.labkey.query.controllers.QueryController$CommandType$3.saveRows(QueryController.java:2837)
    at org.labkey.query.controllers.QueryController$BaseSaveRowsAction.executeJson(QueryController.java:2986)
    at org.labkey.query.controllers.QueryController$UpdateRowsAction.execute(QueryController.java:3039)
    at org.labkey.query.controllers.QueryController$UpdateRowsAction.execute(QueryController.java:3032)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:152)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:87)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:177)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:354)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:928)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:806)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:171)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:300)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)


Thank you for your help.
alx dobre2015-09-17 04:21Jon (LabKey DevOps)2015-09-21 12:51 Create index on assay columns to improve query performance TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I am building queries that span across several assay tables. The queries are getting somewhat complex using 5 to 7 table joins.
These queries take up to 60 s to run with only a few hundred rows in the tables involved, they need to work for a few hundred thousand.

So I am looking for way to improve query performance.

Please note the queries are written within labkey.

I looked at the table inside the actual postgres database behind labkey that stores the assay data. I think it can be improved by adding some indexes.

The broader question is: How do you go about increasing the performance of labkey queries?

The specific question is: Is it a viable approach to go into the underlying postgres database and create indexes on the assay tables?
eva pujadas2016-04-15 02:15Jon (LabKey DevOps)2016-04-15 12:07 File Set directories not showing in Files web part TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey team,

We are testing the "File Sets" feature to be able to access an existing directory containing files and subdirectories from our PROD LabKey instance.
When creating a File Set in the following way:
 from the "Files" Web part --> customize --> Configure file roots --> ADD FILE SET
the files contained in the selected File Set Path show in the Files web part, but the folders do not.

About creating, one can create files and folders from the Files web part, and they get created in the file system, but again, only the files show (not the folders).

Do you have any hints why that is?

Thank you very much in advance for your help,
Eva
Rolf Steiner2016-04-28 01:55Jon (LabKey DevOps)2016-04-28 11:52 LabKey version 16.x build error in IntellyJ TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear team

I^m trying to build the LanKey source in IJ and get th following error:

Information:Using javac 1.8.0_91 to compile java sources
Information:java: Errors occurred while compiling module 'Dataintegration'
Information:28.04.2016 10:45 - Compilation completed with 6 errors and 0 warnings in 4s 977ms
D:\dev\LabKey\server\modules\dataintegration\src\org\labkey\di\filters\FilterStrategyFactoryImpl.java
Error:(26, 74) java: package FilterStrategy does not exist
Error:(28, 21) java: cannot find symbol
  symbol: class DeletedRowsSource
  location: class org.labkey.di.filters.FilterStrategyFactoryImpl
Error:(30, 48) java: cannot find symbol
  symbol: class FilterType
  location: class org.labkey.di.filters.FilterStrategyFactoryImpl
Error:(37, 53) java: cannot find symbol
  symbol: class DeletedRowsSourceObjectType
  location: class org.labkey.di.filters.FilterStrategyFactoryImpl
Error:(37, 13) java: cannot find symbol
  symbol: class DeletedRowsSource
  location: class org.labkey.di.filters.FilterStrategyFactoryImpl
Error:(39, 20) java: cannot find symbol
  symbol: class DeletedRowsSource
  location: class org.labkey.di.filters.FilterStrategyFactoryImpl

This two import statements are undefined:
import org.labkey.etl.xml.DeletedRowsSourceObjectType;
import org.labkey.etl.xml.FilterType;

Can you tell me where the org.labkey.etl package can be found?

Thanks for your support.

regardas, Rolf
balter2016-12-08 10:14Jon (LabKey DevOps)2016-12-11 23:16 R knitr reports throwing "LC_CTYPE failed" error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Status: Active
 
I have R configured as in https://www.labkey.org/home/Documentation/wiki-page.view?name=knitr#markdown2. My R is installed with conda in /opt/miniconda3/bin.

:/# R --version
/opt/miniconda3/bin/R: 12: [: Linux: unexpected operator
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"

:/# conda list | grep knitr
r-knitr 1.12.3 0 bioconda

When I try to view an knitr report, I get

Error executing command

javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
/opt/miniconda3/bin/R: 12: [: Linux: unexpected operator
/opt/miniconda3/lib/R/bin/R: 12: [: Linux: unexpected operator
During startup - Warning message:
Setting LC_CTYPE failed, using "C"
Error: unexpected symbol in "Taken from"
Execution halted

UPDATE:
------
I tried running it with knitr options set to "none", and "a=10" being the only command in the file. This time I get:

/opt/miniconda3/bin/R: 12: [: Linux: unexpected operator
/opt/miniconda3/lib/R/bin/R: 12: [: Linux: unexpected operator
During startup - Warning message:
Setting LC_CTYPE failed, using "C"
> proc.time()
   user system elapsed
  0.316 0.076 0.358

So, the LC_CTYPE seems to be the main error?

However, I CAN set LC_CTYPE at the R console as the labkey user.

> Sys.getenv("HOME")
[1] "/home/labkey"
> Sys.setlocale("LC_CTYPE","C")
[1] "C"
> Sys.getlocale()
[1] "LC_CTYPE=C;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C"
>
gkericks2017-02-06 10:18Jon (LabKey DevOps)2017-02-13 16:13 Integrating with an external service TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

We are planning to use Labkey Server to facilitate reporting needs for several of our researchers. We currently use an external service to collect and store our client's data. This service stores data in a relational database and comes with an API for accessing the stored data. I am currently trying to figure out the best way to automate Labkey integration with our data storage and would like some advice on what feature of Labkey would work best to facilitate automated integration. I can write a script to extract data from the external service fairly easily. The API is available for most major programming languages, so choice of scripting language is not that important (with the notable exception of SQL).

What I would ideally want to be able to do is use an existing Labkey feature to schedule the running of the script and put the output into a Labkey dataset. I've narrowed it down to a few Labkey features that might be able to help, but am not sure which of these is best suited to my task:

 1) ETL module: The ETL module seems to capture the essence of what I want to achieve except that the "Extract" feature appears to be limited to SQL queries and I would need to invoke a script in a different language (R or python or Java etc.).
 2) Develop a custom module: I am aware that Labkey allows developers to make custom modules for particular purposes. This seems powerful, however I feel like I would be reinventing the wheel if I went this approach and would like to know what exists already that I am missing.
 3) Labkey pipelines: This is a way to run a series of scripts. Does anyone know if these can be used to load data from external sources on a particular schedule?
 4) External Schemas (https://www.labkey.org/home/Documentation/wiki-page.view?name=externalSchemas): This appears to require direct access to the relational database that our external service uses to store the data. It might be possible for me to expose those tables to Labkey, although for reasons that should be obvious I would like to avoid doing that.

Finally, it is in my capability to set up a service independent of Labkey that sends data to Labkey via its API. I would prefer to use a Labkey feature if possible (mostly to keep Labkey related code internal to the Labkey server) but will do it this way if there is nothing within Labkey that fits my use case.

Thank you and feel free to reply with some questions if anything I wrote is unclear.
Matt V2017-09-01 11:28Jon (LabKey DevOps)2017-09-18 14:00 Customizing a button bar via java TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to customize a button bar for my site's datasets using a java customizer. I've added that definition to each dataset's query.xml: <javaCustomizer>org.labkey.bcc.query.MyCustomizer</javaCustomizer>. The goal is to hide and/or rename some of the standard buttons. However, when I getItems() from the buttonBarConfig, the standard buttons are not returned. I can see them in the ButtonBar class when debugging the site and loading a dataset page. That is, _elementList seems to have all the standard buttons in debug, but that version of _elementList isn't what's returned in my customizer.

A stripped down version of the code with some things I was trying looks like:

public class MyCustomizer extends AbstractTableCustomizer
{
     if (ti instanceof AbstractTableInfo)
        {
            AbstractTableInfo ati = (AbstractTableInfo)ti;

            customizeButtonBar(ati);
        }
    }
    private void customizeButtonBar(AbstractTableInfo ti) {
        ButtonBarConfig buttonBarCfg = ti.getButtonBarConfig();
        buttonBarCfg.setIncludeStandardButtons(false);

        Set<String> hiddenStandardButtons = buttonBarCfg.getHiddenStandardButtons();

        List<ButtonConfig> buttons = buttonBarCfg.getItems();
        List<ButtonConfigFactory> queryButtons = LDKService.get().getQueryButtons(ti);

        buttonBarCfg.setItems(buttons);
        ti.setButtonBarConfig(buttonBarCfg);
    }
}

Due to the large number of datasets, I'm hesitant to rely on XML customizations. Any change would have to be repeated across a significant number of files. It's easier and more sustainable to add the customizer to each query when adding new datasets and then control the button configs in a single java class.

Is there a way outside of the XML that I can achieve this without modifying the labkey core code?
Alternatively, is there a way to use XInclude (https://www.xml.com/pub/a/2002/07/31/xinclude.html) to import the buttonbarconfig from another xml file? Tried that as well to no avail.

Thanks!
marcia hon2018-02-21 09:22Jon (LabKey DevOps)2018-02-22 12:03 Creating a Query with data from different schemas TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

Is it possible to do a query with data from different schemas? For example, one is from Assay and the other is from Study.

How do you do this?

Thanks,
Marcia
marcia hon2018-03-07 06:52Jon (LabKey DevOps)2018-03-07 10:52 Queries in Postgres TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I created queries in Labkey.

Where in Postgres are these queries located?

Thanks,
Marcia
marcia hon2018-03-08 08:27Jon (LabKey DevOps)2018-03-09 16:05 RLabkey API Performance TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

From our experience, RLabkey API Performance is very slow.

We have a query which uploading directly to Postgres takes 5 minutes... whereas via RLabkey API it takes days.

Please let us know what is wrong and how to fix this.

Thanks
Marcia
slangley@scharp.org2008-05-16 13:29Jon (LabKey DevOps)2015-04-28 21:52 Dependency Injection for Module Initialization? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a way that I can use Spring-like dependency injection for the initialization of a custom module I develop for a LabKey server?

Maybe something like putting <beans> <bean> </bean> </beans> tags in the module's schema xml file?

Why would I want to do this?
  My own familiarity, unit-testability, code-reusability, and ease of integrating code I've already written for a Spring environment.
wnels2@uky.edu2009-04-15 06:26Jon (LabKey DevOps)2015-04-28 21:53  table column Container TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the demo module there is a "Container ENTITYID NOT NULL" column in the example table. It is included in the query filter when ever this table is queried. This does not seem to be universal across all of the modules. What are the best practices and why?

Thanks,
Bill
wnels2@uky.edu2009-12-06 02:32Jon (LabKey DevOps)2015-04-28 21:54 PTMs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm running searches with a lot of PTMs and ran out Labkey's PTM symbols. I altered the ms2.modifications table's symbol column from 1 to 10 chars and I am inserting the string "(<delta mass>)" instead of a symbol. This appears to be okay except only the first character - the open paren - shows up next to the modified amino acid in the peptide reports. Can you please help me locate the class that renders the peptide on the report?
Thanks,
Bill
Lili2010-05-24 13:13Jon (LabKey DevOps)2015-04-28 21:59 Java Logging TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
How can I use logger to debug the "core" module or other java code? I tried both log4j way and System.out.print, neither writes anything into labkey.log under Tomcat. Do I need to create a log4j.properties somewhere or do I need to turn on log4j somehow? Thanks.
Ben Bimber2010-06-09 05:11Jon (LabKey DevOps)2015-04-28 21:59 possible to remove QC state from default view on tables? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we recently added QC state to our study. by default users can only see public data. however, a QC state column has been added to every table, taking up a lot of real estate. can we get rid of this column without needing to define a default view for every single dataset?
Ben Bimber2010-06-22 13:09Jon (LabKey DevOps)2015-04-28 21:59 Attempt to copy folder from one project to another resulted in data loss TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We had a folder in one project. The folder had 3 subfolders. Between them, they contained a bunch of wiki pages, a couple queries and a few moderate sized lists. I copied this top folder from one project to a different project. It took a little while, but all the wiki/query info transferred. Our lists were created, including the correct number of records; however their definition lacked everything but the key field. To say another way, we ended up with lists of the correct length, but only 1 column. I am not quite sure what happened here. I need to restore what I can, so I cant do a lot of troubleshooting, but if anyone replies soon I might be able to look at something if it would help.
Ben Bimber2010-07-05 17:51Jon (LabKey DevOps)2015-04-28 21:59 possible to add new lookups to an assay? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i have an assay with a file-based definition. when i created the assay, i did not have lookups defined for several of the fields. i would like to add lookups. can i do this without deleting/re-creating the assay? if i edit the assay definition, I can change lots of field, but not lookups. is that how it's supposed to work? does it have something to do with using a file-based assay definition? thanks.
Ben Bimber2010-07-07 06:05Jon (LabKey DevOps)2015-04-28 21:59 study date field and format string? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
each dataset in a study has a date field (denoted by this in datasets_metadata.xml: <propertyURI>http://cpas.labkey.com/Study#VisitDate</propertyURI>).

there is a study-wide date format string; however, we'd like to set this differently on a per dataset basis. I originally tried to add a <formatString> param to the tables in datasets_metadata.xml. This will change the date format for any date field, except those with the propertURI above. I believe I was told that when you add a propertyURI, all other metadata you supply in datasets_metadata.xml is ignored? Is that what's happening here? I figured out that I can override the format string table-by-table by adding query metadata.

I already had to create one XML file per dataset anyway since I needed to add a <tableURL> to each dataset, so adding date format wasnt too big a deal. I actually think moving a lot of the metadata from datasets_metadata into each dataset's metadata XML file would make sense. Is there any reason why this is not a good idea?
Ben Bimber2010-10-06 07:17Jon (LabKey DevOps)2015-04-28 22:00 odd behavior from lists and views TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
when you do the following:

1. create list
2. modify view
3. delete list
4. create identical list of the same name

this new list had the modified default view associated with the old list. i dont know if the same would be true of named views. perhaps the problem is that custom views are not getting deleted properly? this was observed on 10.2.
Ben Bimber2010-12-15 08:44Jon (LabKey DevOps)2015-04-28 22:00 rendering a QWP TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have the following code on an HTML page. When the QWP renders, instead of just rendering to the DIV, it destroys the rest of the body. Code below:


<html>
<script type="text/javascript">

Ext.onReady(function(){
    new LABKEY.QueryWebPart({
        title: 'Active Forms:',
        schemaName: 'study',
        queryName: 'Clinical Encounters',
        scope: this,
        errorCallback: EHR.UTILITIES.onError
     }).render('ehrDataEntry');
});

</script>
<body>

<div id="ehrDataEntry" />

<p/>

<div>I will get destroyed when the QWP renders</div>

</body>
</html>



However, if I change the div to this:

<div id="ehrDataEntry"></div>

It no longer happens. Is that the expected behavior from an empty tag? Is this more browser behavior than labkey behavior? thanks for the help.
jdutra2011-04-21 08:18Jon (LabKey DevOps)2015-04-28 22:01 Way to hide wiki pages from the TOC? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a project with many wiki pages that comprise a user interface. Most of them should not be accessed directly - they will be called from other wiki pages with appropriate parameters, etc. I assumed when I started that it would be easy to hide the extra pages from users, but I can't figure out how to do it. Is there a way?

TIA,
Jen
jdutra2011-05-06 07:31Jon (LabKey DevOps)2015-04-28 22:01 File webpart issues TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have been having some trouble with the Files webpart, especially since upgrading to the latest version of labkey. When I upload the latest version of a file, it seems I am still using an older version, even though if I view the file I uploaded it looks correct. This doesn't happen every time, but it has been happening often.

For example, I have a GUI wiki page with this line in it:

<script type="text/javascript" src="/labkey/_webdav/NYICE/protocols/07-0046%20Family%20Flu/@files/wikifiles/js/util.js"></script>

Util.js is a javascript file that does validation and other standard functions. I uploaded my latest version of util.js and verified that it looked correct. Then I went to my GUI and deliberately generated an error trying to insert a row. I get an alert "Unable to save". But in the new version of util.js that I uploaded, I changed the message to say "Testing". I'm still getting the old message. I tried re-uploading the file. I even tried deleting it from the labkey files webpart entirely, but my GUI still found a file somewhere and used it to generate the older message.

Any ideas would be appreciated.

- Jen
Ben Bimber2011-05-10 15:10Jon (LabKey DevOps)2015-04-28 22:01 usual SQL error with group_concat TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a grouped SQL statement. The query has a field with the participantId and a field with a text description. I would like to group the query on Id and group_concat the description. This seems simple enough, but labkey is giving me this odd error saying " java.sql.Date cannot be cast to java.lang.String". I am having a hard time seeing where the date part is coming from. This is not the actual SQL I used, but will repro it and should work on any machine:

  SELECT
    i.name,
    group_concat(i.name) as yesterdaysObs,
  FROM core.principals i
  group by name

I have found that the issue is actually the alias 'yesterdaysObs'. It gives this error:


ERROR WebPartView 2011-05-10 17:05:50,525 http-8080-Processor24 : renderView() exception in org.labkey.api.query.QueryView$4 while responding to /labkey/query/WNPRC/EHR/executeQuery.view?schemaName=study&query.queryName=demographicsObs
java.lang.ClassCastException: java.sql.Date cannot be cast to java.lang.String
    at org.labkey.api.data.MultiValuedRenderContext.<init>(MultiValuedRenderContext.java:45)
    at org.labkey.api.data.MultiValuedDisplayColumn.renderGridCellContents(MultiValuedDisplayColumn.java:48)
    at org.labkey.api.data.DisplayColumn.renderGridDataCell(DisplayColumn.java:659)
    at org.labkey.api.data.DataRegion.renderTableRow(DataRegion.java:1456)
    at org.labkey.api.data.DataRegion.renderTableContents(DataRegion.java:1420)
    at org.labkey.api.data.DataRegion._renderTable(DataRegion.java:893)
    at org.labkey.api.data.DataRegion.render(DataRegion.java:2431)
    at org.labkey.api.data.DataRegion.renderTable(DataRegion.java:701)
    at org.labkey.api.view.GridView._renderDataRegion(GridView.java:64)
    at org.labkey.api.view.DataView.renderView(DataView.java:144)
    at org.labkey.api.view.DataView.renderView(DataView.java:33)
    at org.labkey.api.view.WebPartView.renderView(WebPartView.java:778)
    at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
    at org.labkey.api.view.HttpView.render(HttpView.java:139)
    at org.labkey.api.view.HttpView.render(HttpView.java:121)
    at org.labkey.api.view.HttpView.include(HttpView.java:542)
    at org.labkey.api.view.HttpView.include(HttpView.java:519)
    at org.labkey.api.query.QueryView.renderDataRegion(QueryView.java:1462)
    at org.labkey.api.query.QueryView.renderView(QueryView.java:1227)
    at org.labkey.api.view.WebPartView.renderView(WebPartView.java:778)
    at org.labkey.api.query.QueryView.renderView(QueryView.java:1252)
    at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
    at org.labkey.api.view.HttpView.render(HttpView.java:139)
    at org.labkey.api.view.HttpView.render(HttpView.java:121)
    at org.labkey.api.view.HttpView.include(HttpView.java:542)
    at org.labkey.api.view.HttpView.include(HttpView.java:519)
    at org.labkey.jsp.compiled.org.labkey.api.view.template.CommonTemplate_jsp._jspService(CommonTemplate_jsp.java:222)
    at org.labkey.api.view.JspView.renderView(JspView.java:121)
    at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
    at org.labkey.api.view.HttpView.render(HttpView.java:139)
    at org.labkey.api.view.HttpView.render(HttpView.java:121)
    at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:447)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:356)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:756)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:609)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:619)
ERROR ExceptionUtil 2011-05-10 17:05:50,567 http-8080-Processor24 : Exception detected and logged to mothership
java.lang.ClassCastException: java.sql.Date cannot be cast to java.lang.String
    at org.labkey.api.data.MultiValuedRenderContext.<init>(MultiValuedRenderContext.java:45)
    at org.labkey.api.data.MultiValuedDisplayColumn.renderGridCellContents(MultiValuedDisplayColumn.java:48)
    at org.labkey.api.data.DisplayColumn.renderGridDataCell(DisplayColumn.java:659)
    at org.labkey.api.data.DataRegion.renderTableRow(DataRegion.java:1456)
    at org.labkey.api.data.DataRegion.renderTableContents(DataRegion.java:1420)
    at org.labkey.api.data.DataRegion._renderTable(DataRegion.java:893)
    at org.labkey.api.data.DataRegion.render(DataRegion.java:2431)
    at org.labkey.api.data.DataRegion.renderTable(DataRegion.java:701)
    at org.labkey.api.view.GridView._renderDataRegion(GridView.java:64)
    at org.labkey.api.view.DataView.renderView(DataView.java:144)
    at org.labkey.api.view.DataView.renderView(DataView.java:33)
    at org.labkey.api.view.WebPartView.renderView(WebPartView.java:778)
    at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
    at org.labkey.api.view.HttpView.render(HttpView.java:139)
    at org.labkey.api.view.HttpView.render(HttpView.java:121)
    at org.labkey.api.view.HttpView.include(HttpView.java:542)
    at org.labkey.api.view.HttpView.include(HttpView.java:519)
    at org.labkey.api.query.QueryView.renderDataRegion(QueryView.java:1462)
    at org.labkey.api.query.QueryView.renderView(QueryView.java:1227)
    at org.labkey.api.view.WebPartView.renderView(WebPartView.java:778)
    at org.labkey.api.query.QueryView.renderView(QueryView.java:1252)
    at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
    at org.labkey.api.view.HttpView.render(HttpView.java:139)
    at org.labkey.api.view.HttpView.render(HttpView.java:121)
    at org.labkey.api.view.HttpView.include(HttpView.java:542)
    at org.labkey.api.view.HttpView.include(HttpView.java:519)
    at org.labkey.jsp.compiled.org.labkey.api.view.template.CommonTemplate_jsp._jspService(CommonTemplate_jsp.java:222)
    at org.labkey.api.view.JspView.renderView(JspView.java:121)
    at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:289)
    at org.labkey.api.view.HttpView.render(HttpView.java:139)
    at org.labkey.api.view.HttpView.render(HttpView.java:121)
    at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:447)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:356)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:756)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:609)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:619)


and the SQL. i have simplified it somewhat:
Ben Bimber2011-06-20 14:13Jon (LabKey DevOps)2015-04-28 22:02 using labkey SQL to calculate next ID in a series TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We number our animals with a 1-2 digit string prefix followed by a number. the total string length is 6.

When people enter new IDs, I'd like them to supply a string prefix, and write a SQL string to calculate the next ID in the series. The difficultly is that IDs can either be 1 character + 5 digits or 2 / 4. the patterns are:

rhXXXX
rXXXXX
cyXXXX

In a similar situation elsewhere I did this:

SELECT cast(SUBSTRING(MAX(Id), "+prefix.length+", 6) AS INTEGER) as number FROM study.Demographics d WHERE Id LIKE '" + prefix + "%'"

However, this breaks down b/c if the prefix is 'r', it will return IDs starting with both 'r' or 'rh'. the substring function throws an error. are there other ways to approach this? some questions i had were:

1. without using a regular expression, can I make a smarter pattern matching in the WHERE clause than i'm doing?
2. is there a way to write "d.Id like 'r% AND 'the rest of the ID is numeric'" in labkey SQL?
3. assuming I cannot write a smarter WHERE clause, can I approach the SUBSTRING better?

Note: I'm passing this to JS code, so I could do some processing there. I'd like to offload whatever I can to SQL if possible though. I was considering something like:

SELECT SUBSTRING(MAX(Id), "+prefix.length+", 6) as max, SUBSTRING(min(Id), "+prefix.length+", 6) as min,FROM study.Demographics d WHERE Id LIKE '" + prefix + "%'"

then let the client take these 2 values and figure out which to use. this or something similar might work, but it seems fragile.
Ben Bimber2011-06-24 06:11Jon (LabKey DevOps)2015-04-28 22:02 filtering using 'equals on of', where it's 1 of 700 things TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
a lot of EHR searches involve finding some set of participants, then doing some other query based on those X number of IDs. we give the users a number of ways to do this. the guts of this process looks like:

1. user finds set of IDs by filtering a grid
2. code identifies all the distinct IDs
3. code sends user to other page (usually a query) applying a filter like "query.Id~in=x,y,z"

that works great, unless your like of IDs is enormous. are there any tricks to support a really big list of IDs? i have tried posting the data, on the theory that it was too long for the URL, but still got a 'bad request' error.

thanks.
sadcat@u.washington.edu2012-02-22 14:59Jon (LabKey DevOps)2015-04-28 22:03 Grid -> Customize View to change column order -> Edit record? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

We have a grid displaying the data from a query on a server. The users asked us to change the order of the columns, I customized the default view as described in documentation. The order in the grid itself it now to the users' liking, but, when they click on "Edit", it reverts to the old order. Is it possible to customize the "Edit" view as well?

Thanks,
Xenia
jdutra2012-07-18 07:22Jon (LabKey DevOps)2015-04-28 22:04 Multiple visit schedules TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a study and we're having trouble deciding how best to set it up. Basically, there are defined study "events" such as "Hospital Discharge" which don't take place at a specified time. We want to define visits (sequence #s) for these such that all participants have the same sequence # for the same event.

In addition, there are daily and weekly logs that include clinical and specimen data for participants, and it makes sense for the sequence numbers for these to be based on study day. It seems to make sense to separate these log files somehow. We looked at the ancillary studies, but I'm not sure that really works for this purpose.

Do you have any suggestions about what to do here? Is there any good way to separate the logs out without separating them so much that it's difficult to incorporate that data with the event data when needed?

Thanks,
Jen
Leo Dashevskiy2012-09-14 11:47Jon (LabKey DevOps)2015-04-28 22:06 2 copies of the same web part on one page issue TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

I'm having difficulties with cleanly displaying 2 copies of the same module side by side on one page.

They seem to look and behave fine, but I get an error on the console.



In my begin.html I have:


<script type='text/javascript'>
...
    LABKEY.requiresScript(
            [
                'FlowGraph/ResizableCombo.js',
                'Ext.ux.form.LovCombo.js',
                'FlowGraph/ResizableLovCombo.js',
                'FlowGraph/SuperBoxSelect/SuperBoxSelect.js',
                'FlowGraph/GridPanelHeaderResize.js',
                'FlowGraph/ColumnModelChromePatch.js',
                'FlowGraph.js'
            ],
            true,
            function (){
                var webPartDiv = <%=webpartContext%>.wrapperDivId;

                console.log('in the callback');

                var init = function()
                {
                    console.log('in the init');

                    var FlowGraph = new LABKEY.ext.FlowGraph({
                        webPartDivId: webPartDiv
                    });

                    var resizeModule = function(w, h) {

                        var extraWidth = 0;

// extraWidth = Ext.getScrollBarWidth();

                        LABKEY.Utils.resizeToViewport( FlowGraph, w-255-extraWidth, -1, 40, 50 );

                        FlowGraph.resizeToViewport();
                    };

                    Ext.EventManager.onWindowResize( resizeModule );
                    Ext.EventManager.fireWindowResize();
                }

                Ext.onReady(init);

                console.log( 'claims to have loaded all the js files')
            },
            this,
            true
    );
</script>



And my FlowGraph.js has:


Ext.namespace('LABKEY', 'LABKEY.ext');

LABKEY.ext.FlowGraph = Ext.extend( Ext.Panel, {

            constructor : function(config) {
...
                this.renderTo = config.webPartDivId;

                LABKEY.ext.FlowGraph.superclass.constructor.apply(this, arguments);

            }, // end constructor

        } // end FlowGraph Panel class
);



On the console I get the following:

in the callback begin.view:536
in the init begin.view:540
Uncaught TypeError: undefined is not a function begin.view:542
                    init begin.view:542
                    EXTUTIL.Event.fire ext-all-debug.js:310
                    pub.onDocumentReady ext-all-debug.js:5391
                    (anonymous function) begin.view:561
                    chain labkey.js:114
                    LABKEY.requiresScript labkey.js:146
                    chain labkey.js:117
                    onScriptLoad labkey.js:153
in the callback begin.view:468
in the init begin.view:540
in the init begin.view:472
claims to have loaded all the js files begin.view:495



Where lines 468 and 472 correspond to the first web part and lines 536, 540, 542 - to the second one.

Moreover lines 542 is the creation of the new object: var FlowGraph = new LABKEY.ext.FlowGraph({

If I put the breakpoint there, then I can see indeed that LABKEY.ext.FlowGraph is undefined still at this point, though, we are in the callback for the requiresScript() call.

So I don't in fact understand, why init() is fired 3 times, when we only have 2 web parts.

Also, does not seem to make sense that 'claims to have loaded all the js files' is only printed out once, not twice...

Can you shed any light on this?

Thanks.
-Leo
ymei2012-11-22 07:23Jon (LabKey DevOps)2015-04-28 22:06 How to find queryName for lookup field (FieldMetaDataLookup) TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I am working on get some metadata for a lookup field in a dataset table.

Reference pages:
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.FieldMetaData.html
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.FieldMetaDataLookup.html

What I found:
in LABKEY.Query.FieldMetaData, the queryName field is "undefined"
in LABKEY.Query.FieldMetaDataLookup, there is only schemaName

My question is: how to get the queryName for a lookup field from the metadata?

Thanks,
Yongguo
Andy Straw2013-07-09 09:18Jon (LabKey DevOps)2015-04-28 22:08 SelectRowsCommand and parameterized query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a query that takes one parameter, "partId". Works fine when I invoke it via the LabKey web app directly (via Schema Browser, for example).

I'm trying to use that query from a Java client app, using the SelectRowsCommand. There are getParameters() and setParameters() methods on this command object, but when I tried to set the value of my one query parameter, using setParameters() that did not take, and I got an error saying I hadn't set the required "partId" parameter. The odd thing (to me, at least), is that the Map returned by getParameters() has the same values both before I call setParameters() and after - the call to setParameters() seems not to do what I want. I tried both 1.) using my own HashMap (with "partId" as the single entry) as the param to setParameters() and 2.) calling getParameters() first, taking the Map returned by that call, adding my query param name/value pair to that Map, and then calling setParameters() with that Map. Neither worked.

Then I looked at the URL when I run the query manually via the web app, and it has &query.param.partId=HD0099

So I tried put( "query.param.partId", "HD0099" ) in the Map, but that didn't work. I also tried put("query.param", queryParams ) and put( "query.params", queryParams ) where queryParams is a map containing a single entry: "partId":"HD0099". None of those worked.

Is it possible to set a query param using SelectRowsCommand? If so, how?

Thanks.

Andy Straw
University of Rochester
Andy Straw2015-11-23 11:28Jon (LabKey DevOps)2015-11-23 11:46 Two enhancement ideas for Customize View TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Here are two suggestions for enhancements to Customize View. If anyone else thinks something like these features would be useful, please chime in. Otherwise, suggestions for implementing something like them ourselves would be appreciated.

1. I often define a default view (of a dataset, list, assay results, etc.) that selects columns, their order, and may define some customized column labels. I then define different named views that apply different sets of filters and/or sorting to the default view. What's tedious is when I want to change the default view, for example, add/remove a column, re-order columns, add/change a custom label - I would like the named views to "inherit" from the default view so that any changes to the default view automatically show up in the "inherited" views. As it is, I have to edit each of the named views - tedious and error prone. So, if there were a way to define a view as an "extension" of another view (not necessarily the default view), similar to how a subclass extends a base class, that would be great.

2. When customizing the view of a dataset, I often take advantage of the ability to bring in fields from other datasets. Sometimes, there are a set of fields from various clinical datasets that I'd like to add to multiple experiment datasets, for example. I have to do the view customization on each of those experiment datasets - have to get the right fields from the right clinical datasets in the right order. Tedious and error prone. What I'd like to be able to do is to define once something like a "column set" which might be something like fields a, b, and c from dataset X, fields d, and e from dataset Y, etc. Define the set of columns once, and then re-use that set of columns multiple times by adding those columns to multiple other datasets. A nice additional option would be: if the column set gets edited, the views that use it automatically see the changes.

Do either of these make sense? Are either of them feasible to implement?

Thanks for any related feedback or suggestions.

(BTW, I tried to post this on the "General Use" Forum, but didn't seem to have permission to post there.)

Andy Straw
University of Rochester
marmoset2017-05-23 07:00Jon (LabKey DevOps)2017-05-23 13:30 Using Python API to query Panorama data TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi -

I am using LabKey Panorama to manage targeted MS assays generated in Skyline.

RHEL 6.5
PostgreSQL 9.6.1
Apache Tomcat/8.5.9
Java Runtime    1.8.0_112

I need to programmatically access the targeted data from Panorama.
I have looked at the API at https://github.com/LabKey/labkey-api-python.

Seems like I need to understand the underlying DB Schema to use the API.
How do I do that ? If you could point me to some resources to get started that would be helpful ?

Thanks !
steve harris2017-06-30 01:51Jon (LabKey DevOps)2017-07-04 23:43 External Study Database for participant demographics - best way to integrate with sample management and assays TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi

I have a whole genome study that has established case/participant/consent management facilities, but I would like to deploy Labkey for the registration of samples against the participants, and for the recording of assays (QC, DNA extraction results, sequencer run data) on the samples. I control the schema on the study management database and can co-locate it on the same postrgres instance as the labkey server installation.

I know how to register the external schema with labkey so I can presumably provide the samples list with a lookup to the participants in the management database. Can I integrate more closely with the LK data model and convince it that a view within the study management database is the demographics table and source of participant ids?

Hope that makes sense. thanks in advance

Steve
jdarvin2017-08-09 11:33Jon (LabKey DevOps)2017-08-09 20:50 Built in Tests for labkey TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, I am trying to understand the built in tests for labkey. I have the stock version of labkey setup on my machine and I see the test folder inside the labkey project. I am not sure how to approach understanding what the built in tests are doing, or how to run these tests . Can you point me in the right direction to see where the selenium tests are located?
marcia hon2018-02-20 11:59Jon (LabKey DevOps)2018-02-20 12:28 R Report - How to use variables TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I was able to do this:

participant <- labkey.data$participantid;
visit <- labkey.data$visitid;

My question is how do I use these variables in html? For example:

<b>participant[1]</b>

??

Thanks,
Marcia
Jon (LabKey DevOps)2022-10-12 14:18Jon (LabKey DevOps)2022-10-12 14:18 Maintenance Notice - Upgrade of labkey.org for Wednesday, October 12th 2022 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 8:30pm Pacific Time for an upgrade to LabKey 22.10

The site will be offline for approximately one hour.

Please save your work before this time.
kanchink@mail.nih.gov2007-09-28 04:49Jon (LabKey DevOps)2015-04-28 21:51 OntologyEntryURI TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
An example of an OntologyEntryURI for a ProtocolParameter is: terms.fhcrc.org#XarTemplate.ApplicationLSID

In some example files, i have seen the following entry:
   <exp:SimpleVal Name="Solution Temp degrees C" OntologyEntryURI="terms.proteomics.fhcrc.org#Solution_Temp_degrees_C" ValueType="Integer">-4</exp:SimpleVal>
            

where the OntologyEntryURI is "terms.proteomics.fhcrc.org" as opposed to "terms.fhcrc.org".

Is there a list of the various terms that can be present in a XAR file?

Thanks.
eric.jain@gmail.com2008-08-21 12:04Jon (LabKey DevOps)2015-04-28 21:53 Unit Tests TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Just downloaded LabKey8.2-9166-src.zip, and before I start playing with it, I was wondering if there are any unit tests that can be run, so I can see when I break something? I noticed a bunch of functional (Selenium) tests in server/test/src/org/labkey/test/, but was looking for something quicker & more thorough...
Ben Bimber2010-03-15 18:04Jon (LabKey DevOps)2015-04-28 21:55 make link directly to a webpart? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i'd like to have a link that points users directly to the study's "Datasets" webpart. Is this possible?

does something like firebug provide a way that i should be able to figure this sort of thing out for myself?
Ben Bimber2010-07-02 10:41Jon (LabKey DevOps)2015-04-28 21:59 File based definition of lists required by an assay? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
It is quite common for an assay to have a list or lists associated with it. This list could contain allowable values for a field. The list could be where sample attributes are stored. In the assay definition (file based assay) we can define a lookup; however, there is no guarantee that list will actually exist.

I am thinking that I might export a list archive and just put that in the assay module. That's not perfect, but at least keeps a record of the list and gives a quick method to re-create it. It still requires that some person actually take action to import it. Is there a better mechanism to accomplish the more or less automatic creation of lists when a module is installed?

Thanks.
Ben Bimber2010-08-18 07:56Jon (LabKey DevOps)2015-04-28 21:59 make user a site admin via postgres SQL script? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
periodically we restore a dump of the production postgres db into both our development and stating machines. we have a SQL script that we run after this restore. It changes some basic settings like changing the site name, turning off SSL, deactivating users, etc. I modified it from a script Brian gave me.

We have a new person who is interested in doing development for one of our labs. Is there a mechanism using SQL such that we can make his user a site admin? the issue is that he's not a site admin on our production server, but he would want to be one on his development machine. I'd like to allow him to do the same postgres restore I'm using. using a SQL script to make that change would be a very convenient way to do it if possible.

thanks.
Ben Bimber2010-10-14 14:14Jon (LabKey DevOps)2015-04-28 22:00 studydata details possible bug TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
studydata gives me this URL as a details link:

http://localhost:8080/labkey/study/WNPRC/EHR/datasetDetailRedirect.view?datasetId=03f66142-8965-102d-bff3-493dbd27f43e&lsid=urn%3Alsid%3Aprimate.wisc.edu%3AStudy.Data-108%3A1008.2.0080626E7.r95061.f295e1e2-b8ba-102d-8c2a-9926f351b9ae

I get the error: 'please enter a valid integer value'. do they mean an integer value for datasetId? perhaps this is a bug?
Ben Bimber2011-01-21 11:32Jon (LabKey DevOps)2015-04-28 22:01 unified way to filter on PK? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to make code shared across all data entry in the EHR. The page would be for editing/inserting a single record. In most cases for something like this, the code accepts a url like:

insertNew.view?schemaName=lists&queryName=project&key=XXXXXX

that is the schema/query and the value of the table's PK. in the code, I would create a store for this schema/query then apply on filter where the primary key of that table equals the value in the URL.

the problem is that different tables have different names for their PKs. It's a hole lot easier if I can just have a piece of code like:

new LABKEY.ext.Store({
schemaName: LABKEY.ActionURL.getParameter('schemaName'),
queryName: LABKEY.ActionURL.getParameter('queryName'),
filterArray: [LABKEY.Filter.create('key', LABKEY.ActionURL.getParameter('queryName'), LABKEY.Filter.Types.EQUAL)]
});

The difficultly being that 'key' isnt always the name of the PK field. I've tried to be consistent with PK names in the EHR external schema; however, we have datasets with LSID, lists with potentially different names and external tables with RowId. Is there any trick I can use to help here?

The only idea i have would be either:

1. maintaining a map somewhere in code listing the PK names of each table (which i would prefer not to have)
2. calling getQueryDetails() first (adds an extra async call, so I'd prefer not to)
3. aliasing every PK on each query that does not conform to a standard with a consistent name (like 'key' or 'lsid')

Does anyone have thoughts on what would be a good approach here?

Thanks.
Ben Bimber2011-05-31 07:32Jon (LabKey DevOps)2015-04-28 22:01 should pivot work on sqlserver? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
A group at harvard is using the SSP_Assay, which is defined in the SSP_Assay module. That module has a pivot query looking like:

SELECT
  s.Id,
  s.allele,
  max(s.Status) as result,

FROM assay.SSP_Summary s

GROUP BY s.Id, s.allele
PIVOT result BY allele

this runs fine on postgres, which is all i've historically been setup to test. they get the following error:

500: Unexpected server error
Internal error while parsing "/* * Copyright (c) 2010 LabKey Corporation * * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 */ --this query provides an overview of the MHC SSP results SELECT s.Id, s.allele, max(s.Status) as result, FROM assay.SSP_Summary s GROUP BY s.Id, s.allele PIVOT result BY allele"

is there any reason why you would expect pivot to behave different on sql server vs postgres?

thanks.
sdoshi@immunetolerance.org2011-07-12 09:29Jon (LabKey DevOps)2015-04-28 22:02 Developer Mode Command TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

   I am running Labkey 11.1, Windows 7 x86. I am using the following command to add the Developer Mode to the VM parameters, but it doesn't work

        tomcat5w //ES// LabkeyTomcat

   Can someone point me what I am doing wrong.

Thanks,
Ben Bimber2011-08-02 07:42Jon (LabKey DevOps)2015-04-28 22:02 selectRows() against a large assay TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have an assay with about 100K rows. I have a JS class that creates a search panel for any query. this class is backed by a LABKEY.ext.Store. The rationale for using the store instead of one of the non-ext query APIs that is because that better handles metadata and the creation of the necessary ext inputs that the non-ext APIs. There's a number ext-based containers that need to do similar things throughout the EHR UI, and it's just easier to have a common code path for processing metadata.

The store is set to use maxRows=0, because we only want metadata, not all the rows. The actual request is using this URL:

https://ehr.primate.wisc.edu/query/WNPRC/WNPRC_Units/Research_Services/MHC_SSP/Private/MHC_DB/selectRows.view?_dc=1312250642279&schemaName=assay&query.queryName=MHC_SSP%20Data&apiVersion=9.1&query.maxRows=0

However, despite using maxRows=0, this can take 20 secs to return. I didnt get why until I looked at the response and see that it includes a bit saying something like 'total rows = 100K'. this implies it must be running something to figure out the total size. That may not be the true reason, but it's the closest thing i could figure out.

Should a call to selectRows() when using maxRow=0 actually be the same speed as without it? Are there other troubleshooting steps to figure out exactly where the bottleneck is?

Thanks.
Maya Li2011-09-16 14:30Jon (LabKey DevOps)2015-04-28 22:02 Fail to send emails from LabKey after upgrade to 11.2 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We recently upgraded our LabKey from 11.1 to 11.2. After the upgrade, the email service went down. Email configurations in Tomcat hasn't changed since before the upgrade. We ran an email config test from the Admin console and received the following error message:

"Your message could not be sent for the following reason(s):
failed to connect, no password specified?"

Similar message is received when the server tries to send password change notifications to users. We have tried to send emails using IE, Chrome and Firefox on both Windows and Mac machines.
Daniel Nicolalde2011-11-08 10:43Jon (LabKey DevOps)2015-04-28 22:02 Overlapping Days TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have try to write a query that detects the number of overlapping days between projects, these projects are assign to a specific animal. An animal can be assign to multiple projects. I am creating an INNER JOIN with the same table called "assignments" which has all the information I need (i.e. id, projectid, startdate and enddate).

The issue I have is that I am interested in knowing during a single year how many days an animal was assign to more than one project, the trick is that some project can have started before Jan-1 of the year that I am interested in and continue after the Dec-31 of that year. Also project can start during the time of interest. I am getting a lot of projects that do not overlap.

Here is the core of the INNER JOIN
StarDate = first day of interval
ENDDATE = Last day of interval

Select *
FROM Assignment AS h INNER JOIN Assignment h2 ON (h.id = h2.id AND h.project < h2.project )
WHERE

((StartDate >= h.date AND StartDate < h.enddate)
     OR
StartDate <= h.date AND ENDDATE > h.date))
                
AND
( (StartDate >= h2.date) AND StartDate < h2.enddate)
    OR
(StartDate <= h2.date AND (ENDDATE > h2.date))
                
Thank you for the help

Daniel
jdutra2011-12-19 09:43Jon (LabKey DevOps)2015-04-28 22:03 exp.Datas in Query Schema Browser TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there any documentation anywhere on what is included in the exp.Datas built-in query? I would like to use that to detect files automatically generated by labkey that we want to delete (the ones in assaydata, for example). The query seems to be picking up most of the files in a project, including js libraries, css files, specimen upload files, etc. However, it is not picking up any of the files in unzip, a directory that I believe was created automatically when the study was imported.

If anyone could tell me how I can figure out what files I should expect to show up in that query, and which ones won't show up, it would be a big help.

Thanks,
Jen
Maya Li2012-01-19 21:46Jon (LabKey DevOps)2015-04-28 22:03 EditorGridPanel not using filterArray set from store TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have the following piece of code which creates a cohortStore with a filter on cid.cid, or cohort id, is a foreign key to criteria table. The store is used to then construct an EditorGridPanel. When a user tries to add a new record to the table using the editorPanel, the cohort provides all of the cohort in the drop down option instead of the one that had been used in the filter. I tried adding an event to force the cid before the store is committed, but that does not work either. Please advice.

  var cohortStore = new LABKEY.ext.Store({
                schemaName: 'litterbox',
                queryName: 'criteria',
                columns: ['cohort', 'criterianame', 'criteriadescription','criteriasource'],
                filterArray: [ LABKEY.Filter.create('cohort', cid, LABKEY.Filter.Types.EQUAL)],
                sort: 'cohort'
            });
        
        // update cohort id to current cohort
        cohortStore.on('beforecommit', function(records, rows) {
            for ( var i = 0 ; i < records.length; i++ ) {
                records[i].set('cohort', 5);
                alert(records[i].get('cohort'));
            }
            return true;
        });
            
        var criteriaGrid = new LABKEY.ext.EditorGridPanel({
            store: cohortStore,
            width:800,
            renderTo: 'criteriaList',
            autoHeight: true,
            title: 'Eligibility Criteria',
            editable: true,
            showExportButton: false,
            autoSave: true
        });
jdutra2012-04-06 11:54Jon (LabKey DevOps)2015-04-28 22:03 Information about Specimen Archive TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The specimen archive file formats are available in labkey help. However, that page doesn't really explain where the information ends up in the labkey specimen datasets, or what changes might be triggered by putting information in certain fields. Sometimes a field in the archive looks to be just what I want, but I can't figure out where it went in labkey.

Is there a document / help page anywhere that describes the mappings? It would be a huge help if there was.

Thanks,
- Jen
Leo Dashevskiy2012-05-14 15:13Jon (LabKey DevOps)2015-04-28 22:03 Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello!

I would like to filter out of my query (containing just one column) the rows with null values (are they truly NULL or are they empty strings?).

The "Labkey" SQL does not seem to allow clause of the form:

WHERE <curElemMod> IS NOT NULL

does it?

Well, it does allow it, but does not produce what I would expect (it gets me zero rows as the result). Btw, the backend db is PostgreSQL for me.

So then I decided and tried using the store filters, here is my code:

            tempSQL = 'SELECT DISTINCT FCSFiles.Keyword."' + curElemOrig + '" AS ' + curElemMod + ' FROM FCSFiles ORDER BY ' + curElemMod;

            tempStore = new LABKEY.ext.Store({
                autoLoad: true,
                filterArray: [
                    LABKEY.Filter.create(curElemMod, LABKEY.Filter.Types.NOT_MISSING)
                ],
                schemaName: 'flow',
                sql: tempSQL
            });


FYI, curElemMod is curElemOrig with all of the spaces replaced by underscores.

This also does not seem to eliminate the null rows as they still show up in the comboBox (and cannot be readily selected) being driven by the above store.

Please, advise.

Thanks.
-Leo
slangley@scharp.org2012-09-26 11:32Jon (LabKey DevOps)2015-04-28 22:06 Strange behavior with LABKEY.Security.getContainers() function TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi.

I'm calling the LABKEY.Security.getContainers() function with these input parameters:

  container=/HVTN/Specimen Management/Lab Program/
  includeSubfolders=false

On my development machine - updated from your SVN about 30 minutes ago - the function seems to work fine, returning information about the passed in container.

When I execute the same function against our Atlas-Test server:
  TEST 12.2-22150 devmode

it returns information about other containers not specified in the input. Logs from Firebug attached.

Any clue to what's going on?

Thanks.

Scott
Leo Dashevskiy2013-03-12 14:18Jon (LabKey DevOps)2015-04-28 22:07 Is it possible not to show a webpart for a set of user groups TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The webpart should be present for a set of more advanced user groups: i.e. not show it for the 'readers', but show it for the 'editors' -- did I see somewhere correctly that this is something that is in 13.1 ?

Thanks.
-Leo
Ben Bimber2013-03-26 12:36Jon (LabKey DevOps)2015-04-28 22:07 expected behavior for URLs in an exported excel file? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When creating an excel export from any DataRegion, should one expect that the resulting excel file would contain the field have the same URLs as the DataRegion, or does the excel file lack URLs? I thought I remembered that the excel file did have URLs, but that's not what I'm seeing now. My memory could be wrong. Thanks.
Leo Dashevskiy2013-03-27 18:08Jon (LabKey DevOps)2015-04-28 22:07 LABKEY.ext.Store.load() failing when a large filter is applied TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
You can try on the following machine dhcp157184.fhcrc.org:8080/labkey/project/ITN%20Subset

tempStore = new LABKEY.ext.Store({
            autoLoad: true,
            schemaName: 'flow',
            sql: "SELECT DISTINCT FCSFiles.Name AS FileName, FCSFiles.RowId AS FileId FROM FCSFiles WHERE FCSFiles.Run.FCSFileCount != 0 AND FCSFiles.Run.ProtocolStep = 'Keywords'",
            listeners: {
                'load': function(c){
                    console.log(c.getCount());
                },
                'loadexception': function(){
                    console.log('exception')
                }
            }
        })

returns 8 as it is supposed to

tempFilter = LABKEY.Filter.create( 'FileName', value, LABKEY.Filter.IN )

seems to work, when setting explicitly the filterArray config on creation of the store, but not when using

tempStore.setUserFilters( [ tempFilter ] ) as tempStore.load() produces an exception

Am I doing something wrong?

Thank you.

tempFilter.getValue()
"01107121_F02_I016.fcs;01107121_F01_I010.fcs;01107121_F04_I022.fcs;01107121_F03_I021.fcs;01107121_F06_I025.fcs;01107121_F05_I023.fcs;01107121_F09_EMA.fcs;01107121_F07_I090.fcs;01107121_F08_AUTO.fcs;01177007_F01_I010.fcs;01107122_F10_I002.fcs;01107122_F11_I003.fcs;01177007_F02_I016.fcs;01177007_F03_I021.fcs;01177007_F05_I023.fcs;01177007_F04_I022.fcs;01177007_F06_I025.fcs;01177007_F07_I090.fcs;01177007_F08_AUTO.fcs;01177008_F10_I002.fcs;01177007_F09_EMA.fcs;01177008_F11_I003.fcs;01197151_F01_I010.fcs;01197151_F03_I021.fcs;01197151_F02_I016.fcs;01197151_F05_I023.fcs;01197151_F04_I022.fcs;01197151_F06_I025.fcs;01197151_F07_I090.fcs;01197151_F08_AUTO.fcs;01197152_F10_I002.fcs;01197151_F09_EMA.fcs;01197152_F11_I003.fcs;01317191_F01_I010.fcs;01317191_F02_I016.fcs;01317191_F03_I021.fcs;01317191_F05_I023.fcs;01317191_F04_I022.fcs;01317191_F06_I025.fcs;01317191_F07_I090.fcs;01317192_F10_I002.fcs;01317191_F08_AUTO.fcs;01317191_F09_EMA.fcs;01317192_F11_I003.fcs;02127091_F01_I010.fcs;02127091_F03_I021.fcs;02127091_F02_I016.fcs;02127091_F05_I023.fcs;02127091_F04_I022.fcs;02127091_F06_I025.fcs;02127091_F07_I090.fcs;02127091_F08_AUTO.fcs;02127091_F09_L_D.fcs;02127092_F11_I003.fcs;02127092_F10_I002.fcs;02147111_F01_I010.fcs;02147111_F02_I016.fcs;02147111_F03_I021.fcs;02147111_F05_I023.fcs;02147111_F04_I022.fcs;02147111_F06_I025.fcs;02147111_F07_I090.fcs;02147111_F08_AUTO.fcs;02147111_F09_L_D.fcs;02147112_F10_I002.fcs;02147112_F11_I003.fcs;02167131_F01_I010.fcs;02167131_F02_I016.fcs;02167131_F03_I021.fcs;02167131_F05_I023.fcs;02167131_F04_I022.fcs;02167131_F06_I025.fcs;02167131_F07_I090.fcs;02167131_F08_AUTO.fcs;02167132_F10_I002.fcs;02167131_F09_L_D.fcs;02167132_F11_I003.fcs;02217141_F01_I010.fcs;02217141_F03_I021.fcs;02217141_F02_I016.fcs;02217141_F05_I023.fcs;02217141_F04_I022.fcs;02217141_F07_I090.fcs;02217141_F06_I025.fcs;02217141_F08_AUTO.fcs;02217141_F09_L_D.fcs;02217142_F10_I002.fcs;02217142_F11_I003.fcs;02227201_F01_I010.fcs;02227201_F02_I016.fcs;02227201_F03_I021.fcs;02227201_F05_I023.fcs;02227201_F04_I022.fcs;02227201_F07_I090.fcs;02227201_F06_I025.fcs;02227201_F09_L_D.fcs;02227201_F08_AUTO.fcs;02227202_F11_I003.fcs;02227202_F10_I002.fcs;02267191_F01_I010.fcs;02267191_F02_I016.fcs;02267191_F03_I021.fcs;02267191_F05_I023.fcs;02267191_F04_I022.fcs;02267191_F06_I025.fcs;02267191_F07_I090.fcs;02267191_F08_AUTO.fcs;02267191_F09_L_D.fcs;02267192_F10_I002.fcs;02267192_F11_I003.fcs;02287071_F01_I010.fcs;02287071_F02_I016.fcs;02287071_F03_I021.fcs;02287071_F04_I022.fcs;02287072_F10_I002.fcs;02287071_F05_I023.fcs;02287071_F06_I025.fcs;02287071_F07_I090.fcs;02287071_F08_AUTO.fcs;02287071_F09_L_D.fcs;02287072_F11_I003.fcs;03167171_F01_I010.fcs;03167171_F02_I016.fcs;03167171_F05_I023.fcs;03167171_F03_I021.fcs;03167171_F04_I022.fcs;03167171_F07_I090.fcs;03167171_F06_I025.fcs;03167171_F08_AUTO.fcs;03167171_F09_L_D.fcs;03167172_F11_I003.fcs;03167172_F10_I002.fcs;03167181_F01_I010.fcs;03167181_F02_I016.fcs;03167181_F03_I021.fcs;03167181_F05_I023.fcs;03167181_F04_I022.fcs;03167181_F06_I025.fcs;03167182_F10_I002.fcs;03167181_F07_I090.fcs;03167181_F08_AUTO.fcs;03167181_F09_L_D.fcs;03167182_F11_I003.fcs;04097391_F01_I010.fcs;04097391_F02_I016.fcs;04097391_F03_I021.fcs;04097391_F05_I023.fcs;04097391_F04_I022.fcs;04097391_F06_I025.fcs;04097391_F07_I090.fcs;04097391_F08_AUTO.fcs;04097391_F09_L_D.fcs;04097392_F11_I003.fcs;04097392_F10_I002.fcs;04167231_F01_I010.fcs;04167231_F02_I016.fcs;04167231_F03_I021.fcs;04167231_F05_I023.fcs;04167231_F04_I022.fcs;04167231_F06_I025.fcs;04167231_F08_AUTO.fcs;04167231_F07_I090.fcs;04167232_F10_I002.fcs;04167231_F09_L_D.fcs;04167232_F11_I003.fcs;04207131_F01_I010.fcs;04207131_F02_I016.fcs;04207131_F03_I021.fcs;04207131_F05_I023.fcs;04207131_F04_I022.fcs;04207131_F06_I025.fcs;04207131_F07_I090.fcs;04207131_F08_AUTO.fcs;04207132_F10_I002.fcs;04207131_F09_L_D.fcs;04207132_F11_I003.fcs;04307261_F02_I016.fcs;04307261_F01_I010.fcs;04307261_F03_I021.fcs;04307261_F05_I023.fcs;04307261_F04_I022.fcs;04307261_F06_I025.fcs;04307261_F07_I090.fcs;04307262_F11_I003.fcs;04307261_F08_AUTO.fcs;04307261_F09_L_D.fcs;04307262_F10_I002.fcs;05027231_F01_I010.fcs;05027231_F02_I016.fcs;05027231_F03_I021.fcs;05027231_F05_I023.fcs;05027231_F04_I022.fcs;05027231_F07_I090.fcs;05027231_F06_I025.fcs;05027232_F10_I002.fcs;05027231_F08_AUTO.fcs;05027231_F09_L_D.fcs;05027232_F11_I003.fcs;05217361_F01_I010.fcs;05217361_F02_I016.fcs;05217361_F03_I021.fcs;05217361_F05_I023.fcs;05217361_F04_I022.fcs;05217361_F06_I025.fcs;05217361_F07_I090.fcs;05217362_F10_I002.fcs;05217361_F08_AUTO.fcs;05217361_F09_L_D.fcs;05217362_F11_I003.fcs;05247081_F01_I010.fcs;05247081_F02_I016.fcs;05247081_F03_I021.fcs;05247081_F05_I023.fcs;05247081_F04_I022.fcs;05247081_F07_I090.fcs;05247081_F06_I025.fcs;05247081_F09_L_D.fcs;05247081_F08_AUTO.fcs;05247082_F11_I003.fcs;05247082_F10_I002.fcs;05257281_F01_I010.fcs;05257281_F03_I021.fcs;05257281_F02_I016.fcs;05257281_F05_I023.fcs;05257281_F04_I022.fcs;05257281_F06_I025.fcs;05257281_F07_I090.fcs;05257282_F10_I002.fcs;05257281_F08_AUTO.fcs;05257281_F09_L_D.fcs;05257282_F11_I003.fcs;05266006_FG05_I021.fcs;05266006_FG03_I010.fcs;05266006_FG04_I016.fcs;05266006_FG06_I022.fcs;05266006_FG08_I025.fcs;05266006_FG07_I023.fcs;05266006_FG09_I090.fcs;05266006_FG_AUTO.fcs;05266007_FG02_I003.fcs;05266006_FG_EMA.fcs;05266007_FG01_I002.fcs;05266111_FG04_I016.fcs;05266111_FG03_I010.fcs;05266111_FG05_I021.fcs;05266111_FG06_I022.fcs;05266111_FG07_I023.fcs;05266111_FG08_I025.fcs;05266111_FG09_I090.fcs;05266111_FG_AUTO.fcs;05266112_FG01_I002.fcs;05266111_FG_EMA.fcs;05266112_FG02_I003.fcs;06077221_F01_I010.fcs;06077221_F02_I016.fcs;06077221_F03_I021.fcs;06077221_F05_I023.fcs;06077221_F04_I022.fcs;06077221_F06_I025.fcs;06077221_F08_AUTO.fcs;06077221_F07_I090.fcs;06077222_F11_I003.fcs;06077221_F09_L_D.fcs;06077222_F10_I002.fcs;06077231_F01_I010.fcs;06077231_F03_I021.fcs;06077231_F02_I016.fcs;06077231_F04_I022.fcs;06077231_F05_I023.fcs;06077232_F10_I002.fcs;06077231_F06_I025.fcs;06077231_F07_I090.fcs;06077231_F08_AUTO.fcs;06077231_F09_L_D.fcs;06077232_F11_I003.fcs;06087181_F02_I016.fcs;06087181_F01_I010.fcs;06087181_F03_I021.fcs;06087182_F11_I003.fcs;06087181_F04_I022.fcs;06087181_F05_I023.fcs;06087181_F06_I025.fcs;06087181_F07_I090.fcs;06087181_F08_AUTO.fcs;06087181_F09_L_D.fcs;06087182_F10_I002.fcs;06166211_FG04_I016.fcs;06166211_FG03_I010.fcs;06166211_FG05_I021.fcs;06166211_FG06_I022.fcs;06166211_FG07_I023.fcs;06166211_FG09_I090.fcs;06166211_FG08_I025.fcs;06166212_FG01_I002.fcs;06166211_FG_AUTO.fcs;06166211_FG_EMA.fcs;06166212_FG02_I003.fcs;06297201_F01_I010.fcs;06297201_F03_I021.fcs;06297201_F02_I016.fcs;06297201_F04_I022.fcs;06297202_F10_I002.fcs;06297201_F05_I023.fcs;06297201_F06_I025.fcs;06297201_F07_I090.fcs;06297201_F08_AUTO.fcs;06297201_F09_L_D.fcs;06297202_F11_I003.fcs;06297211_F01_I010.fcs;06297211_F03_I021.fcs;06297211_F02_I016.fcs;06297211_F05_I023.fcs;06297211_F04_I022.fcs;06297211_F06_I025.fcs;06297211_F08_AUTO.fcs;06297211_F07_I090.fcs;06297212_F10_I002.fcs;06297211_F09_L_D.fcs;06297212_F11_I003.fcs;07146101_FG03_I010.fcs;07146101_FG04_I016.fcs;07146101_FG05_I021.fcs;07146101_FG07_I023.fcs;07146101_FG06_I022.fcs;07146101_FG08_I025.fcs;07146101_FG09_I090.fcs;07146101_FG_AUTO.fcs;07146102_FG01_I002.fcs;07146101_FG_EMA.fcs;07146102_FG02_I003.fcs;07167211_F01_I010.fcs;07167211_F03_I021.fcs;07167211_F02_I016.fcs;07167211_F05_I023.fcs;07167211_F07_I090.fcs;07167211_F06_I025.fcs;07167211_F09_L_D.fcs;07167211_F08_AUTO.fcs;07167212_F11_I003.fcs;07167212_F10_I002.fcs;07177021_F02_I016.fcs;07177021_F01_I010.fcs;07177021_F03_I021.fcs;07177021_F05_I023.fcs;07177021_F07_I090.fcs;07177021_F06_I025.fcs;07177022_F10_I002.fcs;07177021_F08_AUTO.fcs;07177021_F09_L_D.fcs;07177022_F11_I003.fcs;07207331_F03_I021.fcs;07207331_F01_I010.fcs;07207331_F05_I023.fcs;07207331_F06_I025.fcs;07207332_F10_I002.fcs;07207331_F07_I090.fcs;07207331_F08_AUTO.fcs;07207331_F09_L_D.fcs;07207332_F11_I003.fcs;07276121_F02_I016.fcs;07276121_F01_I010.fcs;07276121_F03_I021.fcs;07276121_F05_I023.fcs;07276121_F04_I022.fcs;07276121_F07_I090.fcs;07276121_F06_I025.fcs;07276121_F08_AUTO.fcs;07276121_F09_EMA.fcs;07276122_F10_I002.fcs;07276122_F11_I003.fcs;07277082_F10_I002.fcs;07277081_F01_I010.fcs;07277081_F03_I021.fcs;07277081_F05_I023.fcs;07277081_F06_I025.fcs;07277081_F07_I090.fcs;07277081_F08_AUTO.fcs;07277081_F09_L_D.fcs;07277082_F11_I003.fcs;07277083_F12_I143.fcs;08026111_F01_I010.fcs;08026111_F03_I021.fcs;08026111_F02_I016.fcs;08026111_F05_I023.fcs;08026111_F04_I022.fcs;08026111_F07_I090.fcs;08026111_F06_I025.fcs;08026111_F08_AUTO.fcs;08026112_F10_I002.fcs;08026111_F09_EMA.fcs;08026112_F11_I003.fcs;08096201_F01_I010.fcs;08096201_F03_I021.fcs;08096201_F02_I016.fcs;08096201_F05_I023.fcs;08096201_F04_I022.fcs;08096202_F10_I002.fcs;08096201_F06_I025.fcs;08096201_F07_I090.fcs;08096201_F08_AUTO.fcs;08096201_F09_EMA.fcs;08096202_F11_I003.fcs;08157181_F010_L_D.fcs;08157181_F01_I010.fcs;08157181_F03_I021.fcs;08157181_F02_I016.fcs;08157181_F05_I023.fcs;08157181_F04_I022.fcs;08157181_F08_I090.fcs;08157181_F06_I025.fcs;08157182_F11_I002.fcs;08157181_F09_AUTO.fcs;08157183_F13_I143.fcs;08157182_F12_I003.fcs;08157191_F010_L_D.fcs;08157191_F01_I010.fcs;08157191_F02_I016.fcs;08157191_F03_I021.fcs;08157191_F05_I023.fcs;08157191_F04_I022.fcs;08157191_F06_I025.fcs;08157192_F11_I002.fcs;08157191_F08_I090.fcs;08157191_F09_AUTO.fcs;08157193_F13_I143.fcs;08157192_F12_I003.fcs;08296061_F02_I016.fcs;08296061_F01_I010.fcs;08296061_F03_I021.fcs;08296061_F05_I023.fcs;08296061_F04_I022.fcs;08296061_F06_I025.fcs;08296061_F07_I090.fcs;08296061_F08_AUTO.fcs;08216062_F11_I003.fcs;08296061_F09_EMA.fcs;08216062_F10_I002.fcs;09016141_F01_I010.fcs;09016141_F03_I021.fcs;09016141_F02_I016.fcs;09016141_F05_I023.fcs;09016141_F04_I022.fcs;09016142_F10_I002.fcs;09016141_F06_I025.fcs;09016141_F07_I090.fcs;09016141_F08_AUTO.fcs;09016141_F09_EMA.fcs;09016142_F11_I003.fcs;09047451_F01_I010.fcs;09047451_F03_I021.fcs;09047451_F02_I016.fcs;09047451_F07_I143.fcs;09047451_F04_I022.fcs;09047451_F05_I023.fcs;09047451_F06_I025.fcs;09047451_F09_AUTO.fcs;09047451_F08_I090.fcs;09047451_F10_L_D.fcs;09047451_F12_I003.fcs;09047451_F11_I002.fcs;09067131_F02_I016.fcs;09067131_F01_I010.fcs;09067131_F07_I143.fcs;09067131_F03_I021.fcs;09067131_F04_I022.fcs;09067131_F05_I023.fcs;09067131_F06_I025.fcs;09067131_F12_I003.fcs;09067131_F08_I090.fcs;09067131_F09_AUTO.fcs;09067131_F10_L_D.fcs;09067131_F11_I002.fcs;09156201_F02_I016.fcs;09156201_F01_I010.fcs;09156201_F03_I021.fcs;09156201_F05_I023.fcs;09156201_F04_I022.fcs;09156202_F10_I002.fcs;09156201_F06_I025.fcs;09156201_F07_I090.fcs;09156201_F08_AUTO.fcs;09156201_F09_EMA.fcs;09156202_F11_I003.fcs;09177291_F02_I016.fcs;09177291_F01_I010.fcs;09177291_F03_I021.fcs;09177291_F07_I143.fcs;09177291_F04_I022.fcs;09177291_F05_I023.fcs;09177291_F06_I025.fcs;09177291_F11_I002.fcs;09177291_F08_I090.fcs;09177291_F09_AUTO.fcs;09177291_F10_L_D.fcs;09177291_F12_I003.fcs;09196081_F01_I010.fcs;09196081_F03_I021.fcs;09196081_F02_I016.fcs;09196081_F05_I023.fcs;09196081_F04_I022.fcs;09196081_F06_I025.fcs;09196081_F07_I090.fcs;09196081_F09_EMA.fcs;09196081_F08_AUTO.fcs;09196082_F11_I003.fcs;09196082_F10_I002.fcs;09197251_F02_I016.fcs;09197251_F01_I010.fcs;09197251_F03_I021.fcs;09197251_F07_I143.fcs;09197251_F04_I022.fcs;09197251_F05_I023.fcs;09197251_F06_I025.fcs;09197251_F08_I090.fcs;09197251_F11_I002.fcs;09197251_F09_AUTO.fcs;09197251_F10_L_D.fcs;09197251_F12_I003.fcs;09216091_F01_I010.fcs;09216091_F02_I016.fcs;09216091_F03_I021.fcs;09216091_F05_I023.fcs;09216091_F04_I022.fcs;09216091_F06_I025.fcs;09216092_F11_I003.fcs;09216091_F07_I090.fcs;09216091_F08_AUTO.fcs;09216091_F09_EMA.fcs;09216092_F10_I002.fcs;09267211_F01_I010.fcs;09267211_F02_I016.fcs;09267211_F03_I021.fcs;09267211_F07_I143.fcs;09267211_F04_I022.fcs;09267211_F05_I023.fcs;09267211_F06_I025.fcs;09267211_F11_I002.fcs;09267211_F08_I090.fcs;09267211_F09_AUTO.fcs;09267211_F10_L_D.fcs;09267211_F12_I003.fcs;09277341_F01_I010.fcs;09277341_F02_I016.fcs;09277341_F03_I021.fcs;09277341_F07_I143.fcs;09277341_F04_I022.fcs;09277341_F05_I023.fcs;09277341_F06_I025.fcs;09277341_F11_I002.fcs;09277341_F08_I090.fcs;09277341_F09_AUTO.fcs;09277341_F10_L_D.fcs;09277341_F12_I003.fcs;10167081_F01_I010.fcs;10167081_F03_I021.fcs;10167081_F02_I016.fcs;10167081_F05_I023.fcs;10167081_F04_I022.fcs;10167081_F07_I143.fcs;10167081_F06_I025.fcs;10167081_F09_AUTO.fcs;10167081_F08_I090.fcs;10167081_F11_I002.fcs;10167081_F10_L_D.fcs;10167081_F12_I003.fcs;10236301_F01_I010.fcs;10236301_F02_I016.fcs;10236301_F03_I021.fcs;10236301_F05_I023.fcs;10236301_F04_I022.fcs;10236302_F11_I003.fcs;10236301_F06_I025.fcs;10236301_F07_I090.fcs;10236301_F08_AUTO.fcs;10236301_F09_EMA.fcs;10236302_F10_I002.fcs;10276151_F02_I016.fcs;10276151_F01_I010.fcs;10276151_F03_I021.fcs;10276151_F05_I023.fcs;10276151_F04_I022.fcs;10276151_F07_I090.fcs;10276151_F06_I025.fcs;10276152_F10_I002.fcs;10276151_F08_AUTO.fcs;10276151_F09_EMA.fcs;10276152_F11_I003.fcs;10276161_F01_I010.fcs;10276161_F03_I021.fcs;10276161_F02_I016.fcs;10276161_F05_I023.fcs;10276161_F04_I022.fcs;10276161_F06_I025.fcs;10276162_F10_I002.fcs;10276161_F07_I090.fcs;10276161_F08_AUTO.fcs;10276161_F09_EMA.fcs;10276162_F11_I003.fcs;10297211_F02_I016.fcs;10297211_F01_I010.fcs;10297211_F03_I021.fcs;10297211_F07_I143.fcs;10297211_F04_I022.fcs;10297211_F05_I023.fcs;10297211_F06_I025.fcs;10297211_F08_I090.fcs;10297211_F12_I003.fcs;10297211_F09_AUTO.fcs;10297211_F10_L_D.fcs;10297211_F11_I002.fcs;10316071_F03_I021.fcs;10316071_F01_I010.fcs;10316071_F02_I016.fcs;10316071_F04_I022.fcs;10316072_F10_I002.fcs;10316071_F05_I023.fcs;10316071_F06_I025.fcs;10316071_F07_I090.fcs;10316071_F08_AUTO.fcs;10316071_F09_EMA.fcs;10316072_F11_I003.fcs;11197091_F03_I021.fcs;11197091_F01_I010.fcs;11197091_F02_I016.fcs;11197091_F04_I022.fcs;11197091_F05_I023.fcs;11197091_F07_I143.fcs;11197091_F06_I025.fcs;11197091_F12_I003.fcs;11197091_F08_I090.fcs;11197091_F09_AUTO.fcs;11197091_F10_L_D.fcs;11197091_F11_I002.fcs;11197101_F02_I016.fcs;11197101_F01_I010.fcs;11197101_F03_I021.fcs;11197101_F07_I143.fcs;11197101_F04_I022.fcs;11197101_F05_I023.fcs;11197101_F06_I025.fcs;11197101_F12_I003.fcs;11197101_F08_I090.fcs;11197101_F09_AUTO.fcs;11197101_F10_L_D.fcs;11197101_F11_I002.fcs;11206211_F02_I016.fcs;11206211_F01_I010.fcs;11206211_F03_I021.fcs;11206211_F05_I023.fcs;11206211_F04_I022.fcs;11206212_F10_I002.fcs;11206211_F06_I025.fcs;11206211_F07_I090.fcs;11206211_F08_AUTO.fcs;11206211_F09_EMA.fcs;11206212_F11_I003.fcs;11216001_F01_I010.fcs;11216001_F03_I021.fcs;11216001_F02_I016.fcs;11216001_F05_I023.fcs;11216001_F04_I022.fcs;11216001_F07_I090.fcs;11216001_F06_I025.fcs;11216002_F10_I002.fcs;11216001_F08_AUTO.fcs;11216001_F09_EMA.fcs;11216002_F11_I003.fcs;11226241_F01_I010.fcs;11226241_F02_I016.fcs;11226241_F03_I021.fcs;11226241_F05_I023.fcs;11226241_F04_I022.fcs;11226241_F06_I025.fcs;11226241_F08_AUTO.fcs;11226241_F07_I090.fcs;11226242_F10_I002.fcs;11226241_F09_EMA.fcs;11226242_F11_I003.fcs;11226251_F01_I010.fcs;11226251_F03_I021.fcs;11226251_F02_I016.fcs;11226251_F05_I023.fcs;11226251_F04_I022.fcs;11226251_F06_I025.fcs;11226251_F08_AUTO.fcs;11226251_F07_I090.fcs;11226252_F10_I002.fcs;11226251_F09_EMA.fcs;11226252_F11_I003.fcs;11307161_F02_I016.fcs;11307161_F01_I010.fcs;11307161_F03_I021.fcs;11307161_F07_I143.fcs;11307161_F04_I022.fcs;11307161_F05_I023.fcs;11307161_F06_I025.fcs;11307161_F11_I002.fcs;11307161_F08_I090.fcs;11307161_F09_AUTO.fcs;11307161_F10_L_D.fcs;11307161_F12_I003.fcs;12107091_F02_I016.fcs;12107091_F01_I010.fcs;12107091_F03_I021.fcs;12107091_F07_I143.fcs;12107091_F04_I022.fcs;12107091_F05_I023.fcs;12107091_F06_I025.fcs;12107091_F08_I090.fcs;12107091_F09_AUTO.fcs;12107091_F11_I002.fcs;12107091_F10_L_D.fcs;12107091_F12_I003.fcs;12107141_F01_I010.fcs;12107141_F03_I021.fcs;12107141_F02_I016.fcs;12107141_F04_I022.fcs;12107141_F07_I143.fcs;12107141_F05_I023.fcs;12107141_F06_I025.fcs;12107141_F11_I002.fcs;12107141_F08_I090.fcs;12107141_F09_AUTO.fcs;12107141_F10_L_D.fcs;12107141_F12_I003.fcs;12156221_F01_I010.fcs;12156221_F03_I021.fcs;12156221_F02_I016.fcs;12156221_F05_I023.fcs;12156221_F04_I022.fcs;12156221_F06_I025.fcs;12156221_F08_AUTO.fcs;12156221_F07_I090.fcs;12156222_F10_I002.fcs;12156221_F09_EMA.fcs;12156222_F11_I003.fcs;12156231_F02_I016.fcs;12156231_F01_I010.fcs;12156231_F03_I021.fcs;12156231_F05_I023.fcs;12156231_F04_I022.fcs;12156231_F06_I025.fcs;12156231_F07_I090.fcs;12247371_F02_I016.fcs;12156231_F09_EMA.fcs;12156231_F08_AUTO.fcs;12156232_F10_I002.fcs;12247371_F01_I010.fcs;12156232_F11_I003.fcs;12247371_F03_I021.fcs;12247371_F07_I143.fcs;12247371_F04_I022.fcs;12247371_F05_I023.fcs;12247371_F06_I025.fcs;12247371_F08_I090.fcs;12247371_F09_AUTO.fcs;12247371_F12_I003.fcs;12247371_F10_L_D.fcs;12247371_F11_I002.fcs;12247381_F02_I016.fcs;12247381_F01_I010.fcs;12247381_F03_I021.fcs;12247381_F07_I143.fcs;12247381_F04_I022.fcs;12247381_F05_I023.fcs;12247381_F06_I025.fcs;12247381_F08_I090.fcs;12247381_F11_I002.fcs;12247381_F09_AUTO.fcs;12247381_F10_L_D.fcs;12247381_F12_I003.fcs;12276001_F01_I010.fcs;12276001_F03_I021.fcs;12276001_F02_I016.fcs;12276001_F05_I023.fcs;12276001_F04_I022.fcs;12276001_F06_I025.fcs;12276002_F10_I002.fcs;12276001_F07_I090.fcs;12276001_F08_AUTO.fcs;12276001_F09_EMA.fcs;12276002_F11_I003.fcs;20080117260_F02_I016.fcs;20080117260_F01_I010.fcs;20080117260_F07_I143.fcs;20080117260_F03_I021.fcs;20080117260_F04_I022.fcs;20080117260_F05_I023.fcs;20080117260_F06_I025.fcs;20080117260_F11_I002.fcs;20080117260_F08_I090.fcs;20080117260_F09_AUTO.fcs;20080117260_F10_L_D.fcs;20080117270_F02_I016.fcs;20080117260_F12_I003.fcs;20080117270_F01_I010.fcs;20080117270_F07_I143.fcs;20080117270_F03_I021.fcs;20080117270_F04_I022.fcs;20080117270_F05_I023.fcs;20080117270_F06_I025.fcs;20080117270_F11_I002.fcs;20080117270_F08_I090.fcs;20080117270_F09_AUTO.fcs;20080117270_F10_L_D.fcs;20080117270_F12_I003.fcs;20080122110_F02_I016.fcs;20080122110_F01_I010.fcs;20080122110_F03_I021.fcs;20080122110_F07_I143.fcs;20080122110_F04_I022.fcs;20080122110_F05_I023.fcs;20080122110_F06_I025.fcs;20080122110_F08_I090.fcs;20080122110_F11_I002.fcs;20080122110_F09_AUTO.fcs;20080122110_F10_L_D.fcs;20080122110_F12_I003.fcs;20080124220_F01_I010.fcs;20080124220_F02_I016.fcs;20080124220_F03_I021.fcs;20080124220_F07_I143.fcs;20080124220_F04_I022.fcs;20080124220_F05_I023.fcs;20080124220_F06_I025.fcs;20080124220_F11_I002.fcs;20080124220_F08_I090.fcs;20080124220_F09_AUTO.fcs;20080124220_F10_L_D.fcs;20080124220_F12_I003.fcs;20080202150_F02_I016.fcs;20080202150_F01_I010.fcs;20080202150_F03_I021.fcs;20080202150_F07_I143.fcs;20080202150_F04_I022.fcs;20080202150_F05_I023.fcs;20080202150_F06_I025.fcs;20080202150_F11_I002.fcs;20080202150_F08_I090.fcs;20080202150_F09_AUTO.fcs;20080202150_F10_L_D.fcs;20080202150_F12_I003.fcs;20080205350_F02_I016.fcs;20080205350_F01_I010.fcs;20080205350_F03_I021.fcs;20080205350_F07_I143.fcs;20080205350_F04_I022.fcs;20080205350_F05_I023.fcs;20080205350_F06_I025.fcs;20080205350_F09_AUTO.fcs;20080205350_F08_I090.fcs;20080205350_F10_L_D.fcs;20080205350_F11_I002.fcs;20080205350_F12_I003.fcs;20080205550_F01_I010.fcs;20080205550_F02_I016.fcs;20080205550_F03_I021.fcs;20080205550_F04_I022.fcs;20080205550_F05_I023.fcs;20080205550_F07_I143.fcs;20080205550_F06_I025.fcs;20080205550_F09_AUTO.fcs;20080205550_F08_I090.fcs;20080205550_F11_I002.fcs;20080205550_F10_L_D.fcs;20080205550_F12_I003.fcs;20080219170_F01_I010.fcs;20080219170_F03_I021.fcs;20080219170_F02_I016.fcs;20080219170_F07_I143.fcs;20080219170_F04_I022.fcs;20080219170_F05_I023.fcs;20080219170_F06_I025.fcs;20080219170_F08_I090.fcs;20080221180_F01_I010.fcs;20080219170_F09_AUTO.fcs;20080219170_F10_L_D.fcs;20080221180_F03_I021.fcs;20080221180_F02_I016.fcs;20080221180_F05_I023.fcs;20080221180_F04_I022.fcs;20080221180_F07_I143.fcs;20080221180_F06_I025.fcs;20080221180_F09_AUTO.fcs;20080221180_F08_I090.fcs;20080221180_F11_I002.fcs;20080221180_F10_L_D.fcs;20080222290_F02_I016.fcs;20080221180_F12_I003.fcs;20080222290_F01_I010.fcs;20080222290_F03_I021.fcs;20080222290_F07_I143.fcs;20080222290_F04_I022.fcs;20080222290_F05_I023.fcs;20080222290_F06_I025.fcs;20080222290_F08_I090.fcs;20080222290_F12_I003.fcs;20080222290_F09_AUTO.fcs;20080222290_F10_L_D.fcs;20080222290_F11_I002.fcs;20080314200_F02_I016.fcs;20080314200_F01_I010.fcs;20080314200_F03_I021.fcs;20080314200_F07_I143.fcs;20080314200_F04_I022.fcs;20080314200_F05_I023.fcs;20080314200_F06_I025.fcs;20080314200_F12_I003.fcs;20080314200_F08_I090.fcs;20080314200_F09_AUTO.fcs;20080314200_F10_L_D.fcs;20080314200_F11_I002.fcs;20080314290_F02_I016.fcs;20080314290_F01_I010.fcs;20080314290_F03_I021.fcs;20080314290_F07_I143.fcs;20080314290_F04_I022.fcs;20080314290_F05_I023.fcs;20080314290_F06_I025.fcs;20080314290_F08_I090.fcs;20080314290_F11_I002.fcs;20080314290_F09_AUTO.fcs;20080314290_F10_L_D.fcs;20080314290_F12_I003.fcs;20080326210_F02_I016.fcs;20080326210_F01_I010.fcs;20080326210_F03_I021.fcs;20080326210_F07_I143.fcs;20080326210_F04_I022.fcs;20080326210_F05_I023.fcs;20080326210_F06_I025.fcs;20080326210_F12_I003.fcs;20080326210_F08_I090.fcs;20080326210_F09_AUTO.fcs;20080326210_F10_L_D.fcs;20080326210_F11_I002.fcs;20080326220_F02_I016.fcs;20080326220_F01_I010.fcs;20080326220_F03_I021.fcs;20080326220_F07_I143.fcs;20080326220_F04_I022.fcs;20080326220_F05_I023.fcs;20080326220_F06_I025.fcs;20080326220_F11_I002.fcs;20080326220_F08_I090.fcs;20080326220_F09_AUTO.fcs;20080326220_F10_L_D.fcs;20080326220_F12_I003.fcs;20080411170_F02_I016.fcs;20080411170_F01_I010.fcs;20080411170_F03_I021.fcs;20080411170_F07_I143.fcs;20080411170_F04_I022.fcs;20080411170_F05_I023.fcs;20080411170_F06_I025.fcs;20080411170_F09_AUTO.fcs;20080411170_F08_I090.fcs;20080411170_F11_I002.fcs;20080411170_F10_L_D.fcs;20080411170_F12_I003.fcs;20080424190_F02_I016.fcs;20080424190_F01_I010.fcs;20080424190_F03_I021.fcs;20080424190_F07_I143.fcs;20080424190_F04_I022.fcs;20080424190_F05_I023.fcs;20080424190_F06_I025.fcs;20080424190_F12_I003.fcs;20080424190_F08_I090.fcs;20080424190_F09_AUTO.fcs;20080424190_F10_L_D.fcs;20080424190_F11_I002.fcs;20080426040_F02_I016.fcs;20080426040_F01_I010.fcs;20080426040_F03_I021.fcs;20080426040_F07_I143.fcs;20080426040_F04_I022.fcs;20080426040_F05_I023.fcs;20080426040_F06_I025.fcs;20080426040_F09_AUTO.fcs;20080426040_F08_I090.fcs;20080426040_F12_I003.fcs;20080426040_F10_L_D.fcs;20080426040_F11_I002.fcs;20080428010_F02_I016.fcs;20080428010_F01_I010.fcs;20080428010_F03_I021.fcs;20080428010_F07_I143.fcs;20080428010_F04_I022.fcs;20080428010_F05_I023.fcs;20080428010_F06_I025.fcs;20080428010_F11_I002.fcs;20080428010_F08_I090.fcs;20080428010_F09_AUTO.fcs;20080428010_F10_L_D.fcs;20080428010_F12_I003.fcs;20080509260_F02_I016.fcs;20080509260_F01_I010.fcs;20080509260_F03_I021.fcs;20080509260_F07_I143.fcs;20080509260_F04_I022.fcs;20080509260_F05_I023.fcs;20080509260_F06_I025.fcs;20080509260_F08_I090.fcs;20080509260_F09_AUTO.fcs;20080509260_F10_L_D.fcs;20080509260_F12_I003.fcs;20080509260_F11_I002.fcs;20080516250_F02_I016.fcs;20080516250_F01_I010.fcs;20080516250_F03_I021.fcs;20080516250_F07_I143.fcs;20080516250_F04_I022.fcs;20080516250_F05_I023.fcs;20080516250_F06_I025.fcs;20080516250_F11_I002.fcs;20080516250_F08_I090.fcs;20080516250_F09_AUTO.fcs;20080516250_F10_L_D.fcs;20080516250_F12_I003.fcs;20080522160_F02_I016.fcs;20080522160_F01_I010.fcs;20080522160_F03_I021.fcs;20080522160_F07_I143.fcs;20080522160_F04_I022.fcs;20080522160_F05_I023.fcs;20080522160_F06_I025.fcs;20080522160_F08_I090.fcs;20080522160_F12_I003.fcs;20080522160_F09_AUTO.fcs;20080522160_F10_L_D.fcs;20080522160_F11_I002.fcs;20080522250_F02_I016.fcs;20080522250_F01_I010.fcs;20080522250_F03_I021.fcs;20080522250_F07_I143.fcs;20080522250_F04_I022.fcs;20080522250_F05_I023.fcs;20080522250_F06_I025.fcs;20080522250_F09_AUTO.fcs;20080522250_F08_I090.fcs;20080522250_F12_I003.fcs;20080522250_F10_L_D.fcs;20080522250_F11_I002.fcs;20080612200_F02_I016.fcs;20080612200_F01_I010.fcs;20080612200_F03_I021.fcs;20080612200_F07_I143.fcs;20080612200_F04_I022.fcs;20080612200_F05_I023.fcs;20080612200_F06_I025.fcs;20080612200_F08_I090.fcs;20080612200_F10_L_D.fcs;20080612200_F09_AUTO.fcs;20080612200_F12_I003.fcs;20080612200_F11_I002.fcs;20080612210_F03_I021.fcs;20080612210_F01_I010.fcs;20080612210_F02_I016.fcs;20080612210_F05_I023.fcs;20080612210_F04_I022.fcs;20080612210_F07_I143.fcs;20080612210_F06_I025.fcs;20080612210_F12_I003.fcs;20080612210_F08_I090.fcs;20080612210_F09_AUTO.fcs;20080612210_F10_L_D.fcs;20080612210_F11_I002.fcs;20080612220_F01_I010.fcs;20080612220_F02_I016.fcs;20080612220_F03_I021.fcs;20080612220_F07_I143.fcs;20080612220_F04_I022.fcs;20080612220_F05_I023.fcs;20080612220_F06_I025.fcs;20080612220_F09_AUTO.fcs;20080612220_F08_I090.fcs;20080612220_F11_I002.fcs;20080612220_F10_L_D.fcs;20080612220_F12_I003.fcs;20080620250_F01_I010.fcs;20080620250_F03_I021.fcs;20080620250_F02_I016.fcs;20080620250_F05_I023.fcs;20080620250_F04_I022.fcs;20080620250_F07_I143.fcs;20080620250_F06_I025.fcs;20080620250_F08_I090.fcs;20080620250_F11_I002.fcs;20080620250_F09_AUTO.fcs;20080620250_F10_L_D.fcs;20080709200_F02_I016.fcs;20080620250_F12_I003.fcs;20080709200_F01_I010.fcs;20080709200_F07_I143.fcs;20080709200_F03_I021.fcs;20080709200_F04_I022.fcs;20080709200_F05_I023.fcs;20080709200_F06_I025.fcs;20080709200_F08_I090.fcs;20080709200_F12_I003.fcs;20080709200_F09_AUTO.fcs;20080709200_F10_L_D.fcs;20080709200_F11_I002.fcs;20080710010_F02_I016.fcs;20080710010_F01_I010.fcs;20080710010_F03_I021.fcs;20080710010_F07_I143.fcs;20080710010_F04_I022.fcs;20080710010_F05_I023.fcs;20080710010_F06_I025.fcs;20080710010_F08_I090.fcs;20080710010_F11_I002.fcs;20080710010_F09_AUTO.fcs;20080710010_F10_L_D.fcs;20080710010_F12_I003.fcs;20080711150_F01_I010.fcs;20080711150_F02_I016.fcs;20080711150_F03_I021.fcs;20080711150_F07_I143.fcs;20080711150_F04_I022.fcs;20080711150_F05_I023.fcs;20080711150_F06_I025.fcs;20080711150_F11_I002.fcs;20080711150_F08_I090.fcs;20080711150_F09_AUTO.fcs;20080711150_F10_L_D.fcs;20080711150_F12_I003.fcs;20080724130_F01_I010.fcs;20080724130_F02_I016.fcs;20080724130_F03_I021.fcs;20080724130_F04_I022.fcs;20080724130_F07_I143.fcs;20080724130_F05_I023.fcs;20080724130_F06_I025.fcs;20080724130_F09_AUTO.fcs;20080724130_F08_I090.fcs;20080724130_F11_I002.fcs;20080724130_F10_L_D.fcs;20080724130_F12_I003.fcs;20080725170_F02_I016.fcs;20080725170_F01_I010.fcs;20080725170_F03_I021.fcs;20080725170_F07_I143.fcs;20080725170_F04_I022.fcs;20080725170_F05_I023.fcs;20080725170_F06_I025.fcs;20080725170_F09_AUTO.fcs;20080725170_F08_I090.fcs;20080725170_F11_I002.fcs;20080725170_F10_L_D.fcs;20080725170_F12_I003.fcs;20080801160_F02_I016.fcs;20080801160_F01_I010.fcs;20080801160_F03_I021.fcs;20080801160_F07_I143.fcs;20080801160_F04_I022.fcs;20080801160_F05_I023.fcs;20080801160_F06_I025.fcs;20080801160_F08_I090.fcs;20080801160_F11_I002.fcs;20080801160_F09_AUTO.fcs;20080801160_F10_L_D.fcs;20080801160_F12_I003.fcs;20080806160_F01_I010.fcs;20080806160_F03_I021.fcs;20080806160_F02_I016.fcs;20080806160_F04_I022.fcs;20080806160_F07_I143.fcs;20080806160_F05_I023.fcs;20080806160_F06_I025.fcs;20080806160_F08_I090.fcs;20080806160_F11_I002.fcs;20080806160_F09_AUTO.fcs;20080806160_F10_L_D.fcs;20080806160_F12_I003.fcs;20080806170_F02_I016.fcs;20080806170_F01_I010.fcs;20080806170_F03_I021.fcs;20080806170_F07_I143.fcs;20080806170_F04_I022.fcs;20080806170_F05_I023.fcs;20080806170_F06_I025.fcs;20080806170_F08_I090.fcs;20080806170_F11_I002.fcs;20080806170_F09_AUTO.fcs;20080806170_F10_L_D.fcs;20080806170_F12_I003.fcs;20080815120_F01_I010.fcs;20080815120_F02_I016.fcs;20080815120_F03_I021.fcs;20080815120_F07_I143.fcs;20080815120_F04_I022.fcs;20080815120_F05_I023.fcs;20080815120_F06_I025.fcs;20080815120_F09_AUTO.fcs;20080815120_F08_I090.fcs;20080815120_F11_I002.fcs;20080815120_F10_L_D.fcs;20080816010_F01_I010.fcs;20080815120_F12_I003.fcs;20080816010_F03_I021.fcs;20080816010_F02_I016.fcs;20080816010_F04_I022.fcs;20080816010_F07_I143.fcs;20080816010_F05_I023.fcs;20080816010_F06_I025.fcs;20080816010_F08_I090.fcs;20080816010_F10_L_D.fcs;20080816010_F09_AUTO.fcs;20080816010_F12_I003.fcs;20080816010_F11_I002.fcs;20080912140_F03_I021.fcs;20080912140_F01_I010.fcs;20080912140_F02_I016.fcs;20080912140_F04_I022.fcs;20080912140_F07_I143.fcs;20080912140_F05_I023.fcs;20080912140_F06_I025.fcs;20080912140_F11_I002.fcs;20080912140_F08_I090.fcs;20080912140_F09_AUTO.fcs;20080912140_F10_L_D.fcs;20080912140_F12_I003.fcs;20080920040_F02_I016.fcs;20080920040_F01_I010.fcs;20080920040_F03_I021.fcs;20080920040_F05_I023.fcs;20080920040_F04_I022.fcs;20080920040_F06_I025.fcs;20080920040_F07_I143.fcs;20080920040_F12_I003.fcs;20080920040_F08_I090.fcs;20080920040_F09_AUTO.fcs;20080920040_F10_L_D.fcs;20080920040_F11_I002.fcs;20080925160_F02_I016.fcs;20080925160_F01_I010.fcs;20080925160_F03_I021.fcs;20080925160_F07_I143.fcs;20080925160_F04_I022.fcs;20080925160_F05_I023.fcs;20080925160_F06_I025.fcs;20080925160_F08_I090.fcs;20080925160_F11_I002.fcs;20080925160_F09_AUTO.fcs;20080925160_F10_L_D.fcs;20080925160_F12_I003.fcs;20081001150_F01_I010.fcs;20081001150_F03_I021.fcs;20081001150_F02_I016.fcs;20081001150_F04_I022.fcs;20081001150_F07_I143.fcs;20081001150_F05_I023.fcs;20081001150_F06_I025.fcs;20081001150_F09_AUTO.fcs;20081001150_F08_I090.fcs;20081001150_F12_I003.fcs;20081001150_F10_L_D.fcs;20081001150_F11_I002.fcs;20081010110_F01_I010.fcs;20081010110_F02_I016.fcs;20081010110_F03_I021.fcs;20081010110_F07_I143.fcs;20081010110_F04_I022.fcs;20081010110_F05_I023.fcs;20081010110_F06_I025.fcs;20081010110_F09_AUTO.fcs;20081010110_F08_I090.fcs;20081010110_F10_L_D.fcs;20081010110_F12_I003.fcs;20081010110_F11_I002.fcs;20081010120_F02_I016.fcs;20081010120_F01_I010.fcs;20081010120_F03_I021.fcs;20081010120_F07_I143.fcs;20081010120_F04_I022.fcs;20081010120_F05_I023.fcs;20081010120_F06_I025.fcs;20081010120_F08_I090.fcs;20081010120_F11_I002.fcs;20081010120_F09_AUTO.fcs;20081010120_F10_L_D.fcs;20081010120_F12_I003.fcs;20081016170_F02_I016.fcs;20081016170_F01_I010.fcs;20081016170_F03_I021.fcs;20081016170_F07_I143.fcs;20081016170_F04_I022.fcs;20081016170_F05_I023.fcs;20081016170_F06_I025.fcs;20081016170_F08_I090.fcs;20081016170_F11_I002.fcs;20081016170_F09_AUTO.fcs;20081016170_F10_L_D.fcs;20081016170_F12_I003.fcs;20081024240_F02_I016.fcs;20081024240_F01_I010.fcs;20081024240_F03_I021.fcs;20081024240_F07_I143.fcs;20081024240_F04_I022.fcs;20081024240_F05_I023.fcs;20081024240_F06_I025.fcs;20081024240_F09_AUTO.fcs;20081024240_F08_I090.fcs;20081024240_F11_I002.fcs;20081024240_F10_L_D.fcs;20081024240_F12_I003.fcs;20081030230_F01_I010.fcs;20081030230_F02_I016.fcs;20081030230_F03_I021.fcs;20081030230_F05_I023.fcs;20081030230_F04_I022.fcs;20081030230_F07_I143.fcs;20081030230_F06_I025.fcs;20081030230_F08_I090.fcs;20081030230_F09_AUTO.fcs;20081030230_F10_L_D.fcs;20081030230_F12_I003.fcs;20081030230_F11_I002.fcs;20081031220_F01_I010.fcs;20081031220_F04_I022.fcs;20081031220_F03_I021.fcs;20081031220_F02_I016.fcs;20081124060_F02_I016.fcs;20081031220_F06_I025.fcs;20081031220_F05_I023.fcs;20081031220_F08_I090.fcs;20081031220_F07_I143.fcs;20081031220_F09_AUTO.fcs;20081031220_F11_I002.fcs;20081031220_F10_L_D.fcs;20081031220_F12_I003.fcs;20081124060_F01_I010.fcs;20081124060_F03_I021.fcs;20081124060_F07_I143.fcs;20081124060_F04_I022.fcs;20081124060_F05_I023.fcs;20081124060_F06_I025.fcs;20081124060_F08_I090.fcs;20081124060_F09_AUTO.fcs;20081124060_F10_L_D.fcs;20081124060_F12_I003.fcs;20081124060_F11_I002.fcs;20081209160_F01_I010.fcs;20081209160_F03_I021.fcs;20081209160_F02_I016.fcs;20081209160_F07_I143.fcs;20081209160_F04_I022.fcs;20081209160_F05_I023.fcs;20081209160_F06_I025.fcs;20081209160_F08_I090.fcs;20081209160_F11_I002.fcs;20081209160_F09_AUTO.fcs;20081209160_F10_L_D.fcs;20081209160_F12_I003.fcs;20081217230_F01_I010.fcs;20081217230_F03_I021.fcs;20081217230_F02_I016.fcs;20081217230_F05_I023.fcs;20081217230_F04_I022.fcs;20081217230_F07_I143.fcs;20081217230_F06_I025.fcs;20081217230_F09_AUTO.fcs;20081217230_F08_I090.fcs;20081217230_F11_I002.fcs;20081217230_F10_L_D.fcs;20081219290_F01_I010.fcs;20081217230_F12_I003.fcs;20081219290_F03_I021.fcs;20081219290_F02_I016.fcs;20081219290_F04_I022.fcs;20081219290_F07_I143.fcs;20081219290_F05_I023.fcs;20081219290_F06_I025.fcs;20081219290_F08_I090.fcs;20081219290_F12_I003.fcs;20081219290_F09_AUTO.fcs;20081219290_F10_L_D.fcs;20081219290_F11_I002.fcs;20081220020_F01_I010.fcs;20081220020_F02_I016.fcs;20081220020_F03_I021.fcs;20081220020_F07_I143.fcs;20081220020_F04_I022.fcs;20081220020_F05_I023.fcs;20081220020_F06_I025.fcs;20081220020_F11_I002.fcs;20081220020_F08_I090.fcs;20081220020_F09_AUTO.fcs;20081220020_F10_L_D.fcs;20081220020_F12_I003.fcs;20081220030_F02_I016.fcs;20081220030_F01_I010.fcs;20081220030_F03_I021.fcs;20081220030_F07_I143.fcs;20081220030_F04_I022.fcs;20081220030_F05_I023.fcs;20081220030_F06_I025.fcs;20081220030_F11_I002.fcs;20081220030_F08_I090.fcs;20081220030_F09_AUTO.fcs;20081220030_F10_L_D.fcs;20081220030_F12_I003.fcs;20081222070_F01_I010.fcs;20081222070_F02_I016.fcs;20081222070_F03_I021.fcs;20081222070_F05_I023.fcs;20081222070_F04_I022.fcs;20081222070_F07_I143.fcs;20081222070_F06_I025.fcs;20081222070_F08_I090.fcs;20081222070_F11_I002.fcs;20081222070_F09_AUTO.fcs;20081222070_F10_L_D.fcs;20090103030_F01_I010.fcs;20081222070_F12_I003.fcs;20090103030_F02_I016.fcs;20090103030_F03_I021.fcs;20090103030_F04_I022.fcs;20090103030_F07_I143.fcs;20090103030_F05_I023.fcs;20090103030_F06_I025.fcs;20090103030_F11_I002.fcs;20090103030_F08_I090.fcs;20090103030_F09_AUTO.fcs;20090103030_F10_L_D.fcs;20090103030_F12_I003.fcs;20090106170_F01_I010.fcs;20090106170_F02_I016.fcs;20090106170_F03_I021.fcs;20090106170_F04_I022.fcs;20090106170_F05_I023.fcs;20090106170_F07_I143.fcs;20090106170_F06_I025.fcs;20090106170_F08_I090.fcs;20090106170_F11_I002.fcs;20090106170_F09_AUTO.fcs;20090106170_F10_L_D.fcs;20090106200_F02_I016.fcs;20090106170_F12_I003.fcs;20090106200_F01_I010.fcs;20090106200_F03_I021.fcs;20090106200_F07_I143.fcs;20090106200_F04_I022.fcs;20090106200_F05_I023.fcs;20090106200_F06_I025.fcs;20090106200_F08_I090.fcs;20090106200_F11_I002.fcs;20090106200_F09_AUTO.fcs;20090106200_F10_L_D.fcs;20090106200_F12_I003.fcs;20090116220_F01_I010.fcs;20090116220_F03_I021.fcs;20090116220_F02_I016.fcs;20090116220_F05_I023.fcs;20090116220_F04_I022.fcs;20090116220_F07_I143.fcs;20090116220_F06_I025.fcs;20090116220_F08_I090.fcs;20090116220_F11_I002.fcs;20090116220_F09_AUTO.fcs;20090116220_F10_L_D.fcs;20090121270_F02_I016.fcs;20090116220_F12_I003.fcs;20090121270_F01_I010.fcs;20090121270_F07_I143.fcs;20090121270_F03_I021.fcs;20090121270_F04_I022.fcs;20090121270_F05_I023.fcs;20090121270_F06_I025.fcs;20090121270_F08_I090.fcs;20090121270_F11_I002.fcs;20090121270_F09_AUTO.fcs;20090121270_F10_L_D.fcs;20090121270_F12_I003.fcs;20090123210_F02_I016.fcs;20090123210_F01_I010.fcs;20090123210_F03_I021.fcs;20090123210_F07_I143.fcs;20090123210_F04_I022.fcs;20090123210_F05_I023.fcs;20090123210_F06_I025.fcs;20090123210_F09_AUTO.fcs;20090123210_F08_I090.fcs;20090123210_F10_L_D.fcs;20090123210_F12_I003.fcs;20090123210_F11_I002.fcs;20090217190_F01_I010.fcs;20090217190_F03_I021.fcs;20090217190_F02_I016.fcs;20090217190_F04_I022.fcs;20090217190_F05_I023.fcs;20090217190_F07_I143.fcs;20090217190_F06_I025.fcs;20090217190_F08_I090.fcs;20090217190_F10_L_D.fcs;20090217190_F09_AUTO.fcs;20090217190_F12_I003.fcs;20090217190_F11_I002.fcs;20090220060_F02_I016.fcs;20090220060_F01_I010.fcs;20090220060_F03_I021.fcs;20090220060_F04_I022.fcs;20090220060_F07_I143.fcs;20090220060_F05_I023.fcs;20090220060_F06_I025.fcs;20090220060_F09_AUTO.fcs;20090220060_F08_I090.fcs;20090220060_F11_I002.fcs;20090220060_F10_L_D.fcs;20090306130_F02_I016.fcs;20090220060_F12_I003.fcs;20090306130_F01_I010.fcs;20090306130_F03_I021.fcs;20090306130_F07_I143.fcs;20090306130_F04_I022.fcs;20090306130_F05_I023.fcs;20090306130_F06_I025.fcs;20090306130_F09_AUTO.fcs;20090306130_F08_I090.fcs;20090306130_F11_I002.fcs;20090306130_F10_L_D.fcs;20090306130_F12_I003.fcs;20090311150_F01_I010.fcs;20090311150_F03_I021.fcs;20090311150_F02_I016.fcs;20090311150_F05_I023.fcs;20090311150_F04_I022.fcs;20090311150_F07_I143.fcs;20090311150_F06_I025.fcs;20090311150_F09_AUTO.fcs;20090311150_F08_I090.fcs;20090311150_F11_I002.fcs;20090311150_F10_L_D.fcs;20090311150_F12_I003.fcs;20090401180_F01_I010.fcs;20090401180_F02_I016.fcs;20090401180_F03_I021.fcs;20090401180_F07_I143.fcs;20090401180_F04_I022.fcs;20090401180_F05_I023.fcs;20090401180_F06_I025.fcs;20090401180_F11_I002.fcs;20090401180_F08_I090.fcs;20090401180_F09_AUTO.fcs;20090401180_F10_L_D.fcs;20090401180_F12_I003.fcs;20090415160_F01_I010.fcs;20090415160_F03_I021.fcs;20090415160_F02_I016.fcs;20090415160_F07_I143.fcs;20090415160_F04_I022.fcs;20090415160_F05_I023.fcs;20090415160_F06_I025.fcs;20090415160_F08_I090.fcs;20090415160_F11_I002.fcs;20090415160_F09_AUTO.fcs;20090415160_F10_L_D.fcs;20090427060_F01_I010.fcs;20090415160_F12_I003.fcs;20090427060_F03_I021.fcs;20090427060_F02_I016.fcs;20090427060_F07_I143.fcs;20090427060_F04_I022.fcs;20090427060_F05_I023.fcs;20090427060_F06_I025.fcs;20090427060_F11_I002.fcs;20090427060_F08_I090.fcs;20090427060_F09_AUTO.fcs;20090427060_F10_L_D.fcs;20090427060_F12_I003.fcs;20090429240_F01_I010.fcs;20090429240_F03_I021.fcs;20090429240_F02_I016.fcs;20090429240_F05_I023.fcs;20090429240_F04_I022.fcs;20090429240_F07_I143.fcs;20090429240_F06_I025.fcs;20090429240_F08_I090.fcs;20090429240_F11_I002.fcs;20090429240_F09_AUTO.fcs;20090429240_F10_L_D.fcs;20090429240_F12_I003.fcs;20090512410_F01_I010.fcs;20090512410_F03_I021.fcs;20090512410_F02_I016.fcs;20090512410_F05_I023.fcs;20090512410_F04_I022.fcs;20090512410_F07_I143.fcs;20090512410_F06_I025.fcs;20090512410_F08_I090.fcs;20090512410_F10_L_D.fcs;20090512410_F09_AUTO.fcs;20090512410_F11_I002.fcs;20090528160_F01_I010.fcs;20090512410_F12_I003.fcs;20090528160_F03_I021.fcs;20090528160_F02_I016.fcs;20090528160_F05_I023.fcs;20090528160_F04_I022.fcs;20090528160_F07_I143.fcs;20090528160_F06_I025.fcs;20090528160_F08_I090.fcs;20090528160_F11_I002.fcs;20090528160_F09_AUTO.fcs;20090528160_F10_L_D.fcs;20090528270_F01_I010.fcs;20090528160_F12_I003.fcs;20090528270_F02_I016.fcs;20090528270_F03_I021.fcs;20090528270_F07_I143.fcs;20090528270_F04_I022.fcs;20090528270_F05_I023.fcs;20090528270_F06_I025.fcs;20090528270_F08_I090.fcs;20090528270_F11_I002.fcs;20090528270_F09_AUTO.fcs;20090528270_F10_L_D.fcs;20090609140_F01_I010.fcs;20090528270_F12_I003.fcs;20090609140_F02_I016.fcs;20090609140_F03_I021.fcs;20090609140_F07_I143.fcs;20090609140_F04_I022.fcs;20090609140_F05_I023.fcs;20090609140_F06_I025.fcs;20090609140_F08_I090.fcs;20090609140_F11_I002.fcs;20090609140_F09_AUTO.fcs;20090609140_F10_L_D.fcs;20090610190_F01_I010.fcs;20090609140_F12_I003.fcs;20090610190_F02_I016.fcs;20090610190_F03_I021.fcs;20090610190_F07_I143.fcs;20090610190_F04_I022.fcs;20090610190_F05_I023.fcs;20090610190_F06_I025.fcs;20090610190_F11_I002.fcs;20090610190_F08_I090.fcs;20090610190_F09_AUTO.fcs;20090610190_F10_L_D.fcs;20090610190_F12_I003.fcs;20090613080_F01_I010.fcs;20090613080_F02_I016.fcs;20090613080_F03_I021.fcs;20090613080_F07_I143.fcs;20090613080_F04_I022.fcs;20090613080_F05_I023.fcs;20090613080_F06_I025.fcs;20090613080_F11_I002.fcs;20090613080_F08_I090.fcs;20090613080_F09_AUTO.fcs;20090613080_F10_L_D.fcs;20090613080_F12_I003.fcs;20090701280_F01_I010.fcs;20090701280_F03_I021.fcs;20090701280_F02_I016.fcs;20090701280_F05_I023.fcs;20090701280_F04_I022.fcs;20090701280_F06_I025.fcs;20090701280_F07_I143.fcs;20090701280_F09_AUTO.fcs;20090701280_F08_I090.fcs;20090701280_F11_I002.fcs;20090701280_F10_L_D.fcs;20090701280_F12_I003.fcs;20090706130_F01_I010.fcs;20090706130_F02_I016.fcs;20090706130_F03_I021.fcs;20090706130_F05_I023.fcs;20090706130_F04_I022.fcs;20090706130_F06_I025.fcs;20090706130_F07_I143.fcs;20090706130_F08_I090.fcs;20090706130_F12_I003.fcs;20090706130_F09_AUTO.fcs;20090706130_F10_L_D.fcs;20090706130_F11_I002.fcs;20090708300_F01_I010.fcs;20090708300_F02_I016.fcs;20090708300_F03_I021.fcs;20090708300_F05_I023.fcs;20090708300_F04_I022.fcs;20090708300_F06_I025.fcs;20090708300_F07_I143.fcs;20090708300_F09_AUTO.fcs;20090708300_F08_I090.fcs;20090708300_F10_L_D.fcs;20090708300_F12_I003.fcs;20090708300_F11_I002.fcs;20090710250_F01_I010.fcs;20090710250_F02_I016.fcs;20090710250_F03_I021.fcs;20090710250_F05_I023.fcs;20090710250_F04_I022.fcs;20090710250_F07_I143.fcs;20090710250_F06_I025.fcs;20090710250_F11_I002.fcs;20090710250_F08_I090.fcs;20090710250_F09_AUTO.fcs;20090710250_F10_L_D.fcs;20090731350_F01_I010.fcs;20090710250_F12_I003.fcs;20090731350_F02_I016.fcs;20090731350_F03_I021.fcs;20090731350_F05_I023.fcs;20090731350_F04_I022.fcs;20090731350_F06_I025.fcs;20090731350_F07_I143.fcs;20090731350_F09_AUTO.fcs;20090731350_F08_I090.fcs;20090731350_F12_I003.fcs;20090731350_F10_L_D.fcs;20090731350_F11_I002.fcs;20090817030_F01_I010.fcs;20090817030_F02_I016.fcs;20090817030_F03_I021.fcs;20090817030_F05_I023.fcs;20090817030_F04_I022.fcs;20090817030_F07_I143.fcs;20090817030_F06_I025.fcs;20090817030_F09_AUTO.fcs;20090817030_F08_I090.fcs;20090817030_F11_I002.fcs;20090817030_F10_L_D.fcs;20090817030_F12_I003.fcs;20090826450_F01_I010.fcs;20090826450_F02_I016.fcs;20090826450_F03_I021.fcs;20090826450_F04_I022.fcs;20090826450_F05_I023.fcs;20090826450_F06_I025.fcs;20090826450_F07_I143.fcs;20090826450_F11_I002.fcs;20090826450_F08_I090.fcs;20090826450_F09_AUTO.fcs;20090826450_F10_L_D.fcs;20090826450_F12_I003.fcs;20090905090_F01_I010.fcs;20090905090_F02_I016.fcs;20090905090_F03_I021.fcs;20090905090_F05_I023.fcs;20090905090_F04_I022.fcs;20090905090_F06_I025.fcs;20090905090_F07_I143.fcs;20090905090_F11_I002.fcs;20090905090_F08_I090.fcs;20090905090_F09_AUTO.fcs;20090905090_F10_L_D.fcs;20090905090_F12_I003.fcs;20090918200_F01_I010.fcs;20090918200_F02_I016.fcs;20090918200_F03_I021.fcs;20090918200_F04_I022.fcs;20090918200_F05_I023.fcs;20090918200_F06_I025.fcs;20090918200_F07_I143.fcs;20090918200_F08_I090.fcs;20090918200_F11_I002.fcs;20090918200_F09_AUTO.fcs;20090918200_F10_L_D.fcs;20090918200_F12_I003.fcs;20090923260_F01_I010.fcs;20090923260_F02_I016.fcs;20090923260_F03_I021.fcs;20090923260_F04_I022.fcs;20090923260_F05_I023.fcs;20090923260_F07_I143.fcs;20090923260_F06_I025.fcs;20090923260_F09_AUTO.fcs;20090923260_F08_I090.fcs;20090923260_F11_I002.fcs;20090923260_F10_L_D.fcs;20090923260_F12_I003.fcs;20090923270_F01_I010.fcs;20090923270_F02_I016.fcs;20090923270_F03_I021.fcs;20090923270_F04_I022.fcs;20090923270_F05_I023.fcs;20090923270_F06_I025.fcs;20090923270_F07_I143.fcs;20090923270_F11_I002.fcs;20090923270_F08_I090.fcs;20090923270_F09_AUTO.fcs;20090923270_F10_L_D.fcs;20091022100_F01_I010.fcs;20090923270_F12_I003.fcs;20091022100_F03_I021.fcs;20091022100_F02_I016.fcs;20091022100_F05_I023.fcs;20091022100_F04_I022.fcs;20091022100_F07_I143.fcs;20091022100_F06_I025.fcs;20091022100_F11_I002.fcs;20091022100_F08_I090.fcs;20091022100_F09_AUTO.fcs;20091022100_F10_L_D.fcs;20091118300_F01_I010.fcs;20091022100_F12_I003.fcs;20091118300_F02_I016.fcs;20091118300_F03_I021.fcs;20091118300_F05_I023.fcs;20091118300_F04_I022.fcs;20091118300_F06_I025.fcs;20091118300_F07_I143.fcs;20091118300_F08_I090.fcs;20091118300_F11_I002.fcs;20091118300_F09_AUTO.fcs;20091118300_F10_L_D.fcs;20091118300_F12_I003.fcs;20091123050_F01_I010.fcs;20091123050_F02_I016.fcs;20091123050_F03_I021.fcs;20091123050_F04_I022.fcs;20091123050_F05_I023.fcs;20091123050_F06_I025.fcs;20091123050_F07_I143.fcs;20091123050_F11_I002.fcs;20091123050_F08_I090.fcs;20091123050_F09_AUTO.fcs;20091123050_F10_L_D.fcs;20091221030_F01_I010.fcs;20091123050_F12_I003.fcs;20091221030_F02_I016.fcs;20091221030_F03_I021.fcs;20091221030_F05_I023.fcs;20091221030_F04_I022.fcs;20091221030_F06_I025.fcs;20091221030_F07_I143.fcs;20091221030_F11_I002.fcs;20091221030_F08_I090.fcs;20091221030_F09_AUTO.fcs;20091221030_F10_L_D.fcs;20091221030_F12_I003.fcs;20091230250_F01_I010.fcs;20091230250_F02_I016.fcs;20091230250_F03_I021.fcs;20091230250_F04_I022.fcs;20091230250_F05_I023.fcs;20091230250_F06_I025.fcs;20091230250_F07_I143.fcs;20091230250_F08_I090.fcs;20091230250_F11_I002.fcs;20091230250_F09_AUTO.fcs;20091230250_F10_L_D.fcs;20091230250_F12_I003.fcs;20100125120_F01_I010.fcs;20100125120_F03_I021.fcs;20100125120_F02_I016.fcs;20100125120_F05_I023.fcs;20100125120_F04_I022.fcs;20100125120_F07_I143.fcs;20100125120_F06_I025.fcs;20100125120_F09_AUTO.fcs;20100125120_F08_I090.fcs;20100125120_F11_I002.fcs;20100125120_F10_L_D.fcs;20100222040_F01_I010.fcs;20100125120_F12_I003.fcs;20100222040_F03_I021.fcs;20100222040_F02_I016.fcs;20100222040_F05_I023.fcs;20100222040_F04_I022.fcs;20100222040_F07_I143.fcs;20100222040_F06_I025.fcs;20100222040_F11_I002.fcs;20100222040_F08_I090.fcs;20100222040_F09_AUTO.fcs;20100222040_F10_L_D.fcs;20100224190_F01_I010.fcs;20100222040_F12_I003.fcs;20100224190_F02_I016.fcs;20100224190_F03_I021.fcs;20100224190_F04_I022.fcs;20100224190_F05_I023.fcs;20100224190_F06_I025.fcs;20100224190_F07_I143.fcs;20100224190_F11_I002.fcs;20100224190_F08_I090.fcs;20100224190_F09_AUTO.fcs;20100224190_F10_L_D.fcs;20100308030_F01_I010.fcs;20100224190_F12_I003.fcs;20100308030_F02_I016.fcs;20100308030_F03_I021.fcs;20100308030_F05_I023.fcs;20100308030_F04_I022.fcs;20100308030_F06_I025.fcs;20100308030_F07_I143.fcs;20100308030_F11_I002.fcs;20100308030_F08_I090.fcs;20100308030_F09_AUTO.fcs;20100308030_F10_L_D.fcs;20100308030_F12_I003.fcs;20100310450_F01_I010.fcs;20100310450_F02_I016.fcs;20100310450_F03_I021.fcs;20100310450_F05_I023.fcs;20100310450_F04_I022.fcs;20100310450_F06_I025.fcs;20100310450_F07_I143.fcs;20100310450_F09_AUTO.fcs;20100310450_F08_I090.fcs;20100310450_F11_I002.fcs;20100310450_F10_L_D.fcs;20100310450_F12_I003.fcs;20100319280_F01_I010.fcs;20100319280_F02_I016.fcs;20100319280_F04_I022.fcs;20100319280_F03_I021.fcs;20100319280_F05_I023.fcs;20100319280_F07_I143.fcs;20100319280_F06_I025.fcs;20100319280_F08_I090.fcs;20100319280_F09_AUTO.fcs;20100319280_F10_L_D.fcs;20100410080_F01_I010.fcs;20100319280_F11_I002.fcs;20100319280_F12_I003.fcs;20100410080_F03_I021.fcs;20100410080_F02_I016.fcs;20100410080_F05_I023.fcs;20100410080_F04_I022.fcs;20100410080_F06_I025.fcs;20100410080_F07_I143.fcs;20100410080_F11_I002.fcs;20100410080_F08_I090.fcs;20100410080_F09_AUTO.fcs;20100410080_F10_L_D.fcs;20100410080_F12_I003.fcs;20100430210_F01_I010.fcs;20100430210_F02_I016.fcs;20100430210_F03_I021.fcs;20100430210_F05_I023.fcs;20100430210_F04_I022.fcs;20100430210_F06_I025.fcs;20100430210_F07_I143.fcs;20100430210_F11_I002.fcs;20100430210_F08_I090.fcs;20100430210_F09_AUTO.fcs;20100430210_F10_L_D.fcs;20100430210_F12_I003.fcs;20100518110_F01_I010.fcs;20100518110_F02_I016.fcs;20100518110_F03_I021.fcs;20100518110_F04_I022.fcs;20100518110_F05_I023.fcs;20100518110_F06_I025.fcs;20100518110_F07_I143.fcs;20100518110_F09_AUTO.fcs;20100518110_F08_I090.fcs;20100518110_F11_I002.fcs;20100518110_F10_L_D.fcs;20100522030_F01_I010.fcs;20100518110_F12_I003.fcs;20100522030_F03_I021.fcs;20100522030_F02_I016.fcs;20100522030_F04_I022.fcs;20100522030_F05_I023.fcs;20100522030_F06_I025.fcs;20100522030_F07_I143.fcs;20100522030_F11_I002.fcs;20100522030_F08_I090.fcs;20100522030_F09_AUTO.fcs;20100522030_F10_L_D.fcs;20100612070_F01_I010.fcs;20100522030_F12_I003.fcs;20100612070_F03_I021.fcs;20100612070_F02_I016.fcs;20100612070_F04_I022.fcs;20100612070_F05_I023.fcs;20100612070_F06_I025.fcs;20100612070_F07_I143.fcs;20100612070_F11_I002.fcs;20100612070_F08_I090.fcs;20100612070_F09_AUTO.fcs;20100612070_F10_L_D.fcs;20100612070_F12_I003.fcs;20100616270_F01_I010.fcs;20100616270_F02_I016.fcs;20100616270_F03_I021.fcs;20100616270_F04_I022.fcs;20100616270_F05_I023.fcs;20100616270_F06_I025.fcs;20100616270_F07_I143.fcs;20100616270_F11_I002.fcs;20100616270_F08_I090.fcs;20100616270_F09_AUTO.fcs;20100616270_F10_L_D.fcs;20100625220_F01_I010.fcs;20100616270_F12_I003.fcs;20100625220_F02_I016.fcs;20100625220_F03_I021.fcs;20100625220_F05_I023.fcs;20100625220_F04_I022.fcs;20100625220_F06_I025.fcs;20100625220_F07_I143.fcs;20100625220_F08_I090.fcs;20100625220_F09_AUTO.fcs;20100625220_F11_I002.fcs;20100625220_F10_L_D.fcs;20100625220_F12_I003.fcs;20100702270_F01_I010.fcs;20100702270_F02_I016.fcs;20100702270_F03_I021.fcs;20100702270_F04_I022.fcs;20100702270_F05_I023.fcs;20100702270_F06_I025.fcs;20100702270_F07_I143.fcs;20100702270_F11_I002.fcs;20100702270_F08_I090.fcs;20100702270_F09_AUTO.fcs;20100702270_F10_L_D.fcs;20100702270_F12_I003.fcs;20100717000_F01_I010.fcs;20100717000_F02_I016.fcs;20100717000_F03_I021.fcs;20100717000_F05_I023.fcs;20100717000_F04_I022.fcs;20100717000_F06_I025.fcs;20100717000_F07_I143.fcs;20100717000_F11_I002.fcs;20100717000_F08_I090.fcs;20100717000_F09_AUTO.fcs;20100717000_F10_L_D.fcs;20100717000_F12_I003.fcs;20100717080_F01_I010.fcs;20100717080_F02_I016.fcs;20100717080_F03_I021.fcs;20100717080_F05_I023.fcs;20100717080_F04_I022.fcs;20100717080_F06_I025.fcs;20100717080_F07_I143.fcs;20100717080_F11_I002.fcs;20100717080_F08_I090.fcs;20100717080_F09_AUTO.fcs;20100717080_F10_L_D.fcs;20100717080_F12_I003.fcs;20100730080_F01_I010.fcs;20100730080_F02_I016.fcs;20100730080_F03_I021.fcs;20100730080_F04_I022.fcs;20100730080_F05_I023.fcs;20100730080_F06_I025.fcs;20100730080_F07_I143.fcs;20100730080_F11_I002.fcs;20100730080_F08_I090.fcs;20100730080_F09_AUTO.fcs;20100730080_F10_L_D.fcs;20100730080_F12_I003.fcs;20100811230_F01_I010.fcs;20100811230_F02_I016.fcs;20100811230_F03_I021.fcs;20100811230_F05_I023.fcs;20100811230_F04_I022.fcs;20100811230_F06_I025.fcs;20100811230_F07_I143.fcs;20100811230_F11_I002.fcs;20100811230_F08_I090.fcs;20100811230_F09_AUTO.fcs;20100811230_F10_L_D.fcs;20100811230_F12_I003.fcs;20100818170_F01_I010.fcs;20100818170_F03_I021.fcs;20100818170_F02_I016.fcs;20100818170_F04_I022.fcs;20100818170_F05_I023.fcs;20100818170_F06_I025.fcs;20100818170_F07_I143.fcs;20100818170_F11_I002.fcs;20100818170_F08_I090.fcs;20100818170_F09_AUTO.fcs;20100818170_F10_L_D.fcs;20100916080_F01_I010.fcs;20100818170_F12_I003.fcs;20100916080_F02_I016.fcs;20100916080_F03_I021.fcs;20100916080_F05_I023.fcs;20100916080_F04_I022.fcs;20100916080_F06_I025.fcs;20100916080_F07_I143.fcs;20100916080_F08_I090.fcs;20100916080_F10_L_D.fcs;20100916080_F09_AUTO.fcs;20100916080_F12_I003.fcs;20100916080_F11_I002.fcs;20101009040_F01_I010.fcs;20101009040_F02_I016.fcs;20101009040_F03_I021.fcs;20101009040_F04_I022.fcs;20101009040_F05_I023.fcs;20101009040_F06_I025.fcs;20101009040_F07_I143.fcs;20101009040_F08_I090.fcs;20101009040_F11_I002.fcs;20101009040_F09_AUTO.fcs;20101009040_F10_L_D.fcs;20101009040_F12_I003.fcs;20101020200_F01_I010.fcs;20101020200_F02_I016.fcs;20101020200_F03_I021.fcs;20101020200_F04_I022.fcs;20101020200_F05_I023.fcs;20101020200_F06_I025.fcs;20101020200_F07_I143.fcs;20101020200_F11_I002.fcs;20101020200_F08_I090.fcs;20101020200_F09_AUTO.fcs;20101020200_F10_L_D.fcs;20101020200_F12_I003.fcs;20101020210_F01_I010.fcs;20101020210_F02_I016.fcs;20101020210_F03_I021.fcs;20101020210_F05_I023.fcs;20101020210_F04_I022.fcs;20101020210_F07_I143.fcs;20101020210_F06_I025.fcs;20101020210_F11_I002.fcs;20101020210_F08_I090.fcs;20101020210_F09_AUTO.fcs;20101020210_F10_L_D.fcs;20101020210_F12_I003.fcs;20101110090_F01_I010.fcs;20101110090_F02_I016.fcs;20101110090_F03_I021.fcs;20101110090_F04_I022.fcs;20101110090_F05_I023.fcs;20101110090_F06_I025.fcs;20101110090_F07_I143.fcs;20101110090_F08_I090.fcs;20101110090_F09_AUTO.fcs;20101110090_F11_I002.fcs;20101110090_F10_L_D.fcs;20101110090_F12_I003.fcs;20101112070_F01_I010.fcs;20101112070_F02_I016.fcs;20101112070_F03_I021.fcs;20101112070_F04_I022.fcs;20101112070_F05_I023.fcs;20101112070_F06_I025.fcs;20101112070_F07_I143.fcs;20101112070_F08_I090.fcs;20101123140_F01_I010.fcs;20101112070_F09_AUTO.fcs;20101112070_F10_L_D.fcs;20101112070_F11_I002.fcs;20101112070_F12_I003.fcs;20101123140_F02_I016.fcs;20101123140_F03_I021.fcs;20101123140_F05_I023.fcs;20101123140_F04_I022.fcs;20101123140_F06_I025.fcs;20101123140_F07_I143.fcs;20101123140_F11_I002.fcs;20101123140_F08_I090.fcs;20101123140_F09_AUTO.fcs;20101123140_F10_L_D.fcs;20101123140_F12_I003.fcs;20101123220_F02_I016.fcs;20101123220_F01_I010.fcs;20101123220_F03_I021.fcs;20101123220_F04_I022.fcs;20101123220_F06_I025.fcs;20101123220_F05_I023.fcs;20101123220_F07_I143.fcs;20101123220_F11_I002.fcs;20101123220_F08_I090.fcs;20101123220_F09_AUTO.fcs;20101123220_F10_L_D.fcs;20101123220_F12_I003.fcs;20101208140_F01_I010.fcs;20101208140_F02_I016.fcs;20101208140_F03_I021.fcs;20101208140_F04_I022.fcs;20101208140_F05_I023.fcs;20101208140_F06_I025.fcs;20101208140_F07_I143.fcs;20101208140_F11_I002.fcs;20101208140_F08_I090.fcs;20101208140_F09_AUTO.fcs;20101208140_F10_L_D.fcs;20101208140_F12_I003.fcs;20101220020_F01_I010.fcs;20101220020_F02_I016.fcs;20101220020_F03_I021.fcs;20101220020_F05_I023.fcs;20101220020_F04_I022.fcs;20101220020_F06_I025.fcs;20101220020_F07_I143.fcs;20101220020_F11_I002.fcs;20101220020_F08_I090.fcs;20101220020_F09_AUTO.fcs;20101220020_F10_L_D.fcs;20110125240_F01_I010.fcs;20101220020_F12_I003.fcs;20110125240_F02_I016.fcs;20110125240_F03_I021.fcs;20110125240_F05_I023.fcs;20110125240_F04_I022.fcs;20110125240_F06_I025.fcs;20110125240_F07_I143.fcs;20110125240_F11_I002.fcs;20110125240_F08_I090.fcs;20110125240_F09_AUTO.fcs;20110125240_F10_L_D.fcs;20110125240_F12_I003.fcs;20110225270_F01_I010.fcs;20110225270_F02_I016.fcs;20110225270_F03_I021.fcs;20110225270_F04_I022.fcs;20110225270_F05_I023.fcs;20110225270_F06_I025.fcs;20110225270_F07_I143.fcs;20110225270_F11_I002.fcs;20110225270_F08_I090.fcs;20110225270_F09_AUTO.fcs;20110225270_F10_L_D.fcs;20110302360_F01_I010.fcs;20110225270_F12_I003.fcs;20110302360_F02_I016.fcs;20110302360_F03_I021.fcs;20110302360_F05_I023.fcs;20110302360_F04_I022.fcs;20110302360_F06_I025.fcs;20110302360_F07_I143.fcs;20110302360_F11_I002.fcs;20110302360_F08_I090.fcs;20110302360_F09_AUTO.fcs;20110302360_F10_L_D.fcs;20110302360_F12_I003.fcs;20110304200_F01_I010.fcs;20110304200_F02_I016.fcs;20110304200_F03_I021.fcs;20110304200_F05_I023.fcs;20110304200_F04_I022.fcs;20110304200_F07_I143.fcs;20110304200_F06_I025.fcs;20110304200_F08_I090.fcs;20110304200_F09_AUTO.fcs;20110304200_F10_L_D.fcs;20110304200_F12_I003.fcs;20110304200_F11_I002.fcs;20110414220_F01_I010.fcs;20110414220_F02_I016.fcs;20110414220_F03_I021.fcs;20110414220_F04_I022.fcs;20110414220_F06_I025.fcs;20110414220_F05_I023.fcs;20110414220_F08_I090.fcs;20110414220_F09_AUTO.fcs;20110414220_F11_I002.fcs;20110414220_F10_L_D.fcs;20110414220_F12_I003.fcs;20110414260_F02_I016.fcs;20110414260_F01_I010.fcs;20110414260_F03_I021.fcs;20110414260_F04_I022.fcs;20110414260_F05_I023.fcs;20110414260_F07_I143.fcs;20110414260_F06_I025.fcs;20110414260_F08_I090.fcs;20110414260_F09_AUTO.fcs;20110414260_F10_L_D.fcs;20110414260_F11_I002.fcs;20110414260_F12_I003.fcs"
Ben Bimber2013-05-17 07:50Jon (LabKey DevOps)2015-04-28 22:07 Ability to import/export wookbooks? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have been using workbooks in a variety of capacities. One of these usages is to handle requests for data extracts or reports. Typically these involve someone from IT writing some queries and/or creating some lists. We've been using workbooks to handle these requests (basically 1 per request). The nice thing about these is that they're a little lighter-weight then making a big tree of true subfolders. Keeping each project is a separate container is nice so queries/lists dont stomp on each other too.

I'm pushing to have the group do query development on our test server. Workbooks dont by default have the 'folder management UI' available; however, you can still get to it. This is a backdoor way to export a folder archive for that workbooks. However, if you try to re-import this archive into a new workbook, the pipeline job just sits on the 'waiting' stage. I havent looked into detail where this gets blocked, but I had a couple general questions on the design of import/export:

1) is there any philosophical reason why workbooks cant be imported/exported, or is it just a matter of no one asking for the feature?

2) folder import typically involves creating the folder first, and then importing the archive. the archive is really more like 'folder config'. is there any reason 'create folder' couldnt be part of this?

I ask b/c I'm pondering whether I want to try to make an 'import workbook from archive' function, which would be available from the parent folder.
jdutra2013-06-13 13:55Jon (LabKey DevOps)2015-04-28 22:08 Problem with Automated Study Reload TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
With some guidance from the labkey folks at last fall's user conference, I have been able to automate a number of tasks by sending POST requests to the correct labkey URLs. Between version 12.3 and 13.1, one of them stopped working and I can't figure out what I'm doing wrong. I'm hoping maybe you could give me some input.

I have a study set to manually reload, and I'm trying to trigger the reload from Java code by sending a POST to /labkey/study/MyProject/MyFolder/MyStudy/checkForReload.view?ui=0. Instead of triggering a reload, this now changes my study reload setting. It is set to manual before my code runs, and afterwards it's set to not reload. The reload pipeline is not triggered at all.

The request returns the following response:
HTTP/1.1 302 Found
Response content is: "'>--></script><script type="text/javascript">window.location = '/labkey/study/MyProject/MyFolder/MyStudy/manageStudy.view?';</script>

We can see that the ReloadTask code changed quite a bit between 12.3 and 13.1, but the url called by manually pressing the "Attempt Reload Now" button has not changed - it is still /labkey/study/MyProject/MyFolder/MyStudy/checkForReload.view?ui=1.

If anyone could help me to get this code working again, I'd really appreciate it.

Thanks,
Jen
bront@kcr.uky.edu2013-07-25 10:36Jon (LabKey DevOps)2015-04-28 22:08 creating files from javascript interface TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

We have a simple workflow application created using the LabKey javascript API.

Till now we've used a nightly cron job that executes a jar file to query this workflow data to populate PDF survey files.

Our process, however, has changed.

Now, we need to generate the surveys right when the user completes the workflow process... insert data and then export file.

So, does this mean I will need to create a Java module? Could I create a standalone servlet that the javascript could invoke? Are there other possibilities I've overlooked?

Thanks for your help and insight.
micahs2013-12-13 10:33Jon (LabKey DevOps)2015-04-28 22:08 Creating a New Java Module Documentation TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm not seeing a build.xml (or webapp) directory when following the docs at: https://www.labkey.org/wiki/home/Documentation/page.view?name=createNewModule. I do see lib, resource, src, module.properties and MyModule.iml. Is the documentation still valid for 13.3?

I didn't see errors when executing the ant task.

Thanks, Micah
tstellin@scharp.org2015-12-02 13:01Jon (LabKey DevOps)2015-12-02 16:15 Multiple LDAP Servers TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I had a question about the "Configure LDAP Authentication" page in Labkey Server. The page gives a text input for "LDAP server URLs" that allows multiple servers to be supplied (delimited by semicolons).

We don't currently have multiple servers LDAP to test the behavior, so I was curious what setting multiple LDAP servers actually does. Does it simply provide a fallback, in case that the primary server goes offline? Or would this allow for us to segregate users across multiple LDAP servers?

Thanks,
-Tobin
Will Holtz2016-04-14 17:55Jon (LabKey DevOps)2016-04-14 21:27 PropertyValidator in metadata xml TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In a module-based assay, I would like to configure a field validator within a domain xml file. From the Labkey XSD it appears I want to use <PropertyValidator>, but haven't been able to find any examples in docs, forums or from grepping the source tree. Does anyone have an example of how to restrict a number to a range or match a string to a regex?

thanks,
-Will
simon buckner2017-01-19 10:49Jon (LabKey DevOps)2017-02-13 14:33 ant task 'pick_pg' does not properly escape ampersand & in catalina properties TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Summary:

I don't know if this qualifies as a bug or an error on my part, but when I created a Postgres password containing an ampersand, it did not escape the character and yielded the error, "the reference to entity <my password suffix> must end with the ; delimiter" when trying to start tomcat.

Found on Windows 10 using revision 48803 from SVN. While I used Postgres, this could be an issue with MSSQL too.

 

Steps To Reproduce:

1. Follow the steps here, up to "Install Java, Tomcat, and a Database" https://www.labkey.org/home/Documentation/wiki-page.view?name=build

2. Click on "Install PostgreSQL (Windows)"

3. Choose a password containing an ampersand (&), and copy the password to the jdbcPassword property in pg.properties.

4. Continue following setup steps until "Build and Run LabKey"

5. Run "ant pick_pg", navigate to %CATALINA_HOME%\conf\Catalina\localhost\labkey.xml, and open it.

6. The first <Resource> contains a "password" attribute. If your password was "abc&def", it will display that. It should display "abc&amp;def" (or else &def will be read as an entity)
Will Holtz2017-02-07 17:26Jon (LabKey DevOps)2017-02-13 15:10 Display a chart with minimal extra user interface TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have a chart in Labkey that I want to make accessible from a URL without any additional Labkey user interface surrounding it. The URL will eventually be used to display the chart on a sign using an external application. To be more clear, I want to get a page without the header containing the site logo, project navigation, search bar, menus, and tabs.

I tried exporting the chart to javascript, creating a module with a resource/web/ directory and placing the script in an html file in this directory. The resulting file gets served, but I am having a hard time getting the required dependencies to load. Is there any easier way to do this?

Thanks,
-Will
bront@kcr.uky.edu2017-08-10 13:24Jon (LabKey DevOps)2017-08-10 15:47 List - Index out of Range Error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am running 17.2 on our development server, and though I can create lists I can't populate them with data. Whenever I try, I get an index out of range error.

I am not sure what's causing this. Any suggestions would be welcome.

Thanks,

bront

-- from labkey.log

INFO ScriptService$Console 2017-08-10 16:19:35,306 ajp-nio-8009-exec-5 : RhinoEngine.createTopLevel: initialize cache
ERROR ExceptionUtil 2017-08-10 16:19:35,327 ajp-nio-8009-exec-5 : Exception detected and logged to mothership
java.lang.StringIndexOutOfBoundsException: String index out of range: 3
    at java.lang.String.charAt(String.java:658)
    at org.apache.catalina.loader.WebappClassLoaderBase.filter(WebappClassLoaderBase.java:2780)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1142)
    at org.mozilla.javascript.Kit.classOrNull(Kit.java:92)
    at org.mozilla.javascript.NativeJavaPackage.getPkgProperty(NativeJavaPackage.java:159)
    at org.mozilla.javascript.NativeJavaPackage.get(NativeJavaPackage.java:114)
    at org.mozilla.javascript.NativeJavaTopPackage.init(NativeJavaTopPackage.java:130)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.mozilla.javascript.ScriptableObject.buildClassCtor(ScriptableObject.java:1191)
    at org.mozilla.javascript.LazilyLoadedCtor.buildValue0(LazilyLoadedCtor.java:138)
    at org.mozilla.javascript.LazilyLoadedCtor.access$000(LazilyLoadedCtor.java:51)
    at org.mozilla.javascript.LazilyLoadedCtor$1.run(LazilyLoadedCtor.java:123)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.mozilla.javascript.LazilyLoadedCtor.buildValue(LazilyLoadedCtor.java:119)
    at org.mozilla.javascript.LazilyLoadedCtor.init(LazilyLoadedCtor.java:99)
    at org.mozilla.javascript.ScriptableObject.sealObject(ScriptableObject.java:2033)
    at org.labkey.api.script.RhinoEngine.createTopLevel(RhinoService.java:645)
    at org.labkey.api.script.RhinoScriptEngine.<init>(RhinoScriptEngine.java:122)
    at org.labkey.api.script.RhinoEngine.<init>(RhinoService.java:579)
    at org.labkey.api.script.RhinoEngine.<init>(RhinoService.java:585)
    at org.labkey.api.script.RhinoFactory.getScriptEngine(RhinoService.java:236)
    at org.labkey.api.script.ScriptReferenceImpl$1.compile(RhinoService.java:260)
    at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1321)
    at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at org.labkey.api.script.ScriptReferenceImpl$1.load(RhinoService.java:255)
    at org.labkey.api.script.ScriptReferenceImpl$1.load(RhinoService.java:249)
    at org.labkey.api.module.ModuleResourceCache$1.load(ModuleResourceCache.java:90)
    at org.labkey.api.module.ModuleResourceCache$1.load(ModuleResourceCache.java:78)
    at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:145)
    at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:82)
    at org.labkey.api.module.ModuleResourceCache.getResourceMap(ModuleResourceCache.java:118)
    at org.labkey.api.script.ScriptReferenceImpl.get(RhinoService.java:297)
    at org.labkey.api.script.RhinoFactory.compile(RhinoService.java:242)
    at org.labkey.api.data.triggers.ScriptTriggerFactory.checkPaths(ScriptTriggerFactory.java:112)
    at org.labkey.api.data.triggers.ScriptTriggerFactory.createTriggerScript(ScriptTriggerFactory.java:74)
    at org.labkey.api.data.triggers.ScriptTriggerFactory.createTrigger(ScriptTriggerFactory.java:51)
    at org.labkey.api.data.AbstractTableInfo.loadTriggers(AbstractTableInfo.java:1303)
    at org.labkey.api.data.AbstractTableInfo.getTriggers(AbstractTableInfo.java:1288)
    at org.labkey.api.data.AbstractTableInfo.hasTriggers(AbstractTableInfo.java:1266)
    at org.labkey.api.query.AbstractQueryUpdateService.hasTableScript(AbstractQueryUpdateService.java:283)
    at org.labkey.api.query.AbstractQueryUpdateService._importRowsUsingDIB(AbstractQueryUpdateService.java:196)
    at org.labkey.api.query.AbstractQueryUpdateService._insertRowsUsingDIB(AbstractQueryUpdateService.java:300)
    at org.labkey.list.model.ListQueryUpdateService.insertRows(ListQueryUpdateService.java:180)
    at org.labkey.api.query.UserSchemaAction.doInsertUpdate(UserSchemaAction.java:249)
    at org.labkey.query.controllers.QueryController$InsertQueryRowAction.handlePost(QueryController.java:2433)
    at org.labkey.query.controllers.QueryController$InsertQueryRowAction.handlePost(QueryController.java:2407)
    at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:101)
    at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:80)
    at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:177)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:416)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1226)
    at org.labkey.api.view.ViewServlet._service(ViewServlet.java:205)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:132)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1147)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:217)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:868)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
dennisw2017-09-08 08:34Jon (LabKey DevOps)2017-09-08 13:48 LabKey Remote Java API download TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

The download link for the LabKey Remote Java API source code seems to just download a .zip that contains the .html reference files, but no actual source code.
dennisw2017-09-11 09:50Jon (LabKey DevOps)2017-09-12 13:55 Question about study 'VisitDescription' TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

We're working on new data loading methods, and that involves programmatically creating our visit_map.xml. I'm seeing a new error crop up that seems somewhat bewildering.

Here is an example visit node from one of our visit_map.xml's:

<visit label="TX1 001 DAY 3" sequenceNum="5005031.0" maxSequenceNum="5005031.0" displayOrder="31" showByDefault="true" typeCode="S" ><description>Transplant 1, Week 1, Day 3</description></visit>

However, when we try to import this study we get the following pipeline error:

java.sql.SQLException: Value "TX1 001 DAY 3" is too long for column VisitDescription. The maximum allowable length is 10.

I can see that in the specimen code in the study module, and in the specimen tables in the database, there is a 10 character VisitDescription column that is used in the _specimenevent tables and also in the SpecimenHash in the _vial tables:

specimens_metadata.xml:

<column columnName="VisitDescription">
        <datatype>varchar</datatype>
        <columnTitle>Visit Description</columnTitle>
        <description>A description of the visit type for each specimen. For example, "visit", "day", or "week".</description>
        <scale>10</scale>
      </column>

TABLE study.Specimen
VisitDescription NVARCHAR(10)

-----------------

I'm puzzled on two counts.

First, this pipeline error seems to imply that the error is with the Visit *label*, not the description. Second, the admin docs seem to say that Visit Description is arbitrary text, that can be much longer than 10 characters, but in the specimen tables Visit Description seems to refer to a visit type (see above... 'visit' 'week' etc.).

So is the pipeline error telling me that it is actually the visit label that is too long? Is there a disparity between what VisitDescription means in study and datasets, vs specimens?

Thanks
WayneH2017-10-30 08:51Jon (LabKey DevOps)2017-11-10 12:27 Issue updating rows in a dataset via perl api TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

we are trying to update a table via the labkey::query perl module using updaterows function. The goal is to update the table with an array generated as output from another process.. We are able to insert data using the 'insert rows' function , but when there is existing data and we try to update, the process throws a server error 500..
The user account being used for this process has full permissions (editor role) to access, insert and update data in the table.

Any thoughts on what solution there may be?

(See attached file for sample script..)

Thakns
cmwest32017-11-02 14:41Jon (LabKey DevOps)2017-11-03 17:08 Retrieving All Study Names from Labkey Using Python API TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

We've previously been using the HTTP Interface using the following URI to retrieve all the study names residing on a server: localhost/labkey/query/home/selectRows.api?query.queryName=Containers&schemaName=core&query.containerFilterName=AllFolders&query.Parent%2FDisplayName~isblank

We've been trying to use the Python API to construct a similar request but have run into some issues.

After reviewing the Python API source code, query.py, for the QueryFilter object on GitHub, the `get_url_parameter_name` function will always place a '~' character within the query string and not allow us to form the query string 'query.containerFilterName=AllFolders'. Additionally, there is no filter_type that clearly represent 'isblank' and so we've been attempting to create a QueryFilter by calling QueryFilter('Parent%2FDisplayName', '', 'eq') (Notice the two single quotes in the second parameter). Unfortunately, this method is only returning the single 'home' study which isn't what we're looking for.

Seeing as it is difficult to replicate the URI of the HTTP Interface with the Python interface, how can we go about making QueryFilter(s) that would return all study names on a server?

Thank you,
Cameron West
Ben Bimber2017-11-20 17:28Jon (LabKey DevOps)2018-01-03 10:15 gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm on 17.2, intellij 2017.2.5. I think I set up my dev machine following the LK instructions. My dev instance runs fine; however, when i try to hot swap java code (ctl + shift + F9), I get errors like 'Cannot find symbol AbstractTableInfo'. These errors typically involve not finding something in API. Should I be able to hot swap using the gradle config, and is there something else I need to configure to allow it? Thanks.
Jon (LabKey DevOps)2023-02-10 12:59Jon (LabKey DevOps)2023-02-10 21:24 Maintenance Notice - Upgrade of LabKey.org for Friday, February 10th 2023 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 8:30pm Pacific Time for an upgrade to LabKey 23.2

The site will be offline for approximately one hour.

Please save your work before this time.
Jon (LabKey DevOps)2023-02-15 10:50Jon (LabKey DevOps)2023-02-15 10:50 Maintenance Notice - Upgrade of LabKey.org for Wednesday, February 15th 2023 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 8:30pm Pacific Time for a minor upgrade of LabKey 23.2

The site will be offline for no more than 30 minutes.

Please save your work before this time.
Jon (LabKey DevOps)2023-04-13 14:58Jon (LabKey DevOps)2023-04-13 22:52 Maintenance Notice - Upgrade of LabKey.org for Thursday, April 13th 2023 @ 9:30pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 9:30pm Pacific Time for an upgrade to LabKey 23.4

The site will be offline for approximately one hour.

Please save your work before this time.
guruprasadurs@yahoo.co.in2008-04-09 23:55Jon (LabKey DevOps)2015-04-28 21:52 Where to Place FTP Folder TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I want to setup FTP server in tomcat so I have unzipped pipelineftp-2.3.zip that contains folder ftpserver..and in inside bin, common, notes, res site..foldres. I have confusion with this folders...where do i place this folders..any one plz help me i have Tomcat 5.5 sercer..and i have already manually installed labkey server.
Brian Pratt2009-10-09 10:22Jon (LabKey DevOps)2015-04-28 21:54 No central mechanism for the idea of release version? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I bumped into an interesting problem in trunk where it appears we're building applets-9.3Beta.jar but the code still looks for applets-9.2.jar.

That's an ugly sort of error. There is the version.properties file which appears to be where the 9.3Beta value was taken from, but it's not universally respected - upon inspection I find the string "9.2" liberally sprinkled through the codebase, including the string "applets-9.2.jar" in places like fileBrowser.js and drop.jsp.

Rationalizing version info across a large project is tricky, of course, but I just thought I'd mention this since it took me a little while to figure out why my code changes didn't seem to be having any effect, and this might be an opportunity for improvement.

Also it would appear that there's no automated test that catches this class of error?
Ben Bimber2010-04-08 09:19Jon (LabKey DevOps)2015-04-28 21:55 Alternate way to access workbooks? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a list with a field called 'workbook' that holds the number of the workbook associated with that record. i think the right thing to do is edit metadata and make that field's url something like:

project/${workbook}/begin.view?

but ${} substitutions are not allowed in paths:
https://www.labkey.org/wiki/home/Documentation/page.view?name=propertyFields

Is there another method to access a workbook, where workbook ID is a parameter? something along the lines of:

project/showWorkbook.view?workbook=${workbook}

I guess I could just make a simple javascript page that redirects the user? thanks.
Ben Bimber2010-06-02 16:19Jon (LabKey DevOps)2015-04-28 21:59 Study.xml: possible to define additional info on QC states? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the XML metadata associated with a study (export/import), is it possible to define any of the params related to QC states? Looking at study.xsd, it seems like the only QC related param is:

  <qcStates showPrivateDataByDefault="false"/>

The other related values it would be useful to define are:

1. the actual QC states, their labels and whether they are public
2. default QC states for imported data

can these be set somewhere else? i ask about the file based definitions b/c it's a lot easier to version control and sync these between development/production servers than trying to do all this through a browser. thanks for the help.
Ben Bimber2010-06-24 10:45Jon (LabKey DevOps)2015-04-28 21:59 "Pipeline Override for this folder and actions are not available for the default file location" TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
There is a subfolder in the project that contains a files webpart. when i hit the admin button on that webpart, i get this message:

There is a Pipeline Override for this folder and actions are not available for the default file location.
Customize this web part to use the pipeline location using the customize web part button

I dont think there is a pipeline override here. To check that, I went to the pipeline module, and hit setup. This folder inherits from the parent. I went to the parent of this folder, which also inherits from parent (project root).

Is this message telling me something different than what I think it is? Is the error message actually telling me 'you can't set admin for this fileset b/c that is inherited?'

specific example is here:
https://xnight.primate.wisc.edu:8443/labkey/project/WNPRC/WNPRC_Units/Research_Services/Assay_Services/begin.view?

our site should have a file root, which is inherited throughout. i may have missed some folder, but i dont think anything has an override. either that or i'm not looking in the right spot.

i thought a similar issue came up once before, but i cannot find a thread on it. i did see this issue which sounds similar, but there's not a lot of detail:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10182&_docid=issue%3A10182

thanks.
Ben Bimber2010-08-06 11:40Jon (LabKey DevOps)2015-04-28 21:59 possible to set page size with an embedded QWP? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm loading a QWP in a custom HTML view using code along the lines of below. Can I set the page size in javascript?

A second comment: quite often when we embed a QWP, we have a consistent set of params to set. Basically we take away anything that would allow the user to alter records or would expose anything that could give them UI to take them somewhere to alter records. I realize we're supposed to handle permissions by placing lists in different folders and setting folder permissions accordingly, but this frequently breaks down or would result in an impractical amount of folders (ie. practically one per table). In this case the user needs to be able to insert records, not edit records, read a subset of records, but not read all records. Controlling the UI such that the user never is exposed to anything that allows them to do inappropriate things is working well enough, since we dont have high enough security concerns over this particular data. However, it's not always easy to prevent the UI from giving links to inappropriate areas (like navtrails giving links to the schema browser).

Below is how we're loading this QWP:

    new LABKEY.QueryWebPart({
        renderTo: 'employeeQWP',
        dataRegionName: 'employeeQWP',
        title: 'List of WNPRC Staff',
        schemaName: 'lists',
        queryName: 'employees',
        viewName: 'No Personal Info',
        buttonBarPosition: 'top',
        showRecordSelectors: true,
        showInsertNewButton: false,
        showDeleteButton: false,
        showUpdateColumn: false,
        showDetailsColumn: false,
        allowChooseQuery: false,
        allowChooseView: false
    });
Ben Bimber2010-09-17 07:28Jon (LabKey DevOps)2015-04-28 22:00 behavior of java vs non-java modules TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i have kind of a dumb question:

i recently posted a thread about merging a file-based module into the java based EHR module. in the java module, the view/query/reports folder get moved under the 'resources' folder. in a non-java module they are top-level.

in the past, i always pointed our server's externalModulesDir at a checked out version of the trunk's server/customModules/. this was quite convenient b/c I could just run a svn udpate and the server would get whatever changes i checked in. in practice pushing queries, views and other simpler things to the production server does not follow the labkey version cycle, and it probably wont any time soon.

yesterday on our staging server (running 10.2) i switched the externalModules folder to point to a copy of the trunk, with the newly merged EHR module. after restarting tomcat, none of the files located in /resources were showing up in labkey. in order for labkey to recognize the files located in /resources, do i need to copy a new ehr.module file onto the server? i presume this file would have the contents of /resources which get expanded into /labkeywebapp or something like that? or is this a 10.2/10.3 difference?

if that is the correct approach, will it be possible to continue updating the server by running 'svn update' i have historically been doing or will i constantly need to swap out the ehr.module file?

thanks in advance.
Ben Bimber2010-10-04 05:41Jon (LabKey DevOps)2015-04-28 22:00 how to handle null dates with min() and max()? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
we have a number of datasets that involve date ranges. you have participantId, startDate and endDate. a null end date means that this date range has not ended.

there's a number of instances where we group records to do things like 'find the last date when the animal had a roommate', 'last co-assignment', etc. both min(endDate) and max(endDate) will never report the null value. these functions return either the highest or lowest non-null value. null is completely ignored.

at least for this particular application, it would be nice if null were treated as the max() of a set of dates. it already sorts that way. unfortunately it seems that this is just how postgres handles dates. i ended up doing max(coalesce(endDate, now()) in other to handle the null values. it works, but is not great. is there a better way? thanks for the help.
Ben Bimber2011-02-11 12:14Jon (LabKey DevOps)2015-04-28 22:01 LABKEY.Security.getSecurableResources TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LABKEY.Security.getSecurableResources() returns a list of securable resources and permissions. While not documented, the code supports a containerPath config option. I am interested in using this to query permissions on specific datasets. Currently, we need to call this on the container, then recursively iterate through the children until I find the resource of interest.

Is there a more direct way to query a specific sub-resource within a folder?

Thanks.
trent2011-07-03 18:39Jon (LabKey DevOps)2015-04-28 22:02 Is it Possible to Add a Specimen through JS? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm thinking the answer is No, but thought id post here just in case :-)

code:

        LABKEY.Query.insertRows({
                    'schemaName' : 'study',
                    'queryName' : 'SpecimenDetail',
                    'rows' : [
                            {
                                'VialId' : '6002',
                                'SampleId' : '6002',
                                'DrawDate' : '05/02/1990',
                                'ParticipantId' : '103',
                                'Visit' : '8',
                                'VolumeUnits' : 'mL',
                                'PrimaryType' : 'serum'
                            }
                        ],
                    'successCallback' : function(data){ console.log('complete'); },
                    'failure' : function(data) { console.log('incomplete');console.log(data);}
                });

Just get: 401: User does not have permission to perform this operation <stack trace omitted>

Or is this prevented due to the data model being more complex than inserting the data into a single view/table/list? I did try against both SimpleSpecimen, and the above.

In the case of a simple specimen repository, seemed like it may be a bit more usable if could build a form rather than copy, pasting the xls spreadsheet data (at least for the case of inserting information for a single specimen - but i guess there's some other behind the scenes [java code] stuff that goes on when inserting using the available method)
brian.derocher@noblis.org2011-07-12 12:18Jon (LabKey DevOps)2015-04-28 22:02 NPE at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:599) TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hey there, I'm just getting ramped up on LabKey. I'm running Debian (sid). I'm using the PostgresSQL instance which i have already installed. I installed Tomcat 6 from Debian. And generally i try to use the debian packages instead of the libraries included with LabKey. I've checked out TRUNK and compiled it. And i'm trying to install it now and get it running. After finally figuring out where to place labkeyBootstrap.jar (/usr/share/tomcat6/lib/), the server starts up. But immediately i get this NullPointerException.

INFO DbScope 2011-07-12 14:42:49,487 main : Initializing DbScope with the following configuration:
    DataSource Name: labkeyDataSource
    Server URL: jdbc:postgresql://localhost:5434/labkey
    Database Product Name: PostgreSQL
    Database Product Version: 9.0.4
    JDBC Driver Name: PostgreSQL Native Driver
    JDBC Driver Version: PostgreSQL 9.1devel JDBC4 (build 900)
    SQL Dialect: PostgreSql90Dialect
INFO LabKeyScope 2011-07-12 14:42:49,559 main : Loading DbSchema "labkey.core"
ERROR ModuleLoader 2011-07-12 14:42:49,684 main : Failure occurred during ModuleLoader init.
java.lang.NullPointerException
        at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:599)
        at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:302)
        at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:214)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
        at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
        at org.apache.catalina.core.StandardService.start(StandardService.java:525)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
INFO ViewServlet 2011-07-12 14:42:51,212 main : ViewServlet initialized
INFO ViewServlet 2011-07-12 14:42:51,244 main : WEBAPP: /home/usr/share/tomcat6-labkey/labkeyWebapp/
INFO ViewServlet 2011-07-12 14:42:51,244 main : PATH: /bin:/usr/bin:/sbin:/usr/sbin

I'll try svn upping and recompiling. Do you have any thoughts?

thanks,
Brian
trent2012-05-20 20:08Jon (LabKey DevOps)2015-04-28 22:03 Use of Non-Standard Study APIs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

You previously mentioned that if we use un-documented APIs to let you know, so you can make a note not to modify, or to provide fall-back functionality. Hope there is no issue with using these?

1. createParticipantCategory of the participant-group module. e.g. LABKEY.ActionURL.buildURL("participant-group", "createParticipantCategory", LABKEY.ActionURL.getContainer());

Reasoning - each specimen request really translates to sub study (Ancillary), so wanted an easy way to create a participant group based on any participants involved in a specimen request. Build a grid view with participants involved in each request (can be filtered by request id), and posting the selected rows (participantId) to this API to create the group with the listed participants.

(^^already mentioned this via e-mail, but just duplicating here^^)

2. handleUpdateRequestInputs.post of the study-samples module. e.g. LABKEY.ActionURL.buildURL("study-samples", "handleUpdateRequestInputs.post", LABKEY.ActionURL.getContainer())

Reasoning - We have a standard concept sheet/request form that includes approx. 25 input fields, that would be used for all studies imported into LabKey - with possible slight variations amongst studies. Possibly in-efficient and error prone to have a labkey admin manually enter all those fields for each study.

Cheers
dennisw2012-06-21 12:21Jon (LabKey DevOps)2015-04-28 22:04 Multiple network drives on windows TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

Is it possible to have two network drives defined? If so, where would they be defined? I see in the labkey.xml a commented out entry regarding the pipeline. We have defined ours through the Admin Console>Site Settings UI and we noticed that if you change the network drive, the old one does hang around but not sure if this would be a good way to go about it.
sadcat@u.washington.edu2012-09-07 18:15Jon (LabKey DevOps)2015-04-28 22:06 Setting user permissions programmatically TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

is it possible to set user's permissions programmatically?

Thanks,
X
trent2012-09-25 20:10Jon (LabKey DevOps)2015-04-28 22:06 Study. Specimen. record_id exposed where? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I can't seem to find it. I can see it at the back end against externalid. Anyone know?

(record_id as referenced from here: https://www.labkey.org/wiki/home/Documentation/page.view?name=specimenArchiveFileFormat)
Ben Bimber2012-12-07 10:23Jon (LabKey DevOps)2015-04-28 22:07 Prompt to authenticate when downloading file, in IE only? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We had a user report a problem when using IE. They double clicked an excel file from a files webpart, clicked 'open' when prompted (as opposed to 'save'). Normally you'd expect this to just open the file. Instead, you get an authentication prompt. What's worse, this prompt is placed behind all windows, so it's hard to see it happening.

I was able to repro this on labkey.org. To repro:

1. go to labkey.org
2. search for 'xls'
3. click one of the links to download the file. for example:

https://www.labkey.org/search/home/search.view?q=xls

then click one of the file links, such as:

https://www.labkey.org/files/Kim/%40files/assaydata/m0902051%3B3997.xls?renderAs=DEFAULT&_docid=dav%3A%2F_webdav%2FKim%2F%40files%2Fassaydata%2Fm0902051%3B3997.xls

The first time I attempted this, I hit cancel when I got the login prompt. If you do that, excel will open an excel file that is the LK login screen.

I can repro this on multiple computers here. Do you guys see this too? It's IE specific. Other browsers work fine.
Leo Dashevskiy2013-01-09 14:11Jon (LabKey DevOps)2015-04-28 22:07 Issue related to a Labkey db's custom table, a query on it and a LABKEY.ext.Store relying on this query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello there!

Not sure, if it is Labkey's domain of responsibility or something fishy is going on in Ext itself, but will ask here first.

I am using Ext 3.4.

I have a ComboBox (custom one, cleanly derived from the default one). Relevant chunks of its definition are the following:

        var cbAnalysis = new Ext.form.ClearableComboBox({
...
            displayField: 'Name',
...
            store: strGatingSet,
            tpl: '<tpl for="."><div ext:qtip="{Tooltip:htmlEncode}" class="x-combo-list-item">{Name:htmlEncode}</div></tpl>',
...
            valueField: 'Path'
        });


The combo box above has a store, the LABKEY.ext.Store. Its definition is the following:

var strGatingSet = new LABKEY.ext.Store({
            autoLoad: true,
            queryName: 'GatingSet',
            schemaName: 'opencyto_preprocessing'
        });


The 'GatingSet' query that works for me is the following:

SELECT
 gsid,
 gsname AS Name,
 objlink AS Path,
 gsdescription AS Tooltip
FROM
 gstbl


What I originally had and what did not work was the following:

SELECT
 gsname AS Name,
 objlink AS Path,
 gsdescription AS Tooltip
FROM
 gstbl

I had it like this, because nowhere had I the need for the gsid column.

With such a query the combo box would not display multiple (2 at the time) gating set names I had in the table, it would just display one (seemed like the last one) - the LABKEY.ext.Store had just one item in its data array field. But with the addition of the extra (superfluous-looking to me) column gsid it started working as expected. Note that all of the gsname entries, all of the objlink entries, and all of the gsdescription entries were unique.


In the Labkey's db in the custom schema opencyto_preprocessing the custom table gstbl has the following structure:

CREATE TABLE opencyto_preprocessing.gsTbl
(
    gsId INT NOT NULL,
    Container ENTITYID NOT NULL,
    gsName TEXT NOT NULL,
    objLink TEXT NOT NULL,
    gsDescription TEXT,
    xmlPath TEXT NOT NULL,
    sampleGroup TEXT NOT NULL,
    studyVars TEXT NOT NULL,

    CONSTRAINT PK_gsTbl PRIMARY KEY (gsId, Container)
);

Yes, gsid is the primary key for this table, but what does it matter to LABKEY.ext.Store?

Please, shed some light.
Thanks.

-Leo
Brian Connolly2013-04-04 18:29Jon (LabKey DevOps)2015-04-28 22:07 Today's PostgreSQL security announcement TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Today PostgreSQL announced CVE-2013-1899 [1], a vulnerability that allows a remote attacker, with access to the PostgreSQL port, to cause malicious damage to a database. If you are running LabKey Server using a PostgreSQL database server, then your system is at risk and the PostgreSQL server should be upgraded as soon as possible.

The vulnerability affects PostgreSQL Server versions; 9.0.x, 9.1.x and 9.2.x. You can find further information in the 2013-04-04 Security Release FAQ [2].

The LabKey Server Graphical Windows Installer package includes PostgreSQL 9.2.1, which is vulnerable. However the PostgreSQL server is bound to localhost by default so it is only accessible from the server itself thereby mitigating the vulnerability to users with access to the system. We will include a patched version of PostgreSQL in the upcoming 13.1 release of the Graphical Windows Installer

If you have any questions, concerns or need any assistance in upgrading your PostgreSQL server, please do not hesitate to contact us.

[1] http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1899
[2] http://www.postgresql.org/support/security/faq/2013-04-04/
Anthony Corbett2013-05-06 08:10Jon (LabKey DevOps)2015-04-28 22:07 Updating java based assay module for 13.1 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm currently in the process of testing 13.1 for production use within our group. AS part of this I'm going through and updating the source for our custom java based assays to build again 13.1 source. I have a question regarding changes to the AbstractAssayProvider constructor arguments:

In 13.1, the 'declaringModule' has been pushed up the class hierarchy from ModuleAssayProvider to AbstractAssayProvider and in doing so all subclasses must now specify this dependency. I'm looking at examples in labkey source and I see the usual pattern is to use ModuleLoader.getInstance().getModule(MODULECLASSHERE.class), for example:


public FCSExpressAssayProvider() {
    super(PROTOCOL_PREFIX, RUN_PREFIX, (AssayDataType) ExperimentService.get().getDataType(FCSExpressAssayDataHandler.NAMESPACE), ModuleLoader.getInstance().getModule(FCSExpressModule.class));
}


Now my question is: Would an equally valid and safe way to specify the 'declaringModule' be to pass 'this' in as a constructor argument when registering the assay provider from the module class?

For example in our custom BioanalyzerModule.java:

@Override
    public void doStartup(ModuleContext moduleContext)
    {
        // add a container listener so we'll know when our container is deleted:
        ContainerManager.addContainerListener(new BioanalyzerContainerListener());
        ExperimentService.get().registerExperimentDataHandler(new BioanalyzerDataHandler());
        AssayService.get().registerAssayProvider(new BioanalyzerRNAAssayProvider(this));
        AssayService.get().registerAssayProvider(new BioanalyzerDNAAssayProvider(this));
    }

The last 2 lines register two assay providers and pass in the declaring module as 'this'. I'm trying to avoid the AssayProvider class(es) from having a source code dependency on the module class, as it creates a circular dependency between the two classes.

Thanks!

-
Anthony
Leo Dashevskiy2013-05-28 12:29Jon (LabKey DevOps)2015-04-28 22:08 Curious to know about LABKEY.Filter TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hey, guys!

So how does it work exactly? The filtering itself happens on the server side, of course, right? And does the LABKEY.Filter.create() statement get translated to an appropriate SQL statement/command, so that the filtering is handled by the db system or is the mechanism somehow different?

In other words, would there be a difference in performance if I was to use LABKEY.Filter approach vs. a pure SQL approach?

Thanks.
-Leo
Ben Bimber2013-07-23 09:05Jon (LabKey DevOps)2015-04-28 22:08 Problem w/ ActiveMQ TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

We have been running a 12.3 server w/ ActiveMQ and a remote pipeline server. This pipeline is pretty active, running a number of sequence pipeline jobs per week and a nightly pipeline job to calculate some genetics numbers.

Starting this weekend, our nightly pipeline job stopped running. On the app server, the pipeline job starts successfully and the first task (a local one) runs. The second task in this pipeline runs on the remote server. When it hits this step the pipeline job's status is set to 'waiting', but this task never appears to actually start.

On the remote server, labkey.log shows lines like this on startup:

INFO MuleManager 2013-07-23 06:40:34,185 main : Starting agents...
INFO MuleManager 2013-07-23 06:40:34,185 main : Agents Successfully Started
INFO MuleManager 2013-07-23 06:40:34,323 main :
**********************************************************************
* Not Set *
* Version: Not Set Build: Not Set *
* Not Set *
* Not Set *
* *
* Server started: 7/23/13 6:40 AM *
* Server ID: LabKey_Pipeline *
* JDK: 1.7.0_07 (mixed mode) *
* OS: Linux (2.6.32-358.11.1.el6.x86_64, amd64) *
* Host: <removed> *
* *
* Agents Running: None *
**********************************************************************
INFO Job 2013-07-23 06:41:11,299 PipelineTaskRunnerUMO.2 : Starting to run task 'org.labkey.ehr.pipeline.GeneticCalculationsRTask' for job '(NOT SUBMITTED) studyDefinition/kinship.txt (EHR Kinship Calculation)' with log file /lkfiles/studyDefinition/kinship/EHR Kinship Calculation/kinship.txt.log
INFO Job


This looks pretty normal to me, and it seems to be reading the job from activemq. Given that it's reading the queued job, I would have expected it to start running that task, but it doesnt. I have taken these troubleshooting steps:

1) restart pipeline java process
2) cancel/restart pipeline job
3) restart tomcat/activemq on production server
4) purge the activemq queue and retry

This seems to impact all types of remote pipeline jobs on this server. I have not consciously changed any pipeline configs in some time.

Can you suggest any troubleshooting steps to take, or information that could help?

Thanks.
jeffrey_williams@urmc.rochester.edu2013-09-06 13:28Jon (LabKey DevOps)2015-04-28 22:08 edit dataset field, data then disappeared TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I edited a dataset and noticed labkey highlighted a field yellow since the field name had blanks in it. I replaced the blanks with underscores, and then saved the dataset. When I viewed the dataset after that, the column of data was empty. The data was lost.
Ben Bimber2013-12-16 07:22Jon (LabKey DevOps)2015-04-28 22:09 Intellij 13? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
has anybody upgraded to intellij 13? are there any problems or nice new features that impact labkey? thanks.
Olivier2015-03-30 06:37Jon (LabKey DevOps)2015-03-30 22:00 Lookup subset TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I want to select a subset of rows from a list as lookup by filtering a specific value in a different field, i.e.

lookup list "access":

key,name,level
1,test1,100
2,test2,100
3,test3,100
4,test4,110
5,test5,110
6,test6,120

I want to display only those entries in the lookup field, where ("access".level = 100). Can I feed a SQL query as lookup or how do I filter a subset from a list?

thanks,
Olivier
blackhole6122015-07-07 10:06Jon (LabKey DevOps)2015-07-07 13:12 SSH into another server from Labkey File Manager TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a way to SSH into a remote server to transfer files into Labkey? I tried looking at the prototype Cloud Manager, but I was wondering if there was an easier way to access files from another server than trying to modify that module to work with SSH.

Thanks
cheryl2015-07-07 10:31Jon (LabKey DevOps)2015-07-07 13:12 Delete All Button TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
How do you get rid of the "Delete All Rows" button in a Labkey Web Part?
lewis j mcgibbney2015-10-05 21:48Jon (LabKey DevOps)2015-10-06 16:27 Entire LabKey Migration TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi Folks,
I thought I had enough information whilst in attendance at the conference last week (by the way what a great time we had in Seattle... really enjoyed it) to tackle the above issue however it seems like I am lacking some information.
I am looking to dump an entire instance of labkey (not just pointers to data, but the protocols, studies, registered modules, etc.) and migrate it to a new installation of LabKey.
Having spoken with Adam last week I was aware that it is possible to one of the following

1) Utilize the export features present within the GUI. It would allow protocol, studies, assays, etc. to be exported however this has the limitation that any custom data structures (which may for example have been produced by a custom third party module) will not be exported.
2) Use SQL dump’s which is a replication of the entire Postgres database itself. This would include custom data structures which may be been implemented by custom modules which may have been added.

On the 'custom modules' issue. I DO NOT want to loose registered modules when migrating so I need to have each module migrated as well. It was my understanding that I could do the following:

Registered modules are described and stored within $LABKEY_HOME/server/distributions/*.xml. Each of these files contain a target called “gather_modules” which registers and builds each module within the current distribution. A module descriptor therefor looks like the following

 14 <target name="gather_modules">
 15 <ant antfile="${basedir}/distributions/legacy.xml" target="gather_modules" />
 16 <copy todir="${dist.modules.dir}">
 17 <filelist dir="${staging.modules.dir}">
 18 <file name="cbcassay.module" />
 19 <file name="reagent.module" />
 20 <file name="viability.module" />
 21 <file name="letvin.module" />
 22 </filelist>
 23 </copy>
 24 </target>

The only issue is that, with LabKey Server vLabKey15.2-39071.18-bin I have no $LABKEY_HOME/server/distributions/*.xml.
Can someone advise as to what the best strategy is going forward with this migration?
Thank you very much in advance.
Lewis
Will Holtz2016-10-11 11:47Jon (LabKey DevOps)2016-10-12 19:45 Deleting rows from QueryWebPart with a non-table query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I have a hard table that I wrap in a simple query to add a new static column that will be used to create a hyperlink (analogous to the 'Details' column). I have a .sql and .query.xml file for this query and in the query metadata I use the <deleteUrl> tag to point a URL for performing a row deletion on the original hard table using /query/deleteQueryRows.view. When I use LABKEY.QueryWebPart to display a grid of the query, I cannot get the delete button to show up. I get an error displayed below the grid header of 'WARNING: button bar configuration contains reference to buttons that don't exist. Invalid original text: delete.' Is this expected behavior? If so, is there another simple way to get the indirect delete behavior short of adding my own delete button with a custom js action?

I have attached a minimal file based module that demonstrates the issue. After the module has been installed and instantiated in a folder, add the 'MoleculePlusGrid' webpart to a page to get the error. I am running this on v16.2 and the module is configured for Postgres only.

Thanks!
-Will
Ben Bimber2017-05-01 17:46Jon (LabKey DevOps)2017-05-09 17:32 Self registration / secondary approval? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The ability to let users register themselves is very useful. However, we have 2 additional requirements:

1) We'd like the potential user to submit a few additional fields in which they enter their institution and brief reason for requesting access.

2) Before the new account is actually given meaningful access, we'd like our admin to formally approve that request. For the time being, I believe 'access' means adding membership to the right group, which I'm OK with being an ad hoc kind of thing. I would be OK with the user being automatically created through the LabKey process, and only actually receiving access when our admin adds them to the group. However, our admin needs some way to know they need to follow up on this user and to make sure requests dont get lost. I would also be OK with this extra information being sent as an email, rather than persisting the DB if that ended up being easier.

Is there a good way to extend the core request process? Given our requirement to capture additional information upfront, I dont see a good option other than to largely roll our own solution. I'd probably make our own custom java RequestLoginAction, which captures the user input, stores it in a table, and gives our admin some kind of action to 'approve'. The latter would actually create the user, ideally kick off a regular user/password email, etc. It doesnt seem like that much work; however, I'm open to other ideas if this could be more aligned with core labkey.

Thanks for any ideas,
Ben
Myriam2017-10-03 07:38Jon (LabKey DevOps)2017-10-05 12:13 Linked schema from a 'flow' folder TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I want to move my flow data from the 'flow' folder to the 'study' folder with a linked schema.
I created a linked schema within the 'study' folder to access to my data but the most important field (Keyword) that i want, cannot be retrieved (please see the screenshot attached).

When i look at the the source table (with the schema browser into my 'flow' folder), i see the attribute 'U' next to the "Keyword" field and this field is not linked to any lookup table (please see the screenshot again).

Any idea ?
simon buckner2018-05-09 07:48Jon (LabKey DevOps)2018-05-18 15:27 Query Selector Checkboxes on JOINED Query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I came across this post: https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?entityId=0af653dc-8023-1030-aaa0-987439a6474a

...which indicates that selectors are not shown for queries that use JOIN statements. However, it is fives years old, so I figured I would make a new thread.

We have a query view, and we would like to be able to select the rows. This query includes a JOIN statement, and as a result, does not seem to have a primary key. I thought this was because the joined queries might return duplicate primary keys, but it looks like the presence of a JOIN statement at all hides the selectors. Is this the case, and if so, is there a workaround at this time?

Thanks,

Simon
Jon (LabKey DevOps)2022-09-28 11:52Jon (LabKey DevOps)2022-09-28 19:04 Maintenance Notice - Update of labkey.org for Wednesday, September 28th 2022 @ 6:30pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 6:30pm Pacific Time for an update

The site will be offline for approximately 30 minutes.

Please save your work before this time.
Jon (LabKey DevOps)2023-04-19 11:25Jon (LabKey DevOps)2023-04-19 19:41 Maintenance Notice - Update of LabKey.org for Wednesday, April 19th 2023 @ 7:30pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 7:30pm Pacific Time for a minor maintenance update.

The site will be offline for no more than 15 minutes.

Please save your work before this time.
Ben Bimber2010-03-29 08:38Jon (LabKey DevOps)2015-04-28 21:55 sync data between development and test servers? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
what's the best method of syncing information between a labkey production server and a development machine? these servers would be running on different OS and with different hardware. can i simply dump/import the entire labkey postgres schema? can i dump/import specific tables?

i can live with any files stored in the filesystem not existing on the development server as long as their absence will not cause undue errors to labkey. i'm mostly concerned with project/folder structure, security settings, users, data in lists, assays, datasets, etc.

thanks in advance for any help.
Ben Bimber2010-07-06 15:32Jon (LabKey DevOps)2015-04-28 21:59 trouble with validation scripts TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i'm working on making validation scripts. i used kevin's example script as a model (colors.js). i am trying to validate the dataset Arrival in the study schema. I created Arrival.js in:

../customModules/EHR_reporting/queries/study/Arrival/

See intellij screenshot and attached arrival.js. I then tried to insert a row into that dataset (see attached firefox screenshot). I got error messages and did not see anything logged to the labkey js console.

Am I doing something wrong? Is there something else I need to configure?

Other info:
Running labkey 10.2 on win7 x64
I hit 'clear gc and cache' from the memory section of the admin console prior to inserting the record

Thanks for the help.
Ben Bimber2010-07-26 09:42Jon (LabKey DevOps)2015-04-28 21:59 should this syntax work? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in a wiki page I put the following in order to load a QWP:

${labkey.webPart( partName='Query', showFrame='false', schemaName='lists', queryName='genetics_pricing', containerPath='/WNPRC/WNPRC_Units/Research_Services/Genetics_Services/Public', allowChooseQuery='false', allowChooseView='false' )}

this works find when loading this wiki from the same container as that list. however, when I try to load it from a different container it says 'list genetics_pricing not found'. according to the API page, containerPath should be accepted by a webpart.

does containerPath refer to the location of the webpart, and not the query itself? do I need to pass something like:

partConfig={containerPath="../"}

can I pass nested config options like that in a wiki?
slangley@scharp.org2010-09-20 19:43Jon (LabKey DevOps)2015-04-28 22:00 Setting up an environment for developing File-based-modules with Code Completion TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Do you have any advice on setting up a development environment to support user-friendly editing with code-completion for the LabKey JavaScript API's?

I only have the Community Edition of IntelliJ and JavaScript code-completion doesn't seem to work with it.

In Aptana or NetBeans, I can get some of the code-completion working - for Ext JS and some of the LabKey API's - if I put those JavaScript files inside my Aptana or NetBeans project.

However, I can't get code-completion working with the static functions on LABKEY.Query as defined in clientapi/Query.js. Any suggestions?

Thanks.

Scott Langley
michael_stover@urmc.rochester.edu2011-04-22 09:53Jon (LabKey DevOps)2015-04-28 22:01 Freeform relational datatables TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
After running experiments, the raw data is often processed, and summary data produced. This data is typically copied to a study as a dataset.

However, sometimes the summary data is grouped across many subjects and has been made completely unrelated to any particular clinical data. Right now, the only table one could make in Labkey to hold such data is a List. However, if the data to be held is more complicated than what a List can provide (ie, a primary key consisting of two columns), then what else can one do short of making a whole module to provide the desired table structure?

My current user desire centers around taking raw flo data and executing clustering software using random samples from multiple fcs files. The resulting data from the clustering run would ideally be represented in relational structure of 8-10 tables, a few with compound primary keys.

Any suggestions?
jdutra2012-07-25 13:42Jon (LabKey DevOps)2015-04-28 22:04 Linking by SpecimenID TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When we create an assay and copy it to study, the copied to study dataset links to the specimen information by specimen ID, and we can use that to customize the dataset view by adding specimen information such as the draw timestamp or derivative type.

However, in a regular dataset, there is apparently no way to do this. I've tried several different methods of linking, and sometimes I can even get to a point where I can choose fields from the specimen data to add to the view, but the columns just end up empty.

We have at least two situations where it would be extremely useful to be able to customize views to include data based on SpecimenID:
1. We would like to add some specimen fields to "Assay" datasets that are stored as regular clinical datasets (because the data is entered through a wiki page GUI) instead of being copied to study.
2. We are storing an assortment of metadata about specimens that cannot be stored in labkey's specimen tables. We would like to be able to add elements of that metadata to the normal specimen views, and vice versa.

I know we can always write queries to join on SpecimenID, but then we lose native functionality such as having a link in the dataset webpart or being able to easily select specimens and add them to a request.

Is it possible to link based on SpecimenID and I'm just not doing it right? If not, would you consider adding that functionality in a future version?

As always, thanks so much for your help!
- Jen
Leo Dashevskiy2013-04-11 16:40Jon (LabKey DevOps)2015-04-28 22:07 A bug in multiple Rserve session creations or am I doing something wrong? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Could someone, who has back end Rserve set-up, please, verify that the following chunk of code (two calls back to back) produces 2 identical values of data.reportSessionId variable ?

        LABKEY.Report.createSession({
            failure: onFailure,
            success: function(data){
                console.log( 'reportSessionIdCreate: ' + data.reportSessionId );
            }
        });

        LABKEY.Report.createSession({
            failure: onFailure,
            success: function(data){
                console.log( 'reportSessionIdDelete: ' + data.reportSessionId );
            }
        });

If in your case, it does not, then any pointers regarding why mine does are appreciated...

Thanks.
Anthony Corbett2013-05-17 08:22Jon (LabKey DevOps)2015-04-28 22:07 Replace assay results at the results data level TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have seen where the assay framework allows one to replace runs with new data, but is it possible to do a replace at the results (data) level. Our use case is for bioanalyzer data where 10 samples run on a single chip. However, they may need to redo only a few of those samples and not the whole chip run.

Any help would be appreciated.

Thanks,

Anthony
Leo Dashevskiy2013-08-09 18:29Jon (LabKey DevOps)2015-04-28 22:08 Question about paths of included JS libraries for a production machine TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello, folks!

In one custom module I have the following path for custom JS libraries <module_name_1>/resources/web/OpenCyto:

In a different module I need to include a library from that first module, moreover I must include it not through the begin.view.xml file way, but directly in my <module_name_2>/resources/view/begin.html file within a <script> tag (it does not work through the begin.view.xml file way, may be, because it needs jQuery, which I also must include via a <script> tag before the call below):

<script type='text/javascript' src='../../OpenCyto/FancyBox/source/jquery.fancybox.pack.js'></script>

This works fine on 2 development machine, but fails on the production machine with the following error:

"Failed to load resource: the server responded with a status of 404 (Not Found)"

I am thinking this is because I 'hacked' its path on a dev machine via: '../../OpenCyto...' and the folder structure is different on a production machine.

So, please, help me make it generic, so that it works on both production and development machines or otherwise advise what to do!

Thanks.
-Leo
Anthony Corbett2013-10-15 16:29Jon (LabKey DevOps)2015-04-28 22:08 13.2 Labkey.Query.selectRows latency TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm doing some testing for upgrading our servers to 13.2 and I'm noticing an increase in latency for HTTP requests using the JavaScript Query.selectRows method. Attached is a image showing the comparison between 13.1 (our production server) and 13.2 (our staging server) running the same query against the same dataset and same row. It takes 288ms on 13.1 and on 13.2 it takes 6.25 seconds. Both the wait time and the receiving time are very different between the two HTTP requests.

Our staging server database is a mirror of the production database, the only thing that has changed is the labkey version. The hardware is different but not drastically different. The tomcat and postgres configurations are identical.

I did some ping tests and those averaged out to the same latency. I then did trace routes between my local machine and both production and staging and the number of hops and latency between hops is the same.

This different in latency is showing up regardless of Study or dataset within the study.

I didn't try 13.1 and 13.2 on my local box to see if there is a difference (I'll do that tomorrow morning). However, I'm wondering if this can be reproduced by anyone else? Or is there something that needs to be configured on our side when upgrading to 13.2?

Thanks in advance,

Anthony Corbett
jdutra2013-10-23 07:41Jon (LabKey DevOps)2015-04-28 22:08 Specimen Archive frozen_time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The help for the specimen archive file formats lists a field called "frozen_time" and describes it as "Date / time when frozen", an attribute of the event.

Our LIMS (LDMS) provides us with the date and time the specimen was frozen, and I tried to include it in my archive file. However, the labkey field (SpecimenEvent.FrozenTime) only shows a time. I changed the formatting to include a the date, and then it always shows Jan 1, 1970, not the date that was included in my archive. I noticed that the field description says "duration of the freezing process", which would imply that this field cannot hold a date at all.

Is there a place in labkey to store the date and time a specimen was frozen? And if so, where? Or is the archive help just wrong, and only a freezing duration can be stored?

(Just as a side note - the archive help has a similar field processing_time, supposedly to hold the time when a sample was processed. In reality, this field ends up being a processing duration. But for processing, there is also a field called processing_date, described in the archive help as "date when processed" which can really store both a processing date and time. Unfortunately I don't see a frozen_date field that would serve that same function)

Thanks,
Jen
feifei bao2015-04-29 07:13Jon (LabKey DevOps)2015-05-01 14:24 Value assignment issue TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, I have a tricky problem when I apply the LABKEY.Query.selectRows() function.

Here is the simple example of my coding:

<script type="text/javascript">
    var requirementId;

    LABKEY.Query.selectRows({
            schemaName: 'lists',
            queryName: 'Main List',
        success: onSuccess,
        failure: onFailure
        });
    
    function onSuccess(data)
    {
        requirementId = data.rows[data.rowCount-1].Name;
    }
    
    function onFailure(errorInfo, options, responseObj)
    {
        if (errorInfo && errorInfo.exception)
            alert("Failure: " + errorInfo.exception);
        else
            alert("Failure: " + responseObj.statusText);
    }
    alert(requirementId);
</script>


I test the value "requirementId" inside function onSuccess(data). It has the true value. But if I test outside the function, it is undefined. How can I use this value in other functions after it has been assigned?

Thank you very much.

Feifei
vahid azimi2015-05-13 14:38Jon (LabKey DevOps)2015-05-14 15:53 Configuration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,
 
I am trying to install a local LabKey server on a machine running CentOS 6. I went through the installation steps, but am receiving this error when I go to open labkey in my browser. Also, I am only able to start up postgres when I am logged in as root; does this have something to do with the error? I am relatively new to Linux so please bear with me.
 
org.labkey.api.util.ConfigurationException: DataSources are not properly configured in labkey.xml.
       at org.labkey.api.module.ModuleLoader.initializeDataSources(ModuleLoader.java:861)
       at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:344)
       at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:258)
       at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
       at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
       at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
       at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4854)
       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5546)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
       at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
       at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
       at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1882)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
       at java.util.concurrent.FutureTask.run(FutureTask.java:262)
       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.labkey.api.util.ConfigurationException: Can't connect to data source "labkeyDataSource".
       at org.labkey.api.data.DbScope.ensureDataBase(DbScope.java:1073)
       at org.labkey.api.module.ModuleLoader.ensureDatabase(ModuleLoader.java:931)
       at org.labkey.api.module.ModuleLoader.initializeDataSources(ModuleLoader.java:838)
       ... 18 more
Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
       at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:420)
       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:195)
       at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
       at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:127)
       at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
       at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
       at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:41)
       at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
       at org.postgresql.Driver.makeConnection(Driver.java:414)
       at org.postgresql.Driver.connect(Driver.java:282)
       at java.sql.DriverManager.getConnection(DriverManager.java:571)
       at java.sql.DriverManager.getConnection(DriverManager.java:215)
       at org.labkey.api.data.DbScope.ensureDataBase(DbScope.java:1036)
       ... 20 more
 
Thanks,
Vahid
Will Holtz2016-11-29 12:51Jon (LabKey DevOps)2016-12-11 23:34 labkey.saveBatch fails when called from R transformation script TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have an assay with an R transformation script. This transformation script uses labkey.saveBatch() to create a new assay batch in a second assay before creating a batch in the original assay. (The first assay contains an FK to the second assay.)

I've used a module with such a configuration on Labkey v15.1-v16.1. I recently upgraded to v16.3, skipping v16.2. Now my transformation script never completes. I've stepped through the code, and it get stuck on a BufferedReader.readLine() call here:
      at org.labkey.api.reports.ExternalScriptEngine.runProcess(ExternalScriptEngine.java:296)
      at org.labkey.api.reports.ExternalScriptEngine.eval(ExternalScriptEngine.java:109)
      at org.labkey.api.reports.RScriptEngine.eval(RScriptEngine.java:90)
      at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
      at org.labkey.api.study.assay.DefaultDataTransformer.transformAndValidate(DefaultDataTransformer.java:137)
      at org.labkey.api.study.assay.DefaultAssayRunCreator.transform(DefaultAssayRunCreator.java:102)
      at org.labkey.api.study.assay.DefaultAssayRunCreator.saveExperimentRun(DefaultAssayRunCreator.java:288)
      at org.labkey.api.study.assay.DefaultAssayRunCreator.saveExperimentRun(DefaultAssayRunCreator.java:135)
      at org.labkey.api.study.actions.UploadWizardAction$RunStepHandler.saveExperimentRun(UploadWizardAction.java:759)
      at org.labkey.api.study.actions.UploadWizardAction$RunStepHandler.handleSuccessfulPost(UploadWizardAction.java:734)
      at org.labkey.api.study.actions.UploadWizardAction$RunStepHandler.handleStep(UploadWizardAction.java:724)
      at org.labkey.api.study.actions.UploadWizardAction.getView(UploadWizardAction.java:173)
      at org.labkey.api.study.actions.UploadWizardAction.getView(UploadWizardAction.java:99)
      at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:80)
      at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:177)
      at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:415)
      at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1211)
      at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
      at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1144)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:206)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
      - locked <0x2c9a> (a org.apache.tomcat.util.net.SocketWrapper)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)

Attached is a minimal module for reproducing this behavior with the following steps:
1) activate module testtrans
2) create instance of assay TestTrans1
3) create instance of assay TestTrans2, the assay instance name must be 'TT2'
4) import a random text file into the TestTrans1 instance
5) Note that the import never completes

This breaks one of my modules that is in production, so if anyone has ideas on how to work around this, please let me know.

thanks,
-Will
steve harris2017-09-19 03:20Jon (LabKey DevOps)2017-09-19 13:31 Automatically generating sequence number values for specimens TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi

I would like to be able to automatically generate the sequence num value for specimen events as the users will be manually adding specimens to the study (and then hide it from the data entry form entirely as pointed out in a previous post).

Is this possible? And if so, how do I do it?

Steve
zromer2018-02-14 12:31Jon (LabKey DevOps)2018-02-16 22:36 Problems with Python transformation script TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have a Python engine set up on my Atlas instance with $(runInfo) configured as the Program Command (screenshot of engine configuration attached). I also have a python transformation script added to a particular assay module. I'd like this transformation script to take the assay data being uploaded by the user before Atlas tries to match its columns to the assay data result set definition, do some preprocessing on it, then write the file out to be received by the assay module. I'm having two issues with this.

1) How do I ensure my transformation script is getting called? I'm currently trying to have my script send and email and write out a test file to the local execution directory but neither seems to be happening upon upload to the Assay Module my transformation script is a part of.

2) If I understand correctly, the Program Command with $(runInfo) will pass a runProperties.tsv file to my python script as a command-line parameter which I will then need to read in order to get the runDataUploaded property which contains the file path of the data uploaded by the user. Then I will do my transformation on the data after I've read it in. Then... outputting the transformation gets fuzzy to me.

Do I then write the transformed file out and replace the runDataUploadedFile attribute with the transformed file path, then write out the runProperties.tsv file to... where? Or do I replace the transformedRunPropertiesFile attribute with runProperties.tsv after I've updated the runDataUploadedFile attribute with the transformed file path? Or something else? It is generally unclear to me how the program picks up the output of a transformation script.
Jon (LabKey DevOps)2022-05-12 13:50Jon (LabKey DevOps)2022-05-12 22:16 Maintenance Notice - Upgrade of labkey.org for Thursday, May 12th 2022 @ 9pm Pacific Time TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 9pm Pacific Time for an upgrade to LabKey 22.5

The site will be offline for approximately one hour.

Please save your work before this time.
dandante@dandante.com2006-09-25 20:40Jon (LabKey DevOps)2015-04-24 15:48 building CPAS from source: apt taskdef2010-10-25 00:00TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I am interested in building custom modules for CPAS so as a prerequisite to that I tried to build CPAS itself from source.

(Let me know if this is not the appropriate place for development-related questions and where the appropriate place is).

I am using IntelliJ IDEA 5.1 on Linux (Fedora Core 3).

I followed all the instructions on the site for building from source, including the instructions specific to IDEA.

When I run the "build" target of the build.xml in modules/, I get some warnings like this:
/home/dante/IdeaProjects/cpas/modules/beehive-tools.xml:151: Warning: taskdef class org.apache.beehive.controls.runtime.packaging.ControlJarTask cannot be found

Then this possibly related error:
/home/dante/IdeaProjects/cpas/modules/beehive-tools.xml:144: Error running apt compiler
[...]
Caused by: java.io.IOException: java.io.IOException: apt: not found

This is a very long stack trace--the complete output of the "ant build" command is attached.
(search for "warning" or "error" to get to the warnings and errors).

I looked through the build files and everything seems fine--the taskdef uses a classpath pointing to a jar that does indeed contain the class mentioned in the warning.

Also, what is that IOException--is ant actually looking for an executable called "apt" to run from the command line?

Any help would be appreciated--I would love to be able to build CPAS from source.

Thanks
wnels2@uky.edu2007-12-20 13:06Jon (LabKey DevOps)2015-04-28 21:52 Compare view? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just installed 2.3 with the windows graphical installer. Using the MS2 compare view I keep getting, cannot access the internet site, errors. I cannot find a pattern that is reproducible but I think it is related to the query mode.
Attached are the logs.

Thanks,
Bill
wnels2@uky.edu2008-01-28 13:24Jon (LabKey DevOps)2015-04-28 21:52 DRT error: study.participantcohortdatasetid does not exist TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just updated and ran the drt: I'm getting an error in the Junit tests. Does this look familiar to anyone?
Thanks,
Bill

Labkey server throws this:

INFO DbSchema 2008-01-28 16:13:25,875 8080-Processor23 : Loading DbSchema "study"
ERROR Table 2008-01-28 16:13:26,765 8080-Processor23 : SQL Exception
org.postgresql.util.PSQLException: ERROR: column study.participantcohortdatasetid does not exist

Ant output:

     [java] Clicking button with image src /Delete.button
     [java] Navigating to /admin/showErrorsSinceMark.view
     [java] WARNING: getString(getTitle) saw a bad result OK,
     [java] WARNING: getString(getTitle) saw a bad result OK,
     [java] =============== Completed SeleniumBasicTest (1 of 11) ==============
===
     [java] ETest failed. Page html dumped to:
     [java] C:\CPAS\server\test\build\logs\200801281613SeleniumBasicTest.htm
l

     [java] Time: 137.672
     [java] There was 1 error:
     [java] 1) testSteps(org.labkey.test.web.SeleniumBasicTest)junit.framework.A
ssertionFailedError: There were errors during the test run
     [java] at org.labkey.test.web.BaseSeleniumWebTest.checkErrors(BaseSelen
iumWebTest.java:692)
     [java] at org.labkey.test.web.BaseSeleniumWebTest.testSteps(BaseSeleniu
mWebTest.java:596)
     [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces
sorImpl.java:39)
     [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet
hodAccessorImpl.java:25)
     [java] at org.junit.internal.runners.OldTestClassRunner.run(OldTestClas
sRunner.java:35)
     [java] at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:
32)
     [java] at org.labkey.test.Runner.runTest(Runner.java:175)
     [java] at org.labkey.test.Runner.runTests(Runner.java:589)
     [java] at org.labkey.test.Runner.main(Runner.java:531)

     [java] FAILURES!!!
     [java] Tests run: 1, Failures: 0, Errors: 1

     [java] ============= Time Report ==============
     [java] SeleniumBasicTest 2:17 100%
     [java] SeleniumJUnitTest 0:00 0%
     [java] SeleniumSecurityTest 0:00 0%
     [java] SeleniumExpTest 0:00 0%
     [java] FlowTest 0:00 0%
     [java] SeleniumMessagesTest 0:00 0%
     [java] XTandemTest 0:00 0%
     [java] SeleniumWikiTest 0:00 0%
     [java] SeleniumStudyTest 0:00 0%
     [java] SeleniumNabTest 0:00 0%
     [java] SeleniumIssuesTest 0:00 0%
     [java] ----------------------------------------
     [java] Total duration: 2:17

     [java] Completed 2008-01-28 16:13

BUILD FAILED
C:\CPAS\server\build.xml:1605: The following error occurred while executing this
 line:
C:\CPAS\server\test\build.xml:356: The following error occurred while executing
this line:
C:\CPAS\server\test\build.xml:261: The following error occurred while executing
this line:
C:\CPAS\server\test\build.xml:642: Java returned: 1

Total time: 2 minutes 23 seconds
Brian Pratt2009-09-17 13:00Jon (LabKey DevOps)2015-04-28 21:54 Uploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When one implements SSL using a cert without a trusted CA, the browser barks and you have to tell it that you're willing to trust the cert anyway, then all is well, and they make it pretty easy (too easy?) to do. Unfortunately Java as used in the upload tool has the same issues with an untrusted CA, but fails more spectacularly and less helpfully:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
etc etc

There's a known workaround for this at http://www.java-samples.com/showtutorial.php?tutorialid=210 , but I think it might confound a lot of end users. You have to add the cert in question to Java's keystore.

It would be really helpful if the uploader tool could catch the exception and add the cert to the keystore automagically, on the assumption that the tool wouldn't have been invoked if the browser hadn't already decided to trust the cert, but at a minimum I thought LabKey would like to know that this is likely to pop up in the field.
nicholas.arnold@proteinai.com2010-01-07 15:37Jon (LabKey DevOps)2015-04-28 21:54 Webpart image output TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm working on a caveat within the LABKEY.WebPart.render(), that is that I'm trying to render two images to the same div. Each image is currently being created by different R reports and rendered to two different divs.

It would be helpful in the report I'm generating to have the R report images come up side by side rather than stacked.

I see that the render creates a table within the div and essentially all I need to do is move the <td> from one div into the first div making the images appear side by side. Another thought I had was I could use R to try and concatenate the images to push just one image to the page but that seems clunky.

Does anyone have experience with this kind of idea?

- Nick Arnold
Ben Bimber2010-02-22 11:49Jon (LabKey DevOps)2015-04-28 21:55 added webpart / renamed underlying file TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
If add a webpart to a page, then rename the underlying file it is not longer displayed. If a portal page contains had one of these non-existent webparts, JS errors can occur. Besides re-naming the file, then deleting the webpart from the page, is there any way to get rid of it? Is it possible to tell which webparts a portal page is trying to load?

thanks.
Ben Bimber2010-04-02 08:40Jon (LabKey DevOps)2015-04-28 21:55 R scripts and site wide variables? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
it would be convenient if certain params were consistent across all our graphs in the EHR. some of this is as simple as coloring on headers. is there a good approach to standardize this? would i write one r script that sets these variables then include it in other scripts?

if that is a viable approach, where is the least obtrusive place to store this script? i wouldnt want it associated with an actual query since there's no reason for a user to see it. i'm writing this as a file based module.
flek.mys@googlemail.com2010-05-21 11:00Jon (LabKey DevOps)2015-04-28 21:59 External Login TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm trying to login to labkey externally by using the server-side apis.
Therefore I implemented a small function in php which looks like that:

function httpPostRequest($url, $port, $data) {
    $url = parse_url($url);
    do {
        $fp = @fsockopen($url[host], $port);
    } while(!$fp);
    fputs($fp, "POST ".$url[path]." HTTP/1.1\r\n");
    fputs($fp, "HOST: ".$url[host]."\r\n");
    fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
    fputs($fp, "Content-Length: ".strlen($data)."\r\n");
    fputs($fp, "Connection: close\r\n\r\n");
    fputs($fp, $data);
    while(!feof($fp)) {
        $res .= fgets($fp, 128);
    }
    fclose($fp);
    
    return $res;
}

To do the login I have:
$url = "http://sandstorm.charite.de:8080/labkey/login/login.post";
$data = "email=<my-email>&password=<mypassword>";
$result = httpPostRequest($url, 8080, $data);
print_r($result);

Unfortunately this doesn't work. And labkey trys to redirect me to the front page but instead of using the actual host it redirects me to http://localhost/labkey/project/home/start.view

The result of this http request are:
HTTP/1.1 301 Moved Permanently Server: Apache-Coyote/1.1 Set-Cookie: JSESSIONID=E3CC2075E99407C400FCED87BE5215A0; Path=/labkey Server: Labkey/10.1 Expires: Thu, 01 Jan 1970 00:00:00 GMT Pragma: no-cache Cache-Control: no-cache Cache-Control: no-store Set-Cookie: JSESSIONID=747764441DD908DE76E02BE71CD16769; Path=/labkey Set-Cookie: email=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/labkey/login/ Location: /labkey/project/home/start.view? Content-Type: text/html;charset=UTF-8 Content-Length: 114 Date: Fri, 21 May 2010 17:48:56 GMT Connection: close "> -->

Can anyone help me please? (And please don't mind about silly mistakes as I'm more or less new to this topic :))

Thanks

Josh,
BCRT
Ben Bimber2010-06-16 05:01Jon (LabKey DevOps)2015-04-28 21:59 possible to trigger rematerialization via pipeline of study w/o actual reload? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
the two ways i know to rematerialize a study are: reload using the pipeline or run query validation in the schema browser. i guess you could individually view each dataset too. unless the study is already materialized, the EHR times out when using the query validation route. i think you pretty much need the pipeline for that.

is there any mechanism to trigger rematerialization using the pipeline without actually importing data?
Ben Bimber2010-07-28 08:02Jon (LabKey DevOps)2015-04-28 21:59 question on how column scale is calculated TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
the metadata from a query contains information about the columns, including a scale property. how exactly is that calculated and what goes into that calculation?

The only reason I ask is because i ran into something odd. I am running a query against a list. There's 4 columns, all normal text fields. I displayed this list in an editor grid. The key column (a short string), was displaying with the longtext component (there's a little button that triggers a popup text-editor window). it didnt make any sense until I looked at EditorGridPanel and saw this line:

if(col.multiline || (undefined === col.multiline && col.scale > 255 && this.metaMap[col.dataIndex].type === "string"))

the editor grid will use that component whenever the field is multiline text or the scale is above 255. I'm assuming maybe b/c 'project' is the keyfield labkey gives it more space? it's scale is 300.
Ben Bimber2010-08-23 12:46Jon (LabKey DevOps)2015-04-28 21:59 determine whether issue tracker email was sent? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
one of our users reported that she created an issue and put three emails in the notify list; however, only one of these people received the email. i am trying to figure out whether this is a true labkey issue, operator error, or whether the labkey emails are getting thrown into people's spam.

does labkey log when it thinks it sent an email somewhere?

if you have access to our site, the issue is here:
https://xnight.primate.wisc.edu:8443/labkey/issues/WNPRC/WNPRC_Units/Research_Services/Research_Computing/Issue_Tracker/details.view?issueId=820
Ben Bimber2010-10-14 08:55Jon (LabKey DevOps)2015-04-28 22:00 what determines which user has webdav permissions? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
i have a folder in labkey. i pointed the pipeline root of this folder to a filesystem location outside of the labkey file root. this directory contains the nightly DB backups for our system. i would like to give a user at WNPRC read access to this folder so he can download our DB backups. read-only access would be great although i'd trust him with R/W access if necessary.

I gave him read access to the labkey folder and even made him a folder admin. He's able to browse the files in the files webpart. However, when he tries to download one, we get a webdav not authorized error. Where is this access determined? I would have thought that labkey's folder level permissions extended to the filesets.

Folder is here:
https://xnight.primate.wisc.edu:8443/labkey/project/WNPRC/EHR/Backups/begin.view?

Thanks for the help.
Ben Bimber2010-10-25 09:18Jon (LabKey DevOps)2015-04-28 22:00 styling on site TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am wondering if any of these are possible:

1. remove logo entirely from top of site. if you do not supply a logo file, it becomes the labkey beaker rather than blank. I could use a blank white png file as the logo I think. perhaps i could also set display:false for whatever CSS class is used on that.

2. is it possible to add some sort of footer to every page?

thanks.
Ben Bimber2010-12-22 05:37Jon (LabKey DevOps)2015-04-28 22:00 print button that always prints all rows? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in 10.3, there was a bug with the print button on dataregions that was fixed. now when you print, it prints the same number of rows as your original grid.

our users are requested that when they print, it always print the full number of rows. if you have a gird with 1000 rows, and your QWP only shows 100, they want print to print all 1000. technically they could hit 'page size: all' on the grid, then print, but this is slow. it also requires they wait twice as long as needed. changing page size on the grid takes a few seconds to load all. then they need to wait an equal amount of time for the print action, which essentially runs the same query.

the print button basically seems to be a URL:

https://xnight.primate.wisc.edu:8443/labkey/query/WNPRC/EHR/printRows.view?schemaName=study&query.queryName=Clinical%20Remarks&query.Id%2FcurLocation%2Farea~eq=A2&query.sort=&query.queryName=Clinical%20Remarks

that button would therefore be easy to override. best-case scenario would be to add this button to study.studydata, so that individual datasets inherit it. the questions are:

1. can i use any sort of substitution syntax? ie. printRows.view?schemaName=${study}&query.queryName=${queryName}&query.Id%2FcurLocation%2Farea~eq=A2&

2. since i kinda doubt #1 is possible, the other idea is to create a JS handler for this button. it could figure out the query/schema from the DR, use getUserFilter() to get filters, then spawn a new tab. I would probably have that handler make a prompt to ask the user how many rows they want, then print accordingly.

Is the second one my best option? Thanks for the help.
Ben Bimber2011-02-15 13:30Jon (LabKey DevOps)2015-04-28 22:01 Shared pipeline protocol XML files TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Each run of a Labkey pipeline is defined in an XML file. These can be saved as protocols, which basically serve as a template for future runs.

Labkey has an API for obtaining saved templates for a given pipeline/folder:


        LABKEY.Pipeline.getProtocols({
            taskId: this.taskId
            ,successCallback: function (protocols, defaultProtocolName){.....}
            ,scope: this
            });

I have a pipeline defined in a file-based module. Is there any mechanism such that the pipeline could provide a set of default protocols, that would be automatically available when this pipeline is used in any folder or on any server that installs this module?

The primary reasons I ask are:

1. general portability
2. situations where you create a workbook, then execute the pipeline from within it. because each workbook is its own container, they do not have any shared protocols

Points 1 and 2 share similarities, but are slightly different problems that might have different answers.

Thanks.
jean.matscher@novartis.com2011-04-29 01:00Jon (LabKey DevOps)2015-04-28 22:01 Issue with MS2 Notification API TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

we are setting up the automated processing of MS spectra files using the new StartSearchCommand and FileNotificationCommand server API's and their wrapper classes MS2SearchClient and pipelineFileAvailableClient.
To do so we have created the required config.properties files and unzipped the LabKey11.1-16034-ClientAPI-Java into the same folder on the MS workstation. All files are ready and available to LabKey, we now want to launch the upload of the list of files that need to be processed.


According to the provided example cmd file, the following command line will trigger the loading of the csv file with the raw file information:
java -Done-jar.main.class=org.labkey.remoteapi.test.MS2SearchClient -jar labkey-client-api-11.1.jar G:/AppData/CPAS/NBxShare/LabKeyRoot_v11/v11_Test/@files/ClientAPITest.csv

We get the following error:
Failed to load Main-Class manifest attribute from
labkey-client-api-11.1.jar


Is the syntax not correct, or is the manifest file incomplete?


Thanks for any hint, best regards
Jean
jdutra2011-05-17 11:43Jon (LabKey DevOps)2015-04-28 22:01 View Permissions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm having trouble with setting view permissions. I go to Admin -> Manage Study -> Manage Views. I click on a custom view I have just created, where the permissions are private by default. I click "permissions" and get to the "Report and View Permissions" page. But when I try to change to either Explicit or Default permissions, and then hit save, nothing happens, and my view remains private. Is this a bug, or am I missing something?

Tia,

Jen
Melissa Laurie2011-09-09 12:48Jon (LabKey DevOps)2015-04-28 22:02 Loading a splash page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

We have developed a splash HTML for our new homepage. Following the instructions Brian C shared with us on splash pages, we have the files are in place and appear to load properly if you explicitly point your browser at the public.html file, e.g.:

    https://tbsystemsbiology.org/public.html

However, without specifying the public.html file ...

   https://tbsystemsbiology.org
   https://www.tbsystemsbiology.org

... you still get the old (non-splash) view.

How can we get the splash view for ...
 https://tbsystemsbiology.org
 https://www.tbsystemsbiology.org

....these pages?

Thanks!
Maya Li2012-01-04 17:07Jon (LabKey DevOps)2015-04-28 22:03 filebrowser.js error TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
While looking at the documentation for embedded Web Part https://www.labkey.org/wiki/home/Documentation/page.view?name=wikiInsertExamples, I noticed that the file web part isn't showing up properly. My google debug tool tells me that there is an error at line 3008 with a message that says "undefined is not a function".

    this.fileUploadField = new Ext.form.FileUploadField({ ...
Leo Dashevskiy2012-04-06 14:13Jon (LabKey DevOps)2015-04-28 22:03 How to use Ext.form.field.ComboBox with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
My LABKEY.ext.Store gets its data from a Labkey custom query:

storeSampleIds = new LABKEY.ext.Store({
                        schemaName: 'flow',
                        queryName: 'SampleIds'
                });

Here is my ComboBox:

Ext4.create('Ext.form.ComboBox', {
    store: storeSampleIds,
    queryMode: 'local',
    renderTo: 'comboBoxSampleIds'
});

Looks like a ComboBox requires valueField config option set up and it seems to come from one of the fields of a store (for Ext default type, not sure about expanded Labkey one).

So how would I go about doing this?
Thanks.
Daniel Nicolalde2012-06-07 12:34Jon (LabKey DevOps)2015-04-28 22:03 Error with R file TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I modified a R file in our installation of Labkey and it works correctly in my development machine, and it renders the graph correctly on the test server once I restart Tomcat on the test server. But every time I close the session of labkey users in my terminal window the graph stop plotting and I get the following error message.

Error executing command
javax.script.ScriptException: Loading required package: Matrix
Loading required package: lattice
Loading required package: quadprog
Loading required package: RCurl
Loading required package: bitops
Loading required package: rjson
could not lookup DNS configuration info service: (ipc/send) invalid destination port
Error in function (type, msg, asError = TRUE) :
  Couldn't resolve host 'test-ehr.primate.wisc.edu'
Calls: labkey.selectRows ... getURI -> curlPerform -> .Call -> <Anonymous> -> fun
Execution halted

I am not sure what is wrong with the my R file or with the configuration. I just modified the R code that generates the plot.
Any help will be appreciated. I am uploading the R file that I modified, I change the line 23 on the test server for it to work.

Thank you

Daniel
michael_stover@urmc.rochester.edu2012-07-17 13:00Jon (LabKey DevOps)2015-01-13 16:19 Problems with Rlabkey package TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We're having some trouble with the Rlabkey package. It works for some folks, but not for others. As far as we can tell, we have installed everything the same way. But, when we run a script exported from labkey on some people's machines, we get:


Error in labkey.selectRows(baseUrl = "http://blis.urmc.rochester.edu/labkey", :
  HTTP request was unsuccessful. Status code = 401, Error message = Moved Temporarily


We really have no idea what is different. Does this error message suggest anything to anyone?
jeckels2012-07-30 16:16Jon (LabKey DevOps)2015-04-28 22:04 12.2 is branched for release TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We've created a separate branch for the 12.2 release. If you're doing development targeted at that version, please switch your SVN enlistments:

https://hedgehog.fhcrc.org/tor/stedi/branches/release12.2

For those who are committing to the core SVN server, the same rules apply as usual:

1. All checkins need to be associated with a bug in the issue list.
2. All checkins must be approved by Triage (Adam, Karl, or me).
3. All checkins must have a code review.

We will regularly merge branch changes into the trunk. You do not need to merge your own checkins.

Thanks,
Josh
charlotte.raillere@sanofi.com2012-10-09 08:45Jon (LabKey DevOps)2015-04-28 22:06 Dynamically create a folder TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I would like to know if it is possible to dynamically create a folder (project, study…). I do not see any information in the different LabKey APIs.
The idea would be for instance to create a module which would allow a user (with no administrator privileges) to create a folder with predefined type and modules.

Thank you,
Charlotte.
Ben Bimber2013-01-28 13:52Jon (LabKey DevOps)2015-04-28 22:07 Create stepped graph? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to make a plot using LabKey's JS package. The data is blood volume over time. I have been using a scatterplot, but have a couple questions:

1) By any chance can LabKey do bar graphs?

2) Instead of a simple line connecting each point, I'd prefer to make a stepped graph, like one of these:

this the best-case:
http://simpy.sourceforge.net/SimPy_Manual/_images/Prog3.png

this is second best:
http://www.algebra-class.com/image-files/step-functions-3.gif

Is the possible to get LK to draw a line like either of those? I can see a couple ugly ways to accomplish that:

- to get the stepped graph, I could probably inject an additional data point between each neighbor to coax the connecting line to form that shape.

- I imagine a line like the second graph could be achieved by adding 1 layer for each horizontal line I want to create, and using a simple line graph.

Before I try anything ugly, I thought i'd see if there's a more elegant option.

Thanks in advance.
Anthony Corbett2013-02-06 10:58Jon (LabKey DevOps)2015-04-28 22:07 File based Assay and hard tables for domains TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Our group currently has a general prupose assay design for a standard elispot/elisa assay. However we have 50K records currently with 12 properties in the results domian. This means we have 600K+ records in the Property Store and our performance is getting slow.

I proposed creating a simple file based module. But I'm unsure if file based modules allow you to define hard tables in the DB to store assay data or if this is an option only in a java based module?

Thanks,

Anthony
amosboma46512013-10-31 19:17Jon (LabKey DevOps)2015-04-28 22:08 Ant Build ErrorS TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi all.
I'm trying to ant the "../labkey-13.2-src/server/build.xml",and it occurs errors about"YUI compressor didnt run properly".
Anyone know about that? How can I do to fix it and ant successfuly?
Thans very much.
Mark22015-02-19 12:49Jon (LabKey DevOps)2015-02-25 12:18 How to create "New Study with pre-defined timepoints" TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
https://www.labkey.org/wiki/home/Documentation/page.view?name=setUpDatasets

I am trying to set up a new "Study" and am having some issues as below, can someone help please?

For the "Demographics" file instead of having a start date I have predefined time points so instead of the following:

101344    2008-04-27    2008-04-27    Germany    English    f    ARV    Group 1: Acute HIV-1           
103505    2008-04-24    2008-04-24    Germany    French    f    ARV    Group 1: Acute HIV-1           
103866    2008-04-21    2008-04-21    USA    German    m    Natural Controller    Group 1: Acute HIV-1            69

I have my files formatted as below where the dates are replace with the actual timepoint eg "Day 0" or "0" as below

101344    Day0    Day0    Germany    English    f    ARV    Group 1: Acute HIV-1           
103505    Day0    Day0    Germany    French    f    ARV    Group 1: Acute HIV-1           
103866 Day0    Day0    0    USA    German    m    Natural Controller    Group 1: Acute HIV-1            69

And then for each assay I have results with the pre-defined timepoints (Day0,1,2,5) and not dates like below eg HIV test Results:

103866    Group 1: Acute HIV-1    USA    m    Day0    69    9               
103866    Group 1: Acute HIV-1    USA    m    Day1    69    37
103866    Group 1: Acute HIV-1    USA    m    Day2    69    65
103866    Group 1: Acute HIV-1    USA    m    Day5    69    93

Can someone show me how to create a new "Study"    with pre-defined timepoints


Thanks very much
lewis j mcgibbney2015-03-17 12:02Jon (LabKey DevOps)2016-01-21 17:58 Pushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi Folks,
I've implemented the necessary implementation for publishing the Java API (jar, javadoc.jar, sources.jar and signatures) to Maven Central via sonatype.
I have a patch and I would like to make this available for you guys for whenever you want to do it in the future.
Additionally, I've logged and issue with Sonatype to make the artifacts available
https://issues.sonatype.org/browse/OSSRH-14496
https://oss.sonatype.org/content/repositories/central_bundles-3673/
I've attached the patch here... this can be applied against trunk and should be run as follows

$ patch -p0 -i LABKEY-JAVA_API.patch
$ mv maven-ant-tasks-2.1.3.jar remoteapi/java/ivy/
$ cd remoteapi/java/
$ ant -lib ivy/ deploy
The generated artifacts are then pushed to https://oss.sonatype.org/content/repositories/
This makes our life much easier as we can then directly consume the Java API within our project build e.g. Maven, Ivy. Gradle, Grails, etc.
Please let me know if there is somewhere else I can post the patch.

Thank you
Lewis
martin lague2015-12-18 07:51Jon (LabKey DevOps)2016-01-14 13:20 Bad SQL grammar error when deleting project TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
I'm getting a Bad SQL grammar error when I try to delete a project. To test, I created a new project and went to Admin->Folder->Management, selected the new project and clicked on the delete button.
Here is the error I got:
-------
500: Unexpected server error

SqlExecutor.execute(); bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "gw_labkey.x_lk_outbd_specimens" does not exist Position: 13
-------

I've attache the complete error message.
I have LabKey 15.3 build 41379.34
diego2016-06-02 12:42Jon (LabKey DevOps)2016-06-02 16:48 schema study missing... TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am trying to query the LabKey HIV demo study, but under the "Query Schema Browser" I get an error stating that the "schema study was not found"...

If I do open the labkey database in the "pgAdmin III" GUI, there is a"study" schema listed...

How do I recover the "study" schema in "Query Schema Browser"??

Have attached a couple screenshots.

Thanks in advance!
Diego
atul sharma2017-06-12 04:30Jon (LabKey DevOps)2017-06-12 12:48 org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist
  Position: 681
       at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
       at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
       at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
       at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
       at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:450)
       at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:277)
       at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:99)
       at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:94)
       at org.labkey.api.data.BaseSelector.getArray(BaseSelector.java:64)
       at org.labkey.announcements.model.AnnouncementManager.getBareAnnouncements(AnnouncementManager.java:156)
       at org.labkey.announcements.model.DiscussionServiceImpl.getDiscussions(DiscussionServiceImpl.java:112)
       at org.labkey.announcements.model.DiscussionServiceImpl.getDisussionArea(DiscussionServiceImpl.java:148)
       at org.labkey.announcements.model.DiscussionServiceImpl.getDisussionArea(DiscussionServiceImpl.java:141)
       at org.labkey.wiki.WikiController.getDiscussionView(WikiController.java:1277)
       at org.labkey.wiki.WikiController.access$1300(WikiController.java:131)
       at org.labkey.wiki.WikiController$PageAction.getView(WikiController.java:1233)
       at org.labkey.wiki.WikiController$PageAction.getView(WikiController.java:1144)
       at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:80)
       at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:178)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:409)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1281)
       at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
       at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1144)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:205)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
       at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
       at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
       at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
       at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
       at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
       at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
       at java.lang.Thread.run(Thread.java:745)
Caused by: org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist
  Position: 681
       at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2182)
       at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1911)
       at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:173)
       at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:622)
       at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:472)
       at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:386)
       at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
       at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
       at org.labkey.api.data.dialect.StatementWrapper.executeQuery(StatementWrapper.java:1157)
       at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.executeQuery(SqlExecutingSelector.java:391)
       at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.getResultSet(SqlExecutingSelector.java:331)
       at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:258)
       ... 51 more
DialectSQL = SELECT *
    FROM (
    SELECT
    Threads.RowId AS RowId,
    Threads.EntityId AS EntityId,
    Threads.CreatedBy AS CreatedBy,
    Threads.Created AS Created,
    Threads.ResponseCreatedBy AS ResponseCreatedBy,
    Threads.ResponseCreated AS ResponseCreated,
    Threads.AssignedTo AS AssignedTo,
    Threads.Container AS Container,
    Threads.Title AS Title,
    Threads.Body AS Body,
    Threads.RendererType AS RendererType,
    Threads.Expires AS Expires,
    Threads.Status AS Status,
    Threads.LatestId AS LatestId,
    Threads.discussionsrcidentifier AS discussionsrcidentifier,
    Threads.discussionsrcurl AS discussionsrcurl,
    Threads.ResponseCount AS ResponseCount,
    Threads.Modified AS Modified,
    Threads.LastIndexed AS LastIndexed
    FROM comm."Threads" Threads ) x
    WHERE (discussionsrcidentifier = ?) AND (Container = ?)
    ORDER BY Created ASC

request attributes
LABKEY.OriginalURL = http://172.21.34.151:8080/labkey/wiki/I2B2Demo1/page.view?name=default
LABKEY.StartTime = 1497266713804
LABKEY.action = page
LABKEY.controller = wiki
LABKEY.Counter = 0
X-LABKEY-CSRF = eebf3e22aa7eba4a21a10bb6b5d23718
LABKEY.container = /I2B2Demo1
LABKEY.RequestURL = /labkey/wiki/I2B2Demo1/page.view?name=default
LABKEY.OriginalURLHelper = /labkey/wiki/I2B2Demo1/page.view?name=default

core schema database configuration
Server URL    jdbc:postgresql://localhost:5432/labkey
Product Name    PostgreSQL
Product Version    9.5.3
Driver Name    PostgreSQL Native Driver
Driver Version    PostgreSQL 9.4.1207
eva pujadas2017-07-24 07:01Jon (LabKey DevOps)2017-07-24 17:25 Error upgrading labkey dev server TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear Support Team,

When upgrading LabKey from 17.1 to 17.2 we got this error in the log files during the first boot:


INFO ModuleLoader 2017-07-24 12:52:18,782 Module Upgrade : Starting module 'Genotyping'
ERROR ModuleLoader 2017-07-24 12:52:18,784 Module Upgrade : Failure starting module: Genotyping
java.lang.IncompatibleClassChangeError: Found interface org.labkey.api.pipeline.PipelineService, but class was expected
    at org.labkey.genotyping.GenotypingModule.doStartup(GenotypingModule.java:75)
    at org.labkey.api.module.DefaultModule.startup(DefaultModule.java:245)
    at org.labkey.api.module.ModuleLoader.completeStartup(ModuleLoader.java:1341)
    at org.labkey.api.module.ModuleLoader.initiateModuleStartup(ModuleLoader.java:1285)
    at org.labkey.api.module.ModuleLoader.afterUpgrade(ModuleLoader.java:1451)
    at org.labkey.api.module.ModuleLoader.lambda$startNonCoreUpgradeAndStartup$2(ModuleLoader.java:1428)
    at org.labkey.api.module.ModuleLoader$$Lambda$110/625547955.run(Unknown Source)
    at org.labkey.api.module.ModuleUpgrader.lambda$upgrade$0(ModuleUpgrader.java:96)
    at org.labkey.api.module.ModuleUpgrader$$Lambda$111/287954022.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)

We have the Genotyping external module version 15.20 installed for demo purposes. Do you know the cause of this failure?
Thank you very much,
Eva
dennisw2017-09-21 10:38Jon (LabKey DevOps)2017-09-21 14:24 Finding studyDataset table 'prefix' for Dev purposes TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Preface: I make it a practice to never develop any code that relies on directly querying the underlying LK database and instead use the API.

However, I'm working on a small project and during the initial stage it would be helpful to be able to easily tell what study or container is correlated to the hex prefixes on the dataset tables in the database. For instance, how do I figure out what study or container the db table studyDataset.c111d5322_demographics belongs to (other than by looking inside the table)?
dennisw2017-09-28 08:23Jon (LabKey DevOps)2017-09-29 13:10 Search Results Question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Does anyone know if it possible or how one would go about configuring LabKey search to return results for wiki pages by the page(s) the wikis are on, rather than the wiki itself? It's very confusing for our users to find an 'out of context' wiki. They may search for something, find it in one our wiki pages and then click on that and it will take them to the wiki itself.

We have a quite a few cases where we use the same wiki for multiple studies, and so we put it in a location that lives above the study containers themselves. I would like to configure search so that if they find one of these wikis, or any wiki, the results come back linked to the page(s) the wikis are on. I understand that that would result in multiple search results in many cases, but that would be much preferable to sending them to a page with nothing but a wiki on it.

I've looked in the source for the Search module, and I can see how the problem could be attacked that way but I'm wondering if there isn't a more maintainable way to approach the problem.

Thanks
Matt V2018-02-05 16:29Jon (LabKey DevOps)2018-02-13 13:43 Filtering View/Report via URL TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a DB constructed view combining a few datasets that other pages within a labkey instance link to. I'd like to pass a filter arg via the URL similar to how it's done with datasets (mentioned on https://www.labkey.org/Documentation/wiki-page.view?name=sortingData#url).

I've tried just a basic sort via reports.sort=ParticipantID, report.sort=ParticipantID, dataset.sort=ParticipantID, etc. However, sort doesn't seem to work with this view/repore let alone filtering. If I do the same on the dataset's URL it works. Is there a way to accomplish this for a view/report?
zoya_pasha2018-07-20 02:00Jon (LabKey DevOps)2018-07-27 09:59 Limited number of records in executeSql TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I am using JavaScript API of Labkey 17.1. On using the function LABKEY.Query.executeSql, I am able to fetch records up to 100000. I checked the documentation. The default value for the same is 'All rows'. However, the maximum number of rows I am able to get in one transaction is limited. Please help!

Regards
Zoya
Jon (LabKey DevOps)2021-08-26 15:33Jon (LabKey DevOps)2021-08-29 11:42 Maintenance Notice - artifactory.labkey.com upgrade to Artifactory 7.X for Sunday, August 29th 2021 @ 8am PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
There will be an upgrade on artifactory.labkey.com to Artifactory 7.X for the last Sunday of this month (Sunday, August 29th) at 8am PST.

The estimated downtime will be for approximately 4 hours. During this time, the TeamCity build queue will be paused.
Jon (LabKey DevOps)2021-12-09 16:57Jon (LabKey DevOps)2021-12-09 23:07 Maintenance Notice - Upgrade of labkey.org to LabKey 21.12 for Thursday, Dec 9th 2021 @ 10pm PST TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey.org will be offline this evening at 10pm PST for an upgrade to LabKey 21.12

The site will be offline for approximately one hour.

Please save your work before this time.
slangley@scharp.org2007-12-31 14:31Jon (LabKey DevOps)2015-04-28 21:52 Database Questions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to understand more of the details of what I need to do for database access for a LabKey module I create. Here are my current questions:

1. Is the Schema XML file for my module only used for running the developer run test, or does other code depend upon it too?

2. Every single field, table, and view my module will require needs to be manually created in the postgres/mssql .sql scripts for my module, correct?
This includes the special fields defined in the Entity class?

3. I understand that the Table class is the workhorse class I will use most often for datbase access. Many Labkey modules define a custom implementation of the TableInfo interface. Is this also a crucial interface/class that I need to understand to get the most out of LabKey's database access facility? If so, what are good LabKey examples of this class I should use as a reference?

4. If I create a Java class that extends Entity and I define some properties on it that are not defined on a corresponding database table, those fields are safely and automagically ignored when saving and loading instances of that class from the database, right? Likewise, properties that I define on that class that do have corresponding fields in the database table are safely and automagically persisted without any further implementation requirements, right?
wnels2@uky.edu2010-01-14 14:40Jon (LabKey DevOps)2015-04-28 21:54 won't load fasta TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Sorry to bug you again; almost done.
At the end of the run it failed loading the database. It had loaded the same database in the previous run though.
I just updated from the trunk about an hour ago.
Thanks,
Bill


14 Jan 2010 17:02:34,201 INFO : Starting to import FASTA file /labkey-root/cloud10/@files/YeastCombNR_20070207_ForwDecoy.fasta
14 Jan 2010 17:02:34,369 INFO : FASTA file "/labkey-root/cloud10/@files/YeastCombNR_20070207_ForwDecoy.fasta" not imported, but another file, '/labkey-root/cloud10/databases/YeastCombNR_20070207_ForwDecoy.fasta', has the same checksum
14 Jan 2010 17:02:34,382 ERROR: MS2 import failed
org.postgresql.util.PSQLException: ERROR: value too long for type character varying(1)
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
Ben Bimber2011-02-06 06:55Jon (LabKey DevOps)2015-04-28 22:01 dramatic different in selectRows() time for no obvious reason TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm using selectRows() to return the structure of a table. I'm using with through the LABKEY store, but this example separates it for simplicity. I'm using maxRows=0, so I only return the metadata. I am only selecting physical columns from the table, ie. no wrapped columns or using lookups to add columns. take this URL:


http://localhost:8080/labkey/query/WNPRC/EHR/selectRows.view?_dc=1297002527146&schemaName=study&query.queryName=Clinical%20Remarks&query.maxRows=0&apiVersion=9.1&query.columns=lsid%2Cobjectid%2Cqcstate%2Cremark%2Cid%2Cdate%2Cproject%2Caccount%2Ctaskid

I select a bunch of the columns. It runs in a second or two. Then this one:

http://localhost:8080/labkey/query/WNPRC/EHR/selectRows.view?_dc=1297002527146&schemaName=study&query.queryName=Clinical%20Remarks&query.maxRows=0&apiVersion=9.1&query.columns=parentid

The only different is the columns selected. Simply asking for the parentId column takes from 20-60 secs. ParentId is a field in this dataset. It is a lookup to studyData, which cant be fast, but I dont get why maxRows=0 would incur a problem here, since we're not asking for any data.

Could it have something to do with labkey resolving the lookup anyway to try to find the displayValue of that field? While it's nice that labkey tries to be friendly and automatically show the displayField of every lookup, it seems like some manner to turn this off (say if the displayField on the target equals the lookup field??) would be a not insignificant perf boost.
Ben Bimber2011-08-31 11:06Jon (LabKey DevOps)2015-04-28 22:02 LABKEY.Message.sendMessage and a reply address that doesnt exist TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Our site triggers some automatic emails, primarily from within server-side validation scripts. The site is configured to have a site address of 'ehr-do-not-reply', which is a non-existent email, since we dont want people to reply to these automatic emails, since no one is reading them.

I just found out that LABKEY.Message.sendMessage will not let me use this email as the sender, probably b/c it's not associated with a valid user. Any way around this, besides making a bogus labkey account to go with the bogus email?

FWIW, it'd be quite convenient if an API existed to either:

1. identify the site email address
2. be able to specify 'send using the site's email address' when using LABKEY.Message.sendMessage

Thanks for any suggestions.
jdutra2012-06-19 11:39Jon (LabKey DevOps)2015-04-28 22:04 Deleting and inserting 1000+ records TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have some clinical data that is collected by external software and we want to mirror it in labkey. The external software does not have an option to export changes only, so we have to re-import everything. To do this we have java code which uses the labkey api to delete all the records from a labkey dataset and then insert a set of records we have generated. This seems to work OK when there are not too many records, generally less than 1000. When there are more than 1000 records, both the delete and the insert commands give an IO Exception: "read timed out". Sometimes the data is deleted and inserted despite the error, other times it is not.

I tried deleting 1000+ records from within labkey by selecting them in a dataset and clicking on delete, and had a similar problem - I got

Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Apache/2.2.3 (Red Hat) Server at blis.urmc.rochester.edu Port 443

When I go back to the dataset, the records I selected have sometimes, but not always, been deleted.

Am I going about this the wrong way? Is there a better way to replace all the records in a dataset? I know that we don't have this problem when importing specimens, and there are a lot more records in that case, so could you tell me how you handle that?

Thanks!
- Jen
Anthony Corbett2012-10-08 11:27Jon (LabKey DevOps)2015-04-28 22:06 determine user session (login) expiration from javascript TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm looking for a way to determine if the user's session has expired on the server and to prompt the user to enter credentials using the Ajax prompt method.

There are quite a few custom data enter forms embedded in wiki pages. If the user sits with their browser open too long the session times out on the server. When they come back to interact with the form (i.e. sumbit data) I would like to test if they would need to re-authenticate and do so via the Labkey javascript API.

I've looked at LABKEY.Security.ensureLogin(), but this only checks that the currentUser in the broswer's memory is not currently a Guest. I see a force flag on the config object, but the documentation looks like it will ALWAYS prompt the user, where I'm looking for a prompt only if session doesn't exist.

I thought about looking at the returned XMLHttpResponse when the session is expired. But the execution path for this seems odd to me...

If the user's session is expired, the XMLHttpResponse returns a HTTP status code of 200 (OK) with HTML content of the login page not a JSON object with an expection or errorInfo. Since the status is OK, the success handler function gets called instead of the failure handler. Because of this there is no easy way to detect an expired session to take alternative action, besides looking at the response header's content-type which seems brittle and checking inside the success handler for a login failure seems awkward.

Would it be possible to have LABKEY be able to tell the difference between two fundamental use cases:

1. A user navigating to a new link (full page refresh) and therefore redirecting to a login page.
2. An ajax request (http request header attribute: X-Requested-With=XMLHttpRequest). This would returning something other than status 200 and JSON that populated errorInfo object, which would then execute the failure not the success handler when there is not live session for a user.
Anthony Corbett2012-10-29 09:14Jon (LabKey DevOps)2015-04-28 22:06 Javascript API for navigating wiki pages and for dataset level permissions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm wondering if that are any javascript API's or APi actions that can give me the following (unrelated) information:

1. A list of all the wiki pages in a container and their parent-child relationships.

2. Security permissions on each dataset specifically. I can see if the user has read/edit permission on the container using the LABKEY.Secuirty methods. But nothing is returned related to individual datasets.



Thank you,

Anthony Corbett
Anthony Corbett2013-04-09 09:17Jon (LabKey DevOps)2015-04-28 22:07 Custom DataTypes for file based assays TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm currently writing a lot of file based assays to quickly allow experimental data to be enter into labkey with custom upload UIs, however, I do not want to constrain myself to only a file-based module assay solution; over time I may want to turn some of these into java based assays if the need for complexity arises. I'm worried that data migration might be an issue here, especially with regards to LSIDs and namespace prefixes for ExpData (the DataType namespace prefix).

I have found that the file based assay ExpData objects can have their LSIDs created with two different namespace prefiexes:

1. AssayController's FileUploadAction defaults the namespace prefix (datatype) of new ExpData objects to be ModuleAssayProvider.RAW_DATA_TYPE ("RawAssayData"), it is given that the form bean for this action does not contain the assayId (protocol) so there would be no way to determine the assay provider and resolve a customized dataType. By adding in the possibility of specifying the assayId in the form, a custom dataType could be resolved and the RAW_DATA_TYPE could provide backwards compatibility.

2. AssayController's SaveAssayBatchAction (for inputs and outputs) creates new ExpData objects with the namespace prefix (datatype) of AbstractAssayProvider.RELATED_FILE_DATA_TYPE ("RelatedFiles"), this happens without regard to the assay design (protocol) for which the ExpData is being created for during the save.

To help ease possible data migration between file based assays and java based assays would it be possible to add an appropriate element for [Assay]DataType to the ProviderType complex type defined in assayProvider.xsd? This way file based modules can declare their one DataTypes (and mappings to file types) per assay provider in the config.xml file:

<ap:provider xmlns:ap="http://labkey.org/study/assay/xml">
    <ap:name>Gel Card</ap:name>
    <ap:description>Gel Card measures titers for anti-A and anti-B antibodies in blood.</ap:description>
    <ap:dataType>
       <ap:namespacePrefix>GelCardImage</ap:namespacePrefix>
       <ap:role>Gel Card Image</ap:role>
       <ap:fileType>
          <ap:suffixes>
             <ap:suffix>.jpg</ap:suffix>
             <ap:suffix>.jpeg</ap:suffix>
             <ap:suffix>.tiff</ap:suffix>
          </ap:suffixes>
          <ap:defaultSuffix>.jpg</ap:defaultSuffix>
       </ap:fileType>
   </ap:dataType>
</ap:provider>

This new dataType xml bean can be converted to a DataType object and then can be used in the ModuleAssayProvider's constructor when calling super:

public ModuleAssayProvider(String name, Module module, Resource basePath, ProviderType providerConfig)
{
        super(name + "Protocol", name + "Run", DataType.fromXMLBean(providerConfig.getDataType()));
        this.name = name;
        this.module = module;
        this.basePath = basePath;

        init(providerConfig);
}

For backwards compatibility null from this configuration could be handled in the TSVAssayProvider and TsvDataHandler.DATA_TYPE could be used as it currently is as a default.


Regards,

Anthony Corbett
eva pujadas2016-05-05 08:33Jon (LabKey DevOps)2016-05-06 10:53 Genomics Workflows TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We would be interested in evaluating the genotyping and Illumina modules. From the LabKey documentation it seems that could need some support from you. Which would be the best way to proceed?

Thank you,
Eva Pujadas
Aleks2016-11-11 02:52Jon (LabKey DevOps)2016-11-22 20:28 Passing a Row-Attribute from a Grid via URL to other Page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hallo Everyone,

My question is how can I pass a specific attribute of a specific list to another Wiki-Page by clicking on the related edit-button?
I created a Wiki-Part which replaces the standard edit-form of a list. I modified the edit button via the XML-Metadata of this list so it redirects to the Wiki-Part:

<tables xmlns="http://labkey.org/data/xml">
   <table tableName="List-Name" tableDbType="TABLE">
                <updateUrl>/wiki/page.view?name=Wiki-Part-Name"</updateUrl>
   </table>
</tables>

What I want to do now is to pass to the Wiki-Part the Key/ID-Attribute of a specific row of this list when I click on the edit-button of this row. My first naive approach was to change the XML Metadata like this:

<updateUrl>/wiki/page.view?name=Wiki-Part-Name&amp;ID=${ID}"</updateUrl>

But then the redirected URL contains this value: ID=%24{ID}"

Thank you,
Aleks
Ben Bimber2017-04-26 12:29Jon (LabKey DevOps)2017-05-01 12:50 Gradle error? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi guys, I googled this issue, but didnt get a clear answer. when I try to open a trunk enlistment as a gradle project in intellij, i get the error:

The newly created daemon process has a different context than expected. It won't be possible to reconnect to this daemon. Context mismatch: Java home is different.

Wanted: DefaultDaemonContext[uid=null,javaHome=C:\Program Files\Java\jdk1.8.0_91,daemonRegistryDir=C:\Users\bimber\.gradle\daemon,pid=7312,idleTimeout=null,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]

Actual: DefaultDaemonContext[uid=492e8230-6b41-441d-bc54-fe2bb37f7249,javaHome=C:\Program Files\Java\jdk1.8.0_91\jre,daemonRegistryDir=C:\Users\bimber\.gradle\daemon,pid=10400,idleTimeout=60000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]

So for some reason intellij or gradle are trying to tack on 'jre' to JAVA_HOME. Has anyone seen this before? JAVA_HOME is set correctly at the OS level for me user, and also in Intellij's Path Variables Settings. I dont see anything in ~/.gradle/ that is specifying something different either.

Thanks for any help.
wnels2@uky.edu2008-05-13 08:04Jon (LabKey DevOps)2015-04-28 21:52 drt GWT service failure TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Every once in a while I get the exception below returned in the results of a FormSubmitCompleteEvent from a GWT FormHandler.onSubmitComplete(FormSubmitCompleteEvent event). It usually returns a url. I have to restart everything to make it go away. I haven't seen this outside of the drts. Any ideas?

Thanks,
Bill

java.lang.NullPointerException at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at org.labkey.ms2.pipeline.AbstractMS2SearchProtocolFactory$ResourceDefaultsReader.createReader(AbstractMS2SearchProtocolFactory.java:72)
at org.labkey.api.pipeline.file.AbstractFileAnalysisProtocolFactory$DefaultsReader.readXML(AbstractFileAnalysisProtocolFactory.java:257)
at org.labkey.ms2.pipeline.AbstractMS2SearchProtocolFactory.getDefaultParametersXML(AbstractMS2SearchProtocolFactory.java:63)
at org.labkey.api.pipeline.file.AbstractFileAnalysisProtocolFactory.ensureDefaultParameters(AbstractFileAnalysisProtocolFactory.java:118)
at org.labkey.ms2.pipeline.PipelineController$SearchAction.handlePost(PipelineController.java:474) at org.labkey.ms2.pipeline.PipelineController$SearchAction.handleRequest(PipelineController.java:385)
at org.labkey.ms2.pipeline.PipelineController$SearchAction.handleRequest(PipelineController.java:267) at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:61)
at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:151) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:293) at org.labkey.api.view.ViewServlet.dispatchActionController(ViewServlet.java:315)
at org.labkey.api.view.ViewServlet._dispatchActionURL(ViewServlet.java:152) at org.labkey.api.view.ViewServlet.service(ViewServlet.java:128) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:124)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:892) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:92)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:619)
Ben Bimber2010-10-15 12:41Jon (LabKey DevOps)2015-04-28 22:00 date -> formatted string in a labkey validation script? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
in a validation script I am creating a generating the description field (basically a multi-line summary of that record). I want to do something like 'Date: XXXX-XX-XX'. Note this is formatted.

the available date function is validation scripts is a little quirky, so below is what I came up with. it seems to work for single record imports (ie. 'insert new'). however through the ETL a lot of dates become 'NA-NA-NA'. Could this be related to what type of date object is being passed? in other situations we had to do the following to parse a date: new java.util.Date(java.util.Date.parse(row.Date));

I'm hoping to figure out the least fragile approach that will work no matter what import path the data uses. thanks for any help or suggestions.

here's what i have:


    dateString: function (date){
        //TODO: do better once more date functions added
        if(date){
            date = new Date(date);

            return (date.getFullYear() ? date.getFullYear()+'-'+(date.getMonth()<10 ? 0:'')+date.getMonth()+'-'+(date.getDate()<10 ? 0:'')+date.getDate() : '');
        }
        else
            return '';
    },
    dateTimeString: function (date){
        if(date){
            date = new Date(date);
            return date.getFullYear()+'-'+(date.getMonth()<10 ? 0:'')+date.getMonth()+'-'+(date.getDate()<10 ? 0:'')+date.getDate()
                    ' '+date.getHours()+':'+date.getMinutes();
        }
        else
            return '';
    },
Ben Bimber2011-05-02 06:35Jon (LabKey DevOps)2015-04-28 22:01 postgres "invalid objectname" TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
A lab at NEPRC has installed labkey using the windows installer. a while back they installed labkey 10.3 + pg 8.3 installed using the installer, but didnt use it. they upgraded to 11.1 using the installer a week or so ago; however, it looks like they're still running pg 8.3.

They checked out and installed the entire customMOdules folder from the 11.1 branch of svn. All the SQL upgrade scripts associated with these modules ran normally. If you go into pg_admin, the 'laboratory' and 'SSP_Assay' schemas exist, and they have the proper tables. these schemas are exposed through file-based modules. the labkey interface seems to be behaving normally in most respects.

when they try to view the hard tables in either of these schemas, they get the error "postgres: invalid objectname 'inventory' " or "postgres: invalid objectname 'SSP_Assay' ", where the second piece is either a table or schema name.

does anyone have suggestions on troubleshooting? could pg 8.3 plausibly be the problem?

thanks in advance.
trent2011-06-20 22:54Jon (LabKey DevOps)2015-04-28 22:02 Oracle Data Source TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

First of all - apologies for any Java noobiness.

So I have been having a crack at getting this going. I'm upto a point I am kind of stuck - can't seem to figure out what is causing the error. Have been stepping over the lines, but not getting any indication. But I am no doubt overlooking something very basic.

The stack trace doesn't appear until after the finally block of the waitForResult function in the AysncQueryResult function, when I'm stepping line by line.

So, what i've done thus far:

Created two new classes:

(I was basing these from the MySqlDialect, and adding overridden functions where required - so it may be a case of not having all the required functions? So the reserved words are likely way wrong at the moment, but at the moment im just trying to get it up and running displaying data - which when I debug it does seem to do (adds the data to a list somewhere along the line))

OracleDialect and
OracleDialectFactory (attached)

Modified the BigIron class to register the new dialect

Modified SqlDialectManager - had to modify the function: getFromMetaData, as the getProductVersion from the jdbc oracle driver returns more than a version number i.e. text too. atm, im compiling this from getMajorVersion and getMinorVersion, but i was thinking today it may be better just to use the jdbc driver version as that seems to have the correct version number, e.g.: 11.2.0.1.0

Well, I believe that's the main stuff I've done. Theres also the fact its only returning the SID at the moment, instead of the database name, as the database name isn't in the connection string. But I guess it's somehow possible to fetch the properties from the Resource (i.e. username is schema name is database name) - but I don't think that's a big deal anyway.

OK, so I am able to add an external data source, it fetches all the column names and everything, the issue is when I go to view the data, I am getting an unexpected error. Basically:

java.sql.SQLRecoverableException: Closed Statement
    at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:4007)
    at oracle.jdbc.driver.OracleStatement.getNumberOfColumns(OracleStatement.java:1901)
    at oracle.jdbc.driver.OracleResultSetMetaData.getColumnCount(OracleResultSetMetaData.java:105)
    at org.labkey.api.collections.ResultSetRowMapFactory.<init>(ResultSetRowMapFactory.java:62)
<snipped>

But I have attached the full stack trace in the attachment.

Appreciate anyone that can help or point me in the right direction.

Thx,
Trent
slangley@scharp.org2011-07-13 16:02Jon (LabKey DevOps)2015-04-28 22:02 Support for more PostgreSQL functions? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
1. Could you add pass-through support for more PostgreSQL functions as in:

      postgresMethods.put("array_to_string",new PassthroughMethod("array_to_string",JdbcType.VARCHAR,2,2));
      postgresMethods.put("string_agg",new PassthroughMethod("string_agg",JdbcType.VARCHAR,2,2));

2. And one that's somewhat harder because it's using the JdbcType.ARRAY which you haven't used before:

        postgresMethods.put("array_agg",new PassthroughMethod("array_agg",JdbcType.ARRAY,1,1));

3. And possibly support for using the DISTINCT keyword inside of function calls like:

   SELECT array_agg(DISTINCT a.visit) FROM a GROUP BY visit;

Thanks.
michael_stover@urmc.rochester.edu2012-01-16 07:31Jon (LabKey DevOps)2015-04-28 22:03 Revisiting the ldap issue with a simple solution TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
So the problem here is that our ldap/AD systems don't use the email address or the email username as the sAMAccountName or the principal. The Labkey code can only send either the full email or the uid part of the email.

Divorcing the security principal from the email in Labkey code is too major a change, and our AD/ldap systems certainly aren't going to change.

So what I did was modify the LdapAuthenticationManager.java code to use the email account to do a search in order to retrieve the sAMAccountName for the user trying to login, and then send the authentication request, and it works for our Microsoft AD system.

The change is pretty simple. It requires two new parameters in the Context in labkey.xml in order to give labkey a default account to use to do the search. If the initial authentication fails, the code will try the search and if it finds a sAMAccountName, it will try again with that. Please take a look at the code. I'd really rather not maintain a difference from labkey's base code, and I think you could incorporate this change with zero impact on other Labkey users.

See attached file.
James2012-02-17 11:49Jon (LabKey DevOps)2015-04-28 22:03 Can't run the Reagent Request Form example correctly. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi All,

I installed LabKey from LabKey11.3-18455-Setup_includeJRE.exe
I'm using IE8

I'm new to LabKey and I'm having a problem getting the example Reagent_project running. The call:

    LABKEY.Query.selectRows({
        schemaName:     'Reagent_project',
        queryName:    'Reagent',
        containerPath:    'Reagent_project',
        successCallback: populateReagents,
        failure:    onFailure
    });

Goes to the onFailure function which prints:
    "errorInfo.exception: Not Found"

So I think one or more of these parameters are wrong: schemaName, queryName, containerPath.

I don't know what values I should use to make it right. The queryName is the table name which I think is right but I'm not confident and I have less confidence in the others. I have tried other values that seemed like they could be right but I have had no luck. Lack of knowledge and understanding are the underlying problem. I hope someone with more of those can tell by looking at the information I have included and tell me what values I should use and perhaps a brief explanation of why. I've been reading the documentation but I'm not quite getting it. Thank you very much for any help you might be able to give.
    
On the left of my window I have:
+ PROJECTS
    Reagent_project
...

When I double click Reagent_project I go to a web page that says:
    Reagent_project
    
    Lists
        Reagent
        Reagent_Requests
        MANAGE LISTS>
    
    Reagent Request Form
    ...

The Form attemts to initialize itself and I see all of my alerts telling me where the program thread is and I finaly get to the onFailure function.

The not completely filled in form is in the "Reagent Request Form" box, it has Name and E-mail correct, UserID=1001 Reagent=Loading..., Quantity=1, Comment are empty and the Submit button is there.

When I go to Admin->Manage Lists is see:
Reagent_project
Available Lists
            User defined lists in this folder.
Reagent            VIEW DATA> ...
Reagent_Requests    VIEW DATA> ...

When I go to the Query Schema Browser is see on the left:
Schemas in labkey
...
lists
    built-in queries & tables
        Reagent
        Reagent_Requests
...

In the Query Schema Browser on the right under lists is see:
Lists Schema
Contains a data table for each defined list
Built-in Queries and Tables
Name        Description
Reagent
Reagent_Requests
Lloyd2012-03-01 15:28Jon (LabKey DevOps)2015-04-28 22:03 LABKEY.QueryWebPart and config.metadata TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I was reading about the QueryWebPart and the config.metadata. This looks like I should be able to specify either the xml or the xml file, but I have not been able to get the right syntax to get it to work and I can't find any examples of it in use.

Here is the document that I was looking:
http://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html#config.metadata

This is dumbed down version of the code I am using. The real point of interest is the metadata section. I have tried all three commented out variations. I just need to know what the correct variation is. I don't want to use the myQuery.query.xml because on when I am viewing it I want different field hidden and sorted. If I can get this to work I will be able to replace 6 queries and 4 xml files with 2 queries and 2 xml files.

    var xml = '<tables xmlns="http://labkey.org/data/xml">...</tables>';
    var reportGrid = new LABKEY.QueryWebPart({
                renderTo: 'report',
                frame: 'none',
                containerPath: '/xxxx/module', // fill this in with the actual container path
                schemaName: 'schema',
                queryName: 'myQuery',
                metadata: [
                           //{type: 'xml', value: xml} // using xml specified as a variable
                           //{type: 'xml', value: 'test.query.xml'} // using queries/schema/test.query.xml
                           //{type: 'xml', value: 'test'} // using queries/schema/test.query.xml
                           
                ],
                buttonBarPosition: 'top',
                allowChooseQuery: false,
                allowChooseView: false
    });

Lloyd
Anthony Corbett2012-11-29 10:03Jon (LabKey DevOps)2015-04-28 22:06 semantic queries on datasets TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum

Wanted to get feedback from labkey folks or others on the problem of identifying semantically equivalent data elements across different datasets.

Problem:

When designing datasets for a clinical study it is important to capture a clinical measure, body temperature for example, in the same dataset column across all visits. If you don't have this foresight the charting capabilities do not see the same clinical measure in different datasets as the same and won't be charted as the same contiguous measure across visits.

For example, body temperature is collected across 4 visits, baseline (0), visit 1, 2, 3. Say that the datasets are setup in a way that visits 1,2,3 all capture similar data so they all insert into the same dataset, 'Study Visit'. However, the baseline visit captures additional measures with different validation requirements so it is warrented to put this visit's data into a different dataset, 'Baseline'. It is now impossible to chart body temperature as a measure across all visits because it lives in two datasets and Labkey sees them as two separate measures.

*Note: This can be fixed by creating a custom UNION query for each measure, but that is a lot of custom work and is not easy adaptable to changes in schema.


I've seen the conceptURI in PropertyDescriptor and I'm wondering if there is any effort or plan to do the follow:

1. Expose that as part of the dataset designer UI so that data elements can be annotated with terms, say from SNOMED.

2. Provide a Semantic Query Service to find all data elements annotated with a certain term in any dataset.


This would provide great flexibility in how the datasets are defined (for clinical eCRF reasons or dataset security reasons) and how data elements are used later in analysis in the Labkey charting/export functionality.

Thanks!

-
Anthony Corbett
Anthony Corbett2013-02-28 10:48Jon (LabKey DevOps)2015-04-28 22:07 DataGrid's Apply view filter behavior TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm using Labkey 12.3 and I've noticed confusing behavior for the 'Apply View Filter' option under the DataGrid's view menu.

1. Switching between views:

I'm wondering if the 'Apply View Filter' is meant to be a per view option or if it is a global or query option. Current behavior is that if you uncheck 'Apply View Filter' on a view, View A, then switch to another view, View B, that also has view filters then View B's filters will be ignored also. Should 'Apply View Filter' be reset when switching between views?

2. Exporting Data with 'Apply View Filter' un-checked:

When exporting data from a view that has saved filters, but the 'Apply View Filter' un-checked, is behaving as if the filter was still applied.

Example:
 Total rows in assay result: 267
 DataGrid rows with 'Apply View Filter' checked: 239
 Exported rows with 'Apply View Filter' checked: 239
 DataGrid rows with 'Apply View Filter' un-checked: 267
 Exported rows with 'Apply View Filter' un-checked: 239 <-- Should this be all 267 rows that are present in the DataGrid?


Thanks,

Anthony Corbett
Anthony Corbett2013-04-05 09:41Jon (LabKey DevOps)2015-04-28 22:07 QueryWebPart showRecordSelectors and sql options with dataRegion.getSelected/getChecked TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just wanted to post a solution to populating DataRegion selector checkbox values when using QWP with the sql option so that dataRegion.getSelected() and dataRegion.getChecked() work. If there is a better solution please reply!

If you use the QWP with the sql option but want the allow the user to select rows to take further action it is necessary to specify table metadata in order to get the selector checkboxes to be populated with a value, this doesn't happen by default (as there is no easier what to specify the pk when using the sql option than using table metadata).

You must add the following to the query config in order to get the selector values to populate:
metadata: {
  type: 'xml',
  value: '<tables xmlns="http://labkey.org/data/xml"><table tableName="SQLTempTable" tableDbType="NOT_IN_DB"><columns><column columnName="RowId"><columnTitle>Material ID</columnTitle><isHidden>true</isHidden><isKeyField>true</isKeyField></column></columns><pkColumnName>RowId</pkColumnName></table></tables>'
}

This directs the QueryDefintion and DataRegion to see the RowId column as the primary key for this sql query. You can change the name of the column and in my case I wanted it hidden.

Without the table metadata the selector looks like this:

<input type="checkbox" onclick="LABKEY.DataRegions[&quot;aqwp3&quot;].selectRow(this);" value="" name=".select" title="Select/unselect row">

After adding it the rowId is populated in the value attribute and dataRegion.getSelected() and dataRegion.getChecked() work again:

<input type="checkbox" onclick="LABKEY.DataRegions[&quot;aqwp3&quot;].selectRow(this);" value="117220" name=".select" title="Select/unselect row">

If there is a better way to do this please let me/everyone know!

Cheers,

Anthony Corbett
Will Holtz2016-01-13 11:16Jon (LabKey DevOps)2016-01-13 15:44 Making a list's primary key visible in details view TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a list and I'd like for the primary key to be visible in the details view. In the list design editor, I have selected the 'Shown in Display': 'Details' checkbox. I also tried used in the Schema Browser to edit the metadata source. I added:

<shownInDetailsView>true</shownInDetailsView>

to the PK column. Neither of these gave me the desired result. Am I missing something?

thanks,
-Will
j142857z2016-10-27 07:20Jon (LabKey DevOps)2016-10-27 12:35 LabKey says that Java module "was not compiled in production mode" even after 'ant production' TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm trying to figure out how to develop a Java module and I'm struggling even after following the instructions provided in the documentation.

I have installed the LabKey 16.2 with Tomcat 8.0.38 on a Linux machine. The LabKey installation is in folder /usr/local/labkey. Both Tomcat and LabKey are up and running.

Separately from the LabKey installation described above, I downloaded a local copy of trunk to my home folder and created a new module by running 'ant create_module'. The module is called hellomod. I immediately compile with 'ant build' and then 'ant production' and then manually copy the generated hellomod.module into /usr/local/labkey/modules and restart Tomcat.

LabKey restarts correctly but shows an error message saying that the module "was not compiled in production mode".

I don't understand why I get this error if I'm doing exactly what is indicated in the documentation below.

https://www.labkey.org/home/Documentation/wiki-page.view?name=productionBuilds

Since the above fails then I tried another test by compiling module kiem from /trunk/server/customModules with 'ant build' and 'ant production'. After this I manually copied kiem.module from trunk/build/deploy/modules to /usr/local/labkey/modules and restarted Tomcat. Again I get the error saying that kiem "was not compiled in production mode".

Could someone please what I'm doing wrong and how I can successfully compile and deploy a Java module? Thanks.
Tek Wojenski2017-06-01 06:41Jon (LabKey DevOps)2017-06-21 12:06 Custom SQL Queries TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is there a way in Labkey to write your own Custom SQL query and expose it so it can be used in the Schema Browser? Also, only TABLES are exposed/available in the Schema Browser, no VIEW(s). Can a view be used as a valid labkey query?
jpseabrook2017-06-12 08:50Jon (LabKey DevOps)2017-06-14 22:36 RequestAuthorizationError: '401: Authorization Failed' TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm trying to make use of the python api but I'm having some troubles. My server is on a local network but has a public domain and SSL cert attached. I'm using get_user_by_email() to test the connection and the script is throwing a 'RequestAuthorizationError: '401: Authorization Failed'. I've setup a user labkey on the server to run Labkey Server via tomcat8 with startup.sh/shutdown.sh. The 'Runtime Information' lists the 'User Home Dir' and 'Working Dir' as '/home/labkey'. Any help would be greatly appreciated.

******
/home/labkey/.netrc (chmod 400)
******
machine [PUBLIC DOMAIN ADDRESS]
login [LOGIN EMAIL ADDRESS]
password [PASSWORD]

******
script running in a jupyter notebook
******
from labkey.utils import create_server_context
from labkey.query import select_rows
from labkey.security import create_user, get_user_by_email

labkey_server = '[PUBLIC DOMAIN ADDRESS WITH PORT]'
project_name = 'test' # Project folder name
contextPath = 'labkey'
schema = 'core'
table = 'Users'

server_context = create_server_context(labkey_server, project_name, contextPath, use_ssl=True)
print("Created a server context")

print(get_user_by_email(server_context, '[LOGIN EMAIL ADDRESS]'))

******
exact error output
******
Created a server context
---------------------------------------------------------------------------
RequestAuthorizationError Traceback (most recent call last)
<ipython-input-25-9bfd09f77045> in <module>()
     12 print("Created a server context")
     13
---> 14 print(get_user_by_email(server_context, '[LOGIN EMAIL ADDRESS]'))

/opt/miniconda3/lib/python3.6/site-packages/labkey/security.py in get_user_by_email(server_context, email)
    130 url = server_context.build_url(user_controller, 'getUsers.api')
    131 payload = dict(includeDeactivatedAccounts=True)
--> 132 result = server_context.make_request(url, payload)
    133
    134 if result is None or result['users'] is None:

/opt/miniconda3/lib/python3.6/site-packages/labkey/utils.py in make_request(self, url, payload, headers, timeout, method)
    149 else:
    150 raw_response = self._session.post(url, data=payload, headers=headers, timeout=timeout)
--> 151 return handle_response(raw_response)
    152 except SSLError as e:
    153 raise ServerContextError(e)

/opt/miniconda3/lib/python3.6/site-packages/labkey/utils.py in handle_response(response)
     73
     74 elif sc == 401:
---> 75 raise RequestAuthorizationError(response)
     76 elif sc == 404:
     77 try:

RequestAuthorizationError: '401: Authorization Failed'
Matt V2017-10-04 14:36Jon (LabKey DevOps)2017-10-06 11:12 Runtime gradle dependency issues TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Still working on moving our modules from 17.1 to 17.2 and Gradle. The last bugfix resolved external jars, but I'm still running into the following runtime error with two custom modules during runtime:

ERROR ExceptionUtil 2017-10-04 14:20:36,222 tps-jsse-nio-8443-exec-7 : Exception detected and logged to mothership
java.lang.NoClassDefFoundError: Could not initialize class org.labkey.compbiostudy.dataLayer.baseClasses.DBHelper
    at org.labkey.compbiostudy.bizLayer.operations.baseClasses.BaseOperation.<init>(BaseOperation.java:87)
    at org.labkey.compbiostudy.bizLayer.operations.baseClasses.Operation.<init>(Operation.java:30)
    at org.labkey.compbiostudy.bizLayer.operations.search.GetSearchObjectFiltersOperation.<init>(GetSearchObjectFiltersOperation.java:25)
    at org.labkey.compbiostudy.CompBioSearchController$GetAvailableFilterTypes.execute(CompBioSearchController.java:74)
    at org.labkey.compbiostudy.CompBioSearchController$GetAvailableFilterTypes.execute(CompBioSearchController.java:66)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:180)
    at org.labkey.api.action.ApiAction.handleGet(ApiAction.java:133)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:127)
    at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:177)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:416)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1226)
    at org.labkey.api.view.ViewServlet._service(ViewServlet.java:205)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:132)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1147)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:217)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
ERROR ExceptionUtil 2017-10-04 14:20:36,223 tps-jsse-nio-8443-exec-7 : Unhandled exception: 500: Unexpected server error

As mentioned, I have two custom modules in this case. The second creates a new instance of the DB class (hibernate) on demand at runtime. This class is defined in the first's source.

The first gradle build looks like this:
import org.labkey.gradle.util.BuildUtils

apply plugin: 'java'
apply plugin: 'org.labkey.module'

dependencies {
    BuildUtils.addLabKeyDependency(project: project, config: "compile", depProjectPath: ":externalModules:labModules:LDK", depProjectConfig: "apiCompile")

    external 'antlr:antlr:2.7.7'
    external 'com.fasterxml:classmate:1.3.0'
    external 'dom4j:dom4j:1.6.1'
    external 'com.google.code.gson:gson:2.8.0'
    external 'org.hibernate.common:hibernate-commons-annotations:5.0.1.Final'
    external 'org.hibernate:hibernate-core:5.2.9.Final'
    external 'org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final'
    external 'org.hibernate:hibernate-jpamodelgen:5.2.9.Final'
    external 'org.jboss:jandex:2.0.3.Final'
    external 'org.javassist:javassist:3.20.0-GA'
    external 'javax.persistence:persistence-api:1.0'
    external 'org.jboss.logging:jboss-logging:3.3.0.Final'
    external 'org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.0.Final'
    external 'com.opencsv:opencsv:3.8'
}

The second's config follows. Note the LabKeyDepedency line to the first module.
import org.labkey.gradle.util.BuildUtils

apply plugin: 'java'
apply plugin: 'org.labkey.module'

dependencies {
    BuildUtils.addLabKeyDependency(project: project, config: "compile", depProjectPath: ":CompBioLabKey:Modules:CompBioStudy")

    external fileTree(dir: 'lib', include: '*.jar')
    external 'antlr:antlr:2.7.7'
    external 'com.fasterxml:classmate:1.3.0'
    external 'dom4j:dom4j:1.6.1'
    external 'com.google.code.gson:gson:2.8.0'
    external 'org.hibernate.common:hibernate-commons-annotations:5.0.1.Final'
    external 'org.hibernate:hibernate-core:5.2.9.Final'
    external 'org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final'
    external 'org.hibernate:hibernate-jpamodelgen:5.2.9.Final'
    external 'org.jboss:jandex:2.0.3.Final'
    external 'org.javassist:javassist:3.20.0-GA'
    external 'javax.persistence:persistence-api:1.0'
    external 'org.jboss.logging:jboss-logging:3.3.0.Final'
    external 'org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.0.Final'
    external 'com.opencsv:opencsv:3.8'
}

Not sure what's wrong at this point. Everything works with 17.1, so I'm thinking it's a configuration issue on my end moving to 17.2. Can you help?
jmikk2017-05-03 08:41jmikk2017-05-04 06:56 Module compatibility with LabKey version TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello all,

Is there a dedicated file somewhere in a module's directory that states what versions of LabKey it is compatible with? If not, is there a way to tell a module (external or official) is compatible with a given version of LabKey, or will one just have to install it to see?

Thanks!
bront@kcr.uky.edu2014-08-13 07:18jeckels2014-08-14 08:58 Deleting or renaming project with dash in name TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am having an issue with deleting a project that has a dash in the name.

"...labkey/admin/DCIS–ITGB4/deleteFolder.view"

Causes a 400 Status

description: The request sent by the client was syntactically incorrect ().

thanks,

bront
bront@kcr.uky.edu2014-11-11 03:59jeckels2014-11-18 10:27 Isolation Level in Transaction TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am in the midst of deploying a custom Java module onto a development/test server, and I am getting the following error when I try to browse the schema or create queries:

"Cannot change transaction isolation level in the middle of a transaction."

I noticed an issue report that seems to address this.
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=21294

I've never seen this before. It occurs with both 14.1 and 14.2. We're using PostgreSQL 9.3.

Any suggestions?

Many thanks,

bront
Will Holtz2015-01-09 10:16jeckels2015-01-13 09:23 Transformation script file reported as missing when associated script engine is not installed TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I setup a new development environment and tried loading one of my modules. I got the error, "Unable to find a script file 'foo.R' specified in metadata for assay type 'MyModule'." After some head scratching, checking that the file exists and tracing down the code path to the error, I realized I never configured the R engine in my new configuration. Here is a little patch that improves the log messages for this case.

-Will

--- ModuleAssayProvider.java    (revision 35909)
+++ ModuleAssayProvider.java    (working copy)
@@ -669,7 +669,18 @@
                     {
                         String ext = r.getPath().extension();
                         if (manager.getEngineByExtension(ext) != null)
- moduleScriptFiles.add(((FileResource)r).getFile());
+ {
+ moduleScriptFiles.add(((FileResource) r).getFile());
+ }
+ else
+ {
+ String fileName = ((FileResource)r).getFile().getName();
+ // Prevent a later warning about the script file not existing
+ if (_missingScriptWarnings.add(fileName))
+ {
+ LOG.warn("Unable to use script file '" + fileName + "' specified in metadata for assay type '" + getName() + "' because the required script engine is not configured.");
+ }
+ }
                     }
                 }
Ben Bimber2017-11-09 09:05jeckels2017-11-10 07:55 New UI -> Suggestion on best way to render basic table from JSON? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I've asked this a few times over the past years, and wanted to see if there was anything new. If I'm writing a custom and I have an array of values I want to render as a table, are there any LabKey-ized widgets (probably react or similar), that are worth using instead of some random react widget I find myself off google? I dont need very advanced features, but would like it to look nice and fit in with LabKey's new UI. Thanks for any help or suggestions.
alpha872014-10-01 14:53jeckels2014-10-03 09:23 Python APIs TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Wondering if the following pipeline using Python APIs is possible:

1 - load a bunch of different .xls files in different assays, stored in subfolders (MainFolder/Subfolder1, MainFolder/SubFolder2, etc). Ideally, we want to keep previous runs, so we should create a new run, and upload the data in this new run.
2 - publish these data to a common study folder, deleting the previously published ones.

I'm worried about all the foreign keys that certainly LabKey creates when doing the pipeline above via the web interface.

We may also think to implement this in R, if the APIs are better.

Thank you!
jdutra2014-07-29 12:23jeckels2014-09-02 09:14 Combining visits TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Several times now I have run into the circumstance where I want to change the way visits are defined, or perhaps a new visit number was added but it was imported in some data before I defined it in the visits. This results in having multiple visits where I would like to have just one. For instance, I want to have a visit that includes the sequence number range 10.0-10.9, but instead I have one visit for 10.0, another visit for 10.1, etc.

Is there any way to combine these? I can't create/edit a visit that would overlap with another visit, so I can't extend the 10.0 visit to include everything through 10.9. In order to change it, I have to delete visits 10.1, 10.2, etc, and THEN change the 10.0 visit. But that deletes all records having sequence number 10.1, 10.2, etc in all study datasets, which is obviously not acceptable.

Do you have any suggestions on a better way to combine existing visits?

Thanks,
Jen
tstellin@scharp.org2014-03-26 07:26jeckels2014-03-28 14:18 Icons in QueryWebPart ButtonBar? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

Is there any mechanism to supply an icon to the "buttonBar" config for a QueryWebPart? Our scenario is that we want a "+" icon to appear next to a custom "Add" button.

Here's a snippit from my current config:

       new LABKEY.QueryWebPart({
            renderTo: 'shipping-list',
            ...
            buttonBar: {
                includeStandardButtons: false,
                items: [
                    {
                        text: 'Add',
                        url: LABKEY.ActionURL.buildURL('HVTNSpecMgmt', 'pcert_shipping.view', LABKEY.ActionURL.getContainer(), {pcert_id: pcertId})
                    }
                ]
            },
            ...
        });

I see that icons can be supplied items in a menu, but it doesn't seem to work for a single button.

Thanks!
-Tobin
Leo Dashevskiy2014-08-13 16:54jeckels2014-08-14 08:58 What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?! TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good afternoon, folks!

All of our custom modules are Ext3-based and all of them use it.

After the upgrade I'm not seeing it in revision 33870!

Am I missing something?

Thanks.
-Leo
Anthony Corbett2014-11-25 11:47jeckels2014-12-01 16:32 Remote login questions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm been looking into using Labkey's remote login functionality. I've read the readme.html in the <root>/remoteLogin source directory. I understand there is a set of URLs to make use of authorization in third party applications. So far, I have questions about the createToken action.

If my application is not web based, say a native application in some language, how can I use this createToken URL without having to using the labkey login form? I'm trying not to have to embed a web view to display the form. I thought I could send basic authentication header with the request and the web app would use that information to authenticate and just respond with a HTTP 3XX redirect with the labkeyToken in the query params. For example if I try:

curl -k --user email:pass https://mydomain/labkey/login/createToken.view?returnUrl=<returnURL>

I get the following javascript snippet which just redirects me to the login form with yet another returnUrl back to the createToken action:

"'>--></script><script type="text/javascript">
window.location = '/labkey/login/login.view?returnUrl=%2Flabkey%2Flogin%2FcreateToken.view%3FreturnUrl%3D<redirectURL>';
</script>

Why is it not using the basic auth header I'm sending and giving be a http redirect response directly?


The other question I have is with using custom URI schema for launching native applications on the desktop or mobile devices. I tried sending a custom protocol schema (myapp://) as part of the returnURL. In this case, after I type in the username and password and click "sign in" it just keeps redirecting me to the login page as if my username and password are wrong but without the red error message one normally sees.


I'm wondering if in the future Labkey will widen the usage scope outside of permission checks to actually using these tokens for API calls?

I would love to hear Labkey's thoughts on using newer authentication mechanisms like OpenID Connect in addition to form-based and/or basic auth and authorization mechanisms like OAuth2 instead of session ID/cookies for API calls. I think this would open many useful additional use cases to making software build on top of labkey.


Thanks,

Anthony Corbett
bront@kcr.uky.edu2014-11-13 09:46jeckels2014-11-18 10:26 Converting Resultset into JSON TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am working on an APIAction that implements a SQLFragment, (one where I can use User.getUserId() to restrict access to data).

I execute the fragment via SqlSelector, and I am getting data (even iterating the results to get a JSONObject).

It is not, however, I fear the JSONObject that my ExtJS code is quite expecting.

How can I make the leap from a ResultSet to a JSONObject that can populate an ExtJS store?

Many thanks,

bront
Will Holtz2014-12-30 09:28jeckels2014-12-30 13:17 LABKEY.DataRegions not updated after LABKEY.QueryWebPart call TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am trying to get the dataRegion corresponding to a QueryWebPart and some where it is failing silently. The LABKEY.DataRegions never gets updated to contain the new dataRegion. For a reproduction of the bug, add the following as results.html to exampleassay (or any file based assay module), and then view some results.

-Will


<div id='ResultsPartDiv'/>

<script type="text/javascript">

function init()
{
    var params = LABKEY.ActionURL.getParameters();
    var qwp1 = new LABKEY.QueryWebPart({
        schemaName: 'assay.example.' + LABKEY.page.assay.name,
        queryName: 'Data',
        filterArray: [LABKEY.Filter.create("Run/Rowid", params["Data.Run/RowId~eq"]), ],
        renderTo: 'ResultsPartDiv'
    });
    var dr = qwp1.getDataRegion();
    if (dr) {
        console.log('Got data region');
    } else {
        console.log('Could not get data region - Bug?');
    }
}

Ext4.onReady(function() {
    init();
});
</script>
eva pujadas2017-04-21 02:43jeckels2017-08-18 10:51 How to disable audit logs in a list or query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are trying to disable audit logging in several lists. We have tried by adding XML metadata to the list's metadata through the menu Admin --> Developer Links--> Schema Browser--> select list --> edit metadata --> Edit source --> XML metadata

We added the following in the XML metadata text box:

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="Test" tableDbType="TABLE">
    <auditLogging>NONE</auditLogging>
    <columns>
      <column columnName="Sum of ru_wallclock">
        <conditionalFormats>
          <conditionalFormat>
            <filters>
              <filter operator="gt" value="0" />
            </filters>
            <backgroundColor>FF00FF</backgroundColor>
          </conditionalFormat>
        </conditionalFormats>
      </column>
    </columns>
  </table>
</tables>

The conditional format was added as a test and is working as expected. Nevertheless, the audit logging set to "NONE" is not working, and the system continues by recording the audit details.
What are we doing wrong?

Thanks for your great support,
Eva Pujadas
jeckels2015-07-13 13:51jeckels2015-09-15 11:22 LabKey Server and JDK 8 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
As many of you already know, Oracle officially end-of-lifed Java/JDK 7 in April 2015:

https://www.java.com/en/download/faq/java_7.xml

As such, LabKey Server version 15.2 is the last release that supports and is tested with Java 7. As of version 15.3, we will strictly require Java 8. We encourage all developers and administrators to upgrade to Java 8, which also works well with version 15.2.

https://www.labkey.org/wiki/home/Documentation/page.view?name=supported

We recently made changes to the SVN trunk that require Java 8 to build and run the server. If you have trunk code that was partially built under Java 7 and switch to Java 8, you may encounter errors such as:

java.lang.NullPointerException
at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:532)
at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
at java.lang.Class.createAnnotationData(Class.java:3521)
at java.lang.Class.annotationData(Class.java:3510)
at java.lang.Class.getAnnotation(Class.java:3415)
at org.labkey.api.action.SpringActionController$DefaultActionResolver$DefaultActionDescriptor.<init>(SpringActionController.java:908)
at org.labkey.api.action.SpringActionController$DefaultActionResolver$DefaultActionDescriptor.<init>(SpringActionController.java:893)
at org.labkey.api.action.SpringActionController$DefaultActionResolver.addAction(SpringActionController.java:848)
at org.labkey.api.action.SpringActionController$DefaultActionResolver.addInnerClassActions(SpringActionController.java:841)
at org.labkey.api.action.SpringActionController$DefaultActionResolver.<init>(SpringActionController.java:826)
at org.labkey.immport.ImmPortController.<clinit>(ImmPortController.java:72)

If so, an "ant rebuild" should resolve the problem.

Thanks,
Josh
martin2014-10-30 05:48jeckels2014-11-03 09:38 Most Recent Messages Summary TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi, I was wondering, is there a way to display the most recent messages from message boards from all folders and subfolders in a project?

(Or from all projects on a labkey server?)

What is the schema the messages are stored in? Is it accessible by querying?

Thanks for your response
Martin
Ben Bimber2014-08-27 07:59jeckels2014-08-27 16:55 Lists disappearing?? Serious issue. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We has something happen twice now. The first time I chalked up to me being crazy, but this one seems real. We have a regular folder with about 4 lists. The data are not especially active, although this shouldnt matter. One time a couple weeks ago, and more recently this morning, the lists and their DB tables are just gone. When I go through the UI, that container also doesnt report having any lists (as opposed to showing the list, but not finding the physical table).

The only reason I even noticed this is because I have a custom piece of java code that creates an admin summary for me each day, SiteSummaryNotication.getListSummary(). This code calls DbSchema.get("list"), and then iterates each table to get the row count. The odd thing is that getTableNames() still contains the names of these deleted tables (caching?). When it hits c13d367_grants (a deleted table), it blows up when it tries to run SQL because that physical table is no longer there. If this didnt happen I probably would never have known they were gone. Therefore whatever happened occurred between 5AM yesterday and 5AM today.

The odd thing is that this happened to the same container both times. The users with access to this container are not all that saavy, but I am going to talk to them. This part makes no sense to me.

My question is: what steps can I do to troubleshoot? What audit entries and/or system logs will help figure out who/why those lists were deleted? I am looking through the audit tables, but do not see any mention of list deletes, or any real activity around them.

Second, are there other DB queries I can run to see whether pieces of the lists exist somewhere in the DB (ontology manager, for example)? Because the delete of the lists seems so clean and complete, this suggests it happened via LabKey, rather than something dropping the physical table only.

The server is onprc14.2 / sqlserver / RHEL. Thanks for any help.
yohan jarosz2014-05-15 07:03Greg Taylor2014-05-19 09:30 Custom display column for lookup TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,
I'm wondering if it's possible to customize the display for column lookups (for lists).
I know that I have the 'title' field that I can set to one field and that I can also set it via XML with table metadata.
But what I want is to display 2 fields instead of just one.

For instance I have one 'antibody' table that have two fields that I want to display ('name' and 'number'),
Some antibodies have the same name, so when you have to set them from another table, it is not possible to know
which one to choose. It is really 'name' + 'number' that make them unique.

Then is it possible to generate the tittle field like these title = ${name} (${number}) for example?

My workaround for now is to add a 'display' field to that table that contains both 'name' and 'number' but it's not very straightforward as the same data needs to be entered twice.

best
mark.shifman@yale.edu2014-08-27 09:19Greg Taylor2014-09-02 13:34 regular expression question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Does LabKey support a function similar to regexp_like in Oracle or "Similar to" in postgresSQL?

I would like to do my cleanup in a query rather than sending my output to perl or java.

thanks in advance.

mas
Leo Dashevskiy2014-02-12 14:11Greg Taylor2014-02-12 16:26 Custom module's view supporting anchors/links in titles TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello, folks!

I have my file begin.view.xml

Its first line used to be:

<view xmlns='http://labkey.org/data/xml/view' title='Immune Response Predictor'>


and we would like to make it a clickable link, so I tried something like this with inserting HTML:

<view xmlns='http://labkey.org/data/xml/view' title='<a href="http://google.com" target="blank">Immune Response Predictor</a>'>

Upon starting the server up, I get a parser error:

The following exception occurred while attempting to load view metadata from views/begin.view.xml: error: Illegal '<' found in attribute value. Use '&lt;' instead.

But if I try and use the '&lt;', then the string is inserted literally and not interpreted as HTML.


Is there any way to achieve what I'm after?

Thanks.
-Leo
Ben Bimber2014-01-23 18:08Greg Taylor2014-02-05 13:59 GenericChartPanel and curveFit? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
A user noticed that after our upgrade to 13.3 a graph that is based on GenericChartPanel (i realize that's not in the public API) stopped showing the curveFit line. It had a config roughly like:

cfg.curveFit = {
    type : 'linear',
    points: 10,
    min: 0,
    max: 7,
    params : [runRow.slope, runRow.intercept]
}

I dont see any obvious changes in GenericChartPanel to explain why this would no longer work. Was there a conscious change here, or another changes that could account for this?

Thanks
Ben Bimber2014-09-18 10:14Greg Taylor2014-09-22 15:11 Best way to handle requests for logins? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a new LabKey site that will have a public face. Some sections allow read-access for guests. People might visit this site and want to request a login for more access. Does LabKey have any good ways to handle this process? The only option I know about is to create an email address and put a mailto link on the page. People can click it to send an ad-hoc email to us. Is there anything more formal within the application to support this sort of thing?

Thanks.
Christopher Garay2014-05-12 13:01Greg Taylor2014-05-14 11:13 Use GetData API in file-based module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm currently implementing a custom UI for a project inside of a file-based module. I'm using the GetData API to get data to plot. Currently, this works if I add my JavaScript plotting code through the Manage Views interface and check "Use GetData API". I can't get this to work if I include the report as a file in the module. Is there any way to accomplish this?

Thanks,

Chris
aaron8tang2014-05-26 16:52Greg Taylor2014-05-27 15:41 Does Labkey has any internationalization plan? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
For now, the 14.1 version is only in English language, is there any plan to be translated into other language?

Thanks.
jonesga@ohsu.edu2014-04-23 12:06Greg Taylor2014-04-28 10:08 Modification of Issue Tracker TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We are curious as to whether other users have done any modification of the issue tracker in LabKey? We were considering querying datasets to populate Pick list custom fields.

Thanks in advance
nicyon2014-05-13 05:10Greg Taylor2014-05-13 13:30 Labkey Applying Theme TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I am currently developing a module in JavaScript in LabKey, and I would like to know if it's possible to apply the LabKey theme(font, color, ...) to my module.

Thanks for any response

Kind regards
bront@kcr.uky.edu2014-06-19 13:34Greg Taylor2014-06-20 11:06 Accessing resource file in Java module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I'm working on a Java module and need to access a PDF file and modify it in the Java code.

The file is located under resources/files, but every string I've tried to pass to the com.itextpdf.PdfReader returns IOException, "not found as file or resource."

What am I missing?

thanks,

bront
bill c white2014-02-12 10:25Greg Taylor2014-02-12 15:59 Storing and Retrieving a Matrix TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I need to store a matrix and retrieve it using the Javascript API. My solution was to upload a matrix to a list with a rowid column to insure the row ordering. I then specify a query with all columns except the rowid SELECTed and use the rowid in an ORDER BY clause. When I get this data back from the Javascript query, the columns are not in the SQL statement order, but some other order I can't determine. Do I need to specify config.columns? Doesn't seem like I need to here when I've already specified them in the SQL. Ideas?

    LABKEY.Query.selectRows({
      schemaName: 'lists',
      queryName: 'regress-regain-snprank-top-100',
      successCallback: onSuccess,
      errorCallback: onFailure
    });
Ben Bimber2014-01-15 07:22Greg Taylor2014-02-05 13:58 Default Encryption Key? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi everyone,

I recently upgraded our production server to 13.3. I did not catch the defaultEncryptionKey setting in the tomcat config prior to doing this. Are there consequences to changing that key on a server that's been running for a period of time?

Thanks.
jconnelly2014-04-30 17:07Greg Taylor2014-05-06 13:53 RowExpander in Ext4 grid not working correctly TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
  I am attempting to use the RowExpander plugin in Ext 4.2.1 for a grid in a LabKey external module. I test the code in a standalone web app (no LabKey, just a web app) and it works perfectly. However, once I embed the javascript code in the labkey external module, I see all rows completely expanded and throws an error "nextBd is null". I see in Developer forums that this is common error when the plugin is defined within the initComponent() function, but I am not doing that. It appears that LabKey is somehow overwriting the grid features config (upon which RowExpander depends). Has anyone seen this error or gotten RowExpander to work within LabKey?
Ben Bimber2014-07-22 11:14Greg Taylor2014-07-28 10:09 jtds.tmp files? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a production server running onprc14.2, both on sqlserver. I happened to notice that in the tomcat temp dir I have a bunch of files with names like 'jtds2587094499875587849.tmp', all about 200-300mb. Our production server (running 14.1) doesnt have these. Should I pay attention to these files? Thanks.
bront@kcr.uky.edu2014-06-03 08:40Greg Taylor2014-06-04 16:51 Java Modules TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am having some difficulty building a new Java module. I'm using the community edition of intelliJ, v13.

I ran the create_module Ant target and directed it to place the module outside of the LabKey directory: /Users/bront/Documents/workspace/labkey_modules/ReferenceModule

I imported the module into LabKey. It's visible in the project settings > modules.

I also added it to the standard.modules file:

# All module directories listed here will be built by "ant build" and "ant rebuild".
server/modules/*
server/customModules/*
externalModules/labModules/LDK
/Users/bront/Documents/workspace/labkey_modules/ReferenceModule

When I run the LabKey Build > build target, LabKey builds and deploys just fine. My module, however, isn't included. I have tried to clean and rebuild, but no luck. I have tried commenting out the other lines in the standard.modules and running build, but again not results.

Any idea on what I might be missing?

Many Thanks,

bront
johan teleman2014-01-15 05:14Greg Taylor2014-02-12 15:58 Using Proteowizard msdata API from Java TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello

Sorry if this question is a bit of tangent for LabKey, but hopefully it should be easy to answer at least.

I have been struggling with accessing the ProteoWizard msData API from Java, and LabKey is the only software I'm aware of that has actually succeeded in this. How did you do it? When I try I get the attached crash. In short it would be very helpful to know:

With what command do you build the pwiz_swigbindings.dll and using what c compiler / Java version?
What operating system does this run on?
What Java version is used for running LabKey?
Do you need to specify the paths to any other libraries except pwiz_swigbindings.dll?

Best,
Johan
aaron8tang2014-06-04 23:07Greg Taylor2014-06-05 16:14 Time chart list doesn't display under chart menu of user-defined query view TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
My action steps are:

1.create a new query from schema browser
2.add a query web part and choose to display the content of the query defined at step 1
3.create a time chart by clicking "create time chart" menu in the query view
4.save the time chart

The question is that the saved time chart doesn't display under "chart" menu

So I digged the source code v14.1:

In QueryView.java of query module, time chart is not accepted.

        public boolean accept(String type, String label)
        {
            if (RReport.TYPE.equals(type)) return true;
            if (QueryReport.TYPE.equals(type)) return true;
            if (QuerySnapshotService.TYPE.equals(type)) return true;
            if (CrosstabReport.TYPE.equals(type)) return true;
            if (JavaScriptReport.TYPE.equals(type)) return true;
            if (GenericChartReport.TYPE.equals(type)) return true;
            return ChartQueryReport.TYPE.equals(type);
        }

But in StudyReportUIProvider.java of study module, time chart is accepted.

            public boolean accept(String reportType, String label)
            {
                if (StudyCrosstabReport.TYPE.equals(reportType)) return true;
                if (StudyChartQueryReport.TYPE.equals(reportType)) return true;
                if (ChartReportView.TYPE.equals(reportType)) return true;
                if (StudyRReport.TYPE.equals(reportType)) return true;
                if (ExternalReport.TYPE.equals(reportType)) return true;
                if (QuerySnapshotService.TYPE.equals(reportType)) return true;
                if (StudyQueryReport.TYPE.equals(reportType)) return true;
                if (TimeChartReport.TYPE.equals(reportType)) return true;
                if (JavaScriptReport.TYPE.equals(reportType)) return true;
                if (ParticipantReport.TYPE.equals(reportType)) return true;
                if (GenericChartReport.TYPE.equals(reportType)) return true;
                if (QueryReport.TYPE.equals(reportType)) return true;
                return false;
            }

Could you please tell me what is the difference for time chart handling in these two module?
Will Holtz2014-07-01 10:35Greg Taylor2014-07-07 07:48 Adding result rows to a run TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In the module based assay that I am working on, result rows correspond to measurements taken at time points. The duration between time points is relatively long and it can be useful to view a partial data analysis before all time points with in the run have occurred. I would like to allow users to input a subset of result rows before the run has completed and then later add additional result rows (perhaps multiple times). It appears the module based assay prohibits such a workflow. I tried using the javascript LABKEY.Query.insertRows() and LABKEY.Query.executeSql() functions, but insertRows seems locked down and executeSql appears to only do queries.

Is there some other way that I might be able to get this functionality within a module based assay? I guess I could always sidestep Labkey and have an external program insert rows, but that has downsides. I think I'll probably just not use assay functionality and build up from simpler structures within Labkey.

thanks,
-Will
slangley@scharp.org2014-07-09 15:54Greg Taylor2014-07-10 15:14 Odd Firefox warning TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Have you seen this kind of warning in the console window of Firefox? (I'm running Firefox 27.0.1 on Linux):

An unbalanced tree was written using document.write() causing data from the network to be reparsed. For more information https://developer.mozilla.org/en/Optimizing_Your_Pages_for_Speculative_Parsing begin.view:50

Where this is line 50 in the begin.view page I'm looking at:

    <script src="/cpas/internal.min.js?2123703553" type="text/javascript"></script>

for:
   https://atlas.scharp.org/cpas/project/HVTN/begin.view?

Thanks.

Scott
Leo Dashevskiy2014-08-20 15:10Greg Taylor2014-08-26 13:29 Is that a bug? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
When one goes to the <main domain>/admin/customizeSite.view? (the 'Site settings' link on the 'Admin console' page), there is an option to enable/disable "Require ExtJS v3.x based Client API be loaded on each page".

Well, with this option disabled, anywhere there is a 'Designer view': "View -> Data -> Source -> Help" tabs (an R report or a custom R view), clicking on the 'Data' tab now does not work at all, because LABKEY.QueryWebPart is no longer available.

Should you, guys, not serve the ExtJS 3 Client API regardless of the above option, whenever a 'Designer view' is being rendered?

Thanks.
-Leo
bill c white2014-01-31 09:19Greg Taylor2014-02-05 14:00 Advanced Views Gone? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I would like to call a C++ program to process a large microarray file. Has this legacy feature been deprecated and removed?

https://www.labkey.org/wiki/home/Documentation/page.view?name=advancedView

Is there another mechanism to call a command line program? Thanks.
Will Holtz2014-06-24 09:35Greg Taylor2014-06-25 13:16 Location of SQL scripts for file based assay module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am trying to develop a file based assay module. I would like a few of the fields in the results and run tables to be foreign keys to some additional tables within the module. Creating the additional tables would appear to be a task for an SQL script. However in the assay file tree (https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleDirectoryStructures), there is not a directory for SQL scripts within assay modules. Is it possible to use SQL scripts within file based assay modules? An old reply by kevink (https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=7792) implies it is possible. If it is possible, where should the SQL script be placed?

And am I required to write SQL scripts for both Postgres and SQL server? I'm doubtful that my custom module will ever be used by anyone else, and I'm sticking with Postgres.

thanks!
-Will
mwlam2014-07-09 00:47Greg Taylor2014-07-10 13:16 web API calls that only logged-in admin users can make TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Are there some web API calls that only logged-in admin users can make? Less importantly, is there a succinct list of the URL-accessible API calls anywhere?

I can't get a URL call to ensureLogin.view working for all users all the time, because for some users, the call is failing with an HTTP 401.

I'm trying to access the LabKey API through a Python urllib2 Request, after having added the active session ID to the request cookies.

Example code:

userRequest = urllib2.Request(url="http://myserver/labkey/Test%20Situation/security-ensureLogin.view")

cookieJar.add_cookie_header(userRequest)

opener = urllib2.build_opener()

# This line results in an HTTP 401, just for some sessionIDs of some (validly logged in) users # Yet it seems to work for some admin users theResponse = opener.open(userRequest)
Leo Dashevskiy2014-04-29 14:32Greg Taylor2014-05-07 11:24 An unexpected bug, while importing FlowJo XML-based workspaces TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
On a project's home page in the 'Flow Summary' web part I first click on the 'UPLOAD AND IMPORT' action link, which lands me at the following page: <labkey base address>/pipeline/<project name>/browse.view

Here usually one selects an XML-based FlowJo workspace file and then hits 'IMPORT FLOWJO WORKSPACE' button on the very right of the main Files explorer toolbar.

If the browser window is narrow, then the 'IMPORT FLOWJO WORKSPACE' button gets removed from the visible set of available buttons and gets 'spilled over' into the overflow drop down menu. If now I pick a workspace and click on the drop down menu the 'Import FlowJo Workspace' item, then absolutely nothing happens!

Can you guys reproduce this bug?

I'm running Chrome Version 27.0.1453.93 on a Ubuntu flavor.

Thanks.
-Leo
alpha872014-05-29 09:16Greg Taylor2014-05-30 09:28 Privacy notification TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

just a quick question: due to EU privacy laws, websites hosted in the EU community should notify users if they set cookies/track activity, even if it's just Google Analytics or cookies needed by the system to allow login.

I've already successfully used http://cookiecuttr.com/ to enable such notifications in other websites, but I'm frankly new to java development, and I was wondering if somebody can help me in make this work.

In theory, it's a two-step work:
- add these additional external .js scripts & css files to all web pages and somewhere on the server:
<script src="//ajax.googleapis.com/ajax/ libs/jquery/1.7.1/jquery.js"></script>
<script>window.jQuery || document.write("<script src='assets/js/libs/jquery-1.7.1.min.js'>\x3C/script>")</script>
<script src="jquery.cookie.js"></script>
<script src="jquery.cookiecuttr.js"></script>
<link rel="stylesheet" href="cookiecuttr.css">

- add the following javascript snip to all pages:
if (jQuery.cookie('cc_cookie_accept') == "cc_cookie_accept") {
// insert the code you do not want to run UNTIL cookies are accepted here
}


Thank you!
Leo Dashevskiy2014-07-23 16:59Greg Taylor2014-08-05 10:47 API and other questions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good day!

Is there a way to programmatically:

1) in a folder of type Study add a new tab with a particular name to the tab panel: I see the link being javascript:LABKEY.Portal.addTab() but no associated public API for it

Ok, upon examining the function, I see that seems like I need the following call:

 LABKEY.Ajax.request({
                    url: LABKEY.ActionURL.buildURL('admin', 'addTab'),
                    method: 'POST',
                    jsonData: {tabName: name},
                    success: function(response)
                    {
                        var jsonResp = LABKEY.Utils.decode(response.responseText);
                        if (jsonResp && jsonResp.success)
                        {
                        ...
                        }
                    }


2) set the newly created tab's visibility
I see the link being:
http://...<encoded subfolder path>/hidePortalPage.view?pageId=<encoded page ID>&returnURL=<encoded path to go to afterwards>
so this needs to be called?

3) add one of the activated modules' WebParts to this newly created, but hidden tab
I see the action being:
http://...<encoded subfolder path>/addWebPart.view?pageId=<encoded page ID>&location=%21content&returnUrl=<encoded path to go to afterwards>&name=<encoded WebPart name to add>
This needs to be called? How?


May be there are other ways of achieving what we need.

We have a handful of Study folders (with more and more coming), each of which has a set of custom modules enabled, this set varies from folder to folder.

Initially, in each of the folders we manually created a tab for each of the active modules and then added the corresponding web part to each of those tabs.

We do not like this approach anymore, since we have lots of modules (new ones being added as we go) and the tab bar gets long and then overflows.

Our idea was to create a tab 'Modules', which would have a wiki, which would dynamically generate a list of active modules as links, each link taking the user to a hidden tab with the WebPart for that particular module (hence my 3 questions above).

Thanks.
-Leo
bront@kcr.uky.edu2014-04-24 10:26Greg Taylor2014-04-28 10:07 file content -- uploading and overwriting files TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am having an issue with file uploads via the File Content module. LabKey won't permit files to be overwritten.

I seem to recall at some point that a dialog box would pop up warning of the overwrite, but that's no longer the case.

In the logs, I see that the overwrite is set to F...

POST /labkey/_webdav/xproject/@files/?Accept=application/json&overwrite=F

How can I change this so that users are warned if they are about to overwrite files but can choose to do so anyway?

Many thanks,

bront
Leo Dashevskiy2014-04-24 12:49Greg Taylor2014-04-28 10:00 Cannot start the build from source one of the latest revisions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
[12:44:37]:~/Labkey/trunk svn info
Path: .
URL: https://hedgehog.fhcrc.org/tor/stedi/trunk
Repository Root: https://hedgehog.fhcrc.org/tor/stedi
Repository UUID: a4ab64de-fbdc-0310-83ae-be1847ca59a0
Revision: 31328
Node Kind: directory
Schedule: normal
Last Changed Author: t.chadick
Last Changed Rev: 31327
Last Changed Date: 2014-03-05 13:32:19 -0800 (Wed, 05 Mar 2014)




Building does not work for me after a successful 'ant clean':




dhcp157184:server cytomatic$ ant build
Buildfile: /Library/LabKey/server/build.xml

echo_props:
     [echo] GWT no-override
     [echo] tomcat.home=/Library/Tomcat/Current
     [echo] java.home=/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home/jre
     [echo] ant.java.version=1.7
     [echo] java7.rt.dir=/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home/jre/lib
     [echo] labkey.xml.template=../webapps/labkey.xml

build_applets:

buildToCore:

buildToCoreDirty:

prepare:
    [mkdir] Created dir: /Library/LabKey/build/applets

compile_all:
     [echo] Javac current target: 1.5
    [javac] Compiling 7 source files to /Library/LabKey/build/applets
    [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlinteprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 1 warning
     [copy] Copying 2 files to /Library/LabKey/build/applets
     [copy] Copying 2 files to /Library/LabKey/build/applets

compile:

jar:
     [echo] Creating manifest file
    [mkdir] Created dir: /Library/LabKey/build/applets/META-INF
     [echo] Creating manifest seems ready
      [jar] Building jar: /Library/LabKey/build/applets/applets.jar

-keystore.check:

-createstore:

-askpasswd:

signedjar:

BUILD FAILED
/Library/LabKey/server/build.xml:1936: The following error occurred while executing this line:
/Library/LabKey/server/applets/build.xml:237: The following error occurred while executing this line:
/Library/LabKey/server/applets/build.xml:241: The following error occurred while executing this line:
/Library/LabKey/server/applets/build.xml:228: retry doesn't support the "retrydelay" attribute

Total time: 2 seconds


I should may be add that the system recently had Tomcat6, then I managed to build the latest trunk revision of Labkey, then saw the error message that Tomcat6 is no longer supported, then upgraded to Tomcat7 and now cannot build...

Thanks!
-Leo
jdutra2014-05-16 08:05Greg Taylor2014-05-22 09:54 How is new "date" column used in study datasets? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm wondering exactly what the purpose is of the new "date" column in the study datasets. As you already know, we have some columns called "date" defined in 13.3 or earlier. The data in those columns is fine in 14.1, but I want to be sure that it doesn't have some special meaning that isn't appropriate. Does this column actually do anything, or is it just being reserved for future use?
jonesga@ohsu.edu2014-06-19 08:07Greg Taylor2014-06-20 11:07 WIKI Page with TOC and Search TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I reviewed the forum and it appears this was last discussed in 2011. Have there been any changes. I need to use the WIKI Pages with JAVAScipt and want the full page to display.

Thanks
Ben Bimber2014-07-03 09:17Greg Taylor2014-07-10 15:18 Supporting REST with parameters in URL path? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am exploring whether I can write something to support this API in LabKey:

http://gmod.org/wiki/JBrowse_Configuration_Guide#JBrowse_REST_Feature_Store_API

It's an API to provide information about sequence data that would be stored in LabKey. The data is sent as fairly simply JSON, and overall it seems straightforward with one problem. JBrowse expects to pass parameters as part of the URL path, rather than as query arguments. ie:

(base)/stats/region/(refseq_name)?start=123&end=456

which is in contrast to what LabKey more naturally expects:

(base)/getSeqData?action=stats&region=(refseq_name)&start=123&end=456

Is there a good way to do the former in LabKey? I'm in java code, so all options are open. I would be making a separate module/controller, so if it were possible for my controller to hijak the process of resolving URLs very early, a form like this might work:

myserver.com/jbrowse/../../../?containerPath=XXXX&...

Have other applications needed to do something like this? Does anyone have pointers on where I should start looking? Thanks in advance.
Andy Straw2014-01-06 13:20Greg Taylor2014-02-05 13:57 Problem with Query.saveQueryViews() on public views TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Using the LabKey JavaScript client API, I'm trying to save/update a view via Query.getQueryViews() and Query.saveQueryViews(). When the latter call is creating a new view, it seems to create the view as a private view. Subsequent calls to saveQueryViews() update the view. Fine.

However, if the user then manually changes that view to be a public view, the next time my code tries to update the view, I get an error - I'm pretty sure because it's actually trying to create a new, private view whose name is already taken by the public view, rather than trying to update the existing view.

I see a similar problem using the built-in LabKey "Customize View" (not using my code at all): If I create a view, and save it as public, then try to re-save it as private, I get an error.

I don't see anything in the API of getQueryViews() or saveQueryViews() to indicate whether the view is public or private. Given that the default (only?) behavior of saveQueryViews() is to create/update a private view, it seems that I can never update a public view via saveQueryViews().

Am I missing something? Thanks for any light anyone can shed on this.

Andy Straw
University of Rochester

Andy
Will Holtz2014-06-25 09:45Greg Taylor2014-07-07 07:52 SQL script not being executed for file based module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a fairly minimal file based module that consists of three files:

will@lims:/usr/local/labkey-dev/externalModules/Fermentation$ cat module.properties
Name: Fermentation
ModuleClass: org.labkey.api.module.SimpleModule
RequiredServerVersion: 14.10
Version: 1.00
SupportedDatabases: pgsql
will@lims:/usr/local/labkey-dev/externalModules/Fermentation$ cat resources/schemas/fermentation.xml
<?xml version="1.0" encoding="UTF-8"?>
<ns:tables xmlns:ns="http://labkey.org/data/xml">

  <ns:table tableName="Antifoam" tableDbType="TABLE">
    <ns:description>Antifoams used in fermentations.</ns:description>
    <ns:pkColumnName>Key</ns:pkColumnName>
    <ns:titleColumn>Name</ns:titleColumn>
    <ns:columns>
      <ns:column columnName="Key">
        <ns:columnTitle>Antifoam Id</ns:columnTitle>
        <ns:datatype>int</ns:datatype>
        <ns:isAutoInc>true</ns:isAutoInc>
        <ns:scale>10</ns:scale>
        <ns:nullable>false</ns:nullable>
        <ns:isReadOnly>true</ns:isReadOnly>
        <ns:isKeyField>true</ns:isKeyField>
        <ns:isHidden>true</ns:isHidden>
      </ns:column>
      <ns:column columnName="Name">
        <ns:datatype>varchar</ns:datatype>
        <ns:scale>100</ns:scale>
      </ns:column>
    </ns:columns>
  </ns:table>
</ns:tables>
will@lims:/usr/local/labkey-dev/externalModules/Fermentation$ cat resources/schemas/dbscripts/postgresql/fermentation-0.00-1.00.sql
CREATE SCHEMA fermentation;
CREATE TABLE fermentation.Antifoam (
    Key SERIAL,
    "Name" VARCHAR(100) NOT NULL,

    CONSTRAINT PK_Antifoam primary key (Key)
);
will@lims:/usr/local/labkey-dev/externalModules/Fermentation$

When the module is enabled for a folder, I am able to see the fermentation schema in the schema browser, but the table does not exist. And in the Admin Console, I see it listed with the modules (although it shows up as version 0.00). However, when I go to the Admin Console->Module Details page, it does not show up there. If I go to Admin Console->SQL Scripts, fermentation-0.00-1.00.sql is listed under 'Scripts that have not run on this server - All'.

Any ideas where I'm messing this up?

thanks,
-Will
bront@kcr.uky.edu2014-04-11 08:40Greg Taylor2014-04-14 13:38 LDAP servers TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

We started a discussion today about modifying the LDAP access to our LabKey instance. Currently, we manage our own LDAP server, but we'd like to add the campus LDAP to better serve our users? Can we configure LabKey to work with two LDAP servers?

Also, to complicate matters, the campus LDAP employs two domains (main campus and healthcare).

So, if configuring two LDAP servers is even possible, is it then possible to do so when one employs multiple domains?

Many thanks,

bront
jdutra2014-05-28 12:47Greg Taylor2014-06-04 14:55 Editing Specimen Properties TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I'm trying to edit specimen properties, and I'm running into some problems. I have two questions:

1. I set up a new column on both the Specimen Event and Vial tables, and I made it an integer lookup. This doesn't work - in the "Edit Specimen Properties" area, both columns look like lists. However, when viewing specimens, the integer is displayed, and in customize view this new column has no plus sign to indicate that it's a lookup. I tried this using a list for the lookup and also using a study dataset for the lookup, with the same results.

2. Is there any way to add a column on the Specimen (or "draw") table? I would like to add an additional additive type, say "additive2" where vials that have different values for "additive2" have separate rows in the "grouped vials" view, but I can't find a way to do this. Is it possible?

Thanks for any help,
Jen
Ben Bimber2014-06-13 09:22Greg Taylor2014-06-18 09:21 Column Formatting And Pivot Queries? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We have a number of queries that use PIVOT. There are instances where applying formatting to the result of this (number formatting, textAlign, etc) would be very helpful. I cant see a way to accomplish this currently. Since the pivoted column is the result of an aggregate, it loses most of the metadata from its source ColumnInfo. Although it is ugly, for most of these situations we have a finite number of PIVOT values, so we could in theory add metadata to each expected child column by name (ie. "testId::Value"). That doesnt appear to be supported in XML though. Do we have any other options? Thanks for any help.
Tim Cook2014-04-10 06:23Greg Taylor2014-04-14 13:38 XML Databse TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Is anyone currently working on interfacing with an XML database such as eXist-db or Marklogic?
bill c white2014-02-19 14:58Greg Taylor2014-02-20 10:26 Ext.MessageBox in SelectRows Callback? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am attempting to load an Ext.MessageBox.show() in a LABKEY.Query.selectRows() success callback (takes a few seconds). Is there some reason this is not allowed? An alert() call works. It works from a Javascript console on the same page.

Thanks,

Bill
jdutra2014-04-15 13:29Greg Taylor2014-04-16 15:48 ETL .sql options TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm wondering how flexible the .sql files are in an ETL module. I'm using a linked schema and my ETL transfers data from one labkey study to another. I have a simple transform like this:

 <transform id="updateDemographicsFromPROP">
         <description>Update from PROP study - Demographics</description>
         <source schemaName="propStudy" queryName="DemoQuery" />
         <destination schemaName="study" queryName="Demographics" targetOption="merge"/>
 </transform>

where DemoQuery is a .sql file in my module. I know everything is working correctly, because if I make DemoQuery something really simple like:

SELECT * FROM Demographics

it works fine. However, what I'd really like to do is select participants from a certain participant group, like this:

SELECT * FROM Demographics D WHERE D.ParticipantId IN (SELECT G.ParticipantId FROM ParticipantGroupMap G WHERE G.GroupId.Label = 'ABC')

but I get an error "Could not resolve column: GroupId". I did set ParticipantGroupMap as part of the linked schema, but that doesn't make a difference. Exactly what is and is not allowed in the .sql files? And is there a way to select subjects based on participant group or cohort?
Leo Dashevskiy2014-08-01 13:58Greg Taylor2014-08-05 10:52 Looks like a bug in the 'Export' via JavaScript functionality of a LabKey's table TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Steps to reproduce:

1. Open any table in the schema browser
2. Click 'VIEWS' -> 'Folder Filter' -> 'Current folder'
3. After page reload, click 'EXPORT' -> 'Script' -> 'JavaScript' -> 'CREATE SCRIPT'

The generated JS code within the LABKEY.Query.selectRows() call has the following config line:

containerFilter: 'Current,

It causes an error, you guys know better, what it actually should be ('Current'?).

Thanks.

Revision: 33495
mark.shifman@yale.edu2014-08-08 11:20Greg Taylor2014-08-11 15:41 Top level/Root level list available to lower projects. TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
this is an obvious question that must be answered in FAQ (if I knew where to look)

I have a root level list of flow cytometry population names and I want to use be able to use it in all my projects.

How do I do it? Is there a special property I have to set somewhere or is there some special way to address it like
home.Lists.HIPC_Panel_Names (which didn't work) or both.
bill c white2014-02-03 10:50Greg Taylor2014-02-05 14:01 Full Microarray Analysis TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am attempting to run operations on a full microarray in LabKey. I need to do operations on a 54000x26 array. I normally do this with C++. The workflow is:

-filter the array to a top number of genes, say 5000, based on gene stats
-run a ranking routine on the reduced data, down to say 100
-form a new matrix from the reduced data
-run a routine to discover modular structure
-visualize using d3

I have my analysis routines in R. I've prototyped d3 and it works fine in LabKey. I can call my R routines from views. Now to implement this pipeline. The first thing I've run into is that I need (I think) Rlabkey to query the data (lists so far) and it is SLOW. I waited for about an hour and it never finished retrieving the data query (it works fine on small toy problems I tried). So my question is: Is it feasible to think of doing this type of thing in R? Should I think about a custom Java module? I really like LabKey but performance is a huge issue.
Ben Bimber2014-04-28 09:25Greg Taylor2014-04-28 17:33 Remote pipeline and AWS? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Does anyone know if the is precedence for anyone using AWS or other cloud agents as remote servers in LabKey pipelines? It might be an appealing way for us to quickly ramp up/down our capacity.

If not, is there any particular obstacle to this (assuming our activemq server was accessible remotely)?

Thanks.
Andy Straw2014-06-09 13:09Greg Taylor2014-06-09 14:01 Extra column returned by ExecuteSqlCommand TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm using the LabKey Java ClientAPI - in particular, the ExecuteSqlCommand. I'm doing a SELECT on the flow.FCSAnalyses table, and I'm finding that I get one extra column back that I did not ask for: I asked for "RowId", but I also get back "_labkeyurl_RowId" which appears to be the URL I could use to view that row.

Why do I get back a column I didn't ask for? Is this a feature, or a bug?

This isn't a huge problem, but in my case, the columns to SELECT in the SQL are dynamically generated, so my processing of the columns returned is also dynamic, and this unexpected column has to be explicitly ignored by my code.

Thanks.

Andy Straw
University of Rochester
trent2014-03-17 18:50Greg Taylor2014-03-21 15:47 File based module: Unrecognized cache key format TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I just installed version 14.10, and during startup one of the (file based) modules is throwing this error:

java.lang.IllegalStateException: Unrecognized cache key format: Advanced Vial Search/Advanced Vial Search TOC.webpart.xml
       at org.labkey.api.module.ModuleResourceCache.parseCacheKey(ModuleResourceCache.java:299)
       at org.labkey.api.module.ModuleResourceCache.parseCacheKey(ModuleResourceCache.java:289)
       at org.labkey.api.view.SimpleWebPartFactoryCacheHandler$1.load(SimpleWebPartFactoryCacheHandler.java:66)
       at org.labkey.api.view.SimpleWebPartFactoryCacheHandler$1.load(SimpleWebPartFactoryCacheHandler.java:62)
       at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:129)
       at org.labkey.api.module.ModuleResourceCache.getResource(ModuleResourceCache.java:66)
       at org.labkey.api.module.ModuleResourceCache.getResources(ModuleResourceCache.java:95)
       at org.labkey.api.module.DefaultModule.getWebPartFactories(DefaultModule.java:402)
       at org.labkey.api.view.Portal.initMaps(Portal.java:1138)
       at org.labkey.api.view.Portal.getViewMap(Portal.java:1116)
       at org.labkey.api.view.Portal.getPortalPart(Portal.java:1104)
       at org.labkey.core.workbook.WorkbookFolderType.<init>(WorkbookFolderType.java:37)
       at org.labkey.core.CoreModule.startupAfterSpringConfig(CoreModule.java:621)
       at org.labkey.api.module.SpringModule.doStartup(SpringModule.java:114)
       at org.labkey.api.module.DefaultModule.startup(DefaultModule.java:262)
       at org.labkey.api.module.ModuleLoader.completeStartup(ModuleLoader.java:1175)
       at org.labkey.api.module.ModuleLoader.access$200(ModuleLoader.java:115)
       at org.labkey.api.module.ModuleLoader$2.run(ModuleLoader.java:1138)

Can anyone advise what's best to do in this scenario?

nb: source code of module hasn't changed since Labkey 11.x

I've also removed all the guts of the module to rule out a file issue.

This doesn't have supporting data model, so I'm happy for all traces of the module to be wiped from LabKey - to start over - if need be (core.modules, anywhere else?)

├───config
│ module.properties

├───queries
│ └───study
│ │ ClinicalResultsWithVisitLabel.query.xml
│ │ ClinicalResultsWithVisitLabel.sql
│ │ RequestParticipants.query.xml
│ │ RequestParticipants.sql
│ │ SpecimenDetailWithTotal.query.xml
│ │ SpecimenDetailWithTotal.sql
│ │ TotalVisitVolume.sql
│ │
│ ├───ClinicalResultsWithVisitLabel
│ │ .qview.xml
│ │
│ └───RequestParticipants
│ .qview.xml

├───views
│ Advanced Vial Search TOC.webpart.xml
│ requestedVials.html
│ selectParticipants.html
│ selectParticipants.view.xml
│ vialSearch.html
│ vialSearch.view.xml

└───web
        specRequestForm.js
gkericks2017-04-24 14:54gkericks2017-04-28 12:46 Automatically importing a study with lists and reports TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi there,

I have been working working on a system to facilitate using Labkey with an external data collection service. Our use case is as follows:

We have many different teams accessing various project on a Labkey server. They are mostly using the tool to share files and post wikis. For each project (or at least most of the projects) we will have a corresponding project in the aforementioned external service. The corresponding projects in the external service are the points of data collection and they will be constantly updated.

What I want to do:

I have been working to standardise and automate moving data out of the external service and in to labkey. I have wrote a simple program that requests data from the external service using an API. I want to also automate the importing of that data into Labkey. Now, I started using the study import/reload features. I have gotten pretty far with this approach and can automate the data reloading as a study. As I have tried to add more details to the import, this has gotten more difficult.

Current challenge:

The study reload feature doesn't include lists or reports. This is problematic for two reasons:

1) Lists are needed to encode complex data types where the raw representation is different from the labels.

2) Reports will change as the number of projects we support changes and we want to be able to easily export a a 'stock' report to many different projects.

I have been trying to get the technique described here (https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=11385) to work with no success. I am using Labkey 16.2. I am also using pycurl to give commands to curl. Does anyone know if this technique still works? Does the fact that I am using pycurl (python) matter?

I would really appreciate some feedback and discussion around this. The automation of the study export/import/reload went fairly smoothly, however trying to add in extra features (reports, data type encoding via lists, anything to do with folder structure) has been a headache. I am guessing these challenges arise because Labkey does not explicitly support reloading of arbitrary folder types so perhaps I am simply looking into the wrong features for our use case.
eva pujadas2016-09-27 02:20eva pujadas2016-09-30 06:27 Populating Standard Specimen Repository through R TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear LabKey team,

We would like to fill the repository via R with data.

On your help-page, you say the following:
https://www.labkey.org/home/Documentation/wiki-page.view?name=specimensHome

"The Standard Specimen Repository supports import of spreadsheet data and a variety of viewing and reporting options.“

Is it possible to fill in data with R in this Standard Specimen Repository?

When we tried, we got the following error message:

Fehler in labkey.insertRows(baseUrl = baseUrl, folderPath = folderPath, :
 HTTP request was unsuccessful. Status code = 403, Error message = Unauthorized

Thanks for your great support!

Eva
eva pujadas2015-12-04 06:29eva pujadas2016-04-19 05:56 Lookup validators fail on import data TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

We are running LabKey 15.3 and tried to use the Lookup validation as described in the chapter "Validating Lookups: Enforcing Lookup Values on Import" of your documentation:
https://www.labkey.org/wiki/home/Documentation/page.view?name=lookupDefine

When importing using the "Import Data" menu (Copy/paste or Upload file), values not present in the lookup table are imported instead of displaying an error before import. Those imported "invalid" values appear in the list view enclosed by "<" and ">".

Are we missing something?

Thanks a lot for your help,
Eva
cmwest32017-10-24 14:04cmwest32017-10-26 10:38 Use of the Python API in Matlab and Converting Python Results to Matlab Objects TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Matlab allows the capability to execute Python code and we have found that the use of the Python API from within Matlab can reach 20% better performance over using Matlab and the Web API. Although, converting results from Python objects to Matlab objects, specifically py.dict objects to structs using the struct() function, proves difficult due to the fact that the LabKey server will return Python Dictionaries/Matlab Structs with keys that begin with an underscore "_", specifically "_labkeyurl_DisplayName" . This violates Matlab's naming conventions and causes Matlab to throw an InvalidFieldName exception.

After searching through the LabKey source code, I believe I've found the line of code that might fix this issue: FileSystemResource.java line 107: <public static final String URL_COL_PREFIX = "_labkeyurl_";>

I could be mistaken or there could be a variable located somewhere else, but removing the leading underscore from "_labkeyurl_" to "labkeyurl_" should fix this issue. Would it be possible to incorporate this change in the next update or would there be an easier way to modify this prefix?

Thank you.
christian.pfaff@novartis.com2011-07-22 07:51christian.pfaff@novartis.com2011-07-22 07:51 Data transformation with Java, using log4j TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have just created a data transformation jar and tried to use log4j to be able to debug the thing occasionally.
After some time of searching for the place where the .log file is stored, I realized, that it placed in the temp directory along with the various data upload and transfer files. This directory is deleted after the process, so you will never find a log file. Please correct me, if I am wrong.
For the matter of fact that I always want to store the log4j.properties and the .log files with the .jar in the same directory, I created a function which detects the folder where the jar resides.

    /**
     * Detects the absolute path to the folder where the current class resides.
     * - If the class is packed in a jar with the path c:\example\proli.jar, then the function returns c:\example\
     * - If the class is packed in a jar with the path /example/proli.jar, then the function returns /example/
     *
     * - If the class is not packed in a jar with the path c:\example\com\... , then the function returns c:\example\
     * - If the class is not packed in a jar with the path /example/com/... , then the function returns /example/
     * */
    private String getRootFolder() {
        String className = this.getClass().getName().replace('.', '/');
        String resName = this.getClass().getResource("/" + className + ".class").toString();
        resName = resName.replace('/', File.separatorChar);
    
        if (resName.startsWith("jar:")) {
            resName = resName.substring(4);
        }
        if (resName.startsWith("file:")) {
            resName = resName.substring(5);
        }
                // in case the class resides within a jar file
        if (resName.contains(".jar")) {
            resName = resName.substring(0, resName.indexOf(".jar") + 4);
            // s = s.substring(s.lastIndexOf(':') - 1);
        } else { // normal unpacked .class file
                        // not 100% sure about this one...
            resName = new File(".").getAbsolutePath();
        }

        return resName.substring(0, resName.lastIndexOf(File.separatorChar) + 1);
    }

Using the function above you can initialize your log4j with the following lines:

String path = transform.getRootFolder();
PropertyConfigurator.configure(path + "log4j.properties");

Best regards, Christian
bront@kcr.uky.edu2014-09-08 11:35bront@kcr.uky.edu2015-04-25 06:55 SQL in modules TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hello,

I am working on a custom module using ExtJS for the UI. I need to do CRUD functions (with transactions) on the database, and I am struggling to understand how best to implement this functionality.

The demoModule employs the Table class and a Person class (bean). Other custom modules, however, use SQLFragments and SQLExecutor, and I've even seen some cases where Prepared Statements are used.

Is there a preferred way to go about this?

Many thanks,

bront
bront@kcr.uky.edu2017-07-25 10:09bront@kcr.uky.edu2017-08-02 12:18 Impersonating Roles TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I came across a somewhat unexpected situation today while working on a wiki-based application (version 17.1).

When I impersonate a *User* who has Reader-level permissions, the pen/edit icon atop the wiki disappears, which is expected.

If, however, I impersonate the *Role* of Reader the pen/edit icon remains, which I didn't expect.

Can you explain why this the case?

Many thanks,

bront
bront@kcr.uky.edu2014-11-09 07:59bront@kcr.uky.edu2014-11-10 07:57 ApiAction Bind Exception TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am working on a custom module, and I'm having an issue.

When I post a form with a blank field, I get a bind exception error. If the field is populated, however, there is no error, but since the field in question is non-required, I need to be able to post a blank field.

The error is thrown at line 155 in ApiAction…

" //if we had binding or validation errors,
 //return them without calling execute."

The exception reads:

org.labkey.api.action.NullSafeBindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'form' on field 'confirmationNumber': rejected value [];

How can I get around this and set up the code to accept a posted blank field?

Many thanks,

bront
bront@kcr.uky.edu2016-03-31 15:20bront@kcr.uky.edu2016-04-01 07:30 RemoteAPI SelectRowsCommand CommandException: Not Found TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am running into a problem with this simple command. I have a project called "Testing," and within that project in the lists schema there is a list called "gender." When I run the command, however, I get: org.labkey.remoteapi.CommandException: Not Found

What am I missing?

thanks,

bront


            Connection cn = new Connection("https://ourdevserver.edu, "xxx", "yyy");
        SelectRowsCommand cmd = new SelectRowsCommand("lists", "gender");

        try
        {
            SelectRowsResponse response = cmd.execute(cn, "/Testing");

        } catch (IOException | CommandException e)
        {
            e.printStackTrace();
        }
bront@kcr.uky.edu2016-05-23 11:13bront@kcr.uky.edu2016-05-24 06:30 Active Directory Groups and Authentication TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

We are migrating all of our users to Active Directory, and I am curious if it is possible to configure LabKey to not only authenticate via AD but also do authorization within LabKey as well?

We touched upon this topic last year in this post:

https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=10952

thanks,

bront
bront@kcr.uky.edu2016-07-25 14:24bront@kcr.uky.edu2016-07-25 15:23 Multiple LDAP servers TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I've asked this question before about authenticating against multiple LDAP servers (meaning entirely different domains). It remains an issue at our institution. We need to authenticate both against our own AD server as well as at the university level.

Are there any plans to implement this functionality? If not, who should I contact to discuss possibly funding a project to incorporate this update?

Thanks,

bront

original post:

(https://www.labkey.org/9e077eeb-b2ab-1029-961c-79704b7a2169/announcements-thread.view?entityId=42ef9980-a3b3-1031-bdb2-6432661dc130&_docid=thread%3A42ef9980-a3b3-1031-bdb2-6432661dc130)
bront@kcr.uky.edu2015-05-26 14:17bront@kcr.uky.edu2015-06-04 11:36 Active Directory Groups and Restricting Access TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

We're migrating our authentication from LDAP to AD. So far, everything is working well. Users can login and their LabKey permissions are working perfectly.

In AD, we have created a labkeyusers group, and I am wondering if it is possible to restrict access to LabKey based solely on this group?

As it is now, all of our AD users have access to login to LabKey and are able to create accounts. They have no permissions, of course, but I think it would be better to limit their access altogether.

Can the AD group perhaps be added to the ldapSearch_searchTemplate in the labkey.xml file?

Many thanks,

bront
bront@kcr.uky.edu2015-04-16 08:26bront@kcr.uky.edu2015-04-23 09:52 Java Module Schema Access TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have the usual situation wherein I am creating projects to represent different labs, but I need to expose ALL of the underlying labs' data to an over-arching Admin role (without the admin having to navigate into the separate projects).

- main project (Admin)
  - lab1
  - lab2
  - lab3

I've been experimenting with the Demo module and have exposed the Person table via registerProvider, so that the labs can access and manipulate the data via JavaScript, but I need some help to expand on that.

I want to maintain the current security level for the labs (so they can only access and modify their data), but expose ALL of the data to an Administrative role where the data can be viewed and modified via JavaScript.

Any suggestions on how to set up this schema or examples in other modules would be most welcome.

Many thanks,

bront


e.g.,
DefaultSchema.registerProvider("demo", new DefaultSchema.SchemaProvider(this)
        {
            public QuerySchema createSchema(final DefaultSchema schema, Module module)
            {
                DbSchema dbSchema = DbSchema.get("demo");
                return QueryService.get().createSimpleUserSchema(dbSchema.getQuerySchemaName(), null, schema.getUser(), schema.getContainer(), dbSchema);
            }
        });
bront@kcr.uky.edu2015-06-04 11:40bront@kcr.uky.edu2015-06-15 07:27 Character Limits on SAS export from PostgreSQL TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

One of our users has come across an issue when she exports PostgreSQL data into SAS.

A TEXT field in the database is listed as 2.15E9 in length when the SAS character maximum is 32767.

We've seen this before on VARCHAR fields without a limit, but I am not sure what to do with a TEXT field (where it appears there is no limit).

We're running LabKey 15.1, PostgreSQL 9.1, and she installed the latest SAS Client API Library today.

Many thanks,

bront
bront@kcr.uky.edu2015-01-12 06:54bront@kcr.uky.edu2015-03-04 06:59 Uncategorized SQLException for SQL TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am running into an issue with an installation of LabKey. Several times I have encountered the following error and had to restart Tomcat to fix it.

I have pasted the last error from the logs below. We're running 14.3 on Ubuntu 14.04.1 LTS with PostgreSQL 9.3.

Let me know if you need more information.

Thanks,

bront

… from labkey.log

    SELECT * FROM core.containers WHERE Parent IS NULL

    org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:438)
    org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:263)
    org.labkey.api.data.BaseSelector.getObject(BaseSelector.java:163)
    org.labkey.api.data.BaseSelector.getObject(BaseSelector.java:158)
    org.labkey.api.data.ContainerManager.getForPath(ContainerManager.java:870)
ERROR ContextListener 2015-01-12 09:33:04,769 localhost-startStop-2 : Exception during shutdownStarted():
org.springframework.jdbc.UncategorizedSQLException: ExecutingSelector; uncategorized SQLException for SQL []; SQL state [25P02]; error code [0]; ERROR: current transaction is aborted, commands ignored until end of transaction block; nested exception is org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
    at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:124)
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
    at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:443)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:263)
    at org.labkey.api.data.BaseSelector.getObject(BaseSelector.java:163)
    at org.labkey.api.data.BaseSelector.getObject(BaseSelector.java:158)
    at org.labkey.api.data.ContainerManager.getForPath(ContainerManager.java:870)
    at org.labkey.api.data.ContainerManager.getForPath(ContainerManager.java:855)
    at org.labkey.api.data.ContainerManager.getRoot(ContainerManager.java:909)
    at org.labkey.api.data.queryprofiler.QueryProfiler$4.getFormattedPrimaryStatistic(QueryProfiler.java:151)
    at org.labkey.api.data.queryprofiler.QueryTracker.exportRow(QueryTracker.java:321)
    at org.labkey.api.data.queryprofiler.QueryProfiler$QueryStatTsvWriter.write(QueryProfiler.java:498)
    at org.labkey.api.data.TextWriter.write(TextWriter.java:147)
    at org.labkey.api.data.queryprofiler.QueryProfiler$QueryProfilerThread.shutdownStarted(QueryProfiler.java:598)
    at org.labkey.api.util.ContextListener.contextDestroyed(ContextListener.java:68)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5014)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5659)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    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.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:561)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:405)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:285)
    at org.labkey.api.data.dialect.StatementWrapper.executeQuery(StatementWrapper.java:916)
    at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.executeQuery(SqlExecutingSelector.java:374)
    at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.getResultSet(SqlExecutingSelector.java:324)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:249)
Ben Bimber2014-07-29 10:55Brian Connolly2014-08-05 14:42 Expected Behavior From Pipeline w/ Split Jobs? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a pipeline job that does the following tasks:

Task 1 runs joined (ie. 1 job for all files)
Task 2 runs split (ie. creates a separate job per file).
Task 3 runs joined

I had a batch of files complete through Task 2, except 1 of 5 jobs failed. If I could get Task 3 to run, it would theoretically complete even though 1 of the previous jobs failed. I manually marked the failed job from Task 2 as completed from the pipeline grid. I was hoping this would coax Task 3 to continue, but that did not.

What's the expected behavior of a split->joined pipeline job if a job fails, and do I have any way to force Task 3 to continue even if one of the Task 2 jobs failed?

Thanks in advance.
celikalper842017-11-02 08:33Ben Bimber2017-11-02 14:46 galaxy TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I am trying to get LabKey and Galaxy to communicate so that we can leverage the NGS pipelines that are already built in Galaxy. Currently I have local instances of both running in my computer (for test and development purposes). From the documentation I believe there used to be some sort of communication between the two platforms but cannot find any more details about it.

Thanks for all the help.
Alper

Here are some details:
LabKey version 17.2
tomcat version 8.5.23
Postgres version psql 9.6.5
Galaxy Version 17.09
OS Ubuntu 16.04
balter2016-03-23 16:24balter2016-03-23 16:56 How many projects can a LabKey instance hold? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
We provide client-based bioinformatics services for PIs inside and outside a university. Over the next few years, we could potentially have hundreds of clients. We would like to be able to provide each investigator with a dashboard where they can view their results and analysis, and communicate. Can LabKey handle that?
A. Tyrell2014-07-31 09:54avital2014-08-13 13:21 Import Data - ERROR: functions cannot have more than 100 arguments; TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have a dataset with 64 columns (all columns allow missing value indicators).
I am trying to import 87 records into this dataset, and I get the exception message in the attached file.

The current version of LabKey is 14.1. I should note that I was able previously import into this table without any exceptions, with a larger record count in 13.3

On 14.2, the data will not import and no error message is displayed. However, the site log displays the same error as the one attached.
micahs2015-01-12 15:13avital2015-01-15 13:32 Custom Module Question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm looking at building a custom module outside of the server code and had questions:

First - I noticed when a module is built with the server code the JSP files are pre-compiled and the html is compressed. I'm following the docs at: https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleDirectoryStructures but I don't see mention of pre-compilation or compressing. Are these necessary steps?

Second - Once I have a java module in the structure as recommended I should just be able to drop it in the externalModules dir. Correct?

Thanks - Micah
Will Holtz2014-10-14 10:40avital2014-10-21 11:36 OntologyManager.GetPropertyObjects() returning ObjectProperty(s) with propertyId=0 TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
With v14.2, I am calling OntologyManager.GetPropertyObjects() and getting back ObjectProperty(s) with propertyId=0. In my database (postgres v9.1), the corresponding rows in exp.objectproperty do have values in the propertyId field (as they must, as that is part of the pk for that table). This appears to be a bug to me. If someone can confirm that this is not the expected behavior, then I would be willing to put together a repro for this bug.

-Will
bill c white2014-10-16 12:20avital2014-10-21 11:35 javax.servlet.ServletException: Filter execution threw an exception TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have tried two different systems now, one an upgrade to several successive upgraded versions of the LabKey code distributions, and one on a fresh system, and I get the same stack trace. It means nothing to me. Nothing in the logs gives me any hints. Ideas? Both systems are running Debian 7, Java 7 and Tomcat 7.

type Exception report

message Filter execution threw an exception

description The server encountered an internal error (Filter execution threw an exception) that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Filter execution threw an exception
root cause

java.lang.ExceptionInInitializerError
    org.labkey.api.util.ExceptionUtil.handleException(ExceptionUtil.java:462)
    org.labkey.api.util.ExceptionUtil.handleException(ExceptionUtil.java:456)
    org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:74)
root cause

java.lang.NullPointerException
    org.labkey.api.module.ModuleResourceCaches$StandardModuleResourceDirectory.<init>(ModuleResourceCaches.java:102)
    org.labkey.api.module.ModuleResourceCaches$StandardModuleResourceDirectory.<init>(ModuleResourceCaches.java:89)
    org.labkey.api.module.ModuleResourceCaches.createModuleResourceDirectory(ModuleResourceCaches.java:85)
    org.labkey.api.module.ModuleResourceCaches.create(ModuleResourceCaches.java:51)
    org.labkey.api.data.DbScope.<clinit>(DbScope.java:104)
    org.labkey.api.util.ExceptionUtil.handleException(ExceptionUtil.java:462)
    org.labkey.api.util.ExceptionUtil.handleException(ExceptionUtil.java:456)
    org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:74)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.28 logs.
dennisw2015-01-14 06:36avital2015-01-21 15:05 Deleting specimens TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
What is the best way to go about deleting specimens from a study? One of our admins would like to be able to bring in 'dummy' specimens when first setting up a study and then delete them. However, is there a way to easily delete those specimens either via the UI or a deleteRows API call?

Thanks
andreas vogt2015-01-21 10:02avital2015-01-21 15:09 patientetl.module TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi
I would like to install the patientetl.module at version 14.3. However, the downloaded patientetl.module file was version 13.3. May I kindly ask for a link or the correct patientetl.module file for LKS 14.3.
The former versions were installed in the LabKey Server\module folder. Everything worked well, however, due to the wrong version no ETL could be used.
Thanks Andreas
Will Holtz2015-01-21 14:56avital2015-02-02 15:10 Display of null foreign keys in LABKEY.QueryWebPart TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am using LABKEY.QueryWebPart to display grids of assay results. My result row contains a foreign key that sometimes is null. Currently the null values display as "<0>". Is there a way to change that to some other string, such as 'none'? This is in a module-based assay.

Thanks!
-Will
Will Holtz2015-02-23 13:58avital2015-02-24 13:19 Permissions for email field of core.users TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

In the Schema Browser, if I mouse over the core.users table, the text the pops up indicates that logged in users should be able to see the email field. However, the query "SELECT Users.Email FROM Users" only returns empty rows when executed from a logged in but non-admin account. I have observed this on v14.3 and r36010. Is there a way I can reconfigure the permissions on the Email field?

thanks,
-Will
martin2014-11-26 04:42avital2014-12-04 08:57 file upload through wiki page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi, i'm trying to create a wiki page with <input type="file"> element for a user to upload selected file from their computer.

is there a simple way to pass this file (through insertRows() or something else javascript) to a list with Attachment field type?

thank you

martin
Will Holtz2014-12-18 11:43avital2014-12-30 11:46 Module-Scoped Dependencies via module.properties TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I would like to use module-scoped dependencies. The documentation shows how to configure them using module.xml but not module.properties. Given how the ant build creates module.xml, it appears module.properties does not support module-scoped dependencies. Is there some other way to obtain the same result for a module that uses an Ant build?

The answer might be custom client libraries, but I am unclear on what code would be used to pull a custom library into scope for a module or page.

thanks!
-Will
Ben Bimber2014-07-18 10:08avital2014-07-24 13:46 responses being truncated by 1 line? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm running a server using onprc14.2, tomcat 7.0.47 and jdk1.7.0_55. I noticed something odd with several APIs that return JSON. The response is truncated by one line, which usually means the JSON loses the final "}" and becomes unparsable. I have seen this on 2 actions: the action to import a spreadsheet and a custom action in JbrowseController. In both instances, I hit the issue when my request errored out and returned a 400 response.

I couldnt repro this on my dev machine; however, the server has differences including SSL. Has anyone seen anything like this before, or do you have any debugging ideas? It's quite possible this is a server-specific issue, and not a true LabKey bug. Thanks in advance.
bront@kcr.uky.edu2015-01-27 05:36avital2015-01-27 13:26 Ext4 security TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am using Ext4 extensively in a Java module and have a question about security. I need to restrict access to rows in a certain table based on userid, and I do so by implementing a user-defined query with LabKey's USERID() function.

My question is, can someone using Firebug or Chrome's dev tools actually query the underlying table itself? I have tried without results, but I wanted to get a more detailed answer. Is this approach secure?

thanks,

bront
Will Holtz2014-07-16 09:12avital2014-07-24 13:47 Demo java module and Query Schema Browser TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm messing around with the Demo java module (https://www.labkey.org/wiki/home/Documentation/page.view?name=demoModule). It compiles, loads and seems to be fully functional. However, when I am in the folder I instantiated the Demo module in and go to Admin->Developer Links->Schema Browser, the demo schema is not listed. I have verified the table exists in my database. Is this expected behavior? What would I need to add to the Demo module in order to get the associated schema exposed in the Schema Browser? I am on v14.1.

thanks!
-Will
Leo Dashevskiy2014-08-20 12:08avital2014-09-04 10:27 How can one interact with a QueryWebPart via JS ? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello, folks!

I'm interested in the following scenario:
1) users interact with a QueryWebPart instance via the UI: sorting, filtering etc.
2) then I'd like to get the 'state' of the new view of the QueryWebPart instance to be passed to the R back-end: sorting state and the corresponding column ids, set of applied filters and the corresponding column ids OR may be the row ids (not idea, but ok)

Otherwise, what is the point of having a QueryWebPart?

Thanks.
-Leo
micahs2015-01-15 09:24avital2015-01-21 15:05 Deleting Modules Question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello -

On 13.3 I'm not able to delete a module. I visit the 'Admin Console', delete the module, and on the next restart the upgrade process starts on the modules is back. How do I actually delete unused modules?

Micah
Will Holtz2014-11-11 14:19avital2014-11-13 13:22 Configuring icon for Flag column TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I have added a flag column in the batch domain of a file based assay module. Is it possible to change the icons that appear in my new flag column for the default view of these tables? I am on v14.2.

thanks!
-Will
laurapas2015-01-13 15:34avital2015-01-15 13:30 Problem accessing data with RLabkey package TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,
This is similar to the issue submitted by michael_stover@urmc.rochester.edu    on 2012-07-17 13:00. I am getting the following Error when using labkey.selectRows(). Could someone help me understand what this means?

Error in labkey.selectRows(baseUrl = "https://labkey-test.roche.com:8443/labkey", :
  HTTP request was unsuccessful. Status code = 401, Error message = Found
John K.2015-01-22 13:54avital2015-01-29 13:24 Use of "INSERT INTO" to update a table via SQL query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
It seems that "INSERT INTO" is not recognized in labkey SQL.

I am trying to update one list by adding new rows (and data) from another.

Any alternatives?
martin2015-01-03 10:42avital2015-01-09 14:29 insertRows() to core users TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

i'm trying to create a new user with Python's insertRows() command but it seems that UserId column is read only and the operation fails.

i want to avoid using JavaScript API's createUser() method because i'm trying to do this externally and i don't know how to use JavaScript API externally (is it possible?)

is there a way to modify query in core schema or are they somehow locked?
thank you very much

Martin
Ben Bimber2014-07-14 10:47avital2014-07-24 13:47 Wrap an apache application? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I'm still exploring how to integrate LK with JBrowse (http://jbrowse.org/). JBrowse is an apache webapp for viewing sequence data. Ideally, LabKey would serve as the source/database of sequence data and files, and we could push out to JBrowse to actually visualize this information. I think I've answered most questions, but have one more:

Is there any way for labkey/tomcat to wrap or serve content from an apache server? This apache server would probably be running locally, and both apache and tomcat have access to the same filesystem. If not, is there a standard way these two might interact with one another? I ask because it would be convenient to let tomcat handle all authentication, etc.

Thanks in advance.
Will Holtz2014-12-17 15:13avital2014-12-18 13:24 Javascript LABKEY.Message.sendMessage restrictions TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
The Labkey Javascript API documentation states, "Message recipients must exist within the LabKey server, otherwise an error will be thrown." It also appears that the sender must exist within the LabKey server, but this is not mentioned in the documentation. I am still on v14.2 and have not tried this on v14.3.

I find this restriction a little annoying, as I would like to have some of my scripts to send messages from a dummy lims@MyCompany.com account instead of from a user account.
weiclav2015-01-08 00:03avital2015-01-09 14:22 Issues with lookups instead of lists? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

what is the easiest way how to implement lookups into tables instead of just simple lists in the issues? I guess one has to e.g. modify the default issues module, or is there any other option?

Thanks!
David
micahs2015-01-20 15:10avital2015-01-27 13:09 Specify Specific Container for Query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello -

I'm in the process of changing a query that currently uses:

QuerySettings settings...
settings.setContainerFilterName(ContainerFilter.Type.CurrentAndSubfolders.name());

What is the recommended approach for specifying a specific container in the 'container tree'?

Thanks -

Micah
Leo Dashevskiy2014-08-06 15:56avital2014-08-14 16:00 A weird behavior for LABKEY.ext.Store (or its parent)? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello there!

I'm seeing something odd or it might be the case that I'm missing something totally obvious.

For those of you, who have access to immunespace.org (Hutch email and password should get you in)

Navigate for instance to "https://immunespace.org/query/Studies/SDY61/begin.view"

Open the JS console and run


1.

new LABKEY.ext.Store({
 schemaName: 'study',
 sql: "Select Name From study.DataSets WHERE CategoryId.Label = 'Assays'",
 listeners: {
  load: function(s){ console.log(s.getCount()); },
 },
 autoLoad: true
})

Result -> 1


2.

LABKEY.Query.executeSql({
 schemaName: 'study',
 sql: "Select Name From study.DataSets WHERE CategoryId.Label = 'Assays'",
 success: function(d){ console.log(d.rows.length); }
})

Result -> 12


Why such a discrepancy?

The store for some unknown to me reason does not properly load all of the rows...

Thanks.
-Leo
dennisw2016-03-14 18:07avital2016-03-17 13:27 Java SQL Lookup Question TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

If I run the following query in the Query Editor:

SELECT VisitDescription, PrimaryType, DerivativeType, Count(DerivativeType) as Total FROM SpecimenDetail WHERE AtRepository = 1 group by VisitDescription, PrimaryType, DerivativeType

... the result will show the text Primary Type and Derivative Type. If I run this using the Java API on a given Study then I will get the numerical values for the types. Is there an easy way to phrase the query so that I can get the same result as I get in the LabKey Query Editor?

I've looked at the Lookup documentation at https://www.labkey.org/home/Documentation/wiki-page.view?name=lookups but it seems to work differently when using the Java API. I'm sure I can come up with a Join if necessary, just wondering if there is an easier way.

Thanks
Will Holtz2015-01-30 18:20avital2015-02-02 15:08 Javascript views fail on assay domains TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am unable to create javascript views on assay domains. Here is the repo:

1 - Create a General Assay (leave all configuration at defaults)
2 - Navigate to view the results of this assay
3 - Click View -> Create view -> Javascript View
4 - Leave the source untouched and click on the View tab

Expected output is '0 rows returned', but no output occurs because the javascript doesn't parse and will you see an error in your brower's javascript console. This is because the containerFilter property value gets set to an unquoted 'Current Folder', which parses as two tokens. I think this value should be set to an quoted LABKEY.Query.containerFilter.current.

I have observed this behavior on v14.3 and r36010.

-Will
trent2014-08-10 20:47avital2014-09-04 10:28 Select fields from all datasets (study) with a custom query TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
In short - can I make it so that the customize view interface will display other datasets to add/remove columns using the customize view interface, against a custom query?

I have a dataset named "Clinical Results". So that I can specify what field is returned on a QueryWebPart using DataRegion.getChecked(), I have the following (simplified):

trenttest.sql:

select ParticipantSequenceNum, GGT
from "Clinical Results"

trenttest.query.xml:

<query xmlns="http://labkey.org/data/xml/query">

    <metadata>

        <ns:tables xmlns:ns="http://labkey.org/data/xml">
          <ns:table tableName="trenttest" tableDbType="NOT_IN_DB">
            <ns:columns>
              <ns:column columnName="ParticipantSequenceNum">
                <ns:isKeyField>true</ns:isKeyField>
                <ns:isHidden>true</ns:isHidden>
              </ns:column>
            </ns:columns>
          </ns:table>
        </ns:tables>
    </metadata>
</query>

This works well in that in my data region, I get the participantsequencenum field returned with the following:

clinicalResultsPart.getDataRegion().getChecked();

However, the limitation is I can't fetch data from other datasets using the UI (using the customize view interface). If a specify the source table as "Clinical Results", there is a DataSets node that I can specify fields from my other data sets (that im hoping to have available on with the above query)

Questions.

1. Is my method overkill, and could I achieve the same with a custom qview.xml file? I did try, without success.

2. If no to 1, is there anything special I need to do to make the DataSets node available in order to be able to select fields from my other datasets? I thought that maybe joining to the DataSets table may help, but don't think that works either.

Any suggestions appreciated.
bront@kcr.uky.edu2015-03-10 13:19avital2015-03-17 13:23 LabKey development in Eclipse TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

Do you have any documentation or suggestions on importing LabKey source into Eclipse and launching it?

thanks,

bront
michele monnardfeller2015-01-26 22:36avital2015-02-02 15:10 unexpected server error specimen import TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi

I am trying to import specimens. But in each study I get an error message? (see annex)

Thanks

Michele
jeckels2014-09-05 11:29avital2014-09-09 13:32 Improved CSRF protection TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LabKey Server has long-guarded against cross-site request forgery attacks (http://en.wikipedia.org/wiki/Cross-site_request_forgery) for key security, permission, and other site-level administration features.

In version 14.3, we are working to bolster our CSRF protection by expanding to cover many more actions. This should be transparent for users who are using all modules maintained by LabKey Software. It has potential impact on external scripts and modules developed by other groups though.

At the moment, all POST requests that require either folder or site administrator permissions now protect against CSRF. We plan to extend this to all POST requests in the future, though the schedule is not yet finalized. It is generally assumed that GET requests should not be modifying the application state in ways that need protection from CSRF.

We are working to ensure that our client APIs automatically include the CSRF token. However, externally run scripts that hit the server directly via HTTP (using CURL, WGET, etc) will need to supply a CSRF token for these actions or the request will be rejected.

Additionally, developers who are maintaining their own modules will need to ensure that they generate <form> elements that include the CSRF token. We have taken steps to include this automatically whenever possible, but cannot do so in all cases.

For more details, please see:

https://www.labkey.org/wiki/home/Documentation/page.view?name=csrfProtection

Please contact us (either by responding here, or through other means) with questions and concerns.

Thanks,
Josh
Will Holtz2015-01-30 18:08avital2015-02-02 15:08 LABKEY.Query.GetData.getRawData fails on assay domains TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
LABKEY.Query.GetData.getRawData is unexpectedly failing on assay domain queries. Here is the repo:

1 - enable study module on /home
2 - Create a General Assay named GeneralAssay (leave all configuration at defaults)
3 - Add a wiki web part with the following code:

<div id='result_wiki'>
<script>
Ext4.onReady(function() {

    LABKEY.Query.GetData.getRawData({
        source : {
            type: 'query',
            schemaName: 'assay.General.GeneralAssay',
            queryName: 'Data',
            containerFilter: LABKEY.Query.containerFilter.current
        },
        success: function(response) {
            Ext4.fly('result_wiki').update(response.rows.length+' rows found');
        },
        failure: function(response) {
            Ext4.fly('result_wiki').update(response.exception);
        }
    });
});
</script>

Expected output is '0 rows found', but I get 'Could not resolve schema assay$PGeneral$PGeneralAssay in container /home.' I tried this on v14.3 and r36010 and get the same result.

-Will
anders kielland2015-01-27 08:49avital2015-02-06 11:35 Genrating letters which include data TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi
I am low on understanding when it comes to Labkey and databases in general.

I am trying out Labkey for a clinical study. One task is: the patients after being to a visit want to have some of the measurement on them. We give them a letter with some key parameters. It becomes a lot of copy and paste.

Wonder if a letter like this can be automatically generated in Labkey, fex from the Customize Participant View (https://www.labkey.org/wiki/home/Documentation/page.view?name=participantViews)?

or in other ways?

Anders
bront@kcr.uky.edu2015-03-09 14:31avital2015-03-10 13:19 Java module : configuring external data sources in labkey.xml TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

How can I configure an external data source during development such that building either writes the correct configuration data to labkey.xml (or at least doesn't over-write it)?

Thanks,

bront
david beaumont2016-09-03 13:19avital2016-09-16 11:08 R Excel Out TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I have an R report that QC's data that I would like to implement in a manner so that other users in my lab can access the resulting dataframe. I have tested it with fileout:<name> to export the file as a tsv which works, but I ultimately need to end up with excel files. Since I didn't see any documentation for a substitution that produces excel files, I had thought of using the xlsx package to write the reports to the assay folder on the server, then users can use the file system webpart to retrieve it.

With the folder path option enabled in the grid view, I can see the directory of the dataset I am working with on the server, and by adding in the missing "D:\labkey\labkey\files" I would have easy enough way to write the excel file to my desired location. However, when viewing labkey.data the path and parent names become alpha numeric strings. I can't tell if this is because path is now fetching the directory the R temporary session is using or something like that, I am still learning my way around programming.

Any advice would be appreciated,

Thanks!

David Beaumont
Christopher Garay2014-07-14 08:37avital2014-07-24 13:49 Saving a new list TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi all,

Is there a way to create a new list using the data from a user filtered query view using the JavaScript API? I'd like to have a filtered data set available for analysis in multiple folders. Thanks for your help!

Chris
Ben Bimber2014-06-11 12:01avital2014-06-12 13:25 Sharing Remote Pipeline Servers? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi guys,

We currently have 1 LK application server and 2 remote pipeline servers. The pipeline servers primarily run sequence analysis jobs; however, our EHR applicaiton has a single nightly job it runs remotely. Everything is virtualized.

We are shortly going to be running 2 LK application servers. One will host our EHR, and one will be more research/data analysis oriented. The latter will run many remote pipeline jobs, and it would get the 2 existing (and maybe more) remote servers. This is great except for the EHR server's single pipeline job. It is convenient to run it remotely since it's a memory inefficient R task. It runs once per day at night for an hour or so. Dedicating a whole pipeline server for this one function seems wasteful.

Is it possible for 2 application servers to share a pipeline server, and/or a single ActiveMQ server? All remote servers could in theory mount the file roots from both app servers.

Assuming they shared a JMS queue, each app server would deposit jobs to run on the appropriate location (all remote servers would be the same location). All remote servers would get these jobs and process them normally. I think I could probably use the appropriate path mapping in my pipelineConfig.xml file to get file roots working right and sort out which server they come from. The thing I dont know is how the 2 app servers would deal with jobs once they're done. Would an app server only process jobs that were created by that server, or would our 2 app servers conflict with each other and steal the other one's jobs?

I could probably also run 2 remote pipeline processes on 1 of these remote servers, but this seems a little uglier and has some negatives. Given the whole environment is virtualized, it may also mean I could stand up a dedicated remote server for the EHR server without really incurring much practical loss (assuming the VM server distributes resources). I thought I'd investigate the sharing options first though.

Thanks in advance.
eva pujadas2015-04-30 03:27avital2015-05-05 13:22 Inconsistencies when exporting/importing lists or datasets usging XML formats TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
As already announced in your documentation, validation in fields (both types of validation: regex and range) is not included in the XML definition when exporting fields, lists or datasets (studies):
https://www.labkey.org/wiki/home/Documentation/page.view?name=propertyFields

Additionally, we have realized that conditional formats, although they are included in the xml definition when exporting lists, they are ignored when importing (in datasets it works well).

About defaults, it seems that default values, although they are defined in the XML schema description, they are not exported in lists or datasets:
https://www.labkey.org/download/schema-docs/xml-schemas/namespaces/http_labkey_org_data_xml/namespace-summary.html
The default type of a field does not even seem to be defined in the XML schema.

Questions:
- Will the conditional formats and default values issues eventually be fixed? We have searched in your issue tracking database and they do not seem to be there.
- About exporting validation of fields, is it planned to include this feature in a early future release of LabKey? We would use this feature in the domain of psychological research, where quite often the same validation rule holds true for all fields of one survey.
Or, is there a reason why not to include validations in exports?

We are running LabKey 15.1.
Please, let me know if you need further details.

Thank you very much for your great support.
Eva Pujadas
Will Holtz2014-08-25 10:59avital2014-09-04 10:27 Foreign key to assay.AssayList TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
I am creating a module with a table that I would like to contain a foreign key to assay.AssayList. I can manually create a list within Labkey that contains such a foreign key, but haven't been able to figure out how to create such a table from within my module. Assay.AssayList appears to be a query and not an actual table in the database, and this seems to be at the crux of my issue.

I have tried creating the table in my sql with:
CONSTRAINT FK_MyTable_AssayList FOREIGN KEY (Assay) REFERENCES exp.protocol(RowId)
This gets me the foreign key in the database, but when I go to the schema browser in Labkey, the 'lookup' column is not populated for the Assay field. When I have made other foreign keys between the tables that I have defined in my module, adding the foreign key constraint to the sql file has been enough to populate the lookup.

I have tried adding the foreign key definition to the table meta-data via the xml schema, without any success. When including the foreign key in the xml schema, I have tried all of the follow schema/table name pairings: assay/AssayList, exp/Protocol and exp/Protocols.

Thanks in advance for your help!
Leo Dashevskiy2014-09-05 14:01avital2014-09-09 13:31 An inconsisten behavior of LABKEY.Query.getSchemas() - a bug? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Good afternoon, folks!


Steps to reproduce:

1) Take an empty LABKEY subfolder, verify that under the 'assay' schema there are no sub-schemas

2) Execute first the following:
LABKEY.Query.getSchemas({ apiVersion: '9.3', schemaName: 'assay.ExpressionMatrix', success: function(d){ console.log( d ); } });

The result is an empty object:

Object {}


3) Then execute the following:
LABKEY.Query.getSchemas({ apiVersion: '9.3', schemaName: 'assay.ExpressionMatrix.matrix', success: function(d){ console.log( d ); } });

This results in an error, more specifically a 'null pointer exception'


So I say, step 2) should error out with a meaningful message (sub-schema not found) and so should 3).


For an example of this sub-schema existing, those who are authorized, can check out:
https://www.immunespace.org/query/Studies/SDY269/begin.view?

Thanks.
-Leo
nicyon2014-05-06 02:11avital2014-12-04 08:57 JavaScript SelectRows wait for end request TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hello,

I am currently working with the labkey javascript API, and am facing some problems. From what I understood from the labkey documentation, the requests are asynchronous, meaning that if a function calls, for instance a LABKEY.Query.selectRows, it won't wait the query is finished to exit the function.

So my question is, how can I make sure it waits the query is finished ?

Thank you very much in advance, hoping I have been clear enough

[EDIT]

So I think I may have found a problem to the solution, by using a multi request. The only problem, is when I try to execute my code, it tells me : "uncaught exception: You must specify a schemaName!". I dont't understand what I am doing wrong, since I have followed the documentation. This is how I created a config :

var config={
    schemaName : "study",
    queryName : "qName",
    containerPath : "container",
    requiredVersion: '13.2',
    success : function onSuccess(data){
                [...]
    },
    failure : function onFailure(err){
        alert(err.exception);
    }
};

And I simply build a new multi request as shown in the documentation :

var multiR = new LABKEY.MultiRequest();

and added

multiR.add(LABKEY.Query.selectRows, config);

What am I doing wrong ?

Thanks again in advance for all your help

[/EDIT]
bront@kcr.uky.edu2014-12-16 07:30avital2014-12-18 13:25 PSQLException: This ResultSet is closed TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
hi,

I am seeing a repeated error on our development machine. It's happening about every minute or so.

ERROR Table 2014-12-16 10:21:58,540 DavCrawler : doFinally
org.postgresql.util.PSQLException: This ResultSet is closed.
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2852)
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getStatement(AbstractJdbc2ResultSet.java:623)
    at org.labkey.api.data.Table.doClose(Table.java:563)
    at org.labkey.api.data.JdbcCommand.close(JdbcCommand.java:62)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:269)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:109)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:156)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:140)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:135)
    at org.labkey.search.model.SavePaths.getPaths(SavePaths.java:308)
    at org.labkey.search.model.DavCrawler.findSomeWork(DavCrawler.java:529)
    at org.labkey.search.model.DavCrawler$1.run(DavCrawler.java:496)

We're running LabKey 14.3

Product Name    PostgreSQL
Product Version    9.3.5
JDBC Driver Name    PostgreSQL Native Driver
JDBC Driver Version    PostgreSQL 9.3 JDBC4.1 (build 1102)

Any ideas?

thanks,

bront
atul sharma2017-06-19 06:56atul sharma2017-06-23 04:35 Insert into Database from wiki page TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Dear Friend,

I want to insert data of my form into database which is connected to labkey.

(I have created a table in postgresql and now want to insert data into that table)

Is there any possibility to do it on wiki page?

If not with Query API.

Do I write a script to get the connection of database and then make an insert call?

I tried with LABKEY.Query.insertRows(config) it says forbidden.(I think it is read only)
Please help.

Regards
Atul
aschwin.vanderwoude@btk.fi2007-03-16 09:03aschwin.vanderwoude@btk.fi2007-03-19 07:27 CPAS Linux install failure after custom build TEXT_WITH_LINKSClosedadam9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

It seems I bumped into another problem. :-(
Altough the debian build succeeded, I couldn't find a directory or file that resembled the cpas binary package that is distributed on the cpas website. As I wanted to follow the install instruction found from the cpas website.

Therefore I looked through the ant targets and found dist_standard, dist_cpas and two others. Trying to run these resulted in a complaint of a missing installer/build.xml file.
Fortunately I found this directory from the svn repository, and after downloading it, I happily tried to continue building a binary package.
Unfortunately, it failed with the following error:

---- start error ----
installer-withjre:

BUILD FAILED
/root/CPAS1.7-5431-src/modules/build.xml:1029: The following error occurred while executing this line:
/root/CPAS1.7-5431-src/modules/build.xml:1011: The following error occurred while executing this line:
/root/CPAS1.7-5431-src/installer/build.xml:20: The following error occurred while executing this line:
/root/CPAS1.7-5431-src/installer/build.xml:52: Execute failed: java.io.IOException: java.io.IOException: /root/CPAS1.7-5431-src/installer/nsis/makensis.exe: cannot execute
---- end error ----

Apparently it tries to execute a windows binary, and 'file' happily tells me it is.

---- shell output ----
# file ../installer/nsis/makensis.exe
../installer/nsis/makensis.exe: MS-DOS executable PE for MS Windows (console) Intel 80386 32-bit
---- end shell output ----

As it was seemingly a console app, I tried to run it with wine, which worked and gave a me a nice help text. So I renamed the exe file and created a shell wrapper to execute the binary with any arguments using wine.
For some reason argument parsing got messed up and the build fails once more.

What I wonder is whether makensis.exe is really needed, as you explained in a previous posts that others have succeeded in building cpas on Linux.

I did also find the target 'bin-tarball' in the installer/build.xml file and I did end up with a binary package after retrieving the sampledata directory from svn. But the created binary package seemed incomplete as some files where reported to be missing when running cpas under Tomcat. After manually copying the files to the reported location, I got tomcat so far as to tell me the cpas application was running.
But when accessing the cpas uri, it produced the exception at the end of my post.

Once again, I hope you will be able to provide me with some hints on how to resolve this installation problem. If needed I can provide more information about my setup, but I also refer to my previous post for some of those details.

Thanks in advance for any pointers,

-Aschwin


An error has occurred:
javax.servlet.error.exception :

java.lang.NullPointerException
       at org.fhcrc.cpas.data.PropertyManager.getSiteConfigProperties(PropertyManager.java:110)
       at org.fhcrc.cpas.util.AppProps.lookupStringValue(AppProps.java:127)
       at org.fhcrc.cpas.util.AppProps.lookupIntValue(AppProps.java:115)
       at org.fhcrc.cpas.util.AppProps.getMemoryUsageDumpInterval(AppProps.java:335)
       at org.fhcrc.cpas.util.MemTracker.logMemoryUsage(MemTracker.java:106)
       at org.fhcrc.cpas.view.ViewServlet.service(ViewServlet.java:69)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.fhcrc.cpas.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:124)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.fhcrc.cpas.module.ModuleLoader.doFilter(ModuleLoader.java:834)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.fhcrc.cpas.security.AuthFilter.doFilter(AuthFilter.java:82)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       at java.lang.Thread.run(Thread.java:595)


request attributes
javax.servlet.forward.request_uri = /cpas/admin/startupFailure.view
javax.servlet.forward.context_path = /cpas
javax.servlet.forward.servlet_path = /admin/startupFailure.view
javax.servlet.forward.path_info = /error.gm
javax.servlet.error.servlet_name = ViewServlet
javax.servlet.error.message =
javax.servlet.error.exception = java.lang.NullPointerException
javax.servlet.error.request_uri = /cpas/admin/startupFailure.view
javax.servlet.error.status_code = 500

core schema database configuration
Server URL jdbc:postgresql://localhost/cpas
Product Name PostgreSQL
Product Version 7.4.16
Driver Name PostgreSQL Native Driver
Driver Version PostgreSQL 8.1 JDBC3 with SSL (build 407)
aschwin.vanderwoude@btk.fi2007-03-20 05:45aschwin.vanderwoude@btk.fi2007-03-30 00:44 Directory naming mistake (build system bug report) TEXT_WITH_LINKSClosedadam9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

I didn't see a way to create a new issue, but I found a tiny little problem that is easily fixed.

When building the tarball I get the following error, which occurs both in version 2.0 and 1.7

--- Error ----
bin-tarball:

BUILD FAILED
/root/CPAS2.0-beta/release2.0/server/installer/build.xml:108: /root/CPAS2.0-beta/release2.0/build/labkeyWebApp/explodedWar not found.
--- Error ----

The directory labkeyWebApp doesn't exist, but 'labkeyWebapp' does exist. I solved it by create a symlink, so both names would resolve properly.

I suppose it can also be fixed in the proper build.xml file, but I didn't look into that.

-Aschwin
Andy Straw2015-06-28 13:26Andy Straw2015-06-29 05:45 Updating existing Assay Runs and Results via Java Client API TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
JavaDoc for SaveAssayBatchCommand says it can update an existing batch and existing run(s) if the rowId of the corresponding objects are provided. I want to clarify what is possible here.

Can I update an existing Run's properties by using the UpdateRowsCommand on the Runs table, or must I use the SaveAssayBatchCommand?

Can I update an existing Result's properties by using the UpdateRowsCommand on the Data table, or must I use the SaveAssayBatchCommand?

Can I add/remove a result to/from an existing Run by using the InsertRowsCommand/DeleteRowsCommand on the Data table, or must I use the SaveAssayBatchCommand, or is this not possible without deleting and re-inserting the whole Run (and its Results) via the SaveBatchCommand?

Thanks.

Andy Straw
University of Rochester
Aleks2016-10-26 00:34Aleks2016-10-28 02:50 Possible that Editor can not modify Wiki-Parts? TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hallo Everyone,

I need to give a user the rights to edit, update and delete the content of all tables. Also if he didn't create this content. This is possible by adding the user to the Editor-Group. Unfortunately, because I have to use wiki-parts to add some extra functionality, this user can also modify the source-code of all wiki-pages.

Is it possible to give a user permissions to edit, update and delete the content of all tables also if he didn't create this content but forbid him to modify wiki-pages?

Thank you,
Aleks
jeckels2015-11-25 11:44adam2015-11-27 15:16 PATH variable update for trunk/16.1 development builds TEXT_WITH_LINKSClosed 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Earlier this month, we made an update to the version of the YUI Compressor, which is used to minify JavaScript files for deployment on production servers. This is included in the SVN distribution in the external/lib/build directory.

If you are building on a dev machine, you may get an error along the lines of "cannot find yuicompressor-2.4.8a.jar". If so, please update your PATH variable to point at the external/ant/bin directory from the enlistment that you are trying to build.

Thanks,
Josh
max diesner2020-05-25 07:38adam2020-05-25 08:26 Error on some wiki pages when trying to save new content with varying users TEXT_WITH_LINKSActive 9e077eeb-b2ab-1029-961c-79704b7a2169 2024-06-12 22:00 LabKey Support Forum
Hi,

i am a fairly new user to the Labkey enviroment. I have setup a community edition version 20.3. (updated from 19.3.) and everything works when i am editing and uploading files through my main admit account. However, when my colleagues want to edit certain wiki pages we get the following error:

Unable to save changes due to the following validation errors:
Illegal attribute 'onclick' on element <a>.

this happens when we use the "advanced editor"

When we edit the wiki page via the normal editor we just get the message "Error saving wiki".

What is interesting is that this error only pops up at certein wiki pages and not at all. When a user is given rights as "site administrator" the user can edit the page and save it. However as soon as these rights are removed and the user only has the "normal Fodler administrator" rights the problem occurs again. the user can however setup new pages without a problem. The problem only appears at some wiki pages that have been created by my account, the "Site administrator" account.

I know that is has something to do with the rights managment or with the creation of these certain pages but i am lacking the knowledge on how to check where the error comes from.

Looking forward to here from you guys, you are doing an awesome job!

P.S.: The Server is runing on a virtual server, win server 2019 with 8 gig ram. Server version is 20.3. with an updated java 14.0.1+7, tomcat 9.0.26.
Jon (LabKey DevOps)2015-06-04 16:14Jon (LabKey DevOps)2018-11-16 23:23XML url problemXML url problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

So if you're trying to have the URL build dynamically based on values, the only conceivable way to do this is for you to create an intermediate redirect page, which will take the URL parameters provided and converts them into the full URL you want and then redirects the user to that page.

Regards,

Jon
Jon (LabKey DevOps)2019-07-11 21:17Jon (LabKey DevOps)2019-07-11 21:17XML Schema error on manual entry of dataset with NUMERIC datatypeXML Schema error on manual entry of dataset with NUMERIC datatype TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Georgia,

We're going to need some more details here.

What version of LabKey is this problem happening on? Was this dataset created within the UI or was it created through another means, like via a module?

The problem you're describing is not something I'm able to reproduce locally in a dataset with a Number (Double) for the field type when it comes to individual entries.

Looking at the error, that datatype appears to be incorrect. If the field is supposed to be using a decimal point, the XML schema should not be called "decimal", but "double" instead, so something like:

        <ns:RangeURI>http://www.w3.org/2001/XMLSchema#double</ns:RangeURI>

Regards,

Jon
jeckels2014-04-10 10:42Jon (LabKey DevOps)2018-11-16 23:23XML DatabseXML Databse TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tim,

I'm not aware of anyone at LabKey working in that area. It's possible that others in the community might be working in this area - hopefully they'll reply here if they are.

I did a quick look and didn't see any JDBC drivers that might allow for easy connectivity with our existing SqlDialect approach that lets us plug in new relational databases.

What sort of integration or functionality are you interested in with these databases?

Thanks,
Josh
Tim Cook2014-04-10 12:26Jon (LabKey DevOps)2018-11-16 23:24XML DatabseXML Databse TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks for the prompt response.

We are looking to use R to analyze clinical information systems data stored in XML.
The thought was that LabKey could serve as an interface layer. However, we are also looking at using the XML module (libxslt2) to build a direct interface to eXist-db and MarkLogic.

I always like to reuse open source to avoid reinventing the wheel when possible. :-)

Cheers,
Tim
jeckels2014-04-10 13:34Jon (LabKey DevOps)2018-11-16 23:23XML DatabseXML Databse TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tim,

Thanks for the info. We don't have a direct solution for that. We'd be happy to put together a proposal for integrating with an XML database, but it sounds like another approach like libxslt2 would likely be a better fit.

Thanks,
Josh
alanv2012-12-31 10:11Jon (LabKey DevOps)2018-11-16 23:24X-axis labels with LABKEY.vis.PlotX-axis labels with LABKEY.vis.Plot TEXT_WITH_LINKSClosed     LabKey Support Forum
Currently there is no mechanism to draw the axis labels vertically, or to control the angle at all. This is an issue that has come up before, and we are looking for ways to solve it. One problem with using large vertical tick marks is that they bleed into the x-axis label and have a larger chance of getting cut off.

I would suggest if possible, only plotting every other tick mark, which you could achieve by using the tickFormat parameter on the x-axis scale. You would have to figure out all of the ticks you want to display first and store them in an object so you can check to see if it's a tick that you want to display or not.

Hopefully that can help you. If not let me know and I'll see if there's anything else we can do.

Thanks,
Alan
tstellin@scharp.org2013-01-02 13:51Jon (LabKey DevOps)2018-11-16 23:24X-axis labels with LABKEY.vis.PlotX-axis labels with LABKEY.vis.Plot TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, sounds good.

Thanks for the idea about skipping ticks; I'll run it by the project's stakeholders.

Thanks!
-Tobin
jeckels2008-01-25 09:29Jon (LabKey DevOps)2018-11-16 23:24XAR format for ver. 2.3XAR format for ver. 2.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
Good question. Yes, there was a small change to allow XARs that don't have any StartingInputDefinitions or ExperimentRuns, which means that you can now use XARs to exchange just protocols by themselves.

I just posted the latest XSD at:

https://www.labkey.org/download/XarSchema/V2.3/expTypes.xsd

Thanks,
Josh
Jon (LabKey DevOps)2015-05-14 17:00Jon (LabKey DevOps)2018-11-16 23:24Write to a file in Java moduleWrite to a file in Java module TEXT_WITH_LINKSClosed     LabKey Support Forum
Matthew Bellew2014-07-14 11:40Jon (LabKey DevOps)2018-11-16 23:24Wrap an apache application?Wrap an apache application? TEXT_WITH_LINKSClosed     LabKey Support Forum
That's a pretty interesting question. This isn't actually an answer, but this is where I would start.

1) Google for "servlet proxy" to find an existing implementation of a proxy servlet, either from Apache/Tomcat or a 3rd party.
2) Install and configure the servlet in your LabKey webapp and test (ignoring security)
3) If that works, modify/wrap the servlet to handle any LabKey specific requirements (e.g. security and/or container mapping)

This might be a good example for the community.

Matt
Ben Bimber2014-07-14 11:59Jon (LabKey DevOps)2018-11-16 23:24Wrap an apache application?Wrap an apache application? TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks, that's a helpful start.
Anthony Corbett2014-07-14 13:13Jon (LabKey DevOps)2018-11-16 23:23Wrap an apache application?Wrap an apache application? TEXT_WITH_LINKSClosed     LabKey Support Forum
I've never set this up myself, but here are some ideas:

From the JBrowse Configuration Guide, it looks like the default index.html page that comes with JBrowse can be embedded in an iframe: http://gmod.org/wiki/JBrowse_Configuration_Guide#Embedded_mode

<div style="width: 400px; margin: 0 auto;">
  <iframe style="border: 1px solid black" src="../../index.html?data=sample_data/json/volvox&tracklist=0&nav=0&overview=0&tracks=DNA%2CExampleFeatures%2CNameTest%2CMotifs%2CAlignments%2CGenes%2CReadingFrame%2CCDS%2CTranscript%2CClones%2CEST" width="300" height="300">
  </iframe>
</div>


This would give you control of JBrowse through the query string parameters of the iframe's source URL; see http://gmod.org/wiki/JBrowse_Configuration_Guide#Controlling_JBrowse_with_the_URL_Query_String

Thus, you could create a file based module with a html view with this iframe embedded in it and all the code/queries you need to create the correct query parameters. It maybe possible to also use file-based tasks and sequences to run the perl scripts for formatting feature data and to generate pre-rendered image tracks.


The other thing is how you "push out" to JBrowse, or in other words, where is JBrowse being hosted? Here are 2 options:

One way is to have JBrowse on a completely different host from the host serving the Labkey web application (though you may or may not need to worry about cross-orgin configuration http://gmod.org/wiki/JBrowse_Configuration_Guide#Cross-origin_resource_sharing_.28CORS.29:_showing_data_on_multiple_servers)

Or, as in my group's case, if you already have Apache in front of Tomcat you might be able to use mod_rewrite/mod_alias to provide rules to serve JBrowse from the same virtual host under a different URL path than labkey; e.g. reverse proxy labkey runing at myinstance.org/labkey and then configure the virtual host to serve JBrowse at myinstance.org/jbrowse. see http://httpd.apache.org/docs/2.2/urlmapping.html By reusing the same virtual host allows you to set the iframe's src URL to src="/jbrowse/index.html?data..." and the browser will automatically insert the current domain/host.

As for authentication, JBrowse can use cookie authentication (see http://gmod.org/wiki/JBrowse_Configuration_Guide#Authentication_and_Access_Control). It might be possible to have a page in labkey set a session cookie before rendering the JBrowse in the iframe. Again, I'm not sure if modern browsers allow this type of interaction and it probably isn't the safest way to do authentication in general.

-
Anthony Corbett
alanv2013-02-05 11:15Jon (LabKey DevOps)2018-11-16 23:24would you use LK's timeline if you were making a new project today?would you use LK's timeline if you were making a new project today? TEXT_WITH_LINKSClosed     LabKey Support Forum
There are projects actively using this. It was designed to allow you to overlay events for participants on a time line as well as data from datasets. It does have a bit of an API but it's not one we officially support, and I am not familiar with it. If this style chart fits your needs exactly then it probably wouldn't hurt to use, however, if you need something a bit more custom I would consider using something else, such as our new vis library. You could also possibly use our time charts, but I'm not sure what exactly your use case is.
Matthew Bellew2013-02-05 11:25Jon (LabKey DevOps)2018-11-16 23:24would you use LK's timeline if you were making a new project today?would you use LK's timeline if you were making a new project today? TEXT_WITH_LINKSClosed     LabKey Support Forum
The underlying library seems pretty stable, but tricky to customize. The hardest part was undoing their script dependency loading. It would be nice to use the resource dependency scheme you implemented.

If I were to re-implement this today, I think I would still use the same library for the main timeline. However, I probably would have integrated with the new LabKey charting package for the line charts (which wasn't an option at the time).

Let me know if you find a different package that does the same thing.

Matt
Matthew Bellew2013-02-05 11:29Jon (LabKey DevOps)2018-11-16 23:23would you use LK's timeline if you were making a new project today?would you use LK's timeline if you were making a new project today? TEXT_WITH_LINKSClosed     LabKey Support Forum
PS you can request a login to https://www.itntrialshare.org/ and check out their participant views to see examples.
dennisw2013-03-12 08:40Jon (LabKey DevOps)2018-11-16 23:24would you use LK's timeline if you were making a new project today?would you use LK's timeline if you were making a new project today? TEXT_WITH_LINKSClosed     LabKey Support Forum
As Matthew said, we still use it for some of our studies and it works well. The only thing I can add is that the Simile timeline does allow to have the time bands working on different but connected scales, which for instance allows one band to have days and another band to have months, and they stay synched as you scroll. Visually this is very appealing and data-wise you could see the benefit if you had a lot of events in a short time span. We've never implemented that functionality, but it's worth mentioning. http://www.simile-widgets.org/timeline/ shows a demo timeline with different time scales for different bands.
Ben Bimber2013-03-12 08:41Jon (LabKey DevOps)2018-11-16 23:24would you use LK's timeline if you were making a new project today?would you use LK's timeline if you were making a new project today? TEXT_WITH_LINKSClosed     LabKey Support Forum
Dennis,

Thanks for the reply. Do you have a sense on the largest amount of data (#of records) you tend to show in a single timeline?
dennisw2013-03-12 09:03Jon (LabKey DevOps)2018-11-16 23:24would you use LK's timeline if you were making a new project today?would you use LK's timeline if you were making a new project today? TEXT_WITH_LINKSClosed     LabKey Support Forum
I just looked at the two queries filtered for one of the participants with a well-filled timeline. So, there are two queries for that participant's timeline which each come back with 376 rows, 3 and 4 data columns respectively (4 and 5 if you count the ptid column). In our case that timeline is shown in a psuedo-tabbed ext panel set, so there is maybe a 20 second load that the user wouldn't notice unless they quickly jumped to the timeline tab as soon as the page loaded. We've been pretty happy with the performance and clarity of it, and the fact that it can be nested inside ext components and still work well.
Ben Bimber2013-03-12 09:10Jon (LabKey DevOps)2018-11-16 23:23would you use LK's timeline if you were making a new project today?would you use LK's timeline if you were making a new project today? TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks.
jeckels2010-01-14 15:46Jon (LabKey DevOps)2018-11-16 23:23won't load fastawon't load fasta TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

From the log output it looks like the server has decided not to load the FASTA because it's already loaded the same file. I suspect there's a problem loading the modification data from the file but it's hard to tell - can you include the full stack trace from the error?

Thanks,
Josh
wnels2@uky.edu2010-01-15 07:39Jon (LabKey DevOps)2018-11-16 23:24won't load fastawon't load fasta TEXT_WITH_LINKSClosed     LabKey Support Forum
I got confused because I thought they were the same error. It makes sense now.
Thanks,
Bill
adam2014-06-19 13:37Jon (LabKey DevOps)2018-11-16 23:24WIKI Page with TOC and SearchWIKI Page with TOC and Search TEXT_WITH_LINKSClosed     LabKey Support Forum
You can embed the Wiki Table Of Contents and Search webparts into any wiki (or message) that uses HTML format using our substitution syntax. As an example, create an HTML wiki with this source:

  ${labkey.webPart(partName='Wiki Table of Contents', showFrame='false')}
  ${labkey.webPart(partName='Wiki TOC', showFrame='false')}
  ${labkey.webPart(partName='Search', showFrame='false', location='right', includeSubFolders='false')}

https://www.labkey.org/wiki/home/Documentation/page.view?name=include

You can also use the LABKEY.WebPart() client API to dynamically AJAX webparts into an HTML page:

  <div id='tocDiv'/><br/>
  <div id='searchDiv'/>
  <script type="text/javascript">
    var tocRenderer = new LABKEY.WebPart({
        partName: 'Wiki TOC',
        renderTo: 'tocDiv'
        })
    tocRenderer .render();

    var tocRenderer = new LABKEY.WebPart({
        partName: 'Search',
        renderTo: 'searchDiv'
        })
    tocRenderer .render();
  </script>

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.WebPart.html

Adam
Jon (LabKey DevOps)2016-10-16 19:46Jon (LabKey DevOps)2018-11-16 23:24Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

If you go through your stack trace error, you'll see clearly that it mentions the Java heap space is mentioned:

Caused by: java.lang.OutOfMemoryError: Java heap space
C:\LabKey16.1-42836.12-src\server\build.xml:2040: The following error occurred while executing this line:
C:\LabKey16.1-42836.12-src\server\build.xml:1346: java.lang.OutOfMemoryError: Java heap space

You will need to increase the amount of memory for Java to use for Ant to create the artifacts from the source code.

Please refer to this link on StackOverflow for more details: http://stackoverflow.com/questions/36330540/increase-memory-for-ant

Regards,

Jon
wit2wit2016-10-20 18:55Jon (LabKey DevOps)2018-11-16 23:24Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
According to the http://StackOverflow.com/questions/36330540/increase-memory-for-Ant. "Set ANT_OPTS=-Xmx2G-XX:MaxPermSize=512m"should be placed where?

Thanks
wit2wit2016-10-26 22:40Jon (LabKey DevOps)2018-11-16 23:24Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Can you build Labkey successful environment requirements?

Thanks
Jon (LabKey DevOps)2016-10-26 22:48Jon (LabKey DevOps)2018-11-16 23:24Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

I am sorry, but we really need more details from you in order to better help you. We are not able to properly assist you through single sentence responses, especially for something as complicated as development issues/questions.

The more details you can provide us with what you're looking for, the more effective our answer will be and it will be delivered in a more timely manner.

Please provide a more detailed description of your issue/needs and we will do our best to answer them. We will not be able to help you otherwise.

Regards,

Jon
wit2wit2016-10-28 22:33Jon (LabKey DevOps)2018-11-16 23:24Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
I adjusted the the Build File Properties options "Maxinum heap size(Mb) 1024 Maxinum stack size(Mb) 20".the "Java.lang.OutOfMemoryError:Java heap space error" goes away.Please help me diagnosis the remaining errors.

Thanks
Jon (LabKey DevOps)2016-10-29 00:48Jon (LabKey DevOps)2018-11-16 23:24Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

There are a lot of errors in your logs and it looks like most of them are due to configuration problems.

Have you gone through our "Set up a Development Machine" documentation?

https://www.labkey.org/home/Documentation/wiki-page.view?name=build

Also, what type of IDE are you using here? Are you using IntelliJ or something else?

One of the distinct things is that noticeable is that you are running this on a Windows machine and it also appears that you're not pulling from our SVN repository since the file paths you have listed look like they're downloaded bits that contain source files rather than the code being pulled down from our SVN repository.

For example:

C:\LabKey16.1-42836.12-src\server\build.xml:507: The file C:\LabKey16.1-42836.12-src\server/config.properties does not exist. Please choose a database platform by running 'ant pick_pg' or 'ant pick_mssql'

Did you make sure you had setup all of the appropriate .properties files for your instance before you tried to run an "ant build"? Did you run an "ant pick_pg" to get a PostgreSQL configuration chosen or an "ant pick_mssql" to get an MS SQL configuration chosen for the LabKey instance after setting up the .properties files as mentioned in our development docs that I mentioned earlier?

Regards,

Jon
wit2wit2016-11-29 23:02Jon (LabKey DevOps)2018-11-16 23:23Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
I successfully build .. /build/deploy/modules. But an error is up and running.

Thanks
Jon (LabKey DevOps)2016-11-30 00:25Jon (LabKey DevOps)2018-11-16 23:24Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Did you look at the error message? It indicates that the Core module couldn't be found and indicates that you need to make sure the Tomcat user can create directories under the <LABKEY_HOME>/modules directory.

Did you read through my last response and go through our Setup A Development Machine documentation?

https://www.labkey.org/home/Documentation/wiki-page.view?name=build

In order to help you, we need more details from you and we need you to answer the questions we've asked. Otherwise, we are not going to be able to assist you further due to the lack of information.

Regards,

Jon
wit2wit2016-12-07 00:57Jon (LabKey DevOps)2018-11-16 23:23Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
I checked Labkey-errors and found the "Line31inXMLdocumentfromURL[file:/C:/LabKey16.1-42836.12-src/build/deploy/modules/adjudication/config/module.xml]isinvalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 31; columnNumber: 45; Invalid byte 2 of 2-byte UTF-8 sequence."
I found that there are many differences my build and LabKey16.2-45209.14-community-bin of adjudication module.xml. See annex. Please help me to find out the cause of the error.

thanks
Jon (LabKey DevOps)2016-12-07 15:17Jon (LabKey DevOps)2018-11-16 23:23Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Doing a diff between the Adjudication module and the Announcement module is not recommended since they're both designed to do completely different things.

Looking over your error, it looks like you have characters that are not appearing as UTF-8 characters. What version of Tomcat are you running? Depending on the version of Tomcat you have, you might need to do some URIEncoding.

Regards,

Jon
wit2wit2016-12-09 21:32Jon (LabKey DevOps)2018-11-16 23:23Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
My Tomcat is 8.0.33. the server.xml see annex. I think is the module.xml could not be resolved.

Thanks
Jon (LabKey DevOps)2016-12-15 22:50Jon (LabKey DevOps)2018-11-16 23:24Why build Labkey but the ./build/deploy/modules is empty?Why build Labkey but the ./build/deploy/modules is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Did you read the error and check the module.xml file? It clearly states:

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 31 in XML document from URL [file:/C:/LabKey16.1-42836.12-src/build/deploy/modules/adjudication/config/module.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 31; columnNumber: 43; Invalid byte 1 of 1-byte UTF-8 sequence.

I couldn't open that module.xml file directly and had to use a vim editor to view it and found this on line 31:

         <property name="buildTime" value="Ê®¶þÔ 7 2016, 2:52 ÏÂÎç"/>

That isn't a valid build time value, not when the header of the module.xml file is set to use UTF-8:

         <?xml version="1.0" encoding="UTF-8"?>

That buildTime should look more like this:

        <property name="buildTime" value="December 8 2016, 1:33 PM"/>

Can you make changes to it so the date field looks normal and readable?

Regards,

Jon
Leo Dashevskiy2014-07-03 11:36Leo Dashevskiy2014-07-03 11:36While importing FlowJo workspaces, Labkey server gives the following errorsWhile importing FlowJo workspaces, Labkey server gives the following errors TEXT_WITH_LINKSClosed     LabKey Support Forum
No longer relevant.
kevink2013-07-19 20:50Jon (LabKey DevOps)2018-11-16 23:24While importing FlowJo workspaces, Labkey server gives the following errorsWhile importing FlowJo workspaces, Labkey server gives the following errors TEXT_WITH_LINKSClosed     LabKey Support Forum
I'll contact you directly to see if we can debug the issue.
kevink2008-04-10 09:58Jon (LabKey DevOps)2018-11-16 23:24Where to Place FTP FolderWhere to Place FTP Folder TEXT_WITH_LINKSClosed     LabKey Support Forum
There are some detailed instructions on how to set up the FTP server on linux here:
https://www.labkey.org/wiki/home/Documentation/page.view?name=configFTPLinux

If you are Windows, the same steps should apply. Let me know if that doesn't work for you.

Thanks,
Kevin
Matthew Bellew2012-04-19 18:07Jon (LabKey DevOps)2018-11-16 23:24Where should applet files be placedWhere should applet files be placed TEXT_WITH_LINKSClosed     LabKey Support Forum
Putting a jar in <tomcat_home>/server/lib makes it accessible to the code running on the server. It does not make it visible as a file to the user. Long term you may want to consider making a file-based module to put your applet in (see https://www.labkey.org/wiki/home/Documentation/page.view?name=simpleModules).

For short term, you might copy the file to the 'files' area in your home project.

* Go to the menu item "/Admin/Go to Modules/FileConent"
* Upload your jar file
* Select the file you uploaded
* the URL is shown in the details area it will look something like

   {my server}/_webdav/labkey/home/%40files/JavaTreeView.jar

Hope that helps,
Matt
pdogra@stanford.edu2012-04-27 15:37Jon (LabKey DevOps)2018-11-16 23:23Where should applet files be placedWhere should applet files be placed TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Matt! It worked!
Leo Dashevskiy2012-04-26 14:09Leo Dashevskiy2012-04-26 14:09Where/how to change the default name "Begin" of a custom webpart/module.Where/how to change the default name "Begin" of a custom webpart/module. TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, so after both pieces of advice above did not work for me, I had to extensively grep through the source code and here is the correct solution that currently worked out for me:

one needs to create a file, called "begin.view.xml" in the "views" folder, alongside your *.webpart.xml (does not seem to matter, what goes in place of the asterisk, does not have to be necessarily -begin-) and begin.html files.

The above mentioned file should contain the following in it:

<view xmlns="http://labkey.org/data/xml/view" title="YOUR TITLE GOES HERE">
</view>

Cheers.
-Leo
kevink2012-04-06 22:21Jon (LabKey DevOps)2018-11-16 23:23Where/how to change the default name "Begin" of a custom webpart/module.Where/how to change the default name "Begin" of a custom webpart/module. TEXT_WITH_LINKSClosed     LabKey Support Forum
For each html view, the webpart.xml config file should be named using the same prefix as the view file. So for the "begin.html" view, try renaming your webpart config file to "begin.webpart.xml" instead to see if the title is picked up.
dennisw2012-04-11 07:52Jon (LabKey DevOps)2018-11-16 23:23Where/how to change the default name "Begin" of a custom webpart/module.Where/how to change the default name "Begin" of a custom webpart/module. TEXT_WITH_LINKSClosed     LabKey Support Forum
In your <modulename>.webpart.xml you have there add the title so it reads:

<webpart xmlns="http://labkey.org/data/xml/webpart" title="Your title here"><view name="begin"/></webpart>

should work.

We were seeing that it didn't show up right away once the title was added (cached maybe?). We did ours with the standard layout as shown in Labkey docs and it works great.
Will Holtz2015-01-23 17:27Will Holtz2015-01-23 17:27When used with parameterized query, PIVOT requires an explicit values listWhen used with parameterized query, PIVOT requires an explicit values list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

I just wanted to let you know that I finally got around to implementing your suggestion. I was able to generate the reduced column view with dynamically generated SQL statements.

Thanks!
-Will
jeckels2014-12-30 11:11Jon (LabKey DevOps)2018-11-16 23:23When used with parameterized query, PIVOT requires an explicit values listWhen used with parameterized query, PIVOT requires an explicit values list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I don't think there are any available options within the current LabKey SQL implementation. You could potentially dynamically generate a custom version of the SQL, with an explicit list of molecule values in the IN clause, based on a separate request to get the molecules used for that specific run. You can then pass that SQL to LABKEY.Query.executeSql(), or LABKEY.QueryWebPart using the "sql" config property.

Thanks,
Josh
Will Holtz2014-12-30 14:55Jon (LabKey DevOps)2018-11-16 23:23When used with parameterized query, PIVOT requires an explicit values listWhen used with parameterized query, PIVOT requires an explicit values list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks for the suggestions about generating the SQL on the fly. I will give it a try.

-Will
trent2011-09-27 20:00trent2011-10-05 20:32Whats Up With the Date FilterWhats Up With the Date Filter TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh - i didn't think of the time component. *facepalm. Thanks.

Hmm.. so I created a list with two fields: date, var

inserted 3 rows:

2011-05-01,gg
2011-05-01,hh
2011-05-02,gg

So we probably just need to make sure when displaying this data to create a query that casts it first. Otherwise the user will be coming in trying to filter and not getting any results
Matthew Bellew2011-09-27 19:49Jon (LabKey DevOps)2018-11-16 23:24Whats Up With the Date FilterWhats Up With the Date Filter TEXT_WITH_LINKSClosed     LabKey Support Forum
I think there are two questions here (SQL and url filtering), but I think the confusion has the same source. LabKey currently only supports a DateTime type, so most all stored data has a time component whether or not the default formatting shows date and time or just date.

So in the GROUP BY case, it's possible that the data is not grouping together because the time components are different. Try

  SELECT CAST(date as SQL_DATE), count(*)
  FROM ...
  GROUP BY CAST(date as SQL_DATE)

For the filtering dates in the url (~dateeq rather than ~eq) we do some trickyness so that

  X~dateeq=2011-09-13

becomes
  X BETWEEN 2011-09-13T00:00:00 and 2001-09-14T00:00:00
  (24 hours on that day)

rather than
  X = 20011-09-12T00:00:00
  (exact time match)
jeckels2011-05-26 09:37Jon (LabKey DevOps)2018-11-16 23:24whats the right postgres datatype for a file?whats the right postgres datatype for a file? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

There's no direct conversion that's possible in this case. Lists have specialized code to deal with files, and there's no equivalent client API or generic UI that will work over a hard table defined in a file-based module. You could potentially use a VARCHAR column to store the path to the file, but you'd need to separately manage the upload using WebDav or some other mechanism. Would it be possible to keep this table as a list?

Thanks,
Josh
Ben Bimber2011-05-26 10:08Jon (LabKey DevOps)2018-11-16 23:24whats the right postgres datatype for a file?whats the right postgres datatype for a file? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

a secondary reason is b/c lists arent really very portable or version-controllable.

i think the second best approach is an integer column that's a lookup to exp.datas. the user would need to drop the files first in a files webpart, then add a record to this table, picking the filename from the drop-down menu.
slangley@scharp.org2015-01-14 11:17slangley@scharp.org2015-01-14 11:17What's the plan for supporting IE11 and above?What's the plan for supporting IE11 and above? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh. I appreciate that.

Talking with the other guys, the issues we saw in 14.3 were fixable via CSS. We didn't get to everything, just what was the most problematic.

This was one of the more informative pages I found regarding the changes in IE 11:

http://www.julien-manici.com/blog/important-compatibility-changes-in-IE11-on-Windows-8-1/

Scott
jeckels2015-01-08 08:59Jon (LabKey DevOps)2018-11-16 23:23What's the plan for supporting IE11 and above?What's the plan for supporting IE11 and above? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

We've been looking at ExtJS 5 and expect to adopt it, but there's no specific timeframe yet. As you probably already know, we have a mix of ExtJS 3 and 4 in use in the core codebase, and both are still available for other modules to use. In the meantime, you can always add ExtJS 5 or other JavaScript libraries within your own modules (though you'd want to be sure to use a "sandbox" to avoid namespace collisions).

Separately, we are committed to supporting IE 11. We have made some fixes since it was released in 2013 to improve our support. If you're aware of current problems with IE 11 support, please let us know!

Thanks,
Josh
slangley@scharp.org2015-01-08 10:43Jon (LabKey DevOps)2018-11-16 23:23What's the plan for supporting IE11 and above?What's the plan for supporting IE11 and above? TEXT_WITH_LINKSClosed     LabKey Support Forum
My issues were fixed with CSS changes. I can ask the other developers what they've encountered. I seem to remember hearing about other types of issues.

Have you tried adding the workaround suggested here to here Ext JS patches?

http://stackoverflow.com/questions/21881671/ext-isie-return-false-in-ie-11
jeckels2015-01-08 14:37Jon (LabKey DevOps)2018-11-16 23:24What's the plan for supporting IE11 and above?What's the plan for supporting IE11 and above? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

I've opened an issue to make sure that we do something for the ExtJS IE detection code:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=22272

Thanks,
Josh
jeckels2015-01-14 11:05jeckels2015-01-14 11:05What's the plan for supporting IE11 and above?What's the plan for supporting IE11 and above? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

We've committed the ExtJS patch. Right now it's in the trunk, meaning it will be part of 15.1. If there are specific cases under 14.3 that would be improved with this, please let us know and we can backport if needed.

Thanks,
Josh
Matthew Bellew2011-09-07 20:05Jon (LabKey DevOps)2018-11-16 23:23Whats the Accepted Way to Load External Scripts/Style?Whats the Accepted Way to Load External Scripts/Style? TEXT_WITH_LINKSClosed     LabKey Support Forum
The third one is a bad idea, since files in the labkeyWebapp may get overwritten when you upgrade. But don't despair there are even more options:

create a directory called extraWebapp next to labkeyWebap and put the file there.

Or...

create a mini-module and put your css file in the webapp directory.

I'd recommend the /home/@files method, or if you already have a mini-module that you're installing on your servers, put it in there. There's a big advantage to having the file path not change between say development and production machines.
adam2011-09-07 21:02Jon (LabKey DevOps)2018-11-16 23:23Whats the Accepted Way to Load External Scripts/Style?Whats the Accepted Way to Load External Scripts/Style? TEXT_WITH_LINKSClosed     LabKey Support Forum
Another option for stylesheets (but not other resources) is to simply attach one via the admin ui. You can attach different custom stylesheets to each project (project settings -> resources tab) and/or to the site as a whole (admin console -> look and feel settings -> resources tab). The stylesheet is saved in the database, making it available on dev / test / staging servers that use a snapshot of the primary database.

Adam
Matthew Bellew2011-02-24 08:32Jon (LabKey DevOps)2018-11-16 23:24what's ontology/concepts designed to do?what's ontology/concepts designed to do? TEXT_WITH_LINKSClosed     LabKey Support Forum
This code is designed to allow importing an UMLS ontology subset. This feature is not, however, hooked up to the rest of the product. So the link you found is really a test page at the moment.

If the feature were complete, it would allow you to import an ontology and then associate field definition with ontology concepts (heart rate, weight, etc), and perhaps define fields whose values are limited to some set of concepts (medicines).
Ben Bimber2011-02-24 08:41Jon (LabKey DevOps)2018-11-16 23:23what's ontology/concepts designed to do?what's ontology/concepts designed to do? TEXT_WITH_LINKSClosed     LabKey Support Forum
got it. so essentially you're saying that if a field is some arbitrary table is defined as the concept 'heart rate', then it would inherit behaviors potentially including allowable values, ranges, display attributes, etc? basically like inheriting a shared property descriptor / field metadata?

does UMLS define any of this more advanced stuff, or does it just define the attributes (ie. datatype and synonyms) that I see in the example on that page?

is this a project that's actively being developed for 11.1?
Matthew Bellew2011-02-24 08:59Jon (LabKey DevOps)2018-11-16 23:23what's ontology/concepts designed to do?what's ontology/concepts designed to do? TEXT_WITH_LINKSClosed     LabKey Support Forum
UMLS is huge. It is basically a compendium of other ontologies where the metadata had been unified (the ontology's ontology?). It has snomed, mesh, ncithesaurus, and the kitchen sink. This is nice because it let's me deal with one data format, and let's the user subset the ontologies he wants.

In my investigation, it's sometimes is hard to directly go from a concept, say "medicine" to a set of values, say legal medicine codes. However, I think that is something that could perhaps be layered on top without too much pain.

However, this work is not under active development.
Ben Bimber2011-02-24 09:10Jon (LabKey DevOps)2018-11-16 23:23what's ontology/concepts designed to do?what's ontology/concepts designed to do? TEXT_WITH_LINKSClosed     LabKey Support Forum
alright. i'm at least superficially familiar with UMLS. i'm deeply skeptical that things like going from the concept of "medicine" or even 'medications' to a truly useful subset of terms is ever really going to do anything terribly meaningful from such a huge meta-database like that, or even if you start from 'smaller' subsets like SNOMED only. I get the ease of a single format, but if it's not retaining any sort of hierachy or relationship between terms then it seems you're losing a primary point of having such a thing. seems to me that the power of this vocabulary comes when it can be used for intelligent search/filtering - and you need more than just synonyms to do that right. i'm be a little worried you're getting this giant list of terms without any good way to use it.

if it's not being worked on, then this can be picked up at some future time though.
Leo Dashevskiy2013-07-11 12:44Leo Dashevskiy2013-07-11 12:44What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
After changing the table definition, so that it now has a one-column primary key, everything works!
Ben Bimber2013-07-03 13:07Jon (LabKey DevOps)2018-11-16 23:23What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

If you're talking about the tables exposed via LabKey, then it should work out of the box. You will need to call commit() on the store to actually save your changes. I believe there is an auto-commit option in the sotre config, but you'd need to check the docs.
Leo Dashevskiy2013-07-03 13:32Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, Ben, thanks. I see commitChanges(), but no commit(). I tried also using save(), but that did not work.
commitChanges() though at least reacts, but does throw an error at the moment about the primary key column not being unique...
Ben Bimber2013-07-03 13:36Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
yes, sorry - the method's name is commitChanges():

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ext.Store.html

that error seems to suggest it's working. i think the next thing to investigate is what you're trying to save. are you doing an insert or update?
Leo Dashevskiy2013-07-03 14:21Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
I am trying to do an update, but it looks like it's doing an insert instead...

I have an EditorGridPanel, its data being driven by a Labkey's store.
I double click a cell and modify its contents, click else where, the editor goes away and the cell is marked as 'dirty'/modified with a small red rectangle in the top left corner, then I have a button and its handler calls the commitChanges() on that store...

Could not save changes due to the following error:
ERROR: duplicate key value violates unique constraint "pk_qatasklist"
  Detail: Key (qaid, container)=(1, d200e809-e4ad-102f-b2d1-1f5d89162b6e) already exists.

I see there is a config option 'editable' for LABKEY.ext.EditorGridPanel - I am currently using the Ext.grid.EditorGridPanel, would using the Labkey one provide additional benefits, does it play nicer with the Labkey's store?

To partially answer my own question about the benefits of Labkey's EditorGridPanel - immediate benefit is that it seems to offer paging out-of-the-box (though, I am getting some other errors with it)
Leo Dashevskiy2013-07-03 14:47Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
So for that first use case of mine the error was 400.

I tried it elsewhere and the error I get there is 401: unauthorized (but I'm a server admin!) - how can I resolve this one?

Thanks.
-Leo
jeckels2013-07-03 14:50Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

What schema/query are you trying to update? Can you make edits to that data through the standard LabKey UI?

Thanks,
Josh
Leo Dashevskiy2013-07-03 15:05Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey, Josh, I am able to go into the Schema Browser, navigate to my custom schema, then to my custom table, click 'view data', then 'edit' for a row, then change out one of the column values and then click 'submit' to make the changes.

But with the API:

User does not have permission to perform this operation

Could not save changes due to the following error:
Unauthorized

Any ideas?
Leo Dashevskiy2013-07-03 15:27Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
In addition, I stumbled across a LABKEY.user JS object:

LABKEY.user
Object {phone: null, canDelete: true, sessionid: "C9B4ABED360003B0E09310F952F17044", isSystemAdmin: true, id: 1002…}
canDelete: true
canDeleteOwn: true
canInsert: true
canUpdate: true
canUpdateOwn: true
displayName: "ldashevs@fhcrc.org"
email: "ldashevs@fhcrc.org"
id: 1002
isAdmin: true
isGuest: false
isSystemAdmin: true
phone: null
sessionid: "C9B4ABED360003B0E09310F952F17044"
__proto__: Object
Leo Dashevskiy2013-07-08 15:57Jon (LabKey DevOps)2018-11-16 23:23What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Does it matter, if the source of my query is 'built-in query/table' or a custom one, which does not necessarily reference all of the columns and is not necessarily driven by data from just one table...


So here is the info from "Request payload":

{"commands":[{"schemaName":"opencyto_preprocessing","queryName":"GatingSet","command":"insertWithKeys","rows":[{"values":{"Id":1,"Name":"test","Path":"/home/ldashevs/Labkey/flowFiles/HVTN080/@files/assay/0880-M-080/6edd36458d6da212026ec7676b76e6f8","Description":"description","EntityId":"d200e809-e4ad-102f-b2d1-1f5d89162b6e","Created":"2013-07-03T21:16:36.000Z","container":"d200e809-e4ad-102f-b2d1-1f5d89162b6e"},"oldKeys":{"undefined":"ext-record-2"}}]}]}

I see that the command here is not 'update', but 'insert' and I already have this row with that key present in the table, is that a problem?

Also, I see a field called 'oldKeys', but it does not seem to contain anything meaningful, is that a problem?

Thanks.
-Leo
Leo Dashevskiy2013-07-08 16:35Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
So I managed to make it so that the 'command' is now 'updateChangingKeys':

{"commands":[{"schemaName":"opencyto_preprocessing","queryName":"GatingSet","command":"updateChangingKeys","rows":[{"values":{"Id":1,"Name":"test","Path":"/home/ldashevs/Labkey/flowFiles/HVTN080/@files/assay/0880-M-080/6edd36458d6da212026ec7676b76e6f8","Description":"description","EntityId":"d200e809-e4ad-102f-b2d1-1f5d89162b6e","Created":"2013-07-03T21:16:36.000Z","container":"d200e809-e4ad-102f-b2d1-1f5d89162b6e"},"oldKeys":{"undefined":"ext-record-2"}}]}]}

Though, before calling commitChanges() on the store I had to manually go through the modified records and set their .phantom values to false:

                        new Ext.Button({
                            //disabled: true,
                            handler: function(){
                                var records = strGatingSet.getModifiedRecords();
                                Ext.each( records, function(record){
                                    record.phantom = false;
                                });
                                strGatingSet.commitChanges();
                            },
                            text: 'Update'
                        })

Still this gives my 'unathorized' 401 error.
What is there to do? Please, help!
jeckels2013-07-08 16:46Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

In one of your followups, you asked about updating a custom query. That's not supported - while some simple queries may map one-to-one with rows in a source table, most do not, and there's no way for us to know for sure if it would work. So, all custom queries are effectively read-only and you'll need to fire update/insert/delete requests against the "real" table.

Does that explain what's happening in this case?

Thanks,
Josh
Leo Dashevskiy2013-07-08 17:36Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Is there a live example up somewhere of either LABKEY.ext.EditorGridPanel or Ext.grid.EditorGridPanel working with a Labkey's store?
Leo Dashevskiy2013-07-08 18:06Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh, yeah, that makes more sense, I was wondering, how you would be able to update not-one-to-one mappings... it would be difficult if not impossible...

So I am now using the built-in query/table as the source for the store, and still I have to do the trick above with setting .phantom to false, so that not 'insert' is fired, but 'update', but now I get an error:

Could not save changes due to the following error:
Value for key field 'gsid' was null or not supplied!

where 'gsid' is the required primary key (along with the container).

I am not sure, where/how am I supposed to supply it...
Leo Dashevskiy2013-07-09 12:06Jon (LabKey DevOps)2018-11-16 23:23What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Here is the new

Request Payload:

{"commands":[{"schemaName":"opencyto_preprocessing","queryName":"gstbl","command":"updateChangingKeys","rows":[{"values":{"container":"bc1fd7f4-8817-1030-8a76-1f5d8916d162","gsid":2,"gsname":"1023","objlink":"/home/ldashevs/Labkey/flowFiles/RV144/@files/XML files/16875f96ef0cf8fe0bc327be33594f5f","gsdescription":"1023 desc","xmlpath":"/home/ldashevs/Labkey/flowFiles/RV144/@files/XML files/RV144 Batch 1023.xml","samplegroup":"1023 Samples","created":"2013-07-03T22:04:12.000Z"},"oldKeys":{"undefined":"ext-record-141"}}]}]}

and it does have the 'gsid' in it.

Anyone?
Leo Dashevskiy2013-07-09 14:19Jon (LabKey DevOps)2018-11-16 23:24What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
So the exception comes up because of this 'oldKeys' data being sent. Naturally, its value being: {"undefined":"ext-record-141"} does not quite look right.

This value comes from this line of LABKEY.ext.Store:

getOldKeys : function(record) {
        var oldKeys = {};
        oldKeys[this.reader.meta.id] = record.id;
        return oldKeys;
    }

I do not have this.reader.meta.id and the record.id does not have anything meaningful in it...


this.reader.meta

Object {title: "gstbl", totalProperty: "rowCount", importTemplates: Array[1], root: "rows", description: "↵ The 'gsTbl' table contains information about generated gating sets.↵ "…}
description: "↵ The 'gsTbl' table contains information about generated gating sets.↵ "
fields: Array[8]
importMessage: null
importTemplates: Array[1]
root: "rows"
title: "gstbl"
totalProperty: "rowCount"
__proto__: Object


record

sb {phantom: false, id: "ext-record-3", data: Object, json: Object, store: LABKEY.ext.Store.Ext.extend.constructor…}
data: Object
dirty: true
id: "ext-record-3"
json: Object
modified: Object
phantom: false
saveOperationInProgress: true
store: LABKEY.ext.Store.Ext.extend.constructor
__proto__: F


So what needs to be done here, guys? Anybody?
Leo Dashevskiy2013-07-09 17:03Jon (LabKey DevOps)2018-11-16 23:23What should be used for the writer config of a LABKEY.ext.Store (Ext3 version)What should be used for the writer config of a LABKEY.ext.Store (Ext3 version) TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks to Kevin's insight, it looks like the data base schema is such that a primary key is composed of 2 columns and this cannot be handled by Ext. Will work on refactoring that particular table in order to get this to work...
jeckels2011-04-01 14:41Jon (LabKey DevOps)2018-11-16 23:24what setting dictates whether a pipeline can have two simultaneous jobs?what setting dictates whether a pipeline can have two simultaneous jobs? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

There are different default numbers for simultaneous jobs depends on the machine. The web server defaults to one at a time. A remote server defaults to 4 at a time. If needed, we can help craft up an alternate Mule (the workflow engine we're using) XML configuration file to do something different.

Thanks,
Josh
Leo Dashevskiy2015-10-29 13:24Leo Dashevskiy2015-10-29 13:24What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM]What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Thanks for catching the ":cv" part - that was it, it's now working even without restarting the server; I originally had "cv"s all over the place, but search-and-replace left this one stray one, and it took your fresh look from the outside to see it.

Got you about the .query.xml file - removed it.

You even simplified the first RegEx bug, that's great.

Regarding the 2nd one, even if it's by design, I say, it's a poor design. It's not just the delete X option that's missing, but also the edit icon (as you properly noted in the bug report itself); it doesn't show up right away, unless you
1) add another RegEx
2) toggle the Required check-box or
3) click on a different field and then come back to the first one

Imagine you're coming back there just to tweak the one RegEx you have, you have to jump through some hoops to do it...
Jon (LabKey DevOps)2015-10-27 15:49Jon (LabKey DevOps)2018-11-16 23:24What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM]What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Can you give us some more details as to what you're looking to do?

When you say "unique values for a certain field", are you asking that someone can only insert in a single unique value that is not already in use (like a unique primary key) or are you asking if someone can only insert a preset series of values?

Regards,

Jon
Leo Dashevskiy2015-10-28 11:00Jon (LabKey DevOps)2018-11-16 23:24What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM]What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I'd like to hear if there is a way to only allow enumeration (insert a preset series of values), though this was not my intent.

I am after exactly the "primary key" restriction (insert something only if not already present), except a primary key already exists, so this is more like the UNIQUE keyword in traditional SQL.

FYI: PK is an integer and the field I'd like to have the UNIQUE constraint on is a string.

Thanks.
-Leo
Jon (LabKey DevOps)2015-10-28 13:07Jon (LabKey DevOps)2018-11-16 23:24What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM]What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

If you need to have one column with a preset series of values, you could do the following:

1. Create another list
1a. Rename the Primary Key to what you'd like the field to be called
1b. Select the Primary Key Type as String.
1c. Click Create List
2. Add the preset values you want in that list under that one single column
3. Create another list and add a lookup to that first list, enable the validation lookup and make it required.

The new list will lookup the other one and only give the end-user a specific preset number of options to use for the one column based on the other list.

With regard to trying to have a behavior similar to the primary key restriction on another column, this functionality is unfortunately not available in lists as-is from what I can see. However, you could create a Trigger Script module to where it will only allow you to insert new rows provided the value isn't being used. This would only work on individually inserted records though and not when you import data via a copy/paste of TSV data.

https://www.labkey.org/wiki/home/Documentation/page.view?name=serverSideValidation

The trigger script would have to use the beforeInsert(row, errors) function to trigger just before the insert was attempted. Then, it would have to read the row.FIELD you were inputting and perform an IF/ELSE statement where IF the value of the field you're inputting equals to any of the existing values in that same field, generate an error; else insert the new record.

Regards,

Jon
Leo Dashevskiy2015-10-28 15:36Jon (LabKey DevOps)2018-11-16 23:23What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM]What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks, Jon. Nice approach with enumeration.

More questions on lists.
Is it possible to apply custom views to them?
Like how it's described here: https://www.labkey.org/wiki/home/Documentation/page.view?name=addCustomQueryView

I have a file located at <moduleName>/queries/lists/Studies/test.qview.xml with contents
<customView xmlns:cv='http://labkey.org/data/xml/queryCustomView'>
    <columns>
        <column name='name'/>
        <column name='id'/>
    </columns>
    <sorts>
        <sort column='id' descending='true'/>
    </sorts>
</customView>

The list definition contains fields named 'name' and 'id'.
Its name is "Studies".

But I'm not seeing the custom view 'test' in the drop-down for the Views.

I can apply, of course, a UI based sort to the specified column via the "Customize View" UI.

I also have a <moduleName>/queries/lists/Studies.query.xml file with contents:
<?xml version='1.0' encoding='UTF-8'?>
<query name='Studies' schemaName='lists' xmlns='http://labkey.org/data/xml/query'>
    <description>
        List all of the studies available starting with 'SDY'.
    </description>
</query>

But that description does not show up next to the list in the Query Browser, may be, it's not supported?


By the way, speaking of lists fields in particular (I haven't verified it for other cases, such as dataset definitions), I noticed 2 behaviors, which are, I felt, inconvenient/confusing to the user (they were to me at least).

1. when specifying a RegEx validator, one clicks the "Add..." button, a pop up shows up prompting to enter details, one starts to enter them, then hovers the mouse pointer over the question mark next to the "Regular Expression*" to get an idea about the flavor/syntax of the RegEx used, where one sees the "Pattern" link to the Java's class, but after clicking it, opening it in a new tab/window, the pop up with all of the information entered for the RegEx validator disappears, clicking the "Add..." button again bring up a new/empty pop-up

2. once there is a RegEx validator in place, when examining it: clicking the field, then the "Validators" tab, immediately there are no UI elements for editing/deleting the RegEx; one has to click on a different field (if one is present), then back to the field in question, then the 2 icons for editing and deleting show up. A screenshot of them not showing up is attached.
Jon (LabKey DevOps)2015-10-28 16:17Jon (LabKey DevOps)2018-11-16 23:23What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM]What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I was able to use the following XML without any issue after restarting Tomcat:

<customView xmlns="http://labkey.org/data/xml/queryCustomView">
    <columns>
        <column name="Name" />
        <column name="Number" />
    <column name="Key" />
    </columns>
    <sorts>
        <sort column="Key" descending="true"/>
    </sorts>
</customView>

This successfully came up as a View option along side the default for that specific list I was looking at. Maybe you just need to remove the :cv part and just have the equal sign instead for the first line?

Also, a .query.xml file is to be used only on tables that are being generated by .sql files and not pre-existing queries. It is explained in the following page after addCustomQueryView (https://www.labkey.org/wiki/home/Documentation/page.view?name=addSQLQuery)

"If supplied, the metadata file should have the same name as the .sql file, but with a ".query.xml" extends (e.g., PeptideCounts.query.xml) (docs: query.xsd)"

The two RegEx questions:

Regarding the first RegEx question, that is definitely a bug that is overshooting it's close function that I'll need to get filed.

Regarding the other RegEx question where the validator section where the X to delete it doesn't come up, I believe this might be function by design since the only time the option to get the X appears is when an update is going to occur on that tab. I'll submit it as a separate bug to be looked at.

Regards,

Jon
Jon (LabKey DevOps)2015-10-28 16:35Jon (LabKey DevOps)2018-11-16 23:24What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM]What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2016-02-28 20:13Jon (LabKey DevOps)2016-02-28 20:13What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM]What is the way to enforce that a user can only insert unique values for a certain field in a custom list? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Just to let you know that we were able to get this fixed in the upcoming 16.1 release of LabKey that will be available in March.

However, if you need this sooner, we did push this change to our trunk build (r42586).

Regards,

Jon
Leo Dashevskiy2012-05-21 15:47Leo Dashevskiy2012-05-21 15:47What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ?What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, Ben, good to know this.
So remoteSort (at least in the Ext's store) is defaulted to false, not sure about Labkey's (it does not seem to be mentioned anywhere otherwise) and I do not even see the remoteFilter config option anywhere :( (Neither Ext, nor Labkey docs...)

Well, the sorting bug I was having seemed to have disappeared (on its own?) even without specifying these two config options you mentioned - last week it was misbehaving... Either I am seeing such "ghosts" for the second time now or I'm going delirious (or might be some kind of caching may be...)
Leo Dashevskiy2012-05-22 10:09Leo Dashevskiy2012-05-22 10:09What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ?What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Got ya, that's good.
Ben Bimber2012-05-21 15:12Jon (LabKey DevOps)2018-11-16 23:24What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ?What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi leo,

it sounds like what you're really talking about is whether the filtering/sorting is performed on the client or the server. once the LabKey store has initially loaded, it's basically the same thing as the ArrayStore. You could create a LABKEY store and either:

1) i'm pretty sure if you just call store.filter('myField', 'value') it will perform that on the client. this isnt what you'd want 100% of the time, but perhaps some of the time. If you need to replicate more complex filters, like startswith, contains, etc then you'd just use a regex for filtering (ie. /^foo/i).

2) if you set the store's properties remoteFilter and remoteSort to false, it should sort client-side. i'm less certain how everything will behave without doing some testing, and could look into that if you like.

when we convert our API to Ext4 I'd love to see cleaner ways to handle manipulation of the store, but I think what you need is quite possible in the Ext3 store too.
Leo Dashevskiy2012-05-21 16:54Jon (LabKey DevOps)2018-11-16 23:23What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ?What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Must be caching, I swear ;)

After I removed the remoteSort config it was working for me for a little bit until recently (I thought the default is false), now looked up in the code and the default is true, no wonder, it was acting all crazy.


So some more questions about the LABKEY.ext.Store and whether it will suit my needs:
I have a need to extend the LovComboBox that has a Labkey store as the data source to include a "Select All" option, which I found an implementation of. It inserts an extra item into the store at the very beginning with this custom behavior. The question is: does Labkey store allow "local only insertion"? I mean, I absolutely do not need to modify the db data on the server.

Thanks.
Ben Bimber2012-05-21 18:40Jon (LabKey DevOps)2018-11-16 23:24What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ?What is the way to copy data from LABKEY.ext.Store to a regular Ext.data.ArrayStore ? TEXT_WITH_LINKSClosed     LabKey Support Forum
it will not save anything unless you call commitChanges() on your store. all changes are client-side only.
Leo Dashevskiy2013-03-27 14:07Leo Dashevskiy2013-03-27 14:07What is the way in JS to obtain the current project's File Root path?What is the way in JS to obtain the current project's File Root path? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Anthony!

This is useful to know - we might be working with pipelines later. Though, not now, so not sure if it will work. Meanwhile, came up with a largest common substring of the FCS files' paths approach that seems to work...

-Leo
Anthony Corbett2013-03-27 14:02Jon (LabKey DevOps)2018-11-16 23:24What is the way in JS to obtain the current project's File Root path?What is the way in JS to obtain the current project's File Root path? TEXT_WITH_LINKSClosed     LabKey Support Forum
Give LABKEY.Pipeline.getPipelineContainer() a try: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Pipeline.html#.getPipelineContainer

States that it gets the container in which the pipeline for this container is defined.

Running the following in firebug:

LABKEY.Pipeline.getPipelineContainer({
  containerPath: 'home',
  success: function(resp){ console.log(resp) },
  failure: console.log
})
    
will output a resp object that contains:

{
  containerPath: "/home",
  webDavURL: "/labkey/_webdav/home/%40files/"
}

The webDavURL property is what you might be looking for (at least you can transform that string into what you need).

Cheers,
Anthony Corbett
Leo Dashevskiy2013-11-13 18:40Leo Dashevskiy2013-11-13 18:40What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
That seems to have been it - thanks Matt!
adam2013-08-22 12:41Jon (LabKey DevOps)2018-11-16 23:23What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
We haven't written detailed documentation of the new build process yet. The goals were to restore module build consistency, ease the creation of new modules (by default, we automatically build new module directories when they appear) and improve efficiency by supporting developer-defined module manifests (instead of ever-growing hard-coded module lists).

The standard.modules file should appear in your /server directory (same place as the main build.xml). If this file doesn't exist then you'll need to fix your enlistment.

You have a few options:

- Modify your local standard.modules file to include just the path to your module. A standard "ant build" will then build only your module, none of the others.
- Create an alternate .modules file (say, "cyto.modules") and invoke "ant build -DmodulesFile=cyto.modules" to build your module
- Create a build.xml file in your module directory that defines a "build_module" target. This target should invoke sub_build_module in the main build.xml (if you want your module to ever be built by the standard build), but you can define whatever other targets you want ("build", etc.). This will restore the previous behavior. The core, query, flow, wiki, et. al modules have build.xml files that you can use as a model.

Adam
Leo Dashevskiy2013-08-22 13:35Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Adam!

I do not have as can be seen from my listing of the server folder a file called standard.modules. What do you mean by "fix your enlistment"? Where can I get it from?

Well, like I said, the 2nd way does not work for me, it does not seem to build my modules (unless having a standard.modules file is a requirement for that).

I also do not have build.xml in either flow, core, or query module folders! (WTH?)

Keep in mind that I am not on the trunk, as can be seen above...

What to do, what to do?
adam2013-08-22 14:57Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, I assumed you were talking about trunk. We haven't made any major build changes on the 13.2 release branch, so you won't see any of these new files there.

You should probably just put your build.xml file back in your module directory and debug why invoking it causes an error. When you move to 13.3, you may need to adjust your build.xml slightly, but you'll be able to continue with this approach if you're comfortable with it.

Adam
Leo Dashevskiy2013-08-23 16:12Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm now trying to build the latest trunk version: revision 28012

I'm getting an error:

...

clientapi:

api:
     [echo] Build API sources
    [javac] Compiling 1685 source files to /home/ldashevs/Labkey/release/build/modules/api/classes
    [javac] /home/ldashevs/Labkey/release/server/api/src/org/labkey/api/data/LabKeyScope.java:61: error: method does not override or implement a method from a supertype
    [javac] @Override
    [javac] ^
    [javac] /home/ldashevs/Labkey/release/server/api/src/org/labkey/api/data/LabKeyScope.java:74: error: method does not override or implement a method from a supertype
    [javac] @Override
    [javac] ^
    [javac] /home/ldashevs/Labkey/release/server/api/src/org/labkey/api/data/LabKeyScope.java:90: error: method does not override or implement a method from a supertype
    [javac] @Override
    [javac] ^
    [javac] /home/ldashevs/Labkey/release/server/api/src/org/labkey/api/data/LabKeyScope.java:112: error: method loadSchema in class DbScope cannot be applied to given types;
    [javac] DbSchema schema = super.loadSchema(schemaName);
    [javac] ^
    [javac] required: String,DbSchemaType
    [javac] found: String
    [javac] reason: actual and formal argument lists differ in length
    [javac] /home/ldashevs/Labkey/release/server/api/src/org/labkey/api/data/LabKeyScope.java:105: error: method does not override or implement a method from a supertype
    [javac] @Override
    [javac] ^
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 5 errors

BUILD FAILED
/home/ldashevs/Labkey/release/server/build.xml:1843: The following error occurred while executing this line:
/home/ldashevs/Labkey/release/server/build.xml:664: The following error occurred while executing this line:
/home/ldashevs/Labkey/release/server/build.xml:1499: The following error occurred while executing this line:
/home/ldashevs/Labkey/release/server/build.xml:756: Compile failed; see the compiler error output for details.

What is going on there?
Thanks.
adam2013-08-23 16:40Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
There's something wrong with your enlistment; that file was removed 10 days ago. Did you switch or update only part of the tree?

You'll probably have better results if you checkout the release branch and the trunk to separate folders on your machine.
Leo Dashevskiy2013-08-23 16:44Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hm, well, the folder is just called 'release' it is in fact the trunk. But I did switch back from that other branch above... Let me try and clean things up...
Leo Dashevskiy2013-08-23 19:42Jon (LabKey DevOps)2018-11-16 23:23What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, I compiled a fresh copy of the trunk fine.

1) I am having difficulties starting a debug run from IntelliJ, I get the following error:

/usr/lib/jvm/java-7-oracle/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:37362,suspend=y,server=n -ea -Xmx1G -XX:MaxPermSize=512M -Dsun.io.useCanonCaches=false -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath /usr/lib/jvm/java-7-oracle/lib/tools.jar;/usr/local/tomcat/bin/bootstrap.jar;/home/ldashevs/Labkey/idea-IU-117.117/lib/idea_rt.jar;./bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/ -Dcatalina.home=/usr/local/tomcat/ -Djava.io.tmpdir=/usr/local/tomcat/temp -Ddevmode=true -javaagent:/home/ldashevs/Labkey/idea-IU-117.117/plugins/Groovy/lib/agent/gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start
Connected to the target VM, address: '127.0.0.1:37362', transport: 'socket'
Error: Could not find or load main class org.apache.catalina.startup.Bootstrap
Disconnected from the target VM, address: '127.0.0.1:37362', transport: 'socket'

Process finished with exit code 1

(I can start the server fine by just starting tomcat, though)


2) I have 3 modules, 2 of them depend on the 3rd one. This third one installed fine, but the other two, even though the build says, that they are built and I can see before firing up the server that <labkey root>/build/deploy/modules contains the *.module files, then when I fire up the server, those *.module files get unzipped into folders, but their folder structure seems incomplete and does not contain actual files, for example, the module folder contains the following: "config lib META-INF schemas web" and 'web' and 'schemas' are empty, 'lib' has <module name>.jar file and 'config' has module.xml file, 'META-INF' contains 'MANIFEST.MF' file -- no queries, reports or views. What's going on and how to fix that?

Thanks.
Leo Dashevskiy2013-08-26 12:20Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, so regarding issue number 2:

In the <labkey home>/build/staging/modules folder I have my <module name>.module file.
In it I have besides other 'junk' a folder called 'lib' and in it I have a file called <module name>.jar and inside that archive I have all of my proper module contents!
So, somehow the contents instead of being zipped up into <module name>.module end up int <module name>.module/lib/<module name>.jar

Please, advise, if I have something misconfigured or if this is a bug of some sort?


Still, cannot resolve issue number 1.

Thanks.
jeckels2013-08-26 15:57Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

It sounds like there may be a mismatch between your module source code layout and what the build is expecting. Can you either zip or tar.gz your source module directory and post it here, or just post a recursive file listing?

Thanks,
Josh
Leo Dashevskiy2013-08-28 15:16Jon (LabKey DevOps)2018-11-16 23:23What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
~/Labkey/trunk/server/customModules ll OpenCyto* -R

THIS IS THE MODULE THAT BUILDS FINE AND HAS THE "opencyto.modules" file in it with just one line: "server/customModules/OpenCyto*"

OpenCytoPreprocessing:
total 20
-rw-rw-r-- 1 ldashevs ldashevs 143 2013-08-23 17:34 module.properties
-rw-rw-r-- 1 ldashevs ldashevs 1200 2013-08-23 17:34 module.template.xml
-rw-rw-r-- 1 ldashevs ldashevs 32 2013-08-23 17:34 opencyto.modules
-rw-rw-r-- 1 ldashevs ldashevs 141 2013-08-23 17:34 README.md
drwxrwxr-x 8 ldashevs ldashevs 4096 2013-08-23 17:34 resources

OpenCytoPreprocessing/resources:
total 24
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 config
drwxrwxr-x 5 ldashevs ldashevs 4096 2013-08-23 17:34 queries
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 reports
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 schemas
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 views
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-26 10:53 web

OpenCytoPreprocessing/resources/config:
total 4
-rw-rw-r-- 1 ldashevs ldashevs 1340 2013-08-23 17:34 module.xml

OpenCytoPreprocessing/resources/queries:
total 12
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 exp
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 flow
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 opencyto_preprocessing

OpenCytoPreprocessing/resources/queries/exp:
total 8
-rw-rw-r-- 1 ldashevs ldashevs 251 2013-08-23 17:34 Workspaces.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 162 2013-08-23 17:34 Workspaces.sql

OpenCytoPreprocessing/resources/queries/flow:
total 32
-rw-rw-r-- 1 ldashevs ldashevs 242 2013-08-23 17:34 FilePaths.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 113 2013-08-23 17:34 FilePaths.sql
-rw-rw-r-- 1 ldashevs ldashevs 230 2013-08-23 17:34 Files.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 107 2013-08-23 17:34 Files.sql
-rw-rw-r-- 1 ldashevs ldashevs 237 2013-08-23 17:34 Keyword.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 60 2013-08-23 17:34 Keyword.sql
-rw-rw-r-- 1 ldashevs ldashevs 234 2013-08-23 17:34 RootPath.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 131 2013-08-23 17:34 RootPath.sql

OpenCytoPreprocessing/resources/queries/opencyto_preprocessing:
total 16
-rw-rw-r-- 1 ldashevs ldashevs 142 2013-08-23 17:34 GatingSet.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 204 2013-08-23 17:34 GatingSet.sql
-rw-rw-r-- 1 ldashevs ldashevs 143 2013-08-23 17:34 Population.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 171 2013-08-23 17:34 Population.sql

OpenCytoPreprocessing/resources/reports:
total 4
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-27 16:03 schemas

OpenCytoPreprocessing/resources/reports/schemas:
total 28
-rw-rw-r-- 1 ldashevs ldashevs 2795 2013-08-23 17:34 Delete.R
-rw-rw-r-- 1 ldashevs ldashevs 17012 2013-08-27 16:03 OpenCytoPreprocessing.R
-rw-rw-r-- 1 ldashevs ldashevs 2243 2013-08-23 17:34 SampleGroups.R

OpenCytoPreprocessing/resources/schemas:
total 8
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 dbscripts
-rw-rw-r-- 1 ldashevs ldashevs 4074 2013-08-23 17:34 opencyto_preprocessing.xml

OpenCytoPreprocessing/resources/schemas/dbscripts:
total 4
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 postgresql

OpenCytoPreprocessing/resources/schemas/dbscripts/postgresql:
total 4
-rw-rw-r-- 1 ldashevs ldashevs 1862 2013-08-23 17:34 opencyto_preprocessing-0.00-0.01.sql

OpenCytoPreprocessing/resources/views:
total 12
-rw-rw-r-- 1 ldashevs ldashevs 2863 2013-08-23 17:34 begin.html
-rw-rw-r-- 1 ldashevs ldashevs 1540 2013-08-23 17:34 begin.view.xml
-rw-rw-r-- 1 ldashevs ldashevs 118 2013-08-23 17:34 begin.webpart.xml

OpenCytoPreprocessing/resources/web:
total 68
drwxrwxr-x 5 ldashevs ldashevs 4096 2013-08-27 12:08 OpenCyto
-rw-rw-r-- 1 ldashevs ldashevs 63220 2013-08-26 10:53 OpenCytoPreprocessing.js

OpenCytoPreprocessing/resources/web/OpenCyto:
total 80
-rw-rw-r-- 1 ldashevs ldashevs 2198 2013-08-23 17:34 CheckBoxMemory.js
-rw-rw-r-- 1 ldashevs ldashevs 4859 2013-08-23 17:34 ExtendedComboBox.js
-rw-rw-r-- 1 ldashevs ldashevs 10731 2013-08-23 17:34 ExtendedLovCombo.js
-rw-rw-r-- 1 ldashevs ldashevs 4775 2013-08-23 17:34 Ext.ux.tree.TreeFilterX.js
drwxrwxr-x 4 ldashevs ldashevs 4096 2013-08-23 17:34 FancyBox
drwxrwxr-x 6 ldashevs ldashevs 4096 2013-08-23 17:34 gridfilters
-rw-rw-r-- 1 ldashevs ldashevs 2563 2013-08-23 17:34 GridPanelHeaderResize.js
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 images
-rw-rw-r-- 1 ldashevs ldashevs 6111 2013-08-23 17:34 MsgBus.js
-rw-rw-r-- 1 ldashevs ldashevs 7091 2013-08-27 12:08 OpenCyto.css
-rw-rw-r-- 1 ldashevs ldashevs 15190 2013-08-23 17:34 OpenCyto.js

OpenCytoPreprocessing/resources/web/OpenCyto/FancyBox:
total 8
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 lib
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 source

OpenCytoPreprocessing/resources/web/OpenCyto/FancyBox/lib:
total 4
-rw-rw-r-- 1 ldashevs ldashevs 1383 2013-08-23 17:34 jquery.mousewheel-3.0.6.pack.js

OpenCytoPreprocessing/resources/web/OpenCyto/FancyBox/source:
total 80
-rw-rw-r-- 1 ldashevs ldashevs 43 2013-08-23 17:34 blank.gif
-rw-rw-r-- 1 ldashevs ldashevs 13984 2013-08-23 17:34 fancybox_loading@2x.gif
-rw-rw-r-- 1 ldashevs ldashevs 6567 2013-08-23 17:34 fancybox_loading.gif
-rw-rw-r-- 1 ldashevs ldashevs 1003 2013-08-23 17:34 fancybox_overlay.png
-rw-rw-r-- 1 ldashevs ldashevs 6553 2013-08-23 17:34 fancybox_sprite@2x.png
-rw-rw-r-- 1 ldashevs ldashevs 1362 2013-08-23 17:34 fancybox_sprite.png
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 helpers
-rw-rw-r-- 1 ldashevs ldashevs 4895 2013-08-23 17:34 jquery.fancybox.css
-rwxrwxr-x 1 ldashevs ldashevs 23135 2013-08-23 17:34 jquery.fancybox.pack.js

OpenCytoPreprocessing/resources/web/OpenCyto/FancyBox/source/helpers:
total 28
-rw-rw-r-- 1 ldashevs ldashevs 1080 2013-08-23 17:34 fancybox_buttons.png
-rw-rw-r-- 1 ldashevs ldashevs 2447 2013-08-23 17:34 jquery.fancybox-buttons.css
-rw-rw-r-- 1 ldashevs ldashevs 3041 2013-08-23 17:34 jquery.fancybox-buttons.js
-rw-rw-r-- 1 ldashevs ldashevs 5305 2013-08-23 17:34 jquery.fancybox-media.js
-rw-rw-r-- 1 ldashevs ldashevs 735 2013-08-23 17:34 jquery.fancybox-thumbs.css
-rw-rw-r-- 1 ldashevs ldashevs 3836 2013-08-23 17:34 jquery.fancybox-thumbs.js

OpenCytoPreprocessing/resources/web/OpenCyto/gridfilters:
total 40
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 css
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 filter
-rw-rw-r-- 1 ldashevs ldashevs 23908 2013-08-23 17:34 GridFilters.js
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 images
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 menu

OpenCytoPreprocessing/resources/web/OpenCyto/gridfilters/css:
total 8
-rw-rw-r-- 1 ldashevs ldashevs 1134 2013-08-23 17:34 GridFilters.css
-rw-rw-r-- 1 ldashevs ldashevs 401 2013-08-23 17:34 RangeMenu.css

OpenCytoPreprocessing/resources/web/OpenCyto/gridfilters/filter:
total 44
-rw-rw-r-- 1 ldashevs ldashevs 2988 2013-08-23 17:34 BooleanFilter.js
-rw-rw-r-- 1 ldashevs ldashevs 8947 2013-08-23 17:34 DateFilter.js
-rw-rw-r-- 1 ldashevs ldashevs 6024 2013-08-23 17:34 Filter.js
-rw-rw-r-- 1 ldashevs ldashevs 5372 2013-08-23 17:34 ListFilter.js
-rw-rw-r-- 1 ldashevs ldashevs 5524 2013-08-23 17:34 NumericFilter.js
-rw-rw-r-- 1 ldashevs ldashevs 3755 2013-08-23 17:34 StringFilter.js

OpenCytoPreprocessing/resources/web/OpenCyto/gridfilters/images:
total 48
-rw-rw-r-- 1 ldashevs ldashevs 217 2013-08-23 17:34 equals.png
-rw-rw-r-- 1 ldashevs ldashevs 659 2013-08-23 17:34 find.png
-rw-rw-r-- 1 ldashevs ldashevs 359 2013-08-23 17:34 greater_than.png
-rw-rw-r-- 1 ldashevs ldashevs 354 2013-08-23 17:34 less_than.png
-rw-rw-r-- 1 ldashevs ldashevs 13129 2013-08-23 17:34 sort_filtered_asc.gif
-rw-rw-r-- 1 ldashevs ldashevs 13131 2013-08-23 17:34 sort_filtered_desc.gif

OpenCytoPreprocessing/resources/web/OpenCyto/gridfilters/menu:
total 12
-rw-rw-r-- 1 ldashevs ldashevs 5483 2013-08-23 17:34 ListMenu.js
-rw-rw-r-- 1 ldashevs ldashevs 3513 2013-08-23 17:34 RangeMenu.js

OpenCytoPreprocessing/resources/web/OpenCyto/images:
total 20
-rw-rw-r-- 1 ldashevs ldashevs 177 2013-08-23 17:34 arrow-left.gif
-rw-rw-r-- 1 ldashevs ldashevs 180 2013-08-23 17:34 arrow-right.gif
-rw-rw-r-- 1 ldashevs ldashevs 771 2013-08-23 17:34 loading.gif
-rw-rw-r-- 1 ldashevs ldashevs 639 2013-08-23 17:34 reset.png
-rw-rw-r-- 1 ldashevs ldashevs 391 2013-08-23 17:34 scatter_plot.gif


BELOW ARE THE TWO OTHER MODULES THAT DO NOT GET BUILT PROPERLY (SEE ABOVE)

OpenCytoQualityControl:
total 16
-rw-rw-r-- 1 ldashevs ldashevs 161 2013-08-23 17:34 module.properties
-rw-rw-r-- 1 ldashevs ldashevs 1200 2013-08-23 17:34 module.template.xml
-rw-rw-r-- 1 ldashevs ldashevs 98 2013-08-23 17:34 README.md
drwxrwxr-x 8 ldashevs ldashevs 4096 2013-08-23 17:34 resources

OpenCytoQualityControl/resources:
total 24
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-26 12:37 config
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 queries
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 reports
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 schemas
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 views
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 web

OpenCytoQualityControl/resources/config:
total 4
-rw-rw-r-- 1 ldashevs ldashevs 1359 2013-08-26 12:37 module.xml

OpenCytoQualityControl/resources/queries:
total 4
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 opencyto_quality_control

OpenCytoQualityControl/resources/queries/opencyto_quality_control:
total 8
-rw-rw-r-- 1 ldashevs ldashevs 141 2013-08-23 17:34 Summary.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 296 2013-08-23 17:34 Summary.sql

OpenCytoQualityControl/resources/reports:
total 4
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 schemas

OpenCytoQualityControl/resources/reports/schemas:
total 8
-rw-rw-r-- 1 ldashevs ldashevs 3730 2013-08-23 17:34 Preprocess.R
-rw-rw-r-- 1 ldashevs ldashevs 1592 2013-08-23 17:34 QAPlot.R

OpenCytoQualityControl/resources/schemas:
total 8
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 dbscripts
-rw-rw-r-- 1 ldashevs ldashevs 3303 2013-08-23 17:34 opencyto_quality_control.xml

OpenCytoQualityControl/resources/schemas/dbscripts:
total 4
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 postgresql

OpenCytoQualityControl/resources/schemas/dbscripts/postgresql:
total 4
-rw-rw-r-- 1 ldashevs ldashevs 2430 2013-08-23 17:34 opencyto_quality_control-0.00-0.01.sql

OpenCytoQualityControl/resources/views:
total 12
-rw-rw-r-- 1 ldashevs ldashevs 3014 2013-08-23 17:34 begin.html
-rw-rw-r-- 1 ldashevs ldashevs 1478 2013-08-23 17:34 begin.view.xml
-rw-rw-r-- 1 ldashevs ldashevs 120 2013-08-23 17:34 begin.webpart.xml

OpenCytoQualityControl/resources/web:
total 24
-rw-rw-r-- 1 ldashevs ldashevs 23241 2013-08-23 17:34 OpenCytoQualityControl.js

OpenCytoVisualization:
total 20
-rw-rw-r-- 1 ldashevs ldashevs 2148 2013-08-27 15:53 build.xml
-rw-rw-r-- 1 ldashevs ldashevs 160 2013-08-23 17:34 module.properties
-rw-rw-r-- 1 ldashevs ldashevs 1200 2013-08-23 17:34 module.template.xml
-rw-rw-r-- 1 ldashevs ldashevs 190 2013-08-23 17:34 README.md
drwxrwxr-x 7 ldashevs ldashevs 4096 2013-08-23 17:34 src

OpenCytoVisualization/src:
total 20
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-27 15:53 config
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 queries
drwxrwxr-x 3 ldashevs ldashevs 4096 2013-08-23 17:34 reports
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 views
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-28 11:02 web

OpenCytoVisualization/src/config:
total 4
-rw-rw-r-- 1 ldashevs ldashevs 1348 2013-08-27 15:53 module.xml

OpenCytoVisualization/src/queries:
total 4
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-23 17:34 opencyto_preprocessing

OpenCytoVisualization/src/queries/opencyto_preprocessing:
total 32
-rw-rw-r-- 1 ldashevs ldashevs 251 2013-08-23 17:34 AnalysisFiles.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 73 2013-08-23 17:34 AnalysisFiles.sql
-rw-rw-r-- 1 ldashevs ldashevs 137 2013-08-23 17:34 Axes.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 326 2013-08-23 17:34 Axes.sql
-rw-rw-r-- 1 ldashevs ldashevs 148 2013-08-23 17:34 ParentPopulation.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 202 2013-08-23 17:34 ParentPopulation.sql
-rw-rw-r-- 1 ldashevs ldashevs 141 2013-08-23 17:34 StudyVars.query.xml
-rw-rw-r-- 1 ldashevs ldashevs 169 2013-08-23 17:34 StudyVars.sql

OpenCytoVisualization/src/reports:
total 4
drwxrwxr-x 2 ldashevs ldashevs 4096 2013-08-27 10:17 schemas

OpenCytoVisualization/src/reports/schemas:
total 12
-rw-rw-r-- 1 ldashevs ldashevs 1235 2013-08-23 17:34 Load.r
-rw-rw-r-- 1 ldashevs ldashevs 4736 2013-08-27 10:17 Plot.r

OpenCytoVisualization/src/views:
total 24
-rw-rw-r-- 1 ldashevs ldashevs 13974 2013-08-23 17:34 begin.html
-rw-rw-r-- 1 ldashevs ldashevs 1639 2013-08-23 17:34 begin.view.xml
-rw-rw-r-- 1 ldashevs ldashevs 118 2013-08-23 17:34 begin.webpart.xml

OpenCytoVisualization/src/web:
total 56
-rw-rw-r-- 1 ldashevs ldashevs 54617 2013-08-28 11:02 OpenCytoVisualization.js


Thanks!
Let me know if you still need that zipped up file attached!
Leo Dashevskiy2013-09-04 16:44Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Any ideas about this? Would an attached zipped up file with the modules help?
jeckels2013-09-05 17:58Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

How are you building these modules? I notice that OpenCytoVisualization has its own build.xml file, while the other don't.

Thanks,
Josh
Leo Dashevskiy2013-09-06 11:24Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh, well, my hope is to take care of building all of these (and future ones from our suite starting with OpenCyto...) with just that one file opencyto.modules within the OpenCytoPreprocessing module's main folder.

The build.xml within the OpenCytoVisualization module's folder is a temporary solution to deploy that module until this above mechanism is resolved for me...

Thanks.
-Leo
Leo Dashevskiy2013-09-18 14:28Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm still at a loss here, here is a tar ball with my 3 modules.

So where do I have the "mismatch between module source code layout and what the build is expecting"?

Thanks.
-Leo
Leo Dashevskiy2013-11-06 14:30Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello, I am still having issues with this.

Is it possible to point me to an example in the trunk's source code, where this is implemented already?

Thanks.
-Leo
Matthew Bellew2013-11-06 15:16Jon (LabKey DevOps)2018-11-16 23:24What is the new way to build and include custom modules on a dev machine?What is the new way to build and include custom modules on a dev machine? TEXT_WITH_LINKSClosed     LabKey Support Forum
I think the problem is that two of the modules have their files under "src" rather than "resources". This may have worked previously, but there was a change recently to be more consistent where we look for files. Note, that in that in a file-based modules where all the files are static resources, the resource directory can be flattened out. I'd probably recommend leaving it for consistency anyway.

see
https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleDirectoryStructures
Leo Dashevskiy2014-08-13 18:17Leo Dashevskiy2014-08-13 18:17What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?!What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?! TEXT_WITH_LINKSClosed     LabKey Support Forum
Got it, seems to work, thanks!
Nick Kerr2014-08-13 18:06Jon (LabKey DevOps)2018-11-16 23:24What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?!What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?! TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Yup, it's still there! Since your are running the latest/greatest I'll mention that we are moving towards more explicit requests for our Ext 3 based APIs. On the trunk this means that we no longer handout these APIs to all pages. There are a couple options for you:

a) If you don't want to change much of anything, go to 'Admin Console' -> 'Site Settings' and check the box for "Require ExtJS v3.x based Client API be loaded on each page".
b) If you want to move your views along with us, you can keep the option above unchecked and then explicitly require either "clientapi/ext3" in your view XML's or on the page you can wrap dependent code to ensure that the dependencies are loaded. For example:

LABKEY.requiresExt3ClientAPI(true, function() {
   /* Your code or callback where you are ensured the files are loaded */
}, scope);

I'd recommend the XML pattern however, so that your client-side dependencies are handled on the server.

Thanks,
Nick
Leo Dashevskiy2014-08-13 18:09Jon (LabKey DevOps)2018-11-16 23:24What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?!What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?! TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Nick!

Ok, so having a line in my view XML as such

<dependency path='Ext3'/>

is no longer sufficient?


It needs to be:

<dependency path='clientapi/ext3'/>

?
Nick Kerr2014-08-13 18:11Jon (LabKey DevOps)2018-11-16 23:24What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?!What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?! TEXT_WITH_LINKSClosed     LabKey Support Forum
Right. It might seem a bit contrived, but "Ext3" will just request the Ext 3.x library. "clientapi/ext3" will request our Ext 3 based APIs and any dependencies they have (of which "Ext3" is one).

Thanks,
Nick
Nick Kerr2014-08-13 18:14Jon (LabKey DevOps)2018-11-16 23:24What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?!What happened to the public API LABKEY.ext.Utils.resizeToViewport() ?! TEXT_WITH_LINKSClosed     LabKey Support Forum
Another note, "Ext3" has never requested our Ext 3 based APIs. We just no longer send them down to the page unless they are requested.
Leo Dashevskiy2012-05-22 19:07Leo Dashevskiy2012-05-22 19:07What exactly does it take to have jQuery enabled/working within my custom Labkey module?What exactly does it take to have jQuery enabled/working within my custom Labkey module? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks Nick! Got me started.
I've tried before on my own something similar (with LABKEY.requiesScript facilities), but was not precise, I guess, and so it did not work...
Leo Dashevskiy2012-05-23 14:02Leo Dashevskiy2012-05-23 14:02What exactly does it take to have jQuery enabled/working within my custom Labkey module?What exactly does it take to have jQuery enabled/working within my custom Labkey module? TEXT_WITH_LINKSClosed     LabKey Support Forum
Seems that I sorted out my current issues here. Or may be the issue got concealed for the future.
If there was something blatantly wrong with what I wrote previously, please, comment on it - otherwise there is no need.
Nick Kerr2012-05-22 18:58Jon (LabKey DevOps)2018-11-16 23:24What exactly does it take to have jQuery enabled/working within my custom Labkey module?What exactly does it take to have jQuery enabled/working within my custom Labkey module? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

We provide an JavaScript API for requesting additional scripts. Here is an example:

<a href="#" class="usejquery">See JQuery Run</a>
<script type="text/javascript">

    var jQueryReady = function() {

        /* Use JQuery */
        $('a.usejquery').click(function(event){
            alert('JQuery allowed this to happen.');
        });

    }

    /* Request the scripts -- you do not need to provide the Context Path */
    LABKEY.requiresScript([
        '<your module>/jQuery/development-bundle/ui/jquery.ui.core.js',
        '<your module>/jQuery/development-bundle/ui/jquery.ui.widget.js'
        // add more files to this array
    ], true, jQueryReady, this, true);

</script>

See our JavaScript documentation for more information.

Thanks,
Nick
Leo Dashevskiy2012-05-23 13:29Jon (LabKey DevOps)2018-11-16 23:24What exactly does it take to have jQuery enabled/working within my custom Labkey module?What exactly does it take to have jQuery enabled/working within my custom Labkey module? TEXT_WITH_LINKSClosed     LabKey Support Forum
So is there a difference between using

LABKEY.requiresScript( [ 'file1.js', 'file2.js' ], true, callBackFunc );

and

LABKEY.requiresScript( 'file1.js' );
LABKEY.requiresScript( 'file2.js', true, callBackFunc );

(taking into account that callBackFunc uses resources contained in file2.js)

?

Thanks.
Leo Dashevskiy2012-05-23 13:43Jon (LabKey DevOps)2018-11-16 23:23What exactly does it take to have jQuery enabled/working within my custom Labkey module?What exactly does it take to have jQuery enabled/working within my custom Labkey module? TEXT_WITH_LINKSClosed     LabKey Support Forum
On a similar note, is there a call-back for LABKEY.requiresExt4Sandbox()?

Because it seems as if Ext 4 is not finished loading and I am already using Ext4 elements within my main JS code file.

My structure is the following:

LABKEY.requiresScript('LoadLibraries.js', true, flowGraph);

flowGraph calls LABKEY.requiresScript('flowGraph.js', true, <pass the web part div into it here>) and it's 'flowGraph.js', which contains references to Ext4

Now withing 'LoadLibraries.js' I have a line: LABKEY.requiresExt4Sandbox()

Am I not doing something correctly?
(I've already had the same or similar issue in the past, but it went away or may be was well hidden)

Thanks.
Brian Connolly2010-10-14 09:17Jon (LabKey DevOps)2018-11-16 23:23what determines which user has webdav permissions?what determines which user has webdav permissions? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

You need to grant permissions to the pipeline files on the pipeline setup page (ie https://xnight.primate.wisc.edu:8443/labkey/pipeline/WNPRC/EHR/Backups/setup.view?referer=pipeline )

In the right-hand column of the page under the heading, "Pipeline Files Permissions", click on the check box titled "Share files via web site" and then select the group(s) you would like to give access too. When you are done, go to the bottom of the page and hit the Submit button on the right hand side.

Brian
slangley@scharp.org2011-07-22 15:43Jon (LabKey DevOps)2018-11-16 23:23What are the limitations on EditableGrid's with config.sql-based Store's?What are the limitations on EditableGrid's with config.sql-based Store's? TEXT_WITH_LINKSClosed     LabKey Support Forum
Actually, #2, exporting to Excel, works if I turn off Dev Mode. It fails in Dev Mode because it throws a Assertion Error:

500: Unexpected server error
Can't set maxRows when not paginated

Home Back Folder

java.lang.AssertionError: Can't set maxRows when not paginated
       at org.labkey.api.query.QuerySettings.setMaxRows(QuerySettings.java:487)
       at org.labkey.api.query.QueryView.getExcelWriter(QueryView.java:1551)
       at org.labkey.api.query.QueryView.exportToExcel(QueryView.java:1610)
       at org.labkey.api.query.QueryView.exportToExcel(QueryView.java:1595)
       at org.labkey.query.controllers.QueryController$ExportSqlAction.export(QueryController.java:2509)
       at org.labkey.query.controllers.QueryController$ExportSqlAction.export(QueryController.java:2460)
       at org.labkey.api.action.ExportAction.getView(ExportAction.java:41)
       at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:61)
       ...
kevink2011-07-22 15:48Jon (LabKey DevOps)2018-11-16 23:23What are the limitations on EditableGrid's with config.sql-based Store's?What are the limitations on EditableGrid's with config.sql-based Store's? TEXT_WITH_LINKSClosed     LabKey Support Forum
I've just fixed the 'Can't set maxRows when not paginated' bug for excel exports. It should show up in the 11.2 release.

I can't comment on the limitations of the interactive filters on the EditableGrid. We generally work better with the LABKEY.QueryWebPart grids, but of course those aren't editable.
slangley@scharp.org2011-07-22 16:21Jon (LabKey DevOps)2018-11-16 23:23What are the limitations on EditableGrid's with config.sql-based Store's?What are the limitations on EditableGrid's with config.sql-based Store's? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks.

I don't need for my grid to be editable. Can I use dynamic SQL created and submitted via JavaScript, i.e., config.sql, with a QueryWebPart grid?

If you can, I think that use is not documented.
kevink2011-07-22 16:52Jon (LabKey DevOps)2018-11-16 23:23What are the limitations on EditableGrid's with config.sql-based Store's?What are the limitations on EditableGrid's with config.sql-based Store's? TEXT_WITH_LINKSClosed     LabKey Support Forum
In 11.2, you can use a 'sql' config parameter to LABKEY.QueryWebPart to execute arbitrary sql. The documentation hasn't been added yet for this config parameter.
Karl Lum2011-07-22 16:56Jon (LabKey DevOps)2018-11-16 23:24What are the limitations on EditableGrid's with config.sql-based Store's?What are the limitations on EditableGrid's with config.sql-based Store's? TEXT_WITH_LINKSClosed     LabKey Support Forum
This was a new feature for 11.2 to support the SQL editor enhancements Nick worked on. I have a task to add the documentation for sprint 4.
slangley@scharp.org2011-07-28 11:05Jon (LabKey DevOps)2018-11-16 23:24What are the limitations on EditableGrid's with config.sql-based Store's?What are the limitations on EditableGrid's with config.sql-based Store's? TEXT_WITH_LINKSClosed     LabKey Support Forum
Looking at my LabKey debug log, a query based on a table, i.e., a LabKey.ext.Store configured via a 'queryName' uses:

  QueryServiceImpl.getSelectSQL(FilteredTable over lab.expectations_change_log)

Whereas, a query based on dynamic SQL, i.e., a LabKey.ext.Store configured via a 'sql' string uses:

  QueryServiceImpl.getSelectSQL(org.labkey.query.sql.QuerySelect$1@5d453015)

The filtering behavior seems to be centered in the FilteredTable class.

So my reading of this is that EditableGrids configured to use a LabKey.ext.Store configured with a 'sql' query string are not designed to support filtering via a column filter set via the Grid's UI.
jeckels2010-12-16 11:13Jon (LabKey DevOps)2018-11-16 23:24weird behavior from a lookupweird behavior from a lookup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

What type of query (list, dataset, custom SQL, etc) are you setting the lookup on?

Thanks,
Josh
Ben Bimber2010-12-16 11:16Jon (LabKey DevOps)2018-11-16 23:24weird behavior from a lookupweird behavior from a lookup TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

the starting query is called demographicsCurLocation, which is custom SQL. It has a column called 'room', that points to lookups.rooms, which is also custom SQL.

In other places I have successfully pointed a lookup at custom SQL (as opposed to a built-in table), so I would have expected this to work.

thanks.
Ben Bimber2015-11-18 16:39Jon (LabKey DevOps)2018-11-16 23:24Webpart with parametersWebpart with parameters TEXT_WITH_LINKSClosed     LabKey Support Forum
hi will,

yes, that's exactly what it's for. here's an example from one of our modules:

https://hedgehog.fhcrc.org/tor/stedi/trunk/externalModules/labModules/laboratory/resources/views/begin.webpart.xml

which sets up a handler from another JS file. note: if your handler depends on a JS file or something else, be sure to declare the ClientDependency on that JS file. this page calls a more complex dependency, but you can reference individual scripts too:

https://hedgehog.fhcrc.org/tor/stedi/trunk/externalModules/labModules/laboratory/resources/views/begin.view.xml

and example of the JS code that we call in LDK.Utils.customizeWebpartTitle is here:

https://hedgehog.fhcrc.org/tor/stedi/trunk/externalModules/labModules/LDK/resources/web/LDK/Utils.js

that's a real quick listing, but i'd be happy to answer other questions.

-ben
Will Holtz2015-11-18 16:58Jon (LabKey DevOps)2018-11-16 23:23Webpart with parametersWebpart with parameters TEXT_WITH_LINKSClosed     LabKey Support Forum
Awesome - that looks very helpful! Thanks Ben.

-Will
marki2010-03-18 13:56Jon (LabKey DevOps)2018-11-16 23:24webparts in menu take full screen width on safari/chrome?webparts in menu take full screen width on safari/chrome? TEXT_WITH_LINKSClosed     LabKey Support Forum
I have seen something like this, but it was with a DIV. Some browsers seem to think "<div>" always extends to the right edge of the page. Is there any chance there is a div in your webpart?

If so, you may be able to set its width explicitly or change the display style to something like style="display:inline"
Ben Bimber2010-03-18 13:57Jon (LabKey DevOps)2018-11-16 23:23webparts in menu take full screen width on safari/chrome?webparts in menu take full screen width on safari/chrome? TEXT_WITH_LINKSClosed     LabKey Support Forum
yeah, it's surrounded in a div. you're right - that could be the culprit as well. i will try that.
Jon (LabKey DevOps)2019-05-29 21:41Jon (LabKey DevOps)2019-05-29 21:41Webpart permissions per user or groupWebpart permissions per user or group TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

You should be able to leverage the Javascript API to identify the user's permissions and then choose to display an embedded webpart within a Wiki to accomplish this.

Take a look at the following docs, especially the tutorial that goes over "Step 4: Summary Report for Managers", which leverages a Security API call to determine the groups the user is apart of and then renders the report if the groups check out.

https://www.labkey.org/Documentation/wiki-page.view?name=viewApis
https://www.labkey.org/Documentation/wiki-page.view?name=javascriptTutorial
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Security.html

I recommend following the tutorial to see how it works first and you should be able to figure out how to adapt it for your specific needs.

Regards,

Jon
Leo Dashevskiy2014-12-12 09:21Leo Dashevskiy2014-12-12 09:21Web part location strictly on the right?Web part location strictly on the right? TEXT_WITH_LINKSClosed     LabKey Support Forum 
Greg Taylor2013-12-16 16:39Jon (LabKey DevOps)2018-11-16 23:24Web part location strictly on the right?Web part location strictly on the right? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,
I did a small investigation today and verified that using your source .xml file, navTree webpart entries appear in the left and right 'Add Web Part' menus as you report. Second, I ran a simple search through the source and did not find any other examples where someone has used a file based webpart that could be added strictly on the right. I have opened an issue to one of our developers at LabKey and will try to keep you posted regarding what we find.
Thanks for the feedback,
Greg
Leo Dashevskiy2014-04-24 12:53Jon (LabKey DevOps)2018-11-16 23:24Web part location strictly on the right?Web part location strictly on the right? TEXT_WITH_LINKSClosed     LabKey Support Forum
Greg Taylor, could you, please, provide the link here to the issue you opened? That way I could check its status. Thanks.
Greg Taylor2014-04-24 13:39Jon (LabKey DevOps)2018-11-16 23:24Web part location strictly on the right?Web part location strictly on the right? TEXT_WITH_LINKSClosed     LabKey Support Forum
Sure, below is the link to the developer issue:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=19219

Greg
Leo Dashevskiy2014-09-22 15:10Jon (LabKey DevOps)2018-11-16 23:24Web part location strictly on the right?Web part location strictly on the right? TEXT_WITH_LINKSClosed     LabKey Support Forum
Any news on this issue, guys?

Thanks.
-Leo
jeckels2014-09-24 09:42Jon (LabKey DevOps)2018-11-16 23:23Web part location strictly on the right?Web part location strictly on the right? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I just took a quick look at this. I've got a fix locally, and will commit to the trunk soon so that it will be part of 14.3.

Thanks,
Josh
Leo Dashevskiy2014-09-24 13:00Jon (LabKey DevOps)2018-11-16 23:24Web part location strictly on the right?Web part location strictly on the right? TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Would you, please, notify me via the issues tracker or here or directly via email, whichever way is more convenient, on the revision number, starting from which it will appear in the code.

Thanks
-Leo
adam2014-09-24 14:14Jon (LabKey DevOps)2018-11-16 23:24Web part location strictly on the right?Web part location strictly on the right? TEXT_WITH_LINKSClosed     LabKey Support Forum
Leo,

I added you to the notify list for this issue. You should be notified of all future updates.

Adam
Ben Bimber2012-11-26 17:10Jon (LabKey DevOps)2018-11-16 23:24WebPart JavaScript APIWebPart JavaScript API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

for #3, check out LABKEY.Utils.setWebpartTitle().

for #2, how would you anticipate using that?

for #1, if all you need to do is find the tables, you might be able to do something like:

Ext4.query('table[class=labkey-wp]');

to find all rendered webparts. the above is not tested, and you might need to tweak that query. I dont think that would automatically tell you any context about the webpart, such as the webpart type.

An Ext component query along the lines of what I suggest for #1 might also help identify webparts with a particular Ext component.

-Ben
slangley@scharp.org2012-11-27 11:03Jon (LabKey DevOps)2018-11-16 23:24WebPart JavaScript APIWebPart JavaScript API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Thanks for those suggestions. I think they will meet my needs for the moment.

Scott
Peter2010-01-08 13:11Jon (LabKey DevOps)2018-11-16 23:24Webpart image outputWebpart image output TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick,

Here's what works for me. I put the divs within table cells side by side. I changed the size of the graph in the R code, because the size of the image it produces seems to be the controlling factor for the space the div and surrounding table cell take up.

<table cols=2>
<tr><td ><div id="leftgraph" >left</div></td>
<td><div id="rightgraph" >right</div></td>
</tr></table>

<script type="text/javascript">
     var reportWebPart1 = new LABKEY.WebPart({
         partName: 'Report',
         renderTo: 'leftgraph',
         containerPath: '/idri',
         frame: 'title',
         partConfig: {
                     title: 'Z Avg histogram',

// reportId for an R view script from a file-based module does not have a numeric dbid.
// instead, grab the URL when looking at the graph from the grid view "Views" pull down menu. The URL will look like
// http://localhost:8080/labkey/..
// ... &IDRI%20Data.reportId=module%3AParticleSize%2Fschemas%2Fassay%2FIDRI%20Data%2FZ-Ave%20Graph.r ...
// undo the url encoding of the reportID and use it in the web part config as in the next line:

                     reportId: 'module:ParticleSize/schemas/assay/IDRI Data/Z-Ave Graph.r',
     }});
     reportWebPart1.render();

     var reportWebPart2 = new LABKEY.WebPart({
         partName: 'Report',
         renderTo: 'rightgraph',
         containerPath: '/idri',
         frame: 'title',
         partConfig: {
                     title: 'Z Avg histogram',
                     reportId: 'module:ParticleSize/schemas/assay/IDRI Data/Z-Ave Graph.r',
     }});
     reportWebPart2.render();
  </script>


thanks for using the support board, so others can find this info
Peter
Leo Dashevskiy2012-09-19 19:26Leo Dashevskiy2012-09-19 19:26Web part error, what does it mean, what is the cause?Web part error, what does it mean, what is the cause? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Kevin!

(It will be a background job in the future, I guess...)
kevink2012-09-19 18:59Jon (LabKey DevOps)2018-11-16 23:24Web part error, what does it mean, what is the cause?Web part error, what does it mean, what is the cause? TEXT_WITH_LINKSClosed     LabKey Support Forum
The 'transaction aborted' comes from the request taking longer than the default timeout. You can make the timeout longer by setting Ext.Ajax.timeout to a large value.
jeckels2011-03-31 16:16Jon (LabKey DevOps)2018-11-16 23:24webpart and csswebpart and css TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm not sure of your exact scenario, but you should be able to use CSS inside of an HTML wiki just as you could on any other HTML page.

However, if you're getting your R images via a call to LABKEY.WebPart, I can imagine it getting more complicated to control the layout as you desire.

You may be able to put your desired CSS on an enclosing element and tell the web part to render into it. Or, you might need to use the success callback to manipulate the DOM that is returned to apply the desired CSS.

If that isn't helpful or relevant, if you have a code snippet of what you're doing right now, that will help guide additional suggestions.

Thanks,
Josh
Jon (LabKey DevOps)2018-03-09 14:50Jon (LabKey DevOps)2018-11-16 23:24WebPartWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Have you taken the time to review our robust Support Documentation?

https://www.labkey.org/Documentation/wiki-page.view?name=default

Many of your questions can be answered in our docs and we even have videos to help you understand how to both use LabKey and understand the functionality:

https://www.labkey.org/Documentation/wiki-page.view?name=videos

For future, please do your best to consult our fantastic docs first before posting to the Community Forums.



Regarding your question, you can either setup multiple query webparts that will render each of your queries individually:

https://www.labkey.org/Documentation/wiki-page.view?name=addModule
https://www.labkey.org/Documentation/wiki-page.view?name=queryWebPart

Or if you actually want hyperlinks that point to the queries created in the Schema Browser, you can create a wiki webpart and copy/paste those links for those respective queries into the wiki and have that render in a Wiki Web Part or you can embed the grids into a single wiki webpart:

https://www.labkey.org/Documentation/wiki-page.view?name=wikiAdminGuide
https://www.labkey.org/Documentation/wiki-page.view?name=wikiUserGuide#embed
https://www.labkey.org/Documentation/wiki-page.view?name=include
https://www.labkey.org/Documentation/wiki-page.view?name=wikiInsertExamples

Regards,

Jon
Jon (LabKey DevOps)2019-04-26 10:36Jon (LabKey DevOps)2019-04-26 10:36WebDAV viewsWebDAV views TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Customization is limited when it comes to the FileContent browser UI.

You can configure the toolbar to not display things like the folder tree button for the user to toggle, but this would apply to everyone, not just some users:

https://www.labkey.org/Documentation/wiki-page.view?name=fileManagementAdmin

What do you mean by "the home folder in the tree"? When a user is viewing the Files Web Part or the FileContent browser, they are viewing the files that pertain to the specific container they're in. For example, if I was in a project called /MyStudy, the Files Web Part would only show me the file repository for /MyStudy and nothing else. If you were in a subfolder under /MyStudy and the path was /MyStudy/MyAssays/MySubFolder, you would still only see the File Repository under MySubFolder and also /MyStudy wouldn't have visibility into MySubFolder or even MyAssay since all of the respective repositories are siloed.

Regards,

Jon
eknelson2010-09-16 15:21Jon (LabKey DevOps)2018-11-16 23:24webdav documentationwebdav documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Sorry, this is all we have right now in the labkey.org documentation on WebDav. If this is a priority for you, I can write up example instructions for installing WebDrive as a WebDav client next week. This doc item has been lurking deep in my doc backlog, but I'd be happy to expedite it for you if it's a priority.

Thanks,
Elizabeth
Ben Bimber2010-09-16 15:23Jon (LabKey DevOps)2018-11-16 23:24webdav documentationwebdav documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
do you have any rough stuff you could pass along or maybe some pointers to sites where you would get your information? i'm interested in figuring out how to use javascript / webdav to move files.
eknelson2010-09-16 15:28Jon (LabKey DevOps)2018-11-16 23:24webdav documentationwebdav documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
The best thing to do is simply to follow the instructions provided by the webdrive client you plan to use. For example, several of us have had good luck with WebDrive: http://www.webdrive.com/

I'd planned to simply post a few screenshot of the install/setup process in the docs, but not address javascript usage. Only simple docs were planned because setup is so specific to the client you use. Let me know if it would be helpful for me to dig up further specific info for you.

-- Elizabeth
jeckels2010-09-17 10:15Jon (LabKey DevOps)2018-11-16 23:24webdav documentationwebdav documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I've looked around a few times, but only found two JavaScript libraries that implement the WebDAV protocol:

http://debris.demon.nl/projects/davclient.js/doc/README.html

http://www.webdavsystem.com/ajax

The former looks to be pretty basic (though perhaps completely sufficient), and the latter has a commercial license. I haven't tried using either of them.

You've probably found this already, but there's an RFC that describes the WebDAV protocol:

http://www.ietf.org/rfc/rfc2518.txt

It should be pretty straightforward to use Ext.Ajax to move a file using WebDAV. Check out section 8.9.5. I believe you can just set the Ext.Ajax.request() method to be "MOVE", use the WebDAV URL of the file that you want to move, and add a "Destination" header. The Host header should be automatically added for you by the browser. This is basically how the file management UI inside of LabKey manipulates files on the server, although it uses Ext.data.Connection. I'm not sure why - I think either approach should work.

Thanks,
Josh
Ben Bimber2010-09-17 10:17Jon (LabKey DevOps)2018-11-16 23:24webdav documentationwebdav documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

the latter is what i was thinking. seems like it would be pretty easy to make a generic copy/move file wrapper. i will look into this next week.
marki2010-09-17 11:45Jon (LabKey DevOps)2018-11-16 23:24webdav documentationwebdav documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
NOte that the WebdavFileSystem class in fileBrowser.js probably provides a good starting point for any javascript use of WebDav & probably should be extended for any new functionality.
Ben Bimber2010-09-20 09:20Jon (LabKey DevOps)2018-11-16 23:24webdav documentationwebdav documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
i used webdrive to mount the labkey site root on my laptop. navigating through folders seems a lot more responsive than cases where i've used webDAV shares in the past, which is a good thing.

while i think allowing users to directly interact w/ files stored in labkey in a manner comparable to the network shares they are accustomed to is going to be popular and appropriate in certain situations, another part of me also believes this has the potential to be quite dangerous.

i have a couple questions:

1. after some minimal testing, it seemed like i had the ability to make folders pretty much wherever i wanted. i am guessing that the logic works something like: if the user has write access to that labkey folder, then they can create subfolders? if that right and can/should there be restrictions on this? how does labkey react if you start creating new folders all over the place?

2. a new feature in labkey is the ability to query files using SQL (see exp.datas table). if i remember correctly, if files are altered using webDAV, labkey should be alerted and reflect these changes (ie. delete/move). is this accurate? what about metadata associated with a file? what happens to that on file move?

3. when i mounted the site root, basically every folder was visible, including those starting w/ period and '@'. is that what's supposed to happen? is there a webDAV flag such that certain directories can be made invisible? while i mounted the site root, obviously we would not do this for most cases. nonetheless, there may be instances where a user would mount one folder that has children, we potentially you'd want to hide the ability to navigate into these children.

4. are many clients allowing users to directly interact with files via webdav in a serious way?

thanks.
Brian Connolly2014-07-09 12:30Jon (LabKey DevOps)2018-11-16 23:24web API calls that only logged-in admin users can makeweb API calls that only logged-in admin users can make TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,
I am sorry to say we do not have a list of URL-accessible API calls.

The ensureLogin API is designed for use with the JavaScript API and is probably not the best API to use with python.

There are some APIs that can only be used by logged in users or users with administrator privilege, but ensureLogin is not one of those.


As you probably know LabKey does have a Python client API (see https://www.labkey.org/wiki/home/Documentation/page.view?name=python). The python client API is definitely not as fully featured as the JAVA or JavaScript APIs but it does cover a number of the basic use cases. You can download the Python API by

1. Goto http://labkey.com/download-labkey-server
2. Click on the All Downloads tab
3. Download the zip file labed "Python Client API Library (.zip)"


In addition, I have posted other sample python code, that might be of interest, at https://www.labkey.org/announcements/home/Developer/Forum/thread.view?entityId=6f6578c7-c8e6-1031-8ca1-6432661d362c&_docid=thread%3A6f6578c7-c8e6-1031-8ca1-6432661d362c


As an example, inside the python client API we execute a request by doing something like

# Create a password manager
passmanager = urllib2.HTTPPasswordMgrWithDefaultRealm()

# Add login info to the password manager
passmanager.add_password(None, mymachine, myusername, mypassword)

# Create the AuthHandler
authhandler = urllib2.HTTPBasicAuthHandler(passmanager)

# Create opener
opener = urllib2.build_opener(authhandler)

# Use the opener to fetch a URL request
myrequest = urllib2.Request(myurl, mypostdata, {'Content-Type': 'application/json'})

response = opener.open(myrequest)



I hope this helps you move forward. If I have not managed to answer your questions, please describe what you are trying to do in your python script as that will help me better understand your scenario.

Thanks,

Brian
eknelson2011-04-21 13:42Jon (LabKey DevOps)2018-11-16 23:24Way to hide wiki pages from the TOC?Way to hide wiki pages from the TOC? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Outside of a portal page (the home page of a folder), currently there is no quick way to display a wiki page without its TOC.

There is one workaround:

If you're working on a file-based module, you should be able to include an HTML page that uses LABKEY.WebPart to display a web part that shows just the wiki main text. You'd use 'Wiki' as the partName.

The relevant docs:
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.WebPart.html
https://www.labkey.org/wiki/home/Documentation/page.view?name=webPartConfig

Your question was covered in greater detail here:
https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=4964

and resulted in the opening of this tracking bug:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=11883

Thanks,
Elizabeth
jdutra2011-04-21 13:56Jon (LabKey DevOps)2018-11-16 23:24Way to hide wiki pages from the TOC?Way to hide wiki pages from the TOC? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for your help, Elizabeth, but I think there are two different issues here. The one you reference is about displaying a wiki page without the TOC next to it, correct? What I'm actually looking for is a way to have wiki pages that are not listed in the TOC, because I don't want users to access them directly (users will get to them from a link on another page).

Since I posted this, I found an issue that I think matches what I am looking for, but it seems like it may have been tabled:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=7089

Thanks,
-Jen
Ben Bimber2011-04-21 14:00Jon (LabKey DevOps)2018-11-16 23:24Way to hide wiki pages from the TOC?Way to hide wiki pages from the TOC? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi jen,

the way i do this in our site is to make a separate subfolder and put the 'private' pages there. you can embed these pages from within other wiki pages. it's very inelegant, but it should work.
jeckels2010-05-10 20:48Jon (LabKey DevOps)2018-11-16 23:23way to get source XML for query views?way to get source XML for query views? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Views that you define through the Customize View UI are stored in the database. They're not persisted in the same format as the XML files. Having an export to export to a file would be nice. I'll open a bug.

Thanks,
Josh
kevink2012-04-02 16:39Jon (LabKey DevOps)2018-11-16 23:24Wanting Another Container Filter TypeWanting Another Container Filter Type TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

I think you can achieve this by using the currentAndSubfolders filter with the project as the container path. Something like this:

    LABKEY.Query.selectRows({
        schemaName: "study",
        queryName: "StudyProperties",
        containerPath: "/VISC",
        containerFilter: LABKEY.Query.containerFilter.currentAndSubfolders,
        columns: [ "Container", "Label" ],
        success: function (data) {
            // ...
        }
    });
cnathe2017-03-06 12:33Jon (LabKey DevOps)2018-11-16 23:23Visit map access from RLabkey interfaceVisit map access from RLabkey interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, the Rlabkey library is what you are looking for. Once you have that package installed for the R version on your given server, you can use the following command to make a query to get the study.Visit information into your R Report as a new data frame:

library(Rlabkey)
visit.data = labkey.data <- labkey.selectRows(
    baseUrl=labkey.url.base,
    folderPath=labkey.url.path,
    schemaName="study",
    queryName="Visit"
)
print(visit.data)

Let me know if that doesn't work or is not the information that you were looking for.
Thanks,
Cory Nathe
gkericks2017-03-06 12:39Jon (LabKey DevOps)2018-11-16 23:24Visit map access from RLabkey interfaceVisit map access from RLabkey interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks this works great!
jdutra2011-05-20 08:46Jon (LabKey DevOps)2018-11-16 23:24View PermissionsView Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Just an update: I can also make a view available to everyone when I set it up initially. However, usually I want a view to be available only to users who have permissions on the base tables, and I still can't get that to work. I'm a site administrator, so the problem is not my permissions. Still hoping someone can help!

Thanks,
Jen
Karl Lum2011-05-20 09:19Jon (LabKey DevOps)2018-11-16 23:24View PermissionsView Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Sorry for the delayed response. Out of curiosity, what browser are you using?

thanks, Karl
jdutra2011-05-20 09:50Jon (LabKey DevOps)2018-11-16 23:24View PermissionsView Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Normally I use FF 4.01, but I tried it in IE 8 as well - no difference. I can select "default" or "explicit" on the Report and View Permissions screen, but when I hit save, nothing happens except that a "#" gets added to the URL and I get popped back up to the top of that screen.
Karl Lum2011-05-23 09:02Jon (LabKey DevOps)2018-11-16 23:24View PermissionsView Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

This looks like a bug, I have a local repro for it and have opened this issue to track it:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=12323
jdutra2011-05-23 10:40Jon (LabKey DevOps)2018-11-16 23:24View PermissionsView Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you!
daves2010-05-04 08:04Jon (LabKey DevOps)2018-11-16 23:24view or webpart: customize the URL of the title?view or webpart: customize the URL of the title? TEXT_WITH_LINKSClosed     LabKey Support Forum
I don't think we support customizing the URL on a web part title yet. On a regular view, you can override what is shown in the "nav trail" area using the LABKEY.NavTrail object (see the LabKey JavaScript API documentation).
Ben Bimber2010-05-04 08:08Jon (LabKey DevOps)2018-11-16 23:24view or webpart: customize the URL of the title?view or webpart: customize the URL of the title? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. you mean I can customize navtrails through JS on the page, not using the XML file, correct? i see the former, but not the latter in the documentation.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.NavTrail.html
daves2010-05-05 10:10Jon (LabKey DevOps)2018-11-16 23:23view or webpart: customize the URL of the title?view or webpart: customize the URL of the title? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, via JavaScript.
adam2010-04-20 08:47Jon (LabKey DevOps)2018-11-16 23:24Viable way to track page load times?Viable way to track page load times? TEXT_WITH_LINKSClosed     LabKey Support Forum
It's true the query profiler tracks only the top 1,000 queries in each of several different metrics. It might work for you to clear the statistics and then do your testing.

You should check out the "actions" page; the "details" tab shows performance information for each action. In 10.1 it tracks Java actions only, but it should be extended to HTML actions in 10.2.
Ben Bimber2010-04-20 08:52Jon (LabKey DevOps)2018-11-16 23:24Viable way to track page load times?Viable way to track page load times? TEXT_WITH_LINKSClosed     LabKey Support Forum
extending to html could be useful. if you are extending this in 10.2, will the data be exposed so it can be queried? that'd be more useful than just showing a page with the info.
adam2010-04-20 09:00Jon (LabKey DevOps)2018-11-16 23:23Viable way to track page load times?Viable way to track page load times? TEXT_WITH_LINKSClosed     LabKey Support Forum
For performance reasons, we don't store this information in the database, so we probably won't expose it to query. However, if you use the Export button (or invoke that action from script) you'll get a plain-text report; you can add the asWebPage=1 parameter to make it inline. This is what we use in our test harness to track action performance and coverage.
Ben Bimber2010-04-20 09:06Jon (LabKey DevOps)2018-11-16 23:23Viable way to track page load times?Viable way to track page load times? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. i think i will still explore the analytics idea a little since it doesnt seem all that complex to implement it. these two might complement one another.
Brian Connolly2010-04-20 09:39Jon (LabKey DevOps)2018-11-16 23:23Viable way to track page load times?Viable way to track page load times? TEXT_WITH_LINKSClosed     LabKey Support Forum
Another way that this can be done is via the Tomcat access logs. (http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html) By default the access logs do not capture "Time taken for request", but this can be easily configured (I can send you the configuration that we are using on some servers.

How this works is that for each page request to the server, the server will calculate the time take to process the request(start time=when server receives request from the browser. end time=when the server closes the network connection to the browser). There are a few things to note about using this number

1) This number is calculated from the point of view of server, so it does not include things like the time taken for the browser to render the page once it has received all the data, or images/data on the page that are coming from another website

2) A request to the server for a given page can be comprised of number of different server request; one for the page itself, another for the CSS files, etc. All of these individual requests will need to be rolled up to determine the "total request" time for your view.
  - The logic for how to rollup this information is pretty well known and available in many open-source projects (awstats is a good one)


There are many open-source and commercial solutions available that can help you calculate, manage and build reports about this information. I will send you an email and we can discuss some of the options.
Matthew Bellew2012-01-11 09:02Jon (LabKey DevOps)2018-11-16 23:24Vertical Tab PanelVertical Tab Panel TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm pretty sure we don't have a javascript version of this. It's just static markup that's wrapped around the page. see wizardTemplate.jsp
Maya Li2012-01-11 09:56Jon (LabKey DevOps)2018-11-16 23:23Vertical Tab PanelVertical Tab Panel TEXT_WITH_LINKSClosed     LabKey Support Forum
WizardTemplate.jsp doesn't seem to provide any helpful hints. Static markup will work pretty well.
Ben Bimber2012-01-11 09:59Jon (LabKey DevOps)2018-11-16 23:24Vertical Tab PanelVertical Tab Panel TEXT_WITH_LINKSClosed     LabKey Support Forum
hi maya,

matt's right that the tabs in the wizard are not ext. i think in general we'd try to avoid having something like a generic tabpanel in our API; however, i did a little looking and it seems that you might be able to use something like GroupTabPanel:

http://examples.ext.net/#/TabPanel/GroupTabPanel/Overview/

There is an Ext4 one that seems to be semi-official (although it's still called 'ux') that I would recommend exploring to see if it works.
wnels2@uky.edu2009-10-13 06:19Jon (LabKey DevOps)2018-11-16 23:24version of Mule?version of Mule? TEXT_WITH_LINKSClosed     LabKey Support Forum
I would like to know the exact version of Mule because I would like to get the source and I would like to prototype a Mule model that I hope I will be able to integrate with CPAS. When my webserver starts up the Mule banner says no version available and I couldn't find any mention of Mule in my Labkey serve credits page either. I'm guessing it's 1.3 but there is a lot of difference in the APIs so it may save me a lot of time by starting with the correct version.

Thanks,
Bill
jeckels2009-10-14 09:44Jon (LabKey DevOps)2018-11-16 23:24version of Mule?version of Mule? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

We're running Mule 1.4.4 with a few small patches. You can find the exact source that we're using here:

https://hedgehog.fhcrc.org/tor/stedi/branches/mule-patched

Thanks,
Josh
wnels2@uky.edu2009-10-14 11:47Jon (LabKey DevOps)2018-11-16 23:23version of Mule?version of Mule? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks!
adam2008-04-11 00:25Jon (LabKey DevOps)2018-11-16 23:24Version Compiibity Between Tomcat 5.0.25 and Tomcat 5.5Version Compiibity Between Tomcat 5.0.25 and Tomcat 5.5 TEXT_WITH_LINKSClosed     LabKey Support Forum
jeckels2010-11-05 10:33Jon (LabKey DevOps)2018-11-16 23:24variable number of decimalsvariable number of decimals TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We don't have support for your specific scenario right now. Underneath, we're using java.text.DecimalFormat:

http://download.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html

It doesn't have support for significant digits, and even if it did, this scenario is a tweak on the "usual" scenario of having a fixed number of significant digits.

I think your current choices are to use either 0.000 or 0.00#. The former will always include three decimal places, even for values that are > 1. The latter will omit the third decimal place for values < 1 if it's 0.

Supporting two different formats based on the value wouldn't be that difficult if this is worth prioritizing for a future release.

Thanks,
Josh
Ben Bimber2010-11-05 10:35Jon (LabKey DevOps)2018-11-16 23:23variable number of decimalsvariable number of decimals TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

i doubt this will make any sort of priority list any time soon. i suspect this may be a matter taste taste people become accustomed to; however, we shall see.
jeckels2015-05-03 17:55Jon (LabKey DevOps)2018-11-16 23:23vanilla Spring + LabKey Binary vs LabKey module developmentvanilla Spring + LabKey Binary vs LabKey module development TEXT_WITH_LINKSClosed     LabKey Support Forum
If you want your new code to be fully integrated into the LabKey Server web interface, need to run as trusted code (instead of just invoking client APIs as a particular user), or need to access underlying data, features, or services that aren't exposed via a client API, you'll need to develop as an "real" LabKey module.

You can use many libraries, JDK 8 syntax (by tweaking the build.xml to allow it), etc in a LabKey module. You can't easily use libraries that assume that they're the main entry point into the application, such as Spring Boot and others.

While we only maintain IntelliJ configuration files, other external developers do use Eclipse, and you might find this information helpful:

https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=10435

That said, there's a lot that could be done using client APIs to integrate with LabKey Server from an external web application.

So, no clear answer, but hopefully some useful info anyway.

Thanks,
Josh
bront@kcr.uky.edu2015-04-29 09:42Jon (LabKey DevOps)2018-11-16 23:23Value assignment issueValue assignment issue TEXT_WITH_LINKSClosed     LabKey Support Forum
Feifei,

I am not entirely sure, but I think you have a scope issue.

You could place the alert() within the success function:

 function onSuccess(data)
    {
        requirementId = data.rows[data.rowCount-1].Name;
        alert(requirementId);
    }

Or you could pass the requirementId to an external function:

var requirementId;
    
LABKEY.Query.selectRows({
        schemaName: 'lists',
        queryName: 'Main List',
    success: onSuccess,
    failure: onFailure
    });
    
function onSuccess(data)
    {
      requirementId = data.rows[data.rowCount-1].Name;
      tester(requirementId);
    }
    
function onFailure(errorInfo, options, responseObj)
    {
    if (errorInfo && errorInfo.exception)
      alert("Failure: " + errorInfo.exception);
    else
      alert("Failure: " + responseObj.statusText);
    }
    
alert(requirementId); // undefined

// new function
function tester(reqId) {
    console.log('requirementId' + reqId); // defined
}


I hope this might be of some help.

cheers,

bront
Ben Bimber2015-04-29 09:46Jon (LabKey DevOps)2018-11-16 23:24Value assignment issueValue assignment issue TEXT_WITH_LINKSClosed     LabKey Support Forum
I think there's also an issue of the asynchonous call. see the console output from this:


LABKEY.Query.selectRows({
            schemaName: 'lists',
            queryName: 'Main List',
        success: onSuccess
        });
     
    function onSuccess(data)
    {
        console.log('i will be called second, because the call to the server is asynchronous');
        requirementId = data.rows[data.rowCount-1].Name;
    }
     
    console.log('i will be called first, before the call to the server returns.');
    alert(requirementId);


Bront is also right that you'd have a scope problem too. His suggestion about a new function that is call is probably a good one. however, if onSuccess ends up with only 2 lines (setting the variable and then calling your new function), you might consider just putting your code there.
Ben Bimber2011-05-10 15:11Jon (LabKey DevOps)2018-11-16 23:24usual SQL error with group_concatunusual SQL error with group_concat TEXT_WITH_LINKSClosed     LabKey Support Forum
the title is supposed to be 'unusual error'. usually group_concat works just fine.
Ben Bimber2011-05-10 15:24Jon (LabKey DevOps)2018-11-16 23:23usual SQL error with group_concatunusual SQL error with group_concat TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, so that wasnt quite right, but i think I found 2 bugs:


1. the issue wasnt the group_concat itself. I had metadata that tried to give a URL to that column. the original XML was:

                    <column columnName="previousObs">
                        <columnTitle>Previous Obs</columnTitle>
                        <inputType>textarea</inputType>
                        <url>/query/executeQuery.view?schemaName=study&amp;
                            query.queryName=irregularObsById&amp;
                            query.Id~eq=${Id}
                            query.date~dateeq=${yesterday}
                        </url>
                    </column>

The column 'yesterday' is a date. apparently that is what was throwing the date-to-string error. Seems like that is a bug.



2. If i get rid of that column and just use:

                    <column columnName="previousObs">
                        <columnTitle>Previous Obs</columnTitle>
                        <inputType>textarea</inputType>
                        <url>/query/executeQuery.view?schemaName=study&amp;
                            query.queryName=irregularObsById&amp;
                            query.Id~eq=${Id}
                        </url>
                    </column>

then some cells render correctly. they render correctly so long as the group_concat isnt actually concating anything together. In other words if there was only 1 value for that Id, the field renders correctly, with a URL. if more than 1 value is returned for that Id, in which case those values would get joined, then I get the error. seems like a separate bug.
Ben Bimber2011-05-11 05:35Jon (LabKey DevOps)2018-11-16 23:24usual SQL error with group_concatunusual SQL error with group_concat TEXT_WITH_LINKSClosed     LabKey Support Forum
overnight it occurred to me that #1 is probably caused b/c i cast the field 'yesterday' as DATE, in order to do a date-only comparison. if i change that line from:

cast(TIMESTAMPADD('SQL_TSI_DAY', -1, now()) AS DATE) as yesterday,

to:

cast(cast(TIMESTAMPADD('SQL_TSI_DAY', -1, now()) AS DATE) AS TIMESTAMP) as yesterday,

that will probably work. #2 is still a problem though.
Jon (LabKey DevOps)2017-05-23 12:04Jon (LabKey DevOps)2018-11-16 23:24Using Python API to query Panorama dataUsing Python API to query Panorama data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Are you needing information on how to write the API call in Python?

Python GitHub page you referenced has examples there in the readme doc: https://github.com/LabKey/labkey-api-python/blob/master/README.md

The underlying schemas and tables/queries used with the API can be obtained by using the Schema Browser in LabKey by going to Admin > Developer Links > Schema Browser.

So for example, if you needed to run a selectRows() call via Python on a targetedms schema and the annotationsettings table, your query would look something like this:

==================
from labkey.utils import create_server_context
from labkey.query import select_rows

server_context = create_server_context(labkey_server, project_name, contextPath, use_ssl=False)

print("Create a server context")
labkey_server = 'localhost:8080'
project_name = 'MyTargetedMSProject' # Project folder name
contextPath = 'labkey'
schema = 'targetedms'
table = 'annotationsettings'

result = select_rows(server_context, schema, table)
if result is not None:
    print(result['rows'][0])
    print("select_rows: Number of rows returned: " + str(result['rowCount']))
else:
    print('select_rows: Failed to load results from ' + schema + '.' + table)
==================

Is this what you were looking for or are you looking for something else?

Regards,

Jon
marmoset2017-05-23 12:53Jon (LabKey DevOps)2017-06-27 11:37Using Python API to query Panorama dataUsing Python API to query Panorama data TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon.
I can get started now.
I might have more specific targetedMS data/schema related questions when I start using it and will reach out if needed.
Best
-Raktim
jeckels2014-02-10 17:29Jon (LabKey DevOps)2018-11-16 23:24Using Proteowizard msdata API from JavaUsing Proteowizard msdata API from Java TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Johan,

Unfortunately I don't think we captured the exact compilation steps.

We've run this successfully on a variety of Windows versions. I believe that it's also been tested on Linux but I haven't personally tried it.

We use Java 1.7, though this integration was originally developed on 1.6.

I don't believe that other related DLLs are required.

Thanks,
Josh
johan teleman2014-02-13 05:27johan teleman2014-02-13 05:27Using Proteowizard msdata API from JavaUsing Proteowizard msdata API from Java TEXT_WITH_LINKSClosed     LabKey Support Forum
This is interesting because it appears to me from your answer that the windows version and/or Java version has not been critical to LabKey's access of the API. Maybe this could possibly be related to me running windows virtually...

The next step is then to try to install LabKey server with the proteomics tools, and verify that this work here. If that is so, I *should* be able to use the LabKey-version of pwiz_swigbindings.dll and java files to access the API.

Thanks for the answer, this might just be the push in the right direction i needed.

Cheers,
Johan
Matthew Bellew2016-01-30 09:30Jon (LabKey DevOps)2018-11-16 23:23Using plotly.js within LabkeyUsing plotly.js within Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
It only takes a few lines of javascript to translate the selectrows format into another layout. This seems like a very round-about way of tackling the problem.

Also have a look at LABKEY.vis package which is loosely modeled on ggplot.

   https://www.labkey.org/files/home/Documentation/%40files/javascript-api/symbols/LABKEY.vis.Plot.html
Will Holtz2016-01-30 09:56Jon (LabKey DevOps)2018-11-16 23:24Using plotly.js within LabkeyUsing plotly.js within Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matthew,

I agree my approach is rather round-about. I will likely investigate performing the data format transformation and using plotly.js directly as a short term solution. However, my approach is advantageous for me, because I have users with experience in R who would generate plotly.R reports via Rmarkdown, but are unlikely to consider writing javascript code. I have used the LABKEY.vis package and found it a bit limited for my needs.

thanks,
-Will
Will Holtz2016-02-01 16:24Jon (LabKey DevOps)2018-11-16 23:24Using plotly.js within LabkeyUsing plotly.js within Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Today I wrote javascript code to do the data format transformations and was able to use plotly.js directly. While it did not take a lot of code, it took a while for me to get it right. Transforming the data for a simple scatter plot is easy, but plots involving grouping are more involved. The d3 library, and in particular d3.nest(), turned out to be very useful but also has a bit of a learning curve. I might post some code once I do some refactoring.

I still think the Lakbey>R report>knitr>plotly approach will be useful for opening up plotly to more users, and I plan to spend some more time looking into the knitr HTML escaping issue.

-Will
dcivello2016-04-29 15:10Jon (LabKey DevOps)2018-11-16 23:23Using plotly.js within LabkeyUsing plotly.js within Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm in exactly the same boat here, and agree that a Lakbey>R report>knitr>plotly workflow would be fantastic. Have you made any progress on the HTML issues? We do a ton of analysis delivered as markdown (on NGS data), and would love to have this functionality right within labkey where all the data lives. I've made the decision to stick with implementation in R vs. translating to using labkey's internal visualization tools because we're often plotting thousands of points, with complex grouping (also mentioned above) -- plot.ly/ggplot seems to be the trick, but can't get it working within the knitr R view. Additionally, the htmlwidgets offer some great interactivity as well, seems like there are just some hurdles to get the JS to place nicely with labkey.

I do have a way around this however, and managed to configure the wiki view to point to a shiny application vis some JS in the source tab. As long as the shiny server can see the same data as your labkey study data, they don't even need to be on the same server, and the user doesn't know the difference -- they just see the shiny application running from within labkey. That said, because the markdown documents are so portable, would be great to get some interactive functionality within the markdown document itself.

-daniel
Will Holtz2016-04-29 15:41Jon (LabKey DevOps)2018-11-16 23:23Using plotly.js within LabkeyUsing plotly.js within Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Daniel,

I have not yet had time to do further investigations into the Lakbey>R report>knitr>plotly workflow. It is still on my todo list, but I forsee it being a rather low priority for me for at least several months.

I should take another look at using shiny. My recollection was that the open source version wasn't going to meet some data security requirements I have and the paid version didn't justify the price tag for me.

-Will
Ju Yeong Kim2017-10-20 16:33Jon (LabKey DevOps)2018-11-16 23:23Using parameter in lookup columnUsing parameter in lookup column TEXT_WITH_LINKSClosed     LabKey Support Forum
error message:
```
Error on line 2: Unknown field [Demographics.participantid.groupLabel]
```
jeckels2017-10-20 16:47Jon (LabKey DevOps)2018-11-16 23:24Using parameter in lookup columnUsing parameter in lookup column TEXT_WITH_LINKSClosed     LabKey Support Forum
No. Parameters can be used in place of static strings or integers that would otherwise be embedded in the SQL, but not to swap out identifiers like table or column names.

Thanks,
Josh
kevink2012-08-29 18:48Jon (LabKey DevOps)2018-11-16 23:24Using multiple containerPaths with LABKEY.Security.getContainers()Using multiple containerPaths with LABKEY.Security.getContainers() TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, it should still work. I think you meant to use the 'container' parameter instead of the 'containerPath' parameter.
slangley@scharp.org2012-08-30 11:16Jon (LabKey DevOps)2018-11-16 23:24Using multiple containerPaths with LABKEY.Security.getContainers()Using multiple containerPaths with LABKEY.Security.getContainers() TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, that works. Thanks.

I was using the LABKEY.Security.getUserPermissions() just before that which does have a containerPath parameter and got that confused with the container parameter.

Scott
cnathe2016-01-08 12:58Jon (LabKey DevOps)2018-11-16 23:23Using LABKEY.visUsing LABKEY.vis TEXT_WITH_LINKSClosed     LabKey Support Forum
Will,
If you want to load the LABKEY Visualization related resources, you should be able to use something like the following in your .view.xml file:

<view xmlns="http://labkey.org/data/xml/view">
    <dependencies>
        <dependency path="vis"/>
    </dependencies>
</view>

-Cory
Will Holtz2016-01-08 14:27Jon (LabKey DevOps)2018-11-16 23:24Using LABKEY.visUsing LABKEY.vis TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cory,

I get an 'undefined' error when I call LABKEY.vis.Plot while using your .view.xml file. But it works with this:
<view xmlns="http://labkey.org/data/xml/view">
    <dependencies>
        <dependency path="/vis/SVGConverter.js"/>
        <dependency path="/vis/src/utils.js"/>
        <dependency path="/vis/src/geom.js"/>
        <dependency path="/vis/src/stat.js"/>
        <dependency path="/vis/src/scale.js"/>
        <dependency path="/vis/src/layer.js"/>
        <dependency path="/vis/src/internal/RaphaelRenderer.js"/>
        <dependency path="/vis/src/internal/D3Renderer.js"/>
        <dependency path="/vis/lib/d3-3.3.9.js"/>
        <dependency path="/vis/lib/raphael-min-2.1.0.js"/>
        <dependency path="/vis/src/plot.js"/>
    </dependencies>
</view>

Which is messier than I'd like...

thanks for your help,

-Will
cnathe2016-01-08 14:31Jon (LabKey DevOps)2018-11-16 23:23Using LABKEY.visUsing LABKEY.vis TEXT_WITH_LINKSClosed     LabKey Support Forum
Yeah, that is a lot messier. Can you give this a try?

<view xmlns="http://labkey.org/data/xml/view">
    <dependencies>
        <dependency path="vis/vis"/>
    </dependencies>
</view>
Will Holtz2016-01-08 14:34Jon (LabKey DevOps)2018-11-16 23:24Using LABKEY.visUsing LABKEY.vis TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes! That did the trick. Thanks!

-Will
Ben Bimber2011-06-20 14:28Jon (LabKey DevOps)2018-11-16 23:24using labkey SQL to calculate next ID in a seriesusing labkey SQL to calculate next ID in a series TEXT_WITH_LINKSClosed     LabKey Support Forum
i dont know what i was thinking with that second SQL idea. please ignore that. any insight into sorting out the character vs digit portion of a string would still be appreciated. thanks.
Ben Bimber2011-06-20 15:10Jon (LabKey DevOps)2018-11-16 23:24using labkey SQL to calculate next ID in a seriesusing labkey SQL to calculate next ID in a series TEXT_WITH_LINKSClosed     LabKey Support Forum
i didnt realize the postgres pass-through function included some regular expression functions. this seems to works ok. the purpose of the ucase() = lcase() in the WHERE clause is a proxy for whether the substring has characters or not. i'd still be curious to know if there's a better way to do that.

var sql = "
SELECT max(regexp_replace(SUBSTRING(Id, "+(prefix.length+1)+", 6), '[a-z]+', '')) as maxNumber
FROM study.Demographics
WHERE Id LIKE '" + prefix + "%' AND lcase(SUBSTRING(Id, "+(prefix.length+1)+", 6)) = ucase(SUBSTRING(Id, "+(prefix.length+1)+", 6))";
trent2011-06-21 16:48Jon (LabKey DevOps)2018-11-16 23:24using labkey SQL to calculate next ID in a seriesusing labkey SQL to calculate next ID in a series TEXT_WITH_LINKSClosed     LabKey Support Forum
Another technique I've seen to remove alpha characters;

translate(val,translate(val, '1234567890',''),'')

where val is the column containing the data.

So,

select max(translate(val,translate(val, '1234567890',''),'')) as MAX_ID
from table

Ta,
Trent
jeckels2011-06-22 18:23Jon (LabKey DevOps)2018-11-16 23:24using labkey SQL to calculate next ID in a seriesusing labkey SQL to calculate next ID in a series TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Be sure that if you're doing a MAX, you're doing it on a number and not a string. '9' > '100000'

Thanks,
Josh
Nick Kerr2016-04-26 11:31Jon (LabKey DevOps)2018-11-16 23:23Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

Thanks for the post. You'll need to do a couple things to get jQuery running:

1. Get the version of jQuery you're looking to use from their website.
2. Create a 'web' directory next to your 'views' directory and place jQuery there (e.g. ../externalModules/helloworld/web/jquery-x.xx.js).
3. Next to your helloWorld.html, create the helloWorld.view.xml (you may have already done this) adding a "dependencies" section. Here's a brief example:

<view xmlns="http://labkey.org/data/xml/view" title="Hello, World!">
      <dependencies>
            <dependency path="jquery-x.xx.js"></dependency>
      </dependencies>
</view>

Here is a more complete write-up on this topic:

https://www.labkey.org/wiki/home/Documentation/page.view?name=scriptdepend

Thanks,
Nick
diego2016-04-26 12:17Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick,

So once I have declared the dependencies in "helloWorld.view.xml"

<view xmlns="http://labkey.org/data/xml/view" title="Hello World View">
    <dependency path="../externalModules/helloworld/js/jquery-2.2.2.min.js"/>
    <dependency path="../externalModules/helloworld/js/jquery-ui-1.11.4.custom/jquery-ui.js"/>
</view>

Do I still need to declare jQuery in the Javascript below? "LABKEY.requiresScript([ .... ]);

Thanks,
Diego

############# JAVASCRIPT BELOW ###############

<script type="text/javascript">

    var jQueryReady = function() {

        /* Use JQuery */
        $('a.usejquery').click(function(event){
            alert('JQuery allowed this to happen.');
        });
           
    }

    /* Request the scripts -- you do not need to provide the Context Path */
   LABKEY.requiresScript([
        'https://code.jquery.com/jquery-2.2.3.min.js',
        'https://code.jquery.com/ui/1.11.4/jquery-ui.js'
        // add more files to this array
    ], true, jQueryReady, this, true);

</script>
Ben Bimber2016-04-26 12:40Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
FWIW, you can probably declare your dependency directly on that URL, instead of copying the JS file and distributing it w/ your module:

<dependency path="https://code.jquery.com/jquery-2.2.3.min.js"></dependency>

though i havent done that in a while.

if declaring dependencies explictly in the XML, you dont need to use LABKEY.requiresScript.

If you do want to distribute that JS file w/ your module, the path you provide is relative to the web root, not the module's root. so if you put the file in: "../externalModules/helloworld/js/jquery-2.2.2.min.js", this probably wont work. I think Nick was suggesting you place it somewhere like:

../externalModules/helloworld/web/jquery-2.2.2.min.js

in which case you'd just use the path relative to /web:

<dependency path="jquery-2.2.2.min.js"></dependency>

you could use a subfolder named after your module, which I'd argue is better practice - so modules dont clash:

../externalModules/helloworld/web/helloworld/jquery-2.2.2.min.js

which should mean:

<dependency path="helloworld/jquery-2.2.2.min.js"></dependency>
Nick Kerr2016-04-26 13:57Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Ben.

Yes, remote dependency declarations will work as well. They're briefly described at the end of the script dependency documentation. Additionally, I agree, it is good advice to use a subfolder to "namespace" your modules web folder.

Thanks,
Nick
diego2016-04-26 14:16Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick,

Have notice that if I only modify the dependencies on the "helloWorld.view.xml" the jQuery script is not called... file attached.

Also tried adding a subfolder under "web/helloworld/jquery-x.js" but to no avail. the second screenshot displays the folder structure I am using and the firebug error -> "NetworkError: 404 Not Found - http://localhost:8080/labkey/helloworld/jquery-2.2.2.min.js?161624521"

Thanks,
Diego

#################### JAVASCRIPT ###################
 // Request the scripts -- you do not need to provide the Context Path */
   LABKEY.requiresScript([
        'helloworld/jquery-2.2.2.min.js',
        'helloworld/jquery-ui-1.11.4.custom/jquery-ui.js'
        // add more files to this array
    ], true, jQueryReady, this, true
Jon (LabKey DevOps)2016-04-29 16:30Jon (LabKey DevOps)2018-11-16 23:23Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

Just curious, but does the script work if you put in the full HTTP path for those JS files?

Regards,

Jon
diego2016-04-30 09:59Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

If i do use the full http address to an external jquery site that hosts the libraries, everything works just fine! That is why i find this issue kinda weird..

Thanks,
Diego
Jon (LabKey DevOps)2016-05-10 18:33Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

I admit that I was first having issues with this when I created the module just as a regular directory structure. But once I created an actual zipped module that was within my intelliJ build, the files worked without any issue.

Can you give my module a try and see how it works on your end? I had separated the file types as well into respective directories (scripts, css, images).

Regards,

Jon
diego2016-05-11 08:10Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Do I simply drop the "helloWorld.module" zipped file into my "/usr/local/labkey/externalModules/" directory? If so after restarting tomcat, "folder management -> folder type" under "modules" list the "helloWorld" module does not show up...

Thanks,
Diego
Jon (LabKey DevOps)2016-05-11 12:46Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

No, any .module file is actually supposed to be placed in the modules directory of a standard LabKey instance, not a development one.

Also, I placed my module in the customModules folder, but placing it under externalModules is okay too as long as you have optional.modules files pointing at your externalModules directory.

I've supplied you with a zip of my module. Please drop this either under the customModules or externalModules directory and unzip it there. It should create a helloWorld director with a sub-directory of resources (with a bunch of other subdirectories under it) and the module.properties file.

Regards,

Jon
diego2016-05-11 13:34Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Dropped the "helloWorld.zip" into "/usr/local/labkey/externalModules/" -> unzipped -> restarted tomcat, was able to add helloworld module as "<Select Web Part>". The only issue is that the "js" internal libraries are not working... Also firebug is not displaying any errors when using "internal" libraries.... Does it work for you?

Thanks,
Diego


###################################
# WORKING
##################################
    LABKEY.requiresScript([
        'https://code.jquery.com/jquery-2.2.3.min.js',
        'https://code.jquery.com/ui/1.11.4/jquery-ui.js'
        // add more files to this array
    ], true, jQueryReady, this, true);
  
###################################
# NOT WORKING
##################################
   LABKEY.requiresScript([
       "/helloWorld/scripts/jquery-2.2.2.min.js",
       "/helloWorld/scripts/jquery-ui.js"
        ], true, jQueryReady, this, true);
Jon (LabKey DevOps)2016-05-11 13:40Jon (LabKey DevOps)2018-11-16 23:23Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

Yes it does work for me, which is why I sent you the module and the zip file.

Let's confirm a few things here before we go any further:

1. Are you using IntelliJ (or some kind of IDE) or are you just running LabKey on the server as a standalone thing?
2. Can you actually access the JS script if you go to this URL?

http://localhost:8080/labkey/helloWorld/scripts/jquery-2.2.2.min.js

Regards,

Jon
diego2016-05-11 13:49Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Trying to access http://localhost:8080/labkey/helloWorld/scripts/jquery-2.2.2.min.js

displays a "HTTP Status 404 - Not Found" error

1.) I am using Komodo Edit a "simplified IDE"
2.) Running LabKey on a server as a standalone web service

Thanks,
Diego
Jon (LabKey DevOps)2016-05-11 14:04Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

So do you actually compile anything within Komodo Edit, similarly to something like an "ant build" or "ant rebuild"?

Also, when I drop in the helloWorld.module file within my standalone instance of LabKey (not my development one that is tied to my IntelliJ IDE), the module works without any issue and that URL I provided you is accessible as well.

Regards,

Jon
diego2016-05-11 14:21Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I do not compile anything with Komodo Edit. What I do is write code for example foo.htm or foo.xml and save file(s) in respective folder. You think my LabKey server install can be corrupted?

Thanks,
Diego
Jon (LabKey DevOps)2016-05-11 14:35Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

I can't say for certain. I do know that there are only so many ways to create a module and looking over this entire thread, it seems like you're using an unusual hybrid between our source version of LabKey that is from our SVN repository and our regular installed version.

For example, our installed version doesn't automatically come with an externalModules directory, while our source version from SVN does (see screenshots).

Can you send me a screenshot of your directory structure? It will let us know what we're working with here.

Regards,

Jon
diego2016-05-11 14:49Jon (LabKey DevOps)2018-11-16 23:23Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Have attached a screenshot of the zipped file I used to install LabKey. When I installed LabKey 15.x a couple months back (barely learning) , I was following a tutorial which asked for the "externalModules" directory, so I created it myself... You think that could be it? Since I created the directory myself?

Also the owner of "externalModules" is "diego" not "www" which tomcat uses...

Have attached a screenshot of files "ls -l"

Thanks,
Diego
Jon (LabKey DevOps)2016-05-11 14:53Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

Can you remove any instance of helloWorld you already have in the modules and externalModules directory (or just move them somewhere else that is outside of the LabKey directory), then take my helloWorld.module file and drop it into your modules directory, then restart Tomcat?

Regards,

Jon
diego2016-05-11 15:11Jon (LabKey DevOps)2018-11-16 23:24Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

That worked perfectly! So I should not install any modules inside of "externalModules"??

functionality works, except there is a an "The following modules experienced errors during startup: [helloWorld]" have attached a few screenshots.

Thanks,
Diego
Jon (LabKey DevOps)2016-05-11 15:15Jon (LabKey DevOps)2018-11-16 23:23Using JQuery in a Module... Path Issue...Using JQuery in a Module... Path Issue... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

Sounds like that's just the old module that was loaded. If you go to Admin > Site > Admin Console and then go to the middle of the screen, you should see a link for "Module Details", then scroll down and you'll be at a list of Unknown Modules where you can then delete the bad modules out of the LabKey database.

And yes, please refrain from using externalModules. Due to your instance of LabKey not being built from source, you will always want to build your modules within the modules directory instead or build them outside of that directory, zipping up the contents with a .module extension, then dropping that .module file into the modules directory.

Regards,

Jon
kevink2013-10-21 13:11Jon (LabKey DevOps)2018-11-16 23:24Using FileMaker as an external data sourceUsing FileMaker as an external data source TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy,

It should be pretty easy to create a new SimpleSqlDialect class that LabKey would use to talk to the FileMaker JDBC driver. The MySqlDialect is a good example of creating a new dialect. The external data source code uses the SqlDialect to abstract away the differences between the data sources and should "just work." To provide a SqlDialect, your module needs to register your SqlDialectFactory with the SqlDialectManager.
Jon (LabKey DevOps)2018-05-18 15:52Jon (LabKey DevOps)2018-05-18 15:52Using ExtJS to create an editable grid in a wiki pageUsing ExtJS to create an editable grid in a wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Unfortunately, we are not able to troubleshoot your code per our Support Guidelines as outlined here:

https://www.labkey.org/home/Support/project-begin.view?

I would recommend double-checking your code though for any kind of errors, such as invalid closing tags, just to make sure your code is structurally sound.

Regards,

Jon
jeckels2015-12-12 18:09Jon (LabKey DevOps)2018-11-16 23:24using a parameterized SQL query within another SQL queryusing a parameterized SQL query within another SQL query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Yes, this will work. You'll be prompted for the parameter value when you try to execute either the outer or inner query. You don't have to define the parameter in the outer query.

Thanks,
Josh
Will Holtz2015-12-30 15:48Jon (LabKey DevOps)2018-11-16 23:23using a parameterized SQL query within another SQL queryusing a parameterized SQL query within another SQL query TEXT_WITH_LINKSClosed     LabKey Support Forum
Ha -- that's too easy!

Thanks Josh!

-Will
Jon (LabKey DevOps)2021-08-19 15:51Jon (LabKey DevOps)2021-08-19 15:51Using Aliases for Sample TypesUsing Aliases for Sample Types TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ophir,

I'd like some clarification on your questions.

- Why would a row have more than one alias?
- What are you looking to do here with regard to the Alias field?
- What part of the system are you working in specifically? There are a few other places where "Aliases" are used, so screenshots would be very helpful in providing you with accurate information.

When it comes to aliases as described here under the "Name and Linking Options" section:

https://www.labkey.org/Documentation/wiki-page.view?name=fieldEditor#alias

"Import Aliases: Define alternate field names to be used when importing from a file to this field. This option offers additional flexibility of recognizing an arbitrary number of source data names to map to the same column of data in LabKey. Multiple aliases may be separated by spaces or commas. To define an alias that contains spaces, use double-quotes (") around it. Learn more about import aliases."

The purpose of an Alias is to be able to import a value under a column that has a different column name.

For example, let's say you're calling a particular column "ParticipantId" in your CSV file that you want to import in, but your actual list/dataset/etc has "SubjectId" instead. Rather than you having to go into the CSV file to change "ParticipantId" into "SubjectId", you can assign an Alias to that field in LabKey so it will understand that upon import of the file "ParticipantId" is the same thing as "SubjectId".

Another example is where you might have a CSV file where the column header is labeled "Sex", but your table in LabKey is set to "Gender". You can add "Sex" as an alias to the "Gender" column so you wouldn't have to revise the CSV file.

Regards,

Jon
Jon (LabKey DevOps)2018-07-09 15:51Jon (LabKey DevOps)2018-07-09 15:51Use trigger script to provide info messageUse trigger script to provide info message TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sev,

Unfortunately, the current design of LabKey does not make this possible. You would have to augment/change the codebase to add the functionality that you're seeking here.

Regards,

Jon
jeckels2011-09-22 17:32Jon (LabKey DevOps)2018-11-16 23:23use sql to expand list of principal IDs into a list of the component user IDs?use sql to expand list of principal IDs into a list of the component user IDs? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I think that's the best way to do it through what's exposed through the public queries. The ISMEMBEROF() function always operates on the current user, so it won't help in your scenario.

Thanks,
Josh
Jon (LabKey DevOps)2018-06-16 00:46Jon (LabKey DevOps)2018-11-16 23:23users groups roles for all projects in a single tableusers groups roles for all projects in a single table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alper,

A regular SQL query alone within LabKey unfortunately isn't enough to accomplish this goal.

Although not recommended, you could setup an external schema to point to LabKey's own database and expose the other core tables that hold the permissions like you saw with the combo of permissions, members, roleassignments, etc, then do one large complex join to aggregate all of that information together.

However, as stated earlier, we don't recommend doing this since you expose yourself to security issues and potentially problems with upgrades as well as stated here:

https://www.labkey.org/Documentation/wiki-page.view?name=externalSchemas

Otherwise, the next best thing would be for you to create your own module that can do direct SQL queries to the database and collect the necessary information for you and then having that render within LabKey on your own custom page.

Regards,

Jon
celikalper842018-06-18 06:27Jon (LabKey DevOps)2018-11-16 23:23users groups roles for all projects in a single tableusers groups roles for all projects in a single table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the information.
I understand that this will not be possible within labkey, I was more interested in accomplishing this task by connecting to postgres directly.

I also understand that this might be a security issue if we were to expose this to other users. Our goal is to build a integrated user tracking system with all our our platform components, one of which is labkey, and this will solely be managed by our internal team and will not be visible on our web labkey instance.

I have been trying to figure out how to get the information using the postgres tables, but I find the column names to be very confusing and would appreciate some guidance on this.

There are container ids, groupids, user ids (but they are not really user ids depending on table) entity ids, and bunch of other columns and I am not sure how they are all connected and if possible I would appreciate a diagram or an explanation about all the tables in the core schema.

Thanks
Alper
Jon (LabKey DevOps)2018-06-29 13:44Jon (LabKey DevOps)2018-11-16 23:24users groups roles for all projects in a single tableusers groups roles for all projects in a single table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alper,

I unfortunately do not have a diagram that we can provide you, but the tables you will want to be focused on are:

core.containers - This gives you the name of the project/folder and what its parent folder above it is. Each container has its own unique entityId that appears in an alphanumeric string like 8f12c8b9-4abe-1036-81db-3d45df6161f0.

core.userdata - This gives you the actual user data with their userIds.

core.principals - This lists users, groups, and permission roles, specifically what containers they're connected to. You can see the userId value (which can contain a group value as well), the container string value, and the type (u for user, g for group, r for role). The default system generated groups, like Admins, are clearly seen with negative userId values.

core.members - This shows what users are tied to what groups using the userId value and the groupId value.

core.roleassignments - This shows what users and groups are assigned to a specific role/permission and for the specific container.

It would be a set of complex JOINs to do, but it is possible for you to identify permissions for a specific user and trace it to the container and what permissions they have under the container individually or being apart of a group, similarly to how the userAccess.view page works when going into the Site Users page and clicking on a user's permissions link.

Regards,

Jon
Jon (LabKey DevOps)2017-10-25 22:03Jon (LabKey DevOps)2018-11-16 23:24Use of the Python API in Matlab and Converting Python Results to Matlab ObjectsUse of the Python API in Matlab and Converting Python Results to Matlab Objects TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cameron,

We're looking into this, but I am not sure how that FileSystemResource.java file has any relation to the Python API. That specific file deals with WebDav File Management and doesn't seem to be related to what you're describing.

As soon as I get some confirmation on the Python API capabilities, we'll follow up with you on this forum post.

Thank you for your patience.

Regards,

Jon
cmwest32017-10-26 10:38cmwest32017-10-26 10:39Use of the Python API in Matlab and Converting Python Results to Matlab ObjectsUse of the Python API in Matlab and Converting Python Results to Matlab Objects TEXT_WITH_LINKSClosed     LabKey Support Forum
I was looking for the code responsible for placing an underscore in front of python dictionary keys and was thinking that might be it. But, I have found a way to rename the key within Matlab so that it conforms to struct naming conventions:

try
    matObj = struct(pyObj);
catch ME
    if strcmp(ME.identifier, 'MATLAB:Cell2Struct:InvalidFieldName')
        offending_key = regexp(ME.message, '(?<=")[^"]+(?=")', 'match');
        offending_key = offending_key{1};
        pyObj{offending_key(2:end)} = pyObj.pop(offending_key);
        matObj = struct(pyObj);
    end
end
Jon (LabKey DevOps)2015-01-22 14:46Jon (LabKey DevOps)2018-11-16 23:24Use of "INSERT INTO" to update a table via SQL queryUse of "INSERT INTO" to update a table via SQL query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi John,

You can use the LABKEY.Query.insertRows() API call to insert rows.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.insertRows

Are you trying to insert rows just once or are you trying to insert new rows upon a specific event?

Regards,

Jon
jeckels2010-05-19 17:43Jon (LabKey DevOps)2018-11-16 23:24use JS code to filter a QWP w/o page reloading?use JS code to filter a QWP w/o page reloading? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

If you already have a QueryWebPart, you should be able to just change its filters property (which is the same array as was passed in with the config object's filter property) and call render() on it. That should re-query the server and swap out its contents in the existing page, avoiding a full page navigation.

Thanks,
Josh
alanv2014-05-12 16:56Jon (LabKey DevOps)2018-11-16 23:24Use GetData API in file-based moduleUse GetData API in file-based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Christopher,

Can you give me any more detail as to what's going on in your file based view? Are you seeing any errors on the page? Are you able to show me the snippet of code that you're using to make the getData API call? If you haven't given it a read, the documentation for the JavaScript GetData wrapper can be found here:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.GetData.html#.getRawData
Christopher Garay2014-05-13 04:39Jon (LabKey DevOps)2018-11-16 23:24Use GetData API in file-based moduleUse GetData API in file-based module TEXT_WITH_LINKSClosed     LabKey Support Forum
The default JavaScript report code works well as an example:

var jsDiv;

// When a JavaScript report is viewed, LabKey calls the render() function, passing a query config
// and a div element. This sample code simply stashes the div, initializes callback functions, and
// calls selectRows() to retrieve the data from the server. See the "Help" tab for more details.
function render(queryConfig, div)
{
    jsDiv = div;
    queryConfig.success = onSuccess;
    queryConfig.error = onError;
    LABKEY.Query.GetData.getRawData(queryConfig);

    // If not using the GetData API you can use SelectRows instead:
    // LABKEY.Query.selectRows(queryConfig);
}

function onSuccess(results)
{
    //jsDiv.innerHTML = results.rows.length + ' rows returned';
}

function onError(errorInfo)
{
    jsDiv.innerHTML = errorInfo.exception;
}


If I open a new report (which has "Use GetData API" checked) and keep the example code I see the correct number of rows returned from the getRawData call. However, if I copy and paste this as a report file inside my module, keeping the call to getRawData yields the following error:

"Error: A source is required for a GetData request."

selectRows does return the correct number of rows when I use that in the file. It looks like LabKey is passing a different object for queryConfig that depends on whether or not the "Use GetData API" box being checked. It's unclear from the documentation how to enable this for a file-based module report in the module configuration.

Thanks for your help!

Chris
alanv2014-05-13 12:57Jon (LabKey DevOps)2018-11-16 23:24Use GetData API in file-based moduleUse GetData API in file-based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Chris,

When you create a JavaScript report LabKey creates the appropriate configuration for you. If you select "Use GetData API" it creates a queryConfig object that conforms to the JavaScript GetData.rawData requirements. In order to manually use the GetData API you'll need to write some code that looks something like this:

<script type="text/javascript">
    var config = {
        source : {
            type: 'query',
            schemaName: '<The Schema Name You Need Goes Here>',
            queryName: '<The Query Name YOu Need Goes Here>'
        },
        success: function(response) {
           // Your Success function goes here.
           console.log(response);
        },
        failure: function(response) {
            // Your failure function goes here.
            console.error('Error occurred during GetData request');
            console.log(response);
        }
    };

    LABKEY.Query.GetData.getRawData(config);
</script>

You can also specify the list of columns you want, the sorts you need, filters, grouping, and more. All of the GetData config options are listed in the documentation that I linked above.
jeckels2010-08-03 13:21Jon (LabKey DevOps)2018-11-16 23:24use audit table for other auditing?use audit table for other auditing? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The audit log isn't currently exposed as a writeable table in the client API. I wouldn't necessarily advise exposing it as an external schema, since one of its intents is to provide a secure log of certain actions within the server. You wouldn't want users, regardless of their permissions, to be able to delete or otherwise modify records of their actions.

I like the idea of allowing the client API to insert (but probably not update or delete) records of certain types, but I'm not sure when we'd be able to get to that.

Thanks,
Josh
Ben Bimber2010-08-03 13:24Jon (LabKey DevOps)2018-11-16 23:24use audit table for other auditing?use audit table for other auditing? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. our solution of making a list specifically for this works well enough for now. it was actually the mySQL sync logging that made me think about using the audit table instead.
Jon (LabKey DevOps)2017-09-14 15:56Jon (LabKey DevOps)2018-11-16 23:24URL context/container/project path on the java sideURL context/container/project path on the java side TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

Have you tried using LABKEY.ActionURL.getContainer() to get the container?

Also, have you considered using the LABKEY.ActionURL.buildURL() function instead? If you use that, you don't need to provide the BaseServerURL or the contextPath since the system will know to apply those?

More information can be on these here:

https://www.labkey.org/Documentation/wiki-page.view?name=url
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ActionURL.html

Regards,

Jon
Jon (LabKey DevOps)2015-03-24 12:44Jon (LabKey DevOps)2018-11-16 23:24Uploading of files with mutiple tabs within the same folder/projectUploading of files with mutiple tabs within the same folder/project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mark,

The Files Web Part is only specific to the Project and Folder level. Since the Tabs are all apart of the same project/folder, all of those File Web Parts will display the same information.

Can you give us some more details as to what you're trying to do here where you need to have three different file locations for each respective tab?

Regards,

Jon
Mark22015-03-24 12:52Jon (LabKey DevOps)2018-11-16 23:24Uploading of files with mutiple tabs within the same folder/projectUploading of files with mutiple tabs within the same folder/project TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon for your response

"Can you give us some more details as to what you're trying to do here where you need to have three different file locations for each respective tab? "

So each tab represents a different lab and those in that lab will go to upload files and input information:

Tab1 will be reserved for folks from the RNAseq lab to upload files and meta information regarding RNAseq for the same Project 111
Tab2 will be reserved for folks from the flow lab to upload files and meta information regarding flow cytometry for the same Project 111
Tab3 will be reserved for folks from the genotyping lab to upload files and meta information regarding genotyping for the same Project 111

So now I dont want the RNAseq folks getting confused with files that was uploaded by flow folks in Tab2 when they go into Tab1 etc.

Thanks again.
Jon (LabKey DevOps)2015-03-24 13:13Jon (LabKey DevOps)2018-11-16 23:24Uploading of files with mutiple tabs within the same folder/projectUploading of files with mutiple tabs within the same folder/project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mark,

Thanks for the additional information.

So it would be best in this case for you to create three separate folders under one project, one for each assay you're working on. This way your file uploads will be kept separate along with your three assays. Does this make sense?

Regards,

Jon
Mark22015-03-24 13:21Jon (LabKey DevOps)2018-11-16 23:24Uploading of files with mutiple tabs within the same folder/projectUploading of files with mutiple tabs within the same folder/project TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon this makes sense.

Thanks again
marcia hon2018-02-12 07:18marcia hon2018-02-12 07:18Uploading CSV to ListUploading CSV to List TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you!
Jon (LabKey DevOps)2018-02-10 00:06Jon (LabKey DevOps)2018-02-10 00:06Uploading CSV to ListUploading CSV to List TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

By default, there is no connection between the FileContent and Pipeline file browser areas and the Lists.

If you need to upload a CSV file to your specific List, you should use the Import Bulk Data option on your list and upload the CSV there so it can be processed and added to your list.

It might be possible for you to develop your own pipeline module to try and have the system process it, although people usually use a pipeline module in conjunction with assays usually: https://www.labkey.org/Documentation/wiki-page.view?name=rPipeline

It also might be possible for you to leverage our APIs to process your large CSV file as well so it can insert all the individual rows from the CSV file to your specific list: https://www.labkey.org/Documentation/wiki-page.view?name=viewApis

However, the easiest option would be just to use the Import Bulk Data option within the list to import the data to the specific list you want it to be in.

Regards,

Jon
Jon (LabKey DevOps)2018-05-04 20:06Jon (LabKey DevOps)2018-11-16 23:24upload file sanity check and verification in Labkeyupload file sanity check and verification in Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

You should be able to use the Javascript API to accomplish this.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.FileSystem.WebdavFileSystem.html

Regards,

Jon
WayneH2018-05-07 08:50Jon (LabKey DevOps)2018-11-16 23:23upload file sanity check and verification in Labkeyupload file sanity check and verification in Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon,

is there something specific we have to do to turn the service on? (ie something in the config or make sure specific ports are available)

Thanks,

Wayne
Jon (LabKey DevOps)2018-05-18 13:51Jon (LabKey DevOps)2018-11-16 23:24upload file sanity check and verification in Labkeyupload file sanity check and verification in Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

I'm not understanding your question. What are you referring to with regard to "turn the service on"? What service are you referring to?

The Javascript API is always accessible as long as the LabKey instance is running.

Regards,

Jon
Matthew Bellew2009-09-17 13:30Jon (LabKey DevOps)2018-11-16 23:23Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
Brian Pratt2009-09-17 14:12Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
sorry, should have poked around a bit more - OTOH it did turn up Josh's pointer to org.labkey.api.util.HttpsUtil.disableValidation(), maybe I'll take a poke at that if nobody else is planning to.
jeckels2009-09-17 14:20Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

I just added that comment a few minutes ago - I wouldn't have known to share that tidbit without your posting, so it's a good thing you did.

Thanks,
Josh
Matthew Bellew2009-09-17 14:23Jon (LabKey DevOps)2018-11-16 23:23Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
I wasn't planning on addressing this in the 9.2 branch. If you do work out a fix, I'll happily move the fix to trunk.
Brian Pratt2009-09-17 14:27Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
I usually work in trunk and put things into branches once they're deemed important and not destabilizing, but I'll follow whatever model you guys do - branching policy is the stuff of jihads.
Brian Pratt2009-09-17 14:29Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
That statement probably makes more sense when I say that up till now I've been using nothing but LabKey binary distros on the EC2 side of things... I'm not working in the branch per se, just using its official build artifacts to be maximally customer-like.
Matthew Bellew2009-09-17 14:33Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
Either way is fine, I just assumed you were working with the 9.2 build (hence a branch). Or if you just wait 9.3 will likely have a fix.
Brian Pratt2009-09-17 14:39Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
I'll go ahead and take a shot at it with Josh's hint. Probably sometime next week when IntelliJ has finally finished startup (my god, its slow to load - is there something I'm not understanding?).
Matthew Bellew2009-09-17 14:45Jon (LabKey DevOps)2018-11-16 23:23Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
It's slow. Use the latest version and a fast machine. But even better, the upload applet is in its own very small project under (labkey)/server/applets/applets.ipr.
Andy Straw2012-05-16 09:53Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
We are running into this problem: exception from the java applet file uploader tool. This is our staging server. Initially, we used a self-signed certificate, and got both the browser warning, and the applet exception. We obtained a valid certificate from inCommon, and that made the browser warning go away, but we still get the applet exception - though the exception message is different - see below for stacktrace.

I imported the inCommon CA certificate into the cacerts file of my local JRE, but that didn't seem to help. Though it's a little unclear to me where the certificate should be imported to affect a java applet run from my browser.

I see that an issue was opened, but not fixed related to this: https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=7061

Is there a work-around for this? We don't have a problem with our production server that uses a different certificate purchased from Verisign.

Here's the stack trace:

javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Untrusted Server Certificate Chain
                at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
                at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
                at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
                at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
                at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
                at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
                at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
                at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
                at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
                at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
                at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)
                at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)
                at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
                at java.io.BufferedOutputStream.flush(Unknown Source)
                at org.apache.commons.httpclient.methods.StringRequestEntity.writeRequest(StringRequestEntity.java:146)
                at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:499)
                at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
                at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
                at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
                at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
                at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
                at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
                at org.labkey.applets.drop.FTPJobQueue.propFind(FTPJobQueue.java:982)
                at org.labkey.applets.drop.FTPJobQueue$DavRunnableJob._sendFile(FTPJobQueue.java:440)
                at org.labkey.applets.drop.FTPJobQueue$DavRunnableJob$1.run(FTPJobQueue.java:370)
                at java.security.AccessController.doPrivileged(Native Method)
                at org.labkey.applets.drop.FTPJobQueue$DavRunnableJob.run(FTPJobQueue.java:366)
                at org.labkey.applets.drop.FTPJobQueue$MyThreadPoolExecutor$2.call(FTPJobQueue.java:1253)
                at org.labkey.applets.drop.FTPJobQueue$Future.run(FTPJobQueue.java:1156)
                at org.labkey.applets.drop.FTPJobQueue$MyThreadPoolExecutor$1.run(FTPJobQueue.java:1202)
                at java.lang.Thread.run(Unknown Source)
 
Caused by: java.security.cert.CertificateException: Untrusted Server Certificate Chain
                at com.sun.net.ssl.X509TrustManagerJavaxWrapper.checkServerTrusted(Unknown Source)
                ... 27 more
Andy Straw2012-08-07 13:13Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
I've not seen any response to my previous post (immediately before this one). We're now using an InCommon cert in production, and the mutli-file upload applet now fails in production with this error. (Previously, we had a Verisign cert in production, and an InCommon cert in dev/staging, and only had problems in dev/staging.)

Does anyone have any ideas on how we can fix or work around this? Why is the browser happy with the cert, but the applet not?

Thanks for any help anyone can provide. Our users must upload one file at a time, which, of course, can be quite tedious if you have lots of files to upload.

Andy
jeckels2012-08-07 14:31Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy,

The problem is that the browser trusts InCommon as a certificate authority, but the JRE that's running the applet doesn't. Thus, the applet tries to make a connection to the server over HTTPS, it blows up with the exception during certificate validation.

The JRE stores the list of trusted certificate authorities in <JRE_HOME>/lib/security/cacerts. It's possible to manually add a new certificate to the file, but it would need to be done on all the computers that are running the applet.

http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html

Different versions of the JRE have a different set of trusted CA certificates, so it's possible that installing a newer version of the JRE or Java PlugIn might fix the problem.

It would be possible to build a version of the applet that disables SSL certificate validation, but I wouldn't recommend doing this on a production server as it introduces a potential vulnerability.

Thanks,
Josh
Brian Connolly2012-08-07 14:49Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
Andy,

You can also import a new certificate on all computers running the applet via the Java Control Panel. See http://docs.oracle.com/javase/6/docs/technotes/guides/deployment/deployment-guide/jcp.html#security

When I did a little more research, it looks like InCommon certificates have been trusted by the JRE since v1.4.2. See https://spaces.internet2.edu/display/InCCollaborate/InCommon+Cert+Service+FAQ#InCommonCertServiceFAQ-Whatarethesupportedbrowsers%2Cdevicesandapplicationsuites%3F

I wonder if there is a SSL configuration problem on your server which might be causing this problem. The InCommon documentation says this type of behavior might occur if all the InCommon Intermediate certificates are not properly installed on the server See https://spaces.internet2.edu/display/InCCollaborate/InCommon+Cert+Service+FAQ#InCommonCertServiceFAQ-WhyisthebrowserrejectingmySSL%2FTLScertificate%3F for description of what the problem might be and steps on verifying that the SSL certificates are configured properly on your server.

Brian
Andy Straw2012-08-08 09:09Jon (LabKey DevOps)2018-11-16 23:23Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the responses.

Having each user install a certificate client-side is not feasible for us, nor should it be necessary, correct?

I upgraded my Java plug-in to 1.7 (was using 1.6) and that did not help. Based on Brian's comment, that should not have mattered anyway - we're all using at least Java 1.5.

I followed the link in Brian's last paragraph, and used openssl to verify our certificates. I ran this command (after downloading the AddTrustExternalCARoot.crt file):

openssl s_client -connect blis.urmc.rochester.edu:443 -CAfile AddTrustExternalCARoot.crt

Output of that command is attached. From what I could tell, it looks like our server is configured properly - but I have to admit, I don't know how to interpret most of the output from openssl. Since we've not seen any issues or pop-ups or warnings from our browsers - just from the applet - I'm not surprised openssl seemed to think the cert chain was okay, since the browsers seem to think so as well.

Is there something else we can do to help diagnose this problem? Are we sure the applet is doing the write thing to deal with the cert chain? I notice the stack trace has httpclient classes in it - could the problem be there?

Thanks.

Andy
Brian Connolly2012-08-08 10:17Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
Andy,
I believe there is a problem with your SSL configuration. At the top of the openssl output, you will notice

Certificate chain
 0 s:/C=US/postalCode=14627/ST=NY/L=Rochester/O=University of Rochester/OU=Center for Integrated Research Computing/CN=blis.urmc.rochester.edu
   i:/C=US/O=Internet2/OU=InCommon/CN=InCommon Server CA
 1 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
 2 s:/C=US/O=Internet2/OU=InCommon/CN=InCommon Server CA
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root


The order of your certificate chain is incorrect. Certificate #2 should be above certificate #1. Most SSL client implementations, such as the ones in browsers, can handle having the certificate chain in the wrong order, but JAVA is much more picky and is erroring out due to this misconfiguration.

If you fix this, I believe that the file upload applet will correctly. I recommend creating a new keystore file with the correct order and then configuring your server to use the new keystore. Given that you have a test server, which is experiencing the same error, you can probably test the new keystore on that server.

Thank you,

Brian

PS when running the openssl command in the future, use `openssl s_client -connect blis.urmc.rochester.edu:443` without specifying the CAFile. This will give you a true test of your SSL configuration.
Andy Straw2012-08-09 11:32Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks very much. (I actually noticed this difference, but the last line of the output said "ok", so I assumed it was ok.)

As soon as I can get my sys admin to re-configure the cert chain on our server, we'll try this fix, and let you know how that goes.

Andy
Andy Straw2012-08-10 09:36Jon (LabKey DevOps)2018-11-16 23:24Uploader tool + homebrewed SSL cert = uglyUploader tool + homebrewed SSL cert = ugly TEXT_WITH_LINKSClosed     LabKey Support Forum
When we switched the order of the certs in the chain, that fixed the problem.

Thanks again for your help with this. I doubt we would have been able to solve this so quickly without your help.

Andy
Jon (LabKey DevOps)2021-12-17 13:11Jon (LabKey DevOps)2021-12-17 13:12Upgrading Old Version of LabkeyUpgrading Old Version of Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

I've updated that page so it shows more lines, which goes further back and shows the 19.1 binaries.

Regards,

Jon
dslater2021-12-17 13:13Jon (LabKey DevOps)2021-12-17 13:14Upgrading Old Version of LabkeyUpgrading Old Version of Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
That's Awesome. Downloading now. Thanks for the quick reply
martyp2017-02-07 09:13Jon (LabKey DevOps)2018-11-16 23:24upgrading labkey server to 16.3 versionupgrading labkey server to 16.3 version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

It seems that at least one of your datasets is not in the expected state while this upgrade is taking place. I can't tell from the attached logs how it got in this state, possibly due to a server reboot while the upgrade was taking place.

Your best option to correct, if you have a server backup from prior to the upgrade, restore that backup and perform the upgrade again.

If you don't have a backup, you'll need to manually add the container column to that dataset in your Postgres db. You may need to do this in other datasets as well if they do not have it.

ALTER TABLE studydataset.c19d733_demographics ADD COLUMN container entityid

This upgrade is reorganizing the indexes on study datasets so it can take a while if you have a lot of datasets.
hilariagrieve2017-02-08 04:41Jon (LabKey DevOps)2018-11-16 23:24upgrading labkey server to 16.3 versionupgrading labkey server to 16.3 version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martyp,

I have a server backup from prior to the upgrade, I will restore it and perform the upgrade again.
I will tell you if everything is ok after doing that.

many thanks.

Hilaria
hilariagrieve2017-02-08 06:25Jon (LabKey DevOps)2018-11-16 23:24upgrading labkey server to 16.3 versionupgrading labkey server to 16.3 version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martip.

I restore the backup, and came back to the 16.2 version. When I started up labkey, It resturns me an error in a study query:

An error occurred trying to load: java.lang.NullPointerException.
I can't delete this query, because the sistems doesn't show me any query.

Can you help me?
Thanks
jeckels2017-02-08 12:57Jon (LabKey DevOps)2018-11-16 23:24upgrading labkey server to 16.3 versionupgrading labkey server to 16.3 version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Hilaria,

Can you share the labkey.log file from Tomcat's ./logs directory? It will hopefully contain more details about the NullPointerException error you're seeing.

Thanks,
Josh
hilariagrieve2017-02-09 03:50Jon (LabKey DevOps)2018-11-16 23:24upgrading labkey server to 16.3 versionupgrading labkey server to 16.3 version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh, I am sending the labkey.log file.
It is an SQL query, that I need to do some R Report. It worked fine before to perform the upgrade.

I don't know how to solve it. Now I returned to the 16.2 version.

Thanks.
Hilaria
hilariagrieve2017-02-09 03:50Jon (LabKey DevOps)2018-11-16 23:24upgrading labkey server to 16.3 versionupgrading labkey server to 16.3 version TEXT_WITH_LINKSClosed     LabKey Support Forum 
hilariagrieve2017-02-09 07:28Jon (LabKey DevOps)2018-11-16 23:24upgrading labkey server to 16.3 versionupgrading labkey server to 16.3 version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,
I had backup the proyect study, so, I deleted the current study and created a new study from the study I had saved before upgrade.

Now, The platform and the study proyect is working fine. I need to upgrade to the 16.3 version because I made a R mardown report, and I need that the sistems creates a word document with this report, and someone in the support team told me that this issue was solve in the new version 16.3.

I don't know what Iam going to do, Now I am afraid that everything broke again if I tryied to upgrade again.
Hilaria
martyp2017-02-10 16:54Jon (LabKey DevOps)2018-11-16 23:24upgrading labkey server to 16.3 versionupgrading labkey server to 16.3 version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Hilaria,

What you're seeing is consistent with version 16.2 running on a partially upgraded 16.3 database. Are you certain your database backup that you restored was from prior to the 16.3 upgrade? Can you run the following queries against your db and attach the results.

SELECT * FROM core.Modules

SELECT * FROM core.SqlScripts

Thanks,
Marty
Jon (LabKey DevOps)2015-04-07 11:30Jon (LabKey DevOps)2018-11-16 23:23Upgrade to v15.1 breaks Javascript call to LABKEY.ext4.data.Store()Upgrade to v15.1 breaks Javascript call to LABKEY.ext4.data.Store() TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Any chance you can provide us with your JavaScript code? Right now, we are working towards porting our existing ExtJS 3.4 code over to ExtJS 4+ (will be ready by the 15.2 release), but the module you're referring to shouldn't have any issues.

Regards,

Jon
Will Holtz2015-04-07 11:46Jon (LabKey DevOps)2018-11-16 23:24Upgrade to v15.1 breaks Javascript call to LABKEY.ext4.data.Store()Upgrade to v15.1 breaks Javascript call to LABKEY.ext4.data.Store() TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

The javascript code in question is in an upload.html file. I have stripped it down to just:
<script type="text/javascript">

Ext4.onReady(function() {
            var s = new LABKEY.ext4.data.Store({
                schemaName: 'hplc',
                queryName: 'instrument'
            });
});
</script>

and I'm still getting 'TypeError: LABKEY.ext4 is undefined' in my browser's javascript console.

thanks!

-Will
Ben Bimber2015-04-07 12:19Jon (LabKey DevOps)2018-11-16 23:24Upgrade to v15.1 breaks Javascript call to LABKEY.ext4.data.Store()Upgrade to v15.1 breaks Javascript call to LABKEY.ext4.data.Store() TEXT_WITH_LINKSClosed     LabKey Support Forum
hi will - if i had to throw out a guess, it is that the ext4 client API isnt being loaded on your page. it is probably best practice for your code to explicitly declare that dependency. i cant say with certainty, but it is possible some other piece of code that happened to get loaded on your assay page was requesting this library, which meant it was already available for your code.

if you're doing a file based assay, i would recommend also creating a file named upload.view.xml. you will want to add something like:

<view xmlns="http://labkey.org/data/xml/view">
    <dependencies>
         <dependency path="clientapi/ext4"/>
    </dependencies>
</view>

check out similar upload.view.xml files in the modules under /externalModules/labModules/
Will Holtz2015-04-07 13:28Jon (LabKey DevOps)2018-11-16 23:24Upgrade to v15.1 breaks Javascript call to LABKEY.ext4.data.Store()Upgrade to v15.1 breaks Javascript call to LABKEY.ext4.data.Store() TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Ben. That fixed it. For some reason I don't fully recall, I mistakenly thought using Ext4.onReady() took care of loading the ext4 client API.

-Will
jeckels2013-05-06 09:04Jon (LabKey DevOps)2018-11-16 23:23Updating java based assay module for 13.1Updating java based assay module for 13.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Yes, that should work fine as well. There should be just a single instance of each module, but it doesn't matter how you get the reference to it.

Thanks,
Josh
jeckels2015-06-28 16:57Jon (LabKey DevOps)2018-11-16 23:24Updating existing Assay Runs and Results via Java Client APIUpdating existing Assay Runs and Results via Java Client API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy,

All assay types should support updating their Runs table via the UpdateRowsCommand (or its equivalent API binding in other languages, like LABKEY.Query.updateRows() in JavaScript).

Similarly, for assay types that support editable results rows via the assay design, you can use either UpdateRowsCommand or DeleteRowsCommand. We do not currently support inserting new result rows via InsertRowsCommand.

Any of those direct update/delete operations should create audit log events, whether invoked via an API or through the web UI.

Thanks,
Josh
Andy Straw2015-06-29 05:45Andy Straw2015-06-29 05:45Updating existing Assay Runs and Results via Java Client APIUpdating existing Assay Runs and Results via Java Client API TEXT_WITH_LINKSClosed     LabKey Support Forum
Sounds like the features supported by the client APIs match what one can do manually via the web app.

Thanks for clarifying.

Andy
wnels2@uky.edu2009-04-30 12:21Jon (LabKey DevOps)2018-11-16 23:24update rowIdupdate rowId TEXT_WITH_LINKSClosed     LabKey Support Forum
Okay, I think I found it. You can specify the PK in the xml but if it is not there it must have the optional rowid in your table?
Thanks,
Bill
adam2009-04-30 12:25Jon (LabKey DevOps)2018-11-16 23:23update rowIdupdate rowId TEXT_WITH_LINKSClosed     LabKey Support Forum
I believe if the PK isn't set explicitly in XML we'll pull it from the database meta data. This is generally how we handle it -- the XML is used primarily to override and augment the meta data.
wnels2@uky.edu2009-05-01 10:21Jon (LabKey DevOps)2018-11-16 23:24update rowIdupdate rowId TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Adam,
One more question please.
I want to put some Table.Insert/Update/Delete commands into a transaction. Can I do this? The only examples I can find use the JDBC connection with manually created SQL.

Thanks,
Bill
jeckels2009-05-01 11:24Jon (LabKey DevOps)2018-11-16 23:24update rowIdupdate rowId TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

Yes, you can use transactions with those methods on Table. The general pattern is:

tableInfo.getSchema().getScope().beginTransaction();
try
{
    // Do some calls to Table.insert(), etc

    tableInfo.getSchema().getScope().commitTransaction();
}
finally
{
    tableInfo.getSchema().getScope().closeConnection();
}

This will make sure that your connection is closed properly, and that your transaction rolls back if there were any exceptions.

Thanks,
Josh
Jon (LabKey DevOps)2017-05-11 14:47Jon (LabKey DevOps)2018-11-16 23:24update one cell in a row (labkey java api)update one cell in a row (labkey java api) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Using the UpdateRowsCommand, you need to indicate what row you want to update in addition to the specific field for that row.

If you look at the API docs here:

https://www.labkey.org/download/clientapi_docs/java-api/org/labkey/remoteapi/query/UpdateRowsCommand.html

https://www.labkey.org/download/clientapi_docs/java-api/org/labkey/remoteapi/query/SaveRowsCommand.html

You'll see the example:

  //Update Rows Command
  UpdateRowsCommand cmdUpd = new UpdateRowsCommand("lists", "People");
  row = new HashMap<String,Object>();
  row.put("Key", newKey);
  row.put("LastName", "Test UPDATED");
  cmdUpd.addRow(row);
  resp = cmdUpd.execute(cn, "PROJECT_NAME");

This allows the specific row to be updated and just that specific field for that one row.

Regards,

Jon
adam2013-03-25 14:07Jon (LabKey DevOps)2018-11-16 23:24update docs?update docs? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, latest of both is what we recommend. We'll update the docs.
adam2013-03-29 09:47Jon (LabKey DevOps)2018-11-16 23:23update docs?update docs? TEXT_WITH_LINKSClosed     LabKey Support Forum
I just updated https://www.labkey.org/wiki/home/Documentation/page.view?name=svn

Please review and let us know if you noticed this on any other page.

Adam
Ben Bimber2013-03-29 10:04Jon (LabKey DevOps)2018-11-16 23:24update docs?update docs? TEXT_WITH_LINKSClosed     LabKey Support Forum
looks ok to me
kevink2010-11-29 10:27Jon (LabKey DevOps)2018-11-16 23:24unsaved changes for default view of QWP impact other tabs in browser?unsaved changes for default view of QWP impact other tabs in browser? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes this is the intended behavior. The 'unsaved' changes are saved on the server-side. Any new browser windows that are refreshed or use .getQueryDetails() will reflect those changes.
Ben Bimber2010-12-15 08:30Jon (LabKey DevOps)2018-11-16 23:24unsaved changes for default view of QWP impact other tabs in browser?unsaved changes for default view of QWP impact other tabs in browser? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi kevin,

so how long will an unsaved view persist? if i log out/log in the unsaved view seems to be cleared, but it seemed to be saved otherwise. I tried navigating away from the page, then going back, and the unsaved view was remembered. are there any other triggers besides actually clicking 'revert' or logging out that cause it revert?

thanks.
marki2010-12-15 09:14Jon (LabKey DevOps)2018-11-16 23:24unsaved changes for default view of QWP impact other tabs in browser?unsaved changes for default view of QWP impact other tabs in browser? TEXT_WITH_LINKSClosed     LabKey Support Forum
They are saved in the user's session. So an explicit logout, closing the browser or an explicit revert would be the options to revert.
adam2010-12-20 14:49Jon (LabKey DevOps)2018-11-16 23:23unsaved changes for default view of QWP impact other tabs in browser?unsaved changes for default view of QWP impact other tabs in browser? TEXT_WITH_LINKSClosed     LabKey Support Forum
Also, an "implicit" logout (a server session timeout) will clear the session.
adam2008-08-21 13:12Jon (LabKey DevOps)2018-11-16 23:24Unit TestsUnit Tests TEXT_WITH_LINKSClosed     LabKey Support Forum
We do have some junit tests built into the product. Visit this URL: http://localhost:8080/labkey/junit/home/begin.view

These are designed to run on a dev setup (full svn enlistment) -- it's possible some of the dependencies aren't included in the zip you downloaded. This definitely qualifies as quicker... but not more thorough, since the Selenium suites invokes the junit tests.

Adam
Susan Hert2017-09-15 17:12Jon (LabKey DevOps)2018-11-16 23:23Unit TestsUnit Tests TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Yes, it is possible to run tests for a single module on the command line, though you'll need to set a gradle property to enable that, and these are the UI tests for the module, not the unit tests. See https://labkey.org/Documentation/wiki-page.view?name=gradleSelenium for more details.

The 'test' task is brought in as a standard Gradle task when the Java plugin is applied to the module and it is meant to run the unit tests, as you expect. However, most of our tests require a running server and database, so we have not (yet) built in the proper gradle infrastructure to associate unit test classes with the test task. I do hope we'll get to adding this configuration for all of our modules that have unit tests, but it is not yet at the top of the backlog.

If you want to venture into this territory for your module, you can learn more about Gradle's Test task here: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html. You should be able to configure your test task so it finds the classes containing your unit tests within the module's build.gradle file. If you have success here, we would appreciate hearing about it.

Susan
brittp2011-04-21 09:43Jon (LabKey DevOps)2018-11-16 23:23Uniqueness problem when saving to two datasetsUniqueness problem when saving to two datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

This could be a product bug, but it's hard to say without more information. Would it be possible for you to post the JavaScript that you're using to insert the dataset rows? It would also be very helpful if you could attach the error log for your server. This file is called labkey-errors.log, and can be found in Tomcat's logs directory. If you used the Windows installer with default settings to set up LabKey Server, you can find this file here: C:\Program Files\LabKey Server\apache-tomcat-5.5.29\logs\labkey-errors.log

Thanks,
Britt
jdutra2011-04-21 10:33Jon (LabKey DevOps)2018-11-16 23:23Uniqueness problem when saving to two datasetsUniqueness problem when saving to two datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Britt,

I've attached the errorlog and the js code that causes my error. I'm saving one record to each of two different datasets. When I tried this to get the errorlog for you, my first submit worked, and successfully added a new participant to each of the two study datasets. The second time I got the error. That new participant was added to the Demographics dataset, but not Consent. Thanks for your help!

- Jen
Ben Bimber2011-04-21 10:46Jon (LabKey DevOps)2018-11-16 23:24Uniqueness problem when saving to two datasetsUniqueness problem when saving to two datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
hi jen,

i just glanced at this, and do you have the rest of the code that contains doSuccess, doNothing, etc? I'm not quite getting what those are doing.

thanks,
ben
jdutra2011-04-21 10:51Jon (LabKey DevOps)2018-11-16 23:24Uniqueness problem when saving to two datasetsUniqueness problem when saving to two datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

This is doSuccess:

function doSuccess() {
    saveSuccess = true;
}

and doNothing doesn't do anything at all. The code is pretty simple, it's just trying to save to one dataset, and then, if the save was successful, save to a second dataset. All the functions you see in the insertRows are just getting the values I need from the form inputs, and I'm pretty sure there are no problems with any of them.

Thanks,
Jen
Ben Bimber2011-04-21 11:23Jon (LabKey DevOps)2018-11-16 23:23Uniqueness problem when saving to two datasetsUniqueness problem when saving to two datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
hi jen,

so i'm wondering if everything is executing in the proper order. successCallback from the first insertRows is going to be called asynchonously, so I wonder if often your second submitConsent function just isnt getting called. have a look at the attached modification. i made onSuccess from the first insertRows call the second one directly. i think seqNum should be in scope to both.

I didnt try any of this, so there may be typos.

-ben
jdutra2011-04-21 12:39Jon (LabKey DevOps)2018-11-16 23:24Uniqueness problem when saving to two datasetsUniqueness problem when saving to two datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I tried your fix, and it seems to be working at the moment. Trouble is, I'm pretty sure I had things set up that way initially in the other form that's causing this problem, and it still didn't work. But it's been awhile and I'll have to recheck it. In the meantime, thanks for your help!

- Jen
brittp2011-04-22 10:09Jon (LabKey DevOps)2018-11-16 23:23Uniqueness problem when saving to two datasetsUniqueness problem when saving to two datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Ben's suggestions are good ones- his approach should make your code execute more consistently, and may fix your problem. That said, there does appear to be a product bug in that your original code was able to intermittently cause a server-side error. I've entered a bug in our issue tracker to address this problem:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=12191

Please let us know if Ben's modifications aren't enough to get you up and running in the short term. And thanks, Ben, for jumping in and helping out!

Thanks,
Britt
Jon (LabKey DevOps)2015-01-27 11:04Jon (LabKey DevOps)2018-11-16 23:24unexpected server error specimen importunexpected server error specimen import TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michele,

That error is related to a collation issue between two different database tables in your SQL DB.

Was there a change to your SQL DB recently? Depending on what was done to the database, you may either need to re-install SQL Server or rebuild the databases, change the database collation, or you have to modify your existing queries to include the COLLATE clause.

Regards,

Jon
jeckels2015-12-13 11:41Jon (LabKey DevOps)2018-11-16 23:23Unexpected edit behavior with primary key column containing blanksUnexpected edit behavior with primary key column containing blanks TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the report. I was able to reproduce the error and have opened a bug:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=25126

Thanks,
Josh
jeckels2015-01-12 09:28Jon (LabKey DevOps)2018-11-16 23:24Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

This error indicates that there's a database connection that got into a bad state, and it's causing an error when the server is shutting down. There's likely one or more other error messages earlier in the log that might point to the root cause. Can you attach the full labkey.log file, or send it directly by email if you'd prefer not to post it publicly?

Thanks,
Josh
adam2015-01-12 09:30Jon (LabKey DevOps)2018-11-16 23:23Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
This usually means that a previous SQL query within this same transaction failed, which causes subsequent queries to fail. You'll need to find the first failure in the log to track down the source of the problem.

Adam
bront@kcr.uky.edu2015-01-12 11:03Jon (LabKey DevOps)2018-11-16 23:24Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
I will forward the labkey.log file, but from what I can see there are hundreds of errors that look like this:

 SELECT Path, LastCrawled, NextCrawl
    FROM search.CrawlCollections
    WHERE NextCrawl < ? AND (LastCrawled IS NULL OR LastCrawled < ?) ORDER BY NextCrawl
    LIMIT 100
    ?[1] Mon Jan 12 09:33:04 EST 2015
    ?[2] Mon Jan 12 09:03:04 EST 2015

    org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:438)
    org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:263)
    org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:109)
    org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:156)
    org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:140)
ERROR DavCrawler 2015-01-12 09:33:04,471 DavCrawler : Unexpected error
org.springframework.jdbc.UncategorizedSQLException: ExecutingSelector; uncategorized SQLException for SQL []; SQL state [25P02]; error code [0]; ERROR: current transaction is aborted, commands ignored until end of transaction block; nested exception is org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
 

Many thanks,

bront
jeckels2015-01-13 09:05Jon (LabKey DevOps)2018-11-16 23:23Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Is this on a developer machine, or a production/staging/etc server? I'm wondering if the Postgres JDBC driver might be stale. Can you double-check that the copy in $TOMCAT_HOME/lib matches the file size in the distribution (either the .tar.gz or ./external/lib/tomcat/ in SVN)?

Also, can you share the section of labkey.xml in $TOMCAT_HOME/conf/Catalina/localhost for the labkeyDataSource (stripping out server/username/password information, of course). It should be something like this:

    <Resource name="jdbc/labkeyDataSource" auth="Container"
        type="javax.sql.DataSource"
        username="postgres"
        password="XXXXXXXXXXXXXXXXX"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://localhost:5433/labkey"
        maxActive="20"
        maxIdle="10"
        accessToUnderlyingConnectionAllowed="true"
        validationQuery="SELECT 1"
        />

Thanks,
Josh
bront@kcr.uky.edu2015-01-15 14:41Jon (LabKey DevOps)2018-11-16 23:24Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

I checked the postgresql.jar. The file sizes seemed to match, but I loaded the one from release14.3/external/lib/tomcat/ branch anyway. Restarted Tomcat.

Here is our labkey.xml file:

<Resource name="jdbc/labkeyDataSource" auth="Container"
        type="javax.sql.DataSource"
        username=""
        password=""
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://xxx/labkey?sslmode=require"
        maxActive="20"
        maxIdle="10" accessToUnderlyingConnectionAllowed="true"/>

Again, thanks for your help.

bront
jeckels2015-01-16 17:11Jon (LabKey DevOps)2018-11-16 23:24Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

I don't necessarily expect that this will help, but please try adding this to your <Resource>:

validationQuery="SELECT 1"

It will make sure that the connection is still active before handing it out from the pool.

Thanks,
Josh
bront@kcr.uky.edu2015-01-26 08:00Jon (LabKey DevOps)2018-11-16 23:23Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

I implemented that change to the labkey.xml. We're still seeing hundreds of errors like the following. Our sys admin noted that the errors kickoff at 2:00 when the site maintenance tasks are scheduled. We're still investigating, but if you can think of other possible solutions let us know.

Thanks,

bront


ERROR Table 2015-01-26 10:42:03,663 DavCrawler : SQL [15033]
    SELECT Path, LastCrawled, NextCrawl
    FROM search.CrawlCollections
    WHERE NextCrawl < ? AND (LastCrawled IS NULL OR LastCrawled < ?) ORDER BY NextCrawl
    LIMIT 100
    ?[1] Mon Jan 26 10:42:03 EST 2015
    ?[2] Mon Jan 26 10:12:03 EST 2015

    org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:438)
    org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:263)
    org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:109)
    org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:156)
    org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:140)
ERROR DavCrawler 2015-01-26 10:42:03,663 DavCrawler : Unexpected error
org.springframework.jdbc.UncategorizedSQLException: ExecutingSelector; uncategorized SQLException for SQL []; SQL state [25P02]; error code [0]; ERROR: current transaction is aborted, commands ignored until end of transaction block; nested exception is org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
    at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:124)
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
    at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:443)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:263)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:109)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:156)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:140)
    at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:135)
    at org.labkey.search.model.SavePaths.getPaths(SavePaths.java:308)
    at org.labkey.search.model.DavCrawler.findSomeWork(DavCrawler.java:529)
    at org.labkey.search.model.DavCrawler$1.run(DavCrawler.java:496)
Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:561)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:419)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:304)
    at org.labkey.api.data.dialect.StatementWrapper.executeQuery(StatementWrapper.java:603)
    at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.executeQuery(SqlExecutingSelector.java:384)
    at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.getResultSet(SqlExecutingSelector.java:324)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:249)
jeckels2015-01-29 16:15Jon (LabKey DevOps)2018-11-16 23:24Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

It sounds like one of the maintenance tasks is probably hitting an error and leaving the connection in a bad state. Can you try disabling/reenabling them (I'd recommend a binary search) to figure out which is causing the problem? After you're in this state, you'd probably need to restart Tomcat to clear the bad state as a way to prep for the next night.

Thanks,
Josh
Jon (LabKey DevOps)2015-02-04 17:06Jon (LabKey DevOps)2018-11-16 23:24Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Are you still seeing an issue here? Were you able to follow Josh's suggestion?

Regards,

Jon
bront@kcr.uky.edu2015-02-06 06:21Jon (LabKey DevOps)2018-11-16 23:24Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

We have tried disabling the maintenance tasks, and that seemed to help.

But yesterday we ran into a deadlock issue. The logs indicate that the issue still seems to be related to UPDATE search.CrawlCollections Set LastCrawled…

We're looking into it, but no we have not managed to completely isolate the issue.

Thanks,

bront
bront@kcr.uky.edu2015-03-04 06:59bront@kcr.uky.edu2015-03-04 06:59Uncategorized SQLException for SQLUncategorized SQLException for SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
hi,

Just wanted to follow-up on this issue. We never could adequately track the source of the problem, so we ended up rebuilding the server from the ground up. We are no longer experiencing this issue.

Thanks for your help and support.

bront
Matthew Bellew2017-01-14 09:26Matthew Bellew2017-01-14 09:26Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Note that frame:'div' is the simplest frame that supports bodyClass.
Leo Dashevskiy2017-01-13 17:54Leo Dashevskiy2017-01-13 17:54Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
What? Instead of fixing it, you guys just tweaked the docs... first time I'm encountering such a sneaky approach from LabKey :) Oh well ...
Jon (LabKey DevOps)2015-10-21 12:36Jon (LabKey DevOps)2018-11-16 23:23Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I added the bodyClass to an existing QWP I made like this:

var qwpDataset = new LABKEY.QueryWebPart({
             bodyClass: 'dataset-body',
             queryName: <some query>,
             schemaName: <some schema>,
             renderTo: <dome div id or el>
             });
   qwpDataset.render( <dome div id or el> );

Then I ran the following in the Google Developer Console:

$$(".dataset-body")

And got actual results (see screenshot).

Can you re-try it with the double $$ and double quotes?

Regards,

Jon
Leo Dashevskiy2015-10-21 14:14Jon (LabKey DevOps)2018-11-16 23:23Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
I tried with double quotes and double dollar sign and still an empty array.

Here is the equivalent part to what you showed in my own DOM:

<div id="ext-comp-1080" style="height: auto;" class="">
 <div>
  <form method="post" id="aqwp339" action="">...</form>
  <script type="text/javascript">...</script>
 </div>
</div>


Jon, the difference that I see is that you have both the "renderTo" config and the .render() call.

Can you try and see what you get with the way I have it, which is without the 'renderTo' config?


Moreover, I think you're rendering directly into the main web part's body, whereas my call is like this:

qwpDataset.render( cntDataset.getEl() );

where "cntDataset" is an Ext Container:

        var cntDataset = new Ext.Container({
            defaults: {
                border: false
            },
            items: [],
            layout: 'fit'
        });

which sits within another Ext Panel:

        var pnlData = new Ext.Panel({
            autoScroll: true,
            bodyStyle: 'padding: 1px;',
            defaults: {
                autoHeight: true,
                border: false,
                hideMode: 'offsets'
            },
            items: [ cntDataset ],
            tabTip: 'Data',
            title: 'Data'
        });

and pnlData in turn sits within a TabPanel:

        var pnlTabs = new Ext.TabPanel({
            activeTab: 0,
            autoHeight: true,
            defaults: {
                autoHeight: true,
                bodyStyle: 'padding: 4px;',
                border: false,
                forceLayout: true,
                hideMode: 'offsets',
                style: 'padding-bottom: 4px; padding-right: 4px; padding-left: 4px;'
            },
            deferredRender: false,
            forceLayout: true,
            items: [
                pnlData
            ],
            layoutOnTabChange: true,
            minTabWidth: 100,
            resizeTabs: true
        });

and finally that top panel sits within the parent-most panel, which renders into the web part's body:

Ext.namespace('LABKEY.ext');
                                                                                                                                               
LABKEY.ext.DataExplorer = Ext.extend( Ext.Panel, {
    constructor : function(config) {

// ALL THE CHILDREN CONTAINERS AND LOGIC FROM ABOVE

        this.border = false;
        this.boxMinWidth = 370;
        this.cls = 'ISCore';
        this.frame = false;
        this.items = pnlTabs;
        this.layout = 'fit';
        this.renderTo = config.webPartDivId;

        LABKEY.ext.DataExplorer.superclass.constructor.apply(this, arguments);
    }
});
Leo Dashevskiy2015-10-21 14:18Jon (LabKey DevOps)2018-11-16 23:24Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
To be fair the docs do say:

"A CSS style class that will be added to the enclosing element for the web part."

but since the target of rendering the QueryWebPart is not limited strictly to just the web part itself, I was expecting whatever the target is for it to receive that "bodyClass" config.

Does that not make sense?
That way one can manipulate that particular instance via CSS - that's one benefit of this I'm seeing and I'm after.

Shouldn't be a terribly difficult fix, right?

Thanks.
-Leo
Jon (LabKey DevOps)2015-10-21 17:35Jon (LabKey DevOps)2018-11-16 23:23Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I removed the renderTo: option and doing $$(".dataset-body") still worked for me.

It was only when I did $$(".dataset-body") did I get just an empty array like [].

Doing $(".dataset-body") throws up a TypeError on my end stating:

Uncaught TypeError: $ is not a function (...)

Is it possible to send me your full code without the comments that you're inserting into a wiki page? Trying to cobble your code together into what I have is throwing up a configuration error tied to the render() method.

Regards,

Jon
Leo Dashevskiy2015-10-21 18:06Jon (LabKey DevOps)2018-11-16 23:24Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I don't see the difference between your $$(".dataset-body") calls in 2nd and 3rd lines in the post above...


Ok, I think, I got to the bottom of it, sort of.

I initially included a stripped-down example for the sake of simplicity, but in fact I apparently omitted a part, which makes our 2 instances behave differently!

Go ahead and add

frame: 'none',

to your QueryWebPart config

Then query for the 'dataset-body' class once again - do you see it?

I say in this case, still, whatever it is that the QueryWebPart ended up being rendered into, it should still have the added class value specified in bodyClass.

-Leo
Jon (LabKey DevOps)2015-10-22 11:01Jon (LabKey DevOps)2018-11-16 23:24Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I confirmed what you stated, it does appear that when you add "frame: 'none'" to the QWP, the array is definitely empty.

I'll have to check on my end to see why this is the case, but I'm certain this might be a bug.

Regards,

Jon
Leo Dashevskiy2015-10-27 12:54Jon (LabKey DevOps)2018-11-16 23:23Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon, if there is already a bug report open in your own system regarding this, do you mind referencing it here and also adding me to the notification list, when the status changes?

Thanks.
Jon (LabKey DevOps)2015-10-27 15:34Jon (LabKey DevOps)2018-11-16 23:24Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

So far in investigating the behavior, this isn't quite a bug, but an old design that goes pretty far back in the code's history.

There is potential that if we do attempt to change the behavior, it may cause other parts of the UI to fail.

Can you provide me with an explanation on why this functionality is needed? By having a better understanding of the business need/impact, this will help prioritize the request to have the behavior to be changed.

Regards,

Jon
Leo Dashevskiy2015-10-28 10:06Jon (LabKey DevOps)2018-11-16 23:24Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Well, just being able to customize a particular instance via CSS and manipulate it via jQuery - I guess, that's the main benefit for me with this.
Jon (LabKey DevOps)2015-10-28 15:49Jon (LabKey DevOps)2018-11-16 23:24Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Leo,

I've setup bug #24681 for this.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=24681

Regards,

Jon
Leo Dashevskiy2015-10-29 10:44Jon (LabKey DevOps)2018-11-16 23:24Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Jon.

I cannot see how keeping the current behavior for webParts that have frames intact and creating the expected behavior for a webPart (just adding an extra custom class to its wrapper/parent), which has its frame config set to 'none', can cause other parts of the UI to fail. Unless, of course, the custom class is something wack, then the UI can fall apart, but that's up to the dev to specify the correct extra class...
Jon (LabKey DevOps)2015-10-29 11:20Jon (LabKey DevOps)2018-11-16 23:24Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I'm not sure how deep this goes, but a cursory glance at the code showed this is pretty old and a lot of components are now sitting on top of it. But you might be right and this may have no impact to the rest of the platform if modified.

We'll keep you informed to the status of this bug as we get more details.

Regards,

Jon
Jon (LabKey DevOps)2016-12-27 19:37Jon (LabKey DevOps)2016-12-27 19:37Unable to see the effect of the "bodyClass" config of LABKEY.QueryWebPartUnable to see the effect of the "bodyClass" config of LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

We've revised our documentation in 17.1 on the bodyClass via revision number r47410.

"Note, this may not be applied when used in conjunction with some "frame" types (e.g. 'none')."

Regards,

Jon
brittp2011-10-21 11:17Jon (LabKey DevOps)2018-11-16 23:23TZM Nab Assay Four ParameterTZM Nab Assay Four Parameter TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Aaron,

The NAb assay tool allows for customization of the plate template- you can access this feature via the 'configure templates' link in the assay design editor. Let me know if you have trouble finding it. It may be that you can use the tool as-is with some tweaks to the default plate layout. Otherwise, there isn't a way to generate these exact calculations from SQL or R, though I bet there's an R package out there that will do 4PL or 5PL curve fitting if you wanted to go that route.

The source code for the curve fits is written in Java, and is part of our open source distribution- the implementation can be found in the API module, in class org.labkey.api.assay.dilution.ParameterCurveImpl.

Thanks,
Britt
eknelson2010-06-11 16:33Jon (LabKey DevOps)2018-11-16 23:24typo in assay documentation?typo in assay documentation? TEXT_WITH_LINKSClosed     LabKey Support Forum
Indeed, this looks like a typo. Thanks for the tip -- feedback on documentation is very helpful and much appreciated. I've fixed the page.
Leo Dashevskiy2017-09-07 16:09Leo Dashevskiy2017-09-07 16:09Two innocuous little questionsTwo innocuous little questions TEXT_WITH_LINKSClosed     LabKey Support Forum 
Jon (LabKey DevOps)2017-09-02 00:05Jon (LabKey DevOps)2018-11-16 23:23Two innocuous little questionsTwo innocuous little questions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I'm not sure I understand the first question. The setting for those usually is set to TRUE for "isGuest" if the user is the guest (anonymous) user and "isSignedIn" if this user is signed in. Since guests don't actually login, it would make sense that the isSignedIn is set to FALSE for isGuest users.

Regarding the second question, I'm not seeing the behavior you're describing.

I created a list and created a column called "study_time_t0_event" and it appears as the header label as "Study Time T0 Event", so it should just replace all underscores with spaces, regardless of whether there is a number or not.

When I did this testing, it was in Trunk. What version of LabKey did you notice this behavior on?

Regards,

Jon
Leo Dashevskiy2017-09-05 14:49Jon (LabKey DevOps)2018-11-16 23:24Two innocuous little questionsTwo innocuous little questions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Jon!

1.
My question here was, is my assumption correct that there are only 2 configurations (not 4 like in generic case) for these 2 variables: either isGuest == true && isSignedIn == false or isGuest == false && isSignedIn == true ?
You said that isGuest == true && isSignedIn == true is not possible, which makes sense.
But neither is isGuest == false && isSignedIn == false, correct? If one is not signed in is their "role" automatically set to "guest"?

2.
Please, see: https://test.immunespace.org/study/Studies/SDY269/dataset.view?datasetId=5014&Dataset.viewName=full
I don't believe you're registered, but we have self-registration available there.
Let me know via ldashevs@fhcrc.org if you have any further questions...

Thanks.
-Leo
Jon (LabKey DevOps)2017-09-07 13:37Jon (LabKey DevOps)2018-11-16 23:24Two innocuous little questionsTwo innocuous little questions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Correct. If the user isn't actually logged in, the system automatically assumes they are a guest user and only allows guest privileges if they are actually applied in the permissions. If the guest user isn't assigned any permissions to read anything, then all the user gets is a login prompt no matter what page they try to access until they do log in.

Checking the other issue, I do see the field spelled out as "Study Time T0Event", but I have no ability to check the dataset configuration or to see the version of LabKey the server is running on due to my permission level.

If you do have Site Admin permissions, can you go to Admin > Site > Admin Console and confirm the version of LabKey the test server is running by going to the middle of the page and clicking the + sign next to where it lists the "Core" module? It should show a version number next to the word "Core" and expanding the section should also show a Build Number.

Regards,

Jon
Leo Dashevskiy2017-09-07 14:24Jon (LabKey DevOps)2018-11-16 23:23Two innocuous little questionsTwo innocuous little questions TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

It's great that you are able to see the column Caption. When hovering over it, though, were you able to see the underlying column name as "study_time_t0_event"?

The build number of LK from the Core module is 53240.42

Hm, you know what, I looked at the dataset definition and it had "Study Time T0Event" specified for the Label of that column. I was able to just add the space... I'll follow up with Matt shortly to see if he knows how the missing space came about - my assumption is that these Labels were generated programmatically somehow...

Thanks.
-Leo
Jon (LabKey DevOps)2017-09-07 14:30Jon (LabKey DevOps)2018-11-16 23:24Two innocuous little questionsTwo innocuous little questions TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Leo,

I do see the field name with the underscores. If the label is specified as such, it will render that way. But if the field label is blank, it should treat the values as spaces in lieu of underscores regardless of what values are next to it.

I'll test this out in a test version of LabKey using a version that is closer to the one you're running, but I suspect that this may have been user error since I can't reproduce the conditions so far beyond manually setting the Label of the field that way intentionally.

Regards,

Jon
Ben Bimber2015-11-23 11:38Jon (LabKey DevOps)2018-11-16 23:23Two enhancement ideas for Customize ViewTwo enhancement ideas for Customize View TEXT_WITH_LINKSClosed     LabKey Support Forum
hi andy,

yes, we also definitely nearly always set default views on tables, and I agree that tends to be really important in making a table friendly to users. we do all of the things you mention in terms of hiding unwanted default columns, often joining columns from other tables, etc. if you do this from a custom module, most of what you talk about can be done in .qview.xml files. if you define a set of columns in the default view, any other named view will inherit these columns even if not explicitly set. i do not think views created through the UI work like this, but i dont know for sure and it sounds like they do not based on your post.

also note, by default file-based views cannot be edited through the UI. however, in 15.3 you can choose to set 'canOverride=true' in the XML. this lets your module provide a default behavior, but still lets users choose to override it.

your column set idea is also something we've considered. honestly, i kinda like to rethink how column are selected. it'd be nice to have something simpler than current customize view (and that requires less knowledge of the schema structure) where you could choose to join in these sets of related columns.

-ben
Jon (LabKey DevOps)2015-04-14 10:19Jon (LabKey DevOps)2018-11-16 23:23Truncating listsTruncating lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Oliver,

Are you currently using the 15.1 version of LabKey? Within the 15.1 version, there's a "Delete All Rows" button that appears at the top buttonbar for lists in the UI.

Is that what you were looking for?

Regards,

Jon
Olivier2015-04-15 02:41Jon (LabKey DevOps)2018-11-16 23:24Truncating listsTruncating lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks, we are not on 15.1 yet but will update soon. Is there a similar function for 14.3?

Regards,
Olivier
Jon (LabKey DevOps)2015-04-16 15:07Jon (LabKey DevOps)2018-11-16 23:23Truncating listsTruncating lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Olivier,

There's a hacky way to pull this off in 14.3 using the XML Metadata below.

If you copied this in and changed the queryName to the name of the list, it would generate a button for you called Delete All Rows and that button would do the same job.

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="ListName" tableDbType="NOT_IN_DB">
    <columns></columns>
    <buttonBarOptions position="top" includeStandardButtons="true" >
      <item text="Delete All Rows">
          <onClick>Ext4.Msg.confirm('Confirm Deletion', 'Are you sure you wish to delete all rows? This action cannot be undone.', function(button){if (button == 'yes'){var waitMask = Ext4.Msg.wait('Deleting Rows...', 'Delete Rows'); Ext4.Ajax.request({ url : LABKEY.ActionURL.buildURL('query', 'truncateTable'), method : 'POST', success: function(response) {waitMask.close(); var data = Ext4.JSON.decode(response.responseText); Ext4.Msg.show({ title : 'Success', buttons : Ext4.MessageBox.OK, msg : data.deletedRows + ' rows deleted', fn: function(btn) { if(btn == 'ok') { window.location.reload(); } } })}, failure : function(response, opts) { waitMask.close(); Ext4.getBody().unmask(); LABKEY.Utils.displayAjaxErrorResponse(response, opts); }, jsonData : {schemaName : 'lists', queryName : 'INSERTLISTNAMEHERE'}, scope : this });}});</onClick>
      </item>
    </buttonBarOptions>
  </table>
</tables>

Regards,

Jon
michael_stover@urmc.rochester.edu2011-05-06 12:16Jon (LabKey DevOps)2018-11-16 23:23Trouble with Visit DaysTrouble with Visit Days TEXT_WITH_LINKSClosed     LabKey Support Forum
Also, when I then go and delete my visit days because I messed them up, it deleted all my vial and dataset data associated with that visit day. OOPS!
kevink2010-07-06 15:36Jon (LabKey DevOps)2018-11-16 23:23trouble with validation scriptstrouble with validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
The validation script should be named:

/queries/<schema>/<query>.js

so for your example the file should be "/queries/study/arrival.js"
Ben Bimber2010-07-06 15:51Jon (LabKey DevOps)2018-11-16 23:23trouble with validation scriptstrouble with validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
should have seen that - thanks. one more question:

i have this line to provide a default for the timestamp (ts) field:
row.ts = new Date().format("Y-m-d");

that would normally work, but it throwing an error in the validation script. error below:

500: Unexpected server error
com.sun.phobos.script.util.ExtendedScriptException: org.mozilla.javascript.EcmaError: TypeError: Cannot find function format in object Tue Jul 06 2010 17:49:37 GMT-0500 (CDT). (queries/study/Arrival.js#56) in queries/study/Arrival.js at line number 56

Is there a reason why that would throw an error?

thanks.
kevink2010-07-06 16:12Jon (LabKey DevOps)2018-11-16 23:24trouble with validation scriptstrouble with validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
The format method is an Ext extension to the Date prototype not available in the server side environment. It would be nice to support the ext core extensions on the server side. Here is a list of available methods:

https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date

If the column type is a Date type you should be able to just use "new Date()" instead of creating a string first.
Ben Bimber2010-07-06 16:20Jon (LabKey DevOps)2018-11-16 23:24trouble with validation scriptstrouble with validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
that makes sense. i didnt realize format() was ext.

I originally tried:
row.ts = new Date();

however, that resulted in this error:

Could not convert 'org.mozilla.javascript.NativeDate@1321992' for field ts, should be of type Date

That's why i started trying to make a string. Does that error make sense?
kevink2010-07-06 16:24Jon (LabKey DevOps)2018-11-16 23:23trouble with validation scriptstrouble with validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, for now you can use "new java.util.Date()" instead.
Ben Bimber2010-07-06 16:25Jon (LabKey DevOps)2018-11-16 23:24trouble with validation scriptstrouble with validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks.
Ben Bimber2010-07-08 14:53Jon (LabKey DevOps)2018-11-16 23:24trouble with validation scriptstrouble with validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
if i want to print a date as a string in the description field, is there an easy way to format it as 'yyyy-mm-dd' instead of the default long date string? below is the closest i came, but it seems like it should be simpler:

    dateString: function (date){
        date = new Date(date);
        return date.getFullYear()+'-'+(date.getMonth()<10 ? 0:'')+date.getMonth()+'-'+(date.getDate()<10 ? 0:'')+date.getDate();
    }
kevink2010-07-08 15:59Jon (LabKey DevOps)2018-11-16 23:23trouble with validation scriptstrouble with validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
There isn't any built-in Date formatting so your function is the best way to get the string you want.
marcia hon2018-02-01 07:27Jon (LabKey DevOps)2018-11-16 23:23Triggers - KeysTriggers - Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

I deleted schema and module. And redid testtriggers.module setup.

However, now I get this error: org.postgresql.util.PSQLException: ERROR: relation "testtriggers.Categories" does not exist Position: 107

Additionally, at Postgres, I do not see the schema "testtriggers".


Marcia
marcia hon2018-02-01 12:07Jon (LabKey DevOps)2018-11-16 23:24Triggers - KeysTriggers - Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Solved. The trick I used, was to do a "dos2unix" for the testtriggers.module file.
jeckels2011-10-03 08:57Jon (LabKey DevOps)2018-11-16 23:23trigger pipeline jobs using java client apitrigger pipeline jobs using java client api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Patrick,

Yes, we introduced this a couple of releases ago. Here's the JavaDoc:

https://www.labkey.org/download/clientapi_docs/java-api/doc/

For some example code that uses the the API to automate submission of searches, grab the source distribution from here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=sourceCode

The relevant file is org\labkey\remoteapi\test\MS2SearchClient.java.

Thanks,
Josh
ppirrotte@tgen.org2011-10-03 10:14Jon (LabKey DevOps)2018-11-16 23:24trigger pipeline jobs using java client apitrigger pipeline jobs using java client api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks for your prompt reply. I will study MS2SearchClient.java. At a first glance it seems to be what I'm looking for.

Kind regards,

Patrick
Jon (LabKey DevOps)2018-02-20 11:51Jon (LabKey DevOps)2018-02-20 11:51Transform scripts for preprocessing uploads to assay modulesTransform scripts for preprocessing uploads to assay modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Closing. Premium Ticket has been created for question.
Jon (LabKey DevOps)2020-02-03 11:18Jon (LabKey DevOps)2020-02-03 11:18Transformation script that also queries a LabKey List/Assay?Transformation script that also queries a LabKey List/Assay? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

We're going to address your question within your Premium Portal.

Regards,

Jon
Jon (LabKey DevOps)2018-04-20 12:28Jon (LabKey DevOps)2018-11-16 23:24Transformation ScriptsTransformation Scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

I'm not understanding your question here.

Transformation Scripts cannot be in SQL. They are either in Perl, Java, R, or Python as explained here:

https://www.labkey.org/Documentation/wiki-page.view?name=programmaticQC

ETLs also have no direct relation to assays as well, unless your module is doubling both as an ETL module and an Assay module (https://www.labkey.org/Documentation/wiki-page.view?name=moduleassay), which if you're talking about an Assay module, transformation scripts would have to be dictated in the config.xml file for the Assay module and using the transformation scripts XML tag - https://www.labkey.org/download/schema-docs/xml-schemas/schemas/assayProvider_xsd/elements/transformScript.html

Can you in full detail explain what you're working on in full? If we can get a full detailed description of what you're working on and what you're trying to accomplish here, we can provide you with a better and more thought out answer.

Regards,

Jon
Jon (LabKey DevOps)2015-03-05 19:32Jon (LabKey DevOps)2018-11-16 23:24Transformation script not providing AssayRunTSVData fieldTransformation script not providing AssayRunTSVData field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I haven't heard of anything like this before. Were there any error messages or anything unusual in your log files during the transformation script run?

Regards,

Jon
Will Holtz2015-03-05 19:50Jon (LabKey DevOps)2018-11-16 23:24Transformation script not providing AssayRunTSVData fieldTransformation script not providing AssayRunTSVData field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I found this:
INFO DbScope 2015-03-04 10:04:20,594 http-bio-443-exec-2 : Loading DbSchema "labkey.assayresult" (Module)
INFO DbScope 2015-03-04 10:04:20,608 http-bio-443-exec-2 : no schema metadata xml file found for schema 'assayresult'
INFO DbScope 2015-03-04 10:04:20,609 http-bio-443-exec-2 : Shouldn't be loading metadata for Provisioned schema 'assayresult'

-Will
Will Holtz2015-03-06 14:30Jon (LabKey DevOps)2018-11-16 23:23Transformation script not providing AssayRunTSVData fieldTransformation script not providing AssayRunTSVData field TEXT_WITH_LINKSClosed     LabKey Support Forum
I figured it out. My custom upload.html (sorry -- I forgot to mention that detail!) is based on the default from the general assay. My custom upload.html was supposed to have copied the behavior of the default of allowing multiple serial uploads without navigating way from or reloading the upload page. I realized today that the submission was always failing on the second serial submission without a page reload. Turns out I failed to reset all the properties of LABKEY.page.batch between submissions. Once I cleared all of those properties including lsid, it started working all the time.

-Will
jeckels2015-01-09 15:19Jon (LabKey DevOps)2018-11-16 23:24Transformation script file reported as missing when associated script engine is not installedTransformation script file reported as missing when associated script engine is not installed TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for the patch! It looks good to me. I've applied it locally and will commit it to the trunk sometime soon.

Thanks,
Josh
jeckels2015-01-13 09:23jeckels2015-01-13 09:23Transformation script file reported as missing when associated script engine is not installedTransformation script file reported as missing when associated script engine is not installed TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I checked in this change yesterday afternoon with revision 35955, so it will be part of 15.1.

Thanks,
Josh
marcia hon2018-02-12 07:18marcia hon2018-02-12 07:18Transformation ScriptTransformation Script TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you!
Jon (LabKey DevOps)2018-02-09 23:54Jon (LabKey DevOps)2018-02-09 23:54Transformation ScriptTransformation Script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Unfortunately, there are no options for Transformation scripts for datasets.

Datasets do have a thing known as Trigger Scripts, which have to be used within modules. The functionality of a Trigger Script is slightly different than a Transformation Script though since Transformation Scripts are attached to an assay design and are intended for transformation/validation of incoming assay data while Trigger Scripts are typically uses for altering incoming data or setting off cascading changes in other tables.

Please take a look at our Trigger Script documentation here for more information: https://www.labkey.org/Documentation/wiki-page.view?name=serverSideValidation

Regards,

Jon
Jon (LabKey DevOps)2018-06-29 12:54Jon (LabKey DevOps)2018-06-29 12:54Transformation JobsTransformation Jobs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

It does not appear so. Looking over the ETL Data Transforms webpart, the grid does not appear to be customizable.

Regards,

Jon
jeckels2010-04-19 15:43Jon (LabKey DevOps)2018-11-16 23:24Track Site Usage by User Group?Track Site Usage by User Group? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Try looking under Admin Console->Audit Log->User Events. The folder-level auditing doesn't track logins/logouts, but it's available from the root container ("/") to Site Admins.

Thanks,
Josh
Ben Bimber2010-04-19 15:58Jon (LabKey DevOps)2018-11-16 23:23Track Site Usage by User Group?Track Site Usage by User Group? TEXT_WITH_LINKSClosed     LabKey Support Forum
that's it, but can i write a query against that? we'd want to join this to core.groups and core.membership.

in case there isnt, I just figured out that I can point labkey to it's own pg tables as an external schema, which lets us directly query against the underlying postgres tables. this could be kinda useful whenever labkey stores information we need, but doesnt expose it...

querying the time of last study reload would be another example of storing the information, but not exposing it.
Ben Bimber2010-04-19 16:01Jon (LabKey DevOps)2018-11-16 23:24Track Site Usage by User Group?Track Site Usage by User Group? TEXT_WITH_LINKSClosed     LabKey Support Forum
i may have spoken too soon...our server has two labkey schemas on it and it's only letting me point to the other one. it would be quite useful if that were not the case.
adam2010-04-20 09:44Jon (LabKey DevOps)2018-11-16 23:24Track Site Usage by User Group?Track Site Usage by User Group? TEXT_WITH_LINKSClosed     LabKey Support Forum
Can you explain the problem further? Not sure what it means to have two labkey schemas... do you mean two labkey databases?

If you're experiencing namespace collisions with external schemas (e.g., schemas with the same name in different databases) know that this has been fixed in 10.2.
Ben Bimber2010-04-20 09:54Jon (LabKey DevOps)2018-11-16 23:23Track Site Usage by User Group?Track Site Usage by User Group? TEXT_WITH_LINKSClosed     LabKey Support Forum
careless word choice. on our production server we have two separate postgres databases, one called 'labkey' and one called 'labkey2'. not entirely sure why the first exists - probably an artifact from when tom setup or upgraded at some point, but it does hold the normal labkey schemas and tables. the database used by our site is 'labkey2'. when i try to define an external schema, I have the option of selecting 'labkey' as a data source (but not labkey2). I will double check this, but it appeared that when I selected 'labkey' i was viewing the non-used labkey database, instead of the labkey2 db which our production server uses. i forgot that we had two databases on our production server when i wrote my earlier post.

my interpretation was that labkey 10.1 allows us to point to any postgres database besides the one that's actively used by that labkey install. is that interpretation wrong?
adam2010-04-20 10:22Jon (LabKey DevOps)2018-11-16 23:24Track Site Usage by User Group?Track Site Usage by User Group? TEXT_WITH_LINKSClosed     LabKey Support Forum
Actually, you can define external schemas on any PostgreSQL (or SQL Server or SAS) data source you've defined in your labkey.xml file, including the core labkey data source, though for security and data integrity reasons we don't generally recommend exposing schemas in the core labkey data source as external schemas.

The data source drop-down shows a simplified version of the data source name as defined in labkey.xml, NOT the database name. So, in your case, I suspect your labkey.xml file defines a "labkeyDataSource" pointed at database "labkey2". This data source will appear as "labkey" in the drop-down list. If you haven't defined a data source for your "labkey" database then it won't appear in the list.
Ben Bimber2010-04-20 10:42Jon (LabKey DevOps)2018-11-16 23:24Track Site Usage by User Group?Track Site Usage by User Group? TEXT_WITH_LINKSClosed     LabKey Support Forum
you are correct about labkey.xml, but I think there's a second thing happening here:

I defined two different external schemas in labkey. they both use the 'labkey' data source (which looks like it is the postgres db labkey2), then I pointed it to the 'Audit' schema and gave it the name 'audit'. I then did exactly the same thing, but named it 'audit_db'. links below:

https://xnight.primate.wisc.edu:8443/labkey/query/WNPRC/EHR/executeQuery.view?schemaName=audit&query.queryName=auditlog

https://xnight.primate.wisc.edu:8443/labkey/query/WNPRC/EHR/executeQuery.view?schemaName=audit_db&query.queryName=auditlog

these return a different number of rows. the one called 'audit' returns a couple thousand, while the one called 'audit_db' returns 5 million. does the name 'audit' collide with something in labkey? does the 'audit' db somehow get labkey's default filter-by-container behavior? at least as it is exposed in the schema browser, the audit table provided by labkey is labeled 'auditLog'.

by giving the external schema a different name, it appears to work properly now. i understand the rationale behind avoiding exposing the underlying postgres data, but since this should be read-only I dont see a whole lot of harm here.
adam2010-04-23 16:09Jon (LabKey DevOps)2018-11-16 23:24Track Site Usage by User Group?Track Site Usage by User Group? TEXT_WITH_LINKSClosed     LabKey Support Forum
If I'm understanding correctly, "audit" is a built-in labkey schema and "audit_db" is the same underlying database schema defined as an external schema. These will behave differently. The built-in schemas know how all the tables relate to each other... in particular, they enforce folder security through joins and foreign keys. External schemas are more primitive: if a table has a "container" column, it's filtered to the current container; if not, the entire table is visible -- they aren't able to trace foreign keys to locate the parent table that has the container column. This is what you're seeing and one reason we generally recommend not exposing the internal schemas.
Ben Bimber2010-04-23 16:38Jon (LabKey DevOps)2018-11-16 23:24Track Site Usage by User Group?Track Site Usage by User Group? TEXT_WITH_LINKSClosed     LabKey Support Forum
i get that the underlying postgres table is not the same as what is exposed in labkey.

at least as it appears in the schema browser, the build-in table exposed by labkey is called auditlog, not audit. this would suggest that creating an external schema called 'audit' would not collide, but this does not seem to be true.

in the above post, I defined two external schemas, both of which pointed to the same underlying postgres table. for some reason, by giving one of them the name 'audit' it seems to inherit the behavior of the build-in auditlog table. I think this means that it probably should not be possible to define an external schema called 'audit'.
adam2011-08-10 08:04Jon (LabKey DevOps)2018-11-16 23:24tracking down an errortracking down an error TEXT_WITH_LINKSClosed     LabKey Support Forum
We should log more details for wiki rendering errors during indexing, and should recover from this specific error (e.g., removing the illegal URL); I'll open issues for these.

In the mean time, the easiest way to find this wiki is to search for the errant pattern in the wiki body, executing something like this PostgreSQL query:

  SELECT * FROM comm.PagesAndVersions WHERE Body LIKE '%=c%'

If you don't have direct access to the database, you can define a temporary external schema pointed at the comm schema (with a unique name, so it doesn't interfere with the built-in one) and then use a normal contains filter on the body column. You will need to define the external schema high enough in your folder hierarchy and apply a folder filter to the wiki-containing folders.

Adam
Ben Bimber2011-08-10 08:32Jon (LabKey DevOps)2018-11-16 23:24tracking down an errortracking down an error TEXT_WITH_LINKSClosed     LabKey Support Forum
hi adam,

i am assuming labkey is complaining about substitutions like <%=contextPath>. that query returns anything with a '=c', like 'schema=core', but i was able to tweak it and find the offenders. thanks.
adam2011-08-10 11:19Jon (LabKey DevOps)2018-11-16 23:24tracking down an errortracking down an error TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, LabKey does not support this kind of special substitution within wiki hrefs.
jeckels2018-01-05 17:53Jon (LabKey DevOps)2018-11-16 23:24TPP 5.0 - InteractParser - buffer overflow detectedTPP 5.0 - InteractParser - buffer overflow detected TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Toan,

This looks like a bug in InteractParser itself. I'd suggest posting this on the TPP support forum:

https://groups.google.com/forum/#!forum/spctools-discuss

It's possible that there is something that we could do differently to pass alternative arguments to avoid the crash, but there's not enough to go on in the error to immediately know what might avoid the problem.

Thanks,
Josh
Greg Taylor2014-08-08 13:29Jon (LabKey DevOps)2018-11-16 23:23Top level/Root level list available to lower projects.Top level/Root level list available to lower projects. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mark,
Yes, one may view data from one folder in another folder using 'cross-folder-queries'. Examples of how to write these queries is described in the following document page. Let me know if you have any further questions - we would be happy to help.
Greg

https://www.labkey.org/wiki/home/Documentation/page.view?name=crossFolderQueries
mark.shifman@yale.edu2014-08-08 13:51Jon (LabKey DevOps)2018-11-16 23:23Top level/Root level list available to lower projects.Top level/Root level list available to lower projects. TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks!! It worked!

You have to know what to ask! I was searching for "inherit list" and the like and would never have considered "cross folder query".

Thanks for the rapid reply.

mas
newton2010-11-29 15:23Jon (LabKey DevOps)2018-11-16 23:24TinyMCE and formattingTinyMCE and formatting TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi.

Are you doing it by adding something like the following in source mode?

<style>
* {
    background-color: #ff6600;
}
 </style>

I was able to reproduce the issue you are describing by including the above, flipping to Visual mode and then saving (tinyMCE removes the <style> tag and comments out the css code).


I entered a ticket on this issue at https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=11333

There is nothing you can do in the UI to make this work as far as I can tell.

I did find a potential fix for this as discussed in the ticket, but we need to see if there are any undesired side effects before applying it.

thanks!
georgesn2011-02-17 14:00Jon (LabKey DevOps)2018-11-16 23:24TinyMCE and formattingTinyMCE and formatting TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Aaron, Sorry for the delay. If this is still important to you, can you please give us a sample of the syntax you're trying to use?

Thanks.
jeckels2017-09-12 15:04Jon (LabKey DevOps)2018-11-16 23:24Timing of new UI Changes?Timing of new UI Changes? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

17.3 will only support the new UI/UX. The trunk currently supports both, though new development is really only being tested with the new look. We're hoping to wrap up converting automated tests by the end of this month, and then we'll start ripping out the conditional code to support the old UI.

Server-side, you can call PageFlowUtil.useExperimentalCoreUI() to see which mode the server is running in.

Client side, you can check the LABKEY.experimental.useExperimentalCoreUI property.

Since there are continuing edits to the new UI happening now, it's fine to start playing with it for your code in 17.2, but you'll really have to wait for 17.3 to be able to finalize any changes.

Thanks,
Josh
Will Holtz2015-03-17 13:54Jon (LabKey DevOps)2018-11-16 23:23Time to Rethink the GridTime to Rethink the Grid TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I certainly agree with your basic premise that users (including myself) are slow to understand how to utilize the main features of data grids in Labkey. These powerful features are an important part of why I've chosen to deploy Labkey. There seems to be a trend in UI design of simplifying interfaces so far that the functionality is also constrained. I'd hope that any revamp doesn't trade functionality for usability, but rather improves usability without loosing functionality.

-Will
mohara2015-03-21 13:26Jon (LabKey DevOps)2018-11-16 23:24Time to Rethink the GridTime to Rethink the Grid TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you for starting this conversation here and sharing this great feedback on grids. As you mention, we're actively working on improving the user experience without ever compromising functionality. Direct input from our user community is invaluable, so I hope this thread will continue as a sort of suggestion box. We hear you!

--Molly
Matthew Bellew2012-11-09 08:58Jon (LabKey DevOps)2018-11-16 23:23Timestamps with Timezones in Database Tables?Timestamps with Timezones in Database Tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
This is a tricky area.

* Java is timezone aware so in dates in code can easily be translated to another timezone for display for instance.

* databases typically store datetimes without timezones

So we simply translate datetimes to the server's timezone before writing to the database. This all works pretty consistently, and works for most uses.

If you connect an external database with a column where the timezone is remembered with the column I expect we should display the "correct" time. However, since we don't carry the 'preferred' timezone around it will be translated into the server's timezone when formatted.

It would be possible in the future to switch away from java.util.Date to java.util.Calendar which does remember a timezone, but it would require a bit of testing.
slangley@scharp.org2012-11-09 13:32Jon (LabKey DevOps)2018-11-16 23:24Timestamps with Timezones in Database Tables?Timestamps with Timezones in Database Tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
I'll add here the comments of our Andrew Nierman who would also like to weigh in:

That may be true, but I’d say the “best practice” is to store dates in UTC w/ the time zone offset and let the client’s timezone setting translate it for them as needed.
  
Here’s a decent SO “question” on this topic:
http://stackoverflow.com/questions/2532729/daylight-saving-time-and-timezone-best-practices
  
and I’d definitely second the SO recommendation to use JodaTime over any of the Java Library time/date libraries.
jeckels2014-06-05 15:40Jon (LabKey DevOps)2018-11-16 23:24Time chart list doesn't display under chart menu of user-defined query viewTime chart list doesn't display under chart menu of user-defined query view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Yes, as you've noticed time charts are currently only supported for study datasets. That's because they need to know how to find the date information, align timepoints across participants, and other features that require knowledge of the tables and schemas.

Thanks,
Josh
cnathe2011-06-28 07:18Jon (LabKey DevOps)2018-11-16 23:24Time Chart Interval problemsTime Chart Interval problems TEXT_WITH_LINKSClosed     LabKey Support Forum
Jen,
The first dropdown on the left under "Calculate interval between:" is looking in the study for date fields from datasets that are marked as "Demographic" (i.e. datasets that have one record per subject/participant). Do you know if your study has any datasets with dates in them that are of type demographic?
-Cory
jdutra2011-06-28 07:27Jon (LabKey DevOps)2018-11-16 23:24Time Chart Interval problemsTime Chart Interval problems TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for your quick response, Cory. I think we may have avoided marking datasets as "demographic" because we felt it was causing some sort of problem. Of course we have demographic datasets, so I'll have to try marking them as such.

- Jen
Jon (LabKey DevOps)2015-08-26 17:13Jon (LabKey DevOps)2018-11-16 23:24The rules around what gets replaced and what gets added when reuploading a folder structureThe rules around what gets replaced and what gets added when reuploading a folder structure TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

Based on what I'm seeing, if you wanted to have a custom module to actually create folders, it looks like you would have to write your code in Java and specifically leverage the functionality that is in the AdminController.java code that is located under org.labkey.core.admin

So is the workflow supposed to be where this custom module creates folders all by itself?

Regards,

Jon
alx dobre2015-08-27 02:20Jon (LabKey DevOps)2018-11-16 23:23The rules around what gets replaced and what gets added when reuploading a folder structureThe rules around what gets replaced and what gets added when reuploading a folder structure TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Jon,

The overall goal I am trying to achieve is automated build and deployment for our LabKey configuration, as detailed in my latest reply in this thread: https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=11385

I suspected we may be able to do a lot with a custom JAVA module, however I am not keen to explore that alternative at least not without paying you guys for expert assistance cause with the relatively sparse documentation on the JAVA module side and the interesting combination of Spring and GWT which I am very curious how you make work ... I guess they just run side by side as they have completely different mechanisms for doing web content ... I would be further curious if I could use GWT 2.7 inside a custom module as I saw you guys use an older version... I would really like to leverage the UI binder feature too...
Oh and let's not forget the change cycle as in how fast can I see my code change on my browser while developing for it. I'm spoiled by GWT applications and I like the cycle to be close to instantaneous.

But that's all neither here nor there, I probably won't get the chance to dive that deep.
Jon (LabKey DevOps)2015-08-28 12:11Jon (LabKey DevOps)2018-11-16 23:24The rules around what gets replaced and what gets added when reuploading a folder structureThe rules around what gets replaced and what gets added when reuploading a folder structure TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

Was Ben's answer in https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=11385 work for you regarding this question as well?

Regards,

Jon
alx dobre2015-08-29 02:56Jon (LabKey DevOps)2018-11-16 23:23The rules around what gets replaced and what gets added when reuploading a folder structureThe rules around what gets replaced and what gets added when reuploading a folder structure TEXT_WITH_LINKSClosed     LabKey Support Forum
Well, regarding the initial thread question "The rules around what gets replaced and what gets added when reuploading a folder structure", the answer is pretty clear from this thread. We will have to take into account that if we rename a query and reupload, the old query will still be there.

A minor gripe in the grand scheme of things.

I am glad I got all the other critical pieces together. I can export my structure, I can modify and build it using a script, then I can upload it using the commands you gave me.

That will do :)

Thank you for all the help :)
brittp2010-09-30 16:37Jon (LabKey DevOps)2018-11-16 23:23The keys[] array in Query.ModifyRowsResults?The keys[] array in Query.ModifyRowsResults? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

This looks like a bug. I've entered it here:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10842

Are you able to work around the issue for now?

Thanks,
Britt
slangley@scharp.org2010-09-30 16:40Jon (LabKey DevOps)2018-11-16 23:24The keys[] array in Query.ModifyRowsResults?The keys[] array in Query.ModifyRowsResults? TEXT_WITH_LINKSClosed     LabKey Support Forum
Sure. I'm working around it by adding the extra code to look inside the row array for the known primary key field.

It would simplify my coding if that wasn't necessary.

Scott.
brittp2010-09-30 16:42brittp2010-09-30 16:42The keys[] array in Query.ModifyRowsResults?The keys[] array in Query.ModifyRowsResults? TEXT_WITH_LINKSClosed     LabKey Support Forum
Sounds good. Hopefully we can get this fixed in the 10.3 release, due out in late October. Thanks for the report!

-Britt
adam2013-07-30 22:52Jon (LabKey DevOps)2018-11-16 23:24The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.pathThe APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path TEXT_WITH_LINKSClosed     LabKey Support Forum
I've never seen this show up as a build problem; it's (typically) a Tomcat warning that appears at webapp startup time. It's not a real problem or error... we don't actually recommend using APR, so every deployment logs this warning. The webapp should run just fine, despite the warning.

If LabKey Server is not responding to requests after startup then likely something else is going on. We'll need to see a full log to help further.

Adam
rubiaasharaf92222013-07-30 23:51Jon (LabKey DevOps)2018-11-16 23:24The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.pathThe APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path TEXT_WITH_LINKSClosed     LabKey Support Forum
D:\jdk1.7.0_02\bin\java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:1616,suspend=y,server=n -Djava.endorsed.dirs=D:\apache-tomcat-6.0.37-windows-x64\apache-tomcat-6.0.37/common/endorsed -Dcatalina.base=D:\apache-tomcat-6.0.37-windows-x64\apache-tomcat-6.0.37/ -Dcatalina.home=D:\apache-tomcat-6.0.37-windows-x64\apache-tomcat-6.0.37/ -Djava.io.tmpdir=D:\apache-tomcat-6.0.37-windows-x64\apache-tomcat-6.0.37/temp -Ddevmode=true -ea -Dsun.io.useCanonCaches=false -Xmx768M -XX:MaxPermSize=1024M -classpath "D:\apache-tomcat-6.0.37-windows-x64\apache-tomcat-6.0.37/bin/bootstrap.jar;C:\Users\Jalal\AppData\Roaming\JetBrains\IntelliJ IDEA Community Edition 12.1.3/lib/idea_rt.jar" -Dlabkey.externalModulesDir=D:\temp -javaagent:C:\Users\Jalal\.IdeaIC12\system\groovyHotSwap\gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start
Connected to the target VM, address: '127.0.0.1:1616', transport: 'socket'
Jul 31, 2013 12:06:22 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\jdk1.7.0_02\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Users\Jalal\AppData\Roaming\JetBrains\IntelliJ IDEA Community Edition 12.1.3\bin\..\.\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Toshiba\Bluetooth Toshiba Stack\sys\;C:\Program Files (x86)\Toshiba\Bluetooth Toshiba Stack\sys\x64\;C:\Apache Ant\apache-ant-1.8.4\bin;D:\jdk1.7.0_02\bin;D:\apache-tomcat-6.0.37-windows-x64\apache-tomcat-6.0.37;D:\jdk1.7.0_02;D:\LabKey\external\ant\bin;D:\LabKey\external\bin;c:\users\jalal\appdata\roaming\jetbrains\intellij idea community edition 12.1.3\jre\jre\bin;.
Jul 31, 2013 12:06:23 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jul 31, 2013 12:06:23 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2104 ms
Jul 31, 2013 12:06:23 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jul 31, 2013 12:06:23 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.37
Jul 31, 2013 12:06:23 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor labkey.xml
Jul 31, 2013 12:06:24 PM org.apache.catalina.loader.WebappLoader start
SEVERE: LifecycleException
java.lang.ClassNotFoundException: org.labkey.bootstrap.LabkeyServerBootstrapClassLoader
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:186)
    at org.apache.catalina.loader.WebappLoader.createClassLoader(WebappLoader.java:803)
    at org.apache.catalina.loader.WebappLoader.start(WebappLoader.java:661)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4575)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Jul 31, 2013 12:06:24 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start:
LifecycleException: start: : java.lang.ClassNotFoundException: org.labkey.bootstrap.LabkeyServerBootstrapClassLoader
    at org.apache.catalina.loader.WebappLoader.start(WebappLoader.java:709)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4575)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Jul 31, 2013 12:06:24 PM org.apache.catalina.startup.HostConfig deployDescriptor
SEVERE: Error deploying configuration descriptor labkey.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: LifecycleException: start: : java.lang.ClassNotFoundException: org.labkey.bootstrap.LabkeyServerBootstrapClassLoader
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:803)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Jul 31, 2013 12:06:24 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Jul 31, 2013 12:06:24 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Jul 31, 2013 12:06:25 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Jul 31, 2013 12:06:25 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Jul 31, 2013 12:06:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory host-manager
Jul 31, 2013 12:06:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
Jul 31, 2013 12:06:25 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Jul 31, 2013 12:06:26 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jul 31, 2013 12:06:26 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jul 31, 2013 12:06:26 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/87 config=null
Jul 31, 2013 12:06:26 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2811 ms
jeckels2013-08-05 16:07Jon (LabKey DevOps)2018-11-16 23:23The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.pathThe APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

The error message "java.lang.ClassNotFoundException: org.labkey.bootstrap.LabkeyServerBootstrapClassLoader" indicates that the server isn't finding labkeyBootstrap.jar correctly. A successful Ant build should drop that file into TOMCAT_HOME/lib, which on your system is D:\apache-tomcat-6.0.37-windows-x64\lib. It is possible that the CATALINA_HOME environment variable is pointing at a different Tomcat installation?

Thanks,
Josh
jeckels2008-04-01 14:37Jon (LabKey DevOps)2018-11-16 23:24test error:JDWP No transportstest error:JDWP No transports TEXT_WITH_LINKSClosed     LabKey Support Forum
Bill,

I haven't seen that error in a long time but I did run into it periodically at a previous job. The only way to clear it was to reboot, as you've experienced. If you want to defer the reboot, you can make a quick edit to the build.xml so that it uses a different port (other than 5005) to list for debugger connections. 5005 is still locked up until you reboot, but if the test's VM is pointing to 5006, it doesn't matter.

I'm not sure which version of Java you're running, but it's possible that this bug is fixed in JDK 1.6. I don't think I've seen it since I switched.

Josh
jeckels2015-10-16 09:24Jon (LabKey DevOps)2018-11-16 23:24tell production server to look for modules in secondary location?tell production server to look for modules in secondary location? TEXT_WITH_LINKSClosed     LabKey Support Forum
By default, the server will look in ./externalModules as well as ./modules:

https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleUpgrades

You can override this to point at a different location using the -Dlabkey.externalModulesDir system property on the command-line for starting up the Tomcat VM.

Thanks,
Josh
Ben Bimber2015-10-16 09:29Jon (LabKey DevOps)2018-11-16 23:24tell production server to look for modules in secondary location?tell production server to look for modules in secondary location? TEXT_WITH_LINKSClosed     LabKey Support Forum
that's it. just couldnt remember the name. thanks.
jeckels2011-07-15 17:24Jon (LabKey DevOps)2018-11-16 23:23TB Server Issue Tracker CrashTB Server Issue Tracker Crash TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Melissa,

This happened because you renamed two of the issue tracker fields to the same name, "(Admin Only)". I was able to get to the admin page on your server (it still worked OK, but the error prevented us from showing the button to get there, meaning you had to know the right URL) and reset the names to the default. It's working normally again.

I'll open a bug to prevent this problem in the future, but for now you should be OK if you don't reuse the same name for multiple fields.

Thanks,
Josh
jeckels2009-07-10 13:22Jon (LabKey DevOps)2018-11-16 23:23Take thumbnail of URL home pageTake thumbnail of URL home page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

I think you may have come to the wrong forum - this is for developers using and extending LabKey Server. I think that you might have better luck on a more general purpose Java forum.

Thanks,
Josh
Jon (LabKey DevOps)2018-09-04 20:59Jon (LabKey DevOps)2018-09-04 20:59Tables - Change Values for Multiple RowsTables - Change Values for Multiple Rows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Anthony is correct. Other than using the API, there is nothing else in LabKey that can support a multiple row edit.

Regards,

Jon
Jon (LabKey DevOps)2018-09-05 09:56Jon (LabKey DevOps)2018-09-05 09:56Tables - Change Values for Multiple RowsTables - Change Values for Multiple Rows TEXT_WITH_LINKSClosed     LabKey Support Forum
Update: I forgot about one possible thing. There is a bulk edit UI option, but it isn't something that can be easily accessed.

This is tied to a query-updateQueryRows.view page to which you could wire up a button in your grid view via XML Metadata to do a bulk selection.

This isn't all that different than the API update, but does require some more experience with using the LABKEY.ActionURL.buildURL function:

https://www.labkey.org/Documentation/wiki-page.view?name=url

 Also, the UI itself will look a little unusual since it will show what appears to be empty fields if information is different between various rows.

Regards,

Jon
trent2011-10-13 21:42trent2011-10-14 03:25Table Metadata XML Mutliple Attributes in UpdateUrlIs Table Metadata XML Not intended for wiki pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
oh yep! I was trying the percentage encoding, but of course that just makes the name attribute have the & characer. Thanks :-)
trent2011-10-19 17:52trent2011-10-23 16:06Table Metadata XML Mutliple Attributes in UpdateUrlIs Table Metadata XML Not intended for wiki pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
There seems to be a bug with tableUrl and gridUrl in that it doesn't allow you to leave them blank and just results in an Unexpected Exception.

Actually, im not sure what gridUrl is for? I thought it would be for the details link, but i think that's what tableUrl is for. anyway, i tried to leave it blank, but it just results in an 'Unexpected exception'. Tried multiple places, different projects, all resulting in the same error.
marki2011-10-13 21:33Jon (LabKey DevOps)2018-11-16 23:24Table Metadata XML Mutliple Attributes in UpdateUrlIs Table Metadata XML Not intended for wiki pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
The & character needs to be encoded in the XML. I think it might need to be &amp in your URL.
marki2011-10-13 21:35Jon (LabKey DevOps)2018-11-16 23:24Table Metadata XML Mutliple Attributes in UpdateUrlIs Table Metadata XML Not intended for wiki pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
That is &amp; with the semicolon
jeckels2009-04-15 10:26Jon (LabKey DevOps)2018-11-16 23:24 table column Container table column Container TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

Almost every module should have tables with a container column. There are a few cases where there is data that is shared across all the folders on a server, like the proteins loaded from FASTA files, but the vast majority is segmented into folders to make it easier to organize.

If a table contains data that is tied to data in another table, we'll usually just store the container on the parent table. For example, MS2 peptide identifications are always loaded in the context of an MS2 run, so we store the container on the run table, not the peptides table.

Thanks,
Josh
marki2010-03-29 09:59Jon (LabKey DevOps)2018-11-16 23:24sync data between development and test servers?sync data between development and test servers? TEXT_WITH_LINKSClosed     LabKey Support Forum
We frequently dump databases from one server and load them on another & it works pretty well.

There are a couple of things to watch out for however.
1) Login. You will probably want to make sure you have a non-LDAP Site Admin login on the source server. LDAP might work on another server, but might not.

2) https/ports . If the original is set up on https or on a different port than yours that might present problems. You might need to configure this in the database by directly editing prop.properties table in the database before startup. You probably want to set sslRequired to false
Leo Dashevskiy2013-06-03 11:46Leo Dashevskiy2013-06-03 11:46SVN revision 26741: [Search] module experienced errors during startupSVN revision 26741: [Search] module experienced errors during startup TEXT_WITH_LINKSClosed     LabKey Support Forum
That was it. Thanks, Josh!
jeckels2013-06-03 11:24Jon (LabKey DevOps)2018-11-16 23:23SVN revision 26741: [Search] module experienced errors during startupSVN revision 26741: [Search] module experienced errors during startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

You'll need to do an "ant rebuild". Adam checked in a new version of Lucene today, but the old JAR file is likely sitting in your local development deployment.

Any time you see a "java.lang.NoSuchFieldError" or "java.lang.NoSuchMethodError", there's a very good chance that doing an "ant rebuild" will fix it.

Thanks,
Josh
Jon (LabKey DevOps)2015-05-04 23:38Jon (LabKey DevOps)2018-11-16 23:23Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michelle,

Although ExtJS code in general can be set to use a blank like in the following example here:

https://fiddle.sencha.com/#fiddle/d8h

I'm not certain how we'd be able to render it properly within the Survey Editor. You can use a &nbsp; as a value so the dropdown appears with a blank, but without something to swap out the &nbsp; with an actual empty value upon selection, you will literally see "&nbsp;" as the selected option.

Regarding the likert scale, I haven't found any examples of ExtJS being able to pull this off (I've seen HTML ones only). However, I will confirm with our developers whether if a Likert scale is possible or not and whether a proper blank combobox solution.

Regards,

Jon
Jon (LabKey DevOps)2015-05-05 17:09Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michelle,

So there is a way to do both things successfully.

This is the code sample for a combobox dropdown that will allow you to have a blank:

        {
          "extConfig": {
            "width": 800,
            "hidden": false,
            "xtype": "combo",
            "name": "choices",
            "fieldLabel": "choices",
            "queryMode": "local",
            "displayField": "Text",
            "valueField": "value",
            "emptyText": "Select...",
            "forceSelection": true,
            "displayTpl": "<tpl for='.'><tpl if='Text != \"&nbsp;\"'>{Text:htmlEncode}</tpl></tpl>",
            "store": {
              "fields": [{"name": "Text"}, "value"],
              "data" : [
                {"Text": "&nbsp;", "value": "0"},
                {"Text": "Bacon", "value": "Bacon"},
                {"Text": "Eggs", "value": "Eggs"},
                {"Text": "Waffles", "value": "Waffles"},
                {"Text": "Pancakes", "value": "Pancakes"}
              ]
            }
          }
        }

Now, to create something that looks like a Likert scale, you can use radio buttons to accomplish this. The example code is below:

        {
          "extConfig": {
            "width": 800,
            "hidden": false,
            "fieldLabel": "Some Radio",
            "xtype": "radiogroup",
            "name": "someradio",
            "columns": 5,
            "items": [
              {
                "boxLabel": "Item 1",
                "name": "some",
                "inputValue": 1
              },
              {
                "boxLabel": "Item 2",
                "name": "some",
                "inputValue": 2
              },
              {
                "boxLabel": "Item 3",
                "name": "some",
                "inputValue": 3
              },
              {
                "boxLabel": "Item 4",
                "name": "some",
                "inputValue": 4
              },
              {
                "boxLabel": "Item 5",
                "name": "some",
                "inputValue": 5
              }
            ]
          }
        }

Give these a try and let us know if you have any further questions.

Regards,

Jon
michele monnardfeller2015-05-20 03:31Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you very much!

It's working like it should.

But I have another question: Is it possible to insert images in a survey? I tried to insert a footer-wiki with images but it's not really pretty and we always have to scroll up to answer the questions about the images...

Regards,

Michele
Jon (LabKey DevOps)2015-05-20 15:21Jon (LabKey DevOps)2018-11-16 23:23Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michelle,

Can you give me some more detail. When you say you want to insert images into the survey, where are you wanting the images to go specifically?

Can you provide us with a mock-up graphic or something visual to get a better understanding of what you're needing here?

Regards,

Jon
michele monnardfeller2015-05-28 02:34Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thank you for your help. I send you some attachments for better understandig what we would like to do....

Regards,

Michele
michele monnardfeller2015-05-28 02:55Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I have another question: I have another survey with likert scales. The answers are very long and it looks not really pretty. Is there a possibility to arrange the items in a better way (horizontally?)?

Thanks a lot

Michele
Jon (LabKey DevOps)2015-05-31 21:47Jon (LabKey DevOps)2018-11-16 23:23Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michelle,

Thanks for the graphics, but the first mock-up is a little confusing. You have one image that has four options underneath like having a Likert choice underneath the photo, but then the other graphics below it appears that each line would have some kind of hyperlink to show the image instead. Were you trying to do a likert question with an image above it or the other option?

As for the long answers, if you change the option to where you only have columns set to "1", the choice will stack as:

1. Text
2. Text
3. Text
4. Text

Rather than:

1. Text 2. Text. 3. Text 4. Text

Regards,

Jon
michele monnardfeller2015-06-01 04:02Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon

Thanks for you help (so easy, but effective!)! And sorry confusing you! I try it again. It should look like this.....

Regards,

Michèle
Jon (LabKey DevOps)2015-06-01 12:00Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michele,

Can you send us the example again? It didn't come across in your reply.

Regards,

Jon
michele monnardfeller2015-06-02 02:31Jon (LabKey DevOps)2018-11-16 23:23Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon

Sorry about that! It's my fault!.....
Jon (LabKey DevOps)2015-06-02 23:18Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsSurvey drop-down lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Michele,

It took a bit, but I believe I have an adequate solution for what you're looking for.

So obviously for the radio buttons to be stacked in a single column, you would have to set your columns to 1, but the trickier part was two things:

1. Finding a way to render images.

2. Finding a way to render the question with the image as:

QUESTION | IMAGE | MULTIPLE CHOICE ANSWERS

or

QUESTION | MULTIPLE CHOICE ANSWERS | IMAGE

So my idea was for you to use tables and since the radiogroup option already sets itself up as QUESTION | MULTIPLE CHOICE ANSWERS, I figured that we could use the second option and have two cells like this:

[QUESTION | MULTIPLE CHOICE ANSWERS] [IMAGE]

This would have the radiogroup in one cell and the image in the other. The image would be rendering via HTML tags.

So using your original Brice survey code and paring down the information to make a basic working model, I came up with the following:

{
  "survey" : {
    "sections" : [{
      "title" : "BRICE Interview",
      "collapsible" : true,
      "description" : null,
       "questions" : [{
             "extConfig": {
                  "xtype": "panel",
                  "layout": {
                      "type": "table",
                      "columns": 2
                       },
             "items": [{
                            "hidden": false,
                       "fieldLabel": "1. Letzte Erinnerungen bevor Sie einschliefen?",
                         "xtype": "radiogroup",
                         "name": "erinvor",
                         "columns": 1,
                         "items": [{
                            "boxLabel": "im OP-Bereich / Wartezone zu sein",
                            "name": "erinvor",
                            "inputValue": "a. im OP-Bereich/Wartezone zu sein"
                              },{
                            "boxLabel": "im OP-Saal zu sein",
                            "name": "erinvor",
                            "inputValue": "b. im Operationssaal zu sein"
                              },{
                            "boxLabel": "mit Angehörigen zu sein",
                            "name": "erinvor",
                            "inputValue": "c. mit Ihren Angehörigen zusammen zu sein"
                              },{
                            "boxLabel": "Stimmen zu hören",
                            "name": "erinvor",
                            "inputValue": "d. Stimmen zu hören"
                            }]
                         },{
                              "xtype": "panel",
                             "html": "<img src='http://www.google.com/images/srpr/logo11w.png' width='200'/>"
                         }]
                     }
                  }],
      "header" : true
    }],
    "showCounts" : false,
    "layout" : "card"
  }
}

I decided to use the Google Logo just to show that you can use a full URL with the HTML tag.

You'll have to do some tweaking of the widths within each item/cell, but I think this should work as a decent template for you to build off of.

Regards,

Jon
michele monnardfeller2015-06-19 00:59Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsRadio Buttons/Rendering Images and Skip Logic TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon

Thanks a lot for your help! It works. But I still have two Problems.....

Regards,

Michele
Jon (LabKey DevOps)2015-06-24 12:45Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsRadio Buttons/Rendering Images and Skip Logic TEXT_WITH_LINKSClosed     LabKey Support Forum
Michele,

I'm having difficulty opening your attachment. Can you tell me specifically what the problem is?

Regards,

Jon
michele monnardfeller2015-06-26 02:25Jon (LabKey DevOps)2018-11-16 23:23Survey drop-down listsRadio Buttons/Rendering Images and Skip Logic TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon

A PDF is probably better?.....

Regards,

Michele
Jon (LabKey DevOps)2015-06-26 21:52Jon (LabKey DevOps)2018-11-16 23:24Survey drop-down listsRadio Buttons/Rendering Images and Skip Logic TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michele,

Thank you for the PDF file.

It looks like you just need to dictate the widths within your code for each section so it will align properly.

I however still don't understand the other part you're talking about. What exactly is your question regarding the Text Field w/Skip Logic?

Regards,

Jon
Jon (LabKey DevOps)2015-09-29 11:00Jon (LabKey DevOps)2018-11-16 23:23Survey Designer issue with "useDefaultLabel" optionSurvey Designer issue with "useDefaultLabel" option TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vincent,

You will need to nest the options in a start object, like this:

"start" : {
  "useDefaultLabel" : true
  "layout" : "auto",
  "showCounts" : false,
  ...
},

Regards,

Jon
vincentR2015-10-01 03:17Jon (LabKey DevOps)2018-11-16 23:23Survey Designer issue with "useDefaultLabel" optionSurvey Designer issue with "useDefaultLabel" option TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

many thanks for your quick reply, however I still have the same issue even with the modification you suggest:
{
  "survey" : {
     "start" : {
        "useDefaultLabel": true,
        "layout" : "auto",
        "showCounts" : false,
        "description" : null
     },
    "sections" : [ {
       "description" : null,
       "header" : true,
      "title" : "LabkeyMIC Access Requests",
      "collapsible" : true,
      "questions" : [ {
...
}

Could you please share with me a JSON description which behaves as expected when it comes to hidding "Sudy Label"
many thanks,

Vincent.
Jon (LabKey DevOps)2015-10-01 13:12Jon (LabKey DevOps)2018-11-16 23:24Survey Designer issue with "useDefaultLabel" optionSurvey Designer issue with "useDefaultLabel" option TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vincent,

It would actually be better if you could provide me with your code instead. I was able to hide the survey label without any issue.

What I did was to follow this tutorial to make a list with a few fields, then use the survey page to generate my questions:

https://www.labkey.org/wiki/home/Documentation/page.view?name=survey

This created the ExtJS that started like this:

{
  "survey" : {
    "layout" : "auto",
    "showCounts" : false,
    "sections" : [ {
      "questions" : [ {
        "name" : "FirstName",
        "caption" : "FirstName",
        "shortCaption" : "FirstName",
        "hidden" : false,
        "jsonType" : "string",..........


All I did was this:

{
  "survey" : {
    "layout" : "auto",
    "showCounts" : false,
     "start": {
        "useDefaultLabel": true
     },
    "sections" : [ {
      "questions" : [ {
        "name" : "FirstName",
        "caption" : "FirstName",
        "shortCaption" : "FirstName",
        "hidden" : false,
        "jsonType" : "string",........


Can you give this a try?

Regards,

Jon
vincentR2015-10-01 13:51Jon (LabKey DevOps)2018-11-16 23:24Survey Designer issue with "useDefaultLabel" optionSurvey Designer issue with "useDefaultLabel" option TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I followed your instructions, but I still can't hide the 'Survey Label'.
I have forgotten to specify that our LabKey server runs under 14.3.

For information, in the coming weeks, it is planned to upgrade our server to 15.2.
Maybe I should wait for the upgrade to test again this survey feature.

many thanks again for your help,
best,

Vincent.
Jon (LabKey DevOps)2015-10-01 14:11Jon (LabKey DevOps)2018-11-16 23:23Survey Designer issue with "useDefaultLabel" optionSurvey Designer issue with "useDefaultLabel" option TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vincent,

Now that makes more sense. We didn't implement the "start" option until 15.1, so when you do upgrade, that feature will work.

Regards,

Jon
Jon (LabKey DevOps)2017-11-10 12:30Jon (LabKey DevOps)2018-11-16 23:24Support - jQuery CDNSupport - jQuery CDN TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Zoya,

Is it possible for you to send us the full Wiki code itself that you're using so we can try and reproduce the issue on our end and get a better understanding as to what is happening?

We do not have enough information to understand what is actually happening here and the information on the script tags used do not give us enough insight on the issue.

Regards,

Jon
Zoya Pasha2017-11-13 00:23Jon (LabKey DevOps)2018-11-16 23:24Support - jQuery CDNSupport - jQuery CDN TEXT_WITH_LINKSClosed     LabKey Support Forum
<script>
    LABKEY.Utils.requiresScript("https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js");
    LABKEY.Utils.requiresScript("https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js");
    LABKEY.Utils.requiresCSS("https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css");

//code.stephenmorley.org
var CollapsibleLists=function(){function e(b,c){[].forEach.call(b.getElementsByTagName("li"),function(a){c&&b!==a.parentNode||(a.style.userSelect="none",a.style.MozUserSelect="none",a.style.msUserSelect="none",a.style.WebkitUserSelect="none",a.addEventListener("click",g.bind(null,a)),f(a))})}function g(b,c){for(var a=c.target;"LI"!==a.nodeName;)a=a.parentNode;a===b&&f(b)}function f(b){var c=b.classList.contains("collapsibleListClosed"),a=b.getElementsByTagName("ul");[].forEach.call(a,function(a){for(var d=a;"LI"!==d.nodeName;)d=d.parentNode;d===b&&(a.style.display=c?"block":"none")});b.classList.remove("collapsibleListOpen");b.classList.remove("collapsibleListClosed");0<a.length&&b.classList.add("collapsibleList"+(c?"Open":"Closed"))}return{apply:function(b){[].forEach.call(document.getElementsByTagName("ul"),function(c){c.classList.contains("collapsibleList")&&(e(c,!0),b||[].forEach.call(c.getElementsByTagName("ul"),function(a){a.classList.add("collapsibleList")}))})},applyTo:e}}();

//code.stephenmorley.org
var runOnLoad=function(c,o,d,e){function x(){for(e=1;c.length;)c.shift()()}o[d]?(document[d]('DOMContentLoaded',x,0),o[d]('load',x,0)):o.attachEvent('onload',x);return function(t){e?o.setTimeout(t,0):c.push(t)}}([],window,'addEventListener');
</script>

    <div data-role="main" class="ui-content">
<a href="#myPopup" data-rel="popup" id='pButton'>Select Option</a>
    <div data-role="popup" id="myPopup" class="ui-content" style='min-width:250px'>
        <form>
            <div>
                <ul class="collapsibleList">
                    <li class='li'>
                        1
                        <ul>
                            <li class='li'>1.1
                                <ul>
                                    <li><a class='col'>1.1.1</a></li>
                                    <li><a class='col'>1.1.2</a></li>
                                </ul>
                            </li>
                            <li class='li'>1.2
                                <ul>
                                    <li><a class='col'>1.2.1</a></li>
                                    <li><a class='col'>1.2.2</a></li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                    <li class='li'>
                        2
                        <ul>
                            <li class='li'>2.1
                                <ul>
                                    <li><a class='col'>2.1.1</a></li>
                                    <li><a class='col'>2.1.2</a></li>
                                </ul>
                            </li>
                            <li class='li'>2.2
                                <ul>
                                    <li><a class='col'>2.2.1</a></li>
                                    <li><a class='col'>2.2.2</a></li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
            </div>
        </form>
    </div>
    <div id='OntSelected'></div>
</div>

<script>
    runOnLoad(function(){
        CollapsibleLists.apply();
    });
    $('.col').click(function(){
        $('#OntSelected').text($(this).text());
        alert('HI');
    });
</script>

<style>
    .collapsibleList li{
      list-style-image : url('add.png');
      cursor : auto;
    }

    li.collapsibleListOpen{
      list-style-image : url('minus.png');
      cursor : pointer;
    }

    li.collapsibleListClosed{
      list-style-image : url('add.png');
      cursor : pointer;
    }

    .col{
        color:#1A5276;
        margin: 1px 1px;
    }
    .col:hover{
        color:#1A5276;
        font-weight:bold;
        margin: 1px 1px;
    }
</style>
Nick Kerr2017-11-17 14:16Jon (LabKey DevOps)2018-11-16 23:24Support - jQuery CDNSupport - jQuery CDN TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Zoya,

I've attached an updated example using the wiki code you provided. Take a look and see if this helps. A couple notes:

- When using the LABKEY.requiresScript method it is recommended you always use it with a provided callback. This is what ensures the code is loaded before executing your code that might depend on it (e.g. jQuery). See https://www.labkey.org/Documentation/wiki-page.view?name=scriptdepend
- The "runOnLoad" method you provide seems to be satisfied by jQuery which provides a "$.ready(...)" method. See here for the shorthand version I used in the example: https://api.jquery.com/ready/

As for the "...it just shows the loading sign. There is no progress after that..." that you mentioned I think this is an issue jQuery mobile that you are including on the page. It is doing some hook on all links on the page and causing an error to throw whenever you click on a link the page (I had to navigate by modifying the URL directly after loading a page with jQuery mobile on it).

Thanks,
Nick Kerr
Greg Taylor2014-07-10 15:18Jon (LabKey DevOps)2018-11-16 23:23Supporting REST with parameters in URL path?Supporting REST with parameters in URL path? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,
We discussed this message in a regular meeting - it seems like a great idea but we don't currently support it. URLs are handled at a low level within LabKey and we don't have an easy way to implement the change. Kevin suggested that you use a separate servlet to translate URLs before sending them to LabKey.
Hope this helps,
Greg
slangley@scharp.org2013-02-28 13:01slangley@scharp.org2013-02-28 13:01Support for more PostgreSQL functions?Support for more PostgreSQL functions? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Adam. I'll test it out sometime - but not right away.
Ben Bimber2011-07-13 16:04Jon (LabKey DevOps)2018-11-16 23:24Support for more PostgreSQL functions?Support for more PostgreSQL functions? TEXT_WITH_LINKSClosed     LabKey Support Forum
is array_agg() basically the same as group_concat(DISTNICT a.visit)?
slangley@scharp.org2011-07-13 16:23Jon (LabKey DevOps)2018-11-16 23:24Support for more PostgreSQL functions?Support for more PostgreSQL functions? TEXT_WITH_LINKSClosed     LabKey Support Forum
It seems to be very close. I'll see if I can work with that.
slangley@scharp.org2011-07-18 13:07Jon (LabKey DevOps)2018-11-16 23:23Support for more PostgreSQL functions?Support for more PostgreSQL functions? TEXT_WITH_LINKSClosed     LabKey Support Forum
So I find that group_concat(DISTNICT ... does work if the query is made against a table or view in the built-in schema. However, if I attempt to use it against a table or view in an external database schema it fails with a:

 Schema 'core' not found.

Unfortunately, for me, I need to use it on an external database schema.
adam2013-02-28 12:55Jon (LabKey DevOps)2018-11-16 23:24Support for more PostgreSQL functions?Support for more PostgreSQL functions? TEXT_WITH_LINKSClosed     LabKey Support Forum
I've changed the SQL that GROUP_CONCAT generates on PostgreSQL 8.4+ to use the built-in array_agg() function; this should make GROUP_CONCAT work on any external PostgreSQL data source (8.4 or greater). The sort option will no-op if our custom function isn't present, but the basic functionality should work.
jeckels2010-12-14 16:18Jon (LabKey DevOps)2018-11-16 23:23suggestions on most efficient way to move labkey lists into hard tables?suggestions on most efficient way to move labkey lists into hard tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

1. Do you mean update lookups that used to point to lists.<list_name> to <external_schema>.<list_name>? We don't have a UI for bulk updating across lists and datasets. You could query directly against the Postgres database to at least track down the ones that need to be changed:

SELECT * FROM exp.propertydescriptor WHERE lookupschema = 'lists'

2. Query validation won't detect broken lookups, unless they're used as the special <table>.<column>.<lookup1>.<lookup2> syntax in custom queries. I can't think of any reasonably easy automated way to track them down.

Thanks,
Josh
Brian Connolly2009-08-10 10:58Jon (LabKey DevOps)2018-11-16 23:24suggestions for enterprise pipeline network architecture?suggestions for enterprise pipeline network architecture? TEXT_WITH_LINKSClosed     LabKey Support Forum
Brian
One of the strengths of the Enterprise Pipeline is it's flexibility, so there are not many hard and fast rules. Below, I will identify each part of the Enterprise Pipeline and any installation/configuration guidance.


JMS Queue: The JMS Queue is used for communication between the Enterprise Pipeline pieces (ie status messages or task instructions). If the JMS queue is down the Enterprise Pipeline will not function. The JMS queue can be run either as a stand-alone service or in memory on the webserver. The main difference between running it as a stand-alone service and running it in memory is that if running in memory on the webserver, all message sitting on the queue waiting to be delivered will be lost during a restart of the webserver. We recommend running it as a stand-alone service.


Globus GRAM server: The server which runs the Globus GRAM server must have permissions to submit searches to the Cluster. Most of the current Enterprise Pipeline installations currently install this software on the same server that is acting as the Resource Manager for their cluster. The Globus GRAM software requires that use of SSL, you will need to plan carefully on how to deal with these certificates in EC2, as the instance names and IP address are not fixed (there are ways to get around this requirement, that might make an EC2 rollout easier. A quick phone call will be the easiest way to discuss them)


General Pipeline Guidance:
1) The Enterprise Pipeline currently only support Sun Grid Engine (SGE) and PBS-based clusters
2) The Enterprise Pipeline assumes that all pipeline files are located on a network storage device and can be accessed via NFS (by the web server, cluster nodes) and CIFS(by the Conversion Server).
3) Most of the current installs place the JMS Queue and Globus GRAM server on the same physical/virtual server


Conversion Server: As you noted, this must be a Windows Server.


LabKey Server and Database Server: No additional requirements.


-Brian
Brian Pratt2009-08-11 14:31Jon (LabKey DevOps)2018-11-16 23:24suggestions for enterprise pipeline network architecture?suggestions for enterprise pipeline network architecture? TEXT_WITH_LINKSClosed     LabKey Support Forum
That's quite helpful, thanks. I'm not too worried about cert issues around shifting hostnames - with EC2 it's no bother to just rebuild the entire cluster should the head node go away for some reason, or one could use Elastic IP if a consistent FQDN is really required. Of course I'll probably hit some kink I haven't thought of yet...

So I'm looking at
Node A: public linux node, runs dB, webserver, NFS server
Node B: private node running CIFS
Node C: private node with JMS Queue, WS-GRAM, and PBS_server
Nodes D-xxx: private PBS_client nodes running X!Tandem etc

The goal of course is dynamic sizing of the client nodes, conceivably nodes B and C could be an on-demand thing as well.

I'm going to go ahead and implement with PBS, if only because our friends at ISB use it so we might get some nice reuse in TPP-world. For the most part I'm avoiding anything that's really AWS-specific, so we end up with something like a recipe for building clusters that aren't necessarily in the Amazon cloud.

- Brian
jeckels2011-01-13 09:57Jon (LabKey DevOps)2018-11-16 23:24suggestion on titles given to lookup columnssuggestion on titles given to lookup columns TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I agree that we end up with some pretty nonsensical column headings with the current behavior. There are places where we explicitly disable this prefixing, but in the vast majority of grids we don't.

I worry a bit about grids where you have columns with identical (or similar) names, where one is from the base table and another is from a lookup. For example, you can imagine having a grid with three "Name" columns from three different tables, or two "Name" columns and two "Description" columns. Perhaps this would be less confusing than the current behavior though. Or perhaps we should only prefix if there are columns with the same name?

What do you think?

Thanks,
Josh
Ben Bimber2011-01-13 10:16Jon (LabKey DevOps)2018-11-16 23:23suggestion on titles given to lookup columnssuggestion on titles given to lookup columns TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

I can can see that argument, but I'd say this:

1. there is no place whatsoever in an EHR view where we actually retain the full DB path as a name. In every single place I have needed to override the table/column name b/c it just makes more sense. That is fine for pre-configured, saved views; however, the on-the-fly column changes made possible by the new customize view UI still create confusing column names.

2. at least in the EHR, the name-conflict scenario is fairly rare.

3. If a user adds a column via a lookup, they are the person who did it. I think we can rely on people to have at least some understanding of the data they're looking it. Even if the column names are identical, usually data is distinct and provides information.

4. if a person is saving a view, and there is a name conflict, they can just rename one of them. it's really not the end of the world if you have 2 columns w/ the same name. I'd say this situation is more rare than a name conflict.


As noted in the above post, the full DB path name, especially without any delimiter, very rarely makes sense without some concept about the DB structure. Having the customize view UI somehow enforce distinct column names isnt a terrible idea; however, I think in practice that becomes complex when you think about: lots of complex lookups, the order in which columns are added, etc.
Matthew Bellew2008-04-01 15:01Jon (LabKey DevOps)2018-11-16 23:24Suggestion - consider WebDAV instead of FTP for uploading files?Suggestion - consider WebDAV instead of FTP for uploading files? TEXT_WITH_LINKSClosed     LabKey Support Forum
I agree that using FTP by hand can be very frustrating. It is difficult to ensure that all your users are consistent with naming etc. But most of the problems you have using FTP directly would be present in some way with any direct copy method (file share, or even webdav).

I believe that in the FHCRC proteomics lab someone wrote some simple scripts in the distant past to handle this. So instead of copying directly the users run a script that ask the right questions copy the files and verify them.

In 8.1, we are introducing a new feature for copying files to the server that makes "dropping" a directory of files to the server easier. You would navigate to the place in the UI you want to put your new run of FCS files say. Then hit the "Upload files (ftp)" button. Now you just browse to the directory you want to copy (or just drag and drop it).

This is just one step, and I hope to continue to improve the user scenarios. I don't think the underlying file transfer protocol, however, should really matter.
Jon (LabKey DevOps)2018-07-30 12:02Jon (LabKey DevOps)2018-07-30 12:02Subversion migration completeSubversion migration complete TEXT_WITH_LINKSClosed     LabKey Support Forum
For those using TortoiseSVN, please refer to the following document on how to Relocate your working copy here:

https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-relocate.html
jeckels2010-11-04 13:13Jon (LabKey DevOps)2018-11-16 23:24styling on sitestyling on site TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

1. Yes, those would be the two ways that I can think of right now to remove the logo.
2. No, that's not part of the current template.

Thanks,
Josh
adam2010-06-02 18:21Jon (LabKey DevOps)2018-11-16 23:23Study.xml: possible to define additional info on QC states?Study.xml: possible to define additional info on QC states? TEXT_WITH_LINKSClosed     LabKey Support Forum
LabKey does not export/import of QC state definitions yet. It wouldn't be hard to add, but it just hasn't made the priority list yet: https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=8693

Adam
jeckels2016-05-04 17:01Jon (LabKey DevOps)2018-11-16 23:24Study w/ Data in datasets, but patients table is empty?Study w/ Data in datasets, but patients table is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I also thought that the server would automatically maintain that table, but if you look at AbsoluteDateVisitManager.updateParticipantVisitTable(), you can see that it no-ops. It's been that way since at least 2010.

Thanks,
Josh
Ben Bimber2016-05-05 08:15Jon (LabKey DevOps)2018-11-16 23:24Study w/ Data in datasets, but patients table is empty?Study w/ Data in datasets, but patients table is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
This applies to both study.participant (one row per participant) and participantVisit (a different table)?
jeckels2016-05-09 14:53Jon (LabKey DevOps)2018-11-16 23:24Study w/ Data in datasets, but patients table is empty?Study w/ Data in datasets, but patients table is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

My mistake - I misinterpreted the sequence of calls when I read the code earlier.

I just tried to repro and trunk and it worked as expected. I created a new continuous study, added a dataset, inserted some data, and checked study.participant and had rows there.

I'm assuming that you've set Patient as the subject identifier, correct? Do you have a different set of repro steps?

Thanks,
Josh
Ben Bimber2016-05-16 10:28Jon (LabKey DevOps)2018-11-16 23:24Study w/ Data in datasets, but patients table is empty?Study w/ Data in datasets, but patients table is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi josh,

I'm using 16.1. I created a continuous study, set 'optr' as the subject column name ('patient' and 'patients' are the nouns). I created datasets, and then inserted rows into many of them. these rows have non-null values for OPTR, which they always need to have since they are datasets. however, the patient table is empty. any other debugging thoughts?
Ben Bimber2016-07-07 10:51Jon (LabKey DevOps)2018-11-16 23:23Study w/ Data in datasets, but patients table is empty?Study w/ Data in datasets, but patients table is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm still seeing this pretty consistently, both on our server and locally. One thing to note is that I'm bulk importing data using query controller's actions, as opposed to the study controller. i dont think this should matter, but thought i'd bring it up.
jeckels2016-07-11 16:27Jon (LabKey DevOps)2018-11-16 23:24Study w/ Data in datasets, but patients table is empty?Study w/ Data in datasets, but patients table is empty? TEXT_WITH_LINKSClosed     LabKey Support Forum
For future reference, here's the bug (opened and patch proposed by Ben): https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=27127
brittp2012-09-26 09:00Jon (LabKey DevOps)2018-11-16 23:23Study. Specimen. record_id exposed where?Study. Specimen. record_id exposed where? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

It looks like this column hasn't been exposed at the query level, though as you've observed it's in the back-end database. If exposed, this column would show up on the SpecimenEvent table (viewable via the vial 'history' links and in the schema browser). Would you like me to enter a request to expose this column? If you'd like to expose it yourself in the meantime, you can add the following line to SpecimenEventTable.java:
     addWrapColumn(_rootTable.getColumn("ExternalId")).setHidden(true);

Note that the 'setHidden(true)' call just prevents the column from appearing by default in various UIs.

Thanks,
Britt
trent2012-09-27 21:26Jon (LabKey DevOps)2018-11-16 23:23Study. Specimen. record_id exposed where?Study. Specimen. record_id exposed where? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Britt,

Apologies for the delay. We were just deciding what best to do.

It would be helpful if that column would/could be exposed in a future version.

Cheers,
Trent
jeckels2012-10-01 09:33Jon (LabKey DevOps)2018-11-16 23:24Study. Specimen. record_id exposed where?Study. Specimen. record_id exposed where? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

I just added this to the trunk with revision 22260.

Thanks,
Josh
cnathe2013-10-01 07:45Jon (LabKey DevOps)2018-11-16 23:23Study reload questionStudy reload question TEXT_WITH_LINKSClosed     LabKey Support Forum
Jen,
Sorry for the delay. The default configuration for study reloading does not include lists, ever since we changed the study/folder archive structure to move the lists into the folder archive configuration. However, this is supported if you make the following changes to your pipeline files for the study folder you are reloading into (see the attached study zip archive from the LabKey demo study as an exmaple):

1. add a line to the study.xml file for a reference to where to find the lists directory (i.e. <lists dir="lists"/>)
2. add the lists directory to your pipeline (you can get a copy of the lists directory for your given study folder by going to the Admin > Folder > Management page and exporting the full folder archive with the Lists checkbox selected)

Give that a try and let me know if you have any issues.
Thanks,
Cory
Jon (LabKey DevOps)2017-11-15 00:31Jon (LabKey DevOps)2018-11-16 23:23Study Import/Export Not Updating Lookup IDsStudy Import/Export Not Updating Lookup IDs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cameron,

I'll have to do some testing on my end, but I think because the lookup is specific to the LSID, that could create some issues when re-establishing lookups since LSIDs end up being unique in each respective LabKey instance.

Just curious, does the list need the actual LSID value to be displayed like in attachment number 5 (without the < > symbols) or does it need to display in the same format as it shows in attachment number 7, repeating the same participantId value?

I think there may be a way to use XML Metadata code instead of the Lookup feature in the UI, but that would depend on your answer to the question above.

Regards,

Jon
cmwest32017-11-16 09:50Jon (LabKey DevOps)2018-11-16 23:24Study Import/Export Not Updating Lookup IDsStudy Import/Export Not Updating Lookup IDs TEXT_WITH_LINKSClosed     LabKey Support Forum
It's not so much a problem of how it's displayed in LabKey, it's that in our Matlab application, we do use the LSID for object references and retrieval of data from the server. So the fact that the LSID is no longer correct when data is migrated breaks references and our program is unable to find the correct scans as the LSID on the destination server is referencing a scan with the LSID of what was on the source server..
Jon (LabKey DevOps)2017-11-17 11:38Jon (LabKey DevOps)2017-11-17 11:38Study Import/Export Not Updating Lookup IDsStudy Import/Export Not Updating Lookup IDs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cameron,

We are going to continue working with you on this via the ticket that Guy opened earlier.

Regards,

Jon
Jon (LabKey DevOps)2016-11-10 13:19Jon (LabKey DevOps)2018-11-16 23:24Study - Date of Birth (old Date) seems to get corruptedStudy - Date of Birth (old Date) seems to get corrupted TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jason,

Is this just happening in a regular study or is this from something derived from a custom module?

If it is a study, is it possible for you to send us a study archive to support@labkey.org so we can look at it?

Regards,

Jon
Ben Bimber2010-07-07 10:56Jon (LabKey DevOps)2018-11-16 23:24study date field and format string?study date field and format string? TEXT_WITH_LINKSClosed     LabKey Support Forum
one follow up:

We can add metadata in the dataset definition or add metadata through the schema browser. After discussions with Josh, we are adding a lookup for all instances of the EHR project field in query metadata, not the dataset definition. I have also tried adding several other lookups using query metadata instead of doing it in the dataset definition (for testing purposes).

When adding lookups using query metadata, they don't seem to appear correctly in the normal dataset insert / update pages. If I define the lookup in the dataset definition then the corresponding field is a select. If I define it using query metadata, it is not. In either case, the field appears correctly in the schema browser, so the lookup does seem to get recognized here. I assume that means I can write sql using it, but have not tried.

Is that the expected behavior?
adam2010-07-07 15:39Jon (LabKey DevOps)2018-11-16 23:24study date field and format string?study date field and format string? TEXT_WITH_LINKSClosed     LabKey Support Forum
As you've found, the dataset_metadata.xml file only affects user-defined properties of the dataset, not the standard columns like visit date and participant id. We should make this as an option. In the mean time, using query metadata seems like a fine way to go. You won't have the ability to import/export this metadata, but I believe you're doing this all in a module anyway.

As for the lookup discrepancy you found, that sounds like a bug. I'll open an issue to investigate this during 10.3.

Adam
adam2010-07-07 15:49Jon (LabKey DevOps)2018-11-16 23:24study date field and format string?study date field and format string? TEXT_WITH_LINKSClosed     LabKey Support Forum
jeckels2010-10-18 12:24Jon (LabKey DevOps)2018-11-16 23:24studydata details possible bugstudydata details possible bug TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I just checked in a fix for this problem.

Thanks,
Josh
Matthew Bellew2013-05-21 17:06Jon (LabKey DevOps)2018-11-16 23:24Strategy for resetting test data?Strategy for resetting test data? TEXT_WITH_LINKSClosed     LabKey Support Forum
Most of our module tables include a container column. This allows the data in the tables to be automatically cleaned up when the containing folder is deleted. So our usual strategy for testing is to create a test folder, create data in that folder during the test, then delete the folder at the end.
slangley@scharp.org2013-06-05 16:25Jon (LabKey DevOps)2018-11-16 23:24Strategy for resetting test data?Strategy for resetting test data? TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm back at trying to solve this problem. I'm attempting to go with the C. solution I talked about in my previous post.

Using the container column seems like a useful idea if I was writing this module from scratch or doing major maintenance on it. But I hoping to just wrap up this test and then hopefully forget about the module. I'm told that if I can't, then we'll just do without a working unit test.

This module, peptide, is written in such a way that it depends on the auto-generated table sequence id, peptide_id:
  
    CREATE TABLE peptide.peptides (
        peptide_id SERIAL NOT NULL,

to define the primary key that is used all over the app. The test I wrote, naturally, assumes the test data to have fixed peptide id values assigned that I can use to identify, manipulate, and verify the Peptide objects.

The problem with deleting the rows of data test via the LabKey API's is that the the table sequence id is not reset to its previous value. So rerunning the test fails because the next set of test peptides get assigned different primary keys from the ones the test was designed to work with.

What I really want to be able to do is run this Postgres command on my database schema:

   'TRUNCATE TABLE peptide.peptides RESTART IDENTITY CASCADE;'

I assume there is not a way to run that command from inside the test - as a test seems to only have access to the client API's for data manipulation. (Is that right?)

Is my only choice to add a hidden API method to my module that will actually run the above Postgres command and to call it appropriately from my test?

Thanks.

Scott
Ben Bimber2013-06-05 16:45Jon (LabKey DevOps)2018-11-16 23:24Strategy for resetting test data?Strategy for resetting test data? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Using container is generally a good idea in modules, but in this case it sounds like it might not help anyway.

For your peptide id problem, could you just write the test so it doesn't assume we're starting at 1? It could use the API to query the max of this field and base it off that? That's not totally foolproof (you might have deletes), so you could also consider inserting 1 record and storing it's ID or piggybacking off the existing inserts.
slangley@scharp.org2013-06-05 18:17Jon (LabKey DevOps)2018-11-16 23:24Strategy for resetting test data?Strategy for resetting test data? TEXT_WITH_LINKSClosed     LabKey Support Forum
In this case, I think that will work.

Thanks for the suggestion!

Scott
adam2013-06-06 11:51Jon (LabKey DevOps)2018-11-16 23:23Strategy for resetting test data?Strategy for resetting test data? TEXT_WITH_LINKSClosed     LabKey Support Forum
I think Ben's suggestion is a good way to go... we try to avoid writing tests that assume specific auto-increment values, for just this reason.

But to answer your previous question, yes, if you require a fixed starting value from a database-managed sequence then you would have to execute that PostgreSQL-specific "TRUNCATE..." SQL in a hidden API (e.g., via SqlExecutor.execute()). Another option (starting in 13.2) would be to use a DbSequence to populate the RowId. A DbSequence is a LabKey-managed virtual sequence that gives you more control over an auto-incrementing sequence. Probably not a good route in this case since you don't want to rework the code, but it might be useful in other scenarios.

Adam
Ben Bimber2013-06-06 11:54Jon (LabKey DevOps)2018-11-16 23:23Strategy for resetting test data?Strategy for resetting test data? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi adam - is there a column type (like 'container-specific autoincrement') that causes LK to do the work of populating the values for you, or would the developer need to manage that themselves?
adam2013-06-07 22:25Jon (LabKey DevOps)2018-11-16 23:24Strategy for resetting test data?Strategy for resetting test data? TEXT_WITH_LINKSClosed     LabKey Support Forum
At the moment, it needs to be wired up "manually" (via Java code). Something like:

   int nextId = DbSequenceManager.get(c, MY_SEQUENCE_NAME).next();
   bean.setRowId(nextId);

We do want to create a virtual type to make this automatic. The "type" will need to provide context... unique name, container column, extra key column... which makes it a bit unusual. Let me know if you're interested in using such a type; we could work through the details together.

Adam
jeckels2014-02-12 10:32Jon (LabKey DevOps)2018-11-16 23:24Storing and Retrieving a MatrixStoring and Retrieving a Matrix TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

There are a number of cases where specifying an ORDER BY doesn't work in a way that's intuitive. If you add a sort: "RowId" to the config object you're passing in, you should get the ordering you want.

Thanks,
Josh
bill c white2014-02-12 10:36Jon (LabKey DevOps)2018-11-16 23:23Storing and Retrieving a MatrixStoring and Retrieving a Matrix TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh, but the row ordering is fine; it's the column order that is strange.
jeckels2014-02-12 10:42Jon (LabKey DevOps)2018-11-16 23:24Storing and Retrieving a MatrixStoring and Retrieving a Matrix TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

Ah, yes, sorry for jumping to the wrong diagnosis.

In general, I don't recommend relying on particular column ordering. For example, in many cases, the server will include additional columns in the results (such as primary key or other values used to general URLs and other types of metadata). You may be able to specify a list explicitly with the "columns" property to tweak the ordering, but that may not be completely stable either. This is a byproduct of the fact that we're not executing the SQL you pass to the server directly against the database, as you might be used to from JDBC or other database APIs.

Instead, I'd recommend iterating to find columns based on their names. The ordering for each row should be stable within a given response from the server.

Thanks,
Josh
bill c white2014-02-12 10:49Jon (LabKey DevOps)2018-11-16 23:23Storing and Retrieving a MatrixStoring and Retrieving a Matrix TEXT_WITH_LINKSClosed     LabKey Support Forum
Yikes! This might require me to take a different strategy once I get over 100 columns in the matrix. I guess I could relegate the matrix analysis to R, calling it from JS which seems to be possible, but I wanted to stay in JS given the interactive analysis and visualization I am doing on the matrix. Thanks.
bill c white2014-02-15 06:55Jon (LabKey DevOps)2018-11-16 23:23Storing and Retrieving a MatrixStoring and Retrieving a Matrix TEXT_WITH_LINKSClosed     LabKey Support Forum
I used name-based column lookups and that works fine. Thanks for the pointer!
Jon (LabKey DevOps)2016-08-18 13:51Jon (LabKey DevOps)2018-11-16 23:23Store permissions in XML file to load at build or boot?Store permissions in XML file to load at build or boot? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

What kind of security and permissions configurations were you looking to store outside of the database?

Regards,

Jon
balter2016-08-18 14:14Jon (LabKey DevOps)2018-11-16 23:23Store permissions in XML file to load at build or boot?Store permissions in XML file to load at build or boot? TEXT_WITH_LINKSClosed     LabKey Support Forum
For instance, on the "Study Permissions" page you can export an XML of the permissions you have set in the GUI. You can also import an XML file that will set the permissions. We would like to set this up so that it does not go through the GUI, but rather at boot or build.

So, to answer your question, any kind: study level, folder level, dataset level, etc. Perhaps even group definitions and user roles.

Thanks,

Ariel
Jon (LabKey DevOps)2016-08-22 11:40Jon (LabKey DevOps)2018-11-16 23:24Store permissions in XML file to load at build or boot?Store permissions in XML file to load at build or boot? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ariel,

I'm afraid we are going to need more details as to what you're doing in order to give you the best answer here. We need to know the full scenario. Otherwise, it is difficult to give you the correct answer without understanding what you want to do and why.

Within LabKey, permissions are setup on a per-container basis. Having permissions setup at build time the moment the server gets installed with LabKey is unusual since when a server gets installed, no containers exist beyond the default Home container/project.

Are you looking to have permissions cleared out and reset when the server restarts again based on some pre-defined permissions that were placed in some XML file? What is the purpose of having the need to have your version of LabKey automatically build permissions the instant that it installs or starts up?

Please provide us with as much detail as possible with what you're working on here and what challenges you're facing to where you feel that this option is the way to go. I believe once we're on the same page and we understand the full scope of what you're working on, we can give you the best information possible.

Regards,

Jon
balter2016-08-22 12:32Jon (LabKey DevOps)2018-11-16 23:23Store permissions in XML file to load at build or boot?Store permissions in XML file to load at build or boot? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I appreciate you clarifying the information you need to answer the question. I'll do my best to explain. The overarching concern is to be able to create reproducible, easily deployable environments, but not necessarily identical data. For instance, a different instance of an identical environment would not have the same users, or data, but would ideally have the exact same roles and groups defined, as well as the permissions they have on particular tables, views, wikis, graphs and other elements.

Based on LK documentation, the admin usually sets permission through the GUI interface. However, you can export the definitions in an XML file. You can also import an XML file. One way to create reproducibility would be to document a series of steps to reproduce the series of steps, boxes filled out, buttons clicked etc. to reproduce a certain setup. Another would be to export the permissions from a model installation, and import those permissions into the others.

We are trying to set up a working practice to minimize configuration steps done through the GUI. Rather we want to have as much as possible in the versioned code base. For instance, we are not creating any tables or lists through the GUI. That all takes place on build. Many of our static pages, views, graphs etc. are also defined in the code base rather than the GUI.

In a similar way, we would like to have the following setup:
1) There is a file *somewhere* in the code base called "roles.xml" or "roles.sql" if it is a query. This would define the roles at build.
2) There is a file *somewhere* in the code base called "groups.xml" or "groups.sql" if it is a query. This would define the groups and their roles at build.
3) There is a file *somewhere* in the code base called "permissions.xml" or "permissions.sql" if it is a query.
4) This last document would define the permissions the various roles and groups have on tables, views, pages etc. These tables and views are already defined at build time. So there will be a hook for the permissions at build.
5) These documents would be versioned in the git repository for our module. We can clone our module into any LK install, and all of these roles, groups and permissions will be identically set along with the tables, views, pages, graphs and other elements that are defined in our code base.

I hope this is a better explanation. Please let me clarify any points if they are still cloudy.

Thanks much,

Ariel
Jon (LabKey DevOps)2016-08-23 10:54Jon (LabKey DevOps)2018-11-16 23:24Store permissions in XML file to load at build or boot?Store permissions in XML file to load at build or boot? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ariel,

Thank you for the additional details. So what about the structure of your LabKey instance? Even though you stated that the users and the data wouldn't be the same, but the roles and groups would be in addition to particular tables, wikis, etc. Is the project/folder structure going to always be the same every time?

For example, let's say that you built your current instance with three projects. The first project has 3 sub-folders, the second project has 5 sub-folders and within each of those sub-folders, there are anywhere from one-to-ten folders, and the final project has only one sub-folder.

Is it expected that these folders and projects will always be consistent to where if you installed your version of Labkey on a fresh box, it's going to automatically create those exact folders in that exact structure as well as a default?

Regards,

Jon
balter2016-08-24 14:07Jon (LabKey DevOps)2018-11-16 23:24Store permissions in XML file to load at build or boot?Store permissions in XML file to load at build or boot? TEXT_WITH_LINKSClosed     LabKey Support Forum
We would like to establish a continuous integration process and repeatedly and reliably propagate our implementation of LabKey features to various environments (like Dev, QA, and Production).

Is there a way for us to store permission assignments to objects (user group to object) in a file that we can place in source control and then release to various environments?
 
Developers work in their local environments on a feature/task until they are complete. This will include creating new LabKey tables, setting up views and reports. Part of this entails assigning permissions to various groups against these objects. For example, a developer may create a new report that is only available to lab-technicians. When the development is complete, the developer pushes their changes to our source control repository. Where would a developer store their permission assignments so that they can check it into source control?
 
Periodically, a QA build is pushed from source control encompassing all of the changes that need to be reviewed by the customer.
 
Eventually, we will release features into production, along with the permission assignments (user group to object).
jeckels2016-08-24 17:28Jon (LabKey DevOps)2018-11-16 23:24Store permissions in XML file to load at build or boot?Store permissions in XML file to load at build or boot? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ariel,

Aside from the folder import/export mechanism, we don't currently have a mechanism to automate the transfer of permissions like this.

However, it would be possible to build a tool that could manage this from an XML or other resource using client APIs like those on LABKEY.Security, including getSecurableResources(), getPolicy(), and savePolicy():

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Security.html

Your own modules could use an approach like this based on an administrator hitting a certain page on the server, or run automatically server-side Java code as part of the module upgrade process.

Thanks,
Josh
balter2016-08-24 23:00Jon (LabKey DevOps)2018-11-16 23:23Store permissions in XML file to load at build or boot?Store permissions in XML file to load at build or boot? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks for clarifying the current capability. We are considering the idea of writing our own code to perform this task.

Ariel
Jon (LabKey DevOps)2018-06-22 20:40Jon (LabKey DevOps)2018-11-16 23:23Stored Procedure and Lists Dropdown ListStored Procedure and Lists Dropdown List TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

I'm not sure what you mean here by "there is no dropdownlist that informs the user of what values are appropriate".

If a lookup has been established for a specific field in a table like a list or a dataset, then if you are inserting a new row to that table, the UI will show that field as a dropdown box rather than a free text field to type in.

Can you provide us with screenshots of the following:

1. The list that you mentioned.

2. The part where you say you're visually not seeing this dropdown list.

3. How you've setup the foreign key lookup that you said you established.

Regards,

Jon
marcia hon2018-04-09 05:57marcia hon2018-04-09 05:57Stored ProcedureStored Procedure TEXT_WITH_LINKSClosed     LabKey Support Forum
In my stored procedure, I have tried:

   get_instrument CURSOR FOR
   SELECT DISTINCT
    instrument."participant id",
    instrument."visit id",
    instrument."series name",
    instrument."file name",
    instrument."location"
    FROM assayresult.c190d2165_genotyping_original_data_fields instrument;

It compiles fine and the ETL runs "COMPLETE". However, the desired operation is not happening (I cannot move data from one table to another).
Jon (LabKey DevOps)2018-03-30 11:23Jon (LabKey DevOps)2018-11-16 23:23Stored ProcedureStored Procedure TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Have you reviewed our docs on stored procedures with regard to the ETL?

https://www.labkey.org/Documentation/wiki-page.view?name=etlsproc
https://www.labkey.org/Documentation/wiki-page.view?name=etlStoredProcMSSQL
https://www.labkey.org/Documentation/wiki-page.view?name=etlstoredproccheck

If you are asking about how to tell the stored procedure to work with the specific assay, you would need to specific the entire assay schema.

For example, if you created a GPAT assay called "myGenericAssay", the Schema Browser would allow you to access the assay schema structure as:

Assay > General > myGenericAssay

This is also shown as:

"assay.General.myGenericAssay"

So for the stored procedure example we have in our documentation that appears like this, where "schemaName" represents the schema:

CREATE procedure [schemaName].[queryName]

You would use "assay.General.myGenericAssay" as the schema name. Below starts out creating the stored procedure for the Assay Data (aka Assay Results) table for the "assay.General.myGenericAssay" schema:

CREATE procedure [assay.General.myGenericAssay].[Data]

Regards,

Jon
marcia hon2018-04-03 06:36Jon (LabKey DevOps)2018-11-16 23:24Stored ProcedureStored Procedure TEXT_WITH_LINKSClosed     LabKey Support Forum
I have tried to select/update assay.General.Genotyping_Original.Data instrument.data , however, Labkey does not recognize this.
Jon (LabKey DevOps)2018-04-07 23:35Jon (LabKey DevOps)2018-04-07 23:35Stored ProcedureStored Procedure TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

My apologies, I was thinking in LabKey SQL terms and not Microsoft SQL terms.

The "assay.General.myGenericAssay" schema is a virtual schema that our API and queries understand and work with.

A stored procedure would have to work with the actual table on the database itself. So a GPAT assay would look something like assayresult.c1761228512Genotyping_Original in the actual database. However, we really don't recommend going against the DB directly for these specific tables since this would require you to figure out what assay is tied to which specific container, which is difficult considering the special numeric sequence that is used in the table name.

If you're looking to transform the information that enters into an assay, in lieu of an ETL, you might want to consider using Transformation Scripts for the Assay instead (https://www.labkey.org/Documentation/wiki-page.view?name=programmaticQC).

Regards,

Jon
slangley@scharp.org2007-12-03 14:50Jon (LabKey DevOps)2018-11-16 23:23Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
For whatever reason, the *.xml files that normally appear in:

 build\labkeyWebapp\explodedWar\WEB-INF\classes\_pageflow\

are not getting built, nor is the '_pageflow' subdirectory itself being created.
Matthew Bellew2007-12-03 15:05Jon (LabKey DevOps)2018-11-16 23:23Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
Be sure that the build.xml you are using matches the branch you are building (svn status build.xml).

In particular, the struts config files will not be built for a module (core in this case) unless this line appears inside the sub_build_module task for the module target.

            <param name="useBeehive" value="true" />
slangley@scharp.org2007-12-03 15:15Jon (LabKey DevOps)2018-11-16 23:24Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
According to the IntelliJ's built-in Subversion->Check with Branch the build.xml is identical to the branch version.

Also, "useBeehive" is inside the sub_build_module task for the core module.
brittp2007-12-03 15:22Jon (LabKey DevOps)2018-11-16 23:24Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Are you building a module outside of the root labkey enlistment? (This would be the case if you created your module using the create_module script from the root build.xml.) If so, you'll also have a build.xml within your module root. Within this build.xml, you'll need to ensure that your build_module target looks like this:

   <target name="build_module"
           depends="init"
           description="Builds local module only. Deploys local module into LabKey installation.">
       <ant antfile="${main.build.xml}"
            target="sub_build_module"
            inheritall="false">
           <property name="moduleDir" value="${basedir}"/>
           <property name="moduleName" value="${module.name}"/>
           <!-- NEW PROPERTY: -->
           <property name="useBeehive" value="true" />
       </ant>
   </target>

Note the "NEW PROPERTY" comment above the required line.

Thanks,
Britt
slangley@scharp.org2007-12-03 15:25Jon (LabKey DevOps)2018-11-16 23:23Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm not attempting to build any module (except for what Labkey wants to do for it self.)

I'm running the Labkey Ant build task.

Scott
Matthew Bellew2007-12-03 15:34Jon (LabKey DevOps)2018-11-16 23:24Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
Running out of ideas, but if it were me... I'd make sure to do a clean build, and I'd also check the labkey.xml of the running tomcat installation (tomcat\conf\Catalina\localhost\labkey.xml) to make sure that's pointing at the right place. While I'm thinking of that, you only have one tomcat?
jeckels2007-12-03 15:47Jon (LabKey DevOps)2018-11-16 23:24Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
Scott,

Can you do a clean and then a build, and then attach the build output as a file?

Specifically, we're looking for lines like:

Copying 1 file to C:\labkey2.3\build\modules\experiment\pageflowTempDir

and

apt
Compiling 1 source file to C:\labkey2.3\build\modules\experiment\pageflowTempOutputDir

which indicate that the build process is successfully building the Beehive pageflows, which should result in XML files in directories like:

C:\labkey2.3\build\modules\experiment\pageflowTempOutputDir\_pageflow

Those should then be copied into a directory like:

C:\labkey2.3\build\modules\experiment\explodedMar\META-INF\_pageflow

which should then be rolled up into a file like:

C:\labkey2.3\build\labkeyWebapp\tempModules\experiment.module

which is actually a ZIP file. Inside, it should contain a META-INF/_pageflow directory. When the server starts up, it should copy the contents of that directory into your explodedWar/classes/_pageflow directory.

It's a somewhat complicated process, but it should give you a few other places to look to see where the chain might be broken. I can take a look at your build output and help diagnose as well.

Thanks,
Josh
slangley@scharp.org2007-12-03 16:55Jon (LabKey DevOps)2018-11-16 23:23Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
There is one Tomcat installed. And it points to the correct path.

I'm attaching the output text of:

cc-clean-build
clean
build

which I executed in that order.

I do see these kinds of messages:

 Copying 4 files to C:\labkey23\build\modules\experiment\pageflowTempDir

but not the others you suggested. No _pageflow subdirectories are created.

As for which classes get compiled, I'm attaching the output of running the DOS tree command on the \build\core\modules directory.
Matthew Bellew2007-12-03 17:23Jon (LabKey DevOps)2018-11-16 23:24Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
Try building with the version of ant checked into the project. E.g.

set ANT_HOME=C:\labkey23\external\ant
set PATH=%PATH%;%ANT_HOME%\bin

There are a lot of strange warnings in this log, culminating in

    java.lang.NoClassDefFoundError: com/sun/mirror/apt/AnnotationProcessorFactory

Josh may have some more insight as to why this happens, but I think this is essentially an ant configuration problem.
jeckels2007-12-04 10:40Jon (LabKey DevOps)2018-11-16 23:24Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
I agree with Matt that the NoClassDefFoundError is the problem. That class should be part of tools.jar.

Be sure that your PATH and JAVA_HOME are set correctly, and that you're not somehow pointing at a JRE, which won't have toos.jar. You might want to try building from the command line instead of through IntelliJ so that it's easy to change the environment variables and see if the error message changes.

Josh
slangley@scharp.org2007-12-04 12:44Jon (LabKey DevOps)2018-11-16 23:24Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm attaching the standard output from running the ant task from the command line when these environment variables were set:

ANT_HOME=C:\labkey23\external\ant
ANT_OPTS=-Xmx256m
CATALINA_HOME=C:\Program Files\LabKey\apache-tomcat-5.5.20
JAVA_HOME=C:\Program Files\Java\jdk1.5.0_14
LABKEY_ROOT=c:\labkey_dev\trunk
Path=c:\labkey23\external\ant\bin;C:\Program Files\Java\jdk1.5.0_14\bin;C:\WINDO
WS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem

The NoClassDefFoundError's no longer appear, only warnings like:

[echo] sourcepath: C:\labkey23\build\modules\core\pageflowTempDir;C:\labkey23\build\modules\core\pageflowTempDir\WEB-INF\src
     [echo] webcontentdir: C:\labkey23\server\modules\core/src
     [echo] destdir: C:\labkey23\server/../build/modules/core/pageflowTempOutputDir
     [echo] tempdir: C:\labkey23\server/../build/gensrc/pageflow
      [apt] Compiling 12 source files to C:\labkey23\build\modules\core\pageflowTempOutputDir
      [apt] warning: Annotation types without processors: [org.labkey.api.security.RequiresPermission, org.labkey.api.security.RequiresSiteAdmin, java.lang.Override, org.labkey.api.security.RequiresLogin]
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.

However, the pageflow XML files were created, and Labkey actually runs under Tomcat.

I had to specify the Path variable like I did because the EE SDK 5 (w/ Java SDK 6 Update 3) puts copies of a number of Java binaries in the C:\Windows\System32 directory.
slangley@scharp.org2007-12-04 15:59Jon (LabKey DevOps)2018-11-16 23:24Startup issues with Labkey 2.3 branchStartup issues with Labkey 2.3 branch TEXT_WITH_LINKSClosed     LabKey Support Forum
I spent some time further troubleshooting this problem.

As long as I don't point JAVA_HOME to the location of the JDK1.6.0_03 installed with EE SDK 5, I can get proper builds inside IntelliJ with JDK 1.5 and either Ant 1.65 or Ant 1.70 (included with IntelliJ 7.0.1).

And if I use a version of the JDK 1.6.0_03 installed separately from the EE SDK 5, which uses the default installation path of:
  
  C:\Program Files\Java\jdk1.6.0_03\

the LabKey software will also build correctly with Ant 1.70. (I didn't bother trying it with Ant 1.65.)

So, I assume that issue comes down to using the JDK 1.6.0_03 that gets installed with the EE SDK 5. Perhaps, there are conflicts between the latest Java EE jars that come with the EE SDK and the jars you have in the labkey\external\lib directory?

Regardless, I'll just avoid using the JDK 1.6.0_03 included with the EE SDK 5 from now on.
Matthew Bellew2009-01-21 08:14Jon (LabKey DevOps)2018-11-16 23:24standard fieldsstandard fields TEXT_WITH_LINKSClosed     LabKey Support Forum
No, none of these fields are required. They do, however, get somewhat special treatment if the do exists. These fields may get set/updated automatically by the system even if they are not explicitly set by the user (say through a form post).
wnels2@uky.edu2009-01-21 09:38Jon (LabKey DevOps)2018-11-16 23:24standard fieldsstandard fields TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks. One more quick question please. Where is the port number for the postgres database set in Labkey.
adam2009-01-21 09:45Jon (LabKey DevOps)2018-11-16 23:24standard fieldsstandard fields TEXT_WITH_LINKSClosed     LabKey Support Forum
The standard LabKey configuration specifies no port, which means connections will use the default PostgreSQL port, 5432. You can change the connection string (directly in labkey.xml or indirectly in the build via pg.properties) to specify whatever port you want. http://jdbc.postgresql.org/documentation/83/connect.html
Brian Connolly2011-02-03 10:21Jon (LabKey DevOps)2018-11-16 23:23SSL errorSSL error TEXT_WITH_LINKSClosed     LabKey Support Forum
Arne,

From the stack trace that you posted it looks like the server's SSL certificate is expired. See

  " Exception in thread "main" javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateExpiredException: NotAfter: Thu Apr 22 14:50:15 CEST 2010 "


You will need to have the administrator of your LabKey server renew or create a new SSL certificate for the server.

If your administrator needs any assistance in renew/creating the SSL certificate, just send me information about your LabKey server (Apache Tomcat version and operating system) and I can send you documentation and answer any questions.


Brian
jeckels2011-02-03 11:03Jon (LabKey DevOps)2018-11-16 23:24SSL errorSSL error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Arne,

As you and Brian noted, the web server seems to have an expired certificate. When it's trying to establish a secure connection, the Java code won't use any exceptions that you've made in your web browser.

If it's not practical to replace the expired certificate and you want to accept any certificate that the web server presents, you'll need to make Java use a different X509TrustManager.

Here are the basic steps that I think would be required:

1. Create a new class called AcceptAllCertsProtocolSocketFactory, based on org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory. Its source is included in the LabKey Java API source code.
2. Create a new class called AcceptAllCertsTrustManager that implements javax.net.ssl.X509TrustManager and has the following methods:

                        public java.security.cert.X509Certificate[] getAcceptedIssuers()
                        {
                            return new java.security.cert.X509Certificate[0];
                        }

                        public void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String string)
                        {}

                        public void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String string)
                        {}

3. Modify AcceptAllCertsProtocolSocketFactory to use AcceptAllCertsTrustManager instead of EasyX509TrustManager.
4. Create your org.labkey.remoteapi.Connection.
5. Call setAcceptSelfSignedCerts(false) on it to unregister the SSL configuration that it has done by default.
6. Call org.apache.commons.httpclient.protocol.Protocol.registerProtocol("https", new Protocol("https", (ProtocolSocketFactory)(new AcceptAllCertsProtocolSocketFactory ()), 443)); to make your code use your custom trust manager.

I haven't verified that this exact code works, but I've done the same thing in other scenarios. Note that this completely disables one of the big security benefits of SSL, so use it very cautiously.

Thanks,
Josh
dennisw2012-04-03 08:09Jon (LabKey DevOps)2018-11-16 23:23SSL errorThanks: SSL error TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh! That worked brilliantly the first time. i was having an issue connecting through the API to one of our non-web-visible servers with a wonky cert and this fixed it instantly.
kevink2015-07-07 10:30Jon (LabKey DevOps)2018-11-16 23:24SSH into another server from Labkey File ManagerSSH into another server from Labkey File Manager TEXT_WITH_LINKSClosed     LabKey Support Forum
Have you tried using a webdav client? If you're looking for a command line tool, cadaver seems to work well.

https://www.labkey.org/wiki/home/Documentation/page.view?name=webdav
blackhole6122015-07-07 10:47Jon (LabKey DevOps)2018-11-16 23:24SSH into another server from Labkey File ManagerSSH into another server from Labkey File Manager TEXT_WITH_LINKSClosed     LabKey Support Forum
I guess I wasn't exactly clear on what I want. I can transfer files between server using CyberDuck and dragging and dropping between the webdav folder and the other server, what I want to do is have it so that a user can login to their account on a remote server, similar to the Cloud module's sign in page, and be able to access their files integrated into the file manager, the same way that the remote Amazon S3 files are from the Cloud Module. I want to make it as seamless as possible for the end user, and so not having to install and setup CyberDuck or another SSH and webdav client would be ideal.
kevink2015-07-07 11:06Jon (LabKey DevOps)2018-11-16 23:24SSH into another server from Labkey File ManagerSSH into another server from Labkey File Manager TEXT_WITH_LINKSClosed     LabKey Support Forum
Ah, I understand. I recommend mounting the remove server's file system locally to the LabKey Server via NFS or Samba. I don't think it would be possible to mount a user's remote files locally without doing something like storing their credentials within LabKey Server.
blackhole6122015-07-07 12:19Jon (LabKey DevOps)2018-11-16 23:24SSH into another server from Labkey File ManagerSSH into another server from Labkey File Manager TEXT_WITH_LINKSClosed     LabKey Support Forum
Okay, thank you. I don't have much experience with NFS or Samba, so I have one more question. If we do decide to do that, would users still log in to access their files? For example, if I wanted to access files I have stored on there, I would have to put in my username and password for the remote server?
kevink2015-07-07 12:52Jon (LabKey DevOps)2018-11-16 23:24SSH into another server from Labkey File ManagerSSH into another server from Labkey File Manager TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, no, your individual user files would not be available. Usually, the remote files are a shared resource available to all users on the LabKey Server site or on a project-by-project basis. The file share will be mounted by the OS as a user that has read/write permissions to the files. To the server, the file share is just another file system and the server doesn't store any user credentials to the remote file share.
Jon (LabKey DevOps)2017-08-28 14:07Jon (LabKey DevOps)2018-11-16 23:23SQL string comparison with postgresql regex functionsSQL string comparison with postgresql regex functions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Myriam,

I don't think this is something we support, but I'd like to know more details as to what you're specifically looking to do here.

When you say you want to use a tilde for a string comparison, what were you hoping to do a comparison against?

Can you write us an example of how you're hoping the data will appear based on what you'd like it to do?

The regex_replace function is usable in LabKey SQL, but it is very specific in its job to replace values rather than trying to do comparisons alone.

Regards,

Jon
Myriam2017-08-29 01:27Jon (LabKey DevOps)2018-11-16 23:24SQL string comparison with postgresql regex functionsSQL string comparison with postgresql regex functions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jony,

Thank you for your reply.

For instance, here is typically what I would like to do with SQL in Labkey :

 * Comparing dates :
SELECT mydate
FROM mytable
WHERE mydate ~ '(\d{2}\/){2}\d{4}'

 * Comparing strings :
SELECT myfield
FROM mytable
WHERE myfield ~* '[A-Z]\d{5}._[a-z]+'


Is it possible to do this or something similar with reports, modules or wiki pages ?

For the moment i'm using the alternative of the "LIKE" syntax (WHERE mydate NOT LIKE 'NK/%/%' AND mydate NOT LIKE 'ND/%/%').
I am therefore obliged to know all the possibilities i've to delete with my query. But when these possibilities will are unknown to me in advance, this alternative will no longer help me ..


Regards

Myriam
Jon (LabKey DevOps)2017-08-29 14:26Jon (LabKey DevOps)2018-11-16 23:24SQL string comparison with postgresql regex functionsSQL string comparison with postgresql regex functions TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the examples Myriam.

Our operators are limited and I'm finding any kind of RegEx case-sensitive/case-insensitive option to use.

I've passed your additional info to our developers to see if there is anything that I might have missed or I might not be aware of.

Regards,

Jon
Myriam2017-09-01 03:03Jon (LabKey DevOps)2018-11-16 23:24SQL string comparison with postgresql regex functionsSQL string comparison with postgresql regex functions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Jony,

Thanks a lot for your efficiency.
Okay, i'm waiting for your news for any suggestions.

Regards,

Myriam
jeckels2014-06-25 10:47Jon (LabKey DevOps)2018-11-16 23:24SQL script not being executed for file based moduleSQL script not being executed for file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

You may have added your SQL script after your server had already upgraded your module to version 1.0. The server keeps track of the last version of the module that was deployed, and doesn't run scripts that are added after that point.

Try renaming your script to fermentation-1.00-1.01.sql, and bumping the Version in module.properties to 1.01. Then build (if you're doing that as a deployment step) and start Tomcat. The server should automatically notice that it needs to upgrade the module, find your script, and run it as part of the startup process.

Thanks,
Josh
Will Holtz2014-06-25 11:12Jon (LabKey DevOps)2018-11-16 23:23SQL script not being executed for file based moduleSQL script not being executed for file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks for the help. I tried your approach and unfortunately nothing changed. My module and sql script are not showing up in the core tables, so I don't think it is a version number problem:
labkeydev=> SELECT * FROM core.sqlscripts WHERE filename LIKE 'fermentation%';
 _ts | createdby | created | modifiedby | modified | modulename | filename
-----+-----------+---------+------------+----------+------------+----------
(0 rows)

labkeydev=> SELECT * FROM core.modules WHERE name LIKE 'Fermentation';
 name | classname | installedversion | enabled | autouninstall | schemas
------+-----------+------------------+---------+---------------+---------
(0 rows)

Any other ideas would be greatly appreciated!

-Will
adam2014-06-25 20:07Jon (LabKey DevOps)2018-11-16 23:24SQL script not being executed for file based moduleSQL script not being executed for file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Will,

You're very close. The server actually loads the key properties (module version, supportedDatabases, etc.) from module.xml, not module.properties. The standard build process will translate module.properties into module.xml (via substitution into module.template.xml), but you aren't building this module (and you don't need to)... just copy content like the below to /resources/config/module.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    <bean id="moduleBean" class="org.labkey.api.module.SimpleModule">
        <property name="name" value="Fermentation"/>
        <property name="version" value="1.0"/>
        <property name="requiredServerVersion" value="14.10"/>
        <property name="supportedDatabases" value="pgsql"/>
    </bean>
</beans>

Your other files are perfect... I copied my module.xml plus your fermentation.xml & fermentation-0.00-1.00.sql to the appropriate locations in my externalModules directory and the module correctly created the new schema.

Adam
Will Holtz2014-06-25 22:59Jon (LabKey DevOps)2018-11-16 23:24SQL script not being executed for file based moduleSQL script not being executed for file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Adam,

Thanks for the correction. I don't think I ever would have figured that detail out from the docs. Unfortunately that change didn't seem to impact my system. The fermentation schema is still not being created, my module still shows up as version 0.00, my module is not in the core.modules table nor is my sql script in core.sqlscripts.

Any other thoughts? Thanks much!

-Will
jeckels2014-06-27 17:02Jon (LabKey DevOps)2018-11-16 23:24SQL script not being executed for file based moduleSQL script not being executed for file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

How are you building your module? Can you run "jar tf fermentation.module" from the command line and paste its output into a reply? That will give us the full set of files and their layout.

Thanks,
Josh
Will Holtz2014-06-27 17:49Jon (LabKey DevOps)2018-11-16 23:24SQL script not being executed for file based moduleSQL script not being executed for file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

My build process is just to zip up the module directory. Generally, during my development cycle I haven't even been doing that. I just edit the module directory in place and I manually tell tomcat to reload my labkey instance when needed. I have attached the module file.

will@lims:/usr/local/labkey-dev/externalModules/Fermentation$ zip -r ../Fermentation.module *
  adding: resources/ (stored 0%)
  adding: resources/config/ (stored 0%)
  adding: resources/config/module.xml (deflated 56%)
  adding: resources/schemas/ (stored 0%)
  adding: resources/schemas/dbscripts/ (stored 0%)
  adding: resources/schemas/dbscripts/postgresql/ (stored 0%)
  adding: resources/schemas/dbscripts/postgresql/fermentation-0.00-1.00.sql (deflated 18%)
  adding: resources/schemas/fermentation.xml (deflated 61%)
will@lims:/usr/local/labkey-dev/externalModules/Fermentation$ cd ..
will@lims:/usr/local/labkey-dev/externalModules$ jar tf Fermentation.module
resources/
resources/config/
resources/config/module.xml
resources/schemas/
resources/schemas/dbscripts/
resources/schemas/dbscripts/postgresql/
resources/schemas/dbscripts/postgresql/fermentation-0.00-1.00.sql
resources/schemas/fermentation.xml
will@lims:/usr/local/labkey-dev/externalModules$
tgaluhn2014-07-02 18:04Jon (LabKey DevOps)2018-11-16 23:24SQL script not being executed for file based moduleSQL script not being executed for file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will-

Apologies for the continued confusion. I believe Adam misspoke above. The config directory (with module.xml) goes at the top level of your module, next to the resources directory.

I was able to reproduce the problem you're seeing with the Fermentation.module file you provided, but moving the config folder to the correct location made it work.

I've made note for us to improve the documentation around this.

Let us know if have any further questions.

-Tony
marcia hon2018-02-23 11:33Jon (LabKey DevOps)2018-11-16 23:24SQL Query with ParametersSQL Query with Parameters TEXT_WITH_LINKSClosed     LabKey Support Forum
Also, what version of SQL is used in Labkey?

Is it Oracle? DB2?

Thanks
marcia hon2018-02-26 05:48Jon (LabKey DevOps)2018-11-16 23:24SQL Query with ParametersSQL Query with Parameters TEXT_WITH_LINKSClosed     LabKey Support Forum
I have a parameter in my SQL script.

I would like this parameter to be used in the query with an "IN" command.

How do I enter data? Should it be "abc, dge, fec"?

And how do I parse this in the "IN" command?
marcia hon2018-02-27 08:22Jon (LabKey DevOps)2018-11-16 23:24SQL Query with ParametersSQL Query with Parameters TEXT_WITH_LINKSClosed     LabKey Support Forum
We are thinking of a workaround...

Create the query...

and then,

use Gridview to filter the query...


Thanks!
Jon (LabKey DevOps)2018-03-09 14:43Jon (LabKey DevOps)2018-11-16 23:23SQL Query with ParametersSQL Query with Parameters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Have you taken the time to review our robust Support Documentation?

https://www.labkey.org/Documentation/wiki-page.view?name=default

Many of your questions can be answered in our docs and we even have videos to help you understand how to both use LabKey and understand the functionality:

https://www.labkey.org/Documentation/wiki-page.view?name=videos

For future, please do your best to consult our fantastic docs first before posting to the Community Forums.


Regarding your question about which version of SQL is used with LabKey, only PostgreSQL and Microsoft SQL Server are supported for use with the LabKey platform:

https://www.labkey.org/Documentation/wiki-page.view?name=supported

We can interface with other databases as an external datasource and have it appear as an External Schema on a read-only basis:

https://www.labkey.org/Documentation/wiki-page.view?name=externalSchemas

The LabKey SQL dialect itself is a pretty universal SQL dialect that does leverage some database-specific functions depending on what DB you're running off of:

https://www.labkey.org/Documentation/wiki-page.view?name=labkeysql

Regarding using the IN operator with Parameters, this is not possible since the Parameterization doesn't treat multiple values within the field as separate fields, but as one single value.

For example, putting in "abc, dge, fec" in a Parameterized field wouldn't treat it as three separate values, but rather one whole value. So it would treat it like:

WHERE fieldname IN ("abc, dge, fec")

rather than

WHERE fieldname IN ("abc", "dge", "fec")

So in order to get the desired result you want, you would need to do your filtering via your grid after the results render since the filter on the grid does allow you to filter in a variety of ways, such as "Equals One Of", "Contains One Of", and more:

https://www.labkey.org/Documentation/wiki-page.view?name=filteringExpressions
https://www.labkey.org/Documentation/wiki-page.view?name=filteringData

Regards,

Jon
Jon (LabKey DevOps)2015-04-16 14:08Jon (LabKey DevOps)2018-11-16 23:24SQL query in a moduleSQL query in a module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Can you provide us with the SQL query you're trying to run?

Regards,

Jon
laurapas2015-04-16 15:00Jon (LabKey DevOps)2018-11-16 23:24SQL query in a moduleSQL query in a module TEXT_WITH_LINKSClosed     LabKey Support Forum
Sure, here it is. It is for Skyline data in a Panorama folder. It's similar to the CPTAC example that is published here: https://daily.panoramaweb.org/labkey/project/MacCoss/vsharma/Webinar/Aug%2019%2C2014/begin.view.

SELECT
tci.TransitionId.PrecursorId.PeptideId.PeptideGroupId.Label AS Protein,
tci.TransitionId.PrecursorId.PeptideId.PeptideModifiedSequence AS PeptideModifiedSequence,
tci.TransitionId.PrecursorId.IsotopeLabelId.Name AS IsotopeLabel,
tci.TransitionId.PrecursorId.Charge AS PrecursorCharge,
tci.TransitionId.Charge AS ProductCharge,
tci.TransitionId.FragmentType + CAST(tci.TransitionId.FragmentOrdinal AS VARCHAR) AS FragmentIon,
tci.SampleFileId.ReplicateId.Name AS Replicate,
annot1.Value AS Concentration,
annot2.Value AS SampleGroup,
annot3.Value AS ISSpike,
tci.Area,
tci.Background,
(SELECT annot3.Value
   FROM precursorchrominfoannotation annot3
   WHERE annot3.PrecursorChrominfoId = tci.precursorChromInfoId
   AND annot3.Name = 'do not use') AS DoNotUse,
pepannot1.Value AS PeptideConcentrationIS,
pepannot2.Value AS PeptideConcentration,
annot4.Value AS MultiplicationFactor,
(SELECT
   MAX(CASE WHEN prec.IsotopeLabelId.Name = 'light' THEN CAST(prec.IsotopeLabelId.Standard AS INTEGER) END) as lightstd
   FROM precursor prec
   WHERE tci.TransitionId.PrecursorId.PeptideId.PeptideGroupId.Label = prec.PeptideId.PeptideGroupId.Label
              AND
              tci.TransitionId.PrecursorId.PeptideId.PeptideModifiedSequence = prec.PeptideId.PeptideModifiedSequence
   GROUP BY prec.PeptideId.PeptideGroupId.Label, prec.PeptideId.PeptideModifiedSequence) as lightstd,
(SELECT
   MAX(CASE WHEN prec.IsotopeLabelId.Name = 'heavy' THEN CAST(prec.IsotopeLabelId.Standard AS INTEGER) END) as heavystd
   FROM precursor prec
   WHERE tci.TransitionId.PrecursorId.PeptideId.PeptideGroupId.Label = prec.PeptideId.PeptideGroupId.Label
              AND
              tci.TransitionId.PrecursorId.PeptideId.PeptideModifiedSequence = prec.PeptideId.PeptideModifiedSequence
   GROUP BY prec.PeptideId.PeptideGroupId.Label, prec.PeptideId.PeptideModifiedSequence) as heavystd
FROM transitionchrominfo tci
LEFT JOIN replicateannotation annot1 ON (tci.SampleFileId.ReplicateId = annot1.replicateid AND annot1.Name='Concentration')
LEFT JOIN replicateannotation annot2 ON (tci.SampleFileId.ReplicateId = annot2.replicateid AND annot2.Name='SampleGroup')
LEFT JOIN replicateannotation annot3 ON (tci.SampleFileId.ReplicateId = annot3.replicateid AND annot3.Name='IS Spike')
LEFT JOIN replicateannotation annot4 ON (tci.SampleFileId.ReplicateId = annot4.replicateid AND annot4.Name='Multiplication factor')
LEFT JOIN peptideannotation pepannot1 ON (tci.TransitionId.PrecursorId.PeptideId = pepannot1.PeptideId AND pepannot1.Name='Peptide Concentration IS')
LEFT JOIN peptideannotation pepannot2 ON (tci.TransitionId.PrecursorId.PeptideId = pepannot2.PeptideId AND pepannot2.Name='Peptide Concentration')
jeckels2015-04-16 16:03Jon (LabKey DevOps)2018-11-16 23:24SQL query in a moduleSQL query in a module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

I suspect that the difference in behavior may be related to using Postgres on your local machine instead of SQLServer on your production server.

LabKey SQL uses || as the standard string concatenation operator. https://www.labkey.org/wiki/home/Documentation/page.view?name=labkeysql

Using + happens to work on SQL Server as well. On Postgres, I was able to fix the error message by changing this line:

tci.TransitionId.FragmentType + CAST(tci.TransitionId.FragmentOrdinal AS VARCHAR) AS FragmentIon,

to:

tci.TransitionId.FragmentType || CAST(tci.TransitionId.FragmentOrdinal AS VARCHAR) AS FragmentIon,

Please give it a try and see if it clears up the error on your machine too.

Thanks,
Josh
laurapas2015-04-16 21:14Jon (LabKey DevOps)2018-11-16 23:23SQL query in a moduleSQL query in a module TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank You! That worked. Thanks also for pointing out the LabKey SQL documentation. I missed the detail about the concatenation operator.
Anthony Corbett2012-10-03 08:55Jon (LabKey DevOps)2018-11-16 23:23SQL NOT IN using another query's column for filteringSQL NOT IN using another query's column for filtering TEXT_WITH_LINKSClosed     LabKey Support Forum
I've attached an example folder export that contains:

the study dataset, lists, and example queries.

I hope this helps.
Matthew Bellew2012-10-03 09:29Jon (LabKey DevOps)2018-11-16 23:23SQL NOT IN using another query's column for filteringSQL NOT IN using another query's column for filtering TEXT_WITH_LINKSClosed     LabKey Support Forum
This is not valid SQL. I think you're looking for

SELECT
  demo.Sex,
  SUM(demo.White) as white,
  SUM(demo.Black) as black,
  SUM(demo.Asian) as asian,
  SUM(demo.NatAmer) as nativeAmerican,
  SUM(demo.Pacific) as pacific,
  SUM(demo.NotReported) as notReported,
  COUNT(demo.ParticipantId) as total,
FROM Demographics as demo
WHERE demo.ParticipantId NOT IN (SELECT Participant ID FROM MultipleRaceParticipants)
GROUP BY demo.Sex
Anthony Corbett2012-10-03 11:14Jon (LabKey DevOps)2018-11-16 23:23SQL NOT IN using another query's column for filteringSQL NOT IN using another query's column for filtering TEXT_WITH_LINKSClosed     LabKey Support Forum
Ah, sorry for the oversight.

Thanks so much for the quick reply! Working great now!
Jon (LabKey DevOps)2018-10-24 10:46Jon (LabKey DevOps)2018-11-16 23:24SQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL OperationsSQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL Operations TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

LabKey SQL doesn't have the functionality to create/drop temp tables. Something like that would have to be done directly on the database itself, so it's possible to have these actions done through a custom module. If you're using Javascript, it may be possible to create a localstore of your data to temporarily hold the information within the browser session to then work with it and/or send the information elsewhere doing something like a POST to the API and having that localstore information in JSON format when it gets applied to the API.

Regarding inserting rows from one table/list to another without downloading is possible through things such as using ETLs.

https://www.labkey.org/Documentation/wiki-page.view?name=etlModule

Another possible way to do this is using the API to do a selectRows on the one table/list and have that success response point to the insertRows (or importRows) API call in a for loop.

Regarding deleting rows quickly, you're likely going to find the same level of performance when it comes to deleting in the UI as well, like the 29 seconds for it to delete 3000 rows when you were doing this via the Javascript API. LabKey does more behind the scenes when it comes to deleting data, not just removing the rows, but also checking for any dependencies as well to make sure the delete is as clean as it can be.

Based on your description, have you considered using an ETL for your work? Although we'd have to fully assess what you're working with, but it sounds like you could use the ETL to obtain your source data, have a stored procedure on the database server to identify the duplicates, then proceed to insert the values into the target table as new rows.

Regards,

Jon
Ben Bimber2018-10-24 10:55Jon (LabKey DevOps)2018-11-16 23:24SQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL OperationsSQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL Operations TEXT_WITH_LINKSClosed     LabKey Support Forum
Is it possible for your duplicate row logic to be performed on the client using JS, instead of via SQL? For example, if you could load whatever source data you need to the client, you could potentially very quickly compare your incoming data to that, identify the minimal inserts, and then insert those new rows using the API. If so, the avoids needing the temp table. Otherwise, like Jon says ETL is probably a good option.
dabaker32018-10-24 11:04Jon (LabKey DevOps)2018-11-16 23:24SQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL OperationsSQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL Operations TEXT_WITH_LINKSClosed     LabKey Support Forum
I did get this following code to work for delete all rows in a table, but it does use EXT4.
I am not sure if there is any negative impacts, but the keys and list does look like they remained intact.
It may be that the deleteRows() is not doing a batch delete, where as the truncateTable will do batch(s) delete which is at least 30x faster.

 I scrubbed it from code in a truncate list post from a few years back and combined it with what a delete all button javascript code in the that the console reported:
       
        var waitMask = Ext4.Msg.wait('Deleting All Rows from List...', 'Deleting Rows');
    Ext4.Ajax.request({
        url : LABKEY.ActionURL.buildURL('query', 'truncateTable'), // or 'query/[containerPath]/truncateTable.view' if it is in another container,
        method : 'POST',
        success: function(response) {
                waitMask.close();
                next_function_to_do();
            },
        failure : function(response, opts) {
            waitMask.close();
            Ext4.getBody().unmask();
            LABKEY.Utils.displayAjaxErrorResponse(response, opts);
        },
        jsonData : {
            schemaName : 'lists',
            queryName : '[queryName]'
        },
        scope : this
    });
dabaker32018-10-24 11:23dabaker32018-10-24 11:23SQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL OperationsSQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL Operations TEXT_WITH_LINKSClosed     LabKey Support Forum
• Using Rstudio worked client side, and I can convert that code to Javascript.
         • One issue I ran into was with filtering there is a PostgreSQL limit on an "IN" or "NOT IN" of ~2000 items, in which I would have to programmatically disable the filter. An SQL INNER JOIN would have alleviated this limit, but I will go with the javascript solution instead.
jeckels2014-09-08 16:31Jon (LabKey DevOps)2018-11-16 23:23SQL in modulesSQL in modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

All three approaches are reasonable.

The Table.insert()/update()/delete() approach with a simple Java class/bean works well when you want other code to be able to work with the class, and its fields map directly with what you're using in the database. It usually results in the least lines of code to accomplish the goal.

SQLFragment/SQLExecutor is a good approach when you need more control over the SQL you're generating. It's also used for operations that operate on multiple rows at a time.

PreparedStatements are good when you're dealing with many data rows and want the performance gain from being able to reuse the same statement with different values.

However, you might also be able to get away without needing any server-side Java code as well by using the LABKEY.Query.saveRows() or similar APIs from your JavaScript code in the client. In this scenario, you'd expose your table as part of a schema, and rely on the default server implementation. This approach gives you the least control over the SQL that's actually used.

Thanks,
Josh
bront@kcr.uky.edu2015-04-24 12:05Jon (LabKey DevOps)2018-11-16 23:24SQL in modulesSQL in modules TEXT_WITH_LINKSClosed     LabKey Support Forum
hi,

I would like to re-open this question and ask for further information on the Table.insert()/update()/delete() approach.

1. Is it possible to return a value (e.g., the newly inserted rowid) from a Table.insert()?

2. Also, is it possible to map an insert()/update() to target multiple tables?

Thanks,

bront
Jon (LabKey DevOps)2015-04-24 16:48Jon (LabKey DevOps)2018-11-16 23:24SQL in modulesSQL in modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

I've provided the answers below your original questions:

Question 1. Is it possible to return a value (e.g., the newly inserted rowid) from a Table.insert()?

Answer: According to our developers, yes it can be done. The value is automatically pushed into the object that is returned from Table.insert().

Question 2. Also, is it possible to map an insert()/update() to target multiple tables?

Answer: Not in this case. You would have to make separate calls for each table you want to insert/update or create your own custom SQL code via JDBC connection to pull this off.

Regards,

Jon
bront@kcr.uky.edu2014-09-09 06:00bront@kcr.uky.edu2014-09-09 06:00SQL in modulesSQL in modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

That was exactly the sort of general overview I was hoping for. Thank you for the clarification.

bront
bront@kcr.uky.edu2015-04-25 06:55bront@kcr.uky.edu2015-04-25 06:55SQL in modulesSQL in modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Again, thank you so much for your quick answers. Very much appreciated.

bront
Jon (LabKey DevOps)2016-04-26 14:50Jon (LabKey DevOps)2018-11-16 23:24SQL concat() gives error when more than 2 argumentsSQL concat() gives error when more than 2 arguments TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

This looks like a bug. It should take more than two arguments for sure.

I'll get this escalated and looked into.

Regards,

Jon
Jon (LabKey DevOps)2016-04-26 14:57Jon (LabKey DevOps)2018-11-16 23:24SQL concat() gives error when more than 2 argumentsSQL concat() gives error when more than 2 arguments TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I've created bug https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=26316 on this.

Thanks for bringing it to our attention.

The only way I've found to work around this is a little ugly, but you can concat the concat like this:

SELECT concat(concat('a', 'b'), 'c') as combined

Not ideal, but it works.

Regards,

Jon
Jon (LabKey DevOps)2016-04-26 21:13Jon (LabKey DevOps)2016-04-26 21:13SQL concat() gives error when more than 2 argumentsSQL concat() gives error when more than 2 arguments TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

So it looks like our docs actually need to be revised to indicate that only two arguments can be used. However, you can use operators to give you the same result.

iSELECT 'a' || 'b' || 'c' AS combined;

Regards,

Jon
jeckels2017-03-05 16:59Jon (LabKey DevOps)2018-11-16 23:24SQL CASE Statement with BooleanSQL CASE Statement with Boolean TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Which database are you using?

Have you tried using 0 and 1 with a CAST and BIT?

Thanks,
Josh
bront@kcr.uky.edu2017-03-06 07:26Jon (LabKey DevOps)2018-11-16 23:24SQL CASE Statement with BooleanSQL CASE Statement with Boolean TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

I am using PostgreSQL 9.3.

I tried the following, but I'm still getting the "internal error while parsing." I am not sure I am formatting the CAST correctly.

SELECT
CASE
    WHEN Message.gender = 'M' then CAST(1 AS BIT)
    ELSE CAST(0 AS BIT)
END as booleanTest
FROM Message
WHERE Message.messageId = '12345';

Thanks,

bront
Jon (LabKey DevOps)2017-03-07 01:14Jon (LabKey DevOps)2018-11-16 23:24SQL CASE Statement with BooleanSQL CASE Statement with Boolean TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

I think it is supposed to look like this:

SELECT
CAST (
     CASE
         WHEN Message.gender = 'M' then 1 ELSE 0
     END
AS BIT)
 as booleanTest
FROM Message
WHERE Message.messageId = '12345';

Since the use of CAST is basically "CAST (expression AS type)", then the CASE would have to be an expression here.

Can you give the above a try?

Regards,

Jon
jeckels2015-04-28 11:29Jon (LabKey DevOps)2018-11-16 23:23Spring and JPA versions in Labkey 15.1?Spring and JPA versions in Labkey 15.1? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Welcome to LabKey Server!

1. We're currently using Spring 2.5.5, including Spring Mock and Spring WebMVC. We're not using JPA.

2. We have our own access control layer.

3. We aren't using Spring Boot. I'm not very familiar with it, but at a glance it doesn't look like it would work with LabKey Server as-is.

4. We don't use an application.properties file. We store similar settings, including the JDBC connection information and context path, in our Tomcat deployment descriptor. https://www.labkey.org/wiki/home/Documentation/page.view?name=cpasxml

5. We have a well-defined approach for creating and upgrading schemas and tables, which uses actual SQL scripts. This is the same mechanism we use on our development machines and to upgrade production servers. https://www.labkey.org/wiki/home/Documentation/page.view?name=sqlScripts

Thanks,
Josh
jeckels2015-05-08 13:09Jon (LabKey DevOps)2018-11-16 23:24Spring and JPA versions in Labkey 15.1?Spring and JPA versions in Labkey 15.1? TEXT_WITH_LINKSClosed     LabKey Support Forum
As an update, we've just upgraded to Spring 4.0.X for our upcoming 15.2 release.

Thanks,
Josh
Jon (LabKey DevOps)2018-03-09 16:10Jon (LabKey DevOps)2018-11-16 23:24Speed of Queries in LabkeySpeed of Queries in Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Have you taken the time to review our robust Support Documentation?

https://www.labkey.org/Documentation/wiki-page.view?name=default

Many of your questions can be answered in our docs and we even have videos to help you understand how to both use LabKey and understand the functionality:

https://www.labkey.org/Documentation/wiki-page.view?name=videos

For future, please do your best to consult our fantastic docs first before posting to the Community Forums.


Regarding the speed of your queries, this is difficult to say. You should do your best to make sure your queries are optimized as much as possible.

It could also possibly be inadequate hardware that your LabKey instance is sitting on and there are not enough resources to run the queries:

https://www.labkey.org/Documentation/wiki-page.view?name=beforeInstall

The number of rows also matters as well since going back to optimization, the more data you have, the longer it may take to respectively render. If you are running calculations and doing pivots within those queries, that can also take a little longer than your standard SELECT statement.

Regards,

Jon
Dave Bradlee2012-11-05 16:40Jon (LabKey DevOps)2018-11-16 23:24Specimen Sites & LabsSpecimen Sites & Labs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

You are correct that there is no way to remove a site/lab from the list, unless you delete the study and reimport it into a new study with only the labs you want in the labs.tsv. So you could export your study and delete it from LabKey. Then open up the specimen archive and edit labs.tsv to contain only the sites/labs you want. Repackage the archive and then import into a new study in LabKey. I think that would work. Let me know if you try that and it doesn't work.

Thanks.

Dave
Dave Bradlee2012-11-05 17:02Jon (LabKey DevOps)2018-11-16 23:24Specimen Sites & LabsSpecimen Sites & Labs TEXT_WITH_LINKSClosed     LabKey Support Forum
You probably already know this, but I should add that re-importing does have the downside that not everything gets exported from a study, so there are things you would have to recreate, such as the specimen request settings. The way to understand what you will need to recreate is to look at the page we display when exporting a study (with lots of check boxes). Anything not listed there is (probably) not exported. Of course, you can also look in the study archive and see what is there and figure it out from there.

Good luck.

Dave
Jon (LabKey DevOps)2017-09-21 20:20Jon (LabKey DevOps)2017-09-21 20:20Specimen, Set primaryType and derivativeType using R APISpecimen, Set primaryType and derivativeType using R API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Joel,

The SpecimenPrimaryType table appears to not be updatable via the API. The only place where I'm finding the table gets any kind of updating is via the Advanced Specimen import process using a specimen archive file that has a primary_types.tsv file with the values.

https://www.labkey.org/Documentation/wiki-page.view?name=specimenArchiveFileFormat

Regards,

Jon
Jon (LabKey DevOps)2018-03-02 17:31Jon (LabKey DevOps)2018-11-16 23:23Specimens dataset customizationSpecimens dataset customization TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

It looks like you're using the standard specimen repository, which is not customizable. If you would like to have additional fields to be added, the repository would need to be switched to being an Advanced repository.

Once this is done, you can update the Specimen repository to hold additional fields, then switch back to a basic repository so your basic spreadsheet template will import.

Alternatively, if you don't want to mess around with that, you could use the Sample Sets option in LabKey as a Specimen Repository instead:

https://www.labkey.org/Documentation/wiki-page.view?name=studySamples

Regards,

Jon
Edward2018-03-05 02:02Jon (LabKey DevOps)2018-11-16 23:24Specimens dataset customizationSpecimens dataset customization TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thank you for your kind reply.
I liked your suggestion of using Sample Sets instead of Specimen Repository. However, I could not find the option of choosing sample sets instead of specimen in my study folder settings. Can you guide me here in from where can I activate sample sets to be used in a study?

Thank you!
Jon (LabKey DevOps)2018-03-05 13:13Jon (LabKey DevOps)2018-03-05 13:13Specimens dataset customizationSpecimens dataset customization TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

The Sample Sets is a webpart you can enable on any container.

Click on the Gear Icon > Page Admin Mode and you'll see the webpart dropdowns at the bottom of the page and then pick Sample Sets.

Sample Sets are independent of Studies, which is why that option isn't appearing in your Study Settings.

For more details and information on Sample Sets, please checkout our following docs:

https://www.labkey.org/Documentation/wiki-page.view?name=samplesets
https://www.labkey.org/Documentation/wiki-page.view?name=lkSampleSets

Regards,

Jon
eknelson2011-07-28 12:22Jon (LabKey DevOps)2018-11-16 23:24Specimen RequestsSpecimen Requests TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Thanks for reporting this bug. I consulted with Britt (our specimen expert) and opened:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=12738

In summary:

Today's behavior:
The request you have chosen most recently in the "Request Vial" popup is provided as the default request when you next reach the "Request Vial" popup (i.e., when you select a vial and click "Request Options -> Add to existing request"). This pattern is tracked on a per-user basis.

Desired behavior:
When you create a new request, LabKey should show this new request as the default request in the "Request Vials" popup. This behavior should persist until you select a different request in a "Request Vials" popup, or until you create a new request. At that point, the newly chosen or created request should become the default. This pattern should also be tracked on a per-user basis.

Regards,
Elizabeth
jdutra2011-07-28 12:32Jon (LabKey DevOps)2018-11-16 23:23Specimen RequestsSpecimen Requests TEXT_WITH_LINKSClosed     LabKey Support Forum
That sounds perfect. Thanks!
Dave Bradlee2013-12-02 14:52Jon (LabKey DevOps)2018-11-16 23:24Specimen Request ManagementSpecimen Request Management TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

Re your first question about the specimen coordinator role, there's no current way to do what you would like. A role, such as Specimen Coordinator, has a fixed set of permissions associated with it. There is not a way to give a user that role, but subtract from the permission set. There is also not a way to give a user a set of permissions or to create a custom role with the set of permissions you want. You can only give a user one or more of the existing roles for various folders.

Re your second question, we do not enforce the requirements you place on requests. We'll tell you if they are not complete, but not prevent you from moving the request to different states including final states. So, a requirement is essentially a guideline. We do, however, prevent you from changing requirements (e.g. marking them complete) when the request is in a final state, because a final state means that nothing else can change in the request.

Hope that helps.

Thanks.

Dave
jeckels2013-05-03 10:41Jon (LabKey DevOps)2018-11-16 23:24Specimen Repository Alias GlobalUniqueIDSpecimen Repository Alias GlobalUniqueID TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

We don't have an equivalent option for GlobalUniqueId aliases like we just added for participants.

I don't know the specimen schema well enough to suggest an existing column to repurpose. However, you might be able to load a side table with the mapping data, and then use XML-based metadata overrides to configure a lookup from the specimen queries to your extra data.

You'd need to configure the metadata in your side table such that the GlobalUniqueId is marked as the one key field (even if that's not the case in the underlying table itself). You'd need to have zero or one rows per GlobusUniqueId, or when you add the lookup column you'll get row multiplication.

Then, go to the schema browser and navigate to the specimen table. Click Edit Metadata in the upper right. Click the Alias Field button. Select the GlobalUniqueId column. Configure this wrapped column to be a lookup to your side table.

Then, you should be able to use Customize View to join in your alias column when you're looking at the specimen query.

Thanks,
Josh
Anthony Corbett2013-05-06 09:04Jon (LabKey DevOps)2018-11-16 23:24Specimen Repository Alias GlobalUniqueIDSpecimen Repository Alias GlobalUniqueID TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Thank you for the reply. I've got this working; the SpecimenDetails.GlobalUniqueId has been wrapped (alias-ed) as an additional column with custom XML to create a FK to Samples."Study Specimens". When I'm looking at the DataGrid for the SpecimenDetails query I can now bring in other columns from the Sample Set (this is where we've decided to add the 'customerId' alias for the specimen).

However, this new wrapped column is not available through the drill down from the SpecimenID column from the assay results DataGrid or from the study dataset once the assay results have been copied to the target study.

How can I achieve this functionality?


There seems to be some disconnect between the study module's Specimen and the experiment module's Samples. Though a 'shadow' sample is created for each study specimen there is no generic linkage between the two the allow automatic fk lookups between the Vail.GlobalUniqueID and the Samples."Study Specimens".Name

I understand that the target study also plays a role in resolving this lookup and it really is a composite key from an assay results table. Would it be possible to add in to the SpecimenID lookup that currently exists a way to get the to Sample."Study Specimens" and bring in the columns from that sample set? This would be a great generic and flexible option to place any additional metadata about the Specimen/Sample.

Thanks,

Anthony
Dave Bradlee2013-04-02 13:47Jon (LabKey DevOps)2018-11-16 23:23Specimen CommentsSpecimen Comments TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

It's incorrect for our documentation to say that Comments is a Draw field. It should be an Event field. In the actual DB, the Comments field is only on the SpecimenEvent table. The Comments field on the LabKey SpecimenDetail table is a combination/choice of comments from various specimen and participant tables. However, the field LatestComments on SpecimenDetail (which corresponds to the actual DB Vial table) will be the Comments field from the latest chronological event for that specimen found in the archive.

Dave
Jon (LabKey DevOps)2018-04-07 23:40Jon (LabKey DevOps)2018-11-16 23:23Specimen Archive frozen_time not visibleSpecimen Archive frozen_time not visible TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

If you are using the standard specimen archive, there are limitations to what it will accept in the import compared to the Advanced Repository. The advanced repository has more functionality and would be able to take in additional columns. However, if neither option works for your needs, you can also consider using Sample Sets as a specimen repository instead (https://www.labkey.org/Documentation/wiki-page.view?name=studySamples).

With regard to grid views, if you add new fields, you will need to also enable them within the grid view as well by clicking the Grid button and selecting the option to customize the grid. The grid customizer should show the new field you added in.

Regards,

Jon
Dave Bradlee2013-12-02 14:41Jon (LabKey DevOps)2018-11-16 23:24Specimen Archive frozen_timeSpecimen Archive frozen_time TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

You are correct that frozen_time is TimeOnly. The Specimen Archive documentation is incorrect and should say that this field is the Time when frozen, not Date/Time. And there is no corresponding field frozen_date. So, the bottom line is that there is currently no place to store the date a specimen is frozen if that date needs to be distinct from other dates that can appear in the archive, such as storage_date.

Thanks.

Dave
jeckels2013-12-04 12:55Jon (LabKey DevOps)2018-11-16 23:24Specimen Archive frozen_timeSpecimen Archive frozen_time TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

A related followup note is that we're currently working on making the specimen tables customizable, which might allow you to track this kind of information in a custom column in the future.

In November, we did the work to move the specimen tables over to an implementation that allows us to add custom columns on a per-container/study basis, though we haven't yet enabled customization.

In December, we plan to continue to allow customization of the columns. I expect that there will continue to be the base set of columns that are required (much as datasets have some required columns, like ParticipantId).

If this is of interest to you, I can see if there's a spec that's ready for sharing.

Thanks,
Josh
jdutra2013-12-04 13:03Jon (LabKey DevOps)2018-11-16 23:24Specimen Archive frozen_timeSpecimen Archive frozen_time TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the responses. Josh, in addition to the date frozen, we are currently "borrowing" several columns in the specimen tables and using them for our own purposes, so custom columns would definitely be of interest to us. We'd love to see the spec whenever it's ready. I appreciate the followup.

Jen
jdutra2012-07-24 08:24Jon (LabKey DevOps)2018-11-16 23:24Specimen archiveSpecimen archive TEXT_WITH_LINKSClosed     LabKey Support Forum
I've just been looking at this again. I went through all the specimen datasets listed in the schema browser, and I can't find this parent_specimen_id field anywhere. If anyone could give me some additional information about it I'd really appreciate it.
Dave Bradlee2012-07-25 15:21Jon (LabKey DevOps)2018-11-16 23:23Specimen archiveSpecimen archive TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

There is nothing special about any of those fields. They are fields that some, but not necessarily all, customers need for their specimen data. LabKey does not assume any particular behavior and thus you could use any of those for your own purposes. But of course, it would be up to you to do something with the field. For example, you could use parent_specimen_id to hold the record_id of a specimen or use other_specimen_id to hold a global_unique_id for another specimen. But you wouldn't be able to click on parent_specimen_id, for example, and navigate to that row in a table.

Hope this helps.

Dave Bradlee
jdutra2012-08-14 12:28Jon (LabKey DevOps)2018-11-16 23:24Specimen archiveSpecimen archive TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dave,

Thanks for your input. The big problem I'm having at this point is that I can't find any of these fields. For example, I've decided to put the GlobalUniqueID for a linked specimen into the other_specimen_id field (as listed in the help). I checked my inventory.specimens file, and I have the ids right where I want them. But after I import, I can't find the data or the field anywhere. The table on the help page (https://www.labkey.org/wiki/home/Documentation/page.view?name=specimenArchiveFileFormat) says that other_specimen_id is an attribute of "Event". So I looked for it by clicking on the history of the specimen, but there's nothing there. I tried customize view on the history screen to see if that field was not included in my default view, but didn't find it there either. I went to the schema browser and looked at the field lists for all of the specimen tables, but still didn't find it. Could you point me in the right direction so that I can get to this field and use it in a query or custom view?

Thanks so much,
Jen
Jon (LabKey DevOps)2015-01-22 17:07Jon (LabKey DevOps)2018-11-16 23:24Specify Specific Container for QuerySpecify Specific Container for Query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Micah,

Are you trying to just get a specific folder, a folder and the project associated with it, or something else entirely?

If you were to want to get just a specific folder, you would replace "CurrentAndSubfolders" with just "Current". If it was the current folder and the project it's under, you would use "CurrentPlusProject".

Doc Source: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.containerFilter

Is this what you were looking to do?

Regards,

Jon
jeckels2015-01-26 14:23Jon (LabKey DevOps)2018-11-16 23:23Specify Specific Container for QuerySpecify Specific Container for Query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Micah,

The primary container for a given query is specified on the UserSchema instead of the QuerySettings. Jon's suggestion is a good one when you want to see data for multiple containers instead of just the current one.

Thanks,
Josh
jeckels2011-08-24 17:06Jon (LabKey DevOps)2018-11-16 23:24Specifying PK On Query with a JoinSpecifying PK On Query with a Join TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

In your metadata XML, try adding a <ns:isKeyField>true</ns:isKeyField> element to the column itself. I've used that with success with custom queries before.

Thanks,
Josh
Jon (LabKey DevOps)2015-05-07 20:36Jon (LabKey DevOps)2018-11-16 23:24source reusable r functionssource reusable r functions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Storing your functions as a personal R package is actually the best way to go. Here is some documentation of people who've done just that:

http://kbroman.org/steps2rr/pages/packages.html (the entire page http://kbroman.org/steps2rr/ has a pretty good no-nonsense approach that you can follow along)

http://hilaryparker.com/2013/04/03/personal-r-packages/ (a good note of how the personal R package was on GitHub and how it was used as an R library).

So you can have your R functions up on GitHub in your own project and use it easily as mentioned in the second link.

Regards,

Jon
adam2012-01-20 06:21Jon (LabKey DevOps)2018-11-16 23:23Source code is not availableSource code is not available TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for letting us know, we'll look into fixing that download location.

In the mean time, you can get all the source from the subversion repository (https://www.labkey.org/wiki/home/Documentation/page.view?name=svn) if you need it.

Thanks,
Adam
adam2012-01-20 11:52Jon (LabKey DevOps)2018-11-16 23:24Source code is not availableSource code is not available TEXT_WITH_LINKSClosed     LabKey Support Forum
Links to the 11.3 source archives are now fixed; we'll restore access to previous releases shortly.

Thanks for your patience.

Adam
Leo Dashevskiy2018-10-27 23:50Leo Dashevskiy2018-10-27 23:50Sorting in Labkey-SQLSorting in Labkey-SQL TEXT_WITH_LINKSClosed     LabKey Support Forum 
Ben Bimber2012-09-06 17:01Jon (LabKey DevOps)2018-11-16 23:24Sorting in Labkey-SQLSorting in Labkey-SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I believe what you're seeing are broken lookups. This means those values, like B710-A, are not present in the target of that lookup. That is why LabKey appended brackets (<>) around the values.

When this happens, LabKey renders the value as a string, but treats the raw value as NULL. This is probably why they are sorting as you're seeing. The behavior is a little funny, but it has roots in the fact it's very common for a lookup to have a different raw value and display value, and these columns frequently have different datatypes.

If you add the problem records to your lookup table, it should sort as you'd expect.
Leo Dashevskiy2012-09-06 17:13Jon (LabKey DevOps)2018-11-16 23:24Sorting in Labkey-SQLSorting in Labkey-SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Ben!

Well, no, LabKey does not append the brackets.
This is the actual data!

FYI,
DB: Postgres
OS: Ubuntu
jeckels2012-09-06 17:19Jon (LabKey DevOps)2018-11-16 23:24Sorting in Labkey-SQLSorting in Labkey-SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Although LabKey SQL allows ORDER BY clauses, primarily for inner queries, the outermost sort is usually determined by explicitly passing in a sort parameter instead of using the ORDER BY. Ideally, we'd use the ORDER BY in the query as the default sort, and allow further sorting based on sort parameters, but for now I'd recommend removing the ORDER BY and using the config.sort property. I assume you're using LABKEY.Query.executeSql().

Thanks,
Josh
Leo Dashevskiy2012-09-06 17:48Jon (LabKey DevOps)2018-11-16 23:24Sorting in Labkey-SQLSorting in Labkey-SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Josh!

I'm actually using the query to drive a LABKEY.ext.Store, which in turn gets displayed in a comboBox, as I initially pointed out.

The LABKEY.ext.Store does have a 'sort' config that needs to specify a column name (possibly preceded by an '-' for descending sort, otherwise it's ascending), but this 'sort' config seems to follow the same rules as the ORDER BY, does it not?
Leo Dashevskiy2012-09-11 11:09Jon (LabKey DevOps)2018-11-16 23:24Sorting in Labkey-SQLSorting in Labkey-SQL TEXT_WITH_LINKSClosed     LabKey Support Forum
I read that it is up to the system that is running the db (in my case Ubuntu) to implement the "compare" method and hence it directly influences the sorting -- apparently that's how it does it...
wit2wit2017-03-29 20:33wit2wit2017-03-29 20:33Sometimes the jsp garbledSometimes the jsp garbled TEXT_WITH_LINKSClosed     LabKey Support Forum
Dear Jon

Why the button names are not resolved?

Thanks
Jon (LabKey DevOps)2017-03-13 12:23Jon (LabKey DevOps)2018-11-16 23:24Sometimes the jsp garbledSometimes the jsp garbled TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

LabKey doesn't support GBK (Chinese Character Extension Sets) and instead supports UTF-8.

You will need to modify your settings within Tomcat to utilize UTF-8 encoding.

https://www.labkey.org/home/Documentation/wiki-page.view?name=configTomcat#9

Regards,

Jon
wit2wit2017-03-14 03:32Jon (LabKey DevOps)2018-11-16 23:23Sometimes the jsp garbledSometimes the jsp garbled TEXT_WITH_LINKSClosed     LabKey Support Forum
Dear Jon

I modified the server.xml as if still does not solve the problem.Please help me see the server.xml.
Jon (LabKey DevOps)2017-03-14 20:40Jon (LabKey DevOps)2018-11-16 23:24Sometimes the jsp garbledSometimes the jsp garbled TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

What version of LabKey are you running? Is this version being pulled from our trunk branch or are the bits built from another source?

There should be a file called workbookSearch.jsp that controls the Workbook (location: server/modules/core/src/org/labkey/core/workbook/workbookSearch.jsp)

The Chinese text you're seeing would have had to been hardcoded into the jsp code, but I'm not seeing it in our trunk build, so I'm questioning on whether it was placed in your code locally.

Regards,

Jon
wit2wit2017-03-15 01:43Jon (LabKey DevOps)2018-11-16 23:24Sometimes the jsp garbledSometimes the jsp garbled TEXT_WITH_LINKSClosed     LabKey Support Forum
Dear Jon

I'm using version LabKey16.3-48563.53, I tested it in JAVA to write Chinese text display correctly, written in JSP Chinese text display is garbled.Why?

Thinks
Jon (LabKey DevOps)2017-03-15 12:52Jon (LabKey DevOps)2017-03-15 12:52Sometimes the jsp garbledSometimes the jsp garbled TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Unfortunately, these kind of modifications are not supported by LabKey. You are free to make enhancements as you see fit for your business needs that does not violate the open-source agreement for our software, but since these enhancements you're working on are not directly from the LabKey platform, we are unable to provide any assistance with them. We do apologize for any inconvenience this may cause.

Regards,

Jon
Jon (LabKey DevOps)2017-03-29 23:35Jon (LabKey DevOps)2018-11-16 23:24Sometimes the jsp garbledSometimes the jsp garbled TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Best guess is that the unicode isn't being read due to using the wrong tags.

Can you follow along to the solution here?

http://stackoverflow.com/questions/25029077/how-to-submit-and-display-unicode-datanon-english-on-jsp-page

The problem described looks pretty close to what you're having issues with.

Regards,

Jon
Ben Bimber2011-03-23 14:14Jon (LabKey DevOps)2018-11-16 23:24something causing custom themes to be deleted?something causing custom themes to be deleted? TEXT_WITH_LINKSClosed     LabKey Support Forum
this has happened 3 times now. 2 on my laptop and once on our 11.1 test server. The one on test-ehr happened immediately after replacing the EHR module and restarting tomcat. they might be linked, but that was the only time today i was using that server.
jeckels2010-10-25 09:26Jon (LabKey DevOps)2018-11-16 23:24some event reset the site email on my development serversome event reset the site email on my development server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Did it get set to cpas@fhcrc.org? My best guess is that at some point you hit the Reset All Properties button on the site-wide Look and Feel Settings page, perhaps when experimenting with some of the stylesheet changes in 10.3?

Thanks,
Josh
Ben Bimber2010-10-25 09:27Jon (LabKey DevOps)2018-11-16 23:24some event reset the site email on my development serversome event reset the site email on my development server TEXT_WITH_LINKSClosed     LabKey Support Forum
yes, that is probably what did it.
Jon (LabKey DevOps)2020-11-09 11:04Jon (LabKey DevOps)2020-11-09 11:04Some code issues found by Static Code Analyzer that may need reviewingSome code issues found by Static Code Analyzer that may need reviewing TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Steve,

Thank you for bringing this to our attention! We will have this reviewed by our development team.

Regards,

Jon
jeckels2010-09-27 17:25Jon (LabKey DevOps)2018-11-16 23:24small feature request: put links to delete, copy, etc in assay manager pagesmall feature request: put links to delete, copy, etc in assay manager page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I just added this and will check it in shortly.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10606

Thanks,
Josh
jeckels2016-01-04 17:51Jon (LabKey DevOps)2018-11-16 23:23Slow queries on assay resultsSlow queries on assay results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for the info. Query execution plans are hard to predict, and can be very sensitive to the data in the tables, the version of the database, etc.

I've seen some other cases where switching from a subselect to a join greatly improves Postgres performance, so I made a change so that the server will generate SQL similar to your revised query. It will be part of 16.1, but I'm attaching the patch here in case you want to try it against 15.3 on a development machine.

Thanks,
Josh
Will Holtz2016-01-07 11:23Jon (LabKey DevOps)2018-11-16 23:24Slow queries on assay resultsSlow queries on assay results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks for the fast response. I'm running your patch on my development machine and I'm seeing a nice (~2x) performance bump on many of my module-based assay page loads -- pages that don't have the specific query discussed above. Looking forward to putting this on the production system later this year.

-Will
Karl Lum2010-03-03 09:59Jon (LabKey DevOps)2018-11-16 23:24site level file root vs. assay pipeline root?site level file root vs. assay pipeline root? TEXT_WITH_LINKSClosed     LabKey Support Forum
You're right, you should inherit a root based on the site wide default. Furthermore, you should always be guaranteed a valid pipeline root (either a default or one you have overridden). This may be an issue already fixed (but not checked in). Can you send me a link and I'll take a look at it.
Jon (LabKey DevOps)2016-05-03 15:56Jon (LabKey DevOps)2018-11-16 23:23Single project backup / restoreSingle project backup / restore TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

On the database-level, there isn't an easy way to accomplish what you're asking for. Database backups when restored are not selective enough to only restore one piece of the database. This kind of backup would have to be controlled by the application and as of now, LabKey doesn't have this functionality out of the box.

One solution that might work for you is to do a manual export of the project (we unfortunately do not have an automated folder export solution within LabKey).

Another solution would be to restore the database on a different server and then manually work towards reconciling the information between the backup and the production server.

Regards,

JOn
Will Holtz2016-05-04 18:55Jon (LabKey DevOps)2018-11-16 23:24Single project backup / restoreSingle project backup / restore TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Your question would seem to imply that each research group has independent data sets (no foreign keys that bridge between the data of different research groups). If that is the case, you could put each group within a separate Labkey instance and setup a separate database for each group. You could do this all with a single instance of tomcat and the database server.

-Will
kune2014-11-03 02:05kune2014-11-03 02:05Simple Module HTML elements id`sSimple Module HTML elements id`s TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Ben,

i`ll try it asap...

Michal
Ben Bimber2014-10-31 08:12Jon (LabKey DevOps)2018-11-16 23:24Simple Module HTML elements id`sSimple Module HTML elements id`s TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michal,

We typically do something like:

<script type="text/javascript">

Ext4.onReady(function(){
    //this is a substitution that will write an object with context about your page, including the ID of the DIV created for this webpart.
    var webpart = <%=webpartContext%>;

    //this element will be specific to this instance of the webpart, so it will be safe if there are multiple on the same page.
    Ext4.get(webpart.wrapperDivId).update('Hello World');
});

</script>

That is similar to the <%=contextPath%> and <%=containerPath%> substitutions you might be familiar with. If you have checked out a local copy of labkey from svn, you might look at the modules under \externalModules\labModules or \externalModules\DISCVR for some of our examples.
kevink2017-03-14 13:34Jon (LabKey DevOps)2018-11-16 23:24Silent failure from Import Lookups by Alternate keySilent failure from Import Lookups by Alternate key TEXT_WITH_LINKSClosed     LabKey Support Forum
The current behavior is to replace values that can't be mapped to the target lookup table will null if the column is not required. If you change the WithFk.Lookup column to be required, we will fail the import with an error message similar to:

Could not convert 'Foo' for field Lookup, should be of type Integer; Missing value for required property: Lookup

That said, it is a little confusing so I could imagine that we could change the requirements to be a little more strict instead of converting the value to null.
Will Holtz2017-03-14 13:46Jon (LabKey DevOps)2018-11-16 23:24Silent failure from Import Lookups by Alternate keySilent failure from Import Lookups by Alternate key TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Kevin,

After I posted, I noticed that I should be able to change the WithFk list design such that the Lookup field has the Lookup Validator activated. Then the docs say, "An error will be displayed whenever you attempt to import a value that is not in the lookup's target table."

https://www.labkey.org/home/Documentation/wiki-page.view?name=lookupDefine#lookupvalidate

However, my above repo (plus turning on Lookup Validator), still inserts a row when the value cannot be mapped to the Simple list.

thanks for your help!

-Will
eknelson2011-03-17 15:18Jon (LabKey DevOps)2018-11-16 23:23show wiki page to guests without wikiTOC showing up?show wiki page to guests without wikiTOC showing up? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Let's see if you've already tried the easy solution first. The portal page for the wiki folder (the top page in the folder) has options for hiding unwanted web parts. For the labkey.org docs, you can see the close boxes I've circled in the attached screen shot.
  
Closing these web parts will eliminate the search and TOC web parts from all wiki pages in the folder, for all users.

Will this work for you?

Thanks,
Elizabeth
Ben Bimber2011-03-17 15:25Jon (LabKey DevOps)2018-11-16 23:23show wiki page to guests without wikiTOC showing up?show wiki page to guests without wikiTOC showing up? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Elizabeth,

thanks for the reply. the method you're describing i think works if you load the wiki through a portal page. something like:

https://xnight.primate.wisc.edu:8443/labkey/project/WNPRC/WNPRC_Units/Research_Services/Assay_Services/Public/begin.view?

if I loaded that specific wiki page as a webpart on this portal page I could remove those right-hand webparts as you describe. the problem with this fix is that each folder has one begin.view portal page. The URL above it attempting to link directly to just one wiki page. Ideally, I'd like to be able to link to each wiki page independently, without getting that extra right-hand stuff. Is there a different controller/action that can load a single wiki page?

-Ben
eknelson2011-03-18 14:27Jon (LabKey DevOps)2018-11-16 23:24show wiki page to guests without wikiTOC showing up?show wiki page to guests without wikiTOC showing up? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You're right, removing the search and TOC web parts from the portal does not remove them from wiki sub-pages (beyond the portal).

I actually ran into this myself a while back and finally just moved the wiki page into a spot where it was okay to reveal the TOC. I should have remembered.

There is one trick you might try. If you're working on a file-based module, you should be able to include an HTML page that uses LABKEY.WebPart to display a web part that shows just the wiki main text. You'd use 'Wiki' as the partName.

The relevant docs:
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.WebPart.html
https://www.labkey.org/wiki/home/Documentation/page.view?name=webPartConfig

Thanks,
Elizabeth
Ben Bimber2011-03-18 15:05Jon (LabKey DevOps)2018-11-16 23:24show wiki page to guests without wikiTOC showing up?show wiki page to guests without wikiTOC showing up? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Elizabeth,

So are you basically saying it's not possible to directly display a wiki page by itself without also showing the TOC?

Unfortunately, I'm not the person who will be in charge of maintaining these pages, so ideally all updating would to be possible through the browser. i understand the idea of creating HTML wrapper files for displaying wiki pages, and maybe that's what it'll have to be, but it seems like an extra layer, only editable by the admin, that doesnt add much.

Thanks for looking into it.
eknelson2011-03-18 15:21Jon (LabKey DevOps)2018-11-16 23:23show wiki page to guests without wikiTOC showing up?show wiki page to guests without wikiTOC showing up? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes. Without an HTML workaround, right now you can only link to a wiki page that displays both itself and the TOC/Search web parts.

Could always add something different as a feature, but that's all that's available right now.

Thanks,
Elizabeth
jeckels2011-03-21 09:29Jon (LabKey DevOps)2018-11-16 23:24show wiki page to guests without wikiTOC showing up?show wiki page to guests without wikiTOC showing up? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

It would be easy to make the HTML wrapper accept a URL parameter which is the name of the wiki page.

I've added a request to the issue list to support this in a future release:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=11883

Thanks,
Josh
Jon (LabKey DevOps)2015-08-06 23:12Jon (LabKey DevOps)2018-11-16 23:23Show time portion of DateTime field in DataGridsShow time portion of DateTime field in DataGrids TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Yes, you can show the time portion of a DateTime field in a data grid by editing the format of the datagrid. We work off of the same Java formatting when it comes to date and time.

For example, if you look at my screenshot, you'll see that I've edited a list where I have a DateTime field and the Format box filled in using the following value:

EEE, d MMM yyyy HH:mm:ss

Which then translates the information I entered into my list as:

Thu, 1 Jan 2015 10:11:11

So if you go into any of your datagrids and edit the fields, you can modify the format accordingly for the datetime ones.

For information on the various format strings and examples available, please visit the link below:

https://www.labkey.org/wiki/home/Documentation/page.view?name=dateFormats

Regards,

jon
Will Holtz2017-03-28 17:53Will Holtz2017-03-28 17:53showInsertNewButton in QWP does not toggle Bulk ImportshowInsertNewButton in QWP does not toggle Bulk Import TEXT_WITH_LINKSClosed     LabKey Support Forum
Looks good -- thanks!

-Will
Jon (LabKey DevOps)2017-03-15 14:50Jon (LabKey DevOps)2018-11-16 23:24showInsertNewButton in QWP does not toggle Bulk ImportshowInsertNewButton in QWP does not toggle Bulk Import TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I'm actually not seeing the Import Bulk Data option using your code when I tested this in Trunk, 17.1, 16.3, and 16.2

All four versions of LabKey show no Insert button or Import Bulk button when focused on the core schema using the users query.

Are you running an older LabKey build by chance?

Regards,

Jon
Will Holtz2017-03-15 16:03Jon (LabKey DevOps)2018-11-16 23:24showInsertNewButton in QWP does not toggle Bulk ImportshowInsertNewButton in QWP does not toggle Bulk Import TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I'm sorry, swear I checked that repo with the users table and it behaved as I described, but now I'm not seeing it either. Maybe I didn't refresh.

Please try this on v16.3:

Make a new list, Mylist, then:

<div id="MyQuery" />
<script>
new LABKEY.QueryWebPart({
        renderTo: 'MyQuery',
        schemaName: 'lists',
        queryName: 'MyList',
        showInsertNewButton: false,
        buttonBar: {
              includeStandardButtons: true,
        }
    });
</script>

thanks,
-Will
Jon (LabKey DevOps)2017-03-15 16:22Jon (LabKey DevOps)2018-11-16 23:24showInsertNewButton in QWP does not toggle Bulk ImportshowInsertNewButton in QWP does not toggle Bulk Import TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Will,

Now that does display what you described in Trunk.

I think this might be a bug since we do have something called "showImportDataButton" which should be the thing that allows the button to appear. But when trying to set that to false, it gets ignored.

I'll get a bug made on this and looked into further.

Regards,

Jon
Jon (LabKey DevOps)2017-03-15 16:28Jon (LabKey DevOps)2018-11-16 23:24showInsertNewButton in QWP does not toggle Bulk ImportshowInsertNewButton in QWP does not toggle Bulk Import TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2017-03-28 17:43Jon (LabKey DevOps)2017-03-28 17:43showInsertNewButton in QWP does not toggle Bulk ImportshowInsertNewButton in QWP does not toggle Bulk Import TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

We added a new option for 17.2, which is to have a showImportDataButton. This will allow you to hide the Bulk Import button, so you can hide inserting new things by doing both:

<div id="MyQuery" />
<script>
new LABKEY.QueryWebPart({
        renderTo: 'MyQuery',
        schemaName: 'lists',
        queryName: 'MyList',
        showInsertNewButtonL false,
        showImportDataButton: false,
        buttonBar: {
              includeStandardButtons: true,
        }
    });
</script>

I've tested this on Trunk and confirmed that it does work.

Regards,

Jon
trent2011-06-05 23:42Jon (LabKey DevOps)2018-11-16 23:24show 3 most recent weights for each subject?show 3 most recent weights for each subject? TEXT_WITH_LINKSClosed     LabKey Support Forum
I think the built in group_concat function is no good, as it wont obey the limit clause (from when I tested anyways). Using an aggregate method, easy solution would be just to make your own function.

i.e. select subject_id, get_top_3(subject_id) as recent_entries
from table
group by subject_id.

where get_top_3 is a function you make

pseudo function:

for i in (select weight from weights where subject_id = p_subject_id order by date desc limit 3) LOOP
l_weights := l_weights || ', ' || i.weight;
END LOOP;

return weights;

sort of thing.

edit: found this function looks like similar set up: http://archives.postgresql.org/pgsql-sql/2004-04/msg00100.php

If not an aggregate, you might like to see the following for some ideas:

http://stackoverflow.com/questions/176964/select-top-10-records-for-each-category
http://www.bennadel.com/blog/1114-Selecting-Top-X-From-Each-Group.htm
http://www.sql-ex.ru/help/select16.php

..

Well, hopefully that gives you some ideas - someone else may be able to offer a better solution - personally, i think writing your own function is the way to go.... :)
Ben Bimber2011-06-06 04:06Jon (LabKey DevOps)2018-11-16 23:23show 3 most recent weights for each subject?show 3 most recent weights for each subject? TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks for the reply. what options do i have within labkey sql (as opposed to true postgresql or mssql) for creating and using stored functions like that? can one make a db function and simply passthrough from labkey into it?
Matthew Bellew2011-06-06 09:46Jon (LabKey DevOps)2018-11-16 23:24show 3 most recent weights for each subject?show 3 most recent weights for each subject? TEXT_WITH_LINKSClosed     LabKey Support Forum
If there were a known table (as opposed to say a study dataset where the name might change) you could just create a sql view in the EHR schema and use it like any other table.

Since this is a study dataset, that won't work. We do not have a way to 'passthrough' arbitrary functions to the underlying database. It's technically possible, but we'd need some sort of mechanism to specify 'safe' functions. This is not currently planned work.
Ben Bimber2011-06-06 21:05Jon (LabKey DevOps)2018-11-16 23:23show 3 most recent weights for each subject?show 3 most recent weights for each subject? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi matt,

that's what i figured. so how about this idea:

while the hard table associated with the dataset study.weights will not have a consistent name in postgres, could you do some pseudo-SQL along the lines of:

set @weight_tables = select tablename from pg_tables where schemaname='studydataset' WHERE tablename ilike '%_weights';
foreach @weight_tables
   --create a materialized view for this table
   --create some triggers that keep this view up to date


the part i dont know about is whether you can write SQL where the table name in the FROM clause is actually a variable.
Matthew Bellew2011-06-07 09:02Jon (LabKey DevOps)2018-11-16 23:24show 3 most recent weights for each subject?show 3 most recent weights for each subject? TEXT_WITH_LINKSClosed     LabKey Support Forum
You can't execute a SQL statement with a variable for a table name. However, you can create a string containing a SQL statement and then execute it. I don't know the postgres syntax.

This seems like one of those problems that might actually be in one of Joe Celko's books (but which one...)
eknelson2010-07-26 15:57Jon (LabKey DevOps)2018-11-16 23:24should this syntax work?should this syntax work? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Adam is the expert on web part insertion, but he's partly offline this week. In the mean time, I have a partial answer for you. There's no guarantee that the wiki web part insertion syntax accepts the same parameters as the LABKEY.WebPart API. That may be the source of your bug. At present, the schemaName/queryName/containerPath combo is not doc'ed as being a valid set of paramters for wiki web part insertion.

Instead, the docs (https://www.labkey.org/wiki/home/Documentation/page.view?name=webPartConfig) recommend using webPartContainer. From the doc page:

webPartContainer - - The ID of the container where the wiki pages live. If this param is not supplied, the current container is used. You can obtain a container's ID by using the containerId.view action in the admin controller. For example, to obtain the container ID for the Documentation folder on labkey.org, go to the following URL: https://www.labkey.org/admin/home/Documentation/containerId.view . The container ID appears as a hex string, in this case: aa644cac-12e8-102a-a590-d104f9cdb538. If this param is not supplied, the current container is used.

Thanks,

Elizabeth
Ben Bimber2010-07-27 05:56Jon (LabKey DevOps)2018-11-16 23:23should this syntax work?should this syntax work? TEXT_WITH_LINKSClosed     LabKey Support Forum
elizabeth,

unfortunately that did not work either. on the wiki webpart, you can already pick the target container when you load the page, which i suspect might be doing just that. the problem is not loading the wiki page itself, but the fact that loaded wiki page has an embedded list. that embedded list is not being found. if nothing better can be found, i could put javascript in the wiki page, but this substitution syntax is nice b/c it looks more 'normal' to users when they try to edit the rest of the page. it's been a while since i've done anything that involved writing code direct in labkey, but i remember having bad experiences with javascript in wikis constantly getting screwed up when toggling between the source and visual editor tabs.


for what it's worth, it might be convenient if there were a link in the admin menu (maybe under developer links?) for 'current container Id'.
eknelson2010-07-27 09:29Jon (LabKey DevOps)2018-11-16 23:24should this syntax work?should this syntax work? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ah. Here's the problem-- containerPath is not listed as one of the supported parameters for Query web part insertion:

https://www.labkey.org/wiki/home/Documentation/page.view?name=webPartConfig

Sorry, I had wikis on the brain and misread that you were inserting a wiki web part, not a query web part.

Thanks for suggesting the admin link for "current container ID" - would you have an estimate of how often you've needed to use this? My impression (could easily be wrong) is that this info would not used anywhere near as often as the other links in the dev menu.

Thanks,

Elizabeth
Ben Bimber2010-07-27 09:34Jon (LabKey DevOps)2018-11-16 23:23should this syntax work?should this syntax work? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, so if containerPath is not supported, then can i get around it somehow? is putting javascript in the page my only remaining option?

i would say that the "current container ID" would be used only rarely. it was just an offhanded idea. it just seems like putting a link to that somewhere out of the way wouldn't be a terrible idea. you'd want to bury that a level or two deep in the menu, since it would only by used rarely. however, it's not at all high of my requested features list.
eknelson2010-07-27 09:42Jon (LabKey DevOps)2018-11-16 23:23should this syntax work?should this syntax work? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I know of the following options for you (others can chime in if they know more):

1. If you wish to insert this list on a portal page, you can use the Query web part
https://www.labkey.org/wiki/home/Documentation/page.view?name=queryWebPart

2. Open a bug to request that Query web part insertion support containerPath

3. Use JavaScript.

Thanks for letting me know you aren't a frequent user of "current container ID". I still like the idea of adding the item to the dev menu in an unobtrusive way (e.g., as a submenu).

Thanks,

Elizabeth
Ben Bimber2010-07-27 09:46Jon (LabKey DevOps)2018-11-16 23:24should this syntax work?should this syntax work? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, thanks. i think i will use javascript, since the hope was to make the wiki content plus an embedded QWP appear as one unit (ie. not a wiki above a QWP). javascript should work fine.
Matthew Bellew2011-06-01 13:41Jon (LabKey DevOps)2018-11-16 23:23should pivot work on sqlserver?should pivot work on sqlserver? TEXT_WITH_LINKSClosed     LabKey Support Forum
I don't know of any reason it should matter, unless it has to do with case sensitivity of values in the allele column.

Does this query work with PIVOT commented out? Is there a stack trace in the log to go along with this?
Matthew Bellew2015-12-07 11:21Jon (LabKey DevOps)2018-11-16 23:24Shiny Apps in LabKeyShiny Apps in LabKey TEXT_WITH_LINKSClosed     LabKey Support Forum
We do not directly support shiny. It's been a while since I looked at this, but I believe the tricky part was tunneling the websocket communications between the browser and R through the LabKey server. You can sort of fake this up if you don't care too much about security...

This would be a very cool open source contribution if anyone gets inspired...

Matt
bill c white2015-12-07 11:31Jon (LabKey DevOps)2018-11-16 23:23Shiny Apps in LabKeyShiny Apps in LabKey TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the quick response! I suspected as much with Shiny running as a server and LabKey running under a Tomcat server. I have developed a few Shiny apps, and I really like the way it insulates the developer from all the MVC by providing a fill-in-the-blanks framework, at least through RStudio/devtools. I have suggested to our new developer that she start with simple R reports in views (nice tutorials on the LabKey site) and work her way up to full-blown "apps"/modules with GUI controls in LabKey and eventually ImmuneSpace.
Jon (LabKey DevOps)2017-09-13 16:15Jon (LabKey DevOps)2018-11-16 23:24Shell Script running from wiki PageShell Script running from wiki Page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Atul,

Am I understanding this correctly? You created a shell script? Like a BASH script or something similar with a .sh extension?

Regards,

Jon
atul sharma2017-09-14 00:17Jon (LabKey DevOps)2018-11-16 23:24Shell Script running from wiki PageShell Script running from wiki Page TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes the script with .sh extension.


Regards
Atul
Jon (LabKey DevOps)2017-09-14 12:08Jon (LabKey DevOps)2018-11-16 23:23Shell Script running from wiki PageShell Script running from wiki Page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Atul,

So you made a shell script that is going to fetch data from the database, modify the data, and then re-insert it back into the database?

Is there a reason why you're choosing to use a shell script directly on the server to accomplish this? Are these database tables coming off of the LabKey database? Have you considered using our APIs instead?

Generally, browsers cannot normally interface with any files directly on the operating system since there is a layer between them that normally cannot be bypassed unless if something else is used as a medium, like a Java applet or similar. We do have scripting engines that potentially could trigger that shell script, but this kind of setup is very odd and also poses some security risks as well since you normally don't want the browser to execute anything on the server unless it is tightly controlled.

Regards,

Jon
atul sharma2017-09-14 12:54Jon (LabKey DevOps)2018-11-16 23:24Shell Script running from wiki PageShell Script running from wiki Page TEXT_WITH_LINKSClosed     LabKey Support Forum
Dear Jon,

The scenario is, I want to trigger an application (out of labkey scope). That software uses labkey java api to get access of labkey database.

However, two main issues i am facing,

1. To trigger that application.
(Is it possible that I can write a new java module in labkey for the same? Or use the scripting engine that you've mentioned above).

2. How can I use external schemas (other that labkey database which is configured in labkey.xml)?

As the JAVA API is able to fetch data from lists or tables present in labkey database's schemas.

But I have configured one more database in labkey.xml, when api is trying to access tables from that database, An internal server error occurs.

Please help.

Regards
Atul
Jon (LabKey DevOps)2017-09-15 23:29Jon (LabKey DevOps)2018-11-16 23:24Shell Script running from wiki PageShell Script running from wiki Page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Atul,

It might be possible to add the .sh script to your External Scripting engine and within a report have the script get triggered, but this hasn't been tested so I can't promise that it will work and it really isn't properly supported to do that. It may also be possible to use another scripting language, such as Python or Perl and use that script to trigger your shell script. You could build a Java module to trigger this script as well, but this extensibility goes beyond what we would support for the LabKey platform.

With regard to the external schemas, they are only recognized within LabKey if they are configured in the labkey.xml. We have no other way of accessing databases otherwise as external schemas.

When you say that you are getting an internal server error when trying to access an external schema and table via the LabKey API, can you give us some more details? What API are you trying to use? Can you view the data within LabKey itself? What is the exact error you're receiving? Can you provide us with the stack error that appears when you do try to access the data?

Regards,

Jon
atul sharma2017-09-21 13:26Jon (LabKey DevOps)2018-11-16 23:24Shell Script running from wiki PageShell Script running from wiki Page TEXT_WITH_LINKSClosed     LabKey Support Forum
Dear Jon,

Internal server error: Fixed the issue as I was passing the wrong URL format while creating connection to labkey(Using api)

Instead of using Connection "cn = new Connection("http://localhost:8080/labkey")", I was using "cn = new Connection("jdbc:labkey:http://localhost:8080/labkey").
Hence Fixed.

Now the second problem of invoking shell script:

Could you please elaborate more about "It might be possible to add the .sh script to your External Scripting engine and within a report have the script get triggered."

Are you talking about this (Please Refer the link below)?:
https://www.labkey.org/Documentation/wiki-page.view?name=configureScripting
Jon (LabKey DevOps)2017-09-21 15:50Jon (LabKey DevOps)2018-11-16 23:24Shell Script running from wiki PageShell Script running from wiki Page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Atul,

I don't have any more details on that. It was an idea one of our developers had, but I'm not certain as to how this would work.

Setting up the scripting engine to point to /bin/bash for example only tells the LabKey platform that if it sees a .sh script, that it can execute it. However, the only other places where I've seen script execution like this would be within a transformation script for assays, which is different than what you're trying to do.

Let me see if I can get more details and get back to you.

Regards,

Jon
jeckels2014-06-11 13:46Jon (LabKey DevOps)2018-11-16 23:23Sharing Remote Pipeline Servers?Sharing Remote Pipeline Servers? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I'm sorry to say that it's not possible. The reason is that all jobs and tasks get routed through the JMS queue, including those that will be performed on the web server. "webserver" is a special location name, and if pointed at the same JMS queue, the two different web servers would be stealing jobs from each other.

You'll need to either use separate servers (virtual is fine), or separate JMS queues and remote pipeline processes on the same server.

Thanks,
Josh
Ben Bimber2014-06-12 09:39Jon (LabKey DevOps)2018-11-16 23:24Sharing Remote Pipeline Servers?Sharing Remote Pipeline Servers? TEXT_WITH_LINKSClosed     LabKey Support Forum
Too bad - thanks for the reply.
Jon (LabKey DevOps)2017-04-07 18:58Jon (LabKey DevOps)2018-11-16 23:24Share dependencies between modulesShare dependencies between modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

You can declare the CSS on the module level, the file-level, or the script level, so there is some flexibility there:

https://www.labkey.org/Documentation/wiki-page.view?name=scriptdepend

But without declaring the dependency somewhere, you're subjected to the CSS that is used within LabKey.

Additionally, you should still be able to share JS libs as well, so as long as you can get the appropriate paths as explained in the docs link above.

I'm not certain I'm understanding your last question:

"Additionally/alternatively, is there a way I could define a list of site-wide includes in a module of my own without having to modify LabKey's source? Kind of like adding to a master page of sorts."

I might be misunderstanding this, but are you trying to add a list to the entire platform? What is the purpose of this list?

Regards,

Jon
Matt V2017-04-11 10:49Jon (LabKey DevOps)2018-11-16 23:23Share dependencies between modulesShare dependencies between modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Thanks for the reply.

In this specific instance, I'm trying to add a JS/CSS files so that they're included on every page of my instance, regardless of whether or not my module is actually doing anything else. Testing shows it's only active under some circumstances, like I'm doing something with the footer, rendering a webpart, etc. Using the link you provided, they're not always included, for example, when I'm managing a data set. I tried adding them as <script> and <link> in a _footer but the page appears to try to render before the files are included, leading to a bunch of x is not defined errors or styles that aren't actually applied.

The last question was referring to the HomeTemplate files under /server/api/src/org/labkey/api/view/template/. In other tools there are master pages, templates, etc. that define the site-wide look. I was wondering if there was such a class or template I could touch, override, extend, etc. as a way to get the JS and CSS included in the manner I need.
Jon (LabKey DevOps)2017-04-27 18:36Jon (LabKey DevOps)2017-04-27 18:36Share dependencies between modulesShare dependencies between modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

Thanks for your patience.

I was able to confirm that the only way to have JS/CSS files applied to all pages is to update the core code and recompile our Java libraries that dictate what JS and CSS to use by default. Modules will only dictate CSS and JS for whatever that module is applied to, so unless you choose to apply your module to all projects and folders, you're options are limited since the extensibility only will apply to modules and not the core code.

Regards,

Jon
Matthew Bellew2012-09-08 11:23Jon (LabKey DevOps)2018-11-16 23:24Setting user permissions programmaticallySetting user permissions programmatically TEXT_WITH_LINKSClosed     LabKey Support Forum
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Security.html

These are the same APIs used by the built-in administration pages. Of course you have to be logged in as an administrator to change permissions.

These _should_ work for datasets and other "securable resources" , but they aren't used by those management pages, so your mileage may vary. Let us know if you hit any snags.
sadcat@u.washington.edu2012-09-08 11:47Jon (LabKey DevOps)2018-11-16 23:23Setting user permissions programmaticallySetting user permissions programmatically TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Matthew,

thanks for responding. Essentially, what I am seeking to accomplish is to programmatically create a few user groups/users with certain roles. So far, the way I managed it through interface, is to create users, and then set their role in the "Roles" interface (I am attaching a picture). I looked over the LABKEY.Security documentation, and I see one can retrieve the roles, but not set them. Am I missing something?
Is it possible to write a script to create groups/users with certain permissions/roles ("Author", "Administrator") etc.?

Thanks!
Matthew Bellew2012-09-08 13:53Jon (LabKey DevOps)2018-11-16 23:23Setting user permissions programmaticallySetting user permissions programmatically TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, I should have given a little more direction. Not enough coffee...

The way you add permissions is not by editing users, but b y editing security policies. You get the policy for the current container using

LABKEY.Security.getPolicy(config)

see https://www.labkey.org/download/clientapi_docs/javascript-
api/symbols/LABKEY.SecurityPolicy.html

Then you can grant or remove roles to users/groups .

   addRoleAssignment(principalId, role)
   clearRoleAssignments(principalId)

then use

LABKEY.Security.savePolicy(config)
sadcat@u.washington.edu2012-09-08 16:39Jon (LabKey DevOps)2018-11-16 23:23Setting user permissions programmaticallySetting user permissions programmatically TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh! Got it! Thanks,

Xenia
Matthew Bellew2010-04-16 12:55Jon (LabKey DevOps)2018-11-16 23:24Setting URL from a grid when value might be nullSetting URL from a grid when value might be null TEXT_WITH_LINKSClosed     LabKey Support Forum
We seem to have a collection of related problems here. CustomURL was mostly designed to handle the simple case of generating links to detail pages or reports using key fields. Obviously, people find this useful enough that there are lot of different scenarios being tried.

Some problems I've seen are

  attach javascript to a field (this is tricky, since you have to guarantee the script will work on all pages)
  custom url with path substitution
  custom url with conditional substitution

Then there is the problem of the difference between the Ext.Grid and the DataRegion (bigger issue)

We can tackle some of these problems from different angles.

1) add incrementally richer custom url functionality (expressions, etc).
2) expand the DataRegion object to make it easier to 'post-process' the grid to modify the url/javascript properties (very general solution, and can be page/application specific)
3) full Ext.Template like definition of the column rendering (easy to mess up the whole page through)

In this particular case you could link to an intermediate page instead of directly to executeQuery. I we need to talk about other approaches here.
Ben Bimber2010-04-16 13:14Jon (LabKey DevOps)2018-11-16 23:23Setting URL from a grid when value might be nullSetting URL from a grid when value might be null TEXT_WITH_LINKSClosed     LabKey Support Forum
urls are very useful.

if you go down the route of options 2 or 3, a related problem would be custom formats on cells. a simple example is something like conditional formatting: color cells red if the value is outside a pre-defined range, make bold if negative, make blue if field1 is less than field2, etc. lots of permutations are possible. i could also see a case where you have a 'status' field and you want to change formats based on the status of that record.
Ben Bimber2010-04-27 12:59Jon (LabKey DevOps)2018-11-16 23:23Setting URL from a grid when value might be nullSetting URL from a grid when value might be null TEXT_WITH_LINKSClosed     LabKey Support Forum
this is kind of a longshot, but I might as well ask:

Is there any value that acts as a wildcard for filtering a query from the URL? sorta like this:

query.Field~eq=*

in the above posts, I was looking for a way for field URLs to work when a value was empty. When a field that is used in the <url> param is blank, something like this ends up happening:

query.Field~eq=

Which is not the same thing as 'query.Field~isblank'. Assuming some sort of wildcard character existed, we could wrap the field of interest in a CASE expression that returned either the field value or this wildcard if that field was empty. A little awkward, but at least URLs would work.
Brian Connolly2010-09-21 13:10Jon (LabKey DevOps)2018-11-16 23:24Setting up an environment for developing File-based-modules with Code CompletionSetting up an environment for developing File-based-modules with Code Completion TEXT_WITH_LINKSClosed     LabKey Support Forum
Scott,

I am sorry to say that I do not have a great answer for you. We also have not been able to find an IDE that handles code-completion well for javascript. Most of the LabKey developers use the Ultimate edition of IntelliJ (which has code completion support for javascript) for javascript development, but IntelliJ code completion for javascript also has problems (ie not working for all functions). Thus most do use the IDE's code completion, but instead use the javascript API reference documentation located at https://www.labkey.org/download/clientapi_docs/javascript-api/


NOTE: As you found out the community edition of IntelliJ does not support code completion for javascript.

Again, sorry that I do not have any better advice.


Brian Conolly
trent2011-06-08 20:02trent2011-09-27 22:53Setting Up a Development Environment - svnant.classpath not foundSetting Up a Development Environment - svnant.classpath not found TEXT_WITH_LINKSClosed     LabKey Support Forum
Alrighty, I've built a new Windows VM, to start everything from scratch - and it seems to build no problem now (although, took a while first build - but that's probably to be expected). So I guess there may have been some conflicts with trying to build from source where the binary installation exists; or some other conflict on my system.

One thing though, when I went to run, I did get an error:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain
Caused by: java.lang.ClassNotFoundException: com.intellij.rt.execution.application.AppMain
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) <snip>

I found this thread: https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=569 , with the solution: "You'll need to add another JAR to your -classpath argument. On my machine it's C:/Program Files/JetBrains/IntelliJ IDEA 5.1/lib/idea_rt.jar." Which is exactly what was needed, so, dunno whether its worth adding that to the suggested vm parameters in the documentation?
jeckels2011-06-06 18:11Jon (LabKey DevOps)2018-11-16 23:24Setting Up a Development Environment - svnant.classpath not foundSetting Up a Development Environment - svnant.classpath not found TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Are you running Ant version 1.8 and trying to build LabKey Server version 11.1 or earlier? IntelliJ 10 and later come bundled with Ant 1.8. This was a problem until I recently fixed it in the trunk:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=11403

Two possible solutions are to either use the version of Ant (1.7) that's included in the SVN repository (<LABKEY_ROOT>/external/ant) or switch to the trunk.

As for the error about failing to resolve org.apache.catalina.startup.Bootstrap, I've seen that in the past but the IDE has still been able to launch the server. If it's causing problems when you launch, be sure to check your setting for CATALINA_HOME in the IntelliJ settings (File->Settings->Path Variables).

Thanks,
Josh
trent2011-06-06 22:30Jon (LabKey DevOps)2018-11-16 23:24Setting Up a Development Environment - svnant.classpath not foundSetting Up a Development Environment - svnant.classpath not found TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Thanks. I got the trunk and am now getting some different errors:

Execute failed: java.io.IOException: Cannot run program "svn": CreateProcess error=2, The system cannot find the file specified

From the comments, I guess this means I need an empty file at <root>/server called svn.properties? (well just tried, and still seem to get this error)

build.xml:1217: Java returned: 2147483647

not really sure what to make of that

The other one is build.xml:199: java.lang.OutOfMemoryError: PermGen space

So have to see if I can work that out tomorrow. Im presuming I need to increase the VM parameter -Xmx768M so it doesn't run out of RAM.

.. in the IDE, its a bid hard to find the errors due to tree it puts them in, but I think they are mostly about the svn.

(seems to be varying number of errors each time I attempt to build)
jeckels2011-06-09 09:29Jon (LabKey DevOps)2018-11-16 23:24Setting Up a Development Environment - svnant.classpath not foundSetting Up a Development Environment - svnant.classpath not found TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

The error attempting to execute svn should be harmless. We use it to try to include the current SVN revision as metadata in each of the modules. If it fails, you just won't get that metadata. It's unfortunate that we can't suppress the error message during the build.

If you see errors about running out of PermGen, you'll need to add the -XX:MaxPermSize=128M JVM argument. PermGen is a separate space from the normal Java heap.

Thanks for the suggestion, I just added a note about adding idea_rt.jar to this page:

https://www.labkey.org/wiki/home/Documentation/page.view?name=build

Thanks,
Josh
Will Holtz2015-01-26 08:49Will Holtz2015-01-26 08:49Setting metadata on default fields in module based-assaySetting metadata on default fields in module based-assay TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon, that worked.

-Will
Jon (LabKey DevOps)2015-01-21 16:44Jon (LabKey DevOps)2018-11-16 23:24Setting metadata on default fields in module based-assaySetting metadata on default fields in module based-assay TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

You can define those values, but you would be defining them under the queries directory rather than the domains one.

So in this case, you would go to <module-name>/assay/ASSAY_NAME/queries and then edit the Data.query.xml, Run.query.xml, and Batches.query.xml files respectively instead of editing those XML files under the /domains directory.

For more information, please review the document here on the Assay Type development modules - https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleassay

Let us know if you have any further questions!

Regards,

Jon
Jon (LabKey DevOps)2018-10-01 20:34Jon (LabKey DevOps)2018-11-16 23:24Setting Audit Detail LevelSetting Audit Detail Level TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

A custom schema and table wouldn't be a dataset event since datasets are apart of the study schema.

Most likely, it should be listed as a Query Update Event since on my own local environment, any updates I do to tables in my custom schema gets recorded to the Query Update Event report in the Audit Log.

Please take a look at the Query Update Event and I'm certain you'll see things listed there.

Regards,

Jon
jeckels2017-10-16 17:49Jon (LabKey DevOps)2018-11-16 23:24Set Study Reload programmaticallySet Study Reload programmatically TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Yes, this is possible, though we don't have a formal API for it.

You're getting that error due to our cross-site request forgery protection:

https://www.labkey.org/Documentation/wiki-page.view?name=csrfProtection

You will need to make two separate requests, one to authenticate and get the CSRF token, and another to make the actual reload request. This thread discusses one way to do it:

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=11385

Thanks,
Josh
Matthew Bellew2017-04-26 13:57Jon (LabKey DevOps)2018-11-16 23:23Server That Only Has One Project?Server That Only Has One Project? TEXT_WITH_LINKSClosed     LabKey Support Forum
You can put a index.html in extraWebapp that redirects to whatever you want to be your primary home page. Also, change the "logo link" under "look and feel settings".
Ben Bimber2017-04-26 14:04Jon (LabKey DevOps)2018-11-16 23:24Server That Only Has One Project?Server That Only Has One Project? TEXT_WITH_LINKSClosed     LabKey Support Forum
That's an interesting idea. Is /extraWebapp a folder that I create manually on my server and persists between upgrades, or do I deploy this with a module?

I assume this was designed specifically for this scenario I'm talking about? Are other production installs doing this?
Matthew Bellew2017-04-26 14:11Jon (LabKey DevOps)2018-11-16 23:24Server That Only Has One Project?Server That Only Has One Project? TEXT_WITH_LINKSClosed     LabKey Support Forum
Several users create custom splash pages this way. see https://www.immunespace.org/ or https://www.itntrialshare.org/. However, you can also just redirect, like LabKey does by default.

see also https://www.labkey.org/Documentation/wiki-page.view?name=robots
Jon (LabKey DevOps)2017-04-26 14:25Jon (LabKey DevOps)2018-11-16 23:23Server That Only Has One Project?Server That Only Has One Project? TEXT_WITH_LINKSClosed     LabKey Support Forum
We also used the extraWebApp on our own internal LabKey instance too for a time, redirecting users from the home project to another project as the default.
Ben Bimber2017-04-27 14:56Jon (LabKey DevOps)2018-11-16 23:24Server That Only Has One Project?Server That Only Has One Project? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi guys,

This /extraWebApp/index.html route seems like the right solution. However, in the scenarios you describe, this is something I deploy separate from deploying my server and modules. Does it have to be? Is there any way to link this content with a module or distribution and deploy it all together?

A relatively easy workaround could be to check in my content somewhere under one of our modules, and have the script that deploys our labkey build do a separate step to check out this other content from SVN to /extraModules. Just thought I'd see if there was a more elegant route.

Thanks.
Ben Bimber2017-04-27 15:14Jon (LabKey DevOps)2018-11-16 23:23Server That Only Has One Project?Server That Only Has One Project? TEXT_WITH_LINKSClosed     LabKey Support Forum
One related question: I can create /extraWebapp and deploy index.html to it. If I directly request this file (i.e. https://myserver.com/index.html), it works. If I request "https://myserver.com", it redirects to /home/begin.view. What controls the latter?

Also - to my earlier question, it appears a module can supply top-level files in /web, like index.html. so it seems that I could deploy content automatically through a module.
jeckels2017-04-30 09:08Jon (LabKey DevOps)2018-11-16 23:24Server That Only Has One Project?Server That Only Has One Project? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

While a module can indeed supply top-level files for web content, I'm not sure that it's well-defined which copy wins when there are multiple. The Internal module has the "standard" index.html.

There may be a caching issue where the browser is remembering the previous HTML served up at https://myserver.com. Can you clear the cache and retry?

And no, we don't have a separate mechanism for pulling content from a module into extraWebapp.

Thanks,
Josh
Ben Bimber2017-05-01 10:02Jon (LabKey DevOps)2018-11-16 23:24Server That Only Has One Project?Server That Only Has One Project? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Yes, I think it was a caching or similar issue. It does work to put it in a module, but as you note that's also not a great idea since it always will load.

I'm exploring whether I can add a similar feature as already exists to customize the support link (in admin console), to specify a custom welcome page. This would allow the module to provide the page, yet only enable it for your site.
Steve2016-09-16 11:01Jon (LabKey DevOps)2018-11-16 23:23Server not startingServer not starting TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ariel:

I think the problem is you are running Tomcat 8.5, which is currently unsupported.
Just yesterday we updated our Supported Technology page, which does not include Tomcat 8.5.
See the docs here:
https://www.labkey.org/home/Documentation/wiki-page.view?name=supported

The latest Tomcat version that is currently supported is 8.0.x.

Thanks, Steve
balter2016-09-16 11:09Jon (LabKey DevOps)2018-11-16 23:24Server not startingServer not starting TEXT_WITH_LINKSClosed     LabKey Support Forum
Interesting!!! I thought I was being so cool for being up to date. I'll try rolling back and see if I get success. Thanks!
balter2016-09-17 01:01Jon (LabKey DevOps)2018-11-16 23:24Server not startingServer not starting TEXT_WITH_LINKSClosed     LabKey Support Forum
Still not working. Here is what I did:

1) Rolled back to tomcat 8.0.37
2) Updated CATALINA_HOME environment variable in my .bash_profile and sourced it (just to make sure)
3) Updated run configurations for 8.0.37
4) ran ant clean and ant rebuild
5) stopped tomcat
6) hit debug in IntelliJ

Still hanging at "INFO: Server startup in ..."

Attaching new trace.
WayneH2017-10-11 11:32Jon (LabKey DevOps)2018-11-16 23:23Server error upon automatic cohort creationServer error upon automatic cohort creation TEXT_WITH_LINKSClosed     LabKey Support Forum
interestingly,

though this wasn't happening when we noticed the previous error we seem to be getting a similar error on data import from flat file to dataset... Just got notice of this today.

Need guidance on this one..

Thanks,

Wayne
Jon (LabKey DevOps)2017-10-11 14:55Jon (LabKey DevOps)2018-11-16 23:23Server error upon automatic cohort creationServer error upon automatic cohort creation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

What version of LabKey are you currently running? Is it the most recent 17.2 Release version?

Regards,

Jon
WayneH2017-10-12 06:50Jon (LabKey DevOps)2018-11-16 23:24Server error upon automatic cohort creationServer error upon automatic cohort creation TEXT_WITH_LINKSClosed     LabKey Support Forum
I believe that we are still on version 16.3.
WayneH2017-10-12 07:09Jon (LabKey DevOps)2018-11-16 23:24Server error upon automatic cohort creationServer error upon automatic cohort creation TEXT_WITH_LINKSClosed     LabKey Support Forum
FYI

I also tried importing this project into my locally installed labkey server 17.3 and got this error.. when it tried to apply automatic cohort settings... same as last ...

Is this some kind of configuration issue?

(see attached)
Jon (LabKey DevOps)2017-10-12 14:52Jon (LabKey DevOps)2018-11-16 23:24Server error upon automatic cohort creationServer error upon automatic cohort creation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

What kind of study is this? Visit-based? Time-based? Continuous?

Regards,

Jon
WayneH2017-10-13 05:38Jon (LabKey DevOps)2018-11-16 23:23Server error upon automatic cohort creationServer error upon automatic cohort creation TEXT_WITH_LINKSClosed     LabKey Support Forum
This is a continuous study.
WayneH2017-10-17 07:08Jon (LabKey DevOps)2018-11-16 23:24Server error upon automatic cohort creationServer error upon automatic cohort creation TEXT_WITH_LINKSClosed     LabKey Support Forum
Any thoughts..? I saw in another thread you recommended that the client upgrade to 17 for a similar issue..

Wayne
jeckels2017-10-17 15:37Jon (LabKey DevOps)2018-11-16 23:24Server error upon automatic cohort creationServer error upon automatic cohort creation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

If possible, try pointing at a dataset that is marked as being a demographics dataset for your cohort information instead.

Thanks,
Josh
adam2010-02-17 09:41Jon (LabKey DevOps)2018-11-16 23:24server crashingserver crashing TEXT_WITH_LINKSClosed     LabKey Support Forum
We've made some fixes to the 10.1 search code that should address this. I believe the relevant commits were on the trunk after you branched. Would be great if you could merge the diff between the point on the trunk at which you branched and the 10.1 branch head into your cloud10 branch and test. This should pick up all 10.1 changes since you branched and allow you to merge subsequent 10.1 changes easily.
Jon (LabKey DevOps)2015-05-05 00:31Jon (LabKey DevOps)2018-11-16 23:24Send report result via mail regularlySend report result via mail regularly TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

Just to confirm, was this the documentation you followed?

https://www.labkey.org/wiki/home/Documentation/page.view?name=folderNotifications
https://www.labkey.org/wiki/home/Documentation/page.view?name=manageViews#notifications

My answers are below each question you asked:

- Is this the right approach for the above requirements or would you implement it differently?

Answer: This is the right way to do it if the instructions above are followed correctly. Please also note that the reports have to be visible and shared for the notifications to go out as well.

- can I manually test the sending of a report change digest mail? if so how?

Answer: You should be able to set the 15 minute digest to test the frequency and then do some updates.

- at what time each day is the 24 hour digest sent?

Answer: According to our documentation, it does say 24 hours, but I'll confirm whether it's an official 24 hours from the time things are set or if it is 24 hours from the time the server is started.

- where can I see a record of the e-mails sent by the system?

Answer: You should see this in the Audit Log under Admin > Site > Admin Console > Audit Log and select Message Events.

- is the digest triggered by changes in the data returned by the query report? or just a change in the report parameters?

Answer: The digest message should go out when the content of reports or datasets change occurs provided the report is both visible and shared.

- I saw that only a LK user can register to be notified by a report -> I need to register just an e-mail -> so can I achieve this via a custom JAVA module = run a report regularly and send the result via mail to a specific e-mail?

Answer: Yes, you could potentially build a custom Java module to run on its own mail sending rules. For more information on building a Java Module: https://www.labkey.org/wiki/home/Documentation/page.view?name=buildingModule

Regards,

Jon
Jon (LabKey DevOps)2015-05-05 17:23Jon (LabKey DevOps)2018-11-16 23:24Send report result via mail regularlySend report result via mail regularly TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

So regarding the 24 hour question, it's somewhat of a misnomer. The system is setup to send an email out at 12:05am every morning when you've configured the notifications on a daily basis.

Regards,

Jon
alx dobre2015-05-06 01:06Jon (LabKey DevOps)2018-11-16 23:24Send report result via mail regularlySend report result via mail regularly TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you for getting back to me Jon,

I confirm that was the documentation I followed.

Your answers where very useful and I will review what I did and see which bit was missing cause it seems I was on the right path.

Since I wrote the first message I went ahead and implemented the report via e-mail using the JAVA remote API just running the query. This way I get full control on how the report is displayed.
adam2015-05-28 08:31Jon (LabKey DevOps)2018-11-16 23:24Send report result via mail regularlySend report result via mail regularly TEXT_WITH_LINKSClosed     LabKey Support Forum
Not sure what version of LabKey Server the original poster was using, but note that we made a couple important fixes to the report/dataset notification feature in the 15.1 release. See https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=22445

Adam
Matthew Bellew2012-11-29 10:42Jon (LabKey DevOps)2018-11-16 23:23semantic queries on datasetssemantic queries on datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Great question. ConceptURI was added for exactly the purpose you describe. However, it never made it's way as a fully useful feature, as most customers were more interested in 'annotation' in principle than in practice.

We don't have any hard plans to move this area forward, however, there are two (now three) projects that have recently expressed interest. I'd be very interested in knowing more about your requirements

* Which ontologies you are interested in supporting (SNOMED, custom, etc)?
* Do you want to annotate columns types (sounds like yes) or choose subsets of ontology values as legal column values (say medicine codes)?
* What about UMLS?

Matt
Anthony Corbett2012-11-29 11:01Jon (LabKey DevOps)2018-11-16 23:23semantic queries on datasetssemantic queries on datasets TEXT_WITH_LINKSClosed     LabKey Support Forum

I would like to annotate column types for my current use cases. But I think being able to restrict valid column values to a pick list backed by ontology terms would be very useful too.

Instead of importing static version of certain vocabularies and maintaining mappings is it possible to integrate with something like NCBO's BioPortal? They provide a REST API to many of the common vocabulaties/ontologies.
Anthony Corbett2012-11-29 11:02Jon (LabKey DevOps)2018-11-16 23:24semantic queries on datasetssemantic queries on datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
HEre is a few links:

http://bioportal.bioontology.org/ontologies

http://www.bioontology.org/wiki/index.php/Using_NCBO_Technology_In_Your_Project


Here is an example project that has incorporated BioPortal APIs into annotating google spreadsheets:

http://isatools.wordpress.com/2012/07/13/introducing-ontomaton-ontology-search-tagging-for-google-spreadsheets/


Would something similar be appropriate for choosing a conceptURI for dataset properties?
Jon (LabKey DevOps)2017-05-02 15:40Jon (LabKey DevOps)2018-11-16 23:24Self registration / secondary approval?Self registration / secondary approval? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I know that with the old labkey.com site, we had to come up with a solution of our own that allowed the user to fill out a form to allow them to download the binaries and also get them signed up as a user on LabKey.org as well. The form then triggered a script on the server that would make an API call to create the user.

Let me see if I can scrounge up any more details on this.

Regards,

Jon
Ben Bimber2017-05-02 15:51Jon (LabKey DevOps)2018-11-16 23:24Self registration / secondary approval?Self registration / secondary approval? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks - I wouldnt spend too much time there if it's not obvious. It's not difficult to make java code to do this. The question was more whether there's anything in the existing self-registration features that is worth extending to help cover our scenario, and after looking closer I dont think I see anything.

-Ben
Jon (LabKey DevOps)2017-05-09 17:32Jon (LabKey DevOps)2017-05-09 17:32Self registration / secondary approval?Self registration / secondary approval? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

So it looks like in the Joomla site, we used ChronoForms to send the form data from Labkey.com to our SalesForce account and then had SalesForce send that data into LabKey.org via an API call (most likely via Python since that is one of the easier methods).

But I agree, there isn't anything within the self-registration beyond just the email address. I've brought this up as a future enhancement, which I hope we can look into doing.

Regards,

Jon
Andy Straw2013-07-09 10:03Jon (LabKey DevOps)2018-11-16 23:24SelectRowsCommand and parameterized querySelectRowsCommand and parameterized query TEXT_WITH_LINKSClosed     LabKey Support Forum
I think I have figured out the answer to my questions. Looks like I canNOT use SelectRowsCommand with a parameterized query. Instead, I used ExecuteSqlCommand and its setQueryParameters() method. The SQL I had to execute was simply "SELECT * FROM <QueryName>" which is pretty straightforward.

Still would like someone to confirm that I can't set a parameter of a parameterized query with SelectRowsCommand, or show me how, if it's possible.

Thanks.

Andy
jeckels2013-07-09 13:42Jon (LabKey DevOps)2018-11-16 23:24SelectRowsCommand and parameterized querySelectRowsCommand and parameterized query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy,

I checked and you're correct - we don't have a way to pass these parameters through for a SelectRowsCommand right now. I've opened this bug:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=18208

We're very close to finalizing 13.2 so I'm not sure if I'll be able to get this chance in. However, even if it doesn't make the cut for 13.2, you can grab a very early copy of the 13.3 Java client API and use it against a 13.2 server. The wire protocol and server side isn't changing, it's just making the client propagate another set of values during the request.

Thanks,
Josh
jeckels2013-07-10 13:12Jon (LabKey DevOps)2018-11-16 23:24SelectRowsCommand and parameterized querySelectRowsCommand and parameterized query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy,

I just committed a fix (revision 27407) which will be part of the 13.2 release.

Thanks,
Josh
adam2011-08-02 08:00Jon (LabKey DevOps)2018-11-16 23:24selectRows() against a large assayselectRows() against a large assay TEXT_WITH_LINKSClosed     LabKey Support Forum
I would generally expect maxRows=0 to be faster than maxRows=-1, though it's up to the database to optimize this case... it's possible PostgreSQL is getting confused. It's also possible there's that LabKey is no longer translating that 0 correctly (for historical reasons, one layer in the server treats 0 as "all rows"). Your theory about row count is possible too. What are the timings with maxRows=1 and maxRows=-1?
Ben Bimber2011-08-02 09:36Jon (LabKey DevOps)2018-11-16 23:24selectRows() against a large assayselectRows() against a large assay TEXT_WITH_LINKSClosed     LabKey Support Forum
using maxrows=-1 is considerably slower than maxrows=0; however, the former is still 20 secs.

when datasets were switched to hard tables, there was a dramatic difference from before. the visible difference when assays were converted to hard tables was less. is there some difference between the guts of how that hard-table transition works? do assay result domains still require pulling some info out of ontology manager?

i'm just confused since while this assay is large, comparable datasets load quicker than this.

thanks.
adam2011-09-08 15:09Jon (LabKey DevOps)2018-11-16 23:23selectRows() against a large assayselectRows() against a large assay TEXT_WITH_LINKSClosed     LabKey Support Forum
Count queries on PostgreSQL can be very slow (much slower than the query that returns the rows... esp. when you ask for 0 rows). For the generic DataRegion we're looking at doing these count queries in the background and AJAXing the results to the page when complete. You are probably seeing the same issue in the client API; see #13019.

Adam
marki2011-09-08 15:26Jon (LabKey DevOps)2018-11-16 23:24selectRows() against a large assayselectRows() against a large assay TEXT_WITH_LINKSClosed     LabKey Support Forum
Note that you can use the includeTotalCount config parameter on the existing selectRows API to turn off the computation of totals .

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.selectRows
Ben Bimber2011-09-09 06:31Jon (LabKey DevOps)2018-11-16 23:24selectRows() against a large assayselectRows() against a large assay TEXT_WITH_LINKSClosed     LabKey Support Forum
this one actually had to do with the EHR exceeding the cache for total number of containers i think. josh sorted it out and could say more. it was improved in 11.2.
jeckels2011-09-09 09:45Jon (LabKey DevOps)2018-11-16 23:24selectRows() against a large assayselectRows() against a large assay TEXT_WITH_LINKSClosed     LabKey Support Forum
For the record, we were exceeding the SecurityPolicy cache based on the number of containers when we were building up the list of copied-to-study columns for the dataset. In 11.2 we raised the cache limit, which helped in other usage scenarios as well. In 11.3 I changed the code that builds the candidate list of studies to reflect the fact that it's normal to have many more containers (and therefore SecurityPolicies) than you have studies.

Thanks,
Josh
jeckels2010-02-19 15:37Jon (LabKey DevOps)2018-11-16 23:24selectively transfering folders between labkey servers?selectively transfering folders between labkey servers? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The study export/import is the closest thing we have right now. Over time, we plan to attack this problem in two ways:

1. Continue to expand the things that are included in study export/import, and decouple the UI from being study-specific.
2. Allow file-based modules to include folder templates so that they can easily configure the web parts, etc.

Thanks,
Josh
Ben Bimber2010-02-19 15:42Jon (LabKey DevOps)2018-11-16 23:24selectively transfering folders between labkey servers?selectively transfering folders between labkey servers? TEXT_WITH_LINKSClosed     LabKey Support Forum
That seems like a good plan. I'm all for non-study specific things not being linked the study module.
adam2010-03-01 09:00Jon (LabKey DevOps)2018-11-16 23:23selectively transfering folders between labkey servers?selectively transfering folders between labkey servers? TEXT_WITH_LINKSClosed     LabKey Support Forum
FYI: In 10.1, you can export lists to a list archive from the "manage lists" page and then import the archive into another folder/server.
Ben Bimber2010-03-01 09:02Jon (LabKey DevOps)2018-11-16 23:24selectively transfering folders between labkey servers?selectively transfering folders between labkey servers? TEXT_WITH_LINKSClosed     LabKey Support Forum
i did see that - that's a nice feature.
jeckels2014-08-13 14:24Jon (LabKey DevOps)2018-11-16 23:24Select fields from all datasets (study) with a custom querySelect fields from all datasets (study) with a custom query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

You can't do this with a .qview.xml, but I think you should be able to specify the metadata you need directly via the LABKEY.QueryWebPart API call. The 'metadata' property lets you pass XML metadata which should be overlaid on top of the default query configuration.

So, by using XML to make ParticipantSequenceNum a key field, and setting the real primary key, LSID, to not be a field key, you should be able to accomplish your goal.

There's a short example usage in the docs for the 'metadata' property:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html

Thanks,
Josh
trent2014-08-15 00:32Jon (LabKey DevOps)2018-11-16 23:24Select fields from all datasets (study) with a custom querySelect fields from all datasets (study) with a custom query TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the tip Josh.

I'm probs missing something basic but I didn't have any success with metadata passed into the query web part having any impact.

I pass: (note I tried making a change to the column title just to check the metadata was having an impact)

<tables xmlns="http://labkey.org/data/xml"><table tableName="Dummy" tableDbType="NOT_IN_DB"><columns><column columnName="lsid"><isKeyField>false</isKeyField></column><column columnName="ABC"><columnTitle>ABD</columnTitle><isKeyField>true</isKeyField></column></columns></table></tables>

No change however.

As an additional test, I applied that xml against the actual dataset through the schema browser - the metadata is then reflected in the Query Schema Browser, however even then, the lsid is returned from the querywebpart :(.

Cheers,
Trent

nb: I realise this example is different again to my original post, but I did also try assigning the ParticipantSequenceNum as the primary key - and just wanted to provide a sample of applying xml. And here is the full code:

<script type="text/javascript">
    var dummyWebPart =
        new LABKEY.QueryWebPart({
                renderTo: 'container',
                title: 'Dummy',
                schemaName: 'study',
                queryName: 'Dummy',
                showRecordSelectors: true,
                buttonBar: {
                    includeStandardButtons: true,
                    items:[
                      {text: 'Show Vials', onClick: "console.log(dummyWebPart.getDataRegion().getChecked())", requiresSelection: true},
                    ]
                },
                metadata: {
                    type: 'xml',
                    value: '<tables xmlns="http://labkey.org/data/xml"><table tableName="Dummy" tableDbType="NOT_IN_DB"><columns><column columnName="lsid"><isKeyField>false</isKeyField></column><column columnName="ABC"><columnTitle>ABD</columnTitle><isKeyField>true</isKeyField></column></columns></table></tables>'
                }
        });
</script>
<div id="container"></div>
Greg Taylor2014-08-21 16:01Jon (LabKey DevOps)2018-11-16 23:23Select fields from all datasets (study) with a custom querySelect fields from all datasets (study) with a custom query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

In your most recent example, the metadata is not applied which is consistent with the documentation. Currently, this option is only available if the query has been specified through config.sql. In your example, the query is specified by schemaName/queryName is therefore the metadata is not applied. I experimented with a script that uses config.sql and found that the metaData was applied properly.

Greg

Below is the documentation for this feature:

{Object} config.metadata
Metadata that can be applied to the properties of the table fields. Currently, this option is only available if the query has been specified through the config.sql option. For full documentation on available properties, see LabKey XML Schema Reference. This object may contain the following properties:
type: The type of metadata being specified. Currently, only 'xml' is supported.
value: The metadata XML value as a string. For example: '<tables xmlns="http://labkey.org/data/xml"><table tableName="Announcement" tableDbType="NOT_IN_DB"><columns><column columnName="Title"><columnTitle>Custom Title</columnTitle></column></columns></table></tables>'

A similar example script that applies the xml metadata:
<script type="text/javascript">
    var dummyWebPart =
        new LABKEY.QueryWebPart({
                renderTo: 'container',
                title: 'Dummy',
                schemaName: 'study',
                //queryName: 'Dummy',
                sql: 'SELECT * FROM study.Dummy',
                showRecordSelectors: true,
                buttonBar: {
                    includeStandardButtons: true,
                    items:[
                      {text: 'Show Vials', onClick: "console.log(dummyWebPart.getDataRegion().getChecked())", requiresSelection: true},
                    ]
                },
                metadata: {
                    type: 'xml',
                    value: '<tables xmlns="http://labkey.org/data/xml"><table tableName="Dummy" tableDbType="NOT_IN_DB"><columns><column columnName="lsid"><isKeyField>false</isKeyField></column><column columnName="ParticipantSequenceNum"><isKeyField>true</isKeyField></column><column columnName="ABC"><columnTitle>ABD</columnTitle><isKeyField>true</isKeyField></column></columns></table></tables>'
                }
                 
        });
</script>
<div id="container"></div>
Greg Taylor2014-08-21 16:03Jon (LabKey DevOps)2018-11-16 23:23Select fields from all datasets (study) with a custom querySelect fields from all datasets (study) with a custom query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,
My previous message was a work in progress and I submitted prematurely! I was able to apply metadata xml to the query but so far I have been unable to link to other datasets in the study.
More Later,
Greg
trent2014-08-21 23:12Jon (LabKey DevOps)2018-11-16 23:24Select fields from all datasets (study) with a custom querySelect fields from all datasets (study) with a custom query TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh doh! When Josh suggested using the metadata in the QWP, I completely over looked that info in the docs. Thanks for pointing that out :-)

For what it's worth, I could be certain I could join this data (Custom query from post 1) to other datasets in studies a few versions ago. *shrugs*
Greg Taylor2014-08-26 15:55Jon (LabKey DevOps)2018-11-16 23:24Select fields from all datasets (study) with a custom querySelect fields from all datasets (study) with a custom query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,
Unfortunately, I have been unable to join to other datasets using the metadata trick. However, if you are interested in joining on a certain set of values, you could select them in javascript using a separate statement and then run a second query to return the data that you are actually interested in. I hope that this option works for your purposes.

Greg
Jon (LabKey DevOps)2017-09-29 13:08Jon (LabKey DevOps)2018-11-16 23:24Search Results QuestionSearch Results Question TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

I'll get this confirmed, but I suspect that we don't have anything out of the box that will allow this type of searching you're proposing.

Thank you for your patience.

Regards,

Jon
kevink2016-10-04 10:23Jon (LabKey DevOps)2018-11-16 23:23Scripting pipelines with more than one input fileScripting pipelines with more than one input file TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, for historical reasons, the pipeline task's input files are identified by file extension rather than the actual input file name. If input2.csv is changed to input2.tsv, I believe your example will work but the task will expect a single csv file and a single tsv file as inputs.

By default, when there are multiple files for a single input name, we will launch the task multiple times -- once for each input file. In your case, however, you'd like to have multiple input files sent to a single task. To do this, add splitFiles="true" to the "input.csv" input in the task xml. Ideally we would expand the ${input.csv} token in the R script into a list of all the selected input files, however we haven't implemented it yet. As a workaround, you will need to read the taskInfo.tsv file to get the list of input files for the input.csv token. Here is some example code you can use:

jobInfo <- read.table("${pipeline, taskInfo}",
                      col.names=c("name", "value"),
                      header=FALSE, check.names=FALSE,
                      stringsAsFactors=FALSE, sep="\t", quote="",
                      fill=TRUE, na.strings="")

# collect all input files
inputFiles <- jobInfo$value[ grep("input\\.csv", jobInfo$name) ]


The HIPC group at the Fred Hutch have a pipeline script that uses multiple input files on github:

https://github.com/RGLab/LabKeyModules/blob/master/HIPCMatrix/pipeline/tasks/create-matrix.r
https://github.com/RGLab/LabKeyModules/blob/master/HIPCMatrix/pipeline/tasks/create-matrix.task.xml
eva pujadas2016-10-05 01:40Jon (LabKey DevOps)2018-11-16 23:23Scripting pipelines with more than one input fileScripting pipelines with more than one input file TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Kevin,

Thanks a lot for this helpful and detailed explanation.

Best,
Eva
Jon (LabKey DevOps)2016-06-02 14:14Jon (LabKey DevOps)2018-11-16 23:23schema study missing...schema study missing... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

Can you go into Admin > Folder > Management and then go to the Folder Type tab and tell me what options are picked on that page for both the Folder Type on the left side and the Module checkboxes on the right? Are you in the right Project/Folder that has the HIV Demo Study in it? I noticed your URL was in the Home project, but if the study wasn't made under the Home Project, but under a subfolder or a completely different Project, you will need to access that Project to then access the study.

Regards,

Jon
diego2016-06-02 15:14Jon (LabKey DevOps)2018-11-16 23:24schema study missing...schema study missing... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I have attached a screenshot of "folder Type" and study hierarchy.

Thanks,
Diego
diego2016-06-02 15:27Jon (LabKey DevOps)2018-11-16 23:23schema study missing...schema study missing... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Ok I understand now, you must be within the correct "demo study" folder then "Admin" > "Developer Links" > "Schema Browser", the study folder with all tables is now visable!

You where correct was in the home project =|

Thanks,
Diego
Jon (LabKey DevOps)2016-06-02 16:48Jon (LabKey DevOps)2016-06-02 16:48schema study missing...schema study missing... TEXT_WITH_LINKSClosed     LabKey Support Forum
Not a problem Diego!

Regards,

Jon
jeckels2017-06-01 09:40Jon (LabKey DevOps)2018-11-16 23:23Schemas in Schema BrowserSchemas in Schema Browser TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tek,

Which schemas are coming and going? Is this always in the same folder, or different folders?

The schemas presented are based on the configuration of each folder, including which modules are enabled.

Thanks,
Josh
Tek Wojenski2017-06-01 11:48Jon (LabKey DevOps)2018-11-16 23:24Schemas in Schema BrowserSchemas in Schema Browser TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh

I have seen ListManager do that targetedms.

Any suggestions?
Jon (LabKey DevOps)2017-06-01 23:53Jon (LabKey DevOps)2018-11-16 23:23Schemas in Schema BrowserSchemas in Schema Browser TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tek,

Can you clarify what you mean by "I have seen ListManager do that targetedms."?

As Josh stated, the schemas that are presented are based on the configuration of the specific folder you're in and the modules that folder is using.

When you're in the schema browser, can you look at the URL path your browser is showing and confirm whether that container path should have a certain schema?

Regards,

Jon
Tek Wojenski2017-06-02 04:57Jon (LabKey DevOps)2018-11-16 23:24Schemas in Schema BrowserSchemas in Schema Browser TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon

We have a number of installations, and yes it turns out that URL was pointing to the wrong place. Because they were so close in the naming, I missed it.
Sorry for the confusion.

Regards

Tek Wojenski
jeckels2010-03-19 16:31Jon (LabKey DevOps)2018-11-16 23:24Schedule perl script as pipeline job?Schedule perl script as pipeline job? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We don't have general-purpose cron-like scheduling for running pipeline jobs within LabKey Server.

The way that R scripts are automatically able to authenticate to the server based on the user that launched them is unique to R. It's most likely possible to enable this for other external tools, like Perl, but since the scripts call to the server using HTTP requests, it requires work to get them to use the correct HTTP session ids.

Thanks,
Josh
Ben Bimber2010-03-19 16:35Jon (LabKey DevOps)2018-11-16 23:24Schedule perl script as pipeline job?Schedule perl script as pipeline job? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. so when i set an r script to 'run in the background as a pipeline job', what exactly happens?
Karl Lum2010-03-19 17:08Jon (LabKey DevOps)2018-11-16 23:24Schedule perl script as pipeline job?Schedule perl script as pipeline job? TEXT_WITH_LINKSClosed     LabKey Support Forum
In this case, the credentials of the user that created the script are used to run the job. A temporary subdirectory is created off the pipeline root that is used to run the script and to save any script outputs for rendering at a later time.
Ben Bimber2010-03-19 17:14Jon (LabKey DevOps)2018-11-16 23:24Schedule perl script as pipeline job?Schedule perl script as pipeline job? TEXT_WITH_LINKSClosed     LabKey Support Forum
what determines when it's run and how often does that occur?
Karl Lum2010-03-19 17:23Jon (LabKey DevOps)2018-11-16 23:24Schedule perl script as pipeline job?Schedule perl script as pipeline job? TEXT_WITH_LINKSClosed     LabKey Support Forum
It gets tossed onto the pipeline queue when a request is made to render the report. There's currently no scheduling component to it.

It was originally added as a way to render potentially long running R reports asynchronously and was envisioned to be used in conjunction with the R report caching checkbox (which is only available in studies).
Ben Bimber2010-04-02 10:08Jon (LabKey DevOps)2018-11-16 23:23Schedule perl script as pipeline job?Schedule perl script as pipeline job? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, i think i get the idea. is the idea behind the pipeline/result caching approach that some large script will run, then other scripts will consume these results?

if so, how do i best get other scripts to use the result of the pipelined script? in our case, I have a time consuming script that runs to produce a large matrix describing kinship coefficients across all colony members. this data rarely changes. I'd like to cache these results such that other scripts can simply take this matrix and perform calculations with it. how would i best go about this? can i save the matrix to a file then get other scripts to import it? where do cached results get saved?
Greg Taylor2014-07-15 17:17Jon (LabKey DevOps)2018-11-16 23:24Saving a new listSaving a new list TEXT_WITH_LINKSClosed     LabKey Support Forum
I looked for a method within the JavaScript API to create a new list but couldn't find one. Someone else may chime in if one exists. However, once a list exists, you may update its contents using the 'LABKEY.Query.insertRows' function.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.insertRows

Greg
kevink2014-07-16 11:37Jon (LabKey DevOps)2018-11-16 23:24Saving a new listSaving a new list TEXT_WITH_LINKSClosed     LabKey Support Forum
We don't yet have an API to create a list, but you can create a SampleSet using the LABKEY.Exp.SampleSet.create() API. I'm not sure why it isn't showing up in our public API, but you can see an example in Experiment.js around line 613:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/src/api_webapp_clientapi_core_Experiment.js.html
jeckels2017-02-20 15:36Jon (LabKey DevOps)2018-11-16 23:24Saving a Batch via Python APISaving a Batch via Python API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

Does this assay design have a transform script? It may be the combination of API-based insertion and transform script that's causing the problem.

Thanks,
Josh
simon buckner2017-02-21 07:50Jon (LabKey DevOps)2018-11-16 23:24Saving a Batch via Python APISaving a Batch via Python API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Removing my transform script allowed the upload to complete. I'm a little confused, because it didn't look like it had reached that point in the code yet. But at least this narrows it down for me; I can focus on debugging my script now.

Thanks a lot!

Simon
jeckels2017-02-21 09:31Jon (LabKey DevOps)2018-11-16 23:24Saving a Batch via Python APISaving a Batch via Python API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

You may have already discovered this, but the server is expecting there to be a "runDataUploadedFile" property in the runProperties.tsv file after the transform script. Presumably it's not present because your Python script is supplying the data rows as part of the API request instead of as a reference to a data file on disk. This is not a commonly used combination (API-based insertion and transform script), so there may be a gap or two like this, but hopefully you can find an approach that works.

Thanks,
Josh
jeckels2017-03-30 18:08Jon (LabKey DevOps)2018-11-16 23:23Sample Set property lookup to core.ContainerSample Set property lookup to core.Container TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Sorry, but I think I'm not quite following the scenario fully.

Is the broken lookup a reference to a workbook's EntityId, or the parent container's?

If you go to /Projects and look at the row in core.Container and add EntityId to the grid (it's a hidden column), do you see the value in question?

If it's a workbook, can you see if targeting core.Workbooks instead of core.Containers gives a different result?

I'm off on vacation starting tomorrow, but hopefully Jon or others can chime in based on your response.

Thanks,
Josh
Anthony Corbett2018-02-09 10:51Jon (LabKey DevOps)2018-11-16 23:23Sample IDs generatorSample IDs generator TEXT_WITH_LINKSClosed     LabKey Support Forum
Edward2018-02-12 04:24Jon (LabKey DevOps)2018-11-16 23:24Sample IDs generatorSample IDs generator TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Anthony Corbett.
I am not using sample sets (although samples do share common properties) but I want them to be specific for each individual.
Jon (LabKey DevOps)2018-02-12 14:35Jon (LabKey DevOps)2018-02-12 14:35Sample IDs generatorSample IDs generator TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

The Sample Sets link that Anthony provided (https://www.labkey.org/Documentation/wiki-page.view?name=sampleIDs#expression) is the only place where this exists otherwise that isn't apart of the Biologics module and not available in the Community Edition of LabKey.

If you are interested in Biologics features, please contact us here (https://www.labkey.com/about/contact/) or send us an email to info@labkey.com for more information.

Regards,

Jon
Lili2010-06-28 09:39Lili2010-06-28 09:39Sample code for javascript api using FormPanel and gridSample code for javascript api using FormPanel and grid TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thank you for the reply. Once I put the .module in the externalModules directory, things worked out as told in readme.txt.

-Lili
Lili2010-05-10 12:29Jon (LabKey DevOps)2018-11-16 23:23Sample code for javascript api using FormPanel and gridSample code for javascript api using FormPanel and grid TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Peter,

I followed the steps but I can't get the upgrade module page, and I don't see "apisamples" on the folder settings either. In step 2, how do I deploy the apisamples.module to the module directory? Do you refer to the "modules" folder that is a sibling of "labkeywebapp"? Don't I need an "apisamples" directory besides apisamples.module?

Thanks,
Lili
jeckels2010-05-19 17:52Jon (LabKey DevOps)2018-11-16 23:24Sample code for javascript api using FormPanel and gridSample code for javascript api using FormPanel and grid TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lili,

I recommend putting this .module file in the externalModules directory. It should be a sibling to the modules and labkeywebapp directory. After creating the directory if needed and adding the apisamples.module, you'll need to restart Tomcat. The server will automatically extract any content into an apisamples subdirectory if needed.

For more information, please see this documentation page:

https://www.labkey.org/wiki/home/Documentation/page.view?name=thirdPartyModules

Thanks,
Josh
nkanaskar2016-01-03 22:21nkanaskar2016-01-03 22:21R view errorR view error TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks a lot Will - I just moved my R installation to a path without space and it worked fine.

Thanks again,
Nitin
Will Holtz2016-01-03 12:20Jon (LabKey DevOps)2018-11-16 23:23R view errorR view error TEXT_WITH_LINKSClosed     LabKey Support Forum
I believe the "Program Path" field does not support spaces. Can you move the R installation to a different directory? You might also be able to make a shortcut to the R executable, such that the path to the shortcut does not contain any spaces, and then put the location of the shortcut in the "Program Path" field.

-Will
Susan Hert2017-10-04 14:52Jon (LabKey DevOps)2018-11-16 23:23Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
This being a run-time failure suggests that there's a jar file not being found somewhere.

If you look in your build/deploy/modules/<first module>/lib and build/deploy/modules/<second module>/lib directories do you see the jar files you expect? And does the first module's jar file contain the class that it's not finding?

Susan
Matt V2017-10-05 09:22Jon (LabKey DevOps)2018-11-16 23:24Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
They weren't, only in first module's lib, so I copied the jars into both module lib dirs. They are now showing in both directories you listed.

Unfortunately, the same error persists. I think it may be because the class, DBHelper, is part of the first module and not the second. Maybe with the build change, it's now unable to find that at runtime?
Susan Hert2017-10-05 10:16Jon (LabKey DevOps)2018-11-16 23:24Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry for not being clear, Matt. You shouldn't need to copy all the jars into both module's lib directories as both directories' jar files should be on the classpath. Each module's deployed lib directory should contain its own jar file(s) (e.g., compBioStudy-17.2.jar) as well as the jar files of the module's external dependencies.

The Gradle build should be putting all deployed jars into the same place the ant build did, and once the jars are in place the build system's job is done. It shouldn't affect the running server, unless it has put the jar files in a bad place.

Here are a couple of things to try:
- Use 'jar tf' (or something similar that will show you the contents of the jar file) to confirm that 'org.labkey.compbiostudy.dataLayer.baseClasses.DBHelper' is actually in the jar file in the build/deploy/modules/<first module> directory
- If you have a deployment created from your 17.1 LabKey, compare the build/deploy/modules/<first module> and build/deploy/modules/<second module> directories from that deployment with the one from 17.2

Let us know what that reveals, if anything.

Susan
Matt V2017-10-05 10:31Jon (LabKey DevOps)2018-11-16 23:24Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Susan,
Ran the jar commands and compared the results for 17.2 and 17.1. They actually look identical with the DBHelper.class included in the first module.
Susan Hert2017-10-05 10:54Jon (LabKey DevOps)2018-11-16 23:24Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Here's something you wouldn't normally want to do, and, given that the directories are identical, I don't have much hope that this will be result in anything different, but I wonder if you will get the same results if you swap in the 17.1 versions of the modules instead of the 17.2 versions. To do this, you would need to remove the following from the 17.2 deployment :
- build/deploy/modules/<first module>.module file
- build/deploy/modules/<first module> directory
- build/deploy/modules/<second module>.module file
- build/deploy/modules/<second module> directory

Then copy the <first module>.module and <second module>.module files from the 17.1 deployment into the build/deploy/modules directory. (When Tomcat restarts, it will explode each module to create their respective directories.)
Matt V2017-10-05 12:05Jon (LabKey DevOps)2018-11-16 23:24Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
I tried following your instructions, leaving the .module files with the 17.1 naming scheme (e.g. CompBioStudy.module) as well as adding the suffix (e.g. CompBioStudy-17.2.module). All I did with tomcat was fire up the debugger in intelliJ, no building with Gradle.

The webpart isn't loading now, but the modules are visible and appear to be enabled. Not seeing any errors in intelliJ or the chrome dev tools (console and network tabs).
Jon (LabKey DevOps)2017-10-05 13:11Jon (LabKey DevOps)2018-11-16 23:24Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

Is the webpart just blank, spinning and looking like it's trying to load something, or is it something else entirely?

Have you been able to pick up any activity in the debugger, like a console or network entry that might be showing an error?

Regards,

Jon
Matt V2017-10-05 15:03Jon (LabKey DevOps)2018-11-16 23:23Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
It's not actually rendering at all. If I try to re-add the web part I do see a 302 error:

GET /labkey/project/Oregon%20Pancreatic%20Tumor%20Registry/addWebPart.view?pageId=Search&location=%21content&returnUrl=%2Flabkey%2Fproject%2FOregon%2520Pancreatic%2520Tumor%2520Registry%2Fbegin.view%3FpageId%3DSearch&name=Search+-+Main HTTP/1.1

That's it though. Nothing in intelliJ or the console.

This is just since I removed the 17.2 module from gradle and put the 17.1 ant version of the *.module in there.
Susan Hert2017-10-05 17:23Jon (LabKey DevOps)2018-11-16 23:24Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
You may want to revert this swapping in of the 17.1 versions of the modules. I suggested it in the vain hope that it might produce some kind of "ah ha!", but it has not. It seems there must be some difference between the two versions given that the behavior is different, but I fear that this hacked up investigation may produce more questions than it answers.

We generally make a separate api jar for a module if another module depends on it (which is where the depProjectConfig: apiCompile comes from), but that is really a compile-time thing, not a run-time thing unless I'm forgetting something about the class loaders.

Susan
Matt V2017-10-06 11:09Jon (LabKey DevOps)2018-11-16 23:24Runtime gradle dependency issuesRuntime gradle dependency issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Alright, problem resolved with Trey's help this morning! Boiled down to the error message being misleading.

The problem stemmed from a static block within the DBHelper class. It was trying to get some params from the ServletContext that were returning null. When that class was initialized Java pretty much exploded and threw the class not found error. Fixing that within xml files was the eventual resolution. That, and restructuring the class to better report errors in the future.

Many thanks for yours and everyone's help resolving this!
jeckels2008-09-12 13:32Jon (LabKey DevOps)2018-11-16 23:23Runtime error when queueing pipelinejobRuntime error when queueing pipelinejob TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Nate,

PipelineJobs should all be serializable. This is important because many jobs can be executed on different machines and we need a way to transfer them around. Additionally, they may have to sit in a queue for a long time and you don't want them to hold onto a lot of in-memory data. In your particular case, it sounds like your job will always run on the web server, but it still needs to be serializable.

What this means is that you should pass a job the information it needs to look up data, instead of the TableInfo itself. For example, you might pass it a list of run ids, a URL that includes the filters and sorts, etc. Then, inside your job when it starts running, go ahead and create the TableInfo. You may need to create a different MS2Schema.createSpectraCountTable() method that doesn't rely on the ViewContext directly, since that class won't be serializable.

Hope this helps.

Thanks,
Josh
Will Holtz2015-01-15 09:45Will Holtz2015-01-15 09:45runProperties.tsv does not contain runDataUploadedFile fieldrunProperties.tsv does not contain runDataUploadedFile field TEXT_WITH_LINKSClosed     LabKey Support Forum
I updated to r36002 and now the repo is functional for me.

-Will
Karl Lum2015-01-21 11:29Karl Lum2015-01-21 11:29runProperties.tsv does not contain runDataUploadedFile fieldrunProperties.tsv does not contain runDataUploadedFile field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for checking this out.

- Karl
Karl Lum2015-01-15 10:20Jon (LabKey DevOps)2018-11-16 23:24runProperties.tsv does not contain runDataUploadedFile fieldrunProperties.tsv does not contain runDataUploadedFile field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Sorry I didn't respond yesterday but I wasn't certain whether the fix I added would be optimal. It turns out that it was perhaps too aggressive and is causing some failures in other parts of the product. My plan is to revert that change and use a more targeted approach to fix that scenario.

I'll update this ticket when the fix gets committed.

thanks, Karl
Karl Lum2015-01-15 11:55Jon (LabKey DevOps)2018-11-16 23:24runProperties.tsv does not contain runDataUploadedFile fieldrunProperties.tsv does not contain runDataUploadedFile field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I committed the new fix at r36010. Let me know if this still works for you.

thanks, Karl
Will Holtz2015-01-21 11:20Jon (LabKey DevOps)2018-11-16 23:24runProperties.tsv does not contain runDataUploadedFile fieldrunProperties.tsv does not contain runDataUploadedFile field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Karl,

r36010 has been working for me. Thanks!

-Will
jeckels2015-01-15 10:12jeckels2015-01-15 10:12runProperties.tsv does not contain runDataUploadedFile fieldrunProperties.tsv does not contain runDataUploadedFile field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for the update. Glad things are working at this point - sorry there was a hiccup for some window of time.

Thanks,
Josh
juan anaya2017-05-05 05:16juan anaya2017-05-05 05:16Running R scripts from local machine while server in admin modeRunning R scripts from local machine while server in admin mode TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm sorry I did mean the .netrc file. We just recently upgraded to v.16.3 for production and the dev server is still in 15.1x. I just tested it on the production server when it is in admin mode and it worked fine. Looks like I just need to upgrade the dev server. Thanks,

Juan
Jon (LabKey DevOps)2017-05-04 13:36Jon (LabKey DevOps)2018-11-16 23:24Running R scripts from local machine while server in admin modeRunning R scripts from local machine while server in admin mode TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Juan,

I'm not able to reproduce the conditions you described.

When I set my Dev server to Admin Only mode, my external R query connects without issue.

How are you running your script exactly? Are you using a .netrc file per our documentation? (https://www.labkey.org/Documentation/wiki-page.view?name=netrc)

When you stated that your account information is in the script, does that mean you're trying to use the script to pass your credentials across into LabKey rather than use a netrc file?

Regards,

Jon
Jon (LabKey DevOps)2019-01-23 15:08Jon (LabKey DevOps)2019-01-23 15:08Running into ClassNotFoundException for Dev Labkey setupRunning into ClassNotFoundException for Dev Labkey setup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Manoj,

Are you running your dev instance on a Mac (I'm guessing this based on the path in the second line of your stack error)? If so, have you also consulted our Mac dev docs as well?

https://www.labkey.org/Documentation/wiki-page.view?name=devmac

There are some additional steps and things to remember when it comes to setting up a dev instance on a Mac vs Windows that is covered in the doc.

Is that labkey.xml file you provided something that you created yourself or was this created through using Gradle and IntelliJ?

If you are setting up a development instance, can you confirm that every step was done correctly per our dev setup doc? Even missing one step can create a significant problem when trying to start things up. (https://www.labkey.org/Documentation/wiki-page.view?name=devMachine)

Also, is your instance of Tomcat one you downloaded and installed directly from the Apache Tomcat website (http://tomcat.apache.org/download-80.cgi) or was this pulled down through something like brew? Sometimes odd behaviors can been seen if not using binaries direct from the software manufacturer.

Regards,

Jon
Matthew Bellew2013-08-27 16:02Matthew Bellew2013-08-27 16:02Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Also "jar tf foo.jar" lists all the files in the jar file. On mac/linux this works great

   jar tf foo.jar | grep ClassOfInterest

works great
Leo Dashevskiy2013-08-27 12:51Leo Dashevskiy2013-08-27 12:51Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
All right, great insight, Josh! I followed your advice and things finally worked out for me!

I did reinsert tools.jar per https://www.labkey.org/wiki/home/Documentation/page.view?name=build&_docid=wiki%3Aaa644db4-12e8-102a-a590-d104f9cdb538 - though not sure of its use.

I have no idea, where my semi-colons came from (the docs link above does have the proper colons), probably from Bront above using Windows. Not knowing that they are the issue, I followed the possible lead mentioned above and added catalina.jar to the classpath, which messed things up further...

Josh, which utility do you use to search these *.jar files for a particular class name?
Leo Dashevskiy2013-08-28 10:58Leo Dashevskiy2013-08-28 10:58Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Yeah, great idea Matt, thanks!
jeckels2013-07-31 13:12Jon (LabKey DevOps)2018-11-16 23:23Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Can you send whatever output you're getting the IntelliJ debugger console? It may contain error messages that indicate why the server isn't deploying to the webapp successfully.

Thanks,
Josh
bront@kcr.uky.edu2013-07-31 15:04Jon (LabKey DevOps)2018-11-16 23:23Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Sorry... should have thought of sending the messages with the first post.

The path to the source is: /Users/bront/IdeaProjects/labkey

Thanks for your help.

bront


/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52046,suspend=y,server=n -Dcatalina.base=./ -Dcatalina.home=./ -Djava.io.tmpdir=./temp -Ddevmode=true -ea -Dsun.io.useCanonCaches=false -Xmx1G -XX:MaxPermSize=512M -classpath /Library/Tomcat/bin/bootstrap.jar:/Library/Tomcat/bin/tomcat-juli.jar -javaagent:/Users/bront/Library/Caches/IntelliJIdea12/groovyHotSwap/gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start
Connected to the target VM, address: '127.0.0.1:52046', transport: 'socket'
Jul 31, 2013 6:00:19 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /Users/bront/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
Jul 31, 2013 6:00:19 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jul 31, 2013 6:00:19 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 536 ms
Jul 31, 2013 6:00:19 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jul 31, 2013 6:00:19 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.37
Jul 31, 2013 6:00:19 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor host-manager.xml
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/host-manager is unusable.
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/manager is unusable.
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/docs is unusable.
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Jul 31, 2013 6:00:20 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Jul 31, 2013 6:00:20 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/examples is unusable.
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/_ is unusable.
Jul 31, 2013 6:00:20 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jul 31, 2013 6:00:20 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jul 31, 2013 6:00:20 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/14 config=null
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 644 ms
bront@kcr.uky.edu2013-08-01 14:25Jon (LabKey DevOps)2018-11-16 23:23Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

I got LabKey to compile and run today on my Windows VM... but I am still running into an issue on the Mac.

I am getting the following error in the console:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:61906,suspend=y,server=n -Dcatalina.base=/Tomcat/Library -Dcatalina.home=/Tomcat/Library -Djava.io.tmpdir=/Tomcat/Library/temp -Ddevmode=true -ea -Dsun.io.useCanonCaches=false -Xmx1G -XX:MaxPermSize=512M -classpath /Tomcat/Library/bin/bootstrap.jar;/Tomcat/Library/bin/tomcat-juli.jar -javaagent:/Users/bront/Library/Caches/IntelliJIdea12/groovyHotSwap/gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start

Connected to the target VM, address: '127.0.0.1:61906', transport: 'socket'

Error: Could not find or load main class org.apache.catalina.startup.Bootstrap

Disconnected from the target VM, address: '127.0.0.1:61906', transport: 'socket'


Thanks again for your help.

bront
jeckels2013-08-05 11:20Jon (LabKey DevOps)2018-11-16 23:23Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

From your log file, it looks like it isn't even trying to deploy the LabKey webapp. This is controlled with the presence of a labkey.xml in your TOMCAT/conf/Catalina/localhost directory. Do you have that directory? Does it have a labkey.xml file? It should be put there by the Ant build.

The missing class from your other machine should be coming from TOMCAT/lib/catalina.jar. It looks like your classpath may not be configured correctly for that particular install. You can probably edit the debug configuration to add it to the -classpath argument and you will hopefully get further.

Thanks,
Josh
Leo Dashevskiy2013-08-23 18:53Jon (LabKey DevOps)2018-11-16 23:23Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
I get this same error, what am I doing wrong?

/usr/lib/jvm/java-7-oracle/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:37362,suspend=y,server=n -ea -Xmx1G -XX:MaxPermSize=512M -Dsun.io.useCanonCaches=false -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath /usr/lib/jvm/java-7-oracle/lib/tools.jar;/usr/local/tomcat/bin/bootstrap.jar;/home/ldashevs/Labkey/idea-IU-117.117/lib/idea_rt.jar;./bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/ -Dcatalina.home=/usr/local/tomcat/ -Djava.io.tmpdir=/usr/local/tomcat/temp -Ddevmode=true -javaagent:/home/ldashevs/Labkey/idea-IU-117.117/plugins/Groovy/lib/agent/gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start
Connected to the target VM, address: '127.0.0.1:37362', transport: 'socket'
Error: Could not find or load main class org.apache.catalina.startup.Bootstrap
Disconnected from the target VM, address: '127.0.0.1:37362', transport: 'socket'

Process finished with exit code 1
jeckels2013-08-26 15:22Jon (LabKey DevOps)2018-11-16 23:24Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

That class, org.apache.catalina.startup.Bootstrap, should be in <TOMCAT>/bin/bootstrap.jar. It looks like that's on the -classpath that's being used, but can you verify that it's actually present in /usr/local/tomcat/bin?

If so, try editing your debug configuration so that the -classpath argument has the paths separated by : instead of ;. That is:

-classpath /usr/lib/jvm/java-7-oracle/lib/tools.jar:/usr/local/tomcat/bin/bootstrap.jar:/home/ldashevs/Labkey/idea-IU-117.117/lib/idea_rt.jar:./bin/tomcat-juli.jar

Thanks,
Josh
Leo Dashevskiy2013-08-26 15:38Jon (LabKey DevOps)2018-11-16 23:23Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh, wow, thanks Josh! That got things rolling a bit, indeed, changing ';' to a ':' helped (I verified before that the bootstrap.jar is in the right place and does contain the needed class) -- so this is again a stupid Unix-vs.-Windows deal? (';' being the Windows separator)

Now I get the following error:

java.lang.NoClassDefFoundError: org/apache/tomcat/util/log/SystemLogHandler
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
    at java.lang.Class.getConstructor0(Class.java:2723)
    at java.lang.Class.newInstance0(Class.java:345)
    at java.lang.Class.newInstance(Class.java:327)
    at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:219)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:391)
Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.log.SystemLogHandler
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 7 more
jeckels2013-08-26 15:50Jon (LabKey DevOps)2018-11-16 23:24Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Yes, this is an OS-specific issue. In many cases Java hides these kinds of differences, but obviously not in this case.

The org.apache.tomcat.util.log.SystemLogHandler class should be in <TOMCAT>/lib/tomcat-coyote.jar. Can you check that file as well? In most cases, it should be picked up automatically based on the "-Dcatalina.home=/usr/local/tomcat/" argument to the JVM.

Thanks,
Josh
Leo Dashevskiy2013-08-26 18:11Jon (LabKey DevOps)2018-11-16 23:24Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Hm, well, I added that file to the classpath (and that class in present in that file) and things moved further, but still an error, I get a feeling, something is not set right 'globally'... I did not have such issues, when setting IntelliJ up the first time I went through this...

Once again, here is the Configuration for the 'Labkey Dev' Run:

Main class: org.apache.catalina.startup.Bootstrap
VM options:
-ea
-Xmx1G
-XX:MaxPermSize=512M
-Dsun.io.useCanonCaches=false
-Djava.endorsed.dirs="/usr/local/tomcat/common/endorsed"
-classpath
"/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/lib/catalina.jar:/usr/local/tomcat/lib/tomcat-coyote.jar:/usr/lib/jvm/java-7-oracle/lib/tools.jar:/home/ldashevs/Labkey/idea-IU-117.117/lib/idea_rt.jar:./bin/tomcat-juli.jar"
-Dcatalina.base="/usr/local/tomcat/"
-Dcatalina.home="/usr/local/tomcat/"
-Djava.io.tmpdir="/usr/local/tomcat/temp"
-Ddevmode=true

Program arguments: start
Working directory: /usr/local/tomcat
Environment variables: <blank>
Use classpath of module: LabKey
unchecked: Use alternative JRE
unchecked: Enable capturing from snapshots

Before launch
checked: Make
unchecked: 4 other checkboxes


Anything else I'm missing?


Error:

/usr/lib/jvm/java-7-oracle/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:41194,suspend=y,server=n -ea -Xmx1G -XX:MaxPermSize=512M -Dsun.io.useCanonCaches=false -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/lib/catalina.jar:/usr/local/tomcat/lib/tomcat-coyote.jar:/usr/lib/jvm/java-7-oracle/lib/tools.jar:/home/ldashevs/Labkey/idea-IU-117.117/lib/idea_rt.jar:./bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/ -Dcatalina.home=/usr/local/tomcat/ -Djava.io.tmpdir=/usr/local/tomcat/temp -Ddevmode=true -javaagent:/home/ldashevs/Labkey/idea-IU-117.117/plugins/Groovy/lib/agent/gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start
Connected to the target VM, address: '127.0.0.1:41194', transport: 'socket'
Aug 26, 2013 6:09:13 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home/ldashevs/Labkey/idea-IU-117.117/bin:/home/ldashevs/Programs/j3d/lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Aug 26, 2013 6:09:13 PM org.apache.tomcat.util.digester.Digester startElement
SEVERE: Begin event threw error
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
    at java.lang.Class.privateGetPublicMethods(Class.java:2571)
    at java.lang.Class.getMethods(Class.java:1429)
    at org.apache.tomcat.util.IntrospectionUtils.findMethods(IntrospectionUtils.java:841)
    at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:271)
    at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:262)
    at org.apache.catalina.startup.SetAllPropertiesRule.begin(SetAllPropertiesRule.java:66)
    at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1303)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 41 more

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
    at java.lang.Class.privateGetPublicMethods(Class.java:2571)
    at java.lang.Class.getMethods(Class.java:1429)
    at org.apache.tomcat.util.IntrospectionUtils.findMethods(IntrospectionUtils.java:841)
    at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:271)
    at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:262)
    at org.apache.catalina.startup.SetAllPropertiesRule.begin(SetAllPropertiesRule.java:66)
    at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1303)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
    ... 6 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 41 more
Disconnected from the target VM, address: '127.0.0.1:41194', transport: 'socket'

Process finished with exit code 0
jeckels2013-08-27 09:22Jon (LabKey DevOps)2018-11-16 23:23Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

You shouldn't need to manually add tomcat-coyote.jar to your classpath. As you suggest, it seems like there's something systematic problem that's preventing the various JAR files in /usr/local/tomcat/lib from being automatically added to your classpath.

My debug configuration has only two JARs - bootstrap.jar and idea_rt.jar. I'm not confident that it would fix the problem, but you could try removing the others from yours. It may be confusing the VM about what classloader it should be using to load the other JARs in ./lib.

Thanks,
Josh
jeckels2013-08-27 13:16jeckels2013-08-27 13:16Running Debug in IntelliJRunning Debug in IntelliJ TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Great, glad it's working for you now!

My usual approach is to just crack open the individual .jar files (which are really just .zip files as you may already know) and check for the class file. I tend to use WinZip, but any tool that can operate on .zip files should work. I have a pretty good idea of how Tomcat divides up its .jar files, so it's quick as a search process.

Thanks,
Josh
Will Holtz2016-03-01 16:55Will Holtz2016-03-01 16:55Rserve with assay transformation scriptsRserve with assay transformation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the reply. Sounds like I am out of luck. I am a little confused by your comment about asynchronous vs synchronous scripts. Assay transformation scripts can optionally be set to 'Import in Background'. I don't use this option and therefore my assay transformation scripts run in what I would call a synchronous mode.

-Will
Jon (LabKey DevOps)2016-03-01 16:18Jon (LabKey DevOps)2016-03-01 16:18Rserve with assay transformation scriptsRserve with assay transformation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Sorry for the late response. I was informed that when LabKey was made to work with Rserve, running transform scripts along with it wasn't planned initially. So this unfortunately isn't supported right now and would require a major feature enhancement to allow this to work since the transform scripts run asynchronously rather than synchronously (which is what Rserve expects).

This however leaves you with only two options:

A. Use transform scripts, but don't use Rserve

or

B. Use Rserve, but don't use transform scripts

Regards,

Jon
Jon (LabKey DevOps)2016-01-27 21:15Jon (LabKey DevOps)2018-11-16 23:24Rserve Vagrant host fails to provisionRserve Vagrant host fails to provision TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for letting us know! I've made a bug on our end for this fix!

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=25485

Regards,

Jon
Jon (LabKey DevOps)2016-02-28 18:47Jon (LabKey DevOps)2016-02-28 18:47Rserve Vagrant host fails to provisionRserve Vagrant host fails to provision TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

This fix is going to be available in 16.1 of LabKey, but you can also get it from our Trunk build as well (r42143)

Regards,

Jon
Jon (LabKey DevOps)2016-02-19 15:55Jon (LabKey DevOps)2018-11-16 23:24Rserve fails when executing report from module with space in pathRserve fails when executing report from module with space in path TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I've setup a bug on this for development review. We'll follow up with you once we get an update.

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=25688

Regards,

Jon
Jon (LabKey DevOps)2016-02-28 18:46Jon (LabKey DevOps)2016-02-28 18:46Rserve fails when executing report from module with space in pathRserve fails when executing report from module with space in path TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

We've introduced an update in the trunk build (r42511) and this fix will be available in the upcoming 16.1 release next month.

Regards,

Jon
Karl Lum2010-04-15 14:10Jon (LabKey DevOps)2018-11-16 23:24R scripts and site wide variables?R scripts and site wide variables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I think the approach would be to consolidate shared code into a script and then include that script in any dependent code.

Unfortunately the shared script needs to live in the same folder as the dependent script and there isn't a way currently to prevent the shared script from appearing in the query view menu.

We can perhaps look into a way for module authors to use shared scripts but control their visibility in the UI.

I also discovered another problem with shared scripts in file based modules that would prevent their use, so I'll need to fix this for 10.2 before you can take advantage of them. I've opened the following but to track: https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10077
Ben Bimber2010-04-15 14:18Jon (LabKey DevOps)2018-11-16 23:23R scripts and site wide variables?R scripts and site wide variables? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, thanks. to get around the issue of making R views that do not show up to users, i have created a dummy query called private.sql. i put my private R scripts under this. i think i should be able to call these from other R scripts without users bumping into them, right?

the reason i asked about XML wrappers (another thread) for file-based R scripts was to set these sort of params: visibility, whether it runs as a pipeline, etc.
Karl Lum2010-04-15 16:30Jon (LabKey DevOps)2018-11-16 23:24R scripts and site wide variables?R scripts and site wide variables? TEXT_WITH_LINKSClosed     LabKey Support Forum
That sounds like it should work, hopefully you don't run into the problem outlined in 10077. Let me know if you run into issues and I can help troubleshoot or find a workaround.
Brian Connolly2010-11-22 09:41Jon (LabKey DevOps)2018-11-16 23:23R script memory errorR script memory error TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

Are you able to successfully run this R script outside of the pipeline (ie can you log on to your server, run R and then execute the script? ).

Thank you,

Brian
Ben Bimber2010-11-22 10:09Jon (LabKey DevOps)2018-11-16 23:24R script memory errorR script memory error TEXT_WITH_LINKSClosed     LabKey Support Forum
hi brian,

i get the same error outside of the pipeline. it's also specific to xnight, not my laptop.
Brian Connolly2010-11-22 10:19Jon (LabKey DevOps)2018-11-16 23:24R script memory errorR script memory error TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

This is most likely a problem with R. I would see if you are running the same versions of R and any libraries on xnight as on your laptop. If not, it might be a good idea to upgrade the R or it's libraries on xnight. If you are, then the R mailing lists might be the best next step.

Thank you,

Brian
Ben Bimber2010-12-30 19:53Jon (LabKey DevOps)2018-11-16 23:24R script memory errorR script memory error TEXT_WITH_LINKSClosed     LabKey Support Forum
I did some reading and learned that R was not running in 64-bit mode through labkey. I went into the admin console, and altered the R engine's command, adding:

--arch=x86_64

this will cause R to run in 64-bit mode and seems to fix that memory issue.
Leo Dashevskiy2012-12-20 11:09Leo Dashevskiy2012-12-20 11:09R report web part errorR report web part error TEXT_WITH_LINKSClosed     LabKey Support Forum
I see, ok, thanks.
Dax2012-12-19 22:55Jon (LabKey DevOps)2018-11-16 23:24R report web part errorR report web part error TEXT_WITH_LINKSClosed     LabKey Support Forum
This "error executing command" error is returned whenever Labkey encounters any script engine error.
Jon (LabKey DevOps)2021-06-03 17:04Jon (LabKey DevOps)2021-06-03 17:04R Reports - R markdown- knitr pandoc - The input must be a UTF-8 encoded text.R Reports - R markdown- knitr pandoc - The input must be a UTF-8 encoded text. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Hilaria,

This looks like a Pandoc issue rather than an R issue.

Do you know what version of Pandoc you're running?

An initial search shows this very problem with pandoc here:

https://stackoverflow.com/questions/47954642/pandoc-complains-about-utf-8-decoding-error-even-if-my-file-is-valid-utf-8-encod

Also, because you said this is a new server, did you remember to copy all of your old R packages over, such as the utf8 package and other ones?

https://cran.r-project.org/web/packages/utf8/utf8.pdf

Maybe your new server isn't fully equipped as your old one due to a package discrepancy?

Regards,

Jon
hilariagrieve2021-05-19 08:20hilariagrieve2021-05-19 08:20R Reports - R markdown- knitr pandoc - The input must be a UTF-8 encoded text.R Reports - R markdown- knitr pandoc - The input must be a UTF-8 encoded text. TEXT_WITH_LINKSActive     LabKey Support Forum
This is the script

---
title: "Informe General"
output: html_document
---


```{r setup, echo=FALSE, cache=TRUE, results='hide', warning=FALSE, comment=FALSE, warning=FALSE, message=FALSE, comments = ""}
library(RCurl);
library(Rlabkey);
labkey.setCurlOptions(ssl_verifypeer=FALSE, ssl_verifyhost=FALSE);
library(knitr);
knitr::opts_chunk$set(echo=FALSE, cache=FALSE, comment=FALSE, comments ="", warning=FALSE, eval = TRUE, encoding = "native.enc")
#knitr::opts_chunk$get();
knitr::pandoc('script.Rmd', format='html')
#knitr::pandoc('script.Rmd', format='latex', config="Script.pdf")
```

```{r results = 'asis', echo=FALSE}
library(xtable);
library(stringr);
labkey.data <- read.table("${input_data}", header=TRUE, sep="\t", fileEncoding = "UTF-8", fill = TRUE)
#names(labkey.data);
#kable(head(labkey.data),format = "markdown", caption = "Informe",digits = getOption("digits"), row.names = NA , col.names = NA, align="l", format.args = list(), booktabs=TRUE, longtable=TRUE, escape = TRUE, encoding = 'UTF-8')
marcia hon2018-02-27 10:48Jon (LabKey DevOps)2018-11-16 23:23R-Report - SavingR-Report - Saving TEXT_WITH_LINKSClosed     LabKey Support Forum
I found the solution.

Change : cache=TRUE to cache=FALSE

Thanks!
marcia hon2018-02-20 12:26Jon (LabKey DevOps)2018-11-16 23:23R Report - How to use variablesR Report - How to use variables TEXT_WITH_LINKSClosed     LabKey Support Forum
It's okay, I figured it out:


<b>Interpretation:</b>
<center>
```{r, echo=FALSE}
part <- labkey.data$participantid;
dna <- labkey.data$dnaconcentration;
```
<table width="70%" border="1" style="border-collapse: collapse;">
   <tr>
       <td align="center">
           <b>Gene Variant</b>
       </td>
       <td align="center">
           <b>Genotype</b>
       </td>
   </tr>
   <tr>
       <td align="center">
           <b>
            `r part[1]`
        </b>
       </td>
       <td align="center">
           <b>
            `r dna[1]`
        </b>
       </td>
   </tr>
   <tr>
       <td align="center">
           <b>
            `r part[2]`
        </b>
       </td>
       <td align="center">
           <b>
            `r dna[2]`
        </b>
       </td>
   </tr>
</table>
</center>
marcia hon2018-06-08 10:45Jon (LabKey DevOps)2018-11-16 23:24R Report ErrorR Report Error TEXT_WITH_LINKSClosed     LabKey Support Forum
I removed it, and the error has changed:


Error executing command
javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).


processing file: /usr/local/apache-tomcat-8.0.38/temp/reports_temp/.../Report_db_46/cached/script.Rmd

  |
  | | 0%
  |
  |......... | 14%
label: labkey (with options)
List of 1
 $ echo: logi FALSE


  |
  |................... | 29%
label: setup (with options)
List of 8
 $ echo : logi FALSE
 $ cache : logi TRUE
 $ results : chr "hide"
 $ warning : logi FALSE
 $ comment : logi FALSE
 $ message : logi FALSE
 $ encoding: chr "UTF-8"
 $ comments: chr ""


  |
  |............................ | 43%
  ordinary text without R code


  |
  |..................................... | 57%
label: unnamed-chunk-1 (with options)
List of 8
 $ echo : logi FALSE
 $ cache : logi FALSE
 $ results : chr "hide"
 $ warning : logi FALSE
 $ comment : logi FALSE
 $ message : logi FALSE
 $ encoding: chr "UTF-8"
 $ comments: chr ""


  |
  |.............................................. | 71%
   inline R code fragments

Quitting from lines 38-95 (/usr/local/apache-tomcat-8.0.38/temp/reports_temp/.../Report_db_46/cached/script.Rmd)
Error in eval(expr, envir, enclos) : object 'labkey.data' not found
Calls: knit2html ... inline_exec -> hook_eval -> withVisible -> eval -> eval
In addition: Warning message:
In readLines(con) :
  incomplete final line found on '/usr/local/apache-tomcat-8.0.38/temp/reports_temp/.../Report_db_46/cached/script.Rmd'

Execution halted
Jon (LabKey DevOps)2018-06-22 18:58Jon (LabKey DevOps)2018-06-22 18:58R Report ErrorR Report Error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

We unfortunately are unable to troubleshoot your R script fully due to our Support Guidelines as mentioned here:

https://www.labkey.org/home/Support/project-begin.view?

What I would recommend doing is to try and break down your script into smaller functional pieces and systematically start combining them until you have a fully functioning script.

Regards,

Jon
dabaker32018-11-02 06:32dabaker32018-11-02 06:32R Report ErrorR Report Error TEXT_WITH_LINKSClosed     LabKey Support Forum
I have experienced a similar error message to : Error in eval(expr, envir, enclos) : object 'labkey.data' not found

This happened to me when a data grid associated with the report had no data selected, or the selected data has since been deleted. Try selecting data and see if the error resolves.
Jon (LabKey DevOps)2019-06-18 20:49Jon (LabKey DevOps)2019-06-18 20:49Row not updating using updateRows()Row not updating using updateRows() TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Although we are not able to debug your code, I can tell you for certain that your LABKEY.Query.updateRows() call is correct based on our documentation.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.updateRows

If you are receiving a message stating that "Existing Row Not Found", then that row definitely does not exist. I would recommend you access the list in question and be sure to expose all of the columns in your grid view, including the Key column and confirm what row values you have for the Key column. It is likely that this particular row was deleted and if you had tried to re-input the row and your list is setup as an Auto-Incrementing Integer, the Key column value would be different for this newly re-entered row.

Regards,

Jon
Nick Kerr2014-05-01 13:16Jon (LabKey DevOps)2018-11-16 23:24RowExpander in Ext4 grid not working correctlyRowExpander in Ext4 grid not working correctly TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi James,

As we just privately spoke about, a possible solution is to not extend 'Ext.grid.Panel' but rather create an 'Ext.grid.Panel' instance within your component/view/container. This way the plugins can be put on the grid instance without having to be a part of the definition.

Let me know if that works.

Thanks,
Nick
jconnelly2014-05-03 07:08Jon (LabKey DevOps)2018-11-16 23:24RowExpander in Ext4 grid not working correctlyRowExpander in Ext4 grid not working correctly TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Nick,
  I did do that - did an Ext4.create('Ext.grid.Panel') from the container, but still got the same error. I took it one step further by catching the beforerender event from the container, and then creating the panel and adding it to the panel at that point. Plugin still not working. Very odd.
                      Jim
jconnelly2014-05-03 13:54Jon (LabKey DevOps)2018-11-16 23:24RowExpander in Ext4 grid not working correctlyRowExpander in Ext4 grid not working correctly TEXT_WITH_LINKSClosed     LabKey Support Forum
Actually, this would be very easy to reproduce. Make simple grid with a simple model. Add the plugin, you will see the issue.
jconnelly2014-05-07 07:15Jon (LabKey DevOps)2018-11-16 23:24RowExpander in Ext4 grid not working correctlyRowExpander in Ext4 grid not working correctly TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick,
  The patch for the Ext 4.2.1 sandbox worked brilliantly. Thanks.
Will Holtz2016-03-03 09:28Will Holtz2016-03-03 09:28Rounding weirdness with scientific notation formatStringRounding weirdness with scientific notation formatString TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the reply Jon. I thought 5 digits of decimal precision was well within the capabilities of a 32-bit float. But I agree that this is a java issue and not Labkey.

-Will
Jon (LabKey DevOps)2016-03-02 18:31Jon (LabKey DevOps)2018-11-16 23:24Rounding weirdness with scientific notation formatStringRounding weirdness with scientific notation formatString TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

It looks like the number would have to stretch past 5 digits for that number 6 to appear. It's almost like rather than rounding up if you're number to the right is 5 and above, it appears to require two numbers to the right since the format 555.6E-3 appears if you make the original number at 0.555551 through 0.555559

Let me verify whether this rounding is intentional by LabKey or by the DB.

Regards,

Jon
Jon (LabKey DevOps)2016-03-02 22:22Jon (LabKey DevOps)2016-03-02 22:22Rounding weirdness with scientific notation formatStringRounding weirdness with scientific notation formatString TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

This definitely isn't a LabKey thing that is causing the unusual rounding, but something that is tied to Java.

https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

I tried to use CAST to have those numbers use DECIMAL, but nothing changed. However, floating point numbers are not exact representations of decimal numbers, so you'll always get this kind of odd behavior, regardless of programming languages.

Regards,

Jon
marcia hon2018-02-12 07:19marcia hon2018-02-12 07:19RLabkey - Upload Taking a Long TimeRLabkey - Upload Taking a Long Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you!
Jon (LabKey DevOps)2018-02-10 00:15Jon (LabKey DevOps)2018-02-10 00:15RLabkey - Upload Taking a Long TimeRLabkey - Upload Taking a Long Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Fifty million records is a lot of data to insert into any database in a single go, so your database and server should be setup to have a lot of RAM, CPU power, and memory to handle that.

If you are using the Rlabkey API, you should remember to use the labkey.importRows() function rather than the labkey.insertRows() function since you want the system to try and have it do a bulk import of the data rather than individual rows one at a time. See https://cran.r-project.org/web/packages/Rlabkey/Rlabkey.pdf for more details on the two functions.

Regards,

Jon
Mike Raboin2015-07-07 10:15Mike Raboin2015-07-07 10:15Rlabkey selectRows function problemRlabkey selectRows function problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Based on the documentation that was included with the Rlabkey package, I couldn't find the function I needed to use to set the RCurl options like "sslversion". The problem seems to be that I was using an older version of R that was installed some time ago. Because of that, R was installing version 2.1.123 of the Rlabkey package when I ran install.packages. From the change log I see that this version doesn't include the labkey.setCurlOptions() function.

Now that I've upgraded R and Rlabkey, the problem seems to be resolved.

Thanks,
Mike
Jon (LabKey DevOps)2015-06-23 15:34Jon (LabKey DevOps)2018-11-16 23:24Rlabkey selectRows function problemRlabkey selectRows function problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mike,

There have been some changes to R when it comes to SSL compatibility:

http://cran.r-project.org/web/packages/Rlabkey/NEWS

Regarding your RCurl call itself, have you made sure you've done the following?

1.) Set the RCurl call to use "sslversion=3L"
2.) Set the RCurl call to also use "ssl.verifypeer=TRUE"

Give this a try and let us know how it goes.

Regards,

Jon
Steve2016-09-16 10:48Jon (LabKey DevOps)2018-11-16 23:24rlabkey - selectRows - "Flag" field comes back with strange valuesrlabkey - selectRows - "Flag" field comes back with strange values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Hector:

I don't know off the top of my head why the 'flag' column has lsid values -- I'll look into this.
But you might try working with 'flag_comment' column as an alternative. It is a string column, which defaults to the empty string, unless you actually flag a record and add some text.

- Steve
Jon (LabKey DevOps)2016-09-20 13:49Jon (LabKey DevOps)2018-11-16 23:23rlabkey - selectRows - "Flag" field comes back with strange valuesrlabkey - selectRows - "Flag" field comes back with strange values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Hector,

The Flag value is tied to the LSID so it can identify itself to the sample set row in question.

The way it identifies itself as being flagged (turned on) vs unflagged (turned off) is whether there is a comment made or not.

If you run your selectRows query to look at 'Flag/Comment' on the Sample Set table and specifically look for an empty string, that will show you the Sample Sets that are not flagged.

Does that make sense?

Regards,

Jon
Leo Dashevskiy2012-08-27 18:29Leo Dashevskiy2012-08-27 18:29Rlabkey performanceRlabkey performance TEXT_WITH_LINKSClosed     LabKey Support Forum
I see, ok, well thanks for the informative explanation, Peter.
If it becomes an issue for us, I guess, we will have to rewrite the 'R to JSON' part in C as well...
Brian Connolly2012-08-14 16:52Jon (LabKey DevOps)2018-11-16 23:24Rlabkey performanceRlabkey performance TEXT_WITH_LINKSClosed     LabKey Support Forum
Leo,
I would expect better performance from the database server running on a modern desktop.

My assumption is that you are running on a PostgreSQL database server that you installed on your local machine. If so, did you change any of the configuration settings (in the file postgresql.conf) after you installed. If not, then that is your problem (the default configuration of PG is designed to work on a server with only 256MB of memory).

Thanks

Brian
Matthew Bellew2012-08-14 16:58Jon (LabKey DevOps)2018-11-16 23:24Rlabkey performanceRlabkey performance TEXT_WITH_LINKSClosed     LabKey Support Forum
Is this being inserted one row at a time (15000 api calls) or as one large patch (1 call with 15000 rows)?

It would be interesting to see how long it takes to import the same data formatted as tab-separated file.
Leo Dashevskiy2012-08-14 18:18Jon (LabKey DevOps)2018-11-16 23:24Rlabkey performanceRlabkey performance TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for your responses.

Matthew, we do a one API call to insertRows() with the argument being a data.frame with 15K rows - this usually is the correct approach to avoid overhead associated with each function call. Is it not the case here?

Brian, I am running on PostgreSQL, yes, sorry forgot to mention that. And indeed it looks like I have not tweaked manually (m)any of the settings in the postgresql.conf file. Am I correct in assuming to look at the "RESOURCE USAGE" section? Any quick fixes or other suggestions from the pro about modifying these? (FYI, I currently have 8GB of RAM.)

Thanks.
Brian Connolly2012-08-14 18:49Jon (LabKey DevOps)2018-11-16 23:24Rlabkey performanceRlabkey performance TEXT_WITH_LINKSClosed     LabKey Support Forum
Leo,

If you were running just a LabKey Server on your workstation and not using it as a desktop too, I would recommend the following configuring the following setting

- shared_buffers = 25% of system memory up to max of 2GB
- work_mem = 10MB
- maintenance_work_mem = 1024MB
- effective_cache_size = 75% of system memory
- wal_buffers = 20MB
- checkpoint_segments = 15
- checkpoint_timeout = 15min
- enable_material = off
- random_page_cost = 1.5
- join_collapse_limit = 10
- track_counts = 1
- autovacuum = on


Now for a workstation, like yours, where you will be doing many other things on it, you want to balance performance with resource usage. I recommend the following settings

- shared_buffers = 512MB
- work_mem = 10MB
- maintenance_work_mem = 256MB
- effective_cache_size = 75% of system memory
- wal_buffers = 4MB
- checkpoint_segments = 15
- [comment this out] checkpoint_timeout = 15min
- enable_material = off
- random_page_cost = 1.5
- join_collapse_limit = 10
- track_counts = 1
- autovacuum = on

By default, most of these settings are commented out in the file postgresql.conf. To change the values, go to the file and uncomment the setting and change the value. Once you have made the changes, you will need to restart the postgresql server to pick up the changes.

Also, if your workstation is running linux, you may need to set the kernel's Shared Memory setting. If you are on linux, and the postgresql server fails to start, after making these changes, then respond to this message and I will send you the instructions for increasing the Shared Memory settings on your work station.

-Brian
Leo Dashevskiy2012-08-14 20:56Jon (LabKey DevOps)2018-11-16 23:24Rlabkey performanceRlabkey performance TEXT_WITH_LINKSClosed     LabKey Support Forum
All right, Brian, I followed your recommendations, by tweaking the parameters of the db. As you anticipated, the shmmax param got exceeded. I changed that param to 1GB in the /etc/sysctl.conf file - hopefully it will be loaded properly on next reboot, do you know anything about that (I'm running Ubuntu 10 or 11)?
And then I managed to restart the db.

Tomorrow, when my colleague is back, we will test out the new performance and let you know, how it is.
Leo Dashevskiy2012-08-15 13:05Jon (LabKey DevOps)2018-11-16 23:23Rlabkey performanceRlabkey performance TEXT_WITH_LINKSClosed     LabKey Support Forum
Update:
After running the insert query my colleague says that he did not feel a noticeable difference. I saw it first hand now, it may not be 5 minutes, it may take like a minute of so, but I guess our expectations were for it to be under 10 seconds...

I will also try running it from my own machine and then I will also try eliminating the primary/foreign key constraints (for experimentation sake)
Peter2012-08-27 16:52Jon (LabKey DevOps)2018-11-16 23:24Rlabkey performanceRlabkey performance TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo, I worked on the RLabkey project most recently, and I think what is going on here is that the rjson package is pretty inefficient in the functions that convert from R objects to JSON data packets on the wire ( an insert scenario). It used to be equally slow in converting from JSON to R objects (select scenario) until Martin Morgan rewrote the fromJSON function in C and it sped up by a 1000x or so.
Jon (LabKey DevOps)2017-07-20 11:59Jon (LabKey DevOps)2018-11-16 23:23Rlabkey package saveBatch command causing fatal errorRlabkey package saveBatch command causing fatal error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi William,

You indicated that you saw a fatal error in your subject line.

Can you send that error to us? That would help with the investigation.

Regards,

Jon
Leo Dashevskiy2012-08-08 14:11Leo Dashevskiy2012-08-08 14:11Rlabkey package (potentially unorthodox) usageRlabkey package (potentially unorthodox) usage TEXT_WITH_LINKSClosed     LabKey Support Forum
Seems to work, thanks!
Leo Dashevskiy2013-03-30 21:44Leo Dashevskiy2013-03-30 21:44Rlabkey package (potentially unorthodox) usageRlabkey package (potentially unorthodox) usage TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks Adam, that's a solution...
adam2012-08-07 16:02Jon (LabKey DevOps)2018-11-16 23:24Rlabkey package (potentially unorthodox) usageRlabkey package (potentially unorthodox) usage TEXT_WITH_LINKSClosed     LabKey Support Forum
Unorthodox, perhaps, but this should work fine, assuming you're "kicking off" the R script by rendering an R view. The R script is passed context from the server, including the current user's LabKey session id. Rlabkey calls should use this session id to authenticate back to the server.

Adam
Leo Dashevskiy2012-08-07 16:50Jon (LabKey DevOps)2018-11-16 23:24Rlabkey package (potentially unorthodox) usageRlabkey package (potentially unorthodox) usage TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Adam!

That's promising.

But I'm looking at the list of supported methods here: http://cran.r-project.org/web/packages/Rlabkey/Rlabkey.pdf

and have successfully used the getSession() method, which relies on the above mentioned .netrc file to work, and I have not seen in its signature any mentioning of the session id. Is it through a different mechanism?

The R script is indeed passed the context from the server, part of which are:

labkey.sessionCookieContents : chr "3F074B27BA3E82380731988BCAEE0D56"

and

labkey.sessionCookieName : chr "JSESSIONID"

Is the first item, what you refer to as the current user's Labkey session id?

Could you, please, elaborate on exactly how does one make Rlabkey calls using this session id to authenticate to the server?

Thanks.
adam2012-08-07 17:13Jon (LabKey DevOps)2018-11-16 23:24Rlabkey package (potentially unorthodox) usageRlabkey package (potentially unorthodox) usage TEXT_WITH_LINKSClosed     LabKey Support Forum
It's magic... you shouldn't have to do anything (i.e., don't use getSession()). When Rlabkey sees the session information it passes it back as an HTTP header for all API calls coming from that R session. The server accepts this just as it would a valid JSESSIONID parameter or cookie coming from a browser.

I haven't walked through the Rlabkey code recently, but a couple quick tests on labkey.org show that it's working as expected... I created a two-line R view that outputs the results of an Rlabkey select command. The report correctly renders results matching the currently logged in user's permissions. I provided no authentication context to Rlabkey... it's picking up the session information implicitly.

We don't appear to document that this mechanism exists, though.

Adam
Leo Dashevskiy2013-03-30 11:56Jon (LabKey DevOps)2018-11-16 23:24Rlabkey package (potentially unorthodox) usageRlabkey package (potentially unorthodox) usage TEXT_WITH_LINKSClosed     LabKey Support Forum
Along the same lines...

JS code kicks off an R script, which does a long-long computation, over 40 minutes. After the computation is finished, its results need to be written to a Labkey db table. But from what I understand, by that time, if the user has not browsed around on the server, then the Labkey session times out. And so the session information that the R script received from the front-end to be used by Rlabkey calls is no longer valid and the R script is not able to make any of these calls. How can one circumvent such an obstacle?
I immediately see 2 approaches:
one way would be to try and pass the user log in credentials, but I am not sure, where JS side would get them from... other - to somewhere set the server time-out to a larger value, how/where can one do that?

Your thoughts and comments are appreciated.

Thanks.
-Leo
adam2013-03-30 12:09Jon (LabKey DevOps)2018-11-16 23:24Rlabkey package (potentially unorthodox) usageRlabkey package (potentially unorthodox) usage TEXT_WITH_LINKSClosed     LabKey Support Forum
The Tomcat default session timeout is 30 minutes. You can set a longer timeout by changing the <session-timeout> setting in your web.xml file.

https://www.labkey.org/wiki/home/Documentation/page.view?name=configTomcat
jeckels2012-03-12 13:21Jon (LabKey DevOps)2018-11-16 23:23Rlabkey "Moved Temporarily" troublesRlabkey "Moved Temporarily" troubles TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michael,

Do both machines have comparable saved credentials in their .netrc or _netrc files? Perhaps this is related to permissions and/or authentication.

https://www.labkey.org/wiki/home/Documentation/page.view?name=rAPI

Is the script just making a single call to labkey.selectRows(), or is it performing other requests?

Have you checked the access logs for the web server? It might provide useful information about differences between the original request URL, or possibly what the redirect target is, assuming the machine where it's working is successfully following a redirect.

Thanks,
Josh
Jon (LabKey DevOps)2018-01-15 15:45Jon (LabKey DevOps)2018-11-16 23:24RLabkey makeFilter with filters as variable?RLabkey makeFilter with filters as variable? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Are you using "EQUALS" or "EQUAL"?

Using the export option on a grid to get the R code, the filter normally appears like this:

    colFilter=makeFilter(c("myColumn", "EQUAL", "value1"),c("myColumn2", "CONTAINS", "value2")),

For example:

labkey.data <- labkey.selectRows(
    baseUrl="http://localhost:8080/labkey",
    folderPath="/myProject",
    schemaName="lists",
    queryName="myList",
    viewName="",
    colFilter=makeFilter(c("myColumn", "EQUAL", "value`"),c("myColumn2", "CONTAINS", "value2")),
    containerFilter=NULL
)

I tested this out on my end using the following code which worked for me:

library(Rlabkey)

myFilter <- (c("firstField", "EQUAL", "value1"),c("secondField", "EQUAL", "value2"))

labkey.data <- labkey.selectRows(
    baseUrl="http://localhost:8080/labkey",
    folderPath="/myProject",
    schemaName="lists",
    queryName="myList",
    viewName="",
    colFilter=makeFilter(myFilter),
    containerFilter=NULL
)

labkey.data


Regards,

Jon
Ben Bimber2018-01-15 15:55Jon (LabKey DevOps)2018-11-16 23:24RLabkey makeFilter with filters as variable?RLabkey makeFilter with filters as variable? TEXT_WITH_LINKSClosed     LabKey Support Forum
HI Jon

Yes, i mis-typed EQUALS/EQUAL, though that's not the problem here. The example you added is exactly like what I posted at the start of the thread:

makeFilter(c("myColumn", "EQUAL", "value1"), c("myColumn2", "CONTAINS", "value2")),

That is calling makeFilter with a list of vectors, each of which represents a filter. I'd like to build up this list of filters dynamically in code before calling makeFilter(). More like the following (which does not work):

#start with some default filters
filters <- list(
     c('myColumn', EQUAL,'value1'),
     c('myColumn2',EQUAL,'value2)
)

#some event in code determines whether to add more filters
if (something == true){
  filters <- append(filters, c('myColumn3',EQUAL,'value3))
}

#now pass my dynamically created list to makeFilter()
makeFilter(filters)

There must be a way to do this. As i posed above, in Rlabkey, makeFilter uses '...', R's elipsis argument, which seems vaguely like java varargs; however, I cant figure out a way to pass in a datatype to makeFilter() that will work. I basically need a vector of vectors, though i cant figure out how to get R to generate that.
Jon (LabKey DevOps)2018-01-15 16:09Jon (LabKey DevOps)2018-11-16 23:23RLabkey makeFilter with filters as variable?RLabkey makeFilter with filters as variable? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for confirming Ben.

I've pinged Cory to review this and respond on the post. It looks like what you're doing should work, but I'm certain we're just missing something here.

Thanks,

Jon
cnathe2018-01-15 18:53Jon (LabKey DevOps)2018-11-16 23:24RLabkey makeFilter with filters as variable?RLabkey makeFilter with filters as variable? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,
Looking at the code for the Rlabkey makeFilter.R source, when you pass in multiple c() vectors as args to makeFilter, we pass those long to rbind(...). So we row bind the vectors together to get a single object that we then iterate over. So the following produce equivalent results

1. calling makeFilter() directly with two vectors
makeFilter(c("ParticipantId", "EQUAL", "101"), c("Lymphs", "EQUAL", "1300"))

2. building up a single object using rbind and then passing that to makeFilter()
filters = c("ParticipantId", "EQUAL", "101")
filters = rbind(filters,c("Lymphs", "EQUAL", "1300"))
makeFilter(filters)

So you should be able to do the same as #2 and build up your filters object in code.
Let me know if that doesn't help and I can look into it more.
Thanks,
Cory
Ben Bimber2018-01-15 19:44Jon (LabKey DevOps)2018-11-16 23:24RLabkey makeFilter with filters as variable?RLabkey makeFilter with filters as variable? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi cory,

are you sure about that example? from what i can tell, R converts the rbind of the two vectors into a list. at least from everything i tried, when you pass a list to makeFilter you either get an error or filters not being applied (because it was being interpreted as a single long vector). I was able to find:
do.call(makeFilter, argList). from the earlier example, it's sometihng like:


filters <- list(
     c('myColumn', EQUAL,'value1'),
     c('myColumn2',EQUAL,'value2)
)
filter <- do.call(makeFilter, filters)

and this seems to work.
cnathe2018-01-15 19:55Jon (LabKey DevOps)2018-11-16 23:23RLabkey makeFilter with filters as variable?RLabkey makeFilter with filters as variable? TEXT_WITH_LINKSClosed     LabKey Support Forum
From my local testing using R version 3.4.2 with Rlabkey version 2.1.136, querying against the Demo Study on labkey.org gives back the same 2 rows for both of the following code examples:

1. code from the export to R script from the LabKey dataset grid view:

library(Rlabkey)
labkey.data <- labkey.selectRows(
    baseUrl="https://www.labkey.org",
    folderPath="/home/Demos/Study/demo",
    schemaName="study",
    queryName="Demographics",
    colFilter=makeFilter(c("Country/CountryName", "EQUAL", "USA"),c("Gender/GenderName", "EQUAL", "m"),c("Language/LanguageId", "EQUAL", "French"))
)

2. code from #1 modified to generate the filters object using rbind

library(Rlabkey)
filters = c("Country/CountryName", "EQUAL", "USA")
filters = rbind(filters, c("Gender/GenderName", "EQUAL", "m"))
filters = rbind(filters, c("Language/LanguageId", "EQUAL", "French"))
labkey.data <- labkey.selectRows(
    baseUrl="https://www.labkey.org",
    folderPath="/home/Demos/Study/demo",
    schemaName="study",
    queryName="Demographics",
    colFilter=makeFilter(filters)
)
Ben Bimber2018-01-15 20:14Jon (LabKey DevOps)2018-11-16 23:24RLabkey makeFilter with filters as variable?RLabkey makeFilter with filters as variable? TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, that seems right. I dont understand exactly what kind of R datatype rbind is giving us, but it does work. your second solution is probably easiest though this seems to give the same result:

filters = list(
  c("Country/CountryName", "EQUAL", "USA"),
  c("Gender/GenderName", "EQUAL", "m")
)
filters = append(filters, list(c("Language/LanguageId", "EQUAL", "French")))

labkey.data2 <- labkey.selectRows(
  baseUrl="https://www.labkey.org",
  folderPath="/home/Demos/Study/demo",
  schemaName="study",
  queryName="Demographics",
  colFilter=do.call(makeFilter, filters)
)
print(nrow(labkey.data2))

thanks for the help.
Jon (LabKey DevOps)2018-08-20 14:31Jon (LabKey DevOps)2018-11-16 23:24RLabkey: makeFilter on non-existant column returns all valuesRLabkey: makeFilter on non-existant column returns all values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for bringing this to our attention. Let me get this checked and get back to you.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2018-06-01 22:48Jon (LabKey DevOps)2018-11-16 23:24Rlabkey: labkey.selectRows with colSelect=c("*") gives errorRlabkey: labkey.selectRows with colSelect=c("*") gives error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I can't seem to reproduce the issue you described.

When I use the same code locally on 18.1 and the current trunk build, the Rlabkey selectRows query runs without any problem.

What version of the Rlabkey package are you running? Have you tried upgrading the package recently?

Regards,

Jon
Will Holtz2018-06-02 21:25Jon (LabKey DevOps)2018-11-16 23:24Rlabkey: labkey.selectRows with colSelect=c("*") gives errorRlabkey: labkey.selectRows with colSelect=c("*") gives error TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry that I forgot to include the Rlabkey version. I am on Rlabkey v2.2.1, which I believe is the most recent release.

And I am on Labkey r57156, which I believe is the 18.1 release.

-Will
cnathe2018-06-05 08:10Jon (LabKey DevOps)2018-11-16 23:24Rlabkey: labkey.selectRows with colSelect=c("*") gives errorRlabkey: labkey.selectRows with colSelect=c("*") gives error TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you for the bug report, Will. It does look like there was a regression in the labkey.selectRows() API support for colSelect=c(*). I fixed the issue and the updated Rlabkey package will be posted to CRAN soon, but in the meantime, you can use the attached.
Thanks,
Cory
Will Holtz2018-06-05 10:30Jon (LabKey DevOps)2018-11-16 23:23Rlabkey: labkey.selectRows with colSelect=c("*") gives errorRlabkey: labkey.selectRows with colSelect=c("*") gives error TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the quick fix!

-Will
Jon (LabKey DevOps)2016-11-07 13:51Jon (LabKey DevOps)2018-11-16 23:24Rlabkey HTTPS connectionsRlabkey HTTPS connections TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Hilaria,

The line for "machine" should be the LabKey server's address.

If you were to type in: https://10.101.136.102:443 into your browser's address bar, does it actually connect? What about http://10.101.136.102? Does that connect?

Regards,

Jon
Jon (LabKey DevOps)2018-06-29 13:47Jon (LabKey DevOps)2018-11-16 23:24Rlabkey calls from Transformation script result in 401 - User does not have permission to perform this operationRlabkey calls from Transformation script result in 401 - User does not have permission to perform this operation TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for bringing this to our attention Will.

We will be putting out the 18.2 Release of LabKey sometime mid-July along with a revised Rlabkey package on CRAN (v2.2.2)

Please let us know after your upgrade if you do re-run into this issue again.

Regards,

Jon
Jon (LabKey DevOps)2018-03-09 16:04Jon (LabKey DevOps)2018-11-16 23:24RLabkey API PerformanceRLabkey API Performance TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Have you taken the time to review our robust Support Documentation?

https://www.labkey.org/Documentation/wiki-page.view?name=default

Many of your questions can be answered in our docs and we even have videos to help you understand how to both use LabKey and understand the functionality:

https://www.labkey.org/Documentation/wiki-page.view?name=videos

For future, please do your best to consult our fantastic docs first before posting to the Community Forums.


Regarding your performance problem, it is difficult to say what the issue could possibly be. It could be how you're inserting the information (e.g. doing individual LABKEY.insertRows vs using LABKEY.importRows option to do it in bulk:
 
https://cran.r-project.org/web/packages/Rlabkey/Rlabkey.pdf

Importing directly to a database is not the same as using the LabKey platform since unlike the database, we apply additional metadata to the data that is imported/inserted into any list, dataset, assay, etc.

It could also possibly be inadequate hardware that your LabKey instance is sitting on:

https://www.labkey.org/Documentation/wiki-page.view?name=beforeInstall

It could also be how you wrote your R code as well depending on how complex the information is.

However, if it is a straight import of data, potentially you should see that same sluggishness you described if you were to import the data directly into LabKey via the UI. If you can successfully import the data in a reasonable amount of time, then I doubt it's the platform that is the issue and most likely how the R code is written.

Regards,

Jon
Leo Dashevskiy2013-09-10 18:46Jon (LabKey DevOps)2018-11-16 23:24Rlabkey and flow questionRlabkey and flow question TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey, Sasha, how about enclosing the last lookup token in quotes:

getRows(s, scobj$FCSAnalyses$'Statistic/Lymphocytes:Freq_Of_Parent')

does that work for you?

-L.
alexander karpikov2013-09-16 15:19Jon (LabKey DevOps)2018-11-16 23:24Rlabkey and flow questionRlabkey and flow question TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,
Thanks for you reply!
Yes it worked, but it gave me the same output as:
getRows(s, scobj$FCSAnalyses$Statistic)
do you know by any chance why it gives me the whole thing instead of giving only:
Lymphocytes:Freq_Of_Parent
Thank you,
Sasha.
Leo Dashevskiy2013-09-16 15:27Jon (LabKey DevOps)2018-11-16 23:24Rlabkey and flow questionRlabkey and flow question TEXT_WITH_LINKSClosed     LabKey Support Forum
Hm, I'm not sure about that one.

I personally do not use this approach with a session.

I use the other flavor of the API:

labkey.selectRows(), labkey.deleteRows(), labkey.insertRows() and labkey.executeSql() -- there you must specify the server address and the folder path with each call -- have you tried it at all, does it produce same or different results?
alexander karpikov2013-09-16 15:34Jon (LabKey DevOps)2018-11-16 23:24Rlabkey and flow questionRlabkey and flow question TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks again Leo.
I have not tried it yet but I am interested- are those Java API?
Sasha
Leo Dashevskiy2013-09-16 15:38Jon (LabKey DevOps)2018-11-16 23:24Rlabkey and flow questionRlabkey and flow question TEXT_WITH_LINKSClosed     LabKey Support Forum
No-no, those are equivalents to use in R within the Rlabkey package...
alexander karpikov2013-09-16 15:43Jon (LabKey DevOps)2018-11-16 23:24Rlabkey and flow questionRlabkey and flow question TEXT_WITH_LINKSClosed     LabKey Support Forum
Great,
I will try it and I will let you know.
Best,
Sasha
Jon (LabKey DevOps)2017-03-08 23:51Jon (LabKey DevOps)2018-11-16 23:24Rlabkey 2.1.133 failing on dates prior to 1970Rlabkey 2.1.133 failing on dates prior to 1970 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Thanks for letting us know. I've confirmed this behavior in Rlabkey 2.1.133 as well and also saw the previous version not exhibiting this behavior.

I'll get a bug created on this.

Regards,

Jon
Jon (LabKey DevOps)2017-03-09 00:01Jon (LabKey DevOps)2017-03-09 00:01Rlabkey 2.1.133 failing on dates prior to 1970Rlabkey 2.1.133 failing on dates prior to 1970 TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2017-03-14 21:10Jon (LabKey DevOps)2017-03-14 21:10Rlabkey 2.1.133 failing on dates prior to 1970Rlabkey 2.1.133 failing on dates prior to 1970 TEXT_WITH_LINKSClosed     LabKey Support Forum
I've confirmed that the new version does work from testing the ones that Cory left here. Feel free to download and install the ones that Cory provided here or you can pull them direct from CRAN.

Thanks,

Jon
cnathe2017-03-13 15:22cnathe2017-03-13 15:22Rlabkey 2.1.133 failing on dates prior to 1970Rlabkey 2.1.133 failing on dates prior to 1970 TEXT_WITH_LINKSClosed     LabKey Support Forum
Attached is an updated Rlabkey package (v2.1.134) with a fix for this issue. It has not yet been submitted to CRAN, but will be shortly.
Jon (LabKey DevOps)2016-12-11 23:16Jon (LabKey DevOps)2018-11-16 23:24R knitr reports throwing "LC_CTYPE failed" errorR knitr reports throwing "LC_CTYPE failed" error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ariel,

I've only see that type of error from trying to run a BASH script rather than an R script.

Are these errors being produced within LabKey via an RView or is it in R externally?

Can you provide us with a screenshot of the Engine Configuration you're using for R in LabKey?

It should look like the image as shown here under (Admin > Site > Admin Console > Views and Scripting): https://www.labkey.org/home/Documentation/wiki-page.view?name=knitr#markdown2

Regards,

Jon
Jon (LabKey DevOps)2016-09-05 16:03Jon (LabKey DevOps)2018-11-16 23:24R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

We're checking on this for you.

According to our docs, this does look like it is text-specific, so an XLS fileout might not be possible with things out of the box:

https://www.labkey.org/home/Documentation/wiki-page.view?name=substitutionParameters

However, I'm wondering whether something like the WriteXLS package might be able to pull this off instead.

https://cran.r-project.org/web/packages/WriteXLS/WriteXLS.pdf

We'll get back to you once we have more information.

Thanks for your patience.

Regards,

Jon
Karl Lum2016-09-06 11:14Jon (LabKey DevOps)2018-11-16 23:24R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

If you are already using the xlsx package to generate the excel file from your R script, you should still be able to use the fileout substitution to make the download available to your users as an excel file. Would something like this work?

require(xlsx)
write.xlsx(labkey.data, "${fileout:myExcelFile.xlsx}")

thanks, Karl
david beaumont2016-09-06 12:35Jon (LabKey DevOps)2018-11-16 23:23R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Jon and Karl,

I tried Karl's suggestion and recieved the following errors:

When I tried:

require(xlsx)
write.xlsx(labkey.data, "${fileout:myExcelFile.xlsx}")

I get:

Error executing command
javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
Loading required package: xlsx
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry
In addition: Warning messages:
1: package 'xlsx' was built under R version 3.2.3
2: package 'rJava' was built under R version 3.2.3
Failed with error: 'package 'rJava' could not be loaded'
Error: could not find function "write.xlsx"
Execution halted

then tried:

require(xlsx)
require(rJava)
write.xlsx(labkey.data, "${fileout:myExcelFile.xlsx}")

and got:

Error executing command
javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
Loading required package: xlsx
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry
In addition: Warning messages:
1: package 'xlsx' was built under R version 3.2.3
2: package 'rJava' was built under R version 3.2.3
Failed with error: 'package 'rJava' could not be loaded'
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry
In addition: Warning message:
package 'rJava' was built under R version 3.2.3
Error: could not find function "write.xlsx"
Execution halted



David
Jon (LabKey DevOps)2016-09-06 13:01Jon (LabKey DevOps)2018-11-16 23:23R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

Looks like the JAVA_HOME environmental variable in Windows isn't configured according to the error.

Can you go into your Environmental Variables in Windows and check to make sure you have it there?

You should be able to get to this by going into the Control Panel > System > Advanced System Settings > Environmental Variables

If it isn't there, you should be able to add JAVA_HOME there as a new variable and point it to where you have Java installed (probably something like C:\Program Files\Java\jdk1.8 or something to that effect).

Regards,

Jon
jeckels2016-09-06 17:02Jon (LabKey DevOps)2018-11-16 23:23R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

In case it wasn't apparent, that's an environment variable on the web server itself, where the script is running. A site administrator can check if it's set in a way that LabKey Server can see it by going to Admin->Site->Admin Console->Environment Variables. This can be a quick way to check if it's set at all. Someone would need to configure it directly on the web server and then restart Tomcat to get it to pick up the change.

Thanks,
Josh
david beaumont2016-09-07 09:17Jon (LabKey DevOps)2018-11-16 23:23R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon and Josh,

We updated the enviromental variable and that fixed that error, but now when I run

require(xlsx)
write.xlsx(labkey.data, "${fileout:myExcelFile.xlsx}")

I get the following message:

Failed to retrieve report results

see SS attached.

David
Jon (LabKey DevOps)2016-09-07 12:45Jon (LabKey DevOps)2018-11-16 23:23R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

Are you still doing a write.table in your R-Builder Report View as well, like the default that comes up like this one?

write.table(labkey.data, file = "${tsvout:tsvfile}", sep = "\t", qmethod = "double", col.names=NA)

Regards,

Jon
david beaumont2016-09-13 09:28Jon (LabKey DevOps)2018-11-16 23:24R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Jon,

Sorry for the delay, just got back from vacation.

This is what I ran in the R-Report View that resulted in the previous error.

require(xlsx)
write.xlsx(labkey.data, "${fileout:myExcelFile.xlsx}")

David
jrue@novonordisk.com2016-09-13 09:41Jon (LabKey DevOps)2018-11-16 23:24R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

I've used this method successfully in a few scripts without any issues.

The following snippet should give and attachment output, TSV output, and console output as shown in the image:

require(xlsx)
write.xlsx(labkey.data, file = "${fileout:labkeyData.xlsx}")
write.table(labkey.data, file = "${tsvout:tsvfile}", sep = "\t", qmethod = "double", col.names=NA)
david beaumont2016-09-14 06:14Jon (LabKey DevOps)2018-11-16 23:24R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Alright so I was able to tease out more info by running this as a pipeline job.

So when I run

    require(xlsx)
    write.xlsx(labkey.data, file = "${fileout:labkeyData.xlsx}")

This is what I get

13 Sep 2016 16:43:10,566 INFO : Running R report job 'Test'
13 Sep 2016 16:57:03,225 ERROR: Error occurred running the report background job
javax.script.ScriptException: javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
Loading required package: xlsx
Loading required package: rJava
Loading required package: xlsxjars
Warning messages:
1: package 'xlsx' was built under R version 3.2.3
2: package 'rJava' was built under R version 3.2.3
3: package 'xlsxjars' was built under R version 3.2.3
Error in .jcheck(silent = FALSE) :
  Java Exception <no description because toString() failed>.jcall(row[[ir]], "Lorg/apache/poi/ss/usermodel/Cell;", "createCell", as.integer(colIndex[ic] - 1))<S4 object of class "jobjRef">
Calls: write.xlsx ... .write_block -> createCell -> .jcall -> .jcheck -> .Call
Execution halted
Caused by: javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
jrue@novonordisk.com2016-09-14 08:24Jon (LabKey DevOps)2018-11-16 23:24R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

Can you check to make sure the call is working correctly in your R environment on the server?

From an R console, you should be able to test with something simple like this:

require(xlsx)
write.xlsx(mtcars,file="mtcars.xlsx")
david beaumont2016-09-14 18:16Jon (LabKey DevOps)2018-11-16 23:23R Excel OutR Excel Out TEXT_WITH_LINKSClosed     LabKey Support Forum
I ended up creating a new dataframe with a limited amount of columns and that worked. There must be a column in labkey.data that is throwing the error. No matter though, I can export the columns I need so I am all good.

Thanks for all the help.
Jon (LabKey DevOps)2018-11-15 12:37Jon (LabKey DevOps)2018-11-15 12:37Revoke delete sample set permissionsRevoke delete sample set permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

No, there is no function built into LabKey to disable it or revoke delete permissions for a user in this manner. However, you could hide the button by using CSS code (specifically attribute selectors) to identify the link for the button and then applying the CSS code under the Project Settings > Resources. (https://www.labkey.org/Documentation/wiki-page.view?name=customizeLook#project)

However, the downside to using CSS to hide the button is that all users are affected and the button will be hidden from everyone, including admins. So if you need access to that button again, you will have to remove the CSS code to get access to that button again.

For more details on attribute selectors, please checkout the following resources:

https://www.w3schools.com/css/css_attribute_selectors.asp
https://stackoverflow.com/questions/9165479/how-to-hide-an-anchor-tag-by-href-id-using-css

Regards,

Jon
jeckels2012-01-20 15:27Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michael,

I'm not sure if I'm interpreting it correctly, but it looks like the code tries first to authenticate using the full email address, and if that fails it does the lookup based on email address to resolve the name? So, for installations that don't have the email/username difference, the effective code is completely unchanged?

The file you posted has been reformatted with a different code style, which makes it difficult to determine exactly what the changes are. Would it be possible to get a minimal diff/patch?

Thanks,
Josh
michael_stover@urmc.rochester.edu2012-01-27 07:03Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution TEXT_WITH_LINKSClosed     LabKey Support Forum
"So, for installations that don't have the email/username difference, the effective code is completely unchanged?"

Exactly.

As for a minimal patch, I'm not well practiced on how to do that. But, you can simply remove the current "connect" method and replace with the contents of the patch file. Then format and fix imports as necessary in your favorite IDE.
adam2012-01-27 11:20Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution TEXT_WITH_LINKSClosed     LabKey Support Forum
Proper patches are easy to generate via SVN, TortoiseSVN, IntelliJ, etc. For example, from the command line in the appropriate directory type:

   svn diff LdapAuthenticationManager.java > ldap.patch

And post the patch.

We insist on minimal patches, especially in an area related to security. We need to review your change without the noise generated by formatting changes, javadocs additions, and other unrelated modifications. (You can submit your javadocs changes if you want... but make that a separate patch.) If you need to, revert the file, make the minimal set of changes you require, and generate the patch.

Thanks,
Adam
michael_stover@urmc.rochester.edu2012-01-27 11:23Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution TEXT_WITH_LINKSClosed     LabKey Support Forum
Do you need this done relative to the svn trunk?
adam2012-01-27 11:41Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution TEXT_WITH_LINKSClosed     LabKey Support Forum
Typically we'd want a diff off the trunk. In this case, the file hasn't been touched in 20 months, so diffing against any recent release should suffice.
michael_stover@urmc.rochester.edu2012-02-07 06:30Jon (LabKey DevOps)2018-11-16 23:24Revisiting the ldap issue with a simple solutionRevisiting the ldap issue with a simple solution TEXT_WITH_LINKSClosed     LabKey Support Forum
Hopefully this patch file provides everything you need.
Jon (LabKey DevOps)2017-11-03 17:08Jon (LabKey DevOps)2018-11-16 23:24Retrieving All Study Names from Labkey Using Python APIRetrieving All Study Names from Labkey Using Python API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cameron,

You wouldn't use query.containerFilterName, you'd use container_filter instead.

If you access the Schema Browser and do the following:

1. Select Core for the Schema
2. Select Containers for the Query
3. Click View Data to see the grid
4. Click the Grid button and select Folder Filter > All Folders
5. Click the Export button and click the Scripts tab
6. Select Python and click Create Script.

You should end up with something like this:

# This script targets the client api version 0.4.0 and later
import labkey

# This script targets the client api version 0.4.0 and later
import labkey

server_context = labkey.utils.create_server_context('localhost', 'home', 'labkey', use_ssl=False)

my_results = labkey.query.select_rows(
    server_context=server_context,
    schema_name='core',
    query_name='Containers',
    container_filter='AllFolders'
)

That same container_filter is referenced in line 90 of the query.py code:

https://github.com/LabKey/labkey-api-python/blob/master/labkey/query.py#L90

If you choose to use the filter "isBlank" on the Parent column, then your query will look like this if you export it:

# This script targets the client api version 0.4.0 and later
import labkey

server_context = labkey.utils.create_server_context('localhost', 'home', 'labkey', use_ssl=False)

my_results = labkey.query.select_rows(
    server_context=server_context,
    schema_name='core',
    query_name='Containers',
    filter_array=[
        labkey.query.QueryFilter('Parent/DisplayName', '', 'isblank')
    ],
    container_filter='AllFolders'
)

Does this make sense?

Regards,

Jon
wnels2@uky.edu2009-11-04 09:09wnels2@uky.edu2009-11-04 09:09restarting task progression after remote taskrestarting task progression after remote task TEXT_WITH_LINKSClosed     LabKey Support Forum
It appears to be working. Probably should test a little more though.
Thanks,
Bill
wnels2@uky.edu2009-11-04 06:59Jon (LabKey DevOps)2018-11-16 23:23restarting task progression after remote taskrestarting task progression after remote task TEXT_WITH_LINKSClosed     LabKey Support Forum
Okay, now I see the difference between the task runner and job runner in the Mule configs.
I'm going to try to get the jobStore from the statusfiles when the complete message comes in from SQS and submit it to the stateMachine in order to continue the task progression. Does this sound reasonable?
Thanks,
Bill
jeckels2009-11-05 09:47jeckels2009-11-05 09:47restarting task progression after remote taskrestarting task progression after remote task TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

Sorry to be slow to respond. You might want to check out org.labkey.pipeline.mule.PipelineJobRunnerGlobus and org.labkey.pipeline.mule.GlobusListener. It sounds like they do something very similar to what you want - they submit a job to Globus, wait for it to complete, and then continue processing with the rest of the tasks. In particular, PipelineJobRunnerGlobus.updateStatus() may be quite relevant.

Thanks,
Josh
Nick Kerr2014-07-18 11:45Jon (LabKey DevOps)2018-11-16 23:24responses being truncated by 1 line?responses being truncated by 1 line? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for pointing this out, it looks like it is a real issue. Our response writer was not being wrapped up properly, but we now have a fix being prepared for the 14.2 release.

Thanks,
Nick
Ben Bimber2014-07-18 11:47Jon (LabKey DevOps)2018-11-16 23:23responses being truncated by 1 line?responses being truncated by 1 line? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, saw the bug. Thanks for the quick reply. I'll try this out on our new server (running in production mode, but not really acting as a production server) later today.

-Ben
Jon (LabKey DevOps)2019-02-13 14:01Jon (LabKey DevOps)2019-02-13 14:01Resources to learn survey implementation?Resources to learn survey implementation? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Björn,

I'm not sure I'm understanding your question.

Everything related to our Surveys can be found here, from tutorials to references to JSON examples:

https://www.labkey.org/Documentation/wiki-page.view?name=surveys

What are you looking to understand specifically about Surveys regarding the mechanics?

Regarding links to lists, this information is tied to Lookups, which is explained within our tutorials (https://www.labkey.org/Documentation/wiki-page.view?name=surveyCustomize) and also provided with some of our examples (https://www.labkey.org/Documentation/wiki-page.view?name=questionMetadata#comboboxLookup)

Regards,

Jon
jeckels2009-07-17 16:10Jon (LabKey DevOps)2018-11-16 23:24request: SVN notification formattingrequest: SVN notification formatting TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Natalie,

I completely agree, this is something that's been annoying for a long, long time, but hasn't been changed.

We're planning to do a little SVN cleanup this month, and hopefully this can be one of the things we improve.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=8370

Thanks,
Josh
Jon (LabKey DevOps)2017-06-12 13:32Jon (LabKey DevOps)2018-11-16 23:23RequestAuthorizationError: '401: Authorization Failed'RequestAuthorizationError: '401: Authorization Failed' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Does the user in question have the ability to view the core.Users table from the UI?

I ran a similar query and had no issues doing this against labkey.org's own servers:
==============================
import labkey
from labkey.utils import create_server_context
from labkey.query import select_rows

labkey_server = 'www.labkey.org'
project_name = 'home'
schema = 'core'
table = 'Users'

server_context = create_server_context(labkey_server, project_name, use_ssl=True)

result = select_rows(server_context, schema, table)
if result is not None:
    print(result['rows'][0])
    print("select_rows: Number of rows returned: " + str(result['rowCount']))
else:
    print('select_rows: Failed to load results from ' + schema + '.' + table)
==============================

I did notice you didn't have the "import labkey" option at the top of your python code. Did you make sure to include that too before the:

from labkey.utils import create_server_context
from labkey.query import select_rows
from labkey.security import create_user, get_user_by_email

So it would look like:

import labkey
from labkey.utils import create_server_context
from labkey.query import select_rows
from labkey.security import create_user, get_user_by_email

Regards,

Jon
jpseabrook2017-06-12 14:36Jon (LabKey DevOps)2018-11-16 23:24RequestAuthorizationError: '401: Authorization Failed'RequestAuthorizationError: '401: Authorization Failed' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi. Thanks for replying. I do have the import statement, an error in copy pasting. The user is the administrator, and only user. I noticed in your snippet you didn't include 'context_path' is that unnecessary?
Jon (LabKey DevOps)2017-06-12 21:36Jon (LabKey DevOps)2018-11-16 23:24RequestAuthorizationError: '401: Authorization Failed'RequestAuthorizationError: '401: Authorization Failed' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

The context_path is only used if you are actually using it.

For example, I would use it if my URL that I was hitting was https://www.labkey.org/labkey.

But since I'm not using a context path, my site operates as https://www.labkey.org instead.

This would make my home project under https://www.labkey.org/home, rather than https://www.labkey.org/labkey/home.

I tried your actual code, but I'm running into an error that's unrelated to the problem you're seeing.

Can you try my code, tweak it out with your specific info along with the context path, and see if you get the same 401?

Regards,

Jon
jpseabrook2017-06-14 13:19Jon (LabKey DevOps)2018-11-16 23:23RequestAuthorizationError: '401: Authorization Failed'RequestAuthorizationError: '401: Authorization Failed' TEXT_WITH_LINKSClosed     LabKey Support Forum
Here's your code tweaked with my specific info.

******
******
import labkey
from labkey.utils import create_server_context
from labkey.query import select_rows

labkey_server = 'seabrook.land:11211/'
project_name = 'home'
contextPath = 'labkey'
schema = 'core'
table = 'Users'

server_context = create_server_context(labkey_server, contextPath, project_name, use_ssl=True)

result = select_rows(server_context, schema, table)
if result is not None:
    print(result['rows'][0])
    print("select_rows: Number of rows returned: " + str(result['rowCount']))
else:
    print('select_rows: Failed to load results from ' + schema + '.' + table)

******
******

Here's the full error output

******
******
JSONDecodeError Traceback (most recent call last)
/opt/miniconda3/lib/python3.6/site-packages/labkey/utils.py in handle_response(response)
     77 try:
---> 78 response.json() # attempt to decode response
     79 raise QueryNotFoundError(response)

/opt/miniconda3/lib/python3.6/site-packages/requests/models.py in json(self, **kwargs)
    884 pass
--> 885 return complexjson.loads(self.text, **kwargs)
    886

/opt/miniconda3/lib/python3.6/json/__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    353 parse_constant is None and object_pairs_hook is None and not kw):
--> 354 return _default_decoder.decode(s)
    355 if cls is None:

/opt/miniconda3/lib/python3.6/json/decoder.py in decode(self, s, _w)
    338 """
--> 339 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    340 end = _w(s, end).end()

/opt/miniconda3/lib/python3.6/json/decoder.py in raw_decode(self, s, idx)
    356 except StopIteration as err:
--> 357 raise JSONDecodeError("Expecting value", s, err.value) from None
    358 return obj, end

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

ServerNotFoundError Traceback (most recent call last)
<ipython-input-12-4d1826f6747b> in <module>()
     11 server_context = create_server_context(labkey_server, contextPath, project_name, use_ssl=True)
     12
---> 13 result = select_rows(server_context, schema, table)
     14 if result is not None:
     15 print(result['rows'][0])

/opt/miniconda3/lib/python3.6/site-packages/labkey/query.py in select_rows(server_context, schema_name, query_name, view_name, filter_array, container_path, columns, max_rows, sort, offset, container_filter, parameters, show_rows, include_total_count, include_details_column, include_update_column, selection_key, required_version, timeout)
    263 payload['apiVersion'] = required_version
    264
--> 265 return server_context.make_request(url, payload, timeout=timeout)
    266
    267

/opt/miniconda3/lib/python3.6/site-packages/labkey/utils.py in make_request(self, url, payload, headers, timeout, method)
    137 try:
    138 csrf_url = self.build_url('login', 'whoami.api')
--> 139 response = handle_response(self._session.get(csrf_url))
    140 self._session.headers.update({
    141 CSRF_TOKEN: response['CSRF']

/opt/miniconda3/lib/python3.6/site-packages/labkey/utils.py in handle_response(response)
     80 except ValueError:
     81 # could not decode response
---> 82 raise ServerNotFoundError(response)
     83 else:
     84 raise RequestError(response)

ServerNotFoundError: '404: Server resource not found. Please verify context path and project path are valid'

******
******
Jon (LabKey DevOps)2017-06-14 22:36Jon (LabKey DevOps)2018-11-16 23:23RequestAuthorizationError: '401: Authorization Failed'RequestAuthorizationError: '401: Authorization Failed' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Is your actual LabKey URL setup as below?

https://seabrook.land:11211/labkey

If so, the line:

labkey_server = 'seabrook.land:11211/'

should really be:

labkey_server = 'seabrook.land:11211'

Another way to test this out is to rewrite your code like this:

===============

import labkey
from labkey.utils import create_server_context
from labkey.query import select_rows

schema = 'core'
table = 'Users'

server_context = create_server_context('seabrook.land:11211', 'labkey', 'home', use_ssl=True)

result = select_rows(server_context, schema, table)
if result is not None:
    print(result['rows'][0])
    print("select_rows: Number of rows returned: " + str(result['rowCount']))
else:
    print('select_rows: Failed to load results from ' + schema + '.' + table)

===============
Can you give this a try and see if you get the same result?

Regards,

Jon
jeckels2011-05-09 14:29Jon (LabKey DevOps)2018-11-16 23:24Report webpart and filtersReport webpart and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Try using the query's name, 'colonyPopulationChange'. There were a few cases where the query (and therefore data region name) were being incorrectly set to _select behind the scenes, which you observed in the query browser. This scenario may have been affected by the fix as well.

Thanks,
Josh
jeckels2013-05-17 09:26Jon (LabKey DevOps)2018-11-16 23:24Replace assay results at the results data levelReplace assay results at the results data level TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

The General assay type (as well as those derived from it, such as assay types defined in file-based modules) allows editing of the results/data rows via a checkbox in the assay designer. This would allow you to effectively replace individual rows, either through the UI or LABKEY.Query APIs. However, we don't currently support inserting new rows via this mechanism.

You can add/update/remove rows via the LABKEY.Experiment.saveBatch() APIs though.

We don't have a mechanism similar to the replace runs functionality, where we keep both the old and new and link them together.

Thanks,
Josh
Ben Bimber2013-01-24 08:52Jon (LabKey DevOps)2018-11-16 23:24Rendering QueryWebPart in Ext.WindowRendering QueryWebPart in Ext.Window TEXT_WITH_LINKSClosed     LabKey Support Forum
Mixing ext and DataRegions can be a real pain, since DataRegions are not a true Ext component. It's difficult to coax Ext to size the panels properly. I have three suggestions:

1) if you can get away with an Ext grid, nesting will work more automatically. With Ext grids, especially Ext3 grids, it can be a pain to make them look very good, and they will not automatically inherit all the features of a LabKey QWP. However, just showing the data will be much easier.

2) If you're using Ext3 (which you probably are if you dont know the answer to that), then place a panel inside the window and render the QWP to that panel's body element. Note: the panel will need to have been rendered first. Check out EHR.ext.QueryPanel in the EHR module. The file is under /customModules/ehr/resources/web/ExtContainers.js. This will show you how to defer loading the QWP until after render.

3) if you're using Ext4 (which I recommend), check out LDK.panel.QueryPanel in the LDK module. This is designed to be more of a standalone and it might work out of the box for you. The file is under /unsupportedModules/labModules/ldk/resources/web/QueryPanel.js

If you use this panel directly, it should be pretty automatic, although I've never tried this inside a window. it does get around most Ext layout problems, so far as i can tell.
Anthony Corbett2013-01-24 09:03Jon (LabKey DevOps)2018-11-16 23:24Rendering QueryWebPart in Ext.WindowRendering QueryWebPart in Ext.Window TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

Thanks for the quickly reply. Yes, I am using Ext4. I had a hunch that the QWP would fight with the EXT classes and that a manually managed rendering process would be needed. Sounds like the LDK.panel.QueryPanel will be a great place to start looking. I will let you know how everything turns out using a window.

Thanks!

-
Anthony
Ben Bimber2013-01-24 09:13Jon (LabKey DevOps)2018-11-16 23:23Rendering QueryWebPart in Ext.WindowRendering QueryWebPart in Ext.Window TEXT_WITH_LINKSClosed     LabKey Support Forum
i've never done this in a window (getting it to work in a panel is hard enough), and my guess is that you might need to add another listener that resizes your window, unless the window can be made to autosize itself based on children.
dennisw2013-01-31 09:54Jon (LabKey DevOps)2018-11-16 23:23Rendering QueryWebPart in Ext.WindowRendering QueryWebPart in Ext.Window TEXT_WITH_LINKSClosed     LabKey Support Forum
If you do manage to get a "Window" or "Window" like ext component working, one of the issues you may run into are z-order conflicts with the underlying LabKey UI components. I had to use native JS to manually jump my Window to pretty high z-order numbers to get things working correctly.
kevink2010-12-21 10:03Jon (LabKey DevOps)2018-11-16 23:24rendering a QWPrendering a QWP TEXT_WITH_LINKSClosed     LabKey Support Forum
This is just an html thing. Self-closing <div/> elements are not allowed in html. You'll need to explicitly add the closing </div> tag.
Ben Bimber2010-12-21 10:04Jon (LabKey DevOps)2018-11-16 23:24rendering a QWPrendering a QWP TEXT_WITH_LINKSClosed     LabKey Support Forum
got it. thanks for the reply.
Karl Lum2011-10-02 19:21Jon (LabKey DevOps)2018-11-16 23:24Rename folder causes file part folder content missingRename folder causes file part folder content missing TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Maya,

I've opened an issue to track this, we should move the files associated with a folder on rename this is done when the site wide file root is changed but apparently not for individual folders.

As a workaround, something you could try is to manually copy the old files to the new folder location. Each folder on the LabKey server has a corresponding @files subdirectory on the file system that stores files referenced by a file web part. If you can find the original @files subdirectory and copy it to the new location, you should be able to restore your files in the webparts.

You can get the location in the file system that corresponds to a project by navigating to : manage project->project settings and then viewing the files tab. The path of the file root in the text box should indicate where on the file system the files are stored. A subfolder to a project will just have a corresponding subdirectory in the file system with its own @files subdirectory.
Maya Li2011-10-03 11:05Jon (LabKey DevOps)2018-11-16 23:24Rename folder causes file part folder content missingRename folder causes file part folder content missing TEXT_WITH_LINKSClosed     LabKey Support Forum
Karl:

Thanks for the suggested workaround and opening an issue for it. I can see creating a new folder/project and copy the older @file directory over. It is however undesirable because we have a project with much work devoted to user permissions defined, which we wish to avoid having to do over in a new project. Further more, that's an operation much too complicated for our content user. We could live with not changing the project name for now but it would be wonderful to have the issue be fixed to avoid "unexpected" surprised from the less technical users.

Your help is much appreciated.
Maya
Will Holtz2016-11-22 14:43Will Holtz2016-11-22 14:43Removing transformation script from assay instanceRemoving transformation script from assay instance TEXT_WITH_LINKSClosed     LabKey Support Forum
Nevermind! I just remembered that transformation scripts don't need to be defined in config.xml, their existence as a file is all that is required. I need to delete the file.

Sorry for the clutter.

-Will
Jon (LabKey DevOps)2016-10-20 13:58Jon (LabKey DevOps)2018-11-16 23:23Removing code chuck from PDF export using KNITR/Rmarkdown/PandocRemoving code chuck from PDF export using KNITR/Rmarkdown/Pandoc TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

That's interesting to see the output of Rlabkey being seen in addition to the rendered results, despite you adding the echo=false option.

Let me get this looked at further. It may be that there needs to be another flag enabled.

Thanks for your patience.

Regards,

Jon
hilariagrieve2017-01-26 05:23Jon (LabKey DevOps)2018-11-16 23:24Removing code chuck from PDF export using KNITR/Rmarkdown/PandocRemoving code chuck from PDF export using KNITR/Rmarkdown/Pandoc TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, I have the same problem. How did you solve it? Thanks.
cnathe2017-01-26 07:53Jon (LabKey DevOps)2018-11-16 23:24Removing code chuck from PDF export using KNITR/Rmarkdown/PandocRemoving code chuck from PDF export using KNITR/Rmarkdown/Pandoc TEXT_WITH_LINKSClosed     LabKey Support Forum
The issue ended up being a problem in the LabKey server when there were multiple R scripts referencing each other (i.e. in that case the outer script's prolog was the one being displayed in the PDF report). There was an issue opened for release 16.3 for this issue and has since been resolved with r48647:
https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=28946
-Cory
hilariagrieve2017-01-30 07:13Jon (LabKey DevOps)2018-11-16 23:24Removing code chuck from PDF export using KNITR/Rmarkdown/PandocRemoving code chuck from PDF export using KNITR/Rmarkdown/Pandoc TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cory!
I am trying to convert my R report to a .docx file and have the same problem. My report begins like this...

---
title: "Reporte Final"
author: "hgrieve"
output:
  word_document: "Reporte Final Filiación.docx"
---

```{r setup, echo=FALSE, cache=TRUE, results='hide', warning=FALSE, comment=FALSE, warning=FALSE, message=FALSE, encoding = 'UTF-8',comments = ""}
knitr::opts_chunk$set(echo=FALSE, cache=TRUE, comment=FALSE, comments = "", warning=FALSE, eval = TRUE, encoding = "native.enc")
#knitr::opts_chunk$get();
knitr::pandoc('script.Rmd', format='docx')
```

and I get the docx file like the image I attached.
Can you help me? thanks!
cnathe2017-01-30 11:46Jon (LabKey DevOps)2018-11-16 23:23Removing code chuck from PDF export using KNITR/Rmarkdown/PandocRemoving code chuck from PDF export using KNITR/Rmarkdown/Pandoc TEXT_WITH_LINKSClosed     LabKey Support Forum
Are your R scripts being run as R Reports within your LabKey server, or are you running the R script on a separate session and reading data from your LabKey server? Also, what version of LabKey are you using? The fix for the original issue in the thread was checked in to the 16.3 release of LabKey server, so if your issue is the same, you would need to get the 16.3 release version later than r48647 to have the fix.
-Cory
hilariagrieve2017-01-31 05:10Jon (LabKey DevOps)2018-11-16 23:24Removing code chuck from PDF export using KNITR/Rmarkdown/PandocRemoving code chuck from PDF export using KNITR/Rmarkdown/Pandoc TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cori, I am using the 16.2 version. So, I will upgrade labkey Server version and try again with this report.
But, my scripts is running like an R report with my Labkey Server. I select some data, make a table, and I am taking the data from this table to complete the R markdown-Pandoc report.

I need this report to generate a word document, so then it can be modified.

Thanks, I will comunicate if the new version doesn't solve my problem.

Hilaria
Jon (LabKey DevOps)2017-02-13 14:44Jon (LabKey DevOps)2017-02-13 14:44Removing code chuck from PDF export using KNITR/Rmarkdown/PandocRemoving code chuck from PDF export using KNITR/Rmarkdown/Pandoc TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Hilaria,

Let's separate this install problem from the rest of this thread. This will create less confusion.

Regards,

Jon
Jon (LabKey DevOps)2017-03-15 11:21Jon (LabKey DevOps)2018-11-16 23:23Removing buttons from QueryWebPartRemoving buttons from QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Alternatively, you can use the value "buttonBarPosition: none" to also remove the buttons.

For example:

<div id="MyQuery" />
<script>
new LABKEY.QueryWebPart({
        renderTo: 'MyQuery',
        schemaName: 'core',
        queryName: 'users',
        buttonBarPosition : 'none'
    });
</script>

Regards,

Jon
Jon (LabKey DevOps)2018-02-16 18:21Jon (LabKey DevOps)2018-02-16 18:21Remove unwanted menu itemsRemove unwanted menu items TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

The Give UI Feedback item will be gone after our 18.1 Release build which is due out mid-March.

You can disable the LabKey Documentation option by selecting the Gear Icon > Site > Admin Console > Admin Console Links > Look and Feel Settings and unchecking the option for "Show LabKey Help menu item".

Regards,

Jon
Jon (LabKey DevOps)2017-12-26 20:27Jon (LabKey DevOps)2017-12-26 20:27Remove Support and Give UI Feedback from MenuRemove Support and Give UI Feedback from Menu TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

The "Give UI Feedback" link should be gone by the time our 18.1 Release is issued sometime mid-March.

The URL the "Support" link points to can be changed in the "Look and Feel settings" under the Admin Console. Just click on the Gear Icon > Site > Admin Console, select Configuration > Look and Feel Settings and change the Support URL field.

For more details on the Look and Feel page, please visit https://www.labkey.org/Documentation/wiki-page.view?name=customizeLook

Regards,

Jon
Jon (LabKey DevOps)2017-12-28 00:55Jon (LabKey DevOps)2017-12-28 00:55Remove Support and Give UI Feedback from MenuRemove Support and Give UI Feedback from Menu TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

If you check your LabKey installation, by default you are automatically provided a Home project. If you click on the Home project on the upper-left, you should see a Support subfolder. Clicking on that will bring you to the /Home/support/begin.view page where you can then update the default wiki page and include your support information or anything else there.

Alternatively, you can also point the path of the Support URL field to point to any URL you wish and it will direct the user to that specific URL.

Regards,

Jon
Edward2017-12-28 00:03Edward2017-12-28 00:03Remove Support and Give UI Feedback from MenuRemove Support and Give UI Feedback from Menu TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thank you for your feedback.
One more question, do you know where can I find the "${contextPath}/project/home/support/begin.view" file so that I can edit it to include my support information?

Best regards,
Edward
Jon (LabKey DevOps)2018-03-02 17:33Jon (LabKey DevOps)2018-11-16 23:23Remove shared folderRemove shared folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

Unfortunately not. The Shared folder serves to share resources site-wide and comes with the system by default.

https://www.labkey.org/Documentation/wiki-page.view?name=sharedProject

Regards,

Jon
Edward2018-03-05 02:03Jon (LabKey DevOps)2018-11-16 23:23Remove shared folderRemove shared folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Jon for the answer!

Regards,
Edward
Jon (LabKey DevOps)2019-07-02 16:57Jon (LabKey DevOps)2019-07-02 16:57Remove avatar field in user detailsRemove avatar field in user details TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

You can use CSS to hide the Avatar value. The fieldname "Avatar" would still appear since there's no specific attribute to hide that, but you can at least hide the button to upload the image file and if someone already managed to upload the file, you can prevent the image from appearing using the CSS code "display: none" as described here:

https://www.w3schools.com/css/css_display_visibility.asp

You would just need to debug the page and identify the specific values that are unique to the Avatar, then create your CSS file and upload it to the Look and Feel settings of your LabKey instance:

https://www.labkey.org/Documentation/wiki-page.view?name=customizeLook#resources

Regards,

Jon
WayneH2019-11-05 08:48Jon (LabKey DevOps)2019-11-05 10:01Remove avatar field in user detailsRemove avatar field in user details TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks.
jeckels2014-04-28 11:59Jon (LabKey DevOps)2018-11-16 23:24Remote pipeline and AWS?Remote pipeline and AWS? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I think the biggest potential issue is having access to a shared file system between the web server and the remote servers, and doing this securely. If the remote server can see the same file system, and the JMS server, things will likely work fine.

Thanks,
Josh
Brian Connolly2014-04-28 12:23Jon (LabKey DevOps)2018-11-16 23:24Remote pipeline and AWS?Remote pipeline and AWS? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I also recommend that you use Amazon Virtual Private Cloud(https://www.labkey.org/announcements/home/Developer/Forum/thread.view?entityId=2c427806-b111-1031-83bd-6432661dac16&_anchor=9145) if possible.

Using VPC will give you an extra layer of security for the communication between your LabKey Server and the remote pipeline servers.
Ben Bimber2014-04-29 12:25Jon (LabKey DevOps)2018-11-16 23:23Remote pipeline and AWS?Remote pipeline and AWS? TEXT_WITH_LINKSClosed     LabKey Support Forum
that's a good idea, thanks.
adam2014-11-26 07:33Jon (LabKey DevOps)2018-11-16 23:23Remote login questionsRemote login questions TEXT_WITH_LINKSClosed     LabKey Support Forum
We designed the token-based remote login mechanism solely with browsers accessing web applications in mind. It wouldn't be difficult to adapt it to work better with non-web applications... no one has asked for this before.

However, in a quick experiment on my local instance (building from trunk, but we haven't touched this code in years), I see that JavaScript-based login page redirect only if I pass invalid credentials; if "email:pass" in your example represents a valid login on my server then that user is authenticated by the server code and a redirect is returned to the caller, including the specified URL with a valid auth token as a parameter. If you capture the redirect URL and extract the token you should be able to use it.

We added basic support for OpenID authentication earlier this year (via JOpenID); you can enable it on the experimental features page. I haven't looked into OpenID Connect in much detail, but it seems like a good, API-friendly approach. As an aside, we've heard interest in other SSO protocols in recent months, with clients inquiring about our officially supporting GLUU Server, Shibboleth, and SAML 2.0.

Adam
Anthony Corbett2014-11-26 11:03Jon (LabKey DevOps)2018-11-16 23:23Remote login questionsRemote login questions TEXT_WITH_LINKSClosed     LabKey Support Forum

Adam,

Thanks for the reply. You are correct, passing a valid set of credentials via basic auth does return the redirect. I must have been using the wrong credentials (local instance vs test environment), my bad. This also works with any custom URI scheme, so it looks like this can be used to send the user to a native application by registering a custom URI scheme. Here is the working toy example:


curl -silent -I -k --user user:pass https://domain/labkey/login/createToken.view?returnUrl=myapp://authenticate

output:

HTTP/1.1 302 Found
Date: Wed, 26 Nov 2014 18:23:51 GMT
Server: Labkey/14.30
Set-Cookie: X-LABKEY-CSRF=6d9eefe186b198c5ef1cc3fff7450ec5; Path=/labkey
Set-Cookie: JSESSIONID=FB952D2070B757F744C3C18FD4C77F8A; Path=/labkey/; Secure; HttpOnly
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-MiniProfiler-Ids: [710]
Pragma: no-cache
Cache-Control: no-cache
Cache-Control: no-store
Location: myapp://authenticate/?labkeyToken=76a848ae158323b3b4d35e4a451b8a7a&labkeyEmail=anthonycor%40gmail.com
Content-Type: text/html;charset=UTF-8


As you can see the Location header contains the expected query parameters and custom URI scheme. The parameters can be parsed and used by the client that is not a web application per se! :) Also, the session cookie is also there so if the client can handle storing cookie information it can be used for API calls.

Thanks for the help!

-
Anthony
adam2014-11-28 10:43Jon (LabKey DevOps)2018-11-16 23:24Remote login questionsRemote login questions TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony,

Great to see that this is working for you. Let me know if you think of remote login improvements that might support this scenario better.

Thanks,
Adam
Jon (LabKey DevOps)2016-03-31 20:08Jon (LabKey DevOps)2018-11-16 23:23RemoteAPI SelectRowsCommand CommandException: Not FoundRemoteAPI SelectRowsCommand CommandException: Not Found TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Can you send us the full code? The code itself looks okay, but are you also importing classes too?

Regards,

Jon
bront@kcr.uky.edu2016-04-01 06:28Jon (LabKey DevOps)2018-11-16 23:24RemoteAPI SelectRowsCommand CommandException: Not FoundRemoteAPI SelectRowsCommand CommandException: Not Found TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I think I have all the necessary classes... maybe.

I am running it from my local machine hitting a remote dev server, would that matter?

thanks,

bront

package edu.uky.kcr.ctrp;

import java.io.IOException;
import java.util.Map;
import org.labkey.remoteapi.CommandException;
import org.labkey.remoteapi.Connection;
import org.labkey.remoteapi.query.GetQueriesCommand;
import org.labkey.remoteapi.query.GetQueriesResponse;
import org.labkey.remoteapi.query.SelectRowsCommand;
import org.labkey.remoteapi.query.SelectRowsResponse;

public class LabKeyFiles {

    public static void queryFiles()
    {

        Connection cn = new Connection("https://ourdevserver.edu, "xxx", "yyy");
        SelectRowsCommand cmd = new SelectRowsCommand("labkey", "list.gender");

        try
        {
            SelectRowsResponse response = cmd.execute(cn, "/Testing/");

        } catch (IOException | CommandException e)
        {
            e.printStackTrace();
        }
    }
}
Andy Straw2016-04-01 06:56Jon (LabKey DevOps)2018-11-16 23:24RemoteAPI SelectRowsCommand CommandException: Not FoundRemoteAPI SelectRowsCommand CommandException: Not Found TEXT_WITH_LINKSClosed     LabKey Support Forum
I believe the issue is that the schema name is "lists" not "list".
bront@kcr.uky.edu2016-04-01 07:04Jon (LabKey DevOps)2018-11-16 23:24RemoteAPI SelectRowsCommand CommandException: Not FoundRemoteAPI SelectRowsCommand CommandException: Not Found TEXT_WITH_LINKSClosed     LabKey Support Forum
I have tried a number of different formulations.

SelectRowsCommand cmd = new SelectRowsCommand("lists", "gender");

This still returns: org.labkey.remoteapi.CommandException: Not Found

Thanks,

bront
Andy Straw2016-04-01 07:13Jon (LabKey DevOps)2018-11-16 23:24RemoteAPI SelectRowsCommand CommandException: Not FoundRemoteAPI SelectRowsCommand CommandException: Not Found TEXT_WITH_LINKSClosed     LabKey Support Forum
Not sure this applies to your configuration, but for our server, we would use "https://ourdevserver.edu/labkey" ("/labkey" added). When I remove "/labkey" on our server I get:

Exception in thread "main" org.labkey.remoteapi.CommandException: Not Found
    at org.labkey.remoteapi.Command.throwError(Command.java:355)
    at org.labkey.remoteapi.Command._execute(Command.java:321)
    at org.labkey.remoteapi.Command.execute(Command.java:202)

which sounds like your error.
bront@kcr.uky.edu2016-04-01 07:30bront@kcr.uky.edu2016-04-01 07:30RemoteAPI SelectRowsCommand CommandException: Not FoundRemoteAPI SelectRowsCommand CommandException: Not Found TEXT_WITH_LINKSClosed     LabKey Support Forum
That was it. Thank you so much.

cheers,

bront
avital2015-06-02 13:53Jon (LabKey DevOps)2018-11-16 23:23Release Announcements ListRelease Announcements List TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

You can use the following link: https://www.labkey.com/sign-up-for-newsletter to sign up for our newsletter and user conference announcements. The newsletter is sent with every release.

Thank you,
Avital
lewis j mcgibbney2015-06-02 14:21Jon (LabKey DevOps)2018-11-16 23:24Release Announcements ListRelease Announcements List TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you very much Avital. This is ecellent, We are going to the User conference in Seattle so will see you there.
BTW, our team from NASA JPL and Celgene are very interested in presenting some posters and/or presenting at the user conference. Is this possible? Who should I approach to find out?
Thank you
Jon (LabKey DevOps)2015-06-02 17:36Jon (LabKey DevOps)2018-11-16 23:24Release Announcements ListRelease Announcements List TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

We'll pass your message onto our Sales and Marketing team who will get back to you.

Regards,

Jon
avital2015-06-02 20:42Jon (LabKey DevOps)2018-11-16 23:24Release Announcements ListRelease Announcements List TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

We are looking forward to seeing you at the user conference! Someone from our team will reach out to you within a couple of weeks regarding presentation options.

Thank you,
Avital
jeckels2011-03-22 11:03Jon (LabKey DevOps)2018-11-16 23:23relative URLs / contextPath in wikisrelative URLs / contextPath in wikis TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I don't think we have a syntax in Wikis to insert the context path. Typically, when authoring wiki pages we use URLs that are relative to the server, but not the current page or folder ("/announcements/home/Developer/Forum/begin.view?", for example).

If you're changing servers or context paths, we have a small webapp that can be deployed at the old location that redirects browsers to the new location. You can use access logging to help track down links that need to be updated. Let us know if you're interested.

Thanks,
Josh
Ben Bimber2011-03-22 11:12Jon (LabKey DevOps)2018-11-16 23:24relative URLs / contextPath in wikisrelative URLs / contextPath in wikis TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

i would be interested in the redirection webapp.

our old server had /labkey as the context path. that was a constant pain when trying to make relative URLs. the new server is going to run labkey as the root webapp, which will make relative URLs much easier. i think your example only really works when the contextPath is null (like your example). if the baseUrl of labkey.org was: https://www.labkey.org/labkey/ then making relative URLs is problematic.

i just through I would check on the wiki syntax. I'm going to be asking some of our wiki authors to check their pages for links. It sounds like they wont actually be able to make changes until we migrate to the new server though.
brendanx2007-08-14 11:47Jon (LabKey DevOps)2018-11-16 23:24RE: Issue #3666, "Sequest pipeline broken," has been updatedRE: Issue #3666, "Sequest pipeline broken," has been updated TEXT_WITH_LINKSClosed     LabKey Support Forum
Bill,

If you are using a 2.1 install, I would suggest sticking with the 2.1 branch. Apply the same fix there to your local copy, and then use the resulting ms2.module. The fix is quite simple (a change of 4 characters on a single line - change getName() to getPath()). Use Subversion to see the exact change made by Josh Eckels to SequestPipelineJob.

--Brendan
Matthew Bellew2014-08-27 09:42Jon (LabKey DevOps)2018-11-16 23:23regular expression questionregular expression question TEXT_WITH_LINKSClosed     LabKey Support Forum
As you may have seen in the SQL docs, we pass-through a lot of string related functions that Postgres supports

https://www.labkey.org/wiki/home/Documentation/page.view?name=labkeysql

However, we don't pass through regexp_matches(). I suspect this is because the return type of this function isn't a scalar value, but rather "setof text[]".

I don't know if you compile your own builds, but it would not be hard to create an method that wraps regexp_matches() with array_to_string(). see class OverlapsMethodInfo in Method.java
Maya Li2012-01-20 10:47Maya Li2012-01-20 10:47Recovered ObjectsRecovered Objects TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Matt. I deleted the objects without seeing any problems.
Matthew Bellew2011-12-12 09:52Jon (LabKey DevOps)2018-11-16 23:24Recovered ObjectsRecovered Objects TEXT_WITH_LINKSClosed     LabKey Support Forum
This is hard to answer because it means that the underlying database was somehow corrupted. The best solution is to return to a good backup of the database. If you don't see any other problems in your installation you can try to delete these objects. If deleting from the LabKey UI doesn't work, then let us know and we can suggest ways to delete them using SQL.

Matt
Jon (LabKey DevOps)2022-01-25 13:01Jon (LabKey DevOps)2022-01-25 13:15Recommended Linux OSRecommended Linux OS TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tomas,

LabKey doesn't have an official recommended version of Linux as you can see from our Supported Technologies page:

https://www.labkey.org/Documentation/wiki-page.view?name=supported

However, my personal recommendation is that you should go with a specific version of Linux that can support the various components needed to run LabKey. So in this case, the version of Linux you should ideally use should be able to support Tomcat 9.X, the latest version of Java/OpenJDK, and the latest version of PostgreSQL.

We here at LabKey have had a lot of success with Ubuntu (20.04.3 LTS currently) and we've also had success with the latest version of Amazon Linux 2. We've also have managed to do well with flavors of Red Hat like RHEL 7 and CentOS 7 with a few clients that had their own installations (both cloud-based and on-premise).

Based on what I'm seeing on https://www.centos.org/centos-linux-eol about CentOS 8, unless you have various scripts/applications that require CentOS-specific tools or features, I would suggest switching to something more common (like Ubuntu), provided you have the means to support it within your organization.

I know from my own experience, I'm used to Ubuntu/Debian, so I have a more challenging time working in Red Hat based versions of Linux, so switching flavors of Linux will likely have some minor issues that will take some learning to overcome.

Regards,

Jon
tvaisar@u.washington.edu2022-01-25 13:51Jon (LabKey DevOps)2022-01-25 16:52Recommended Linux OSRecommended Linux OS TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon for quick response.
We've been running our Labkey Server on CentOS 7 for the past 6 years and it has worked great. The reason for the upgrade came up with the new versions of Labkey Server that require newer versions of Postgres and Java, that are not supported on CentOS 7. While we could upgrade to CentOS 8 and possibly be happy with that, we are looking for more sustainable (i.e. supported in future) version of Linux.
We run the Labkey server on a Linux cluster along with other proteomics software that may not be happy with Ubuntu/Debian.

Thanks,
Tomas
Peter2010-04-08 18:31Jon (LabKey DevOps)2018-11-16 23:23R API Suggestion: Return date fields as dates, not factorsR API Suggestion: Return date fields as dates, not factors TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,
Not sure which version of Rlabkey you're using, but the latest v 2.1.112 has been released on CRAN. I'm pretty sure it always returns non-factor columns from selectRows, getRows and executeSql. I tried it just now on a table with date field and this is what I'm getting:

> library(Rlabkey)
Loading required package: RCurl
Loading required package: bitops
Loading required package: rjson
> s<- getSession("http://localhost:8080/labkey", "/apisamples")
> sc <- getSchema(s,"lists")
> r<- getRows(s, sc$AllTypes)
> str(r)
'data.frame': 10 obs. of 11 variables:
 $ DisplayFld : chr "Row 1" "Row 2 Empty Vals" "Row 3 (plain)" "row 4 (the n word)" ...
 $ TextFld : chr "some text here" NA "More plane values" "null NULL NA and na" ...
 $ IntFld : num 99 NA -34 123 NA NA 777 98 98 98
 $ DoubleFld : num 987.7 NA 98123.4 44.3 NA ...
 $ DateTimeFld :Class 'Date' num [1:10] 14654 NA 10592 11738 NA ...
 $ BooleanFld : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ LongTextFld : chr "Could be some very long text" NA "The quick brown fox jumped over the fence. The quick brown fox jumped over the fence. The quick brown fox jumped over the fen"| __truncated__ NA ...
 $ AttachmentFld: chr "PlainTextDoc.txt" NA NA NA ...
 $ RequiredText : chr "I have to fill this out" "Cannot be empty" "no attachment" "lots of words for empty" ...
 $ RequiredInt : num 42 55 88 456 1 2 0 0 0 0
 $ Category : chr "PLAIN" NA "PLAIN" "EMPTY" ...

> is.factor(r$DateTimeFld)
[1] FALSE


> r1<- cbind(r[, 1:4], factor(r[, 5]), r[,6:11])
> str(r1)
'data.frame': 10 obs. of 11 variables:
 $ DisplayFld : chr "Row 1" "Row 2 Empty Vals" "Row 3 (plain)" "row 4 (the n word)" ...
 $ TextFld : chr "some text here" NA "More plane values" "null NULL NA and na" ...
 $ IntFld : num 99 NA -34 123 NA NA 777 98 98 98
 $ DoubleFld : num 987.7 NA 98123.4 44.3 NA ...
 $ factor(r[, 5]): Factor w/ 4 levels "1999-01-01","2002-02-20",..: 3 NA 1 2 NA NA 4 4 4 4
 $ BooleanFld : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ LongTextFld : chr "Could be some very long text" NA "The quick brown fox jumped over the fence. The quick brown fox jumped over the fence. The quick brown fox jumped over the fen"| __truncated__ NA ...
 $ AttachmentFld : chr "PlainTextDoc.txt" NA NA NA ...
 $ RequiredText : chr "I have to fill this out" "Cannot be empty" "no attachment" "lots of words for empty" ...
 $ RequiredInt : num 42 55 88 456 1 2 0 0 0 0
 $ Category : chr "PLAIN" NA "PLAIN" "EMPTY" ...
> is.factor(r1[,5])
[1] TRUE

Let me know if the update fixes your situation. Also check out the new Vignette and the major speed increase.
Peter2010-04-08 18:49Jon (LabKey DevOps)2018-11-16 23:24R API Suggestion: Return date fields as dates, not factorsR API Suggestion: Return date fields as dates, not factors TEXT_WITH_LINKSClosed     LabKey Support Forum
Whoops as I read this over I realized you were asking about the implicit labkey.data frame in an R view. You can use Rlabkey in an R view; it will utilize the security context of the logged in user.

I'm concerned that if we change the behavior of the implicit labkey.data we will break existing apps. Would the following work as well for you:

library(Rlabkey) make this implicit?
labkey.session built-in automatic current session,
labkey.query built in query object of current rows in the grid

then you could do

mydata <- getRows(labkey.session, labkey.query)

and mydata would have no factors.
Ben Bimber2010-04-08 19:02Jon (LabKey DevOps)2018-11-16 23:24R API Suggestion: Return date fields as dates, not factorsR API Suggestion: Return date fields as dates, not factors TEXT_WITH_LINKSClosed     LabKey Support Forum
the workaround i suggest in my first post of simply converting back to dates isnt all that bad. i can understand the rationale for not changing the default behavior though.

if converting is a problem, it is good to know how to re-create the dataframe though.
Ben Bimber2010-03-10 10:21Jon (LabKey DevOps)2018-11-16 23:24R API and executeSQLR API and executeSQL TEXT_WITH_LINKSClosed     LabKey Support Forum
one more odd behavior:

the query study.pedigree has 4 columns: id, dam, sire and sex (see SQL statement above). if i run this R code (note, it only tries to query the p.sire):

library(Rlabkey)

pedigree <- labkey.executeSql(
baseUrl="http://localhost:8080/labkey",
folderPath="/WNPRC/EHR",
schemaName="study",
sql = "select p.sire FROM study.pedigree p ",
#showHidden = FALSE
)
pedigree;

----

I get an error saying 'p.sire does not exist'. To see whether this was related to using a query instead of a dataset, I tried this, which uses the demographics dataset, not the pedigree query:

library(Rlabkey)

pedigree <- labkey.executeSql(
baseUrl="http://localhost:8080/labkey",
folderPath="/WNPRC/EHR",
schemaName="study",
sql = "select p.id, p.dam, p.sire FROM study.demographics p ",
#showHidden = FALSE
)
pedigree;

----

this does return the expected dataframe,including sire. however, if i include the field 'sex', it throws the same error as above.
Peter2010-03-10 12:29Jon (LabKey DevOps)2018-11-16 23:23R API and executeSQLR API and executeSQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I've been working on the Rlabkey package for the past couple months and have fixed many bugs related to null handling and also the extra link info that comes from the server on a lookup field. We haven't released this new version to CRAN yet (we are waiting on a change to rjson that will give us a bid speed boost) but I have attached the current package for you to install as a zip file into R.

There are also a set of new apis that make it easier for a R user to work with the data in labkey; see getSession and related apis.
Ben Bimber2010-03-10 16:19Jon (LabKey DevOps)2018-11-16 23:23R API and executeSQLR API and executeSQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Peter,

thanks. the new R package fixed that issue of additional data being returned with lookup columns. however, the issue i'm having with the sire field not being return (see post above) still exists. it switched from executeSQL() to labkey.selectRows() and it seems to work ok now though.
Peter2010-03-10 18:13Jon (LabKey DevOps)2018-11-16 23:24R API and executeSQLR API and executeSQL TEXT_WITH_LINKSClosed     LabKey Support Forum
did you try setting showHidden=TRUE ?

One difference between executeSql and selectRows is that the latter uses the default view for the query as the source of its select.

If neither of these suggestions helps, I'd be happy to look into it if there is a way you can export a study containing your demographic data set and send it to me.
Ben Bimber2010-03-11 05:14Jon (LabKey DevOps)2018-11-16 23:24R API and executeSQLR API and executeSQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Peter,

Thanks for the offer. Shortly our test server should be available and I will send you the data and a link to see the report. In the meantime, I was able to complete the report using labkey.selectRows(). Besides the odd behavior of that one query, everything else seems to be working fine.
Ben Bimber2010-03-11 11:25Jon (LabKey DevOps)2018-11-16 23:24R API and executeSQLR API and executeSQL TEXT_WITH_LINKSClosed     LabKey Support Forum
peter,

i think i see what is happening - a dumb mistake on my part. there's a conflict between the name of a dataset and a query. on had the field I wanted, and one did not. rename the query and it's fixed. i'll post more if i find any other problems, but there's nothing i see right now.
Ben Bimber2010-08-27 06:28Jon (LabKey DevOps)2018-11-16 23:23QWP timeout issue?QWP timeout issue? TEXT_WITH_LINKSClosed     LabKey Support Forum
for what it's worth, this query involves the join between a dataset and a query. i can load it fine by itself though the schema browser or as a dataset.
jeckels2010-08-27 14:34Jon (LabKey DevOps)2018-11-16 23:23QWP timeout issue?QWP timeout issue? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

ExtJS has a default 30 second timeout for all of the AJAX request that you make through its APIs. After 30 seconds, it kills the connection, which usually shows an error dialog in the client. The server also notices that the browser connection is closed and cancels the query since there's nobody to send it to anymore, so you get that exception in the log. We should probably filter them out since it's not really an error, it just means that the browser disconnected.

You can use the Ext.Ajax.timeout to control how long it waits to give up on the connection. I believe you can disable the timeout completely by setting it to 0.

Thanks,
Josh
Ben Bimber2010-08-28 10:58Jon (LabKey DevOps)2018-11-16 23:23QWP timeout issue?QWP timeout issue? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

thanks for the reply. if you see the javascript code snip above with me QWP config, I believe I am already setting 'timeout: 0'. Isnt this QWP option supposed to do exactly what you suggest? that's what was throwing me off.
jeckels2010-08-30 10:00Jon (LabKey DevOps)2018-11-16 23:23QWP timeout issue?QWP timeout issue? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Sorry I missed that in your code snippet.

After more investigation, it's not as easy to disable timeouts as I thought. There's a bug in LABKEY.QueryWebPart that treats a timeout value of 0 the same as if you didn't set one at all. I'll fix that for 10.3.

Then there's the Ext.Ajax.request() timeout implementation, which seems to have a similar bug. It treats a timeout value of 0 as an indication that it should use the static timeout value stored on Ext.Ajax.timeout.

So, to truly disable timeouts you'd need the LABKEY.QueryWebPart fix, and in your code set timeout to 0 on the QueryWebPart config option (like you are), AND set the Ext.Ajax.timeout value to 0.

So, for now I'd recommend just setting a very large timeout value.

Thanks,
Josh
Ben Bimber2010-08-30 10:14Jon (LabKey DevOps)2018-11-16 23:24QWP timeout issue?QWP timeout issue? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, i will do that. thanks for following up.
Ben Bimber2010-08-30 10:31Jon (LabKey DevOps)2018-11-16 23:24QWP timeout issue?QWP timeout issue? TEXT_WITH_LINKSClosed     LabKey Support Forum
josh - while we're on the subject, shouldnt errorCallback be thrown when a QWP times out, rather than successCallback? seems like more of an error than a success.
jeckels2010-08-30 13:07Jon (LabKey DevOps)2018-11-16 23:24QWP timeout issue?QWP timeout issue? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes. In my test case, that's the behavior I'm seeing.

What file and line is that error message in the console coming from?

Thanks,
Josh
Ben Bimber2010-08-30 15:48Jon (LabKey DevOps)2018-11-16 23:24QWP timeout issue?QWP timeout issue? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

i just checked in a change to the trunk. see animal_history.js, ~line 525. that code loads a QWP. if you have a copy of the EHR data, load the page 'animal history', then run the hematology report on r95061. hopefully you have a recent enough DB dump to have that report in there correctly.

when that report times out, it's actually called successCallback instead of errorCallback. If you look at the console in firebug, you can either throw a breakpoint or watch the console. it will log a message when it either runs successCallback or errorCallback.
jeckels2012-08-31 11:15Jon (LabKey DevOps)2018-11-16 23:24QWP not showing newly added entriesQWP not showing newly added entries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Gabe,

It's difficult to know without seeing the actual data, but I'd guess that the problem is that the rows you're inserting doesn't meet one of your filter criteria. I'd try removing a bunch of the filters so that you get the row(s) to show up in the QueryWebPart, and then readd them until the rows start disappearing. There may be some sort of issue with null values vs empty strings or something along those lines.

I don't quite follow what you're describing for the second problem, but it sounds like it may also be related to the filtering.

Feel free to send me a URL via email if this doesn't help and I can try taking a direct look.

Thanks,
Josh
adam2010-10-13 16:09Jon (LabKey DevOps)2018-11-16 23:24QWP/filters and URL: very confusing behavior. probably bug.QWP/filters and URL: very confusing behavior. probably bug. TEXT_WITH_LINKSClosed     LabKey Support Forum
The hard-coded filters (all, open, resolved, mine) in the issues list pre-date custom views and, as you've seen, don't work very well with them. All these menu items do is strip off the URL parameters and add hard-coded filter and sort parameters. They don't change the default view, so any default view filter will still get applied (just as it does when filtering and sorting the grid directly). We've talked about switching these filters to actual pre-defined custom views, which might more understandable.

Another thing to note: that issues webpart is not very useful. We could revamp it (e.g., put appropriate links on each open & resolved count), but we haven't bothered since using custom query grids is so much more powerful. As an example, see the issues "dashboard" we use on labkey.org: https://www.labkey.org/project/home/Developer/issues/Reports/begin.view. This works because we don't apply a filter in the default view of our issues list. Let me know if you want to see the LabKey SQL or meta data underlying this dashboard.

Adam
Ben Bimber2010-10-13 16:51Jon (LabKey DevOps)2018-11-16 23:24QWP/filters and URL: very confusing behavior. probably bug.QWP/filters and URL: very confusing behavior. probably bug. TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, i'll buy that.

the only reason we're using that issue webpart is b/c at the time i added it I dont think the grid version of the issues webpart was available. i may look at replacing it with the newer one.
jeckels2010-07-01 11:16Jon (LabKey DevOps)2018-11-16 23:23QWP custom buttons and XML metadataQWP custom buttons and XML metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, this was added as part of 10.2. Instead of including an <onClick> element, you'd include <originalText> instead. Its text content should be the name of the button on the default toolbar. Using the text attribute, you can choose to display it with either the same or different name.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10228

For example, to include the standard Export button but have it be called "Download This Content" instead, this should do the trick:

<buttonBarOptions position="both" includeStandardButtons="false">
    <item text="Download This Content">
        <originalText>Export</originalText>
    </item>
</buttonBarOptions>

I believe that the text attribute is required.

Thanks,
Josh
Ben Bimber2010-07-01 11:20Jon (LabKey DevOps)2018-11-16 23:23QWP custom buttons and XML metadataQWP custom buttons and XML metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, thanks. so does it work to just do:

<item text="Export" />

assuming I dont care about changing the name?


The reason I plan to add buttons back one by one if b/c when you add a custom button, it gets put of the left-hand side of the button bar. Default buttons are to the right. Maybe this is a picky thing, but it seems like it's better to keep the default buttons in the same order and just tack on the custom ones at the end. Gives better consistency across QWPs.
jeckels2010-07-01 11:25Jon (LabKey DevOps)2018-11-16 23:23QWP custom buttons and XML metadataQWP custom buttons and XML metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

It looks like the originalText element is required. It would be a nice shortcut to enable that representation, but right now it's keying off of <originalText> to decide when to look for an existing button.

Thanks,
Josh
Ben Bimber2010-07-01 11:26Jon (LabKey DevOps)2018-11-16 23:24QWP custom buttons and XML metadataQWP custom buttons and XML metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, not a big deal.
jeckels2010-06-30 12:52Jon (LabKey DevOps)2018-11-16 23:24questions on calculated / wrapped fieldsquestions on calculated / wrapped fields TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We don't have a way to directly attach a SQL expression as a new "virtual" column. We can discuss where this falls on your priority list for 10.3 or some other future release.

I added the column aliasing feature a while ago to enable joining in data from external tables, and it also works for custom queries like in your scenario. It was simpler to implement than adding columns directly, but isn't as appropriate in this case.

Thanks,
Josh
Ben Bimber2010-06-30 13:44Jon (LabKey DevOps)2018-11-16 23:24questions on calculated / wrapped fieldsquestions on calculated / wrapped fields TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

thanks for the reply. some alternative mechanism for attaching virtual SQL is probably something we'd want to get to at some point, but there are a lot of pending items and i'm not sure exactly where it falls among them.
jeckels2011-04-20 09:47Jon (LabKey DevOps)2018-11-16 23:23questions about different types of filters and when they can be removedquestions about different types of filters and when they can be removed TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I think that's correct and complete.

For the filter types #4, I believe that removable and non-removable JS filters are applied differently. Non-removable effectively become POST, and removable become GET, though I haven't verified this.

Thanks,
Josh
Ben Bimber2011-04-20 09:52Jon (LabKey DevOps)2018-11-16 23:24questions about different types of filters and when they can be removedquestions about different types of filters and when they can be removed TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

yes, i'm pretty sure removable / non-removable line up with GET and POST. that seems to be the primary functional distinction between filters, with view filters lying somewhere in the middle.

-ben
jeckels2011-02-09 12:47Jon (LabKey DevOps)2018-11-16 23:24question on use of validation scriptsquestion on use of validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Validation scripts don't currently have a way to skip a particular row without rejecting the whole set of rows. Doing an update that doesn't actually change any values shouldn't be a problem, though it would insert audit records for datasets and lists.

There's also the problem that some of these rows would be updates and some would be inserts. In the future, we hope to support a merge-style option as well, which would address this case, but for now the client would need to know which to do, and at that point it's probably just as easy to figure out if anything's changed for that row.

Thanks,
Josh
Ben Bimber2011-02-09 12:51Jon (LabKey DevOps)2018-11-16 23:24question on use of validation scriptsquestion on use of validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

the point of doing a selective update would be to avoid overloading the audit table such that the information in it becomes more intelligible. doing a purely client-side approach is not that different from what we're doing with assays at the moment, so i think we'll do that.

-ben
michael_stover@urmc.rochester.edu2011-02-10 06:54Jon (LabKey DevOps)2018-11-16 23:23question on use of validation scriptsquestion on use of validation scripts TEXT_WITH_LINKSClosed     LabKey Support Forum
What we have done for datasets of clinical studies is create whole web pages with javascript that takes data entered into a form and populates the dataset tables. I would think you could do something similar, and use the javascript client API to do all the processing of their list of projects and update/add entries to the list as you like.
Matthew Bellew2010-05-21 11:54Jon (LabKey DevOps)2018-11-16 23:24Question on SQL statementQuestion on SQL statement TEXT_WITH_LINKSClosed     LabKey Support Forum
The tricky part is a selecting only the more recent row and handling the case where the animal has always been alone or has has a roommate at some point.

* Currently alone, look for the most recent record
  
  NumRoommates = 0 AND StartDate = MAX(StartDate)

* First record for this animal

  MIN(StartDate)

* Last Roommate

  MAX(EndDate) ... WHERE NumRoomates <> 0


putting it together, I think something like this (not tested)


SELECT
  RoommateInfo.Id,
  CASE WHEN LastRoommate IS NULL THEN FirstStart ELSE LastRoommate END AS AloneSince
  TIMESTAMPDIFF(SQL_TSI_DAY, NOW(), CASE WHEN LastRoommate IS NULL THEN FirstStart ELSE LastRoommate END) AS DaysAlone
FROM RoommateInfo
  INNER JOIN
    (SELECT Id, MIN(StartDate) AS FirstStart, MAX(StartDate) AS LastStart From RoommateInfo GROUP BY Id) Dates ON RoommateInfo.Id = Dates.Id
  LEFT OUTER JOIN
    (SELECT Id, MAX(EndDate) AS LastRoommate FROM RoommateInfo WHERE NumRoommates <> 0 GROUP BY Id) LastR ON RoommateInfo.Id = LastR.Id
WHERE
  RoommateInfo.NumRoommates = 0 AND StartDate = LastStartDate
Ben Bimber2010-05-25 15:05Jon (LabKey DevOps)2018-11-16 23:23Question on SQL statementQuestion on SQL statement TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks, that helped put me on the right track. i realized we should be basing this off study.animal instead of housing (8K records vs 300K), but the basic approach you outlined should work.
jeckels2010-04-28 08:44Jon (LabKey DevOps)2018-11-16 23:24question on missing value indicatorsquestion on missing value indicators TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, this sounds like a good case for using missing value indicators. You have a value, but it's not completely trustworthy, so you can flag it as such.

Thanks,
Josh
Matthew Bellew2010-07-28 08:27Jon (LabKey DevOps)2018-11-16 23:24question on how column scale is calculatedquestion on how column scale is calculated TEXT_WITH_LINKSClosed     LabKey Support Forum
I think the use of scale is pretty confusing and overloaded (means something different for numbers and strings?). I'm sure that bit of code is historical. We should remove it and use explicit editor types and/or hints (like the 'multiline' property). If we set multiline to true/false for all metadata then we can remove this check.
Ben Bimber2010-07-28 08:42Jon (LabKey DevOps)2018-11-16 23:23question on how column scale is calculatedquestion on how column scale is calculated TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. i doubt we would actually end up using the scale property in the EHR anyway. i think exploring ext column layouts is probably a better option for us.

your suggestion about using editor types is a good one. that would fit well with the idea of using something like .getFieldEditor(), as a standardized way to create the right component.

one idea i mentioned to mark that i'll repeat here is that it'd be very powerful if we could specify an xtype for each field in the table metadata. this way we could easily load highly tailored components and make them consistent across labkey. some of these might even be fairly generic, like using a slightly different date/time editor instead of always using a date editor.

It's worth noting that while labkey supports datetime fields, the corresponding editor is date-only. Below is a link to a simple datetime component I found on ext forums. this is the cleanest one i could find, although perhaps there are others.

http://extjs.eu/docs/?class=Ext.ux.form.DateTime

The above one makes a composite field with a date picks next to a time picker. I also have a different version in which the calendar panel has a time select above it (which might be more appropriate for a grid).
jeckels2010-07-09 13:29Jon (LabKey DevOps)2018-11-16 23:24question on handling 'case numbers'question on handling 'case numbers' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

1. I think both approaches are valid, but I'd probably lean toward storing the string as its own column. That's more convenient for everything except insertion.

2. In 10.2 I think you're best off doing it in the form, browser-side JavaScript. In 10.3 this could be migrated to the validation script.

3. I'd probably lean toward not storing it separately. Assuming that you won't go over 999 procedures of a given type, I think you can get the current max value out with direct SQL, which while somewhat inelegant is at least pretty simple - "SELECT SUBSTRING(MAX(caseno), 5, 8) FROM x WHERE caseno LIKE '" + year + procedureType + "%'" or something along those lines. Or you can pull back the set of year/procedure type matches and parse them in JavaScript.

Thanks,
Josh
adam2010-06-29 12:20Jon (LabKey DevOps)2018-11-16 23:23question on configuring development machinequestion on configuring development machine TEXT_WITH_LINKSClosed     LabKey Support Forum
On your first question, you shouldn't need to add Tomcat to your path and you can safely ignore the "Apache Tomcat Native library" warning -- most of our dev and production machines run without configuring the native runtime. If you really want to experiment with this runtime, download it from Apache if don't have it (I think it's now included in the 5.5.29 Windows installer) and add it to your path. http://tomcat.apache.org/tomcat-5.5-doc/apr.html

Beware, though: I recently tried running LabKey with the native runtime installed and ran into some problems. The web UI worked fine, but our Selenium tests and API actions failed to connect to the server. I didn't have time to investigate this... I just removed the library and everything started working again.

I believe you've been talking with Brian about your second question.

Adam
Jon (LabKey DevOps)2017-09-12 13:04Jon (LabKey DevOps)2018-11-16 23:24Question about study 'VisitDescription'Question about study 'VisitDescription' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

I'm seeing the same thing in the code and I'm not certain as to why either.

Let me get this confirmed and get back to you.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2017-09-12 13:55Jon (LabKey DevOps)2018-11-16 23:24Question about study 'VisitDescription'Question about study 'VisitDescription' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

So apparently "VisitDescription" is to describe the TYPE of visit, e.g. Day, Week, Month, etc.

A lot of the specimen fields are intentionally limited in size, which is generally historical, but do match the kind of text that is expected to be seen for those fields.

In this case, the 10 character limit was intentional and specific to how specimen data is normally gathered and identified.

Does this make sense?

Regards,

Jon
Leo Dashevskiy2013-08-14 11:58Leo Dashevskiy2013-08-14 11:58Question about paths of included JS libraries for a production machineQuestion about paths of included JS libraries for a production machine TEXT_WITH_LINKSClosed     LabKey Support Forum
Exactly, Josh!

contextPath is what I was after - Kevin already gave it away recently and I forgot to close the issue.

Not to drag jQuery around (I mean, to reduce the package size) and in order to get the latest version of jQuery, I use a CDN distributed copy via the <script> tag, hence my difficulties...

Now if the .view.xml file could take a web reference to jQuery that would be awesome, but I don't believe, that's the case, I think, I tried that already...
jeckels2013-08-14 10:51Jon (LabKey DevOps)2018-11-16 23:24Question about paths of included JS libraries for a production machineQuestion about paths of included JS libraries for a production machine TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

In general, we recommend that developers include references to required JavaScript files via the .view.xml file. If you haven't already tried it, you can likely include a reference to jQuery there as well, which might solve your problem.

If that doesn't work, though, you may be able to use the special <%=contextPath%> substitution in your .html file:

https://www.labkey.org/wiki/home/Documentation/page.view?name=addHTMLandWebPart

I don't know what your exact file layout looks like, but it would likely be something like:

<script type='text/javascript' src='<%=contextPath%>/OpenCyto/FancyBox/source/jquery.fancybox.pack.js'></script>

That should work regardless of what LabKey folder/project it's being used in.

Thanks,
Josh
jeckels2007-07-27 15:04Jon (LabKey DevOps)2018-11-16 23:24Question about FileContent moduleQuestion about FileContent module TEXT_WITH_LINKSClosed     LabKey Support Forum
Dan,

Due to its experimental nature, in 2.1 the FileContent module isn't part of the standard distribution. I'm attaching the file to this response. To deploy it, copy it into your modules directory. You could also build it from the source code yourself if you'd like.

Josh
rosnerd2007-07-31 00:01Jon (LabKey DevOps)2018-11-16 23:24Question about FileContent moduleQuestion about FileContent module TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you for the response and attachement.
I'll try to make it somewhat less experimental.

Dan
rosnerd2007-08-15 00:04Jon (LabKey DevOps)2018-11-16 23:24Question about FileContent moduleQuestion about FileContent module TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm unable to set the web root in the FileContent module in 2.1

When I click the submit button after entering the web root configuration parameter, it
appears to neither get set nor saved.

Is this a known problem? Is there a fix?

Dan
marki2007-08-15 08:10Jon (LabKey DevOps)2018-11-16 23:24Question about FileContent moduleQuestion about FileContent module TEXT_WITH_LINKSClosed     LabKey Support Forum
It's a bug. Actually the button is not hooked up, you just have to hit Enter to submit the form from the keyboard.
rosnerd2007-08-21 00:44Jon (LabKey DevOps)2018-11-16 23:23Question about FileContent moduleConfiguring FileServlet for use with FileContent module TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm trying to configure FileServlet in web.xml as described
on the FileContent module configuration page. However I'm getting this
error:

SEVERE: Parse error in application web.xml file at jndi:/localhost/WEB-INF/web.xml
java.lang.IllegelArgumentException: addChild: Child name 'FileServlet' is not unique


This was caused by adding the following lines to web.xml

    <servlet>
        <servlet-name>FileServlet</servlet-name>
        <servlet-class>org.labkey.api.view.FileServlet</servlet-class>
    </servlet>

    <servlet-mapping>
            <servlet-name>FileServlet</servlet-name>
            <url-pattern>/files/*</url-pattern>
        </servlet-mapping>

Any ideas what's causing this?

Dan
kevink2013-04-05 11:45Jon (LabKey DevOps)2018-11-16 23:24QueryWebPart showRecordSelectors and sql options with dataRegion.getSelected/getCheckedQueryWebPart showRecordSelectors and sql options with dataRegion.getSelected/getChecked TEXT_WITH_LINKSClosed     LabKey Support Forum
I think that is the right approach for now. For simple queries ("SELECT * from lists.People"), the primary key should be pulled through and used as the record selector value, but we don't do anything for queries with joins.

Perhaps we could add a property to QueryWebPart to set the underlying DataRegion's 'recordSelectorValueColumns'.
Anthony Corbett2013-04-05 11:51Jon (LabKey DevOps)2018-11-16 23:24QueryWebPart showRecordSelectors and sql options with dataRegion.getSelected/getCheckedQueryWebPart showRecordSelectors and sql options with dataRegion.getSelected/getChecked TEXT_WITH_LINKSClosed     LabKey Support Forum
That would be great. Thanks for filing the Issue.
Jon (LabKey DevOps)2016-03-17 19:53Jon (LabKey DevOps)2018-11-16 23:23QueryWebPart deprecated?QueryWebPart deprecated? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

LABKEY.QueryWebPart still works and is not deprecated

Does some of your code match up to what we have here?

https://www.labkey.org/wiki/home/Documentation/page.view?name=include

Regards,

Jon
trent2016-03-17 20:11Jon (LabKey DevOps)2018-11-16 23:23QueryWebPart deprecated?QueryWebPart deprecated? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the link.

This is what I have/had on my page:

visitsWebPart = new LABKEY.QueryWebPart({
            schemaName : 'offsite_repository',
            queryName: 'patient_visit'
            renderTo: renderElement,
            showRecordSelectors: true,
            frame: 'none',
            buttonBar: {//add custom buttons
            }
});

Looking at your page you linked to, I see the Files browser needs some extra libraries loaded. Do I need to do that to access the QueryWebPart now?

..

Ok, looking deeper into the page you linked, I found the following:

${labkey.webPart(partName='Query', showFrame='true', title = 'Module Inventory', schemaName ='core', queryName ='Modules', buttonBarPosition ='top', allowChooseQuery ='true', allowChooseView = 'true')}

Is there a way I can still use LABKEY.QueryWebPart (in JavaScript) rather that the above syntax?
I integrate custom buttons like so, in the existing code:

buttonBar: {
    includeStandardButtons: false,
    items: [
        {
            text: 'Row Actions',
            requiresSelection: true,
            items: customButtons
        },

        LABKEY.QueryWebPart.standardButtons.views,

        LABKEY.QueryWebPart.standardButtons.exportRows,
        LABKEY.QueryWebPart.standardButtons.print,
        LABKEY.QueryWebPart.standardButtons.pageSize
    ]

}

Cheers,
Trent
trent2016-03-17 20:59Jon (LabKey DevOps)2018-11-16 23:24QueryWebPart deprecated?QueryWebPart deprecated? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok.. after getting it working with the syntax:

${labkey.webPart(partName='Query', showFrame='true', title = 'Module Inventory', schemaName ='core', queryName ='Modules', buttonBarPosition ='top', allowChooseQuery ='true', allowChooseView = 'true')}

and searching `QueryWebPart` in the developer console, i find that ext3.min.js is loaded. I find this works:

<script type="text/javascript">
LABKEY.requiresExt3ClientAPI(function(){

Ext4.onReady(function(){

var vialsWebPart = new LABKEY.QueryWebPart({
            schemaName : 'offsite_repository',
            queryName: 'patient_visit',
            renderTo: 'qwpReg',
            showRecordSelectors: true,
            frame: 'none'});

console.log(LABKEY.QueryWebPart);
});

});

</script>
<div id="qwpReg"></div>

Not sure if there is a better approach....
Jon (LabKey DevOps)2016-03-18 07:29Jon (LabKey DevOps)2018-11-16 23:23QueryWebPart deprecated?QueryWebPart deprecated? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

So there was a significant change between 14.1 and 16.1, sometime around 15.2 where if you didn't enable the respective "Require ExtJS v3.4.1 to be loaded on each page" and the "Require ExtJS v3.x based Client API be loaded on each page" options within the Site Settings of the Admin Console, you would have to insert in a helper like LABKEY.requiresExtClientAPI.

So if you enable those checkboxes in Site Settings, you will not need to use those dependencies within the code itself.

Site Settings under Admin Console - https://www.labkey.org/wiki/home/Documentation/page.view?name=configAdmin
Declaring Script Dependencies - https://www.labkey.org/wiki/home/Documentation/page.view?name=scriptdepend
Namespace for LABKEY (with all the existing dependencies you can call) - https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.html

Regards,

Jon
Jon (LabKey DevOps)2015-05-12 22:41Jon (LabKey DevOps)2018-11-16 23:23QueryWebPart config problemQueryWebPart config problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

What schema is your QueryWebPart using? Generally, if the underlying query or table doesn't have a detailsURL or updateURL configured, it will not display the details or update column. Additionally, if you are using a custom query, the server will not think the custom query is editable, so an update link or insert button will not appear.

Regards,

Jon
Jon (LabKey DevOps)2015-05-14 16:58Jon (LabKey DevOps)2018-11-16 23:24QueryWebPart config problemQueryWebPart config problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2018-05-18 15:12Jon (LabKey DevOps)2018-11-16 23:24Query Selector Checkboxes on JOINED QueryQuery Selector Checkboxes on JOINED Query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

Unfortunately, this appears to is still be the case. A JOIN or a UNION will not render selectors in a custom query by default.

What kind of work are you trying to utilize the selectors for on your JOINed query?

Regards,

Jon
Ben Bimber2018-05-18 15:21Jon (LabKey DevOps)2018-11-16 23:24Query Selector Checkboxes on JOINED QueryQuery Selector Checkboxes on JOINED Query TEXT_WITH_LINKSClosed     LabKey Support Forum
I believe if you edit the metadata (you might need to add XML metadata) you can either specify one of the columns as a primary key (which will result in selectors, i think), or you can set alwaysShowRecordSelectors=true. I think any of the three things below would do it (see comments inline):

<tables xmlns="http://labkey.org/data/xml">
    <table tableName="" tableDbType="TABLE">
       <!--I think this alone will do it-->
        <pkColumnName>MyColumn</pkColumnName>
        <columns>
            <!--Another way to do the same thing as above-->
            <column columnName="MyColumn">
                <isKeyField>true</isKeyField>
            </column>
        </columns>
       <!--and I think this will force it even w/o a primary key-->
        <buttonBarOptions alwaysShowRecordSelectors="true">
        </buttonBarOptions>
    </table>
</tables>
Ben Bimber2010-08-18 15:35Jon (LabKey DevOps)2018-11-16 23:24Query -> R report / filter issueQuery -> R report / filter issue TEXT_WITH_LINKSClosed     LabKey Support Forum
i ran the above R report on our test server. i just took a look at it and saw an R process taking up ~10gb of virtual memory (attached). i closed the browser after it was clear the above R report wasnt going to load, but apparently those keep running. clearly trying to graph 700K rows is not good. i would argue that not respecting the QWP filters when switching to an R report is a bug.
jeckels2010-08-19 09:24Jon (LabKey DevOps)2018-11-16 23:24Query -> R report / filter issueQuery -> R report / filter issue TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, this sounds like a bug. I'll ask Karl to investigate.

Thanks,
Josh
Matthew Bellew2011-03-31 09:25Jon (LabKey DevOps)2018-11-16 23:24query result that doesnt make any sensequery result that doesnt make any sense TEXT_WITH_LINKSClosed     LabKey Support Forum
This is puzzling. Can you make me a 'developer' on test-ehr, and add this to the log4j.xml

    <logger name="org.labkey.api.data">
         <level value="debug"/>
        <appender-ref ref="SESSION"/>
    </logger>

This will make it possible for me to see the postgres SQL being generated.

I'm not sure how the date strings are being converted. I would use an explicit CAST('2011-03-01' AS TIMESTAMP), however, I don't think that explains what's going on.
Matthew Bellew2011-03-31 11:32Jon (LabKey DevOps)2018-11-16 23:23query result that doesnt make any sensequery result that doesnt make any sense TEXT_WITH_LINKSClosed     LabKey Support Forum
It turns out there is a really messed up row in the "Blood Draws" table. Go here

https://test-ehr.primate.wisc.edu:8443/labkey/query/WNPRC/EHR/executeQuery.view?query.Id~eq=r95061&query.queryName=Blood%20Draws&query.sort=-date%2C-quantity&schemaName=study&query.ignoreFilter=1

And you'll see the row right at the top. I didn't see the row initially because the default view has a filter on QCState, and this row has QCState="In Progress"
Ben Bimber2011-03-31 11:42Jon (LabKey DevOps)2018-11-16 23:23query result that doesnt make any sensequery result that doesnt make any sense TEXT_WITH_LINKSClosed     LabKey Support Forum
ah, yes. i put base filters on all the default views to filter out records with non-public QC states. that's why i wasnt seeing it. on the bright side, if these filters foiled me they might do their jobs for the rest of the users.
trent2011-06-02 21:27trent2011-09-27 22:52Query Join with External Data Source Possible?Query Join with External Data Source Possible? TEXT_WITH_LINKSClosed     LabKey Support Forum
oh nah. I should have tried it out before responding here. I was getting confused as the schema view shows external data sources in a different tree so was thinking an additional path was needed for the container path. Got it working with an ExtGrid with no real dramas.

 new LABKEY.ext.EditorGridPanel({
        store: new LABKEY.ext.Store({
            containerPath: 'Shared',
            schemaName: 'CLIN1',
            queryName: 'HCVRESULTS'}),
        renderTo: 'grid'});
Matthew Bellew2011-06-02 10:18Jon (LabKey DevOps)2018-11-16 23:24Query Join with External Data Source Possible?Query Join with External Data Source Possible? TEXT_WITH_LINKSClosed     LabKey Support Forum
You can define queries on external schemas. However, you can not define queries that join across different data sources. Although LabKey does a lot of preprocessing of the query, it eventually passes the query through to the underlying SQL database to process. Since SAS doesn't know about Postgres and vice versa, you can not write a query that combines data across the databases.
trent2011-06-02 15:39Jon (LabKey DevOps)2018-11-16 23:24Query Join with External Data Source Possible?Query Join with External Data Source Possible? TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh right. That makes sense. Thanks..
trent2011-06-02 16:56Jon (LabKey DevOps)2018-11-16 23:24Query Join with External Data Source Possible?Query Join with External Data Source Possible? TEXT_WITH_LINKSClosed     LabKey Support Forum
Actually, so my thought is I would somehow have a query string parameter from the URL that I could filter results with... but does that mean I would be unable to query an external data source from another project? In the schema browser, you normally create a query in a specific folder i.e. list, but since external isn't available, im guessing it might not be possible?

Please bare with me, still learning to use LabKey ;)
Matthew Bellew2011-06-02 17:05Jon (LabKey DevOps)2018-11-16 23:24Query Join with External Data Source Possible?Query Join with External Data Source Possible? TEXT_WITH_LINKSClosed     LabKey Support Forum
As long as the permissions are correct you can query across folders and projects. I see that you already discovered the syntax for doing that. The only limitations are a) user has permission to read all the tables used in the query and b) the tables are from the same datasource (underlying JDBC connection).

I'm not sure I answered your question though...
Leo Dashevskiy2015-03-19 15:39Leo Dashevskiy2015-03-19 15:39Querying for the AnnouncementsQuerying for the Announcements TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon!

It is indeed the 'announcement' schema and the 'announcement' table that has what I'm looking for.

I must've been not in the home container yesterday, when I looked at it and did not see anything in there.

Thanks for your reply.
-Leo
Jon (LabKey DevOps)2015-03-19 15:07Jon (LabKey DevOps)2018-11-16 23:24Querying for the AnnouncementsQuerying for the Announcements TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Yes, the Announcements section is visible to anyone, including guests.

The Announcements section is controlled by the Announcements Schema and within the Announcements table, which you can access via the Schema Browser.

Was this what you were looking for?

Regards,

Jon
Jon (LabKey DevOps)2018-04-27 15:25Jon (LabKey DevOps)2018-11-16 23:24Querying for median value in LabKey?Querying for median value in LabKey? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

There is a feature for Median, but it is within the UI and only with the Premium Editions of LabKey.

https://labkey.org/Documentation/wiki-page.view?name=aggregates

Regards,

Jon
olnerdybastid2018-05-01 03:32Jon (LabKey DevOps)2018-11-16 23:24Querying for median value in LabKey?Querying for median value in LabKey? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ah I see. Thanks for confirming.
Jon (LabKey DevOps)2015-08-12 17:41Jon (LabKey DevOps)2018-11-16 23:23Querying a list and a external datasourceQuerying a list and a external datasource TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

This is unfortunately true. In our documentation here, we even state that:

"Note that you cannot create joins across data sources, including joins between external and internal schema on LabKey Server."

https://www.labkey.org/wiki/home/Documentation/page.view?name=externalSchemas

The only way I've ever seen joins like that work on external datasources is when the external datasource is used as a synonym if you're using MS SQL rather than Postgres. So you could potentially mount tables and views from a different schema or DB, but have them work in LabKey as if they were local.

https://msdn.microsoft.com/en-us/library/ms187552.aspx

Regards,

Jon
Jon (LabKey DevOps)2017-07-14 11:15Jon (LabKey DevOps)2018-11-16 23:24query execution fail while using between in javascript (labkey query api method)query execution fail while using between in javascript (labkey query api method) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Atul,

Have you tried to redo the query with actual hard values to make sure that it works?

For example:

LABKEY.Query.executeSql({
               schemaName: 'DEMOSCHEMA',
               sql: "SELECT * FROM QUERYNAME WHERE import_date BETWEEN '2017-01-01' AND '2017-02-01'",
        success: function(data){
        alert("YES!!");
      }
});

If the above works, then I would recommend slightly modifying your code as such:

var m_fro_date=new Date(somedate);
var currentInsertDate=new Date(somedate2);

LABKEY.Query.executeSql({
               schemaName: 'DEMOSCHEMA',
               sql: "SELECT * FROM " + Importantdata + " WHERE import_date BETWEEN {ts \"+ m_fro_date + "\ }" + " and {ts \" +currentInsertDate+"\ }",
        success: function(data){
        alert("YES!!");
      }
});

Regards,

Jon
atul sharma2017-07-17 01:14Jon (LabKey DevOps)2018-11-16 23:24query execution fail while using between in javascript (labkey query api method)query execution fail while using between in javascript (labkey query api method) TEXT_WITH_LINKSClosed     LabKey Support Forum
Dear Jon,

It still throws "Unexpected Token Between" error.

More Over I have tried with '>' and '< 'special characters but throws error as "Unexpected Token >" .

I have tried this too.

LABKEY.Query.selectRows({
                                 schemaName: 'DEMOSCHEMA',
                                 queryName: 'QUERYNAME',
                    success: onSuccess,
                    filterArray: [
                                LABKEY.Filter.create('Import_date', ['2017-01-01', '2017-02-01'], LABKEY.Filter.Types.BETWEEN)
                        ]                       
});
function onSuccess(data)
    {
    alter("Success");
    }

This piece of code throws "Internal Server Error". (PFA)

Please Help.


Regards
Atul
Matthew Bellew2017-07-18 15:42Jon (LabKey DevOps)2018-11-16 23:23query execution fail while using between in javascript (labkey query api method)query execution fail while using between in javascript (labkey query api method) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Atul, going back to your original code here could you try using variable for your generated SQL and then printing it out (or looking at it in the debugger).

e.g.

var sql = 'SELECT * FROM ' + Importantdata+
            +'where import_date between {ts \''+m_fro_date+'\'}' +' and {ts \'' +currentInsertDate+'\' }';
console.log(sql);
LABKEY.Query.executeSql({
               schemaName: 'DEMOSCHEMA',
               sql: sql,
        success: function(data){
        alert("YES!!");
      }
});

It would be helpful to know the exact SQL you are generating.
jeckels2013-04-18 13:06Jon (LabKey DevOps)2018-11-16 23:24query difference between servers?query difference between servers? TEXT_WITH_LINKSClosed     LabKey Support Forum
Update, in case anyone else sees this problem. There was a string literal in a dependent query that needed to be cast to a VARCHAR.

We are considering SQL generation changes to reduce or eliminate the cases that need explicit CAST expressions for string literals.

Thanks,
Josh
trent2011-06-08 18:32Jon (LabKey DevOps)2018-11-16 23:24query based on list that has file attachment columns does not render attachments normallyquery based on list that has file attachment columns does not render attachments normally TEXT_WITH_LINKSClosed     LabKey Support Forum
It seems to me that you need to select entityId in order for the link to the image to work. My guess is when you don't select the value, it doesn't know how to build the link so doesn't (as entityId is one of the query string parameters, if you look at the URL).

So in order for the link to work, just select that column. Then hide it by customizing the view, and saving it as the default.
marcia hon2018-03-07 09:59Jon (LabKey DevOps)2018-11-16 23:24Queries in PostgresQueries in Postgres TEXT_WITH_LINKSClosed     LabKey Support Forum
The answer is that queries are not stored in Postgres. Instead, queries are run on the fly.
adam2018-03-07 10:13Jon (LabKey DevOps)2018-11-16 23:24Queries in PostgresQueries in Postgres TEXT_WITH_LINKSClosed     LabKey Support Forum
Custom LabKey queries are written in LabKey SQL. They can be created via the web UI or provided by a module. If created in the web UI, the query SQL and meta data is stored in the database in table query.QueryDef. In either case, at execution time the SQL is parsed, verified (for syntax, authorization, etc.), and translated into native database SQL on the fly.

More details: https://www.labkey.org/Documentation/wiki-page.view?name=customSQL

Adam
marcia hon2018-03-07 10:17Jon (LabKey DevOps)2018-11-16 23:24Queries in PostgresQueries in Postgres TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you for your full response!
kevink2011-04-30 11:23Jon (LabKey DevOps)2018-11-16 23:24queries based on an assay checked into subversionqueries based on an assay checked into subversion TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, we don't support placing custom sql queries in the assay/<name>/queries directory of a file-based module. I agree it would make writing the assay portable and much easier. For now, only the assay metadata overrides are supported for the built-in assay tables.
jeckels2010-11-16 10:04Jon (LabKey DevOps)2018-11-16 23:24QC state and study dataQC state and study data TEXT_WITH_LINKSClosed     LabKey Support Forum
zromer2018-02-14 11:43Jon (LabKey DevOps)2018-11-16 23:24Python EnginePython Engine TEXT_WITH_LINKSClosed     LabKey Support Forum
I am also encountering a similar. I can't figure out how to get transformation scripts to execute. I used the documentation here:
https://www.labkey.org/Documentation/wiki-page.view?name=programmaticQC&_docid=wiki%3A32d707ff-ed56-1034-b734-fe851e088836

which makes it look like you'll probably want $(runInfo) in the Program Command, at least if you want access to any of the run properties within the python script. I think Output File Name will be dependent on your use case - if you want the script to write any console output (like print statements or exceptions) to a file it will write the output to the file specified in Output File Name.

My confusion comes in being unable to tell whether the script is actually getting executed, and if not how to get it to execute. I have the engine set up with $(runInfo) in the Program Command, but when the module I've added my transform script to is used to upload data the script doesn't seem to do anything. I have it set to send an email to me and write a test file just to ensure it's working but neither action is happening.
Jon (LabKey DevOps)2018-02-16 18:45Jon (LabKey DevOps)2018-02-16 18:45Python EnginePython Engine TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

You don't actually need a Program Command or Output File Name.

The Program Command is used only if you need to insert in any additional commands or arguments to Python or for any of the scripting engines. Otherwise, it will just use the default option like you're running python via the command-line. Most of the time, you'll never need to put anything here unless you're doing something really specific that requires a python argument.

The Output File Name is just used if you need the console output to go somewhere. Again, this is also not a requirement unless you want the scripting engine to generate an output file.

Please take a look at our doc on the Views and Scripting configuration page here for more information: https://www.labkey.org/Documentation/wiki-page.view?name=configureScripting

Regards,

Jon
jeckels2014-10-02 13:55Jon (LabKey DevOps)2018-11-16 23:24Python APIsPython APIs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

1. We do have an API for this, but not a Python client-side binding at this time. This will handle inserting into all of the various tables, maintaining the FKs, etc. The R version is labkey.saveBatch(). The JavaScript version is LABKEY.Experiment.saveBatch(), as documented here: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Experiment.html#.saveBatch. It would be reasonably straightforward to create a Python binding for this same underlying HTTP/JSON API.

2. Unfortunately, we don't have an API in any of our supported client languages that performs a copy-to-study operation. It would be possible to create the POST that the UI does when a user performs this operation, though we don't encourage this approach as it's subject to breaking in future versions.

We'd also be happy to discuss extending our client API support if you'd be interested in a proposal for this work.

Thanks,
Josh
alpha872014-10-03 03:21Jon (LabKey DevOps)2018-11-16 23:24Python APIsPython APIs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

thanks for your answer!

We'll implement in R, then! However, lack of a copy-to-study API greatly decreases the script usefulness, so we may just decide to abandon it.

What do you mean by "proposal for this work"? Unfortunately, we do not have any funds to sponsor LabKey development. However, if we can support you in any other way, let us know!
jeckels2014-10-03 09:23Jon (LabKey DevOps)2018-11-16 23:24Python APIsPython APIs TEXT_WITH_LINKSClosed     LabKey Support Forum
At the moment, API support for copying assay data to a study isn't on planned and scheduled feature list, but knowing that there are users (with or without funding) does help us prioritize it.

It may not fit your desired workflow, but there is an option to automatically copy assay data to a study if it already contains participant and timepoint information. It's configured in the assay designer. This means that there's no explicit review step, but it might suit your needs.

Thanks,
Josh
Jon (LabKey DevOps)2018-11-12 14:41Jon (LabKey DevOps)2018-11-12 14:41Python API - How do we view the names of all the Datasets in a given study using an API call?Python API - How do we view the names of all the Datasets in a given study using an API call? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

If you are using the Python API, you can use the select_rows() call against the "study" schema and the "Datasets" table.

The study.Datasets table will allow you to see all of the datasets for the specific study container you're looking at.

For more details on setting up a select_rows() call, please refer to the following example:

https://github.com/LabKey/labkey-api-python/blob/master/samples/query_examples.py

Regards,

Jon
Jon (LabKey DevOps)2015-03-17 12:17Jon (LabKey DevOps)2018-11-16 23:24Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

Thank you for providing this to us. We will have this reviewed by our developers and get back to you.

Regards,

Jon
lewis j mcgibbney2015-03-17 12:32Jon (LabKey DevOps)2018-11-16 23:24Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
No problems Jon.
I should say, if you want to get the maven-ant-tasks-2.1.3.jar, you can grab it from the URL below
http://search.maven.org/#artifactdetails|org.apache.maven|maven-ant-tasks|2.1.3|jar
Lewis
lewis j mcgibbney2015-03-17 12:41Jon (LabKey DevOps)2018-11-16 23:24Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Just a heads up, I pushed the Java artifacts to Maven central.
https://issues.sonatype.org/browse/OSSRH-14496
https://repo1.maven.org/maven2/org/labkey/labkey-client-api/
Thanks
lewis j mcgibbney2015-06-01 16:00Jon (LabKey DevOps)2018-11-16 23:24Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Folks,
Was this ever integrated into Labkey? I wonder if the Java API will be produced as part of the release process from now on and if there is anything else I can do to make this better. We are consuming the Labkey API and have an interest in ensuring the Java API is publicly available on Maven Central.
Thanks
Jon (LabKey DevOps)2015-06-01 20:39Jon (LabKey DevOps)2018-11-16 23:24Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

We don't have any new information to report to you at this time, but we will let you know when we have an update.

Regards,

Jon
lewis j mcgibbney2015-06-01 23:24Jon (LabKey DevOps)2018-11-16 23:24Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Sounds good. It would be great to see the Java API's distributed and made available as part of the Labkey releases. We consume the Java API's directly and this patch enables that as can be seen below
http://search.maven.org/#artifactdetails|org.labkey|labkey-client-api|0.1|jar
I'll ping this one again in the near future and see what else I can do to potentially get the patch into the codebase.
Thanks for the feedback.
adam2015-07-01 18:17Jon (LabKey DevOps)2018-11-16 23:24Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
We'll look at pushing the latest version of the Java API around the time of our 15.2 release (mid July). See https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=22865 for more info.

Adam
lewis j mcgibbney2015-10-02 11:16Jon (LabKey DevOps)2018-11-16 23:23Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Folks,
Please see updated patch which can be applied against trunk.
It can be applied as follows

cd $LABKEY_HOME
patch -p0 -i LABKEY-JAVA_APIv2.patch

Please see above for using the maven-ant-tasks artifact to produce and public your artifact to staging within Sonatype OSSRH.

Additionally, this patch augments some functionality within the remoteapi build.xml descriptior by adding description attributes to each target. This means we can execute the following

lmcgibbn@LMC-032857 /usr/local/labkey_trunk/remoteapi/java(joshua) $ ant -projecthelp
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=1024m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=2048m; support was removed in 8.0
Buildfile: /usr/local/labkey_trunk/remoteapi/java/build.xml

Main targets:

 build --> build the .jar artifact if it is not up-to-date.
 build_if_dirty --> build the .jar artifact if source code is dirty.
 clean --> delete the build artifacts and compiled Java code.
 compile --> compile and build Java source code.
 deploy --> deploy to Sonatype OSSRH
 dist --> build the packaged distribution.
 jar --> generate the labkey Java .jar artifacts.
 javadoc --> build the Java API documentation.
 rebuild --> clean and then rebuild the .jar artifact.
 release --> generate the release distribution
Default target: build
jeckels2015-10-07 15:28Jon (LabKey DevOps)2018-11-16 23:24Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

I reviewed and committed the patch with revision 39927 with some very small tweaks, mostly around targeting a separate directory when generating the Maven-related JavaDoc so that we don't end up with overlapping files with the other JavaDoc build.

I've kept the issue open so track pushing a new build to Maven as we complete 15.3.

Thanks,
Josh
lewis j mcgibbney2015-10-08 04:36Jon (LabKey DevOps)2018-11-16 23:23Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
Nice one Josh. Glad to hear I can pull the remote client API for every release from now on. Good work. Thank you for update.
Jon (LabKey DevOps)2016-01-21 17:58Jon (LabKey DevOps)2016-01-21 17:58Pushing Labkey Java API to Maven CentralPushing Labkey Java API to Maven Central TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

Both process and instructions have been developed and v15.3 of the client api has been pushed to Central.

Regards,

Jon
Jon (LabKey DevOps)2016-07-18 19:51Jon (LabKey DevOps)2018-11-16 23:24Pulling LabKey data via python apiPulling LabKey data via python api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi James,

Have you checked our docs here? https://github.com/LabKey/labkey-api-python

Your script looks semi-complete since I'm seeing "import labkey" instead of:

from labkey.utils import create_server_context
from labkey.query import select_rows

Mind you, this is assuming you're using the latest version of our Python API. Do you know what version of the Python API you're using?

Also, is there a query or table called "db_test"? I checked the IP address and from what I'm seeing, you just have a table called "Database":

https://52.36.10.100/study/home/db_test/dataset.view?datasetId=5001

Regards,

Jon
james skane 930892016-07-18 21:59Jon (LabKey DevOps)2018-11-16 23:24Pulling LabKey data via python apiPulling LabKey data via python api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for your response. db_test was a table that was made earlier during our attempts to pull data with labkey. I am using version 0.4.2. After changing the imports above and the table name I am still receiving the same ServerContextError. Here is the script below:


from labkey.query import select_rows
from labkey.utils import create_server_context

server_context = create_server_context('52.36.10.100', 'home/db_test', use_ssl=True)

my_results = select_rows(
    server_context=server_context,
    schema_name='study',
    query_name='Database'
)

And below is the error:

Traceback (most recent call last):
  File "/Users/...", line 11, in <module>
    query_name='Database'
  File "/Users/...", line 274, in select_rows
    select_rows_response = _make_request(server_context, url, payload, timeout=timeout)
  File "/Users/...", line 310, in _make_request
    raise ServerContextError(e)
labkey.exceptions.ServerContextError

Is there anything I am missing that might be causing this error?

Sincerely,
James
Brian Connolly2016-07-19 09:12Jon (LabKey DevOps)2018-11-16 23:23Pulling LabKey data via python apiPulling LabKey data via python api TEXT_WITH_LINKSClosed     LabKey Support Forum
James,

The problem is with your SSL certificate. You can see this by catching the error from your select_rows call. For example, if you change your script to


from labkey.query import select_rows
from labkey.utils import create_server_context

server_context = create_server_context('52.36.10.100', 'home/db_test', use_ssl=True)

try:
    my_results = select_rows(
        server_context=server_context,
        schema_name='study',
        query_name='Database'
    )
except labkey.exceptions.ServerContextError as e:
    print "Exception Code: " + str(e.exception)
    print "Error Message: " + str(e.message)


You will see the error messages

  Exception Code: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
  Error Message: Failed to match server SSL configuration. Ensure the server_context is configured correctly.


You are running into two SSL problems. The first is that the Common Name in the SSL certificate does not match the hostname you are using in the create_server_context call (in your example code, you are using the IP address of 52.36.10.100, which does not match the Common Name of your SSL certificate which is "William Bosl"). The second is that the SSL certificate is self-signed.

If you fix both of these problem with the SSL certificate then I believe the Python api will work correctly.
wnels2@uky.edu2009-12-06 18:15Jon (LabKey DevOps)2018-11-16 23:24PTMsPTMs TEXT_WITH_LINKSClosed     LabKey Support Forum
Looking in the wrong place. Found it in the PepXmlImporter. The reports now show the mass instead of the symbol.
Please let me know if this change will screw up something else.
jeckels2014-12-16 14:31Jon (LabKey DevOps)2018-11-16 23:24PSQLException: This ResultSet is closedPSQLException: This ResultSet is closed TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

The message itself is pretty harmless. I've got a change I'll commit for 15.1 that should eliminate it.

However, reading over the code, I don't see how the ResultSet could be doubly-closed. Are you getting any other warnings or errors in your log file?

Thanks,
Josh
bront@kcr.uky.edu2014-12-16 14:48Jon (LabKey DevOps)2018-11-16 23:24PSQLException: This ResultSet is closedPSQLException: This ResultSet is closed TEXT_WITH_LINKSClosed     LabKey Support Forum
That's good to know that it's relatively harmless. It's still cropping up every minute or so.

I am seeing a few other errors that seem along the same lines, but nothing that gives a clue about the doubly-closed issue.

thanks,

bront


ERROR Table 2014-12-16 10:20:49,152 Module Starter : doFinally
org.postgresql.util.PSQLException: This ResultSet is closed.
        at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2852)
        at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getStatement(AbstractJdbc2ResultSet.java:623)
        at org.labkey.api.data.Table.doClose(Table.java:563)
        at org.labkey.api.data.JdbcCommand.close(JdbcCommand.java:62)
        at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:269)
        at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:109)
        at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:156)
        at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:140)
        at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:135)
        at org.labkey.core.dialect.PostgreSql84Dialect.purgeTempSchema(PostgreSql84Dialect.java:1298)
        at org.labkey.api.data.TempTableTracker.purgeTempSchema(TempTableTracker.java:200)
        at org.labkey.api.data.TempTableTracker.init(TempTableTracker.java:86)
        at org.labkey.core.CoreModule.startupAfterSpringConfig(CoreModule.java:586)
        at org.labkey.api.module.SpringModule.doStartup(SpringModule.java:113)
        at org.labkey.api.module.DefaultModule.startup(DefaultModule.java:265)
        at org.labkey.api.module.ModuleLoader.completeStartup(ModuleLoader.java:1214)
        at org.labkey.api.module.ModuleLoader.access$200(ModuleLoader.java:119)
        at org.labkey.api.module.ModuleLoader$2.run(ModuleLoader.java:1177)


ERROR Table 2014-12-16 17:07:43,932 ajp-bio-8009-exec-1 : doFinally
org.postgresql.util.PSQLException: This ResultSet is closed.
        at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2852)
        at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getStatement(AbstractJdbc2ResultSet.java:623)
        at org.labkey.api.data.Table.doClose(Table.java:563)
        at org.labkey.api.data.JdbcCommand.close(JdbcCommand.java:62)
        at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:269)
        at org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:109)
        at org.labkey.api.data.TableSelector.getResults(TableSelector.java:274)
        at org.labkey.api.data.TableSelector.getResults(TableSelector.java:257)
        at org.labkey.api.data.TableSelector.getResults(TableSelector.java:252)
        at org.labkey.api.data.DataRegion.initDetailsResultSet(DataRegion.java:1676)
        at org.labkey.api.data.DataRegion.renderDetails(DataRegion.java:1606)
        at org.labkey.api.data.DataRegion.render(DataRegion.java:2414)
        at org.labkey.api.view.DetailsView._renderDataRegion(DetailsView.java:65)
        at org.labkey.api.view.DataView.renderView(DataView.java:179)
        at org.labkey.api.view.DataView.renderView(DataView.java:54)
        at org.labkey.api.view.WebPartView.renderView(WebPartView.java:978)
        at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:382)
        at org.labkey.api.view.HttpView.render(HttpView.java:137)
        at org.labkey.api.view.HttpView.render(HttpView.java:122)
        at org.labkey.api.view.HttpView.include(HttpView.java:515)
        at org.labkey.api.view.HttpView.include(HttpView.java:492)
        at org.labkey.api.view.HttpView.include(HttpView.java:480)
        at org.labkey.api.view.VBox.renderView(VBox.java:79)
        at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:382)
        at org.labkey.api.view.HttpView.render(HttpView.java:137)
        at org.labkey.api.view.HttpView.render(HttpView.java:122)
        at org.labkey.api.view.HttpView.include(HttpView.java:515)
        at org.labkey.api.view.HttpView.include(HttpView.java:492)
        at org.labkey.jsp.compiled.org.labkey.api.view.template.CommonTemplate_jsp._jspService(CommonTemplate_jsp.java:213)
        at org.labkey.api.view.JspView.renderView(JspView.java:141)
        at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:382)
        at org.labkey.api.view.HttpView.render(HttpView.java:137)
        at org.labkey.api.view.HttpView.render(HttpView.java:122)
        at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:504)
        at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:399)
        at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1050)
        at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
        at org.labkey.api.view.ViewServlet.service(ViewServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1049)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:182)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        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)
bront@kcr.uky.edu2013-08-12 09:02Jon (LabKey DevOps)2018-11-16 23:24psqlexception on external schemaspsqlexception on external schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
I see issues via Database Consistency checker... now seeking a way to fix.

bront
jeckels2013-08-12 09:16Jon (LabKey DevOps)2018-11-16 23:23psqlexception on external schemaspsqlexception on external schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

This looks like it might be a LabKey Server version mismatch issue.

The upgrade from 12.3 to 13.1 renames the "DbSchemaName" column on the query.ExternalSchema table to "SourceSchemaName".

Is it possible that you're attempting to run version 12.3 against a database that's already been upgraded to 13.1?

Thanks,
Josh
bront@kcr.uky.edu2013-08-12 09:39Jon (LabKey DevOps)2018-11-16 23:24psqlexception on external schemaspsqlexception on external schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

That is exactly what has happened.

I moved the database to the upgraded version of PostgreSQL, changed the dataSource pointer in the labkey.xml file, and now I am getting the error.

I am going to restore the original database on the original server (and wait for our system admin to get back in the office before doing a full upgrade).

Question... Labkey must recognize the targeted version of PostgreSQL and update accordingly, correct?

As always, thanks for your prompt and clear help...

bront
adam2013-08-12 10:01Jon (LabKey DevOps)2018-11-16 23:24psqlexception on external schemaspsqlexception on external schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Newer versions of LabKey require more recent versions of PostgreSQL; for example, current LabKey Server releases don't support PostgreSQL 8.3 or earlier, since the PostgreSQL team no longer supports these old releasses. LabKey will refuse to start if it's pointed at an unsupported database version. Supported versions of external components are detailed here: https://www.labkey.org/wiki/home/Documentation/page.view?name=supported

LabKey Server automatically performs schema upgrades when you upgrade LabKey Server itself, but it performs no operations when you upgrade your database version. Instead, our database dialect layer automatically detects the current database version and runs the code most appropriate to that database version.

Our recommendation in general would be to upgrade your database version first, make sure that works correctly, and then upgrade LabKey version. Separating the steps will help isolate the cause of any problems, although it might not be possible in all scenarios.

I hope this helps...

Adam
Peter2007-11-06 16:00Jon (LabKey DevOps)2018-11-16 23:24ProtocolParameters & ProtocolApplicationParametersProtocolParameters & ProtocolApplicationParameters TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry for the long delay in response--

ProtocolParameters act as declarations and default values for ProtocolApplicationParameters. But since we don't have UI that prompts for non-default values, in practice the two sets of parameter values are usually identical. You are correct, the main current use for ProtocolParameters is for expanding the ProtocolApplication objects during the load of a xar file. CPAS records the values of the ProtocolParameter as ProtocolApplicationParameter values during this expansion process. CPAS never reads those values back out or uses them; they act as documentation.

To save time and space we should probably not write default param values (i.e. when ProtocolParameter = ProtocolApplicationParameter) but it hasn't risen to the top of our todo list.

Peter
Jon (LabKey DevOps)2016-04-14 21:12Jon (LabKey DevOps)2018-11-16 23:24PropertyValidator in metadata xmlPropertyValidator in metadata xml TEXT_WITH_LINKSClosed     LabKey Support Forum
Will Holtz2016-04-14 21:22Jon (LabKey DevOps)2018-11-16 23:24PropertyValidator in metadata xmlPropertyValidator in metadata xml TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

That is exactly what I was looking for. I only searched the developer's forum but that post was in the installation/core forum -- oops!

Thanks!
-Will
Matthew Bellew2012-12-07 10:39Jon (LabKey DevOps)2018-11-16 23:24Prompt to authenticate when downloading file, in IE only?Prompt to authenticate when downloading file, in IE only? TEXT_WITH_LINKSClosed     LabKey Support Forum
It sounds like rather than downloading the file itself, IE must be handing off the URL to Excel but not your credentials. Has this started happening with a new version of IE/Windows/Office?
Ben Bimber2012-12-07 10:42Jon (LabKey DevOps)2018-11-16 23:23Prompt to authenticate when downloading file, in IE only?Prompt to authenticate when downloading file, in IE only? TEXT_WITH_LINKSClosed     LabKey Support Forum
Matthew Bellew2012-12-07 11:37Jon (LabKey DevOps)2018-11-16 23:24Prompt to authenticate when downloading file, in IE only?Prompt to authenticate when downloading file, in IE only? TEXT_WITH_LINKSClosed     LabKey Support Forum
After some investigation, it looks like in most all scenarios we use Content-Disposition:attachment. The exception is when double-clicking on a file in the file-browser (vs using the download button).

I need to fire up a Windows VM, but I'll see if that fixes the problem.
Matthew Bellew2012-12-07 11:40Jon (LabKey DevOps)2018-11-16 23:24Prompt to authenticate when downloading file, in IE only?Prompt to authenticate when downloading file, in IE only? TEXT_WITH_LINKSClosed     LabKey Support Forum
PS: the reason we don't do attachment in this case, is that we want to let the browser decide which documents it knows how to display. Specifically, most browsers will display pdf files, and we don't want to defeat that feature. I think this really is somewhat botched up on the IE/Office side.

Matt
Matthew Bellew2012-12-07 11:52Jon (LabKey DevOps)2018-11-16 23:24Prompt to authenticate when downloading file, in IE only?Prompt to authenticate when downloading file, in IE only? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2019-11-22 12:02Jon (LabKey DevOps)2019-11-22 12:02Project User View error code 45B01R?Project User View error code 45B01R? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

The error code unfortunately doesn't help us here. We will need the full stack to properly identify what is going on.

Please provide the full stack error along with the specific version of LabKey you're seeing this on, including the build Id number which can be found in the Module Information section by expanding the + sign on one of the existing modules (I recommend expanding on Core to get this information).

Regards,

Jon
WayneH2019-11-22 12:16Jon (LabKey DevOps)2019-11-22 12:29Project User View error code 45B01R?Project User View error code 45B01R? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the response Jon,

forgot to follow up on the resolution of this.. It was simply the group_concat function was not updated when the server was migrated.. Easily fixed with the script provided on your website.

thanks,

WH
jeckels2012-01-27 11:17Jon (LabKey DevOps)2018-11-16 23:24Projects webpartProjects webpart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Maya,

Yes, I agree. This is a simple fix. I'll check it into the trunk for 12.1, but is this something you're interested a fix for 11.3?

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=13887

Thanks,
Josh
Nick Kerr2012-05-02 11:18Nick Kerr2012-05-02 11:18Projects listing orderProjects listing order in "Projects" WebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Leo Dashevskiy2012-05-02 11:07Leo Dashevskiy2012-05-02 11:07Projects listing orderProjects listing order in "Projects" WebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Clarified with Nick that I was talking about the "Projects" WebPart, not the menu on the left, which does seem to work fine. Bug will be filed.
adam2012-04-30 13:07Jon (LabKey DevOps)2018-11-16 23:23Projects listing orderProjects listing order TEXT_WITH_LINKSClosed     LabKey Support Forum
This seems to be working fine for me, in 12.1. Assuming you're using 12.1, I'd like to see the behavior you're experiencing. Follow up with me or Kevin and one of us will drop by your office.

Thanks,
Adam
Leo Dashevskiy2012-05-01 16:52Jon (LabKey DevOps)2018-11-16 23:24Projects listing orderProjects listing order TEXT_WITH_LINKSClosed     LabKey Support Forum
Adam, feel free to drop by any time and take a look at the behavior. I'm in B168 on the same 2nd floor. (Kevin does already know about this.)
Jon (LabKey DevOps)2021-07-13 15:24Jon (LabKey DevOps)2021-07-13 15:24Project migration between servers-IncompleteProject migration between servers-Incomplete TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Based on what I'm understanding you're doing here, it sounds like you're choosing to do this migration via Folder Import/Exports, which although is possible to do, it isn't necessarily the best option.

We've made a significant number of bug fixes since 18.2 when it comes to the Folder Import/Export functionality, which includes better data retention, so the experience where you are unable to move files from the filecontent area and subfolders does work in much later versions of LabKey.

You indicated that you are "preparing to migrate to a licensed current version", but I'm not sure what that means exactly. What specific version and distribution of LabKey are you looking to migrate over to?

With regards to migration, is the ability to do a database dump and restore from your old server to the new one (and copying your file repository as well) not possible? Ideally, if the plan is to take an old server and migrate the data to a new server, copying the database and file repository over from server to server is a lot more efficient than trying to use the LabKey UI to Export every project and Import it in to the new LabKey UI manually.

Regards,

Jon
Jon (LabKey DevOps)2017-05-09 23:16Jon (LabKey DevOps)2018-11-16 23:23Project Contacts web part not showing any usersProject Contacts web part not showing any users TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Did you setup any Project Groups in the specific project and add those users to that project group?

Also, the users in question, are they all active users as well?

Regards,

Jon
Jon (LabKey DevOps)2016-10-26 22:41Jon (LabKey DevOps)2018-11-16 23:23Programmatically setting QC statesProgrammatically setting QC states TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ariel,

The XML in question is tied to the study.xml file that gets exported out of the system with a study archive. If you actually download the importable study from our demo study tutorial (https://www.labkey.org/home/Documentation/wiki-page.view?name=setupDemoStudy), you will see something like this:

  <qcStates file="quality_control_states.xml"/>

And the study will show you a "quality_control_states.xml" file with the following:

<?xml version="1.0" encoding="UTF-8"?>
<studyqc xmlns="http://labkey.org/study/xml/qcStates">
  <showPrivateDataByDefault>true</showPrivateDataByDefault>
  <blankQCStatePublic>true</blankQCStatePublic>
  <insertUpdateDefault>Not Yet Reviewed</insertUpdateDefault>
  <qcstates>
    <qcstate name="Not Yet Reviewed" description="Data that has not been reviewed by the committee." public="true"/>
    <qcstate name="Reviewed - Passed" description="Data that has cleared the qc committee criteria." public="true"/>
    <qcstate name="Reviewed - Rejected" description="Data that has failed the qc committee criteria." public="true"/>
  </qcstates>
</studyqc>

This however wouldn't be a GUI setting (except for the standard GUI for the QCStates as described here: https://www.labkey.org/home/Documentation/wiki-page.view?name=manageQC).

Does that make sense?

Regards,

Jon
Jon (LabKey DevOps)2017-10-02 23:21Jon (LabKey DevOps)2018-11-16 23:24Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Sev,

The behavior you're describing sounds very abnormal.

Dataset permissions should stay static within the database and not reset with an upgrade, even with any custom modules.

I've tested this by manipulating the study tutorial (https://www.labkey.org/Documentation/Archive/17.2/wiki-page.view?name=setupDemoStudy) and edited the dataset permissions, then did an upgrade of the version of LabKey and the permissions on the datasets did not change.

Have you been able to reproduce this issue on another machine, such as a local computer or development/test server?

When you're doing the upgrade, are you also inadvertently doing any kind of database change? Like restoring the database from an older point?

Regards,

Jon
Sev2017-10-03 10:22Jon (LabKey DevOps)2018-11-16 23:24Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon

Thanks for the response.

Regarding our process, we run currently run all our builds (dev, testing, production) locally. Other devs have experienced the same issue as I have regarding the per dataset permissions on their own boxes.

We restore the database from a backup of the production database when we run our builds. These backups run nightly. The per dataset permissions are set on the production server, I presume these permissions should be recorded in the database and captured when we run the backup, is that correct?

As a test, I just ran a backup of the production database with the dataset permissions in place and ran a local build, restoring from the backup. When I compare the per dataset permissions between production and my local build, I see that most of the dataset permissions set to 'Edit' on production are set to 'None' on the local build. The exception to this are the two most recently added (about 2 week ago) dataset permissions. These show as 'Edit' both on production and in the local build. So, its not that the permissions are entirely wiped out as I originally stated, but inconsistent.

Can you tell me where in the database I can find the per dataset permissions? I might be able to debug on this end to try and figure out where the discrepancy is coming from.

Thanks for your help!

Sev
Ben Bimber2017-10-03 10:28Jon (LabKey DevOps)2018-11-16 23:24Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sev,

I agree with Jon that there's something abnormal happening there. These permissions should not be getting reset.

Be aware, because it wasnt in threads you mentioned, that you can import/export per-dataset permissions as an XML file. in production servers we have at times used this as a backup mechanism (they change rarely for us), and it's used in our automated testing to configure dev/test machines. Again, it's worth figuring out why they're being reset and fixing that, but it might be useful to snapshot them anyway to save work if they do.

-Ben
Sev2017-10-03 10:32Jon (LabKey DevOps)2018-11-16 23:24Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Ben. Do you have an automated mechanism for applying the xml, or does a dev have to manually import it in the security settings page? We're currently asking devs to re-apply the settings when doing a release, would be great if there was a way to do that as part of the build & deploy process.

Thanks

Sev
Ben Bimber2017-10-03 10:46Jon (LabKey DevOps)2018-11-16 23:23Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
On production and really most dev servers we're doing a DB backup/restore, so we never need to do this. The automated tests are the only time it's regularly applied, and that's done through the UI (though it's automated test code doing this). I view it mostly as useful for catastrophic failure type situations since it'd be a real pain to re-create that. The LK folks can hopefully help debug this, but you really should not need to be resetting those with new builds or when upgrading to new releases.

LabKey doesnt typically have static config files to easily bootstrap new pre-configured instances in quite the way you're describing. The nature of a LK server (which could hold all sorts of different projects) is a little different than many single-purpose servers. LabKey folder import/export is the closest thing to this, and it likely includes study permissions. You might consider that if you do need to do some type of programmatic process to create a new pre-configured server instance, though to my knowledge not a lot of groups do something like this.
Sev2017-10-04 14:57Jon (LabKey DevOps)2018-11-16 23:24Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

I noticed this issue is now marked as "Closed" but I havent gotten a follow up from Jon regarding my latest response to him to debug the problem. Please re open.

Thanks

Sev
Jon (LabKey DevOps)2017-10-04 16:02Jon (LabKey DevOps)2018-11-16 23:23Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sev,

Threads automatically shift from close to open when someone responds to it and it appears in our support monitoring dashboard. We set it to closed when we are expecting a response from someone, not just when the issue is resolved/closed. I had assumed that Ben's responses to you was sufficient here, which is why I set it to closed, expecting you to respond to Ben's comment.

Regarding your question with the database table that would record the permission, this would be seen under the core.roleassignments table, where it would show the resourceid, userid (which could be the individual's userid or the groupId of a project or site level group), and the specific role.
 
As both Ben and I said, those dataset permissions should never have reset on an upgrade since they should be saved on the database. For those permissions to be changed, there would have to be some kind of SQL script running to alter the database. If you're restoring a full backup that indeed had the permissions set on the dataset, then it should not have been affected by the software upgrade.

So this would mean there is something external that is causing the database to be written to after the upgrade. The only way I know of permissions to be overwritten like this that isn't done directly in the Manage Security section of the Study would be via a study reload where the XML within the study archive would overwrite the information there.

Is it possible that you have some kind of pipeline job setup where it's running old study reloads that doesn't have the permissions set? Did you have a chance to look and see if the labkey.log recorded any activity after the upgrade completed? Study reloads would list themselves there and also within the pipeline section of that specific container under Admin > Go To Module > Pipeline.

Regards,

Jon
Sev2017-10-05 09:06Jon (LabKey DevOps)2018-11-16 23:23Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the info Jon. We don't have any pipeline processes, but I'll dig into some of the rest of your questions. I'm at the dev conference with the rest of the OHSU LabKey team so perhaps we will have a chance to say hello in real life.

Thanks again for your help, appreciate it!

Sev
Jon (LabKey DevOps)2017-10-05 11:38Jon (LabKey DevOps)2018-11-16 23:24Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Sev,

Please respond to this post once you've got an update so it will reopen and we'll proceed from there.

Look forward to speaking to you at the conference!

Regards,

Jon
Sev2017-10-06 14:31Jon (LabKey DevOps)2018-11-16 23:24Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Ive fixed the issue, it was on our end. Thanks for your help! And Trey's as well in the open work session.

What was going on is during our build process, we run a dataset registration script. We have some tables being created in the backend that we register so LabKey will recognize them as datasets. During this process a new entityid is generated, so if the table was already registered as a dataset the existing relationships based on entityid are broken. Ive updated the script to use the existing entityid if the dataset has already been registered and now the permissions are persisting as expected.

Thanks again,

Sev
Jon (LabKey DevOps)2017-10-06 14:39Jon (LabKey DevOps)2017-10-06 14:39Programattically assign per dataset permissions in serverProgramattically assign per dataset permissions in server TEXT_WITH_LINKSClosed     LabKey Support Forum
Great to hear Sev!

Glad everything is working now and that you were able to get help from us in-person! It was nice meeting you at the LabKey User Conference!

Regards,

Jon
jeckels2009-12-17 14:40Jon (LabKey DevOps)2018-11-16 23:24programatically set globus node security info and default pipeline root?programatically set globus node security info and default pipeline root? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

That's correct, right now the only way to set up the certificates is to upload through the UI. The pipeline configuration for each project or folder is stored in the database. At the moment, XML configuration is for site-wide settings.

In the future the projects and folders could be configured through XML in the file system too, but it would need to be someplace other than the pipeline directory itself since those files are available for download to anyone with read access to the folder. Let me know if you'd like to discuss this in more detail.

Thanks,
Josh
Brian Pratt2009-12-17 15:08Jon (LabKey DevOps)2018-11-16 23:24programatically set globus node security info and default pipeline root?programatically set globus node security info and default pipeline root? TEXT_WITH_LINKSClosed     LabKey Support Forum
Huh, I wouldn't have thought of those certs as any less site-wide than the hostname of the node they're used on, which *is* set in the XML config. If it's really one pipeline config per project, shouldn't the globus node IP/hostname be a per-project setting?

Thanks,
Brian
jeckels2009-12-18 10:02Jon (LabKey DevOps)2018-11-16 23:24programatically set globus node security info and default pipeline root?programatically set globus node security info and default pipeline root? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

While each project uses the same Globus server as the rest of the site, they can authenticate as different users. For some of our deployments, each lab has its own project and must submit jobs as a specific Globus user so that resource limits are respected.

Thanks,
Josh
Brian Pratt2009-12-18 10:58Jon (LabKey DevOps)2018-11-16 23:23programatically set globus node security info and default pipeline root?programatically set globus node security info and default pipeline root? TEXT_WITH_LINKSClosed     LabKey Support Forum
Makes sense. I was confusing the set of certs in question, I think.

So now to figure out how to stash these in the database programatically, I guess. The goal being a fairly simple turnkey implementation of CPAS for those just getting started, and the twist being that these keys may be updated with some frequency as the globus node winks in and out of existence as demanded.

Thanks,

Brian
Leo Dashevskiy2014-12-12 15:25Leo Dashevskiy2014-12-12 15:25Profiling a LabKey SQL query with some "virtual" tables...Profiling a LabKey SQL query with some "virtual" tables... TEXT_WITH_LINKSClosed     LabKey Support Forum
Got it, thanks!
Leo Dashevskiy2014-12-12 14:39Jon (LabKey DevOps)2018-11-16 23:24Profiling a LabKey SQL query with some "virtual" tables...Profiling a LabKey SQL query with some "virtual" tables... TEXT_WITH_LINKSClosed     LabKey Support Forum
Anyone from the LabKey team with any comments on this, please?
kevink2014-12-12 14:45Jon (LabKey DevOps)2018-11-16 23:23Profiling a LabKey SQL query with some "virtual" tables...Profiling a LabKey SQL query with some "virtual" tables... TEXT_WITH_LINKSClosed     LabKey Support Forum
You can find the generated SQL in the "admin console > queries" page. The InputSamples query is a custom query in the HIPCMatrix module that selects the SampleSet samples used in the expression matrix.
Leo Dashevskiy2014-12-12 15:02Jon (LabKey DevOps)2018-11-16 23:23Profiling a LabKey SQL query with some "virtual" tables...Profiling a LabKey SQL query with some "virtual" tables... TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks, Kevin!

I'm seeing in my query of interest snippets like this: "protocollsid = ?" and that makes pgAdmin error out.
Would you know, what those are and what the correct value should be?
kevink2014-12-12 15:23Jon (LabKey DevOps)2018-11-16 23:24Profiling a LabKey SQL query with some "virtual" tables...Profiling a LabKey SQL query with some "virtual" tables... TEXT_WITH_LINKSClosed     LabKey Support Forum
On the query profiler page, there is a link under the Traces column. If you click that link you should be able to see the generated SQL with parameters replaced.
Jon (LabKey DevOps)2015-06-10 13:23Jon (LabKey DevOps)2018-11-16 23:24Problem with Wiki pageProblem with Wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Saravanan,

"test_page" isn't actually the directory, but the name of the actual wiki itself.

Your code is telling the page to render the wiki page called "test_page" into the Div Tag called "test_container".

For example, that URL you referenced here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=include

That actual wiki page has the name of "include", so if I wanted to embed that into another wiki page, I would have written the code like this:

var test = new LABKEY.WebPart({
   partName: 'Wiki',
   renderTo: 'test_container',
   name: 'include',
});
test.render();

And it would populate in my Div Tag that has the id called "test_container".

Does that make more sense?

Regards,

Jon
saravanan adaikkalavan2015-06-11 06:03Jon (LabKey DevOps)2018-11-16 23:24Problem with Wiki pageProblem with Wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

   Even I'm referring the test_page as the Wiki page only. What I meant to say was that test_page resides in the same directory as the page which is invoking it. I followed the same way which you have specified. My web page contains a query part and 2 button below that. I have attached a reference screenshot for you. The result I'm getting is that the same page gets embedded in the test_container instead of the test_page. I have checked that using firebug as well.

You inputs would be very helpful in this issue.

Thanks!
Jon (LabKey DevOps)2015-06-11 10:56Jon (LabKey DevOps)2018-11-16 23:24Problem with Wiki pageProblem with Wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
HI Saravanan,

Can you send us your code that you're having issues with? (Edit: Please send us the entire wiki code you're using on that page, not just a snippet).

From the looks of things, it appears you have two webparts within that wiki page.

Regards,

Jon
saravanan adaikkalavan2015-06-11 11:00Jon (LabKey DevOps)2018-11-16 23:24Problem with Wiki pageProblem with Wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes Jon. I have query web part and I'm trying to embed Wiki web part as well in the same page.

Thanks!
Jon (LabKey DevOps)2015-06-11 11:25Jon (LabKey DevOps)2018-11-16 23:24Problem with Wiki pageProblem with Wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for confirming this Saravanan.

Can you send me your full wiki page code you're using so I can better troubleshoot the issue you're having?

Regards,

Jon
saravanan adaikkalavan2015-06-11 12:26Jon (LabKey DevOps)2018-11-16 23:24Problem with Wiki pageProblem with Wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Can you give your email id so that I can send you the code?
Jon (LabKey DevOps)2015-06-11 12:36Jon (LabKey DevOps)2018-11-16 23:23Problem with Wiki pageProblem with Wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Saravanan,

You have access to the URMC project, which you can drop your code there as a text file:

https://www.labkey.org/project/URMC/File%20Transfer/begin.view?

Or you can create a ticket for this and attach your code there:

https://www.labkey.org/project/URMC/Support%20Tickets/begin.view?

Unless your code has PHI data or other sensitive information in it, there shouldn't be any worry about providing the code to us here.

Regards,

Jon
Jon (LabKey DevOps)2015-06-15 21:50Jon (LabKey DevOps)2018-11-16 23:23Problem with Wiki pageProblem with Wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Saravanan,

So I looked over your VariantSelection.html file and it looks like there was a slight error in the code.

It looks like the partConfig: was missing in the code in the bottom section of the query. So instead of:

                name: 'popup_redirect',

It should actually be:

                partConfig: {name: 'popup_redirect'},

Reference: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.WebPart.html

Also, the last line that has "initiateRedirect(mainURL);" actually has no reference in the rest of the code, so you will need to define it.

Otherwise, just make the change to partConfig and you should see it display correctly.

Regards,

Jon
kevink2010-08-31 10:24Jon (LabKey DevOps)2018-11-16 23:23problem with web folder after moving file-based module?problem with web folder after moving file-based module? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, the java modules include one extra directory to contain java source code. You should place the EHR files under the 'ehr/resources' directory instead.

Note the extra 'resources' directory for java modules in the doc pages:
https://www.labkey.org/wiki/home/Documentation/page.view?name=simpleModules
Ben Bimber2010-08-31 10:53Jon (LabKey DevOps)2018-11-16 23:24problem with web folder after moving file-based module?problem with web folder after moving file-based module? TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks, i was just assuming they'd behave the same. seems to be working now.
jeckels2013-07-25 14:42Jon (LabKey DevOps)2018-11-16 23:23Problem with starting activemq in MacProblem with starting activemq in Mac TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

If you restore the original activemq.xml file, does the service start up again?

Are those log messages from a startup attempt that worked? Do you get any new log messages after attempting another startup with the edited activemq.xml?

Thanks,
Josh
reshmyunni17782013-07-25 22:45Jon (LabKey DevOps)2018-11-16 23:24Problem with starting activemq in MacProblem with starting activemq in Mac TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes.If restore original activemq.xml file.The service get started.
I cleared log messages from startup attempt that worked.
The attached log messages are from after attempting startup with the edited activemq.xml.
jeckels2013-07-26 09:43Jon (LabKey DevOps)2018-11-16 23:23Problem with starting activemq in MacProblem with starting activemq in Mac TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

It looks like the attachment didn't make it. Can you repost?

Thanks,
Josh
daves2010-02-23 13:43Jon (LabKey DevOps)2018-11-16 23:23problem with specific webpart/html filenames?problem with specific webpart/html filenames? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben, this is probably a bug. I will investigate and open a new issue if I can reproduce it. It might be caused by the space in the name.

For now, omit the title and name the file to be whatever you want to be shown in the drop-down. The web part name is displayed only to admins--the title of the view shown by the web part is what all users see.
Dave Bradlee2013-10-04 17:05Jon (LabKey DevOps)2018-11-16 23:24Problem with Requestability RulesProblem with Requestability Rules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

It sounds like you expect all vials to be not requestable. (Note available and requestable are different. Vials could be available but because of a requestability rule, not requestable).
What I would suggest to help figure this out is, first, remove the other requestability rules to make sure they are not playing a role. (In 13.2 you can even remove the Locked In Request check, BTW.) All requests should be visible in the Specimen Requests page, even those that are in a final state, but any existing request would only make a vial not requestable.

If you still think it's something with your custom query, run the query independently (from the schema browser) to see the results (whether those 6 are included or not). Perhaps you can debug your query that way.

Thanks.

Dave
jdutra2013-10-10 13:48Jon (LabKey DevOps)2018-11-16 23:24Problem with Requestability RulesProblem with Requestability Rules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dave,

Thanks for your response. I'm a little confused about your distinction between available and requestable. The "requestability rules" screen always refers to marking vials available/unavailable. The only exception is the administrator override option using the "requestable" column, which we don't use.

In any case, we now have 13.2 installed on our development server, and I did some messing around. First, I should explain that my query is looking to find "the first x available vials" for a list of subjects and mark them unavailable. Which means that the results will change depending on what other rules are run before the query, and it may return a different number of vials as well.

So, with no other requestability rules being enforced, my query returns 798 vials, the import says that 798 vials were marked unavailable based on that rule, and SpecimenDetail shows 798 vials unavailable with my query as the reason. Perfect.

Then I added the Locked in Request Check to the requestability rules, after my query. The query and the import still say 798 vials, but the number of vials in SpecimenDetail is 718. I suspect that most of that is legitimate - the vials were re-marked as unavailable due to being locked in a request. However, the 6 vials I mentioned originally are now available. It seems that the "Locked in Request Check" is remarking them as available, which it really shouldn't be doing.

Finally, I moved the Locked in Request Check BEFORE my query. I couldn't do this in 13.1, but it's allowed in 13.2. It works perfectly again. We hope to upgrade our production server soon, so I can work around my problem by re-ordering the rules.

I looked at the "affected vials" for the Locked in Request Check rule and the 6 vials I'm having such trouble with are definitely not in there, so I just don't understand why they would be affected by the Locked in Request Check rule at all.

- Jen
kevink2010-10-15 18:35Jon (LabKey DevOps)2018-11-16 23:23problem with QWP removable filtersproblem with QWP removable filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I broke the "clear all filters" link yesterday and it should be fixed now.
Andy Straw2014-01-06 13:42Jon (LabKey DevOps)2018-11-16 23:23Problem with Query.saveQueryViews() on public viewsProblem with Query.saveQueryViews() on public views TEXT_WITH_LINKSClosed     LabKey Support Forum
As I have experimented with this more, what I'm seeing is that there end up being two views with the same name: one public, and one private. If you go to Manage Views, you see only the public one; if you delete that one, the private one then shows up. Similarly, only one shows up in the View menu, and it seems to be the public one; if you delete it, then the private one shows up.

When my code tries to update the view, it always updates the private one.
- If there is only a private one, that one gets updated, and everything works fine.
- If there is only a public one, it seems to be able to create a private one with the same name. But now there are two views where I really only want one, and on subsequent attempts to update the view...
- If there are both a public and a private, I get an error.

If I could get public/private info about the view from getQueryViews() and set public/private on the view in setQueryViews() I could always update the single view.

Andy
Andy Straw2014-01-06 14:00Jon (LabKey DevOps)2018-11-16 23:23Problem with Query.saveQueryViews() on public viewsProblem with Query.saveQueryViews() on public views TEXT_WITH_LINKSClosed     LabKey Support Forum
Note the behavior I'm seeing with my code also occurs just using "Customize View": create a view as public to start with, then save another with the same name as private - you _CAN_ save the two views with the same name. But if you try to save again as private (you're really trying to save the public view as private), you get an error.

Andy
jeckels2014-01-06 17:46Jon (LabKey DevOps)2018-11-16 23:24Problem with Query.saveQueryViews() on public viewsProblem with Query.saveQueryViews() on public views TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy,

You should be able to use the "shared" property (a boolean) in the response from getQueryViews() to see if an existing view is public or not.

Similarly, as it sounds like you've discovered, you can control whether a saved view is public or not with the "shared" property when saving. However, looking at the code, it looks like it may handle promoting a private view to be public, but not the other way around.

As a client-side workaround, one possibility would be to call deleteView API. It's not exposed via a JavaScript wrapper in LABKEY.Query, but an example usage from the Customize View UI looks like:

        Ext.Ajax.request({
            url: LABKEY.ActionURL.buildURL("query", "deleteView", this.containerPath),
            jsonData: {schemaName: this.schemaName, queryName: this.queryName, viewName: this.viewName, complete: complete},
            method: "POST",
            scope: this,
            success: function() { window.location.reload() }
        });

Can you reply with the error you're getting when saving when both public and private versions already exist?

Thanks,
Josh
kune2015-03-03 07:23kune2015-03-03 07:23Problem with FK references core.UsersProblem with FK references core.Users TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Adam,
i noticed that every module (not just file based) uses sql scripts to define its schema, now it is clear :)

Michal
kune2015-03-03 13:18kune2015-03-03 13:18Problem with FK references core.UsersProblem with FK references core.Users TEXT_WITH_LINKSClosed     LabKey Support Forum
I didn`t know there is so much possibilities in schema.xml file... is there reference to this file? i found just brief description in module file map. I would naturally prefer DB FK is there any advantages?

Thank for information Michal
kune2015-03-03 20:17kune2015-03-03 20:17Problem with FK references core.UsersProblem with FK references core.Users TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you! I`ll study it.

Michal
kevink2015-03-03 07:55kevink2015-03-03 07:55Problem with FK references core.UsersProblem with FK references core.Users TEXT_WITH_LINKSClosed     LabKey Support Forum
You can also leave off the constraint and add a FK at the query level within the server using the metadata xml:

    <ns:column columnName="ResponsiblePersonId">
        <ns:columnTitle> Responsible Person</ns:columnTitle>
        <ns:nullable>true</ns:nullable>
        <ns:datatype>userid</ns:datatype>
        <ns:scale>30</ns:scale>
        <ns:fk>
          <ns:fkColumnName>UserId</ns:fkColumnName>
          <ns:fkTable>Users</ns:fkTable>
          <ns:fkDbSchema>core</ns:fkDbSchema>
        </ns:fk>
      </ns:column>
kevink2015-03-03 14:06kevink2015-03-03 14:06Problem with FK references core.UsersProblem with FK references core.Users TEXT_WITH_LINKSClosed     LabKey Support Forum
We don't put enforced constraints on the user columns to make deleting users easier and to preserve the user id value even after the user is deleted. Most of the tables in LabKey have a CreatedBy and ModifiedBy column that don't have an FK to the users table. As an aside: the Owner, Created, CreatedBy, Modified, and ModifiedBy columns will be populated for you when you insert or update a row.

The xml schema reference documents the various metadata available in the schema.xml file:

https://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/schema-summary.html

The same metadata is used for custom queries as well:

https://www.labkey.org/wiki/home/Documentation/page.view?name=metadataSql
https://www.labkey.org/wiki/home/Documentation/page.view?name=columnMetadata
adam2015-03-03 06:59Jon (LabKey DevOps)2018-11-16 23:24Problem with FK references core.UsersProblem with FK references core.Users TEXT_WITH_LINKSClosed     LabKey Support Forum
You can't create an FK to core.Users because it's a view. Its definition in core-create.sql is:

    CREATE VIEW core.Users AS
        SELECT Principals.Name AS Email, UsersData.*, Principals.Active
        FROM core.Principals Principals
            INNER JOIN core.UsersData UsersData ON Principals.UserId = UsersData.UserId
        WHERE Type = 'u';

You probably want to define your FK to core.Principals(UserId) instead.

Adam
adam2015-03-03 07:33adam2015-03-03 07:33Problem with FK references core.UsersProblem with FK references core.Users TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, all modules use the same sql script mechanism; you'll find some good examples in the java modules (and probably a few bad examples).

Adam
jeckels2013-06-20 14:21Jon (LabKey DevOps)2018-11-16 23:24Problem with Automated Study ReloadProblem with Automated Study Reload TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Can you try using a GET request instead of a POST? I didn't check extensively for what might have changed in the code, but it looks like it's expecting a GET for this kind of request now.

Thanks,
Josh
jdutra2013-06-21 06:30Jon (LabKey DevOps)2018-11-16 23:23Problem with Automated Study ReloadProblem with Automated Study Reload TEXT_WITH_LINKSClosed     LabKey Support Forum
Wow, that was an easy fix, and it works now. Thanks!
jeckels2013-08-30 15:32Jon (LabKey DevOps)2018-11-16 23:23Problem with alert displayProblem with alert display TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Is your code running inside of LabKey Server, or as an external process? It sounds like this may be more of a general ActiveMQ/JMS type question, where other developer forums that aren't related to LabKey Server might provide useful replies.

Thanks,
Josh
jeckels2013-07-23 14:39Jon (LabKey DevOps)2018-11-16 23:23Problem w/ ActiveMQProblem w/ ActiveMQ TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I agree, from the log it looks like a healthy start for the job. Some other things to consider:

1. Is there potentially a NFS or similar file issue that's causing the job to hang? Are there any updates to the kinship.txt.log file when it purports to be starting?

2. Can you get a thread dump from the remote server? It should be listening for changes to the threadDumpRequest file just like the web server does.

Thanks,
Josh
Brian Connolly2012-07-17 13:11Jon (LabKey DevOps)2018-11-16 23:23Problems with Rlabkey packageProblems with Rlabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Michael,

I am sorry about the confusion caused by this error message. This message means that the authentication to the server has failed most likely because Rlabkey has been incorrectly configured. On the machines where this is failing, can you verify that you the netrc files are configured properly (see https://www.labkey.org/wiki/home/Documentation/page.view?name=netrc)

-Brian
michael_stover@urmc.rochester.edu2012-07-17 13:38Jon (LabKey DevOps)2018-11-16 23:24Problems with Rlabkey packageProblems with Rlabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
That is what I thought too, and we went over the contents of the _netrc file several times. This same _netrc file works with the SAS connector. Any other possibilities?
Brian Connolly2012-07-17 14:06Jon (LabKey DevOps)2018-11-16 23:24Problems with Rlabkey packageProblems with Rlabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Michael,

Given that the status code is 401, this most likely an authentication problem or lack of permissions problem. It could be something else, but we should we rule out authentication or permissions first.

The first thing to check, is your labkey.log file. You will want to see if there are any login error messages in the file. All failed login attempts get logged here.

The second thing to check is Audit Log. All successful and failed logins get logged here. This log will tell you if the Rlabkey connection has successfully logged prior to attempting the selectRows. To access the AuditLog
- goto the Admin Console
- Click on the Audit Log link
- In the drop down at the top of the page, select User Events


The third thing to verify is that the user account actually has permissions to access the table in the selectRows statement, by logging into the LabKey Server as that user and using the schemaBrowser.
michael_stover@urmc.rochester.edu2012-07-18 09:37Jon (LabKey DevOps)2018-11-16 23:23Problems with Rlabkey packageProblems with Rlabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Brian. The problem was authentication, but not in the _netrc file, but rather in its location. We had it in the user's home directory, which is where it is for me and another user for whom it works. For this one user, it needed to be in her "Documents" directory (on windows), because for her, R is putting the libraries under \home\Documents\R\win-library rather than \home\R\win-library.

I'm not sure what causes this difference in R installation or why Rlabkey changes where it searches for _netrc depending on where it is located. Maybe it is making assumptions about where it is located by default and doing a relative path search?
Jon (LabKey DevOps)2018-02-16 22:36Jon (LabKey DevOps)2018-11-16 23:24Problems with Python transformation scriptProblems with Python transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

To see if your transform script is getting called, you can enable the Save Script Data option in your Assay. Turning that feature on in the assay is a great way to debug your transform script and see what values it is passing across to the Assay Run and Assay Data tables. (
https://www.labkey.org/Documentation/wiki-page.view?name=programmaticQC)

Regarding the Program Command, if you enable the Save Script Data option, using that option in the Program Command will not be necessary. But if you do want to use it, I would recommend adding quotes around it like "${runInfo}". This is especially important if your path to python has spaces in it.

Regards,

Jon
Matthew Bellew2008-02-18 19:51Jon (LabKey DevOps)2018-11-16 23:23Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
There is pretty extensive documentation of the apache ftpserver here

http://mina.apache.org/ftpserver.html

I really like the idea of having a test page in the LabKey Server. I'll definitely look into that for 8.1 or 8.2.

service.bat creates the service named "ftpd". Assuming everything is set up correctly you would then start it using the command "net start ftpd"
pdickerson2008-02-19 07:56Jon (LabKey DevOps)2018-11-16 23:24Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
With my working directory set to the install directory for the FTP sderver software, I issued this command to install a Windows service for the FTP server:
bin\service install LabKeyFTP -xml res\conf\ftpd.xml

Note that the instructions at the end of https://www.labkey.org/wiki/home/Documentation/page.view?name=configureFtp are missing some "\" characters in the command line.

This does install the service. However, when I attempt to start the service, the following error is logged:
[2008-02-19 10:37:55] [info] Running Service...
[2008-02-19 10:37:55] [info] Starting service...
[2008-02-19 10:37:55] [947 prunsrv.c] [error] Failed creating java
[2008-02-19 10:37:55] [1202 prunsrv.c] [error] ServiceStart returned 1
[2008-02-19 10:37:55] [info] Run service finished.
[2008-02-19 10:37:55] [info] Procrun finished.

I searched on the web for errors like this, and found some that said it was because JAVA_HOME wasn't defined and/or the java path wasn't in the system "Path" environment variable. I added a system-level JAVA_HOME environment variable, and added the same folder to the end of the system Path variable. I rebooted, but the service still returned the same error.

I found another note that said it couldn't deal with spaces in the path names, so I changed the paths to the short-name equivalent (C:\PROGRA~1\LABKEY~1\etc), rebooted and tried again, but it still failed with the same error.
Matthew Bellew2008-02-19 08:35Jon (LabKey DevOps)2018-11-16 23:24Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
I was just going to suggest both those things. To avoid the spaces and short name weirdness another thing you could try is using linkd.exe to create a symbolic link from say c:\java to your install location.

If you don't have linkd.exe it is at

http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
pdickerson2008-02-19 08:53Jon (LabKey DevOps)2018-11-16 23:24Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
I saw another web page that said the problem was a missing msvcr71.dll file or that the file couldn't be found by the software because it wasn't in the appropriate path.

This file does exist in the ftpserver\bin folder, but I also copied it to the Windows\system32 folder in case it wasn't finding the file. This didn't solve the problem either.
pdickerson2008-02-19 12:46Jon (LabKey DevOps)2018-11-16 23:23Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
I have made some progress.

The file "service.bat" in the ftpserver\bin folder has a couple of lines similar to:

set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll

However, there is no "jre" folder in this path in my LabKey installation.

When I change this to:

set PR_JVM=%JAVA_HOME%\bin\client\jvm.dll

And then remove and re-install the service using the service.bat file, then the service is able to start.

In my installation, the "jre" folder is "...\LabKey Server\jre1.5.0_11", and the JRE_HOME and JAVA_HOME variables equate to this folder. The next folder below this is "\bin", not "\jre\bin".
Matthew Bellew2008-02-19 16:05Jon (LabKey DevOps)2018-11-16 23:24Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
Great. This script should be fixed, it shouldn't require a JDK. I'll make a fix, and try to get it pushed back to the ftpserver sources.

https://www.labkey.org/issues/home/developer/issues/details.view?issueId=5095
pdickerson2008-03-12 10:51Jon (LabKey DevOps)2018-11-16 23:23Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
The FTP service is running on our server now, but I have been unable to use it to copy files to the server. I can open a window from the "Open FTP" button in a project, and then open that URL in Internet Explorer, but I am unable to copy files to the folder. I have also tried opening the same FTP URL in Windows Explorer, and in other FTP clients such as FileZilla. When I attempt to copy a file, ASCII files appear to copy (an icon for the file appears in the target window) but the file doesn't actually copy (and the icon disappears if you refresh); binary files don't copy at all and produce various error messages.
myatthu1986@gmail.com2008-12-16 03:12Jon (LabKey DevOps)2018-11-16 23:24Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello all,

I am using apache ftp sever ftpserver-1.0.0-M3.
I want to access my ftp server from any computers which is same network or not.
eg. ftp://pcname:2121/..

if you have ftpd.xml file,please share me.
I want to know how and where to define server address in ftpd.xml file.

here is my current ftp file...

<?xml version="1.0" encoding="UTF-8"?>

<server xmlns="http://mina.apache.org/ftpserver/spring/v1"
    xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd "
    id="myServer">
    
    <listeners>
        <nio-listener name="pc69" port="2121" implicit-ssl="false" idle-timeout="60" local-address="***.***.*.***">           
            <data-connection idle-timeout="600">
                <active enabled="true" local-address="***.***.*.***" local-port="2121" ip-check="true" />
                <passive ports="2121" address="pc69" external-address="***.***.*.***" />
            </data-connection>
            <blacklist>1.2.3.0/16, 1.2.4.0/16, 1.2.3.4</blacklist>
        </nio-listener>
    </listeners>
    
    <file-user-manager file="./res/user.gen" />
    
</server>
Matthew Bellew2008-12-16 09:46Jon (LabKey DevOps)2018-11-16 23:24Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
Brian Connolly2008-12-16 11:11Jon (LabKey DevOps)2018-11-16 23:24Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
Myat,

Are you using the Apache FTP server as part of your LabKey Server? Or is it a stand-alone FTP server?

If you are using it with your LabKey Server, can you please tell me what version of the PipelineFTP software you are using. You can find the version # in the name of the file that you downloaded. It should be of the format 2.x or 8.x

Thanks,

-Brian
myatthu1986@gmail.com2008-12-17 03:34Jon (LabKey DevOps)2018-11-16 23:23Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
I am using Apache Ftp Server alone , not Labkey server.
What my problem is
when i add this line
"config.listeners.default.address=***.***.*.***" in ftpd.properties file,
i get this message

C:\ftpserver\bin>service install ftpd -prop c:\ftpserver\res\conf\ftpd.propertie
s
Installing the service 'ftpd' ...
Using FTPD_HOME: C:\ftpserver
Using JAVA_HOME: c:\Java\jdk1.6.0
Using JVM: c:\Java\jdk1.6.0\jre\bin\server\jvm.dll
start
start;-prop
start;-prop;c:\ftpserver\res\conf\ftpd.properties
start;-prop;c:\ftpserver\res\conf\ftpd.properties
The service 'ftpd' has been installed.

C:\ftpserver\bin>net start ftpd
The Apache FtpServer ftpd service is starting.
The Apache FtpServer ftpd service could not be started.

The service did not report an error.

More help is available by typing NET HELPMSG 3534.


C:\ftpserver\bin>


I mean i cannot define address manually.
How can i do it.
Plsease tell me.
Matthew Bellew2008-12-17 09:44Jon (LabKey DevOps)2018-11-16 23:24Problems installing/starting FTP ServerProblems installing/starting FTP Server TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm sorry to say that you're posting your question in the wrong place. This is the support site for the LabKey Server, not Apache. You might have better luck asking on the Apache mailing lists.

  http://mina.apache.org/ftpserver/

Good luck,
Matt
jeckels2013-07-17 13:34Jon (LabKey DevOps)2018-11-16 23:24Problem in start ActiveMQ server.Problem in start ActiveMQ server. TEXT_WITH_LINKSClosed     LabKey Support Forum
Have you checked the ActiveMQ log files for errors? You may find the root cause in ./data/activemq.log.

Thanks,
Josh
Will Holtz2016-02-29 07:59Will Holtz2016-02-29 07:59Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon -- I look forward to trying it out!

-Will
Will Holtz2015-11-12 15:58Jon (LabKey DevOps)2018-11-16 23:24Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
I forgot to mention that for the purposes of a test case, the R view is just the default R view code that is contained in a new R view (spits the table back out).

-Will
Jon (LabKey DevOps)2015-11-13 14:25Jon (LabKey DevOps)2018-11-16 23:24Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

For the R-View to render, it needs to be utilized in a WebPart rather than a QueryWebPart.

Take a look at my example here. I used the default Importable Study we provide on LabKey.org and ran it locally:

<div id='RunsDiv'/>

<script type="text/javascript">

Ext4.onReady(function() {
    var qwp1 = new LABKEY.WebPart({
    partName: 'Report',
        renderTo: 'RunsDiv',
    containerPath: '/home/Importable Study',
        partConfig: {
        reportId: 'db:26',
        showSection: 'labkeyl'
        }
    });
qwp1.render();
});
</script>

The R view in question is coming from the Lab Results table in my study schema. If I access that R report directly, I can see the ID number of that report ID via my URL:

http://localhost:8080/labkey/study/home/Importable%20Study/dataset.view?datasetId=5007&Dataset.reportId=db%3A26

And if I go to the Source Tab of my R view, I can see the image being called is labkeyl due to the filename being indicated as: png(filename="${imgout:labkeyl}", width = 650, height = 480);

Note: It's optional for me to provide the containerPath or the showSection. Also, I could have written the same code above using jQuery like:

<p> ${labkey.webPart(partName='Report', showFrame='true', reportId = '26', showSection='labkeyl')} </p>

Configure the above code a try and see how that works out for you.

Regards,

Jon



References:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.WebPart.html
https://www.labkey.org/wiki/home/Documentation/page.view?name=wikiInsertExamples
Will Holtz2015-11-13 14:57Jon (LabKey DevOps)2018-11-16 23:23Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the reply. It appears my original (two) posts failed to make my problem clear. I have a LABKEY.QueryWebPart on a custom page. By default this QueryWebPart displays a table. I'd like for users to be able to make use of the 'View' button that is part of the QueryWebPart and switch back and forth between various views of the data, including one or more R-views. I had assumed this was part of the functionality of a QueryWebPart, since it lists associated R views in the View button drop down by default.

-Will
Jon (LabKey DevOps)2015-11-13 15:12Jon (LabKey DevOps)2018-11-16 23:24Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I will confirm this, but from what I understand, the R view is considered to be a Report rather than a Query, which would explain why a QueryWebPart would prevent it from rendering. Query results always render as a grid, as opposed to the R view, which would make sense as to why it doesn't render.

I'll circle back with you once I get this confirmed.

Regards,

Jon
Jon (LabKey DevOps)2015-11-13 16:47Jon (LabKey DevOps)2018-11-16 23:23Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

So this may in-fact be a bug. I am trying to get some additional details sorted out though, specifically certain fields that are available under the WebPart API but not QueryWebPart API when it comes to Reports.

Thank you for your patience.

Regards,

Jon
Will Holtz2015-12-08 11:47Jon (LabKey DevOps)2018-11-16 23:24Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Did you get a chance to look into this any further? Thanks!

-Will
Jon (LabKey DevOps)2015-12-08 12:41Jon (LabKey DevOps)2018-11-16 23:23Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

It is indeed a bug, but I hadn't created it yet since I was trying to get the full scope of the issue. Specifically, if this problem is more than just R since our JavaScript docs look like they might have a problem as well.

Let me get some confirmation on this and I'll get the bug made.

Regards,

Jon
Jon (LabKey DevOps)2015-12-14 11:20Jon (LabKey DevOps)2018-11-16 23:23Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Sorry for the delay. The bug https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=25130 has been created to further investigate this issue.

Regards,

Jon
Will Holtz2015-12-14 11:25Jon (LabKey DevOps)2018-11-16 23:23Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Great -- thanks!

-Will
Jon (LabKey DevOps)2016-02-28 18:49Jon (LabKey DevOps)2016-02-28 18:49Problem changing to R view from LABKEY.QueryWebPartProblem changing to R view from LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Just an FYI, this has been fixed in our upcoming 16.1 release of LabKey next month.

Regards,

Jon
Jon (LabKey DevOps)2015-01-13 16:19Jon (LabKey DevOps)2018-11-16 23:23Problem accessing data with RLabkey packageProblem accessing data with RLabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Laura,

I found the issue that Michael submitted back in 2012 here: https://www.labkey.org/announcements/home/Developer/Forum/thread.view?entityId=1dba004f-b262-102f-ac60-987439a648f8&_docid=thread%3A1dba004f-b262-102f-ac60-987439a648f8

According to the information from back then, it looks like there is a problem with authentication since it's a 401 error message.

Can you verify if your netrc file is configured correctly? (See documentation: https://www.labkey.org/wiki/home/Documentation/page.view?name=netrc)

Also, the specific problem that Michael brought up was isolated to where the netrc file was located in, so I would recommend verifying whether the file has to live on \home\Documents\R\win-library vs \home\R\win-library on your Windows machine.

Regards,

Jon
laurapas2015-01-14 16:22Jon (LabKey DevOps)2018-11-16 23:23Problem accessing data with RLabkey packageProblem accessing data with RLabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
I can't see to get the right location. I am on a mac and have placed it here: /Library/Frameworks/R.framework/Versions/3.1/Resources/library. I also tried my home directory on the mac, but it's not working there either. Can you tell me where RLabkey searches for the .netrc file on a mac?

Regards,
Laura
Jon (LabKey DevOps)2015-01-14 16:35Jon (LabKey DevOps)2018-11-16 23:23Problem accessing data with RLabkey packageProblem accessing data with RLabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Laura,

It should be on your home directory, so on a Mac it would be /Users/USERNAME. So on my Mac for example, it would be /Users/jonyoon.

The permissions on the file should also be only readable to you. If you use the Finder on your Mac, you should be able to search for that .netrc file, Control+Click and select Get Info, then expand the Sharing & Permissions section at the bottom of that info screen.

Can you verify the permissions you have setup on that .netrc file in either directory location on your Mac?

Regards,

Jon
laurapas2015-01-14 16:50Jon (LabKey DevOps)2018-11-16 23:24Problem accessing data with RLabkey packageProblem accessing data with RLabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Thanks for your quick reply. I put it on my home directory.

/Users/laurapas
laurapas-JBG3QJ:~ laurapas$ ls -al .netrc
-r--------@ 1 laurapas staff 84 Jan 14 16:42 .netrc

Now, I get a new message. Perhaps I did something wrong in the .netrc file?

Error in function (type, msg, asError = TRUE) :
  Failed connect to labkey-test.roche.com:443; Connection refused

Here's what I have in my file, as per the instructions. The Xs aren't my actual password....just an example.

machine https://labkey-test.roche.com:8443 login laurapas@gene.com password XXXXXXX
Jon (LabKey DevOps)2015-01-14 16:56Jon (LabKey DevOps)2018-11-16 23:23Problem accessing data with RLabkey packageProblem accessing data with RLabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Laura,

The machine name looks a little different than our docs. I don't think you need the https:// part.

Can you change it to this and give it another try?

machine labkey-test.roche.com:8443 login laurapas@gene.com password XXXXXXX

Regards,

Jon
laurapas2015-01-14 17:03Jon (LabKey DevOps)2018-11-16 23:23Problem accessing data with RLabkey packageProblem accessing data with RLabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Unfortunately, I still get the 'Connection refused' error message. I'm able to log in via the web and access the files; I'm having a problem accessing with RLabkey , e.g., labkey.selectRows().

Regards,
Laura
laurapas2015-01-14 23:10Jon (LabKey DevOps)2018-11-16 23:24Problem accessing data with RLabkey packageProblem accessing data with RLabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
I didn't see the last line of the .netrc documentation earlier: "The _netrc file only deals with connections at the machine level and does not include a port or protocol designation.". So, I removed the port # and it is fine now.
Jon (LabKey DevOps)2015-01-15 09:59Jon (LabKey DevOps)2018-11-16 23:24Problem accessing data with RLabkey packageProblem accessing data with RLabkey package TEXT_WITH_LINKSClosed     LabKey Support Forum
Laura,

Thanks for catching that! I've updated our documentation so that section stands out.

Regards,

Jon
Jon (LabKey DevOps)2015-04-16 11:33Jon (LabKey DevOps)2018-11-16 23:24privileged applicationprivileged application TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

The only way to pull this off to where a non-admin can run applications that will have admin permissions is to have Java code via a custom module running on the server to do this. The client side isn't fully trusted, so there wouldn't be any way a non-admin could do admin stuff directly via javascript alone or out of the box with the standard LabKey build.

Please review our module documentation for more information: https://www.labkey.org/wiki/home/Documentation/page.view?name=simpleModules

Regards,

Jon
Matthew Bellew2014-05-29 12:33Jon (LabKey DevOps)2018-11-16 23:23Privacy notificationPrivacy notification TEXT_WITH_LINKSClosed     LabKey Support Forum
1) the easiest way to add something to every page is to use a customization feature we added for analytics. The first link on the admin console is "analytics settings". On that page you'll find a big text box that let's you put pretty much whatever you want into the <head> of every page. Since you can put script here you can also add HTML to the page if that is required.

2) If you want to go route of editing the template, the file you're looking for is "api/src/org/labkey/api/view/CommonTemplate.jsp".

I would really try to exhaust the first option, before going down the second path. I think you'll find it easier if you can simply use offical builds, rather than having to build your own.

If you come up with a solution that can be configured by via an admin page that is generally useful, you can consider submitting a patch for the main product as well.
alpha872014-05-30 03:02Jon (LabKey DevOps)2018-11-16 23:23Privacy notificationPrivacy notification TEXT_WITH_LINKSClosed     LabKey Support Forum
Matthew,

thank you for your help.

Just successfully deployed it, using the "Analytics" feature to add the css/scripts and adding the .js files in extraWebapp!
marcia hon2018-02-22 11:28Jon (LabKey DevOps)2018-11-16 23:24Printing R ReportPrinting R Report TEXT_WITH_LINKSClosed     LabKey Support Forum
I am trying:

setwd("directory")

# Load packages
require(knitr)
require(markdown)

# Create .md, .html, and .pdf files
knit("My_Analysis.Rmd")
markdownToHTML('My_Analysis.md', 'My_Analysis.html', options=c("use_xhml"))
system("pandoc -s Sublime.html -o My_Analysis.pdf")



But I get the following error:

javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
Loading required package: knitr
Loading required package: markdown
Error in readLines(if (is.character(input2)) { :
  cannot open the connection
Calls: knit -> readLines
In addition: Warning message:
In readLines(if (is.character(input2)) { :
  cannot open file 'My_Analysis.Rmd': No such file or directory
Execution halted
marcia hon2018-02-23 06:54Jon (LabKey DevOps)2018-11-16 23:24Printing R ReportPrinting R Report TEXT_WITH_LINKSClosed     LabKey Support Forum
I solved it by doing:

```{r setup, echo=FALSE, cache=TRUE, results='hide', warning=FALSE, comment=FALSE, warning=FALSE, message=FALSE, encoding = 'UTF-8',comments = ""}
knitr::opts_chunk$set(echo=FALSE, cache=TRUE, comment=FALSE, comments = "", warning=FALSE, eval = TRUE, encoding = "native.enc")
#knitr::opts_chunk$get();
knitr::pandoc('script.Rmd', format='latex')
#system("pandoc -s script.docx -o script.pdf")
```

```{r, echo=FALSE, cache=TRUE, results='hide', warning=FALSE, comment=FALSE, warning=FALSE, message=FALSE, encoding = 'UTF-8',comments = ""}
currentdir <- getwd()
assign("pdf_filename", paste(currentdir, "/script.pdf", sep=""))

file.copy(from = pdf_filename,
               to = "/newdirectory/script.pdf")
system("rm script.* *.tsv")
```

However, my pdf report looks like the attached.

It is supposed to have a logo, and the html/code should be something legible.
marcia hon2018-02-23 07:48Jon (LabKey DevOps)2018-11-16 23:24Printing R ReportPrinting R Report TEXT_WITH_LINKSClosed     LabKey Support Forum
I solved my problem.

My R Report was actually HTML.

Therefore, I had to save the Rmd as html and this solved the problem!

Thanks!
Ben Bimber2011-08-29 16:22Jon (LabKey DevOps)2018-11-16 23:23prepared statement with labkey SQL?prepared statement with labkey SQL? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi robert,

since read security is controlled on the server independent of the SQL statement, and since labkey SQL can't update/delete I think the security concern is that high.

however, if you above example is really that straightforward, i think you probably want to do this using filters, not by writing a SQL statement. it would be roughly like:

LABKEY.ext.Store({
queryName: 'person',
schemaName: 'yourSchemaName',
filterArray: [
    LABKEY.Filter.create('firstname', firstName, LABKEY.Filter.Types.EQUAL),
    LABKEY.Filter.create('age', age, LABKEY.Filter.Types.GREATER_THAN_OR_EQUAL)
]

that's off memory, so there's probably typos.
Jon (LabKey DevOps)2015-11-06 11:12Jon (LabKey DevOps)2018-11-16 23:24Predefine demographic datasetsPredefine demographic datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Yes, you can configure a dataset as a demographic dataset via the dataset_manifest.xml file.

Take a look at our docs below and be sure to look for the "demographicData" attribute in the XSD:

https://www.labkey.org/download/schema-docs/xml-schemas/schemas/datasets_xsd/schema-summary.html

Regards,

Jon
jeckels2011-07-01 15:26Jon (LabKey DevOps)2018-11-16 23:23potential bug related to LABKEY.Exp.Data.getContent()potential bug related to LABKEY.Exp.Data.getContent() TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

As we discussed, your guess is correct. I've changed this code path to look at the first 5000 lines instead of the first 100, which should resolve this issue. That's part of 11.2.

Thanks,
Josh
Matthew Bellew2012-12-04 10:06Jon (LabKey DevOps)2018-11-16 23:24Postgresql exception while inserting into List in 12.3Postgresql exception while inserting into List in 12.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
I do have an idea, but could you tell me what version of postgres you are using and how many columns are in your list?
Matthew Bellew2012-12-04 16:43Jon (LabKey DevOps)2018-11-16 23:23Postgresql exception while inserting into List in 12.3Postgresql exception while inserting into List in 12.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for reporting this. This is reproducible on recent versions of Postgres and I am investigating a fix.

Matt
tstellin@scharp.org2012-12-05 07:47Jon (LabKey DevOps)2018-11-16 23:24Postgresql exception while inserting into List in 12.3Postgresql exception while inserting into List in 12.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

Great, thanks!

Postgres version: 9.0.7
# of columns: 57

-Tobin
Ben Bimber2011-05-04 05:45Jon (LabKey DevOps)2018-11-16 23:24postgres "invalid objectname"postgres "invalid objectname" TEXT_WITH_LINKSClosed     LabKey Support Forum
for some odd reason it does no good to create tables in postgres if their site is running off sqlserver. creating those tables in the proper DB should fix their problem.
jeckels2011-06-03 13:15Jon (LabKey DevOps)2018-11-16 23:23possible to write a SQL statement that searches current container plus child containers?possible to write a SQL statement that searches current container plus child containers? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We don't have a way to specify a container filter inside of a custom query. However, we've done work in the past and I recently made an improvement in 11.2 so that if you set a container/folder filter on the view, it should get propagated into the query and respected by the various subqueries. So, I think that your suggested alternative should work as you intend, at least in 11.2.

Thanks,
Josh
Ben Bimber2011-06-03 13:34Jon (LabKey DevOps)2018-11-16 23:24possible to write a SQL statement that searches current container plus child containers?possible to write a SQL statement that searches current container plus child containers? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

there isnt a way to specify a view in the SQL is there? therefore any time a query is referenced from a different query, it always uses the default view, right?

while it might be convenient here, isnt this behavior kinda of dangerous and potentially confusing? while it's not directly related to this situation, I had another example where the default view of a table had a filter applied. any lookups to that table were apparently using this filtered view as the lookup source, which meant some lookups appeared broken when they should not be. it just seems like the view is most appropriate as directing user-interaction, not necessary programmatic ones.
Ben Bimber2010-06-21 17:26Jon (LabKey DevOps)2018-11-16 23:24possible to trigger rematerialization via pipeline of study w/o actual reload?possible to trigger rematerialization via pipeline of study w/o actual reload? TEXT_WITH_LINKSClosed     LabKey Support Forum
sorry to push the issue, but does no reply mean no?
jeckels2010-06-21 18:07Jon (LabKey DevOps)2018-11-16 23:24possible to trigger rematerialization via pipeline of study w/o actual reload?possible to trigger rematerialization via pipeline of study w/o actual reload? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Sorry for the delay. There's not a convenient way to do this for all the datasets.

There's a JavaScript API for this, LABKEY.Query.validateQuery(), but it operates on a single query (or dataset, in this case) at a time, so you'd run into similar timeout issues as the UI does. You could increase the timeout, but you'd tie up a browser window waiting for them to all finish.

You might also be able to do a study import on a study archive that contains no datasets. I'm not sure this would work, but it may leave your existing datasets and their data untouched, and then go on to perform the usual validation on all the datasets and other queries.

Thanks,
Josh
Ben Bimber2010-07-05 16:00Jon (LabKey DevOps)2018-11-16 23:24possible to trigger rematerialization via pipeline of study w/o actual reload?possible to trigger rematerialization via pipeline of study w/o actual reload? TEXT_WITH_LINKSClosed     LabKey Support Forum
I think i figured out a way to do this using the regular study import mechanism. I stripped out as much as I could from the study import files. If you kick off an import using these, it doesnt delete or import anything, then it proceeds to validate queries. I will add these files to the EHR module when I check in next. In theory we won't need this as much with 10.2; however, if something does kill the materialized datasets, we'll need some way to get them back.
jeckels2010-03-16 17:56Jon (LabKey DevOps)2018-11-16 23:24possible to specify something like 'not in default view' instead of 'isHidden'?possible to specify something like 'not in default view' instead of 'isHidden'? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

isHidden is the only way to do this right now - as you've noted, it's overloaded.

In 10.2, you'll be able to specify a default customized view using a .qview.xml file in file based modules.

Thanks,
Josh
Ben Bimber2010-03-17 07:45Jon (LabKey DevOps)2018-11-16 23:24possible to specify something like 'not in default view' instead of 'isHidden'?possible to specify something like 'not in default view' instead of 'isHidden'? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

that seems like a good idea. one thing that would be nice is if the default view could contain both positive and negative selection of columns. for example, say I set a default view because I dont want column X to show up. Then I add a new column to the table. I need to change the default view in order for this new column to show up. Granted, this is a minor inconvenience and once our system is more developed columns will probably change less.
jeckels2010-10-04 14:12Jon (LabKey DevOps)2018-11-16 23:24possible to sort of date portion of a date/time fieldpossible to sort of date portion of a date/time field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I think that's going to be the easiest way to do it with the options that are available now. If there are cases where we could make things easier by automatically adding a supplemental, read-only column that truncates the time portion of the value, let us know.

Thanks,
Josh
Ben Bimber2010-10-04 14:19Jon (LabKey DevOps)2018-11-16 23:24possible to sort of date portion of a date/time fieldpossible to sort of date portion of a date/time field TEXT_WITH_LINKSClosed     LabKey Support Forum
well yes that would make things a little easier, but is probably not necessary here.

seems like instead of creating a second column maybe this is really more of variation on the grid sort though? labkey already has a filter called 'Date_EQUAL' or something along those lines. this is a variation on the EQUALS filter that matches datetime based on the date part. seems like 'sort on the date portion of datetime' falls into a similar category.
Ben Bimber2010-10-06 17:03Jon (LabKey DevOps)2018-11-16 23:24possible to sort of date portion of a date/time fieldpossible to sort of date portion of a date/time field TEXT_WITH_LINKSClosed     LabKey Support Forum
what's the most efficient way in labkey SQL to grab the date portion of a date/time field? seems like I need to grab the year(), month() and day(), concatenate, then make a date out of this string? is there some function that does it more directly?
jeckels2010-10-07 09:39Jon (LabKey DevOps)2018-11-16 23:23possible to sort of date portion of a date/time fieldpossible to sort of date portion of a date/time field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You can use CAST to convert to a date. For example, CAST(MyTimestampColumn AS Date) AS DateOnlyColumn. This should be significantly easier than concatentating it together and parsing the result, as well as slightly faster.

Thanks,
Josh
kevink2010-08-06 12:39Jon (LabKey DevOps)2018-11-16 23:23possible to set page size with an embedded QWP?possible to set page size with an embedded QWP? TEXT_WITH_LINKSClosed     LabKey Support Forum
You can limit the page size with by adding the 'maxRows' parameter to the QueryWebPart config.

As far as re-using a common set of properties, you could do something like:

Ext.applyIf({schemaName: 'lists', queryName: 'employees'}, commonConfig);
jeckels2010-07-07 16:32Jon (LabKey DevOps)2018-11-16 23:24possible to set lookup validator in query XML?possible to set lookup validator in query XML? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Unfortunately that's only possible to set through the UI right now. It's supported for assay definition import/export, which use a different XML schema, but not for list, dataset, or query metadata XML.

Thanks,
Josh
jeckels2010-09-30 09:25Jon (LabKey DevOps)2018-11-16 23:23possible to run SQL to find places where views are defined?possible to run SQL to find places where views are defined? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

They're in query.customviews. You can run a query like this in pgAdmin to find the ones in the database and the folder they live in:

select cv.name as viewname, queryname, schema, c.name as containername from query.customview cv, core.containers c where cv.container = c.entityid
adam2010-04-02 11:02Jon (LabKey DevOps)2018-11-16 23:24possible to retroactively set field as 'required'?possible to retroactively set field as 'required'? TEXT_WITH_LINKSClosed     LabKey Support Forum
It's true we don't yet export/import some of the field metadata (e.g., regex validators & default values). But "required" should roundtrip via the "nullable" XML element. On 10.1, I just tried exporting a list with required fields and they imported as required. Are you seeing something different?

Adam
Ben Bimber2010-04-02 11:29Jon (LabKey DevOps)2018-11-16 23:24possible to retroactively set field as 'required'?possible to retroactively set field as 'required'? TEXT_WITH_LINKSClosed     LabKey Support Forum
i encountered this a couple weeks ago when moving data from my laptop to the production server. i just recently noticed required fields were no longer required. however, i cant seem to reproduce this right now either. would overwriting existing lists have any impact on labkey's behavior? when i get a chance i will try it on the same data as before to see if i can reproduce it.
adam2010-04-02 11:55Jon (LabKey DevOps)2018-11-16 23:24possible to retroactively set field as 'required'?possible to retroactively set field as 'required'? TEXT_WITH_LINKSClosed     LabKey Support Forum
Overwriting an existing list is fairly drastic -- we delete the list completely, then reimport the meta data & data. It's possible that some remnants remain after the delete and get reattached to a new list with the same name... but I doubt it.
Ben Bimber2010-06-03 13:44Jon (LabKey DevOps)2018-11-16 23:24possible to retroactively define QC state?possible to retroactively define QC state? TEXT_WITH_LINKSClosed     LabKey Support Forum
after talking to mark/josh it looks like that is not possible though the browser; however, can i use postgres to simply set the QC state of every record in the entire study to 'approved'? i think this is QC value 1 in our study, based on what grids seem to be using. if so, what would that sql look like?
jeckels2010-06-03 20:10Jon (LabKey DevOps)2018-11-16 23:24possible to retroactively define QC state?possible to retroactively define QC state? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

First, verify that you've identified the right QC state:

select qc.*, c.name as containername from study.qcstate qc, core.containers c where qc.container = c.entityid

Then, use the values from the corresponding row in the QC state query to update the datasets.

update study.studydata set qcstate=<QC_STATE_ROW_ID> where container = <QC_STATE_CONTAINER> and qcstate is null

This will update the data, but won't automatically prompt a refresh of the materialized temp tables for the datasets. The next time you restart the server, reimport the study, or otherwise rematerialize the data you should see the new value.

Thanks,
Josh
Ben Bimber2010-06-08 05:09Jon (LabKey DevOps)2018-11-16 23:24possible to retroactively define QC state?possible to retroactively define QC state? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, that worked to retroactively handle those, but there is a big problem. in the study admin, you can define default QC states for data imported through the pipeline, assays, etc. for the time being, we want to have the default value of all imported record set to 'approved'. the problem is that it seems that on each pipeline study import, these values are reset - they go back to being blank. i had another similar support post, but is there any way to define these values in the XML files, so they are remembered on each new study import? otherwise each night we'll lose QC states on the last 6 months of records.

thanks for the help.
jeckels2010-06-23 17:26Jon (LabKey DevOps)2018-11-16 23:24possible to manually create delete button for assay results domain?possible to manually create delete button for assay results domain? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You're right about the assumptions for how deleting assay data currently works.

Right now the assay results tables aren't hooked up to support LABKEY.Query.deleteRows(), so unfortunately that approach won't work. There's some work associated with implementing insert/update/delete support for each table, though it's often not much work.

What kind of assay is this? If it's a custom assay, you could wire up a custom delete button that uses the assay saveBatch() method to resave the run without the offending row.

Thanks,
Josh
Ben Bimber2010-06-23 17:52Jon (LabKey DevOps)2018-11-16 23:23possible to manually create delete button for assay results domain?possible to manually create delete button for assay results domain? TEXT_WITH_LINKSClosed     LabKey Support Forum
they are custom assays. unfortunate about deleteRows().

so i admit i dont have a great understanding yet of exactly how all the labkey assay objects work. after reading saveBatch(), i'm not quite clear on what i do. do i run loadBatch(), modify the batch object to remove the desired record, then run saveBatch() to save my updated batch object?

if i end up going with the saveBatch() route, does this mean I delete the old batch and replace it or is it an update? I ask b/c I assume each
record in each of the assays domains has a unique key. the delete/insert probably assigns new keys. altering the keys on assay data is potentially relevant if we have records stored anywhere else that point to this data.
jeckels2010-06-25 17:36Jon (LabKey DevOps)2018-11-16 23:24possible to manually create delete button for assay results domain?possible to manually create delete button for assay results domain? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, that's the basic workflow. When you resave the batch, it will update the existing batch and run rows in the database so their rowids won't change.

It will delete and reinsert all of the data rows though, which means that the value of the ObjectId column will change with every save. For most assay types there shouldn't be any FKs that rely on that value, but it depends on your specific implementation.

Thanks,
Josh
Matthew Bellew2010-05-22 14:38Jon (LabKey DevOps)2018-11-16 23:23possible to listen for file download from LABKEY.ext.EditorGridPanel?possible to listen for file download from LABKEY.ext.EditorGridPanel? TEXT_WITH_LINKSClosed     LabKey Support Forum
Are you specifically interested in when a user downloads the file from this particular page, or would you like an audit like function where you could see all downloads regardless of where they happened?
Ben Bimber2010-05-22 14:45Jon (LabKey DevOps)2018-11-16 23:23possible to listen for file download from LABKEY.ext.EditorGridPanel?possible to listen for file download from LABKEY.ext.EditorGridPanel? TEXT_WITH_LINKSClosed     LabKey Support Forum
one specific page. we have a page where users view PDFs of SOPs (standard operating procedures). this page has a grid with somewhere from 5-60 rows, one per PDF. it's a LABKEY.ext.EditorGridPanel. i used this instead of the labkey grid b/c it's loaded from a store filtered on user ID.

i'd like to create a mechanism such that we can record when a user downloads each of their SOPs. is that possible?

if there's no way to listen for file-download, then the next best solution i can think of is to create a 'mark read' button, but this is less automatic.
jeckels2010-05-23 09:18Jon (LabKey DevOps)2018-11-16 23:24possible to listen for file download from LABKEY.ext.EditorGridPanel?possible to listen for file download from LABKEY.ext.EditorGridPanel? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

There's no specific support for this, but it sound like the best approach for this particular case might be to swap out a custom column renderer into your grid. You could replace the default URL with an onclick handler that inserts a record into a list (or other table) and then opens the PDF in the browser.

Thanks,
Josh
Ben Bimber2010-05-25 06:47Jon (LabKey DevOps)2018-11-16 23:23possible to listen for file download from LABKEY.ext.EditorGridPanel?possible to listen for file download from LABKEY.ext.EditorGridPanel? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh -

that sounds like a good approach. is there an example of this somewhere in labkey where you could point me? if not, maybe we could discuss on thursday's call?
jeckels2010-05-25 17:43Jon (LabKey DevOps)2018-11-16 23:24possible to listen for file download from LABKEY.ext.EditorGridPanel?possible to listen for file download from LABKEY.ext.EditorGridPanel? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

There's some sample code in the documentation for LABKEY.ext.EditorGridPanel that shows how you can replace a column's renderer. You should be able to use it as a base to swap in a renderer that builds up HTML that includes an onclick handler that calls a function that inserts the record into the list and then lets the user view the content they requested.

Thanks,
Josh
Ben Bimber2010-05-26 09:26Jon (LabKey DevOps)2018-11-16 23:23possible to listen for file download from LABKEY.ext.EditorGridPanel?possible to listen for file download from LABKEY.ext.EditorGridPanel? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, i've got a start on this and have a few questions:

1. according to the ext documentation, I should be able to specify a custom columnModel with an EditorGridPanel:

        var sopGrid = new LABKEY.ext.EditorGridPanel({
            store: new LABKEY.ext.Store({..})
            ,renderTo: 'sopDiv'
            ,width: 1000
            ,cm: new Ext.grid.ColumnModel({..})
        });

When the LABKEY.ext.EditorGridPanel first renders, my custom colModel is applied, but as soon as the Labkey store loads (and rows are populated) my custom colModel gets overridden by the default labkey behavior. Is there any way to define a custom colModel beforehand (in the store or something?), or do I need to add a handler to alter the colModel using the 'colmodelcustomize' event?


2. following the example in the labkey documentation for LABKEY.ext.EditorGridPanel, I can add a custom renderer. however, what's the right approach to add an onClick handler? following the example, we have something like:

function pdfRenderer(data, cellMetaData, record, rowIndex, colIndex, store)
{
   //run the existing renderer
   var theField = _basePdfRenderer(data, cellMetaData, record, rowIndex, colIndex, store);
   
   return theField;
}

in the above example, the default renderer produces a string with the URL for the file and display icon. what's the right point to manipulate this to add the handler? should I just discard the default renderer and build the URL / display icon HTML myself? can i somehow hook into this to add the handler in another way?

Hope this makes sense. Thanks for the help.
Matthew Bellew2013-04-08 10:30Jon (LabKey DevOps)2018-11-16 23:23possible to join a regular query to a parameterized query, applying params?possible to join a regular query to a parameterized query, applying params? TEXT_WITH_LINKSClosed     LabKey Support Forum
The outer query with the joins should inherit the parameters of the inner query. Are you using 12.3 or the 13.1 development branch? It's possible that the fix for 17036, broke this in some cases.
Ben Bimber2017-10-13 12:38Jon (LabKey DevOps)2018-11-16 23:23Possible to enable LDAP authentication, but only if a LK account is created?Possible to enable LDAP authentication, but only if a LK account is created? TEXT_WITH_LINKSClosed     LabKey Support Forum
i always seem to see the right thing immediately after posting. i think the "Auto-create authenticated users" on site admin -> authentication controls this.
Jon (LabKey DevOps)2017-10-13 12:42Jon (LabKey DevOps)2018-11-16 23:23Possible to enable LDAP authentication, but only if a LK account is created?Possible to enable LDAP authentication, but only if a LK account is created? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

There is a new switch now that allows one to disable the ability to "Auto-create authenticated users" if LDAP is turned on.

I can't remember when this was introduced though in the Authentication config section though.

Do you see this in the Authentication section of the Admin Console? (See attached)

Regards,

Jon
Jon (LabKey DevOps)2017-10-13 12:43Jon (LabKey DevOps)2017-10-13 12:43Possible to enable LDAP authentication, but only if a LK account is created?Possible to enable LDAP authentication, but only if a LK account is created? TEXT_WITH_LINKSClosed     LabKey Support Forum
Disregard my comment. I see you found it already. :-)
jeckels2017-10-13 12:39jeckels2017-10-13 12:39Possible to enable LDAP authentication, but only if a LK account is created?Possible to enable LDAP authentication, but only if a LK account is created? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, that setting should let you control this.

Thanks,
Josh
jeckels2010-08-09 17:09Jon (LabKey DevOps)2018-11-16 23:24possible to change default behavior on some dataset fields?possible to change default behavior on some dataset fields? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You're correct about created and modified, and for the EHR, sequencenum. I've made the change and will check it in as part of 10.3.

Thanks,
Josh
jeckels2010-07-09 16:46Jon (LabKey DevOps)2018-11-16 23:24possible to add new lookups to an assay?possible to add new lookups to an assay? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The fields that are defined in the assay provider (in the results.xml file, for example) are currently considered locked and can't be edited by the user. Unfortunately for this scenario, since they're snapshotted at assay definition creation time, even if you update the definition in the file within your module, your design won't be affected. We don't have a good solution for this right now. There's a possibility of direct database fixup. Would changing to use a lookup work with the existing values that are stored on the assay side, or would they need to be translated to the lookup target's primary key?

Thanks,
Josh
Ben Bimber2010-07-09 16:55Jon (LabKey DevOps)2018-11-16 23:24possible to add new lookups to an assay?possible to add new lookups to an assay? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

knowing that DB fix might be useful. at this stage the assay in question are in sort of a beta phase so it's inconvenient to delete/re-create them i guess that's ok.

in this situation they are not related to the primary key, but I will be aware of situations in which it might. the fact that deleting assay records requires a convoluted batch update method (ie. new values for primary keys) makes me wary of anything linked to those.

applying superficial metadata (ie. not datatype, but things like lookups, format string, etc) using query metadata might be a reasonable route if that would work here.

for what it's worth, i ended up creating a standalone postgres schema called 'lookups' with hard tables that will house the tables used for most EHR lookups. I didnt see any real benefit in using labkey lists and it's a lot easier to sync this between servers. this is convenient b/c I can add the same schema to multiple folders as needed.
Jon (LabKey DevOps)2016-10-26 22:19Jon (LabKey DevOps)2018-11-16 23:23Possible that Editor can not modify Wiki-Parts?Possible that Editor can not modify Wiki-Parts? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Aleks,

The users rights are applied on the container that the wiki pages are stored, so there's no way to specifically make it so the wiki parts are not editable if a user has Editor permissions or Admin permission on the container.

However, if you did make them Editors, you could potentially prevent them from making any further modifications from a wiki page if the wiki page has a <script> tag in it. Wikis can only be saved by Admins or those with the Developer role enabled for their permissions. Potentially, if someone was an Editor, they wouldn't be able to save any wiki pages that have script tags in them without the Developer role. So if you add script tags in your wikis, that should effectively give you the prevention you're looking for.

Regards,

Jon
Jon (LabKey DevOps)2016-10-27 10:56Jon (LabKey DevOps)2016-10-27 10:56Possible that Editor can not modify Wiki-Parts?Possible that Editor can not modify Wiki-Parts? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Aleks,

My apologies. I forgot that an editor could simply remove those tags.

But there is another option that I think can work for you though.

If you host the wiki pages in another container where these editors only have read access, you could create custom wiki webparts in your main container where they point to that other container. Effectively, this would prevent that person who has editor permissions from editing those wikis since they don't have editor rights to the other container.

Does that make sense?

Regards,

Jon
Aleks2016-10-28 02:50Aleks2016-10-28 02:50Possible that Editor can not modify Wiki-Parts?Possible that Editor can not modify Wiki-Parts? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you. I will try it out.
Ben Bimber2010-07-22 14:03Jon (LabKey DevOps)2018-11-16 23:24possible problem with views and embedded QWP?possible problem with views and embedded QWP? TEXT_WITH_LINKSClosed     LabKey Support Forum
here's some more info. there's 2 distinct problems here:

I tried to load the QWP with a named file-based view (instead of a ".qview" file). When you load a QWP with a view name, there is usually a piece of text that says what view is loaded. I do not see this with my embedded QWP, which suggests labkey was not finding my file-based view.

The name of this query is 'chemistryResults' and it's label is 'Blood Chemistry Results'. I had the original .qview file in a subfolder named 'Blood Chemistry Results'. Using the label as foldername is required for this view to appear when i load the dataset using dataset.view.

If I create a copy of my file-based qview file in a second folder called chemistryResults, then we have some progress. The embedded QWP now says 'The view Plus Ref Range is filtered....' (indicating it found the qview file). The first problem is that LabKey isnt consistent about whether it wants the file-based view to be located in a subfolder named using dataset name or dataset label.

Here's the second problem:

i have a file-based metadata XML file for this query. in this file, I wrap one of the columns in dataset and lookup to a second query. in my custom view, I try to load these joined columns. Labkey wasnt finding this file, hence ignoring the columns. This file was named 'Blood Chemistry Results.xml'. I made a copy called 'chemistyResults.xml' and it all worked.

Any suggestions here? Different places seem to expect different naming conventions for files. Until that's fixed do I need two copies of all those?
jeckels2010-07-23 11:31Jon (LabKey DevOps)2018-11-16 23:24possible problem with views and embedded QWP?possible problem with views and embedded QWP? TEXT_WITH_LINKSClosed     LabKey Support Forum
For the record, this problem is resolved if the QueryWebPart requests the dataset table by its label, not by its name. For historical reasons, the dataset's label is the canonical table name. The dataset's name is really treated as an alias.

Thanks,
Josh
kevink2010-07-07 13:08Jon (LabKey DevOps)2018-11-16 23:24possible problem with validation scripts when dataset label contains spacespossible problem with validation scripts when dataset label contains spaces TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Can you try replacing the spaces with an underscore? The label is used as the dataset's query name so try 'Behavior_Remarks.js'
Ben Bimber2010-07-07 13:24Jon (LabKey DevOps)2018-11-16 23:23possible problem with validation scripts when dataset label contains spacespossible problem with validation scripts when dataset label contains spaces TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, the underscores did it. so the behavior i'm seeing for the names of files is:

1. validation scripts: use the dataset label and replace spaces with underscores

2. XML metadata: use the dataset label, but spaces are kept
Peter2010-06-24 20:06Jon (LabKey DevOps)2018-11-16 23:24possible cross tab bugspossible cross tab bugs TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I like the idea of connecting an output R data frame to a labkey grid or an extJs grid. right now the only data-frame oriented function that pushes a data frame from R back into labKey is the Rlabkey cover of assay.saveBatch(). so in order to use this you would need to pre-define the grid column shapes that you want to display as assay result sets. then you would save a batch into the assay results table and then select it back out into a grid. This might be ok for proof of concept but I imagine it would get pretty cumbersome to have to pre-define the grid shapes, and I also suspect the performance would be pretty slow.

if you want to look into hooking an extJS grid into the output data frame of an R function, look into the code of the Rlkabkey labkey.saveBatch.R function in the remoteapi folder. The code takes a data frame and turns it into a set of linked list objects in R, then calls the toJSON function in the rcurl library to turn it into Json. I think the format of our output json stream for a result set was modeled on the extJs grid needs, but I am not sure how close the input format is to the output format.

I'd be interested in learning more about how you'd like this to work.

Peter
Ben Bimber2010-06-24 20:43Jon (LabKey DevOps)2018-11-16 23:24possible cross tab bugspossible cross tab bugs TEXT_WITH_LINKSClosed     LabKey Support Forum
hi peter,

i'm not quite sure at what level of detail you're asking, so here's a little more info from several levels:

from the end user perspective: The labkey R interface currently allows you to toggle between the source data and the R view. This is quite powerful. We'd want some mechanism for your R script to output data in a filterable/sortable grid. In most cases this data would be an aggregate view along the lines of a crosstab. The user can toggle to the source data tab, add filters, then reload the R view - this interactive part is pretty important. A one-time redirect from R to a separate javascript page that displays the report does not quite capture this same interaction.

Exactly how that works in R probably depends on what's easiest. Currently labkey R reports support multiple sections (pdf, html, console). At least from the perspective of how the interaction with R reports works right now, allowing a 'grid' section of an R report might be useful. Within R you might build your dataframe, then pass it to some function that handles creation of the grid. I guess if the R report exports HTML, then you might just need some function that accepts a dataframe and creates the javscript/HTML output.

My R knowledge isnt all that deep, so I'm probably not the best to ask on how this might actually get implemented in R. I'd be very keen in learning what it might take and trying to help with developing something.


For what it's worth, a slightly unrelated extension would be to make the whole R report a little more ajax-y. If each tab stopped triggering a reload, it would be easier to embed an R report in a page. It would also be useful if there were a better mechanism to view the source data side-by-side with the R report. For example, you might have the source data and a bar graph (or a filterable grid). As you filter your source data, you want to see how the graph changes and possibly keep trying new permutations. This is easier if you dont need to navigate and reload every time you switch between the two tabs. That's another project though.
Peter2010-06-25 18:22Jon (LabKey DevOps)2018-11-16 23:24possible cross tab bugspossible cross tab bugs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I think I understand. But I'm unclear about one thing-- if the output of R goes to a filterable/sortable grid, you'll have two grids you are working with-- the source data and the R output. Can you filter/sort on either? Does it mean something different? can a change in the output grid affect the source grid?

I'll try to incorporate your scenario in a spec I am working on for the next phase of R - LabKey integration.
Ben Bimber2010-06-28 05:15Jon (LabKey DevOps)2018-11-16 23:23possible cross tab bugspossible cross tab bugs TEXT_WITH_LINKSClosed     LabKey Support Forum
Peter,

I was assuming it pretty much had to be uni-directional with changes in source affecting the aggregate grid view (probably requiring some action that forces a re-running of the R script), but not the reverse. When some change triggers a re-running of the R script, I was also assuming that any filters or sorts on the aggregate view would be lost. That seems ok to me, but tell me if I'm setting my sights too low.

Let me try to clarify a little on something I was trying to say: I emphasized the power associated with having the source data tab plus the R view tab. The importance of this is exactly the same if your R report is creating a graph as when your R report is creating a filterable grid. The R code serves to distill the source information and create some presentation of it. Being able to quickly see the source data makes it less opaque (particularly if R performs complex calculations). It also gives the user more control - they can add new filters to the source then re-calculate the R view. The current R report already does this reasonably well. It would be a little nicer if in certain cases they could be viewed side-by-side and if the R report used for ajax, but in general it works. The reason I re-iterated this above is that it is important not to lose the ability to toggle between R view and source when thinking about how to create an R->grid api. Therefore solutions involving a redirect from the R report to some new JS page might not be ideal. hope that makes sense.
adam2010-09-07 16:37Jon (LabKey DevOps)2018-11-16 23:24possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
I took a quick look at your XML file. The most immediate problem seems to be a case-sensitivity problem with one of the module names. If you change "ehr" to "EHR" the folder type seems to load fine.

Adam
Ben Bimber2010-09-07 17:44Jon (LabKey DevOps)2018-11-16 23:24possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
hi adam,

thanks for looking into it, but that's not quite what i see. i still get the error even after capitalization. i should add two things:

1. i originally created this folder is a text-based module called 'EHR_reporting'. I moved this file to 'ehr' and deleted the 'EHR_reporting' module. Would that influence anything?

2. it is possible that i created a folder of this folderType during development without remembering it, although i cant find it anywhere.

are there other steps i could take? does this error help?


here is the exact error:

ERROR ModuleLoader 2010-09-07 19:39:13,163 http-8080-Processor23 : Unable to register folder type Expt Workbook from module EHR. A folder type with this name has already been registered.
java.lang.IllegalStateException: Unable to register folder type Expt Workbook from module EHR. A folder type with this name has already been registered.
    at org.labkey.api.module.ModuleLoader.registerFolderType(ModuleLoader.java:1063)
    at org.labkey.api.module.FolderTypeResourceLoader.loadResources(FolderTypeResourceLoader.java:46)
    at org.labkey.api.module.ModuleLoader.ensureStartupComplete(ModuleLoader.java:690)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:599)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:113)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:619)
jeckels2010-09-07 17:51Jon (LabKey DevOps)2018-11-16 23:23possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Is it possible that you still have a copy of EHR_reporting somewhere on your system? Does it show up in the list of modules in the Admin Console? Or do you possibly have two different .folderType.xml files that have the same <name> in the XML, even though they have different file names?

Thanks,
Josh
adam2010-09-07 17:55Jon (LabKey DevOps)2018-11-16 23:24possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
Once I changed to "EHR" I had no errors at startup, so I suspect it's something on your machine. I'm not super familiar with this code, but it certainly looks like there's another module trying to register the folder type.

- Have you done a rebuild since refactoring the modules?
- If you disable the EHR folder type (rename it .tmp) can you create folders of this type?
- If you can debug in IntelliJ then putting a breakpoint on ModuleLoader.registerFolderType() should pinpoint who is registering this folder type.

Adam
Ben Bimber2010-09-07 19:17Jon (LabKey DevOps)2018-11-16 23:24possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
hi guys,

To answer Josh:

1. EHR_reporting does not show up in the admin console
2. I searched the folder containing my checked out copy of the trunk and I only find one file called 'Expt Workbook.folderType.xml'

To answer Adam:

1. i just did a build, but get the same results
2. when i rename the XML file I cannot create folders of this type.
3. i put a breakpoint at ModuleLoader.java line 1061.

I set the breakpoint on the line that throws the error. The attached screenshot shows the folder it is about to load, and also shows that another one of the same name is registered. I'm not entirely sure how to interpret this though.

I should note that in the admin console module list I see both 'ehr' and 'EHR'. it's been this way for some time. could this have anything to do with it?

Maybe I am misunderstanding what Adam said about capitalization. I assumed you were referring to this line in the XML file:
<moduleName>EHR</moduleName>, which i changed from 'ehr' to 'EHR'. were you talking about somewhere else?
adam2010-09-08 08:38Jon (LabKey DevOps)2018-11-16 23:24possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, I was talking about 'ehr' vs. 'EHR' in the XML file. When I made that fix, everything started working.

The admin console clearly shows the problem: you have two EHR modules, one in D:\labkey_trunk\server\customModules and one in D:\labkey_trunk\build\deploy\modules. Delete whichever one is obsolete... I think it's the one in customModules. You should delete all other obsolete modules in there.

Your breakpoint where the error is reported shows the "good module" attempting to register. If you put a breakpoint on the call to ModuleLoader.registerFolderType() at the bottom of FolderTypeResourceLoader you'll be able to monitor every registration, including the "bad module". This probably isn't necessary since the admin console shows where the "bad module" lives.

Adam
Ben Bimber2010-09-08 08:56Jon (LabKey DevOps)2018-11-16 23:24possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
i understand what you're saying, but I believe that creates other problems. historically the non-java EHR module and java-EHR module were separate folders in /server/customModules/. here's how my machine is configured:

I checked out a copy of labkey from svn to D:\labkey_trunk\. This is what I used to build. My external modules folder is set to: d:\labkey_trunk\server\customModules. Using this approach, I can make changes in the files and any changes will be live in the local instance of labkey i'm running. If I do what you suggest, I dont think that live development will work, since /build/... is going to have a snapshot of them. I also probably dont want to actually develop using the files in /build/ since I assume those can get overwritten easily.

can the java and non-java modules be made to better co-exist? otherwise i think we might need to re-split the java and non-java parts.
jeckels2010-09-08 09:18Jon (LabKey DevOps)2018-11-16 23:24possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

In development mode (-DdevMode=true), the server should automatically grab the latest copy of non-Java resources from the source tree, even for modules that are built and deployed into the ./build/deploy/modules directory. It's certainly possible that some specific types of resources don't work this way, but in general they do and it's a scenario we want to make convenient for developers.

Please give it a try and let us know if you run into problems.

Thanks,
Josh
Ben Bimber2010-09-08 09:46Jon (LabKey DevOps)2018-11-16 23:24possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
i do have -DdevMode=true. we're 50% of the way there:

as expected, by removing -Dlabkey.externalModulesDir="D:\labkey\server\customModules", i eliminate the redundant loading of the folder XML. I can also see live changes to text-based files in the EHR module, as expected from -DdevMode.

The problem is that other text-based modules in \server\customModules are not being loaded since removing the externalModulesDir line. any way to get these to load w/o redundantly loading the EHR code? is there some sort of flag i may inadvertently have in the EHR module that is causing it to load as a file-based module? can i add some flag to prevent it from being loaded as one?
Ben Bimber2010-09-08 10:02Jon (LabKey DevOps)2018-11-16 23:23possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
i have no explanation at all for this, but something about the act of adding/removing externalModulesDir from the tomcat config and restarting tomcat a few times seems to have things working properly. i have externalModulesDir point to customModules of the checked out project. This is loading all the text-based modules, but is not double-loading the folderType XML file.

i did notice that when I removed the externalModulesDir param from the tomcat config, some files were cleaned from the build folder when i started tomcat. perhaps there was something in there not getting removed properly from all the earlier moving of files between the modules. i did a clean / build yesterday, but that did not seem to fix whatever was going on.

sorry for the all the posts, but things seem to be working correctly now.
jeckels2010-09-08 10:40Jon (LabKey DevOps)2018-11-16 23:23possible bug: folderType XML file issuepossible bug: folderType XML file issue TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Glad to hear it's working. Let us know if the issue resurfaces and we can look closer at this particular scenario.

Thanks,
Josh
jeckels2016-09-27 22:51Jon (LabKey DevOps)2018-11-16 23:24Populating Standard Specimen Repository through RPopulating Standard Specimen Repository through R TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Do you have your specimen repository configured to be editable?

https://www.labkey.org/home/Documentation/wiki-page.view?name=specimenEdit

Do you have a .netrc or other credentials set up for your R script to use for authentication?

Thanks,
Josh
eva pujadas2016-09-28 00:44Jon (LabKey DevOps)2018-11-16 23:23Populating Standard Specimen Repository through RPopulating Standard Specimen Repository through R TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks for your fast answer.

We are aware of the possibility to configure the repository to be editable, but it is only possible to set the advanced specimen repository to editable, for the Standard Specimen Repository there are no options (see also screenshots). We are running LabKey version 16.2.

About credentials, we have .netrc set up for authentication.

All the best,
Eva
Jon (LabKey DevOps)2016-09-28 11:43Jon (LabKey DevOps)2016-09-28 11:43Populating Standard Specimen Repository through RPopulating Standard Specimen Repository through R TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

That is correct. You cannot edit specimens for a standard repository. This is by design.

If you need it to be editable, please switch the repository from the standard to the Advanced and enable the editable option.

Regards,

Jon
eva pujadas2016-09-30 06:27eva pujadas2016-09-30 06:27Populating Standard Specimen Repository through RPopulating Standard Specimen Repository through R TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for your answer.

Unfortunately, we will not be able to use the specimen repository (neither advanced nor standard) since we need to populate the specimen database very often using the R API.
After trying the advanced repository, we realized that its full functionality only works if one uses the upload of an archive, and not via R (very difficult to fill in correctly all the subtables in LabKey that are used in the background).

In case you would have some alternative suggestion/idea, this would be very welcome.

Best,
Eva
Jon (LabKey DevOps)2016-03-17 18:52Jon (LabKey DevOps)2018-11-16 23:24Populating returnUrl within the url metadataPopulating returnUrl within the url metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I was poking around the code, but it looks like we currently only have what we've documented here (which you're aware of):

https://www.labkey.org/home/Documentation/wiki-page.view?name=urlEncoding#sub

Can you give us a detailed example of what you'd like to see, so we can put this on the board for potentially a future feature?

Regards,

Jon
Will Holtz2016-03-17 21:30Jon (LabKey DevOps)2018-11-16 23:23Populating returnUrl within the url metadataPopulating returnUrl within the url metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Jon,

Thanks for looking into this. I'd like to have a ${currentUrl} substitution that is replaced with the full URL of the displayed page, including URL parameters. Such that in a resources/schemas/SCHEMANAME.xml file I can write <url>http://www.example.com/labkey/query/home/foobar/detailsQueryRow.view?returnUrl=${currentUrl:uricomponent}</url>. For this example use case, a relative URL substitution would be sufficient, but I can imagine cases where the destination URL is external to Labkey and, therefore, an absolute URL is needed.

thanks,
-Will
Jon (LabKey DevOps)2016-03-18 07:48Jon (LabKey DevOps)2018-11-16 23:24Populating returnUrl within the url metadataPopulating returnUrl within the url metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for the great example! I've submitted the feature request as the following bug ticket for tracking: https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=25963

Regards,

Jon
Matthew Bellew2013-02-20 13:24Jon (LabKey DevOps)2018-11-16 23:24pl/pgsql via javascriptpl/pgsql via javascript TEXT_WITH_LINKSClosed     LabKey Support Forum
Other than the postgres methods documented here

https://www.labkey.org/wiki/home/Documentation/page.view?name=labkeySql

there is not a way to call arbitrary pl/pgsql functions. Do you want to call a postgres built-in function from within a SQL statement? or are you hoping to call an arbitrary custom function (a browser to databse RPC)?

Matt
bront@kcr.uky.edu2013-02-20 14:32Jon (LabKey DevOps)2018-11-16 23:24pl/pgsql via javascriptpl/pgsql via javascript TEXT_WITH_LINKSClosed     LabKey Support Forum
I was hoping to call an arbitrary function, but I have since discovered the LABKEY.query.saveRows method. Closer reading revealed that it supports transactions, and I think it will work for what I need.

Many thanks,

b
jeckels2011-05-05 09:45Jon (LabKey DevOps)2018-11-16 23:24places where labkey hard codes filepaths in database?places where labkey hard codes filepaths in database? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Here is a more complete list of tables that may store paths. Some, like those in the ms2 schema, likely don't have any data for your installation.

core.mappeddirectories (filesets)
exp.data (files referenced by assays, uploaded through the file management tool, etc)
exp.experimentrun (directory assay runs came from)
filecontent.fileroots (non-pipeline file roots)
genotyping.analyses (genotyping analyses)
genotyping.runs (genotyping runs)
ms1.files (path to MS1 mzXML files)
ms2.fractions (path to MS2 mzXML files)
ms2.runs (path to MS2 pepXML analysis results)
ms2.proteinprophetfiles (path to MS2 protXML analysis results)
pipeline.pipelineroots (pipeline roots, separate from file roots)
pipeline.statusfiles (log file for pipeline jobs)
prot.annotinserts (path to imported FASTA and SwissProt XML files)
prot.fastafiles (path to imported FASTA files)
prot.fastaloads (history of FASTA imports)
study.uploadlog (history of study loads)

It's possible that I missed a couple, but that should be pretty thorough.

I'll let Brian weigh in on tradeoffs between symlinks and database editing.

Thanks,
Josh
Ben Bimber2011-05-05 10:05Jon (LabKey DevOps)2018-11-16 23:23places where labkey hard codes filepaths in database?places where labkey hard codes filepaths in database? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, thanks. my first instinct says that editing postgres fixes the problem completely, while the sym link works around it. it creates a need to maintain the odd sym link permanently, which only becomes more confusing next time we migrate or do anything similar. editing postgres does create more potential for error though.
Matthew Bellew2015-01-27 14:11Jon (LabKey DevOps)2018-11-16 23:24PIVOT fails when two elements of IN list only differ by letter casePIVOT fails when two elements of IN list only differ by letter case TEXT_WITH_LINKSClosed     LabKey Support Forum
Good catch. This is one of those places where underlying database semantics affects the LabKey SQL semantics. This map should probably needs to match the sensitive/insensitive string matching of the underlying database.
Jon (LabKey DevOps)2015-01-27 15:54Jon (LabKey DevOps)2018-11-16 23:23PIVOT fails when two elements of IN list only differ by letter casePIVOT fails when two elements of IN list only differ by letter case TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Will,

I've setup a bug for this.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=22382

Regards,

Jon
Brian Connolly2010-06-24 11:51Jon (LabKey DevOps)2018-11-16 23:24"Pipeline Override for this folder and actions are not available for the default file location""Pipeline Override for this folder and actions are not available for the default file location" TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,
The best way to determine if there is a pipeline override for a project or folder is to

1) Goto to Admin Console
2) Click on Files
3) Goto the Summary View for File Directories section

Now you can go through the folder tree and look at the fileroot (@files) and pipelineroot (@pipeline) settings for each project or folder. If the default column is marked as "false" then you have specified a pipeline or file root override

Using this Admin page, can you check if there is a pipeline override set for your project or folder?

-Brian
Ben Bimber2010-06-24 13:13Jon (LabKey DevOps)2018-11-16 23:23"Pipeline Override for this folder and actions are not available for the default file location""Pipeline Override for this folder and actions are not available for the default file location" TEXT_WITH_LINKSClosed     LabKey Support Forum
that's a very useful interface. there is a pipeline override.
eknelson2010-06-24 20:52Jon (LabKey DevOps)2018-11-16 23:24"Pipeline Override for this folder and actions are not available for the default file location""Pipeline Override for this folder and actions are not available for the default file location" TEXT_WITH_LINKSClosed     LabKey Support Forum
For future reference, we also have a troubleshooting doc page for file roots and pipeline overrides. Brian's suggestion is covered there, along with other tips for troubleshooting.
https://www.labkey.org/wiki/home/Documentation/page.view?name=troubleshootRoots
Ben Bimber2010-06-25 07:39Jon (LabKey DevOps)2018-11-16 23:23"Pipeline Override for this folder and actions are not available for the default file location""Pipeline Override for this folder and actions are not available for the default file location" TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. i usually try to look through the doc before submitting questions here, but i could probably do a little more.
eknelson2010-06-25 14:02Jon (LabKey DevOps)2018-11-16 23:24"Pipeline Override for this folder and actions are not available for the default file location""Pipeline Override for this folder and actions are not available for the default file location" TEXT_WITH_LINKSClosed     LabKey Support Forum
You do an exceptionally good job of looking through our docs before submitting questions. This doc content was only updated last week. :)
jeckels2011-04-26 10:14Jon (LabKey DevOps)2018-11-16 23:24pipeline configuration when trying to accept multiple file extensionspipeline configuration when trying to accept multiple file extensions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I just tried modifying the sequenceanalysisContext.xml that's checked in to the trunk. I was able to get actions wired up for the different extensions by using multiple FileAnalysisTaskPipelineSettings within a single TaskPipelineRegistrar, although I'm not set up at the moment to try actually running it.

Can you try the attached version of the file?

Thanks,
Josh
Ben Bimber2011-04-26 10:48Jon (LabKey DevOps)2018-11-16 23:23pipeline configuration when trying to accept multiple file extensionspipeline configuration when trying to accept multiple file extensions TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks josh. i had to modify the analyzeURL property to reflect the new names, but beyond that it seems to be working.
jeckels2010-08-23 18:06Jon (LabKey DevOps)2018-11-16 23:24Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Pipeline buttons are configured on a container-by-container basis. Workbooks are containers, so each one has its own setting. I think it's reasonable to say that they should inherit from their parent folder, but as you observed that's not the current behavior.

Similarly, workbook creation is currently hard-coded to use the set of web parts that you've observed. It wouldn't be all that hard to make this a workbook creation option, since as of 10.2, you can define folder templates in an XML file (see folderType.xsd) but it's not possible given the current implementation.

Thanks,
Josh
Ben Bimber2010-08-23 18:24Jon (LabKey DevOps)2018-11-16 23:24Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. both of the things you suggest seem like good ideas. on the second point, it would seem that what you what is to be able to define a separate blank workbook template for each series of workbooks (which i think means per parent container). Somehow as part of the initial step of adding a workbook series to that container you pick which template to use.

An alternative would be to create some number of site-wide templates. when you create a workbook, you pick the type of workbook you create, like what happens when you create a folder. this would mean that within a container different workbooks use different templates.

One goal of 10.3 involves creating the 'make workbook' API. Although workbook templates are not part of 10.3, if they are added, when calling the API we'd need to be able to specify what template is used to create the workbook. not sure if it needs any upfront consideration or not.
jeckels2010-08-26 10:26Jon (LabKey DevOps)2018-11-16 23:23Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The workbook creation API in 10.3 should be able to easily make use of the existing folder template functionality.

I'd probably lean toward allowing the user to choose a template when they create a workbook (perhaps defaulting to the template that was used last time), but I can imagine it making sense to lock the template selection based on the parent.

Thanks,
Josh
Ben Bimber2010-08-26 10:35Jon (LabKey DevOps)2018-11-16 23:24Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, i agree with that. perhaps a good idea would be to make the template default to that of the parent, unless otherwise specified. for the time being I imagine that most EHR-related workbook creation will use the API, either through a perl script or through the custom assay upload code. therefore as long as i can specify a template there, we should be fine.

just so i dont get my hopes up: are you saying that in 10.3 I should expect to be able to specify a custom template using the API or at some future version the API will be extended to add this?

when you say 'existing folder template', does this mean we are limited to existing folder template options? can we make new ones?
marki2010-08-26 10:56Jon (LabKey DevOps)2018-11-16 23:24Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
In 10.2 LabKey introduced a feature to allow new Folder Types to be defined in modules via an XML file.

In your module you would create a folderTypes directory as a sibling to the views directory.

The FolderType XML is defined in schemas/folderType.xsd and allows for specification of WebParts including their order and properties.

Since a workbook is really just a special kind of folder, I think what is missing is a way to have the folderType behave as a workbook (i.e. not show up in the folder tree). I think that would be a reasonable add for 10.3.
marki2010-08-26 11:03Jon (LabKey DevOps)2018-11-16 23:24Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm sorry, I take that back.

I don't think the set of pipeline buttons is settable via properties of the web part (it's in a different part of the UI) so we might have to add that capability to make this work as well.
Ben Bimber2010-08-26 11:35Jon (LabKey DevOps)2018-11-16 23:24Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
Mark - i'm less concerned about the buttons thing than I am about specifying which webparts are there and in what order. If I load a QWP with a specific query, it will inherit whatever buttons that query has, right?

With a file webpart, even if our pipeline action does not show up on the button bar, at least it should be an option when you hit 'upload data'. Even if you cant customize per folder, it would be kinda nice to have a little more control site-wide, since 'upload images' has no use. Not sure why that specific pipeline gets a button on every files webpart when others do not.
jeckels2010-08-26 14:00Jon (LabKey DevOps)2018-11-16 23:24Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, QueryWebParts will include whatever buttons they're configured to show using the file-based metadata.

Import Images is showing globally on the toolbar due to a bug. It'll go away except for Microarray folders in 10.3.

Thanks,
Josh
Ben Bimber2010-08-30 06:36Jon (LabKey DevOps)2018-11-16 23:24Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
does anyone have an example of a FolderType XML file anywhere? i do not see any folder called 'folderTypes' in the trunk.

one other though occurred:

mark noted that we would want a folder property along the lines of 'shows up in folder tree'. i think this means we will have XML files defining templates that make workbooks and XML files defining folder templates that make folders. if that's the case, then in the 'create folder' UI perhaps we dont want workbook templates to show up (right now 'workbook' does show up, which is a little odd). likewise, in the 'create workbook' UI we wouldnt want folder templates to show up.

We would also hopefully have some sort of client API that returns a list of available folder and/or workbook templates. We could live without that if we had to though.
Ben Bimber2010-08-30 07:22Jon (LabKey DevOps)2018-11-16 23:23Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
i think i have the XML format worked out, but i have a few questions:

1. i thought the general idea was that the XML defined the identity and layout of the webparts on the page. Therefore what's the difference between requiredWebParts and preferredWebParts?

2. I assume 'modules' determines what modules are enabled and 'defaultModule' is that start page?

3. In the default workbook template, Dave added some extra UI at the top of the page. Instead of the default title, the workbook says something like '166: Title', where 166 is the workbook number. Can we do stuff like that? I assume I can create a webpart with my HTML, then add it with frame=none; however, can/how would I go about replacing the normal page title? see here for example workbook:

https://xnight.primate.wisc.edu:8443/labkey/project/__r166/begin.view
jeckels2010-08-30 09:37Jon (LabKey DevOps)2018-11-16 23:23Pipeline buttons and workbooks?Pipeline buttons and workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

1. Both sets of web parts get added, but the ones in the requiredWebParts list can't be removed from the portal page. The ones from preferredWebParts can.

2. Correct.

3. The behavior comes from the "Workbook Description" web part. It's never advertised in the drop downs in the UI, but you should be able to add it to your list of web parts in your XML file. Given its UI, it's probably best if it's first in the list.

Thanks,
Josh
jeckels2010-07-09 16:47Jon (LabKey DevOps)2018-11-16 23:24persistent assay result domain buttonspersistent assay result domain buttons TEXT_WITH_LINKSClosed     LabKey Support Forum
This is a bug that's specific to the assay results view:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10628

I anticipate that this will be fixed as part of 10.2.

Thanks,
Josh
adam2015-02-23 14:50Jon (LabKey DevOps)2018-11-16 23:24Permissions for email field of core.usersPermissions for email field of core.users TEXT_WITH_LINKSClosed     LabKey Support Forum
The comment probably predates changes we made to tighten up who can see other users' email addresses. By default, only administrators can view email addresses, which is appropriate for a public facing site. However, any site administrator can change this behavior by assigning the "See Email Addresses" role at the root:

- Admin -> Site Permissions
- Assign "See Email Addresses" to the user(s) or group(s) who are allowed to see email addresses
- Save and Finish

This page provides general information about security roles and specific details about site roles: https://www.labkey.org/wiki/home/Documentation/page.view?name=permissionLevels

Adam
Will Holtz2015-02-23 15:17Jon (LabKey DevOps)2018-11-16 23:24Permissions for email field of core.usersPermissions for email field of core.users TEXT_WITH_LINKSClosed     LabKey Support Forum
Ah! That was so simple and it fixed my problem.

thanks much,
-Will
brittp2011-11-08 14:02Jon (LabKey DevOps)2018-11-16 23:24Permissions for Copied to Study AssaysPermissions for Copied to Study Assays TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

You shouldn't ever see "500" errors, so this is a product bug. I've entered it into our issue tracker here:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=13338

We'll try to get this resolved for our 11.3 release, due out next month.

Thannks,
Britt
jdutra2011-11-08 14:20Jon (LabKey DevOps)2018-11-16 23:23Permissions for Copied to Study AssaysPermissions for Copied to Study Assays TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you!
brittp2011-11-11 17:16Jon (LabKey DevOps)2018-11-16 23:24Permissions for Copied to Study AssaysPermissions for Copied to Study Assays TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

I've looked into this enough to know how to fix the 500 error you're seeing, but I'm not sure that this will make the specimen data available to the user. I'm also not able to reproduce the error you're seeing just based on the description above. Can you tell me a bit more about your setup? Specifically:

1. What assay type is "HAI"?

2. What permissions does the user have in the HAI assay folder (not the study folder)?

3. When you customized your study dataset view to add primary type, what path did you follow in the 'customize view' field tree? (For example, I tried "Properties/Specimen/Property/Specimen ID/Primary Type".)

Thanks,
Britt
jdutra2011-11-14 06:23Jon (LabKey DevOps)2018-11-16 23:24Permissions for Copied to Study AssaysPermissions for Copied to Study Assays TEXT_WITH_LINKSClosed     LabKey Support Forum
Britt,

1. HAI is a general assay.
2. The user has no rights to the HAI assay folder. Just for the record, though, she can still see the assay fine once it's copied to study as long as I don't customize the default view.
3. We actually added the draw timestamp and the derivative type. I'm not sure what you mean by "Properties", but to add the fields we went to the Views menu and Customize View. Then we pulled those two fields from Specimen ID/Specimen/Derivative Type and Specimen ID/Specimen/Draw Timestamp in the list of Available fields. Clicked Save, made this the default view for this page, and made the grid available to all users.

One other note: as a workaround we created a query joining the HAI Results table with the two extra fields from SpecimenDetail. The user has no problem seeing the query.

Hope this helps. Feel free to ask any other questions, and thanks for your help.

- Jen
Brian Connolly2010-07-12 11:31Jon (LabKey DevOps)2018-11-16 23:24permissions error when running R script?permissions error when running R script? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,
This error is occurring because the R process is attempting to pop-up a console window. And for MacOSX, only the root user can start the MacOSX windows services.

Since this worked previously and has just recently stopped, has anything changed on the server (i.e. has the OS been upgraded, installed a new version of R, etc)

For other unix type operating systems, we require the configuration of a X Windowing system (usually in the form of the X Virtual Frame buffer). Are you using X Virtual Frame Buffer for you server and maybe it is not started?

-Brian
Ben Bimber2010-07-23 06:23Jon (LabKey DevOps)2018-11-16 23:23permissions error when running R script?permissions error when running R script? TEXT_WITH_LINKSClosed     LabKey Support Forum
Brian,

IT says that nothing has changed recently on the server. Routine OSX updates would have been installed and we recently upgraded to 10.2. I cannot say for certain when this started (it's been a while since i ran R on the server), but several months ago it was working on 10.1. I dont know whether it was working immediately before the 10.2 install or not.

How would I investigate the X Virtual Frame Buffer? Are there other troubleshooting steps I should try?

For what it's worth, we've had a number of weird permissions issues. Postgres is set to use IDENT for local unix authentication. It was working for a while, then suddenly stopped working. This has still not been resolved. I worked around this by adding a -host switch for our postgres backup command, but that's not a very good solution.
Jon (LabKey DevOps)2017-10-05 21:18Jon (LabKey DevOps)2018-11-16 23:24perl trigger script to process dataset dataperl trigger script to process dataset data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

I'm not sure I understand the question. Triggers scripts would have to be built within a module, so yes, you would have to have access to the server in order to place your module that contains the trigger script in the modules directory of the Labkey installation.

This is why our docs here on trigger scripts talk about modules so much:

https://www.labkey.org/Documentation/wiki-page.view?name=serverSideValidation

Trigger scripts are the only thing that can detect changes to tables in order to then trigger a script to then run an API call to perform some kind of action, such as updating values in a certain row or even writing to another table.

Regards,

Jon
WayneH2017-10-05 21:34Jon (LabKey DevOps)2018-11-16 23:24perl trigger script to process dataset dataperl trigger script to process dataset data TEXT_WITH_LINKSClosed     LabKey Support Forum
Ahhh.. I see.
Point well taken..

My initial understanding was that we needed to create a module but then I got confused about how we drop in a required perl script as all of the examples include javascript.
I'm working with the developer and wanted to have better insight as to how to accomplish the task.

No doubt looking at the testtriggers and simpletest modules provide good examples...

Thanks.

W
Steve2015-01-21 12:07Jon (LabKey DevOps)2018-11-16 23:24patientetl.modulepatientetl.module TEXT_WITH_LINKSClosed     LabKey Support Forum
I have updated the patientetl.module config.xml to version 14.3.
You can download the updated version from the ETL tutorial:

https://www.labkey.org/wiki/home/Documentation/page.view?name=etlTutorial1

Thanks, Steve
Jon (LabKey DevOps)2016-11-22 20:28Jon (LabKey DevOps)2016-11-22 20:28Passing a Row-Attribute from a Grid via URL to other PagePassing a Row-Attribute from a Grid via URL to other Page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Aleks,

The problem is that you need to remove that quotation mark at the end. That is throwing everything off and it's encoding the URL.

If you remove it, it will display the value correctly.

Regards,

Jon
Jon (LabKey DevOps)2016-10-19 21:24Jon (LabKey DevOps)2018-11-16 23:24ParticipantID is not correctly displayedParticipantID is not correctly displayed TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Hilaria,

It looks like you may have turned on your Demo Mode by accident.

Can you look over this doc and follow the instructions for shutting it off?

https://www.labkey.org/home/Documentation/wiki-page.view?name=demoMode

Regards,

Jon
hilariagrieve2016-10-24 04:07Jon (LabKey DevOps)2018-11-16 23:23ParticipantID is not correctly displayedParticipantID is not correctly displayed TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Thanks you very much!

Regards,

Hilaria
kevink2013-02-15 13:33Jon (LabKey DevOps)2018-11-16 23:24parse rrors for deleteURL and importURL elements in table metadata XMLparse rrors for deleteURL and importURL elements in table metadata XML TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony,

I'm not able to reproduce the errors you're seeing. I created a list on a 12.3 server and trunk and applied the xml metadata override, but it saved cleanly without errors. After the save, the insert/update/delete/import links and buttons were removed.

Are there errors in the server log?
Anthony Corbett2013-02-15 14:39Jon (LabKey DevOps)2018-11-16 23:24parse rrors for deleteURL and importURL elements in table metadata XMLparse errors for deleteURL and importURL elements in table metadata XML TEXT_WITH_LINKSClosed     LabKey Support Forum
Kevin,

No errors in the log file. I'm seeing inconsistent behavior on save. First I saved it with only the tableUrl, insertUrl, and updateUrl defined as blank.

The inital save worked. Once I tried adding importUrl and deleteUrl I got the saved with parse errors. I removed them to go back to the initial xml and then got the saved with parse errors message again. Then, I removed all xxxxUrl elements and it saved fine. I put back updateUrl, tableUrl, and insertUrl and it saved fine again.

I can add in deleteUrl and importUrl and save with parse errors. When I go to view the list it is behaving correctly, no import or delete buttons. So it seems to be working but the save still says it is having parse errors.

Here is the full XML:

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="Specimens Submitted to GRC" tableDbType="TABLE">
    <insertUrl></insertUrl>
    <updateUrl></updateUrl>
    <tableUrl></tableUrl>
    <importUrl></importUrl>
    <deleteUrl></deleteUrl>
    <columns>
      <column columnName="Key">
        <datatype>integer</datatype>
        <columnTitle>Key</columnTitle>
        <nullable>false</nullable>
        <isKeyField>true</isKeyField>
      </column>
      <column columnName="GlobalUniqueId">
        <datatype>varchar</datatype>
        <columnTitle>Global Unique Id</columnTitle>
        <fk>
          <fkDbSchema>study</fkDbSchema>
          <fkTable>SpecimenDetail</fkTable>
          <fkColumnName>GlobalUniqueId</fkColumnName>
        </fk>
      </column>
      <column columnName="Participant Id">
        <datatype>varchar</datatype>
        <columnTitle>Participant Id</columnTitle>
        <fk>
          <fkDbSchema>study</fkDbSchema>
          <fkTable>Participant</fkTable>
          <fkColumnName>ParticipantId</fkColumnName>
        </fk>
      </column>
    </columns>
    <pkColumnName>Key</pkColumnName>
  </table>
</tables>


On a related note, I just tried to create a new query using the above mentioned list with custom table XML metadata and I'm getting an Exception (I've attached screenshots and the full log of this error):

org.labkey.api.query.QueryException: Illegal URL expression:
       at org.labkey.api.data.AbstractTableInfo.parseDetailsURL(AbstractTableInfo.java:731)
       at org.labkey.api.data.AbstractTableInfo.loadFromXML(AbstractTableInfo.java:801)
       at org.labkey.api.query.FilteredTable.loadFromXML(FilteredTable.java:115)
       at org.labkey.api.data.AbstractTableInfo.overlayMetadata(AbstractTableInfo.java:1019)
       at org.labkey.api.data.AbstractTableInfo.overlayMetadata(AbstractTableInfo.java:1010)
       at org.labkey.api.query.UserSchema._getTableOrQuery(UserSchema.java:178)
       at org.labkey.query.sql.Query.resolveTable(Query.java:594)
       at org.labkey.query.sql.QuerySelect.initializeSelect(QuerySelect.java:257)
       at org.labkey.query.sql.QuerySelect.<init>(QuerySelect.java:122)
       at org.labkey.query.sql.Query.createQueryRelation(Query.java:264)
       at org.labkey.query.sql.Query._parse(Query.java:231)
       at org.labkey.query.sql.Query.parse(Query.java:194)
       at org.labkey.query.sql.Query.parse(Query.java:210)
       at org.labkey.query.QueryDefinitionImpl.getQuery(QueryDefinitionImpl.java:296)
       at org.labkey.query.QueryDefinitionImpl.getQuery(QueryDefinitionImpl.java:281)
       at org.labkey.query.QueryDefinitionImpl.getTable(QueryDefinitionImpl.java:358)
       at org.labkey.api.query.UserSchema.getTable(UserSchema.java:131)
       at org.labkey.api.query.UserSchema.getTable(UserSchema.java:115)
       at org.labkey.api.query.UserSchema.getTable(UserSchema.java:208)
       at org.labkey.query.controllers.QueryController$ExecuteQueryAction.appendNavTrail(QueryController.java:872)
       at org.labkey.api.action.SpringActionController.appendNavTrail(SpringActionController.java:543)
       at org.labkey.api.action.SpringActionController.getTemplate(SpringActionController.java:499)
       at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:460)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:361)
       at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:921)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:791)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:170)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
       at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
       at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
       at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
       at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
       at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
       at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.IllegalArgumentException: Failed to parse url ''.
Supported url formats:
       /controller/action.view?id=${RowId}
       org.labkey.package.MyController$ActionAction.class?id=${RowId}
       at org.labkey.api.query.DetailsURL.parse(DetailsURL.java:180)
       at org.labkey.api.query.DetailsURL.fromString(DetailsURL.java:96)
       at org.labkey.api.data.AbstractTableInfo.parseDetailsURL(AbstractTableInfo.java:727)
       ... 53 more
jeckels2013-03-14 14:50Jon (LabKey DevOps)2018-11-16 23:24parse error for result.xml domain in file based moduleparse error for result.xml domain in file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

This may be an XML ordering issue. Can you try putting the <RangeURI> before the <Label>?

Thanks,
Josh
Anthony Corbett2013-03-14 16:33Jon (LabKey DevOps)2018-11-16 23:23parse error for result.xml domain in file based moduleparse error for result.xml domain in file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Yup, that was it; I had to move Label and RangeURI. Thanks!

I didn't even think to look at the PropertyDescriptorType declaration to see the sequence in the complexType declaration. Is Labkey planning to move to XSD 1.1? It lifts the restriction of minOccurs="0" and maxOccurs="1" for the xs:all group element. I'm sure the restrictive sequence trips up a lot of people. :)

Thanks again!

-
Anthony
Anthony Corbett2013-03-14 16:52Jon (LabKey DevOps)2018-11-16 23:24parse error for result.xml domain in file based moduleparse error for result.xml domain in file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
While on the subject of defining domains in file-based modules, I have one more question. In the originally attached result.xml I would like the CellsUsed and ReactionPhase fields to be FK to a lookup. Is it possible to define lists in a file-based module? Or would I need to create a custom Schema for this module and write the DDL and DML statements to populate it in the module's SQL scripts? I would prefer to use lists, I don't want to restriction what the values can be and rather have the user of the assay define it as they wish.

I see in customeModules for idri visual assay's result.xml has some PropertyDescriptors with FK to list.Timepoints and lists.Temperature; however, I don't see where the list is defined in the idri module source. If the list doesn't exist does it create it?

Thanks,

Anthony
kevink2013-03-15 14:01Jon (LabKey DevOps)2018-11-16 23:24parse error for result.xml domain in file based moduleparse error for result.xml domain in file based module TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, no, it's not possible to define lists in file-based modules yet. It's something we've been wanting to do, but it's a little tricky to deal with schema changes and attaching the list to containers.

There are two options to workaround this limitation:

1) Use a folder or list archive and manually import it into the target folder. This lets you manage the data and design in source control, but still allows you to modify the design once imported.

2) Use a file-based module with sql scripts as you suggest. To insert data, either use SQL DML scripts or create an initialize.html view that will populate a table using LABKEY.Query.insertRows().

If you use (2) and you'd like to allow admins to add/remove fields from the table, you can add an LSID column to your hard-table and make it a foreign key to the exp.Object.ObjectUri column in the schema.xml file. This will allow you to define a domain for the table much like a list. The domain is per-folder so different containers may have different sets of fields.

For an example of how to do this, check out the server/customModules/reagent module's reagent.xml file. If wires up the LSID lookup to the exp.Object.ObjectUri column and adds an "Edit Fields" button that opens the domain editor.

      <ns:column columnName="Lsid">
        <ns:datatype>lsidtype</ns:datatype>
        <ns:isReadOnly>true</ns:isReadOnly>
        <ns:isHidden>true</ns:isHidden>
        <ns:isUserEditable>false</ns:isUserEditable>
        <ns:isUnselectable>true</ns:isUnselectable>
        <ns:fk>
          <ns:fkColumnName>ObjectUri</ns:fkColumnName>
          <ns:fkTable>Object</ns:fkTable>
          <ns:fkDbSchema>exp</ns:fkDbSchema>
        </ns:fk>
      </ns:column>

function editDomain(queryName)
{
    var url = LABKEY.ActionURL.buildURL("property", "editDomain", null, {
        domainKind: "ExtensibleTable",
        createOrEdit: true,
        schemaName: "reagent",
        queryName: queryName
    });
    window.location = url;
}
Anthony Corbett2013-03-16 15:51Jon (LabKey DevOps)2018-11-16 23:23parse error for result.xml domain in file based moduleparse error for result.xml domain in file based module TEXT_WITH_LINKSClosed     LabKey Support Forum

Thanks Kevin. I'll look into both options to determine which best fits use-case this file based assay best.
jeckels2015-11-06 10:15Jon (LabKey DevOps)2018-11-16 23:24Parameterize the Columns in a PIVOT Query?Parameterize the Columns in a PIVOT Query? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I don't think this is possible. In my attempts to combine parameterized queries and PIVOT BY, I get an error:

When used with parameterized query, PIVOT requires an explicit values list

Is this what you're seeing as well?

Underneath, the issue is that when we resolve the list of potential PIVOT values, we don't have the full context to know the parameter values. We need to know the shape of the results outside of having the parameters, so that we can do things like render the schema browser, etc.

While it's not as elegant, could you dynamically build the SQL with the parameter values embedded in your use case?

Thanks,
Josh
Ben Bimber2015-11-06 10:19Jon (LabKey DevOps)2018-11-16 23:23Parameterize the Columns in a PIVOT Query?Parameterize the Columns in a PIVOT Query? TEXT_WITH_LINKSClosed     LabKey Support Forum
yeah, that matches what i see, and i agree w/ the reason why. in my paramterized example above, i gave them default values (null), which i why i think LabKey allows that query. I assume it evaluates the PIVOT column list using those default parameter values.

and yes, i ended up doing the less elegant solution of building SQL client-side and using executeSql to get my data.

thanks.
WayneH2017-10-24 12:32Jon (LabKey DevOps)2018-11-16 23:24Parameterized QueryParameterized Query TEXT_WITH_LINKSClosed     LabKey Support Forum
For the time being I just converted 'null' values to "N/A" so there is always a value in the row for the given field that works around the issue but if there was another way to approach this please let me know.

Thanks

Wayne
Jon (LabKey DevOps)2017-10-25 22:34Jon (LabKey DevOps)2018-11-16 23:24Parameterized QueryParameterized Query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

I'd like some clarification to your question. So are you not entering in anything into a field when making a parameterized query and not getting any results?

Is it possible for you to provide a more in-depth sample for us to look at, like a folder archive that contains a demo list/dataset and parameterized query that is displaying the behavior you're speaking about with the nulls?

Regards,

Jon
WayneH2017-10-30 12:43Jon (LabKey DevOps)2018-11-16 23:24Parameterized QueryParameterized Query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

created a small example for this question that reflects what I have in the project. (Queries are on the query tab)

1. I start with a dataset... which has a couple of fields which are datetime fields.. i chose to recode those into '1' meaning data is present or NULL/"N/A" (recode or recodeNA datasets) - this is only done because of the data I am receiving..

2. I then created another query where the parameters are specified. (date parameters to select a range and one additional for the CIDR field where data may either be 1/Null or 1/NA depending on the dataset)

3. In the query with null values, requesting the same data range and not specifying CIDR I get 3 rows returned , whereas in the query where these null values have even converted to "N/A" I get 8 rows returned (includes the converted rows)
Note: I had to create an exception so that a null value would default to the original otherwise the query would return no results. Seems the parameter cannot pass an empty value through to the query. But once I do this, values that were null have their rows simply dropped..

I attached the example in the archived study. I figure there must be a better way to do this... to allow a query to accept empty values or work with nulls without having to recode those to some value like "N/A"

Thanks,

W
Jon (LabKey DevOps)2017-11-04 21:24Jon (LabKey DevOps)2018-11-16 23:23Parameterized QueryParameterized Query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

After testing this, I don't think we've properly accommodated an IS NULL option when being used via parameters.

I'll need to escalate this further to see if:

1. There is a better workaround
2. To see how we would support this with the existing structure.

Thank you for your patience.

Regards,

Jon
Greg Taylor2014-06-10 17:10Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Currently, you may override user defined run properties using an assay transformation script but not assayId which is a protected field. However, the fix to support overriding of assayId was simple enough and I have implemented it. I will check the improvement into trunk shortly. The new behavior should be supported by the next release.

Greg
Andy Straw2014-06-11 05:43Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks very much.

Andy
Will Holtz2016-04-22 15:51Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
I just bumped into this exact same problem, so I'm guessing this never was committed.

-Will
Jon (LabKey DevOps)2016-04-22 18:48Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I'm trying to confirm whether this was checked in or not. I'm confident that it was done, but since you saw this exact problem in 16.1, I want to make absolutely sure.

Thank you for your patience.

Regards,

Jon
Will Holtz2016-04-22 21:52Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
My development machine, where I ran into this, is still on r41716 (between v15.3 and v16.1). But that revision is well after mid-2014. Maybe I'll get everything moved to 16.1 this weekend and can test it again. Unfortunately, I couldn't come up with a fast way to generate a small test case for this.

-Will
Will Holtz2016-04-23 21:27Jon (LabKey DevOps)2018-11-16 23:23Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
I upgraded my development machine to v16.1 and tried this again. I am still not able to set the run name via the transformedRunPropertiesFile.tsv. I tried with the field name being 'name', 'assayId', and 'Assay Id' and none of them worked for me.

-Will
Jon (LabKey DevOps)2016-04-27 14:18Jon (LabKey DevOps)2018-11-16 23:23Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Took a bit to dig through the code, but I found the update that was done.

Revision #32912
Committed by g.taylor 6/11/14, 2:49 PM
Fix for Message 9333: Add support to change assayId as a run property in a transformation script. Request by Rochester.

Checking the files against the local current version that I had pulled down, it doesn't appear that there was anything removed from previous, but I will escalate this for further investigation.

Regards,

Jon
Jon (LabKey DevOps)2016-04-27 14:25Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Will Holtz2016-04-27 15:29Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I've also done a bit more digging into this. I attempted to make a small repo of this using the General assay type. With the General assay, I was able to update the assayId field via transformedRunPropertiesFile.tsv. Then I tried modifying trunk/server/customModules/exampleassay by adding the attached transformation script. This is the same transformation script that successfully modified the assayId field of the General assay. The transformation script failed to update the assayId field within exampleassay.

I normally don't assume the path or filename for transformedRunPropertiesFile.tsv, but for the purpose of making a simple repo, I made such an assumption here.

-Will
Jon (LabKey DevOps)2016-04-27 19:02Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the additional information Will! That will help with the investigation further!

Regards,

Jon
Jon (LabKey DevOps)2016-06-30 12:31Jon (LabKey DevOps)2018-11-16 23:23Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy/Will,

Is this still an issue for either of you? We had attempted to reproduce the problem, but found that everything did actually work without fail in 16.1 and in trunk.

Regards,

Jon
Andy Straw2016-06-30 12:53Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
When you added/fixed this back a while ago, it worked for us, and continues to work. We set the property named "assayId" in the file whose name is given as the value of the "transformedRunPropertiesFile" in the runProperties.tsv file passed to our script.
Will Holtz2016-07-05 16:08Jon (LabKey DevOps)2018-11-16 23:23Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I just re-tested the repo that I posted on April 27th on two different machines (my development laptop running 16.1/r42835 that was locally compiled and my staging server running official 16.1 binaries). In both cases, the assayId field was not updated.

I needed to get around this issue, so I basically added an assayIdMutable field to my assay and customized the UI to show this field instead. So this currently isn't blocking for me, but it would be nice to avoid doing all of that in the future.

-Will
Jon (LabKey DevOps)2016-07-08 18:03Jon (LabKey DevOps)2018-11-16 23:23Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the additional details Will.

I've reopened the bug for further investigation here.

Regards,

Jon
Jon (LabKey DevOps)2016-10-16 20:08Jon (LabKey DevOps)2018-11-16 23:24Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

We haven't been able to repro this in house on 16.2 or later.

Since this problem is specific to 16.1 and we have 16.3 coming out in mid-November, we are going to encourage users to either upgrade to the current 16.2 build or to 16.3 once that is release.

Regards,

Jon
Andy Straw2016-12-21 09:55Jon (LabKey DevOps)2018-11-16 23:23Overriding run properties in assay transformation scriptOverriding run properties in assay transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Coming back to this again...

I am writing transformation scripts in Java for assays, and using 16.2. What I have found is the following:
- I can set the AssayId from my transformation script if the user uses the "Paste in a tab-separated set of values" option on the Run Properties wizard page during import.
- If the user first selects a file they have uploaded, and then chooses to import that, my script's attempt to set the assay id seems to be ignored - the name of the selected file is always used as the Assay Id.
- I have not tried the "Upload a data file" option on the Run Properties wizard page - not sure how that will behave.

Andy
Ben Bimber2011-04-19 12:53Jon (LabKey DevOps)2018-11-16 23:24override assayBegin.view?override assayBegin.view? TEXT_WITH_LINKSClosed     LabKey Support Forum
nevermind, got it right after i wrote this. just created a file called begin.view.
Matthew Bellew2011-11-08 11:12Jon (LabKey DevOps)2018-11-16 23:23Overlapping DaysOverlapping Days TEXT_WITH_LINKSClosed     LabKey Support Forum
Just for sanity I'd break it down into two problems

1) find assignments that overlaps the period of interest
2) find assignments that overlap each other

NOTE
1) (A,B) overlaps (C,D) can be accomplished with the test to B>C AND A<D
2) on postgres only labkey supports the method "overlaps(a,b,c,d)" which translates into the pgsql operator "overlaps"

Query: AssignmentsInPeriod
SELECT * FROM assignments a
WHERE a.startdate < EndDate AND a.enddate > StartDate

Query: OverlappingAssignments
SELECT ...
FROM assignments a1 INNER JOIN assignments a2 ON (a1.id=a2.id and a1.project < a2.project)
WHERE a1.start < a2.end AND a1.end > a2.start

That's pseudo code of course, but I hope that helps.

see also the use of query parameters in
https://www.labkey.org/wiki/home/Documentation/page.view?name=labkeySql
Matthew Bellew2011-11-08 11:13Jon (LabKey DevOps)2018-11-16 23:23Overlapping DaysOverlapping Days TEXT_WITH_LINKSClosed     LabKey Support Forum
Of course, the second query should be "FROM AssignmentsInPeriod a1..."
Ben Bimber2011-11-08 11:13Jon (LabKey DevOps)2018-11-16 23:23Overlapping DaysOverlapping Days TEXT_WITH_LINKSClosed     LabKey Support Forum
hi daniel,

in general, handling date overlaps in EHR queries is a pain. you could also consider looking at the EHR query study.housingRoommates, which does something conceptually similar to what you're talking about (housing overlaps instead of assignments).

that query finds housing overlaps and calculates the duration of the overlap.

study.PerDiems and study.PerDiemsByDay might also be good templates, as these sum the total overlapping assignments over a date range. in fact these might work straight away for your purpose.
Daniel Nicolalde2011-11-08 13:40Jon (LabKey DevOps)2018-11-16 23:24Overlapping DaysOverlapping Days TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben and Matthew,

Thank you for the quick responses, I look at both examples you mentioned and there is not a problem with calculating the overlap between intervals, the problem is with projects that started earlier than the cut of date and continue after the day.

The approach that Matthew recommends seams interesting, the question that I have is how to create the temporary table that will exclude any assignment outside the StartDate and EndDate. I created a table PreStudyOverlap:

PARAMETERS (StartDate TIMESTAMP, EndDate TIMESTAMP)

SELECT *
FROM Assignment h
WHERE h.date < CAST(StartDate as DATE) AND h.enddate > StartDate

and I call it from my main Query to do the inner join, the question that I have is how the parameters as pass between tables? that approach seam to work. I try including it in the main query and did not gave me the same results. I still need to hash out some day calculation but it is working.
Ben Bimber2011-11-08 14:04Jon (LabKey DevOps)2018-11-16 23:23Overlapping DaysOverlapping Days TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Daniel,

I believe Matt is suggesting write 2 different SQL statements, for the purpose of keeping it cleaner. It doesnt actually make a temp table, which isnt possible in labkey-sql. You can refer to one statement from the other.

If the problem is finding assignments overlapping a date range, look at study.AssignmentOverlaps, which has StartDate/EndDate params and returns any assignments overlapping those dates, accounting for the caveats you note, including null enddates (which i dont think your examples would handle). If you joined that query to itself i think you'll get your result.

Note on Matt's point: rather than trying to copy this SQL from here into your other statement you could just do:

select * from study.AssignmentOverlaps A1 join study.AssignmentOverlaps A2 on (.....)

params and everything should be taken care of. then you only need to worry about the quirks of date overlaps in 1 place.
Daniel Nicolalde2011-11-09 13:03Jon (LabKey DevOps)2018-11-16 23:24Overlapping DaysOverlapping Days TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Thank you for the help, the table is working. I am now trying to calculate the exact number of days two project assignments overlap. I am separating into four categories:
1. Projects that started before and go beyond the time interval of interest
2. Projects that start before and finish with the time interval
3. Projects that started within the time interval and finish during the time interval
4. Project that start during the time interval and finish after the time interval.

For the first option I am using the following CASE, some project don't have endate therefore I am using curdate to set those dates:

CASE
WHEN ((CAST (h.date AS DATE) < CAST(StartDate as DATE)) AND (CAST (COALESCE(curdate(), h.enddate) AS DATE) > CAST(EndDate AS DATE)))

The problem is that it display almost all the alternatives but in some case it displays it adds time intervals that do not adhere to this statement, I am looking for project in 2007 and it show more than two projects that started before 2007 and finish in 2007.

Is there a bug in the way CASE is handle by LabKey or I am having a typo in my statement?

Thank you

Daniel
Matthew Bellew2011-11-09 13:17Jon (LabKey DevOps)2018-11-16 23:23Overlapping DaysOverlapping Days TEXT_WITH_LINKSClosed     LabKey Support Forum
Without look at this too hard, the COALESCE expression seems suspect. Since CURDATE() is never NULL, COALESCE(CURDATE(), h.enddate) will always equal CURDATE().

I think you need to switch the arguments.
Ben Bimber2011-11-09 13:38Jon (LabKey DevOps)2018-11-16 23:24Overlapping DaysOverlapping Days TEXT_WITH_LINKSClosed     LabKey Support Forum
hi daniel,

if i understand your question right, then in the interest of sanity i might normalize start/stop dates in an inner statement like:

select
h.startdate,
h.enddate,
--syntax might not be right
timestampdiff(h.enddate, h.startdate) as timedifference

from (
select
 
case
when h.date<STATEDATE THEN STATEDATE
else h.date
end as StateDate,

CASE
WHEN (h.enddate is null or h.enddate > ENDDATE) then ENDDATE
else h.enddate
END as enddate

)

this is also an example of why splitting it into multiple SQL statements can help. you have one that generates the overlaps then you can test/validate. you can have a second one to take this input and calculate days between or whatever else you need.
Dave Bradlee2012-08-20 11:31Jon (LabKey DevOps)2018-11-16 23:24other_specimen_id and parent_specimen_id fieldsother_specimen_id and parent_specimen_id fields TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

It turns out that the fields other_specimen_id and parent_specimen_id exist on the Event table, but are not exposed in the virtual schema that users see. (You probably know that internally LabKey has various schema and these schema are not visible to users in via Schema Browser; instead users are presented with a virtual schema that is more user-friendly.) I've opened a bug to add those to the virtual schema.

Thanks.

Dave
Jon (LabKey DevOps)2017-06-12 12:18Jon (LabKey DevOps)2018-11-16 23:24org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Atul,

What version and build of LabKey are you running?

Do you recall what you were doing before the error appeared? Are you able to retrigger the error to appear again? If so, can you give us the steps you took?

Regards,

Jon
Jon (LabKey DevOps)2017-06-12 12:48Jon (LabKey DevOps)2018-11-16 23:24org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681 TEXT_WITH_LINKSClosed     LabKey Support Forum
Additionally, can you also provide us with your labkey.log file as well?

Regards,

Jon
adam2017-03-07 16:01Jon (LabKey DevOps)2018-11-16 23:24Oracle DB connectionOracle DB connection TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, if you've configured an Oracle DataSource correctly in your labkey.xml file then that database should appear as an option on the external schema page. Look at messages logged at server startup; there should be a detailed message for each DataSource, showing all the configuration parameters and whether the connection was successful or not. What information is logged for your new DataSource?

Adam
Matthew Walker2017-03-09 13:57Jon (LabKey DevOps)2018-11-16 23:24Oracle DB connectionOracle DB connection TEXT_WITH_LINKSClosed     LabKey Support Forum
It appears to not be compatible with oracle 10g. Confirmed?
Jon (LabKey DevOps)2017-03-09 14:13Jon (LabKey DevOps)2018-11-16 23:24Oracle DB connectionOracle DB connection TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matthew,

I believe this is the case.

Checking our older docs, it looks like our earliest records show that Oracle 11g was the most earliest version that we've worked with that we verified works with past iterations of LabKey.

If you're trying to run Java 8, Oracle 12c Release 1 JDBC driver is the only one that supports Java 8.

Regards,

Jon
Matthew Bellew2015-08-13 09:22Jon (LabKey DevOps)2018-11-16 23:24Open Office Docs Over WebDav?Open Office Docs Over WebDav? TEXT_WITH_LINKSClosed     LabKey Support Forum
My testing has been mostly focussed on programs that mount WebDav as a file system: OS X Finder, Net Drive, Web Drive, Windows WebDav Redirector, etc...

And as you found, I mostly had problems with authentication. The main problem seems to be that many clients don't seem to understand that guests may have some read permission, w/o having full access to a share. For instance, if they do not encounter an UNAUTHORIZED on connection they may never prompt even when encountering UNAUTHORIZED for resources elsewhere on the share. To handle that we respond UNAUTHORIZED for all non-browser connections to force a login prompt and allow the user to login as guest:guest.

I'm sure there are many such idiosyncrasies to work around. I think these come from vendors testing primarily against their own servers, rather than non-conformance in our protocol implementation. As a side-note there is a start of a "secure document store" coming, just the internal implementation not a full-blown UI. So these comments are timely. I wonder if we'd really want versioning support before allowing edit-in-place?

I highly suggest installing a debug proxy such as Charles or Fiddler to help watch the WebDav traffic if you want to understand what's going on.

Matt
Ben Bimber2015-08-13 10:28Jon (LabKey DevOps)2018-11-16 23:24Open Office Docs Over WebDav?Open Office Docs Over WebDav? TEXT_WITH_LINKSClosed     LabKey Support Forum
true, thought the hope of going directly from browser -> office is that it's less complicated for the user. installing and using a webdav client might seem easy enough, but the exposed LK file root really isnt as brainlessly user-friendly as one might like.

anyway, it seems like software is getting really close to being able to support this.
Matthew Bellew2015-08-13 10:32Jon (LabKey DevOps)2018-11-16 23:24Open Office Docs Over WebDav?Open Office Docs Over WebDav? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben, can you paste in any URLs you've come across with interesting info?
Ben Bimber2015-08-13 11:13Jon (LabKey DevOps)2018-11-16 23:23Open Office Docs Over WebDav?Open Office Docs Over WebDav? TEXT_WITH_LINKSClosed     LabKey Support Forum
sure.

1) this describes MS Office Online's ability to open a doc off a URL. however, it explicitly says it needs to be a public doc. this does suggest that Office Online may have paid features allowing one to edit docs off a URL or will in the future support authorization:

https://blogs.office.com/2013/04/10/office-web-viewer-view-office-documents-in-a-browser

2) I think the browser plugin is the most promising route for this. If you install this chrome plugin, when you try to open/download office docs they will automatically open in chrome/google docs:

https://chrome.google.com/webstore/detail/office-editing-for-docs-s/gbkeegbaiigmenfmjfclcdgdpimamgkj?hl=en

it's not LK specific and doesnt appear to allow editing. still kinda useful. saving would be important though.
dennisw2015-08-17 08:22Jon (LabKey DevOps)2018-11-16 23:24Open Office Docs Over WebDav?Open Office Docs Over WebDav? TEXT_WITH_LINKSClosed     LabKey Support Forum
When I was figuring out the architecture for the versioning system system for our Manuscript Workbench, I really wanted to go with WebDAV and looked hard at a way to connect MS Office Plugin -> LK -> Apache Jackrabbit backend, but realized I was going to run into a lot of the same issues you're discussing above. I even looked at perhaps using Git SCM or another CVS for document versioning. Our solution ended up with a LabKey module -> interface webapp -> OpenKM versioning but does not allow for directly saving from Office (or Open Office) unless I go so far as to write a plugin, but so far the users have found it pretty easy to work with versioning (browse or drag and drop).

I'd be really interested to see an integral WebDAV solution in LK. I know it's tough, since the 'V' in WebDAV has always been somewhat lacking support and adoption. The solution we came up with is necessarily complicated, and a chance to version directly rather than using a three-part psuedo-SOA involving 3 Tomcats would be great.


Some links I came across when doing research on this:

Java framework with delta-v versioning for WebDAV:
http://www.webdavsystem.com/news/webdav_server_library_java_supports_versioning

MS tech paper on WebDAV versioning:
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCUQFjABahUKEwiLlLrgq7DHAhWJGT4KHb3MBxM&url=http%3A%2F%2Fdownload.microsoft.com%2FDOWNLOAD%2F9%2F5%2FE%2F95EF66AF-9026-4BB0-A41D-A4F81802D92C%2F%5BMS-WDVSE%5D.pdf&ei=jfHRVcuZI4mz-AG9mZ-YAQ&usg=AFQjCNE-ebec_g1BWtQqhcdLlH2iGpVc-A&bvm=bv.99804247,d.cWw

OReilly article on the history of versioning in WebDAV:
http://archive.oreilly.com/pub/a/opensource/excerpts/9780596510336/webdav-and-autoversioning.html


CodeBeamer Application Lifecycle Management has a WebDAV plugin for their system that seems to have versioning:
https://codebeamer.com/cb/wiki/11103 (about WebDAV.. note the 'experimental' versioning system and the general difficulty of set-up from the user's end)
jeckels2014-10-14 11:50Jon (LabKey DevOps)2018-11-16 23:24OntologyManager.GetPropertyObjects() returning ObjectProperty(s) with propertyId=0OntologyManager.GetPropertyObjects() returning ObjectProperty(s) with propertyId=0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Yes, that doesn't seem right. The problem is that the exp.objectpropertiesview doesn't select the propertyId value, so it never gets set on the ObjectProperty object. There are a handful of other fields that look like they won't be populated either, like ConceptURI and Format.

I can update the view to include more columns, but having your repro scenario would be great.

Thanks,
Josh
Will Holtz2014-10-14 14:00Jon (LabKey DevOps)2018-11-16 23:24OntologyManager.GetPropertyObjects() returning ObjectProperty(s) with propertyId=0OntologyManager.GetPropertyObjects() returning ObjectProperty(s) with propertyId=0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Module source for repro is attached.

After compiling/installing the module perform the following steps:
1) Go to Fermentation Module
2) click 'New Assay Design' button
3) Select 'General' assay radio button then 'Next' button
4) Give the assay a name, and click 'Save & Close' button
5) Go to http://localhost:8080/labkey/fermentation/Fermentation/begin.view?rowId=X
   where X should be the rowId of the assay design that was just created

The bug should result in a assertion error.
If the bug has been fixed, the main body of resulting page should be empty.
jeckels2014-10-15 10:17Jon (LabKey DevOps)2018-11-16 23:23OntologyManager.GetPropertyObjects() returning ObjectProperty(s) with propertyId=0OntologyManager.GetPropertyObjects() returning ObjectProperty(s) with propertyId=0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for the repro. I just committed a fix with revision 34828 in the trunk. It will be part of version 14.3.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=21740

Thanks,
Josh
Will Holtz2014-10-15 10:20Jon (LabKey DevOps)2018-11-16 23:23OntologyManager.GetPropertyObjects() returning ObjectProperty(s) with propertyId=0OntologyManager.GetPropertyObjects() returning ObjectProperty(s) with propertyId=0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh!

-Will
Peter2007-10-01 07:59Jon (LabKey DevOps)2018-11-16 23:24OntologyEntryURIOntologyEntryURI TEXT_WITH_LINKSClosed     LabKey Support Forum
At this point, ProtocolParameters are only really used for the "template" set of parameters that determine how a protocol definition gets expanded into a set of ProtocolApplications and output Material and Data objects. Some sample xars have used ProtocolParameters for descriptive information about a particular step in a protocol, but no CPAS UI or functionality has been built around this usage. So there are no pre-defined prefixes to OntolotyEntryURI nor any meaning attached to particular ones (other than the Template ones).

If you are starting out designing xars and trying to decide where to hang additional information about your protocol or its application, my advice would be to follow the basic structure of the new Assay feature in 2.2. Assays use a property of the parent Protocol object to specify the domain of properties on the ExperimentRun object produced by the protocol.
kanchink@mail.nih.gov2007-10-01 09:24Jon (LabKey DevOps)2018-11-16 23:23OntologyEntryURIOntologyEntryURI & ProtocolParameters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Peter,

Thanks for the response.

A quick question... Some example XAR files have ProtocolParameters associated with Protocols and also ProtocolApplication elements. It seems to me that is redundant and that:
1. ProtocolParameters should be only associated with Protocol elements.
2. Specifying protocol parameters is relevant only when authoring XAR files in the ExperimentLog format (which describes auto generation of Protocol Application objects).

Please confirm.

Thanks - Krishna.
Jon (LabKey DevOps)2016-12-13 15:17Jon (LabKey DevOps)2018-11-16 23:23On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined"On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined" TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mauricio,

Sounds like something is missing from your production build, especially if this worked in your dev setup in IntelliJ.

Do you by chance have the binaries for that production build as a zip file or tar.gz? Would it be possible for you to provide that to us so we can test this on our end?

Regards,

Jon
mauricio2016-12-14 02:24Jon (LabKey DevOps)2018-11-16 23:24On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined"On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined" TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
I just downloaded it using SVN and the next command:

sudo svn checkout --username cpas --password cpas https://hedgehog.fhcrc.org/tor/stedi/trunk /home/labkey

Mauricio
Jon (LabKey DevOps)2016-12-14 15:12Jon (LabKey DevOps)2018-11-16 23:24On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined"On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined" TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Maurico,

But you said that you put the build into production. How did you do this? Did you compile the code and make binaries as a zip file or tar.gz to then run it on your production server?

If things worked in development via IntelliJ, but not in Production off of the same code, something must have changed between your development environment vs your production one.

Regards,

Jon
mauricio2016-12-15 07:08Jon (LabKey DevOps)2018-11-16 23:23On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined"On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined" TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

In my development machine with IntelliJ, where everything works correctly, I did:

     BUILD --> LABKEY BUILD --> PRODUCTION

this finished successfully with the message: "Ant build completed successfully in 1m 20s at 15/12/16"
and made the next folders into $LABKEY_HOME/build/deploy/
    
     bin
     labkeyWebapp
     modules
     pipelineLib

I copied this folders in my production machine (I already had a functional version of labkey, what happened is that now I need to add modules) and the only thing that does not work for me is the subject of messages.

Regards,
Mauri
Jon (LabKey DevOps)2016-12-15 14:43Jon (LabKey DevOps)2018-11-16 23:24On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined"On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined" TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mauri,

Ok, this makes sense now. What you needed to do was an "ant production" in order to make a proper set of production files.

Please take a look at the following two links. Once you do ant production, your build should work:

https://www.labkey.org/home/Documentation/wiki-page.view?name=build#build
https://www.labkey.org/home/Documentation/wiki-page.view?name=productionBuilds

Regards,

Jon
mauricio2016-12-16 10:14Jon (LabKey DevOps)2018-11-16 23:23On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined"On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined" TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you so much Jon! I did what you told me and now my LABKEY works perfectly in production! :)
Regards,
Mauri.
Jon (LabKey DevOps)2016-12-16 13:02Jon (LabKey DevOps)2016-12-16 13:02On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined"On Message Submit: "Uncaught TypeError: Cannot read property 'validate' of undefined" TEXT_WITH_LINKSClosed     LabKey Support Forum
Great! Glad things are working now Mauri! We'll consider this matter closed!

Regards,

Jon
jeckels2011-09-23 10:48Jon (LabKey DevOps)2018-11-16 23:24one bad email failing whole email with LABKEY.Messageone bad email failing whole email with LABKEY.Message TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

This error is from the SMTP server itself. It's not clear from the message itself what is rejecting the recipient, but the stack indicates that it's gotten to com.sun.mail.smtp.SMTPTransport.rcptTo(), which means it was talking to the STMP server.

Thanks,
Josh
Greg Taylor2014-07-10 15:14Jon (LabKey DevOps)2018-11-16 23:24Odd Firefox warningOdd Firefox warning TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Nope, we have not seen this warning in the console window of Firefox before. The warning shouldn't cause problems however and can safely be ignored. At this time, We are unsure of what could be creating an unbalance tree.

Greg
A-aron2014-07-11 10:44Jon (LabKey DevOps)2018-11-16 23:24Odd Firefox warningOdd Firefox warning TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Scott,

I think a few of us have seen these. However, most development and support is focused for Chrome which supports our largest set of features and can handle areas like this better.

As noted in the mozilla url, we are probably writing some output to the dom using document.write() and as such mozilla performance suffers. If you are doing any type of work where the browser performance is a significant hurdle, it is suggested that you use Chrome.

If this particular issue warrants further investigation please let us know and I will open an issue to myself on this.

Thanks,

-Aaron
adam2010-10-06 08:09Jon (LabKey DevOps)2018-11-16 23:24odd behavior from lists and viewsodd behavior from lists and views TEXT_WITH_LINKSClosed     LabKey Support Forum
This is known; I'll add your scenario to the bug: https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10301

The loose coupling between queries and custom views shows up here as well: https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10847
Trey2015-02-09 14:08Trey2015-02-09 14:08observation on labkey window installerobservation on labkey window installer TEXT_WITH_LINKSClosed     LabKey Support Forum
This is not a supported scenario. The Windows Graphical Installer is intended primarily for evaluation purposes. We periodically update the installer with new versions of Postgres -- as well as Java and Tomcat. If one wishes to have full control over LabKey's dependencies, they should use the manual installation procedure (https://www.labkey.org/wiki/home/Documentation/page.view?name=manualInstall).
mpeterson@mitre.org2012-03-20 08:00mpeterson@mitre.org2012-03-20 08:00NullPointerException in Schema Browser and CheckNullPointerException in Schema Browser and Check TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you - turned out I had a letter transposition in there that I missed in my lookthrough. My code is now working both on 11.2 and 11.3

Thanks,
Matt
jeckels2012-03-19 10:46Jon (LabKey DevOps)2018-11-16 23:23NullPointerException in Schema Browser and CheckNullPointerException in Schema Browser and Check TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Yes, this is related to the schema XML metadata file. Looking at the code, it seems like this could happen if you have a <column> in your XML file without a columnName attribute, or perhaps if you have <column> that refers to a column name that doesn't exist in the underlying database.

The code in question has changed since 11.2 and it looks like we shouldn't hit this exception anymore.

Thanks,
Josh
Jon (LabKey DevOps)2018-03-30 14:47Jon (LabKey DevOps)2018-03-30 14:47Null pointer exception from js call LABKEY.Message.sendMessageNull pointer exception from js call LABKEY.Message.sendMessage TEXT_WITH_LINKSClosed     LabKey Support Forum
Note: I've been informed that the NPE still shouldn't be happening though. Bug https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=33802 has been filed to investigate the issue.
Ben Bimber2012-05-02 09:53Jon (LabKey DevOps)2018-11-16 23:24NullPointerException error for a LabKey listNullPointerException error for a LabKey list TEXT_WITH_LINKSClosed     LabKey Support Forum
hi ngoc,

this is a bug we fixed in 12.1. the bug occurs when the list has a column with the name 'name'. if you can rename that column to something else, you will be able to update your list. when WNPRC upgrades to 12.1 this should also be fixed. sorry for the problems.

-ben
npham@primate.wisc.edu2012-05-15 12:41Jon (LabKey DevOps)2018-11-16 23:24NullPointerException error for a LabKey listNullPointerException error for a LabKey list TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Ben! Super easy fix :)
brian.derocher@noblis.org2011-07-13 08:44Jon (LabKey DevOps)2018-11-16 23:24NPE at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:599)NPE at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:599) TEXT_WITH_LINKSClosed     LabKey Support Forum
I figured this one out. Looks like LabKey copies jar files from the modules folder to the labkeyWebapp folder. Still trying to figure out why that happens. Now i have an issue with not finding the core context. My core.modules table is empty.
jeckels2011-07-13 09:51Jon (LabKey DevOps)2018-11-16 23:23NPE at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:599)NPE at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:599) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

I'd suggest killing the Tomcat process, dropping the labkey database on your Postgres server and then restarting Tomcat. When the webapp starts up, assuming the issue around the labkeyWebapp directory has been resolved (file permissions, I'm guessing?) it should recreate the database and populate it as expected.

Thanks,
Josh
brian.derocher@noblis.org2011-07-13 11:05Jon (LabKey DevOps)2018-11-16 23:23NPE at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:599)NPE at org.labkey.api.module.ModuleLoader.upgradeCoreModule(ModuleLoader.java:599) TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

That's exactly what i did. I got an issue with being unable to find a class in mail.jar, so i copied that to /usr/share/tomcat6/lib/ (just like labkeyBootstrap.jar) and it started up just fine. After registering my account, it installed all the other modules.

thanks,
Brian
jeckels2009-07-24 09:19Jon (LabKey DevOps)2018-11-16 23:24note regarding TPP binaries in LabKeynote regarding TPP binaries in LabKey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Natalie,

Thanks for the note. This checkin added Linux binaries of the TPP and X!Tandem (not the TPP version) to make them available in a stable location on our automated build machines. It's the same older versions that we've been using on Windows for some time now.

In 9.3 (due for release in November) we'll be updating to new versions of the TPP and X!Tandem. I'll keep you posted on the progress.

Thanks,
Josh
Leo Dashevskiy2013-03-25 14:42Leo Dashevskiy2013-03-25 14:42Not able to build the latest (25373) development versionNot able to build the latest (25373) development version TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks guys!

Josh, your fix worked.

This machine is a Mac, and it still does have the older Java 1.6 - I will make sure and upgrade.

Matt, I am also aware of always using the Oracle's Java on my dev Linux box.
jeckels2013-03-25 11:20Jon (LabKey DevOps)2018-11-16 23:24Not able to build the latest (25373) development versionNot able to build the latest (25373) development version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

There is most likely additional error information higher up in your build output that will provide more detail. Can you attach the full build log?

I checked our automated build system and it hasn't hit similar errors today. I checked for potential issues that might have been introduced and quickly fixed but didn't see anything. Regardless, you could try syncing to the latest version and building again, as it might solve the problem.

Thanks,
Josh
Leo Dashevskiy2013-03-25 11:30Jon (LabKey DevOps)2018-11-16 23:24Not able to build the latest (25373) development versionNot able to build the latest (25373) development version TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Josh!

I'm still a noob at building the server.
Should I redirect the build's output to a file manually or is there a build log file being generated automatically somewhere? If so, where?

-Leo
jeckels2013-03-25 12:49Jon (LabKey DevOps)2018-11-16 23:23Not able to build the latest (25373) development versionNot able to build the latest (25373) development version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Yes, you can either redirect to a file via the command line, or copy/paste a longer chunk from your console window. There's no log file that's automatically generated when we do a build.

Thanks,
Josh
Leo Dashevskiy2013-03-25 12:59Jon (LabKey DevOps)2018-11-16 23:23Not able to build the latest (25373) development versionNot able to build the latest (25373) development version TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, so attached are my current steps.
jeckels2013-03-25 13:12Jon (LabKey DevOps)2018-11-16 23:23Not able to build the latest (25373) development versionNot able to build the latest (25373) development version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I see the error:

    [javac] /Library/LabKey/server/customModules/onprc_ehr/src/org/labkey/onprc_ehr/legacydata/LegacyDataManager.java:18: package com.sun.deploy.services does not exist
    [javac] import com.sun.deploy.services.ServiceManager;
    [javac] ^

I just committed a fix with revision 25379.

Are you building with JDK 1.6 or 1.7? We've migrated to 1.7, though we don't strictly require it yet, but a version difference could explain the difference in behavior.

I'd recommend switching to 1.7 when you have a chance. We'll soon be completely removing support for JDK 1.6.

https://www.labkey.org/wiki/home/Documentation/page.view?name=supported

Thanks,
Josh
Matthew Bellew2013-03-25 13:16Jon (LabKey DevOps)2018-11-16 23:24Not able to build the latest (25373) development versionNot able to build the latest (25373) development version TEXT_WITH_LINKSClosed     LabKey Support Forum
Another possibility is that you are not building with the Oracle java implementation. Are you running on Linux?
Will Holtz2018-01-26 09:05Will Holtz2018-01-26 09:05Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
I recently got the same error as Scott but doing './gradlew cleanbuild deployApp' did not resolve the issue. A response to a similar issue on stackoverflow (https://stackoverflow.com/questions/33546759/gradle-occurred-starting-process-command-npm-on-mac/) indicated that './gradlew --stop' has resolved a similar issue. I'm not sure why stopping the gradle daemon allowed './gradlew cleanbuild deployApp' to successfully complete, but it worked for me so I thought I'd pass it on.

-Will
slangley@scharp.org2017-06-28 13:05Jon (LabKey DevOps)2018-11-16 23:24Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
So, after downloading Node.js and putting it in my path like so:

export PATH=/local_static/node-v6.11.0-linux-x64/bin:$PATH

and running gradle:

./gradlew build --stacktrace

I get this error:

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':server:modules:core:npm_prune'.
...
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'npm''
        at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:198)
        at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:329)
        at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86)
        ... 2 more
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'npm'
        at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
        at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
        at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:68)
        ... 2 more
Caused by: java.io.IOException: Cannot run program "npm" (in directory "/local_static/IdeaProjects/labkey_trunk/server/modules/core"): error=2, No such file or directory
        at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
        ... 4 more
Caused by: java.io.IOException: error=2, No such file or directory
        ... 5 more

While if I do:
 npm version

I get:

{ npm: '3.10.10',
  ares: '1.10.1-DEV',
  http_parser: '2.7.0',
  icu: '58.2',
  modules: '48',
  node: '6.11.0',
  openssl: '1.0.2k',
  uv: '1.11.0',
  v8: '5.1.281.102',
  zlib: '1.2.11' }


Any suggestions?

Thanks.

Scott Langley
Jon (LabKey DevOps)2017-06-29 12:21Jon (LabKey DevOps)2018-11-16 23:23Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Can you re-run your build again, but use the debug flag and send us the full output?

./gradlew build --debug

I'm curious to see what is going on there on your local box.

Regards,

Jon
slangley@scharp.org2017-06-29 14:09Jon (LabKey DevOps)2018-11-16 23:24Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
Hope this helps:

13:56:45.248 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :server:modules:core:npm_prune (Thread[Daemon worker Thread 2,5,main]) started.
13:56:45.248 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :server:modules:core:npm_prune
13:56:45.248 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Starting to execute task ':server:modules:core:npm_prune'
13:56:45.248 [INFO] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Putting task artifact state for task ':server:modules:core:npm_prune' into context took 0.0 secs.
13:56:45.248 [DEBUG] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Determining if task ':server:modules:core:npm_prune' is up-to-date
13:56:45.248 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':server:modules:core:npm_prune' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
13:56:45.248 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':server:modules:core:npm_prune'.
13:56:45.253 [INFO] [org.gradle.process.internal.DefaultExecHandle] Starting process 'command 'npm''. Working directory: /local_static/IdeaProjects/labkey_trunk/server/modules/core Command: npm prune
13:56:45.253 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Environment for process 'command 'npm'': {PATH=/local_static/node-v6.11.0-linux-x64/bin:/local_static/apache-maven-3.3.9/bin:/scharp/xapps/fw/share/jdk1.8.0_102/bin:/scharp/xapps/fw/share/play-1.4.3:/scharp/xapps/fw/bin:/home/slangley/.local/bin:/usr/local/apps/texlive/2009/bin/x86_64-linux:/usr/local/apps/bin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/bin/X11:/sbin:/studies/datafax/bin:/trials/perl:/usr/local/bin:/usr/local/admin/bin:/scharp/xapps/tools/bin, XMODIFIERS=@im=local, GDMSESSION=gnome, WINDOWMANAGER=/usr/bin/gnome, BASH_FUNC_mc()=() { . /usr/share/mc/bin/mc-wrapper.sh
}, INPUTRC=/home/slangley/.inputrc, DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-qXH6BtDisd,guid=01f9776d6f85a989f951f69359444620, JRE_HOME=/scharp/xapps/fw/share/jdk1.8.0_102/jre, MACHTYPE=x86_64-suse-linux, LPDEST=itbw, JRE_ROOT=/scharp/xapps/fw/share/jdk1.8.0_102/jre, SSH_AGENT_PID=2912, QT_SYSTEM_DIR=/usr/share/desktop-data, LD_LIBRARY_PATH=/usr/local/apps/lib:/usr/local/lib:/lib:/usr/lib:/lib:/systems/local/lib:/usr/local/apps/lib:/usr/local/lib:/lib:/usr/lib:/lib:/systems/local/lib:, COLORTERM=gnome-terminal, CSHEDIT=emacs, XAUTHLOCALHOSTNAME=localhost, SESSION_MANAGER=local/hyena:@/tmp/.ICE-unix/2787,unix/hyena:/tmp/.ICE-unix/2787, USERNAME=slangley, LS_OPTIONS=-N --color=tty -T 0, ALSA_CONFIG_PATH=/etc/alsa-pulse.conf, ORBIT_SOCKETDIR=/tmp/orbit-slangley, PWD=/local_static/IdeaProjects/labkey_trunk, WINDOWID=65011715, LESSOPEN=lessopen.sh %s, PAGER=/usr/bin/less, GDM_KEYBOARD_LAYOUT=us, HOSTTYPE=x86_64, GNOME_DESKTOP_SESSION_ID=this-is-deprecated, EXTJS_HOME=/local_static/IdeaProjects/labkey_trunk/server/api/webapp/ext-4.2.1, LABKEY_ROOT=/local_static/IdeaProjects/labkey_trunk, XDG_SESSION_COOKIE=a0db89c2509a6f59e615006d4fe4e438-1497646622.655318-1326460311, SHLVL=1, INFODIR=/usr/local/info:/usr/share/info:/usr/info, ICEAUTHORITY=/home/slangley/.ICEauthority, HISTSIZE=1000, JAVA_ROOT=/scharp/xapps/fw/share/jdk1.8.0_102/, JAVA_HOME=/scharp/xapps/fw/share/jdk1.8.0_102, SDL_AUDIODRIVER=pulse, TERM=xterm, XDG_CONFIG_DIRS=/etc/xdg, G_BROKEN_FILENAMES=1, ANT_HOME=/local_static/apache-ant-1.8.4, XNLSPATH=/usr/share/X11/nls, GTK_RC_FILES=/etc/gtk/gtkrc:/home/slangley/.gtkrc-1.2-gnome2, JENSOR_HOME=/local_static/Jensor, PROFILEREAD=true, DESKTOP_SESSION=gnome, JDK6__HOME=/local_static/java6, MORE=-sl, NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat, VIRTUALENV_USE_DISTRIBUTE=true, XAUTHORITY=/var/run/gdm/auth-for-slangley-ry7rUX/database, XDG_DATA_DIRS=/usr/local/share:/usr/share:/etc/opt/kde3/share:/opt/kde3/share, HOST=hyena, CPU=x86_64, GTK_IM_MODULE=cedilla, XSESSION_IS_UP=yes, G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252, MINICOM=-c on, MAIL=/var/spool/mail/slangley, NEXUS_HOME=/local_static/nexus, SWT_GTK3=0, OSTYPE=linux, LOGNAME=slangley, TOMCAT_HOME=/local_static/tomcat7, JDK_HOME=/scharp/xapps/fw/share/jdk1.8.0_102, LD_LIBRARY_PATH_64=/usr/local/apps/lib:/lib64:/usr/lib64:/lib64:/usr/local/apps/lib:/lib64:/usr/lib64:/lib64:, INFOPATH=/usr/local/info:/usr/share/info:/usr/info, XCURSOR_THEME=, PLAY_PATH=/scharp/xapps/fw/share/play-1.4.3, SHELL=/bin/bash, DATAFAX_DIR=/studies/datafax, OLDPWD=/local_static/IdeaProjects/labkey_trunk, VISUAL=vi, TMPDIR=/tmp, SSH_ASKPASS=/usr/lib64/ssh/x11-ssh-askpass, JRE_BINDIR=/scharp/xapps/fw/share/jdk1.8.0_102/jre/bin, LESS=-M -I, LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:, GNOME_KEYRING_SOCKET=/tmp/keyring-QknGBT/socket, OPENSSL_NO_DEFAULT_ZLIB=yes, LESSCLOSE=lessclose.sh %s %s, MANPATH=/local_static/man:/local_static/share/man:/local_static/man:/local_static/share/man:/home/slangley/man:/usr/local/man:/usr/share/man, QT_IM_MODULE=xim, JAVA_BINDIR=/scharp/xapps/fw/share/jdk1.8.0_102/bin, ENV=/etc/bash.bashrc, XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt, LANG=en_US.UTF-8, DISPLAY=:0.0, IDEA_JDK=/scharp/xapps/fw/share/jdk1.8.0_102, LESSKEY=/etc/lesskey.bin, TMOUT=0, PYTHONSTARTUP=/etc/pythonstart, NNTPSERVER=news, QT_IM_SWITCHER=imsw-multi, JAVA6_HOME=/local_static/java6, FROM_HEADER=, GDM_LANG=en_US.UTF-8, FINDBUGS_HOME=/local_static/findbugs-2.0.1-rc1, CATALINA_HOME=/local_static/tomcat7, GPG_AGENT_INFO=/tmp/seahorse-IelX6a/S.gpg-agent:2911:1, USER=slangley, SSH_AUTH_SOCK=/tmp/keyring-QknGBT/socket.ssh, EDITOR=vi, PRINTER=itbw, HOSTNAME=hyena, JRE6_ROOT=/local_static/java6/jre, XKEYSYMDB=/usr/share/X11/XKeysymDB, LESS_ADVANCED_PREPROCESSOR=no, JRE6_HOME=/local_static/java6/jre, HOME=/home/slangley, GNOME_KEYRING_PID=2778}
13:56:45.253 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTING
13:56:45.253 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Waiting until process started: command 'npm'.
13:56:45.831 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED
13:56:45.831 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command 'npm'' finished with exit value -1 (state: FAILED)
13:56:45.831 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Removed task artifact state for {} from context.
13:56:45.831 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':server:modules:core:npm_prune'
13:56:45.832 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :server:modules:core:npm_prune FAILED
13:56:45.832 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :server:modules:core:npm_prune (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.584 secs.
13:56:45.832 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.295 completed (0 in use)
13:56:45.832 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 2,5,main]] finished, busy: 1.19 secs, idle: 0.029 secs
13:56:45.835 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
13:56:45.835 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.

Thanks.

Scott
Jon (LabKey DevOps)2017-07-03 23:41Jon (LabKey DevOps)2018-11-16 23:23Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Scott.

The error itself looks really odd since it mentions that the path "/local_static/IdeaProjects/labkey_trunk/server/modules/core" doesn't exist, but I'm assuming it does on your system, yes?

Does the same problem come back up if you do a "gradlew deployApp" or "gradlew cleanbuild deployApp"?

Regards,

Jon
Susan Hert2017-07-04 08:17Jon (LabKey DevOps)2018-11-16 23:23Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Scott,

 It looks like the second error message is different than the first. If you run the command 'npm prune' in the server/modules/core directory (just by itself, and not using Gradle) does it succeed?

Susan
slangley@scharp.org2017-07-05 10:45Jon (LabKey DevOps)2018-11-16 23:23Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes to the above:

1. This path exists: '/local_static/IdeaProjects/labkey_trunk/server/modules/core'

2. Running 'npm prune' in server/modules/core directory succeeds.

3. Running './gradlew cleanbuild deployApp' completed successfully.

Thanks!
Jon (LabKey DevOps)2017-07-05 11:03Jon (LabKey DevOps)2018-11-16 23:24Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Thanks for confirming.

Unless I'm mistaken, I think you shouldn't be running things as "gradlew build", but rather as "gradlew deployApp".

If you were running "gradlew build" like it was "ant build" when we were using Ant previously, that would need to change to "gradlew deployApp" instead.

Our docs here show the old ant syntax and the new gradle ones that should be used instead. Knowing that you were able to do "gradlew cleanbuild deployApp" successfully, that is the equivalent of "ant rebuild", which should get you up and running now.

https://www.labkey.org/Documentation/wiki-page.view?name=gradlebuild

Does that make sense?

Regards,

Jon
slangley@scharp.org2017-07-05 13:08Jon (LabKey DevOps)2018-11-16 23:24Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, that makes sense.

I had been running 'gradlew deployApp' up until now.

I guess the state of the build became such that a 'cleanbuild' became necessary.

I think I'm good now.

Scott
Andy Straw2017-08-03 08:34Jon (LabKey DevOps)2018-11-16 23:24Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
Would you please add information about this dependency on Node.js to this wiki page:
https://www.labkey.org/Documentation/wiki-page.view?name=devMachine

Thanks.
Jon (LabKey DevOps)2017-08-03 13:50Jon (LabKey DevOps)2017-08-03 13:50Node.js build dependencyNode.js build dependency TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy,

I've requested for our docs team to update the dev doc with the additional details on node.js

Regards,

Jon
eknelson2009-10-09 17:59Jon (LabKey DevOps)2018-11-16 23:24No central mechanism for the idea of release version?No central mechanism for the idea of release version? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

I ran into a similar issue recently for version numbers in our API files. Adam suggested a solution that might solve both your problem and mine, so I've opened a bug to track the issues:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=8836

Thanks for the suggestion.

-- Elizabeth
adam2009-10-14 10:54Jon (LabKey DevOps)2018-11-16 23:23No central mechanism for the idea of release version?No central mechanism for the idea of release version? TEXT_WITH_LINKSClosed     LabKey Support Forum
adam2010-08-16 14:15Jon (LabKey DevOps)2018-11-16 23:23Nightly DB Maintenance still running despite being turned offNightly DB Maintenance still running despite being turned off TEXT_WITH_LINKSClosed     LabKey Support Forum
This query should show you the system maintenance status and time properties:

   SELECT * FROM prop.propertyentries WHERE category = 'SiteConfig' AND name ilike 'systemMaintenance%';

I suspect the values in the database are correct. It looks like the code that saves the system maintenance settings does not correctly detect changes to the interval properties and, therefore, doesn't reset the timer after interval changes. I'll fix this for 10.3, but in the mean time you can either 1) restart your server or 2) change the system maintenance time property to force a timer reset.

Sorry for the inconvenience...

Adam
Ben Bimber2010-08-16 14:18Jon (LabKey DevOps)2018-11-16 23:24Nightly DB Maintenance still running despite being turned offNightly DB Maintenance still running despite being turned off TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, thanks. i just did option 2.
adam2010-08-16 14:37Jon (LabKey DevOps)2018-11-16 23:23Nightly DB Maintenance still running despite being turned offNightly DB Maintenance still running despite being turned off TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, I should have tested before posting... turns out the time property has the same problem. I'm afraid the only way to stop the timer is to restart your server.

As a check, from the admin console you can select [running threads] and look for the "SystemMaintenance" thread. If present, system maintenance will run at the appointed time; if not, it won't.

Adam
Ben Bimber2010-08-16 15:30Jon (LabKey DevOps)2018-11-16 23:23Nightly DB Maintenance still running despite being turned offNightly DB Maintenance still running despite being turned off TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. not sure that i'll be able to restart tomcat soon. we'll have to live with it for now.
Jon (LabKey DevOps)2018-01-03 10:14Jon (LabKey DevOps)2018-01-03 10:14New UI with others themes besides Seattle?New UI with others themes besides Seattle? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Thanks for the feedback! I've passed it onto the UX Team.

I know we're looking to add additional themes and also refine the existing themes we have.

If you have any additional UI feedback suggestions/improvements you'd like to recommend, feel free to use the "Give UI Feedback" option from the User menu by clicking on your username in the upper-right corner and selecting "Give UI Feedback".

Regards,

Jon
jeckels2017-11-10 07:55jeckels2017-11-10 07:55New UI -> Suggestion on best way to render basic table from JSON?New UI -> Suggestion on best way to render basic table from JSON? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We don't yet have shareable React or similar components, but expect that we'll have some available in 2018.

Thanks,
Josh
Jon (LabKey DevOps)2018-01-03 10:04Jon (LabKey DevOps)2018-11-16 23:23New UI and Button BarsNew UI and Button Bars TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Thanks for the feedback! I've passed it off to the UX team.

It looks like we didn't get that attachment you mentioned. Can you re-attach it to the post?

Regards,

Jon
Ben Bimber2018-01-03 10:24Jon (LabKey DevOps)2018-11-16 23:24New UI and Button BarsNew UI and Button Bars TEXT_WITH_LINKSClosed     LabKey Support Forum
Sure - this is just a vanilla newly created list. LK has many other similar examples of grids (either written by LabKey or built by clients in their modules), where buttons are tacked onto the core set. I really like the switch to icons, but it seems half-baked to have most grids with a mixture. I keep harping on this issue because the '...' / More button is such a simple way to simultaneously improve multiple issues w/ grids across LabKey...
jeckels2015-12-18 10:33Jon (LabKey DevOps)2018-11-16 23:24new targetedms.peptide error? in Panoramanew targetedms.peptide error? in Panorama TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Sorry for the trouble, but thanks for the report. I believe that Nacho also saw this recently. I haven't dug in yet, but will review and update you soon.

Thanks,
Josh
jeckels2016-01-04 10:24Jon (LabKey DevOps)2018-11-16 23:24new targetedms.peptide error? in Panoramanew targetedms.peptide error? in Panorama TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Sorry for the delay, but I just heard from Nacho that the problem should be resolved. Can you give it another try and let us know if you're still seeing the error?

Thanks,
Josh
laurapas2016-01-07 11:35Jon (LabKey DevOps)2018-11-16 23:24new targetedms.peptide error? in Panoramanew targetedms.peptide error? in Panorama TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,
The error is still there.

Regards,
Laura
laurapas2016-01-08 10:31Jon (LabKey DevOps)2018-11-16 23:23new targetedms.peptide error? in Panoramanew targetedms.peptide error? in Panorama TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi - Here's a little more detail. It looks like the issue is gone with older Skyline files, but still present with Skyline v 3.5.0.9191.
jeckels2016-01-10 19:14Jon (LabKey DevOps)2018-11-16 23:24new targetedms.peptide error? in Panoramanew targetedms.peptide error? in Panorama TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

I just sent a followup via email with a request for some specific information from the server.

Thanks,
Josh
Will Holtz2015-09-08 15:21Will Holtz2015-09-08 15:21New LabKey Server 15.2 build is availableNew LabKey Server 15.2 build is available TEXT_WITH_LINKSClosed     LabKey Support Forum
I have been unable to find any release notes for this post 15.2 build. Does any such documentation exist?

thanks,
Will
Will Holtz2015-09-15 09:41Will Holtz2015-09-15 09:41New LabKey Server 15.2 build is availableNew LabKey Server 15.2 build is available TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the clarification!

-Will
jeckels2015-09-14 20:04jeckels2015-09-14 20:04New LabKey Server 15.2 build is availableNew LabKey Server 15.2 build is available TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

The primary motivation for the update is the fix for this issue:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=24111

which can cause sporadic appearances of stale data in certain places in the UI.

Thanks,
Josh
wnels2@uky.edu2008-04-21 05:23Jon (LabKey DevOps)2018-11-16 23:24new issue: Failed CPAS job cannot be restarted easilynew issue: Failed CPAS job cannot be restarted easily TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Aschwin,
Each run needs to have a unique experiment protocol so you will need to rename the protocol to do a second run. That is choose <new protocol> and copy and paste the input xml. The running status means that some of the artifact file from the run weren't cleaned up because it failed in the middle. CPAS uses those files to determine the state of the run.
There will be a copy protocol button soon.

Bill
brendanx2008-04-21 07:20Jon (LabKey DevOps)2018-11-16 23:24new issue: Failed CPAS job cannot be restarted easilynew issue: Failed CPAS job cannot be restarted easily TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Aschwin,

Sounds like you have found what is currently required, though it is only deleting the created directory. Forcing the job status to complete is not necessary.

This is only the case with the single-machine, trial installation. The current Perl Cluster Pipeline supplies a "Retry" button that allows you to pick up where you left of, in case there was a system error.

We are actively working on the pipeline, and will fix this issue with the trial installation in a future release.

--Brendan
aschwin.vanderwoude@btk.fi2008-05-20 05:07Jon (LabKey DevOps)2018-11-16 23:24new issue: Failed CPAS job cannot be restarted easilynew issue: Failed CPAS job cannot be restarted easily TEXT_WITH_LINKSClosed     LabKey Support Forum
Bill and Brendan,

Thanks for your responses.
Good to know you are working on this issue. I am not sure what is meant with a 'trial installation' as I do mean this installation to be used in production.

I also wondered if there is some documentation on the mentioined perl-pipeline.

Thanks,

Aschwin
eknelson2008-05-20 11:01Jon (LabKey DevOps)2018-11-16 23:23new issue: Failed CPAS job cannot be restarted easilynew issue: Failed CPAS job cannot be restarted easily TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Aschwin,

I can answer your doc question. Brendan put together a preliminary doc for the perl pipeline, but it isn't yet part of the main doc tree:

https://www.labkey.org/wiki/home/Documentation/Archive/Drafts/page.view?name=installClusterPipeline

It was current circa LabKey Server v2.0, but may need revision before I put it in the main doc tree.

Thanks,

Elizabeth
Brian Connolly2011-09-27 17:54Jon (LabKey DevOps)2018-11-16 23:24New certificate for globus failsNew certificate for globus fails TEXT_WITH_LINKSClosed     LabKey Support Forum
Ashoka,

I will need a little more information to get an good understanding of the current state of your server.

1) Which certificate expired? Was it all of them? (ie Host certificate and user certificates?)

2) When following the instructions at https://www.labkey.org/wiki/home/Documentation/page.view?name=globusServer did you create a new Certificate Authority? If you did not create a new certificate authority, did you renew the existing certificates or create new ones?

3) DId you create new or renew certificates for users and for the host certificate?

4) If you created a new or renewed your host certificates, did you restart the Globus server?

Can you send me a copy of your globus logs too? (send this to my email as it is probably a large file).

Thanks

Brian
ashoka@seraprognostics.com2011-09-28 15:50Jon (LabKey DevOps)2018-11-16 23:23New certificate for globus failsNew certificate for globus fails TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Brian. See below. I'll send the log file to your email. Is it under /usr/local/gt4.0.6/var ?

1) User certificate expired. Tried to create a new one, sign and use it. Did not work. So we tried creating a new authority.
2. Did create both host and user certificates.
3. New for both host and user.
4. Yes we restated the Globus server.

-Ashoka
Brian Connolly2011-09-28 17:39Jon (LabKey DevOps)2018-11-16 23:23New certificate for globus failsNew certificate for globus fails TEXT_WITH_LINKSClosed     LabKey Support Forum
Ashoka,

When you see an error like

"...Bad certificate (The signature of 'O=Grid,OU=GlobusTest,OU=simpleCA-medusa.tgen.org,CN=host/medusa.tgen.org' certificate does not match its issuer).."

This usually means that the host certificate (/etc/grid-security/hostcert.pem) or container certificate (/etc/grid-security/containercert.pem) were issued by a different certificate authority than the one currently in use.

My guess is that you are currently running in one of two states

1) host certificate and/or container certificate is from old certificate authority and new certificate authority is configured as default.

2) host certificate and/or container certificate is from new certificate authority and old certificate authority is configured as default.


When the new certificate authority was created, it should have created some new files in the /etc/grid-security/certificates directory. One of these files is the root certificate for the new CA. It should be of the form xxxxxxxx.0 where "xxxxxxxx" is an alphanumeric string that was generated during the certificate authority creation.

Does this file exist? If so, it is read-able by the globus user?

You can test if the current host certificate was signed by the a given certificate authority by running

   openssl verify -CAfile = /etc/grid-security/certificates/xxxxxxxx.0 /etc/grid-security/hostcert.pem

-where xxxxxxxx.0 is the root certificate for your CA.

If certificate was created by the certificate authority, you will see a message like
"hostcert.pem: OK"

You should test the root cert from both the old and the new certificate authority. In addition, you should run the same test with the containercert.pem


Lastly, you can view the certificate that is currently in use by the Globus Server by running

    openssl s_client -connect medusa.tgen.org:8443

-this command will output the entire certificate chain currently in use by the globus server. You can use this output to determine if this certificate was created by the old or new certificate authority.

(if you use the command "openssl x509 -in hostcert.pem -text -noout", it will output the certificate in text format. You can use this to compare to output of command above. )


What you want to ensure is that for the hostcert.pem/containercert.pem and user certificates you are using, the root certificate (ie one named xxxxxxxx.0) for the certificate authority which created these certificates is located in /etc/grid-security/certificates

-Brian
ashoka@seraprognostics.com2011-09-29 15:37Jon (LabKey DevOps)2018-11-16 23:24New certificate for globus failsNew certificate for globus fails TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Brian,
Both hostcert.pem and containercert.pem passed the test and displayed the messages like "hostcert.pem: OK".

Running openssl s_client -connect medusa.tgen.org:8443 returns:
CONNECTED(00000003)
depth=0 /O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
verify error:num=27:certificate not trusted
verify return:1
depth=0 /O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
   i:/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=Globus Simple CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIICUzCCAbygAwIBAgIBATANBgkqhkiG9w0BAQQFADBiMQ0wCwYDVQQKEwRHcmlk
MRMwEQYDVQQLEwpHbG9idXNUZXN0MSEwHwYDVQQLExhzaW1wbGVDQS1tZWR1c2Eu
dGdlbi5vcmcxGTAXBgNVBAMTEEdsb2J1cyBTaW1wbGUgQ0EwHhcNMTEwOTI5MjIw
NzE5WhcNMTIwOTI4MjIwNzE5WjBmMQ0wCwYDVQQKEwRHcmlkMRMwEQYDVQQLEwpH
bG9idXNUZXN0MSEwHwYDVQQLExhzaW1wbGVDQS1tZWR1c2EudGdlbi5vcmcxHTAb
BgNVBAMTFGhvc3QvbWVkdXNhLnRnZW4ub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQDriVfoRA7z8MxQ3FinxVr9FXQSItAvi791PtQROUQu7KHnkaLc2dvr
veQeweQTRBvo7ZurTECgJY62XwYla+8oUFy0UxUJBMyTRYNnN1xacoSuQd+yfRMu
6qFtJj+5aWlFZUsYuWQSo0isFzTGcFs3ARC5VawjoUCJaVv9LLv7VQIDAQABoxUw
EzARBglghkgBhvhCAQEEBAMCBPAwDQYJKoZIhvcNAQEEBQADgYEAVomYIE5owLdw
StAYFZfp3QOGPGgBy11qhx6UQvx5rwSyKtxwP/Ljw7LfqCmk9XwYfz5VJO5A9dMz
0c92SwOD+ZiqT4J8vT9Zs3ZPQ7CidcaIORvx43BUbj/0VG+jipBIC/vjfWjlgRLb
LhCiOmZ8+EtWH0xKTdoD+MO6jfzClkw=
-----END CERTIFICATE-----
subject=/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
issuer=/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=Globus Simple CA
---
Acceptable client certificate CA names
/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=Globus Simple CA
---
SSL handshake has read 893 bytes and written 337 bytes
---
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol : SSLv3
    Cipher : DES-CBC3-SHA
    Session-ID: 8F3B2D96FF92BB1D041970598CF28B5635A8B9098FACA9D3B8C1E3DE6CC1235B
    Session-ID-ctx:
    Master-Key: A025B7752A5AA1478004CDCF9D081EAC9AFAFC6E32F95642B4898524BA2542D57B29452B6F072D7C8D9725AA530B061A
    Key-Arg : None
    Krb5 Principal: None
    Start Time: 1317335367
    Timeout : 300 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---

Running openssl x509 -in /etc/grid-security/hostcert.pem -text -noout returns:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: O=Grid, OU=GlobusTest, OU=simpleCA-medusa.tgen.org, CN=Globus Simple CA
        Validity
            Not Before: Sep 29 22:07:19 2011 GMT
            Not After : Sep 28 22:07:19 2012 GMT
        Subject: O=Grid, OU=GlobusTest, OU=simpleCA-medusa.tgen.org, CN=host/medusa.tgen.org
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:eb:89:57:e8:44:0e:f3:f0:cc:50:dc:58:a7:c5:
                    5a:fd:15:74:12:22:d0:2f:8b:bf:75:3e:d4:11:39:
                    44:2e:ec:a1:e7:91:a2:dc:d9:db:eb:bd:e4:1e:c1:
                    e4:13:44:1b:e8:ed:9b:ab:4c:40:a0:25:8e:b6:5f:
                    06:25:6b:ef:28:50:5c:b4:53:15:09:04:cc:93:45:
                    83:67:37:5c:5a:72:84:ae:41:df:b2:7d:13:2e:ea:
                    a1:6d:26:3f:b9:69:69:45:65:4b:18:b9:64:12:a3:
                    48:ac:17:34:c6:70:5b:37:01:10:b9:55:ac:23:a1:
                    40:89:69:5b:fd:2c:bb:fb:55
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            Netscape Cert Type:
                SSL Client, SSL Server, S/MIME, Object Signing
    Signature Algorithm: md5WithRSAEncryption
        56:89:98:20:4e:68:c0:b7:70:4a:d0:18:15:97:e9:dd:03:86:
        3c:68:01:cb:5d:6a:87:1e:94:42:fc:79:af:04:b2:2a:dc:70:
        3f:f2:e3:c3:b2:df:a8:29:a4:f5:7c:18:7f:3e:55:24:ee:40:
        f5:d3:33:d1:cf:76:4b:03:83:f9:98:aa:4f:82:7c:bd:3f:59:
        b3:76:4f:43:b0:a2:75:c6:88:39:1b:f1:e3:70:54:6e:3f:f4:
        54:6f:a3:8a:90:48:0b:fb:e3:7d:68:e5:81:12:db:2e:10:a2:
        3a:66:7c:f8:4b:56:1f:4c:4a:4d:da:03:f8:c3:ba:8d:fc:c2:
        96:4c

Any ideas how to compare?
-Ashoka
Brian Connolly2011-09-29 16:14Jon (LabKey DevOps)2018-11-16 23:24New certificate for globus failsNew certificate for globus fails TEXT_WITH_LINKSClosed     LabKey Support Forum
Ashoka,

You will want to compare the chunk of text between the BEGIN CERTIFICATE and END CERTIFICATE lines in your previous email message against the contents of the hostcert.pem and the containercert.pem files. A simple diff should tell you if they are the same.

If these are the same, another possibility is that private key does not match the certificate. For both the hostcert and containercert verify that the associated private key (ie hostkey.pem) is correct, follow the instructions in the section "Verify A Certificate Matches A Private Key " at http://security.ncsa.illinois.edu/research/grid-howtos/usefulopenssl.html

If private keys and certificates are correct, then I would like you follow the instructions in the "Test the WS-GRAM installation" section on https://www.labkey.org/wiki/home/Documentation/page.view?name=globusServer for instructions on testing your implementation. This may help us isolate where in the globus server the problem exists.

-Brian
Brian Connolly2011-09-29 16:14Jon (LabKey DevOps)2018-11-16 23:24New certificate for globus failsNew certificate for globus fails TEXT_WITH_LINKSClosed     LabKey Support Forum
Ashoka,

You will want to compare the chunk of text between the BEGIN CERTIFICATE and END CERTIFICATE lines in your previous email message against the contents of the hostcert.pem and the containercert.pem files. A simple diff should tell you if they are the same.

If these are the same, another possibility is that private key does not match the certificate. For both the hostcert and containercert verify that the associated private key (ie hostkey.pem) is correct, follow the instructions in the section "Verify A Certificate Matches A Private Key " at http://security.ncsa.illinois.edu/research/grid-howtos/usefulopenssl.html

If private keys and certificates are correct, then I would like you follow the instructions in the "Test the WS-GRAM installation" section on https://www.labkey.org/wiki/home/Documentation/page.view?name=globusServer for instructions on testing your implementation. This may help us isolate where in the globus server the problem exists.

-Brian
jlowey@tgen.org2011-10-26 10:53Jon (LabKey DevOps)2018-11-16 23:24New certificate for globus failsNew certificate for globus fails TEXT_WITH_LINKSClosed     LabKey Support Forum
Brian,
I am taking a look at this issue and get the following errors when running the openssl command, however I did run all the tests in the WS-GRAM testing and it was successful with all of those. Note the results of the openssl command are different from the results Ashoka posted above.. I am not sure if there were any changes to the server since those original results were posted. Please let me know how we should proceed.

Thanks,
James Lowey



[labkey@medusa globus_test]$ openssl s_client -connect medusa.tgen.org:8443
CONNECTED(00000003)
depth=0 /O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
verify error:num=27:certificate not trusted
verify return:1
depth=0 /O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
   i:/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=Globus Simple CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIICUzCCAbygAwIBAgIBATANBgkqhkiG9w0BAQQFADBiMQ0wCwYDVQQKEwRHcmlk
MRMwEQYDVQQLEwpHbG9idXNUZXN0MSEwHwYDVQQLExhzaW1wbGVDQS1tZWR1c2Eu
dGdlbi5vcmcxGTAXBgNVBAMTEEdsb2J1cyBTaW1wbGUgQ0EwHhcNMTEwOTI5MjIw
NzE5WhcNMTIwOTI4MjIwNzE5WjBmMQ0wCwYDVQQKEwRHcmlkMRMwEQYDVQQLEwpH
bG9idXNUZXN0MSEwHwYDVQQLExhzaW1wbGVDQS1tZWR1c2EudGdlbi5vcmcxHTAb
BgNVBAMTFGhvc3QvbWVkdXNhLnRnZW4ub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQDriVfoRA7z8MxQ3FinxVr9FXQSItAvi791PtQROUQu7KHnkaLc2dvr
veQeweQTRBvo7ZurTECgJY62XwYla+8oUFy0UxUJBMyTRYNnN1xacoSuQd+yfRMu
6qFtJj+5aWlFZUsYuWQSo0isFzTGcFs3ARC5VawjoUCJaVv9LLv7VQIDAQABoxUw
EzARBglghkgBhvhCAQEEBAMCBPAwDQYJKoZIhvcNAQEEBQADgYEAVomYIE5owLdw
StAYFZfp3QOGPGgBy11qhx6UQvx5rwSyKtxwP/Ljw7LfqCmk9XwYfz5VJO5A9dMz
0c92SwOD+ZiqT4J8vT9Zs3ZPQ7CidcaIORvx43BUbj/0VG+jipBIC/vjfWjlgRLb
LhCiOmZ8+EtWH0xKTdoD+MO6jfzClkw=
-----END CERTIFICATE-----
subject=/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=host/medusa.tgen.org
issuer=/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=Globus Simple CA
---
Acceptable client certificate CA names
/O=Grid/OU=GlobusTest/OU=simpleCA-medusa.tgen.org/CN=Globus Simple CA
---
SSL handshake has read 893 bytes and written 337 bytes
---
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol : SSLv3
    Cipher : DES-CBC3-SHA
    Session-ID: 1E64BEFE629633BE91AA6C9256DE0E80780859A3F4BEF2B01E77CB7CF6B3A50C
    Session-ID-ctx:
    Master-Key: DAD653B0CFD5ED8229D868613C1EE951140F52A85E8332D9B21540A674DFFD2410CDDCB7A1202D1945D9 B08898ADBF70
    Key-Arg : None
    Krb5 Principal: None
    Start Time: 1319651400
    Timeout : 300 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---

HTTP/1.1 404
Content-Type: text/xml; charset=utf-8
Transfer-Encoding: chunked
Connection: close

3a8
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3 .org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode>soapenv:Server.userException</faultcode>
   <faultstring>java.io.IOException: Unexpected end of stream</faultstring>
   <detail>
    <ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/">java.io.IOException: Unexpected end of s tream
        at org.globus.wsrf.container.ServiceThread.parseHeaders(ServiceThread.java:824)
        at org.globus.wsrf.container.ServiceThread.process(ServiceThread.java:330)
        at org.globus.wsrf.container.GSIServiceThread.process(GSIServiceThread.java:153)
        at org.globus.wsrf.container.ServiceThread.run(ServiceThread.java:291)
</ns1:stackTrace>
    <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">medusa</ns2:hostname>
   </detail>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>
0

read:errno=104
Brian Connolly2011-10-26 12:30Jon (LabKey DevOps)2018-11-16 23:23New certificate for globus failsNew certificate for globus fails TEXT_WITH_LINKSClosed     LabKey Support Forum
James,
Given that some things might have changed since our initial testing, I recommend we jump on web conference where we can debug the configuration in real-time. This will allow us to quickly get your pipeline back up and working again.

I will send you a direct email to schedule the web conference.

Brian
marcia hon2018-02-01 06:55marcia hon2018-02-01 06:55_netrc_netrc TEXT_WITH_LINKSClosed     LabKey Support Forum
Ahh... thanks!
marcia hon2018-01-30 07:34Jon (LabKey DevOps)2018-11-16 23:24_netrc_netrc TEXT_WITH_LINKSClosed     LabKey Support Forum
I solved it by using Linux instead of Windows.
Jon (LabKey DevOps)2018-01-30 12:15Jon (LabKey DevOps)2018-01-30 12:15_netrc_netrc TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Glad you were able to use Linux instead of Windows to resolve your issue.

The file should be just _netrc rather than "_netrc.txt" per our documentation if you are using it on a Windows environment:

https://www.labkey.org/Documentation/wiki-page.view?name=netrc

Regards,

Jon
jeckels2013-05-23 11:10Jon (LabKey DevOps)2018-11-16 23:23need solutionneed solution TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

It looks like you're having a problem launching through IntelliJ, either for a debug or profiling session.

You can find the solution about halfway down the page here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=build

You need to add idea_rt.jar to the -classpath argument.

Thanks,
Josh
jeckels2008-02-01 10:12Jon (LabKey DevOps)2018-11-16 23:24navPageHeadernavPageHeader TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

The exact method depends on what kind of controller you're using, but in either case you'll need to modify the NavTree object. The last item added will be used as the title in the body of the page as well as the <html><title>.

If you're using a Spring controller (meaning your controller subclasses SpringActionController), which is the new and preferred way, your Action class should have an appendNavTrail() method which lets you add to the NavTree.

If you're using a Beehive controller (meaning your controller subclasses ViewController), you need to make sure that you're building a NavTrailConfig with the right NavTree. Check out org.labkey.core.admin.AdminController._renderInTemplate() for an example.

Additionally, you can call setTitle() on your GWTView object to set its own title. You might need call setFrame(FrameType.PORTAL) on it to make the title show up.

Thanks,
Josh
wnels2@uky.edu2008-02-01 13:28Jon (LabKey DevOps)2018-11-16 23:23navPageHeadernavPageHeader TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,
Thanks, that worked. I'm using spring.
Bill
Jon (LabKey DevOps)2019-04-11 12:06Jon (LabKey DevOps)2019-04-11 12:06Name Checker PipelineName Checker Pipeline TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Thank you for using the LabKey Discussion forums. The forums are intended for Community Edition and Premium Edition users to exchange ideas, questions, and solutions. LabKey personnel mediate the forums and curate our extensive documentation. While we often respond to forum posts, responses to technical questions in addition to in-depth developer support are reserved for our Premium Edition partners. We are eager to help you be successful - we recommend you explore our online documentation at https://www.labkey.org/documentation, and invite you to contact us about expert support and premium features. A detailed overview of our Editions can be found here https://www.labkey.com/platform/labkey-server-editions-feature-comparison

Regards,

Jon
jeckels2010-09-24 18:00Jon (LabKey DevOps)2018-11-16 23:24multivalue column and user groupsmultivalue column and user groups TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Thanks for the reminder on this one. I just added it and it'll be part of my next checkin.

Thanks,
Josh
marki2012-07-19 09:37Jon (LabKey DevOps)2018-11-16 23:24Multiple visit schedulesMultiple visit schedules TEXT_WITH_LINKSClosed     LabKey Support Forum
What other groups have done is create a specific sequenceNum for log datasets. Each row in that dataset has the same sequenceNum, but the dataset has an extra key defined (could be a Date) so that there is a unique key for each Participant/SequenceNum/Key combination.

We would like users to be able to flag datasets as log datasets and support them explicitly, but that work has not been a top priority yet.
jdutra2012-07-19 10:33Jon (LabKey DevOps)2018-11-16 23:24Multiple visit schedulesMultiple visit schedules TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for your response. We were thinking of implementing something similar to what you've described, so it's good to know that other groups have set things up that way.
Brian Connolly2012-06-21 13:00Jon (LabKey DevOps)2018-11-16 23:24Multiple network drives on windowsMultiple network drives on windows TEXT_WITH_LINKSClosed     LabKey Support Forum
Dennis,

We currently only support having a single network drive configured via the LabKey Server. (ie configured via the Site Settings page.

 If you would like to use multiple network drives, you will need to mount each additional drive via the operating system. When doing this, please pay particular attention to

a) ensuring that the network drive will be mounted again after reboots
b) Ensure that the tomcat windows service has access to the mounted network drives. Depending on your the version of windows you are using, this might be not be simple. See http://stackoverflow.com/questions/182750/how-to-map-a-network-drive-to-be-used-by-a-service

I can help you with #2 if you run into any problems.

Thank you,
dennisw2012-06-21 13:01Jon (LabKey DevOps)2018-11-16 23:24Multiple network drives on windowsMultiple network drives on windows TEXT_WITH_LINKSClosed     LabKey Support Forum
Great. We'll give it a try.

OK, got the drive mapped using the sysinternals method and that part definitely works. Clever. Now, what next?
jeckels2015-12-02 14:14Jon (LabKey DevOps)2018-11-16 23:24Multiple LDAP ServersMultiple LDAP Servers TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tobin,

This is just for redundancy purposes. If we're able to successfully communicate with one of the servers (even if the authentication attempt failed due to invalid credentials), we won't talk to the others.

Thanks,
Josh
adam2016-07-25 15:18Jon (LabKey DevOps)2018-11-16 23:24Multiple LDAP serversMultiple LDAP servers TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Unfortunately, support for multiple LDAP servers has not yet been prioritized by any of our clients. I'd be happy to discuss the options here... I'll send you a private email to start the conversation.

Thanks,
Adam
bront@kcr.uky.edu2016-07-25 15:23bront@kcr.uky.edu2016-07-25 15:23Multiple LDAP serversMultiple LDAP servers TEXT_WITH_LINKSClosed     LabKey Support Forum
Adam,

Thanks. Look forward to chatting with you.

bront
Sev2018-07-02 08:52Sev2018-07-02 08:52Multiple demographics datasetsMultiple demographics datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon, thats good to know. Appreciate the follow up!
Jon (LabKey DevOps)2018-06-01 23:26Jon (LabKey DevOps)2018-11-16 23:23Multiple demographics datasetsMultiple demographics datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sev,

I'm a little confused with this part:

"We created the AdminDemographics dataset via: CREATE TABLE LIKE studydataset.demographics INCLUDING ALL We registered it with LabKey as a dataset with the additional key column field set to the _key column in the dataset, marked as system managed..."

Am I correct in thinking you actually created this demographics dataset not via the UI, but directly in the database?

Regards,

Jon
Sev2018-06-04 08:43Jon (LabKey DevOps)2018-11-16 23:24Multiple demographics datasetsMultiple demographics datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon!

Thanks for the response. Yes, we did create the table directly in the database.

Thanks

Sev
Jon (LabKey DevOps)2018-06-22 21:07Jon (LabKey DevOps)2018-11-16 23:24Multiple demographics datasetsMultiple demographics datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sev,

Thanks for confirming.

This is something that is not typically done, so I don't believe this would be properly supported within LabKey without some odd side-effects like what you're seeing here.

Let me see what, if anything, can be done to give you a good direction to go in by asking our developers.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2018-06-29 13:03Jon (LabKey DevOps)2018-06-29 13:03Multiple demographics datasetsMultiple demographics datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sev,

I've confirmed that this kind of setup is not supported and it's a bit of a surprise that it worked as a dataset at all.

We recommend creating datasets via the UI and populating it via TSV upload, ETL, or via some other data input method. Beyond this, we can't guarantee how the application will behave.

Regards,

Jon
jeckels2009-11-30 16:10Jon (LabKey DevOps)2018-11-16 23:24mule errormule error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

It looks like this is happening in your new code. If you can get this to repro when running in a debugger, setting an exception breakpoint on NullPointerException will make it so that you can check out the problem when it happens.

I do have one guess as to the root problem, though. If you're causing the web server to redeploy the webapp (by deploying a new build without restarting the server, either by building it or copying in the files), I've seen problem where sometimes Tomcat is unable to load ClassLoader resources without restarting the whole Tomcat process. The only workaround that I know is to restart the server - it's annoying but typically only a problem on development machines where you're rebuilding.

Thanks,
Josh
wnels2@uky.edu2009-12-03 11:29Jon (LabKey DevOps)2018-11-16 23:23mule errormule error TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the reply.
Yea, I usually do restart tomcat after a build but I forget sometimes. I do think I found the min problem though - also development related - There were about 40 messages persisted in the job.queue. I haven't had the problem since I deleted them.
jeckels2009-04-27 09:37Jon (LabKey DevOps)2018-11-16 23:23ms2.spectradatams2.spectradata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

I'm not sure what the query would be to ask for references to the table in Postgres, but I did a quick search for "spectradata" in the MS2 module's *.sql files.

The likely reference is the ms2.Spectra views defined in ms2-create.sql:

CREATE VIEW ms2.Spectra AS
    SELECT f.Run AS Run, sd.*
    FROM ms2.SpectraData sd INNER JOIN
        ms2.Fractions f ON sd.Fraction = f.Fraction;

Thanks,
Josh
wnels2@uky.edu2009-04-27 11:06Jon (LabKey DevOps)2018-11-16 23:24ms2.spectradatams2.spectradata TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the quick response. It was in the views, cabig.spectra as well. Running a script through psql did not give the dependency tracing information in the error message. If I execute the drop command manually it gives me the rest of the story.

Bill
Brian Connolly2011-06-06 07:01Jon (LabKey DevOps)2018-11-16 23:24MS2 Pipeline questionMS2 Pipeline question TEXT_WITH_LINKSClosed     LabKey Support Forum
Jean,

You cannot share MQ or the remote worker across the 2 LabKey Instances. For your staging instance you will need to install and use a separate MQ server and separate remote worker server.

Brian
jean.matscher@novartis.com2011-06-07 08:44Jon (LabKey DevOps)2018-11-16 23:24MS2 Pipeline questionMS2 Pipeline question TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Brian for the fast reply, I'll set up all components separately then...
Best regards,

jean
Karl Lum2013-10-30 17:27Jon (LabKey DevOps)2018-11-16 23:23Moving an Assay Container's file root and updating Data file pointersMoving an Assay Container's file root and updating Data file pointers TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

If you modify the folder level file root (from the files tab), the server won't attempt to move files even if you are going from the default to an override or from an override to the default. Historically, LabKey regards default file roots as 'managed' and will attempt to move and keep file pointers up to date. Non-managed roots (folder/project overrides and file sets) are assumed to be under the control of the user and the server won't try to do anything with them. We could perhaps look to change this in the future and possibly give users the option to move artifacts automatically.

If you manually move the files, then yes you would need to manually update any exp.Data references.

If a folder (or project) is using a default root, then they could be moved using the 'move' button in the folder management->folder tree tab. This should move files and virtual directories as well as fixup file references in the system. I realize this isn't exactly the scenario you were looking for, but I'm not aware of another way that the underlying file system root can get modified and consistency maintained.

- Karl
adam2014-10-30 08:06Jon (LabKey DevOps)2018-11-16 23:23Most Recent Messages SummaryMost Recent Messages Summary TEXT_WITH_LINKSClosed     LabKey Support Forum
Messages are exposed in the "announcement" query schema, making this data available for all standard query operations (grid views, export, API access, etc.). For example, you can view the query version of this forum, ordered from most recent message, via this URL:

https://www.labkey.org/query/home/Developer/Forum/executeQuery.view?schemaName=announcement&query.queryName=Announcement&query.sort=-Created

By applying the folder filter "Current folder and subfolders" the grid will include messages from all subfolders where the user has read permissions. You can also query subfolders programmatically using the containerFilter config option on selectRows().

You probably want to activate the "Messages" module in the folders where you perform these queries, otherwise the schema will be hidden.

Adam
marki2010-10-14 11:12Jon (LabKey DevOps)2018-11-16 23:24more hard tables / studydatamore hard tables / studydata TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, this is almost certainly the same problem. The studydata table in 10.3 is now a union of hard tables rather than a physical table.

The query you sent last time is the one that is causing the problem.

I don't have your data & I know that Michael wanted to try & repro with the same data. Alternately we could try to isolate the problem in the query you sent last time by sending portions of the UNION clause to postgres directly.
Jon (LabKey DevOps)2019-04-11 11:55Jon (LabKey DevOps)2019-04-11 11:55Modules RestartModules Restart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Unfortunately not. Tomcat needs to restart if your LabKey server is in Production Mode in order for the new module to get recognized and get used by the system. Existing modules the server will identify any new changes. This is explained in our docs here under the section "Deploy the Module":

https://www.labkey.org/Documentation/wiki-page.view?name=moduleDevelopmentDeployment

Regards,

Jon
kevink2014-12-18 11:57Jon (LabKey DevOps)2018-11-16 23:24Module-Scoped Dependencies via module.propertiesModule-Scoped Dependencies via module.properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, there are two module.xml files -- the /resources/config/module.xml is a Spring bean xml file and is similar to the module.properties file. The other is /resources/module.xml and defines the module-scoped dependencies.

For an example of the two files in our svn repo, see:

server/test/modules/simpletest/resources/config/module.xml
server/test/modules/simpletest/resources/module.xml
Will Holtz2014-12-18 12:56Jon (LabKey DevOps)2018-11-16 23:24Module-Scoped Dependencies via module.propertiesModule-Scoped Dependencies via module.properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh great! Thanks Kevin.

The documentation page on dependencies (https://www.labkey.org/wiki/home/Documentation/page.view?name=scriptdepend) contains the line "For details on the module.xml file, see Module Properties Reference." If I understand the dual module.xml files correctly, that line is misleading and probably should be removed.

thanks again!
-Will
Will Holtz2014-12-18 15:23Jon (LabKey DevOps)2018-11-16 23:24Module-Scoped Dependencies via module.propertiesModule-Scoped Dependencies via module.properties TEXT_WITH_LINKSClosed     LabKey Support Forum
I got the module-scoped dependencies working, but not without hitting what I believe is a bug.

If you take a trimmed down version of the example module.xml from the documentation:
<module xmlns="http://labkey.org/moduleProperties/xml/">
    <clientDependencies>
        <dependency path="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" />
    </clientDependencies>
</module>

You will get a Null Pointer Exception:

ERROR DefaultModule 2014-12-18 13:41:27,821 Module Starter : Error trying to read and parse the metadata XML for module MyModule from module.xml
java.lang.NullPointerException
    at org.labkey.api.util.Path.normalize(Path.java:239)
    at org.labkey.api.webdav.ModuleStaticResolverImpl.lookup(ModuleStaticResolverImpl.java:106)
    at org.labkey.api.view.template.ClientDependency.<init>(ClientDependency.java:151)
    at org.labkey.api.view.template.ClientDependency.fromFilePath(ClientDependency.java:267)
    at org.labkey.api.view.template.ClientDependency.fromFilePath(ClientDependency.java:222)
    at org.labkey.api.module.DefaultModule.loadXmlFile(DefaultModule.java:916)
    at org.labkey.api.module.DefaultModule.startup(DefaultModule.java:262)
    at org.labkey.api.module.ModuleLoader.completeStartup(ModuleLoader.java:1179)
    at org.labkey.api.module.ModuleLoader.access$200(ModuleLoader.java:119)
    at org.labkey.api.module.ModuleLoader$2.run(ModuleLoader.java:1142)

Looking through the code, the problem appears to be in org.labkey.api.module DefaultModule.java line 916 (v14.2 line numbers)

ClientDependency cd = ClientDependency.fromFilePath(rt.getPath());

That line is expecting a file system path, not a URL. The Path class does a split on '/' and the '//' in a URL results in an empty string array elements returned from split. That's fine. But then a normalized version of that path is passed to createPath(path, length, abs, dir) where the size of the path array parameter is one larger than the length parameter. createPath doesn't make a new path array to reflect the length parameter. Then when path.normalize gets called again, it tries to loop over the full path array and the last element of that array is null.

I haven't actually tried this, but I think the following line would give a null pointer error:
Path.parse("http://labkey.org/index.html").normalize().normalize();

I'm not actually impacted by this, as my dependencies are local. I just put a full URL in for one of them when I needed to debug a (local) dependency not loading as expected, and have since resolved my issue.

-Will
Will Holtz2014-12-18 15:37Jon (LabKey DevOps)2018-11-16 23:24Module-Scoped Dependencies via module.propertiesModule-Scoped Dependencies via module.properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Given what I wrote above, it isn't too surprising that:
<dependency path="MyModule//myScript.js" />
also results in a null pointer exception. However, such a construction is usually considered a valid file path, and thus the bug here is not just limited to URLs.

-Will
Ben Bimber2014-12-18 15:46Jon (LabKey DevOps)2018-11-16 23:24Module-Scoped Dependencies via module.propertiesModule-Scoped Dependencies via module.properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Have you see the docs on script dependencies:

https://www.labkey.org/wiki/home/Documentation/page.view?name=scriptdepend&_docid=wiki%3A013c8dc5-b7d4-102f-b4e1-987439a65c88

The code perhaps should handle this a bit more gracefully, but the double-slash isnt generally accepted for relative file paths within other comparable places of LK either.

I also wonder if there is a discrepancy between how the paths are parsed when in module.xml as compared to other situations, like a view.xml file, or lib.xml (which both also accept client dependencies). I have not looked into the code on this.
Will Holtz2014-12-18 16:18Jon (LabKey DevOps)2018-11-16 23:24Module-Scoped Dependencies via module.propertiesModule-Scoped Dependencies via module.properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Using a URL in view.xml file behaves very similarly to a URL in module.xml - a null pointer exception near the path normalization code.

Using a URL in lib.xml where the URL is in a script tag resulted in my Ant build failing.

Using a URL in lib.xml where the URL is in a dependency tag resulted in the following console message:
 "ERROR ClientDependency 2014-12-18 16:10:40,678 http-bio-8080-exec-8 : Invalid client library XML file: MyModule/MyLib.lib.xml. null"
But not a null pointer exception.

-Will
Nick Kerr2014-12-18 20:21Jon (LabKey DevOps)2018-11-16 23:23Module-Scoped Dependencies via module.propertiesModule-Scoped Dependencies via module.properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for the post. I was able to reproduce the issues that you mentioned and have issued a fix for module.xml and view.xml (see revision 35683). This allows you to specify external dependencies (e.g. https://...) as was intended.

As for the error you received when "Using a URL in lib.xml where the URL is in a script tag resulted in my Ant build failing." The library compiler doesn't allow external scripts to be declared as part of a library definition, but rather, as a dependency of the library. I've improved the error in this case:

ERROR: External scripts (e.g. https://.../script.js) cannot be declared in library definition. Consider making it a <dependency>.

I've also amended the documentation.
Will Holtz2014-12-18 20:38Jon (LabKey DevOps)2018-11-16 23:23Module-Scoped Dependencies via module.propertiesModule-Scoped Dependencies via module.properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Very speedy! Thanks Nick!

-Will
Maya Li2011-12-05 16:07Maya Li2011-12-05 16:07module schema not found after upgrademodule schema not found after upgrade TEXT_WITH_LINKSClosed     LabKey Support Forum
That's it! Such a small gotcha. Thanks, Ben!
Ben Bimber2011-12-05 15:23Jon (LabKey DevOps)2018-11-16 23:24module schema not found after upgrademodule schema not found after upgrade TEXT_WITH_LINKSClosed     LabKey Support Forum
hi maya,

did you enable your module in the folder you're working in? look under the admin menu -> manage project -> folder settings. you'll see a list of the enabled modules there.

-ben
marcia hon2018-02-05 05:22marcia hon2018-02-05 09:36ModulesModules TEXT_WITH_LINKSClosed     LabKey Support Forum
I tried zipping to ProjectA.zip and then renaming to ProjectA.module .

However it is not working...

At Postgres, the schema is not created.

I tried the following:

zip ProjectA.module *

But ProjectA.module does not work.
marcia hon2018-02-05 10:57marcia hon2018-02-05 10:57ModulesModules TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you for all your help, it is working now.

What I did was get the version numbers wrong.
Jon (LabKey DevOps)2018-02-03 00:35Jon (LabKey DevOps)2018-02-03 00:35ModulesModules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Please take a look at our modules docs. They go over how to build basic modules and have a lot of information on customization as well:

https://www.labkey.org/Documentation/wiki-page.view?name=simpleModules

Regards,

Jon
jeckels2011-08-08 11:04Jon (LabKey DevOps)2018-11-16 23:23module extensionmodule extension TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

I assume that your module's code has direct dependencies on classes defined in the issues module?

Right now the build enforces that modules don't have dependencies on each other beyond the classes they include in either API or Internal. At runtime all of the classes from all of the modules end up in the same classloader.

Our approach to date for this kind of cross-module dependency is to extract classes and interfaces and add them to API. We've talked about switching to a build that allows each module to expose its own API without needing to have the classes in the API module itself, or adopting OGSI or a similar approach, but this hasn't been prioritized so far.

In practice, your approach will work, but you'll end up with two (hopefully identical) sets of classes in scope to the same classloader from the issues module and your module. I don't know the scope of your dependencies, so it's hard to know what to recommend.

Thanks,
Josh
brian.derocher@noblis.org2011-08-08 11:15Jon (LabKey DevOps)2018-11-16 23:24module extensionmodule extension TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Thanks for the info. When i say an "extension" i really mean "class workflow extends issues". I don't really care that it's a separate module, but i thought it keep my work isolated. I'm beginning to think i can create a new namespace in org.labkey.issue. But if i do this, will i be able to eventually add a new "workflow" item on a web page. I started by looking at the model, but i haven't looked into views yet.

I agree having two issues.jar in scope is bad.

thanks,
Brian
jeckels2011-08-08 13:21Jon (LabKey DevOps)2018-11-16 23:24module extensionmodule extension TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

Yes, that should work. You can either create a new controller which gets registered inside of IssueModule.init() (just like IssuesController), or create a new View subclass which gets registered inside of IssuesController in the constructor to DefaultActionResolver. The former will create a new controller namespace on the URL and might be a good choice if you anticipate needing to add multiple pages, and the latter will use the existing /issues/ URL mapping.

Thanks,
Josh
Jon (LabKey DevOps)2015-05-19 22:11Jon (LabKey DevOps)2018-11-16 23:24module-defined schema permissionsmodule-defined schema permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

Your assessment is correct. Permissions are typically on the project and folder level in addition to roles.

At this time, the only other security that is a little more granular is tied to Study, specifically securing datasets. So unless your custom module is designed to emulate the Study module, the only way to prevent anyone from accessing those specific tables is to deny them any access to that folder or project, even as a reader.

For more information on LabKey security, please visit the following links:

https://www.labkey.org/wiki/home/Documentation/page.view?name=security
https://www.labkey.org/wiki/home/Documentation/page.view?name=configuringPerms
https://www.labkey.org/wiki/home/Documentation/page.view?name=studySecurity

Regards,

Jon
martin2015-05-19 23:45Jon (LabKey DevOps)2018-11-16 23:24module-defined schema permissionsmodule-defined schema permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Jon.
Thank you for your answer

So I was thinking....i can filter the displayed values via custom webparts (using Javascript API, eg. QueryWebPart).
This way users see only the rows I want them to see.

And the only real problem is that users are able to click their way to the exposed table (via lookup in query webpart which redirects them to details about the specific item -> and then all they need to do is click "Show grid"

(or simply type the URL - which can be guessed even if I didn't let them know it exists)

both ways redirect them to page with URL like this:
http://localhost:8080/labkey/query/FOLDER_PATH/executeQuery.view?schemaName=coredatamodule&query.queryName=SampleTypes

with whole table data exposed. this seems unfortunate to me.
can't this be made forbidden? (access to this url)

I need them to be able to read (or submit) information from the table, but also want to be able to select which information exactly. There should be no way for them to access the whole table.

I intend to provide manipulation with tables ONLY via custom webparts.

Am i aiming for the impossible?

Best regards,
Martin
Jon (LabKey DevOps)2015-05-20 21:15Jon (LabKey DevOps)2018-11-16 23:23module-defined schema permissionsmodule-defined schema permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

So if you need to hide the table, beyond making a custom schema implementation in Java, this might potentially work for your needs:

1. Create one folder with all the schemas in it and make them private.
2. Create another folder which exposes selected schemas via linked schemas (See documentation - https://www.labkey.org/wiki/home/Documentation/page.view?name=filterSchema).

The end result is that the application would be built in the second folder while the hidden schemas in the background would be hidden in the first folder.

Will this work for you instead?

Regards,

Jon
martin2015-05-21 01:02Jon (LabKey DevOps)2018-11-16 23:23module-defined schema permissionsmodule-defined schema permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you very much, Jon.

It's a good idea, unfortunately, after some studying I think linked schemas wouldn't work for me. If I understood correctly, this way I'll need to manually create a new linked schema for each new client (because filters cannot be generated dynamically) and as far as I know, you cannot create linked schemas programmatically.

The other problem is that some information (table rows) might be available to let's say 3 clients.
I use many-to-many binding tables to keep track of these relations and display only the rows I calculate should be displayed.
I cannot see a way to integrate this with filters.


I'm interested in custom schema implementation in Java, as you mentioned.
Could you tell me something more about this? Point me to the right direction? (I am new to interacting with Labkey via Java)

My idea is that, let's say I can add a column "Folder" to each table and simulate destinations that rows should "belong" to.
When displaying whole table (under the default URL mentioned in previous message), i will first filter table based on user permissions and this way he will only see rows belonging to folders he has at least Reader permissions in.

Or, absolutely sufficient would be to somehow block displaying the entire table under the URL - it's funny but this is really all i need:). Or to dynamically define filters to displaying that table.
Or block that URL (at least to non-admins) somehow or hide all columns from displaying after navigating to that URL.

Are those options possible within a single Java module or do I need to temper with LabKey source code?

Thanks again,
Martin
Ben Bimber2015-05-21 07:32Jon (LabKey DevOps)2018-11-16 23:24module-defined schema permissionsmodule-defined schema permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Can you say a little more about your scenario? You basically want row-level control over read access, based on createdBy? If so, here's a trick we've combined with linked schemas to accomplish something like that. In our case I needed more access than just the single user, so this example is one step more complicated:

- we have a table of data with a column for 'project' (think of this like the client) and a createdby field
- we have a second table with 2 columns: 'user/group' and 'project'. this table has rows that list which user(s) or group(s) have access to each project.

It sounds like your source table has a createdby column, mapping back to a Labkey userId? In our case, createdBy, plus a subselect between the project and the table above will produce a whitelist of user/group IDs with access to that row. If you only care about the createdBy user having access, this whole second table thing can be ignored.

In Labkey SQL, there is an isMemberOf(int) function. this is the key. wrap your data table in a query like:

select * from myTable t WHERE isMemberOf(t.createdby)

or

select * from myTable t WHERE isMemberOf(t.createdby) OR (select count(*) from mappingTable m WHERE m.project = t.project and isMemberOf(m.userid)) > 0

then share this query, which will only ever have the rows belonging to the current user. you can tweak the WHERE clause to match the behavior you want.

Note: if you're willing to learn, a custom java TableInfo would let you introduce dynamic filters as well.

-Ben
martin2015-05-22 04:07Jon (LabKey DevOps)2018-11-16 23:23module-defined schema permissionsmodule-defined schema permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Ben.

Your solution is pretty clever and functional, thank you very much:)
There is just one more thing related I can't make work.

I have Folder A, hidden from clients. Module with defined schema containing all the tables is activated only in this Folder A.

Folder B is for clients. Here I created linked schema with queries written in a fashion similar to your suggestion.
So...If I want to read my custom tables in Folder B, no problem, rows get filtered and clients see only what they are supposed to.

If I want clients to also insert data to my custom tables from Folder B (to Folder A), I thought "Submitter" role to Folder A would be sufficient. However, this doesn't work. They need "submitter" + "reader" on Folder A to be able to insertRows. (and giving them reader permissions to Folder A would ruin all my effort:)

Isn't this bug?

I remember that Submitter role worked OK for inserting to lists. Is there a difference when inserting to module-defined schema?
(this module is activated only in Folder A and nowhere else)

Martin
Jon (LabKey DevOps)2015-05-31 23:15Jon (LabKey DevOps)2018-11-16 23:23module-defined schema permissionsmodule-defined schema permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

Is your user just submitting or also reading the data it just created as well?

Regards,

Jon
martin2015-05-31 23:21Jon (LabKey DevOps)2018-11-16 23:24module-defined schema permissionsmodule-defined schema permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
yes, he might submit and read from the same table, but the permissions are not based on what he submitted, but basically on a group membership (permission given by administrator)

(he also should be able to read data he created, because these rows will be tagged with the group he belongs to)

martin
Jon (LabKey DevOps)2015-06-03 22:37Jon (LabKey DevOps)2018-11-16 23:24module-defined schema permissionsmodule-defined schema permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

A group membership would still boil down to the permissions given to that group.

So if you have a user who you need to be a Submitter on Folder A and they're expected to also read the data there as well, Reader access to Folder A would have to exist somewhere for that user - either individually or as apart of a group.

Also, with some roles (e.g. Author and Submitter), the role will need to be supported by the code that's supplying each specific kind of data. This is because it's often somewhat complicated to know exactly what data is "owned" by each user.

It does seem like that the Submitter permissions would be reasonably supported for a module-defined schema, but a fair amount of new feature coding would be involved to make this happen.

Regards,

Jon
Jon (LabKey DevOps)2017-05-03 13:27Jon (LabKey DevOps)2017-05-03 13:27Module compatibility with LabKey versionModule compatibility with LabKey version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Yes, the module.properties file if you're building from source or the module.xml file under the /config directory of the specific module can dictate whether a module is meant for a specific build of LabKey.

https://www.labkey.org/Documentation/wiki-page.view?name=includeModulePropertiesFile

So if the requiredServerVersion field is set to say, 16.3, then that means when the server attempts to load that module, it will immediately recognize that it needs 16.3 or greater and will not allow the module to work otherwise.

Regards,

Jon
Jon (LabKey DevOps)2017-05-03 13:51Jon (LabKey DevOps)2017-05-03 13:51Module compatibility with LabKey versionModule compatibility with LabKey version TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

We've confirmed that the enforcement doesn't appear to be functional.

I've opened the following bug on this issue:

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=30270

Regards,

Jon
jmikk2017-05-04 06:56jmikk2017-05-04 06:56Module compatibility with LabKey versionModule compatibility with LabKey version TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the info Jon.
jeckels2014-04-23 20:50Jon (LabKey DevOps)2018-11-16 23:24Modification of Issue TrackerModification of Issue Tracker TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Quite a few groups have made use of the built-in customizability of the issues list. As you've probably seen, this includes the ability to rename the built-in fields, add a handful of custom fields, configure simple pick-lists, etc.

I'm not aware of any groups that have automated the population of the pick-list, or made them live-lookups to some other query or table in the server. This would be somewhat tricky, as the issues data entry user interface is custom and won't respect the kinds of query metadata that many other data types in the system can.

In terms of implementing something using the existing pick-list functionality, you may have noticed that the values are stored in the issues.issuekeywords list in the underlying database. This table isn't exposed directly through any APIs in the server - it would need to be updated through some direct mechanism.

Thanks,
Josh
Matthew Bellew2008-04-03 10:06Jon (LabKey DevOps)2018-11-16 23:24ModelAndView alternativesModelAndView alternatives TEXT_WITH_LINKSClosed     LabKey Support Forum
If you don't want to use the default template you can specify which template to use with getPageConfig().setTemplate().

In your case you want

    getPageConfig().setTemplate(PageConfig.Template.None);
wnels2@uky.edu2008-04-03 14:39Jon (LabKey DevOps)2018-11-16 23:23ModelAndView alternativesModelAndView alternatives TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks,
That worked. Do you know how to remove the jsp formating? I tryed the jsp below with and without the
<%@ page contentType="text/plain" %> but my text gets wrapped in <DIV> tags.

<%@ page import="org.labkey.ms2.pipeline.PipelineController.SearchFormResponseView.ResponseBean" %>
<%@ page import="org.labkey.api.view.HttpView" %>
<%@ page extends="org.labkey.api.jsp.JspBase" %>
<%
    HttpView<ResponseBean> me = (HttpView<ResponseBean>) HttpView.currentView();
    ResponseBean bean = me.getModelBean();
%>
<%@ page contentType="text/plain" %>
<%=bean.reply%>

Thanks,
Bill
jeckels2008-04-03 15:14Jon (LabKey DevOps)2018-11-16 23:24ModelAndView alternativesModelAndView alternatives TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

To avoid any extra formatting, you might want to try rendering your view within your action instead of returning a ModelAndView. Inside your action, you could call view.render(getViewContext().getRequest(), getViewContext().getResponse()); Then, return null from the action. This should prevent the framework from wrapping you in any other tags.

Josh
adam2008-04-03 15:21Jon (LabKey DevOps)2018-11-16 23:24ModelAndView alternativesModelAndView alternatives TEXT_WITH_LINKSClosed     LabKey Support Forum
You should be able to get rid of the <DIV> by setting the view's frametype to NONE:

    v.setFrame(WebPartView.FrameType.NONE);

But I agree that avoiding JSPs in this case is a good idea.
Matthew Bellew2008-04-03 18:57Jon (LabKey DevOps)2018-11-16 23:23ModelAndView alternativesModelAndView alternatives TEXT_WITH_LINKSClosed     LabKey Support Forum
Also see org.labkey.api.view.HtmlView
wnels2@uky.edu2008-04-07 06:29Jon (LabKey DevOps)2018-11-16 23:23ModelAndView alternativesModelAndView alternatives TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for all of the feedback!
I ended up using the getViewContext().getResponse()) method.
Bill
Jon (LabKey DevOps)2018-05-03 10:05Jon (LabKey DevOps)2018-11-16 23:24Missing ValuesMissing Values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Any reason why you just don't leave those fields blank instead? If the column is set as a Number(Double) datatype field, N/A wouldn't work since that isn't a number and it isn't a null value either.

Regards,

Jon
harris2018-05-03 10:32Jon (LabKey DevOps)2018-11-16 23:24Missing ValuesMissing Values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,
Thanks, but we want to import the data as it is from our vendor. Is it possible to specify a list of values to use as missing values?
Jon (LabKey DevOps)2018-06-01 22:52Jon (LabKey DevOps)2018-11-16 23:24Missing domain kind?Missing domain kind? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

No, there is no concern here.

However, the error appears to be tied to the compliance module, which is a premium module now and will not work in the community edition.

So if you do have the compliance module in your list of modules, you should be able to get past this error by removing the module from the system and restarting the Tomcat service.

Regards,

Jon
Jon (LabKey DevOps)2018-03-02 11:25Jon (LabKey DevOps)2018-11-16 23:24Minimum necessary permissions on SQLServer?Minimum necessary permissions on SQLServer? TEXT_WITH_LINKSClosed     LabKey Support Forum
The DB user would definitely need to have the ability to do CRUD operations on tables and have the ability to create, drop, and alter tables.

They would at least in the very beginning (and any kind of upgrade work afterwards) need to have the ability to create and drop schemas, especially if custom modules are being added in.

And as you pointed out, it would need to install the CLR functions and create the DB in the very beginning.

Beyond this, I don't think there's anything else that would be needed here.
Ben Bimber2018-03-02 11:57Jon (LabKey DevOps)2018-11-16 23:24Minimum necessary permissions on SQLServer?Minimum necessary permissions on SQLServer? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the quick reply. I agree it's pretty clear that the LK user needs CRUD and some kind of higher permissions for upgrades and CLR install. My point is that for some time the LabKey recommendation to clients, at least unofficial (though pretty commonplace), has been to give that user sysadmin permission. While effective, this is sort of the lazy answer. As a client, I am asking whether a) you have internally generated anything more specific than your reply, or b) asking that you consider adding better and more specific guidelines to your SQLServer install documentation. SQLServer permissions are not trivial and some kind of reference to generate a best-practice user would be valuable. Many institutions are taking security much more seriously, and it would be useful if LK made it easier to narrow those permissions.

Thanks,
Ben
Jon (LabKey DevOps)2018-03-02 12:05Jon (LabKey DevOps)2018-11-16 23:24Minimum necessary permissions on SQLServer?Minimum necessary permissions on SQLServer? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I think we can probably get something official created here.

Recently, we've moved our LabKey.org site to a new AWS environment and have switched to using Amazon's RDS for the database. RDS is not your typical DB since Amazon restricts the ability to create SysAdmins, so we've had to jump through some special hoops to get our DB over to it.

I'll talk to our Docs and DevOps teams to see if this information can be added to our docs.

Regards,

Jon
Ben Bimber2018-03-02 12:08Jon (LabKey DevOps)2018-11-16 23:23Minimum necessary permissions on SQLServer?Minimum necessary permissions on SQLServer? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks
Jon (LabKey DevOps)2018-03-02 15:46Jon (LabKey DevOps)2018-03-02 15:46Minimum necessary permissions on SQLServer?Minimum necessary permissions on SQLServer? TEXT_WITH_LINKSClosed     LabKey Support Forum
FYI - Docs team has this up on their scrumboard to get done for 18.1 docs.
Karl Lum2012-06-28 12:17Jon (LabKey DevOps)2018-11-16 23:24Migrating ActionButtons to not use deprecated constructor for 12.2Migrating ActionButtons to not use deprecated constructor for 12.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

For your examples I would probably use the variant of constructor that takes an ActionURL class : ActionButton(ActionURL, String). That way you can pass in an ActionURL that contains your action class plus any optional parameters. The ActionURL is usually constructed from a controller action class and Container. If your controller actions are not visible from your implementing class, let me know and I can show you ways to expose them.

So for example, you could possibly refactor the getButtonBar class like this:


        ActionURL insertUrl = new ActionURL(InsertToStudyAction.class, getContainer());
        ActionURL actionUrl = new ActionURL(InsertToBatchAction.class, getContainer()).addParameter("labstudyseqId", "+queryValue");

        ...

        protected ButtonBar getButtonBar(ActionURL insertURL, ActionURL action)
        {
            ButtonBar bb = new ButtonBar();

            ActionButton insertButton = new ActionButton(ActionButton.BUTTON_DO_INSERT);
            insertButton.setURL(insertURL);
            insertButton.setCaption("Insert a Row");
            bb.add(insertButton);
            ActionButton viewButton = new ActionButton(action,"View Data");
            bb.add(viewButton);

            ActionButton goBack = new ActionButton(new ActionURL(BeginAction.class, getContainer()), "Go Back");
            ActionURL backURL = new ActionURL(EliSpotModule.NAME,VIEW_BEGIN, getContainer());
            goBack.setURL(backURL.getLocalURIString());
            bb.add(goBack);
            return bb;
        }


- Karl
slangley@scharp.org2012-06-29 15:44Jon (LabKey DevOps)2018-11-16 23:23Migrating ActionButtons to not use deprecated constructor for 12.2Migrating ActionButtons to not use deprecated constructor for 12.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Karl. That was very helpful.

The only complication I ran into was for a few insert actions that were of the .post type instead of the .view type. For those, I had to add a:

   insertButton.setActionType(Action.POST);

as you might expect.
Karl Lum2010-03-24 12:37Jon (LabKey DevOps)2018-11-16 23:24might have an R report bug?might have an R report bug? TEXT_WITH_LINKSClosed     LabKey Support Forum
It looks like a bug, normally the report should apply the URL filters when it creates the data frame. What may be happening is that the executeQuery action doesn't apply the data region that the report may expect.

I'll open a bug for 10.2 and investigate.
Jon (LabKey DevOps)2016-03-02 15:18Jon (LabKey DevOps)2018-11-16 23:24metadata formatString not honored when number is generated with ifnull()metadata formatString not honored when number is generated with ifnull() TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

There are two problems that are going on.

1. IFNULL() doesn't have to know a return type.

2. If the types of arguments are different, we have to guess the return type.

Currently, we are not even guessing at a type when it comes to IFNULL(), but it is something that it worth for us to explore enhancing in the future.

But in the meantime, since you're using Postgres, can you give coalesce() a try instead of IFNULL()? coalesce() does actually guess at the return type is the same as the first parameter. It's not perfect, but it is better than no guessing like IFNULL() does.

Regards,

Jon
Will Holtz2016-03-02 15:35Jon (LabKey DevOps)2018-11-16 23:24metadata formatString not honored when number is generated with ifnull()metadata formatString not honored when number is generated with ifnull() TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Replacing the IFNULL() statements with COALESCE() did work. Thanks!

-Will
Ben Bimber2010-10-15 13:11Jon (LabKey DevOps)2018-11-16 23:24metadata and studiesmetadata and studies TEXT_WITH_LINKSClosed     LabKey Support Forum
description should also be on this list. some of these fields are defined in the EHR module; however, things like 'isHidden' should also be getting set there. See EHRProperties.java
jeckels2010-10-18 17:07Jon (LabKey DevOps)2018-11-16 23:23metadata and studiesmetadata and studies TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

It was accidental. I have a fix and will get it checked in soon.

Thanks,
Josh
Jon (LabKey DevOps)2015-02-26 12:28Jon (LabKey DevOps)2018-11-16 23:24Merge option not merging in ETLMerge option not merging in ETL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi James,

This is actually a know bug that is being actively worked on.

According to the bug ticket that is open (https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=19838), it looks like we're targeting our 15.2 release for a fix, which is in mid-July.

At this time, we unfortunately do not have a workaround listed for this. We apologize for any inconvenience this may cause.

Please let us know if you have any further questions.

Regards,

Jon
Jon (LabKey DevOps)2015-02-26 12:55Jon (LabKey DevOps)2018-11-16 23:23Merge option not merging in ETLMerge option not merging in ETL TEXT_WITH_LINKSClosed     LabKey Support Forum
James,

Discussing this with my developers, upon further review, there is a possibility that you might be able to work around this by just going directly into a dataset or custom schema rather than using the list mechanism, but beyond that, there isn't anything else that would allow this feature to work with the list.

Regards,

Jon
james welch2015-02-26 15:18Jon (LabKey DevOps)2018-11-16 23:23Merge option not merging in ETLMerge option not merging in ETL TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,
Thanks very much for your quick response.
I'm sorry - I had a quick look through the issues, but did not see that it had already been reported.
I'll have a go at importing into a custom schema and see if that works.

Many thanks,

James
Karl Lum2010-02-26 10:00Jon (LabKey DevOps)2018-11-16 23:24mergemerge TEXT_WITH_LINKSClosed     LabKey Support Forum
Bill, the class in question is generated by Xbeans from pipelineOptions.xsd. The change that introduced ActionLink would have been r12990, which should have been before your branch and before the 10.1 release branch (13058).

Hope this helps.
wnels2@uky.edu2010-03-01 09:09Jon (LabKey DevOps)2018-11-16 23:23mergemerge TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, that did help. There was a lag between my last update and branch. It merged much better this time with the correct revision range.
I am getting a drt error in the junit test. I hope it is not related to the merge. Have your seen this error before?

Thanks,
Bill

    [junit]
    [junit] org.labkey.api.security.PasswordExpiration$TestCase(org.labkey.test.
drt.JUnitTest$RemoteTest)
    [junit] junit.framework.AssertionFailedError: remote junit failed: org.labke
y.api.security.PasswordExpiration$TestCase
    [junit] ran: 1, errors: 0, failed: 1
    [junit] testExpirations
    [junit] junit.framework.AssertionFailedError: Invalid number of expiration
s for SixMonths expected:<33> but was:<34>
    [junit] at org.labkey.api.security.PasswordExpiration$TestCase.testExpir
ation(PasswordExpiration.java:104)
    [junit] at org.labkey.api.security.PasswordExpiration$TestCase.testExpir
ations(PasswordExpiration.java:85)
adam2010-03-01 09:19Jon (LabKey DevOps)2018-11-16 23:24mergemerge TEXT_WITH_LINKSClosed     LabKey Support Forum
You can ignore that -- it's a bug in the test that I will fix shortly. (28 days hath February...)
wnels2@uky.edu2010-03-01 09:49Jon (LabKey DevOps)2018-11-16 23:24mergemerge TEXT_WITH_LINKSClosed     LabKey Support Forum
Well then, I think I'm almost ready to commit.
I still have one more little issue though:
The Pipeline web part on the MS2 Dashboard is not refreshing (not like a cool breeze; it doesn't auto update the pipeline statuses). on Chrome or FireFox. Does this happen there as well or is it a merge problem?

Thanks,
Bill
wnels2@uky.edu2010-03-01 10:18Jon (LabKey DevOps)2018-11-16 23:23mergemerge TEXT_WITH_LINKSClosed     LabKey Support Forum
Are updates to the 10.1 branch automatically merged with the trunk?
Karl Lum2010-03-01 10:49Jon (LabKey DevOps)2018-11-16 23:24mergemerge TEXT_WITH_LINKSClosed     LabKey Support Forum
They have to be done manually, but someone from the core team will periodically perform merges.
jeckels2010-03-01 13:42Jon (LabKey DevOps)2018-11-16 23:24mergemerge TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

Thanks for the report on the refresh problem. It's an unintended consequence of a different fix that I made late in 10.1. I should be able to get it fixed before the final 10.1 build.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=9882

Thanks,
Josh
Leo Dashevskiy2015-01-05 13:12Leo Dashevskiy2015-01-05 13:12Mechanism of the custom wiki as a drop-down via a menu linkMechanism of the custom wiki as a drop-down via a menu link TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Josh!

I actually tried such and similar approaches last week and they didn't seem to work, so I thought, because I exactly was expecting that the CSS would be applied appropriately as well.

Apparently that does not happen, moreover 'mouseover' events didn't seem to work, but trying the mouse 'click' event seems to properly trigger the asynchronous loading of the wiki contents!
But the styling still needed to be independently properly applied, which if I haven't tried, I never would've known, since there was no visual indication that the loading occurred...
jeckels2015-01-04 16:20Jon (LabKey DevOps)2018-11-16 23:24Mechanism of the custom wiki as a drop-down via a menu linkMechanism of the custom wiki as a drop-down via a menu link TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I haven't tried this myself, but I think that you'll need to fire the mouseover event, which should cause it to load the menu content asynchronously. It may also handle setting the selected CSS as well. See this thread for ideas on what the code might look like:

http://stackoverflow.com/questions/2228376/trigger-onmouseover-event-programatically-in-javascript

Thanks,
Josh
zhangrunxuan@gmail.com2007-04-25 05:42Jon (LabKey DevOps)2018-11-16 23:24Mascot2XML crashMascot2XML crash2007-05-12 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, i may have come across the same problem. Is there any progress for this now?
wnels2@uky.edu2007-04-25 13:53Jon (LabKey DevOps)2018-11-16 23:24Mascot2XML crashMascot2XML crash2007-05-12 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
It has something to do with readw.I switched to the readw that can be found at this page http://sourceforge.net/project/showfiles.php?group_id=69281&package_id=68160. There are several versions around, and I still need to do more investigating, but this one works.
zhangrunxuan@gmail.com2007-04-26 03:19Jon (LabKey DevOps)2018-11-16 23:24Mascot2XML crashMascot2XML crash2007-05-12 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
thank you for your reply, bill. The mzXML files i have here is got from somewhere else. The conversion is not done here and i don't have the files in acquisition format. Can i do anything to correct without going back to do the conversion again?
wnels2@uky.edu2007-04-27 09:18Jon (LabKey DevOps)2018-11-16 23:23Mascot2XML crashMascot2XML crash2007-05-12 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
I don't think so, the files are quite different. I did some more investigating though; the official readW site is http://tools.proteomecenter.org/software/ReAdW.exe

Don't use the one that is packaged with CPAS. I will post thsi as a bug.
cnathe2013-05-17 14:01Jon (LabKey DevOps)2018-11-16 23:24Manually Refreshing Ancillary StudiesManually Refreshing Ancillary Studies TEXT_WITH_LINKSClosed     LabKey Support Forum
A. Tyrell,
Yes, it does look like the current steps mentioned on that documentation page for manually refreshing data in an ancillary study are incorrect. I will make sure that gets fixed.

To update the data in the ancillary study datasets you can do the following:
1. Go to the dataset grid view that you would like to update
2. From the Views menu, select the "Edit Snapshot" option
3. From the "Edit Query Snapshot" page, click on the "Update Snapshot" button.

Thank you,
Cory
Leo Dashevskiy2016-07-29 15:10Leo Dashevskiy2016-07-29 15:10Manipulating the system database to reset the favicon logoManipulating the system database to reset the favicon logo TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Adam! Seems to work (with a reboot).

-Leo

P.S. in our case the logo's DocumentName is 'labkey-logo.png'
adam2016-07-29 12:37Jon (LabKey DevOps)2018-11-16 23:24Manipulating the system database to reset the favicon logoManipulating the system database to reset the favicon logo TEXT_WITH_LINKSClosed     LabKey Support Forum
The look & feel resources (logo, favicon, and stylesheet) are stored in core.Documents. If you want to delete ALL custom favicons at both the site level and all projects, you could execute SQL like this:

    DELETE FROM core.Documents WHERE DocumentName = 'labkey-favicon.ico'

If you only want to delete the favicon at the site-level or on a specific project you'll need to add an appropriate condition on Container.

Note that these resources are cached aggressively, so you'll need to restart your server to see the changes. Similar queries should work for clearing logos (DocumentName = 'labkey-logo') and stylesheets (DocumentName = 'labkey-stylesheet.css'), if needed.

Adam
Jon (LabKey DevOps)2016-07-28 11:28Jon (LabKey DevOps)2018-11-16 23:24Manipulating Specimens using R APIManipulating Specimens using R API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Have you thought about trying to do your insert on the SpecimenDetails table instead?

Regards,

Jon
eva pujadas2016-07-29 01:30Jon (LabKey DevOps)2018-11-16 23:24Manipulating Specimens using R APIManipulating Specimens using R API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks a lot for your answer. Unfortunately, with the mentioned query „SpecimenDetail" we get exactly the same error message:

> labkey.insertRows(baseUrl = baseUrl, folderPath = folderPath, schemaName = "study", queryName = "SpecimenDetail", toInsert = test_insert2)
Fehler in labkey.insertRows(baseUrl = baseUrl, folderPath = folderPath, :
  HTTP request was unsuccessful. Status code = 500, Error message = The query 'SpecimenDetail' in the schema 'study' is not updatable via the HTTP-based APIs.

Do you have some other possible hint?

Thanks and regards,
Eva
Jon (LabKey DevOps)2016-07-29 13:02Jon (LabKey DevOps)2018-11-16 23:24Manipulating Specimens using R APIManipulating Specimens using R API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Just curious, what kind of Specimen Repository do you have? Is it the Standard Specimen Repository or is it the Advanced (External) Specimen Repository?

I have the advanced version running on my test and I was able to insert into my SpecimenDetail table without any trouble via JavaScript:

<button onclick="buttonClick()">Click Me</button>


<script type="text/javascript">

function buttonClick(){

LABKEY.Query.insertRows({
    requiredVersion: 9.1,
    schemaName: 'study',
    queryName: 'SpecimenDetail',
    rows: [{
                "ParticipantId": '00003',
        "SequenceNum": '1.0',
        "GlobalUniqueId": '23452345234523452345',
                "Volume": '123'
             }],
             successCallback: function(data){
            alert('Successful!');
             },
});

}
</script>

Can you go into your Study under the Manage tab and click on "Change Repository Type" and tell me what you see there?

Regards,

Jon
Jon (LabKey DevOps)2016-07-29 14:58Jon (LabKey DevOps)2018-11-16 23:24Manipulating Specimens using R APIManipulating Specimens using R API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Also, if you are set to the Advanced Specimen repository already, confirm it is set to Editable as well.

Regards,

Jon
eva pujadas2016-08-01 23:45Jon (LabKey DevOps)2018-11-16 23:24Manipulating Specimens using R APIManipulating Specimens using R API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks a lot for bringing us to the right solution; the repository was not set to „Editable“ - after changing that the R-api works now (see below):

> labkey.insertRows(baseUrl = baseUrl, folderPath = folderPath, schemaName = "study", queryName = "LocationSpecimenList", toInsert = test_insert)

$rowsAffected
[1] 1

$queryName
[1] "LocationSpecimenList"

$schemaName
[1] "study"

$containerPath
[1] "/Steinmann3"

$rows
list()

$command
[1] „insert"


Thanks once more for your great support!
Eva
Jon (LabKey DevOps)2018-05-18 15:36Jon (LabKey DevOps)2018-11-16 23:24Managing Visits: Visit Import MappingManaging Visits: Visit Import Mapping TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Have you tried the Import Visit Map option instead?

https://www.labkey.org/Documentation/wiki-page.view?name=importVisitMap

It would require you to create an XML file, but you would only need to do this one time to create all the visits.

Regards,

Jon
Jon (LabKey DevOps)2016-01-13 12:19Jon (LabKey DevOps)2018-11-16 23:24Making a list's primary key visible in details viewMaking a list's primary key visible in details view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Have you tried to add the Primary Key field as a column to your view and then proceed to view the details of the record?

That was the only way I could get it to appear in the details page.

Regards,

Jon
Will Holtz2016-01-13 13:04Jon (LabKey DevOps)2018-11-16 23:24Making a list's primary key visible in details viewMaking a list's primary key visible in details view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

For me, even with the PK visible in the view, the details link does not show the PK field.

-Will
Jon (LabKey DevOps)2016-01-13 13:11Jon (LabKey DevOps)2018-11-16 23:24Making a list's primary key visible in details viewMaking a list's primary key visible in details view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Can you also go into Admin > Site > Admin Console, click on Caches and then select "Clear Caches and Refresh"?

After you do that, check the details again for the record in your list to see if the PK field appears in the details.

Regards,

Jon
Will Holtz2016-01-13 13:21Jon (LabKey DevOps)2018-11-16 23:24Making a list's primary key visible in details viewMaking a list's primary key visible in details view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I cleared those caches and then tried again, including from views with the PK, and still did not get the PK to show up on the details page.

thanks,

-Will
Jon (LabKey DevOps)2016-01-13 13:32Jon (LabKey DevOps)2018-11-16 23:23Making a list's primary key visible in details viewMaking a list's primary key visible in details view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

If you take a look at my example here, you can click the details and get the Primary Key within it.

https://www.labkey.org/home/Demos/ListExamples/project-begin.view?

My list has no additional metadata being used, just the addition of using that primary key as a column.

What version and build of LabKey are you running? Our labkey.org site is currently on 15.3 r41244.10 at the moment.

Regards,

Jon
Will Holtz2016-01-13 14:00Jon (LabKey DevOps)2018-11-16 23:24Making a list's primary key visible in details viewMaking a list's primary key visible in details view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi John,

After a bit more poking around, I figured it out. The visibility of the PK in the details view is not dependent on the view that was currently being used when the details link was clicked. Instead, it is dependent on the default view for that list.

thanks for your help!

-Will
adam2010-08-18 09:20Jon (LabKey DevOps)2018-11-16 23:24make user a site admin via postgres SQL script?make user a site admin via postgres SQL script? TEXT_WITH_LINKSClosed     LabKey Support Forum
The core.Members table determines group membership. If you insert a new row with GroupId=-1 (special id for site admin) and UserId=<this user's id> he will become a site admin. You can look up his id in the core.Users view, e.g., SELECT UserId FROM core.Users WHERE email='xxx@test.com'.

Adam
Ben Bimber2010-08-18 09:24Jon (LabKey DevOps)2018-11-16 23:24make user a site admin via postgres SQL script?make user a site admin via postgres SQL script? TEXT_WITH_LINKSClosed     LabKey Support Forum
that'll work. thanks.
jeckels2010-11-15 09:41Jon (LabKey DevOps)2018-11-16 23:23make menu item disabled by default?make menu item disabled by default? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We don't have that option right now. In general, our design approach is not to add menu or other items for a particular user if they'll always be disabled. For example, we don't show a disabled Edit button if a user doesn't have permission to edit a record. Wiring up code in onLoad is what I'd recommend, at least for now.

That said, there are certainly legitimate cases for starting out with disabled menu or other UI elements, so that would be a reasonable thing to add.

Thanks,
Josh
Jon (LabKey DevOps)2022-03-10 22:13Jon (LabKey DevOps)2022-03-10 22:13Maintenance Notice - Upgrade of labkey.org to LabKey 22.3 for Thursday, March 10th 2022 @ 9pm PSTMaintenance Notice - Upgrade of labkey.org to LabKey 22.3 for Thursday, March 10th 2022 @ 9pm PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade complete.
Jon (LabKey DevOps)2022-02-10 22:05Jon (LabKey DevOps)2022-02-10 22:05Maintenance Notice - Upgrade of labkey.org to LabKey 22.2 for Thursday, February 10th 2022 @ 9pm PSTMaintenance Notice - Upgrade of labkey.org to LabKey 22.2 for Thursday, February 10th 2022 @ 9pm PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete.
Jon (LabKey DevOps)2022-01-13 20:03Jon (LabKey DevOps)2022-01-13 20:03Maintenance Notice - Upgrade of labkey.org to LabKey 22.1 for Thursday, January 13th 2022 @ 7pm PSTMaintenance Notice - Upgrade of labkey.org to LabKey 22.1 for Thursday, January 13th 2022 @ 7pm PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade complete.
Jon (LabKey DevOps)2021-12-09 23:07Jon (LabKey DevOps)2021-12-09 23:07Maintenance Notice - Upgrade of labkey.org to LabKey 21.12 for Thursday, Dec 9th 2021 @ 10pm PSTMaintenance Notice - Upgrade of labkey.org to LabKey 21.12 for Thursday, Dec 9th 2021 @ 10pm PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Update to LabKey 21.12 on labkey.org is complete.
Jon (LabKey DevOps)2022-10-12 21:45Jon (LabKey DevOps)2022-10-12 21:45Maintenance Notice - Upgrade of labkey.org for Wednesday, October 12th 2022 @ 8:30pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Wednesday, October 12th 2022 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Update Complete.
Jon (LabKey DevOps)2023-01-11 21:36Jon (LabKey DevOps)2023-01-11 21:36Maintenance Notice - Upgrade of LabKey.org for Wednesday, January 11th 2023 @ 8:30pm Pacific TimeMaintenance Notice - Upgrade of LabKey.org for Wednesday, January 11th 2023 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete
Jon (LabKey DevOps)2023-02-15 21:06Jon (LabKey DevOps)2023-02-15 21:06Maintenance Notice - Upgrade of LabKey.org for Wednesday, February 15th 2023 @ 8:30pm Pacific TimeMaintenance Notice - Upgrade of LabKey.org for Wednesday, February 15th 2023 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Update Complete.
Jon (LabKey DevOps)2022-08-10 21:02Jon (LabKey DevOps)2022-08-10 21:02Maintenance Notice - Upgrade of labkey.org for Wednesday, August 10th 2022 @ 8pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Wednesday, August 10th 2022 @ 8pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Update complete.
Jon (LabKey DevOps)2022-04-13 22:14Jon (LabKey DevOps)2022-04-13 22:14Maintenance Notice - Upgrade of labkey.org for Wednesday, April 13th 2022 @ 9pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Wednesday, April 13th 2022 @ 9pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete
Jon (LabKey DevOps)2022-09-13 21:24Jon (LabKey DevOps)2022-09-13 21:24Maintenance Notice - Upgrade of labkey.org for Tuesday, September 13th 2022 @ 9pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Tuesday, September 13th 2022 @ 9pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete.
Jon (LabKey DevOps)2022-11-10 21:34Jon (LabKey DevOps)2022-11-10 21:34Maintenance Notice - Upgrade of labkey.org for Thursday, November 10th 2022 @ 8:30pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Thursday, November 10th 2022 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Update Complete.
Jon (LabKey DevOps)2022-05-12 22:16Jon (LabKey DevOps)2022-05-12 22:16Maintenance Notice - Upgrade of labkey.org for Thursday, May 12th 2022 @ 9pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Thursday, May 12th 2022 @ 9pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade is complete.
Jon (LabKey DevOps)2023-05-11 22:10Jon (LabKey DevOps)2023-05-11 22:10Maintenance Notice - Upgrade of LabKey.org for Thursday, May 11th 2023 @ 9:00pm Pacific TimeMaintenance Notice - Upgrade of LabKey.org for Thursday, May 11th 2023 @ 9:00pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete.
Jon (LabKey DevOps)2023-03-09 22:22Jon (LabKey DevOps)2023-03-09 22:22Maintenance Notice - Upgrade of LabKey.org for Thursday, March 9th 2023 @ 9:30pm Pacific TimeMaintenance Notice - Upgrade of LabKey.org for Thursday, March 9th 2023 @ 9:30pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete.
Jon (LabKey DevOps)2022-06-09 22:46Jon (LabKey DevOps)2022-06-09 22:46Maintenance Notice - Upgrade of labkey.org for Thursday, June 9th 2022 @ 9pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Thursday, June 9th 2022 @ 9pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade complete.
Jon (LabKey DevOps)2023-04-13 22:52Jon (LabKey DevOps)2023-04-13 22:52Maintenance Notice - Upgrade of LabKey.org for Thursday, April 13th 2023 @ 9:30pm Pacific TimeMaintenance Notice - Upgrade of LabKey.org for Thursday, April 13th 2023 @ 9:30pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete.
Jon (LabKey DevOps)2022-12-12 23:02Jon (LabKey DevOps)2022-12-12 23:02Maintenance Notice - Upgrade of labkey.org for Monday, December 12th 2022 @ 9:00pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Monday, December 12th 2022 @ 9:00pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade complete.
Jon (LabKey DevOps)2023-04-17 20:24Jon (LabKey DevOps)2023-04-17 20:24Maintenance Notice - Upgrade of LabKey.org for Monday, April 17th 2023 @ 8:00pm Pacific TimeMaintenance Notice - Upgrade of LabKey.org for Monday, April 17th 2023 @ 8:00pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Update complete.
Jon (LabKey DevOps)2022-09-09 21:12Jon (LabKey DevOps)2022-09-09 21:12Maintenance Notice - Upgrade of labkey.org for Friday, September 9th 2022 @ 8pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Friday, September 9th 2022 @ 8pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete.
Jon (LabKey DevOps)2022-07-15 23:35Jon (LabKey DevOps)2022-07-15 23:35Maintenance Notice - Upgrade of labkey.org for Friday, July 15th 2022 @ 10pm Pacific TimeMaintenance Notice - Upgrade of labkey.org for Friday, July 15th 2022 @ 10pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Maintenance Completed.
Jon (LabKey DevOps)2023-02-10 21:27Jon (LabKey DevOps)2023-02-10 21:27Maintenance Notice - Upgrade of LabKey.org for Friday, February 10th 2023 @ 8:30pm Pacific TimeMaintenance Notice - Upgrade of LabKey.org for Friday, February 10th 2023 @ 8:30pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete
Jon (LabKey DevOps)2022-09-28 19:04Jon (LabKey DevOps)2022-09-28 19:04Maintenance Notice - Update of labkey.org for Wednesday, September 28th 2022 @ 6:30pm Pacific TimeMaintenance Notice - Update of labkey.org for Wednesday, September 28th 2022 @ 6:30pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Update complete.
Jon (LabKey DevOps)2023-04-19 19:41Jon (LabKey DevOps)2023-04-19 19:41Maintenance Notice - Update of LabKey.org for Wednesday, April 19th 2023 @ 7:30pm Pacific TimeMaintenance Notice - Update of LabKey.org for Wednesday, April 19th 2023 @ 7:30pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Maintenance Complete.
Jon (LabKey DevOps)2022-09-20 17:06Jon (LabKey DevOps)2022-09-20 17:06Maintenance Notice - Update of labkey.org for Tuesday, September 20th 2022 @ 5pm Pacific TimeMaintenance Notice - Update of labkey.org for Tuesday, September 20th 2022 @ 5pm Pacific Time TEXT_WITH_LINKSClosed     LabKey Support Forum
Update complete.
Jon (LabKey DevOps)2022-03-29 21:16Jon (LabKey DevOps)2022-03-29 21:16Maintenance Notice - Update of labkey.org for Monday, March 29th 2022 @ 9pm PSTMaintenance Notice - Update of labkey.org for Monday, March 29th 2022 @ 9pm PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete.
Jon (LabKey DevOps)2022-02-11 17:59Jon (LabKey DevOps)2022-02-11 17:59Maintenance Notice - Update of labkey.org for Friday, February 11th 2022 @ 5:30pm PSTMaintenance Notice - Update of labkey.org for Friday, February 11th 2022 @ 5:30pm PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Update complete.
Jon (LabKey DevOps)2022-03-18 20:10Jon (LabKey DevOps)2022-03-18 20:10Maintenance Notice - Minor Update of labkey.org for Friday, March 18th 2022 @ 8pm PSTMaintenance Notice - Minor Update of labkey.org for Friday, March 18th 2022 @ 8pm PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Update Complete.
Jon (LabKey DevOps)2021-04-05 12:12Jon (LabKey DevOps)2021-04-08 13:50Maintenance Notice: Migration of artifactory.labkey.com for Monday, April 5th @ 11am PSTMaintenance Notice: Migration of artifactory.labkey.com for Monday, April 5th @ 11am PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Update: There were some issues with the migration that require investigation. We will post another time when the migration work will happen again.

We apologize for any inconvenience.
Jon (LabKey DevOps)2021-04-26 19:37Jon (LabKey DevOps)2021-04-26 19:37Maintenance Notice: Migration of artifactory.labkey.com for Monday, April 26th @ 8am PSTMaintenance Notice: Migration of artifactory.labkey.com for Monday, April 26th @ 8am PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Update: We unfortunately needed to roll back our efforts again. We are investigating the issue further and will reschedule another migration another day.

We apologize for any inconvenience. Thank you for your patience as we continue working on this issue.
Jon (LabKey DevOps)2021-08-29 11:42Jon (LabKey DevOps)2021-08-29 11:44Maintenance Notice - artifactory.labkey.com upgrade to Artifactory 7.X for Sunday, August 29th 2021 @ 8am PSTMaintenance Notice - artifactory.labkey.com upgrade to Artifactory 7.X for Sunday, August 29th 2021 @ 8am PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade Complete.

https://artifactory.labkey.com is now on Artifactory v7.24.3

There are some significant changes to the UI compared to the previous version of Artifactory (v6.23.13).

However, the API functionality still works on the same endpoints, so things like NPM and authenticating via GitHub SSO will still work the same way.

Please let us know if you have any questions or run into any issues.

Regards,

LabKey Support
Jon (LabKey DevOps)2022-02-28 08:02Jon (LabKey DevOps)2022-02-28 08:02Maintenance Notice: artifactory.labkey.com upgrade for Monday, February 28th 2022 @ 7am PSTMaintenance Notice: artifactory.labkey.com upgrade for Monday, February 28th 2022 @ 7am PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade is complete.
Jon (LabKey DevOps)2022-02-18 07:58Jon (LabKey DevOps)2022-02-18 07:58Maintenance Notice: artifactory.labkey.com upgrade for Friday, February 18th 2022 @ 7am PSTMaintenance Notice: artifactory.labkey.com upgrade for Friday, February 18th 2022 @ 7am PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Upgrade complete.
Jon (LabKey DevOps)2022-03-04 17:40Jon (LabKey DevOps)2022-03-04 17:40Maintenance Notice: artifactory.labkey.com access will be limited for Friday, March 4th 2022 @ 4pm PSTMaintenance Notice: artifactory.labkey.com access will be limited for Friday, March 4th 2022 @ 4pm PST TEXT_WITH_LINKSClosed     LabKey Support Forum
Work is complete. Artifactory is back online.
Matthew Bellew2012-05-14 13:47Jon (LabKey DevOps)2018-11-16 23:24LSID generation for Study datasetsLSID generation for Study datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Currently this is not possible. For visit-based studies you have these options for the unique dataset keys

  PTID (demographic)
  PTID, SequenceNum (clinical data often)
  PTID, SequenceNum, ExtraKey (assay data often)

If the SequenceNum field is not important, I would suggest creating a dummy visit called "Progress Notes", and use that visit for all the rows in that dataset. It would be nice if we provided for auto-filling that value, but we don't have that feature yet.

Matt
Anthony Corbett2012-05-18 14:04Jon (LabKey DevOps)2018-11-16 23:24LSID generation for Study datasetsLSID generation for Study datasets TEXT_WITH_LINKSClosed     LabKey Support Forum

Thanks Matt for the response. I now have a dummy visit (Sequence Number 101) setup just to hold progress notes with an additional auto-incremented key. I've take the visit off the overview so it looks like it doesn't exist in the study navigator.

As a follow up to this I now have additional questions.

I'm looking to add an LABKEY.ext.EditorGridPanel for progress notes to the Participant Overview (filtered by the current Participant being viewed in the overview). The javascript looks like this:



    /* get the participant id from the request URL: this parameter is required. */
    var participantId = LABKEY.ActionURL.getParameter('participantId');

    var _grid;

    //Use the Ext.onReady() function to define what code should
    //be executed once the page is fully loaded.
    //you must use this if you supply a renderTo config property
    Ext.onReady(function(){
        _grid = new LABKEY.ext.EditorGridPanel({
            store: new LABKEY.ext.Store({
                schemaName: 'study',
                queryName: 'progress_notes',
                columns: 'ParticipantId,SequenceNum,date,noteType,CreatedBy/Email,notes',
                filterArray: [    LABKEY.Filter.create('ParticipantId', participantId) ]
            }),
            renderTo: 'grid',
            width: 1000,
            autoHeight: true,
            title: 'Progress Notes',
            editable: true
        });
    });

My issue comes in when I try to customize what columns are showing and adding a new row when 'required' fields aren't showing.

I'd like to hide the ParticipantId and SequenceNum columns, the but following two solutions don't work.

1. If I don't specify these columns when creating the store they won't be there. Howeevr if I then try adding a new row I get an error when it goes to the server to save that it needs both of those fields.

2. I specify the ParticipantId and SequenceNum columns in the store config but I remove them from the grid. The behavior is that validation fails as those are required fields (even though I can't see them) so it never tries to save the row and doesn't even give user feedback that validation failed. This seems correct as in the EditorGridPanel.js file the following is documented:

    /**
     * Saves all pending changes to the database. Note that if
     * the required fields for a given record does not have values,
     * that record will not be saved and will remain dirty until
     * values are supplied for all required fields.
     * @name saveChanges
     * @function
     * @memberOf LABKEY.ext.EditorGridPanel#
     */
    saveChanges : function() {
      ...
    }



I think I can work around this if I can hook in a listener on the store so when a new row is created or added I can autofill certain fields. I'd like to be able to autofill the following columns:
ParticipantId (we already know that from the query param),
Sequence Num should always be 101 (my dummy visit),
Date with current date,
Name is the email of the person creating the record (doesn't matter what I put in this column actually as it will be overriden by the server with the createdBy user)


So, my two questions are:

1. How do I specify custom configuration to always hide the ParticipantId and SequenceNum columns? Is this columnModel metadata I can specify inline to override what is coming back from the query?
2. How can I get a listener on the store to auto fill row fields for new records?


Thanks a ton!

-
Anthony
trent2012-05-20 19:11Jon (LabKey DevOps)2018-11-16 23:23LSID generation for Study datasetsLSID generation for Study datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

1. How do I specify custom configuration to always hide the ParticipantId and SequenceNum columns? Is this columnModel metadata I can specify inline to override what is coming back from the query?

Try setting the config property, on the grid, 'autoSave' to false. It requires the user to hit the save changes button before saving, but aside from it not throwing the aforementioned error, its more user friendly imo.

2. How can I get a listener on the store to auto fill row fields for new records?

Not sure if this is the best way or not, but I tied a beforecommit event to the store, for my use.

store.on('beforecommit', function(records, rows){
    for(i=0;i<rows.length;i++){
        rows[i].values["patient_visit_id"] = patientVisitId;
    }
    }
);

rows[i].values is a JSON object that represents each column/value that is sent to the server to commit to the table.
Ben Bimber2012-05-21 07:43Jon (LabKey DevOps)2018-11-16 23:23LSID generation for Study datasetsLSID generation for Study datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

for #1, you might want to check out the columnmodelcustomize event on EditorGridPanel. this is called when the server returns w/ column metadata. it provides an array of columns, I believe. you can iterate that array, find the columns you want to hide and set 'hidden: true' on them. you can do a similar trick with the store using the 'metachange' event. in general it's often better to set metadata at this lower level, for example, if you plan to share this store between components; however, you're almost certainly ok using columnmodelchange for this case.

for #2, i might suggest listening for the store's update or add event. on update or add, you can modify the record and set the value for whichever fields you need. when doing this, be careful you first suspendEvents(), then resumeEvents() on the store before setting those fields or you may get yourself into a never ending loop.
Anthony Corbett2012-05-21 13:55Jon (LabKey DevOps)2018-11-16 23:24LSID generation for Study datasetsLSID generation for Study datasets TEXT_WITH_LINKSClosed     LabKey Support Forum

Thanks Trent and Ben for the tips. I got this working on with your suggestions. In the end it modifies the columnModel like I wanted to be able to to hide the two columns where still auto populating them when a new record is added. See code below for reference:

<script type="text/javascript">
    /* get the participant id from the request URL: this parameter is required. */
    var participantId = LABKEY.ActionURL.getParameter('participantId');

    var _grid;

    function customizeColumnModel(colModel, index, c) {
        //Hide columns
        index.ParticipantId.hidden = true;
        index.SequenceNum.hidden = true;
        index.date.renderer = Ext.util.Format.dateRenderer('m\\/d\\/Y');
    }

    function onAddProgressNote(store, records) {
        store.suspendEvents();
        for (var i=0 ; i<records.length ; i++) {
            records[i].set('ParticipantId', participantId);
            records[i].set('SequenceNum', 101);
            records[i].set('date', new Date().format("Y/m/d") );
            records[i].set('CreatedBy/Email', LABKEY.Security.currentUser.email);
        }
        store.resumeEvents();
    }

    //Use the Ext.onReady() function to define what code should
    //be executed once the page is fully loaded.
    //you must use this if you supply a renderTo config property
    Ext.onReady(function(){
        _grid = new LABKEY.ext.EditorGridPanel({
            store: new LABKEY.ext.Store({
                schemaName: 'study',
                queryName: 'progress_notes',
                columns: 'ParticipantId,SequenceNum,date,CreatedBy/Email,noteType,notes',
                filterArray: [    LABKEY.Filter.create('ParticipantId', participantId) ],
                sort: '-date',
                listeners: {
                  add: onAddProgressNote
                }
            }),
            renderTo: 'grid',
            listeners: {
              columnmodelcustomize: customizeColumnModel
            },
            width: 1000,
            autoHeight: false,
            height: 300,
            title: 'Progress Notes',
            editable: true,
            autoSave: false,
            enableFilters: true,
            enableColumnHide: false,
            firstEditableColumn: 5 //Start editing on the noteType column
        });
    });
</script>

Thanks so much!
Jon (LabKey DevOps)2015-12-07 12:06Jon (LabKey DevOps)2018-11-16 23:24Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Can you give us some additional information here? When you're doing lookups, what are the two tables/queries you're trying to do lookups from and to?

For example, are you working with a list that is doing a lookup to another list? Or is it a dataset that is looking up to another list? Or is it a dataset to another dataset? A sample set to an assay data table?

Also, is your lookup working with an integer or a string?

The closer I can reproduce your conditions, the better we can figure out what is broken. I know that the lookup validators do work, but it's possible that they might not work in every type of scenario.

Regards,

Jon
eva pujadas2015-12-08 05:16Jon (LabKey DevOps)2018-11-16 23:24Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks a lot for checking my message.

We are working with lists; a list is doing a lookup on anther list. The primary key in the lookup list is a string.

I'm attaching two files, which can help to reproduce the issue:
- Import list archive (zip file)
- edit design of "Specimen" list and add a lookup validator on column "SpeciesID"
- import data file "Specimen_2015-12-08_11-42-56.tsv" into list "Specimen"
- as a result, Species ID "Altcom" has been imported into list "Specimen" although this Species ID does not exist in the lookup list "Species". We would have expected a validator error before import.

Could you reproduce it?
Thanks,
Eva
Jon (LabKey DevOps)2015-12-15 21:27Jon (LabKey DevOps)2018-11-16 23:23Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

It appears that the upload of a TSV file gets ignored when it comes to the checking.

However, if you do a copy/paste of the TSV information, the validator error does come up successfully.

Also, if the TSV file were to be converted to where it's a CSV file with actual commas separating values rather than tab-spaces, the error also appears.

So what might be the best approach here is for you to convert that TSV file into either an Excel .XLS file, a .CSV file that is comma-separated, or a flat .TXT file rather than just uploading it as a TSV.

Does that make sense?

Give my attached file a try by uploading it into your Specimen list and you should see the error appear without fail.

Regards,

Jon
eva pujadas2015-12-18 01:28Jon (LabKey DevOps)2018-11-16 23:24Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks a lot for checking the issue once more.

I'm afraid we are missing something here.
I've tried your example without success, by copy/paste the CSV file content and also importing the CSV file, but there is no validation error message reporting the missing value in the lookup list.

I've created a full example with screenshots to be sure we are talking about the same:

- Create fresh new folder of type collaboration
- Admin --> Manage Lists --> Import list archive "test_2015-12-18_09-44-33.lists.zip" (attached)
- Edit design of "Specimen" list to add a lookup validator in the lookup field "SpeciesID" (see screenshot 1)
- Open list "Specimen" and use "IMPORT DATA" menu button (see screenshot 2)
- Copy and paste commma-separated values from file "specimen_2015-12-18.csv" (attached) (see screenshot 3)
- The three new rows are imported and the value "Altcom", not present in the lookup table has been imported without validation error, in form of value enclosed in <> brackets (see screenshot 4).
We would have expected an error preventing the import of data due to one value not existing in the lookup table.

Best regards,
Eva
Jon (LabKey DevOps)2015-12-18 15:04Jon (LabKey DevOps)2018-11-16 23:24Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

It appears I made an error in my testing and mistook the duplicate primary key error as the lookup validator error.

It does in-fact look like the functionality is broken here. Thank you for presenting this issue to us. Bug https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=25193 has been assigned.

Regards,

Jon
Jon (LabKey DevOps)2016-03-01 20:49Jon (LabKey DevOps)2016-03-01 20:49Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

This issue has been fixed and will be available in the upcoming LabKey 16.1 release coming in a few weeks in mid-March.

Regards,

Jon
Jon (LabKey DevOps)2016-05-17 12:27Jon (LabKey DevOps)2018-11-16 23:24Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

No, it's definitely been fixed and I just tested this in 16.1 to confirm this again.

Can you look at the bug and confirm the repro steps there are right and match up to what you were doing?

Regards,

Jon
eva pujadas2016-05-18 01:00Jon (LabKey DevOps)2018-11-16 23:23Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Yes, indeed. I've just confirmed that it works.
Sorry for that, I did not enable the lookup validator but confused it with the required checkbox.

Thanks a lot and regards,
Eva
eva pujadas2016-03-02 00:24eva pujadas2016-03-02 00:24Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for your great support,
Eva
eva pujadas2016-04-19 05:56eva pujadas2016-05-18 03:21Lookup validators fail on import dataLookup validators fail on import data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Has this issue been fixed in LabKey 16.1?
I've just tried it and it does not seem so, since behavior is the same as in the previous version 15.3: values not present in the lookup table are imported instead of displaying an error before import.

Thanks,
Eva
Leo Dashevskiy2016-05-31 16:15Leo Dashevskiy2016-05-31 16:15Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Kudos to Matt! ;)

I modified the source query snapshot HM_InputSamplesQuery to have the container column be not just a textual string, but a lookup to containers and now the cascading query using it can pull in any columns of the related table!
Jon (LabKey DevOps)2016-05-26 16:01Jon (LabKey DevOps)2018-11-16 23:24Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

It looks like your XML between the test version to the actual one are slightly off:

Working version for https://test.immunespace.org/query/Studies/executeQuery.view?schemaName=study&query.queryName=GEE_studyCohortsInfo :

<?xml version="1.0" encoding="UTF-8"?><tables xmlns="http://labkey.org/data/xml">
            <table tableDbType="TABLE" tableName="GEE_studyCohortsInfo">
                <columns>
                    <column columnName="Container">
                        <fk>
                            <fkColumnName>EntityId</fkColumnName>
                            <fkDbSchema>core</fkDbSchema>
                            <fkDisplayColumnName>DisplayName</fkDisplayColumnName>
                            <fkTable>Containers</fkTable>
                        </fk>
                    </column>
                </columns>
            </table>
        </tables>

The non-working version for https://test.immunespace.org/query/Studies/executeQuery.view?schemaName=study&query.queryName=Test :

<tables xmlns='http://labkey.org/data/xml'>
            <table tableName='GEE_studyCohortsInfo' tableDbType='NOT_IN_DB'>
                <columns>
                    <column columnName='Container'>
                        <fk>
                            <fkColumnName>EntityId</fkColumnName>
                            <fkDbSchema>core</fkDbSchema>
                            <fkDisplayColumnName>DisplayName</fkDisplayColumnName>
                            <fkTable>Containers</fkTable>
                        </fk>
                    </column>
                </columns>
            </table>
        </tables>

Can you modify your XML to the one that works and see if it makes a difference?

Regards,

Jon
Leo Dashevskiy2016-05-26 16:17Jon (LabKey DevOps)2018-11-16 23:23Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon, I made the SQL and the XML codes identical, except for the query name.

Still, the UI based one behaves differently than the file-based one, and I cannot obtain the container name (see the display column).

Thanks.
-Leo
Jon (LabKey DevOps)2016-05-26 16:26Jon (LabKey DevOps)2018-11-16 23:24Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Yes, I do see the query/table names are different, but I also see that your XML in the test version is missing the XML declaration as well.

<?xml version="1.0" encoding="UTF-8"?>

Although version 1.0 is optional to provide the declaration, I've seen odd behavior when it isn't included sometimes.

Can you add that line into your XML and give it another try?

Regards,

Jon
Leo Dashevskiy2016-05-26 16:41Jon (LabKey DevOps)2018-11-16 23:23Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon, I added the XML declaration to the XML metadata portion of the UI based "Test" query and that didn't make it return the same contents as the file based "GEE_studyCohortsInfo" one.
Jon (LabKey DevOps)2016-05-27 11:33Jon (LabKey DevOps)2018-11-16 23:24Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Leo,

Just wanted to make sure that both queries were as close as possible here.

Let me see if I can reproduce this locally on my end.

Thanks for your patience.

Regards,

Jon
Jon (LabKey DevOps)2016-05-27 22:12Jon (LabKey DevOps)2016-05-27 22:12Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I figured it out and it's surprisingly a simple fix.

So while trying to figure out a repro to do locally, I decided to do the following to the URL and add in a containerFilter.

https://test.immunespace.org/query/Studies/executeQuery.view?schemaName=study&query.queryName=Test&query.containerFilterName=CurrentAndSubfolders

https://test.immunespace.org/query/Studies/executeQuery.view?schemaName=study&query.queryName=Test&query.containerFilterName=AllFolders

So when I used either of these, the query worked successfully and the lookups functioned without any issue.

Then I looked at your GEE_studyCohortsInfo query and selected the option for Views > Customize Views and looked at the filters and compared it to Test and found that Test wasn't using a container filter.

If you enable a container filter and save it for all users to use, this will fix the issue.

Regards,

Jon
Leo Dashevskiy2016-05-31 09:02Jon (LabKey DevOps)2018-11-16 23:24Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

While I appreciate this piece of info (didn't know about the container scoping control within the customize view UI), the original main question was totally about something else: I am not able to pull in a column from the core.containers table (the table being looked up by the container column) into my own query. The column I need is the "Name" or "DisplayName", just the textual string of the container. Specifying "container.Name" as a column in my query results in an error, as noted above.
Please, help with addressing that.

Thanks.
-Leo
Jon (LabKey DevOps)2016-05-31 14:18Jon (LabKey DevOps)2018-11-16 23:23Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Since the XML metadata gets applied after the query is parsed, trying to use the Foreign Key defined in the XML on the same query you're authoring causes the field to not be available at the time of application. One way to get around it is to have your query use the Container.Name syntax rather than just Container if you need the name value to appear instead.

Regards,

Jon
Leo Dashevskiy2016-05-31 14:26Jon (LabKey DevOps)2018-11-16 23:24Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
That's what I'm saying: using Container.Name does not work for me, it results in an error or may be I'm not understanding exactly, what you're saying.

Please, see for yourself: modify the "Test" query in such a way that it work and a simple textual string (not a link) with just the name of the container appear as a column in this query.

Thanks.
-Leo
Matthew Bellew2016-05-31 15:21Jon (LabKey DevOps)2018-11-16 23:24Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
I believe the problem here has nothing to do with the XML, but the SQL. The difference is that the query that doesn't work explicitly selects "container.name", while the query that does work selects "container". Note, that the .xml file applies metadata to the _result_ of the query. So the lookup defined in the .xml is not available to the SQL in the .sql file. This explains why container.name is not valid.

Note that the lookup is available/known by the data region which is why the GEE_studyCohortsInfo grid displays name.
Leo Dashevskiy2016-05-31 15:30Jon (LabKey DevOps)2018-11-16 23:24Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, Matt, thanks, so is there a -clean- way to pull in the container's name without JOIN-s or is that my only option then?
Matthew Bellew2016-05-31 15:52Jon (LabKey DevOps)2018-11-16 23:23Lookup to core.Containers table different from other regular tables?Lookup to core.Containers table different from other regular tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Well, the real question is why isn't the "container" column in HM_InputSamplesQuery already a lookup? I think it's because it is defined as

   mat.container.entityid as container,

rather than just
 
   mat.container as container

If this column is defined as a lookup, then that definition should just carry though and your outer query should be able to select container.name.

Matt
Jon (LabKey DevOps)2015-03-30 15:55Jon (LabKey DevOps)2018-11-16 23:23Lookup subsetLookup subset TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Olivier,

Yes, you can create a custom SQL query to do this, specifically applying a WHERE clause in your SQL statement and then you would use that query as the lookup target. You will also have to set the XML metadata to mark the primary key from the underlying table as a key field for this to work.

Take a look at this previous message board post from another user that has an example of the XML metadata and how to modify it for guidance.

https://www.labkey.org/announcements/home/Server/Forum/thread.view?entityId=49c0dcf1-8ccc-1031-abc2-6432661daa52&_docid=thread%3A49c0dcf1-8ccc-1031-abc2-6432661daa52

Let us know if you have any further questions.

Regards,

Jon
Jon (LabKey DevOps)2018-12-26 14:09Jon (LabKey DevOps)2018-12-26 14:09Lookup Dropdown Widget for Dataset to Dataset FKsLookup Dropdown Widget for Dataset to Dataset FKs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

Datasets typically do not have issues with lookups and dropdown boxes usually do generate.

However, what kind of datasets are you lookup to? Most datasets usually have 2-3 fields that are looked at for its primary key functionality, such as ParticipantId & Date, ParticipantId & VisitId, or the other two with a 3rd value being used. (Demographics datasets are an exception since it mainly uses the ParticipantId as its primary key.)

Do you have a sample study archive you could provide us that shows this dataset you created with all of its lookups for us to check out on our end?

Regards,

Jon
Leo Dashevskiy2014-08-04 12:03Leo Dashevskiy2014-08-04 12:03Looks like a bug in the 'Export' via JavaScript functionality of a LabKey's tableLooks like a bug in the 'Export' via JavaScript functionality of a LabKey's table TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh, you don't mention it in the bug report, but you must click on one of the views, for that line to be included, otherwise, by default, it does not show up, which probably explains, why this has not come up before (and the functionality has been available for quite some time, if I understand correctly).
jeckels2014-08-04 10:30Jon (LabKey DevOps)2018-11-16 23:24Looks like a bug in the 'Export' via JavaScript functionality of a LabKey's tableLooks like a bug in the 'Export' via JavaScript functionality of a LabKey's table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Yes, it's missing the closing single quote. I've opened a bug for this:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=21242

Thanks,
Josh
jeckels2014-08-04 13:03jeckels2014-08-04 13:03Looks like a bug in the 'Export' via JavaScript functionality of a LabKey's tableLooks like a bug in the 'Export' via JavaScript functionality of a LabKey's table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Thanks for pointing that out. The view I happened to pull up already had a custom folder/container filter set, so I forgot to include it as a separate step.

Thanks,
Josh
marki2010-08-31 13:11Jon (LabKey DevOps)2018-11-16 23:24looking for advice/insight into EditorGridPanel column widthslooking for advice/insight into EditorGridPanel column widths TEXT_WITH_LINKSClosed     LabKey Support Forum
I don't have great insight into this. In most use cases for the Ext grid the developer knows what columns are to be placed there and manually sets the width of the columns/grid in code.

There is an xml metadata override for scale in columnInfo; I am not sure whether it would be picked up in your cases.

The translation from scale to display width is min(scale * 6, 200)
Ben Bimber2010-08-31 13:19Jon (LabKey DevOps)2018-11-16 23:24looking for advice/insight into EditorGridPanel column widthslooking for advice/insight into EditorGridPanel column widths TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks mark. i will look into whether a metadata override can be done. if column widths can't be made more automatic, then it seems like the best case scenario would be for the API to return a sensible value for scale, so we dont need to worry about that every time the field shows up in a grid.

it still seems like there must be a better column-width solution out there. i will keep looking and let you know if i figure something out.
jeckels2010-10-09 16:53Jon (LabKey DevOps)2018-11-16 23:24login screen on chrome and safarilogin screen on chrome and safari TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Your guess is correct.

I've opened this 10.3 issue:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10951

Thanks,
Josh
Matthew Bellew2011-05-02 15:17Jon (LabKey DevOps)2018-11-16 23:24Logging in with LDAPLogging in with LDAP TEXT_WITH_LINKSClosed     LabKey Support Forum
This is not currently supported (or planned).

If this is an important scenario, mail me directly and we can work on estimating what's involved or I can help point you to the relevant code.

Matt
Greg Taylor2014-06-24 09:58Jon (LabKey DevOps)2018-11-16 23:24Location of SQL scripts for file based assay moduleLocation of SQL scripts for file based assay module TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, you may define database scripts in your file based module. See the dbscripts directory in the documentation linked below. Generally, you would define parallel scrips for both MicroSoft SQL and Postgres but this is not strictly required if your module will only be used on your system.

https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleDirectoryStructures

Greg
kevink2014-06-24 12:51Jon (LabKey DevOps)2018-11-16 23:24Location of SQL scripts for file based assay moduleLocation of SQL scripts for file based assay module TEXT_WITH_LINKSClosed     LabKey Support Forum
As Greg says, you can add database SQL upgrade scripts in a module, but we don't support adding database SQL scripts for an assay type.

You don't need to write PostgreSQL and SqlServer scripts if you only intend to support one. To indicate that your module only will run on a particular database, add "SupportedDatabases: pgsql" or "SupportedDatabases: mssql" to your module.properties file.
Jon (LabKey DevOps)2016-06-09 15:49Jon (LabKey DevOps)2016-06-09 15:49Location of Query Snapshot...Location of Query Snapshot... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

The Query Snapshot option is under Reports in a dataset. (See screenshot)

Regards,

Jon
Matthew Bellew2011-09-09 14:59Jon (LabKey DevOps)2018-11-16 23:23Loading a splash pageLoading a splash page TEXT_WITH_LINKSClosed     LabKey Support Forum
When you navigate to "/" we render index.html. So try renaming public.html to index.html.
saravanan adaikkalavan2015-06-11 13:06saravanan adaikkalavan2015-06-11 13:06Load dynamic wiki pages on TABSLoad dynamic wiki pages on TABS TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks!
Jon (LabKey DevOps)2015-06-10 13:56Jon (LabKey DevOps)2018-11-16 23:24Load dynamic wiki pages on TABSLoad dynamic wiki pages on TABS TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Saravanan,

Can you provide us some more details regarding what you're looking to do?

By default, a newly created tab will have no webparts inside. So if you add a wiki webpart, it will automatically bring up the screen you're seeing right now unless you have a default wiki page that will load instead (the webpart will identify the default wiki page due to the name of the page being called "default").

If there is no default, you would have to click that choose an existing page option if you wanted to use one of your existing pages to populate that webpart.

Are you asking if you could already have a pre-determined wiki page load (not necessarily the default) within that webpart once the tab is made?

Regards,

Jon
saravanan adaikkalavan2015-06-11 06:11Jon (LabKey DevOps)2018-11-16 23:23Load dynamic wiki pages on TABSLoad dynamic wiki pages on TABS TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes. When I click the tab, I need to display different wiki page with respect to the user status. Say for example, I have 2 wiki pages A & B. If user is in the state 1, I should display A. Or if the user is in the state 2, I should display B. Is there a way I could implement this?

One solution I was thinking is to add a temporary wiki page to check the state and embed the appropriate wiki inside this page. Is there any other better solution that could be implemented?

Thanks!
Jon (LabKey DevOps)2015-06-11 11:23Jon (LabKey DevOps)2018-11-16 23:23Load dynamic wiki pages on TABSLoad dynamic wiki pages on TABS TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Saravanan,

I'm not sure what you mean by "state 1" and "state 2", but if the "user status" you're referring to has to do with permissions or some type of access, then there is a roundabout way to have a wiki page display based on access.

So if you do the following:

1. Create or identify the wiki pages that you want to display to users based on their permissions/status/etc.
2. Create a default wiki page so the wiki webpart will use this automatically.
3. Within the default wiki page, setup your code so that it will identify those users based on their permissions and then load the respective wiki page you want that user to see.

Here's what I did for one customer of ours. I created two pages, one called "thisPageIsForProjectA" and the other called "thisPageIsForEveryoneElse". I then made a default wiki page with the following in it:

<script type="text/javascript">
LABKEY.Security.getUserPermissions({
        containerPath: '/Project A',
        success: onSuccess,
    failure: onError
    });

    function onSuccess() {
        var wp = new LABKEY.WebPart({
        partName: 'Wiki',
        renderTo: 'wikiDivTag',
        frame: 'none',
        partConfig: {name: 'thisPageIsForProjectA'}
        })
     wp.render();
        }

    function onError() {
        var wp2 = new LABKEY.WebPart({
        partName: 'Wiki',
        renderTo: 'wikiDivTag',
        frame: 'none',
        partConfig: {name: 'thisPageIsForEveryoneElse'}
        })
     wp2.render();
        }

</script>

<div id="wikiDivTag"></div>

So this code:

- Get the permissions for the user that is view the page right now.
- Determines whether they've got access to the Project A project.
- Loads the appropriate wiki web part based on that permission.

I believe that this code sample should get you on the right track with what you're trying to do.

For more information on our Javascript API and the security endpoint, please checkout the following documentation: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Security.html

Regards,

Jon
saravanan adaikkalavan2015-06-11 12:37Jon (LabKey DevOps)2018-11-16 23:23Load dynamic wiki pages on TABSLoad dynamic wiki pages on TABS TEXT_WITH_LINKSClosed     LabKey Support Forum
No Jon. I'm trying to create a step by step process on the tab. Like the user start the process on step 1(consider this as the basic information). Then after completing this, they move to the next page where they would be asked for the phone number to verify(step 2). I need to load the phone number requesting and verification page in the records tab after the first step succeeds.

Hope I'm clear with scenario.

Thanks!
Jon (LabKey DevOps)2015-06-11 12:51Jon (LabKey DevOps)2018-11-16 23:24Load dynamic wiki pages on TABSLoad dynamic wiki pages on TABS TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Saravanan,

That sounds very different than what you described earlier when you were asking if you can pre-load a wiki webpart based on a "user status".

Are you are trying to use the tabs as apart of a series of steps, like this?

- First tab (aka Step 1) -> Enter information
- Second tab (Step 2) -> Enter more information

If this is what your idea is, you might want to consider using our Survey Designer instead.

Take a look at this link along with the video. I think this might be a better solution here.

https://www.labkey.org/wiki/home/Documentation/page.view?name=surveys

Regards,

Jon
jeckels2010-10-18 17:34Jon (LabKey DevOps)2018-11-16 23:24load a QWP with data offset to today's date?load a QWP with data offset to today's date? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The only idea that comes immediately to mind is to do it in a custom query, where you add a calculated column that looks something like:

ABS(TIMESTAMPDIFF('SQL_TSI_DAY', <DateColumn>, NOW()))

and sort descending on that value.

Thanks,
Josh
chetc (LabKey Support)2020-08-21 10:15Jon (LabKey DevOps)2020-09-18 10:41List with timestamps unsortedList with timestamps unsorted TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Eva,

I created a missing value indicator for "?" and then I imported the file using the column types from your screenshot. But I'm getting different results (im running 19.3.6). For the first 3 keys you listed I didn't see the issue but I did see it on the last one. I have created a bug for this that you can follow at
https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=41213

Thank you for helping me repro this!

Best,
Chet
eva pujadas2020-08-06 08:43eva pujadas2020-08-06 08:43List with timestamps unsortedList with timestamps unsorted TEXT_WITH_LINKSActive     LabKey Support Forum
Hello Chet,

Thank you very much for checking this issue.

> What version of Labkey are you running?
This happens in both versions 19.3.7 and 19.3.10

> Were you hoping that the order of the primary key would also represent the order of the date/time column? As the primary key increases so does the date/time.
Exactly, that was a requirement

I've seen in your screenshot that the number columns were probably imported as text, since some of the records contain a "?" as value. To reproduce the error, a missing value indicator with value "?" needs to be created first. Afterwards, import the data file with following column data types: DateTime, Double, Integer, Integer, Integer (default behavior) (see screenshot).
Depending on the instance of LabKey server used, the error can appear for a key value of 24735, or 82061 and 19897 and 21340 (see screenshots). It seems to be somehow variable, although I do not know on what it depends.

Thanks once more and best regards,
Eva
qing chang2020-10-28 07:15qing chang2020-10-28 07:15list table quadruples when upgrading labkey from v17 to v19.1list table quadruples when upgrading labkey from v17 to v19.1 TEXT_WITH_LINKSActive     LabKey Support Forum
Hi Jon,

thanks for responding. My apologies, in fact the upgrade was from 16.3 to 19.1. Is there know issues with 16.3 to 19.1?

For some reason labkey logs did not rotate properly, I don't have the logs for the change from 16.3 to 19.1. If it is vital to the troubleshooting process, I'll try to make a clone to recreate the issue.

There are other log files as below, is any of them useful?
-----
labkeyMemory.log
labkey-audit.log
labkey-action-stats.tsv.3
labkey-query-stats.tsv.3
labkey-action-stats.tsv.2
labkey-query-stats.tsv.2
labkey-errors.log.3
labkey-action-stats.tsv.1
labkey-query-stats.tsv.1
labkey-errors.log.2
labkey-errors.log.1
labkey-action-stats.tsv
labkey-query-stats.tsv
labkey.log.1
labkey-errors.log
labkey.log
-----

Regards,
Qing
Jon (LabKey DevOps)2020-10-27 23:00Jon (LabKey DevOps)2020-10-27 23:00list table quadruples when upgrading labkey from v17 to v19.1list table quadruples when upgrading labkey from v17 to v19.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Qing,

Is it possible for you to send us your labkey.log file? It should have recorded full log activity from when the server was upgraded from v17 to v19.1.

The list module hasn't had any updates to it regarding SQL since 2014, but if the table has increased in size, it sounds like some other SQL would have had to have caused this. The labkey.log file should be able to confirm what ran.

Also, what specific version of LabKey 17 were you originally on? 17.1? 17.2? 17.3?

Regards,

Jon
Jon (LabKey DevOps)2020-10-29 10:24Jon (LabKey DevOps)2020-10-29 10:24list table quadruples when upgrading labkey from v17 to v19.1list table quadruples when upgrading labkey from v17 to v19.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Qing,

Ideally, it would be preferred to get the labkey.log and other labkey.log files (such as labkey.log.1) that contains the logs that corresponds with the upgrade that took place.

That said, did you by chance do any kind of database maintenance? Specifically running a VACUUM on your PostgreSQL database to have it reclaim space?

https://www.postgresql.org/docs/current/sql-vacuum.html

Often times, much of that database bloat on tables are due to having various deleted objects that aren't fully deleted since it requires the VACUUM to be ran. Although some people enable the AUTOVACUUM feature, it doesn't always get turned on properly.

If you haven't ran a VACUUM on your database, give that a try and then recheck your table size again. Keep in mind that a VACUUM can lock tables or the whole database, so it's recommended to do this during off-hours when the server isn't in use.

Regards,

Jon
qing chang2020-11-02 13:26Jon (LabKey DevOps)2020-11-02 15:34list table quadruples when upgrading labkey from v17 to v19.1list table quadruples when upgrading labkey from v17 to v19.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

By doing a VACUUM FULL, space was recovered.

Thanks,
Qing
adam2016-10-03 12:04Jon (LabKey DevOps)2018-11-16 23:24Lists with PHI fields that are attachmentsLists with PHI fields that are attachments TEXT_WITH_LINKSClosed     LabKey Support Forum
I don't think there's a way to prevent this; it appears that LabKey is simply not respecting the Protected setting when exporting the attachment files themselves. (By the way, the PHI setting is only respected by custom schemas right now.) I'll open an issue to investigate improving this.

Thanks,
Adam
Jon (LabKey DevOps)2016-10-04 12:46Jon (LabKey DevOps)2016-10-04 12:46Lists with PHI fields that are attachmentsLists with PHI fields that are attachments TEXT_WITH_LINKSClosed     LabKey Support Forum
Dax2014-08-27 10:55Jon (LabKey DevOps)2018-11-16 23:23Lists disappearing?? Serious issue.Lists disappearing?? Serious issue. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

As a starting point, look in your tomcat access logs and see who accessed the server during the time when the list was deleted. Look for any list activity /list/ URL hits (particularly deleteListDefinition actions) or perhaps even a failed import.
adam2014-08-27 11:03Jon (LabKey DevOps)2018-11-16 23:24Lists disappearing?? Serious issue.Lists disappearing?? Serious issue. TEXT_WITH_LINKSClosed     LabKey Support Forum
Also, since you suspect caching may be involved, I would "clear caches" and see if getTableNames() still returns those table names.
Ben Bimber2014-08-27 11:11Jon (LabKey DevOps)2018-11-16 23:24Lists disappearing?? Serious issue.Lists disappearing?? Serious issue. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dax,

Thanks. Since the post I learned some more, but still cant explain this:

- domain audit log has a record of this ('The domain Grants was deleted'). It tells me the user and time of day. That person did not consciously do this (thus far i believe them); however, it's tough to figure out how one does this accidentally. The audit event is logged at 2014-08-26 13:05. I'm somewhat glad to at least see this is logged; however, still unsure how it originated.

I looked at the access log for this time period, but nothing stands out to me. List-related stuff was the first thing I grep'd for, but didnt see anything at all. I can email the log if anyone wants to take a look.

Adam - I'm trying the cache idea now. It's not so much that I suspect caching as the root cause. I just noticed this problem only because of the weird DbSchema tablenames cache problem that caused my notification to attempt to run SQL against a deleted table.
adam2014-08-27 11:15Jon (LabKey DevOps)2018-11-16 23:24Lists disappearing?? Serious issue.Lists disappearing?? Serious issue. TEXT_WITH_LINKSClosed     LabKey Support Forum
I agree that caching is likely not the underlying problem, but it's a puzzling symptom that could imply something about the code path that deleted this domain.

Adam
Ben Bimber2014-08-27 11:16Jon (LabKey DevOps)2018-11-16 23:23Lists disappearing?? Serious issue.Lists disappearing?? Serious issue. TEXT_WITH_LINKSClosed     LabKey Support Forum
yep.

I'm posting the tomcat access logs in the secure forum, here:

https://www.labkey.org/issues/ONPRC/Support%20Tickets/details.view?issueId=21395

in case it helps. nothing is standing out to me though.
Ben Bimber2014-08-27 11:20Jon (LabKey DevOps)2018-11-16 23:24Lists disappearing?? Serious issue.Lists disappearing?? Serious issue. TEXT_WITH_LINKSClosed     LabKey Support Forum
clearing the caches did allow the notification to run correctly, fwiw.
jeckels2014-08-27 16:55Jon (LabKey DevOps)2018-11-16 23:23Lists disappearing?? Serious issue.Lists disappearing?? Serious issue. TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben and I identified the underlying issue:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=21400

Thanks,
Josh
Ben Bimber2012-06-01 12:18Jon (LabKey DevOps)2018-11-16 23:24Lists and FoldersLists and Folders TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Xenia,

I dont believe you'll be able to have that webpart display all those lists. For this, your best bet is probably just to use a wiki or HTML page which displays a similar list. It's not ideal, but fortunately the list webpart isnt very complex.
sadcat@u.washington.edu2012-06-01 12:24Jon (LabKey DevOps)2018-11-16 23:24Lists and FoldersLists and Folders TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben - then how can I display those lists in, say, a Wiki? I would prefer to have the workflow somewhat similar to Lists webpart - when you LIST available lists, and the user then clicks on the list to see its contents. I do not need the user to see list design etc.
Ben Bimber2012-06-04 09:51Jon (LabKey DevOps)2018-11-16 23:24Lists and FoldersLists and Folders TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Xenia,

Below is a basic example that creates a panel with one row per list, displaying lists from multiple containers. The appearance of the panel could be modified pretty easily, and I hope this can provide a template to create your webpart. Let me know if you have any questions.

<script type="text/javascript">

Ext.onReady(function(){
    var allLists = [];
    var multi = new LABKEY.MultiRequest();

    var config = {
        schemaName: 'lists',
        includeUserQueries: false,
        success: function(result){
            if(result.queries.length)
                allLists = allLists.concat(result.queries);
        },
        error: function(response){
            console.log('There was an error');
            console.log(response);
        }
    };

    //identify the parent path using URL. this isnt fool-proof, since the current user might not have read permission in that container.
    // would also hard-code this path in your code, depending on your usage.
    var containerArray = LABKEY.ActionURL.getContainer().split('/');
    var parentPath = containerArray.slice(0, containerArray.length -1).join('/') || '/'; //default to root

    //add one AJAX request per container. the config is otherwise shared between then. also make sure we dont modify the original config object
    var containers = [LABKEY.ActionURL.getContainer(), parentPath]
    Ext.each(containers, function(c){
        multi.add(LABKEY.Query.getQueries, Ext.apply({containerPath: c}, config));
    }, this);

    //send multi-request, so we have since a callback when both are complete
    multi.send(function(){
        allLists = allLists.sort(function(a, b){return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);});

        //aesthetics could probably be improved on this panel
        //you could also choose to group these lists by container, rather than mingle them as this example does
        var config = {
            xtype: 'panel',
            title: 'Lists', //remove title and set border=false to hide the outer part of this panel and make it look more like the normal list webpart
            border: true,
            bodyStyle: 'padding: 5px;',
            defaults: {
                border: false
            },
            items: []

        };

        Ext.each(allLists, function(list){
            config.items.push({
                html: '<a href="' + list.viewDataUrl + '">' + list.name + '</a>'
            })
        }, this);


        new Ext.Panel(config).render('listDiv');
    }, this);
});

</script>
<div id="listDiv"></div>
sadcat@u.washington.edu2012-06-05 18:33Jon (LabKey DevOps)2018-11-16 23:24Lists and FoldersLists and Folders TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh :-) Thanks, Ben
Jon (LabKey DevOps)2019-05-24 19:12Jon (LabKey DevOps)2019-05-24 19:12list permissionslist permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Unfortunately, that's not possible out of the box and would require a custom coded solution.

Since permissions for lists are subject to the container-level, if you give users editor permission, they'll unfortunately have rights to do other things, like edit other content like wikis, other lists, etc.

Regards,

Jon
Jon (LabKey DevOps)2017-08-10 15:47Jon (LabKey DevOps)2018-11-16 23:23List - Index out of Range ErrorList - Index out of Range Error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Looks like this is a bug with Tomcat.

https://bz.apache.org/bugzilla/show_bug.cgi?id=58999

We ran into the same problem on Tomcat 8.0.32 and worked around it by upgrading to Tomcat 8.5.16

What version of Tomcat are you running? Maybe an upgrade will allow you to get around this error.

Regards,

Jon
Jon (LabKey DevOps)2016-02-23 21:12Jon (LabKey DevOps)2018-11-16 23:24List design and labkey.selectRowsList design and labkey.selectRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

That's really strange. I couldn't reproduce the problem when I created a list using an integer for my Key (not the auto-increment kind).

Does this duplicate field appear when you access any list or just the one?

Can you run the same query against our LabKey.org site using this list (I've provided you access to a special folder that has a special integer list created):

listtest <- labkey.selectRows(
  baseUrl="https://www.labkey.org",
  folderPath="/Support%20Tickets/TestLists",
  schemaName="lists",
  queryName="RocheSkylineListTest",
  colNameOpt = "fieldname",
  containerFilter=NULL
)

This should bring up just three fields if you run a str(listtest) against it and you should only see three columns of data.

Regards,

Jon
laurapas2016-02-24 13:51Jon (LabKey DevOps)2018-11-16 23:23List design and labkey.selectRowsList design and labkey.selectRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
I seems that I don't have access to the Support Tickets folder and can't complete your test. I don't see this folder when I log in and I get an "unauthorized" warning in R.

I've tried just about every test combo I could think of. So, I believe I've found the cause of my undesired results, but not sure if the LabKey behavior is intended or needs to be reported as an issue. I get the duplicate primary key columns when reading the data (e.g., getRows or labkey.selectRows) and the name of the primary key contains a space (i.e., "Skyline Number"). I noticed that the field turns yellow when I have a space in a name (see snapshot)......is that supposed to be some kind of warning? I can use spaces in other non-primary key names and don't run into any problems. I'll just remove spaces from names. It's better not to have the spaces in the column names anyway; i can put these in the labels.

Regards,
Laura
Jon (LabKey DevOps)2016-02-24 13:57Jon (LabKey DevOps)2018-11-16 23:24List design and labkey.selectRowsList design and labkey.selectRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Yes, that yellow is a warning since generally you should in best practice keep your field names as one word.

So rather than "Skyline Number", you should use a convention like "skylineNumber", using camelCase text instead.

Also, can you access this list?

https://www.labkey.org/Support%20Tickets/TestLists/list-grid.view?listId=2

I've purposely setup access to that list to where only LabKey personnel and you with your current login can access it.

Regards,

Jon
Ben Bimber2016-01-20 16:11Jon (LabKey DevOps)2018-11-16 23:24 List Archive Export Fails when list contains query metadata overide List Archive Export Fails when list contains query metadata overide TEXT_WITH_LINKSClosed     LabKey Support Forum
just to add a little to that:

1) the above is metadata added through schema browser
2) it exports fine when this metadata is taken out
3) the above is the minimal metadata that was able to repro the error
4) the original list has about 4 columns, and the query.xml above only references 1 (which should be permissible).
5) this is on 15.3
Jon (LabKey DevOps)2016-01-22 13:27Jon (LabKey DevOps)2016-01-22 13:27 List Archive Export Fails when list contains query metadata overide List Archive Export Fails when list contains query metadata overide TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

It looks like this was fixed in the upcoming 16.1 build which should be out in mid-March:

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=25367

If you would like to install our unstable trunk build that currently has this fix in it in lieu of waiting, please let us know.

Regards,

Jon
jeckels2015-09-13 17:11Jon (LabKey DevOps)2018-11-16 23:24link text for URL field in listlink text for URL field in list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I don't know of a simple way to do exact what you're requesting. However, in a custom query you could do a CASE WHEN UrlColumn IS NOT NULL THEN 'Go to Site' ELSE NULL END to conditionally show the link text. Additionally, you could create your own Edit column that points to the same URL that the default list UI uses.

Alternatively, you could use XML query metadata to configure your URL column point to a <displayColumnFactory> of your own creation (a Java class that implements org.labkey.api.data.DisplayColumnFactory) that does your desired rendering behavior.

Thanks,
Josh
Jon (LabKey DevOps)2015-04-07 13:43Jon (LabKey DevOps)2018-11-16 23:24Links and insert problems of listLinks and insert problems of list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi FeiFei,

So to answer your two questions:

1. If you have a wiki page that is going to be used in lieu of the normal default Insert New page for your list, you will have to update the XML Metadata of that list to redirect your Insert New button to your wiki form.

Now, it should be using <insertUrl> as described here: https://www.labkey.org/wiki/home/Documentation/page.view?name=tableMetadata

However, I'm currently seeing an issue with using that XML tag, so as an alternative solution, I would recommend you use the buttonBarOptions instead to create an Insert New button that will point to your wiki form. See the example code below where I created a list called "TestList" in my own system. My Insert New button in this case points to the website Google, but you would replace the Target with your wiki page URL instead.

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="TestList" tableDbType="NOT_IN_DB">
    <columns></columns>
    <buttonBarOptions includeStandardButtons="true">
      <item text="Insert New">
        <target>http://www.google.com</target>
      </item>
    </buttonBarOptions>
  </table>
</tables>

Alternatively, if your list is being embedded in a wiki page as a QueryWebPart via JavaScript, another solution would be to use the config.insertURL option in your API call and use that to dictate your Insert New button.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html

2. And you are correct. Within your wiki page that you've turned into a submission form, you will have to use the the LABKEY.Query.insertRows() API call to insert the rows to update your list.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.insertRows

Regards,

Jon
feifei bao2015-04-08 09:19Jon (LabKey DevOps)2018-11-16 23:24Links and insert problems of listLinks and insert problems of list TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you so much for your detailed explanation. I try to use the buttonBarOptions. It works!

For the imported list, I created some search boxes in the page. How can I get the dynamic results of the list after search? For example, I input the specific participant ID or sample ID in the search box and it can show the updated result list. I can only find the static query based on the table. Do you have any suggestions about the dynamic queries? Thanks a lot.

Feifei
Jon (LabKey DevOps)2015-04-08 12:09Jon (LabKey DevOps)2018-11-16 23:23Links and insert problems of listLinks and insert problems of list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

I'm not sure I quite understand your follow-up question. Are you saying the search box you added does or doesn't actually work?

Your search box would have to pipe into your query as a filter and would have to re-run the query upon submitting a search and reloading the table or the entire page while using the new query.

Regards,

Jon
feifei bao2015-04-08 12:47Jon (LabKey DevOps)2018-11-16 23:23Links and insert problems of listLinks and insert problems of list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I think your understanding is right.

Here is the javascript coding I get from default filter function of list:

<script type="text/javascript">

LABKEY.Query.selectRows({
    requiredVersion: 9.1,
    schemaName: 'study',
    queryName: 'Demographics',
    columns: 'ParticipantId,date,Start Date,Height (inches),Gender,Country,Group Assignment,Status of Infection,Comments,Treatment Group',
    filterArray: [LABKEY.Filter.create('Height (inches)', '58;57', LABKEY.Filter.Types.IN),LABKEY.Filter.create('Country', 'USA', LABKEY.Filter.Types.EQUAL)],
    success: onSuccess,
    error: onError
});

But I have no idea about how to create the "filterArray" dynamically based on the input content in the box. Could you please give me an example about how to make the search box pipe into the query as a filter?

Thanks a lot!

Feifei
Jon (LabKey DevOps)2015-04-08 14:23Jon (LabKey DevOps)2018-11-16 23:24Links and insert problems of listLinks and insert problems of list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

There's a few different ways to approach this, but what will probably work best is using the push() method to add a new array item to your existing filterArray, using your searchbox.

However, do you only have one search box or multiple boxes? What data are you expected to input into the box? Are there any pre-defined filter parameters that are already in use like what you have listed in your code already or will that information be changed with every search? Your current code has two filters already being used (height and country), will those always stay static?

Regards,

Jon
Jon (LabKey DevOps)2015-04-13 15:49Jon (LabKey DevOps)2018-11-16 23:24Links and insert problems of listLinks and insert problems of list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

It's been some time since we've heard back from you, so we're going to set this case to closed.

If you have any further questions, please feel free to create a new forum question or re-open this one.

Regards,

Jon
jeckels2012-07-26 15:45Jon (LabKey DevOps)2018-11-16 23:23Linking by SpecimenIDLinking by SpecimenID TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

I think that the basic pieces are in place to support this, but the system doesn't automatically wire it up. Doing it manually should be possible and a nice feature to support, but it's somewhat tricky.

One of the difficulties here is that in the physical database the primary key for specimen data is a RowId column, an auto-incrementing INT. Within a study, the GlobalUniqueId will be unique. However, despite the column's name, it's possible for studies in different projects/folders to reuse the same GlobalUniqueId.

To hack something together, here's what I'd recommend trying:

1. Create a custom query, SpecimenDetailWrapper:

SELECT *
FROM SpecimenDetail

2. In the XML Metadata tab in the query editor, set this following as the metadata for the SpecimenDetailWrapper query. It makes the GlobalUniqueId field the sole key field, so that you'll be able to use it as a lookup target.

<ns:tables xmlns:ns="http://labkey.org/data/xml">
  <ns:table tableName="SpecimenDetailWrapper" tableDbType="NOT_IN_DB">
  
    <ns:columns>
      <ns:column columnName="ParticipantId">
        <ns:isKeyField>false</ns:isKeyField>
      </ns:column>
      <ns:column columnName="Visit">
        <ns:isKeyField>false</ns:isKeyField>
      </ns:column>
      <ns:column columnName="RowId">
        <ns:isKeyField>false</ns:isKeyField>
      </ns:column>
      <ns:column columnName="Available">
        <ns:isKeyField>false</ns:isKeyField>
      </ns:column>
      <ns:column columnName="GlobalUniqueId">
        <ns:isKeyField>true</ns:isKeyField>
      </ns:column>
    </ns:columns>
    <ns:titleColumn>GlobalUniqueId</ns:titleColumn>
  </ns:table>
</ns:tables>

3. Save your query and metadata.
4. In your dataset, point your SpecimenId column at the SpecimenDetailWrapper query as its lookup target.

This will let you customize the view and add columns from the specimen data. I'm not sure it will support your scenario of editing specimen requests, but it might.

Thanks,
Josh
Jon (LabKey DevOps)2018-12-17 23:07Jon (LabKey DevOps)2018-12-17 23:07Linking between custom tablesLinking between custom tables TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

You should be able to go into each dataset and enable the ParticipantId field to use a URL property and use a substitution token to populate the participantId value.

For example, this is what we have listed for one participant in our demo study:

https://www.labkey.org/home/Demos/Study/demo/study-participant.view?participantId=103505

We can insert the following into a URL property field, which would redirect the end-user to the participant view page for this participant:

/study/participant.view?participantId=${ParticipantId/ParticipantId}

For more details, please take a look at our documentation below:

https://www.labkey.org/Documentation/wiki-page.view?name=urlEncoding#display
https://www.labkey.org/Documentation/wiki-page.view?name=addSimpleUrlProperty
https://www.labkey.org/Documentation/wiki-page.view?name=participantViews

Regards,

Jon
Jon (LabKey DevOps)2017-02-15 23:19Jon (LabKey DevOps)2018-11-16 23:24Linked Schemas and PermissionsLinked Schemas and Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

So far, I haven't been able to reproduce this locally on my build of Trunk. But can you confirm that I'm setting up a good repro?

I did the following:

1. Created two projects:

- Main (Folder Type: Assay)
- Display (Folder Type: Collaboration)

2. Created a GPAT assay under Main and added some very basic information to it to produce Assay Data.

3. Gave the Display project Reader permission to "Site: Guests"

4. Created a Linked Schema to Main from Display, specifically using the Assay Data

5. Added a Query Web Part into Display and had it point to the Linked Schema.

6. Used an incognito browser to view the Display project without logging in, effectively making me a guest on the Project.

The Query Web Part rendering the grid from the Linked Schema appears without any errors.

Is that close to what you were doing or was it something else like a selectRows API call?

Regards,

Jon
Will Holtz2017-02-16 18:09Jon (LabKey DevOps)2018-11-16 23:24Linked Schemas and PermissionsLinked Schemas and Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for trying to reproduce this. Unfortunately, I have spent several hours trying to come up with a small repro but have not been successful. However, I have narrowed my problem down a bit and have found another path to the same goal that does have a nice repro.

1. Created two projects:

- Main (Folder Type: Assay)
- Display (Folder Type: Collaboration)

2. In Main create a list, ListA with a field Name

3. Insert one row into ListA with Name ='A1'

4. In Main create a list, ListB with a field 'Foo' that is a lookup to ListA

5. Insert one row into ListB with Foo=1 ('A1')

6. Give the Display project Reader permission to "Site: Guests"

7. Create a Linked Schema to Main from Display, giving access to ListB

8. Add a Query Web Part into Display and point it to the Linked Schema.

9. View the Query Web Part in Display as an authenticated user. Note that 'A1' is displayed in the Foo column

10. Use an incognito browser to view the Display project without logging in, effectively making me a guest on the Project. Note that '1' is displayed in the Foo column.

I expected both the guest and authenticated user to see 'A1' in the Foo column. Is that incorrect?

thanks!

-Will
Will Holtz2017-02-16 18:35Jon (LabKey DevOps)2018-11-16 23:24Linked Schemas and PermissionsLinked Schemas and Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Oops - I forgot to add that at step 7 I added the following metadata:
<tables xmlns="http://labkey.org/data/xml">
  <table tableName="ListB" tableDbType="NOT_IN_DB">
    <columns>
      <column columnName="Foo">
             <fk>
                   <fkFolderPath>/Main</fkFolderPath>
                    <fkColumnName>Key</fkColumnName>
                    <fkDbSchema>Lists</fkDbSchema>
                    <fkTable>ListA</fkTable>
                    <fkDisplayColumnName>Name</fkDisplayColumnName>
                </fk>
            </column>
    </columns>
  </table>
</tables>

-Will
Jon (LabKey DevOps)2017-03-09 20:42Jon (LabKey DevOps)2018-11-16 23:24Linked Schemas and PermissionsLinked Schemas and Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Sorry for the delay. You're right, it appears that the Metadata is just completely ignored.

When I removed the MetaData, both incognito and logged in session looked identical for the field. It was only when the metadata is used does it work for the authenticated user and not the guest.

I'll get this written up into a bug. The expectation is that this should work regardless.

Regards,

Jon
Jon (LabKey DevOps)2017-03-09 20:52Jon (LabKey DevOps)2018-11-16 23:24Linked Schemas and PermissionsLinked Schemas and Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Will Holtz2017-03-10 07:42Jon (LabKey DevOps)2018-11-16 23:24Linked Schemas and PermissionsLinked Schemas and Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks Jon!

-Will
Jon (LabKey DevOps)2017-06-24 21:25Jon (LabKey DevOps)2017-06-24 21:25Linked Schemas and PermissionsLinked Schemas and Permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

So this appears to be by design. Per our developers answer:

=========

Given the way the user set up the metadata in the thread (which is a key repro step), here's what's going on. This is By Design, I think.

The Linked Schema is set up with only ListB published, not ListA.
The user set up the metadata to reference folder Main directly.

Therefore, when viewing the ListB in Display as a Guest, you don't have permission to see Main and therefore don't.

If you change the metadata to not reference Main, well, nobody can see A1, since you're still looking at the Lists schema (which would be in Display) ListA cannot be found. If you take away the reference to the Lists schema, it's looking in the same schema, which is the linked schema, and ListA cannot be found.

If you now add ListA to the linked schema, and the metadata is like this:
<tables xmlns="http://labkey.org/data/xml">
  <table tableName="ListB" tableDbType="NOT_IN_DB">
    <columns>
      <column columnName="Foo">
             <fk>
                    <fkColumnName>Key</fkColumnName>
                    <fkTable>ListA</fkTable>
                    <fkDisplayColumnName>Name</fkDisplayColumnName>
                </fk>
            </column>
    </columns>
  </table>
</tables>

Then it works. In this case the FK references the same (linked) schema and ListA is published there, and the guest user has permission for the Display folder, so it works.

=========

Regards,

Jon
Jon (LabKey DevOps)2017-10-05 12:13Jon (LabKey DevOps)2018-11-16 23:23Linked schema from a 'flow' folderLinked schema from a 'flow' folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Myriam,

So is there no Flow schema in your study folder?

Although it isn't a lookup in the traditional sense, the expandable section does mean that it is doing some kind of JOIN.

Have you considered adding the flow module to that study folder, then create a user query that calls on the flow.FCSFiles table in the other folder?

Regards,

Jon
Jon (LabKey DevOps)2018-06-29 12:43Jon (LabKey DevOps)2018-06-29 12:43LImit to insertrows queryLImit to insertrows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Yes, it is recommended that you batch up your data into smaller chunks when you're in that higher level of data rows.

In-fact, if you've ever done a study import that had a few thousand rows of participants in it, you'll see the pipeline log will indicate a breakdown of copying rows over typically within batches of 1000 rows.

Regards,

Jon
Jon (LabKey DevOps)2018-06-29 12:51Jon (LabKey DevOps)2018-06-29 13:00LImit to insertrows queryLImit to insertrows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Additionally, depending on the API you're using, you could also use the importRows call:

https://cran.r-project.org/web/packages/Rlabkey/Rlabkey.pdf
WayneH2018-07-18 11:48Jon (LabKey DevOps)2018-11-16 23:24LImit to insertrows queryLImit to insertrows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Jon..

needed to follow up with you guys as we explored this a little and batched the jobs using the insertrows call but still found a hard limit around 9900 rows.. Unfortunately we have a process that rewrites the using an external db (per requirements) which is a permanent repository so we have to work with what we are given if possible...
Not sure where this hard limit is set or how we can work around it..
Any thoughts?

Thanks,

Wayne H
Jon (LabKey DevOps)2018-07-19 13:11Jon (LabKey DevOps)2018-11-16 23:24LImit to insertrows queryLImit to insertrows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

We're going to need to know more here regarding your problem.

You said there is a "hard limit around 9900 rows". How did you determine this? Were there any exception messages or errors that came up when you reached that threshold? Did the server hang or do anything else unusual that impacted performance? Was there anything within your labkey.log file that corresponds with this hard limit you described?

The only possible suggestion is to raise you JVM heap size on the server (assuming it's a memory issue), but we really can't make any kind of workaround recommendations or suggestions without more information.

Regards,

Jon
WayneH2018-07-23 08:24Jon (LabKey DevOps)2018-11-16 23:24LImit to insertrows queryLImit to insertrows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

we arrived at this number by deduction honestly.... we used chunks of decreasing size to understand why we were having issues pushing data into the table via the API.. we ran chunk sizes of 1000 500 100 and 10rows.
 2000 row chunks stopped at 8000 inserted.
 1000 row chunks stopped at 9000 inserted.
 500 row chunks stopped at 9500 inserted
 100 row chunks stopped at 9800 inserted and
 10 row chunks stopped at 9890...

It seemed reasonable to assume we were narrowing in on a 9900 row limit which I think we can all agree makes little sense but we aren't sure why this is so...

Took a look at the log file..
Labkey.log file indicated "java.sql.SQLException: Internal error: An expression services limit has been reached. Please look for potentially complex expressions in your query, and try to simplify them."

The attached file contains that error report...

Thanks,

WH
WayneH2018-07-23 08:25Jon (LabKey DevOps)2018-11-16 23:24LImit to insertrows queryLImit to insertrows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hit 'submit' too quickly..
Here is the file...
Jon (LabKey DevOps)2018-07-27 14:18Jon (LabKey DevOps)2018-07-27 14:18LImit to insertrows queryLImit to insertrows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

That SQLException error is a limitation within Microsoft SQL Server and will come up if you have too many identifiers and constants in your query. MS SQL has a limit of 65,535.

More details: https://support.microsoft.com/en-us/help/913050/error-message-when-you-run-a-query-in-sql-server-2005-internal-error-a

The only way to get around this is to work in smaller batches when it comes to your queries. Looking at that SQL that was within your log, it looks like you're doing a lot of CASE statements, which explains why you're hitting this limit.

Regards,

Jon
WayneH2018-08-09 07:10Jon (LabKey DevOps)2018-11-16 23:23LImit to insertrows queryLImit to insertrows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Jon,

We need to discuss with all teams on our end but what still confuses me is we assumed that the case statements were being generated by LabKey's API.. It's really unclear to us why those were being generated... So just to confirm you believe that this issue is a SQL server issue not LabKey?

Thanks,

WH
Jon (LabKey DevOps)2018-08-23 13:45Jon (LabKey DevOps)2018-11-16 23:23LImit to insertrows queryLImit to insertrows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

It is a SQL issue, but also a LabKey issue as well. But the workaround is the same, which is to use smaller batches until we can revise our code to manage things better to work with SQL Server's own limitations.

Regards,

Jon
Matthew Bellew2008-04-25 21:40Jon (LabKey DevOps)2018-11-16 23:23Limits on HTML in WIKI pages?Limits on HTML in WIKI pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
Well there aren't any intentional limitations (aside from security rules for script). You do have to remember that you will only have the labkey stylesheet by default (you have to inline any styles you use).

However, the MS apps used to be notorious for saving very complicated HTML. Some editors even have built-in "cleanup microsoft html" commands. Could you post an example or two (I'm concerned about the crash on display)
tholzman@fhcrc.org2008-04-29 11:16Jon (LabKey DevOps)2018-11-16 23:24Limits on HTML in WIKI pages?Limits on HTML in WIKI pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
I think my primary problem is the stylesheet. Is there any way of appending <head> </head> information to the Labkey header?

My secondary problem is more annoying. I find it very difficult to erase an HTML WIKI page once it starts generating errors.
If I delete the WIKI section from the folder, then re-attach "another" one, it ends up with the same pages. If I try to delete or edit the
broken page under [manage] section, CPAS tries to display page, I get an error message:

500: Unexpected server error
Home Back Folder
java.lang.RuntimeException: Namespace for prefix 'border' has not been declared.

[Show more details]

javax.xml.transform.TransformerException: java.lang.RuntimeException: Namespace for prefix 'border' has not been declared.
       at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:718)
       at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
       at org.labkey.api.util.PageFlowUtil.convertNodeToHtml(PageFlowUtil.java:1291)
       at org.labkey.wiki.renderer.HtmlRenderer.format(HtmlRenderer.java:111)
       at org.labkey.wiki.WikiManager.formatWiki(WikiManager.java:724)
       at org.labkey.wiki.model.WikiVersion.getHtml(WikiVersion.java:93)
       at org.labkey.wiki.model.BaseWikiView.init(BaseWikiView.java:110)
       at org.labkey.wiki.model.WikiView.<init>(WikiView.java:17)
       at org.labkey.wiki.WikiController$PageAction.getView(WikiController.java:1564)
       at org.labkey.wiki.WikiController$PageAction.getView(WikiController.java:1514)
       at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:43)
       at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:142)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:285)
       at org.labkey.api.view.ViewServlet.dispatchActionController(ViewServlet.java:315)
       at org.labkey.api.view.ViewServlet._dispatchActionURL(ViewServlet.java:152)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:128)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:124)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:899)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:94)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.RuntimeException: Namespace for prefix 'border' has not been declared.
       at com.sun.org.apache.xml.internal.serializer.SerializerBase.getNamespaceURI(SerializerBase.java:895)
       at com.sun.org.apache.xml.internal.serializer.SerializerBase.addAttribute(SerializerBase.java:422)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:197)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:90)
       at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:663)
       at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:709)
       ... 44 more
---------
java.lang.RuntimeException: Namespace for prefix 'border' has not been declared.
       at com.sun.org.apache.xml.internal.serializer.SerializerBase.getNamespaceURI(SerializerBase.java:895)
       at com.sun.org.apache.xml.internal.serializer.SerializerBase.addAttribute(SerializerBase.java:422)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:197)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
       at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:90)
       at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:663)
       at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:709)
       at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
       at org.labkey.api.util.PageFlowUtil.convertNodeToHtml(PageFlowUtil.java:1291)
       at org.labkey.wiki.renderer.HtmlRenderer.format(HtmlRenderer.java:111)
       at org.labkey.wiki.WikiManager.formatWiki(WikiManager.java:724)
       at org.labkey.wiki.model.WikiVersion.getHtml(WikiVersion.java:93)
       at org.labkey.wiki.model.BaseWikiView.init(BaseWikiView.java:110)
       at org.labkey.wiki.model.WikiView.<init>(WikiView.java:17)
       at org.labkey.wiki.WikiController$PageAction.getView(WikiController.java:1564)
       at org.labkey.wiki.WikiController$PageAction.getView(WikiController.java:1514)
       at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:43)
       at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:142)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:285)
       at org.labkey.api.view.ViewServlet.dispatchActionController(ViewServlet.java:315)
       at org.labkey.api.view.ViewServlet._dispatchActionURL(ViewServlet.java:152)
       at org.labkey.api.view.ViewServlet.service(ViewServlet.java:128)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:124)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:899)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:94)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
       at java.lang.Thread.run(Thread.java:619)

request attributes
LABKEY.StartTime = 1209492907581
javax.servlet.request.key_size = 0
javax.servlet.request.ssl_session = 48176491ff8a0a675e877c04a8f65d8729aa823e1d973ed30eb2e62fcb9a785d
LABKEY.container = /Allen Foundation Biomarker Grant/Allen Grant Data
javax.servlet.request.cipher_suite = TLS_DHE_RSA_WITH_AES_128_CBC_SHA
LABKEY.OriginalURL = https://proteomics.fhcrc.org/CPAS/wiki/Allen%20Foundation%20Biomarker%20Grant/Allen%20Grant%20Data/page.view?name=SampleStatus
LABKEY.action = page
LABKEY.controller = wiki
LABKEY.RequestURL = /CPAS/wiki/Allen%20Foundation%20Biomarker%20Grant/Allen%20Grant%20Data/page.view?name=SampleStatus

core schema database configuration
Server URL    jdbc:jtds:sqlserver://edi-sql2.fhcrc.org/cpas
Product Name    Microsoft SQL Server
Product Version    08.00.2039
Driver Name    jTDS Type 4 JDBC Driver for MS SQL Server and Sybase
Driver Version    1.2.2
Matthew Bellew2008-04-29 11:38Jon (LabKey DevOps)2018-11-16 23:23Limits on HTML in WIKI pages?Limits on HTML in WIKI pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
First for the stylesheet question. Even though HTML says the <style> tag has to be in the <head>, this is not actually true. The browsers will correctly read styles embedded in the body. I suspect that this is to solve exactly this sort of problem.

The javax.xml.transform.TransformerException error is more serious. I'll enter a bug about that.
eknelson2008-04-30 15:29Jon (LabKey DevOps)2018-11-16 23:24Limits on HTML in WIKI pages?Limits on HTML in WIKI pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
Matt already addressed your main challenge, but I thought it might be helpful to add one more tip. You say:

"If I delete the WIKI section from the folder, then re-attach "another" one, it ends up with the same pages."

In other words, you expect all wiki pages for a folder to be deleted when you close the webpart (aka "WIKI section") displaying them on a folder portal page. Not an unreasonable expectation.

Actually, your wiki pages are purposefully retained when you close/delete a wiki webpart. Britt gave me a great explanation for this behavior:

"Webparts are just windows onto underlying data- deleting a webpart will never delete actual data. That is, after deleting a webpart, you can always add the webpart again, and you'll see the pre-deletion data, assuming that the webparts have the same settings. "
Jon (LabKey DevOps)2018-07-27 09:59Jon (LabKey DevOps)2018-07-27 09:59Limited number of records in executeSqlLimited number of records in executeSql TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Zoya,

You should be able to dictate a larger value by using the maxRows option within your LABKEY.Query.executeSql command:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.executeSql

Without dictating a value, we do default at 100,000 rows.

Regards,

Jon
Jon (LabKey DevOps)2018-02-21 14:01Jon (LabKey DevOps)2018-02-21 14:01Length of a Column Exceeds 4000 charactersLength of a Column Exceeds 4000 characters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alicia,

Per our meeting, if you go into the list, you can change the size of the column length by going into the Advanced tab for the Field Properties editor and change it there.

https://www.labkey.org/Documentation/wiki-page.view?name=propertyFields#advanced

By default, it's set to 4000, but you can change it to be smaller or bigger. If you use the option "Max", it will be as large as what the underlying database will allow. Please note that there are some limitations to this, such as the Primary Key field not allowing the Max setting.

Regards,

Jon
Greg Taylor2014-04-11 09:37Jon (LabKey DevOps)2018-11-16 23:24LDAP serversLDAP servers TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,
We had another customer that was interested in multiple LDAP servers as well. Unfortunately, LabKey currently only supports configuration with one LDAP server. That said, we would implement support for multiple LDAP servers if we had a client willing to fund the work. From within the same LDAP server, it is possible to have multiple domains (but this probably doesn't help your case).
Greg
Greg Taylor2014-04-11 09:39Jon (LabKey DevOps)2018-11-16 23:23LDAP serversLDAP servers TEXT_WITH_LINKSClosed     LabKey Support Forum
bront@kcr.uky.edu2014-04-11 09:44Jon (LabKey DevOps)2018-11-16 23:24LDAP serversLDAP servers TEXT_WITH_LINKSClosed     LabKey Support Forum
Greg,

Thanks for the quick response. I didn't think it was possible, but I thought I'd ask...

Thanks again,

b
adam2007-05-03 14:07Jon (LabKey DevOps)2018-11-16 23:24LDAP SASL authentication extensionLDAP SASL authentication extension2007-06-03 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
This would be a great addition. Please run the DRT and submit the diff. I'll volunteer to review & commit it. We are just finishing up the 2.1 development cycle so the feature might not get released until 2.2.

Thanks,
Adam
jrue@novonordisk.com2007-05-03 15:01Jon (LabKey DevOps)2018-11-16 23:24LDAP SASL authentication extensionLDAP SASL authentication extension2007-06-03 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
DRT was run from a copy of the trunk updated 2007-05-13 14:16 and failed on the MS2Test:

[java] There was 1 error:
[java] 1) testSteps(org.labkey.test.web.MS2Test)junit.framework.AssertionFailedError: Link with
 text [CAexample_mini (test1)] not found in response.
[java] at net.sourceforge.jwebunit.WebTester.assertLinkPresentWithText(WebTester.java:618)
[java] at net.sourceforge.jwebunit.WebTestCase.assertLinkPresentWithText(WebTestCase.java:2
44)
[java] at org.labkey.test.web.MS2TestBase.doTestSteps(MS2TestBase.java:125)
[java] at org.labkey.test.web.MS2Test.doTestSteps(MS2Test.java:16)

This looks unrelated so I won't investigate unless you ask me too.

The diff is attached. The LDAP help documentation will need to be updated and possibly the help text on the site configuration page and test LDAP settings page.

Thanks Adam,

Jon
adam2007-05-03 15:06Jon (LabKey DevOps)2018-11-16 23:24LDAP SASL authentication extensionLDAP SASL authentication extension2007-06-03 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Correct, not your problem. It's an issue from a very recent commit that we're working to fix.

I'll take a look; thanks again.

Adam
adam2007-05-03 21:07Jon (LabKey DevOps)2018-11-16 23:23LDAP SASL authentication extensionLDAP SASL authentication extension2007-06-03 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I committed these changes to the trunk earlier today; they should be in release 2.1. Nice work. I did some general testing, but we don't have a SASL LDAP server handy, so I didn't exercise the new functionality.

Adam
adam2007-11-30 20:27adam2007-11-30 20:27LDAP SASL authentication extensionLDAP SASL authentication extension TEXT_WITH_LINKSClosed     LabKey Support Forum 
adam2017-09-22 12:35Jon (LabKey DevOps)2018-11-16 23:24LDAP questionLDAP question TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

Just to clarify, are you talking about including wildcards in the LDAP DN (by specifying them as part of the "LDAP principal template" field) or configuring the "LDAP domain" field (which currently accepts a single domain or '*')? The LDAP authentication page includes a screen shot of these fields, https://www.labkey.org/Documentation/wiki-page.view?name=configldap

Either way, LabKey LDAP authentication doesn't "latch onto" anything... on every authentication attempt, LabKey issues a new LDAP connect, constructing the DN by substituting the appropriate values into the template. It round robins through the server URLs until it finds one that responds with either success or failure.

At the moment, only one LDAP configuration can be provided, which means there's no way to route different authentication requests to different LDAP servers, for example, if the organization manages email addresses under multiple domain names. We would like to extend the LDAP configuration to support this, but it's never been a priority for our clients.

Adam
Leo Dashevskiy2013-02-11 12:44Leo Dashevskiy2013-02-11 12:44LABKEY.WebPart.render() times outLABKEY.WebPart.render() times out TEXT_WITH_LINKSClosed     LabKey Support Forum
To my surprise overwriting the value in ext-patches.js did not help either!

I started digging further and just noticed that the inner request() method (of LABKEY.ExtAdapter.Ajax) is part of Ext.data.Connection definition, which itself is in a file called ext-all-sandbox-debug.js (that has the header: "This file is part of Ext JS 4.1").

So looks like Nick was absolutely right indeed and I just did not understand correctly: even though, I am not using any of the Ext4 client API yet, this request() method above was changed (since I set my timeout value) to rely on Ext4, instead of Ext3, I guess, it is not part of the exposed API; moreover simply "Ext" in the context of that request() method seems to be the alias for "Ext4" and not noticing that first confused me.

The bottom line is, setting Ext4.Ajax.timeout does the trick...
Nick Kerr2013-02-06 23:11Jon (LabKey DevOps)2018-11-16 23:24LABKEY.WebPart.render() times outLABKEY.WebPart.render() times out TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey,

Our default timeout is 5 minutes as you say.

Simple thing, but might you be making the request using Ext4?

Ext4.Ajax.timeout = 3600000;

Thanks,
Nick
Leo Dashevskiy2013-02-07 11:35Jon (LabKey DevOps)2018-11-16 23:24LABKEY.WebPart.render() times outLABKEY.WebPart.render() times out TEXT_WITH_LINKSClosed     LabKey Support Forum
Interesting point, Nick.

But I am not relying on Ext4 anywhere - I do not even have the LABKEY.requiresExt4ClientAPI() call yet...

And it would be weird for LABKEY.WebPart in its render() call to have switched from relying on Ext(3) to relying instead on Ext4

The thing that is different now from before is the usage of Rserve backend instead of pure R...
Leo Dashevskiy2013-02-07 18:09Jon (LabKey DevOps)2018-11-16 23:24LABKEY.WebPart.render() times outLABKEY.WebPart.render() times out TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, so I have been setting the timeout globally in hopes that it would be universal for all of the Ajax calls, but if I look at Ext.Ajax.timeout's value within the LABKEY.ExtAdapter.Ajax.request() method before anything happens there, it is changed back to default 300000. What is the proper way of setting it then? Can it be passed into the render() call of a LABKEY.WebPart ?
Please, advise!
Leo Dashevskiy2013-02-11 10:44Jon (LabKey DevOps)2018-11-16 23:24LABKEY.WebPart.render() times outLABKEY.WebPart.render() times out TEXT_WITH_LINKSClosed     LabKey Support Forum
Looking at the debugging print statements, seems that the time out setting in the ext-patches.js happens before my custom one:

"default set ajax timout to: 300000 ext-patches.js:12
custom set ajax timout to: 3600000 OpenCyto.js:34"

Moreover, the loading of the corresponding scripts does appear to proceed in the correct order from looking in the generated html code:

<head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <title>Flow Dashboard: /HVTN080</title>
    <!-- http://140.107.157.39:8080/labkey/project/HVTN080/begin.view?.lastFilter=true -->
    <!-- <base href="http://140.107.157.39:8080/labkey/project/HVTN080/" /> -->
<link rel="canonical" href="http://140.107.157.39:8080/labkey/project/HVTN080/begin.view?">
...
    <script type="text/javascript">
        LABKEY.loadedScripts('ext-3.4.0/adapter/ext/ext-base-debug.js','ext-3.4.0/ext-all-debug.js','ext-3.4.0/ext-patches.js', ... ,'OpenCyto/OpenCyto.js', ...);
    </script>
    <script src="/labkey/ext-3.4.0/adapter/ext/ext-base-debug.js?2138056540" type="text/javascript"></script>
    <script src="/labkey/ext-3.4.0/ext-all-debug.js?2138056540" type="text/javascript"></script>
    <script src="/labkey/ext-3.4.0/ext-patches.js?2138056540" type="text/javascript"></script>
...
</head>


<body ...>
    ...
    <script src="/labkey/OpenCyto/OpenCyto.js?2138056540" type="text/javascript"></script>
...
</body>


So not sure, what's going on here and why LABKEY.ExtAdapter.Ajax.request() no longer respects the custom override of the Ext.Ajax.timeout value...

Any help is appreciated!
(For now for my purposes I will modify the ext-patches.js but that would not work well for production environment since regular user would not be expected to modify the global scripts like that, right?)

Thanks.
-Leo
alanv2013-09-16 15:43Jon (LabKey DevOps)2018-11-16 23:24LABKEY.vis scripts not loadedLABKEY.vis scripts not loaded TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Anthony,

In 13.3 this type of scenario should be easier with our export as script option for scatter/box plots. Until then you can use the file I attached as a starting point, it's a modified version of what we export in 13.3. You'll need to modify the selectRowsCallback and dependencyCallback functions, but it should be a good start. Let me know if you have any issues.

Thanks,
Alan
Anthony Corbett2013-09-17 06:12Jon (LabKey DevOps)2018-11-16 23:23LABKEY.vis scripts not loadedLABKEY.vis scripts not loaded TEXT_WITH_LINKSClosed     LabKey Support Forum

Thanks Alan,

I was able to get the dependencies loaded. Can you tell me how d3 and raphel are used inside the vis libraries? Does the Plot, layer, and gemo objects all depend on both or is there a clean separation then it uses one or the other?

I'm wanting to use D3's time scale (https://github.com/mbostock/d3/wiki/Time-Scales) for plotting date based data and wanted to know if it would be something as simple as using that this date based scale object in plot.

Thanks,

Anthony
adam2013-09-17 11:30Jon (LabKey DevOps)2018-11-16 23:24LABKEY.vis scripts not loadedLABKEY.vis scripts not loaded TEXT_WITH_LINKSClosed     LabKey Support Forum
FYI: If you're interested in plotting date-based data, you might also want to look at the Timeline module, which integrates study data with Simile Timeline (http://www.simile-widgets.org/timeline/)

Adam
adam2016-04-28 05:11Jon (LabKey DevOps)2018-11-16 23:24LabKey version 16.x build error in IntellyJLabKey version 16.x build error in IntellyJ TEXT_WITH_LINKSClosed     LabKey Support Forum
These, and many other classes used by LabKey, are generated by XMLBeans. You need to invoke "ant build" before you can perform incremental builds via IntelliJ. More details on the steps and restrictions are here: https://www.labkey.org/wiki/home/Documentation/page.view?name=hotSwapping

Adam
Zoya Pasha2017-11-08 01:53Zoya Pasha2017-11-08 01:53Labkey user defined queriesLabkey user defined queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you
Jon (LabKey DevOps)2017-11-07 23:04Jon (LabKey DevOps)2017-11-07 23:04Labkey user defined queriesLabkey user defined queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Zoya,

That isn't possible. The only people who can access the Schema Browser to view queries are Admin. There is no way to restrict admins from viewing queries within the Query Browser for the containers they have Admin rights to.

Regards,

Jon
adam2013-06-05 07:37Jon (LabKey DevOps)2018-11-16 23:23Labkey SVN public user/pass not workingLabkey SVN public user/pass not working TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, our Subversion server is undergoing maintenance this morning; we don't have exact ETA, but we expect it to be back up this morning. Sorry for any inconvenience.

Adam
Matthew Bellew2013-06-06 09:25Jon (LabKey DevOps)2018-11-16 23:23Labkey SVN public user/pass not workingLabkey SVN public user/pass not working TEXT_WITH_LINKSClosed     LabKey Support Forum
You should be able to sync now. Let me know if you have any problems.
jeckels2010-07-13 09:38Jon (LabKey DevOps)2018-11-16 23:24labkey still sending emails from old email after changing system email in admin consolelabkey still sending emails from old email after changing system email in admin console TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

If you've customized any look and feel settings at the project level, the server has probably saved a separate copy of the email address at that level. You can verify this by going to a project that's sending email from the old address and going to Admin->Manage Project->Project Settings.

Ideally, if you don't actually edit an individual setting at the project level it would defer to the site-wide setting, but right now we create a separate copy of whole configuration when you initially save any kind of edit at the project level.

Thanks,
Josh
Ben Bimber2010-07-13 11:53Jon (LabKey DevOps)2018-11-16 23:24labkey still sending emails from old email after changing system email in admin consolelabkey still sending emails from old email after changing system email in admin console TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, that probably explains it. thanks.
Matthew Bellew2011-06-07 13:45Jon (LabKey DevOps)2018-11-16 23:24labkey SQL: doing a join with INlabkey SQL: doing a join with IN TEXT_WITH_LINKSClosed     LabKey Support Forum
IN is not a set method not a string method. So this won't work. You could try using LIKE

   t2.col LIKE ('%' || t1.col || '%')

This has a few problems

- first
   'apple,banana,lemon,grapefruit' LIKE '%grapefruit%' is TRUE
but
   'apple,banana,lemon,grapefruit' LIKE '%grape%' is also TRUE

- second
  this is effectively a cross-product join and can get very, very expensive
Leo Dashevskiy2013-05-20 08:23Leo Dashevskiy2013-05-20 08:23LABKEY SQL capability to decode URI ?LABKEY SQL capability to decode URI ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yeah, seems like decoding the data on load is the best option after all.

Specifying 'fields' config in either the store or within the reader seems to work initially, but the way the extended json reader works is if there is meta data passed in along with the data, then the initial configs get overwritten and I could not for the world of me figure out how to cancel such an overwrite...
Leo Dashevskiy2013-05-21 10:02Leo Dashevskiy2013-05-21 10:02LABKEY SQL capability to decode URI ?LABKEY SQL capability to decode URI ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben!

I'm using Ext3 still.

Like I said, I ended up per Matt's suggestion decoding data on load, like you suggested in 1) (not sure why I would care if there is a guarantee my listener will be called before other load listeners...)

I did try fiddling with it like you mentioned in 2), but to no success: there is indeed 'metachange' even being fired by the store, but AFTER all reconfiguration already took place:

            if(this.reader.onMetaChange){
                this.reader.onMetaChange = this.reader.onMetaChange.createSequence(this.onMetaChange, this);
            }

where DataReader's this.reader.onMetaChange deletes the configuration from the passed in configs and reconfigures it based on the received metadata, then Store's this.onMetaChange fires the 'metachange' event. So I'm not sure what the proper approach here should be...
Matthew Bellew2013-05-16 13:14Jon (LabKey DevOps)2018-11-16 23:24LABKEY SQL capability to decode URI ?LABKEY SQL capability to decode URI ? TEXT_WITH_LINKSClosed     LabKey Support Forum
There is not a SQL function that will do this. I think it shouldn't be too hard to add a load event on the store that translates these values in javascript using unescape().
Leo Dashevskiy2013-05-16 14:28Jon (LabKey DevOps)2018-11-16 23:24LABKEY SQL capability to decode URI ?LABKEY SQL capability to decode URI ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Matt!

Yes, that's what I currently have to do, use the decodeURI() method in JavaScript in fact.

The thing is that I use the data from the same store/db table on several occasions and so must go through such a conversion each time I do - so instead wanted to convert at the source of it once.

Though, what you are suggesting is to convert the store's data once, right? And then I would be able to use it multiple times but already converted. I like that suggestion. I think there is a convert(record) way of doing it (not sure if it's within the load callback, I will dive into this...)
Ben Bimber2013-05-20 08:38Ben Bimber2013-05-20 08:38LABKEY SQL capability to decode URI ?LABKEY SQL capability to decode URI ? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi leo,

are you using Ext3 or 4? The store will always override metadata on load (which generally makes sense); however, you can investigate one of these depending on your Ext version:

1) In either Ext version, listen for the Store's load event and iterate the records to make changes. this is less efficient, and I dont think there is a guarantee your listener will be called before other load listeners, but by far the easiest.

2) Either the store or reader should have an event that is something like 'metadatachange' (this name might be incorrect'), which is triggered when metadata loads. Your handler is passed the fields metadata object and you could modify it accordingly. This is sorta digging into the guts of Ext to make this work, but it is relatively clean if you get it working.
Matthew Bellew2010-10-08 10:59Jon (LabKey DevOps)2018-11-16 23:24labkey sql and converting numeric value to stringlabkey sql and converting numeric value to string TEXT_WITH_LINKSClosed     LabKey Support Forum
This is a common problem when dealing with floating point data. Even relatively small decimal numbers can't be represented exactly, and different systems handle string conversion differently.

Try this

CONVERT(t1.volume, NUMERIC) || ' ' || t1.vunits as volume
Matthew Bellew2017-11-14 15:20Jon (LabKey DevOps)2018-11-16 23:24LabKey sites and google search?LabKey sites and google search? TEXT_WITH_LINKSClosed     LabKey Support Forum
The good news is that we already have a way to suppress indexing, we're just not using it (yet) on this page. For reference the way to suppress indexing is to add this to the action.

            getPageConfig().setNoIndex();

Matt
Jon (LabKey DevOps)2019-02-07 10:39Jon (LabKey DevOps)2019-02-07 10:39Labkey Server on development environment is not workingLabkey Server on development environment is not working TEXT_WITH_LINKSClosed     LabKey Support Forum
User resolved issue after going back through https://www.labkey.org/Documentation/wiki-page.view?name=devMachine and realizing that Tomcat was not being started up within IntellIJ environment for the LabKey Dev configuration and instead had tried to start it up outside of the IntelliJ. After doing this, things worked as expected.
Susan Hert2016-11-26 19:25Jon (LabKey DevOps)2018-11-16 23:23LabKey Server build converting to GradleLabKey Server build converting to Gradle TEXT_WITH_LINKSClosed     LabKey Support Forum
With revision 47849 in trunk, we have merged the SVN branch where development on the Gradle build was being done into trunk. This is an important checkpoint for our conversion of the build process from Ant to Gradle, but the conversion is not yet complete. We need to do some more extensive testing and further development to complete this conversion.

In the meantime, though, you should see no differences in behavior and can continue to use the ant build commands as you did before. It may happen that IntelliJ will recognize that you have a new build.gradle file and it will ask you if you want to do an import of the project using that build file. At this point, you should refrain from doing this import because default behavior of IntelliJ when doing this import is to remove some important configuration files and to modify others in ways that make your project not able to find many of the files it depends on.

We will be working on the remaining conversion of build tasks and stabilization of the Gradle build process in the 17.1 release cycle and hope to complete the conversion by the 17.2 release.

Let us know if there are questions or problems.

Susan
Susan Hert2017-05-01 15:01Jon (LabKey DevOps)2018-11-16 23:24LabKey Server build converting to GradleLabKey Server build converting to Gradle TEXT_WITH_LINKSClosed     LabKey Support Forum
As one of our final steps in the conversion from Ant to Gradle, in May we will start removing the files that are used exclusively for the ant build. This includes:
- all build.xml files
- the jar files checked in to version control in directories such as external/lib and the individual modules' lib directories
- the Intellij project based in the server directory and all associated .iml files

If you are building LabKey locally and have not yet had a chance to convert to using Gradle, please do so soon and let us know if you encounter any problems. Please refer to our documentation (https://labkey.org/Documentation/wiki-page.view?name=gradleBuild) and the webinar about building LabKey with Gradle (https://youtu.be/Yso6c7V8GPU) for more details about converting.

Susan
eknelson2009-06-25 18:41Jon (LabKey DevOps)2018-11-16 23:24Labkey Server API access for both container and data manipulatulationLabkey Server API access for both container and data manipulatulation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Natalie,

Thanks for the great catch on the link issue. This actually looks like a bug in the HTML editor, so I appreciate the heads-up. I've opened Issue 8216, but I'll need to wait until the code issue is fixed before link fixes to the Forum page will stick consistently.

Thanks again,

-- Elizabeth
jeckels2009-07-02 16:53Jon (LabKey DevOps)2018-11-16 23:24Labkey Server API access for both container and data manipulatulationLabkey Server API access for both container and data manipulatulation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Natalie,

Sorry for my delay in responding.

While we don't have APIs for everything that you're interested in doing, it is possible to script those actions from Perl, and we have a couple of installations where users are doing just that. Unfortunately, since it involves poking URLs that we don't consider public APIs, it's more likely to break with new versions of LabKey Server. We don't have much in the way of documentation on this, but the way to determine the magic URL and GET/POST parameters is to go to the HTML form in the standard UI and figure out what needs to be set. Most of them are relatively simple, but will require things like configuring BASIC AUTH to authenticate the user and make sure they have permissions.

It would be great to have client APIs to do things like create folders and initiate pipeline jobs (which can load results, run XTandem and the TPP, etc). Here's some basic information about adding new APIs:

https://www.labkey.org/wiki/home/Documentation/page.view?name=implementActions

The class org.labkey.portal.ProjectController$GetContainersAction might be a good starting point for thinking about an API to create projects and folders.

Please let me know if that's helpful.

Thanks,
Josh
jeckels2015-09-15 11:22jeckels2015-09-15 11:22LabKey Server and JDK 8LabKey Server and JDK 8 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Yes, we are continuing to build the Java client API targeting Java 7. It's actually being built using the compiler from Java 8 (like all of the rest of the build), but using Java 7 as both the source code and compiled class file versions, which should ensure compatibility with SAS.

I'll pass this along to our docs team to refresh that page.

Thanks,
Josh
Anthony Corbett2015-09-15 07:29Anthony Corbett2015-09-15 07:29LabKey Server and JDK 8LabKey Server and JDK 8 TEXT_WITH_LINKSClosed     LabKey Support Forum

Josh,

Just a follow up question about labkey client APIs and Java 8. As for SAS, it does not look like java 8 is supported in 9.4 yet, see http://support.sas.com/resources/thirdpartysupport/v94/jres.html. SAS 9.3 comes with java 6 by default and you needed TS1M2 update (everyone should have had that as it was released in 2012!) to run java 7. BTW, labkey's SAS setup wiki page still references 9.3 with JRE 6, which doesn't even work with the latest 15.2 jars build with java 7 unless you have the TS1M2 upgrade (which isn't mentioned on that page). Also, there is no reference to SAS 9.4 on the SAS setup page.

Will you still be building the client API jars using java 7? As you know the class file format between 7 and 8 are different and this will break SAS if the jars are built in java 8.


Thanks,

Anthony
jeckels2011-02-11 13:50Jon (LabKey DevOps)2018-11-16 23:23LABKEY.Security.getSecurableResourcesLABKEY.Security.getSecurableResources TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The SecurableResource's id should be the same as the dataset's entityid, which you can get by querying the study.DataSets table (it's a hidden column). Depending on your situation, that may or may not be more convenient. You could then use LABKEY.Security.getPolicy() to get its details.

Thanks,
Josh
eknelson2011-02-11 15:08Jon (LabKey DevOps)2018-11-16 23:23LABKEY.Security.getSecurableResourcesLABKEY.Security.getSecurableResources TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the info on the missing API doc, Ben. I opened a bug to add the containerPath config option to the documentation for this API:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=11509
dennisw2016-10-27 07:29Jon (LabKey DevOps)2018-11-16 23:24LabKey says that Java module "was not compiled in production mode" even after 'ant production'LabKey says that Java module "was not compiled in production mode" even after 'ant production' TEXT_WITH_LINKSClosed     LabKey Support Forum
Did you try, in your module.properties file, adding the line:

BuildType: Production
j142857z2016-10-27 08:04Jon (LabKey DevOps)2018-11-16 23:24LabKey says that Java module "was not compiled in production mode" even after 'ant production'LabKey says that Java module "was not compiled in production mode" even after 'ant production' TEXT_WITH_LINKSClosed     LabKey Support Forum
I managed to deploy it the module, thanks. I added 'BuildType: Production' to the properties file and ran 'ant production'.
Jon (LabKey DevOps)2016-10-27 12:35Jon (LabKey DevOps)2016-10-27 12:35LabKey says that Java module "was not compiled in production mode" even after 'ant production'LabKey says that Java module "was not compiled in production mode" even after 'ant production' TEXT_WITH_LINKSClosed     LabKey Support Forum
Glad your module is working now.

Alternatively, rather than manually setting it, you can also do an "ant clean" and then an "ant production" to get this to work.

When you do an "ant build", then "ant production", that reuses development-style artifacts that are already up-to-date, which can create that odd "was not compiled in production mode" message you saw.

Regards,

Jon
Jon (LabKey DevOps)2016-11-30 10:43Jon (LabKey DevOps)2018-11-16 23:23labkey.saveBatch fails when called from R transformation scriptlabkey.saveBatch fails when called from R transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I was able to reproduce this problem successfully via your instructions in our Trunk build.

Do you recall when you eventually hit that BufferReader.readLine() stack? So far, my logs don't show that output after a good 10 minutes of waiting.

I'll also check and see if this problem occurs on 16.2 or not.

Regards,

Jon
Will Holtz2016-11-30 11:06Jon (LabKey DevOps)2018-11-16 23:24labkey.saveBatch fails when called from R transformation scriptlabkey.saveBatch fails when called from R transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for taking a look at this. I hit the readLine() call within a few seconds. However, I have noticed that if I:

1) put a breakpoint on the readLine() call
2) import into TestTrans1
3) hit the breakpoint
4) continue program execution
5) reload the import page (as it is now stuck)
6) import into TestTrans1 again

This second import never makes it to the readLine() breakpoint. I haven't poked around with this second submission case to see where it is getting stuck. But I'm guessing that when you didn't see the readLine() call for 10 minutes, you had already performed one failed import. Try restarting tomcat and import again and see if you hit the readLine() call quickly.

-Will
Jon (LabKey DevOps)2016-11-30 22:00Jon (LabKey DevOps)2018-11-16 23:23labkey.saveBatch fails when called from R transformation scriptlabkey.saveBatch fails when called from R transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Will,

I will give your instructions a try.

Interesting news is that I did try this on 16.2 and it worked without a problem, so there is something going on in 16.3 and in Trunk that has changed.

I'll run through your instructions and then have this reviewed by our developers to further investigate things.

Regards,

Jon
Jon (LabKey DevOps)2016-12-11 23:34Jon (LabKey DevOps)2018-11-16 23:23labkey.saveBatch fails when called from R transformation scriptlabkey.saveBatch fails when called from R transformation script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Sorry for the late response. I did manage to reproduce the issue fully and also confirm the same issue in the code. I've created https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=28711 to have this investigated further.

Thank you for your patience.

Regards,

Jon
Leo Dashevskiy2013-11-13 13:16Leo Dashevskiy2013-11-13 13:16Labkey revision 29447 does not go through the upgrade stageLabkey revision 29447 does not go through the upgrade stage TEXT_WITH_LINKSClosed     LabKey Support Forum
All good.
Ben Bimber2013-11-13 12:49Jon (LabKey DevOps)2018-11-16 23:23Labkey revision 29447 does not go through the upgrade stageLabkey revision 29447 does not go through the upgrade stage TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I believe that error is related to a fairly old SQL update script from one of our modules, which your local instance must be running. That constraint should have been created by EHR_ComplianceDB-0.00-11.20.sql, and later dropped in EHR_ComplianceDB-12.34-12.35.sql. I assume that's the script that's failing. I'm not sure why your instance would be in this state, but it sounds like that constraint was never created. I think there are a couple options:

1) Completely remove the EHR_ComplianceDB module from your local server. This would allow the server to start, since it would no longer try to run that SQL upgrade script. If you do this, once the server starts I would recommend going to the admin console, clicking on the 'Module Details' link (near Module Information). From this page, find EHR_ComplianceDB and pick the 'delete module and schema' option. This will drop that module, schema, and the other installation-related information stored in your DB. This means should you ever encounter that module again (like the next time you update from trunk), it should do a clean install, which is running normally.

2) If this is a dev machine, you could go into PG Admin and manually create that constraint along with any other missing SQL that was not run. This is sort of a hack and I would only ever try this on a dev machine. I also hesitate to try to go this route, since it might take some knowledge of the SQL upgrade scripts. I think the option above would be simpler and less prone to error.

-Ben
Leo Dashevskiy2013-11-13 13:12Jon (LabKey DevOps)2018-11-16 23:23Labkey revision 29447 does not go through the upgrade stageLabkey revision 29447 does not go through the upgrade stage TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben!

First approach worked like a charm.

EHR_ComplianceDB is in the 'Unknown Modules' list under 'Module Details' down at the bottom.

Besides it there is about a dozen more modules in the 'Unknown Modules' list.

Should I obliterate them all too?

-Leo
Ben Bimber2013-11-13 13:13Jon (LabKey DevOps)2018-11-16 23:24Labkey revision 29447 does not go through the upgrade stageLabkey revision 29447 does not go through the upgrade stage TEXT_WITH_LINKSClosed     LabKey Support Forum
That section is telling you about modules that at some point were installed, but are no longer present. I doubt it really matters one way or the other about force-deleting them.
Jon (LabKey DevOps)2017-09-08 10:55Jon (LabKey DevOps)2018-11-16 23:24LabKey Remote Java API downloadLabKey Remote Java API download TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

Thanks for bringing that to our attention.

I've attached the Remote Java API source code file for LabKey 17.2 below and will be working to correct that so both the docs and the source are provided for the future.

Thanks,

Jon
dennisw2017-09-08 11:30Jon (LabKey DevOps)2018-11-16 23:24LabKey Remote Java API downloadLabKey Remote Java API download TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon.
Jon (LabKey DevOps)2017-09-08 13:48Jon (LabKey DevOps)2017-09-08 13:48LabKey Remote Java API downloadLabKey Remote Java API download TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

I found out that we actually do have it published here:

https://www.labkey.org/Documentation/wiki-page.view?name=sourceCode

But I can see why it can be confusing to not see that referenced in the Server Build Page where you get the regular bits to download LabKey from.

I'll be updating the wiki that gets generated so in the future this source code link will be available there too.

Regards,

Jon
Jon (LabKey DevOps)2018-06-15 15:29Jon (LabKey DevOps)2018-11-16 23:23LABKEY.QueryWebPart.standardButtons documentation is out of dateLABKEY.QueryWebPart.standardButtons documentation is out of date TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I tested this back to 17.2 and it appears the insertNew hasn't worked since then. However, we had changed how we did the insertNew functionality to where it was layered with an individual row insert and a bulk insert, so I'm suspecting that this may have changed things.

The paging was changed as well, but sometime after 17.2.

I'll setup an investigative bug to confirm what needs to be changed here. Either our Javascript docs and other associated docs need to be revised with the correct information if these features were just changed or we will need to fix this in the code.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2018-06-15 15:59Jon (LabKey DevOps)2018-11-16 23:24LABKEY.QueryWebPart.standardButtons documentation is out of dateLABKEY.QueryWebPart.standardButtons documentation is out of date TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2019-08-23 09:10Jon (LabKey DevOps)2019-08-23 09:10LABKEY.QueryWebPart.standardButtons documentation is out of dateLABKEY.QueryWebPart.standardButtons documentation is out of date TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jill,

There doesn't appear to be any updates. I'll have this checked with our developers.

Regards,

Jon
Jon (LabKey DevOps)2019-09-25 15:18Jon (LabKey DevOps)2019-09-25 15:18LABKEY.QueryWebPart.standardButtons documentation is out of dateLABKEY.QueryWebPart.standardButtons documentation is out of date TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Everyone,

The bug https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=34562 has been resolved and verified, but there have been some changes made for 19.3

The fix here did the following:

1. Removed pageSize from the list of supported options
2. Code changes were made to be tolerant of undefineds being passed in.
3. Charts were added in.

In relation to the example that was used in the original post however isn't a good one to use though since the SiteUsers table that the above call is making doesn't utilize your typical Insert New button, but rather directs a user to a special Add Users page, which is why if you try to use the code example above, it will still generate an error message. That said, if you were to use a different table to view, such as a list, errors will not appear when the grid renders.

Regards,

Jon
jill payne2019-08-23 04:54jill payne2019-08-23 04:54LABKEY.QueryWebPart.standardButtons documentation is out of dateLABKEY.QueryWebPart.standardButtons documentation is out of date TEXT_WITH_LINKSActive     LabKey Support Forum
Hi everyone,

Just checking to see if there was an update on this one? I'm running into this as well as I try to customize the button bar on a Query Web Part I'm setting up...

Thanks,
Jill
jeckels2012-03-02 16:47Jon (LabKey DevOps)2018-11-16 23:24LABKEY.QueryWebPart and config.metadataLABKEY.QueryWebPart and config.metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lloyd,

I'm sorry the documentation isn't clear. It's expecting the actual XML as a string, like you've done in the first line under the metadata property. It looks like you have the right top-level XML element as well. An example might be:

'<tables xmlns="http://labkey.org/data/xml"><table tableName="Announcement" tableDbType="NOT_IN_DB"><columns><column columnName="Title"><columnTitle>Custom Title</columnTitle></column></columns></table></tables>'

I'm not sure if you're tried it this way already, but the value for the "metadata" property should be a single object, not an array.

I'll update the JavaScript API documentation to provide more details. It'll be part of the 12.1 docs.

Thanks,
Josh
Lloyd2012-03-05 14:38Jon (LabKey DevOps)2018-11-16 23:23LABKEY.QueryWebPart and config.metadataLABKEY.QueryWebPart and config.metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

I believe that I did what you said, used the first style and removed the [] so that it was not part of an array. I also used a known good xml and copied it into the xml string, but got this response: Module-based queries are read-only!

    var xml = '<tables xmlns="http://labkey.org/data/xml">...</tables>';
    var reportGrid = new LABKEY.QueryWebPart({
                renderTo: 'report',
                frame: 'none',
                containerPath: '/xxxx/module', // fill this in with the actual container path
                schemaName: 'schema',
                queryName: 'myQuery',
                metadata:
                           {type: 'xml', value: xml} // using xml specified as a variable
                           //{type: 'xml', value: 'test.query.xml'} // using queries/schema/test.query.xml
                           //{type: 'xml', value: 'test'} // using queries/schema/test.query.xml
                           
                ,
                buttonBarPosition: 'top',
                allowChooseQuery: false,
                allowChooseView: false
    });

Lloyd
kevink2012-03-07 16:19Jon (LabKey DevOps)2018-11-16 23:24LABKEY.QueryWebPart and config.metadataLABKEY.QueryWebPart and config.metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
It looks like we have some issues when applying the metadata xml to file-based queries and to list tables. Thanks for reporting the issue -- I've filed a new bug:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=14258
Leo Dashevskiy2013-05-16 14:22Leo Dashevskiy2013-05-16 14:22LABKEY.Query.selectRows( ) not respecting the columns config option or ?LABKEY.Query.selectRows( ) not respecting the columns config option or ? TEXT_WITH_LINKSClosed     LabKey Support Forum
I see, thanks Kevin! (Will remove the DISTINCT, seems like it's a left-over from when the PK RowId was not present...)
Leo Dashevskiy2013-05-16 12:52Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.selectRows( ) not respecting the columns config option or ?LABKEY.Query.selectRows( ) not respecting the columns config option or ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Any input on this, guys?
kevink2013-05-16 13:58Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.selectRows( ) not respecting the columns config option or ?LABKEY.Query.selectRows( ) not respecting the columns config option or ? TEXT_WITH_LINKSClosed     LabKey Support Forum
You are getting both columns in this case because we always include the PK columns in the query response, even it if isn't asked for. If the columns array was only "FileId", you'd only see the FileId column in the response.

Using DISTINCT on this query is a little funny since the pair of columns will always be unique since RowId is the PK.
Maya Li2011-11-28 15:43Maya Li2011-11-28 15:43Labkey.Query.insertRows throws null value exception for primary keyLabkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed     LabKey Support Forum
I solved the problem by fluke, without understanding what is really happening. In the original schema definition, specimenrequirements table primary key m_requirementid is not defined with "NOT NULL". It was added as a constraint implicit with the primary key definition. When I went back to redefine the database table to include "NOT NULL" explicitly, I was able to make the LabKey.query.insertRows call work. The similar problem in the editorGrid's add record button also went away.

I will close this issue for now but I would love to hear if anyone has a good explanation for this strange behavior.
Maya Li2011-11-28 23:33Maya Li2011-11-28 23:33Labkey.Query.insertRows throws null value exception for primary keyLabkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Matt. I will try to use those column elements if this happens again for a quicker fix (I had to rebuild my schema this time, unfortunately.) . I did try setting IsAutoInc, which did not solve the issue.

Ben, I am sorry that I must have confused you. The SQL script that I included in my first message was from my PgAdmin, which added "not null" automatically since m_requirementid is defined as a primary key. If you would be willing to try the example again, leaving the "not null" out for m_requirementid, you may be able to replicate my problem. I will look out for AI in the schema browser next time. I believe I did see it but I cannot confirm.

Thanks again for your responses.
Maya Li2011-11-29 11:28Maya Li2011-11-29 11:28Labkey.Query.insertRows throws null value exception for primary keyLabkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed     LabKey Support Forum
I am using Postgres 9.0.4.
Matthew Bellew2011-11-28 17:31Matthew Bellew2011-11-28 17:33Labkey.Query.insertRows throws null value exception for primary keyLabkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed     LabKey Support Forum
This is very strange behavior. I'll take a look as soon as I have a second. My guess is that the code does not realize that m_requirementid is a serial.

I should know, but I'm not sure how this is reported by JDBC. I do know that there is a way to specify this in the schema xml.

        <ns:datatype>serial</ns:datatype>
        <ns:isAutoInc>true</ns:isAutoInc>
        <ns:isReadOnly>true</ns:isReadOnly>
        <ns:isKeyField>true</ns:isKeyField>
Matthew Bellew2011-11-29 11:23Matthew Bellew2011-11-29 11:23Labkey.Query.insertRows throws null value exception for primary keyLabkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed     LabKey Support Forum
I could not repro either way. I suspect the problem is not related to "NOT NULL". What version of postgres are you using?
sadcat@u.washington.edu2012-02-23 16:50Jon (LabKey DevOps)2018-11-16 23:23Labkey.Query.insertRows throws null value exception for primary keyLabkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed     LabKey Support Forum
I am afraid this error is raising its ugly head again (I am working with Maya's code, except for the database is MSSQL server now). The code for table creation is below, when I try to insert a row, I get an error:
Value for key field 'm_studyid' was null or not supplied!"

When I look at the table in Schema Browser, m_studyid does come up as PK, but not AK (AutoIncrement)? If this is the problem, how do I create the table so that it is indeed recognized as an autoincrementing row?

Thanks!
X
 
Table creation code:
CREATE TABLE litterbox.study
(
 m_studyID BIGINT PRIMARY KEY IDENTITY(1,1) NOT NULL,
 CBR_StudyID varchar(50) unique,
 repository bigint,
 study_title varchar(50),
 study_PI userid,
 pickup_delivery_contact userid,
 pickupAfter5 bit,
 holdSampleOverNight bit,
 collection_start date,
 collection_end date,
 consentForm bigint,
 container entityid ,
 entityid entityid,
 createdby userid ,
 created datetime,
 modifiedby userid ,
 modified datetime,
 -- CONSTRAINT PK_Study PRIMARY KEY (m_studyID),
 CONSTRAINT FK_StudyRepo FOREIGN KEY (repository) REFERENCES
litterbox.repository(m_repoID),
 CONSTRAINT FK_study_consent FOREIGN KEY (consentForm) REFERENCES
litterbox.consentForm(formID)

);
jeckels2012-02-24 17:28Jon (LabKey DevOps)2018-11-16 23:24Labkey.Query.insertRows throws null value exception for primary keyLabkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Xenia,

Looking at the relevant code, it looks like we're specifically checking for the INT column type on SQLServer when determining if it's autoincrement. We should improve our detection code, but if you can at least temporarily use INT instead, the server should pick it up.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=14136

Thanks,
Josh
Ben Bimber2011-11-28 17:41Ben Bimber2011-11-28 17:41Labkey.Query.insertRows throws null value exception for primary keyLabkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed     LabKey Support Forum
Glad you got it working. I agree with Matt's explanation, although I'm not sure what's causing it for you. I tried made a module using your initial SQL (including 'not null'). I then used the following XML and insertRows worked. Here's the XML:

<ns:tables xmlns:ns="http://labkey.org/data/xml">
  <ns:table tableName="specimenrequirements" tableDbType="TABLE">
    <ns:columns>
      <ns:column columnName="m_requirementid"/>
      <ns:column columnName="studyid"/>
      <ns:column columnName="sequencenumber"/>
      <ns:column columnName="organ"/>
      <ns:column columnName="numtumorcases"/>
      <ns:column columnName="desirepairnormal"/>
      <ns:column columnName="numtissuesamples"/>
      <ns:column columnName="sizepertissuesample"/>
      <ns:column columnName="numbloodsamples"/>
      <ns:column columnName="volperbloodsample"/>
      <ns:column columnName="typeofblood"/>
      <ns:column columnName="mintumorperblock"/>
      <ns:column columnName="maxtumorperblock"/>
      <ns:column columnName="sourcesurgery"/>
      <ns:column columnName="sourcebiopsy"/>
      <ns:column columnName="transportmethod"/>
      <ns:column columnName="container"/>
      <ns:column columnName="entityid"/>
      <ns:column columnName="createdby"/>
      <ns:column columnName="created"/>
      <ns:column columnName="modifiedby"/>
      <ns:column columnName="modified"/>
    </ns:columns>
  </ns:table>
</ns:tables>

I didnt need to manually specify isAutoInc. There may be differences in our postgres versions or differences in how they report the column. I have seen problems in the past with PKs not being reported correctly, in which case I needed to manually specify it using XML.

If this happens again, the first thing I'd do is check the schema browser and see if this column has 'AI' (auto increment) under the attributes for that field.
Ben Bimber2011-11-29 06:03Ben Bimber2011-11-29 06:03Labkey.Query.insertRows throws null value exception for primary keyLabkey.Query.insertRows throws null value exception for primary key TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Maya,

It didnt seem to make a difference either way. let us know if you run into something similar in the future.
Matthew Bellew2010-06-08 10:47Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
I want to look at this more carefully to see how the error handling works.

But I know it's common to reserve onError() for problems with the network or authentication, while onSuccess() handles the case where the server received/understood/responded to the request, regardless of whether the request generated an 'expected' error or not.

The json response should have an errors collection that indicates whether there were handled problems with the request.

I want to learn more about this anyway, so I'll look a little closer.
Matthew Bellew2010-06-08 13:32Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
I tried to reproduce this with a list and a required field. I found that my errorCallback was being called when a required field was not provided.

Can you elaborate on your scenario? Was it a list, dataset, etc... I'm guessing that you verified that the request worked when the required value was provided (e.g. no other problems)

matt
Ben Bimber2010-06-08 14:07Jon (LabKey DevOps)2018-11-16 23:23LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
i was using the following. i originally used 'id' instead of 'employeeId' for my field name. correcting this fixed the problem and caused records to insert correctly. even with the incorrect name, the success function was still being called. it's a regular labkey list.

        LABKEY.Query.insertRows({
             containerPath: '/WNPRC/WNPRC_Units/Animal_Services/Compliance_Training/Private/EmployeeDB',
             schemaName: 'lists',
             queryName: 'CompletionDates',
             scope: this,
             rowDataArray: [{
                RequirementName: 'SOP Review'
                ,EmployeeId: LABKEY.Security.currentUser.displayName
                ,Date: new Date().format("Y-m-d")
                }],
             successCallback: function(){
                alert('Thank You for Reading Your SOPs. You have now completed your SOP requirements for the year.');
                var url = LABKEY.ActionURL.buildURL(
                    'Project',
                    'begin.view',
                    'home'
                    );

                window.location = url
             },
             failureCallback: function(errorInfo) {
                Ext.Msg.alert("Error:", errorInfo);
                }
            });
     }
Matthew Bellew2010-06-08 15:23Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
One problem is that insertRows() uses the errorCallback function not failureCallback. That might cause some confusion.

I see that the ClientAPI is not consistent about using errorCallback or failureCallback. We need to pick one and be consistent.
Ben Bimber2010-06-08 15:31Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
so that explains why failureCallbaback was not called; however, why was successCallback called? In that example, the alert would appear whether the record was actually inserted or not.
Matthew Bellew2010-06-08 15:55Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, I think I have it. I reproduced what you described where the successCallback is being called. This is because the insert worked. The insert through the ListQueryUpdateService does not seem to correctly enforce the required property. I confirmed that updating through the ui (list/insert.view) does enforce it.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10401
Ben Bimber2010-06-08 16:02Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. so you are saying there's two layers to enforcement of the required property? because no record is being inserted in the example above as far as i can tell (assuming you misspell the field name). i presume means that something rejects it.
Matthew Bellew2010-06-09 09:08Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
Hmm, it's odd that you're not seeing the row inserted. Are you sure the grid you're using to view whether the row is inserted isn't filtered by the current user?
Ben Bimber2010-06-09 09:13Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
it's not filtered. that code snip should insert into a different list than the one on the page. it guess it's possible some completely different reason fails the import?

all i know is that on our production server, running 10.1, the above code snip inserts a row if the correct field names are supplied, but does not insert a row when the 'EmployeeId' field is listed as 'Id'. In either event successCallback is called.
Matthew Bellew2010-06-09 09:29Jon (LabKey DevOps)2018-11-16 23:23LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, I assumed you were running 10.2. I will try this against 10.1 and see what happens there.
Matthew Bellew2010-06-09 10:29Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
Are any of these fields the primary key field, or are you using an auto-increment primary key?
Ben Bimber2010-06-09 10:34Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.insertRows call onSuccess when not actually successfulLABKEY.Query.insertRows call onSuccess when not actually successful TEXT_WITH_LINKSClosed     LabKey Support Forum
should be auto-incrementing. employeeId is a lookup to a different table for what it's worth. do you have an account on our server?
Nick Kerr2015-01-30 20:39Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.GetData.getRawData fails on assay domainsLABKEY.Query.GetData.getRawData fails on assay domains TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I think if you use an Array for the "schemaName" it should work correctly.

schemaName: ["assay", "General", "GeneralAssay"],

But it looks like we do not handle the string case properly for '.' delimited schemaName. Thanks for bringing that to our attention.

Thanks,
Nick
Will Holtz2015-01-31 09:17Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Query.GetData.getRawData fails on assay domainsLABKEY.Query.GetData.getRawData fails on assay domains TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Nick,

I was not aware of that format of schema specification. That did fix it for me.

thanks,
-Will
marki2011-05-04 10:20Jon (LabKey DevOps)2018-11-16 23:24labkey PIVOT syntax?labkey PIVOT syntax? TEXT_WITH_LINKSClosed     LabKey Support Forum
Steve will be adding something on Pivot SQL today. In the meantime I've attached a nice PowerPoint from Josh's API talk that includes that along with other developer-oriented features.
Ben Bimber2011-05-04 11:19Jon (LabKey DevOps)2018-11-16 23:24labkey PIVOT syntax?labkey PIVOT syntax? TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks everybody for this plus the emails. i should have what i need.
Jon (LabKey DevOps)2016-06-03 14:35Jon (LabKey DevOps)2018-11-16 23:23Labkey pivot query limitLabkey pivot query limit TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Kristen,

It's a little bit of Postgres, but it is also somewhat caused by the user.

Postgres has a hard limit of 1664 columns, so if you try to go past that in anyway, you will see the same error appear.

Generally, the best way to work this is to try and reduce the number of columns as you need.

Regarding your data, do you need to have all 2000 columns listed?

Regards,

Jon
klutz2016-06-15 11:07Jon (LabKey DevOps)2018-11-16 23:24Labkey pivot query limitLabkey pivot query limit TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Yes, it is very important to have all 2000 columns listed in order to share the data with our researchers, and it would be very nice to have the ability to have more than 2000 actually.

-Kristen
Jon (LabKey DevOps)2016-06-16 00:51Jon (LabKey DevOps)2018-11-16 23:24Labkey pivot query limitLabkey pivot query limit TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Kristen,

Unfortunately, this is something that is outside of our control since this is a database limit with Postgres. You could potentially have the data split between two tables to where one table has some columns and another table has the rest, then use a join to get the two tables together in a single query, but even that query would be subjected to the 1664 column limit as well since it is a postgresql limitation. The only other possibility is to switch databases and use a Microsoft SQL database instead. According to Microsoft's website, a non-wide table would only allow 1024 columns, but a wide table would be able to take 30,000 and their select statements can pull in 4069 columns.

https://msdn.microsoft.com/en-us/library/ms143432.aspx

Regards,

Jon
jeckels2016-06-17 09:54Jon (LabKey DevOps)2018-11-16 23:24Labkey pivot query limitLabkey pivot query limit TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Kristen,

Can you describe how you're hoping to present this wide data set? Typically a 2000+ column table isn't very pleasant to scroll around inside of a web browser. Perhaps there are some other strategies that could be used to generate the SQL for smaller sets of columns, while still allowing the user to have access to all of the data.

For example, it might be possible to construct the pivot such that it shows 200 columns at a time, and allow the user to "page" horizontally across the different sets of columns.

Thanks,
Josh
klutz2016-06-22 09:27Jon (LabKey DevOps)2018-11-16 23:23Labkey pivot query limitLabkey pivot query limit TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

We plan to create a wide data set from integrated long tables for sharing.

So all that would really be required is the download function, and the ability to add filters.

I am not sure how you can construct a table to page though, but that sounds like a good potential solution.

Best,
Kristen
Jon (LabKey DevOps)2016-06-24 10:44Jon (LabKey DevOps)2018-11-16 23:24Labkey pivot query limitLabkey pivot query limit TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Kristen,

It sounds like a custom module would be the best option here since you would be able to code it as you need.

https://www.labkey.org/home/Documentation/wiki-page.view?name=simpleModules

To stay under the SQL column limits, you will most likely need to setup multiple tables to only hold a certain number of columns, but have each table utilize the same primary key value so a JOIN will tie the tables together.

Then with Josh's idea, your pagination would consist of querying one or more tables respectively.

A custom module will also allow you to develop your own download function as well. As for filters, the pagination query idea from above would have to incorporate the filtering as well.

Regards,

Jon
Will Holtz2016-01-19 12:49Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Message.sendMessage HTML encoding bugLABKEY.Message.sendMessage HTML encoding bug TEXT_WITH_LINKSClosed     LabKey Support Forum
I should probably add that in the DOM that I gave above, the 'A' tag in '<a href="http://labkey.org" target="_blank">labkey.org</a>' part was added by Gmail...

-Will
Jon (LabKey DevOps)2016-01-21 17:08Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Message.sendMessage HTML encoding bugLABKEY.Message.sendMessage HTML encoding bug TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

According to our developers, this was caused by revision r40111 which was supposed to consolidate HTML filtering. This has been corrected and will be bundled in the 16.1 release.

If you do need this sooner, feel free to download the development trunk build we have out here:

https://teamcity.labkey.org/repository/download/bt127/298417:id/community/LabKey16.1Dev-42003.977-community-bin.zip

Regards,

Jon
Ben Bimber2011-08-31 11:20Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Message.sendMessage and a reply address that doesnt existLABKEY.Message.sendMessage and a reply address that doesnt exist TEXT_WITH_LINKSClosed     LabKey Support Forum
actually i might have misdiagnosed that. the inability to determine the site's email from the client/validation script is still an annoying limitation though. for the EHR i ended up creating a table called 'module_properties' where i tuck info like that. not the best solution though.
Ben Bimber2011-08-31 11:36Jon (LabKey DevOps)2018-11-16 23:23LABKEY.Message.sendMessage and a reply address that doesnt existLABKEY.Message.sendMessage and a reply address that doesnt exist TEXT_WITH_LINKSClosed     LabKey Support Forum
nope, the original diagnosis was right. appears the 'from' email needs to match a site user.

if true, this brings a question. i assume the restriction on emails is so the API cant be exploited. however, does this mean any site user could in theory send out emails that appear to have been sent from any other site user? are there restrictions on who can be sending emails from who's email?
jeckels2010-09-02 16:44Jon (LabKey DevOps)2018-11-16 23:24labkey menu logs to console?labkey menu logs to console? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Probably not. I haven't been able to repro the behavior though. What menus are causing it for you? I don't see any when using a QueryWebPart's View or Page Size menu, the Admin menu in the upper right, etc.

Thanks,
Josh
kevink2013-02-06 08:41Jon (LabKey DevOps)2018-11-16 23:23Labkey Java client library questionLabkey Java client library question TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, no. We haven't created a pom for our client api jar yet. I'd love to convert our build to use ant+ivy or gradle to fetch dependencies, but we haven't gotten around to it.
Jon (LabKey DevOps)2018-02-12 13:50Jon (LabKey DevOps)2018-02-12 13:50Labkey github asks for passwordLabkey github asks for password TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

The LabKey Biologics module is not available in the Community Edition and requires a Premium Edition of LabKey.

If you are interested in the Biologics features, please contact us here (https://www.labkey.com/about/contact/) or send us an email to info@labkey.com for more information.

Regards,

Jon
Jon (LabKey DevOps)2015-09-16 20:47Jon (LabKey DevOps)2018-11-16 23:24Labkey folder tabs are not responsiveLabkey folder tabs are not responsive TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

Is it a requirement that each tab has such a long name? Have you tried to have shorter names to allow yourself to have more tabs available (and accessible) on the page?

Regards,

Jon
alx dobre2015-09-17 01:59Jon (LabKey DevOps)2018-11-16 23:23Labkey folder tabs are not responsiveLabkey folder tabs are not responsive TEXT_WITH_LINKSClosed     LabKey Support Forum
Of course if I create shorter names it will fit on the page, I have resorted to that atm. but that's not the point.

I was thinking of using a custom css to overwrite the nav-tabs class to make it responsive, but if I use it I need to figure out an automated way to deploy it :)
Jon (LabKey DevOps)2015-09-17 14:13Jon (LabKey DevOps)2018-11-16 23:24Labkey folder tabs are not responsiveLabkey folder tabs are not responsive TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

I just wanted to make sure that all options were considered and didn't want you to have to do any additional work if it wasn't necessary.

So you can use custom CSS as well and that CSS file can be applied via the Resources tab on Look and Feel Settings under Admin > Site > Admin Console > Look and Feel Settings.

https://www.labkey.org/wiki/home/Documentation/page.view?name=customizeLook

Regards,

Jon
slangley@scharp.org2017-03-07 10:07slangley@scharp.org2017-03-07 10:07LABKEY.Filter.Types and isTableWise attributeLABKEY.Filter.Types and isTableWise attribute TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the info.

Scott
Jon (LabKey DevOps)2017-03-07 01:05Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Filter.Types and isTableWise attributeLABKEY.Filter.Types and isTableWise attribute TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Looking at the code, it actually appears that it focuses on whether the search functionality searches across all columns or not.

So if you return TRUE, it allows it to search across all columns, otherwise a FALSE limits the search to only one specific column you designate.

Regards,

Jon
Nick Kerr2017-03-07 09:52Jon (LabKey DevOps)2018-11-16 23:24LABKEY.Filter.Types and isTableWise attributeLABKEY.Filter.Types and isTableWise attribute TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Yes, Jon is correct. Up until 16.3 all of our filtering operations were "column-wise", meaning they were associated with a specific column on which to perform the operation. In 16.3 we introduced a couple of new filters that operated on a table rather then a column, these are "table-wise".

I assume your self-defined types are "column-wise" so you can return false for isTableWise().

Thanks,
Nick
Leo Dashevskiy2013-03-30 11:18Leo Dashevskiy2013-03-30 11:18LABKEY.ext.Store.load() failing when a large filter is appliedLABKEY.ext.Store.load() failing when a large filter is applied TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick has provided a patch for Store.js, which seems to fix my issues.

Hopefully, it will appear on the trunk soon.
Nick Kerr2013-03-27 23:05Jon (LabKey DevOps)2018-11-16 23:23LABKEY.ext.Store.load() failing when a large filter is appliedLABKEY.ext.Store.load() failing when a large filter is applied TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

It looks like you are running into a URL that is being generated which is too long for the browser/server to handle (generally > 2000 characters).

I've opened an issue for this to be handled in how we generate requests using the Store which can be tracked here:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=17514

Thanks for posting,
Nick
Leo Dashevskiy2013-03-28 00:00Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.Store.load() failing when a large filter is appliedLABKEY.ext.Store.load() failing when a large filter is applied TEXT_WITH_LINKSClosed     LabKey Support Forum
Interesting.

So the mechanism is different, when the filters are specified right away in a filterArray config as compared to the filters being set via the setUserFilters() call?
Because, like I said, seems to work for the first case.

(To be fair, I think, this use case is a bit out of the ordinary as compared to our regular usage, but nonetheless...)
jeckels2013-03-28 07:38Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.Store.load() failing when a large filter is appliedLABKEY.ext.Store.load() failing when a large filter is applied TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

That's correct. Behind the scenes, one uses GET parameters, which end up on the URL and are subject to the limit. The other uses POST parameters, which are not limited. It's something of an implementation quirk that they're handled differently like this, but it's currently how the server distinguishes between the two sets of filters.

Thanks,
Josh
Leo Dashevskiy2013-03-28 09:20Jon (LabKey DevOps)2018-11-16 23:23LABKEY.ext.Store.load() failing when a large filter is appliedLABKEY.ext.Store.load() failing when a large filter is applied TEXT_WITH_LINKSClosed     LabKey Support Forum
I see, well, that's not too cool :)
Will be waiting for that update, I guess...
Leo Dashevskiy2012-05-17 11:38Leo Dashevskiy2012-05-17 11:38LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Works rather well, thanks Ben (I was missing the (re)load call...)
Leo Dashevskiy2012-06-04 11:27Leo Dashevskiy2012-06-04 11:27LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, Ben, that makes sense. Thanks.
Leo Dashevskiy2013-01-16 13:31Leo Dashevskiy2013-01-16 13:31LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
The "/" in the column name parameter in the LABKEY.Filter.create() call should not be used, it should instead by replaced by "$S".
Ben Bimber2012-05-16 19:08Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
hi leo,

the Ext3 LabKey store doesnt provide a convenient public method to dynamically change the filter. as you found, there's a private method where you can set userFilters, which appears expect a similar array as the filterArray you can provide when you create the store. i havent tested this, but it looks like these will get re-applied each time the store loads. because this isnt part of the public API future stability is not guaranteed; however, i think this pattern should work:

var store = new LABKEY.ext.Store({....});
store.setUserFilters([LABKEY.Filter.create('myColumn', 'leo', LABKEY.Filter.TYPES.EQUAL)]); //use the same sort of filterArray as with the store itself
store.load(); //reload store so filters are applied
Leo Dashevskiy2012-05-30 11:43Jon (LabKey DevOps)2018-11-16 23:23LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
So what exactly happens to the store, if in the call
 LABKEY.Filter.create(<columnName>, filesFilter.join(';'), LABKEY.Filter.Types.IN)

the filesFilter array is empty and hence the passed in string is "" ?

Thanks.
-Leo
Leo Dashevskiy2012-06-01 15:16Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Not sure if my latest question in this thread "fell through the cracks" or not...

So I will attempt to answer it myself and you guys tell me, if it is right or not:

if an empty string '' is passed as a parameter into the creation of a Labkey filter object call with filter type IN, then such a filter filters out (somehow) all of the records in the store...

This is from my experience while dealing with it, I am not sure how/why it does that...
Ben Bimber2012-06-01 15:21Jon (LabKey DevOps)2018-11-16 23:23LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

What I bet is happening is that this is getting interpreted as <columnName> IN (null). if none of your values are null, that would filter them all out. does this match what you see?
Leo Dashevskiy2013-01-11 13:28Jon (LabKey DevOps)2018-11-16 23:23LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hm, this question might be relevant all over again.

The approach recommended by Ben above does NOT seem to work anymore for 12.3, namely:

var strFilteredTable = new LABKEY.ext.Store({ sql: ... });
filterArrayToApply.push(
                    LABKEY.Filter.create(
                        <column name>,
                        <values separated by ;>,
                        LABKEY.Filter.Types.IN
                    )
                );

strFilteredTable.setUserFilters(filterArrayToApply);
strFilteredTable.load();

the filters are set, but the store's data itself does not get filtered.

Please, help!
Nick Kerr2013-01-11 14:18Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Leo,

Seems to work for me. Have you touched the proxy or any other listeners on the store?

Also, just a minor thing it is 'LABKEY.Filter.Types.EQUAL' as you get an error with what you typed.

My repro:

var store = new LABKEY.ext.Store({ schemaName : 'core', queryName : 'users' });
store.load();
// see count after loaded using store.getCount()
store.setUserFilters([LABKEY.Filter.create('displayName', <your displayname>, LABKEY.Filter.Types.EQUAL)]);
store.load();
// now see count -- should be only the record(s) with that display name.

Thanks,
Nick
Nick Kerr2013-01-11 14:20Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Also, check to see that the store is actually making the request to selectRows.view and see what the filter parameters are being used if it is being called. This should happen each time store.load() is called.
Leo Dashevskiy2013-01-11 15:26Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Updated example that uses slashes for the query column names:

var strFilteredTable = new LABKEY.ext.Store({
            autoLoad: true,
            schemaName: 'flow',
            sql: 'SELECT DISTINCT FCSFiles.Name AS "File/Name" FROM FCSFiles WHERE FCSFiles.Run.FCSFileCount != 0 AND FCSFiles.Run.ProtocolStep = \'Keywords\''
        });

then try filtering on some file name values:

strFilteredTable.setUserFilters([LABKEY.Filter.create("File/Name", "file1.fcs;file2.fcs", LABKEY.Filter.Types.IN)])

strFilteredTable.load()


For the old server, it works, and for the new one it does not (as of 1/16, revision 24056)!
Nick Kerr2013-01-14 16:55Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.Store and filtersLABKEY.ext.Store and filters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Thanks for looking into this. I've been able to reproduce what you found and I've entered an issue to track the investigation.

Issue: https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=16941

In brief, the "filterArray" parameter is not respected by the server when using LABKEY.Query.executeSql.

Thanks,
Nick
Leo Dashevskiy2012-05-29 16:02Leo Dashevskiy2012-05-29 16:02LABKEY.ext.StoreLABKEY.ext.Store TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks, Kevin!
Leo Dashevskiy2012-05-31 18:32Leo Dashevskiy2012-05-31 18:33LABKEY.ext.StoreLABKEY.ext.Store TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, so I figured it out:
as I suspected, just changing out .sql config property does not work as the proxy that loads the data does not look at it, it looks at the .baseParams.sql var instead! (and it gets its value at creation from the initial config .sql one, but never gets updated if the .sql gets changed).

So on my end the change was to add storeTable.baseParams.sql = 'new-SQL-statement-to-fetch-the-new-data';
and it worked, but I suppose to simplify things for devs in the future, it would make sense to keep them in sync before the request is made and so may be, as Kevin suggested, it is warranted to file a bug on this one - I am not 100% sure, where to stick the fix though, but may be, this.baseParams.sql = config.sql should be added to the onBeforeRequest func.

If a bug is opened, please, let me know, when the fix is available so that I can remove the extra statement in my code.

Thanks.
kevink2012-05-29 15:02Jon (LabKey DevOps)2018-11-16 23:23LABKEY.ext.StoreLABKEY.ext.Store TEXT_WITH_LINKSClosed     LabKey Support Forum
We don't do anything special in the LABKEY.ext.Store for unique values. You may be able to use the filterBy method on Ext.data.Store to filter the values to only unique records. The underlying store data won't be changed.
Leo Dashevskiy2012-05-31 15:38Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.StoreLABKEY.ext.Store TEXT_WITH_LINKSClosed     LabKey Support Forum
What is the correct way to refresh/refetch the data in a LABKEY.ext.Store after the corresponding sql config option was changed?

And neither .reload() nore .load() seem to produce the result I'm after...

Thanks.
Ben Bimber2012-05-31 15:51Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.StoreLABKEY.ext.Store TEXT_WITH_LINKSClosed     LabKey Support Forum
store.load() is usually the right way to do that. that should force the store to re-query the records, with the caveat that any changes you may have made to these records on the client will be lost.
Leo Dashevskiy2012-05-31 16:45Jon (LabKey DevOps)2018-11-16 23:24LABKEY.ext.StoreLABKEY.ext.Store TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben!

Couple of minutes before you posted your answer, I edited my question to include that it seems to me that neither load() nor reload() work properly.

Is your answer 100% and I should look for a buggy approach in my code?

So actually, here are my additional questions:

suppose load() does load from the db the new data properly
am I correct to think that the data retrieval is asynchronous?
as soon as the new data is available I would like to do something with it
am I correct to use the store's load event listener for that or am I missing something?

and more over is it even possible/correct to do something like:

storeTable.sql = 'new-SQL-statement-to-fetch-the-new-data';
?
seems like it is not working: if autoLoad is true and there is an init sql config on the store, then it does not get modified; if autoLoad is false, then seems like this sql config is not set by the statement above as the load() call results in the following error:

GET http://140.107.157.39:8080/labkey/query/Test%20Flow/executeSql.api?_dc=1338508670999&schemaName=flow&apiVersion=9.1 500 (Internal Server Error)

(this assuming I'm not goofing up somewhere...)
slangley@scharp.org2012-09-05 18:44Jon (LabKey DevOps)2018-11-16 23:24LabKey Ext JS 4 JavaScript APIsLabKey Ext JS 4 JavaScript APIs TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Nick.

Here's an even more detailed Ext JS 4 question then.

I have a proxy configured like so based on your code in the DataViewsPanel.js of the study module:

    proxy : {
    type : 'ajax',
    url : LABKEY.ActionURL.buildURL('query','selectRows.api'),
    extraParams : {
        schemaName : 'atlas_psl',
        queryName : this.gridQueryName,
    },
    reader : {
        type : 'json',
        root : 'data'
    }
    },

This works but I want to modify the data returned from this query before it is rendered in the grid by adding an additional boolean column to each data row based on the contents of one of the returned data columns. That is, I'm going to take the value of one of the returned columns and execute another JavaScript function on it to generate a boolean true or false based on the characteristics of the the passed in value.

How would you recommend I do this?

Should I extend the Ext.data.reader.Json class and override the readRecords() function to throw in my code that generates this additional column?

Should I add a listener on the 'load' event of the Ext.data.Store and place my code there?

Or somewhere else?

I assume whether I should I add my new boolean column to the Ext.data.Model used by the Proxy and Store would depend on the answer to the above.

Thanks.

Scott
Ben Bimber2012-09-05 18:57Jon (LabKey DevOps)2018-11-16 23:23LabKey Ext JS 4 JavaScript APIsLabKey Ext JS 4 JavaScript APIs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

If you're willing to dig into it, I recommend making a custom reader. I think it will end up being a lot cleaner. You can pattern after the one used in LABKEY.ext4.Store, which is basically doing the same thing you need. You can also consider convert() on Ext.data.Field, which is also designed to do the sort of thing you describe:

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Field-cfg-convert

If you end up overriding the reader, I would suggest adding 'requiredVersion: 9.1' to extraParams, in order to return the results as ExtendedSelectRowsResults. This means it will include both a displayValue and value for each field. If you need to display these data, that might end up being important (lookups, for example).
slangley@scharp.org2012-09-07 13:59Jon (LabKey DevOps)2018-11-16 23:24LabKey Ext JS 4 JavaScript APIsLabKey Ext JS 4 JavaScript APIs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I tried overriding the reader and I think that would have worked except for my particular requirements. The function I use to generate a boolean on one of the returned fields needs to make another Ajax request to the server, in particular, the LABKEY.Security.getContainers() function. So I need for that function to finish and pass control to a callback before the reader.readRecords(data) returns its results. Unfortanately, reader.readRecords(data) doesn't want to wait around for that callback to finish. Perhaps if I used the "batching" mechanism of the Ext4 Proxy class I could have made it work there, but that looked a bit complicated.

So what I ended up doing was overriding the private onProxyLoad(operation) function of Ext.data.Store and deferred the execution of most of its statements to occur in the callback of my invocation of the LABKEY.Security.getContainers() function, after first modifying the passed-in records.

If you have more suggestions, let me know.

Thanks.

Scott
Ben Bimber2012-09-07 14:07Jon (LabKey DevOps)2018-11-16 23:24LabKey Ext JS 4 JavaScript APIsLabKey Ext JS 4 JavaScript APIs TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Is there any way to avoid needing that separate AJAX request per row? I dont know much about the source data, but if it's SQL based, could you end up w/ a query that joins in the container-related information? If you do need this second AJAX call, it seems like it would be better to do the first query, process it, then do a single second request that gets the other information all at once.

It would help to know more about the application, but it may not be worth digging this deeply into the store. You could in theory do 1 request to get the initial JSON, do whatever conversion you need, then create a simple ArrayStore or JsonStore with the result. If you plan to do commits then the store/proxy/reader is probably your best option. if you're just reading then I think it may not be worth it.
slangley@scharp.org2012-09-07 14:17Jon (LabKey DevOps)2018-11-16 23:24LabKey Ext JS 4 JavaScript APIsLabKey Ext JS 4 JavaScript APIs TEXT_WITH_LINKSClosed     LabKey Support Forum
For our app, we want to identify whether the user has read permission on a set of atlas folders - one folder for each protocol - and then display the list of readable protocols as rows in a grid panel to the user. I was able to do this in one query by passing an array with all the container folders to the LABKEY.Security.getContainers() function.

Yes, building up an ArrayStore first to pass into the grid seems like a good alternative. That would avoid the "fragility" of overriding a private method of Ext.data.Store.

And fortunately, we don't have do support modify/saving any records from this grid.

Scott
Ben Bimber2012-09-07 14:26Jon (LabKey DevOps)2018-11-16 23:24LabKey Ext JS 4 JavaScript APIsLabKey Ext JS 4 JavaScript APIs TEXT_WITH_LINKSClosed     LabKey Support Forum
hi scott,

i havent tested this, but it's possible you can do your permission testing in SQL using a single filtered query. If the table with the protocols has a container column, LabKey may even do this filtering for you. Otherwise, perhaps you could join the source table to core.containers, then filter on 'container/name is not null' (b/c LabKey would not allow the user to view any records on core.containers where they dont have read permission). not sure if it would work in your case, but something that might be worth considering.
Andy Straw2015-03-10 13:41Jon (LabKey DevOps)2018-11-16 23:24LabKey development in EclipseLabKey development in Eclipse TEXT_WITH_LINKSClosed     LabKey Support Forum
I use Eclipse, and have created a set of .project and .classpath files for LabKey 14.3 source - at least for the server/api, server/internal, remoteapi, server/modules/experiment, and server/modules/study. I've attached those as a zip file. I've also attached the PDF version of two wiki pages I wrote that explain 1.) how to use the .project and .classpath files, and 2.) details of how those project and classpath files were created in the first place, in case you care.

I can't guarantee that these will work for you, but you can try them, and perhaps adjust them if they don't work quite right.

I ran into a couple of issues with the LabKey source in these Eclipse projects: 1.) there are two different LogPrintWriter.java files, one in server/api and one in server/internal and 2.) Eclipse gives a compile error for one return value that javac does NOT consider an error. I just ignore these - I don't use Eclipse to build the LabKey source, just to write code that uses it, like external Java apps that use remoteapi project and Java-based modules that use the server/* projects.

I'm happy to answer questions about these.

Andy Straw
University of Rochester
Andy Straw2015-03-10 13:54Jon (LabKey DevOps)2018-11-16 23:23LabKey development in EclipseLabKey development in Eclipse TEXT_WITH_LINKSClosed     LabKey Support Forum
Regarding debugging a running LabKey instance, that's pretty straightforward. I might miss a step here, so let me know if this doesn't work for you.

- Start your tomcat instance with the jpda command-line option. For example, I use this command line:

catalina.sh jpda start


- Tomcat will start up with its JVM listening to a configured port for debugging commands. I think the default is port 8000 - at least, that's the port I use.
- In Eclipse, create a new Debug Configuration. Make it a "Remote Java Application". Name it whatever you want. On the "Connect" tab of that configuration, enter the host (mine is "localhost") and the port that the tomcat JVM is listening on (8000 for me). Hit "Apply" to save that configuration. Then hit "Debug" to start debugging.
- You can set breakpoints in the LabKey source, or if you're writing your own Java modules, you can set breakpoints in your source.

That's it.

Andy
bront@kcr.uky.edu2015-03-10 14:00Jon (LabKey DevOps)2018-11-16 23:23LabKey development in EclipseLabKey development in Eclipse TEXT_WITH_LINKSClosed     LabKey Support Forum
Andy,

Thanks for such a quick response. I will pass your info on to our new developer and let you know if we have any other questions.

cheers,

bront
adam2015-03-14 11:11Jon (LabKey DevOps)2018-11-16 23:24LabKey development in EclipseLabKey development in Eclipse TEXT_WITH_LINKSClosed     LabKey Support Forum
Good stuff... thanks for sharing this with the community, Andy.

Josh removed the second LogPrintWriter a couple weeks ago on trunk (SVN commit 36901), which should eliminate that annoyance.

I'm curious about your comment "Eclipse gives a compile error for one return value that javac does NOT consider an error"... what return value is that?

Thanks,
Adam
jeckels2015-03-14 20:03Jon (LabKey DevOps)2018-11-16 23:24LabKey development in EclipseLabKey development in Eclipse TEXT_WITH_LINKSClosed     LabKey Support Forum
Eclipse had a different interpretation of the inferred generic type for the getNamePDs() method in server/modules/experiment/src/org/labkey/experiment/DerivedSamplePropertyHelper.java. While I consider javac to be the ultimate authority here, there was a reasonable (and arguably better) return type that cleared up the problem in Eclipse, which I made in revision 36901 in the trunk.

Thanks,
Josh
lewis j mcgibbney2015-03-16 11:42Jon (LabKey DevOps)2018-11-16 23:23LabKey development in EclipseLabKey development in Eclipse TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Folks,
I recently started working on Labkey and I think that having the documentation attached here would be extremely useful for Eclipse users.
Thanks to Andy for attaching this.
Lewis
Jon (LabKey DevOps)2016-02-08 18:45Jon (LabKey DevOps)2018-11-16 23:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

That's odd. I pretty much ran the same query on a list without issue. The output shows what records got deleted when I run it:

=========
> deldata2 <- labkey.deleteRows(
+ baseUrl="https://www.labkey.org",
+ folderPath="/Support Tickets/Dashboards/JonY",
+ schemaName="lists",
+ queryName="ListTest",
+ toDelete=data.frame(Key=c(2,3,4), stringsAsFactors=FALSE)
+ )
> deldata2
$rowsAffected
[1] 3

$queryName
[1] "ListTest"

$schemaName
[1] "lists"

$containerPath
[1] "/Support Tickets/Dashboards/JonY"

$rows
$rows[[1]]
$rows[[1]]$EntityId
[1] "0ac6dd24-bca7-1032-80ef-e5ac46246e24"

$rows[[1]]$Check
[1] FALSE

$rows[[1]]$Key
[1] 2

$rows[[1]]$Name
[1] "Frank"


$rows[[2]]
$rows[[2]]$EntityId
[1] "f5af4afa-bf8a-1032-80ef-e5ac46246e24"

$rows[[2]]$Check
[1] TRUE

$rows[[2]]$Key
[1] 3


$rows[[3]]
$rows[[3]]$EntityId
[1] "26e52ba1-d663-1032-b44e-e5ac46241b3e"

$rows[[3]]$Check
[1] FALSE

$rows[[3]]$Key
[1] 4


$command
[1] "delete"
>
=======

So that $rows section of yours should show the actual records being deleted rather than list().

Is that Peptide field the Primary Key for your list?

Regards,

Jon
laurapas2016-02-09 11:16Jon (LabKey DevOps)2018-11-16 23:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,
No, peptide is not a primary key. Is that a requirement? It doesn't say so in the documentation. Also, it doesn't seem that I can make peptide a primary key; there is no option to have a non-integer primary key in the list design interface. If I try to use the default primary key (from the list design) called 'Key', that doesn't work either.

labkey.deleteRows(baseUrl="https://labkey-dev.roche.com:8443/labkey",
                  folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
                  schemaName="lists",
                  queryName="QuaSAR_AuDIT",
                  toDelete=data.frame(Key=c(1:3000),
                                      stringsAsFactors = FALSE)
                  )

$rowsAffected
[1] 3000

$queryName
[1] "QuaSAR_AuDIT"

$schemaName
[1] "lists"

$containerPath
[1] "/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results"

$rows
list()

$command
[1] "delete"


Can you tell me the specific list design requirements that would allow labkey.deleteRows to work?
laurapas2016-02-09 11:18Jon (LabKey DevOps)2018-11-16 23:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, what I mean to ask was whether toDelete requires a primary key in the data frame. Per my last response, a primary key is not working for my case.
Jon (LabKey DevOps)2016-02-09 20:00Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

For the deleteRows function to work, it has to at least use whatever would be the primary key for that table.

Can you go into the List Designer for that specific list and see what field is being used as the Primary Key value and whether it's an integer or a string value?

Regards,

Jon
laurapas2016-02-09 20:08Jon (LabKey DevOps)2018-11-16 23:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
The primary key is the default integer 'Key' and that does not work in toDelete when I try it. The list designer does not allow me to change the primary key to a string. I've tried just about everything. Are there any undocumented rules that I need to follow to allow toDelete to work?
Jon (LabKey DevOps)2016-02-09 21:19Jon (LabKey DevOps)2018-11-16 23:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

No, that should be it. If it's Key, then your query to delete is right.

Just curious, are you able to run a selectRows query and get results to view?

testSelectRows <- labkey.selectRows(
                  baseUrl="https://labkey-dev.roche.com:8443/labkey",
                  folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
                  schemaName="lists",
                  queryName="QuaSAR_AuDIT"
                  )

Also, have you tried to do a delete on a single row like this?

testDeleteRows <- labkey.deleteRows(
                  baseUrl="https://labkey-dev.roche.com:8443/labkey",
                  folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
                  schemaName="lists",
                  queryName="QuaSAR_AuDIT",
                  toDelete=data.frame(Key=1, stringsAsFactors = FALSE)
                  )

Regards,

Jon
laurapas2016-02-10 10:53Jon (LabKey DevOps)2018-11-16 23:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Nope, labkey.deleteRows is not working. labkey.selectRows has always worked fine. I am using up to date packages and running from a Mac. Any ideas?

> todelete <- labkey.deleteRows(baseUrl="https://labkey-dev.roche.com:8443/labkey",
+ folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
+ schemaName="lists",
+ queryName="QuaSAR_AuDIT",
+ toDelete=data.frame(Key=1,
+ stringsAsFactors = FALSE)
+ )
> todelete
$rowsAffected
[1] 1

$queryName
[1] "QuaSAR_AuDIT"

$schemaName
[1] "lists"

$containerPath
[1] "/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results"

$rows
list()

$command
[1] "delete"



> toselect <- labkey.selectRows(
+ baseUrl="https://labkey-dev.roche.com:8443/labkey",
+ folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
+ schemaName="lists",
+ queryName="QuaSAR_AuDIT"
+ )
> str(toselect)
'data.frame':    3888 obs. of 14 variables:
Jon (LabKey DevOps)2016-02-10 11:43Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

I'm running on a Mac as well using the Rlabkey package 2.1.129 and running on R 3.2.3

Just curious, but do those Key values exist?

I managed to reproduce the same output from R, but only if I provided it with a Key value that was not on my list.

So if I had Key values 1 through 6 and I used a value of 10, it would show me $rows with list() rather than the content it deleted.

Example:

> deleterow <- data.frame(Key=10)
> deldata <- labkey.deleteRows(
+ baseUrl="https://www.labkey.org",
+ folderPath="/Support Tickets/Dashboards/JonY",
+ schemaName="lists",
+ queryName="ListTest",
+ toDelete=deleterow
+ )
> deldata
$rowsAffected
[1] 1

$queryName
[1] "ListTest"

$schemaName
[1] "lists"

$containerPath
[1] "/Support Tickets/Dashboards/JonY"

$rows
list()

$command
[1] "delete"


==============

> deleterow <- data.frame(Key=5)
> deldata <- labkey.deleteRows(
+ baseUrl="https://www.labkey.org",
+ folderPath="/Support Tickets/Dashboards/JonY",
+ schemaName="lists",
+ queryName="ListTest",
+ toDelete=deleterow
+ )
> deldata
$rowsAffected
[1] 1

$queryName
[1] "ListTest"

$schemaName
[1] "lists"

$containerPath
[1] "/Support Tickets/Dashboards/JonY"

$rows
$rows[[1]]
$rows[[1]]$EntityId
[1] "ac46c1e0-b18a-1033-9005-a3afb15921c0"

$rows[[1]]$Check
[1] FALSE

$rows[[1]]$Key
[1] 5

$rows[[1]]$Name
[1] "Joe"



$command
[1] "delete"



Notice how the first example using the Key value of 10 looks completely different than the other one with the Key value of 5?

I'm starting to think that the records you're trying to delete were already deleted, which is why this R script isn't working.

Regards,

Jon
laurapas2016-02-10 12:57Jon (LabKey DevOps)2018-11-16 23:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
The rows are definitely there. I even populated Key with integers myself. 'Key' is actually invisible to the default view, but it's definitely in the columns list. I attached screenshots of the list design and schema browser.

I started from scratch by manually deleting the rows using 'Delete All Rows' in the schema browser. Then, I ran the code below. Inserting rows works like a charm, but I cannot delete them.

.......other code before this part....
import_AuDIT$Key <- seq_along(import_AuDIT$peptide)

labkey.insertRows(baseUrl = "https://labkey-dev.roche.com:8443/labkey",
                  folderPath = "/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
                  schemaName = "lists",
                  queryName = "QuaSAR_AuDIT",
                  toInsert = import_AuDIT)

labkey.deleteRows(baseUrl="https://labkey-dev.roche.com:8443/labkey",
                  folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
                  schemaName="lists",
                  queryName="QuaSAR_AuDIT",
                  toDelete=data.frame(Key=1:3888,
                                      stringsAsFactors = FALSE)
                  )

$rowsAffected
[1] 3888

$queryName
[1] "QuaSAR_AuDIT"

$schemaName
[1] "lists"

$containerPath
[1] "/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results"

$rows
list()

$command
[1] "delete"


I think there's something wrong with the primary key and I don't know what it is. I tried to select via the Key, but that returns an data frame with columns but 0 observations.

testselect <- labkey.selectRows(
  baseUrl="https://labkey-dev.roche.com:8443/labkey",
  folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
  schemaName="lists",
  queryName="QuaSAR_AuDIT",
  viewName="",
  colNameOpt = "fieldname",
  colFilter=makeFilter(c("Key", "IN", "1")),
  containerFilter=NULL
)

> str(testselect)
'data.frame':    0 obs. of 14 variables:
 $ peptide : num
 $ sample : num
 $ transition.id: num
 $ pvalue.final : num
 $ status : num
 $ final.call : num
 $ SkylineNumber: num
 $ Category : num
 $ Panel : num
 $ Conc : num
 $ ConcLevel : num
 $ protein : num
 $ cv : num
 $ cv.status : num
Jon (LabKey DevOps)2016-02-10 14:34Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

This is really strange. There is nothing special that needs to be done to delete the record here.

I'd like to confirm a few other things with you.

1. Can you delete records in the QuaSAR_AuDIT list directly?

2. Can you try to delete a record using the Javascript API?

Use the following code below in a wiki page in the same folder as the list and replace KEY_NUMBER with one of the Key values you want to remove.

==================================

<p><button onclick="onSubmit()">Click me to delete a record</button></p>

<script type="text/javascript">

function onSubmit(){
LABKEY.Query.deleteRows({
    requiredVersion: 9.1,
    schemaName: 'lists',
    queryName: 'QuaSAR_AuDIT',
    rows: [{'Key': KEY_NUMBER}],
    success: onSuccess
});

function onSuccess(results) {
                  alert('Success!');
                 }
}
</script>

==================================


Regards,

Jon
laurapas2016-02-10 15:12Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

1. Can you delete records in the QuaSAR_AuDIT list directly? Yes, I can delete selected records or all records through the schema browser GUI.

2. Can you try to delete a record using the Javascript API? I tried this and it won't work with a Javascript API; no errors either.
Jon (LabKey DevOps)2016-02-10 15:27Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Interesting. Can you do one more thing with regard to the Javascript API one?

If you're using Google Chrome, can you bring up the wiki page you made, then bring up the Developer Console and go to the Network section?

After you get there, click that button and you should see an entry called "query-deleteRows.view". If you click it, it should being up a side panel showing Headers and Response tabs.

From the bottom of the Headers tab, you should see a Request Payload section that should show your delete request as a JSON response with the Key value you wanted to remove along with the schema and query names. (See screenshot)

On the Response tab, if things worked, it should be showing a JSON response like this indicating what got deleted:

{
  "rowsAffected" : 1,
  "queryName" : "ListTest",
  "schemaName" : "lists",
  "containerPath" : "/Support Tickets/Dashboards/JonY",
  "rows" : [ {
    "EntityId" : "5de988d5-b275-1033-b8c3-a3afb159e818",
    "Check" : false,
    "Key" : 8,
    "Name" : "Joe"
  } ],
  "command" : "delete"
}

Regards,

Jon
laurapas2016-02-10 16:34Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
See screenshot. The single row did not delete. Your help is much appreciated.
Jon (LabKey DevOps)2016-02-10 16:37Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

What about the response tab? Was it blank or does it show a JSON response inside?

Regards,

Jon
laurapas2016-02-10 16:44Jon (LabKey DevOps)2018-11-16 23:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry about that. I didn't include the 2nd screenshot last time. It is attached. The rows are empty like the R script.
Jon (LabKey DevOps)2016-02-10 16:51Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Wow! It looks like it's dropping the values within the row before it actually commits the changes.

I think I may need to make a bug on this.

Can you tell me what version and build of LabKey you're running?

Also, am I correct in thinking that this behavior you're seeing affects all lists you have?

Regards,

Jon
laurapas2016-02-10 16:56Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

LabKey 15.3. Yes, I've tried this on a few of my lists and the behavior is all the same.

Regards,
Laura
Jon (LabKey DevOps)2016-02-10 17:01Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Can you provide me with the build number as well? You should be able to find it under the Admin Console and expanding the + sign for Core under the Module Information section.

Regards,

Jon
Jon (LabKey DevOps)2016-02-12 12:33Jon (LabKey DevOps)2016-02-12 12:33labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

I worked with Jon on this issue directly and found no problem. That QuaSAR_Audit table's earliest record was in the 20,585 for the primary key.

We managed to run the same javascript test successfully via that button code I provided you and confirmed the record deleted properly. So the R-code issue where the deleteRows wasn't working was in-fact due to requesting to delete a record that didn't exist.

Regards,

Jon
laurapas2016-02-12 12:42Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
I'm still not clear on what to do about the Key. I reset the Key values myself. Is this just now allowed? I don't get any error or warnings. It seems that updating the primary key is not allowed, nor am I able to query the values of the primary key via R script. How should one go about this?
Jon (LabKey DevOps)2016-02-12 13:06Jon (LabKey DevOps)2016-02-12 13:06labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

On those lists, if you have the "Auto-Increment Integer" option enabled when the list is first created, updating the Key to something else is not possible.

The only way a list will allow the Key to be edited is when you specifically pick Integer or String when you first create the list instead of the "Auto-Increment Integer" option.

Regards,

Jon
Jon (LabKey DevOps)2016-02-12 13:08Jon (LabKey DevOps)2016-02-12 13:08labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Also, if you need to see the Key value appear in your R query, you can add the attribute "showHidden=TRUE" in your query.

That will allow the Key value (which is normally hidden) to appear as a value in your query's results.

Regards,

Jon
laurapas2016-02-17 11:58Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
I'm still not able to do this. See the list design snapshots from my response on 2016-02-10 12:57. I was questioning the list design for the Key earlier, but we ended up looking at another potential related issue with the server and then you did some troubleshooting with Jon Sasano. I don't see any "Auto-Increment Integer" option anywhere in the list design. Actually, I looked for something like that a whole back and don't see anything that resembles that option. Also, as you can see from my snapshot, there is no option for me to specify a non-integer Key....it is grayed out and not letting me choose.
Jon (LabKey DevOps)2016-02-17 12:21Jon (LabKey DevOps)2018-11-16 23:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

The Auto-Increment only appears when you initially create a list (see first attachment called "autoincrement.png").

Once you get past that initial page, you can never go back and change it.

This means that your lists cannot have the primary key changed to a different value. If the Primary Key Type was set to Integer from the start,

I've provided you with screenshots of two different lists, one using Integer as the Primary Key Type and the other list using the Auto-Increment Integer as the Primary Key Type.

As you can see, if the Auto-Increment option is used the moment the list is made, you will never get the option to edit that Key value in the UI or any place else. If the regular Integer option is picked at the moment of creating the list, then you get the box that allows you to change the Key value to whatever you want.

This is why I believe your lists were created using the Auto-Increment option. This is also the reason why your attempt at trying to update the Key value on all those records in the list didn't work (because the Key values were not editable to start) and why the deleteRows option wasn't working (due to trying to delete Keys that were invalid).

Does this make sense?

Regards,

Jon
laurapas2016-02-23 13:09Jon (LabKey DevOps)2018-11-16 23:24labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Thanks for all of your help & clarifications. I am able to delete rows after fixing my list designs.

Regards,
Laura
Jon (LabKey DevOps)2016-02-23 13:23Jon (LabKey DevOps)2016-02-23 13:23labkey.deleteRowslabkey.deleteRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Fantastic! Glad to know it's working for you now!

Regards,

Jon
Ben Bimber2014-12-30 09:31Jon (LabKey DevOps)2018-11-16 23:24LABKEY.DataRegions not updated after LABKEY.QueryWebPart callLABKEY.DataRegions not updated after LABKEY.QueryWebPart call TEXT_WITH_LINKSClosed     LabKey Support Forum
hi will,

i think this is due to the DataRegion being loaded asynchronously. try something like:

var params = LABKEY.ActionURL.getParameters();
    var qwp1 = new LABKEY.QueryWebPart({
        schemaName: 'assay.example.' + LABKEY.page.assay.name,
        queryName: 'Data',
        filterArray: [LABKEY.Filter.create("Run/Rowid", params["Data.Run/RowId~eq"]), ],
        renderTo: 'ResultsPartDiv',
        scope: this,
        success: function(dr){
            if (dr) {
                console.log('Got data region');
            } else {
                console.log('Could not get data region - Bug?');
            }
        }
    });

and see:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html#constructor
Will Holtz2014-12-30 11:38Jon (LabKey DevOps)2018-11-16 23:24LABKEY.DataRegions not updated after LABKEY.QueryWebPart callLABKEY.DataRegions not updated after LABKEY.QueryWebPart call TEXT_WITH_LINKSClosed     LabKey Support Forum
Ack! Thanks. I'm still getting used to asynchronous mindset.

-Will
Leo Dashevskiy2013-07-11 12:47Leo Dashevskiy2013-07-11 12:47Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !?Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !? TEXT_WITH_LINKSClosed     LabKey Support Forum
The 'soft' Labkey-db-level foreign-key linking via the xml file worked, which led me to believe that the 2 tables are properly hooked up on the lower postgres-db level, which was not the case.

After a couple of attempts at linking them on the lower db level, it finally is working properly as expected.
jeckels2013-07-01 09:46Jon (LabKey DevOps)2018-11-16 23:24Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !?Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

This is happening because the web server caches the list of values, and isn't expecting that there are "external" edits to the underlying tables happening.

I believe that you should be able to set your cache side to 0 to prevent caching, which should eliminate this problem. For reference, the default size is 1000. You can do that in your XML metadata for the table. You'll need to set the cache size on the foreign key target, or opencyto_preprocessing.gsTbl in this example.

Here's an example of XML that changes the cache size for a table.

<ns:tables xsi:schemaLocation="http://labkey.org/data/xml ..\..\..\..\..\schemas\tableInfo.xsd" xmlns:ns="http://labkey.org/data/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ns:table tableName="PipelineRoots" tableDbType="TABLE">
    <ns:cacheSize>5000</ns:cacheSize>
    <ns:columns>
...

Thanks,
Josh
Leo Dashevskiy2013-07-01 11:51Jon (LabKey DevOps)2018-11-16 23:24Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !?Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey, Josh, this is pretty interesting.

So this caching mechanism is turned on only for the case when a table from one schema references a table in a different schema? (Because like I mentioned, I do not see this issue, when both tables are within the same schema.)

I tried modifying my table's metadata XML file like so:

<ns:table tableName='gstbl' tableDbType='TABLE'>
        <ns:cacheSize>0</ns:cacheSize>
        <ns:description>
            The 'gsTbl' table contains information about generated gating sets.
        </ns:description>
        <ns:columns>
            <ns:column columnName='container'/>
            <ns:column columnName='gsid'/>
            <ns:column columnName='gsname'/>
            <ns:column columnName='objlink'>
                <ns:columnTitle>objLink</ns:columnTitle>
            </ns:column>
            <ns:column columnName='gsdescription'>
                <ns:columnTitle>gsDescription</ns:columnTitle>
            </ns:column>
            <ns:column columnName='xmlpath'>
                <ns:columnTitle>xmlPath</ns:columnTitle>
            </ns:column>
            <ns:column columnName='samplegroup'>
                <ns:columnTitle>sampleGroup</ns:columnTitle>
            </ns:column>
            <ns:column columnName='created'>
                <ns:columnTitle>Created</ns:columnTitle>
                <ns:formatString>yyyy-MM-dd HH:mm:ss</ns:formatString>
            </ns:column>
        </ns:columns>
    </ns:table>

Shut down the server, then fired it back up, but the issue remains.

When the row in gsTbl referenced in stats is deleted, stats table does not get updated, but instead of the "fk" name link has the "<#>", where # is the id of the deleted row from the gsTbl...

Do I need to take any additional steps?

By the way, Ben iт one of my earlier posts mentioned that "LabKey appended brackets (<>) around the values", if there "are broken lookups" -- this seems to be the situation here.

But how could I avoid such a situation? I mean, ON DELETE CASCADE properly working would automatically solve it right away...

Thanks.
-Leo
Leo Dashevskiy2013-07-08 14:27Jon (LabKey DevOps)2018-11-16 23:24Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !?Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !? TEXT_WITH_LINKSClosed     LabKey Support Forum
Would it be possible for anyone to reproduce my set up and then to either confirm (in which case some 'manual' solution would probably need to be implemented in order to get it to work properly) or refute my claim (in which case I will need to get to the bottom of why it is not behaving for me properly and to fix it)?

Thanks.
-Leo
Leo Dashevskiy2013-07-09 17:06Jon (LabKey DevOps)2018-11-16 23:24Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !?Labkey data base schema not respecting ON DELETE CASCADE if referencing a different schema !? TEXT_WITH_LINKSClosed     LabKey Support Forum
For some reason

CONSTRAINT FK_stats_gsTbl FOREIGN KEY (gsId, Container)
        REFERENCES opencyto_preprocessing.gsTbl (gsId, Container)
        ON DELETE CASCADE

though it is part of the original schema definition. Could it be that I did not run the update properly? :(

I was able through pdAdmin to properly create this foreign key across schemas relationship and the cascaded delete worked!

Now I have to figure out why I had to do this 'by hand' and the original definition did not kick in...
Matthew Bellew2011-06-22 09:55Jon (LabKey DevOps)2018-11-16 23:24labkey context path in CSS files?labkey context path in CSS files? TEXT_WITH_LINKSClosed     LabKey Support Forum
context path is a huge pain. Maybe try adding both paths and see if that works.


@import url("/labkey/ehr/stylesheet-red-limited.css");
@import url("/ehr/stylesheet-red-limited.css");
Ben Bimber2011-06-22 10:22Jon (LabKey DevOps)2018-11-16 23:24labkey context path in CSS files?labkey context path in CSS files? TEXT_WITH_LINKSClosed     LabKey Support Forum
Not a bad idea. I was hoping to avoid the ugly file not found message though.
Jon (LabKey DevOps)2018-02-12 13:57Jon (LabKey DevOps)2018-02-12 13:57Labkey Biologics and Labkey ServerLabkey Biologics and Labkey Server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

The LabKey Biologics module augments the standard LabKey server configuration, so you would be able to use LabKey Biologics while also being able to use LabKey in a non-biologics fashion.

That said, the LabKey Biologics module is not available in the Community Edition and requires a Premium Edition of LabKey. If you are interested in the Biologics features, please contact us here (https://www.labkey.com/about/contact/) or send us an email to info@labkey.com for more information.

Regards,

Jon
Jon (LabKey DevOps)2017-10-10 22:44Jon (LabKey DevOps)2018-11-16 23:24Labkey assay unable to find transformation script upon data uploadLabkey assay unable to find transformation script upon data upload TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

If you were to copy that python script within the Files Web Part of the same folder the Assay is in and change the path to point to it, does the same error appear?

Also, what are the permissions for the directory that fullTransformer.py resides in and the permissions of the actual script? Is the owner of the file or directory the same user that is running the Tomcat process? What about the group? Is the user the Tomcat process is running under in that group the directory or file is owned by? What are the Read-Write-Execute permissions set as on the file?

Regards,

Jon
simon buckner2017-10-11 08:12Jon (LabKey DevOps)2018-11-16 23:24Labkey assay unable to find transformation script upon data uploadLabkey assay unable to find transformation script upon data upload TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon, thanks for the quick reply.

The file currently resides in the Assay folder, is owned by the tomcat user and part of the tomcat group, and has permissions 777. The folder is also tomcat owned, and has permissions 755.

I'm not sure if this helps, but the curious thing is that none of this was an issue earlier in the week. The only thing that changed was the execution command in the script engine configuration (we added some sys arguments). We noticed this issue afterwards, but upon reverting, the error persisted.

Please let me know if you need anymore information, thanks again.

Simon
Jon (LabKey DevOps)2017-10-11 13:18Jon (LabKey DevOps)2018-11-16 23:23Labkey assay unable to find transformation script upon data uploadLabkey assay unable to find transformation script upon data upload TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

Does the same error appear if you were to take your python script and put it in a Files Web Part and point the Assay to that instead?

Regards,

Jon
simon buckner2017-10-12 09:19Jon (LabKey DevOps)2018-11-16 23:24Labkey assay unable to find transformation script upon data uploadLabkey assay unable to find transformation script upon data upload TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I'm not sure what you mean. We do have the file in a Files Web Part, but when we point the Assay to a script, we specify the path to the file. Is there a difference between entering a path, and "pointing the Assay to [the Web Part] instead"?

Thanks,

Simon
simon buckner2017-10-12 12:35Jon (LabKey DevOps)2018-11-16 23:23Labkey assay unable to find transformation script upon data uploadLabkey assay unable to find transformation script upon data upload TEXT_WITH_LINKSClosed     LabKey Support Forum
This works now. I wish I could say why, but all we did was remove the ${scriptFile} parameter from our engine config and then add it back in.

Thanks for your help,

Simon
jeckels2013-04-10 17:25Jon (LabKey DevOps)2018-11-16 23:24Labkey as portlet in liferayLabkey as portlet in liferay TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Nizar,

I don't have experience with Liferay, but I'd recommend using the LabKey API if possible. We work to provide backward compatibility between versions at the API level. If you effectively fork the LabKey Server code base, you'll have a difficult time merging changes when you want to upgrade.

You've probably found this already, but we have existing client API implementations for a number of programming languages, and new languages can be added fairly easily because the underlying communication is JSON over HTTP.

Thanks,
Josh
jeckels2013-04-10 17:25Jon (LabKey DevOps)2018-11-16 23:24Labkey as portlet in liferayLabkey as portlet in liferay TEXT_WITH_LINKSClosed     LabKey Support Forum
nizarellouze2013-04-11 01:11Jon (LabKey DevOps)2018-11-16 23:23Labkey as portlet in liferayLabkey as portlet in liferay TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jeckels, thank you for you response, one more question please, does the api contains all services that the labkey provides
jeckels2013-04-11 10:40Jon (LabKey DevOps)2018-11-16 23:24Labkey as portlet in liferayLabkey as portlet in liferay TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Nizar,

No, not everything can be done through the API. However, if there are gaps based on your required scenarios, it will probably be easier for you to add APIs than to completely refactor the code to run inside of Liferay. We'd be happy to discuss doing this kind of development for you if you're interested in contracting with us.

Thanks,
Josh
Greg Taylor2014-05-13 13:30Jon (LabKey DevOps)2018-11-16 23:24Labkey Applying ThemeLabkey Applying Theme TEXT_WITH_LINKSClosed     LabKey Support Forum
Theme information can be configured through the admin console via the 'Look and Feel Settings' or individually for projects using the 'Project Settings' menu. Documentation about how to configure these settings is linked below. As far as I know, there is not a way to customize these settings from within a module.

https://www.labkey.org/wiki/home/Documentation/page.view?name=customizeLook

Greg
Jon (LabKey DevOps)2016-11-08 11:29Jon (LabKey DevOps)2018-11-16 23:23LabKey and TableauLabKey and Tableau TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alicia,

We only have one Javascript API available.

Are you using this doc here to guide you in the auth process? http://www.fourproc.com/2011/08/25/accessing-a-labkey-server-with-python-node-js-or-wget.html

Or are you using another doc?

Also, can you provide an example of how you were prepending the username and password to the URL?

Are you attempting to try and access the LabKey Javascript API through some sort of Tableau interface?

Regards,

Jon
A. Tyrell2016-11-09 09:46Jon (LabKey DevOps)2018-11-16 23:24LabKey and TableauLabKey and Tableau TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Yes I am familiar with the site that is where I got the verbiage in quotes.
I am trying to access the labkey data with a tableau web connector tool.

https://onlinehelp.tableau.com/current/api/wdc/en-us/help.htm

Using a web data connector, you can create and use a connection to almost any data that is accessible over HTTP. This can include internal web services, JSON data, XML data, REST APIs, and many other sources. Because you control how the data is fetched, you can even combine data from multiple sources.

I am working a workaround and will be back to post my findings shortly...

Thanks,

A. Tyrell
Jon (LabKey DevOps)2021-12-21 13:54Jon (LabKey DevOps)2021-12-21 13:54KeyError CSRFKeyError CSRF TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Rakesh,

Did you setup a netrc file per our README.md instructions for the Python API?

https://github.com/LabKey/labkey-api-python#readme

The CSRF Token should be passing across provided you're actually authenticating and providing correct credentials.

Regards,

Jon
Greg Taylor2014-07-24 15:10Jon (LabKey DevOps)2018-11-16 23:23jtds.tmp files?jtds.tmp files? TEXT_WITH_LINKSClosed     LabKey Support Forum
These 'jtds' files may safely be ignored. They are created by the SQL Server JDBC files and should be deleted when the corresponding connection is closed. Below you will find a forum posting that I found related to the topic.

http://sourceforge.net/p/jtds/discussion/104389/thread/13a99249/

Greg
Ben Bimber2014-07-24 16:08Jon (LabKey DevOps)2018-11-16 23:23jtds.tmp files?jtds.tmp files? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi greg,

thanks - right after posting i realized i should have turned to google first.
Jon (LabKey DevOps)2017-01-06 10:56Jon (LabKey DevOps)2018-11-16 23:24js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Chris,

The JavaScript API is only executable within the confines of LabKey, so there would be no way to run it outside.

Other APIs, like the ones for Python, Perl, R, and Java can run outside of LabKey since unlike the JavaScript API, these allow the ability to authenticate to then get access to the data on the LabKey data.

Regards,

Jon
chrishu2017-01-06 11:02Jon (LabKey DevOps)2018-11-16 23:23js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon. Can I only get labkey to run it via the browser? I know that I can save the tsv file I am transforming, can I run it using the Labkey js runtime via a command?

Also, is there a file API available when js runs in Labkey? Is there an example anywhere of a transform script using js?
Jon (LabKey DevOps)2017-01-06 13:53Jon (LabKey DevOps)2018-11-16 23:24js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Chris,

I do believe that is the case here. Specifically with transformation scripts, it requires a scripting engine for the script to run and there is no engine to tie a JS script to.

https://www.labkey.org/home/Documentation/wiki-page.view?name=programmaticQC

What kind of work are you trying to accomplish specifically? Does it need a transformation script to run or can a trigger script work instead?

https://www.labkey.org/home/Documentation/wiki-page.view?name=serverSideValidation

Are you solely working within an Assay or are you working with other tables?

Regards,

Jon
chrishu2017-01-06 14:02Jon (LabKey DevOps)2018-11-16 23:24js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
I am working with other tables. I am using several fields of the assay data to do a lookup (including joins) and if a value is not found, do an insert, returning the new id. If this sounds like something I could do with a trigger please let me know, but from my understanding I don't think it can be done.

I just figured out that I can use core java libraries in my js transform script using this syntax:

var File = Packages.java.io.File

Is it possible to include packages from .jar files? I am hoping for a way to parse the .tsv file into a data structure that is more robust than just splitting each line.
chrishu2017-01-06 14:21Jon (LabKey DevOps)2018-11-16 23:23js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
I am also having trouble getting labkey to inject the run info into a token like so

var runProp = "${runInfo}"

or

var runProp = ${runInfo}

Could you show me an example of js code doing this?
Jon (LabKey DevOps)2017-01-06 17:48Jon (LabKey DevOps)2018-11-16 23:23js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Chris,

I haven't been able to find any information on how we can do this in our docs or any previous open questions, so let me see if this is possible at all.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2017-01-06 19:45Jon (LabKey DevOps)2018-11-16 23:23js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Chris,

So my hunches were confirmed here. The usage of a .js script as a transformation script for an assay is not supported. Although the script will run thanks to the RhinoScript engine, we have no ability to replace tokens or inject information into the script. This is why that runInfo value you were trying to inject wouldn't have worked. Other transform scripting languages like R, Perl, Python, or Java would be able to support this though.

If your organization is interested in us investigating support to have Javascript as a transform scripting language, please feel free to reach out to your Services contact (Bernie) to discuss the cost of getting a development work order arranged.

Regards,

Jon
Will Holtz2017-02-21 11:02Jon (LabKey DevOps)2018-11-16 23:24js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Chris,

Another approach that you might consider is to not make use of the assay transformation script functionality, but instead, do the following:
1) load data with client-side js
2) transform your data in the client browser using js
3) save data to Labkey using js API calls

I used to make frequent use of assay transformation scripts written in R, but I've found this js based approach results in a more responsive UI and have a higher degree of compatibility across Labkey versions. Also, I was drawn to assay transformation scripts as an easy way of getting Excel data into Labkey, but now there are good js libraries for reading in Excel files, so that is no longer a barrier either.

-Will
chrishu2017-02-21 11:11Jon (LabKey DevOps)2018-11-16 23:23js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Will, I am now planning to implements new assay types like you have suggested. Can you point me toward any code examples of using the js API in this way?

Thanks,
Chris
Will Holtz2017-02-21 13:48Jon (LabKey DevOps)2018-11-16 23:24js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Chris,

Please see the example module I have attached to this message. This is a hacked down version of some code I used to define the layout of media across a 96-well microtiter plate. The Excel input file contains well names ('A1', 'A2'... 'H12') that get transformed into integers (1-96) via the js based transform. Please note that the 'Media Name' column in the Excel file actually just contains integers as I left out a foreign key relationship from this example.

Of course, you can do much more complex stuff in the transformation. I often query other Labkey tables using the js API and save rows in other Labkey tables also using the js API.

-Will
chrishu2017-02-23 15:28Jon (LabKey DevOps)2018-11-16 23:23js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for this Will, looks like it will be very useful to me. I'll get in touch if I have questions!

-Chris
chrishu2017-03-08 14:55Jon (LabKey DevOps)2018-11-16 23:24js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey will, is there still the concept of Runs and Batches when using the js API? How would I set these?
Will Holtz2017-03-08 15:01Jon (LabKey DevOps)2018-11-16 23:23js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, there are still Runs and Batches.
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Experiment.html

The code I posted makes 1 run per file uploaded. Multiple runs could be combined into one batch, but in that example, each run gets its own batch.

-Will
chrishu2017-03-08 16:11Jon (LabKey DevOps)2018-11-16 23:23js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
What I should have asked is, do Runs and Batches still have their own fields? I see that you create a Run and use data froim the file to set run.dataRows. What I dont see is any run level fields.

Thanks,
Chris
Will Holtz2017-03-08 16:46Jon (LabKey DevOps)2018-11-16 23:24js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
In the saveRun function from my upload.html view, set run fields via run.properties:

run.properties.myField = 'foobar';

I have not saved batch properties via the API, but I'd guess it is very similar.

-Will
chrishu2017-03-08 17:18Jon (LabKey DevOps)2018-11-16 23:24js transformation script helpjs transformation script help TEXT_WITH_LINKSClosed     LabKey Support Forum
Perfect! Thanks again.
jeckels2010-12-20 09:09Jon (LabKey DevOps)2018-11-16 23:23JS API to get baseURL?JS API to get baseURL? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I don't know of anything that's already part of the JavaScript API. I just added that function to 11.1.

Thanks,
Josh
marki2010-12-20 09:21Jon (LabKey DevOps)2018-11-16 23:24JS API to get baseURL?JS API to get baseURL? TEXT_WITH_LINKSClosed     LabKey Support Forum
I believe this would do it given today's api

LABKEY.ActionURL.buildURL(LABKEY.ActionURL.getController(), LABKEY.ActionURL.getAction()
, null, {})
Ben Bimber2010-12-20 09:28Jon (LabKey DevOps)2018-11-16 23:23JS API to get baseURL?JS API to get baseURL? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi mark,

i believe that's going to return your relative URL, ie:

/labkey/ehr/WNPRC/EHR/clinicalEncounter.view

I'm specifically thinking of bareUrl for the situation where labkey starts from script, and that script needs to run a labkey API externally. it would need some way to figure out where to issue that query. simply doing 'localhost' wouldnt always be good enough.
Jon (LabKey DevOps)2018-09-19 22:24Jon (LabKey DevOps)2018-11-16 23:24Joining tables based on Subject Id and Visits/SequenceJoining tables based on Subject Id and Visits/Sequence TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward

Can you give us an example of what you're working with?

Are you trying to join two different datasets or a dataset and another table, like a list?

Can you give us an example of data from the two tables, your SQL query, and the desired results you are expecting to see?

Regards,

Jon
Edward2018-09-21 01:44Jon (LabKey DevOps)2018-11-16 23:24Joining tables based on Subject Id and Visits/SequenceJoining tables based on Subject Id and Visits/Sequence TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for replying. I am trying to create gridview by joining columns from two different datasets.

In these datasets, one has few columns while the other one has upto 150 columns. I noticed that in these 150 columns a set of 15 columns are repeating and so I thought it would be best to transpose the repeating columns into rows, which will significantly reduce the number of columns but it will also mean to have duplicated values for Visits. Due to this I made visits sequence (such that visit 1 = 1.00-1.99, 2 = 2.00-2.99 etc.).

As an example consider the attached screenshot S1 where I have joined the transposed dataset on another dataset. If you can see I get Name, age and sex columns empty because the database is doing join based on Visit_Sequence and id, even if Visit_Sequence values belong to the same visit. Ideally, I would like to get a resulting table similar to the attached screenshot S2.

Your help is highly appreciated. Thanks!
Jon (LabKey DevOps)2018-10-05 14:51Jon (LabKey DevOps)2018-11-16 23:23Joining tables based on Subject Id and Visits/SequenceJoining tables based on Subject Id and Visits/Sequence TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Edward,

Thanks for providing the images. If you're trying to do what is in screenshot two, you could just create the following query in the schema browser within the study schema:

SELECT table2.id,
table2.Med_No,
table2.Name,
table2.Time,
table2.Quantity,
table1.Name AS Table1Name,
table1.Age,
table1.Sex
FROM table2
JOIN table1 ON table2.id = table1.id

But if you're trying to use the fields that are nested within the grid view, these rely on the combination of the participant Id number and the specific visit value together.

Regards,

Jon
Jon (LabKey DevOps)2016-08-12 10:31Jon (LabKey DevOps)2018-11-16 23:24Joining external and internal schemasJoining external and internal schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Although you technically could use a scripting language like python to do this, this would require some significant scripting work depending on the type of join you're trying to do between the two tables. Most of the examples I've seen of people doing this required them to pull down the data into csv files, then have the csv files used in conjunction with something like pandas (http://pandas.pydata.org/pandas-docs/stable/index.html) to do the merging/joining (http://pandas.pydata.org/pandas-docs/stable/merging.html). This information would also be sitting outside of LabKey rather than within the UI, so you wouldn't be able to do anything beyond just looking at the joined data via Python.

Have you considered possibly importing that external table into your LabKey database through an ETL? You could setup a whole unique internal schema in LabKey and a table for this MySQL data that could get updated regularly and thereby allowing you to do everything you want to do within the LabKey UI.

https://www.labkey.org/home/Documentation/wiki-page.view?name=etlTutorial

Regards,

Jon
jeckels2014-10-16 13:00Jon (LabKey DevOps)2018-11-16 23:24javax.servlet.ServletException: Filter execution threw an exceptionjavax.servlet.ServletException: Filter execution threw an exception TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

Sorry to hear about the errors. It's likely that there's some other upstream error that's the true root cause of these problems. Can you ZIP up the contents of your %TOMCAT_HOME%/logs directory and post them here? Hopefully one of the messages will give us some clues.

Thanks,
Josh
adam2014-10-16 13:10Jon (LabKey DevOps)2018-11-16 23:23javax.servlet.ServletException: Filter execution threw an exceptionjavax.servlet.ServletException: Filter execution threw an exception TEXT_WITH_LINKSClosed     LabKey Support Forum
For what it's worth, in Subversion commit r34456 I fixed our start-up time exception handling to correctly display the initial, underlying exception on the first page render. This won't help you in the near-term, since my change is in our upcoming 14.3 release. Please do let us know what the earlier exception is.

Adam
jeckels2014-10-16 23:23Jon (LabKey DevOps)2018-11-16 23:23javax.servlet.ServletException: Filter execution threw an exceptionjavax.servlet.ServletException: Filter execution threw an exception TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

In the logs you sent us, I found this error message:

Caused by: java.lang.UnsupportedClassVersionError: org/labkey/bootstrap/LabkeyServerBootstrapClassLoader : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

That's a Java 7 class file format, and indicates that you might be running Tomcat with an older Java release. Can you confirm that Tomcat is pointed at a Java 7 installation?

Additionally, catalina.out contained this error:

java.io.FileNotFoundException: /usr/share/tomcat7/logs/labkey.log (No such file or directory)

Can you check if the directory /usr/share/tomcat7/logs exists? Does that look like the right directory for your Tomcat deployment? Perhaps the CATALINA_HOME environment variable is not set correctly?

Also, what version of LabKey Server are you attempting to install? 14.2?

Thanks,
Josh
trent2015-12-08 14:29Jon (LabKey DevOps)2018-11-16 23:24Java Transformation Script BasicsJava Transformation Script Basics TEXT_WITH_LINKSClosed     LabKey Support Forum
I see now I should have been looking at the line beginning with "runDataUploadedFile" for the input file?
jeckels2016-03-14 22:18Jon (LabKey DevOps)2018-11-16 23:23Java SQL Lookup QuestionJava SQL Lookup Question TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

Yes, you can use LabKey SQL's special lookup syntax to get the text value for these columns. In short, you can use "Column.LookupColumn" instead of doing a JOIN from "Column" to get the value of "LookupColumn" in the lookup table. Something like:

SELECT VisitDescription, PrimaryType.Description AS PrimaryTypeDescription, DerivativeType.description AS DerivativeTypeDescription, Count(DerivativeType.description) as Total FROM SpecimenDetail WHERE AtRepository = true group by VisitDescription, PrimaryType.description, DerivativeType.description

https://www.labkey.org/wiki/home/Documentation/page.view?name=lookups

Thanks,
Josh
dennisw2016-03-16 08:31Jon (LabKey DevOps)2018-11-16 23:24Java SQL Lookup QuestionJava SQL Lookup Question TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks! That works a charm.. I was overthinking it :-)
jeckels2012-10-17 18:22Jon (LabKey DevOps)2018-11-16 23:24Java Security PatchJava Security Patch TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Based on the limited information available about these vulnerabilities, we don't think that LabKey Server is likely to be at risk. However, since we can't prove that it's not affected, we recommend that all installations plan to upgrade their Java installation according to their regular maintenance and upgrade schedules.

We regularly update our automated test systems with new third party software, including Java. We haven't done it yet in this particular case, but given the list of changes it seems extremely unlikely that there will be any regressions.

Thanks,
Josh
jeckels2015-02-02 10:22Jon (LabKey DevOps)2018-11-16 23:24Javascript views fail on assay domainsJavascript views fail on assay domains TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for the report. We've got a fix which will be part of 15.1.

Thanks,
Josh
jeckels2014-05-06 09:03Jon (LabKey DevOps)2018-11-16 23:24JavaScript SelectRows wait for end requestJavaScript SelectRows wait for end request TEXT_WITH_LINKSClosed     LabKey Support Forum
Asynchronous means that you don't get the results from the server immediately as the result of calling LABKEY.Query.selectRows(). Instead, at some point in the future, your success or failure callbacks will be invoked, when the browser gets the response back from the server. When the callback function is invoked, though, it will have the full response from the server. This isn't unique to LabKey's JavaScript API, this is how AJAX works in JavaScript to make requests a web server.

This might be a bit clearer with a simple modification to the example usage in the API docs:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.selectRows

<script type="text/javascript">
    function onFailure(errorInfo, options, responseObj)
    {
        if (errorInfo && errorInfo.exception)
            alert("Failure: " + errorInfo.exception);
        else
            alert("Failure: " + responseObj.statusText);
    }

    function onSuccess(data)
    {
        alert("Success! " + data.rowCount + " rows returned.");
    }

    LABKEY.Query.selectRows({
            schemaName: 'lists',
            queryName: 'People',
            columns: ['Name', 'Age'],
            success: onSuccess,
            failure: onFailure
        });
        alert("Immediately after invoking selectRows()");
</script>

In this case, you'll see that the first popup you get is one that says "Immediately after invoking selectRows()". Then, at some point in the future, you'll get a second popup with the success or failure message.

I hope this helps.

Thanks,
Josh
nicyon2014-05-06 10:43Jon (LabKey DevOps)2018-11-16 23:24JavaScript SelectRows wait for end requestJavaScript SelectRows wait for end request TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,


Thank you very much for your response. But I'm afraid I'm more interested, to quote your example, in having the alert message(failure or success) before the "Immediately after invoking selectRows()".

In other words, is there a way to wait for the function onSuccess to be finished before continuing to the next instruction, which is alert("Immediately after invoking selectRows()") in your example.

Thank you very much again in advance for any help
jeckels2014-05-06 10:48Jon (LabKey DevOps)2018-11-16 23:23JavaScript SelectRows wait for end requestJavaScript SelectRows wait for end request TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm sorry to say that's not possible, due to JavaScript's basic programming model when it comes to requesting data from web servers.

However, this is usually easy enough to accommodate in your code. Instead of putting the code right after the call to selectRows(), move it inside of your success callback function. JavaScript closures make it simpler to get the scoping to work. For example:

    var someValue = 'Test value';
    LABKEY.Query.selectRows({
            schemaName: 'lists',
            queryName: 'People',
            columns: ['Name', 'Age'],
            success: function (data)
            {
                 alert("Success! " + data.rowCount + " rows returned and value is " + someValue);
            },
            failure: onFailure
        });

Thanks,
Josh
nicyon2014-05-06 11:27Jon (LabKey DevOps)2018-11-16 23:23JavaScript SelectRows wait for end requestJavaScript SelectRows wait for end request TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Thank you very much for your enlightenment. I will now be able to continue, and solve my current problem.


Thank you very much again for you precious help
martin2014-11-28 02:57Jon (LabKey DevOps)2018-11-16 23:24JavaScript SelectRows wait for end requestJavaScript SelectRows wait for end request TEXT_WITH_LINKSClosed     LabKey Support Forum
hi,

my code:
---------------------------
var availableQueries = [];

function populateAvailableQueries()
{
  LABKEY.Query.getQueries({
   schemaName: 'lists',
   success: function(queriesInfo)
    {
     for (var j = 0; queriesInfo.queries.length; j++)
     {
      availableQueries.push(queriesInfo.queries[j].name);
     }
    }
   });

//here i cannot use availableQueries[] because it shows empty
}

from what i understood, there is no way then to assure the result of these api functions will be available right after execution...is that true?

what is the correct way to use the output so that it is fully available after execution?

thanks
Martin
jeckels2014-11-28 12:22Jon (LabKey DevOps)2018-11-16 23:24JavaScript SelectRows wait for end requestJavaScript SelectRows wait for end request TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

Yes, that's correct. The browser will send a request to the server, and when it gets the response at some point in the future, it will call your success function. This isn't specific to LabKey's JavaScript API - this is the standard pattern for how JavaScript code in web browsers makes calls to web servers.

The typical usage pattern is to use the success function to do whatever you need with availableQueries. In most cases, it's straightforward to simply put your code, say, right after your for loop inside the same function, instead of putting it outside of the callback function.

If you're not familiar with callbacks in JavaScript, this might give some useful background:

http://recurial.com/programming/understanding-callback-functions-in-javascript/

Thanks,
Josh
martin2014-11-29 05:38Jon (LabKey DevOps)2018-11-16 23:24JavaScript SelectRows wait for end requestJavaScript SelectRows wait for end request TEXT_WITH_LINKSClosed     LabKey Support Forum
[EDITED]

hi,
thank you very much, your advise to put operations with result inside the success function works fine:)

martin
Matthew Bellew2012-11-06 08:29Jon (LabKey DevOps)2018-11-16 23:24JavaScript LABKEY.Query API and Database transactionsJavaScript LABKEY.Query API and Database transactions TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, using transactions from JavaScript is impossibly problematic. It's very bad to have a long running transaction and disastrous to have one that is not closed, either because of a javascript bug, or the user walking away, or even just closing a browser tab.

This would require building a server-side java action to accomplish all the transacted steps in one call.

Matt

PS: the transaction id returned by executeSQL refers to the http transaction (send->receive) and can be used to cancel the request.

PPS: prepare transaction is related to transactions that cross server boundaries (e.g. getting a postgres server and a sql server to commit a transaction together). it doesn't help us here.
jeckels2012-11-06 08:45Jon (LabKey DevOps)2018-11-16 23:24JavaScript LABKEY.Query API and Database transactionsJavaScript LABKEY.Query API and Database transactions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

One more thing to add - you can use LABKEY.Query.updateRows() to manipulate multiple tables with insert, update, and delete operations and control whether the whole set of operations is performed in one transaction, or if each separate command is transacted separately.

LABKEY.Query.executeSQL(), like all APIs that currently operate on LabKey SQL, is strictly read-only, since we only support SELECT statements.

Thanks,
Josh
Ben Bimber2012-11-06 08:57Jon (LabKey DevOps)2018-11-16 23:24JavaScript LABKEY.Query API and Database transactionsJavaScript LABKEY.Query API and Database transactions TEXT_WITH_LINKSClosed     LabKey Support Forum
i think josh means LABKEY.Query.saveRows(), not updateRows()
jeckels2012-11-06 08:59Jon (LabKey DevOps)2018-11-16 23:24JavaScript LABKEY.Query API and Database transactionsJavaScript LABKEY.Query API and Database transactions TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Ben. Yes, that's correct. saveRows() lets you mix and match insert/update/delete commands that target different tables. updateRows() is just for updating existing rows.

Josh
slangley@scharp.org2012-11-06 10:57Jon (LabKey DevOps)2018-11-16 23:24JavaScript LABKEY.Query API and Database transactionsJavaScript LABKEY.Query API and Database transactions TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks. That answers my questions.
jeckels2014-12-17 17:45Jon (LabKey DevOps)2018-11-16 23:24Javascript LABKEY.Message.sendMessage restrictionsJavascript LABKEY.Message.sendMessage restrictions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I'm sorry that this doesn't fit your use case better. We're trying to balance between providing a generally useful API and avoiding being an open relay for spam. This hasn't changed in 14.3. I've updated the documentation to reflect this restriction.

Thanks,
Josh
Anthony Corbett2013-05-17 08:06Jon (LabKey DevOps)2018-11-16 23:24Javascript app and wiki toolbarJavascript app and wiki toolbar TEXT_WITH_LINKSClosed     LabKey Support Forum

Hi,

From my understanding being an Editor on a container allows them to edit anything in that container (wikis, lists, datasets, etc.) There is not a way, from my knowledge, to only be Editors on certain types of module's artifacts (the expcetion here being per dataset permissions).

Our group also has single page Javascript applications we embed into wiki pages. Our users also need insert/update to the study datasets so they all have the Editor role. However, for the same reason you are asking, we don't want them to edit/delete a wiki page. Our solution was to add a child container where the users are readers only and all javascript application wiki pages live in this child container. The down side with this approach is that all LABKEY.Query API calls must now explicitly set the containerPath to the parent container to correctly scope the query, and while this is annoying, we have a cross cutting layer which decorates all LABKEY.Query API calls to set this property across the whole application.

Another approach, if the users only need to insert new or edit THEIR OWN data, is to give them the Author role. This will remove the 'edit' and 'manage' buttons, but not the 'new' button. The downside is that they can only edit the records they have inserts and not records others have created, though depending on your use case this may be what you are looking for.


More of a hack is to place CSS in your wiki page to hide the buttons:

div.labkey-wp-text-buttons {
   visibility:hidden;
}

You can take this further and use javascript to check the user's role and apply the css style:

Ext.select('div.labkey-wp-text-buttons').setStyle('visibility', 'hidden');

Regards,

Anthony Corbett
Anthony Corbett2013-05-17 08:15Jon (LabKey DevOps)2018-11-16 23:23Javascript app and wiki toolbarJavascript app and wiki toolbar TEXT_WITH_LINKSClosed     LabKey Support Forum

The CSS above will remove webpart text buttons from the whole page (all webparts), if you want to remove it only for the main body and not the right side panel use the more restrictive selector:

Ext.select('td.labkey-body-panel div.labkey-wp-text-buttons').setStyle('visibility', 'hidden');


Firebug and its element inspector is the best place to dive into the HTML and try out css rules, again this is more of a hack then a solution.

-
Anthony
bront@kcr.uky.edu2013-05-17 09:38Jon (LabKey DevOps)2018-11-16 23:23Javascript app and wiki toolbarJavascript app and wiki toolbar TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony,

Great ideas. I think I will employ the "hack" at this point (since this issue only impacts 1 page so far); however, I will certainly keep the child container solution in mind for future projects.

Thank you so much for your help.

bront
adam2013-05-19 16:41Jon (LabKey DevOps)2018-11-16 23:24Javascript app and wiki toolbarJavascript app and wiki toolbar TEXT_WITH_LINKSClosed     LabKey Support Forum
Just in case it isn't obvious to everyone reading this, hacking the CSS will hide the buttons, but it's not a true substitute for changing permissions. Your editors will still be able to insert, update, and delete wikis; they'll just need to grab the necessary URLs out of the page source or edit the URL in the address bar.

Adam
Matthew Bellew2013-05-20 09:08Jon (LabKey DevOps)2018-11-16 23:24Javascript app and wiki toolbarJavascript app and wiki toolbar TEXT_WITH_LINKSClosed     LabKey Support Forum
One more suggestion. I'm not against hacking CSS, but whenever you do this consider adding a note to you "manual testing before I upgrade" document. It's easy to forget what hacks have accumulated where, and then not notice when they break because of CSS/markup changes on upgrade.

Matt
jeckels2012-10-29 09:34Jon (LabKey DevOps)2018-11-16 23:23Javascript API for navigating wiki pages and for dataset level permissionsJavascript API for navigating wiki pages and for dataset level permissions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

1. It may not be the format you're looking for, but this data is exposed through out WebDAV interface as an XML file. You can get to it at the URL:

<CONTEXT_PATH>/_webdav/<CONTAINER_PATH>/@wiki/wikis.xml

For example, for the main documentation folder here on labkey.org (which is deployed with '/' as its context path), the URL is:

https://www.labkey.org/_webdav/home/Documentation/@wiki/wikis.xml

2. You should be able to use the same LABKEY.Security APIs, but use the dataset's EntityId as the resource ID.

Thanks,
Josh
Jon (LabKey DevOps)2015-04-16 11:49Jon (LabKey DevOps)2018-11-16 23:24Java Module Schema AccessJava Module Schema Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

You should be able to do this by using a non-standard ContainerFilter.

Although it isn't exposed as an option in the UI, you can add a URL parameter that shows data from all containers that the user has access to.

If you do the following, you should see all the folders:

1. Go to a container-specific data grid.
2. Click on Views -> Folder Filter -> Current folder and subfolders
3. Then edit the URL to replace the "CurrentAndSubfolders" value with "AllFolders" to expose all of the containers.

Give this a try and let us know if this works for you.

Regards,

Jon
bront@kcr.uky.edu2015-04-16 15:10Jon (LabKey DevOps)2018-11-16 23:24Java Module Schema AccessJava Module Schema Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

That's fantastic. I have never noticed that command before (in fact, I had to take a few minutes to find it).

So, I should be able to leverage this via the JavaScript API, correct? I will test.

I may leave this thread open for a couple of days until I get this sorted.

Many thanks,

bront
Jon (LabKey DevOps)2015-04-16 15:11Jon (LabKey DevOps)2018-11-16 23:24Java Module Schema AccessJava Module Schema Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

That is absolutely correct. We'll leave this thread open as you test this out in the meantime.

Regards,

Jon
Jon (LabKey DevOps)2015-04-21 13:09Jon (LabKey DevOps)2018-11-16 23:24Java Module Schema AccessJava Module Schema Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Just following up with you on this issue. Did the solution work out for you?

Regards,

Jon
bront@kcr.uky.edu2015-04-21 13:28Jon (LabKey DevOps)2018-11-16 23:24Java Module Schema AccessJava Module Schema Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

You couldn't have written at a better time. I am currently working on this.

Yes, I think this is going to work perfectly for us.

However, I just upgraded to 15.1, and I am running into a problem. Do you mind if I hijack this thread in a slightly different direction?

Suddenly, or so it seems, the following simple bit of code is returning either "Cannot read property of GetProxy' or just a straight 404. I am in my custom module. The tables are visible in the schema. Any idea what could be going on?

x = Ext4.create('Ext4.data.Store', {
    schemaName: 'mySchema',
    queryName: 'myTable',
    autoLoad: true
});

So… a few possibly related questions...

1. How should I import ext4 into my asp?
     resources.add(ClientDependency.fromPath("clientapi/ext4"));
      -or-
      resources.add(ClientDependency.fromPath("Ext4"));

2. For stores, should I be using:
    Ext4.create('Ext4.data.Store...
    -or-
    Ext4.create('LABKEY.ext4.data.Store...

3. Also, I am still exposing the tables via the code in the first section… I have since added mySchema.xml file under resources/schema. It's very simple and based on the demo module. Is this required? Does the .xml file give me finer control? Better security?

Many thanks,

bront
bront@kcr.uky.edu2015-04-21 13:40Jon (LabKey DevOps)2018-11-16 23:23Java Module Schema AccessJava Module Schema Access TEXT_WITH_LINKSClosed     LabKey Support Forum
OK…

Looks like :

resources.add(ClientDependency.fromPath("clientapi/ext4"));

and

x = Ext4.create('LABKEY.ext4.data.Store', {
    schemaName: 'mySchema',
    queryName: 'myTable',
    autoLoad:true
});

… are now working. Shall I assume this is correct?

The question about the use of the mySchema.xml file still stands. I'd appreciate any help or any resources that might clarify what that file can/should do.

Again, many thanks,

bront
Jon (LabKey DevOps)2015-04-22 22:22Jon (LabKey DevOps)2018-11-16 23:24Java Module Schema AccessJava Module Schema Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

The Schema XML file isn't required, but highly recommended. The file allows the platform to use canonical casing for the column names. Typically a database will often throw away the original upper/lower case name, so things like splitting CamelCase columns into individual words (e.g. OneTwoThree appears as One Two Three with spaces in-between). Additionally, we do require the Schema XML for our own modules (especially for automated tests). 3rd Party Modules might not be as restrictive to need it, but we still recommend using it since it also allows things like basic metadata to be utilized (e.g. Date Formatting, Column Labeling, etc).

Regards,

Jon
bront@kcr.uky.edu2015-04-23 09:52bront@kcr.uky.edu2015-04-23 09:52Java Module Schema AccessJava Module Schema Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Excellent. Thanks for that succinct overview of the schema XML file. I will work on implementing it.

bront
adam2014-06-03 08:51Jon (LabKey DevOps)2018-11-16 23:24Java ModulesJava Modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Currently, our build only sees module directories that reside under your main labkey directory. Try moving your new module directory to "server/customModules" or create a new directory for your modules, such as "server/bront_modules".

I know this isn't ideal, but ant has big limitations that seem to prevent accessing arbitrary file paths. I haven't experimented with symlinks, but using them might provide more flexibility in organizing module source.

Adam
bront@kcr.uky.edu2014-06-03 09:06Jon (LabKey DevOps)2018-11-16 23:23Java ModulesJava Modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Adam,

Thank you so much for your quick response. I really appreciate it.

Also, I'm not sure if I read them wrong or not, but it might help to clarify the instructions on Creating a New Module (https://labkey.org/wiki/home/Documentation/page.view?name=createNewModule).

They seem to indicate that a separate directory is preferable (or maybe I misinterpreted how to import the module).

"A directory in which to put the files. If you do not intend to check your module into the main LabKey Server SVN repository, we recommend pointing it to a location outside your existing LabKey Server source root.

Example. Following the conventions used in the existing modules, entering "MyModule" at the first prompt, and "c:\temp\module" at the second prompt yields the following output in the c:\temp\module directory"

Anyway, thanks again for your helpful insight.

bront
jeckels2014-06-03 09:15Jon (LabKey DevOps)2018-11-16 23:23Java ModulesJava Modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Good point - I think that guidance about file locations made more sense prior to the build changes. I updated the text to suggest putting it in a new directory under the main LabKey Server source root.

Thanks,
Josh
bront@kcr.uky.edu2014-06-03 09:36bront@kcr.uky.edu2014-06-03 09:36Java ModulesJava Modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

My thanks to you and Adam for your excellent support (as always).

b
Jon (LabKey DevOps)2015-03-09 14:49Jon (LabKey DevOps)2018-11-16 23:23Java module : configuring external data sources in labkey.xmlJava module : configuring external data sources in labkey.xml TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

So what you will want to do is to add an additional entry to your labkey.xml file that resides under the LABKEY_ROOT/webapps/ directory in your dev instance. This specific XML file acts as the template and creates a labkey.xml file that gets copied to the TOMCAT folder under TOMCAT_HOME/conf/Catalina/localhost/.

By default, the first few lines of that labkey.xml file will look like this:

===============
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="@@appDocBase@@" debug="0" reloadable="true" crossContext="true">
    
    <Resource name="jdbc/labkeyDataSource" auth="Container"
        type="javax.sql.DataSource"
        username="@@jdbcUser@@"
        password="@@jdbcPassword@@"
        driverClassName="@@jdbcDriverClassName@@"
        url="@@jdbcURL@@"
        maxActive="20"
        maxIdle="10"
        accessToUnderlyingConnectionAllowed="true"
        validationQuery="SELECT 1"
        />

    <Resource name="mail/Session" auth="Container"
        type="javax.mail.Session"
        mail.smtp.host="@@smtpHost@@"
        mail.smtp.user="@@smtpUser@@"
        mail.smtp.port="@@smtpPort@@"/>
===============

The data in the @@ sections retrieve their information from the LABKEY_ROOT/server/config.properties file. So you will want to add another entry to the XML file like this (my example uses a PostgreSQL Data Source):

===============
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="@@appDocBase@@" debug="0" reloadable="true" crossContext="true">
    
    <Resource name="jdbc/labkeyDataSource" auth="Container"
        type="javax.sql.DataSource"
        username="@@jdbcUser@@"
        password="@@jdbcPassword@@"
        driverClassName="@@jdbcDriverClassName@@"
        url="@@jdbcURL@@"
        maxActive="20"
        maxIdle="10"
        accessToUnderlyingConnectionAllowed="true"
        validationQuery="SELECT 1"
        />

<Resource name="jdbc/pgDataSource" auth="Container"
       type="javax.sql.DataSource"
       username="USERNAME"
       password="PASSWORD"
       driverClassName="org.postgresql.Driver"
       url="jdbc:postgresql://localhost:5432/test"
       maxActive="20"
       maxIdle="10" accessToUnderlyingConnectionAllowed="true"/>

    <Resource name="mail/Session" auth="Container"
        type="javax.mail.Session"
        mail.smtp.host="@@smtpHost@@"
        mail.smtp.user="@@smtpUser@@"
        mail.smtp.port="@@smtpPort@@"/>
===============

This will create a permanent data source to your labkey.xml file during development and will not get overwritten when you do any build updates.
 
For more information on configuring a specific external data source, please visit the link below:

https://www.labkey.org/wiki/home/Documentation/page.view?name=externalSchemas#config

Regards,

Jon
bront@kcr.uky.edu2015-03-10 06:54Jon (LabKey DevOps)2018-11-16 23:23Java module : configuring external data sources in labkey.xmlJava module : configuring external data sources in labkey.xml TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Great. Just what I was looking for.

Many thanks,

bront
jeckels2010-05-25 18:08Jon (LabKey DevOps)2018-11-16 23:24Java LoggingJava Logging TEXT_WITH_LINKSClosed     LabKey Support Forum
The default log level is set to WARN, so to get INFO and DEBUG level messages you'll need to tweak the log4j.xml file for the relevant classes. In a source code enlistment, you can find it at <LABKEY_ROOT>/webapps/log4j.xml.

Thanks,
Josh
Steve2015-01-13 11:51Jon (LabKey DevOps)2018-11-16 23:23java classpath separator - ; vs :java classpath separator - ; vs : TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will:

Thanks, I have updated the docs with your note.

- Steve
antoniosarco2017-02-12 22:21Jon (LabKey DevOps)2018-11-16 23:24java classpath separator - ; vs :java classpath separator - ; vs : TEXT_WITH_LINKSClosed     LabKey Support Forum
export CLASSPATH=/your/stuff/

or preserving system wide settings:

export CLASSPATH=$CLASSPATH:/your/addition/

the only different from Windows in terms of path-separators, : instead of ;

For example

java -classpath /mydir/mylib.jar:/otherdir/otherlib.jar com.MyProgram -Xmx64m

wildcard in the classpath to add multiple jars


java -cp "Halo.jar:lib/*" ni.package.MainClass

More about classpath...

http://net-informations.com/java/basics/path.htm

Anto
Matthew Bellew2012-05-02 10:19Jon (LabKey DevOps)2018-11-16 23:24java api with self-signed certificatejava api with self-signed certificate TEXT_WITH_LINKSClosed     LabKey Support Forum
This is not a definitive answer, but I got very frustrated trying to get Java to accept non-standard certificates. Since this is a development server, perhaps you could turn off the "Require SSL connections" in the site settings, and connect via "http:".

There is also some pointers to discussion on this topic here

https://www.labkey.org/announcements/home/Developer/Forum/thread.view?entityId=9021b8ac-857c-102c-86c6-d104f9cdea0a

Matt
dennisw2012-05-02 12:20Jon (LabKey DevOps)2018-11-16 23:23java api with self-signed certificatejava api with self-signed certificate TEXT_WITH_LINKSClosed     LabKey Support Forum
jeckels2012-05-02 12:32Jon (LabKey DevOps)2018-11-16 23:24java api with self-signed certificatejava api with self-signed certificate TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Could you post the exceptions you're getting?

I'm considering making a change to the way that setAcceptSelfSignedCerts() works so that it follows the pattern that I suggested in my other post. But first, I'd like to see what's happening that doesn't work with the existing implementation.

Thanks,
Josh
jdutra2012-05-03 13:51Jon (LabKey DevOps)2018-11-16 23:24java api with self-signed certificatejava api with self-signed certificate TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

I'm attaching an error log - I'm not sure if it will be any help or not. I tried Matt's suggestion, and ended up adding the certificate to Java's keystore as recommended in the workaround in the other thread. That worked - I no longer get the error.
jeckels2013-05-28 14:51Jon (LabKey DevOps)2018-11-16 23:24Java api: uploading files to a listJava api: uploading files to a list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Unfortunately, I don't believe that we have support for setting values for "Attachment" fields through these APIs. Giving a path to a file that's under the file/pipeline root for a given folder should work for "File Link" fields, but lists don't currently allow for that field type. For reference, File Links are just stored as a path (a pointer to a file), while Attachments store the binary content of the file itself.

Thanks,
Josh
Matthew Bellew2013-05-28 21:52Jon (LabKey DevOps)2018-11-16 23:23Java api: uploading files to a listJava api: uploading files to a list TEXT_WITH_LINKSClosed     LabKey Support Forum
The work around is to just do a regular http post the same as the default UI does it. You can post to the list/../update.view url that we use for updating lists items.
adam2017-05-24 12:21Jon (LabKey DevOps)2018-11-16 23:24Java API date returned in odd formatJava API date returned in odd format TEXT_WITH_LINKSClosed     LabKey Support Forum
System.out.println(row) will call toString() on row... which will call toString() on each map entry which will call toString() on each object value. The value you're seeing is the default Java Date.toString(). Can you inspect the individual objects and confirm that the API is giving you Date objects? If so, the API is doing what its supposed to do... translating each JSON value into the appropriate Java object. If you want to display Dates in a specific format your code will need to implement this via DateFormat or similar.

Adam
dennisw2017-05-24 12:26Jon (LabKey DevOps)2018-11-16 23:24Java API date returned in odd formatJava API date returned in odd format TEXT_WITH_LINKSClosed     LabKey Support Forum
That's a good point. I was trying to store the metadata for the column and the field values as separate objects (with a String for the value) and then join them up later, but maybe I need to evaluate the column type at each field as I'm reading it. Will let you know if that helps.
Matthew Bellew2012-02-10 14:26Jon (LabKey DevOps)2018-11-16 23:24Java API Client able to add studies to StudyProperties queryJava API Client able to add studies to StudyProperties query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jason,

It's great you got this far. However the Java API is focused mostly on querying and updating data, and not higher level operations like 'create a study'. Without investigating, I suspect this error is because there is no study-defined yet, so it won't allow you to update the study properties.

I think you might want to look into the documentation for our "study archive" format. The study archive is a .zip of files containing the study data and meta-data.

   https://www.labkey.org/wiki/home/Documentation/page.view?name=importExportStudy

You can then simply create a new folder and import. We support one study per folder, but multiple folders per project, so multiple studies per project are supported. To get started you can look at the demo study archive.

   https://www.labkey.org/wiki/home/Documentation/page.view?name=setupDemoStudy

and checkout the tutorials.

I hope that helps you get started,
Matt
Jason2012-03-02 12:40Jon (LabKey DevOps)2018-11-16 23:24Java API Client able to add studies to StudyProperties queryJava API Client able to add studies to StudyProperties query TEXT_WITH_LINKSClosed     LabKey Support Forum
I am trying to integrate LabKey with another application. I need to be able to create studies in LabKey from the other application in real time. So, the import study archive won't work unfortunately. Is there another API or method I can try?

Thanks,
Jason
Matthew Bellew2012-03-05 11:14Jon (LabKey DevOps)2018-11-16 23:24Java API Client able to add studies to StudyProperties queryJava API Client able to add studies to StudyProperties query TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm pretty sure we can get this to work pretty well, but I think this requires a long answer. First, you can always call our URLs directly to invoke the functionality of the server. There are cases when useful functionality has not yet been wrapped as a documented javascript API, or where it's awkward to wrap it.

In this case folder creation can be accomplished by posting to "/{contextPath}/admin/{parent folder path}/createFolder.api". This action expects there parameters:

        String name;
        String folderType
        String activeModules[]
        String defaultModule

Likewise a study can be imported either by posting a study archive file or a path to study archive file using "{contextPath}/study/{path}/importStudy.api" (or importStudyFromPipeline.api).

ImportStudy just takes a multi-part encode POST with one file for the study archive.

NOTE that in 12.1 we are releasing a "folder archive" feature similar to the study archive feature. This might be useful as you can create a template folder and then export it. This would capture folder type, active modules, default web part layouts, etc.

Then you would simply post the folder archive, followed by the study archive.

It might be easiest to prototype this with and HTML/Javascript page, using form posts, then translate the result into working Java code. Feel free to follow up with me in email or on the phone to get this working.

Matt
marki2010-04-08 13:44Jon (LabKey DevOps)2018-11-16 23:23I think this is a bug - or very odd behaviorI think this is a bug - or very odd behavior TEXT_WITH_LINKSClosed     LabKey Support Forum
Leo Dashevskiy2012-05-15 13:29Leo Dashevskiy2012-05-15 13:29Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok Matt, yeah, thanks, I forgot my SQL basics a little bit and was mislead by my own post, I guess.

WHERE FCSFiles.Keyword."Sample" != ''

works just fine.
Leo Dashevskiy2012-06-21 20:23Leo Dashevskiy2012-06-21 20:23Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, I think, I got it, thanks Ben!
Ben Bimber2012-05-14 19:57Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi leo,

this is difficult to answer without seeing your data, but postgres will treat empty strings differently than null. could you try:

WHERE <curElemMod> != ''

and see if this excludes the records you expect? if this is true, as a general rule i would recommend converting empty strings to null as these sort of problems will creep in.
Matthew Bellew2012-05-15 08:26Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
In this case, "keyword" is from a LabKey defined table, and can not be null. I wouldn't have expected there to be any empty strings, but we must have read an FCS file that had an empty keyword name. Weird. My recommendation is the same as Ben's using col != '' in SQL should work. I'm not sure we have a LABKEY.Filter way to express that since we try not to use empty strings because it's too confusing.

Matt
Leo Dashevskiy2012-05-15 11:59Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks guys for the answers.

Here is the original SQL:

SELECT DISTINCT FCSFiles.Keyword."Sample" AS Sample
FROM FCSFiles
ORDER BY Sample

resulting in:

Sample
Comp
PBS
_

(the last row is blank, I used _ to highlight that)

Though, this query:

SELECT count(DISTINCT FCSFiles.Keyword."Sample") AS Sample
FROM FCSFiles
ORDER BY Sample

results in:

Sample
2

I guess count() does not include null/empty rows (I'm still not 100% clear if it's empty or null despite what you say...)


Whereas:

SELECT DISTINCT FCSFiles.Keyword."Sample" AS Sample
FROM FCSFiles
WHERE Sample != ''
ORDER BY Sample

give the following error:

ERROR: invalid input syntax for integer: "" Position: 1093


Though, if on top of the first query in the table view I was to apply a LABKEY filter type: "Is Not Blank", then I get exactly what I need (the same result as the first query, but without the last row!) and the info message about the filter is: "Filter: (Sample IS NOT NULL)", but that does not seem to mean in SQL "Sample IS NOT NULL", because that still results in an empty query.

I was about to think that I got my answer: I exported the query and the filter into JavaScript and got the following filter applied to the selectRows() Labkey call: LABKEY.Filter.create('Sample', '', LABKEY.Filter.Types.NOT_MISSING)
which is not what I used first (was missing the 2nd argument ''), but if I was to apply the same filter to my store, it still does not work.

Feel free, if you wish, to log into the test server (use your hutch credentials), go to "Test Flow" project and browse the files and play with the query browser:
http://dhcp157184.fhcrc.org:8080/labkey

Thanks.
-Leo
Matthew Bellew2012-05-15 12:58Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
My mistake, I thought you were querying the keyword names as opposed to the values. FCSFiles.Keyword.Sample could be null or empty (if it's empty, we should fix the code to turn those into nulls).

Note that in this query


SELECT DISTINCT FCSFiles.Keyword."Sample" AS Sample
FROM FCSFiles
WHERE Sample != ''
ORDER BY Sample


The "Sample" in the in WHERE clause is different than the "Sample" in the SELECT or ORDER BY. The "Sample" in the WHERE clause is a synonym for FCSFiles.Sample which is different than FCSFiles.Keyword.Sample. The "Sample" in the ORDER BY matches first against the columns in the SELECT list, per standard SQL rules. If it doesn't match anything it will fall-back to trying the usual matching rules and look for "FCSFiles.Sample".

Matt
Leo Dashevskiy2012-05-21 16:44Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, so I am now wondering: is it possible in LABKEY.ext.Store to have the null/empty values replaced by something more meaningful, like "null" or "N/A" ?

Either on the server side (via a config or an SQL hack) or on the client side manipulating the store itself?

Because the way it is right now, if they're empty, then there is no way to select these rows via (Lov)ComboBox!

Thanks.
Ben Bimber2012-05-21 18:38Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi leo,

rather than throw a placeholder in the value (&nbsp; is probably what you'd want), the way you generall accomplish something like this is using custom Ext render tpl:

http://docs.sencha.com/ext-js/3-4/#!/api/Ext.form.ComboBox-cfg-tpl

however, if you use LABKEY.ext.ComboBox there's a build-in way to handle this. On your store, set nullRecord to something like:


                config.nullRecord = {
                    displayColumn: 'myDisplayColumn,
                    nullCaption: "[none]"
                };

this will cause the store to add a placeholder record with a null value and '[none]' as the display value. however, with a LOVCombo, that may not be what you're looking for (multi-select being different than a traditional combo).

next you'd want to explore the tpl of your combo. this is what renders the value. something like:

                    tpl: new Ext.XTemplate(
                        '<tpl for=".">' +
                        '<div class="x-combo-list-item">{[values["' + l.keyColumn + '"]!==null ? values["' + l.displayColumn + '"] : "'+ (Ext.isDefined(this.lookupNullCaption) ? this.lookupNullCaption : '[none]') +'"]}' +
'</tpl>'+
                        '&nbsp;</div></tpl>'
                        )

should do it. that's one was written for the more general case and could be simplified if you have a fixed name for the display/value columns or the null caption. this tpl could also be modified to show more than 1 column, so you could show both the display column and the raw value.
Leo Dashevskiy2012-05-22 10:47Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, Ben, I will investigate your suggestion.

So there is such thing as LABKEY.ext.ComboBox?
I have not seen any mentioning of it in the documentation, is there any?
Ben Bimber2012-05-22 10:50Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
it's not technically part of the public API; however, it actually overrides the xtype 'combo', so if you use:

{
xtype: 'combo',
....other config...
}

it will create one. you can see the code in FormPanel.js, which is part of the API.

The majority of the options I described above are standard Ext, and your best bet if the Ext doc for those. If you need multi-select (ie. LOVCombo), then using the LABKEY.ext.Combo really wouldnt apply here.
Leo Dashevskiy2012-05-23 12:04Jon (LabKey DevOps)2018-11-16 23:23Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben (or anyone else),

while we touched on this subject,
could you, please, explain to me the ideas of a template (example above for instance) and a plug-in (comboBox in FormPanel.js, I believe) in Ext JS, specifically what powerful customization do they allow for ?

Thanks.
Ben Bimber2012-05-23 16:53Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

These two questions are really ext-specific and I would encourage you to check out Ext's documentation and forums. The template I describe is a config option available with Ext comboboxes which allows you to define a custom template (ie. the code behind how that HTML is generated) for each item in the drop-down menu. templates are quite useful, but you need to be careful when overriding Ext's default templates. If you want to learn about them, I encourage you to read the following:

http://docs.sencha.com/ext-js/3-4/#!/api/Ext.Template

http://docs.sencha.com/ext-js/3-4/#!/api/Ext.DataView

The latter is probably the most appropriate place to learn to use them.

To learn more about plugins, I also encourage you to check out Ext's doc. In this instance, we created a plugin to customize the Ext combobox. This particular plugin is predominantly used to auto-size the width of the pick-list. While plugins are sometimes the appropriate mechanism, it's far more common that subclassing an Ext component is going to get you what you need.
Leo Dashevskiy2012-06-21 15:58Jon (LabKey DevOps)2018-11-16 23:23Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben, in your post on the 21st of May above seems like there is a mismatch in the markup:

tpl: ... <tpl><div> ... </tpl></div></tpl>

isn't there?

Could you, please, provide a fixed one, if there is or assert that it is written correctly and should be used as-is?

Also, what exactly in that expression is the "l." is it "this" if I put this under the tpl config of the combo?

And by the way nullRecord, mentioned in the same post, is an undocumented config option for the Labkey.ext.Store?

Thanks.
Ben Bimber2012-06-21 18:21Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Yes, the original post is probably a typo. I extracted that code from a more complex template, and probably forgot to remove one of the </tpl> tags.

My earlier post was assuming you were using Ext3. In Ext3, LabKey overrode the default Ext combo to add a few behaviors. Primarily, this involved the ability of the list to automatically resize itself based on the width of the items, and there are options surrounding blank records. These include the ability to set a custom caption (ie. nullCaption), and the ability to have the combo automatically add a blank record to the store if no record was present. These are not really part of our public API and probably not included with those docs.

In Ext4, I think we will do things a little differently. In Ext4, more of these options are built into the combo, or available with pretty good UX components. Therefore there is less need to create a labkey-specific component. For your work, understanding how Ext Xtemplates work can be really helpful, and I'd encourage you to take a look at the example above and be sure you understand what it's trying to do. Ext's docs are pretty good for them as well. Many extensions of fields can be handled cleanest by customizing the field tpl.
Leo Dashevskiy2012-06-21 18:34Jon (LabKey DevOps)2018-11-16 23:24Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yeah, so I was trying to understand the example above and was wondering if you could, please, explain:

1) what is "l.",lower case L, seen together with "keyColumn" and "displayColumn"? and what are those two columns, configs of the store? I do not see them in the Ext's store, are they custom ones of the Labkey.ext.store?

2) what should be the correct expression for that example above? which div/tpl/anything else should be removed to make it correct?

am I correct to interpret that it should be this:

tpl:'<tpl for=".">' +
                                '<div class="x-combo-list-item">{[values["' +
                                this.keyColumn + '"]!==null ? values["' + this.displayColumn + '"] : "' +
                                (Ext.isDefined(this.lookupNullCaption) ? this.lookupNullCaption : '[other]') +'"]}' +
                                '</div>' +
                            '</tpl>',

if that's the case, then I almost understand, what it's doing, except for the bit in question 1)
Ben Bimber2012-06-21 20:21Jon (LabKey DevOps)2018-11-16 23:23Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ?Is this the right way to exclude rows with NULL values from the LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I think you get it. As I said earlier, this template was extracted from more complex code. For the reasons you've been finding, perhaps it isnt the best example. The 'l' makes sense in the context where this template came from. Your replacement with 'this' is probably going to be correct.

The best way to approach this sort of problem is usually to see what template the Ext component you are extending uses by default. These templates frequently change between Ext revisions. Assuming you are using Ext3, you can find it here:

http://docs.sencha.com/ext-js/3-4/source/Combo.html#Ext-form-ComboBox-cfg-tpl

That is the template on which my example is based. You'll see that the example takes the Ext code and augments with additional options. To make an Ext4 version, you would use a similar approach.

To your first question: displayColumn and lookupColumn are attributes on LabKey Field metadata objects. See our docs on LABKEY.Query.FieldMetaData for more. In your example, you probably want to be using the Combo's displayField / valueField properties. That's what Ext's default template does.
Jon (LabKey DevOps)2019-10-30 22:39Jon (LabKey DevOps)2019-10-30 22:39Is there a way to create a container from the java api?Is there a way to create a container from the java api? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Corbin,

For future, please use the Support Portal for Atlas in lieu of the public forums.

The URL you're looking at is outdated. That particular doc is for LabKey 9.3, not the latest version.

And the endpoint to create containers does exist here:

https://www.labkey.org/download/clientapi_docs/java-api/org/labkey/remoteapi/security/CreateContainerCommand.html

Regards,

Jon
ccharpen2019-10-31 09:19Jon (LabKey DevOps)2019-10-31 11:08Is there a way to create a container from the java api?Is there a way to create a container from the java api? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ah, I see. This the 9.3 URL was the only URL returned by google when searching for GetContainersCommand. I'll be more scrupulous of URLs in the future.

Should I post all questions from us in the support portal from now on? This seemed publicly applicable.
Jon (LabKey DevOps)2019-10-31 11:08Jon (LabKey DevOps)2019-10-31 11:08Is there a way to create a container from the java api?Is there a way to create a container from the java api? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Corbin,

Yes, the public forums are mainly for Community users to post questions and per our guidelines, some things we are very limited in providing support for via the Forums, such as dev related questions (see https://www.labkey.org/home/Support/wiki-page.view?name=communityForumGuidelines for more information)

Since you're apart of the Atlas group and have access to the Support Portal, it is recommended that you use that instead since it allows us to better track your issues/questions and provide you information/support that is only available for Premier Editions clients, such as providing dev support.

Regards,

Jon
Leo Dashevskiy2014-07-03 12:37Leo Dashevskiy2014-07-03 12:37Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Precisely what we might need. Thanks, Josh!
Leo Dashevskiy2015-10-20 14:49Leo Dashevskiy2015-10-20 14:49Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Implemented. Thanks, guys!
jeckels2014-07-03 12:24Jon (LabKey DevOps)2018-11-16 23:24Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

This is part of the response from LABKEY.Security.getContainers(). See the "activeModules" property:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Security.html#.getContainers

Thanks,
Josh
Leo Dashevskiy2014-07-23 14:39Jon (LabKey DevOps)2018-11-16 23:24Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
A related question:

Is there some place within a custom module (in module.properties or begin.webpart.xml or some other meta file elsewhere), where a text can be inserted, which is the description of this module?

Moreover, I would want it to be query-able, so that there is a row in some table with a pair <module name> | <module description> ?

Thanks.
-Leo
Leo Dashevskiy2014-07-29 14:15Jon (LabKey DevOps)2018-11-16 23:23Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Anyone?
Ben Bimber2014-07-29 14:29Jon (LabKey DevOps)2018-11-16 23:24Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo - it doesnt look like anything does this currently, but this small change to LABKEY.Security.getModules() would make this include description. You can see if LK wants to include this or something like it in the core.
Leo Dashevskiy2014-07-29 14:50Jon (LabKey DevOps)2018-11-16 23:23Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks Ben!

So do I understand correctly that a module's description can already be specified somewhere, if so, where exactly?
Though it is not query-able? Is that right? And your patch would make it so?
But your patch is not self-contained, is it?
getDescription() method would need to be defined for object m's class, yes?
Leo Dashevskiy2014-08-21 10:36Jon (LabKey DevOps)2018-11-16 23:24Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh, is there a difference between the API LABKEY.Security.getContainers() you mentioned above and just accessing LABKEY.container.activeModules ? (One thing I know is that the latter is instantaneous and the former needs to rely on a success callback, so I prefer the latter then...)

Ben, would you, please, comment on the questions I raised in the previous post (in reply to yours).

Thanks.
-Leo
jeckels2014-08-21 10:42Jon (LabKey DevOps)2018-11-16 23:23Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

It should be identical for the current container. The both use the same code to build up the JSON.

LABKEY.Security.getContainers() lets you target another container, and allows you to request information about children as well.

Thanks,
Josh
Ben Bimber2014-08-21 10:52Jon (LabKey DevOps)2018-11-16 23:24Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Modules do have the ability to specify a description for themselves. The way they do this will vary depending on what kind of module you're using. If you have a java module, then just override Module.getDescription(). I believe file-based modules will probably have a way to set this, I'd assume either using the module.properties file or module.xml; however, I have not played around with that.

The patch I sent would simply cause this description to get included in the module JSON that is created with either LABKEY.container.activeModules or LABKEY.Security.getContainers(). Currently that JSON includes other information, but not description. I didnt see any other way for custom code to figure out module description currently.

Whether this makes modules 'queryable' will depend on exactly how you're defining that term. There isnt no SQL-based approach I know about. The APIs described above will return JSON with an array of available modules which would let your code iterate them and query that information. I'd need to know more about what you're trying to do.
Leo Dashevskiy2014-08-21 11:01Jon (LabKey DevOps)2018-11-16 23:24Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM]Is there a way (API) to access / query for a list of enabled modules in a given subfolder? [EOM] TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Josh, makes sense.

Ben, I'm using file-based modules and in the specs I found, there is no mentioning of a 'description' field: https://help.labkey.org/wiki/home/Documentation/page.view?name=includeModulePropertiesFile&_docid=wiki%3A35edf503-f4be-1031-99a6-daf491c343ac

It would be nice, LabKey folks, to include such a functionality...

For now we have to rely on a manually maintained list.
kevink2010-07-09 11:48Jon (LabKey DevOps)2018-11-16 23:24is the LABKEY.ext.formPanel example right?is the LABKEY.ext.formPanel example right? TEXT_WITH_LINKSClosed     LabKey Support Forum
You're correct. You need to provide a handler for the submit button. I will update the docs with a better example.
Ben Bimber2010-07-09 12:15Jon (LabKey DevOps)2018-11-16 23:23is the LABKEY.ext.formPanel example right?is the LABKEY.ext.formPanel example right? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, not a big deal. i have a few other questions just to make sure i'm understanding the big picture of LABKEY.ext.FormPanel:

1. It's primarily designed to assist with the creation of the web form itself. It helps interpret labkey metadata to create the proper Ext components. It will assist with displaying error messages.

2. It does not do anything special to help submit the data. It will inherit from Ext.form.FormPanel though. If I'm going to try to use this to build EHR data entry forms (data submitted into one or more datasets), I would probably just add my own onSubmit handler.

3. Is does not seem to do anything to provide warnings if you try to have entered data, but try to navigate away (i think this is called setDirty() in LABKEY.form). Am I missing that? Does it inherit something from ext?

Thanks.
kevink2010-07-09 13:22Jon (LabKey DevOps)2018-11-16 23:24is the LABKEY.ext.formPanel example right?is the LABKEY.ext.formPanel example right? TEXT_WITH_LINKSClosed     LabKey Support Forum
1. Yes, LABKEY.ext.FormPanel will help you by building the form items using the select rows metadata.

2. It doesn't do anything special to subit the form. I haven't used Ext's FormPanel much, but you may be able to use Ext.form.action.Submit.

3. It looks like LABKEY.Form does the dirty checking for you, but LABKEY.ext.FormPanel does not. I don't know if this is be design or just an oversight.

I haven't tried this, but it looks like you should be able to create a LABKEY.Form over the form of the LABKEY.ext.FormPanel. Something like:

var lkform = new LABKEY.Form({ formElement: myFormPanel.getForm() });

If that doesn't work, you can install a window.onbeforeunload handler to check form.isDirty() before nvaigating away. You can do this yourself or use the LABKEY.beforeunload helper function. The LABKEY.beforeunload helper takes a callback where you can add your own dirty check:

window.onbeforeunload = LABKEY.beforeunload(function () {
    return myForm.isDirty();
});

The form's isDirty() method is true when any of the fields have been changed from their original values.
Leo Dashevskiy2014-08-21 14:10Leo Dashevskiy2014-08-21 14:10Is that a bug?Is that a bug? TEXT_WITH_LINKSClosed     LabKey Support Forum 
Nick Kerr2014-08-21 09:41Jon (LabKey DevOps)2018-11-16 23:24Is that a bug?Is that a bug? TEXT_WITH_LINKSClosed     LabKey Support Forum
This looks like a case we might have missed for having a specific view require Ext 3 (or Ext 3 and the associated APIs). I'll look into this and see if I can reproduce the case you are mentioning.

Thanks for the post.

Nick
Nick Kerr2014-08-21 14:05Jon (LabKey DevOps)2018-11-16 23:24Is that a bug?Is that a bug? TEXT_WITH_LINKSClosed     LabKey Support Forum
I was able to get a repro on the data tab and have fixed the issue with reports. Thanks! Let me know if you end up seeing any other cases like this. Nice of you to roll with that flag unchecked.
Jon (LabKey DevOps)2022-01-05 13:48Jon (LabKey DevOps)2022-01-05 13:48Issue with web socketsIssue with web sockets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Have you had a chance to review our docs regarding WebSockets?

https://www.labkey.org/Documentation/wiki-page.view?name=trouble#websocket
https://www.labkey.org/Documentation/wiki-page.view?name=configTomcat#websocket

If I'm looking at your rewrite rule correctly, I think you might be missing the _websocket prefix as described in our docs.

Regards,

Jon
bront@kcr.uky.edu2022-01-11 12:15bront@kcr.uky.edu2022-01-11 12:15Issue with web socketsIssue with web sockets TEXT_WITH_LINKSActive     LabKey Support Forum
Hi,

I am glad you found this helpful.

It took us about a day of reading and testing to discover that this code worked all along. Not sure where we were going wrong (might have been associated with "graceful" restarts of Apache, but not sure that was the case either.

Regardless, this is working for us now.

Thanks,

bront
bront@kcr.uky.edu2022-01-11 12:17bront@kcr.uky.edu2022-01-11 12:17Issue with web socketsIssue with web sockets TEXT_WITH_LINKSActive     LabKey Support Forum
Peter2011-05-12 15:04Jon (LabKey DevOps)2018-11-16 23:24Issue with MS2 Notification API using subfoldersIssue with MS2 Notification API using subfolders TEXT_WITH_LINKSClosed     LabKey Support Forum
Jean,

Following our phone call earlier this week, I think you were right to question the pipeline / folder setup as a possible source of the problem here. By default, every project and every folder within a labkey site that has a pipeline web part has its own pipeline root. The folder name @files indicates a new pipeline root at that level in the hierarchy-- so the Aggregates folder has its own pipeline root. Given your current LabKey project/folder & pipeline structure, you would need to change the config.properties file to point to

pipelineRoot: T:/LabKeyRoot_v11/v11_Test/Aggregates/@files

in order to kick of jobs and notify of new files for that folder. But I think the better solution by far is to setup a custom pipeline root at your project level. In the Pipeline Manager web part, click on Setup and change the pipeline root to "set a pipeline override". Have it point to a location on your shared filesystem that does not include an "@files" folder in the path, to make it clear that this is a custom pipeline root. ( you may need to move existing files to go underneath this news pipeline root directory .

In subfolders of the project, leave the pipeline root as inherited. You will still be able to load runs both manually and via the notification apis into subfolders, and you wont need to change the config.properties file for the notification calls.

Peter
jean.matscher@novartis.com2011-05-13 06:59Jon (LabKey DevOps)2018-11-16 23:23Issue with MS2 Notification API using subfoldersIssue with MS2 Notification API using subfolders TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Peter

thanks for the reply...
I've changed the pipeline root to what you noted but still get the error... Maybe we look into this another time.

Creating a new folder, assigning a custom pipeline root, adding the subfolder did work out well, files are added in the assay list for both root and subfolder! (Testing notification call is outstanding, but not today...)
I'll have to figure out the impact on the setup for our user, but that's another story :-)

Cheers,
Jean
Peter2011-05-16 08:47Jon (LabKey DevOps)2018-11-16 23:24Issue with MS2 Notification API using subfoldersIssue with MS2 Notification API using subfolders TEXT_WITH_LINKSClosed     LabKey Support Forum
Jean,

Josh corrected me. The notify command takes a folder path in the config.properties file, so you would need to change the config file (point to a different one) to get it to work with a subfolder. Did you do that in your test?

Setting up a custom pipeline root and letting subfolders inherit it is a good idea for your configuration in any case.

Peter
jeckels2011-04-29 11:40Jon (LabKey DevOps)2018-11-16 23:24Issue with MS2 Notification APIIssue with MS2 Notification API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jean,

I think that you'll need to use a version of that same JAR file that includes additional code. It should be called labkey-client-api-11.1-complete.jar. I'm attaching a copy to this message.

Thanks,
Josh
jean.matscher@novartis.com2011-05-02 00:12Jon (LabKey DevOps)2018-11-16 23:24Issue with MS2 Notification APIIssue with MS2 Notification API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh, all

thanks for the fast reply...
I've used the file you posted and the requests now get added to the Assay List. (See screenshot)

At the end of the cmdline output (See attachment) we get the error:
'Exception in thread "main" java.lang.reflect.InvocationTargetException'
Caused by: java.lang.IllegalArgumentException: Failed to load requested protocol 'nitro_test_with_fasta_IDX2.xml', it may not exist.

The expected location of the protocol accordong to the MS2SearchClient notes would be T:\LabKeyRoot_v11\v11_Test\@files\.labkey\protocols\sequest\ in our case, I verified the file nitro_test_with_fasta_IDX2.xml does exist there.


I cannot spot where the mistake is, so I zipped all related files and attached them to this posting.
Can you help us here?

Thanks for all, cheers
Jean
jeckels2011-05-02 15:39Jon (LabKey DevOps)2018-11-16 23:23Issue with MS2 Notification APIIssue with MS2 Notification API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jean,

That looks like it should be the right place for the file. I looked at the file itself and it looks OK.

Can you manually launch searches, going Process and Import Data on the web server, using that protocol?

Are the permissions on that file the same as other files in that directory?

Thanks,
Josh
jeckels2011-05-02 15:42Jon (LabKey DevOps)2018-11-16 23:23Issue with MS2 Notification APIIssue with MS2 Notification API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jean,

I hadn't opened your CSV before responding. Try just using the protocol name, without the .xml extension. I think that should do the trick.

Thanks,
Josh
jean.matscher@novartis.com2011-05-03 09:13Jon (LabKey DevOps)2018-11-16 23:24Issue with MS2 Notification APIIssue with MS2 Notification API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh, all

thanks, removing the extension did the trick... (I should have spotted that, sorry...)
The first file, which is already present, is now processed, neat! The 2 other jobs are waiting for the file to be present, see screenshot.


Continuing our testing, I copied the next raw file to the share and started the command to notify LabKey that new files are available:
C:\temp\OrbitrapFiles>java -Done-jar.main.class=org.labkey.remoteapi.test.PipelineFileAvailableClient -jar labkey-client-api-11.1-complete.jar

Here we get a 'Failure! Response code: 404' (see log file) and the files are still in status 'WAITING FOR FILE'.

Can somebody help also here?
Thanks in advance, best regards

Jean
jeckels2011-05-03 10:50Jon (LabKey DevOps)2018-11-16 23:23Issue with MS2 Notification APIIssue with MS2 Notification API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jean,

Are you trying to notify that files are available in the same project/folder as your previous post? From the log, the availability notification is attempting to use /test-v11, but the log file for the metadata submission is targeting /v11_Test.

Thanks,
Josh
jean.matscher@novartis.com2011-05-04 02:09jean.matscher@novartis.com2011-05-04 02:09Issue with MS2 Notification APIIssue with MS2 Notification API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

absolutely right again, I had updated my local file only... All works as expected, next step is using subfolders :-)
Thanks a lot, I close this one...

Cheers
Jean
Leo Dashevskiy2013-01-15 18:03Leo Dashevskiy2013-01-15 18:03Issue with LABKEY.ext.StoreIssue with LABKEY.ext.Store TEXT_WITH_LINKSClosed     LabKey Support Forum
Matthew Bellew2010-03-15 16:44Jon (LabKey DevOps)2018-11-16 23:24issue with cross-folder query?issue with cross-folder query? TEXT_WITH_LINKSClosed     LabKey Support Forum
This is a little confusing. In the documentation "Project" literally means the word "Project" as an alias for the current project. Since you have a fully qualified path (to a different project) you want


SELECT
e.PersonID
FROM "/WNPRC/WNPRC_Units/Animal_Services/Compliance_Training/Private/EmployeeDB/".lists.Employees e
jeckels2010-03-15 16:46Jon (LabKey DevOps)2018-11-16 23:24issue with cross-folder query?issue with cross-folder query? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

In this case, the first identifier should be Project, not WNPRC. It resolves to the current folder's project, and is always called Project.

SELECT
e.PersonID
FROM Project."WNPRC_Units/Animal_Services/Compliance_Training/Private/EmployeeDB/".lists.Employees e

In 10.1, we introduced a new cross-project syntax that would also work for you. To use it, you'd write a query like this:

SELECT
e.PersonID
FROM "/WNPRC/WNPRC_Units/Animal_Services/Compliance_Training/Private/EmployeeDB/".lists.Employees e

Thanks,
Josh
Ben Bimber2010-03-15 16:48Jon (LabKey DevOps)2018-11-16 23:24issue with cross-folder query?issue with cross-folder query? TEXT_WITH_LINKSClosed     LabKey Support Forum
got it. thanks.
WayneH2017-10-30 10:15Jon (LabKey DevOps)2018-11-16 23:24Issue updating rows in a dataset via perl apiIssue updating rows in a dataset via perl api TEXT_WITH_LINKSClosed     LabKey Support Forum
note: when I try to delete data in my test table using the deleterows function in javascript... it won't work unless I specify 'lsid' as the "key" which makes sense to some extent as the table definition shows 'lsid' as the primary key for this table. Problem is I don't know what are the values for this field and I can't seem to figure out how to do a global delete which is ultimately what I would like to do. When I use the example shown below it claims success but it does not change the table..

Using anything else gives the following error "No lsid, and no KeyManagement"

W

js sample:

<p><button onclick="onSubmit()">Click me to delete a record</button></p>

<script type="text/javascript">

function onSubmit(){
LABKEY.Query.deleteRows({
    requiredVersion: 16.3,
    schemaName: 'study',
    queryName: 'test',
    rows: [{'lsid':'1'}],
    success: onSuccess
});

function onSuccess(results) {
                  alert('Success!');
                 }
}
</script>
Jon (LabKey DevOps)2017-11-04 21:46Jon (LabKey DevOps)2018-11-16 23:24Issue updating rows in a dataset via perl apiIssue updating rows in a dataset via perl api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

To do an updateRows properly, you need to identify the Primary Key for the table you're working against. When it comes to a dataset, the Primary Key is usually the LSID as you observed.

Take a look at my basic Javascript updateRows function that I used in a wiki to change the Race of one of the records:

<script type="text/javascript">

LABKEY.Query.updateRows({
        schemaName: 'study',
        queryName: 'Dataset001',
        rows: [{"lsid": "urn:lsid:labkey.com:Study.Data-122:5003.1001.20171030.0000",
            "Race": "Native"
            }],
        success: function(data) {
            alert("Record is updated!");
            }
        })
</script>

As you can see, it uses the lsid to identify the specific row since it's the primary key for the table, then updates the specific field.

I managed to do the same exact thing using R:

> library(Rlabkey)
Loading required package: RCurl
Loading required package: bitops
Loading required package: rjson

> updaterow=data.frame(lsid="urn:lsid:labkey.com:Study.Data-122:5003.1001.20171030.0000", Race="Asian")
> updatedRow <- labkey.updateRows(baseUrl="http://localhost:8080/labkey", folderPath="/WayneTest", schemaName="study", queryName="Dataset001", toUpdate=updaterow)

> updatedRow
$rowsAffected
[1] 1

$queryName
[1] "Dataset001"

$schemaName
[1] "study"

$containerPath
[1] "/WayneTest"

$rows
$rows[[1]]
$rows[[1]]$date
[1] "2017/10/30 00:00:00"

$rows[[1]]$`Saliva Dt`
[1] "2015/12/31 00:00:00"

$rows[[1]]$dsrowid
[1] 12

$rows[[1]]$WGS
NULL

$rows[[1]]$CreatedBy
[1] 1005

$rows[[1]]$WES
NULL

$rows[[1]]$QCState
NULL

$rows[[1]]$CIDR
[1] "1"

$rows[[1]]$Created
[1] "2017/11/04 20:41:02"

$rows[[1]]$lsid
[1] "urn:lsid:labkey.com:Study.Data-122:5003.1001.20171030.0000"

$rows[[1]]$Ethnicity
[1] "non-hispanic"

$rows[[1]]$sourcelsid
NULL

$rows[[1]]$Race
[1] "Asian"

$rows[[1]]$Birthyr
[1] 2001

$rows[[1]]$`Buccal Dt`
[1] "2015/12/20 00:00:00"

$rows[[1]]$SampleID
[1] "1001"

$command
[1] "update"

==========

Can you provide more information on what you mean by "global delete"? Do you mean deleting multiple rows? What did you mean when you say that you "don't know what are the values for this field" with regard to the LSID? Are you talking about obtaining the LSID from the dataset or are you talking about the LSID format, such as "urn:lsid:labkey.com:Study.Data-122:5003.1001.20171030.0000"?

Regards,

Jon
WayneH2017-11-05 22:56Jon (LabKey DevOps)2018-11-16 23:24Issue updating rows in a dataset via perl apiIssue updating rows in a dataset via perl api TEXT_WITH_LINKSClosed     LabKey Support Forum
The project is using a script that requires the ability to rewrite a table or f data rather than editing rows. Partly because f effIciency concerns and partly because the developer o f the script prefers to Update the entire table with a new array of data each time the script is run. Don’t see any way to delete all the data in a table and write a new array to table. Thought we could use deleterows and updaterows function but my colleague could not get it working.
We did try to determine the LSID for indIvidual rows to edit datasets but couldn’t call that up in a table hence the question. However we didn’t spend much time on that.

W
Jon (LabKey DevOps)2017-11-06 00:27Jon (LabKey DevOps)2017-11-06 00:27Issue updating rows in a dataset via perl apiIssue updating rows in a dataset via perl api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

The only way to update a table is either via individual rows or in batches when it comes to the API. Even if you choose to try and truncate the data from the table, it basically would do the same thing, deleting individual rows and then inserting new ones.

If you're looking to try and delete data in a table and write new data to it, I would suggest looking into using an ETL since can do a truncation, which would remove data from a table and then re-insert new rows on a table within LabKey.

https://www.labkey.org/Documentation/wiki-page.view?name=etlModule

Regards,

Jon
WayneH2017-11-06 10:33Jon (LabKey DevOps)2018-11-16 23:24Issue updating rows in a dataset via perl apiIssue updating rows in a dataset via perl api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Jon,

One more on this...
in lieu of the etlmodule, can we perhaps use the executesql function? Also, what do you mean when you say batch process.. just looping the single process or is there another way to do in one step?

Thanks,

W
Jon (LabKey DevOps)2017-11-10 12:27Jon (LabKey DevOps)2017-11-10 12:27Issue updating rows in a dataset via perl apiIssue updating rows in a dataset via perl api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Unfortunately, the executeSql function within the LabKey Javascript API is limited to doing LabKey SQL, which means you're only allowed to do SELECT statements. INSERT, UPDATE, and DELETE SQL commands are not allowed and you would have no other option, but to use the insertRows(), updateRows(), and deleteRows() options.

The batch process I'm referring to is using the saveRows() function instead where you can bundle update, insert, and delete requests to multiple tables in a single request.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.saveRows

However, regardless of whichever option you use, you would have to find a way to collect all of those Primary Keys and then apply the appropriate function to update or delete them if you are choosing to write a script to handle it in lieu of an ETL.

Regards,

Jon
Matthew Bellew2011-08-18 16:42Jon (LabKey DevOps)2018-11-16 23:23Issue TrackerIssue Tracker TEXT_WITH_LINKSClosed     LabKey Support Forum
Believe it or not there is no UI for deleting issues. Mostly people just ignore closed issues, so it hasn't been a priority. A work around would be to just delete this directly from the SQL database.

Something like

  DELETE FROM issues.issues WHERE issueid in (2,3)

should do it.
jeckels2011-08-18 16:51Jon (LabKey DevOps)2018-11-16 23:23Issue TrackerIssue Tracker TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Melissa,

If you decide to go with the direct SQL deletion method, you'll also need to delete from the issues.comments table before you execute the query that Matt suggested:

DELETE FROM issues.comments WHERE issueid in (2,3)

Thanks,
Josh
Melissa Laurie2011-08-18 17:10Jon (LabKey DevOps)2018-11-16 23:23Issue TrackerIssue Tracker TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks. I am going to follow up with my IT person and see if this is something they can do for us.

Any thoughts about the second issue with not getting the assign to emails?
adam2011-08-22 08:08Jon (LabKey DevOps)2018-11-16 23:24Issue TrackerIssue Tracker TEXT_WITH_LINKSClosed     LabKey Support Forum
We haven't implemented an "email admin" page for issues, only for messages and file events; adding one would be a nice enhancement. An admin could of course impersonate each user one-by-one and check/set their email preferences, but this would be tedious.

Adam
eknelson2011-08-29 12:38Jon (LabKey DevOps)2018-11-16 23:24Issue TrackerIssue Tracker TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Melissa,

I just updated our documentation to mention that deleting issues through the UI is not supported. Melissa, this should have been in our docs - thanks for the heads-up.

The updates are in a new section at the bottom of this page:
https://www.labkey.org/wiki/home/Documentation/page.view?name=usingIssues

Regards,
Elizabeth
jeckels2015-01-08 10:22Jon (LabKey DevOps)2018-11-16 23:24Issues with lookups instead of lists?Issues with lookups instead of lists? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

You're correct - the lookups in the issues module aren't very flexible right now. You'd need to edit the module itself to point them at a list or other table/query. I'd love to make the fields more configurable (like how you can do this for a list, dataset, or assay), but it's not currently on our priority list to implement.

Thanks,
Josh
marki2011-02-17 11:02Jon (LabKey DevOps)2018-11-16 23:24issue summary webpart causing issuesissue summary webpart causing issues TEXT_WITH_LINKSClosed     LabKey Support Forum
The code inside the script block could certainly be executed before the <div> since the script block is before the div in html order.

If you wrap the code in an Ext.onReady() or if you just swap the order of the div and the script it could fix the problem.
Ben Bimber2011-02-17 11:08Jon (LabKey DevOps)2018-11-16 23:23issue summary webpart causing issuesissue summary webpart causing issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi mark,

that's basically what i was thinking, although i'm baffled why it only manifests itself in this one specific folder, and not in the other folders we have that are essentially clones of this one. About the only difference I see is that this issue tracker doesnt have any threads. therefore that AJAX call might return faster, prior to the existence of that DIV.

Those are perfectly good fixes, but this is labkey's built-in webpart I'm talking about, not my code.
marki2011-02-17 11:21Jon (LabKey DevOps)2018-11-16 23:24issue summary webpart causing issuesissue summary webpart causing issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Actually, no. I believe what you are getting is the Issues Summary webpart defined in WNPRC_Main.

It seems to be overriding the built-in one.
Ben Bimber2011-02-17 11:27Jon (LabKey DevOps)2018-11-16 23:24issue summary webpart causing issuesissue summary webpart causing issues TEXT_WITH_LINKSClosed     LabKey Support Forum
you are right - my apologies. i am somewhat surprised that issues page exists in WNPRC_main. it must be extremely old.
Susan Hert2017-09-20 15:31Jon (LabKey DevOps)2018-11-16 23:24Issues including external dependencies in 17.2 with gradleIssues including external dependencies in 17.2 with gradle TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Matt,

I think the problem is that our repository did not have this artifact cached and as an anonymous user to the artifact repository you are not allowed to add things to the cache. Since I have now accessed this artifact while trying to troubleshoot, it will probably work for you now.

I see that in our build.gradle file, we are not including jcenter as one of the repositories (since we proxy for that with our artifactory instance), but I believe we should, for cases such as this. So you can modify your root-level build.gradle file to include jcenter and hopefully prevent such problems in the future. To do this, add the following line at the end of the repositories closure around line 135 of the root build.gradle file:

  jcenter()

I will get this change included in the 17.3 release.

Susan
Matt V2017-09-20 15:41Jon (LabKey DevOps)2018-11-16 23:24Issues including external dependencies in 17.2 with gradleIssues including external dependencies in 17.2 with gradle TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Susan! I'll give this a shot.

Any idea if jcenter will cover each of the following? They're all required by our custom module and I have the jars in my local module/lib folder.
    antlr-2.7.7.jar
    classmate-1.3.0.jar
    dom4j-1.6.1.jar
    gson-2.8.0.jar
    hibernate-commons-annotations-5.0.1.Final.jar
    hibernate-core-5.2.9.Final.jar
    hibernate-jpa-2.1-api-1.0.0.Final.jar
    hibernate-jpamodelgen-5.2.9.Final.jar
    jandex-2.0.3.Final.jar
    javassist-3.20.0-GA.jar
    javax.persistence.jar
    jboss-logging-3.3.0.Final.jar
    jboss-transaction-api_1.2_spec-1.0.1.Final.jar
    opencsv-3.8.jar
Susan Hert2017-09-20 15:52Jon (LabKey DevOps)2018-11-16 23:24Issues including external dependencies in 17.2 with gradleIssues including external dependencies in 17.2 with gradle TEXT_WITH_LINKSClosed     LabKey Support Forum
My guess is that it probably will be able to serve up those resources.

The easiest way is to add it as a repository and add your dependencies and then run the "dependencies" task on your module (e.g., ./gradlew :server:modules:core:dependencies). The output will highlight the ones that it is not able to resolve.

You can also search on their web site: https://bintray.com/bintray/jcenter. Or you can search in maven central (http://mvnrepository.com/search?q=). Generally everything that's in maven central is also in jcenter, but I sometimes find it easier to find what I'm looking for with the maven central UI.

Susan
Susan Hert2017-09-21 08:14Jon (LabKey DevOps)2018-11-16 23:23Issues including external dependencies in 17.2 with gradleIssues including external dependencies in 17.2 with gradle TEXT_WITH_LINKSClosed     LabKey Support Forum
I've added this change to trunk with r53917. Please let us know if this doesn't fix the problem.

Susan
Matt V2017-09-21 17:26Jon (LabKey DevOps)2018-11-16 23:24Issues including external dependencies in 17.2 with gradleIssues including external dependencies in 17.2 with gradle TEXT_WITH_LINKSClosed     LabKey Support Forum
Looks like your fix resolved this particular issue. There are some other dependency issues I have yet to resolve (going from 17.1 to 17.2), but I think those are a separate issue with needing to add additional dependencies using the BuildUtils. I'm about to head out for a couple weeks so full testing will be a bit out, so I'll post here again if it turns out there's more.

Thanks again for the resolution and committing the change!
Leo Dashevskiy2013-01-23 12:22Leo Dashevskiy2013-01-23 12:22Issue related to a Labkey db's custom table, a query on it and a LABKEY.ext.Store relying on this queryIssue related to a Labkey db's custom table, a query on it and a LABKEY.ext.Store relying on this query TEXT_WITH_LINKSClosed     LabKey Support Forum 
Leo Dashevskiy2013-01-22 15:53Jon (LabKey DevOps)2018-11-16 23:24Issue related to a Labkey db's custom table, a query on it and a LABKEY.ext.Store relying on this queryIssue related to a Labkey db's custom table, a query on it and a LABKEY.ext.Store relying on this query TEXT_WITH_LINKSClosed     LabKey Support Forum
Anyone?

Did I mention that the reduced version of the query 'GatingSet' does display the proper 2 rows and 3 columns in the schema browser interface!
Matthew Bellew2007-05-11 10:35Matthew Bellew2007-05-11 10:35Issue Module ExtensionIssue Module Extension TEXT_WITH_LINKSClosed     LabKey Support Forum 
Matthew Bellew2007-04-17 11:38Jon (LabKey DevOps)2018-11-16 23:24Issue Module ExtensionIssue Module Extension2007-05-16 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
I like it. I think it might be even better with a checkboxs you can use to choose exactly the bugs you want to see.
jrue@novonordisk.com2007-04-17 15:09Jon (LabKey DevOps)2018-11-16 23:24Issue Module ExtensionIssue Module Extension2007-05-16 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
That is a great idea. Right now I just assume I can set the filtering criteria to only show the issues I want to see the details of but checkboxes would add additional control. I'll go ahead and add that in.
jrue@novonordisk.com2007-04-20 12:59Jon (LabKey DevOps)2018-11-16 23:24Issue Module ExtensionIssue Module Extension2007-05-16 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok the checkboxes are now there and it looks ready to submit. I also took the liberty of adding a more elegant select/de-select all feature. See the attached screen shot for more details.
Matthew Bellew2007-04-23 10:03Jon (LabKey DevOps)2018-11-16 23:24Issue Module ExtensionIssue Module Extension2007-05-16 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, just attach output of "svn diff" against the current trunk (preferable), or the 2.0 sources.
jrue@novonordisk.com2007-04-23 10:26Jon (LabKey DevOps)2018-11-16 23:24Issue Module ExtensionIssue Module Extension2007-05-16 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Here is the diff run against a fresh update from the trunk. The DRT has been run successfully as well.
Matthew Bellew2007-04-24 12:58Jon (LabKey DevOps)2018-11-16 23:23Issue Module ExtensionIssue Module Extension2007-05-16 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Got it, thanks.
jrue@novonordisk.com2007-04-24 13:07Jon (LabKey DevOps)2018-11-16 23:23Issue Module ExtensionIssue Module Extension2007-05-16 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Do I need an svn account to check-in the files?

There is an additional jsp page that need to go in as well at:

trunk\server\modules\issue\src\org\labkey\issue\detailList.jsp
jrue@novonordisk.com2007-05-01 10:59Jon (LabKey DevOps)2018-11-16 23:24Issue Module ExtensionIssue Module Extension2007-05-16 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
The jsp page still needs to be added to the trunk.

Thanks for all the assistance.
jeckels2014-11-11 11:27Jon (LabKey DevOps)2018-11-16 23:24Isolation Level in TransactionIsolation Level in Transaction TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Is there a stack trace in the labkey.log file? It would help in determining if it's the same underlying scenario as issue 21294, or something unrelated.

Thanks,
Josh
adam2014-11-11 11:48Jon (LabKey DevOps)2018-11-16 23:23Isolation Level in TransactionIsolation Level in Transaction TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, please share the stack trace to help us track down the underlying cause.

I added a workaround for this issue in 14.3, as part of the improvements documented in issue #20880. Once you move to 14.3 let us know if you still see the problem.

Adam
bront@kcr.uky.edu2014-11-11 11:49Jon (LabKey DevOps)2018-11-16 23:24Isolation Level in TransactionIsolation Level in Transaction TEXT_WITH_LINKSClosed     LabKey Support Forum
Here's are a couple of recent errors...

Thanks,

bront


ERROR Table 2014-11-11 14:43:21,393 DavCrawler : SQL Exception
org.postgresql.util.PSQLException: Cannot change transaction isolation level in the middle of a transaction.
    at org.postgresql.jdbc2.AbstractJdbc2Connection.setTransactionIsolation(AbstractJdbc2Connection.java:940)
    at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126)
    at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)
    at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80)
    at com.sun.proxy.$Proxy2.setTransactionIsolation(Unknown Source)
    at org.labkey.api.data.ConnectionWrapper.setTransactionIsolation(ConnectionWrapper.java:306)
    at org.labkey.core.dialect.PostgreSql84Dialect.configureToDisableJdbcCaching(PostgreSql84Dialect.java:1508)
    at org.labkey.api.data.ExecutingSelector$ExecutingResultSetFactory.getResultSet(ExecutingSelector.java:297)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:244)
    at org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:94)
    at org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:141)
    at org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:125)
    at org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:120)
    at org.labkey.search.model.SavePaths.getPaths(SavePaths.java:289)
    at org.labkey.search.model.DavCrawler.findSomeWork(DavCrawler.java:523)
    at org.labkey.search.model.DavCrawler$1.run(DavCrawler.java:490)
ERROR Table 2014-11-11 14:43:21,393 DavCrawler : SQL [31778]
    SELECT Path, LastCrawled, NextCrawl
    FROM search.CrawlCollections
    WHERE NextCrawl < ? AND (LastCrawled IS NULL OR LastCrawled < ?) ORDER BY NextCrawl
    LIMIT 100
    ?[1] Tue Nov 11 14:43:21 EST 2014
    ?[2] Tue Nov 11 14:21:00 EST 2014

    org.labkey.api.data.ExecutingSelector$ExecutingResultSetFactory.handleSqlException(ExecutingSelector.java:414)
    org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:253)
    org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:94)
    org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:141)
    org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:125)
ERROR DavCrawler 2014-11-11 14:43:21,393 DavCrawler : Unexpected error
org.springframework.jdbc.UncategorizedSQLException: ExecutingSelector; uncategorized SQLException for SQL []; SQL state [25001]; error code [0]; Cannot change transaction isolation level in the middle of a transaction.; nested exception is org.postgresql.util.PSQLException: Cannot change transaction isolation level in the middle of a transaction.
    at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:124)
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:38)
    at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:32)
    at org.labkey.api.data.ExecutingSelector$ExecutingResultSetFactory.handleSqlException(ExecutingSelector.java:416)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:253)
    at org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:94)
    at org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:141)
    at org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:125)
    at org.labkey.api.data.ExecutingSelector.getResultSet(ExecutingSelector.java:120)
    at org.labkey.search.model.SavePaths.getPaths(SavePaths.java:289)
    at org.labkey.search.model.DavCrawler.findSomeWork(DavCrawler.java:523)
    at org.labkey.search.model.DavCrawler$1.run(DavCrawler.java:490)
Caused by: org.postgresql.util.PSQLException: Cannot change transaction isolation level in the middle of a transaction.
    at org.postgresql.jdbc2.AbstractJdbc2Connection.setTransactionIsolation(AbstractJdbc2Connection.java:940)
    at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126)
    at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)
    at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80)
    at com.sun.proxy.$Proxy2.setTransactionIsolation(Unknown Source)
    at org.labkey.api.data.ConnectionWrapper.setTransactionIsolation(ConnectionWrapper.java:306)
    at org.labkey.core.dialect.PostgreSql84Dialect.configureToDisableJdbcCaching(PostgreSql84Dialect.java:1508)
    at org.labkey.api.data.ExecutingSelector$ExecutingResultSetFactory.getResultSet(ExecutingSelector.java:297)
    at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:244)
    ... 7 more
bront@kcr.uky.edu2014-11-11 12:04Jon (LabKey DevOps)2018-11-16 23:24Isolation Level in TransactionIsolation Level in Transaction TEXT_WITH_LINKSClosed     LabKey Support Forum
We are also running Ubuntu 14.04 and PostgreSQL 9.3.5.

thanks,

bront
jeckels2016-09-28 12:22Jon (LabKey DevOps)2018-11-16 23:24Is it possible to set a field as "Required" in a dataset's XML metadata?Is it possible to set a field as "Required" in a dataset's XML metadata? TEXT_WITH_LINKSClosed     LabKey Support Forum
Please use the <nullable> element to control this via XML. It's the same property, just with a different name from what the UI shows.

The XML schema tableInfo.xsd defines the properties. You can find it in the Subversion source code under:

schemas\tableInfo.xsd

or refer to HTML-based documentation for the <column> element (generated from the XSD itself) here:

https://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/complexTypes/ColumnType.html

Thanks,
Josh
Leo Dashevskiy2015-10-21 17:25Leo Dashevskiy2015-10-21 17:25Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead?Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parameterized query instead? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon, you're absolutely right. I was indeed thinking about the 'sql' config and somehow overlooked it.

I think I can accomplish what I'm after: phasing out the IN filter type with generating the needed SQL in place and swapping it out as needed.

Thanks for you help.
-Leo
Jon (LabKey DevOps)2015-10-21 12:13Jon (LabKey DevOps)2018-11-16 23:24Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead?Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Can you give us some more details as to what you're looking to do here?

The LABKEY.Filter.Types.IN is the equivalent of an OR operator in SQL, using semi-colons to separate the values you're looking to find within the specific column you're running the filter against. Are you trying to use the LABKEY.Filter.Types.IN filter as a parameterized query like this?

<script type="text/javascript">

var myFilter = LABKEY.Filter.create('Language', 'English;German;Spanish', LABKEY.Filter.Types.IN);

LABKEY.Query.selectRows({
    schemaName: 'lists',
    queryName: 'People',
    success: onSuccess,
    filterArray: [ myFilter ]
    });

function onSuccess(data)
{
    alert("Success! " + data.rowCount + " rows returned.");
}

</script>

Regards,

Jon
Leo Dashevskiy2015-10-21 12:20Jon (LabKey DevOps)2018-11-16 23:23Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead?Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parameterized query instead? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Actually, I would like to replace one with the other in the instantiation of a QueryWebPart:

Instead of this:

                    qwpResponse = new LABKEY.QueryWebPart({
                        filters: [
                            LABKEY.Filter.create(
                                'arm_accession/name',
                                cohorts,
                                LABKEY.Filter.Types.IN
                            )
                        ],
                        queryName: response,
                        schemaName: 'study'
                    })

where cohorts is of type "a;b;c"

I'd like to have this:

                    qwpResponse = new LABKEY.QueryWebPart({
                        parameters: <blah>,
                        queryName: responseParameterized,
                        schemaName: 'study'
                    })

Is that possible?

Thanks.
-Leo
Jon (LabKey DevOps)2015-10-21 13:00Jon (LabKey DevOps)2018-11-16 23:23Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead?Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parameterized query instead? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I think I understand what is going on.

If you have a query that is parameterized and requires values, then yes you can have parameters for your QWP as well if you need it to pass parameters to it automatically rather than requiring the user to input them in.

So your second example would be correct:

                    qwpResponse = new LABKEY.QueryWebPart({
                        parameters: <blah>,
                        queryName: responseParameterized,
                        schemaName: 'study'
                    });

So <blah> would have to be coded as:

{'fieldname': 'value', 'fieldname2': 'value'}


Please refer to our docs here for more information and an example API call that uses the QWP:

https://www.labkey.org/wiki/home/Documentation/page.view?name=paramsql

Regards,

Jon
Leo Dashevskiy2015-10-21 14:44Jon (LabKey DevOps)2018-11-16 23:24Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead?Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parameterized query instead? TEXT_WITH_LINKSClosed     LabKey Support Forum
I've already read the docs that you pointed to in your link, but still I don't understand, how exactly what I'm after can be achieved?

I mean, I can add the "parameters" config to my QueryWebPart instantiation:

qwpResponse = new LABKEY.QueryWebPart({
 ...
 parameters: { 'arm_accession/name': cohorts },
 queryName: responseParameterized,
 ...
});

where cohorts == 'a;b;c'


But how exactly should my SQL query be changed to capture the behavior of the "LABKEY.Filter.Types.IN" filter?!
Jon (LabKey DevOps)2015-10-21 15:25Jon (LabKey DevOps)2018-11-16 23:24Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead?Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parameterized query instead? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Thanks for clarifying. What you're asking isn't possible here through the parameters config. You can only provide your parameter one value and cannot have it run as if it were an OR statement this way.

If you need to have multiple values appearing, then you would have to use the LABKEY.Filter.Types.IN as a filter rather than a parameter and you would have to forgo using that specific parameter within your original SQL query. This is the only way you can tell the system to give you multiple cohorts rather than just one at a time.

Does that make sense?

Regards,

Jon
Leo Dashevskiy2015-10-21 15:36Jon (LabKey DevOps)2018-11-16 23:24Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead?Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parameterized query instead? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, thanks Jon, so the answer to the starting question is NO, as I suspected, because "value is not primitive, but more like an encoded array".

It is also not possible, instead of the current approach of providing a string with a query name, where that query is defined statically elsewhere, to have a string that has SQL code provide results for the creation of the QueryWebPart, is it?
Jon (LabKey DevOps)2015-10-21 17:21Jon (LabKey DevOps)2018-11-16 23:24Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parametrized query instead?Is it possible to replace the LABKEY.Filter.Types.IN filter on a query with a parameterized query instead? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I'm not certain I'm understanding your follow-up question.

The QWP does have a config.sql you can use in lieu of an existing schema name/query name combination, but I'm not sure where you're going with the "query is defined statically elsewhere" part.

Are you trying to generate a QWP based on a table/query that is already parameterized and you're trying to use inject in different SQL to display in your QWP instead to accomplish your parameterization needs having multiple Cohorts?

Regards,

Jon
Leo Dashevskiy2017-02-27 12:44Leo Dashevskiy2017-02-27 12:44Is it possible to pull in a CSS file within a Wiki ?Is it possible to pull in a CSS file within a Wiki ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Jon.

Yes, I'm aware of the Look and Feel settings, of course, and also already read up on CSS code within the wiki markup.

Unfortunately, that's not what would be preferable to us.


An alternative approach to Look and Feel settings is to stick the loading of the CSS file into the footer "web part" and that's what seems to work, but it's not ideal because it loads it each time on each page, but it'd be nice to only load it, where the wiki is present...
Leo Dashevskiy2017-02-28 13:11Leo Dashevskiy2017-02-28 13:11Is it possible to pull in a CSS file within a Wiki ?Is it possible to pull in a CSS file within a Wiki ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yup, great suggestion, Jon! Works like a charm!

I have totally forgotten about this API, haven't used it for ages, ever since you guys introduces the XML based dependencies for modules.

Thanks.
-Leo
Jon (LabKey DevOps)2017-02-23 21:59Jon (LabKey DevOps)2018-11-16 23:24Is it possible to pull in a CSS file within a Wiki ?Is it possible to pull in a CSS file within a Wiki ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I don't believe you can apply CSS within a wiki via a CSS file. The CSS will only render if the CSS file itself is used under the Site's Look and Feel settings under the Admin Console or under the Project Settings.

You can however apply specific CSS code within the wiki markup as explained here:

https://www.labkey.org/home/Documentation/wiki-page.view?name=moreWikiSyntax

Regards,

Jon
Jon (LabKey DevOps)2017-02-27 13:23Jon (LabKey DevOps)2017-02-27 13:23Is it possible to pull in a CSS file within a Wiki ?Is it possible to pull in a CSS file within a Wiki ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Upon further digging, how about working with our Javascript API?

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.html#.requiresCss

If you throw in:

             <script type="text/javascript">
                LABKEY.requiresCss("myModule/myFile.css");
             </script>

That would trigger the specific CSS file to work.

Regards,

Jon
kevink2011-07-04 12:02Jon (LabKey DevOps)2018-11-16 23:24Is it Possible to Add a Specimen through JS?Is it Possible to Add a Specimen through JS? TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, no specimens can't be inserted or updated via a JS API. I added a Java API in 11.1 to insert or update specimens, but I didn't have the opportunity to wire it up to a JS api.

The SpecimenService.get().importSpecimens() Java API will insert or update specimens. Deleting specimens isn't supported unless all specimens are deleted and re-imported.
Leo Dashevskiy2018-10-27 23:53Leo Dashevskiy2018-10-27 23:53Is it possible not to show a webpart for a set of user groupsIs it possible not to show a webpart for a set of user groups TEXT_WITH_LINKSClosed     LabKey Support Forum 
Steve2013-03-12 14:22Jon (LabKey DevOps)2018-11-16 23:24Is it possible not to show a webpart for a set of user groupsIs it possible not to show a webpart for a set of user groups TEXT_WITH_LINKSClosed     LabKey Support Forum
Documentation for this 13.1 feature can be previewed here: https://www.labkey.org/wiki/home/Documentation/page.view?name=manageWebParts#perm

- Steve
Leo Dashevskiy2013-03-12 14:58Jon (LabKey DevOps)2018-11-16 23:24Is it possible not to show a webpart for a set of user groupsIs it possible not to show a webpart for a set of user groups TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Steve!

I read there that these apply to individual instances but not to the 'class' of the web part.

It is desirable for us to have all of the instances conform to a certain level of permissions.

So is there a place for me as a developer to set these permission, when I'm writing my code for a particular module?

Thanks.
-Leo
marki2013-03-12 17:21Jon (LabKey DevOps)2018-11-16 23:24Is it possible not to show a webpart for a set of user groupsIs it possible not to show a webpart for a set of user groups TEXT_WITH_LINKSClosed     LabKey Support Forum
The setting is per-instance, but a folderType can set the default permission for web parts created as part of the folder type (an admin could override on a per instance basis).

Allowing the default to be set in webpart.xml would be a good addition.
Leo Dashevskiy2013-03-13 10:17Jon (LabKey DevOps)2018-11-16 23:24Is it possible not to show a webpart for a set of user groupsIs it possible not to show a webpart for a set of user groups TEXT_WITH_LINKSClosed     LabKey Support Forum
marki,

Yes, exactly, I was thinking of having some kind of config in the webpart.xml set-up file, but I guess, that is not available at this time?

Could you, please, elaborate with more details on the first part of your response? Is it possible to achieve with this mechanism what I originally asked?
Moreover, a web part instance of a different module should show up regardless whether the user is in a 'reader' or 'editor' mode...

Thank you.
Ben Bimber2013-03-13 10:22Jon (LabKey DevOps)2018-11-16 23:23Is it possible not to show a webpart for a set of user groupsIs it possible not to show a webpart for a set of user groups TEXT_WITH_LINKSClosed     LabKey Support Forum
i think you can set permission per HTML view (see the .view.xml file). a file based webpart is just a wrapper around an HTML file anyway.

however, I'm not sure that would completely accomplish what you want. this would mean the user gets an ugly 'no permission' message when they try to view it, rather than just not showing. maybe some combination of these two:

- for genuine security, set permission on your HTML view, using the XML config. this means permission is actually enforced by the server, no matter what client-side code is running

- on the client, conditionalize whether you attempt to show load this webpart based on the current user's permissions. The basic permissions are available under LABKEY.Security.currentUser, which at least means you dont need to query the server to find them.
Leo Dashevskiy2012-08-09 11:43Leo Dashevskiy2012-08-09 11:43Is it an inconsistency/bug? Rlabkey package, lsSchemas methodIs it an inconsistency/bug? Rlabkey package, lsSchemas method TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks.
cnathe2012-08-09 07:00Jon (LabKey DevOps)2018-11-16 23:24Is it an inconsistency/bug? Rlabkey package, lsSchemas methodIs it an inconsistency/bug? Rlabkey package, lsSchemas method TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you for pointing this out. It does look like there is an inconsistency with what is returned by the lsSchemas() method versus the lsProjects() and lsFolders() methods. I will open a bug on this and get it fixed so that the lsSchemas() method returns an array of schema names, as advertised by the man page.
jeckels2013-07-22 12:31Jon (LabKey DevOps)2018-11-16 23:23Is 4pl method curve fit method available with ELISA moduleIs 4pl method curve fit method available with ELISA module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jeanne,

At the moment, ELISA doesn't support more advanced fits like 4pl, 5pl, or poly, although it might be possible to use a transform script with an assay design to supply an external curve fit algorithm.

As far as I know, adding additional curve fit options isn't on the planned feature list for an upcoming release.

Thanks,
Josh
Jon (LabKey DevOps)2016-03-01 14:28Jon (LabKey DevOps)2016-03-01 14:28IntelliJ project filesIntelliJ project files TEXT_WITH_LINKSClosed     LabKey Support Forum
Most of us are on IntelliJ 15 Ultimate.
jeckels2009-12-22 16:16Jon (LabKey DevOps)2018-11-16 23:24IntelliJ 9IntelliJ 9 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

We haven't finalized a plan for moving to IntelliJ 9. From my reading of the licensing information, JetBrains will continue to offer the free license for open source projects with the Ultimate Edition:

http://www.jetbrains.com/idea/buy/index.jsp

We plan to continue renewing this license. The current open source license should work with the new version.

Since LabKey is a company that is paid to do development on the open source LabKey Server code, we can't use the free license ourselves and have purchased commercial licenses. Determining when we want to buy upgrades for our licenses is the main issue for when we'll migrate to 9.0.

Thanks,
Josh
Jon (LabKey DevOps)2018-06-01 22:37Jon (LabKey DevOps)2018-11-16 23:24Intellij 2017 and Gradle build?Intellij 2017 and Gradle build? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I believe everyone at LabKey is running on 2017 now for IntelliJ (Ultimate and Community versions).

Also, I think that "out" directory thing is due to the gradlePluginsVersion value in the LABKEY_HOME/trunk (or whatever branch you're working on)/gradle.properties file being the incorrect value for the specific version of LabKey you're trying to build against.

Take a look at the README info on https://github.com/LabKey/gradlePlugin and you should be able to get the appropriate version number for the gradlePluginsVersion there.

Once you swap it out, you should not see that "out" behavior again.

Regards,

Jon
Ben Bimber2018-06-02 05:44Jon (LabKey DevOps)2018-11-16 23:24Intellij 2017 and Gradle build?Intellij 2017 and Gradle build? TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm running against a branch based off 18.1. The plugin version I'm using is the default for this branch, 1.2.4, which is also the same as what's checked in for the release18.1 branch, so while it's older than the latest trunk version it seems matched to the branch. I'll try updating to 1.2.5 (highest compatible w/ 18.1 according to your link) and see if this helps.

I actually updated to Intellij 2018 since this post and this made a dramatic difference as well. Thanks.
jeckels2016-07-06 13:01Jon (LabKey DevOps)2018-11-16 23:24Intellij 2016.1 and <%=webpartContext%> in HTML pagesIntellij 2016.1 and <%=webpartContext%> in HTML pages TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I'm running IntelliJ 2016.1.3 and it doesn't seem to have the problem you're describing. See the attached screenshot for an example file.

Are you on a different version. Do you see this for all files, or just selected one? I spot-checked a half dozen or so and all looked similar.

Thanks,
Josh
Matthew Bellew2016-07-21 10:33Jon (LabKey DevOps)2018-11-16 23:24Intellij 2016.1 and <%=webpartContext%> in HTML pagesIntellij 2016.1 and <%=webpartContext%> in HTML pages TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm seeing this mess up subsequent parsing/coloring for me as well. Perhaps we could use an alternate substitution. Hmm

$webpartContext$
or
LABKEY.webpartContext
Ben Bimber2016-07-21 11:03Jon (LabKey DevOps)2018-11-16 23:24Intellij 2016.1 and <%=webpartContext%> in HTML pagesIntellij 2016.1 and <%=webpartContext%> in HTML pages TEXT_WITH_LINKSClosed     LabKey Support Forum
glad there's a repro. perhaps josh has some sort of different code inspections enabled in his intellij than us?
adam2013-12-16 08:03Jon (LabKey DevOps)2018-11-16 23:24Intellij 13?Intellij 13? TEXT_WITH_LINKSClosed     LabKey Support Forum
I've been running IntelliJ 13 for about a month and others have started to upgrade. I've seen no real issues, other than early betas having trouble migrating settings from 12. I think Kevin ran into a bit of SVN funkiness after upgrade, but got it resolved.

Native SVN 1.8 support is important, especially to those who use TortoiseSVN. Some of the UI improvements (presentation mode, navigation & search features, lens mode) are nice. Lots of improvements we don't care about (Android, Gradle, Groovy, Scala, etc.) Mostly an incremental release; nothing earth shattering, IMO.

Adam
kevink2013-12-19 15:49Jon (LabKey DevOps)2018-11-16 23:24Intellij 13?Intellij 13? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ooh, I just discovered the new "Search Everywhere" feature... try typing "Shift-Shift"
lewis j mcgibbney2015-03-16 15:07Jon (LabKey DevOps)2018-11-16 23:24Integration Point for Implementing Solr SearchIntegration Point for Implementing Solr Search TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm working my way through the File Management documentation

https://www.labkey.org/wiki/home/Documentation/page.view?name=fileTutorial
https://www.labkey.org/project/home/Demos/File%20Management%20Tutorial/begin.view?

As this is user level documentation there is no mention of the integration points. Any direction would be excellent. Thanks.
Matthew Bellew2015-03-16 15:10Jon (LabKey DevOps)2018-11-16 23:24Integration Point for Implementing Solr SearchIntegration Point for Implementing Solr Search TEXT_WITH_LINKSClosed     LabKey Support Forum
Are you trying to display data that you already have in a Solr server, or are you trying to use Solr to index document from the LabKey server instance?
lewis j mcgibbney2015-03-16 15:12Jon (LabKey DevOps)2018-11-16 23:24Integration Point for Implementing Solr SearchIntegration Point for Implementing Solr Search TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matthew,
The latter use case - use Solr to index document from the LabKey server instance?
Thanks
Lewis
Matthew Bellew2015-03-16 15:26Jon (LabKey DevOps)2018-11-16 23:24Integration Point for Implementing Solr SearchIntegration Point for Implementing Solr Search TEXT_WITH_LINKSClosed     LabKey Support Forum
The solution would be implement and register a different instance of the SearchService interface. There happens to be a stub you could start with. Look for SolrSearchServiceImpl.

Matt
lewis j mcgibbney2015-03-16 15:33Jon (LabKey DevOps)2018-11-16 23:24Integration Point for Implementing Solr SearchIntegration Point for Implementing Solr Search TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,
Thanks for the heads up. This is grand.
Lewis
jeckels2017-02-10 17:30Jon (LabKey DevOps)2018-11-16 23:24Integrating with an external serviceIntegrating with an external service TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Your list looks pretty complete to me in terms of possible approaches. Some additional context that may be helpful:

1. ETLs are run as LabKey pipelines under the covers, and you can inject custom tasks, implemented in a custom Java module, into their execution sequence. If you have the LabKey Server source code, you can find a test/example at:

server\test\modules\ETLtest\resources\ETLs\appendAndTaskRefTask.xml

It uses the custom task as implemented here:

server\modules\dataintegration\src\org\labkey\di\steps\TestTaskRefTask.java

However, you're correct that there is not currently a way to pipe in data from a non-SQL source. ETLs have a convenient feature of being able to run on a schedule.

3. You could certainly use a script or custom Java task that pulls from an external source. The pipeline module itself does not currently have a scheduling mechanism though.

4. Yes, this would be possible, but would of course avoid the API that you're looking to leverage for extracting the data.

The server does have the Quartz library behind the scenes, which can be used for cron-like scheduling in custom modules. It's what the ETL system uses underneath to kick off its jobs on the requested schedule.

Thanks,
Josh
jeckels2013-11-12 12:13Jon (LabKey DevOps)2018-11-16 23:23Integrating R view with JavascriptIntegrating R view with Javascript TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Yes, you'll want to use LABKEY.WebPart instead, with a partName of 'Report'. Here's an example:

    function refreshChart() {
        var config = {reportId: '101', showSection: 'labkeyl_png'};

        var wikiWebPartRenderer = new LABKEY.WebPart( {
            partName: 'Report',
            renderTo: 'histogramDiv',
            frame: 'none',
            partConfig: config
        });
        wikiWebPartRenderer.render();
    }

You can get the reportId from the URL when you're editing the R view. The format depends on whether it's stored in the database (as it is when it's created through the user interface), or from a file in a module.

You can view the example in action here:

https://www.labkey.org/Wiki/home/CPAS/demo/page.view?name=Fractional%20Delta%20Mass

You can either just view the page's source code via your browser, or download the files from here:

https://www.labkey.org/FileContent/home/CPAS/demo/begin.view

Thanks,
Josh
bront@kcr.uky.edu2013-11-12 13:10Jon (LabKey DevOps)2018-11-16 23:24Integrating R view with JavascriptIntegrating R view with Javascript TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Works perfectly. Thanks for pointing me in the right direction... now one more question.

I need to pass some parameters into the WebPart R-script. Initially, I was trying to do this via url.params, but I am wondering if there is a way to do it via the partConfig (or some other way).

Thank you,

bront
jeckels2013-11-12 14:08Jon (LabKey DevOps)2018-11-16 23:23Integrating R view with JavascriptIntegrating R view with Javascript TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Yes, you can. For clarity, I had actually snipped that out of the source I stole from. Here's the full thing:

    function refreshChart() {
        var config = {reportId: '101', showSection: 'labkeyl_png'};

        if (comboBox.getValue() != null && comboBox.getValue() != "") {
            var filter = LABKEY.Filter.create('Run/ExperimentRunLSID/RunGroupToggle/' + comboBox.getValue(), 1, LABKEY.Filter.Types.EQUAL);
            config[filter.getURLParameterName()] = filter.getURLParameterValue();
        }

        var wikiWebPartRenderer = new LABKEY.WebPart( {
            partName: 'Report',
            renderTo: 'histogramDiv',
            frame: 'none',
            partConfig: config
        });
        wikiWebPartRenderer.render();
    }

It happens to pull the value from an ExtJS combo box, but you should be able to easily adapt to whatever filter values you want to apply.

Thanks,
Josh
bront@kcr.uky.edu2013-11-13 12:42bront@kcr.uky.edu2013-11-13 12:42Integrating R view with JavascriptIntegrating R view with Javascript TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Great. I noticed that bit in the code after I asked.

I really appreciate your prompt and clear help.

cheers,

bront
wnels2@uky.edu2009-05-08 08:48Jon (LabKey DevOps)2018-11-16 23:23insert viewinsert view TEXT_WITH_LINKSClosed     LabKey Support Forum
I tried columns.get(0).setCssStyle("display:none;");
and columns.get(0).setCssStyle("visibility:hidden;");
But these also had no effect.
Thanks,
Bill
adam2009-05-08 09:04Jon (LabKey DevOps)2018-11-16 23:24insert viewinsert view TEXT_WITH_LINKSClosed     LabKey Support Forum
You can use DataRegion.addHiddenFormField() for this.
wnels2@uky.edu2009-05-08 11:14Jon (LabKey DevOps)2018-11-16 23:24insert viewinsert view TEXT_WITH_LINKSClosed     LabKey Support Forum
Adam, Thanks!
I had tried that before but messing with it some more I found that even though I am setting the column name as "ProdId" the hidden field name needs to be "prodId".

Have a great weekend.
Bill
Jon (LabKey DevOps)2018-10-23 18:55Jon (LabKey DevOps)2018-11-16 23:23Insert User DataInsert User Data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Yes, you can either use the API to do an UpdateRows or you can leverage the updateQueryRows.view page. You can wire up a button within the XML Metadata for the core.Users table within the Schema Browser and perform a bulk update on the editable fields for the rows in that table.

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=18173

Regards,

Jon
Jon (LabKey DevOps)2017-06-02 14:03Jon (LabKey DevOps)2018-11-16 23:24insert/update rows errorinsert/update rows error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Is it possible for you to send us an export of the list archive for that one list and the sample CSV file you're using so we can properly reproduce the issue on our end?

I'm trying to construct the list myself, but I can't tell what you have listed as the Primary Key for your list. What field are you using as the Primary Key?

Also, can I assume you're using the UI to upload the data or are you using something else, like an API call?

Regards,

Jon
jeckels2015-01-04 16:03Jon (LabKey DevOps)2018-11-16 23:24insertRows() to core usersinsertRows() to core users TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

The users table supports updating existing users via updateRows(), but not creating new users with insertRows(). We don't have a Python binding for creating a new user. However, it would be fairly simple to implement it by patterning on the JavaScript or Java client API implementations. They post a JSON body with two properties: email (a string which is the new user's email address) and sendEmail (a boolean, which indicates if the user should get an email to set up their account).

Thanks,
Josh
martin2015-01-05 00:08Jon (LabKey DevOps)2018-11-16 23:24insertRows() to core usersinsertRows() to core users TEXT_WITH_LINKSClosed     LabKey Support Forum
That's great news, thank you very much:)

Wwould it be possible to delete users the similar way via Python?
And what about groups creating/deleting, membership modifying, will all this be possible too?

Is there something to keep in mind when working with groups and membership?
I see there is Users and Groups query...also Members query...are any of those tables connected and get updated automatically or do I need to take care of all this table management manually?

I mean, if I implement Java API's function in Python by patterning is there something else to do to make it work correctly?

Thank you
Martin
jeckels2015-01-05 17:58Jon (LabKey DevOps)2018-11-16 23:24insertRows() to core usersinsertRows() to core users TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

Yes, a similar approach in terms of adding a Python wrapper for the same underlying HTTP API will work for groups, memberships, etc. Each separate API call expects different arguments, but the pattern is the same.

Once a user is created, they'll automatically show up in the core.users query. The same goes for groups, etc.

If you create the new Python APIs, equivalent to the Java or JavaScript implementations, please consider attaching the code to this thread. We'd love to add more capabilities to the Python API, and could accept it as a code contribution if you're interested.

Thanks,
Josh
Matthew Bellew2011-09-30 08:43Jon (LabKey DevOps)2018-11-16 23:24insertRows() from within validation script for purpose of logging errorsinsertRows() from within validation script for purpose of logging errors TEXT_WITH_LINKSClosed     LabKey Support Forum
I believe you are correct. A non-transacted logging api would make a lot of sense. (Maybe saving the log entries in memory until commit/rollback time?).

Does console.log() write to labkey.log? That might help for now.
Ben Bimber2011-09-30 09:03Jon (LabKey DevOps)2018-11-16 23:24insertRows() from within validation script for purpose of logging errorsinsertRows() from within validation script for purpose of logging errors TEXT_WITH_LINKSClosed     LabKey Support Forum
yeah, console does log to labkey.log. it's just been incredible convenient to put these into the audit table, because all EHR codes (both client and server) goes to one place, and I've got an automatic email hooked up that summarizes errors and send them to the admin. it's been hugely helpful in closing out little bugs across the sit.

not that i couldnt make a script that does the same with information output to labkey.log, but I dont think i'm going to get to that any time soon.
jeckels2013-05-30 17:04Jon (LabKey DevOps)2018-11-16 23:24INSERT INTO using the webinterfaceINSERT INTO using the webinterface TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Volker,

I'd recommend using a trigger script on your demographics dataset to hook this up:

https://www.labkey.org/wiki/home/Documentation/page.view?name=serverSideValidation

In your beforeInsert() function, you can use LABKEY.Query.insertRows() to insert blank rows into all of the other datasets:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.insertRows

You can use LABKEY.Query.selectRows() to ask the "dataset" query in the "study" schema what datasets are available if you don't want to have the set hard-coded in your trigger script. Note that for non-demographic datasets, you'll need to include the PID as well as a date/visit number. Non-demographic datasets always require a date or visit number (which one depends on the type of study you've created) as part of every row.

https://www.labkey.org/wiki/home/Documentation/page.view?name=setupDatasets

Thanks,
Josh
volker2013-06-04 22:25Jon (LabKey DevOps)2018-11-16 23:24INSERT INTO using the webinterfaceINSERT INTO using the webinterface TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

I think the trigger script is the way to go, thanks for your quick response.

Best regards,
Volker
Jon (LabKey DevOps)2017-06-20 13:01Jon (LabKey DevOps)2018-11-16 23:24Insert into Database from wiki pageInsert into Database from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Atul,

When you said you created a table in PostgreSQL, how did you do this?

Did you create its own schema as well? Did you create this table programmatically via a module or did you just directly create it via PostgreSQL?

The Javascript API is typically sufficient to insert data into tables within LabKey provided the table is accessible and can be viewed in the Schema Browser.

Regards,

Jon
atul sharma2017-06-21 15:53Jon (LabKey DevOps)2018-11-16 23:24Insert into Database from wiki pageInsert into Database from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Dear Jon,
I have just created the table directly via PostgreSQL under public Schema in Labkey Database.

In labkey under Schema Browser, Created New External Schema and marked editable check box.

Now This table should be Editable (insert/update). However, I have used Labkey.Query.insertRows() API method, It shows Forbidden alert box while executing.
Jon (LabKey DevOps)2017-06-21 16:11Jon (LabKey DevOps)2018-11-16 23:24Insert into Database from wiki pageInsert into Database from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Atul,

That kind of setup isn't supported by the Schema Browser.

The LabKey database shouldn't be accessed as an external schema and external schemas should have their own datasource within the labkey.xml file.

Additionally, by creating it solely in PostgreSQL and not having an accompanying XML file, LabKey has no way of understanding how to design it within the Schema Browser or handle the table design. This is also why the Javascript API wouldn't work since it couldn't actually view that table properly.

We recommend that you create new tables that are not apart of the LabKey Core modules within your own custom module, where you can create your own schemas, tables, and queries.

- https://www.labkey.org/Documentation/wiki-page.view?name=sqlScripts

Regards,

Jon
atul sharma2017-06-23 04:35atul sharma2017-06-23 04:35Insert into Database from wiki pageInsert into Database from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon,

That was a mistake in Table creation. I did't make primary key.

Now it works fine.


Regards
Atul
brittp2012-04-06 13:32Jon (LabKey DevOps)2018-11-16 23:24Information about Specimen ArchiveInformation about Specimen Archive TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jenn,

I think you've found all the documentation we have. You're right that this isn't well documented at the moment- we'll try to improve this in coming releases. Here's a brief overview of where data goes, by file in the specimen import archive:
labs.tsv: this data is loaded directly into the study.site table.
primary_types.tsv: this data is loaded directly into the study.specimenprimarytype table.
derivatives.tsv: this data is loaded directly into the study.specimenderivative table.
additives.tsv: this data is loaded directly into the study.additive table.

specimen.tsv is the most complex. All fields from this file go into the study.specimenevent table, which is accessed through the 'history' links in the vial view or directly via the specimenevent table in the schema browser. The subset of fields that should be constant across locations (such as vial ID, vial volume, etc.) are also inserted into the study.vial table. Fields that are not expected to be the same across location (freezer information, for example) are found only in specimenevent. Aggregating up one more level from study.vial, the study.specimen table (accessible via the 'grouped vials' links in 11.3 and later) summarizes the data by collection. This table contains all fields from study.vial that are expected to be the same across all vials from a given collection (such as subject ID, visit, type, and draw timestamp).

Note that study.vial and study.specimen also contain a number of calculated fields that are not found in the import data- these are used in a variety of places within the system.

Hopefully this overview is helpful- please let me know if you have questions about specific fields in the import process.

Thanks,
Britt
eknelson2012-04-06 13:50Jon (LabKey DevOps)2018-11-16 23:23Information about Specimen ArchiveInformation about Specimen Archive TEXT_WITH_LINKSClosed     LabKey Support Forum
The information Britt provided seems generally useful, so I added it to a new doc page:
https://www.labkey.org/wiki/home/Documentation/page.view?name=specimenArchiveDataDestinations

Thanks,
Elizabeth
jdutra2012-04-10 06:50Jon (LabKey DevOps)2018-11-16 23:24Information about Specimen ArchiveInformation about Specimen Archive TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for that extra information. It is helpful. I do have one specific question. If I include a ship_date for a vial, it is marked as unavailable, which is great. The site name in the vial view changes to "In Transit". These vials are not in transit, they are at labs and being used in experiments. What information do I need to provide to get that column to better reflect the situation?

Thanks again,
Jen
brittp2012-04-10 09:12Jon (LabKey DevOps)2018-11-16 23:24Information about Specimen ArchiveInformation about Specimen Archive TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

The vials will show a location of 'In Transit' until the specimen feed includes a new entry for the vial that shows arrival at a new location (indicated by the received date or stored date columns). In other words, your data is correct for the shipping location- the vial has come and gone from that location. The receiving location now has to indicate that they've received the vial. Does that make sense?

Thanks,
Britt
Jon (LabKey DevOps)2015-02-11 11:31Jon (LabKey DevOps)2018-11-16 23:23Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anders,

What error do you see when you access the schema browser?

Also, are there sub-folders within that study?

Regards,

Jon
anders kielland2015-02-11 11:39Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon
More precisely; the error message comes when I try to open the Study folder from within Schema browser. The error image is attached.

No Sub-folders.

regards, Anders
Jon (LabKey DevOps)2015-02-11 11:49Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

Thanks for confirming. So can you at least get into the details of the dataset rather than viewing the information? Specifically here:

https://labkey01.usit.uio.no/labkey/study/TNS%20%28visit%29/datasetDetails.view?datasetId=5002

and here to edit the definitions:

https://labkey01.usit.uio.no/labkey/study/TNS%20%28visit%29/editType.view?datasetId=5002

I believe you may have a duplicate date column in your dataset, which is causing the error. If we can get access to editing the definitions, you should be able to remove/modify the bad field so you can access the data.

Regards,

Jon
anders kielland2015-02-11 12:42Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

1) https://labkey01.usit.uio.no/labkey/study/TNS%20%28visit%29/datasetDetails.view?datasetId=5002

Gives:
"Invalid Dataset ID"


2) https://labkey01.usit.uio.no/labkey/study/TNS%20%28visit%29/editType.view?datasetId=5002

Gives:
"The server encountered an error: 500 There was an error processing the request.
Column date already exists for table c10d88_ogtt
(Error type: java.lang.IllegalArgumentException)"

non of them gives med access.

regards, Anders
Jon (LabKey DevOps)2015-02-11 13:03Jon (LabKey DevOps)2018-11-16 23:23Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

That's really odd since your original error had dataset 5002 listed in your original attachment.

Can you actually get into the Manage view of the study to look at all the datasets you have?

You would go to the Manage tab in the study, then click "Manage Datasets" and see the list of datasets available.

Do you see dataset 5002 or the name of the dataset you were trying to access?

Regards,

Jon
anders kielland2015-02-11 13:18Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,
Yes I see it from Manage Datasets,but cannot open it from there, or any other places i have tried.


Manage Datasets > OGTT Dataset Properties

gives:
An unexpected error occurred
Column date already exists for table c10d88_ogtt

regards, Anders
Jon (LabKey DevOps)2015-02-11 13:58Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

Let me do some more research with my developers and get back to you.

Hopefully, we will not have to ask you to provide us with an export of the study or an admin login to your platform to investigate/resolve the issue.

Thanks for your patience.

Regards,

Jon
anders kielland2015-02-11 14:08Jon (LabKey DevOps)2018-11-16 23:23Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,
I am happy to give you admin login.

Regards, Anders
Jon (LabKey DevOps)2015-02-11 14:39Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

Ok. Please setup this email address as a site admin: xxx@xxxxxx.xxx

Once we resolve the issue, you can then deactivate/delete the user.

Regards,

Jon
Jon (LabKey DevOps)2015-02-12 09:53Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

Thanks for setting up the user. I will be looking at the TNS (Visit) project.

Regards,

Jon
Jon (LabKey DevOps)2015-02-12 09:55Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

Also, were you able to access that dataset before? Was there anything you did prior (i.e. any changes you made) before the dataset became inaccessible?

Regards,

Jon
anders kielland2015-02-12 10:29Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,
I am not sure what you mean with the first question, but i uploaded it my self and used it before this yes.
I am not sure exactly what I did with it, but think i wasin Edit Dataset Definition and played with the date.

Regards,
Anders
Jon (LabKey DevOps)2015-02-12 13:14Jon (LabKey DevOps)2018-11-16 23:23Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anders,

Thanks for the information. After an initial assessment, there are two options here:

1. Allow us remote access to your PostgreSQL database so we can try to fix the underlying table that managed to get two date columns and then fix the dataset.

or

2. Help you delete the OGTT dataset and start over by re-importing the excel files "TNS (visit)-OGTT-2015-02-06-1627.xls" and "TNS (visit)-OGTT-2015-02-06-1635.xls" that are sitting in the files directory for that study (assuming those are the files that you used to create your OGTT dataset from).

Based on what I've seen so far, I think we should take the first option here. So far, in trying to get to that dataset from any place seems to create that error since the platform is trying to read the table first.

However, if you would prefer to try deleting the table, please see if this link will work:

https://labkey01.usit.uio.no/labkey/study/TNS%20%28visit%29/deleteDataset.view?datasetId=5002

If this link works, then the dataset will be deleted. If it doesn't work, then you'll just get the same error as before and we would just proceed with the original plan.

I've created the following bug ticket for tracking purposes: https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=22513

Regards,

Jon
anders kielland2015-02-13 07:21Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon
Thanks for the tips. We removed the extra date field (which was named data1) directly in the PostgreSQL database and problems solved.

 Kind regards
Anders
Jon (LabKey DevOps)2015-02-13 09:42Jon (LabKey DevOps)2018-11-16 23:24Inaccessible DatasetInaccessible Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

Glad you were able to get the underlying database corrected! Feel free to deactivate/delete the user account you created for my access and let us know if you have any further questions.

Regards,

Jon
Jon (LabKey DevOps)2018-05-18 14:28Jon (LabKey DevOps)2018-11-16 23:23Importing updated bulk dataImporting updated bulk data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Unfortunately, when it comes to uploading via the UI, there is no ability to truncate the data from within the bulk upload process, so the manual process of deleting all rows is the only viable option within the UI.

Some of our other features like ETLs do allow the ability to truncate the data if the data is being sourced from one table to another:

https://www.labkey.org/Documentation/wiki-page.view?name=etlModule

Also, our FileWatcher, which is available as a Premium feature, allows the ability to drop files in a location, which then can be processed by a study dataset and also does truncation as well:

https://www.labkey.org/Documentation/wiki-page.view?name=fileWatcher

As for snapshots, the only snapshot functionality is the Query Snapshot feature.

https://www.labkey.org/Documentation/wiki-page.view?name=querySnapshot

You could use it to produce multiple query snapshots manually for those specific given timeframes, labeling them as such and creating a fixed snapshot of data for the respective dataset.

Regards,

Jon
Jon (LabKey DevOps)2017-03-07 01:39Jon (LabKey DevOps)2018-11-16 23:24Importing reports from xml filesImporting reports from xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

Yes, you can actually import reports into your study similarly to how you were writing out data from your external system and putting them into your study zip file.

If you download our ImportableDemoStudy folder zip file here:

https://www.labkey.org/home/Documentation/wiki-page.view?name=setupDemoStudy

And then extract the contents of the zip file, you'll see a reports folder.

Within that reports folder you'll notice a few things:

1. A folder for the thumbnail image of your report as a graph if it is a graphical report.
2. The code for the report (in your case, you would have your code written in R and saved as a .R file)
3. The XML that corresponds with the R code to provide its metadata.

Basically, you'd just create the same thing within your own study import zip file you've been working with and build your reports that way. It automatically knows to connect to the correct study based on the schemaName and queryName values that you would provide that would already be within the same study used.

Regards,

Jon
gkericks2017-03-13 10:55Jon (LabKey DevOps)2018-11-16 23:24Importing reports from xml filesImporting reports from xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon that has guided me part of the way,

A related puzzle I'm trying to solve is where to find the xsd file that describes the folder.xml file found in the example study you shared. I need to produce a folder.xml file to load both the study and the reports. I have been using https://www.labkey.org/download/schema-docs/xml-schemas/ to get the xml schema files that describe how the various xml files I need for study serialization should look. The problem is that looking through the schema-docs that Labkey has online I cannot find one that describes the folder.xml object (folderType.xsd is the closest but that should be a member object of the folder object). Furthermore, the "http://labkey.org/folder/xml" namespace referenced in the folder.xml file does not appear to exist in the docs. Am I mis-interpreting what I am observing somehow? Can you please point me in the right direction?

Thanks
Steve2017-03-13 12:38Jon (LabKey DevOps)2018-11-16 23:24Importing reports from xml filesImporting reports from xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

You were right -- the folder.xsd was not being included in the docs.
This has now been corrected.
Docs are available here:

https://www.labkey.org/download/schema-docs/xml-schemas/schemas/folder_xsd/schema-summary.html

Thanks for catching this,
Steve
gkericks2017-03-27 14:52Jon (LabKey DevOps)2018-11-16 23:24Importing reports from xml filesImporting reports from xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks,

I have made a lot of progress with this, but I have one more related question. I have been using the Data Pipeline functionality to actually load what I write into labkey. To automate this, I have been firing off a get request to a url of the following form:

<https://mydomain/labkey/study/STUDY-NAME/checkForReload.view?ui=1>

This works well for updating the dataset, but I have noticed that if I include a new report to an existing project it will not be imported. Is there a FOLDER specific url format I should be hitting? I also noticed that there are Study reload and Folder import Data Pipeline events. Is there a way to automate "Folder reloads"? Not sure if that exists or not.

Thanks again
Jon (LabKey DevOps)2017-03-28 11:47Jon (LabKey DevOps)2018-11-16 23:24Importing reports from xml filesImporting reports from xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Coincidentally, another person asked the same question and there was a way to workaround this.

Please take a look at the following forum post. I think this might work for you as well.

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=11385

Regards,

Jon
gkericks2017-04-05 10:15Jon (LabKey DevOps)2018-11-16 23:24Importing reports from xml filesImporting reports from xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon, I am working through the best way to use that solution and might have some follow-up questions in the future.

Steve, is it possible that the "http://labkey.org/list/xml" namespace is missing from the docs as well, or have those schemas been removed in a recent version? Thanks.
Jon (LabKey DevOps)2017-04-05 10:25Jon (LabKey DevOps)2018-11-16 23:24Importing reports from xml filesImporting reports from xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

Lists work off of the same data namespace, so http://labkey.org/data/xml would be the correct one to use.

https://www.labkey.org/download/schema-docs/xml-schemas/namespaces/http_labkey_org_data_xml/namespace-summary.html#

Regards,

Jon
gkericks2017-04-05 10:30Jon (LabKey DevOps)2018-11-16 23:24Importing reports from xml filesImporting reports from xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Yes, the http://labkey.org/data/xml namespace can describe the lists.xml files generated by exporting lists. However, there is also a "settings.xml" file generated by the export that references a "http://labkey.org/list/xml" namespace. I am using Labkey version 16.2.

Thanks
Jon (LabKey DevOps)2017-04-05 11:35Jon (LabKey DevOps)2018-11-16 23:24Importing reports from xml filesImporting reports from xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

Thanks for clarifying.

I did look into the code and found the lists.xsd, so there is a namespace for http://labkey.org/list/xml. However, it looks limited with only 17 attributes and a little old (last update was on April 12, 2013.)

Per the description:

"Describes the list settings, list-specific properties beyond those included in tableInfo.xsd. Used to generate and read settings.xml in list archives."

Full XML available here: https://hedgehog.fhcrc.org/tor/stedi/trunk/server/modules/list/schemas/lists.xsd (read-only username/password: cpas/cpas)

I'm not certain whether this was intentional or not, but I'll let our docs team run with this one.

Regards,

Jon
Jon (LabKey DevOps)2015-12-15 22:06Jon (LabKey DevOps)2018-11-16 23:24Importing list does not update existing recordsImporting list does not update existing records TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

I've followed up on that bug to see what the determination is on resolving it.

In the meantime, the only thing I can think of that would allow updating of existing rows would be an ETL that would allow a merge, which would update existing records.

https://www.labkey.org/wiki/home/Documentation/page.view?name=etlSchedule

Regards,

Jon
eva pujadas2018-05-07 07:53Jon (LabKey DevOps)2018-11-16 23:23Importing list does not update existing recordsImporting list does not update existing records TEXT_WITH_LINKSClosed     LabKey Support Forum
Dear LabKey team,

Following on this issue, and after shortly discussing with Adam Rauch in the Basel's LabKey conference, I would like to document some inconsistency when bulk-importing data with repeated primary key values.

There are two different behaviors:

1- When the list has as PK an auto-incremental integer, importing data with already existing PK values will be ignored and the already existing data records will be appended to the list as new records with new generated PK value.

2 - When the list does not have an auto-incremental PK, importing data with already existing PK values will report a duplicate key error and data will be neither updated nor appended. E.g. "row 2: ERROR: duplicate key value violates unique constraint "c163d1650_test2_pk" Detail: Key (pk)=(PK1) already exists."

Any chances to restore the updating feature when uploading data files as existed in the past?

Thanks a lot for your great product!
Eva Pujadas
Jon (LabKey DevOps)2018-06-01 22:55Jon (LabKey DevOps)2018-11-16 23:24Importing list does not update existing recordsImporting list does not update existing records TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

I'm not certain what updating feature you're talking about.

The only thing I found in relation to anything like this was a very old issue from about 8 years ago:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10472

Is this what you're referring to?

Regards,

Jon
eva pujadas2018-06-03 23:55Jon (LabKey DevOps)2018-11-16 23:24Importing list does not update existing recordsImporting list does not update existing records TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks a lot for your answer.

Yes, this issue is the one I'm referring to.
I mentioned it just to illustrate that the update function was supported before, and, from our experience, that is the behavior our users are asking for.

Currently, LabKey does not support updating of existing primary keys. But when bulk-importing data, it reacts differently depending on the case: in one case it appends new records in the other case it reports the error of duplicated PKs (see my previous message).
I think that makes using the bulk-import data function confusing and error-prone for users. Do you plan to revise this feature? Or is there something we are missing?

Regards,
Eva
Jon (LabKey DevOps)2018-06-16 00:15Jon (LabKey DevOps)2018-06-16 00:15Importing list does not update existing recordsImporting list does not update existing records TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

I am not certain that we will be restoring this feature anytime soon due to the age of this specific ticket.

If anything changes on that front, we will let you know.

Regards,

Jon
jeckels2016-05-04 09:18Jon (LabKey DevOps)2018-11-16 23:24Importing Datasets (Studies) without DatesImporting Datasets (Studies) without Dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

You can mark a dataset as being demographic data, which does not require a date and allows you to connect based on the participant ids. Note that these types of datasets only allow one row per participant, but I think will match well with your diagram.

https://www.labkey.org/wiki/home/Documentation/page.view?name=setUpDatasets

Thanks,
Josh
diego2016-05-04 10:29Jon (LabKey DevOps)2018-11-16 23:24Importing Datasets (Studies) without DatesImporting Datasets (Studies) without Dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Can I define the CSV file to be uploaded as a demographic data file before the initial import? Have attached two screenshots of the issue I am encountering.

Thanks,
Diego
Jon (LabKey DevOps)2016-05-04 10:37Jon (LabKey DevOps)2018-11-16 23:24Importing Datasets (Studies) without DatesImporting Datasets (Studies) without Dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

No, unfortunately you will need to edit that dataset to set the demographics option after you do the upload as per our documentation here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=setupDatasets

Otherwise, you will need to create the dataset first with all your fields, enable the demographics option, then upload your data into the table.

Regards,

Jon
diego2016-05-04 13:49Jon (LabKey DevOps)2018-11-16 23:24Importing Datasets (Studies) without DatesImporting Datasets (Studies) without Dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Have clicked on "edit definition" and added the fields that correspond to the CSV files, but noticed that "ParticipantID" and "date" are required... Is there anyway of disabling the requirements for both of the former fields?
Attached are two screenshots.

Thanks,
Diego
Jon (LabKey DevOps)2016-05-04 13:53Jon (LabKey DevOps)2018-11-16 23:24Importing Datasets (Studies) without DatesImporting Datasets (Studies) without Dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

No, they're required for the dataset to work.

Have you considered just adding a generic date field using today's date to satisfy the dataset requirements?

Regards,

Jon
diego2016-05-04 13:55Jon (LabKey DevOps)2018-11-16 23:24Importing Datasets (Studies) without DatesImporting Datasets (Studies) without Dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

We actually were talking about that in the meeting, will try it out and get back to you!

Thanks,
Diego
kevink2013-04-22 14:25Jon (LabKey DevOps)2018-11-16 23:24Import data with TabLoader and skipping first N linesImport data with TabLoader and skipping first N lines TEXT_WITH_LINKSClosed     LabKey Support Forum
I think you can use _skipLines if you set it before .inferColumnInfo() is called by .initialize(). You may have to subclass TabLoader in order to set _skipLines. Maybe we need to expose a setter for _skipLines.

Another option would be to do something similar to TabLoader.getComments() in your subclass. The TabLoaderIterator will position the reader past the comments and header in it's constructor.
Greg Taylor2014-07-31 16:32Jon (LabKey DevOps)2018-11-16 23:24Import Data - ERROR: functions cannot have more than 100 arguments;Import Data - ERROR: functions cannot have more than 100 arguments; TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, as you have seen there is now a limit on the number of columns that can be created for a list. This change first occurred in 14.1 where we changed the data representation of lists to hard tables in the database. Unfortunately, this has the side effect of limiting the number of columns in a list to the number of fields supported in a database table. When the limit is exceeded, the somewhat ungraceful postgres error is generated. My advice would be to normalize the list into multiple lists with fewer columns that could be joined together in a query on a key value.

Hope this helps,
Greg
A. Tyrell2014-08-01 10:05Jon (LabKey DevOps)2018-11-16 23:23Import Data - ERROR: functions cannot have more than 100 arguments;Import Data - ERROR: functions cannot have more than 100 arguments; TEXT_WITH_LINKSClosed     LabKey Support Forum
An additional message from Alicia:

Hi Greg,
 
Thank you for your response.
 
I am not working with a list. I am working with an existing dataset with the established columns. Many of the columns are assigned to lists.
 
I am working on breaking the dataset into two different datasets. This is becoming an arduous task because every subject has MV values within the columns throughout the table.
 
I have to export all 64 columns (and ensure only the key values are obtained from the lookups) and in addition, I have to customize the export to include all of the MV values (if any) for each column.
 
Subsequently, I have to then write a script/program to ensure the data is the same and then parse the records back into the two new datasets.
 
Is there an easier to way export data from a dataset with the raw values, and if applicable, the MV value.
 
Thanks and I look forward to your response,
 
Alicia Tyrell
Greg Taylor2014-08-01 10:07Jon (LabKey DevOps)2018-11-16 23:24Import Data - ERROR: functions cannot have more than 100 arguments;Import Data - ERROR: functions cannot have more than 100 arguments; TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alicia,

Given that you are working with a dataset, this does not appear to be related to the change of lists to hard-tables. I will investigate this issue again and see if I can come up with additional information about the cause of this error. We know that there is a limit on the number of parameters to a postgres function but I need to pinpoint exactly which function is being called. Did you happen to set a lot of MV indicators before this problem was observed? I would recommend waiting on splitting the dataset into separate tables until after we know more.

Greg
jeckels2014-08-01 13:41Jon (LabKey DevOps)2018-11-16 23:24Import Data - ERROR: functions cannot have more than 100 arguments;Import Data - ERROR: functions cannot have more than 100 arguments; TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alicia,

We've opened an issue for this problem:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=21234

I believe that this issue exists for both 14.1 and 14.2. For the time being, I've assigned it to 14.1, though we'll need to verify that the proposed fix will also work there.

Thanks,
Josh
A. Tyrell2014-08-06 10:22Jon (LabKey DevOps)2018-11-16 23:23Import Data - ERROR: functions cannot have more than 100 arguments;Import Data - ERROR: functions cannot have more than 100 arguments; TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Greg & Josh,

Acknowledged.

Also, is there a way to address the problem of the MV value being excluded from the export of a dataset, in which the columns have the MVIndicator option enabled, the MVs are never included in the export results.

You essentially have to customize a view to obtain the MVs (and then write scripts to merge the data), or via the schema browser, write case statements to grab either the column or its MV and then export it.

I look forward to your response.

Alicia
Greg Taylor2014-08-06 11:25Jon (LabKey DevOps)2018-11-16 23:24Import Data - ERROR: functions cannot have more than 100 arguments;Import Data - ERROR: functions cannot have more than 100 arguments; TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alicia,

The original problem of the import feature being broken for a dataset with a large number of fields has been fixed in LabKey versions 14.1 and 14.2. We have sent a LabKey 14.1 installer to your LabKey Server Builds page on your support portal. Please install the build and test on your development server and let us know if you have questions about the install process. Also note that the fix involves disabling import 'merge' into a dataset; insert is supported instead. What this means is that existing key (subject IDs / Date) values cannot be in the excel file being imported because this will cause a conflict and produce an error. Insert only works if those dataset rows have first been deleted. If you have questions or concerns about this behavior, let us know and we can discuss them.

LabKey Server Builds Page:
https://www.labkey.org/project/Rochester/LabKey%20Server%20Builds/begin.view?

Regarding your question on MVIndicator being exported, we will need to investigate further before responding.

Greg
jeckels2014-08-07 16:05Jon (LabKey DevOps)2018-11-16 23:24Import Data - ERROR: functions cannot have more than 100 arguments;Import Data - ERROR: functions cannot have more than 100 arguments; TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alicia,

This is the current expected behavior on export. I don't have any other suggestions beyond those that you already mentioned in terms of how to include both the "real" value and the missing value indicator in the output. We made the decision to include just the "real" value in the export case because it caused problems for many downstream tools when there were mixed types in a single column. For example, having integer or date values for many rows, but a string missing value indicator in others.

In your usage scenario, are "real" values and missing value indicators mutually exclusive, or do some rows have both?

Thanks,
Josh
lewis j mcgibbney2015-10-05 21:41Jon (LabKey DevOps)2018-11-16 23:24Implement an QueryUpdateServiceImplement an QueryUpdateService TEXT_WITH_LINKSClosed     LabKey Support Forum
Is anyone against my attempting to implement the above?
Ben Bimber2015-10-06 07:59Jon (LabKey DevOps)2018-11-16 23:23Implement an QueryUpdateServiceImplement an QueryUpdateService TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

a couple questions first: i understand the requirement about learning if a study was created/destroyed. to your second requirement, are you trying to figure out if the set of tables changed (i.e. dataset added/deleted) or structure of tables changed (i.e. user adds/removes a field on a dataset), or are you trying to figure out if a change happened to the data, like a standard insert/update/delete event? i could imagine all of these being important, but going after the latter is different than the first ones.

-Ben
lewis j mcgibbney2015-10-06 08:46Jon (LabKey DevOps)2018-11-16 23:23Implement an QueryUpdateServiceImplement an QueryUpdateService TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,
In short

> to your second requirement, are you trying to figure out if the set of tables changed (i.e. dataset added/deleted) or structure of tables changed (i.e. user adds/removes a field on a dataset), or are you trying to figure out if a change happened to the data, like a standard insert/update/delete event?

The latter. We want to know when some standard CRUD event happens.
Ta
Ben Bimber2015-10-06 09:53Jon (LabKey DevOps)2018-11-16 23:24Implement an QueryUpdateServiceImplement an QueryUpdateService TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

i can think of a couple approaches:

1) There is DatasetListener in StudyManager. This is non-public right now, but appears to fire the events you want (i didnt walk all the way through the code), assuming you only care about datasets. Adding this hook to StudyService so external modules could register their own listeners wouldnt be very invasive. This would mean you'd need to make a LK module running on your server. It would register this listener, and do something on change events. This could mean you ping some external process, or some external process periodically pings your module.

2) if you're dealing specifically w/ studies, the modified field on study.datasets might accomplish #1. this appears to get updated whenever there is a insert/update/delete on the rows of that table. for example:

https://yourServer.com/query/executeQuery.view?query.queryName=study&schemaName=study&query.containerFilterName=AllFolders

will list all studies (note container filter). if you walk the rows (which has a column for container), you can query study.datasets from each container w/ a study. this table has a field for modified, and you would want any dataset modified after your last sync time. any new study or new dataset would inherently be modified after the last sync. if i'm right about modified, then this would work purely from the client API, without any java code or changes.

3) there is a feature in LK to register javascript trigger scripts. This lets you provide JS code that is called on CRUD events for a given table. We use this very heavily in our modules. This being said, I wish is had java hooks, letting modules more easily register new handlers. This wouldnt be hard to introduce, but is more work than #2.
jeckels2015-10-06 14:04Jon (LabKey DevOps)2018-11-16 23:24Implement an QueryUpdateServiceImplement an QueryUpdateService TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

As you've probably guessed, QueryChangeListener is used to fire notifications that a query/table has changed its structure or schema, but not when data rows are inserted/updated/deleted.

I think that Ben's thought about trigger scripts is a good direction to investigate. If you haven't already found the docs, they're here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=serverSideValidation

Each script is associated by naming convention with a specific schema and query. You'd likely want a more generic registration mechanism so that you don't need to add one per dataset, and to be able to register in Java code. You can see where they get invoked in:

server\api\src\org\labkey\api\etl\TriggerDataBuilderHelper.java : BeforeIterator.next(), AfterIterator.next()

and

server\api\src\org\labkey\api\query\AbstractQueryUpdateService.java : deleteRows(), updateRows(), etc

Perhaps adding a new Java interface for listeners to implement, having a registration mechanism on QueryService, and hooking it into TableInfo.fireRowTrigger() and TableInfo.fireBatchTrigger() might be a good approach to pursue?

However, this assumes that you have code that registers itself and runs within the LabKey Server process itself. A custom implementation could, of course, fire off messages to an external process.

Alternatively, you could also use the Java API to monitor for new audit events that indicate that dataset rows have changed (see the auditLog schema's DatasetAuditEvent query for how these look). This could be done external to the server, but would require polling for changes instead of being actively notified.

Thanks,
Josh
adam2017-07-25 11:02Jon (LabKey DevOps)2018-11-16 23:24Impersonating RolesImpersonating Roles TEXT_WITH_LINKSClosed     LabKey Support Forum
When you impersonate roles (or groups) you are still logged in as you (albeit with modified permissions). If you are the owner of the wiki (you created it) then you retain the ability to edit and delete it, even if your permissions are dropped to Reader.

Log in as a different (admin) user and impersonate Reader; only the wikis created by that user will now be editable.

Adam
bront@kcr.uky.edu2017-08-02 12:18bront@kcr.uky.edu2017-08-02 12:18Impersonating RolesImpersonating Roles TEXT_WITH_LINKSClosed     LabKey Support Forum
Great. Thanks for the insight

cheers,

bront
marcia hon2018-02-20 11:13Jon (LabKey DevOps)2018-11-16 23:23Image for R ReportImage for R Report TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you, I figured it out.

I first upload the image into the file repository. Then I click on it to find the URL for the image.

I use this URL in the img html tab.

Thanks!
Marcia
Leo Dashevskiy2013-01-10 00:11Leo Dashevskiy2013-01-10 00:11Id of the image returned by R back to JSId of the image returned by R back to JS TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Kevin.

Dax, I will explore the new API shortly, though, it is a new, experimental feature, right? And the old way of doing things have been thoroughly used elsewhere and so should still be kept in working order, so I think...
Leo Dashevskiy2013-01-10 12:44Leo Dashevskiy2013-01-10 12:44Id of the image returned by R back to JSId of the image returned by R back to JS TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh, ok, I got you, Dax. Will get to version 13.1 in a little bit.
Nick Kerr2012-09-19 13:52Jon (LabKey DevOps)2018-11-16 23:24Id of the image returned by R back to JSId of the image returned by R back to JS TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Depending on what you are trying to do you could give the report webpart a unique ID on the page and then grab the image from within that scope.

In Ext 4 it would be something like Ext4.DomQuery.select('#<webpart-id> img'). This does depend on what you are trying to do, but if you just need the element then this should work.

Thanks,
Nick
Leo Dashevskiy2012-09-19 14:07Jon (LabKey DevOps)2018-11-16 23:23Id of the image returned by R back to JSId of the image returned by R back to JS TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick, I am trying to stick it into the Ext.Resizable(), which takes in the 'id' of the element. It is working for me for a single copy, but not for when there are 2. (Looking at the docs, it also can take an element in place of the 'id', may be, I could use that somehow... Btw, I'm still not using Ext4 and so no DomQuery, but jQuery seems to work just fine for these)
Leo Dashevskiy2013-01-09 15:34Jon (LabKey DevOps)2018-11-16 23:23Id of the image returned by R back to JSId of the image returned by R back to JS TEXT_WITH_LINKSClosed     LabKey Support Forum
Got it to work, though, through, what I would consider ugly, ugly hack.

Had to modify the default 'resultImage' id of the generated images by appending the web part's unique id to it, thus making them all unique.

Is it not bad practice, though, to have non-unique id's in an HTML document? So should the server instead perform this kind of appending?

Thanks.
kevink2013-01-09 16:23Jon (LabKey DevOps)2018-11-16 23:23Id of the image returned by R back to JSId of the image returned by R back to JS TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the report. I've filed a bug to track the issue here:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=16923
Dax2013-01-09 16:44Jon (LabKey DevOps)2018-11-16 23:24Id of the image returned by R back to JSId of the image returned by R back to JS TEXT_WITH_LINKSClosed     LabKey Support Forum
As an aside, you could also use the new LABKEY.Report.execute API available in 13.1. This does surface the name of the output parameter as the name property of the ScriptOutput returned for each output parameter. You still would need to "uniquify" the name but you could do that either in your R script or via a parameter you pass in.
Dax2013-01-10 07:50Dax2013-01-10 07:50Id of the image returned by R back to JSId of the image returned by R back to JS TEXT_WITH_LINKSClosed     LabKey Support Forum
No, the new execute API is not an experimental feature. However, it is only available in 13.1.
jeckels2014-03-26 10:58Jon (LabKey DevOps)2018-11-16 23:24Icons in QueryWebPart ButtonBar?Icons in QueryWebPart ButtonBar? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tobin,

You're correct, icons are not supported for the buttons themselves. This isn't just an oversight in the XML, it's not something that we have current support for with this style of button. Sorry this isn't possible right now.

Thanks,
Josh
jeckels2014-03-28 14:16jeckels2014-03-28 14:16Icons in QueryWebPart ButtonBar?Icons in QueryWebPart ButtonBar? TEXT_WITH_LINKSClosed     LabKey Support Forum 
Matthew Bellew2008-04-11 13:20Jon (LabKey DevOps)2018-11-16 23:23HTTP Status 404 - /labkey/ftp error in Windows OSHTTP Status 404 - /labkey/ftp error in Windows OS TEXT_WITH_LINKSClosed     LabKey Support Forum
The install command will only work once. To run it again first do an 'uninstall'.

Also, the link http://localhost:8080/labkey/ftp is not a viewable web page. If you can get to http://localhost:8080/labkey/Project/home/begin.view, then you should be OK.
guruprasadurs@yahoo.co.in2008-04-11 20:58Jon (LabKey DevOps)2018-11-16 23:24HTTP Status 404 - /labkey/ftp error in Windows OSHTTP Status 404 - /labkey/ftp error in Windows OS TEXT_WITH_LINKSClosed     LabKey Support Forum
thats right Matthew. Actually i didnt need Labkey server, i need FTP here.And i want to know how to get ftp site here...i want to upload and download files there.
Matthew Bellew2008-04-12 12:12Jon (LabKey DevOps)2018-11-16 23:24HTTP Status 404 - /labkey/ftp error in Windows OSHTTP Status 404 - /labkey/ftp error in Windows OS TEXT_WITH_LINKSClosed     LabKey Support Forum
First, I want to make sure you understand that the "install" command you used does NOT run the ftp server. It installs a windows service. To run the server you would use the command "net start labkeyftp".

I'm confused by your last post. If you are not interested in using the LabKey server, there are many other free ftp servers that might make more sense to use. The LabKey FTP server is designed as an add-on to the LabKey server, not as a general purpose FTP server. For instance, all the use configurtion and user permissions are handled from within the LabKey server interface.
guruprasadurs@yahoo.co.in2008-04-13 20:50Jon (LabKey DevOps)2018-11-16 23:23HTTP Status 404 - /labkey/ftp error in Windows OSHTTP Status 404 - /labkey/ftp error in Windows OS TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Matthew i got the answer. And i m using CrossFTP now.
Nick Kerr2017-09-22 10:22Jon (LabKey DevOps)2018-11-16 23:24HTTP selectRows.api with particiapnt group filterHTTP selectRows.api with particiapnt group filter TEXT_WITH_LINKSClosed     LabKey Support Forum
I'd recommend POSTing to the selectRows API and including the filter in the POST body. A reason for this is filter parameters can be an arbitrary length and begin to run into URL length constraints.

Thanks,
Nick Kerr
Jon (LabKey DevOps)2017-09-22 10:40Jon (LabKey DevOps)2018-11-16 23:24HTTP selectRows.api with particiapnt group filterHTTP selectRows.api with particiapnt group filter TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

Are you inserting that URL into your browser?

Have you tried to encode the slash between SubjectId/rabbits as SubjectId%2Frabbits instead?

Rather than:

https://BASEURL.ORG/query/MYPROJECT/selectRows.api?schemaName=study&query.queryName=Demographics&query.SubjectId/rabbits~eq=rabbits

You'd use:

https://BASEURL.ORG/query/MYPROJECT/selectRows.api?schemaName=study&query.queryName=Demographics&query.SubjectId%2Frabbits~eq=rabbits

This should also work as well.

Regards,

Jon
Ju Yeong Kim2017-09-22 11:54Jon (LabKey DevOps)2018-11-16 23:24HTTP selectRows.api with particiapnt group filterHTTP selectRows.api with particiapnt group filter TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you, Nick and Jon.

Jon, you were right. It was the URL encoding issue.

Nick, I will keep that in mind.

Ju
Jon (LabKey DevOps)2017-10-23 13:38Jon (LabKey DevOps)2018-11-16 23:24HTTP request was unsuccessful. Status code = 401, Error message = UnauthorizedHTTP request was unsuccessful. Status code = 401, Error message = Unauthorized TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ali,

Assuming that you're accessing a local test instance of LabKey that is running on your laptop and using the address http://localhost:8080/labkey, can you do the following:

1. Tell us what operating system you're running.

2. Confirm how your netrc file is setup. If it set to work on your local instance and we assume it's http://localhost:8080/labkey, then the configuration should look like this:

machine localhost
login user@emailaddress.com
password thePasswordForTheLabKeyUserAbove


3. Send us your R code that you're using to access the Rlabkey library to your local instance of LabKey

More details on the netrc file is available here: https://www.labkey.org/Documentation/wiki-page.view?name=netrc

If #2 looks good, then it may be how you're accessing the local instance of LabKey via your R code that's the problem and examining your code will help.

Regards,

Jon
faruqia2017-10-24 14:21Jon (LabKey DevOps)2018-11-16 23:24HTTP request was unsuccessful. Status code = 401, Error message = UnauthorizedHTTP request was unsuccessful. Status code = 401, Error message = Unauthorized TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

I'm not using a local test instance of LabKey running on your laptop. I'm rather trying to access the Labkey dev instance running at Roche/Genentech. Following are the answers to your questions:

1) Mac OS X El Capitan, Version 10.11.6

2) .netrc file is setup. Contents are:

machine labkey-dev.roche.com
login faruqi@gene.com
password <thePasswordForTheLabKeyUserAbove>


3) R code I'm using:

library(Rlabkey)

labkey.url.base <- "https://labkey-dev.roche.com:8443/labkey/"
labkey.url.path <- "/gRED/MSstats-Dev/"

invisible(labkey.setCurlOptions(ssl.verifyhost = 2,ssl.verifypeer = FALSE))

data <- labkey.selectRows(
  baseUrl = labkey.url.base,
  folderPath = labkey.url.path,
  schemaName = "targetedms",
  queryName = "replicateannotation",
  colNameOpt = "fieldname",
  containerFilter = NULL
)


Let me know if you have any questions. Thanks.
faruqia2017-10-24 14:24Jon (LabKey DevOps)2018-11-16 23:23HTTP request was unsuccessful. Status code = 401, Error message = UnauthorizedHTTP request was unsuccessful. Status code = 401, Error message = Unauthorized TEXT_WITH_LINKSClosed     LabKey Support Forum
Yikes! I figured out the error. I was missing a letter in my email address. Thanks a lot for your help and sorry about that.

Best,
Ali
Ben Bimber2011-11-29 16:19Jon (LabKey DevOps)2018-11-16 23:24How to use the LABKEY.MultiRequest Class?How to use the LABKEY.MultiRequest Class? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi scott,

i think you want to follow a pattern more along these lines:


var result1;
var result2;
var assays;

var multi = new LABKEY.MultiRequest();

multi.add(LABKEY.Query.selectRows, {
  schemaName: 'study',
  queryName: 'query',
  scope: this,
  success: function(results){result1 = results);}
});

multi.add(LABKEY.Query.selectRows, {
  schemaName: 'study',
  queryName: 'query2',
  scope: this,
  success: function(results){result2 = results;}
});

multi.add(LABKEY.assay.getAll, {
  success: function(results){assays = results;}
});

multi.send(onSuccess, this);

function onSuccess(){
  //your code here
console.log(result1);
console.log(result2);
console.log(assays);
}

in the example you posted, you wrapped the calls to selectRows() in a function and passed these functions to MultiRequest. Rather than actually call selectRows, you want to pass the asyncronous function to MultiRequest and let it call it. If you look at how MultiRequest works, you'll see it's just using the success callback from each AJAX call (multirequest.js ~line 140). When selectRows fires the success callback is called, MultiRequest knows it was completed. in theory you could pass this to multiRequest and have it work:

function sillyFunction(config){
  if(config.success)
     config.success.defer(100, this);
}
var multi = new LABKEY.MultiRequest();

multi.add(sillyFunction, {success: function(){console.log('success!')}});

multi.send(function(){
    console.log('more success!')
}, this);

note that all sillyFunction does is to fire a success callback, but that's sufficient for MultiRequest to decide it completed and fire it's own success function.
Leo Dashevskiy2013-08-07 15:15Leo Dashevskiy2013-08-07 15:15How to use/interact with embedded 'Files' Web Part?How to use/interact with embedded 'Files' Web Part? TEXT_WITH_LINKSClosed     LabKey Support Forum
No longer relevant.
Leo Dashevskiy2013-07-24 14:30Jon (LabKey DevOps)2018-11-16 23:23How to use/interact with embedded 'Files' Web Part?How to use/interact with embedded 'Files' Web Part? TEXT_WITH_LINKSClosed     LabKey Support Forum
Anyone?

What would be the point of having these embedded web parts then? If one cannot interact with them...
Nick Kerr2013-07-24 15:33Jon (LabKey DevOps)2018-11-16 23:24How to use/interact with embedded 'Files' Web Part?How to use/interact with embedded 'Files' Web Part? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

The original intent of providing a files web part is to allow users to interact with the server's file system. If you'd like to develop against a FilesWebPart I'd recommend looking at the LABKEY.FilesWebPartPanel which is the class that backs the rendered 'Files' LABKEY.WebPart. However, note that the LABKEY.FilesWebPartPanel is not a part of the Client API and is subject to change/deprecation/removal.

I can point you to an example usage of this in one of our custom modules if you'd find that helpful.

Thanks,
Nick
Leo Dashevskiy2012-04-11 17:22Leo Dashevskiy2012-04-11 17:22How to use Ext.form.field.ComboBox with LABKEY.ext.Store ?How to use Ext.form.field.ComboBox with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Seems like needed extra config options for things to work smoother, such as

triggerAction: 'all',
forceSelection: true,
typeAhead: true,
minChars: 0,

Thanks.

Btw, I think either Ext4 itself or you guys independently should include the following "SuperComboBox" in the next release:
http://technomedia.co.uk/SuperBoxSelect/examples3.html
Leo Dashevskiy2012-06-21 11:20Leo Dashevskiy2012-06-21 11:20How to use Ext.form.field.ComboBox with LABKEY.ext.Store ?How to use Ext.form.field.ComboBox with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, I think I like being up-to-speed with the latest tendencies and using bleeding edge stuff :)
Leo Dashevskiy2012-04-06 18:55Jon (LabKey DevOps)2018-11-16 23:24How to use Ext.form.field.ComboBox with LABKEY.ext.Store ?How to use Ext.form.field.ComboBox with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben. That seems to work.

Some more questions about a comboBox and a related LOVcomboBox

Would you know if this is the intended behavior of LOVCombo/regularCombo that when you click on the arrow to show the pull down menu and select something (and then click once more on the arrow to hide the list of choices for the LOVCombo) and then if you were to click on the arrow one more time, then the original entire list (with your selection highlighted) does not show up ?

Or could it be configured somehow to be the same as for the classical HTML <select> tag?
Its behavior is such that after you selected something if you were to click on the pull-down arrow one more time, then the entire menu would show up with your selection.


Also would you know, by any chance, if this widget is configurable so that one can set a length for the list of the pull-down menu, so that one could paginate through all of the options back and forth if the number of them is greater, than that set length? (I believe, I have seen something like that somewhere just recently, but cannot recall exactly.)

Thank you.
-Leo
Ben Bimber2012-04-06 19:15Jon (LabKey DevOps)2018-11-16 23:24How to use Ext.form.field.ComboBox with LABKEY.ext.Store ?How to use Ext.form.field.ComboBox with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi leo,

that behavior for the LOV combo does not sound like what i would expect, but i cant say much without looking at the code. the behavior you describe sounds like something is applying a filter on the store - any chance some code is doing this?

i'm not aware of anything using a basic <select>.

i have a vague recollection of seeing a paged combo list like you describe; however, it would probably be ext4. if you have a really long list I might consider just supporting type-ahead (ext combos can do this).
Leo Dashevskiy2012-06-20 15:41Jon (LabKey DevOps)2018-11-16 23:24How to use Ext.form.field.ComboBox with LABKEY.ext.Store ?How to use Ext.form.field.ComboBox with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello, so did I hear correctly that Labkey.store can now work with Ext4.combo ?
Ben Bimber2012-06-20 20:33Jon (LabKey DevOps)2018-11-16 23:24How to use Ext.form.field.ComboBox with LABKEY.ext.Store ?How to use Ext.form.field.ComboBox with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

We do not have an officially released Ext4 version of our client API; however, an early version is included with 12.1. We use it on several LabKey pages. If you're interested in using it for development, you are welcome to try it; however, please note that this is not an official API yet and therefore may change in future releases. If you're interested, let me know.
Ben Bimber2012-04-11 22:34Ben Bimber2012-04-11 22:34How to use Ext.form.field.ComboBox with LABKEY.ext.Store ?How to use Ext.form.field.ComboBox with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Glad it seems to be working. Ext Combos do require some non-intuitive configuration, but hopefully once you've got one working the rest should be easy. Ext4 seems to be a little simpler for combos when/if you start working with that.

With respect to custom Ext components: one of the advantages of a framework like Ext is that there are libraries of widgets to draw from, along with many user-provided extensions like the Supercombo. If you are writing a custom module, it's pretty easy to include and use these. It's usually smarter to draw from one of these rather than reinvent it. However, we want to be careful about what is included with LabKey by default. There isnt really anything labkey-specific about the SuperCombo, and therefore it probably would not get included unless actively used somewhere in the core. What's useful to one application may or may not be useful to another. In contrast, the Ext components that are part of the LabKey API (LABKEY.ext.Store, FormPanel, etc) all contain customization specifically designed for use with LabKey. Ext does seem to be incorporating more user-written widgets into its core library, and getting something like SuperCombo covered by Ext might be useful (I'm afraid that's completely out of our hands though).
Jon (LabKey DevOps)2017-12-12 15:36Jon (LabKey DevOps)2017-12-12 15:36How to use a site-level custom theme?How to use a site-level custom theme? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

At this time, we no longer support user defined custom themes in LabKey 17.3

We do currently offer 7 built-in alternative themes to choose from within the new UI, so there are plenty of options to choose from and I'm confident one of those themes will be good for your needs.

Regards,

Jon
kevink2011-06-14 13:07Jon (LabKey DevOps)2018-11-16 23:24How to trigger a server-side script to run?How to trigger a server-side script to run? TEXT_WITH_LINKSClosed     LabKey Support Forum
Currently, server-side javascript can only be run when inserting/updating/deleting rows on some tables. We have plans to enable server-side javascript actions which could be triggered from a button click, but we just haven't gotten around to implementing it yet.
michael_stover@urmc.rochester.edu2011-06-14 13:24Jon (LabKey DevOps)2018-11-16 23:24How to trigger a server-side script to run?How to trigger a server-side script to run? TEXT_WITH_LINKSClosed     LabKey Support Forum
That's not exactly what I meant. Right now, you can, for instance, write a transformation script that is executed when assay data is imported. These scripts can be written in any language one has configured a script engine for, such as R.

But how else can R scripts sitting on the server be triggered? I would like to be able to write R scripts, put them on the server, and be able to trigger them via some sort of call to the server through the web interface, whether there's a function in the javascript api that will do that is the question.

In the future, we'd like to be able to trigger extremely computationally intensive activities this way, which means writing scripts that are callable from the labkey server-side code that will take the data, send it to a cluster, and then import that data back into labkey when the computation is done (potentially days or weeks later).
feifei bao2015-04-25 14:37Jon (LabKey DevOps)2018-11-16 23:24how to save the selection in a listhow to save the selection in a list TEXT_WITH_LINKSClosed     LabKey Support Forum
Also if my column in the list has two different values, how can I link them to different urls? In the "edit design" I can only add one url.

Best regards,

Feifei
Jon (LabKey DevOps)2015-04-27 17:02Jon (LabKey DevOps)2018-11-16 23:24how to save the selection in a listhow to save the selection in a list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

Can you provide us with more descriptive details as to what you're needing?

Please describe what you expect the end-user to experience with those checkboxes.

And regarding the column having two different URLs, that wouldn't be possible with the current design since the XML metadata only allow one URL to be used per column.

Regards,

Jon
feifei bao2015-04-27 20:17Jon (LabKey DevOps)2018-11-16 23:24how to save the selection in a listhow to save the selection in a list TEXT_WITH_LINKSClosed     LabKey Support Forum
Sure. For a list, users can select some certain rows by checkbox showed on the first column. How can I show the selected rows on another wiki page? Or extract information from the selected rows.

Regarding the URLs issus, can I realize this by javascript API when I create the query web part ?

Thank you very much.

Feifei
Jon (LabKey DevOps)2015-04-28 11:39Jon (LabKey DevOps)2018-11-16 23:23how to save the selection in a listhow to save the selection in a list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

Just to make sure we're on the same page, is this what you're asking:

1. A user is on one page with a query web part displaying.
2. The user clicks on a few checkboxes that correspond with various rows in your query web part.
3. The user then clicks something like a button which then takes them to another wiki page.
4. When that wiki page loads, it will contain just the information from the other page that corresponds with the checked items.

Is that correct?

Regarding the URLs, the Javascript API will not be able to support that correctly. You might be able to get away with having different URLs by having users go to one URL that in-turn redirects them to another URL based on the value of what was clicked, but that would require more work to get the redirect setup on your end.

Regards,

Jon
feifei bao2015-04-28 11:51Jon (LabKey DevOps)2018-11-16 23:24how to save the selection in a listhow to save the selection in a list TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, your understanding is right. That is what I want to realize.

Best regards,

Feifei
Jon (LabKey DevOps)2015-04-28 12:43Jon (LabKey DevOps)2018-11-16 23:24how to save the selection in a listhow to save the selection in a list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

In order to pass selected data from your one query web part from one wiki page over to another wiki page, you would have to:

1. Setup a custom button either in Javascript or in the XML Metadata and use the onClick option to trigger the Javascript.

https://www.labkey.org/wiki/home/Documentation/page.view?name=customButtonBars
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html#constructor

2. Your onClick would have to specifically identify just the rows that were checked on (probably using something like .checked on those checkbox objects - http://www.javascriptkit.com/jsref/checkbox.shtml)

3. Once the boxes that are checked on are identified, the rowIDs and/or the values for all of those identified rows would need to be put in an array and then passed into a Labkey ActionURL (a buildURL in this case - https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ActionURL.html#.buildURL) to construct the path to the other wiki page and add the array to a parameter to be used by the other wiki page and then the user would be redirected via window.location)

4. Your other wiki page would then have to take the values that were passed into the URL as an array and then either use the values from that URL via another Labkey ActionURL (probably getParameters or getParameterArray - https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ActionURL.html#.getParameterArray) and use those parameters within your query web part Javascript API code or use it as a apart of a selectRows Javascript API call.

Regards,

Jon
feifei bao2015-05-03 21:54Jon (LabKey DevOps)2018-11-16 23:24how to save the selection in a listhow to save the selection in a list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I have some questions about step2 you mentioned above. How can I refer to the default checkbox column in the list in lackey? Could you please give me an example about this specifically identify?

What's more, can I have a way to customize the user query column to be a checkbox column?

Thank you very much.

Feifei
Jon (LabKey DevOps)2015-05-06 12:16Jon (LabKey DevOps)2018-11-16 23:24how to save the selection in a listhow to save the selection in a list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

If you use a web debugging tool like Firebug or Google Chrome's JConsole, you can inspect the elements of the list (specifically one of the checkboxes in the first column). All of the checkboxes have a name of ".select", so you can setup a button to identify those that are checked on like this for your XML metadata:

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="ListTest" tableDbType="NOT_IN_DB">
    <columns></columns>
        <buttonBarOptions position="top" includeStandardButtons="true" >
        <item text="OnCLickButton">
          <onClick><![CDATA[
                        for (i=0; i < document.getElementsByName(".select").length; i++){
                            if (document.getElementsByName(".select")[i].checked){
                                alert("Box number " + i + " in the array is checked. Its key value is " + document.getElementsByName(".select")[i].value);
                            }
                        }
                    ]]></onClick>
        </item>
    </buttonBarOptions>
  </table>
</tables>

The XML above creates a button that will identify which boxes are checked and bring up an alert respectively showing which box was checked and the corresponding value of that checkbox that is tied to the specific row.

Regarding your follow-up question, I'm not sure I understand what you're asking here. What user query column are you referring to? Can you provide a screenshot so I can get a better idea of what you're asking to change?

Regards,

Jon
Jon (LabKey DevOps)2015-04-20 14:21Jon (LabKey DevOps)2018-11-16 23:24How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

I want to make sure I'm understanding you correctly here.

You want to customize the way your list renders a boolean value so it would display a specific link in lieu of saying True or False?

Regards,

Jon
feifei bao2015-04-20 15:25Jon (LabKey DevOps)2018-11-16 23:23How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Yes, your understanding is right. That is what I want to do.

Feifei
Jon (LabKey DevOps)2015-04-20 15:54Jon (LabKey DevOps)2018-11-16 23:24How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

Thanks for confirming. I do not believe that this is possible. The XML Metadata section will not allow a URL to be rendered based on conditional formatting and the Javascript API doesn't have anything showing the ability to change a rendered QueryWebPart to alter how a boolean value to utilize a link in lieu of the True/False value.

I will confirm my information here, but it looks like the only way you'd be able to accomplish this is not by rendering the list via a QueryWebPart but as just a selectRows call and build a table to render your data instead so you can replace the boolean value with your download & create links.

Regards,

Jon
Jon (LabKey DevOps)2015-04-20 17:32Jon (LabKey DevOps)2018-11-16 23:24How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

Just curious, can you show me an example of the Create and the Download links?

I was thinking about possibly you using a CASE in your SQL query to change the text from true and false to any other text you'd want to render. The Query Web Part will also render any HTTP URLs as clickable as well automatically. However, what will dictate a Create URL vs a Download URL that would be unique to each record?

Regards,

Jon
feifei bao2015-04-20 17:51Jon (LabKey DevOps)2018-11-16 23:23How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Sure. I have a wiki page shows the participant list and another page shows the table to insert a new row of the list. Once I insert a new row, the boolean column('Report') return false value and show "Create" link. After clicking the link, the page goes to a generating report page. Once the user creates the report, the 'Report' column in the list returns true and display 'Download' link. This link can be used to download the created report.

I hope I explain it clearly enough.

Thank you very much.

Feifei
Jon (LabKey DevOps)2015-04-20 17:59Jon (LabKey DevOps)2018-11-16 23:23How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

I know you want a create link to show up. What I'm asking you is where is this create link supposed to point to? I need to see an example of the URL and an example of the URL for the download link.

Regards,

Jon
feifei bao2015-04-20 18:05Jon (LabKey DevOps)2018-11-16 23:24How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I see. For example, 'List' main page URL: https://flubigdata.circ.rochester.edu/labkey/project/Feifei%20Project/GeneProject/begin.view?
                              'Create' URL: https://flubigdata.circ.rochester.edu/labkey/project/Feifei%20Project/GeneProject/begin.view?pageId=Variant%20Selection
                              'Download' URL: https://flubigdata.circ.rochester.edu/labkey/project/Feifei%20Project/GeneProject/begin.view?pageId=Report%20Download

Best regards,

Feifei
Jon (LabKey DevOps)2015-04-20 21:04Jon (LabKey DevOps)2018-11-16 23:23How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Feifei,

So I did find another way to do this. It isn't exactly what you asked for, but it is close.

This requires you to do the following:

1. Create a new query off of your existing list via the Schema Browser. To create a new query, just select your list in the schema browser and click on "Create New Query".
2. In your new query, you will want to do the following:
   - Add the Primary Key field to your query or whatever field is going to be used to identify the specific record
   - Update the boolean field to use a CASE. See my example below:

SELECT TestBool.Key,
TestBool.Name,
CASE WHEN TestBool.download = false THEN 'Variant Selection' ELSE 'Download Report' END AS url
FROM TestBool

The query above is tied to a basic list that just has the Key value, a name field, and a download option that appears as a checkbox to do the boolean value. The CASE will use the words "Variant Selection" if the download is false and "Download Report" if it's true.

3. After the query is saved, you will update the XML Metadata for the field where the case is being used ("url" in my example). So you will go into the Edit Metadata section of the query and add the following to the URL field that corresponds with the boolean field:

/labkey/project/Feifei%20Project/GeneProject/begin.view?pageId=${url}&recordId=${Key}

This will then create a query off of the list and it will be a link to a specific page (Variant Selection or Report Download) based on whether it's true or false and it will also pass along the ID of the record in the list.

Does this make sense?

Regards,

Jon
feifei bao2015-04-21 12:06Jon (LabKey DevOps)2018-11-16 23:24How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thank you for your detailed explanation. I tried as you said. It works! Great!

Thank you very much.

For a certain list, the 'Import Data' has two choices(1.Upload file; 2.Copy/paste text). How can I move this interface to my own wiki page and delete "Import Data" button on the list? Can I delete "Copy/paste text" and only leave "upload file" function?

Best regards,

Feifei
Jon (LabKey DevOps)2015-04-21 13:56Jon (LabKey DevOps)2018-11-16 23:24How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

You can remove or change what the button does either via Javascript or via the XML Metadata.

Just like what we covered here: https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=10597, you can either use XML Metadata to alter your buttonbar or use Javascript to do it within the wiki page.

You can replace Import Data button with a different button altogether and have it point to your wiki page in lieu of it going to the standard default page the list will use for the import.

XML Reference Source: https://www.labkey.org/wiki/home/Documentation/page.view?name=customButtonBars
Javascript Reference Source: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html#constructor

Regards,

Jon
feifei bao2015-04-23 13:22Jon (LabKey DevOps)2018-11-16 23:24How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

 As you suggested before, I create a new query off of my list via the Schema Browser. For this query, the default view does not show the "selection box", "EDIT" and "DETAILS" columns. I want to customize this function to my query.

So I tried this coding in XML Metadata:

 <ns:buttonBarOptions alwaysShowRecordSelectors = "true">
 </ns:buttonBarOptions>

It always shows "Error : Attribute not allowed (no wildcards allowed): alwaysShowRecordSelectors in element buttonBarOptions@http://labkey.org/data/xml"

But I tried:

    <ns:buttonBarOptions includeStandardButtons="true">
    </ns:buttonBarOptions>

It is OK.

Actually I am not sure whether this function can solve my problem.

Thank you very much.

Feifei
Jon (LabKey DevOps)2015-04-23 16:41Jon (LabKey DevOps)2018-11-16 23:23How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

Those Edit and Details columns are only accessible from the original built-in queries & tables for the Lists, not for the user-defined queries. I'm not sure why you're looking to have the edit and details options there when you previously said that you wanted the Boolean value to generate a link that would take the user to a wiki that would then update the table of the original list, thereby not requiring an Edit or Details column.

Regards,

Jon
feifei bao2015-04-24 07:43Jon (LabKey DevOps)2018-11-16 23:23How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Because the boolean value is used to generate a report related with the participant rather than delete or edit the row in the list.

Best regards,

Feifei
Ben Bimber2015-04-24 07:55Jon (LabKey DevOps)2018-11-16 23:24How to render the boolean fieldHow to render the boolean field TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

I think there's another avenue that might help you here. It's not used often, but columns can have a custom onClick handler added through XML. Rather than try to change the URL of this column, you could add some JS code such that when you click the column it will conditionally do whichever behavior is appropriate. Here's a rough example of what it might do:

<column columnName="Id">
    <displayColumnFactory>
        <className>org.labkey.api.data.JavaScriptDisplayColumnFactory</className>
        <properties>
            <!--this is a JS file containing the handler to be called. While you could write the JS code in the onClick handler below, but debugging will be easier if separated-->
            <property name="dependency">myModule/myCode.js</property>
            <!-- this will call your code, passing in the column's value. your handler can take this information and do whatever is appropriate-->
            <property name="javaScriptEvents">onClick="MyModule.onBooleanFieldClick('${FieldNameHere}');"');"</property>
        </properties>
    </displayColumnFactory>
</column>


You could probably also use variations on this to modify the text you display, meaning you dont see a separate SQL statement, and avoid the problems with editability.
Jon (LabKey DevOps)2015-05-29 16:22Jon (LabKey DevOps)2018-11-16 23:24How to remove search and pages parts on wiki page?How to remove search and pages parts on wiki page? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

It doesn't appear that these are actually removable within the wiki page itself.

I will confirm whether there is another way to remove those.

Regards,

Jon
Jon (LabKey DevOps)2015-06-02 16:56Jon (LabKey DevOps)2018-11-16 23:24How to remove search and pages parts on wiki page?How to remove search and pages parts on wiki page? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

So I've confirmed that the search and table of contents boxes are not removable and are currently hard-coded into the wiki java module. So the only way those could be removed is to have the code changed, which will require a paid work order to make this feature enhancement.

If you are interested in getting that work order started, please let us know and we will coordinate with your group on the arrangements.

Regards,

Jon
dennisw2013-06-25 06:28Jon (LabKey DevOps)2018-11-16 23:24How to reduce labkey development build time in mac?How to reduce labkey development build time in mac? TEXT_WITH_LINKSClosed     LabKey Support Forum
Not sure what development environment you are using. One thing that really seems to make a difference is raising the memory you allow your JVM to have during the build. For instance, in IntelliJ IDEA you can change the config file to greatly increase the RAM allowed the jvm, and also in Eclipse. Also, there's always the option of using an SSD instead of a standard hard drive which greatly increases the file I/O time (do they have SSD's for Macs?). The last thing would be to make sure you're running the most appropriate Ant target in build.xml. Although you have to be careful about it, sometimes you don't necessarily need a whole clean and build. On my Windows machine a whole clean and build might take 20 minutes but my distribution target only takes 5 minutes or so. That's on a 64-bit machine and giving the jvm I think 3GB. 2-3 hours sounds really slow, though. Labkey guys can probably give you some great advice on speeding that up.
adam2013-06-25 07:46Jon (LabKey DevOps)2018-11-16 23:24How to reduce labkey development build time in mac?How to reduce labkey development build time in mac? TEXT_WITH_LINKSClosed     LabKey Support Forum
There's definitely something wrong with your machine or settings. Our build time is of course highly dependent on number of cores (our build will use them all), their speed, and available memory, but the range for a rebuild on reasonably modern machines tends to be 5 - 20 minutes. I believe all developers at LabKey using Macs (MacBook Pro laptops) are in that range.

Please provide more information. What is your machine configuration (model name, number of cores, speed, RAM)? Please reboot and issue an "ant rebuild" from the command line (to eliminate variability introduced by your IDE) and report the time it takes. If it's still slow, can you tell which parts are taking a long time?

Of course a full rebuild is rarely needed during incremental development. "ant build" or "ant <module name>" should be sufficient in most cases. And you can configure incremental IntelliJ builds and hot-swapping for even faster incremental development (with some caveats). Also, the -DdevMode=true flag and gwt-user-override environment variable can be helpful. Our documentation explains all of these options:
https://www.labkey.org/wiki/home/Documentation/page.view?name=build

In your case, though, you have an underlying configuration problem that needs to be addressed.

Adam
Jon (LabKey DevOps)2015-04-22 10:41Jon (LabKey DevOps)2018-11-16 23:24How to modify a stored document (.doc) and let user download it from wiki pageHow to modify a stored document (.doc) and let user download it from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Himanshu,

You would have to create your own custom module written in Java to perform the actions you're describing.

Please review our development documentation on building your own Java module here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=simpleModules
https://www.labkey.org/wiki/home/Documentation/page.view?name=buildingModule

Regards,

Jon
himanshu mendhe2015-04-22 12:00Jon (LabKey DevOps)2018-11-16 23:24How to modify a stored document (.doc) and let user download it from wiki pageHow to modify a stored document (.doc) and let user download it from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon, thanks for replying!
Does creating a custom module in Java mean recompiling the LabKey's source code? If yes, then that is a scenario I was trying to avoid, but I would do it as a last resort.
However, could you comment on the following alternate approaches:
1. Write an R script to modify the template, which gets invoked through Javascript.
2. Don't have a .doc template, but an HTML one and modify it and let the user print it.
Jon (LabKey DevOps)2015-04-22 22:24Jon (LabKey DevOps)2018-11-16 23:23How to modify a stored document (.doc) and let user download it from wiki pageHow to modify a stored document (.doc) and let user download it from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Himanshu,

Are you talking about triggering an R Script via Javascript on the client side?

Regards,

Jon
himanshu mendhe2015-04-23 06:28Jon (LabKey DevOps)2018-11-16 23:24How to modify a stored document (.doc) and let user download it from wiki pageHow to modify a stored document (.doc) and let user download it from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes. I know it is possible but what I am unsure about, in this case, is whether you support R's packages like 'pandoc' or 'markdown' and if installation is required, how do I install them on LabKey?
Another thing is, does LabKey give enough permissions to the R script to create/modify a file on the LabKey Server (inside the file-based module), because that is where I am going to store the template.
Also, finally, it would be great to know if LabKey has any inbuilt mechanism for file downloading which I can leverage.
Jon (LabKey DevOps)2015-04-23 17:02Jon (LabKey DevOps)2018-11-16 23:24How to modify a stored document (.doc) and let user download it from wiki pageHow to modify a stored document (.doc) and let user download it from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Himanshu,

So according to our developers, we can we trigger an R script from javascript. There is a special LABKEY.Report Javascript API that can execute an R report. In a file-based module, it is possible to have an R report in the module that is executed via Javascript using LABKEY.Report.execute().

Additionally, any R packages can be installed on the server that is using R. Here's our documentation on using knitr with markdown - https://www.labkey.org/wiki/home/Documentation/page.view?name=knitr

R can actually run as a report to access other files on the server, so accessing those templates is possible. There is enough context passed into the script prolog to indicate file and pipeline root locations and can be done within sequence. https://www.labkey.org/wiki/home/Documentation/page.view?name=rPipeline

To download a generated file from the R report on your local machine, just go to the Admin > Manage Views, click the Add Report button and select R view. If you select the Help tab, it shows all the different syntax and shows the various ways to produce a downloadable file or an output.

Regards,

Jon
himanshu mendhe2015-04-27 11:49Jon (LabKey DevOps)2018-11-16 23:24How to modify a stored document (.doc) and let user download it from wiki pageHow to modify a stored document (.doc) and let user download it from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Apologies for the late reply, I couldn't do what I wanted to do with the R-script regarding modifying .doc/.docx files. I then tried using python. While that did the required stuff on the .docx file, I had used a third party library with that script. Now, I couldn't find a way to setup/install the requisite third-party library on the server-side's python installation. Will a 'pip' command at the beginning of my script install the requisite library? I wasn't sure of it. If it is possible this could solve my problem.

Meanwhile, I also started exploring the very first option you had stated, i.e. creating a Java module. I wanted to build a local instance of LabKey Server on my machine. I have downloaded the source-code, installed Tomcat and PGSQL on my local machine. I have also setup the IntelliJ IDE for the project.

I have assigned the environment variable for "CATALINA_HOME" on my PC and in the IntelliJ IDE: 'File > Settings > Build Execution Deployment > Path Variables' tab. However, while running the ant build for pick_pg, the ant build throws an error: "tomcat directory '${tomcat.home}' not found. Set CATALINA_HOME environment variable or set the tomcat.home ant property."

I don't know what is happening here. I would like the Python option to work, that would save me a lot of time. But if that is not possible, please help me with the build.xml error.
Jon (LabKey DevOps)2015-04-27 21:38Jon (LabKey DevOps)2018-11-16 23:24How to modify a stored document (.doc) and let user download it from wiki pageHow to modify a stored document (.doc) and let user download it from wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Himanshu,

If you have the pip package installer with Python, you should be able to use it in conjunction with the LabKey Python API without any problem. Our Python API is simple, but effective. For more details on the Python API, please review the following documentation:

https://www.labkey.org/wiki/home/Documentation/page.view?name=python

Regarding the Tomcat error, it sounds like a step might have been missed in the configuration. Can you review our documentation on installing a developer instance and confirm that you did everything under the "Install and Configure IntelliJ IDEA" section? A few steps in that section, if missed, could cause the error you're seeing. https://www.labkey.org/wiki/home/Documentation/page.view?name=build

Regards,

Jon
jeckels2011-02-11 16:41Jon (LabKey DevOps)2018-11-16 23:23How to make the built-in queries invisibleHow to make the built-in queries invisible TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michael,

The Query web part doesn't offer that level of customization at this point. As you've probably seen, you can turn off the Query drop-down completely, but not control which subset of queries it shows.

An alternative approach would be to create a custom web part (either as a Wiki page or in a file-based module) that uses the JavaScript client API to render a query web part with the Query button disabled, and provides its own drop-down of available queries that's filtered.

A few links to relevant documentation include:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html

https://www.labkey.org/wiki/home/Documentation/page.view?name=simpleModules

https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleqvr (see the Adding an HTML View and Web Part section)

Thanks,
Josh
Jon (LabKey DevOps)2018-06-22 20:42Jon (LabKey DevOps)2018-11-16 23:24How to make custom tables' rows editableHow to make custom tables' rows editable TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Can you provide us with screenshots where you're not seeing the Edit link? It should look like a pencil when you mouseover the beginning of the row next to the checkbox.

Regards,

Jon
Ben Bimber2010-09-27 10:31Jon (LabKey DevOps)2018-11-16 23:24how to make column widths behave better?how to make column widths behave better? TEXT_WITH_LINKSClosed     LabKey Support Forum
it definitely seems like string columns, but not integer columns, that are lookups get a larger width. at least for us, this is an unwanted behavior that tends to crowd out other columns. in queries without these lookups, the QWP seems to do a reasonable job of automatically assigning width.
jeckels2010-10-01 14:50Jon (LabKey DevOps)2018-11-16 23:24how to make column widths behave better?how to make column widths behave better? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Our default width for string columns is, in pixels, 6 times the number of characters that it allows, up to a maximum of 200 pixels. Date/time columns default to 90 pixels, and everything else is 60. This should be based on the data type that we're rendering in the grid, whether it's a lookup or not. For example, if you have a column that's an integer that's a lookup to table and is rendered as a string, we'll use the string width calculation.

I investigated and right now we're only propagating button bar configuration from study.StudyData to the individual dataset tables, which explains why your width setting isn't getting used. I'll enter a bug to make more study.StudyData metadata inheritable.

We can also revisit our width heuristic. The underlying database schema uses a VARCHAR(32) to store participant/animal identifiers, but of course all of your IDs are much shorter, so it reserves more space than needed when rendering.

Thanks,
Josh
Ben Bimber2010-10-02 06:52Jon (LabKey DevOps)2018-11-16 23:23how to make column widths behave better?how to make column widths behave better? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

if you look in the above screesnhot, all 5 simple text columns got a consistent width, probably 200px based on what you say. the one multi-line column actually gets crushed, which doesnt make much sense.

while certainly the participant Id column could be reduced in size, it's a much more widespread problem than that.

i attached a screenshot of different grids in which labkey does a much better job of distributing width. however, you see that certain string columns get downsized in width, but the lookup columns stay at 200px. could this have something to do with labkey expecting to use a different display column and/or not knowing what width to expect from the display column? does labkey have some sort of process by which it tries to fit the grid to screen width and certain columns get their width cut first?

the main point is that while most of the time strings get 200px some of the time they dont. it'd be nice to figure out how to make more of them do that.
Jon (LabKey DevOps)2018-06-22 20:30Jon (LabKey DevOps)2018-06-22 20:30How to make a table not be deleteableHow to make a table not be deleteable TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

If you're referring to not allowing users to access the delete buttons on the grid, I would recommend customizing your table's buttonbar via XML so it does not include the delete buttons.

Please see our docs on buttonbar configurations for more details:

https://www.labkey.org/Documentation/wiki-page.view?name=customButtonBars
https://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/elements/buttonBarOptions.html

Regards,

Jon
jeckels2011-09-30 09:43Jon (LabKey DevOps)2018-11-16 23:24how to log longer strings for auditinghow to log longer strings for auditing TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The two string/varchar fields key1 and key2 (which may have different labels for the various types of audit events) are limited to 200 characters. Comments allows up to 500 characters. Right now there isn't a TEXT or otherwise unlimited field, though that would be useful for scenarios like this one.

Thanks,
Josh
jeckels2010-10-04 14:17Jon (LabKey DevOps)2018-11-16 23:23how to handle null dates with min() and max()?how to handle null dates with min() and max()? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Your current approach seems like a good solution to me, all things considered. Since the SQL is relatively concise, we're probably best off prioritizing things like special date functions for overlap type queries that end up being very verbose, especially when the handle null.

Thanks,
Josh
jeckels2010-07-28 09:35Jon (LabKey DevOps)2018-11-16 23:24how to handle data that can be true/false/nullhow to handle data that can be true/false/null TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, a nullable boolean is the right data type. As far as editors go, depending on the circumstances you could use three radio buttons, a combo box with three options, or a checkbox that's disabled in the null state. The disabled checkbox only makes sense if you have some other UI element that controls whether it's null or not.

Thanks,
Josh
marki2012-11-27 14:53Jon (LabKey DevOps)2018-11-16 23:24How to get the names of all lists in a directory?How to get the names of all lists in a directory? TEXT_WITH_LINKSClosed     LabKey Support Forum
You might be looking for the LABKEY.Query.getQueries API

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.getQueries

You can get the queries for the lists schema by setting the schemaName config parameter.
ymei2012-11-27 14:57Jon (LabKey DevOps)2018-11-16 23:24How to get the names of all lists in a directory?How to get the names of all lists in a directory? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you very much. Got it work out well!
ymei2012-11-27 15:00Jon (LabKey DevOps)2018-11-16 23:24How to find queryName for lookup field (FieldMetaDataLookup)How to find queryName for lookup field (FieldMetaDataLookup) TEXT_WITH_LINKSClosed     LabKey Support Forum
I figured out this by myself.

The field queryName should not be in LABKEY.Query.FieldMetaData, but in LABKEY.Query.FieldMetaDataLookup

The two reference pages should be updated accordingly.

Thanks,
Yongguo
Nick Kerr2012-11-29 14:42Jon (LabKey DevOps)2018-11-16 23:24How to find queryName for lookup field (FieldMetaDataLookup)How to find queryName for lookup field (FieldMetaDataLookup) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Yongguo,

Thanks for pointing this out. I'll be updating the documentation today.

Thanks,
Nick
Jon (LabKey DevOps)2015-08-25 11:26Jon (LabKey DevOps)2018-11-16 23:23How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

I can't seem to reproduce this problem. When I create a linked schema, I can export the folder without any issue.

Can you provide us with the full stack error? Is there a schema template in use? If this is an actual linked schema, then there has to be a source. Does that source schema produce any errors when you try to run a validation query on it?

Regards,

Jon
alx dobre2015-08-26 02:12Jon (LabKey DevOps)2018-11-16 23:23How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Right so I did an experiment as well and it went like this.

Created a new folder and added one linked schema -> export went OK including the linked schema
Added a query based on the linked schema -> got the error.

Please note the query is valid.

Please see attached the labkey error file.

The log shows a null pointer:
Error creating linked schema test_linked_schema
java.lang.NullPointerException
    at org.labkey.query.LinkedSchema$LinkedSchemaUserWrapper.<init>(LinkedSchema.java:452)

And then the error that gets displayed on screen:
Unexpected server error
java.lang.IllegalStateException: Could not find schema test_linked_schema in /Genomics England/ext_sch_test for user null with query test_linked_schema_temp_214
    at org.labkey.query.QueryDefinitionImpl.getSchema(QueryDefinitionImpl.java:412)
Jon (LabKey DevOps)2015-08-26 14:16Jon (LabKey DevOps)2018-11-16 23:23How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

When you imported the folder, did you configure the linked schema under the Schema Browser > Schema Administration?

The Linked Schema uses a Source Container, Source Schema, and Published Tables. If your Source Container, Source, Schema, and/or your Published Tables don't already exist in the instance of LabKey you imported the folder into, you will have to configure that information.

Regards,

Jon
alx dobre2015-08-27 02:09Jon (LabKey DevOps)2018-11-16 23:23How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Jon,

Yes I am aware of the above.

Please note that your reply deals with a folder import issue while I am having a folder export issue. I get the error when trying to export a folder with a properly configured external schema and a query that depends on it which is valid.
Jon (LabKey DevOps)2015-08-27 16:23Jon (LabKey DevOps)2018-11-16 23:24How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

My apologies for the confusion here. When you had put down:

"Created a new folder and added one linked schema -> export went OK including the linked schema
Added a query based on the linked schema -> got the error."

I assumed that meant that you were not having a problem with exports, but rather imports.

But I did reproduce the issue successfully. It seems to be isolated to having custom queries on those linked schema tables.

I'll setup a bug on this problem, but it appears that if you want to do an export, you will have to make copies of those custom queries, delete them, export your folder, then put them back.

Regards,

Jon
Jon (LabKey DevOps)2015-08-27 16:33Jon (LabKey DevOps)2018-11-16 23:24How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
The following bug ticket has been made for this issue:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=24155
alx dobre2015-08-28 01:32Jon (LabKey DevOps)2018-11-16 23:24How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Understood,

In the meantime I found another workaround for the issue. I am able to export just the schemas and just the queries separately.

Then if I combine the two exports and craft the folder xml properly then zip it up it uploads properly. So the upload of a linked schema + custom query works. The download in combination throws the error but separately it works.
Jon (LabKey DevOps)2015-08-28 12:07Jon (LabKey DevOps)2018-11-16 23:23How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for confirming the workaround on your end Alex. We'll keep you informed on when the bug has been fixed.

Regards,

Jon
alx dobre2015-09-03 03:06Jon (LabKey DevOps)2018-11-16 23:23How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
A further interesting find in this bug. It seems to be caused by the "custom views" export option. The export works as long as that option is left unchecked.

This is on 15.2
Jon (LabKey DevOps)2015-09-03 11:12Jon (LabKey DevOps)2018-11-16 23:24How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for letting us know Alex! I've updated the bug with the additional information as well.

Regards,

Jon
Jon (LabKey DevOps)2015-10-22 22:52Jon (LabKey DevOps)2015-10-22 22:52How to export a folder with linked schemasHow to export a folder with linked schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

This is to let you know, this issue has been fixed in our upcoming release of LabKey 15.3, so you will no longer need to remove the custom queries attached to linked schemas on any folder exports.

Regards,

Jon
jeckels2013-07-08 09:27Jon (LabKey DevOps)2018-11-16 23:23How to execute new java module?How to execute new java module? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

It sounds like your module is being recognized, but not as a Java module. This could be because it hasn't been built, or because it wasn't deployed to the correct location.

Have you built it using the build.xml file that's generated as part of the module template? Is there a .module file for your module in your <LABKEY_ROOT>/build/deploy/modules directory?

Thanks,
Josh
Jon (LabKey DevOps)2017-04-25 11:28Jon (LabKey DevOps)2018-11-16 23:24How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

I'll need to get this confirmed, but based on my own testing, I do not believe this will work on any lists or queries you build within LabKey itself and the auditing is only for tables and queries that are created via module.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2017-04-27 18:28Jon (LabKey DevOps)2017-04-27 18:28How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

I was able to get confirmation that this is actually working as designed.

The <auditLogging> tag doesn't prevent things being picked up in the list and dataset audit logs, but instead works at not logging any events in the Query Update Events and it only works with the TableInfo, so lists and datasets will always get picked up in this case.

Regards,

Jon
eva pujadas2017-04-28 08:05Jon (LabKey DevOps)2018-11-16 23:24How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks a lot for your feedback.

At this point, I would have two questions:
1) Is there some way to disable audit logs for certain lists?
2) Is there some way to delete audit log records of certain lists?

As a background, we have some Python scripts which, through the LabKey Python API, perform regular inserts and updates in several lists, using "labkey.query.update_rows" and "labkey.query.insert_rows".
Currently the audit log table for "List events" has more than 3 millions rows, and that makes the system slow when viewing the history of changes. Additionally, we do not need to have an audit trail for the records modifications or record insertions.

Thanks once more for your support,
Eva
Jon (LabKey DevOps)2017-04-28 11:09Jon (LabKey DevOps)2018-11-16 23:23How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Unfortunately we do not have a way to delete or disable the audit logs through the UI out of the box.

The only way to conceivably do this is to either update the core code that controls auditing to allow for this or to delete rows within the database that are tied to the auditing. However, both things are unsupported, so we wouldn't be able to assist you if anything went wrong here.

Regards,

Jon
eva pujadas2017-08-03 23:45Jon (LabKey DevOps)2018-11-16 23:24How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for your answer and for your great support.

We have been checking the second solution's possibility you mention: deleting rows in the database.

As a first try in a test server, we have deleted in the list audit table (audit.c3d11_listauditdomain) all the records from a particular target folder and list, and observed no issues.

Could you confirm that such a deletion in the database is save? That's the proposed deletion:

delete from audit.c3d11_listauditdomain where container like 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' and listname like 'DummyListName';

Best regards,
Eva
Jon (LabKey DevOps)2017-08-04 09:46Jon (LabKey DevOps)2017-08-04 09:46How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Deleting tables, especially core tables like the one mentioned, is not supported as stated earlier. We cannot guarantee that there won't be any side-effects here since the system will continue to attempt to write to a table that doesn't exist, even if you are not observing any issues currently. Unfortunately, we are not able to provide support for this action since this is using the platform outside of its original design.

If you are interested in establishing a contract/work order with us to explore and develop a way to enhance the platform further to allow you to restrict visibility in the logging/auditing of lists, please let us know and we will be happy to have someone reach out to you to explore this option.

Regards,

Jon
jeckels2017-08-10 09:23jeckels2017-08-10 09:23How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

While we don't support or recommend this type of direct database manipulation, I think it should work for your intended purpose here.

Thanks,
Josh
jeckels2017-08-18 10:51jeckels2017-08-18 10:51How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Thanks for the followup. I'll make a change so that column is indexed by default in 17.3.

Thanks,
Josh
eva pujadas2017-08-10 03:15eva pujadas2017-08-10 03:15How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks a lot for your answer.

Just for clarification, we are not thinking about dropping audit tables, only records in one of the audit tables related to a particular list in a particular project's folder.

I understand you are not supporting those kind actions in the system. Anyway, my question was only just to know if you had already some experience with it, which allows you to give some recommendations.

Best regards,
Eva
eva pujadas2017-08-18 10:15eva pujadas2017-08-18 10:15How to disable audit logs in a list or queryHow to disable audit logs in a list or query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks for your support.

Finally we could solve this issue by creating an index on the table "audit.xxxxx_listauditdomain", column "listitementityid".
In our system, this table currently contains more than 4.5 millions of records. By creating the index, we could speed very much showing the item history of a record in a list. Before the index creation, showing the item history would take about 2 minutes, after that it takes only about 2 seconds.

I just wanted to share the experience in case it can be useful to somebody else.

Regards,
Eva
adam2011-03-18 09:05Jon (LabKey DevOps)2018-11-16 23:24how to delete wiki pages?how to delete wiki pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
You can view the broken page then manually change the URL in the address bar to get to its edit page; change the text "page.view" to "editWiki.view". In other words, if your URL were:

    http://localhost:8080/labkey/wiki/home/page.view?name=test

...you would change it to:

    http://localhost:8080/labkey/wiki/home/editWiki.view?name=test

From there you can fix the page or delete it entirely.

We should provide a better wiki management page, one that lets you edit or delete any wiki without viewing it first. I'll add this to the list.

Adam
michael_stover@urmc.rochester.edu2011-03-18 09:36Jon (LabKey DevOps)2018-11-16 23:23how to delete wiki pages?how to delete wiki pages? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks!
Jon (LabKey DevOps)2015-02-20 08:04Jon (LabKey DevOps)2018-11-16 23:24How to create "New Study with pre-defined timepoints"How to create "New Study with pre-defined timepoints" TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mark,

Just to make sure we're on the same page, these pre-defined timepoints are not actually based on time, right?

So if two people come in for Day Zero, they may not necessarily be on the same day or even the same month, right? So person #1 might have their Day Zero on January 29th, 2015 while person #2's Day Zero could have been a year ago. Is that more accurate to what you're trying to do?

Regards,

Jon
Mark22015-02-20 10:43Jon (LabKey DevOps)2018-11-16 23:24How to create "New Study with pre-defined timepoints"How to create "New Study with pre-defined timepoints" TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon

Thanks for your reply.

"these pre-defined timepoints are not actually based on time, right?"

Correct

"So if two people come in for Day Zero, they may not necessarily be on the same day or even the same month, right? So person #1 might have their Day Zero on January 29th, 2015 while person #2's Day Zero could have been a year ago. Is that more accurate to what you're trying to do?"

This is correct
In most cases we dont even know the date (or would take a lot of effort to dig up that date) we just have results for this subject at Day 0, Day1, Day 5 etc thats why for this particular study I want to avoid using dates "January 29th, 2015" but pre-defined timepoints like Day 0 etc.

Thanks for your help again, much appreciated.
Jon (LabKey DevOps)2015-02-20 11:57Jon (LabKey DevOps)2018-11-16 23:24How to create "New Study with pre-defined timepoints"How to create "New Study with pre-defined timepoints" TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mark,

So it sounds like you might want to use a visit-based study instead of a time-based one.

Since visits are organized by sequences rather than date ranges, this would fit your needs best due to not knowing the date of when someone's Day was.

Take a look at our comparison page regarding using Visits vs Timepoints for more information.

https://www.labkey.org/wiki/home/Documentation/page.view?name=visits

Let us know if you have any further questions.

Regards,

Jon
Mark22015-02-25 12:16Jon (LabKey DevOps)2018-11-16 23:24How to create "New Study with pre-defined timepoints"How to create "New Study with pre-defined timepoints" TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon

That works for me.
marcia hon2018-03-02 08:12Jon (LabKey DevOps)2018-11-16 23:24How to create a new SchemaHow to create a new Schema TEXT_WITH_LINKSClosed     LabKey Support Forum
My goal is to create a WebPart that lists only queries that I have created.
Jon (LabKey DevOps)2018-03-09 15:02Jon (LabKey DevOps)2018-11-16 23:23How to create a new SchemaHow to create a new Schema TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Have you taken the time to review our robust Support Documentation?

https://www.labkey.org/Documentation/wiki-page.view?name=default

Many of your questions can be answered in our docs and we even have videos to help you understand how to both use LabKey and understand the functionality:

https://www.labkey.org/Documentation/wiki-page.view?name=videos

For future, please do your best to consult our fantastic docs first before posting to the Community Forums.


Regarding your question on creating a new schema, this all depends on the type of schema you want to do.

There are schemas that can be created in the LabKey database via modules:

https://www.labkey.org/Documentation/wiki-page.view?name=sqlScripts

There are also External Schemas that you can create after you setup an External DataSource:

https://www.labkey.org/Documentation/wiki-page.view?name=externalSchemas

And there are Linked Schemas, which are schemas you can create that are based on an existing LabKey schema and queries/tables:

https://www.labkey.org/Documentation/wiki-page.view?name=filterSchema

If you want to create a webpart and only list the queries that you created, creating a new schema (even a Linked Schema) isn't really necessary since you can setup individual webparts for those queries or you can setup a wiki and have all those query web parts be displayed in the wiki or just create hyperlinks for those queries in the wiki as explained in my response to you on your other forum post:

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=17241

Regards,

Jon
jeckels2013-06-20 13:56Jon (LabKey DevOps)2018-11-16 23:24How to change the UI of the LabKey Server ?How to change the UI of the LabKey Server ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

It really depends on exactly what parts of the UI you want to change. There are existing APIs and administrator features for specific parts of the UI.

For example, you can go to Admin->Folder->Project Settings->Men Bar to add custom UI to the menu bar that's in the header of each page.

If you want to add buttons to a data grid, you can specify this in XML metadata using the ButtonBarOptions part of the schema:

http://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/complexTypes/ButtonBarOptions.html

You can set this XML on a particular table/query by going to Admin->Developer Links->Schema Browser, finding the schema and query you want to customize, clicking on Edit Metadata, and then on the Edit Source button. Example XML would look something like this:

        <tables xmlns="http://labkey.org/data/xml">
            <table tableName="Runs" tableDbType="TABLE">
                <buttonBarOptions position="both" includeStandardButtons="true">
                    <item text="Simple Assay Button" permission="READ" insertPosition="end">
                      <onClick>alert('button clicked');</onClick>
                    </item>
                </buttonBarOptions>
            </table>
        </tables>

Thanks,
Josh
jeckels2017-12-11 10:17Jon (LabKey DevOps)2018-11-16 23:23how to change pipeline to use tpp 5.0how to change pipeline to use tpp 5.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Toan,

We invoked ProteinProphet indirectly through xinteract. xinteract is building up the ProteinProphet command-line, and adding that NOPLOT argument.

Is there any more detail about the error later in the log file? The line you included is just the command-line we're running.

I believe xinteract is generating the NOPLOT argument in response to the -Opt option we pass to it. Does xinteract still advertise this as a supported command-line option? You can check by manually running xinteract with no arguments on the command-line:

...
 PeptideProphet options [following the 'O']:
...
                 p [run ProteinProphet afterwards]
                 t [do not create png data plot]
...


Thanks,
Josh
toan nguyen2017-12-11 11:01Jon (LabKey DevOps)2018-11-16 23:23how to change pipeline to use tpp 5.0how to change pipeline to use tpp 5.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

  xinteract still have the "t" option. However; ProteinProphet int TPP 5.0 no longer have "NOPLOT"
  See comparison of options for ProteinProphet in tpp 4.3 and 5.0

Thanks
Toan.

$ /usr/local/tpp/bin/ProteinProphet.tpp.5.0.0
ProteinProphet (C++) by Insilicos LLC and LabKey Software, after the original Perl by A. Keller (TPP v5.0.0 Typhoon, Build 201710251406-7644 (Linux-x86_64))
Usage: ProteinProphet <interact_pepxml_file1> [<interact_pepxml_file2>[....]] <output_protxml_file> [OPTIONS]
Options:
        IPROPHET Input is from iProphet
        XPRESS Compute XPRESS ratios for protein entries
                        (XPRESS must have been run previously on all input datasets)
        ASAP_PROPHET Compute ASAP ratios for protein entries
                        (ASAPRatio must have been run previously on all input datasets)
        LIBRA<file> Compute Libra ratios for protein entries, using condition parameters in <file>
                        (Libra must have been run previously on all input datasets)
        EXCLUDE_ZEROS Exclude zero prob entries
        NOPROTLEN Do not report protein length
        PROTMW Get protein mol weights
        ICAT Highlight peptide cysteines
        GLYC Highlight peptide N-glycosylation motif
        PLOTPNG Generate plot png file
        FPKM Model protein FPKM values
        NONSP Do not use NSP model
        MININDEP Minimum percentage of independent peptides required for a protein (default:0)
        MINPROBxx PeptideProphet probabilty threshold (default=0.05)
        ACCURACY Equivalent to MINPROB0
        NORMPROTLEN Normalize NSP using Protein Length
        NOGROUPWTS Check peptide's Protein weight against the threshold (default: check peptide's Protein Group weight against threshold)
        INSTANCES Use Expected Number of Ion Instances to adjust the peptide probabilities prior to NSP adjustment
        DELUDE Do NOT use peptide degeneracy information when assessing proteins
        NOOCCAM Non-conservative maximum protein list
        SOFTOCCAM Peptide weights are apportioned equally among proteins within each Protein Group (less conservative protein count estimate)
        CONFEM Use the EM to compute probability given the confidence
          LOGPROBS Use the log of the probabilities in the Confidence calculations
          ALLPEPS Consider all possible peptides in the database in the confidence model
          MUFACTOR Fudge factor to scale MU calculation (default 1)
        UNMAPPED Report results for UNMAPPED proteins
        EXCELPEPS Write output tab delim xls file including all peptides
        EXCELxx Write output tab delim xls file including all protein (group)s
                        with minimum probability xx, where xx is a number between 0 and 1

$ /usr/local/tpp/bin/ProteinProphet
ProteinProphet (C++) by Insilicos LLC and LabKey Software, after the original Perl by A. Keller (TPP v4.3 JETSTREAM rev 1, Build 201011301302 (linux))
usage: ProteinProphet <interact_pepxml_file1> [<interact_pepxml_file2>[....]] <output_protxml_file> (ICAT) (GLYC) (XPRESS) (ASAP_PROPHET) (ACCURACY) (ASAP) (PROTLEN) (NORMPROTLEN) (GROUPWTS) (INSTANCES) (REFRESH) (DELUDE) (NOOCCAM) (NOPLOT) (PROTMW)
                NOPLOT: do not generate plot png file
                NOOCCAM: non-conservative maximum protein list
                ICAT: highlight peptide cysteines
                GLYC: highlight peptide N-glycosylation motif
                MINPROB: peptideProphet probabilty threshold (default=0.05)
                MININDEP: minimum percentage of independent peptides required for a protein (default=0)
                GROUPWTS: check peptide's total weight in the Protein Group against the threshold (default: check peptide's actual weight against threshold)
                ACCURACY: equivalent to MINPROB0
                ASAP: compute ASAP ratios for protein entries
                        (ASAP must have been run previously on interact dataset)
                REFRESH: import manual changes to AAP ratios
                        (after initially using ASAP option)
                NORMPROTLEN: Normalize NSP using Protein Length
                LOGPROBS: Use the log of the probabilities in the Confidence calculations
                CONFEM: Use the EM to compute probability given the confidence
                ALLPEPS: Consider all possible peptides in the database in the confidence model
                MUFACTOR: Fudge factor to scale MU calculation (default 1)
                UNMAPPED: Report results for UNMAPPED proteins
                PROTLEN: Report Protein Length
                INSTANCES: Use Expected Number of Ion Instances to adjust the peptide probabilities prior to NSP adjustment
                PROTMW: Get protein mol weights
                IPROPHET: input is from iProphet
                ASAP_PROPHET: *New and Improved* compute ASAP ratios for protein entries
                        (ASAP must have been run previously on all input interact datasets with mz/XML raw data format)
                DELUDE: do NOT use peptide degeneracy information when assessing proteins
                EXCELPEPS: write output tab delim xls file including all peptides
                EXCELxx: write output tab delim xls file including all protein (group)s
                                with minimum probability xx, where xx is a number between 0 and 1
toan nguyen2017-12-11 11:03Jon (LabKey DevOps)2018-11-16 23:24how to change pipeline to use tpp 5.0how to change pipeline to use tpp 5.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
/usr/local/tpp/bin/xinteract (TPP v5.0.0 Typhoon, Build 201710251406-7644 (Linux-x86_64))
PeptideProphet options [following the '-O']:
                 i [use icat information in PeptideProphet]
                 f [do not use icat information in PeptideProphet]
                 g [use N-glyc motif information in PeptideProphet]
                 H [use Phospho information in PeptideProphet]
                 m [maldi data]
                 I [use pI information in PeptideProphet]
                 R [use Hydrophobicity / RT information in PeptideProphet]
                 F [force the fitting of the mixture model, bypass automatic mixture model checks]
                 A [use accurate mass binning in PeptideProphet]
                 w [warning instead of exit with error if instrument types between runs is different]
                 x [exclude all entries with asterisked score values in PeptideProphet]
                 l [leave alone all entries with asterisked score values in PeptideProphet]
                 n [use hardcoded default initialization parameters of the distributions]
                 P [use Non-parametric model, can only be used with decoy option]
                 N [do not use the NTT model]
                 M [do not use the NMC model]
                 k [do not use the mass model]
                 o [optimize f-value function f(dot,delta) using PCA (applies only to SpectraST)]
                 G [use Gamma Distribution to model the Negatives (applies only to X!Tandem data)]
                 E [only use Expect Score as the Discriminant(applies only to X!Tandem data,
                    helpful for data with homologous top hits e.g. phospho or glyco)]
                 d [report decoy hits with a computed probability based on the model learned]
                 p [run ProteinProphet afterwards]
                 t [do not create png data plot]
                 u [do not assemble protein groups in ProteinProphet analysis]
                 s [do not use Occam's Razor in ProteinProphet analysis to
                    derive the simplest protein list to explain observed peptides]
Jon (LabKey DevOps)2017-12-11 13:52Jon (LabKey DevOps)2018-11-16 23:23how to change pipeline to use tpp 5.0how to change pipeline to use tpp 5.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Note: Confirmed that according to the TPP 5.0 release notes that it was removed due to the default behavior being changed to not have the plotting turned on in ProteinProphet:

http://tools.proteomecenter.org/wiki/index.php?title=TPP:5.0.0_Release_Notes

"Stop plotting sens/err png by default; removed NOPLOT option. To produce png, use new PLOTPNG option."
Jon (LabKey DevOps)2017-12-11 21:48Jon (LabKey DevOps)2018-11-16 23:24how to change pipeline to use tpp 5.0how to change pipeline to use tpp 5.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Update: Sent notice to SPC to have them update xinteract to remove the "t" option. Trying to determine whether we can not trigger the "t" option and if so, what will happen.
Jon (LabKey DevOps)2017-12-12 13:55Jon (LabKey DevOps)2018-11-16 23:24how to change pipeline to use tpp 5.0how to change pipeline to use tpp 5.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Bug https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=32442 created on this to update our Java code.

We may need to do more than one update though since xinteract is going to need to be revised to work with ProteinProphet's change with the NOPLOT removal.
Jon (LabKey DevOps)2018-01-23 00:03Jon (LabKey DevOps)2018-01-23 00:03how to change pipeline to use tpp 5.0how to change pipeline to use tpp 5.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Toan,

The upcoming version of LabKey 18.1, you can set the "pipeline tpp, version" parameter to "5" in either the job or the default settings to omit the "t" option.

This should now anticipate using TPP 5.0 or higher, although I've confirmed that TPP 5.2 will make the necessary change to where adjusts for the "t" option as well.

Regards,

Jon
Leo Dashevskiy2012-05-04 15:52Leo Dashevskiy2012-05-04 15:52How to call an R script from within a JS codeHow to call an R script from within a JS code TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, the approach seems to work. Thanks.
Leo Dashevskiy2012-05-24 11:30Leo Dashevskiy2012-05-24 11:30How to call an R script from within a JS codeHow to call an R script from within a JS code TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks.
Ben Bimber2012-05-01 19:10Jon (LabKey DevOps)2018-11-16 23:23How to call an R script from within a JS codeHow to call an R script from within a JS code TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Here's a similar example you can adapt. You'll use a Report webpart. The partConfig section is where you pass config to the R report.


            new LABKEY.WebPart({
                partName: 'Report',
                renderTo: 'myDiv',
        //these are passed on the URL to your script
                partConfig: {
                    title: 'Population Change',
                    schemaName: 'study',
                    showSection: 'barchart&tsvfile',
                    reportId : 'module:ehr/schemas/study/colonyPopulationChange/Bar Chart.r',
                    'query.queryName': 'colonyPopulationChange',
                    'query.Id/dataset/demographics/species~neq': 'Unknown'
                },
                failure: function(error){
            alert('there was an error');
        },
        success: function(response){
                console.log(arguments);
        },
                scope: this
            }.render();
Leo Dashevskiy2012-05-02 10:09Jon (LabKey DevOps)2018-11-16 23:24How to call an R script from within a JS codeHow to call an R script from within a JS code TEXT_WITH_LINKSClosed     LabKey Support Forum
So yes, that is what I have been using, when the R script returns something back and it needs to be displayed (an image in my case).

Here I don't have anything returned (except may be for a status code) and also I DO NOT have any 'myDiv' element to render to, but seems like renderTo is a required part of a WebPart, cannot have a declaration/definition without it, is that right? Should I then have a dummy/empty div in this case?
How do I suppress any kind of output from R script to not get back to the JS, so that nothing gets really rendered to that div?

What is the param "showSection"? What kind of values can it take up?

Thanks.
Ben Bimber2012-05-02 11:04Jon (LabKey DevOps)2018-11-16 23:23How to call an R script from within a JS codeHow to call an R script from within a JS code TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Sorry, misunderstood part of your first post. The showSection param allows you to specify which sections of the R report are displayed. For example, your report might have a PNG, some text, and the console output. In your R script, you might have created an output like:

write.table(theTable, file = "${tsvout:tsvfile}", sep = "\t", qmethod = "double", col.names=NA)

or

png(filename="${imgout:barchart}",
    width=1100,
    height=(500),
    #type="cairo"
    );


You'll see I gave names to these outputs. In the webpart config, I provided a comma separated list:

showSection: 'barchart&tsvfile',

which causes only those 2 sections to be shown.

To get at your problem: the best idea we've come up with would be to render the R report to a hidden DIV, and to use showSection to render only the minimal section(s). If you need to pass information from R to JS, you could get your script to output some text when complete, like 'Report Succeeded' or 'Report Failed'. In the success callback from this report webpart, you could use JS to inspect the contents of the DIV where the R report was rendered, and look for these strings. This leaves something to be desired, but may unblock your scenario. Let me know if you'd like more detail on any of this.

The idea of a more direct way to call scripts from JS (and perhaps to parse their results) has come up before. It would be nice to be able do this better.
Leo Dashevskiy2012-05-23 15:34Jon (LabKey DevOps)2018-11-16 23:24How to call an R script from within a JS codeHow to call an R script from within a JS code TEXT_WITH_LINKSClosed     LabKey Support Forum
Is it possible to pass to an R script in a JS config option of a webPart a JS array as an argument? (Currently resorting to converting an array to a concatenated string, which then has to be tokenized in the R script...)

Thanks.
jeckels2012-05-23 16:11Jon (LabKey DevOps)2018-11-16 23:23How to call an R script from within a JS codeHow to call an R script from within a JS code TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

We don't have any direct mechanism for the browser to pass R code to be invoked in that way. This is important for security reasons, since R does not run inside of sandbox that limits its access to the underlying system. We can't trust the code that gets submitted by general site users. It sounds like your current approach is a good one for these kind of parameters.

Thanks,
Josh
jeckels2013-06-25 16:01Jon (LabKey DevOps)2018-11-16 23:24How to build newly added folder in project?How to build newly added folder in project? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

It's important to distinguish between the files that are part of the build, and that are part of a given installation.

Files like the JSP you're editing are part of a module that is built. These files are available to any installation that includes that module. You can add images to your module under its webapp directory. These files are then available to reference in your JSP. For an example, check out:

./server/customModules/targetedms/webapp/TargetedMS/images/TransitionGroup.gif

and its usage in:

./server/customModules/targetedms/src/org/labkey/targetedms/view/peptideSummaryView.jsp

If you upload a file through the user interface into a project or folder, it's available for that installation, but it isn't part of the module, so it's generally not a good idea to reference it from a JSP or other module-based resource. However, you can find the URL for the image using the WebDAV UI. For a standard developer install, try going to:

http://localhost:8080/labkey/_webdav

You can browse into your project and folder to find the file, and check what its URL is.

Thanks,
Josh
adam2012-04-30 13:34Jon (LabKey DevOps)2018-11-16 23:23How to add webpart for java moduleHow to add webpart for java module TEXT_WITH_LINKSClosed     LabKey Support Forum
Your module class needs to return a collection of WebPartFactories that create your web parts, see the createWebPartFactories() method. The web part names defined by your factories will then appear in the <Select Web Part> drop-down of any folder where your module is enabled. The create_module template does not include any sample webparts or factories, but just about every other module does, so there are plenty of examples.

A trivial one:

    protected Collection<WebPartFactory> createWebPartFactories()
    {
        return Collections.<WebPartFactory>singleton(new BaseWebPartFactory("Hello World") {
                public WebPartView getWebPartView(ViewContext portalCtx, Portal.WebPart webPart) throws IllegalAccessException, InvocationTargetException
                {
                    HtmlView view = new HtmlView("I'm a webpart!");
                    view.setTitle("Hello World");
                    return view;
                }
            });
    }

Adam
clemens.bartz@x-case.de2012-05-10 07:29Jon (LabKey DevOps)2018-11-16 23:24How to add webpart for java moduleHow to add webpart for java module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Adam,

Sorry for the late response, I have been working on other projects.
I did override the method in the Module file as you described it. However I am still not able to select the Webpart. The module is recognized though. The module is located in the externalModules directory, the path is set correctly in my VM settings.

Any further help would be highly appreciated.

Kind regards,
Clemens
adam2012-05-10 11:33Jon (LabKey DevOps)2018-11-16 23:24How to add webpart for java moduleHow to add webpart for java module TEXT_WITH_LINKSClosed     LabKey Support Forum
Have you enabled (checked) your module on the "folder type" page?

Have you tried setting the folder type to "custom"?

You'll need to add your .iml as a new IntelliJ module for breakpoints to work. Try setting a breakpoint in your module constructor and restarting.

Adam
clemens.bartz@x-case.de2012-05-14 00:52Jon (LabKey DevOps)2018-11-16 23:24How to add webpart for java moduleHow to add webpart for java module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Adam,

yes, the module is enabled in the "folder type" page. Yes, I have changed the folder type to "custom". No success, though.
I had added the module to LabKey, but no breakpoints were ever reached. As there is no constructor in the Module file, I have created one but it is not executed. My other breakpoints at methods "init" and "startup", both are not executed as well.

Kind regards,
Clemens
marki2010-11-17 09:05Jon (LabKey DevOps)2018-11-16 23:23how to add blank 'notes' column to a query?how to add blank 'notes' column to a query? TEXT_WITH_LINKSClosed     LabKey Support Forum
Not sure that many people would be interested in adding blank columns on arbitrary datasets, but if they do what you propose seems fine. For this case I might consider is generating custom html on the client as you might want to use custom styles to get the rows to have additional height etc.

You might also use the "print template" to clear out UI on the page. Pretty much any view (including your own html-based view) can be rendered with _print=1 to show only the content of the page.
Ben Bimber2010-11-17 09:08Jon (LabKey DevOps)2018-11-16 23:23how to add blank 'notes' column to a query?how to add blank 'notes' column to a query? TEXT_WITH_LINKSClosed     LabKey Support Forum
you'd be surprised on the blank column thing. my hope is that we shift people from printing the grids to reading them directly from some variety of computer, but that will take time.

custom HTML is probably a nicer solution, but i'm looking to avoid putting too much time into this, as I hope it's lifespan is short.
jeckels2010-11-17 09:29Jon (LabKey DevOps)2018-11-16 23:24how to add blank 'notes' column to a query?how to add blank 'notes' column to a query? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Another possible hacky solution is to use a metadata override to wrap an existing date field and set its format to ' ', including the quote characters. This column would still sort and filter with the underlying date value, but would be rendered in grids as just a space. You could use the metadata to specify a column width, but I can't think of a way to control the height of the cell.

Thanks,
Josh
Ben Bimber2010-11-17 09:32Jon (LabKey DevOps)2018-11-16 23:24how to add blank 'notes' column to a query?how to add blank 'notes' column to a query? TEXT_WITH_LINKSClosed     LabKey Support Forum
hmm. that's actually much better since it doesnt add an unnecessary join.

height tends to work itself out naturally since our use cases all include the description field, which has enough height.
Jon (LabKey DevOps)2016-03-23 16:45Jon (LabKey DevOps)2016-03-23 16:45How many projects can a LabKey instance hold?How many projects can a LabKey instance hold? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ariel,

LabKey should be able to handle that. Right now on our own LabKey.org site, we have nearly 100 different projects alone, each with their own respective group of folders and subfolders (upon subfolders and even more subfolders!) Another one of our clients at Fred Hutch has even more than we do folder and project structure-wise, so I am pretty sure you should be okay here out of the box. I think the biggest factor to consider is to make sure that as your clients grow, your server grows with it as well to meet the demand (e.g. memory, drive space, database needs, etc). We also are making continual improvements and enhancements within LabKey too, which will only benefit your future needs as your clients grow.

Regards,

Jon
balter2016-03-23 16:56balter2016-03-23 16:56How many projects can a LabKey instance hold?How many projects can a LabKey instance hold? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon. We are doing LabKey development as well here at OHSU for various other projects. Sounds like it might be a good solution for this one as well.
Anthony Corbett2014-05-19 11:59Jon (LabKey DevOps)2018-11-16 23:24How is new "date" column used in study datasets?Bugs in study Date columns in 14.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
I've found 2 bugs and a major non-backwards compatible schema change introduced in version 14.1 regarding date columns . Updating to this version of labkey will cause major issues for all 20+ studies that our group manages. The following is a summary and attached is a detailed document describing these issues.


1. When upgrading to 14.1 from any prior version on labkey any study dataset field called 'Date' or 'date' is usurped into a "system column" and any metadata originally defined on the field is removed, e.g. required, etc. There is no way to edit metadata on this new "system column" date field and therefore no way to enforce validation on this exiting field that contained existing data. This is NOT backwards compatible with the field definition prior to 14.1 nor is this change mentioned anywhere in the 14.1 release notes. This is like making the word "date" in java a reserved keyword and anyone defining a variable or class named "date" is now out of luck.


2. Per Labkey's developer documentation for pre-defined dataset fields, found here https://www.labkey.org/wiki/home/Documentation/page.view?name=requiredSchemaFields, there is a pre-defined "VisitDate" dataset column defined for datasets that belong to a visit based study. The description of this field is "The date that a visit occurred (only defined in visit-based study datasets)". This seems to lead me to believe that this field should automatically be defined and show up in the "system columns" when creating a new dataset in a visit based study, just like ParticipantId and SequenceNum. However, this is not the case, no such field called "VisitDate" of type DateTime is defined.

3. Moreover, I can define a field called VisitDate and save the dataset definition. In which case, this field then becomes non-editable in that neither the name or datatype can be changed ever again; per Labkey's developer documentation on pre-defined fields it seems that the "VisitDate" user defined column is treated specially. However, against what the documentation states about the datatype of this field, which should be DateTime, I can make it whatever I want (Integer, Number, Text) and the application doesn't error. Then the only way to change the datatype of the VisitDate field once saved is to delete the whole dataset and start over.


Can someone please explain the changes in 14.1 to making any defined field called "date" a system column? As well as how Labkey is interpreting the semantic meaning of the plethora of supposed pre-defined "system columns" date fields:

VisitDate
Created
Date (how is this different than Created Date field or VisitDate field for a visit based study!?)
Matthew Bellew2014-05-19 13:56Jon (LabKey DevOps)2018-11-16 23:24How is new "date" column used in study datasets?Bugs in study Date columns in 14.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

I definitely can see some of these inconsistencies. I need to investigate more before I give a full reply. I'm pretty sure we can resolve some of these problems.

1) I'm investigating what it would take to make the properties on the "Date" column editable again.

2,3) VisitDate really should not be a special column. I think in pre-historic times there was an idea that this might be a special column, but we settled on using "Date" for date-based studies. I think there's one place in the code that still thinks "VisitDate" is special.

I think if we address 1) things should be back to their pre 14.1 behavior. The VisitDate strangeness has probably been in the code for a very long time, but I'll look at that too.
Matthew Bellew2014-05-19 14:06Jon (LabKey DevOps)2018-11-16 23:24How is new "date" column used in study datasets?Bugs in study Date columns in 14.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
I didn't address Jen's original question.

For a visit-based study the "Date" column still does not have any special meaning. However, the intention is that it will have the same meaning as for date-based study and the same as the optionally specified "Visit Date Column" in visit-based studies).

The hope is that at some point in the future we will be able to blur the lines between date-based and visit-based studies and separate the tasks of capturing data with dates, and then aligning data using visits.

Matt
Ben Bimber2014-05-19 14:51Jon (LabKey DevOps)2018-11-16 23:24How is new "date" column used in study datasets?Bugs in study Date columns in 14.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

Does this have implications for continuous studies (which already had a system controlled date field)?
Matthew Bellew2014-05-19 15:16Jon (LabKey DevOps)2018-11-16 23:24How is new "date" column used in study datasets?Bugs in study Date columns in 14.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
There was no change in behavior for date-based and continuous studies. This simply added the field to visit-based studies to make them consistent.
Matthew Bellew2014-05-19 17:36Jon (LabKey DevOps)2018-11-16 23:23How is new "date" column used in study datasets?Bugs in study Date columns in 14.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony, I have one question for you.

With the 14.1 upgrade, we don't change any data or delete any metadata. So although 14.1 has the very undesirable side-effect of making the properties on your date column(s) not visible or editable, all meta-data should still be getting applied. Can you confirm that?

Matt
Anthony Corbett2014-05-20 08:35Jon (LabKey DevOps)2018-11-16 23:23How is new "date" column used in study datasets?Bugs in study Date columns in 14.1 TEXT_WITH_LINKSClosed     LabKey Support Forum

Yes, in 14.1 I am able to insert and update an existing row with a null value for the date and it saves successfully. In 13.3 this returned an error with a required message.

I should note that we are running 14.1 revision 32327 if that helps.


I ran the following query on both our production server (13.3) and our staging server ( 14.1, a mirror copy of the 13.3 database then upgraded to 14.1):

SELECT dd.name, dd.domainid, pdom.required, pd.name, pd.rangeuri
FROM exp.domaindescriptor dd
LEFT JOIN exp.propertydomain pdom on pdom.domainid = dd.domainid
LEFT JOIN exp.propertydescriptor pd on pd.propertyid=pdom.propertyid
WHERE dd.container='016c8d71-64a2-102f-a436-294e4fa51049' and dd.name='birthBaselineVisit';


13.3 property descriptors:

        name | domainid | required | name | rangeuri
--------------------+----------+----------+----------------------+-------------------------------------------
 birthBaselineVisit | 1108 | t | eval_location | http://www.w3.org/2001/XMLSchema#int
 birthBaselineVisit | 1108 | t | date | http://www.w3.org/2001/XMLSchema#dateTime
 birthBaselineVisit | 1108 | t | baseline_appearance | http://www.w3.org/2001/XMLSchema#int
 birthBaselineVisit | 1108 | t | baseline_illnessType | http://www.w3.org/2001/XMLSchema#int
 birthBaselineVisit | 1108 | f | baseline_weight | http://www.w3.org/2001/XMLSchema#double
(5 rows)


14.1 property descriptors:

        name | domainid | required | name | rangeuri
--------------------+----------+----------+----------------------+-----------------------------------------
 birthBaselineVisit | 1108 | t | eval_location | http://www.w3.org/2001/XMLSchema#int
 birthBaselineVisit | 1108 | t | baseline_appearance | http://www.w3.org/2001/XMLSchema#int
 birthBaselineVisit | 1108 | t | baseline_illnessType | http://www.w3.org/2001/XMLSchema#int
 birthBaselineVisit | 1108 | f | baseline_weight | http://www.w3.org/2001/XMLSchema#double
(4 rows)



I think it is incorrect to say that upgrading to 14.1 doesn't delete any metadata, as you can see that the date property descriptor for this dataset is removed in 14.1. I don't know how a user defined field in 13.3 that had user specified metadata can be applied in 14.1 if the property descriptor is deleted.

Since the date property descriptor is deleted in 14.1 and the DATE PropertyStorageSpec in DatasetDomainKind.BASE_PROPERTIES Set is initialized with the nullable set to TRUE, there is no way to make this date field required in 14.1. Hence is completely non-backwards compatible.

To stay backwards compatible maybe a fix would be to not delete property descriptors that overlap with DatasetDomainKind.BASE_PROPERTIES when the code is upgrading the database to 14.1; especially dates....
Matthew Bellew2014-05-20 09:36Jon (LabKey DevOps)2018-11-16 23:24How is new "date" column used in study datasets?Bugs in study Date columns in 14.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony Corbett2014-05-20 10:15Jon (LabKey DevOps)2018-11-16 23:24How is new "date" column used in study datasets?Bugs in study Date columns in 14.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Matt,

Thanks for your attention to this issue. The issue you reopened was original opened upon request from our group when we first started testing 14.1 back in April and found that we couldn't reload studies. I agree that the best approach would be to make the Domain.save()/StorageProvisioner handle this use case instead of the upgrade code deleting the PD. As well as making the date PD mandatory on datasets so users can at least edit the metadata (to make it required or hidden as needed) in the GWT Domain Editor.

Since this is blocking our upgrade to 14.1 I'll add this issue to the our group's issue tracker for support purposes.


Thanks again!

Anthony
jeckels2011-09-14 13:00Jon (LabKey DevOps)2018-11-16 23:24how integrated is oracle?how integrated is oracle? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

It's supported as an external data source (and therefore the standard features of LabKey SQL), but not as the primary database for LabKey Server itself.

Thanks,
Josh
Leo Dashevskiy2012-07-09 15:12Leo Dashevskiy2012-07-09 15:12How does one "OR" two LABKEY.FIlter-s ?How does one "OR" two LABKEY.FIlter-s ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks guys!
kevink2012-07-09 15:04Jon (LabKey DevOps)2018-11-16 23:23How does one "OR" two LABKEY.FIlter-s ?How does one "OR" two LABKEY.FIlter-s ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, it isn't possible to create an OR filter by combining other filters. The only way to do an OR is to use one of the filters that accepts a semi-colon separated list of values:

LABKEY.Filter.Types.IN
LABKEY.Filter.Types.NOT_IN
LABKEY.Filter.Types.CONTAINS_ONE_OF
LABKEY.Filter.Types.CONTAINS_NONE_OF
brittp2012-07-09 15:08Jon (LabKey DevOps)2018-11-16 23:24How does one "OR" two LABKEY.FIlter-s ?How does one "OR" two LABKEY.FIlter-s ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Assuming you're asking about the JavaScript API, note that you can also use LABKEY.Query.selectRows to write arbitrary SQL (with any filters you like):
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.executeSql

-Britt
Leo Dashevskiy2013-12-06 14:58Leo Dashevskiy2013-12-06 14:58How does one include a custom Java-based module (in particular 'hipcdb')?How does one include a custom Java-based module (in particular 'hipcdb')? TEXT_WITH_LINKSClosed     LabKey Support Forum
Found it, thanks, Josh!
jeckels2013-12-06 14:54Jon (LabKey DevOps)2018-11-16 23:24How does one include a custom Java-based module (in particular 'hipcdb')?How does one include a custom Java-based module (in particular 'hipcdb')? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

The "hipcdb" module was deleted back in October, with revision 28755. It was replaced by the "immport" module (introduced in revision 28746), which is under the "customModules" subdirectory.

If you're doing a regular build from source, it should be included in your development server. You can edit ./server/standard.modules to control which modules get included automatically in a build. By default, it should be including everything under the customModules directory, including immport.

Thanks,
Josh
Leo Dashevskiy2014-08-27 12:12Leo Dashevskiy2014-08-27 12:12How can one interact with a QueryWebPart via JS ?How can one interact with a QueryWebPart via JS ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, yes, getUserFilter() and getUserFilterArray() are the 2 pieces of API that seem to return what I need.

Thanks.
Ben Bimber2014-08-20 12:14Jon (LabKey DevOps)2018-11-16 23:24How can one interact with a QueryWebPart via JS ?How can one interact with a QueryWebPart via JS ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I've done this sort of thing before (minus R) and it is possible. I think the general approach is to work with the DataRegion, rather than the QWP itself. The QWP has a reference to the DataRegion (probably this.dataRegion, although I dont know for certain). LABKEY.DataRegion has some JS doc on available methods, but you should be able to use this to change sort, filter, etc.

There is probably a success callback on QWP, which would allow your code to act once the DataRegion loads. DataRegion also has some events for filter change, etc., which might be useful for your situation.
Leo Dashevskiy2014-08-20 17:35Jon (LabKey DevOps)2018-11-16 23:24How can one interact with a QueryWebPart via JS ?How can one interact with a QueryWebPart via JS ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben!

Yes, I saw the DataRegion API, but it was confusing to me how to use it.
I still cannot quite figure it out. Would you have an example on how to use it along with a QueryWebPart?

Thanks.
-Leo
trent2014-08-22 00:33Jon (LabKey DevOps)2018-11-16 23:23How can one interact with a QueryWebPart via JS ?How can one interact with a QueryWebPart via JS ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I normally get the DataRegion with the getDataRegion function that belongs to the QWP (though isn't on the API docs).

var wp = new LABKEY.QueryWebPart({..});
var dataReg = wp.getDataRegion();

then e.g. current filters

    var filters = dataReg.getUserFilterArray();
    Ext4.each(filters,function(filter){
        var col = filter.getColumnName();
        var type = filter.getFilterType().getDisplayText();
        var val = filter.getValue();
        
        console.log('Filtering ' + col + ' with condition:' + type + ' ' + val);
        
    });

Though, playing around. This doesn't appear to return filters when the data has been filtered with view, customize view UI. And neither is sort info return with dataReg.getUserSort()

I discovered you can fetch the sort info with the qwp object: wp.userSort. Which returns a comma separated string of all the columns you are sorting by. But again, not when using the customise view UI - I'm not sure how to get that info..

Anyway, not sure if that helps any.
kevink2015-04-16 11:08Jon (LabKey DevOps)2018-11-16 23:24How can I create a custom mapping that accepts MultipartFile?How can I create a custom mapping that accepts MultipartFile? TEXT_WITH_LINKSClosed     LabKey Support Forum
First, we have a few JavaScript APIs that you can try using to POST a file and get back a JSON formatted response. It requires two round-trips: 1) POST the file to assay/assayFileUpload.view to create an ExpData object, (2) create a LABKEY.Exp.Data from the response and call data.getContent() to parse the Excel file into JSON.

See the example in:
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Exp.Data.html

Second, to answer the question about getting a POSTed file: within your Java action call .getFileMap() -- for example:

    @RequiresPermissionClass(InsertPermission.class)
    public class ConvertXlsToJsonAction extends ApiAction
    {
        @Override
        public Object execute(Object o, BindException errors) throws Exception
        {
            Map<String, MultipartFile> files = getFileMap();

            List<String> names = new ArrayList<>();
            for (MultipartFile file : files.values())
                names.add(file.getOriginalFilename());

            JSONObject json = new JSONObject();
            json.put("fileNames", names);
            return json;
        }
    }
cyrus2015-04-16 11:56Jon (LabKey DevOps)2018-11-16 23:24How can I create a custom mapping that accepts MultipartFile?How can I create a custom mapping that accepts MultipartFile? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks kevin. Unfortunately the /convertXLSToJSON location isn't being mapped by the controller. Just to make sure, I renamed the class to "ConvertAction" and tried "/convert", but that isn't working either. I get a 404 on both.

>>>>>>>>>>>

    @RequiresPermissionClass(InsertPermission.class)
    public class ConvertAction extends ApiAction
    {
        @Override
        public Object execute(Object o, BindException errors) throws Exception
        {
            JSONObject full_jo = null;
            Map<String, MultipartFile> files = getFileMap();
            try
            {
                full_jo = new JSONObject();
                ...

>>>>>>>>>>

Sorry I'm new to LabKey and am not exactly sure how these routes are getting set up. If you have any further advice, I would appreciate it.

Cyrus
kevink2015-04-16 12:06Jon (LabKey DevOps)2018-11-16 23:24How can I create a custom mapping that accepts MultipartFile?How can I create a custom mapping that accepts MultipartFile? TEXT_WITH_LINKSClosed     LabKey Support Forum
For an overview of LabKey URLs, check out this help doc:

https://www.labkey.org/wiki/home/Documentation/page.view?name=url

The routing is based on the module's registered controllers and inner classes of that controller. In the case of the DemoModule, the DemoController is registered as "demo":

    protected void init()
    {
        addController("demo", DemoController.class);
    }

Then the actions within the controller are added based on the class name minus the "Action" part. So in this case: "/labkey/demo/<container>/convertXlsToJson.view"
cyrus2015-04-16 14:08Jon (LabKey DevOps)2018-11-16 23:24How can I create a custom mapping that accepts MultipartFile?How can I create a custom mapping that accepts MultipartFile? TEXT_WITH_LINKSClosed     LabKey Support Forum
That worked. I had the path wrong. And I forgot ".view". Thanks again.
jeckels2010-11-12 11:27Jon (LabKey DevOps)2018-11-16 23:23hosted labkeyhosted labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

This is something that we mention in our hosted FAQ:

http://labkey.com/hosted/labkey-hosted-faq

All of the data in the hosted server is available to export and use external to the LabKey Hosted server. Any files uploaded to the server or downloaded from the server can be downloaded as well. We don't yet have a simple way to transfer all of the data seamlessly between servers, but we'd be happy to work with users if they want to migrate from a hosted server to a local installation.

Thanks,
Josh
Leo Dashevskiy2013-03-30 11:17Leo Dashevskiy2013-03-30 11:17Horizontal web part sizingHorizontal web part sizing TEXT_WITH_LINKSClosed     LabKey Support Forum
Not too important at the moment.
Leo Dashevskiy2012-10-04 18:54Jon (LabKey DevOps)2018-11-16 23:24Horizontal web part sizingHorizontal web part sizing TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi folks!

I also noticed the following:

If the built-in web part (say, "Experiment Runs (Flow)" is first on the page) and my web part ("OpenCyto Visualization") is second, then they both get their widths correctly, whereas if I have "OpenCyto Visualization" first (on its own it's fine) and then add the "Experiment Runs (Flow)" web part, then the latter get stretched excessively horizontally outside the browser screen (horizontal scroll bars, of course, appear) and "OpenCyto Visualization" web part's inner container (my own code) is of the right size, as it should be, but the outer web part (the border) is stretched the same width as the "Experiment Runs (Flow)" below (thus there is lots of white space between the right edge of the inner container (my own code) and the right edge of the outer web part. See the attached screen capture (the horizontal scroll bars are not shown).

Feel free to check out my web part via this link: https://github.com/ldash/OpenCytoVisualization.git

Would anyone know, what the deal is?

Thanks a bunch.
-Leo
michael_stover@urmc.rochester.edu2011-04-27 10:02Jon (LabKey DevOps)2018-11-16 23:24Help with running updateRowsHelp with running updateRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Matthew Bellew2011-04-27 10:36Jon (LabKey DevOps)2018-11-16 23:24Help with running updateRowsHelp with running updateRows TEXT_WITH_LINKSClosed     LabKey Support Forum
we switched to 'rows' to be more consistent, but 'rowDataArray' should work as well.

I think this is cryptically trying to tell you that it can't figure out the unique key to perform the update operation.

Can you attach a screen shot of the dataset details page?
jdutra2011-04-27 10:58Jon (LabKey DevOps)2018-11-16 23:24Help with running updateRowsHelp with running updateRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Matthew,

Thanks for offering to help. Michael figured out what the LSID was for me, and got an example of what one looked like. Once I got the correct information in there, the update worked.

Thanks again,
Jen
ymei2012-11-19 15:51Jon (LabKey DevOps)2018-11-16 23:24Help with running updateRowsHelp with running updateRows TEXT_WITH_LINKSClosed     LabKey Support Forum
I also hit this issue for updating study datasets. How to figure out the hidden LSID? Could anyone share an example?

Thanks,
Yongguo
jeckels2012-11-19 17:05Jon (LabKey DevOps)2018-11-16 23:23Help with running updateRowsHelp with running updateRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Yongguo,

Although it's hidden in the UI by default, LSID is just one of the standard columns that's available on a dataset. There are a number of different ways to get its value. For example, you can request it by using LABKEY.Query.selectRows() and using the "columns" config property. You can use the filterArray config property to filter to the ParticipantId and SequenceNum or Date field (depending on if you have a visit-based or date-based study) so that you get only the row that you're interested in updating.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.selectRows

Thanks,
Josh
ymei2012-11-21 08:46Jon (LabKey DevOps)2018-11-16 23:24Help with running updateRowsHelp with running updateRows TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you, Josh! It worked out well.

Yongguo
Jon (LabKey DevOps)2015-10-12 11:11Jon (LabKey DevOps)2018-11-16 23:24Help with .netrc on Linux and RLabkey data accessHelp with .netrc on Linux and RLabkey data access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Are you seeing an error message when trying to run a connection through R using the RLabkey library? Are both labkey-test and labkey-dev sites running on HTTPS or HTTP? Are they running on any special ports like 8080 or 8443?

The netrc file appears to look okay for multiple entries.

Regards,

Jon
laurapas2015-10-12 11:17Jon (LabKey DevOps)2018-11-16 23:24Help with .netrc on Linux and RLabkey data accessHelp with .netrc on Linux and RLabkey data access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Port 8443. The same .netrc works fine on my Mac laptop. So, I don't know why it doesn't work on the Linux system.
Jon (LabKey DevOps)2015-10-12 11:28Jon (LabKey DevOps)2018-11-16 23:23Help with .netrc on Linux and RLabkey data accessHelp with .netrc on Linux and RLabkey data access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Can you do an ls -al on the HOME directory you're in so we can see the permissions of the .netrc file?

Also, the .netrc file should actually have a password designation, just like how you have the machine and login designation:

machine labkey-test.roche.com login OMNIBD01 password xxxxxx
machine labkey-dev.roche.com login OMNIBD01 password xxxxxx

Regards,

Jon
jeckels2015-10-12 13:35Jon (LabKey DevOps)2018-11-16 23:23Help with .netrc on Linux and RLabkey data accessHelp with .netrc on Linux and RLabkey data access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

LabKey Server doesn't act as an FTP server, so unless you have separately installed something for FTP it's completely expected that you won't be able to connect via FTP.

Are you seeing authentication problems from inside of R?

As Jon mentioned, there are requirements on the file permissions for .netrc. It be readable only by the user account:

https://www.labkey.org/wiki/home/Documentation/page.view?name=netrc

Thanks,
Josh
Matthew Bellew2012-12-21 09:07Jon (LabKey DevOps)2018-11-16 23:24Help with javascript API's insertRows()Help with javascript API's insertRows() TEXT_WITH_LINKSClosed     LabKey Support Forum
It doesn't sound like you're doing anything wrong. It sounds like the error is that somewhere we are asking Postgres to do an implicit conversion from string->date and it doesn't want to. We do usually try do convert to the correct type before handing off to Postgres.

Can you send me the .sql script you used to create your table? If you can find this error in the log and send that along that will help a lot.

Matt
tstellin@scharp.org2012-12-21 09:30Jon (LabKey DevOps)2018-11-16 23:24Help with javascript API's insertRows()Help with javascript API's insertRows() TEXT_WITH_LINKSClosed     LabKey Support Forum
Here’s my table definition:

CREATE TABLE specimen_qc.lot_details(
    lot_number text
  , lot_prepared timestamp without time zone NOT NULL
  , parallel_testing_date_1 timestamp without time zone NOT NULL
  , parallel_testing_date_2 timestamp without time zone NOT NULL
  , date_approved_for_use timestamp without time zone NOT NULL
  , approved_by userid NOT NULL
  , date_used timestamp without time zone NOT NULL
  , comment text
  , createdby userid
  , created timestamp
  , modifiedby userid
  , modified timestamp
  , container entityid NOT NULL
  , CONSTRAINT PK_lot_details PRIMARY KEY (lot_number)
);

Here’s the error from tomcat’s logs:

ERROR Table 2012-12-21 09:28:03,239 http-8080-1 : SQL Exception
org.postgresql.util.PSQLException: ERROR: column "date_used" is of type timestamp without time zone but expression is of type character varying
  Hint: You will need to rewrite or cast the expression.
  Position: 240
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:410)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
    at org.labkey.api.data.dialect.StatementWrapper.execute(StatementWrapper.java:790)
    at org.labkey.api.data.Table.insert(Table.java:985)
    at org.labkey.api.query.DefaultQueryUpdateService._insert(DefaultQueryUpdateService.java:264)
    at org.labkey.api.query.DefaultQueryUpdateService.insertRow(DefaultQueryUpdateService.java:223)
    at org.labkey.api.query.AbstractQueryUpdateService._insertRowsUsingInsertRow(AbstractQueryUpdateService.java:297)
    at org.labkey.api.query.AbstractQueryUpdateService.insertRows(AbstractQueryUpdateService.java:371)
    at org.labkey.query.controllers.QueryController$CommandType$1.saveRows(QueryController.java:2757)
    at org.labkey.query.controllers.QueryController$BaseSaveRowsAction.executeJson(QueryController.java:2949)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:3016)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:3009)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:152)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:87)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:177)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:353)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:921)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:791)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:170)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:679)
ERROR Table 2012-12-21 09:28:03,241 http-8080-1 : SQL [8999]
    INSERT INTO specimen_qc.lot_details
        (lot_number, lot_prepared, parallel_testing_date_1, parallel_testing_date_2, date_approved_for_use, date_used, comment, createdby, created, modifiedby, modified, container)
        VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    ?[1] 999005006.V3
    ?[2] Thu Dec 06 00:00:00 PST 2012
    ?[3] Thu Dec 06 00:00:00 PST 2012
    ?[4] Thu Dec 06 00:00:00 PST 2012
    ?[5] Thu Dec 06 00:00:00 PST 2012
    ?[6] 2012-12-06T08:00:00.000Z
    ?[7] test
    ?[8] 8654
    ?[9] 2012-12-21 09:28:03.237
    ?[10] 8654
    ?[11] 2012-12-21 09:28:03.237
    ?[12] cc98654e-5fc2-102c-8aed-d0cf379742c5

    org.labkey.api.query.DefaultQueryUpdateService._insert(DefaultQueryUpdateService.java:264)
    org.labkey.api.query.DefaultQueryUpdateService.insertRow(DefaultQueryUpdateService.java:223)
    org.labkey.api.query.AbstractQueryUpdateService._insertRowsUsingInsertRow(AbstractQueryUpdateService.java:297)
    org.labkey.api.query.AbstractQueryUpdateService.insertRows(AbstractQueryUpdateService.java:371)
    org.labkey.query.controllers.QueryController$CommandType$1.saveRows(QueryController.java:2757)
WARN ApiAction 2012-12-21 09:28:03,242 http-8080-1 : ApiAction exception:
org.postgresql.util.PSQLException: ERROR: column "date_used" is of type timestamp without time zone but expression is of type character varying
  Hint: You will need to rewrite or cast the expression.
  Position: 240
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:410)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
    at org.labkey.api.data.dialect.StatementWrapper.execute(StatementWrapper.java:790)
    at org.labkey.api.data.Table.insert(Table.java:985)
    at org.labkey.api.query.DefaultQueryUpdateService._insert(DefaultQueryUpdateService.java:264)
    at org.labkey.api.query.DefaultQueryUpdateService.insertRow(DefaultQueryUpdateService.java:223)
    at org.labkey.api.query.AbstractQueryUpdateService._insertRowsUsingInsertRow(AbstractQueryUpdateService.java:297)
    at org.labkey.api.query.AbstractQueryUpdateService.insertRows(AbstractQueryUpdateService.java:371)
    at org.labkey.query.controllers.QueryController$CommandType$1.saveRows(QueryController.java:2757)
    at org.labkey.query.controllers.QueryController$BaseSaveRowsAction.executeJson(QueryController.java:2949)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:3016)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:3009)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:152)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:87)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:177)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:353)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:921)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:791)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:170)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:679)
Matthew Bellew2012-12-21 11:20Jon (LabKey DevOps)2018-11-16 23:23Help with javascript API's insertRows()Help with javascript API's insertRows() TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, that's interesting. I wish I had written the type of the parameters into the log, but I'm pretty sure that the first 4 dates are java.util.Date and the last two are java.sql.Timestamp. I suspect that the remaining value "2012-12-06T08:00:00.000Z" is the problem. Anything different about date_used that you can figure?

I will try to reproduce this scenario here.

Matt
tstellin@scharp.org2012-12-21 12:57Jon (LabKey DevOps)2018-11-16 23:24Help with javascript API's insertRows()Help with javascript API's insertRows() TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

My apologies, it must've been something wrong on my end. The problem went away after I changed my date columns from date -> timestamp and restarted tomcat.
Matthew Bellew2012-12-21 13:02Jon (LabKey DevOps)2018-11-16 23:24Help with javascript API's insertRows()Help with javascript API's insertRows() TEXT_WITH_LINKSClosed     LabKey Support Forum
Good to hear. Since we only create timestamp columns, we may have a little testing to do to completely support date-only columns in external schemas.

Matt
Nick Kerr2012-11-26 17:11Jon (LabKey DevOps)2018-11-16 23:24Have you looked at Deft JS?Have you looked at Deft JS? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Thanks for posting.

We investigated loading mechanisms for client-side dependencies with the release of ExtJS 4. In terms of dependency loading, Deft JS seems to be a slightly different take on the Ext.Loader utility currently available.

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Loader

This works well for us in development environments where we want each of the dependencies to be served individually. I would not recommend using this in a production setting for performance reasons. In production, we tend to use the minified dependency libraries that can be declared in LabKey:

https://www.labkey.org/wiki/home/Documentation/page.view?name=scriptdepend

Note, this is not done at runtime, but does allow for ExtJS-independent script packaging.

As for the MVC portion of Deft JS, we don't use ExtJS MVC extensively. It is interesting to see what people consider areas for improvement in Ext's take on MVC.

Thanks,
Nick
Leo Dashevskiy2012-05-16 16:13Leo Dashevskiy2012-05-16 16:13Has anyone implemented or seen a "horizontal" drag-and-drop of items within an Ext Panel?Has anyone implemented or seen a "horizontal" drag-and-drop of items within an Ext Panel? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks Nick, will ponder on all of this...
Nick Kerr2012-05-16 14:20Jon (LabKey DevOps)2018-11-16 23:23Has anyone implemented or seen a "horizontal" drag-and-drop of items within an Ext Panel?Has anyone implemented or seen a "horizontal" drag-and-drop of items within an Ext Panel? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

There are several helpful resources that I find for drag/drop.

Ext 3.4: http://dev.sencha.com/deploy/ext-3.4.0/examples/#sample-14
Ext 4.0: http://dev.sencha.com/deploy/ext-4.0.1/examples/#sample-9
Saki (Ext 3.4) : http://examples.extjs.eu/

I think I know what you are describing, but we do not have an example of implementing panels that move on drag-over in LabKey. We implement drag/drop in the tree panel, which is going to be pretty different from what you are looking to build, but it could help. Search for FolderManagementPanel.js in our core/webapp/admin folder.

Thanks,
Nick
Will Holtz2015-09-11 10:11Will Holtz2015-09-11 10:11hard table with lookup to second hard table in different folderhard table with lookup to second hard table in different folder TEXT_WITH_LINKSClosed     LabKey Support Forum
I figured my issue out. Module2, with the lookup to Module1, was not declaring a module dependency (in the module.properties file) on Module1. Once I added the dependency, turning on Module2 in a folder forces Module1 to also be active in that folder and thus the Module1 hard table is accessible from within Module2.

-Will
Will Holtz2015-09-09 13:32Jon (LabKey DevOps)2018-11-16 23:23hard table with lookup to second hard table in different folderhard table with lookup to second hard table in different folder TEXT_WITH_LINKSClosed     LabKey Support Forum
It appears that I need to active both Module1 and Module2 in /home and then create my assay design instances in /home/folder1 or /home/folder2, then the foreign keys work. However, if I take my existing configuration described in the parent post and now activate Module1 and Module2 in /home (after they were previously activated /home/folder1 and /home/folder2), then the cross-module foreign key does not work. I don't understand why that does not work, but I'm not too surprised.

-Will
Jon (LabKey DevOps)2015-09-09 14:50Jon (LabKey DevOps)2018-11-16 23:24hard table with lookup to second hard table in different folderhard table with lookup to second hard table in different folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Just to clarify, you had the XML Metadata defined within each module, but that doesn't appear to be picking up. Is that correct?

When you accessed the two tables, were you able to manually create the lookups to the other respective folder and table via the Schema Browser?

My understanding is that you shouldn't need to add the module to the parent project to allow the modules in the folders to pick each other up if the Metadata is already defined correctly.

Regards,

Jon
Will Holtz2015-09-09 15:21Jon (LabKey DevOps)2018-11-16 23:24hard table with lookup to second hard table in different folderhard table with lookup to second hard table in different folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Initially I had metadata for the lookup column with just:
       <column columnName="product"></column>
and later I tried:
      <column columnName="product">
        <fk>
          <fkFolderPath>/home/folder1</fkFolderPath>
          <fkTable>Table1</fkTable>
          <fkDbSchema>Schema1</fkDbSchema>
        </fk>
      </column>
Neither of these resulted in a functional lookup within labkey.

If I edit the metadata from within the labkey schema browser, it appears to already have the lookup configured, as the 'Type' column shows the fk schema and table. However, if I try to edit the lookup, the 'Choose Field' dialog has the value for schema, but doesn't have values for Folder or Table (they say 'Folder' and 'no tables found'). If I then set Folder to /home/Module1, I can then select the table. If I save this and go back to the schema browser, the lookup column is still empty for this field, and when I view the data, I see the integer values for this column.

thanks for you help!
-Will
Will Holtz2015-09-09 15:26Jon (LabKey DevOps)2018-11-16 23:23hard table with lookup to second hard table in different folderhard table with lookup to second hard table in different folder TEXT_WITH_LINKSClosed     LabKey Support Forum
One more thing I just noticed. When I try to manually edit the lookup with the 'Choose Field' dialog, it loads with the correct schema value. But if I look at the drop down list for schema names, the schema isn't listed there.

-Will
Will Holtz2016-03-08 16:53Jon (LabKey DevOps)2018-11-16 23:24Hard table with foreign key to assay runHard table with foreign key to assay run TEXT_WITH_LINKSClosed     LabKey Support Forum
I got it to work, but I don't understand it.

In my first post, that metadata was in resources/schemas/SCHEMANAME.xml. Moving the metadata to resources/queries/SCHEMANAME/TABLENAME.query.xml fixed the problem.

-Will
jeckels2016-03-08 18:47Jon (LabKey DevOps)2018-11-16 23:24Hard table with foreign key to assay runHard table with foreign key to assay run TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

resources/schemas/SCHEMANAME.xml points at tables in the "real" underlying database.

resources/queries/SCHEMANAME/TABLENAME.query.xml points at tables in the schema/queries that are exposed through the schema browser.

They often line up identically, but in the case of the assay runs tables, the real database table is exp.experimentrun, while the assay schema exposes a filtered view for a specific assay design under the assay.ASSAY_TYPE.ASSAY_DESIGN schema.

Thanks,
Josh
Will Holtz2016-03-08 19:51Jon (LabKey DevOps)2018-11-16 23:24Hard table with foreign key to assay runHard table with foreign key to assay run TEXT_WITH_LINKSClosed     LabKey Support Forum
Good to know -- thanks Josh!

-Will
Jon (LabKey DevOps)2018-04-11 15:50Jon (LabKey DevOps)2018-11-16 23:24Handling deletes on ETL where the source is a LK dataset?Handling deletes on ETL where the source is a LK dataset? TEXT_WITH_LINKSClosed     LabKey Support Forum
I'll get this confirmed, but I don't think we have anything beyond the standard "append", "merge", and "truncate" options on the target table. and only filtering strategies of "SelectAllFilterStrategy", "RunFilterStrategy", and "ModifiedSinceFilterStrategy" for the source.

https://www.labkey.org/Documentation/wiki-page.view?name=etlSchedule#target

Regards,

Jon
Ben Bimber2018-04-11 15:59Jon (LabKey DevOps)2018-11-16 23:24Handling deletes on ETL where the source is a LK dataset?Handling deletes on ETL where the source is a LK dataset? TEXT_WITH_LINKSClosed     LabKey Support Forum
So incrementalFilter has deletedRowsSource, which I assume is the select that identifies a list of PKs to remove; however, that needs to come from somewhere. Auditing is really the only can I can think to come up with this list of IDs. Because we're pulling from a fairly standard LK data source (datasets), I thought I'd see if any groups have experience with how to approach this.
Jon (LabKey DevOps)2018-04-20 12:13Jon (LabKey DevOps)2018-11-16 23:23Handling deletes on ETL where the source is a LK dataset?Handling deletes on ETL where the source is a LK dataset? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You're right, https://www.labkey.org/Documentation/wiki-page.view?name=etlSchedule#deletedRowsSource would work in this case, but this typically is used on external sources and a database trigger would populate a deletedRowsSource (like an audit table) on the deletes.

You could use a query over the LabKey audit table like you're thinking, but it would be slow as you've seen. Indexing could possibly help speed things up here. But another alternative would be to create an afterDelete js trigger script on the dataset to populate a second (custom) table as the deletedRowsSource.

Regards,

Jon
brittp2008-05-16 07:04Jon (LabKey DevOps)2018-11-16 23:24GWT IntegrationGWT Integration TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

Here are a couple of pages that might help you with GWT integration:
https://www.labkey.org/wiki/home/Documentation/page.view?name=GWT
https://www.labkey.org/wiki/home/Documentation/page.view?name=gwtservices

Please let me know if you need more information.

Regarding module-specific jars: the LabKey build system looks for a directory called 'lib' at the root of your module. All libraries in this directory are copied into WEB-INF\lib of the LabKey webapp at build time, where they are available to the running server process. This document describes the basic layout of our default module, including the lib directory:
https://www.labkey.org/wiki/home/Documentation/page.view?name=createNewModule

Please let me know if this doesn't work, or if I've misinterpreted your question.

Thanks,
Britt
jeckels2008-02-01 13:44Jon (LabKey DevOps)2018-11-16 23:24GWT hosted modeGWT hosted mode TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

I just updated our GWT developer documentation, which now includes a sample configuration that's working on my machine:

https://www.labkey.org/wiki/home/Documentation/page.view?name=GWT

Thanks,
Josh
wnels2@uky.edu2008-02-01 14:30Jon (LabKey DevOps)2018-11-16 23:23GWT hosted modeGWT hosted mode TEXT_WITH_LINKSClosed     LabKey Support Forum
Yea! Its working. What timing.
One note; I did have to add "C:/Program Files/JetBrains/IntelliJ IDEA 7.0.2/lib/idea_rt.jar" to the VM Parameters classpath.

Have a good weekend.
Bill
jeckels2008-02-06 09:22Jon (LabKey DevOps)2018-11-16 23:23GWT BuildGWT Build TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

I've had success with just doing a regular build to update GWT apps when running in development mode. It's worth verifying that you are running with -Ddevmode=true in your Tomcat debug VM parameters, as it affects how the server set caching headers for .js files.

Assuming you're running in dev mode and are still seeing the problems, what module does the GWT app belong to? After edit your GWT app and a regular build (not a rebuild) does the corresponding .module file in <LABKEY_ROOT>/build/labkeyWebapp/modules get updated with a new timestamp? What about the files in <LABKEY_ROOT>/build/labkeyWebapp/explodedWar/<YOUR_GWT_PACKAGE>?

Thanks,
Josh
wnels2@uky.edu2008-02-06 13:00Jon (LabKey DevOps)2018-11-16 23:23GWT BuildGWT Build TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,
Just knowing that it normally works the way I was doing it is a big help. It tuned out to be IE casching the page. I guess it only looks for the source of the page to change but not changes in the java script that it points to. Firefox doesn't have this problem.

Thanks,
Bill
Jon (LabKey DevOps)2018-03-09 16:17Jon (LabKey DevOps)2018-11-16 23:24Grouping in Pivot QueryGrouping in Pivot Query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Have you taken the time to review our robust Support Documentation?

https://www.labkey.org/Documentation/wiki-page.view?name=default

Many of your questions can be answered in our docs and we even have videos to help you understand how to both use LabKey and understand the functionality:

https://www.labkey.org/Documentation/wiki-page.view?name=videos

For future, please do your best to consult our fantastic docs first before posting to the Community Forums.


Regarding your PIVOT query, have you reviewed our PIVOT documentation?

https://www.labkey.org/Documentation/wiki-page.view?name=pivot

The query you provided looks malformed and without knowing more details of the actual data, doing a PIVOT may not be possible depending on what is within those respective columns and the groupings.

Regards,

Jon
Jon (LabKey DevOps)2018-07-11 13:25Jon (LabKey DevOps)2018-07-11 13:25Gridviews per UserGridviews per User TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

It sounds like you're asking if you can create a filter that would be based on the individual user who is looking at the grid.

There is a special filter called ~me~ that assumes the user who is looking at the grid is the value desired.

From our docs: https://www.labkey.org/Documentation/wiki-page.view?name=filteringData#variable

"Using filter value variables can help you use context-sensitive information in a filter. For example, use the variable "~me~" (including the tildes) on columns showing user names from the core.Users table to filter based on the current logged in user."

So if you have a Name column that has the names of the users who are in LabKey, you can use that ~me~ filter to force the grid to only show the specific user rows that are tied to them and them only.

Regards,

Jon
Jon (LabKey DevOps)2016-10-04 13:15Jon (LabKey DevOps)2018-11-16 23:24Grid views and alternate format stringsGrid views and alternate format strings TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Are you setting up two qview.xml files for each respective view?

You should be able to pull off both by having two distinct qview.xml files like:

.qview.xml <- The Default view that always will appear
gridViewA.qview.xml <- The view for Grid View A with the format string of ###.0
gridViewB.qview.xml <- The view for Grid View B with the format string of ###.00

Or you can set it up to where you don't have three qview.xml files and just have the default reflecting the format for Grid View A and then leave Grid View B (or call it something else):

.qview.xml <- The view for Grid View A (made as the default) with the format string of ###.0
gridViewB.qview.xml <- The view for Grid View B with the format string of ###.00

Regards,

Jon
Will Holtz2016-10-04 13:24Jon (LabKey DevOps)2018-11-16 23:23Grid views and alternate format stringsGrid views and alternate format strings TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the reply. And it appears I failed to make my situation clear -- sorry about that. I am aware that multiple .qview.xml files is how multiple views are done. But I haven't been able to figure out the xml code for setting the format string within a .qview.xml file. I have only done format strings in .query.xml files and domain definition files. I looked through the Labkey xsd, but didn't see a way to set a format string from http://labkey.org/data/xml/queryCustomView. I also grepped the source tree and didn't find any format strings in .qview.xml files, but this may have been a false negative, as I don't know exactly what I'm looking for. Can you supply a .qview.xml file that contains a format string?

thanks!
-Will
Jon (LabKey DevOps)2016-10-04 13:59Jon (LabKey DevOps)2016-10-04 13:59Grid views and alternate format stringsGrid views and alternate format strings TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the clarification Will.

So unfortunately, it looks like we don't support this feature at this time. I've made a request to have this added in for a future release though, it's a really good idea to have for our customize views.

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=28064

Regards,

Jon
jeckels2012-02-22 17:34Jon (LabKey DevOps)2018-11-16 23:24Grid -> Customize View to change column order -> Edit record?Grid -> Customize View to change column order -> Edit record? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Xenia,

I can help with more specifics on how to reorder with a little more info about what kind of data are you editing. For example, is it a List, a Dataset, a Sample Set, an Assay run, etc? These types of administrator-defined data types support reordering their fields, which will be reflected in the Edit view. Other data types may not be configured as easily.

Thanks,
Josh
sadcat@u.washington.edu2012-02-23 16:42Jon (LabKey DevOps)2018-11-16 23:24Grid -> Customize View to change column order -> Edit record?Grid -> Customize View to change column order -> Edit record? TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh - thanks! It is the Query (I just selected Query Web Part from Portal module). I was able to rearrange the fields in grid view, but not the Edit view :-\

Thanks,
Xenia
jeckels2012-02-23 17:13Jon (LabKey DevOps)2018-11-16 23:24Grid -> Customize View to change column order -> Edit record?Grid -> Customize View to change column order -> Edit record? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Xenia,

What is the target of the Query Web Part, both for schema and query names?

Thanks,
Josh
sadcat@u.washington.edu2012-02-23 17:19Jon (LabKey DevOps)2018-11-16 23:23Grid -> Customize View to change column order -> Edit record?Grid -> Customize View to change column order -> Edit record? TEXT_WITH_LINKSClosed     LabKey Support Forum
The target? If you mean the underlying source, it's a table in a separate database (not the one containing the core LabKey schema)

X
jeckels2012-02-24 16:53Jon (LabKey DevOps)2018-11-16 23:23Grid -> Customize View to change column order -> Edit record?Grid -> Customize View to change column order -> Edit record? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Xenia,

For external tables, I believe that we just use the order of the columns as reported by JDBC metadata. It's possible to use XML to add extra metadata about the columns, but I just did some testing and couldn't find a way to reorder them for the edit view.

One potential approach would be for us to use the column order from the XML file as the default order, which would drive insert, update, detail and grid views. I can open a request to do that if it sounds like it would work for your scenario. Let me know.

Thanks,
Josh
Jon (LabKey DevOps)2018-06-15 23:32Jon (LabKey DevOps)2018-06-15 23:32Grid button bars and the new UIGrid button bars and the new UI TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Unfortunately, it doesn't look like this isn't possible via the normal Javascript API and would require some manipulation of the CSS and ExtJS objects.

Regards,

Jon
Susan Hert2017-04-26 13:15Jon (LabKey DevOps)2018-11-16 23:24Gradle error?Gradle error? TEXT_WITH_LINKSClosed     LabKey Support Forum
I've not seen this error, but you might want to check the Gradle configuration within IntelliJ (Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle) and make sure the Gradle JVM on this page is pointing to the JDK and not the JRE.
Ben Bimber2017-04-27 14:01Jon (LabKey DevOps)2018-11-16 23:24Gradle error?Gradle error? TEXT_WITH_LINKSClosed     LabKey Support Forum
In case others hit this, I think I figured it out. I noticed my PATH was preferentially selecting the jre's java.exe. Even though I have JAVA_HOME set to the correct JDK directory, I'm hypothesizing that some script is trying to infer java_home based on the location of java.exe (some wrapper scripts do this). when i updated my PATH to preferentially use the JDK's java.exe, then tried to open this in intellij, things work properly.
Jon (LabKey DevOps)2017-11-21 11:50Jon (LabKey DevOps)2018-11-16 23:24gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

My understanding is that you should be able to. Did you try to do the hot swap after doing what would be a rebuild?

So with gradle, you'd do a:

gradlew cleanbuild deployApp

Various StackOverflow posts with similar issues all seem to indicate a need to compile the whole project or the dependent class.

Regards,

Jon
Jon (LabKey DevOps)2017-11-21 12:09Jon (LabKey DevOps)2018-11-16 23:23gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Josh also reminded me that a Gradle sync needs to be done in IntellJ too.

Per the docs (https://www.labkey.org/Documentation/wiki-page.view?name=devMachine), under the "Configure the LabKey Project in IntelliJ" section:

Open the Gradle tool window at View > Tool Windows > Gradle.

Click the refresh icon. This will take as much as 15-30 minutes. You should start seeing messages about its progress. If not, something is probably hung up. Wait for this sync to complete before progressing with further IntelliJ configuration steps.

Regards,

Jon
Ben Bimber2017-11-22 10:20Jon (LabKey DevOps)2018-11-16 23:24gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks, unfortunately no change yet. The errors I'm currently seeing are primarily about not being able to find org.json.JSONObject, so I wonder if something is not explicitly declaring that dependency or something...
jeckels2017-11-22 11:44Jon (LabKey DevOps)2018-11-16 23:23gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

org.json.JSONObject is just checked in as source code in the API module. I assume you have it available in server\api\src\org\json\JSONObject.java.

Does IntelliJ seem happy with that file? Are you seeing errors in the source editor for files that reference it, or just when you try to do the IntelliJ build to initiate the hotswap?

Thanks,
Josh
Ben Bimber2017-11-22 11:54Jon (LabKey DevOps)2018-11-16 23:24gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Gradlew deployApp works fine; within intellij build (Build menu -> rebuild project) also works fine. I only hit this problem when i try to hot swap a file (ctl + shift + f9). these errors only appear in the intellij message window, not in the source code. this leads me to believe something is out of whack in the intellij config, not apparently not all of it.
jeckels2017-11-27 14:43Jon (LabKey DevOps)2018-11-16 23:24gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

When doing a build of an individual file, IntelliJ is very unlikely to compile any dependencies outside of that single .java file. Have you completed a full project build within IntelliJ first? If that completes successfully, IntelliJ should reuse those results to allow for the incremental, single-file builds via Ctrl-Shift-F9.

Thanks,
Josh
Susan Hert2017-11-27 19:09Jon (LabKey DevOps)2018-11-16 23:24gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Ben,

It is also worth mentioning here that the latest versions of IntelliJ will put the output files generated by the gradle build done within IntelliJ in a directory called "out" at the root of the modules' source (e.g., server/modules/core/out). This resulted in a couple of bugs in our gradle plugins, which have been fixed in the version 1.2 of the gradlePlugins jar (compatible with LabKey 17.2 and later). This version also introduces a task 'cleanOut' for each module, which will remove the out directory that IntelliJ creates. See the description in the tasks list (e.g., ./gradlew :server:modules:core:tasks) for the full path of the directory that will be removed by this task. To remove all of the 'out' directories, simply run the cleanOut task at the root level (i.e., ./gradlew cleanOut).

Susan
Ben Bimber2017-11-27 19:58Jon (LabKey DevOps)2018-11-16 23:23gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Susan,

Thanks - I happen to be running a branch based on 17.2 and am using gradle plugin version 1.1. Are you suggesting switching this to use plugin version 1.2 potentially help this problem? you said earlier versions had bugs - does this sound like a known bug?

Thanks,
Ben
Susan Hert2017-11-27 20:35Jon (LabKey DevOps)2018-11-16 23:23gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, Ben,

Josh's suggestions regarding doing a full project build within IntelliJ is probably the real answer to your problem. I mention the 1.2 version of gradlePlugins only because that 'cleanOut' task can be handy if you encounter problems where the IntelliJ build output is getting in the way or somehow not updating when you think it should. The actual bugs we had because of the "out" directories should have been fixed with version 1.1.

Susan
Ben Bimber2017-11-29 10:47Jon (LabKey DevOps)2018-11-16 23:24gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Alright. I made a clean enlistment, and am now getting errors when doing a rebuld via intellij (though the gradle builds run fine). This might actually be progress. A number of classes in API that are saying they are unable to find com.google.commons classes. For example, in org.labkey.api.data.Parameter, the imports turns red and says "com.google.common.primitives.Ints" doesnt exist. If I control-click on 'primitives' I see I have both guava 17.0 and 19.0, and I can find 'Ints'. Have you seen anything like this before?
Jon (LabKey DevOps)2017-12-11 13:22Jon (LabKey DevOps)2018-11-16 23:24gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Can you supply the full error that appears? Is it something like a class error, like "java.lang.NoClassDefFoundError" or something similar?

Thanks,

Jon
Ben Bimber2017-12-11 14:02Jon (LabKey DevOps)2018-11-16 23:23gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Attached is an export from intellij's console after rebuild (Build -> Rebuild Project). Parameter.java is a good example. Errors are along the lines of:

C:\discvr17.2\server\api\src\org\labkey\api\data\Parameter.java
    Error:Error:line (19)java: package com.google.common.primitives does not exist
    Error:Error:line (451)java: cannot find symbol
  symbol: variable Ints
  location: class org.labkey.api.data.Parameter
C:\discvr17.2\server\api\src\org\labkey\api\view\template\ClientDependency.java
    Error:Error:line (18)java: package com.google.common.collect does not exist
    Error:Error:line (127)java: cannot find symbol
  symbol: variable Sets
  location: class org.labkey.api.view.template.ClientDependency

Which doesnt make sense to me since google commons should be available. I have Intellij 2017.2.5 and am running a branch based on 17.2. I am using gradle plugin 1.2. 'gradle deployApp' works fine, so I assume this is something Intellij isnt getting right.

Thanks,
Ben
Jon (LabKey DevOps)2017-12-13 21:23Jon (LabKey DevOps)2018-11-16 23:23gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

There's got to be some kind of disconnect between what the IntelliJ build is using compared to the rest of the configuration.

Can you send us a few screenshots of the Dependencies tab for the specific module under File > Project Structure? There might not be any kind of smoking gun there, but it's worth taking a look.

Also, have you tried to have IntelliJ regenerate your .iml files by removing the <LABKEY_ROOT>/.idea/modules directory, followed up with a gradle refresh?

One of the ideas is that your .iml files may be out-of-date or possibly corrupt for some unknown reason, so a regeneration might help to resolve this.

Regards,

Jon
Ben Bimber2018-01-03 09:15Jon (LabKey DevOps)2018-11-16 23:24gradle build: intellij hot swapping not working anymore?gradle build: intellij hot swapping not working anymore? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I switched to a 17.3-based branch and hot-swapping seems to be working OK now. It's possible my 17.2 issue was something to do w/ the set of modules I have enabled (which probably differs from most LK devs). agreed there was probably something out of sync w/ intellij, but it's not really worth debugging further.

Thanks,
Ben
adam2008-06-17 08:09Jon (LabKey DevOps)2018-11-16 23:24GO Term import brokenGO Term import broken TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the report -- we'll take a look.
marki2010-08-26 08:01Jon (LabKey DevOps)2018-11-16 23:24global find/replace in dataset?global find/replace in dataset? TEXT_WITH_LINKSClosed     LabKey Support Forum
We generally don't recommend updating LabKey managed data without running app code. Your suggestion should work but it is somewhat dangerous as getting the WHERE clause wrong could be really bad as would forgetting to rematerialize. If you have all the terms in your where clause right it should work.

An alternative is to write a perl/r/java program using the API. Select the rows you want to change into a file & use updateRows to do updates in batches. Would be slower, but safer than your suggestion.
Ben Bimber2010-08-26 08:14Jon (LabKey DevOps)2018-11-16 23:24global find/replace in dataset?global find/replace in dataset? TEXT_WITH_LINKSClosed     LabKey Support Forum
i see your point, but in this instance I'm still thinking postgres is the way to go. this really isnt a very complex WHERE clause and I can easily verify it's returning the correct number of rows prior to running the update.

there are two ways to change the materialized datasets:
1) drop the corresponding tables in studydataset, then run that query in labkey
2) run a postgres update against that table.

If I'm already going to update exp.objectproperty directly, is there any reason not to do option 2? seems faster and less work.

Speaking as someone who manages a site, not being able to interact directly with the database is frequently a pretty big limitation. I realize that there are trade-offs and it also brings other advantages. direct postgres updates should probably be used judiciously, but they have their place. given that labkey can already interact with external schemas, i've been using that quite a bit for simple lists, rather than actually making a list. different mechanisms make sense in different places.
jeckels2010-08-26 10:20Jon (LabKey DevOps)2018-11-16 23:23global find/replace in dataset?global find/replace in dataset? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, if you're directly manipulating exp.objectproperty, you can do #2 as well.

I think the best long-term solution to this kind of problem is to have LabKey SQL support UPDATE, DELETE, and INSERT statements, but that's a very large work item.

Thanks,
Josh
Zoya Pasha2017-11-06 22:06Zoya Pasha2017-11-06 22:06Get SQL queryGet SQL query TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you!!
Jon (LabKey DevOps)2017-11-03 17:10Jon (LabKey DevOps)2018-11-16 23:24Get SQL queryGet SQL query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Zoya,

I'm not understanding your question.

Is there any reason why you cannot just use the Schema Browser built into LabKey to view your LabKey SQL? What is the purpose of having to extract that information into a wiki?

Regards,

Jon
Zoya Pasha2017-11-04 03:56Jon (LabKey DevOps)2018-11-16 23:23Get SQL queryGet SQL query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I wish to get the SQL query as a text on a wiki page I create as I want to add a few things to it in the wiki page itself. I do not wish to pass the control over to the schema browser.

Thanks in advance,
Zoya
Jon (LabKey DevOps)2017-11-04 20:38Jon (LabKey DevOps)2018-11-16 23:24Get SQL queryGet SQL query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Zoya,

I'll get this confirmed, but I do not believe this is possible via our Javascript API structure. Since the ability to view the LabKey SQL requires the query module, there would need to be significant code changes to the query module to allow this to occur.

Regards,

Jon
Zoya Pasha2017-11-05 20:56Jon (LabKey DevOps)2018-11-16 23:24Get SQL queryGet SQL query TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Jon
Jon (LabKey DevOps)2017-11-06 00:13Jon (LabKey DevOps)2017-11-06 00:13Get SQL queryGet SQL query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Zoya,

I've confirmed that the existing client-side APIs do not have this capability to expose the SQL that is normally accessed via the Schema Browser. It is possible to have the code in the wiki to call on the Internal API that the Schema Browser uses to access the SQL. You should be able to see the requests within a debugger like the Google Chrome debugger while the Schema Browser is running to get some insight.

However, this is not supported by LabKey, so you would need to work with the source code on your own to determine how to accomplish this.

Regards,

Jon
daves2010-03-11 10:31Jon (LabKey DevOps)2018-11-16 23:24getQueryDetails() slow when query contains multiple lookups?getQueryDetails() slow when query contains multiple lookups? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The schema browser calls getQueryDetails when you view a particular query, so do you notice that the schema browser also take longer to display the details of the study.Participant as well? I wouldn't expect it to be all that much longer if you have 10 extra lookup columns, but perhaps there is something we can do to improve performance (caching and such).

If you just need some basic meta-data about a few columns, you can use selectRows specifying a maxRows=0. This will return the full metaData and columnModel sections, but the rows section will be an empty array. The selectRows API allows you to specify a list of columns you want, so you can select just the few columns you need.
marki2010-03-11 10:48Jon (LabKey DevOps)2018-11-16 23:23getQueryDetails() slow when query contains multiple lookups?getQueryDetails() slow when query contains multiple lookups? TEXT_WITH_LINKSClosed     LabKey Support Forum
Another question -- do you notice this the first time you are getting this information after an import or does it happen every time?
I'm wondering if we are "materializing" some views of the data when you make this request.
Ben Bimber2010-03-11 11:29Jon (LabKey DevOps)2018-11-16 23:23getQueryDetails() slow when query contains multiple lookups?getQueryDetails() slow when query contains multiple lookups? TEXT_WITH_LINKSClosed     LabKey Support Forum
i will try to pay attention to this. i think dave is right that this is likely a more general study performance issue than getQueryDetails() specifically. I think the right thing to do is to follow up properly on the test server, but here are some symptoms I have seen to date on my laptop with the EHR study:

while in the query module schema browser, it is not uncommon for loading the study schema to timeout (meaning expanding the list of tables). Likewise for loading the info page on the participant or study data tables (not data itself).

i have noticed that if i try to load a very big table without any sort of filter, i can cause this slow behavior. for example, trying to load studydata, participant or assignment. i'm not sure how to properly kill one of these queries, but they seem to slow performance after not actually loading.


machine specs:
Running labkey checked out from from 10.1 branch.
postgres 8.4
Dell inspiron Core2duo T7500 2.2ghz
4gb RAM
win7 32-bit
jeckels2010-03-12 10:17Jon (LabKey DevOps)2018-11-16 23:24getQueryDetails() slow when query contains multiple lookups?getQueryDetails() slow when query contains multiple lookups? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I just did a little digging into this. I think that the performance may be significantly degraded if you are running in dev mode, since we end up checking the file system a bunch of times to see if the XML metadata has changed.

If you're running in dev mode, it would be interesting to know if it's faster in production mode. If so, we could potentially be less aggressive and not check the file system if we've already checked in the last few seconds. If not, we can investigate further and track down the source of the slowness.

Thanks,
Josh
bront@kcr.uky.edu2015-05-04 11:02Jon (LabKey DevOps)2018-11-16 23:24Get primary key of inserted rowGet primary key of inserted row TEXT_WITH_LINKSClosed     LabKey Support Forum
hi,

I think you may need to examine the data object passed to the successCallback function.

You might try adding something like the following into the callback and then viewing the results in the JavaScript console.

console.log('success data : ', data);
console.log('success data : ', data.result[0].rows[0].id);

Hope this helps.

cheers,

bront
fb92002015-05-05 14:23Jon (LabKey DevOps)2018-11-16 23:24Get primary key of inserted rowGet primary key of inserted row TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Thank you very much. I find I can use 'data.rows[0].primarykey' directly.

Best regards,

Anny
Jon (LabKey DevOps)2019-10-09 21:22Jon (LabKey DevOps)2019-10-09 21:22Get list of all folders (Java)Get list of all folders (Java) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Corbin,

You need to leverage the GetContainers API to be able to get the hierarchical list of folders like you're looking for.

https://www.labkey.org/download/clientapi_docs/java-api/org/labkey/remoteapi/security/GetContainersCommand.html

Regards,

Jon
Jon (LabKey DevOps)2019-10-25 23:46Jon (LabKey DevOps)2019-10-25 23:46Get list of all folders (Java)Get list of all folders (Java) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Corbin,

Maybe the approach needs to be rethought? You said that you wanted to get a hierarchical list of all folders. Depending on how many containers you're working with, this can potentially be slow.

What specifics were you wanting to generate via the Java API when it comes to the container hierarchy?

Regards,

Jon
ccharpen2019-10-10 11:31ccharpen2019-10-10 11:31Get list of all folders (Java)Get list of all folders (Java) TEXT_WITH_LINKSActive     LabKey Support Forum
Thanks for the response, Jon.

If I set the command to include sub folders, the request times out. I noticed a "setTimeout()" API that I'm going to try. However, I think the request is slow because the sever is populating a lot of extraneous data that we don't need for each folder, chiefly "effectivePermissions". I also found an API for setting the command parameters, and I'm wondering if I can use this to filter out response fields on the server side. That said, I have no idea what to populate the setParameters() map with -- the documentation doesn't help here either.

Thanks.
jeckels2010-11-16 10:06Jon (LabKey DevOps)2018-11-16 23:23get assay in parent folder to show up in workbooksget assay in parent folder to show up in workbooks TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Given the current implementation, workbooks will see assays defined in their parent project, or defined inside the workbook itself. There isn't a way to view assays in a non-project parent folder.

You can export and import assay definitions into separate folders, but any existing runs will continue to point to the original assay definition.

Thanks,
Josh
Ben Bimber2010-11-16 10:14Jon (LabKey DevOps)2018-11-16 23:24get assay in parent folder to show up in workbooksget assay in parent folder to show up in workbooks TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. admittedly this is somewhat my fault for not seeing this coming. since we have a lot of someone's time invested in uploading rows to an existing assay, is there any database magic that can be performed to push this assay definition into the project folder?
Jon (LabKey DevOps)2015-01-27 15:24Jon (LabKey DevOps)2018-11-16 23:24Genrating letters which include dataGenrating letters which include data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anders,

Can you give us some more details as to what you're needing here?

You could use our Javascript API to extract values from the Participant table and then populate that into the UI under the Customize Participant View, but are you looking for the platform to have pre-populated text with the values you want to have displayed to where you can then copy/paste the information or were you looking to have it do something else? What specific information are you trying to pass onto your patients via a letter?

Regards,

Jon
anders kielland2015-01-28 00:06Jon (LabKey DevOps)2018-11-16 23:24Genrating letters which include dataGenrating letters which include data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon
Thank you for the answer. I can see that my question was not well phrased. I am sorry about that.

When a particular patient have been to the clinic he often wants date with him home. Like blood values, weight, blood pressure... etc.

I could generate a standard "participant report" with relevant measures, but if I print out that the cohort and group (treatment group) is also included which are information they should not have. It would also be nice to add an standard extra text to the print out (presumably what you mean by "pre-populated text").

Basically some thing that is easy and fast to use for the clinician.

Hope this was more understandable, Anders
Jon (LabKey DevOps)2015-01-28 17:27Jon (LabKey DevOps)2018-11-16 23:23Genrating letters which include dataGenrating letters which include data TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

Thanks for the clarification. There's a few different ways to approach this, but it is possible to do what you want via Javascript.

I'm tinkering around with some javascript code at the moment, but my personal idea is where you would setup wiki page where you have your standard extra text and have that page embed the participant report information within it using the selectRows query (https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.selectRows) and from the Customize Participant View, have a link that will point to that wiki page and pass along the participant ID.

The Participant ID number would get passed into the wiki page and the selectRows query would extract only specific values you want from the participant and populate the letter for your clinician to use.

Does that make sense?

Regards,

Jon
anders kielland2015-01-29 12:42Jon (LabKey DevOps)2018-11-16 23:23Genrating letters which include dataGenrating letters which include data TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes that sounds good.

I cannot do that my self, but s long as there exists and sensible solution I am satisfied.

Regards, Anders
Jon (LabKey DevOps)2015-02-02 17:43Jon (LabKey DevOps)2018-11-16 23:24Genrating letters which include dataGenrating letters which include data TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

Just an FYI, I am in the final phase of my custom solution and I'm just working out the final pieces. I'll give you an update tomorrow with full instructions.

Regards,

Jon
anders kielland2015-02-02 22:14Jon (LabKey DevOps)2018-11-16 23:24Genrating letters which include dataGenrating letters which include data TEXT_WITH_LINKSClosed     LabKey Support Forum
Seriously
That was very exiting to hear:D

Thank you very much, Anders
Jon (LabKey DevOps)2015-02-03 16:51Jon (LabKey DevOps)2018-11-16 23:24Genrating letters which include dataGenrating letters which include data TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

I understand that Elizabeth and Kevin were discussing the option of having you use knitr for the letter, which is a good idea. But here is my solution via Javascript. Although I'm sure there are other more optimal ways of coding this, the idea is still pretty good to use.

The structure is setup in two parts:

1. The customize participant view that will have javascript code to obtain the participantId from the URL.
2. The wiki page that will then take that participantId, perform a query using the Javascript API against that participantId, then populate the values in the wiki as a letter.

To use the code, the following needs to be done before you begin:

1. You will need to know what dataset you want to pull information from. In my example, I added additional fields to my Demographics dataset (First Name, Last Name, etc) and updated a few of my records to have actual values there.
2. You will need to create a wiki page for the letter.

Once you have taken care of those two pre-requisites, you can use the attached javascript code examples and customize them as you need to.

In my example, this is what the code does:

1. I access my participant record and the javascript code within the Customized Participant View adds a link that points to a wiki I made earlier and pushes that participant ID into it:

Screenshot - http://awesomescreenshot.com/0a64bz3x45

The URL that the link points to looks like this: http://localhost:8080/labkey/wiki/home/Demo%20Study/page.view?name=Letter&participantId=125478&_print=1

2. The wiki page then obtains the participant ID and uses it in the Javascript API as a filter for its query.

3. I allowed the wiki page to first show me the results of the query (the instructions on how to do this is explained in the code), which looked like this:

125478 ARV urn:lsid:labkey.com:Study.Data-25:5001.125478 2008/04/28 00:00:00 74 123 Main St 98125 WA John Seattle m Smith

4. So the query provided extra data that I didn't need, so I then made the wiki page show me the results again using another format (also explained in the code), which renders like this:

This is 125478
This is ARV
This is urn:lsid:labkey.com:Study.Data-25:5001.125478
This is 2008/04/28
This is 00:00:00
This is 74
This is 123
This is Main
This is St
This is 98125
This is WA
This is John
This is Seattle
This is m
This is Smith

This then lets me see what values I have to use for my actual letter.

5. I then format the HTML code for the letter and then let the wiki page render one final time, which gives me a printable screen:

Screenshot - http://awesomescreenshot.com/0144bz4t30

---------

Definitely give this a consideration along with the knitr one as well to determine what will work best for your internal workflows.

Let me know if you have any further questions.

Regards,

Jon
anders kielland2015-02-04 11:42Jon (LabKey DevOps)2018-11-16 23:24Genrating letters which include dataGenrating letters which include data TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you very much Jon

I believe I managed to create the wiki with the javascript query (very good explanation - I haven't done any coding before).

But I don't think I manage to set up the right URL in the Customized Participant View

The Wiki letter seems to have this URL:
https://labkey01.usit.uio.no/labkey/wiki/TNS%20%28date%29/page.view?name=Letter

I use this in Customized Participant View:
aTag.setAttribute('href',"labkey01.usit.uio.no/labkey/wiki/TNS%20%28date%29/page.view?name=Letter&participantId=" + participantId + "&_print=1");

And got and 404: Error page (see attached)

It might be something else I haven't understood; however, I wonder if you can make some sense out of it?

kind regards, Anders
Jon (LabKey DevOps)2015-02-04 13:04Jon (LabKey DevOps)2018-11-16 23:23Genrating letters which include dataGenrating letters which include data TEXT_WITH_LINKSClosed     LabKey Support Forum
Anders,

I was shown a better way to use that specific line of code.

Can you replace what you have there with this instead?

aTag.setAttribute('href', LABKEY.ActionURL.buildURL('wiki', 'page', null, { name: 'Letter', participantId: participantId, '_print': 1 }) );

This builds a URL and specifically focuses on the wiki module and the name of the wiki (called "Letter") and inserts the Participant ID number along with it.

Regards,

Jon
Jason Leadley2016-05-06 02:20Jon (LabKey DevOps)2018-11-16 23:24Genomics WorkflowsGenomics Workflows TEXT_WITH_LINKSClosed     LabKey Support Forum
Good morning Eva and thank you for contacting LabKey.

It would be useful for us to better understand the scenarios in which you looking to use the Genotyping and Illumina modules. We would be happy to send the modules for you to use and deploy them. However, LabKey support for such is reserved for customers with a Premium Edition with which comes the appropriate support level. Please let me know if you would like to have a discussion where we can evaluate the best way forward for you.

Best wishes

Jason
Ben Bimber2016-05-06 09:58Jon (LabKey DevOps)2018-11-16 23:23Genomics WorkflowsGenomics Workflows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

If you're interested in genomics, you might consider DISCVR-Seq as well, which has a fairly large set of features at this point:

https://github.com/bbimber/discvr-seq/wiki
Ben Bimber2011-01-21 07:12Jon (LabKey DevOps)2018-11-16 23:24Genetic Details Page / Deciphering Audit trailGenetic Details Page / Deciphering Audit trail TEXT_WITH_LINKSClosed     LabKey Support Forum
one follow up:

detailsQueryRow appears to work on all types of queries; however, different queries have different names for their PK (at least with hard tables). I might suggest that instead of using the name of the PK field in the URL (ie. lsid, rowId, etc), support a generic URL param name like 'pk', 'key', etc. it might allow

would also be useful is this supported a 'viewName' param.

finally, the following code is from queryController.java. it seems to be determining whether to display the 'edit' button. is there any sort of flag that would prevent the edit button from showing up? if i read this correctly, it checks whether the user has permissions, whether and update URL exists, and if both are true, it shows the edit button.


                if (getViewContext().hasPermission(UpdatePermission.class))
                {
                    StringExpression updateExpr = _schema.urlExpr(QueryAction.updateQueryRow, _form.getQueryDef());
                    if (updateExpr != null)
                    {
                        ActionURL updateUrl = new ActionURL(updateExpr.eval(tableForm.getTypedValues()));
                        ActionButton editButton = new ActionButton("Edit", updateUrl);
                        bb.add(editButton);
                    }
                }
alanv2014-01-24 10:38Jon (LabKey DevOps)2018-11-16 23:24GenericChartPanel and curveFit?GenericChartPanel and curveFit? TEXT_WITH_LINKSClosed     LabKey Support Forum
We made some changes to the GenericChartPanel, but there were no conscious decisions to make that stop working. It's used in the ELISA assay, and appears to still be working there. Are there any errors in the JavaScript console? Does the chart otherwise look normal?
Ben Bimber2014-01-24 18:05Jon (LabKey DevOps)2018-11-16 23:24GenericChartPanel and curveFit?GenericChartPanel and curveFit? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yeah, it's a scatter plot and working otherwise. There's no JS errors at all. I stepped into the code and saw that my curveFit config is getting passed. I didnt see exactly where the line is getting drawn. If you could point me at the right place I could do some debugging.
alanv2014-01-27 14:13Jon (LabKey DevOps)2018-11-16 23:23GenericChartPanel and curveFit?GenericChartPanel and curveFit? TEXT_WITH_LINKSClosed     LabKey Support Forum
It looks like this is a bug that was introduced in 13.3. Unfortunately it is currently not a high enough priority to fix in 13.3. I am planning on having a fix in for 14.1. There is an issue open here:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=19476
jeckels2013-03-13 13:13Jon (LabKey DevOps)2018-11-16 23:24General Assays and Non-required Run DataGeneral Assays and Non-required Run Data TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

I don't think this is currently possible with the standard General assay type.

If you are using a Java assay type, I suspect that you can return an empty list from your AssayProvider.getDataCollectors() subclass.

Alternatively, if you are using a file-based assay type, you can use a custom upload.html that prompts for run properties but doesn't include any file upload options.

Thanks,
Josh
Anthony Corbett2013-03-13 13:59Jon (LabKey DevOps)2018-11-16 23:24General Assays and Non-required Run DataGeneral Assays and Non-required Run Data TEXT_WITH_LINKSClosed     LabKey Support Forum


Thanks Josh. I was thinking that the file-based module with a custom upload.html would be my best bet.
jeckels2011-12-14 16:55Jon (LabKey DevOps)2018-11-16 23:23Gene PatternGene Pattern TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michael,

We've looked at GenePattern a number of times and agree that it would be very nice to enable some sort of link between it and LabKey Server. So far, we haven't done any deep investigation into what kind of integration would be possible, but it seems like using GenePattern as a way to run an analysis much as we've enabled for Galaxy makes a lot of sense. Under that model, LabKey Server launches jobs, waits for the analysis to complete, and then imports at least some of the results.

You can find the Galaxy code in <LABKEY_SOURCE_ROOT>\server\customModules\genotyping\src\org\labkey\genotyping\galaxy\.

Thanks,
Josh
adam2017-11-02 12:13Jon (LabKey DevOps)2018-11-16 23:23galaxygalaxy TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alper,

As you've probably seen, the genotyping module includes the ability to generate files containing reads and reference sequences of interest from data imported and curated in LabKey, pass those files to Galaxy, invoke a Galaxy workflow that performs alignment, and load the matches back into LabKey. This workflow was developed 5+ years ago and tailored for a specific lab's needs; it hasn't been generalized or updated to the latest version of the Galaxy HTTP API. But, this might be a reasonable starting point if you wanted to develop integration between LabKey and your NGS pipelines. (Or LabKey could work with you to develop this integration.)

The other possibility is the "galaxyintegration" module developed by Ben Bimber at OHSU. In the SVN repository: /externalModules/DISCVR/galaxyintegration. I'm not very familiar with the feature set this module provides.

Adam
Jon (LabKey DevOps)2017-11-02 12:21Jon (LabKey DevOps)2017-11-02 12:21galaxygalaxy TEXT_WITH_LINKSClosed     LabKey Support Forum
There is also another thing Ben Bimber made as well as an alternative to Galaxy:

https://github.com/bbimber/discvr-seq/wiki
Ben Bimber2017-11-02 14:46Ben Bimber2017-11-02 14:46galaxygalaxy TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alper,

To give a little more detail on those: we use DISCVR-Seq and associated modules to manage raw sequence data and kick off various alignment and analysis pipelines across many servers/projects, and there are a few groups I know about outside our institution also using it. It's designed to primarily manage your data and outputs, which we never found Galaxy to do very well. It has some flexibility in defining pipelines, but it's not designed to be anything like Galaxy on that front. We're actively continuing to develop and expand this.

I also wrote a module (galaxyintegration), which is also part of LabKey's SVN. This was really just a proof of concept module for a multi-site collaborative project. It uses an existing java library (blend4j) to port the outputs from a galaxy run into LabKey's experiment/pipeline system. Crudely speaking, it exports the locations of output files and record of steps performed from galaxy and stores those within LabKey, so they can be viewed as though it was a pipeline run via LabKey. Given we dont use Galaxy, I dont think this has ever been used seriously, but it should work. It might provide a model for how one might make a tighter integration between the two (basically leveraging blend4j and Galaxy's HTTP APIs); however, it's nothing I expect us to build out.

-Ben
Will Holtz2018-08-20 21:11Will Holtz2018-08-20 21:11Full text search over hard tableFull text search over hard table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the confirmation.

-Will
Jon (LabKey DevOps)2018-08-20 16:23Jon (LabKey DevOps)2018-11-16 23:23Full text search over hard tableFull text search over hard table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I'm not certain whether this is possible based on the docs I've seen, but I'll have this checked and get back to you.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2018-08-20 18:52Jon (LabKey DevOps)2018-08-20 18:52Full text search over hard tableFull text search over hard table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Just got confirmation and was told that this isn't possible.

Per our developers:

"An object or table that wants to participate in full-text search must implement and register an instance of the DocumentProvider interface to instruct the search indexer about details like: what content should be indexed, high priority vs low priority fields, fields that should be stemmed vs. fields that represent identifiers, search result title and summary, tracking of rows that need to be indexed, behavior when the index is deleted, etc. This requires Java code."

The only feasible workaround they suggested to index an arbitrary table without writing code is to use a list, which the list designer provides indexing configurations. https://www.labkey.org/Documentation/wiki-page.view?name=editListDesign

Regards,

Jon
jeckels2014-02-03 16:35Jon (LabKey DevOps)2018-11-16 23:24Full Microarray AnalysisFull Microarray Analysis TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

This should be feasible. We have users who are doing this sort of analysis/visualization in R with much snappier response times than you're seeing here.

Are you setting up your R script as an R report (Views->Create->R View) or through some other mechanism?

Do you know where the bottleneck is? It could be in querying the data from the database, writing it to the R script, running the R script itself, or marshalling the results to send back to the browser. Looking at CPU usage may be enough to determine which stage it's happening at, based on which process is taking up the CPU.

Thanks,
Josh
bill c white2014-02-04 05:34Jon (LabKey DevOps)2018-11-16 23:23Full Microarray AnalysisFull Microarray Analysis TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh.

I am working with the LabKey developers to try and resolve this. Microarray analysis is something currently under development in collaboration with HIPC. All of my methods are in C++, so getting them to work with R and Javascript is a challenge to say the least.

Bill
Matthew Bellew2011-04-22 11:09Jon (LabKey DevOps)2018-11-16 23:24Freeform relational datatablesFreeform relational datatables TEXT_WITH_LINKSClosed     LabKey Support Forum
You have definitely hit on one of the main limitations of lists (samplesets, assays, etc). That is flexibility of keys and indexes.

You very well may want to create a min-module to construct the tables you need. This may not be as hard as it seems at first glance. I'm not exactly positive what the absolute minimal module with schema is, but it may be as few as 3 files starting with

config/module.properties
schema/MySchema.xml
schema/dbscripts/postgresql/MySchema-0.00-1.00.sql

You can also toss in some predefined queries to get things started e.g.

queries/MySchema/UsefulQuery.sql

see https://www.labkey.org/wiki/home/Documentation/page.view?name=simpleModules
Ben Bimber2011-04-22 11:16Jon (LabKey DevOps)2018-11-16 23:23Freeform relational datatablesFreeform relational datatables TEXT_WITH_LINKSClosed     LabKey Support Forum
you can look at the snomedCT module in the 11.1 subversion customModules folder a module that does nothing but expose a custom schema. however, if this is all you are care to do, why not just create the schema in postgres, then expose it through labkey. look in the schema browser -> 'schema administration', then 'define new schema'.
michael_stover@urmc.rochester.edu2011-04-22 11:28Jon (LabKey DevOps)2018-11-16 23:24Freeform relational datatablesFreeform relational datatables TEXT_WITH_LINKSClosed     LabKey Support Forum
Does defining the schema create the schema and tables in the underlying database, or does it just allow Labkey to connect to an already existing database and schema?
kevink2011-04-22 11:41Jon (LabKey DevOps)2018-11-16 23:24Freeform relational datatablesFreeform relational datatables TEXT_WITH_LINKSClosed     LabKey Support Forum
LabKey will run any sql scripts it finds in the schema/dbscripts/postgresql or schema/dbscripts/sqlserver to create the tables when the module is first loaded. Defining the schema in the schema/<schema-name>.xml file allows LabKey to connect to existing tables. It is possible that LabKey could use this xml file to create tables and columns but we haven't addressed that yet.

I find it easier to create by tables first then generate a stub schema xml file from the following action:
http://<server>/labkey/admin/getSchemaXmlDoc.view?dbSchema=<schema-name>

Here's a link to the help topic:
https://www.labkey.org/wiki/home/Documentation/page.view?name=includeDatabaseScripts
Matthew Bellew2011-04-22 11:42Jon (LabKey DevOps)2018-11-16 23:24Freeform relational datatablesFreeform relational datatables TEXT_WITH_LINKSClosed     LabKey Support Forum
That's another good suggestion Ben. So there are two separate cases here.

1) Just create your own tables in postgres and connect to it as an external schema

https://www.labkey.org/wiki/home/Documentation/page.view?name=externalSchemas

In this case, there is no module required. A new schema will show up in the schema browser that you can use.

2) Create a new schema through the mini-module method. In this case labkey will run the schema creation script for you and even manage scripts to upgrade the schema. This is definitely a slightly more structured approach. If you are managing a dev machine, staging machine, and production machine. There is the advantage to having this structure.
Ben Bimber2011-04-22 11:43Jon (LabKey DevOps)2018-11-16 23:24Freeform relational datatablesFreeform relational datatables TEXT_WITH_LINKSClosed     LabKey Support Forum
it does not create or have any ability to modify tables (at least not since i last used it). it just allows you to view existing schemas through labkey. i think you have the option on enabling insert/update, but i have no idea how it would behave with a multi-key table. if you already have the tables, it's easy enough just to see what happens.

i've used this on our site when I had applications that needed a more portable solution and/or had other processes that interacted directly with the DB. it allowed us to get the UI provided by labkey while side-stepping some of the constraints and limitations labkey puts on you with lists.

for applications I viewed as longer-term I have generally created the schemas through a simple modules as matt suggested. i went this route b/c it was a little more structured, even more portable (labkey can auto-create the schemas), etc. it all depends on how you think you'd use this.
michael_stover@urmc.rochester.edu2011-04-22 11:48Jon (LabKey DevOps)2018-11-16 23:24Freeform relational datatablesFreeform relational datatables TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks everyone. I think creating the simple module is probably the way go, especially since I can see it expanding to include some new behavior too.
Matthew Bellew2010-01-15 16:44Jon (LabKey DevOps)2018-11-16 23:23FormPanel item ghostedFormPanel item ghosted TEXT_WITH_LINKSClosed     LabKey Support Forum
This is how non-updatable fields are displayed by default. The gray is applied because the default disabledClass is x-item-disabled which is {color:gray}. You can either set disabled:true or disabledClass to something other than x-item-disabled.

e.g. {name:'DM', disabledClass:''}

I think that should do it.

see also

http://www.extjs.com/deploy/ext-2.2.1/docs/?class=Ext.form.TextField
jeckels2014-08-25 18:33Jon (LabKey DevOps)2018-11-16 23:23Foreign key to assay.AssayListForeign key to assay.AssayList TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

As you've seen, the assay.AssayList is a query that provides a filtered view of the exp.protocol table from the underlying database.

You should be able to use XML metadata to configure the lookup from your column to the AssayList table. I was able to get this to work for me locally, with XML like this:

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="AssayLookup" tableDbType="NOT_IN_DB">
    <columns>
      <column columnName="Lookup">
        <fk>
          <fkDbSchema>assay</fkDbSchema>
          <fkTable>AssayList</fkTable>
          <fkColumnName>RowId</fkColumnName>
        </fk>
      </column>
    </columns>
  </table>
</tables>

How are you trying to apply your metadata? Via the schema-level XML in a module? As a .query.xml file in a module? Through the schema browser? I think that the schema-level approach will likely not work (as it would be trying to target an assay.assaylist table in the actual database) but the others should work.
Thanks,
Josh
Will Holtz2014-08-26 11:02Jon (LabKey DevOps)2018-11-16 23:24Foreign key to assay.AssayListForeign key to assay.AssayList TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks for replying. I was attempting to apply the metadata via schema-level XML in a module. I can get the lookup to occur if I set up the metadata via the schema browser, but I'd prefer to have the module configure the lookup.

I'm confused about your mention of .query.xml file, as I am trying to create a table and not a query. I don't see how .query.xml can be applied to my problem. Can you please elaborate on that a bit?

thanks!
jeckels2014-08-26 13:45Jon (LabKey DevOps)2018-11-16 23:24Foreign key to assay.AssayListForeign key to assay.AssayList TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

.query.xml files will be used for metadata for both "real" database tables and for custom LabKey SQL queries. It's legit, for example, to have an AssayLookup.query.xml file without a corresponding .sql file to go with it. It should go in a subdirectory that matches the schema name, as exposed through the query schema browser. Usually that matches with the underlying database schema name, but not always. This is the module-based equivalent to applying the XML though the schema browser.

For a map of where to put the file, look here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleDirectoryStructures

Thanks,
Josh
Jon (LabKey DevOps)2015-02-16 13:12Jon (LabKey DevOps)2018-11-16 23:23"Folder" column in new and existing Queries"Folder" column in new and existing Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alicia,

I'm still trying to find a global way to disable/hide that folder column, but rather than you customizing the view, what you can do to hide that folder column is to edit the metadata while you're creating the query and uncheck the "Grid" option under the Additional Properties section when you select Folder. (see screenshot)

If we don't have a global way to disable/hide that option, I will create a bug ticket to have the default uncheck the "Grid" option in a future build.

Regards,

Jon
Jon (LabKey DevOps)2015-02-16 15:50Jon (LabKey DevOps)2018-11-16 23:24"Folder" column in new and existing Queries"Folder" column in new and existing Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alicia,

So it looks like there isn't a global feature to disable the Folder from coming up for newly created queries as a column.

I've created a bug ticket asking to have the behavior changed to where the "Grid" option is unchecked by default under that Folder metadata option when a new query is made.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=22530

Regards,

Jon
Lili2010-07-20 13:24Lili2010-07-20 13:24Flow Jo demo file 404Flow Jo demo file 404 TEXT_WITH_LINKSClosed     LabKey Support Forum
Yep, working now! Thanks, Kevin.
eknelson2010-07-19 10:15Jon (LabKey DevOps)2018-11-16 23:24Flow Jo demo file 404Flow Jo demo file 404 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lili,

Sorry about the broken link. The new location of the file is here:

https://www.labkey.org/download/labkey-flow-demo.zip

I've updated the tutorial page with this location. Please note that this tutorial is on our to-do list for updates. The flow module's user interface has changed since the tutorial was last updated, particularly file management.

Thanks for letting us know about the broken link.

-- Elizabeth
Lili2010-07-20 07:51Jon (LabKey DevOps)2018-11-16 23:24Flow Jo demo file 404Flow Jo demo file 404 TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you, Elizabeth.

Btw, I tried to upload individual .fcs file, but when I select one in the file panel, the "Import FCS files" button is always grayed out. Is this function still being developed? I have Labkey version 10.1.

-Lili
kevink2010-07-20 08:41Jon (LabKey DevOps)2018-11-16 23:23Flow Jo demo file 404Flow Jo demo file 404 TEXT_WITH_LINKSClosed     LabKey Support Forum
The "Import FCS files" button operated on the directory containing a set of fcs files. If you navigate up one level, then select the directory containing the files, the "Import FCS files" button should be enabled.
marki2011-05-10 11:54Jon (LabKey DevOps)2018-11-16 23:24find instances of hard coded paths in wikis?find instances of hard coded paths in wikis? TEXT_WITH_LINKSClosed     LabKey Support Forum
You should be able to query in the wiki schema to get this. You would want to query the body property of the comm.pageversions table joined to the comm.pages table to identify the current version of each page.

Property descirptors should be identified by unchanging URIs (not technically URLs) so don't update those, but the url property used to generate URLs in columns might be interesting to look at. It's likely all of those are in your custom module, however.
Ben Bimber2011-05-10 12:05Jon (LabKey DevOps)2018-11-16 23:24find instances of hard coded paths in wikis?find instances of hard coded paths in wikis? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi mark,

thanks. right, the URL field is what i was thinking of. i'm mostly worried about things others might have defined for lists and things. the EHR should be strictly defined in the code. i dont need to change them, but it'd be nice to make a list to alert people if their pages are going to break.

-ben
Jon (LabKey DevOps)2017-09-21 14:15Jon (LabKey DevOps)2018-11-16 23:24Finding studyDataset table 'prefix' for Dev purposesFinding studyDataset table 'prefix' for Dev purposes TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

If you go into your DB and check the table "exp.domaindescriptor", that should have a column called "storagetablename" that corresponds with the specific tables under the studydataset schema and any of the other schemas that use that alphanumeric combo before the table name.

Regards,

Jon
jeckels2017-09-21 14:18Jon (LabKey DevOps)2018-11-16 23:24Finding studyDataset table 'prefix' for Dev purposesFinding studyDataset table 'prefix' for Dev purposes TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

The number after the 'c' and before the 'd' in the table name is the RowId of the container record, in decimal.

There's a semi-secret way to resolve this to the container - you can use "__rX" as the container name in a URL to get to the container with RowId X.

For example:

http://localhost:8080/labkey/project/__r111/begin.view?

would take you to the container for your demographics dataset.

Thanks,
Josh
Matthew Bellew2010-03-09 16:39Jon (LabKey DevOps)2018-11-16 23:24Filters and case insensitive EQUAL?Filters and case insensitive EQUAL? TEXT_WITH_LINKSClosed     LabKey Support Forum
This is one of those cases where it is hard to hide the implementation of the underyling SQL database. Postgres is case-sensitive by default (whereas SQL Server is case-insensitive).

While you can specify a locale when you create a database, I don't think you can specify case-insensitive (I'd love to find out that I'm wrong on this, or that this has been changed in a recent version).

http://www.postgresql.org/docs/8.4/interactive/locale.html

We get around this for 'starts with' by using the ILIKE operator.

http://www.postgresql.org/docs/current/static/functions-matching.html

Matt
Ben Bimber2010-03-09 16:53Jon (LabKey DevOps)2018-11-16 23:23Filters and case insensitive EQUAL?Filters and case insensitive EQUAL? TEXT_WITH_LINKSClosed     LabKey Support Forum
that makes sense. i'll try to read about setting locale, b/c case insensitive would be highly preferable.

can we use ILIKE in when specifying filters in a URL, something like:

..&query.Species/species~ilike=cyno
rsautera2013-11-22 10:52rsautera2013-11-22 10:52Filter $labkey.data using a query viewFilter $labkey.data using a query view TEXT_WITH_LINKSClosed     LabKey Support Forum
I liked the idea of a view instead of a query but this is close to perfect.
Thank you.
cnathe2013-11-22 06:56Jon (LabKey DevOps)2018-11-16 23:24Filter $labkey.data using a query viewFilter $labkey.data using a query view TEXT_WITH_LINKSClosed     LabKey Support Forum
Renan,
Your module folder tree looks correct for the query view. I tested it locally, and it looks like you might be missing part of the string for the xmlns attribute of the customView element in your XML. If I set the xmlns="http://labkey.org/data/xml/queryCustomView" the study_pubinfo view appears in the views menu of the study_pubmed query for me and was filtered as expected.

Give that a try.
-Cory


<customView xmlns="http://labkey.org/data/xml/queryCustomView">
        <filters>
                <filter column="study_accession" operator="eq" value="SDY61"/>
        </filters>
</customView>
rsautera2013-11-22 10:04Jon (LabKey DevOps)2018-11-16 23:24Filter $labkey.data using a query viewFilter $labkey.data using a query view TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Cory, it works, I can see the filtered table.
However, I was hoping that the report would be based on this filtered query.

The report only contains

```{r test}
labkey.data
```
And when executed, it displays the entire table, not just one line.

How can I have $labkey.data be based on study_pubinfo?
cnathe2013-11-22 10:40Jon (LabKey DevOps)2018-11-16 23:24Filter $labkey.data using a query viewFilter $labkey.data using a query view TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, I was focused on how to get the query view in your module working. To have an R report in the module associated with a subset of a table/query, my suggestion would be to add a SQL query to your module and attach the report to that (instead of using a query view).

I have attached a zip archive with the contents of a test module that I created locally that has a study_pubinfo SQL query and R report. When added to the server and the module is enabled, I get the R report to display in the views menu for the study_pubinfo query (note: not the study_pubmed table). Also note that my query and report are attached to the "immport" schema, but the server you are working with likely still refers to this schema as "hipcdb".

Does that fit with your use case?
-Cory
Jon (LabKey DevOps)2018-02-13 13:43Jon (LabKey DevOps)2018-11-16 23:24Filtering View/Report via URLFiltering View/Report via URL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

If you created a query that pulls in data from other tables, then it's probably going to be "query.sort=ParticipantId".

A quick way for you to tell is to bring up the grid view of what you created and look at the URL string in the address bar.

For example:

If it says "query-executeQuery.view", then it's a query and you would need to use "query.sort=ParticipantId".

If it says "study-dataset.view", then you would use "Dataset.sort=ParticipantId"

Regards,

Jon
Matthew Bellew2010-06-15 16:10Jon (LabKey DevOps)2018-11-16 23:24filtering date ranges in a labkey gridfiltering date ranges in a labkey grid TEXT_WITH_LINKSClosed     LabKey Support Forum
No you're not missing anything, this is slightly tricky. Given a table with startDate/endDate, and a startPeriod/endPeriod, I believe the correct query is

  startDate<=endPeriod AND endDate>=startPeriod

It's hard for a user to figure that out on the fly though and enter the correct thing in the UI. If we had metadata to mark two columns as a start/end pair, it wouldn't be too hard to add this "overlaps" case to the filter UI.

We do have places in the product (most notably MS2) where there is a small filter panel above the grid to handle tricky filtering that is important for a particular scenario.
Matthew Bellew2010-06-15 16:12Jon (LabKey DevOps)2018-11-16 23:24filtering date ranges in a labkey gridfiltering date ranges in a labkey grid TEXT_WITH_LINKSClosed     LabKey Support Forum
But wait, there would presumably also need to be some hack for handling where endDate was not yet filled in

 startDate<=endPeriod AND (endDate>=startPeriod OR endDate IS NULL)
Ben Bimber2010-06-15 16:19Jon (LabKey DevOps)2018-11-16 23:23filtering date ranges in a labkey gridfiltering date ranges in a labkey grid TEXT_WITH_LINKSClosed     LabKey Support Forum
yep, you got both.

i have thought that this sort of supplemental filter panel above a grid would be useful. perhaps future extensions of the QWP could consider something like that.

likewise for NULL dates: i dont know whether this is a good idea overall of not (depends on what other clients want); however, it would be quite useful to the EHR if labkey grids did some behind the scenes translation on any filter of a date field like you describe: if you filter on >=, then it actually searches on >= OR NULL. basically you decide whether NULL dates sort high or low.

i would have though date ranges came up more commonly in a host of database applications, but they can be quite a pain to query properly.
Will Holtz2018-06-20 11:03Will Holtz2018-06-20 11:03Filtering Datasets by rowFiltering Datasets by row TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

You could create a query over your dataset to add a calculated column that contains a boolean based on if the row if blank. Then the user can use the regular grid filtering on the calculated column to get the view you desire.

SELECT
   col1,
   col2,
   col3,
   col1 is NULL and col2 is NULL and col3 is NULL as blankRow
FROM myTable;

You would need to configure some metadata on that query if you want the user to be able to edit the underlying table from via grids displaying the query results.

-Will
Jon (LabKey DevOps)2018-06-15 16:19Jon (LabKey DevOps)2018-06-15 16:19Filtering Datasets by rowFiltering Datasets by row TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Unfortunately there isn't a global way to do this via the regular grid UI.

You might be able to use the QueryWebPart in the Javascript API to apply filters to multiple fields, but that would take some programming effort on your end to accomplish this.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html

Regards,

Jon
Jon (LabKey DevOps)2018-11-30 14:28Jon (LabKey DevOps)2018-11-30 14:28Filter By Group in SQL Query ViewsFilter By Group in SQL Query Views TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

The filter option is not apart of the standard button bar and is something that is unique to datasets via the study module.

However, you could construct your own buttons and use your own code while leveraging our Javascript APIs to build something yourself that could provide similar functionality as the dataset filtering you're looking to have on non-dataset tables:

https://www.labkey.org/Documentation/wiki-page.view?name=customButtonBars
http://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html#constructor

Regards,

Jon
Karl Lum2011-05-06 09:01Jon (LabKey DevOps)2018-11-16 23:24File webpart issuesFile webpart issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

It's possible that your browser is caching that file, have you tried clearing your browser cache and then reloading that page?
jdutra2011-05-06 09:11Jon (LabKey DevOps)2018-11-16 23:24File webpart issuesFile webpart issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Duh. That was it. Thanks for the help.

- Jen
Matthew Bellew2011-05-06 10:32Jon (LabKey DevOps)2018-11-16 23:24File webpart issuesFile webpart issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Don't feel bad about that. Some browsers seems to cache javascript files more aggressively than other files, and won't ping the server with "If-modified" requests when you expect them to.
Matthew Bellew2012-03-06 09:23Jon (LabKey DevOps)2018-11-16 23:24File upload using Java API (FormViewAction)File upload using Java API (FormViewAction) TEXT_WITH_LINKSClosed     LabKey Support Forum
In your action, you can use code like this:


        Map<String, MultipartFile>files = null;
        if (getViewContext().getRequest() instanceof MultipartHttpServletRequest)
            files = (Map<String, MultipartFile>)((MultipartHttpServletRequest)getViewContext().getRequest()).getFileMap();

And you have your files in hand!
Matthew Bellew2012-03-06 09:31Jon (LabKey DevOps)2018-11-16 23:24File upload using Java API (FormViewAction)File upload using Java API (FormViewAction) TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, if you extend BaseViewAction, you can simply call

    Map<String, MultipartFile> files = getFileMap()

which does the same thing.

Matt
mpeterson@mitre.org2012-03-06 11:49Jon (LabKey DevOps)2018-11-16 23:24File upload using Java API (FormViewAction)File upload using Java API (FormViewAction) TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you, that worked perfectly.

Matt
jeckels2014-11-26 13:12Jon (LabKey DevOps)2018-11-16 23:23file upload through wiki pagefile upload through wiki page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

File upload is a tricky thing to coordinate with AJAX-style requests to the server. LABKEY.Query.insertRows() can't upload a file. It does allow you to point to files which have already been uploaded, which is the "File" type. The "Attachment" type, which is what lists use, stores the file as a BLOB in the database, and can't simply point to it on the file system.

I think the easiest approach here would be to go to the default insert view for your list and look at the <form> that it generates. You could target the same URL in your <form>, and create <input> elements that match as well.

Thanks,
Josh
Anthony Corbett2013-03-20 13:22Jon (LabKey DevOps)2018-11-16 23:23File upload from file-based module AssayFile upload from file-based module Assay TEXT_WITH_LINKSClosed     LabKey Support Forum

I've looked into this a bit further:

In SpringActionController.handleRequest() it is correctly detecting the multipart and resolving the request to Spring's DefaultMultipartHttpServletRequest. However its private multipartFiles Map is empty.

This leads to the iterator not having any fileNames to iterate over in AbstactFileUploadAction.export()


Not sure how to proceed. Any help would be greatly appreciated.
Anthony Corbett2013-03-21 10:52Jon (LabKey DevOps)2018-11-16 23:24File upload from file-based module AssayFile upload from file-based module Assay TEXT_WITH_LINKSClosed     LabKey Support Forum

I have got this working. I ended up comparing two different upload.html implementations using FileUploadField.js in two different file based assays. The differences I saw, (1) the id of the form and div were different and (2) they were calling LABKEY.requiresScript('FileUploadField.js') AFTER their HTML markup, were I was doing it at the top of my page. Either one of those 2 things fixed my issue. I'm thinking changing the id of the elements had no impact (as long I was referencing them correctly in my BasicForm and FileUploadField code).

Would it be possible to change the action's response to not be successful if no files were actually created on the server? In my case it was posting a multipart/form-data but there were no files sent and the filesNames iterator had nothing to do.


Regards,

Anthony
kevink2013-03-22 10:14Jon (LabKey DevOps)2018-11-16 23:23File upload from file-based module AssayFile upload from file-based module Assay TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the information Anthony.

I've filed a bug to return an error if the file upload was not successful:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=17462
Jon (LabKey DevOps)2018-03-23 16:23Jon (LabKey DevOps)2018-11-16 23:23File Transfers Between ProjectsFile Transfers Between Projects TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sara,

I'd like to make sure that I'm understanding your question correctly.

So are you asking if you could take the files in the file repository (https://www.labkey.org/Documentation/wiki-page.view?name=fileTutorial1) for ProjectA and move only certain files of your choosing to ProjectB's file repository?

If that is your question, you wouldn't be able to do this within the UI since each container (projects and folders) are individual silos that have no ability within the UI to pass data from one container to another when it comes to the file repository.

That said, because the file repository uses WebDAV as the protocol, you could use a WebDAV client to do the transferring instead.

For example, I can use CyberDuck on my Mac (https://cyberduck.io/) to access the specific WebDAV directory of a LabKey instance by getting the WebDAV URL and my username/password to get access to the directory and then transfer to another directory within the LabKey file repository structure.

Regards,

Jon
Jon (LabKey DevOps)2018-06-25 16:05Jon (LabKey DevOps)2018-06-25 16:05File Transfers Between ProjectsFile Transfers Between Projects TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sara,

Just an FYI, this issue has been resolved in the upcoming 18.2 Release of LabKey according to https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=33785

So this means that you should be able to access your webdav directory (like https://mylabkeyserver.com/_webdav), navigate to the specific folder and files, then move them to another location and all within the same UI without any 3rd party tools.

Regards,

Jon
brittp2007-06-04 15:47Jon (LabKey DevOps)2018-11-16 23:24File System Server configuration in 2.1File System Server configuration in 2.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Here are the docs on setting up the pipeline FTP server:
https://www.labkey.org/Wiki/home/Documentation/page.view?name=configureFtp

Please let me know if you've already looked at them. It's possible that the docs are out of date, since the apacheftp project is in the incubator stage and may have been updated since our 2.0 release.

Thanks,
Britt
wongch@bii.a-star.edu.sg2007-06-04 18:38Jon (LabKey DevOps)2018-11-16 23:23File System Server configuration in 2.1File System Server configuration in 2.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Which step did you encounter problem? Which version of the ftp server did you download from the incubator site? Have you check that your ftp server can run with the configuration "res/conf/ftpd.properties" without problem? If this passed, then your issue is more on the UserManager setup.

We have set up the FTP server locally, but via rebuilding the ftp server from source. We try the release of "1.0-M1-incubator" but some of the classes' method signatures have changed. Only the trunk works. In addition, we have to download a number of other jars file for it executes. We are unsure if this is the exact build that is intented. But the useful of this feature is worth all these, esp. that the project access control is observed.


Britt, on the docs page, it says "The Apache Java FTP server is available in a .zip file on the download page. Simply unzip the FTP server to an appropriate directory. We recommend installing it alongside the Tomcat server used for the LabKey server." However, the download page only contain labkey ftp components, not the FTP server. It will save user a lot of inconvenience if
1) the FTP server is available for download or
2) a link to the exact download on the incubator page (http://incubator.apache.org/ftpserver/ contains a download link which we have failed to perform a successful setup too) or
3) the exact FTP server release name/version is available.

Cheers,
Chee-Hong.
jrue@novonordisk.com2007-06-05 16:27Jon (LabKey DevOps)2018-11-16 23:23File System Server configuration in 2.1File System Server configuration in 2.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
So if I use the setting for the labkey.xml file from the documentation:
        <serverAddress>localhost</serverAddress>
        <port>8021</port>

       <labkey-url>http://localhost:8084/labkey/Pipeline</labkey-url>

What are the settings I need to put in the "Customize Site" page for:
    Server Name: (should this be "localhost")
    Port: (I assume this is 8021)

I have a fresh instance of the LabKey server running on my dev box and downloaded the binaries today of the FTP server. I can start the FTP server with the default configuration file but when I try to start it with the labkey.xml file it gives me the following error:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apac
e/ftpserver/ftplet/AuthenticationFailedException
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at org.apache.ftpserver.FtpConfigImpl.createComponent(FtpConfigImpl.jav
:114)
        at org.apache.ftpserver.FtpConfigImpl.<init>(FtpConfigImpl.java:81)
        .....
wongch@bii.a-star.edu.sg2007-06-06 08:37Jon (LabKey DevOps)2018-11-16 23:24File System Server configuration in 2.1File System Server configuration in 2.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Your site setting is correct. Your labkey.xml "labkey-url" settings implies that your labkey server is running in port 8084. Just need to make sure that this is such.

From the provided stack, it means that the class file AuthenticationFailedException.class cannot be found. It should be found in your ftplet-api-<release version>.jar under the namespace org\apache\ftpserver\ftplet

I encountered this problem and could not resolve it until I use the trunk copy of the FTP server source. (There has been changes to some of the framework used in the FTP server.) You can do so following the links under section "Developing FtpServer" (http://incubator.apache.org/ftpserver/documentation.html)

I have attached a zip file of the ftp server that we are using locally. You can give this a try after making the appropriate PATH and configuration changes. We start the console based version (via ftpd.bat). Please note that this is not an official release and it might not be the way of intended setup.

*Chee-Hong.
jrue@novonordisk.com2007-06-07 11:24Jon (LabKey DevOps)2018-11-16 23:23File System Server configuration in 2.1File System Server configuration in 2.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Chee-Hong.

That did the trick. It is now working.
Jon (LabKey DevOps)2016-05-16 18:29Jon (LabKey DevOps)2018-11-16 23:24Files Web Part HeightFiles Web Part Height TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Have you considered to size the div information via CSS?

For example:

<h2>Embedded Files Web Part</h2>

<div id='fileDiv'></div>
<style>
#fileDiv {
    height:1000px;
}
</style>

<script type="text/javascript">
LABKEY.requiresScript("fileBrowser.js");
LABKEY.requiresScript("FileContent.js");
LABKEY.requiresScript("FileUploadField.js");
LABKEY.requiresScript("PipelineAction.js"); //required if in production mode

Ext.onReady(function() {

    var wikiWebPartRenderer = new LABKEY.WebPart({
      partName: 'Files',
      renderTo: 'fileDiv'
    });

wikiWebPartRenderer.render();
});
</script>
bront@kcr.uky.edu2016-05-17 05:30Jon (LabKey DevOps)2018-11-16 23:24Files Web Part HeightFiles Web Part Height TEXT_WITH_LINKSClosed     LabKey Support Forum
hi,

I did give that a shot yesterday before I wrote to the forum. The additional CSS rule changes the size of the surrounding wiki frame, but the files component remains the same height.

This seems possible because the file component stretches out to the full view on the Files tab. I have tried to explore how that is instantiated, but no luck as of yet.

Thanks for your help.

bront
Jon (LabKey DevOps)2016-05-17 12:29Jon (LabKey DevOps)2018-11-16 23:24Files Web Part HeightFiles Web Part Height TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

So were you trying to hardcode the webpart so it only renders to a specific size rather than letting it stay dynamic?

Regards,

Jon
bront@kcr.uky.edu2016-05-23 10:59Jon (LabKey DevOps)2018-11-16 23:24Files Web Part HeightFiles Web Part Height TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Either way would work. The user just requested that the Files web part display more files.

thanks,

bront
Jon (LabKey DevOps)2016-05-24 15:27Jon (LabKey DevOps)2016-05-24 15:27Files Web Part HeightFiles Web Part Height TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Thanks for confirming. So there are two ways to handle this. You can either:

A. Go into the UI and select the little triangle next to the title "Files" on that Files Web Part, select Customize, then change the webpart size from Small to either Medium or Large.

OR

B. Edit the filesWebPart.jsp file (located under the API folder (api/src/org/labkey/api/files/view/filesWebPart.jsp) and change the default value of 350 for the bean.getHeight() to a larger value:

    ActionURL projConfig = urlProvider(AdminUrls.class).getProjectSettingsFileURL(c);
    int height = null == bean.getHeight() ? 350 : bean.getHeight();

I'd probably go with the first option to see if the built-in settings work well enough for you.

Regards,

Jon
jeckels2010-08-25 09:47Jon (LabKey DevOps)2018-11-16 23:24files webpart bugfiles webpart bug TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, I suspect you're right about what might be going wrong.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10756

Thanks,
Josh
kevink2015-03-02 11:22Jon (LabKey DevOps)2018-11-16 23:23Files webpart and file offset?Files webpart and file offset? TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, I think you've hit this issue with the 'path' parameter:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=20557
Ben Bimber2015-03-02 11:24Jon (LabKey DevOps)2018-11-16 23:24Files webpart and file offset?Files webpart and file offset? TEXT_WITH_LINKSClosed     LabKey Support Forum
is there something complicated about supporting this in the new browser that is behind why that's been punted twice? it didnt look that hard to support it...
Nick Kerr2015-03-11 13:13Jon (LabKey DevOps)2018-11-16 23:24Files webpart and file offset?Files webpart and file offset? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2016-04-15 12:07Jon (LabKey DevOps)2016-04-15 12:07File Set directories not showing in Files web partFile Set directories not showing in Files web part TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

This is actually the expected behavior as addressed in our docs here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=setRoots#named

File Sets will only show a single directory and not including any subdirectories.

Regards,

Jon
Jon (LabKey DevOps)2018-07-27 11:12Jon (LabKey DevOps)2018-11-16 23:24File Repository Module write location, etc.File Repository Module write location, etc. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Georgia,

The File Repository have have its File Root set on the Site-level, the Project-level, the Folder-level, and many other places for flexibility. The drive would just need to be made accessible to the user that the Tomcat process runs as.

For more details on this, please see the following documentation for more information:

https://www.labkey.org/Documentation/wiki-page.view?name=setRoots

Additionally, file metadata is something that is recorded as well and can be accessed via a Query API. (https://www.labkey.org/Documentation/wiki-page.view?name=fileMetadata)

Regards,

Jon
Jon (LabKey DevOps)2018-12-05 20:12Jon (LabKey DevOps)2018-12-05 20:12File RepositoryFile Repository TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

I'm assuming you're speaking about the line from https://www.labkey.org/Documentation/wiki-page.view?name=fileTutorial

The full line says:

"A launching point for structured data files (like Excel files or instrument-generated files with a specific format), that can be imported into the LabKey Server database for more advanced analysis. For example, you can select files in the repository, and import them into assay designs or process the files through a script pipeline."

So you can do things like import files into an assay (https://www.labkey.org/Documentation/wiki-page.view?name=fileImport) and set it up as a pipeline job (https://www.labkey.org/Documentation/wiki-page.view?name=rPipeline#browser).

Dataset creation on the fly can be done, but by using the FileWatcher which is available as a Premium Feature.

https://www.labkey.org/Documentation/wiki-page.view?name=fileWatcher

Regards,

Jon
Ben Bimber2012-06-05 19:11Jon (LabKey DevOps)2018-11-16 23:23FIle editing ...FIle editing ... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Xenia,

I dont think there's a great solution; however, there may be a few things to consider:

1) If their document is relatively simple text, you might be able to get them to use a wiki, which can be edited inline. i think this is the most reliable solution if it could be made acceptable. if the file they are editing is a spreadsheet, converting it to a list is an option (although excel is going to be far easier to edit than a list).

2) labkey support webdav. therefore you might be able to use a webdav client (google webdav client for a number of options), and then mount the folder containing these files on your user's machine. the user could interact with these files just like any other local file. some OSs might have native webdav support. in practice i think this solution will be a little tricky to get to work reliably if your user if not tech savvy, but may be worth investigating.
sadcat@u.washington.edu2012-06-05 19:14Jon (LabKey DevOps)2018-11-16 23:24FIle editing ...FIle editing ... TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben, I'll relay this to the users ...

X
Greg Taylor2014-04-28 10:06Jon (LabKey DevOps)2018-11-16 23:23file content -- uploading and overwriting filesfile content -- uploading and overwriting files TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,
Unfortunately, I couldn't find an option that would warn users on file overwrite. I suspect that the feature is no longer supported.
Greg
Greg Taylor2014-04-28 10:22Jon (LabKey DevOps)2018-11-16 23:23file content -- uploading and overwriting filesfile content -- uploading and overwriting files TEXT_WITH_LINKSClosed     LabKey Support Forum
After more investigation, there is no option to enable this behavior but it should be enabled by default. On LabKey.org for example when I attempt to upload the same file twice I am prompted if the file should be replaced. Are you using the new file upload webpart that supports dragging and dropping your files into the browser?

Greg
bront@kcr.uky.edu2014-04-28 13:43Jon (LabKey DevOps)2018-11-16 23:24file content -- uploading and overwriting filesfile content -- uploading and overwriting files TEXT_WITH_LINKSClosed     LabKey Support Forum
I thought that that was the default behavior in regard to replacing files.

We are not using the drag-and-drop functionality... just straight pick a file from your local and upload (via the FileContent tab).

When you upload on Labkey.org, can you see the log file? Does the POST indicate "overwrite=T"?

I really appreciate your help.

bront
jeckels2014-04-29 09:53Jon (LabKey DevOps)2018-11-16 23:24file content -- uploading and overwriting filesfile content -- uploading and overwriting files TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

I just tested this on my local dev machine. I used Firebug to inspect the requests the browser is sending to the server.

Here's the sequence, using the single-file upload (click Browse, choose the file, click Upload):

Upload a new file to the server.
It does a POST to https://localhost/labkey/_webdav/home/%40files
Upload the same file to the server again.
Without sending any new requests, the browser pops up a dialog asking to confirm the overwrite.
It then does a POST to https://localhost/labkey/_webdav/home/%40files?overwrite=t

Thanks,
Josh
Maya Li2012-01-05 11:04Maya Li2012-01-05 11:04filebrowser.js errorfilebrowser.js error TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben! :)
Ben Bimber2012-01-04 17:33Jon (LabKey DevOps)2018-11-16 23:24filebrowser.js errorfilebrowser.js error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Maya,

Thanks for pointing that out. The webpart doesnt seem to load some required JS files, at least when used in a wiki. I made some changes so the example works, but it probably shouldnt require that the user load those files.

In case anyone else looks at it, I added FileUploadField.js and PipelineAction.js and wrapped it in Ext.onReady().
daves2010-05-04 09:59Jon (LabKey DevOps)2018-11-16 23:23file-based query view: change name of field??file-based query view: change name of field?? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes this is possible, though I don't think it's documented very well (it's in queryCustomView.xsd). Each column may have a set of properties associated with it, but the only one that is used currently is called "columnTitle". The XML would look like this:

<column name="Id/age/AgeInYears">
   <properties>
      <property name="columnTitle" value="Age"/>
   </properties>
</column>
trent2014-03-19 00:38trent2014-03-19 00:38File based module: Unrecognized cache key formatFile based module: Unrecognized cache key format TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh. This resolved the issue.
jeckels2014-03-18 09:52Jon (LabKey DevOps)2018-11-16 23:24File based module: Unrecognized cache key formatFile based module: Unrecognized cache key format TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

It looks like the issue is that your module has a space in its name. While that's a reasonable thing to support, it's not something that we've ever explicitly tested with in the past. At least for 14.1, is it possible to rename the module?

Thanks,
Josh
jeckels2014-03-19 09:30jeckels2014-03-19 09:30File based module: Unrecognized cache key formatFile based module: Unrecognized cache key format TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

Thanks for the confirmation. I just added a check for 14.2 that will verify module names at startup time and give a clear error message.

Thanks,
Josh
marki2010-07-02 11:28Jon (LabKey DevOps)2018-11-16 23:24File based definition of lists required by an assay?File based definition of lists required by an assay? TEXT_WITH_LINKSClosed     LabKey Support Forum
There isn't a better mechanism right now, other than creating a table in SQL and populating it with INSERT statements, which can be done as part of module upgrade.

We have definitely had the ability for modules to create & populate lists on our radar for a while.

It's one of those items that everybody wants, but nobody wants badly enough to make it a top priority. I'll try to include it in our 10.3 planning cycle.
Ben Bimber2010-07-02 11:32Jon (LabKey DevOps)2018-11-16 23:24File based definition of lists required by an assay?File based definition of lists required by an assay? TEXT_WITH_LINKSClosed     LabKey Support Forum
you're referring to a hard table, right? that's something I've considered as well. having a postgres schema called 'lookups' with nothing but simple tables might not be a bad idea for us.

with respect to priorities, unfortunately that's what i'd have to say about it too. it will be a good feature to tackle at some point though.
Ben Bimber2010-07-15 07:17Jon (LabKey DevOps)2018-11-16 23:23File based definition of lists required by an assay?File based definition of lists required by an assay? TEXT_WITH_LINKSClosed     LabKey Support Forum
mark -

i the idea of creating a separate schema of hard tables makes sense for a few cases. are there examples of any labkey modules that do this? i believe i have read that you can include SQL scripts with a module that run when that module is installed or upgraded. taking advantage of this mechanism seems like a good idea. any sort of examples would be very helpful.

however, that probably will not do anything to actually point labkey to this external schema, right? that will always need to be manually performed?
jeckels2010-07-15 13:48Jon (LabKey DevOps)2018-11-16 23:23File based definition of lists required by an assay?File based definition of lists required by an assay? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You can look at the simpletest module as an example of this.

<LABKEY_ROOT>/server/test/modules/simpletest

<LABKEY_ROOT>/server/test/modules/simpletest/schemas/dbscripts

I believe it will automatically be exposed in all folders in which its module is enabled in Folder Settings. If you include a Container column in your table the data be automatically partitioned by folder, otherwise all folders will see the same data.

Thanks,
Josh
kevink2010-07-15 13:51Jon (LabKey DevOps)2018-11-16 23:24File based definition of lists required by an assay?File based definition of lists required by an assay? TEXT_WITH_LINKSClosed     LabKey Support Forum
Be aware that the data in those schemas won't be deleted when the container is deleted even if it has a container column. This is a known limitation.
kevink2013-02-07 13:02Jon (LabKey DevOps)2018-11-16 23:24File based Assay and hard tables for domainsFile based Assay and hard tables for domains TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

The file-based assay, the general assay, and Elisa types all create a hard tables for the result domain and store result data there. The batch and run domains aren't created as hard tables yet and store their data in the property store. The java Elispot assay doesn't create a hard table for it's result data yet and uses the property store instead.

It is possible to add sql scripts to a file based module and create hard tables, however these tables won't be used by the assay framework to store assay data. You could create these hard tables if you need to store lookup data that you manage outside of the assay framework.

Adding hard tables to a file based module is pretty easy and there are lots of examples in our svn tree on how to do it. You'll need to add sql scripts for postgres and sqlserver and then create a xml file describing the tables. Please see the se docs for more:

https://www.labkey.org/wiki/home/Documentation/page.view?name=sqlScripts
https://www.labkey.org/wiki/home/Documentation/page.view?name=schemaUpdates
https://www.labkey.org/wiki/home/Documentation/page.view?name=includeDatabaseScripts
adam2010-09-30 09:53Jon (LabKey DevOps)2018-11-16 23:23feature request / bugfeature request / bug TEXT_WITH_LINKSClosed     LabKey Support Forum
You're talking about the "Web theme (color scheme)" drop-down, right? All the properties in this panel are saved / cleared as a single group; you can use the "Reset All Properties" button to clear them, at which point they will all inherit site values.

Adam
Ben Bimber2010-09-30 10:44Jon (LabKey DevOps)2018-11-16 23:24feature request / bugfeature request / bug TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, i got it now. for what it's worth, after i did this it turned off the custom menus (which are actually enabled in the site). i re-enabled them and it seems to be ok.
Maya Li2011-09-16 14:35Jon (LabKey DevOps)2018-11-16 23:23Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
We checked our configuration in the LabKey Tomcat context /data/tomcat/conf/Catalina/localhost/ROOT.xml. All the parameters are correct/unchanged.
adam2011-09-16 15:12Jon (LabKey DevOps)2018-11-16 23:24Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Does your configuration specify the "mail.smtp.ssl.enable" or "mail.smtp.starttls.enable" properties? We did make a minor change in 11.2 to improve support for these modes.

Adam
Maya Li2011-09-16 15:29Jon (LabKey DevOps)2018-11-16 23:23Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
The configuration for "mail.smtp.starttls.enable" is true.
adam2011-09-16 15:51Jon (LabKey DevOps)2018-11-16 23:24Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
So you're enabling TLS but not specifying a password? I wasn't aware that was a valid combination, but apparently it is. If you can't work around the problem (e.g., by removing the TLS setting or adding a password) then this will require a hotfix to 11.2. Sorry for the inconvenience.
Maya Li2011-09-16 16:19Jon (LabKey DevOps)2018-11-16 23:24Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
We did set a password. :) We are not sure exactly what the cause of the problem is. Are we the only people that run into this after the upgrade.

Thanks, Adam!
adam2011-09-16 17:10Jon (LabKey DevOps)2018-11-16 23:23Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
No one else has reported problems, but there are a lot of ways to configure SMTP and the JavaMail documentation is not at all clear on best practices to support every configuration.

Would you mind emailing me your "mail/Session" Resource from ROOT.xml? Just xxxx out any passwords first.

Thanks,
Adam
Brian Connolly2011-09-20 14:45Brian Connolly2011-09-20 14:45Fail to send emails from LabKey after upgrade to 11.2Fail to send emails from LabKey after upgrade to 11.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
For documentation sake, I wanted to post what fixed the problem. Following @trent's recommendation and the documentation, we changed the Resource to be

<Resource name="mail/Session" auth="Container"
       type="javax.mail.Session"
       mail.debug="false"
       mail.smtp.host="smtp.washington.edu"
       mail.smtp.user="xxxxx"
       mail.smtp.password="xxxxx"
       mail.smtp.port="465"
       mail.smtp.auth="true"
       mail.smtp.starttls.enable="true"
       mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
       description="email resource"/>

After a restart of the LabKey Server, email was working.
Jon (LabKey DevOps)2016-03-25 11:30Jon (LabKey DevOps)2018-11-16 23:24Failing to hide column when PIVOT is usedFailing to hide column when PIVOT is used TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I'm suspecting this might be broken. Even with the PIVOT, the other XML controls work without issue, like the columnTitle.

I'll setup a bug to get this investigated further.

Regards,

Jon
Jon (LabKey DevOps)2016-03-25 11:40Jon (LabKey DevOps)2018-11-16 23:24Failing to hide column when PIVOT is usedFailing to hide column when PIVOT is used TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I've created bug https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=26041 to track this issue.

Regards,

Jon
Will Holtz2016-03-25 11:44Jon (LabKey DevOps)2018-11-16 23:24Failing to hide column when PIVOT is usedFailing to hide column when PIVOT is used TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon!

-Will
Jon (LabKey DevOps)2016-10-05 23:05Jon (LabKey DevOps)2016-10-05 23:05Failing to hide column when PIVOT is usedFailing to hide column when PIVOT is used TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

This has been fixed in 16.3 r46715

Regards,

Jon
jeckels2011-01-19 17:20Jon (LabKey DevOps)2018-11-16 23:23failed pipeline jobsfailed pipeline jobs TEXT_WITH_LINKSClosed     LabKey Support Forum
1. Yes.
2. You can mark them as Complete or just Delete them.
3. Yes, there will still be entries in some of the database tables. That shouldn't cause any problems. If a user tries to grab a data file that was referenced in one of the runs, it will be reported as not available on disk. If users want to clean up the list, they can just delete the runs through the standard UI. Note that this is completely separate from deleting the files on disk.

Thanks,
Josh
Leo Dashevskiy2012-05-14 10:56Leo Dashevskiy2012-05-14 10:56Ext: tying the disabling of a button to the LABKEY.WebPart.render()Ext: tying the disabling of a button to the LABKEY.WebPart.render() TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben!

That's exactly what I was looking for: seems to work like a charm!
Ben Bimber2012-05-12 08:25Jon (LabKey DevOps)2018-11-16 23:24Ext: tying the disabling of a button to the LABKEY.WebPart.render()Ext: tying the disabling of a button to the LABKEY.WebPart.render() TEXT_WITH_LINKSClosed     LabKey Support Forum
hi leo,

I have not tested these, but I believe a combination of these will help:

your button handler will be passed a reference to the button, so you can do something roughly like:

        new Ext4.Button({
            handler: function(btn) {
                mask.show();

                btn.setDisabled(true);

                // set graphWebPart config params to pass to the R script here
                graphWebPart.render();
            },
            renderTo: 'buttonGraph',
            text: 'Graph'
        });

then you can re-enable it whenever you need. the webpart probably supports a success callback:

        var graphWebPart = new LABKEY.WebPart({
            frame: 'none',
            partConfig: graphWebPartConfig,
            partName: 'Report',
            renderTo: 'Graph',
            scope: this,
            success: function(){ alert('loaded!');}
        });

and you could enable/disable your button from there, i think.
jeckels2014-06-09 13:15Jon (LabKey DevOps)2018-11-16 23:23Extra column returned by ExecuteSqlCommandExtra column returned by ExecuteSqlCommand TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy,

This is intentional behavior. As you guessed, it is indeed the URL that is the link for the corresponding "real" column in the results.

You might consider setting the requiredVersion config property to 9.1 or 13.2. This returns a JavaScript object with a separate field for the URL (and other metadata), instead of a simple value for each column. This is the preferred response format, but for backwards compatibility we've had to keep the default response format consistent with its original shape.

Thanks,
Josh
jeckels2014-02-19 15:11Jon (LabKey DevOps)2018-11-16 23:23Ext.MessageBox in SelectRows Callback?Ext.MessageBox in SelectRows Callback? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

I'd expect it to work just fine. Are there any errors in the JavaScript console?

Thanks,
Josh
bill c white2014-02-19 15:31Jon (LabKey DevOps)2018-11-16 23:23Ext.MessageBox in SelectRows Callback?Ext.MessageBox in SelectRows Callback? TEXT_WITH_LINKSClosed     LabKey Support Forum
No errors in the console.
Nick Kerr2014-02-19 17:57Jon (LabKey DevOps)2018-11-16 23:23Ext.MessageBox in SelectRows Callback?Ext.MessageBox in SelectRows Callback? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

Are you able to set a break-point in your success callback? If so, try to evaluate if "Ext" is available or if you can make any calls from there.

Thanks,
Nick
bill c white2014-02-19 18:11Jon (LabKey DevOps)2018-11-16 23:24Ext.MessageBox in SelectRows Callback?Ext.MessageBox in SelectRows Callback? TEXT_WITH_LINKSClosed     LabKey Support Forum
I load several Ext sliders and a grid panel in the same function successfully.
jeckels2012-08-30 13:56Jon (LabKey DevOps)2018-11-16 23:23Ext JS target for LabKey 12.3Ext JS target for LabKey 12.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

We're currently using 4.1.0 for 12.3. I'd expect that later in the release we'd refresh our Ext 4.x release to the latest, especially if it's just a minor release with bug fixes. We may hold off a bit before doing the work to integrate the new version, in case there's another minor release.

Thanks,
Josh
slangley@scharp.org2012-08-30 14:08Jon (LabKey DevOps)2018-11-16 23:24Ext JS target for LabKey 12.3Ext JS target for LabKey 12.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
slangley@scharp.org2012-11-06 13:50Jon (LabKey DevOps)2018-11-16 23:24Ext JS target for LabKey 12.3Ext JS target for LabKey 12.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
So, maybe Ext JS 4.1.1a or not?

http://www.sencha.com/products/extjs/download/ext-js-4.1.1/1683

That appears to be the current Open Source / GPL version.

Scott
Nick Kerr2012-11-06 13:54Jon (LabKey DevOps)2018-11-16 23:24Ext JS target for LabKey 12.3Ext JS target for LabKey 12.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

I believe we will be sticking with 4.1.0 for 12.3. We'll move to the latest open version in 13.1.

Thanks,
Nick
slangley@scharp.org2013-03-14 13:44Jon (LabKey DevOps)2018-11-16 23:24Ext JS target for LabKey 12.3Ext JS target for LabKey 12.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Nick,

I see that Ext JS 4.2.0 has been released. Do you think you'll upgrade to that for LabKey 13.2?

Why do I ask? Well, I've found a few nits with Ext JS 4.1.0 that I hope will be fixed at some point.

Thanks.

Scott
Nick Kerr2013-03-14 14:42Jon (LabKey DevOps)2018-11-16 23:24Ext JS target for LabKey 12.3Ext JS target for LabKey 12.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Yes, we are hoping to have ExtJS 4.2 running in 13.2.

Here is a link for the most recent post from Sencha concerning 4.2:

http://www.sencha.com/blog/first-look-at-ext-js-4-2-grid/

Thanks,
Nick
trent2013-08-06 04:42Jon (LabKey DevOps)2018-11-16 23:23ExtJS and Updating old datesExtJS and Updating old dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, looks like the following will work:

Ext4.Date.format(Ext4.Date.parse(dateField.rawValue, 'd/m/Y'), 'Y-m-d')
Nick Kerr2013-08-06 10:01Jon (LabKey DevOps)2018-11-16 23:24ExtJS and Updating old datesExtJS and Updating old dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

When using Ext4.Date.parse it acts as a matching function which will return a Date object if the input value matches the date format supplied. This might have been why it did not work with "dd/mm/yyyy" since the input might not have been in this format.

If you are looking to get a Date object I'd recommend handing the input value to a new Date object (e.g. new Date(inputValue); ). ExtJS provides a lot of utility functions for dealing with Date objects (see all the methods on Ext.Date) and using Ext.Date.format can give you the output string you are looking to display.

Thanks,
Nick
trent2013-08-06 15:14Jon (LabKey DevOps)2018-11-16 23:24ExtJS and Updating old datesExtJS and Updating old dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Nick,

Thanks - yeah I also tried that. It still goes to a day before. the getValue function returns a date, and when i was logging it to the console, it's printing the correct date.

As an additional check (away from ext):

LABKEY.Query.updateRows({
    schemaName: 'lists',
    queryName: 'aa',
        rows: [{
            'dd': new Date(1971,1,1),
            'Key': 6
        }],
    success: function () { alert('saved'); }
    });

list named, aa
date field named, dd

This should be saved as 1st Feb 1971, but is saved as 31st Jan 1971.

If I set a date between 1st January and 4th of April (inclusive), to years 1987 or before, it seems to save as the date before. All other cases save the correct date. Odd, right?

Cheers,
Trent
Nick Kerr2013-08-07 11:24Jon (LabKey DevOps)2018-11-16 23:23ExtJS and Updating old datesExtJS and Updating old dates TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

Thanks for posting the code snippet. After investigating a bit, I've found the reason why your dates are getting transformed. In the encoding of Ajax requests (LABKEY.Query.updateRows ends up calling Ext.Ajax.request) the JSON.stringify method is called on the Date object. When JSON.stringify(Date) is used it calls Date.prototype.toISOString which returns the string of the UTC date. Here is an example of the differences in using JSON.stringify:

d = new Date(1971,1,1);
js = JSON.stringify;

console.log("date:", js(d));
console.log("toString:", js(d.toString()));
console.log("toISOString:", js(d.toISOString()));

// Results
// date: "1971-02-01T08:00:00.000Z"
// toString: "Mon Feb 01 1971 00:00:00 GMT-0800 (Pacific Standard Time)"
// toISOString: "1971-02-01T08:00:00.000Z"

As a result the UTC string version of the date you supply is being posted to the server. I think the ideal way dates are stored on a server is UTC so that all dates are timezone independent, but in most cases the local time ends up being stored. If you want to post the local time to the server I'd recommend calling toString() on the Date or converting it using the Date.format functions made available in Ext.

Thanks,
Nick
Karl Lum2011-10-27 15:28Jon (LabKey DevOps)2018-11-16 23:24Ext JS 4.0Ext JS 4.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

I'm not 100% positive but unless we find significant problems with 4.0.7, we will most likely be upgrading to this latest version. I'm estimating that we will make the decision in the next week or so.
slangley@scharp.org2011-10-27 15:38Jon (LabKey DevOps)2018-11-16 23:24Ext JS 4.0Ext JS 4.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Karl.

Another question:

Will all of the Ext4-ish widgets in internal/webapp/extWidgets/ on trunk be fair game for use by the time 11.3 is released - or are there some that will be considered too experimental? (I see they were added to trunk only in the past week.)

Scott
Karl Lum2011-10-27 15:54Jon (LabKey DevOps)2018-11-16 23:24Ext JS 4.0Ext JS 4.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

I think it may be a little premature to say. Those widgets were checked in as a result of an investigation on how we could migrate our internal APIs to Ext4. I don't think our development staff has had a chance to completely review the results. At the same time one of our developers has recently returned from SenchaCon (the dev conference of the company that created ExtJS), so I'm sure once we get feedback our strategy for how we proceed will change.

Sorry to be so vague, but I'm hoping that by the end of 11.3 we will have a clearer picture of how we move forward with Ext4 in the next release.
jeckels2011-11-28 10:45Jon (LabKey DevOps)2018-11-16 23:24Ext JS 4.0Ext JS 4.0 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

To confirm, we've updated to ExtJS 4.0.7 for the 11.3 release.

Thanks,
Josh
Jon (LabKey DevOps)2015-04-16 12:04Jon (LabKey DevOps)2018-11-16 23:24Ext.form.TextField problemExt.form.TextField problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

What you will want to do is use the LABKEY.ActionURL.getParameter('parameterName') option within your Javascript code.

Source: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ActionURL.html

For example, if my URL had the string &participantId=12345678 and I used:

LABKEY.ActionURL.getParameter('participantId')

The ID number 12345678 would get used within my Javascript code.

You can apply this to your search box by having someone type in a value into the box, clicking "search" which would reload the same wiki page but adding something like &searchValue= in the URL string in the address bar along with your actual value you typed in the box, then having the Javascript page pull the value into your query by using:

LABKEY.ActionURL.getParameter('searchValue')

And that will in-turn load your query with the search value you entered.

Regards,

Jon
feifei bao2015-04-17 14:02Jon (LabKey DevOps)2018-11-16 23:24Ext.form.TextField problemExt.form.TextField problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you so much. This function works!

Feifei
Jon (LabKey DevOps)2017-06-30 16:18Jon (LabKey DevOps)2018-11-16 23:23External Study Database for participant demographics - best way to integrate with sample management and assaysExternal Study Database for participant demographics - best way to integrate with sample management and assays TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Steve,

So in a nutshell, you want to know if you can take the data in your external database and have it look like it's apart of the LabKey study as a demographics dataset. Is that correct?

Regards,

Jon
steve harris2017-07-03 01:28Jon (LabKey DevOps)2018-11-16 23:24External Study Database for participant demographics - best way to integrate with sample management and assaysExternal Study Database for participant demographics - best way to integrate with sample management and assays TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon

Yes!

Steve
Jon (LabKey DevOps)2017-07-04 23:43Jon (LabKey DevOps)2017-07-04 23:43External Study Database for participant demographics - best way to integrate with sample management and assaysExternal Study Database for participant demographics - best way to integrate with sample management and assays TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for confirming Steve.

You have a few options depending on whether the external schema is in the same DB as your LabKey schemas or in a different DB.

- If this external schema is within the same database as your LabKey schemas, you could configure a lookup or something similar after configuring this as an external schema.

- If this external schema is coming from a separate database, you could set it up as an external schema as well, but you would have no ability to do lookups.

https://www.labkey.org/Documentation/wiki-page.view?name=externalSchemas

But regardless of how the information is being presented to LabKey initially, neither of these options would allow it to just appear as a demographics dataset in a study.

In order to have that data appear as a demographics dataset, you would need to create an ETL module that would copy the data from the external schema and place it into the study schema's demographics dataset.

https://www.labkey.org/Documentation/wiki-page.view?name=etlModule

Regards,

Jon
martin2014-11-13 08:38martin2014-11-13 08:38external module refreshingexternal module refreshing TEXT_WITH_LINKSClosed     LabKey Support Forum
thank you, this solution works just fine

best regards

martin
jeckels2014-11-12 19:37Jon (LabKey DevOps)2018-11-16 23:23external module refreshingexternal module refreshing TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

We have been making changes to improve how the server notices new resources, like HTML files. It's possible that newer versions will pick things up automatically while older versions would not.

Where is your module located, relative to the "modules" that contains the standard set of modules? Are you doing any kind of Ant build or other steps to deploy it?

Another difference may be whether you're running your server in development or production mode. Production servers are more aggressive in caching resources for performance. This is controlled with a -Ddevmode=true option during Tomcat startup. For more details, see the "Configure LabKey Development/Debug Configuration" section here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=build

You can check the mode of the server in the Admin Console.

Thanks,
Josh
martin2014-11-13 01:01Jon (LabKey DevOps)2018-11-16 23:23external module refreshingexternal module refreshing TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you very much,

i'm running server in a production mode, however the other one runs in a production mode too.

my module is located in <labkey_home>/exernalModules
and has this structure:

-module name
->resources
-->config (contains module.xml)
-->views (contains begin.html AND [module_name].webpart.xml)
->web (contains jquery libraries)

i deploy modules simply by copying them to externalModules folder and then the server automatically restarts
(if i understood you question correctly)

i updated server to 14.2. but it still doesn't automatically update content of the module.

isn't there an option to configure module refresh rate explicitly?

martin
adam2014-11-13 07:57Jon (LabKey DevOps)2018-11-16 23:23external module refreshingexternal module refreshing TEXT_WITH_LINKSClosed     LabKey Support Forum
No, there is no option like that. We are moving to a model where all module-defined resources (HTML views, custom views, queries, reports, schema meta data XML, etc.) are consistently cached for performance but immediately refreshed when changed in the file system, regardless of server mode. (The Java 7 WatchService is the key enhancement that enables the new approach.) The conversion is time consuming and none of our clients has prioritized the work at the top of their list, so this may not appear for a couple releases. Let us know if you'd like to help us accelerate the process.

In the mean time, you can always clear the server cache to force reload of all cached module resources after you change them. Admin Console -> Caches -> Clear Caches and Refresh.

Adam
Matthew Bellew2010-05-21 11:12Jon (LabKey DevOps)2018-11-16 23:24External LoginExternal Login TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, PHP programming is a little out of our area. But I can give you a few ideas. First, you should not be programming to the socket layer directly. Find a PHP library that implements the HTTP protocol. That will save you a lot of work. Also, LabKey Server supports basic authentication. So simply providing basic credentials to the HTTP library will get you past the login problem.

Matt
adam2010-05-21 15:18Jon (LabKey DevOps)2018-11-16 23:24External LoginExternal Login TEXT_WITH_LINKSClosed     LabKey Support Forum
I second Matt's suggestion -- if your server is calling LabKey Server directly then use Basic Authentication with our server API. This page may help: https://www.labkey.org/wiki/home/Documentation/page.view?name=remoteAPIs We've written extensive client libraries for JavaScript, Java, SAS, and R, but not PHP yet.

You may want to look at our remote login API as well. It's intended for a different scenario (a server application that delegates authentication and authorization to an instance of LabKey Server... aka, single sign on) but the PHP library we've written for this interface demonstrates aspects of PHP-to-LabKey Server communication. The remote login code and documentation is in our Subversion repository under <root>/remoteLogin.

Adam
flek.mys@googlemail.com2010-05-28 10:08Jon (LabKey DevOps)2018-11-16 23:24External LoginExternal Login TEXT_WITH_LINKSClosed     LabKey Support Forum
Okay I've tried to do the post request with javascript but it seems as if i'm doing something fundamentally wrong.

Basic authentication is okay but I wanted to have a cookie saved on my system so I don't have to authenticate each time, apart from that it should be less secure as I read.

So I'm trying this: Post Request
URL: http://myserver:8080/labkey/login/login.post
BODY: email=mymail&password=mypass

But I don't get any response (even no http status). I used the following javascript (which I've found at this testing pages source code: http://myserver:8080/labkey/query/home/apiTest.view?)

function postUrl(url, parameters)
    {
        startTime = new Date();
        var req = getXmlHttpRequest();
        if(null == url || url.length == 0)
            return;

        if(null == req)
        {
            alert("Couldn't get the XMLHttpRequest object!");
            return;
        }

        try
        {
            req.onreadystatechange = function()
            {
                if(req.readyState == 4)
                {
                    if(req.status == 200)
                        alert(req.responseText);
                    if(req.status != 200)
                        alert(req.statusText + ' : ' + req.responseText);
                }
            };
            req.open("POST", url, true);
            req.setRequestHeader("content-type", "application/json");
            req.send(null);
        }
        catch(e)
        {
            alert(e);
        }
    }

When loading a simple html site this js-function is executed (with onload).

By doing a post request with a simple html form (within the same html-site the js-script is loaded) everything works as it should. And the js-script itself works fine at the serverAPI testing site, so could you give me a hind whats wrong when trying to do a http post request with a js-script externally? (I'm performing it from my local machine)
I've also tried to use jquery for the post request but it doesn't load any data ether.

Thanks for your help
adam2011-06-08 08:02Jon (LabKey DevOps)2018-11-16 23:23External Data Source for a Study?External Data Source for a Study? TEXT_WITH_LINKSClosed     LabKey Support Forum
You have it right: external data sources can't be used as the source of study datasets... yet. The study reload feature is used to perform nightly reloads of study and specimen data from external systems. Typically, an organization writes a script or macro that exports from an external data source (SAS, a database server, a specimen management system, etc.) into a study archive (a zip file or directory containing XML and TSV files that define the data that needs to be refreshed... could be an entire study or just a subset) and then signals LabKey to reload it.

Our goal is to support reloading datasets directly from external datasources (the study archive would simply reference a query instead of a TSV file) and perhaps even support dynamic links from study into external data sources. This work is in the plan, though not currently top of the list for our current clients.

Another important aspect of external datasources if the ability to access (and modify) their data via the JavaScript, Java, R, etc. APIs. This allows building custom workflows and applications that act on external data.

Adam
trent2011-06-08 16:17Jon (LabKey DevOps)2018-11-16 23:24External Data Source for a Study?External Data Source for a Study? TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh, cool. Thanks.

So when you say "could be an entire study or just a subset" - if I have datasets maintained within labkey (as opposed to an external database), when I reload the study, that data won't get wiped? Or do I have to have that data in the study archive too (somehow)? i.e. If I have TSV files in an archive for data from the external sources, what happens to datasets not defined (which would be the datasets maintained within labkey) - as I assume the dataset is just deleted and recreated.

I had a skim through documentation but couldnt see mention of this situation.
marki2011-06-08 17:06Jon (LabKey DevOps)2018-11-16 23:23External Data Source for a Study?External Data Source for a Study? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, you can choose to reload only some of your datasets while keeping others intact.

Another option is to use the "Query Snapshot" feature of study queries to create a study dataset from an external schema.

You would create a new query in your study schema that selects the desired columns from your source schema. E.g. given an external schema "mark" I could create a query in the study schema like so:

select ptid as participantid, sequencenum, date from mark.ptidtest

You could then use Views->Create->Query Snapshot to create a dataset from the results of the query. You can choose whether you want that dataset updated automatically (every n minutes) or manually.
trent2011-06-08 17:17Jon (LabKey DevOps)2018-11-16 23:23External Data Source for a Study?External Data Source for a Study? TEXT_WITH_LINKSClosed     LabKey Support Forum
So, for defining a study pipeline, i guess its best just to export the finished study to see how it all ties together and create a script to export data based on that. And referring to the xml reference https://www.labkey.org/download/schema-docs/xml-schemas/index.html?schemas/study_xsd/schema-frame.html ....

Oh, the query snapshot looks like a nice feature. Though, may still have to use the pipeline feature due to one of the external schemas being an Oracle db.
adam2011-06-08 17:31Jon (LabKey DevOps)2018-11-16 23:24External Data Source for a Study?External Data Source for a Study? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, using export to create your sample study archive works great. You can also find a few sample archives on labkey.org and checked into the /sampledata directory in our subversion repository.

We've been wanting to add support for Oracle external data sources... wouldn't be too hard...

Adam
trent2011-06-13 22:32Jon (LabKey DevOps)2018-11-16 23:23External Data Source for a Study?External Data Source for a Study? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi, I am just getting around to actually giving this query snapshot a go, but not sure if I am doing the right thing...

Create Data Set
-> Go to menu Views - Create - Query Snapshot
-> Accept Defaults and click 'Create Snapshot'
(At this point, the snapshot view is displayed, which is just a query of the created data set)
-> Go to menu Views - Edit Snapshot

This is the point where I can't do anything. There is a textarea which is where I would expect to update the query source (is that correct?). So the issue is, the text area is set the readonly. I tried a few different things but it doesn't update (editing the query directly through the html inspector, removing the readonly attribute,...) after clicking the update button.

(before I forget, there is also another minor formatting issue. If you click 'Show History' on the Edit Query Snapshot page, the web part that shows the history has the html tags being displayed. there is the attribute that looks like this: title="<br/><b>Dataset Snapshot History:</b>" - I presume the html tags aren't meant to be in there..)

I also tried updating the studies security to all can edit, basic security with editable data sets, and custom security with editable data sets and setting everyone to edit all - in case that had something to do with not being able to update the query, but no change. Unless, each time you load the snapshot view it is supposed to return the original query (even after changing the source) or should it reflect what you updated it too last?

..

I think I may have to do the pipeline over the above scenario anyway, as I don't think you can configure labs and visits to be sourced externally.

..

On the Oracle data source - I have enlisted in the source and created a couple of new classes in the BigIron module, basically a copy of the MySqlDialect and MySqlDialectManager and also registered it as per the other dialects. I presume I then just need to add a resource in labkey.xml and get the jdbc driver for Oracle database placed into tomcat/common/lib (as per the guide for sas external data source). I just have to test, and hopefully it'll be all good; no doubt i'll be back asking more questions on this if it doesn't work/i cant figure it out.
marki2011-06-15 09:15Jon (LabKey DevOps)2018-11-16 23:24External Data Source for a Study?External Data Source for a Study? TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately it's not possible to edit the query after the dataset is created. It needs to be re-created. We've had requests to change it but it's never been at the top of anyone's list. I still expect that to be fixed.

Yes, I think you will have to do the pipeline import, though you could do a mix of the two if you wanted.

As for the Oracle data source, glad to hear you are taking a crack at it. Let us know if you need any help. Starting with MySqlDialect seems like a good way to go, though I think syntactically Oracle may be closer to the pg dialect.
Leo Dashevskiy2012-09-12 11:02Leo Dashevskiy2012-09-12 11:02Ext.define not available?Ext.define not available? TEXT_WITH_LINKSClosed     LabKey Support Forum
Resolved: seems like typo in Ext 3 docs indeed.
Nick Kerr2012-09-11 11:25Jon (LabKey DevOps)2018-11-16 23:23Ext.define not available?Ext.define not available? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Leo, are you trying to use Ext 3 or 4 to define the new class? If Ext 4 I'd recommend the following:

<script type="text/javascript">
    LABKEY.requiresExt4Sandbox(true);
</script>
<script type="text/javascript">
    LABKEY.requiresExt4ClientAPI();
    LABKEY.requiresScript('FlowGraph.js');
</script>

<!-- inside of FlowGraph.js -->
Ext4.define('LABKEY.ext.FlowGraph', {...});

<!-- In begin.html -->
<script type="text/javascript">
    Ext4.onReady(function() {

        var flowGraph = Ext4.create('LABKEY.ext.FlowGraph', {...});
    
    });
</script>
Leo Dashevskiy2012-09-11 12:12Jon (LabKey DevOps)2018-11-16 23:23Ext.define not available?Ext.define not available? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey, Nick!

I am overwhelmingly using Ext3 (but I do use Ext4 on one instance, that is why I'm loading it also), so for the above I am trying to use Ext3, which gets loaded automatically, right?

I just showed that I'm also loading Ext4 for my needs, since it seems to me that there is a mix up or something, because I don't see Ext.define but do see Ext4.define.

So seems like I'm doing pretty much the same as you are suggesting, but with Ext(3), and it's not working for me...
Leo Dashevskiy2012-09-11 12:31Jon (LabKey DevOps)2018-11-16 23:24Ext.define not available?Ext.define not available? TEXT_WITH_LINKSClosed     LabKey Support Forum
So I was using DataViewsPanel.js as inspiration and it is using Ext4.

When I removed the Ext4 loading (first <script> block above) all together - still Ext does not have "define" defined, though the docs for Ext 3.4 have it: http://docs.sencha.com/ext-js/3-4/#!/api/Ext-method-define

Did you guys "customize" your Ext(3) by trimming and removing certain things?

Though, yet another site says that the way to extend classes in Ext3 is not through Ext.define, but through Ext.extend, then I'm not sure, whey Ext.define is present in the docs.

I'm confused. Can anyone shed any light on this?

Is there a good example within Labkey of extending a class in Ext(3)?

Thanks.
Nick Kerr2012-09-11 12:51Jon (LabKey DevOps)2018-11-16 23:24Ext.define not available?Ext.define not available? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I think this is a mistake in their docs. Ext.define is not present in Ext 3 and the method we have always used for defining new classes in Ext 3 is to use Ext.extend.

Here is a Sencha Blog post discussing some of the differences in Ext 3 & 4 class systems.

http://www.sencha.com/blog/countdown-to-ext-js-4-dynamic-loading-and-new-class-system/

We do not remove or trim any methods from Ext.

Thanks,
Nick
marki2010-07-09 11:02Jon (LabKey DevOps)2018-11-16 23:23ext date and time picker?ext date and time picker? TEXT_WITH_LINKSClosed     LabKey Support Forum
I don't know of any use of either of these features, but we'd be interested in hearing about what you get working.
Ben Bimber2015-01-27 05:56Jon (LabKey DevOps)2018-11-16 23:23Ext4 securityExt4 security TEXT_WITH_LINKSClosed     LabKey Support Forum
hi bront,

ive struggled with many of the same issues in our modules. it is fairly easy to make a'security through obscurity' solution, where you do something like only exposing a filtered query over a raw table (essentially your suggestion); however, because a given folder within LabKey is generally either all-or-none for read permissions (with study datasets being an exception) that generally means the user could read the raw data if they could find it, either unintentionally (like being shown the wrong UI), or intentionally (like digging through schema browser or the wrong kind of webpart).

there are 2 better options, i think:

1) Linked Schemas. We had this feature added to support the scenario where you have a folder with raw data (like a core facility that runs an instrument), and another group of users who needs to see a subset of the raw data (like a client who views data filtered on userId). in this scenario you have one container with the raw data. In a second container you go to schema browser and created a linked schema. you define the source container and also which queries to expose. If you combined this with your original idea of making a query that filters on UserId, then I think you have a genuinely secure solution. Linked Schemas can be defined from XML, and we have a few examples checked in. See employeeData.template.xml in the EHRComplianceDB modules (or ctl+shift+n, then template.xml in intellij).

2) because you saw you're writing a java module, i'll throw this answer out there: when I need to solve this problem now I virtually always make a custom UserSchema and modify there. You can make your own custom permission/role, which will then appear in the normal folder permissions UI. For example, I have a lot of scenarios where I create a 'Data Admin' type role, which is used to enforce the ability to edit specific reference tables. See VariantDBUserSchema for one of the simplest examples. CustomPermissionsTable is something I wrote for this you're welcome to try. You add an additional permission that will be tested for each of the standard actions (Read, Insert, Update, Delete). I would use this scenario instead of option 1 when you have data that most naturally lives within a single container, but you have a class of users that should have elevated edit permissions relative to others. in the case of a lab, you might have lots of people entering/editing the data; however, you only want a few people able to modify reference tables or lists of allowable values.

-ben
bront@kcr.uky.edu2015-01-27 06:07Jon (LabKey DevOps)2018-11-16 23:23Ext4 securityExt4 security TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

Thanks for your quick and thorough response. I am glad to know that someone else out there is struggling with a similar issue.

I will dig into your suggestions and try to implement.

Thanks again,

bront
Ben Bimber2015-01-27 07:19Jon (LabKey DevOps)2018-11-16 23:24Ext4 securityExt4 security TEXT_WITH_LINKSClosed     LabKey Support Forum
in fairness to LK here, 'struggle' might not be the right word. it's just the all-or-none aspect of permissions within a single container leaves something to be desired when making anything but the simplest of apps. having worked w/ LK a long time now, i'd say it's really important for the developer/admin to understand how container/security work within LK; however, I try to make which folder you're in as invisible as i can to the user.
bront@kcr.uky.edu2015-01-27 07:27Jon (LabKey DevOps)2018-11-16 23:24Ext4 securityExt4 security TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I think that the second option you suggested sounds more in line with what I am trying to accomplish, but I am wondering if it is enough. I need to give users read as well as write permissions on a table, but their reads have to be limited to the rows they've inserted. Will a custom permission/role help with that?

Also, and sorry to ask what I think may be a dumb question, but I am not sure where to locate VariantDBUserSchema.

Thanks for your help.

bront
bront@kcr.uky.edu2015-01-27 07:34Jon (LabKey DevOps)2018-11-16 23:24Ext4 securityExt4 security TEXT_WITH_LINKSClosed     LabKey Support Forum
Fair enough on the use of the term "struggle." ;-)

I thought using custom-queries with the userid() would be sufficient, but then I began to have some doubts, which I see are not unfounded.

I then considered writing custom selects in Java, matching userids(), but then found that I couldn't convert a resultset to JSON for the ExtJs store to consume.

So, now I sort of stuck.

I do appreciate your insight.

b
Ben Bimber2015-01-27 07:43Jon (LabKey DevOps)2018-11-16 23:24Ext4 securityExt4 security TEXT_WITH_LINKSClosed     LabKey Support Forum
here's a few other idea, which are probably more complicated:

1) make 2 tables at the user schema level. you have the 'real' table, which is what is exposed now. make this table non-editable to anyone.

then either:

2a) make a regular query that has a WHERE clause that appends a filter by userid. see ismemberof() in LK SQL for one option. this way it can get removed (unlike user filters). to this query, add custom buttons. these buttons could test permissions, and enforce row-level security. this would have problems exposing row-level update UI though.

2b) expose a table that only will ever show rows belonging to the current user. to do this, at the user schema level, expose the original table twice. expose the regular table (ie. as in option #1). then also expose a clone of this table that is filtered on UserId. This new table will only show only those rows belonging to the currently logged in User. LookupSetTable or LabworkType table in EHR module (see also EHRUserSchema) are roughly what you'd want. this new table would behave exactly like a regular LK table; however, it would only give the user the opportunity to edit their rows. unfortunately, it also only shows them their rows.

The above gives you one table for reading and one for editing. If you need to have a single table showing all records, but conditionally showing the EDIT link, then my only idea is:

to your original table, hide the normal edit UI (which always appears), and then add a custom java column that only shows the 'EDIT' link for rows belonging to the current users. to hide edit UI, make <updateURL></updateURL> empty. to your table, add a new AliasedColumn and make a java DisplayColumn for this new column. If you're interested in this route i'll write more. This would handle the UI part if rendering a DataRegion; however, you'd want to actually enforce edit permissions on the server. That's important b/c otherwise anyone could still edit rows through any other client API path. Ideas are:

a) create a JS trigger script and test/enforce permissions there. this would be simplest, i think. check out employeecategory.js as a simple example of what these trigger scripts are. in your example, you'd make a beforeUpdate(), and within this you'd test whether the current UserId matches the field in the oldRow (ie. original row) that corresponds to that User. if not, throw an error.

b) write your own java UpdateService. you could do something similar to above.

I've done things like both of these in different places.
bront@kcr.uky.edu2015-01-27 10:03Jon (LabKey DevOps)2018-11-16 23:24Ext4 securityExt4 security TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

This is great. You've given me a lot to consider. Thank you so much for all of your help and ideas.

bront
jeckels2011-03-28 09:23Jon (LabKey DevOps)2018-11-16 23:24exp.runs jobStore columnexp.runs jobStore column TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Are you referring to the jobStore column on the pipeline.Job table? That XML block contains the current state of the job if it's still running, or if it encountered an error. So far, it's only been used internally, and hasn't been exposed as JSON. It's a different chunk of XML from the protocol description that can be accessed as either XML or JSON. Also, it should be set to NULL once the job is complete, so it's only available some of the time.

Thanks,
Josh
Ben Bimber2011-03-28 09:26Jon (LabKey DevOps)2018-11-16 23:24exp.runs jobStore columnexp.runs jobStore column TEXT_WITH_LINKSClosed     LabKey Support Forum
yes, perhaps i didnt look carefully enough at which rows had it and which did not.

is there a good mechanism to grab the XML/JSON of a historic pipeline run? I think I could figure out its container, then use getProtocols() to return all protocols from that container, then find the specific protocol. is that the best/only mechanism?

-ben
jeckels2011-03-28 11:35Jon (LabKey DevOps)2018-11-16 23:23exp.runs jobStore columnexp.runs jobStore column TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

If you want the protocol definition, I'd recommend going off of the exp.runs table instead of pipeline.job. The Input/AnalysisParameters column is a pointer to a copy of the protocol file that was used. You could grab its contents and present them to the user directly, or grab the "pipeline, protocol name" value from the file by parsing its XML and use the LABKEY.Pipeline APIs to get the JSON version.

Thanks,
Josh
Ben Bimber2011-03-28 11:39Jon (LabKey DevOps)2018-11-16 23:23exp.runs jobStore columnexp.runs jobStore column TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. does labkey have any client-side code that assists with XML parsing that you know about? a quick read through the client API doc didnt reveal anything. Ext has something called the XMLreader that is probably geared more towards a store that I dont know much about.
Matthew Bellew2011-03-28 13:52Jon (LabKey DevOps)2018-11-16 23:24exp.runs jobStore columnexp.runs jobStore column TEXT_WITH_LINKSClosed     LabKey Support Forum
If you make a server request that returns XML it will already be parsed into a DOM tree. See the responseXML property of XMLHttpRequest.

https://developer.mozilla.org/en/xmlhttprequest

Ext returns the xmlhttprequest object so you should be able to just grab the xml.
wnels2@uky.edu2009-06-26 12:28Jon (LabKey DevOps)2018-11-16 23:24exp.propertyvalidator" does not existexp.propertyvalidator" does not exist TEXT_WITH_LINKSClosed     LabKey Support Forum
I just ran the drts and I got the exception below. The database scripts did run ok when I restarted labkey after the rebuild. I'm running rebuild again to double check that it was cleaned but pretty sure it was. It is Friday afternoon though.
Thanks,
Bill


ERROR Table 2009-06-26 15:16:13,037 http-8080-Processor25 : SQL Exception
org.postgresql.util.PSQLException: ERROR: relation "exp.list" does not exist
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
    at org.labkey.api.data.ConnectionWrapper$StatementWrapper.executeQuery(ConnectionWrapper.java:984)
    at org.labkey.api.data.Table._executeQuery(Table.java:117)
    at org.labkey.api.data.Table._executeQuery(Table.java:89)
    at org.labkey.api.data.Table.internalExecuteQueryArray(Table.java:323)
    at org.labkey.api.data.Table.select(Table.java:1220)
wnels2@uky.edu2009-06-26 13:04Jon (LabKey DevOps)2018-11-16 23:24exp.propertyvalidator" does not existexp.propertyvalidator" does not exist TEXT_WITH_LINKSClosed     LabKey Support Forum
I think I had damaged my database experimenting with table recovery. Sorry, just in a hurry to start the weekend.
Thanks,
Bill
eknelson2011-07-26 15:06Jon (LabKey DevOps)2018-11-16 23:24exporting a studyexporting a study TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michael,

Export/import of specimen request settings is not supported today. I've opened a bug to track this work - it's certainly something we'd like to support:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=12722

Export/import of specimen requests themselves is not supported either. In this case, we have no current plans to add support. Having two active servers with the same requests typically isn't desirable. If you're fully moving your LabKey Server to new hardware (as you appear to be doing), you might consider doing a database backup on the old server and a restore on the new one. This avoids doing things piecemeal.

Thanks,
Elizabeth
michael_stover@urmc.rochester.edu2011-07-27 12:17Jon (LabKey DevOps)2018-11-16 23:24exporting a studyexporting a study TEXT_WITH_LINKSClosed     LabKey Support Forum
Elizabeth,
   Thanks for the suggestion. However, using pg_dump and psql to dump and restore the database to a different server does not appear to be a simple thing. One is a windows machine, one linux - I don't know if this is a confounding factor. The dump goes fine, but then restore runs into many errors. If the two database have different roles, then that causes problems, and I get hundreds of "invalid command" errors when doing the restore. After trying a few times, my test labkey no longer starts up successfully. I am not keen on using this method to get our production server up and running. Especially since we already have everything in place and copied with the one exception of the requests.
Brian Connolly2011-07-27 13:44Jon (LabKey DevOps)2018-11-16 23:24exporting a studyexporting a study TEXT_WITH_LINKSClosed     LabKey Support Forum
Michael,
In terms of the errors you are getting when attempting to restore a dump from the older server to the new server, I can give you some advice.

1) On the old server, when you run pgdump, make sure you specify the "--format=c" option

2) On the new server, you will need to add the roles that are in use on the old server. To add a new role to your new server, you can run the following from the command line

  createuser --superuser ROLENAME

do this for each role you need to create

3) On the new server, lets use a different database from the one your currently have configured, so you will need to create a new database by running the following from the command line
  
  createdb NEWDBNAME

4) On the new server perform the restore by running the command

  pg_restore -d NEWDBNAME --format=c DB_BACKUP_FILE


If you experience any errors during the restore such as "role does not exist' etc. Then stop the restore, drop the NEWDBNAME database (run command dropdb NEWDBNAME), create NEWDBNAME database again, fix the problem (ie if you are missing a role, create the new role ) and then try the restore command again.


When the restore has completed successfully, you can simply edit your labkey.xml configuration file to point to the new database and restart the LabKey Server.


I hope this helps.

-Brian
michael_stover@urmc.rochester.edu2011-07-27 14:09Jon (LabKey DevOps)2018-11-16 23:24exporting a studyexporting a study TEXT_WITH_LINKSClosed     LabKey Support Forum
Brian,
     I followed those steps. When I restart labkey, I get:

java.lang.NullPointerException
       at java.io.File.<init>(File.java:222)
       at org.apache.log4j.RollingFileAppender.rollOver(RollingFileAppender.java:157)
       at org.labkey.api.module.ModuleLoader.rollErrorLogFile(ModuleLoader.java:332)
       at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:195)
       at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:171)
       at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)
       at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
       at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
       at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3666)
       at org.apache.catalina.core.StandardContext.start(StandardContext.java:4258)
       at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
       at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
       at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:634)
       at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:561)
       at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:496)
       at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1203)
       at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
       at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
       at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
       at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
       at org.apache.catalina.core.StandardService.start(StandardService.java:448)
       at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Brian Connolly2011-07-27 14:18Jon (LabKey DevOps)2018-11-16 23:23exporting a studyexporting a study TEXT_WITH_LINKSClosed     LabKey Support Forum
Michael,

Are you seeing this in your browser when you attempt to first connect? Can you please attach the catalina.out, labkey.log and labkey-errors.log file. This will make it easier to debug your problem.
Jon (LabKey DevOps)2015-08-28 14:05Jon (LabKey DevOps)2018-11-16 23:24Export/Import list fields with lookup tables from another folderExport/Import list fields with lookup tables from another folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

It appears that functionality doesn't exist. The LookupSchema and LookupQuery is only applying to the current folder and has no place to designate any other folders or projects. A feature change will have to be implemented to accommodate this functionality.

Regards,

Jon
Jon (LabKey DevOps)2015-08-28 14:41Jon (LabKey DevOps)2018-11-16 23:24Export/Import list fields with lookup tables from another folderExport/Import list fields with lookup tables from another folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Bug https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=24161 has been created for this problem.

Regards,

Jon
Jon (LabKey DevOps)2015-08-28 14:42Jon (LabKey DevOps)2018-11-16 23:24Export/Import list fields with lookup tables from another folderExport/Import list fields with lookup tables from another folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

So until this gets fixed, the only option is to manually create your lookups if they're apart of another folder. I know it's a little more work you have to do, but there is nothing else in the system that would make this easier until the bug is fixed.

Regards,

Jon
adam2015-08-26 08:06Jon (LabKey DevOps)2018-11-16 23:23Export identical query names in different schemas in the same folderExport identical query names in different schemas in the same folder TEXT_WITH_LINKSClosed     LabKey Support Forum
What version of LabKey Server are you using? It looks like we fixed this issue earlier this year, in our 15.1 release. See details here: https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=20662

Adam
alx dobre2015-08-26 08:09Jon (LabKey DevOps)2018-11-16 23:24Export identical query names in different schemas in the same folderExport identical query names in different schemas in the same folder TEXT_WITH_LINKSClosed     LabKey Support Forum
We are using 14.3

It seems I need to speak to the higher ups about an upgrade if I want to use this feature.

Thank you for clarifying.
jeckels2013-02-20 09:00Jon (LabKey DevOps)2018-11-16 23:23expected size for full-text search index?expected size for full-text search index? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The index on labkey.org is about 600MB.

To the best of my knowledge, dataset rows are not indexed. Dataset metadata is, but that should be very small.

Luke is a useful tool for investigating the contents of an existing Lucene index:

http://www.getopt.org/luke/

It might provide some quick insight into what's in you index.

Thanks,
Josh
jeckels2014-08-04 09:29Jon (LabKey DevOps)2018-11-16 23:24Expected Behavior From Pipeline w/ Split Jobs?Expected Behavior From Pipeline w/ Split Jobs? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The ability to complete a job through the web UI is a low-level administrator function. It just flips the status in the database, without considering other potentially related jobs.

I don't think there's a way to force the joined job to resume with the current UI. You might be able to manually set it to ERROR via direct SQL against the database, and then retry it through the web UI.

If you expect this to happen on a regular basis, it shouldn't be too hard to make the manual process of setting a job to COMPLETE check if there are downstream jobs that can resume. Let me know if this is of interest.

Thanks,
Josh
jeckels2013-03-26 12:47Jon (LabKey DevOps)2018-11-16 23:24expected behavior for URLs in an exported excel file?expected behavior for URLs in an exported excel file? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We did include URLs for a while, but stopped doing so with revision 13705 back in May 2010. I think they were generally not working as users wanted, but I don't have the exact rationale right now.

Thanks,
Josh
Ben Bimber2013-03-26 12:56Jon (LabKey DevOps)2018-11-16 23:23expected behavior for URLs in an exported excel file?expected behavior for URLs in an exported excel file? TEXT_WITH_LINKSClosed     LabKey Support Forum
interesting. i could see it being annoying to click through an excel file if it keeps opening your browser.
Brian Connolly2013-04-04 18:59Jon (LabKey DevOps)2018-11-16 23:24expected behavior for .deleted?expected behavior for .deleted? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,
Sorry for the delay in answering this question. The current behavior is not ideal, but the .deleted directory is a legacy feature that was designed around a specific set of use cases.

The current behavior is

1. The .deleted directory is only created at the root of the file-root for each folder
 -- for example, it would be created in /FILE_ROOT/Home/@files for the Home project

Behavior of Files
======================
1. When a file is deleted, via the FileContent webpart, from the file-root directory,
   the file is not deleted from the filesystem but moved to the .deleted directory
 -- for example if the file /FILE_ROOT/Home/@files/brianisgreat.txt is deleted
    it would be moved to /FILE_ROOT/Home/@files/.deleted/brianisgreat.txt

2. When a file is deleted, via the FileContent webpart, from the a sub-directory of a file root,
   the file is deleted from the filesystem (ie will not be available in the .deleted directory)
 -- for example if the file /FILE_ROOT/Home/@files/subdir/brianisgreat.txt is deleted
    it will not be moved to /FILE_ROOT/Home/@files/.deleted/



Behavior of Directories
======================
1. When a subdirectory is deleted, via the FileContent webpart, from the file root or a sub-directory file-root,
   the sub-directory and it's contents are deleted from the filesystem (ie will not be available in the
   .deleted directory)
 -- for example if the directory /FILE_ROOT/Home/@files/subdir/ is deleted
    it will not be moved to /FILE_ROOT/Home/@files/.deleted/


Clean up
=======================
1. There is no process that cleans up the contents of a .deleted directory.
2. The only time that we delete from the .deleted directory is if the user deletes a new
   file of the same name, in which case the previous file in .deleted gets overwritten


I hope this answer is not too confusing. If it is, we can jump on a quick call to discuss this.

Brian
Ben Bimber2013-04-05 08:02Jon (LabKey DevOps)2018-11-16 23:24expected behavior for .deleted?expected behavior for .deleted? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

Thanks for the reply. This caught my attention b/c I found we had several GBs of data sitting in .deleted folders, which isnt what you tend to want.

I think I'm going to augment the 'File Root Usage Summary' report (you'll see it in the admin console if the LDK module is turned on - can be a useful report) to also report something about size of .deleted folders.
jeckels2011-12-22 16:33Jon (LabKey DevOps)2018-11-16 23:23exp.Datas in Query Schema Browserexp.Datas in Query Schema Browser TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

There are two general categories of files that will end up with rows in the exp.datas query:

1. Files that have been uploaded to the server using WebDav, including those uploaded by the standard file management UIs. We use the row to keep track of who uploaded the file and other metadata.

2. Files that have been referenced from assay runs and/or are referenced by runs generated by an analysis pipeline (such as MS2 or MS1 searches).

If you drop files onto the server's file system by some other mechanism, they won't automatically get a row. Also, most other server processes that produce files (such as unzipping a study archive, as you noticed) won't create rows.

I hope this helps.

Thanks,
Josh
jeckels2007-07-03 12:55Jon (LabKey DevOps)2018-11-16 23:24exp:ApplicationTypeexp:ApplicationType TEXT_WITH_LINKSClosed     LabKey Support Forum
There are two special, built-in application types, ExperimentRun and ExperimentRunOutput. The first step in a protocol should be of type ExperimenRun, and the last step should be ExperimentRunOutput. The corresponding protocol applications should having matching types. Almost all other types will be set to ProtocolApplication, which you could consider to be the default.

If you have specialized needs, you can create a module that registers one or more org.labkey.api.exp.RunExpansionHandler instances. There's a little documentation on this at https://www.labkey.org/Wiki/home/Documentation/page.view?name=experimentIntegration. Based on the type, the server will check if there are any handlers to invoke. If the server doesn't find a specialized handler, it treats it as if it was a ProtocolApplication type instead.

There's nothing special about the SamplePrep type - it should probably be switched to the more standard ProtocolApplication instead.

Josh
Jon (LabKey DevOps)2018-08-27 11:44Jon (LabKey DevOps)2018-11-16 23:24ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist Position: 714ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist Position: 714 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Marcia,

When did this error come about? Was it after an upgrade? Did you shutdown the server mid-upgrade at any given point in time? Does the error re-appear if the Tomcat service is stopped and started back up?

Regards,

Jon
Jon (LabKey DevOps)2018-08-27 11:44Jon (LabKey DevOps)2018-11-16 23:24ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Marcia,

When did this error come about? Was it after an upgrade? Did you shutdown the server mid-upgrade at any given point in time? Does the error re-appear if the Tomcat service is stopped and started back up?

Regards,

Jon
Steve2016-09-26 09:56Jon (LabKey DevOps)2018-11-16 23:23Exclude Columns from Date ShiftExclude Columns from Date Shift TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi:
Yes, you can do this in the XML directly. (In general whatever you can do with the field properties GUI, you can also do directly with XML.)

The XML would look something like this:

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="Demographics" tableDbType="NOT_IN_DB">
    <columns>
      <column columnName="date">
        <excludeFromShifting>true</excludeFromShifting>
      </column>
    </columns>
  </table>
</tables>

Thanks, Steve
balter2016-09-26 21:11Jon (LabKey DevOps)2018-11-16 23:23Exclude Columns from Date ShiftExclude Columns from Date Shift TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks!
Matthew Bellew2013-09-23 10:36Jon (LabKey DevOps)2018-11-16 23:24Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry about this. Could you copy the last bit of the stack trace? I'd like to see the bit after "Caused by: java.lang.NullPointerException "... Also the SVN revision number would help as well.

Thanks,
Matt
Anthony Corbett2013-09-23 11:08Jon (LabKey DevOps)2018-11-16 23:23Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum
Matt,

The build of Labkey we have on our server is LabKey13.1-25846.

Unfortunately there is no other output after the "Caused by: java.lang.NullPointerException" in neither the details section or the labkey.log file. So I can't help with the real root cause.

Is there any other way to edit SQL queries?

Thanks for your help,

Anthony
Matthew Bellew2013-09-23 12:27Jon (LabKey DevOps)2018-11-16 23:24Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum
I entered a bug to track this https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=18666

In this case, since you know the source of the query, I'd recommend deleting it and recreating a new query.

Matt
Anthony Corbett2013-09-23 12:36Jon (LabKey DevOps)2018-11-16 23:24Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum

I tried clicking on 'DELETE QUERY' in the schema browser and even that is choking because of the NPE. So I cannot edit or delete this query.

This exception is also causing some charting not to work because when the charting goes to look for all available measures/dimensions it must be able to parse all queries. (Jeanne spoke to a Labkey dev during the user conference about this and they submitted a bug). Since this isn't parsing correct the charting fails.

Any suggestions on how to manually delete it?


-
Anthony
jeckels2013-09-23 12:40Jon (LabKey DevOps)2018-11-16 23:23Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

There may be additional detail for the stack trace in your labkey.log. Can you check there too if you haven't already?

Thanks,
Josh
Anthony Corbett2013-09-23 12:43Jon (LabKey DevOps)2018-11-16 23:24Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum


Hey Josh,

I mentioned above that the labkey.log also stops reporting the stack trace at "Caused By: java.lang.NullPointerException".

-
Anthony
jeckels2013-09-23 17:24Jon (LabKey DevOps)2018-11-16 23:23Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Thanks for checking. Sorry for missing that in the thread.

Short of deleting the container, I don't think there's an alternative way to delete the query through the UI if you're getting that exception.

You can, however, manually delete the row from the database. We normally don't recommend this, of course. It will be stored in the query.querydef table. You can find it based on the "name" (the query name itself) and "schema" columns. You will need to either bounce Tomcat or go to Admin Console->Memory Usage->Clear Caches and GC to un-cache it. Alternatively, you can wait for the cache entry to time out.

Thanks,
Josh
Anthony Corbett2013-09-25 14:34Jon (LabKey DevOps)2018-11-16 23:24Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Thanks for the help. I manually deleted the row from query.querydef and cleared the caches. This worked!

Now I went about the task of re-creating the query and I got the same error on save. So I commenting things out to see where the parse issue was happening. I found that the UNION in sub-SELECT statement in the WHERE Clause is causing the issue, though again I can't see any of the stack trace beyond the Caused by: NPE. This worked in versions prior to 13.1, so this must be a regression? The SVN # of our 13.1 labkey instance is in the thread above.

Here is the SQL:

SELECT
 demo.ParticipantId,
 contactInfo.infant_name,
 demo.hospital_enroll_site,
 demo.ParticipantId.Cohort,
 contactInfo.medRec_num,
 hsd.admission_date,
 hsd.discharge_date,
 demo.enroll_date,
 st.date as StudyTerminationDate
 FROM Demographics demo
 LEFT JOIN "Contact Sheet" contactInfo ON contactInfo.ParticipantId = demo.ParticipantId
 LEFT JOIN "Hospital Summary Dates" hsd ON hsd.ParticipantId = demo.ParticipantId
 LEFT JOIN "Study Termination" st ON st.ParticipantId = demo.ParticipantId
 WHERE demo.ParticipantId.Cohort.Label = 'hospital'
   OR hsd.ParticipantId IN (
       SELECT pcrResults.ParticipantId
       FROM "RSV PCR Results" pcrResults
       WHERE lower(pcrResults.result) <> 'negative'
       UNION
       SELECT AncCultureResults.ParticipantId
       FROM "Ancillary Illness Culture Results" AncCultureResults
       WHERE AncCultureResults.viral_culture = 1; -- 1 = RSV
   )
Anthony Corbett2013-09-25 14:50Jon (LabKey DevOps)2018-11-16 23:24Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum


I fixed this by putting the UNION query in a separate query, named "RSVPositiveTestsParticipants", and then used that in the sub-SELECT of the WHERE IN clause:

SELECT
 demo.ParticipantId,
 contactInfo.infant_name,
 demo.hospital_enroll_site,
 demo.ParticipantId.Cohort,
 contactInfo.medRec_num,
 hsd.admission_date,
 hsd.discharge_date,
 demo.enroll_date,
 st.date as StudyTerminationDate
 FROM study.Demographics demo
 LEFT JOIN study."Contact Sheet" contactInfo ON contactInfo.ParticipantId = demo.ParticipantId
 LEFT JOIN study."Hospital Summary Dates" hsd ON hsd.ParticipantId = demo.ParticipantId
 LEFT JOIN study."Study Termination" st ON st.ParticipantId = demo.ParticipantId
 WHERE demo.ParticipantId.Cohort.Label = 'hospital'
   OR hsd.ParticipantId IN (
       SELECT RSVPositiveTestsParticipants.ParticipantId
       FROM study.RSVPositiveTestsParticipants
   )
Matthew Bellew2013-09-25 16:19Jon (LabKey DevOps)2018-11-16 23:23Exception on Labkey SQL Parse - Can't edit query sourceException on Labkey SQL Parse - Can't edit query source TEXT_WITH_LINKSClosed     LabKey Support Forum
Good news, the crashing sql editor is fixed. In 13.3 you should be able to edit and delete queries regardless of whatever havoc they create in the sql parser. I will enter a separate bug about UNION in nested selects.
Matthew Bellew2011-09-26 09:44Jon (LabKey DevOps)2018-11-16 23:24excel upload template and field names vs labelsexcel upload template and field names vs labels TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, that is the intention. Labels are not guaranteed to be unambiguous, while column labels are, and on import when matching names column names are given higher priority than labels.

Separately, eventually "export to excel" should have an option to choose whether to use labels or column names (field keys?)
Ben Bimber2011-09-26 18:48Jon (LabKey DevOps)2018-11-16 23:24excel upload template and field names vs labelsexcel upload template and field names vs labels TEXT_WITH_LINKSClosed     LabKey Support Forum
hi matt,

i get where you're coming form, but i really think you should re-consider that. the whole point of labels vs names is that the former is what the user is presented with. in a dataregion, import panel, etc, labkey presents the label, not the name. what's the rationale for making the excel template any different?

i fully agree that the code parsing the excel header should preferentially use the name; however, seems like both ought to work.

second, does labkey really allow redundant labels on columns within a table? that seems unwise if true.
Matthew Bellew2011-09-26 19:12Jon (LabKey DevOps)2018-11-16 23:23excel upload template and field names vs labelsexcel upload template and field names vs labels TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, labels really aren't unique. It's pretty common to not be able to import the Excel files that we export. Never fun when that happens. If we make a name/label option on export we could do the same for templates.
Ben Bimber2011-09-26 19:14Jon (LabKey DevOps)2018-11-16 23:24excel upload template and field names vs labelsexcel upload template and field names vs labels TEXT_WITH_LINKSClosed     LabKey Support Forum
is there a reason we dont enforce labels to be unique in the table definition?

i get that aliases arent unique, but label seems like an extention of name.
adam2011-09-27 09:40Jon (LabKey DevOps)2018-11-16 23:23excel upload template and field names vs labelsexcel upload template and field names vs labels TEXT_WITH_LINKSClosed     LabKey Support Forum
A large amount of the source data that gets imported into LabKey has duplicate labels. Users distinguish the ambiguities positionally (e.g., groups of columns that get repeated) or based on datatype (e.g., measurement column follow by unit column... both with the same label). It's unfortunate, but we have to tolerate this.
Ben Bimber2011-09-27 10:09Jon (LabKey DevOps)2018-11-16 23:23excel upload template and field names vs labelsexcel upload template and field names vs labels TEXT_WITH_LINKSClosed     LabKey Support Forum
so do these scenarios use the browser spreadsheet import or do they use other pathways like ETLs, pipeline imports or API?
tlynch@primate.wisc.edu2012-01-05 08:57Jon (LabKey DevOps)2018-11-16 23:24excel upload template and field names vs labelsexcel upload template and field names vs labels TEXT_WITH_LINKSClosed     LabKey Support Forum
I think an option on export would clue in the user that there is a difference. If I were a non-tech user, I would have given up and brute forced my changes into the table. Not only do the fields and columns have to agree but the content may need to be changed. e.g. an export of our lab reference ranges lookup table replaces a gender code with the person friendly "male" / "female". The import doesn't know what to do with "male" so it leaves it blank.
jeckels2013-04-29 13:38Jon (LabKey DevOps)2018-11-16 23:24excel error when exporting a column that uses scientific notationexcel error when exporting a column that uses scientific notation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, this seems to be a mismatch between Java and Excel format strings for scientific notation. Excel wants it to be something like "0.##E+00", which Java doesn't support.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=17735

Thanks,
Josh
Jon (LabKey DevOps)2018-02-16 22:23Jon (LabKey DevOps)2018-11-16 23:24ETL to DatasetETL to Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Is there any reason why you're choosing to use an ETL to copy the Assay Data over to a Dataset rather than using the Copy-To-Study function?

If you want to publish your assay data to your study, using a Copy-To-Study is a better option:

https://www.labkey.org/Documentation/wiki-page.view?name=publishAssayData

Regards,

Jon
marcia hon2018-02-17 09:35Jon (LabKey DevOps)2018-11-16 23:24ETL to DatasetETL to Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
I have 3 assays that I would like to copy to one dataset.

I tried copy-to-study, but this only copies to a study that has the same exact name as the assay.

is there are work around?
Jon (LabKey DevOps)2018-02-19 22:53Jon (LabKey DevOps)2018-11-16 23:23ETL to DatasetETL to Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

That is a little odd to have three separate assays to copy to one dataset.

Is there any reason why you're choosing to have multiple assays of what is the same information, but only one study (and one dataset) for those three assays?

Regards,

Jon
marcia hon2018-02-21 06:09Jon (LabKey DevOps)2018-11-16 23:24ETL to DatasetETL to Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
I found an alternative solution.

I have three assays.

I copy them to datasets.

Then I do a query that does a "union" of all the datasets.

Thanks for your help!
Jon (LabKey DevOps)2016-10-26 22:27Jon (LabKey DevOps)2018-11-16 23:23ETL Store ProcedureETL Store Procedure TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Hilaria,

It sounds like what you're needing isn't an ETL, but a PIVOT query to be done on the data.

Have you reviewed our PIVOT docs? It should give you the desired results you're seeking if I'm understanding you correctly.

https://www.labkey.org/home/Documentation/wiki-page.view?name=pivot

Regards,

Jon
hilariagrieve2016-11-02 06:44Jon (LabKey DevOps)2018-11-16 23:24ETL Store ProcedureETL Store Procedure TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon!
I am goint to see if I can join the data with PIVOT query, but I think that I will need to have a dataset with this information loaded and related with participants id, to access it if I need.

Thanks!
kevink2014-04-15 15:00Jon (LabKey DevOps)2018-11-16 23:23ETL .sql optionsETL .sql options TEXT_WITH_LINKSClosed     LabKey Support Forum
We remove most URLs and lookup foreign keys from the tables and queries in a linked schema for security purposes. As you've discovered, foreign keys to tables within the linked schema are allowed as are container and user foreign keys.

You can restore the lookup foreign keys by using the metadata xml either in the linked schema definition itself or as a metadata override xml on the query/table. For reference, the metadata xml is applied in order listed at the bottom of this page:

https://www.labkey.org/wiki/home/Documentation/page.view?name=columnMetadata

Alternatively, you could write the query in the source schema and include it in the list of queries and tables in the linked schema.
trent2012-08-22 20:13trent2012-08-26 16:04Escape forward slash in xmlEscape forward slash in xml TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Kevin,

That works. Nice!
Ben Bimber2012-08-22 19:41Jon (LabKey DevOps)2018-11-16 23:23Escape forward slash in xmlEscape forward slash in xml TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Trent,

Would it work to rename your column (perhaps col_a_l), then set the columnLabel to "col (a/l)"? We should now support labels during import from an excel file (although i dont know how it will behave with slashes...), so in general the user shouldnt notice the difference.

There may be a way to work around it, but in general I would recommend avoiding slashes in column names.
trent2012-08-22 19:52Jon (LabKey DevOps)2018-11-16 23:23Escape forward slash in xmlEscape forward slash in xml TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yeah, been noticing a few issues here and there. Ah well, cheers for the info.
kevink2012-08-22 20:10Jon (LabKey DevOps)2018-11-16 23:23Escape forward slash in xmlEscape forward slash in xml TEXT_WITH_LINKSClosed     LabKey Support Forum
Can you try using the field key escape code for forward slash, "$S"? The column name would become:

<column name="col (a$Sl)"></column>
Ben Bimber2012-06-07 13:13Jon (LabKey DevOps)2018-11-16 23:24Error with R fileError with R file TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Daniel,

I'm not sure I quite understand the description of what you're doing. Are you trying to run this script from the command line outside of labkey? Is this everything running on test-ehr, or are you trying to run this locally, but connect to test-ehr for the data?

In general, if you're running this script from LabKey, the script should reply on labkey.url.base for the baseURL. can you print that value to see what your script is using? given the production and test-ehr have different ports and labkey roots, and test-ehr is created by cloning production, it would not surprise me if the wrong value for labkey.url.base was being given. That's just a guess though.
Jon (LabKey DevOps)2019-04-11 11:58Jon (LabKey DevOps)2019-04-11 11:58Error with Foreign KeysError with Foreign Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Thank you for using the LabKey Discussion forums. The forums are intended for Community Edition and Premium Edition users to exchange ideas, questions, and solutions. LabKey personnel mediate the forums and curate our extensive documentation. While we often respond to forum posts, responses to technical questions in addition to in-depth developer support are reserved for our Premium Edition partners. We are eager to help you be successful - we recommend you explore our online documentation at https://www.labkey.org/documentation, and invite you to contact us about expert support and premium features. A detailed overview of our Editions can be found here https://www.labkey.com/platform/labkey-server-editions-feature-comparison

Regards,

Jon
Jon (LabKey DevOps)2017-12-18 15:19Jon (LabKey DevOps)2017-12-18 15:19Error while upgrading LabKeyError while upgrading LabKey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Thank you for providing the error.

The SQL error you're seeing is due to a bug that was fixed in a later version of LabKey. Unless you have a very large search index, you should be able to just clear the tables from your SQL database before you attempt the upgrade and then you would need to let the server rebuild the search index.

To clear your database tables, login as an admin to your SQL database and run the following:

DELETE FROM search.CrawlResources;

DELETE FROM search.CrawlCollections;

This should clear the indexes and then allow you to do the upgrade.

Regards,

Jon
Jon (LabKey DevOps)2020-04-14 12:31Jon (LabKey DevOps)2020-04-14 12:31Error while running trigger scriptError while running trigger script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

The latest 19.3 build is available here:

https://www.labkey.org/Documentation/wiki-page.view?name=prevReleases

On this page, there is a link for 19.3.10 which has the fix that Kevin mentioned where you can then download your binaries:

https://www.labkey.org/Documentation/wiki-page.view?name=prevReleasesDetails&release=19.3.10

Please download the 19.3.10 Release build of LabKey and let us know if that resolves the issue.

Regards,

Jon
eva pujadas2020-04-21 08:11chetc (LabKey Support)2020-05-06 15:45Error while running trigger scriptError while running trigger script TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the 19.3.10 fix.

We have applied it and indeed that solves the issue.

Yes, the problem was that in the afterInsert event, the record was not yet inserted (or at least not found by a "select" query).

Best regards,
Eva
Anthony Corbett2013-03-20 09:35Jon (LabKey DevOps)2018-11-16 23:23Error when using Labkey.Query.insertRows with a null value for server managed key.Error when using Labkey.Query.insertRows with a null value for server managed key. TEXT_WITH_LINKSClosed     LabKey Support Forum
Can anyone verify this issue? Thanks.
Nick Kerr2013-03-20 11:36Jon (LabKey DevOps)2018-11-16 23:24Error when using Labkey.Query.insertRows with a null value for server managed key.Error when using Labkey.Query.insertRows with a null value for server managed key. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

I'm taking a look at this. Thanks for reporting this issue and I'll post an update when I have more information.

Thanks,
Nick
Nick Kerr2013-03-20 17:14Jon (LabKey DevOps)2018-11-16 23:24Error when using Labkey.Query.insertRows with a null value for server managed key.Error when using Labkey.Query.insertRows with a null value for server managed key. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

I've opened an issue after some investigation and we'll look into getting this resolved.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=17433

Thanks,
Nick
Nick Kerr2013-03-21 14:47Jon (LabKey DevOps)2018-11-16 23:24Error when using Labkey.Query.insertRows with a null value for server managed key.Error when using Labkey.Query.insertRows with a null value for server managed key. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

We've fixed this issue on our development branch so this issue should be fixed in the 13.1 release of LabKey.

To get around this for the time being, in the specific case that you linked try not including the third key ('id' in your case) when it is null.

Thanks,
Nick
Matt V2017-12-09 16:16Jon (LabKey DevOps)2018-11-16 23:24Error when upgrading from 17.2 to 17.3 with study.QCstate and moveQCStateToCoreError when upgrading from 17.2 to 17.3 with study.QCstate and moveQCStateToCore TEXT_WITH_LINKSClosed     LabKey Support Forum
I resolved this with following process.

1) Wrote a postgres function to grab all the relevant FKs (constraint name, schema, table, col, etc) from the info schema table and dump into a "temp" table.
2) In that same function, looped over the results from 1 to dump the FK values into another "temp" table. I say temp because its not flagged as such, but I'll drop it later.
3) Wrote a second function to remove the FKs from 1.

1,2, and 3 occur in release scripts that our process executes before the LabKey compilation.

4) Increment my module's version to 17.3. Write a 17.2-17.3.sql script that includes a trigger function that fires after insert or update on core.qcstate. This trigger grabs the data from 1 and 2 to reconstruct the FKs.

The trigger was necessary since my module's name is alphabetically before study and the upgrade script would fire before the qcstate migration one. I didn't want to hack around with naming schemes (e.g. Module: zMyUpdates), so a trigger made the most sense.
5) Remove the trigger function.

This was necessary because we register datasets with LabKey and adhere to the FK constraint definitions. The study.qcstate --> core.qcstate migration didn't account for this and exploded on the DROP table study.qcstate; query.


If I missed something, I'd still be interested in hearing about it, but this seems to have done the trick.
Jon (LabKey DevOps)2017-07-24 17:25Jon (LabKey DevOps)2017-07-24 17:25Error upgrading labkey dev serverError upgrading labkey dev server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

The version of the GenoTyping module you have is meant to run optimally on 15.2. When you try to mix and match module versions, you can run into incompatibility issues.

If you are interested in purchasing a Premium contract to obtain the more current version of the module that works with LabKey 17.2, please let us know.

Regards,

Jon
Jon (LabKey DevOps)2015-05-11 17:12Jon (LabKey DevOps)2018-11-16 23:24Error received by LabKeyError received by LabKey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jared,

We received an error message from your system and wanted to let you know about it.

The error above occurs when an update is not allowed to finish, typically due to rebooting a server or some other type of interruption. You can fix this by going to the recreateViews.view page with your browser (the URL should look like http://<domain>/labkey/admin/recreateViews.view). That view will provide you the option to recreate all views and fix the problem from there.

Regards,

Jon
jlumpe2015-05-11 17:18Jon (LabKey DevOps)2018-11-16 23:24Error received by LabKeyError received by LabKey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the response on this. The error actually happened because I accidentally ran "DROP SCHEMA core CASCADE" in the wrong database, haha. I think a reinstall is probably necessary but I'm not actually using LabKey right now anyways. I would have deleted this thread but I'm not actually sure how to.

Jared
Jon (LabKey DevOps)2015-05-11 17:21Jon (LabKey DevOps)2018-11-16 23:24Error received by LabKeyError received by LabKey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jared,

Thanks for letting us know. We'll consider this closed.

Regards,

Jon
max diesner2020-06-10 02:55max diesner2020-06-10 02:55Error on some wiki pages when trying to save new content with varying usersError on some wiki pages when trying to save new content with varying users TEXT_WITH_LINKSClosed     LabKey Support Forum
As your second post is not visible here is the answer that i got:

Hello,

Welcome to the LabKey Environment!

A user shouldn't have to be a "Site Admin" in order to edit a wiki page, could you try giving the users editor rights to the project in question.

I am a bit confused by the error you got (below). This usually means that there is an issue with the HTML in that wiki, and doesn't really have to do with permissions. Also what did you mean by normal editor/advanced editor, could you send a screenshot of the editors you are looking at?

Illegal attribute 'onclick' on element <a>.

Configuration of your virtual environment looks good.

Thanks,
Chet
max diesner2020-06-10 02:56max diesner2020-06-10 02:56Error on some wiki pages when trying to save new content with varying usersError on some wiki pages when trying to save new content with varying users TEXT_WITH_LINKSActive     LabKey Support Forum
I figured it out, the problem was indeed in the html. The problem arises when you want to have a java popup of a certain link. So as an folder administrator I insert a link via the “advanced editor” and directly add a java popup of the link . The resulting html code looks like this:

<a onclick="window.open('http://example);return false;" href="http://example">example</a></span></td>

I can save it and the code is executed. When I now change to a user with editor rights, I can open up the editor but as soon as I change some of the information on the page and want to change it I get the error:

Unable to save changes due to the following validation errors:
•    Illegal attribute 'onclick' on element <a>.

When I remove the javascript popup via code or the advanced editor the error does not appear and I can save and edit the wikipage with that non-administrator user. In order to circumvent this I can just use rel="noopener noreferrer" target="_blank" in order to send the link to a new tab without the javascript popup.

What I think is still interesting that as an full site administrator it is possible to implement the <a onclick> while as an “folder administrator” or “editor” this line of code results in a validation error.

Thank again for the help, you are awesome as usuall!
Greetings from Germany,
Max
chetc (LabKey Support)2020-06-30 16:57Jon (LabKey DevOps)2020-08-10 10:58Error on some wiki pages when trying to save new content with varying usersError on some wiki pages when trying to save new content with varying users TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Max,

It's great to hear that you were able to get it working!

Could you trying adding the user you are testing with to the developers group? I apologize that I failed to mention this earlier. But whenever you are trying to add JS to a wiki page the user making the change needs to be a part of either the "Site Admins" or "Developers" group.

Thanks,
Chet
chetc (LabKey Support)2020-06-07 17:23chetc (LabKey Support)2020-06-07 17:44Error on some wiki pages when trying to save new content with varying usersError on some wiki pages when trying to save new content with varying users TEXT_WITH_LINKSActive     LabKey Support Forum
Hello,

Welcome to the LabKey Environment!

If your Wiki is just plain HTML then the "Project Admin"/"Editor" role would be sufficient. But if it includes some JavaScript, the users will need to be a part of the "Developers"/"Site Admin" group.
If you do not want to have the other users as "Site Admins" then "Developers" should allow them to successfully edit the wiki.

https://www.labkey.org/Documentation/wiki-page.view?name=devRoles#platformDeveloper

Configuration of your virtual environment looks good.

Thanks,
Chet
Jon (LabKey DevOps)2017-03-07 01:54Jon (LabKey DevOps)2018-11-16 23:23Error - Module has already been set; renderView exceptionError - Module has already been set; renderView exception TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

What version of LabKey are you running? I see that your email address is tied to OHSU. Are you also running one of the special versions of LabKey developed for OHSU, such as the version used for the Primate Research Center (i.e. ONPRC) or some other special one for OHSU?

Can you also provide us with a copy of your labkey.log file? It may provide better insight on the issue you're experiencing.

Regards,

Jon
Matt V2017-03-07 10:41Jon (LabKey DevOps)2018-11-16 23:24Error - Module has already been set; renderView exceptionError - Module has already been set; renderView exception TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
I'm pulling 16.2 with the current build. We're not using a custom version for this, all the custom work is contained in modules and LabKey is built from source each release. After commenting out the throw exception line and writing some logging, it appears to be failing on the "kiem" module, at least so far. Due to replication issues it's difficult to force it to fail more rapidly for faster troubleshooting. I saw this thread, https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=14085, and verified our build process is clean --> production.

Attachment is failing. Is there another way to get you the log?
Jon (LabKey DevOps)2017-03-07 16:00Jon (LabKey DevOps)2018-11-16 23:23Error - Module has already been set; renderView exceptionError - Module has already been set; renderView exception TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

If attaching the file isn't working, feel free to email it to support@labkey.com and reference this support forum post in your message.

We suspect that a 3rd party module (like the keim one you observed) implementation of a webpart is triggering this problem, but has been better enhanced in LabKey 17.1 to allow you as the user to see more details related to the error message.

Regards,

Jon
adam2017-03-23 17:20Jon (LabKey DevOps)2018-11-16 23:24Error - Module has already been set; renderView exceptionError - Module has already been set; renderView exception TEXT_WITH_LINKSClosed     LabKey Support Forum
I've been able to repro this and filed an issue, https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=29847

Adam
Matt V2017-03-24 11:17Jon (LabKey DevOps)2018-11-16 23:24Error - Module has already been set; renderView exceptionError - Module has already been set; renderView exception TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the update, Adam. Glad to hear you were able to repro it and it looks like there's already a plan in place. Any idea if that fix be included in the next release?
adam2017-03-24 14:02Jon (LabKey DevOps)2018-11-16 23:24Error - Module has already been set; renderView exceptionError - Module has already been set; renderView exception TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, fix is committed to trunk and will be included in our 17.2 release. For now, it's best to avoid modifying files in /resources/views while the server is running.

Thanks for reporting and providing details!

Adam
jeckels2011-01-20 09:45Jon (LabKey DevOps)2018-11-16 23:24error messages returned by saveRows.viewerror messages returned by saveRows.view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I've converted this to a standard validation error, with the text "All dataset rows must include a value for <SUBJECT COLUMN NAME>".

Thanks,
Josh
Ben Bimber2011-01-20 09:47Jon (LabKey DevOps)2018-11-16 23:24error messages returned by saveRows.viewerror messages returned by saveRows.view TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

thanks. i havent tried this, but will this sort of fix apply to records lacking a date or other required dataset fields? i dont know if there are any user-supplied ones besides participant/date.
jeckels2011-01-20 10:01Jon (LabKey DevOps)2018-11-16 23:23error messages returned by saveRows.viewerror messages returned by saveRows.view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

This fix is specific to missing the subject/participant value. Most other places should already be doing the right thing, though I'm sure there are spots where we could tighten up the validation and/or error messages. We'll improve them as we see them, and let us know if you notice similar problems.

Thanks,
Josh
Brian Connolly2010-07-09 09:03Jon (LabKey DevOps)2018-11-16 23:24Error in retrieving Date fields using Rlabkey with R 2.11.1Error in retrieving Date fields using Rlabkey with R 2.11.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Ashoka,
I am very sorry for the delay in getting back to you on this problem.

What operating system are you experiencing this problem on? And this is happening when you are running R on your desktop/laptop and not when you are using an R view on the server correct?

Again, I am very sorry for the delay.

Brian
Peter2010-07-09 13:17Jon (LabKey DevOps)2018-11-16 23:24Error in retrieving Date fields using Rlabkey with R 2.11.1Error in retrieving Date fields using Rlabkey with R 2.11.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Ashoka,

We found this same problem recently. Please try the attached update to Rlabkey (2.1.114). We are intending to release this to CRAN when LabKey Server version 10.2 is officially released this month.

Peter
Nick Kerr2013-01-25 11:29Jon (LabKey DevOps)2018-11-16 23:23error in executeSql() - Faceted Filtering on QueryWebPart in child foldererror in executeSql() - Faceted Filtering on QueryWebPart in child folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Thanks for your diligent investigation. Your example really helped.

You are correct that the container path is not being pulled through to the filtering dialog. I've put an issue in for this and am currently investigating a fix.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=17021

Thanks Again,
Nick
Anthony Corbett2013-01-25 11:56Jon (LabKey DevOps)2018-11-16 23:24error in executeSql() - Faceted Filtering on QueryWebPart in child foldererror in executeSql() - Faceted Filtering on QueryWebPart in child folder TEXT_WITH_LINKSClosed     LabKey Support Forum

Nick,

Thanks for looking into this so quickly. Since it looks like you have a code fix already do you think this is targeted for 13.1? I was wondering if it is possible to add this to a 12.3 patch version?

Maybe the same 12.3 patch version mentioned by Kevin for another issue my colleague found:

https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=7634

Would be great to get both of these fixed as we upgrade from 12.2 to 12.3.


Thanks,

Anthony
jeckels2013-01-25 12:02Jon (LabKey DevOps)2018-11-16 23:24error in executeSql() - Faceted Filtering on QueryWebPart in child foldererror in executeSql() - Faceted Filtering on QueryWebPart in child folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Both issues are currently being tracked as likely 12.3 fixes.

Thanks,
Josh
Anthony Corbett2013-01-25 12:04Jon (LabKey DevOps)2018-11-16 23:23error in executeSql() - Faceted Filtering on QueryWebPart in child foldererror in executeSql() - Faceted Filtering on QueryWebPart in child folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Great; Thanks so much!
Shadi Eshghi2016-07-01 17:50Shadi Eshghi2016-07-01 17:50Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
The issue related to running R scripts as pipeline jobs is fixed in the 16.2 update.

Thanks,
Shadi
Jon (LabKey DevOps)2016-05-27 11:18Jon (LabKey DevOps)2018-11-16 23:23Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Shadi,

Can you provide us with more details?

What version of LabKey are you accessing?

Are you accessing a local version of LabKey on your computer or are you accessing a production version on a server?

What table or query are you working with to generate your R view against? Is it a list? A dataset from a study? An assay table? A table from a custom schema?

If you click on Reports > Create R Report (or Views > Create > R View depending on which version of LabKey you're running), does the default code on the source tab that looks like this work when you go to the view tab afterwards?

# This sample code returns the query data in tab-separated values format, which LabKey then
# renders as HTML. Replace this code with your R script. See the Help tab for more details.
write.table(labkey.data, file = "${tsvout:tsvfile}", sep = "\t", qmethod = "double", col.names=NA)

Can you also send us a screenshot of the error you're seeing?

Regards,

Jon
Shadi Eshghi2016-05-27 12:16Jon (LabKey DevOps)2018-11-16 23:23Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for your quick reply.

I am running the development version of Labkey 16.1 on a private server and developing an R view for a custom sql query of targetedms schema type.

This is what I get by default in my R Report Builder Interface, which I believe is identical to what you provided.

# This sample code returns the query data in tab-separated values format, which LabKey then
# renders as HTML. Replace this code with your R script. See the Help tab for more details.
write.table(labkey.data, file = "${tsvout:tsvfile}", sep = "\t", qmethod = "double", col.names=NA)

An screenshot of the error is attached. I should also mention that the problem is not always persistent. Sometimes logging out and in again into the server temporarily fixes the issue, but most of the times it doesn't. And I get the same error even when using the default R script copied above, so it does not seem to depend on the script.

Thanks for your help!
Jon (LabKey DevOps)2016-05-27 13:00Jon (LabKey DevOps)2018-11-16 23:24Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Shadi,

Can you try making an R view on a list and tell me if you get the same behavior?

Regards,

Jon
Shadi Eshghi2016-05-27 14:37Jon (LabKey DevOps)2018-11-16 23:24Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
The default R script works fine on the lists and in fact applying the R view to the list seems to reset the flag that disables the default R script on the query, because the default script works again if I run it on the query afterwards.
I think something in my code is triggering the issue. More specifically I suspect the issue is triggered by one of the functions that communicates with the server to retrieve, write or delete data, because everything runs smoothly until I add the last bit of code that uses getRows, labkey.deleteRows and labkey.insertRows. Each of these functions seems to work fine individually, but the issue seems to occur when I run them sequentially in the same script.

Thanks!
Jon (LabKey DevOps)2016-05-27 20:42Jon (LabKey DevOps)2018-11-16 23:24Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Shadi,

Any chance you can provide us with a copy of the R script you're using?

The only issue I know of where R scripts start having issues with is being used as a Transformation Script for an Assay depending on whether its doing multiple API calls within the script, but this shouldn't cause problems with a view though to my understanding.

Regards,

Jon
Shadi Eshghi2016-06-08 15:40Jon (LabKey DevOps)2018-11-16 23:23Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I have attached the piece of the code that is causing the issue and you might be able to use it to reproduce the error. I would appreciate any hints.

Thanks so much for your help and if you have any question please do not hesitate to contact me.

Best,
Shadi
Jon (LabKey DevOps)2016-06-08 15:47Jon (LabKey DevOps)2018-11-16 23:24Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Shadi,

I took a look at your file and noticed that you do have a lot of API calls being made, but there are some things I'm confused about here.

1. The insertRows functions you're using appear to not have the toInsert option referencing anything.

Here's an example from our Rlabkey documentation:

newrow <- data.frame(
DisplayFld="Inserted from R"
, TextFld="how its done"
, IntFld= 98
, DoubleFld = 12.345
, DateTimeFld = "03/01/2010"
, BooleanFld= FALSE
, LongTextFld = "Four score and seven years ago"
# , AttachmentFld = NA #attachment fields not supported
, RequiredText = "Veni, vidi, vici"
, RequiredInt = 0
, Category = "LOOKUP2"
, stringsAsFactors=FALSE)

insertedRow <- labkey.insertRows("http://localhost:8080/labkey",
folderPath="/apisamples", schemaName="lists", queryName="AllTypes",
toInsert=newrow)

newRowId <- insertedRow$rows[[1]]$RowId

Notice how there is a newrow data.frame above the actual insertRows call that has toInsert=newrow?

Your insertRows is just doing the API call, but the toInsert value doesn't exist.

labkey.insertRows(baseUrl="Insert Labkey URL",
                  folderPath="Insert Directory",
                  schemaName = "lists",
                  queryName = "QuaSAR_AuDIT",
                  toInsert = import_AuDIT)

So although this is doing an insertRows, there is no import_AuDIT data.frame to work off of here.


2. Also, what is this script supposed to do in the grand scheme of things? You have it deleting and inserting rows, but for an Rview, doing this type of work is unusual since the report shouldn't be removing data or inserting data, but just rendering it using things such as selectRows.

Regards,

Jon
Shadi Eshghi2016-06-14 18:26Jon (LabKey DevOps)2018-11-16 23:23Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

To answer the points you brought up:

1. The toInsert option references the output of a function in my code. I have attached an updated code that generate some dummy data instead. (please see the attached file)

2. The script intends to process the data from a custom query and show the results in multiple tables for the users to view. Is there a better way of doing this? I am very new to Labkey and would appreciate any suggestions.

3. I think I have figured out the source of the problem. It appears that the API calls fail when the number of rows in the data pass some threshold. In the file I have attached, you can change the number of rows of the dummy data table using the rownumber variable. For example, the code works fine for rownumber = 100, but fails for rownumber = 5000. Do you know what causes this and how we can solve the issue?

Thanks,
Shadi
jeckels2016-06-15 17:32Jon (LabKey DevOps)2018-11-16 23:24Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Shadi,

The message you're seeing in the user interface indicates that the browser is getting an error back from the server when it attempts to run the report. It will be very helpful if we can identify the specific error it's hitting. Please try the following:

1. Using Chrome as your browser, go to the page where you're hitting the error, and go to the Source tab.
2. Right click and choose Inspect in the menu.
3. Go to the Network tab in the debugging tool that pops up.
4. Go to the Report tab in the R UI.
5. In the debugging tool, find the viewScriptReport entry.
6. Click on the Response tab in the debugging tool.

Please capture what you see. Check the attached screenshot for an example.

Also, if you can have Jon S or one of the other admins pull the labkey-errors.log file from the server, that will help us as well.

Thanks,
Josh
Shadi Eshghi2016-06-16 13:24Jon (LabKey DevOps)2018-11-16 23:24Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

On the error page and for a dataset with rownumber = 5000, the viewScriptReport Response is empty. It basically says "failed to load response data" (screenshot attached). For comparison, I ran the report again with a small dummy dataset (rownumber = 50) and the viewScriptReport Resonse is coppied below.

I have requested the log file and will send it to you as soon as it's available.

Thanks,
Shadi


{
  "requiredJsScripts" : [ ],
  "requiredCssScripts" : [ ],
  "implicitJsIncludes" : [ ],
  "html" : "[superlong console output string ... deleted]"
   "moduleContext" : {
   "pipeline" : { },
   "core" : { },
   "experiment" : { },
   "filecontent" : { },
   "wiki" : { },
   "query" : { },
   "issues" : { },
   "announcements" : { },
   "ms2" : { },
   "targetedms" : {
     "TargetedMS Folder Type" : "Experiment",
     "TargetedMS AutoQCPing Timeout" : "15"
    }
  }
}
jeckels2016-06-17 09:58Jon (LabKey DevOps)2018-11-16 23:24Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Shadi,

Does it take a while for the error message to appear? I wonder if it's hitting a timeout. Can you get an approximate time for how long from the time it starts trying to run to the script to get the message? If it's something like 30 or 60 seconds, that might be the problem, and we can then investigate that side of things.

Thanks,
Josh
Shadi Eshghi2016-06-17 11:02Jon (LabKey DevOps)2018-11-16 23:23Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,
I takes >3 minutes for the error to show.

Thanks,
Shadi
jeckels2016-06-18 15:05Jon (LabKey DevOps)2018-11-16 23:24Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Shadi,

I don't see signs of any other errors, so it seems likely that it's a timeout issue. Please checking the "Run this report in the background as a pipeline job" checkbox in the configuration for the R view. This will cause it to run in the background on the server, and allow you to collect the results after it completes. This is typically a better approach for these kinds of longer-running jobs, so that the user doesn't have to leave their browser sitting, waiting for the script to finish.

You can find the docs for this here:

https://www.labkey.org/home/Documentation/wiki-page.view?name=rBuilder

Thanks,
Josh
Shadi Eshghi2016-06-20 14:27Jon (LabKey DevOps)2018-11-16 23:24Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Thanks for your note.

I am trying to run the script as a pipeline job in the background, but I get an error in the getSession call. (This is the same exact script that runs smoothly with a dataset of 50 rows.)

Error in fromJSON(mydata) : unexpected character '<'
Calls: getSession -> .setupSchemas -> labkey.getSchemas -> fromJSON
Execution halted

I have attached the output of sessionInfo() in case that helps.

Thanks,
Shadi

PS. To clarify, this script runs smoothly if I run it the normal way and not in the background.
Jon (LabKey DevOps)2016-06-24 11:05Jon (LabKey DevOps)2018-11-16 23:23Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
HI Shadi,

Did you manage to get a copy of the logs for us to look at as well?

Just to confirm, you're not running an actual labkey.getSchemas in your R code, right?

http://search.r-project.org/library/Rlabkey/html/labkey.getSchemas.html

Regards,

Jon
jeckels2016-06-24 15:09Jon (LabKey DevOps)2018-11-16 23:23Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Shadi,

I'm guessing that your script is having a problem where it's not being trusted by the web server. It should be connecting as the user who initiated the upload process.

In the latest version of Rlabkey, you should get a better error message. If possible, please ask an admin to update Rlabkey on the server.

Please try adding the following to your Rscript on its own line:

${rLabkeySessionId}

I wouldn't expect it to be needed only when it's running in the background, but I hope it will resolve this problem.

Thanks,
Josh
jeckels2016-06-24 15:10Jon (LabKey DevOps)2018-11-16 23:23Error: Failed to retrieve report resultsError: Failed to retrieve report results TEXT_WITH_LINKSClosed     LabKey Support Forum
I should add that you can see a full list of supported substitutions here:

https://www.labkey.org/home/Documentation/wiki-page.view?name=transformationSubstitutionSyntax

Thanks,
Josh
wongch@bii.a-star.edu.sg2007-05-01 16:41Jon (LabKey DevOps)2018-11-16 23:24ERROR: Failed running Mascot.ERROR: Failed running Mascot.2007-05-25 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Runxuan,

Could you post your mascot logs (from your Mascot server)?

Based on the CPAS search current log, only 47 bytes was returned after the search. These 47 bytes came in a single line of "problem=Error return from ms-searchcontrol.exe"

Thanks,
Chee-Hong.
zhangrunxuan@gmail.com2007-05-24 06:28Jon (LabKey DevOps)2018-11-16 23:23ERROR: Failed running Mascot.ERROR: Failed running Mascot. TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the reply, Chee-Hong.

which log file of Mascot do you need? I didn't find anything relevant in the errorlog.txt, searches.log or monitor.log in Mascot logs folder.

Thanks,

Runxuan
Jon (LabKey DevOps)2016-08-03 17:11Jon (LabKey DevOps)2018-11-16 23:24Error executing R Plot - Peer's certificate has expiredError executing R Plot - Peer's certificate has expired TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tom,

Is this the forum post you're referring to?

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=12168

The problem with that one was due to the certificate that was self-signed was done incorrectly and required a whole new CSR and keystore to be made.

Do you have more than one certificate? The error usually doesn't state the certificate as expired if it isn't. What is the date of the certificate's expiration date? Can you access the certificate to confirm the details? Can you also check the root certificate (and the intermediate certificate if available) to make sure those are current as well?

Regards,

Jon
tlynch@primate.wisc.edu2016-08-04 09:49Jon (LabKey DevOps)2018-11-16 23:24Error executing R Plot - Peer's certificate has expiredError executing R Plot - Peer's certificate has expired TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I was wrong, the certificate had expired. However, I created a new self signed certificate that appears to be valid but I am getting a different certificate error:

Error executing command
javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
Loading required package: Matrix
Loading required package: quadprog
Loading required package: RCurl
Loading required package: bitops
Loading required package: rjson
Error in function (type, msg, asError = TRUE) :
  Issuer certificate is invalid.
Calls: labkey.selectRows ... getURI -> curlPerform -> .Call -> <Anonymous> -> fun
Execution halted

I've attached a screenshot of the Chrome window showing certificate overview.

Tom
Jon (LabKey DevOps)2016-08-04 11:20Jon (LabKey DevOps)2018-11-16 23:23Error executing R Plot - Peer's certificate has expiredError executing R Plot - Peer's certificate has expired TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tom,

Can you bring up the information on the issuer (aka Certificate Authority) of the certificate?

If you click on that View certificate button for the test-ehrvm URL, you should see the details of the certificate showing the domain plus the ROOT CA and Intermediate CA, which would be the issuer.

Here's an example of LabKey.org's (see screenshot) that I grabbed by clicking on the lock icon in my browser and then clicked View Certificate.

Can you take a look at that for your machine and tell me what you're seeing?

Regards,

Jon
jeckels2016-08-04 12:46Jon (LabKey DevOps)2018-11-16 23:23Error executing R Plot - Peer's certificate has expiredError executing R Plot - Peer's certificate has expired TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tom and Jon,

Daniel and I discussed this on today's call.

As you've already identified, the problem is that the certificate is not trusted by the library that Rlabkey is using to make the HTTPS request.

As a temporary workaround, you can tweak the script to disable the certificate validation. See the code snippet under the "Certificate Test" heading here: https://www.labkey.org/home/Documentation/wiki-page.view?name=rlabkeyhttps

You can also add it to the trusted certificate bundle:

https://curl.haxx.se/docs/sslcerts.html

Thanks,
Josh
tlynch@primate.wisc.edu2016-08-04 14:20Jon (LabKey DevOps)2018-11-16 23:24Error executing R Plot - Peer's certificate has expiredError executing R Plot - Peer's certificate has expired TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh. I did try adding the cert to the bundle earlier but that didn't fix it.

It is working now with the setCurlOptions to turn off verification.

Tom
Leo Dashevskiy2013-12-02 16:02Leo Dashevskiy2013-12-02 16:02Error during a new module's initializationError during a new module's initialization TEXT_WITH_LINKSClosed     LabKey Support Forum
Extra space at the end of the module name in the module.properties file must have been the reason.
Leo Dashevskiy2013-07-23 13:08Leo Dashevskiy2013-07-23 13:08Error at startup after upgrading to the trunk version: 27583Error at startup after upgrading to the trunk version: 27583 TEXT_WITH_LINKSClosed     LabKey Support Forum
I guess, that was it, thanks guys!
adam2013-07-23 12:46Jon (LabKey DevOps)2018-11-16 23:23Error at startup after upgrading to the trunk version: 27583Error at startup after upgrading to the trunk version: 27583 TEXT_WITH_LINKSClosed     LabKey Support Forum
You likely need to rebuild.
kevink2013-07-23 12:47Jon (LabKey DevOps)2018-11-16 23:23Error at startup after upgrading to the trunk version: 27583Error at startup after upgrading to the trunk version: 27583 TEXT_WITH_LINKSClosed     LabKey Support Forum
You'll probably have to run "ant rebuild". In general, if you see NoSuchMethodError or NoSuchFieldError you need to do a clean build.
Leo Dashevskiy2012-07-02 17:55Leo Dashevskiy2012-07-02 17:55Error after calling render() on a webPart objectError after calling render() on a webPart object TEXT_WITH_LINKSClosed     LabKey Support Forum
Code base changes are pretty high paced at the bleeding edge here...
Ben Bimber2012-07-02 16:27Jon (LabKey DevOps)2018-11-16 23:24Error after calling render() on a webPart objectError after calling render() on a webPart object TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Thanks for reporting this. We have been changing how we load content from webparts, and this appears to be a bug. I'll look into it.

However, could you also say a little about where you got the 12.2 build? If you go to the admin console, could you say what the SVN revision is for the core module? (see the module list in the bottom right).

Thanks.
Leo Dashevskiy2012-07-02 16:45Jon (LabKey DevOps)2018-11-16 23:24Error after calling render() on a webPart objectError after calling render() on a webPart object TEXT_WITH_LINKSClosed     LabKey Support Forum
Is this what you asking:

Core 12.11
Build OS    Linux
Build Path    /home/ldashevs/Labkey/release/server/../build/modules/core
Build Time    June 26 2012, 12:06 PM
Build User    ldashevs
Extracted Path    /home/ldashevs/Labkey/release/build/deploy/modules/core
Module Class    org.labkey.core.CoreModule
Module Dependencies    <none>
SVN Revision    20898
SVN URL    https://hedgehog.fhcrc.org/tor/stedi/trunk/server
Version    12.11

Should I upgrade to the absolute latest?
Matthew Bellew2012-06-04 13:51Jon (LabKey DevOps)2018-11-16 23:24EntityID vs ContainerEntityID vs Container TEXT_WITH_LINKSClosed     LabKey Support Forum
Good question. The secret is that you don't have to translate. Anywhere, you can specify a containerPath in the API, you should be able to provide the entityid instead. This is true on the URL as well, by the way.

If you find anyplace this is not true, let us know.

Matt
Ben Bimber2012-06-04 13:52Jon (LabKey DevOps)2018-11-16 23:24EntityID vs ContainerEntityID vs Container TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Check out containerFilter:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html

Those are the JS docs, but the same should be available to java code. for example, you could run you query at the project level, then use the containerFilter 'currentAndSubfolders'. you could also use 'allFolders'.
jdutra2012-06-05 06:34Jon (LabKey DevOps)2018-11-16 23:23EntityID vs ContainerEntityID vs Container TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Matt! That worked perfectly!
Karl Lum2010-03-17 10:19Jon (LabKey DevOps)2018-11-16 23:24embed R view without showing console?embed R view without showing console? TEXT_WITH_LINKSClosed     LabKey Support Forum
The showSection param is the identifier in your R script that you used to define your replacement param.

For example, in the following script fragment, you would use 'labkey_png' as the value for your showSection param to only show the image in your webpart:

png(filename="${imgout:labkey_png}")
        plot(c(rep(25,100), 26:75), c(1:100, rep(1, 50)), ylab= "L", xlab="LabKey",
           xlim= c(0, 100), ylim=c(0, 100), main="LabKey in R")
        dev.off()
Maya Li2012-01-05 14:11Maya Li2012-01-05 14:11embed multiple webpartsembed multiple webparts TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, this works. I must say this is a very strange and unexpected behavior. Thanks for the help.
Ben Bimber2012-01-05 11:09Jon (LabKey DevOps)2018-11-16 23:24embed multiple webpartsembed multiple webparts TEXT_WITH_LINKSClosed     LabKey Support Forum
hi maya,

i believe you problem is the self-closing div tags (<div />), so i'd try:


    <div id="mDiv"></div>
    <div id="studyListDiv"></div>

and it should work.
Jon (LabKey DevOps)2018-11-13 12:52Jon (LabKey DevOps)2018-11-13 12:52Email notification when adding an existing user to a new projectEmail notification when adding an existing user to a new project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sofia,

This functionality does exist.

Under the "Add Multiple Users" section in the following doc:

https://www.labkey.org/Documentation/wiki-page.view?name=projectGroups

This is the only place where new users could be sent a notification to indicate that they've been added into a designated group.

Regards,

Jon
Maya Li2012-01-20 09:48Maya Li2012-01-20 09:48EditorGridPanel not using filterArray set from storeEditorGridPanel not using filterArray set from store TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Ben. I changed the editor store and it worked pretty well. Also, thanks for the tip on using console.log. Great idea!
Ben Bimber2012-01-20 04:57Jon (LabKey DevOps)2018-11-16 23:23EditorGridPanel not using filterArray set from storeEditorGridPanel not using filterArray set from store TEXT_WITH_LINKSClosed     LabKey Support Forum
hi maya,

the store you're editing controls which records will be shown in the grid. it sounds like you're referring the to combobox that is used as the editor for the cohort field. the editorgrid will get the metadata for each column in the table (it looks like litterbox.criteria in your case) and then render the appropriate column for this datatype. if the column has a lookup defined, it will create a combobox to use as the editor. this combo is backed by its own store, separate from the one you're manipulating.

with our current API, your best option is to check out the columnmodelcustomize event from EditorGridPanel. you'd use something like:

 var criteriaGrid = new LABKEY.ext.EditorGridPanel({
            store: cohortStore,
            width:800,
            renderTo: 'criteriaList',
            autoHeight: true,
            title: 'Eligibility Criteria',
            editable: true,
            showExportButton: false,
            autoSave: true ,
listeners: {
   scope: this,
   columnmodelcustomize: function(columnModel, index)
   {
        //find your column of interest, then look for the editor property. change the store of this editor for one you create.
      var editor = index[myColumnName].editor;
      //change the store or replace the whole editor.
   }
});

that code is just typed into the browser and untested, so there might be typos.

if you want or need more detail on changing the store for that combo, let me know.

another comment: instead of using alert() for debugging, use console.log(). it's less annoying, and you can actually write out objects.
Matthew Bellew2010-07-26 09:40Jon (LabKey DevOps)2018-11-16 23:24EditorGridPanel and getFieldEditorConfigEditorGridPanel and getFieldEditorConfig TEXT_WITH_LINKSClosed     LabKey Support Forum
I totally agree that these should share code (I didn't have time to do all the regression testing required when I wrote FormPanel initially). There were a few cases that are handled differently. I can't remember all of them off the top of my head, but handling of multi-line text fields comes to mind.
Matthew Bellew2010-07-26 09:41Jon (LabKey DevOps)2018-11-16 23:24EditorGridPanel and getFieldEditorConfigEditorGridPanel and getFieldEditorConfig TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm curious how well you change works. Let us know of any problems you hit.
Ben Bimber2010-07-26 09:54Jon (LabKey DevOps)2018-11-16 23:23EditorGridPanel and getFieldEditorConfigEditorGridPanel and getFieldEditorConfig TEXT_WITH_LINKSClosed     LabKey Support Forum
hi matt,

you're probably right on multi-line text. other other main difference is that getFieldEditor uses 'jsonType' instead of 'type'. jsonType is standardized across the various query APIs, while 'type' is not. in the future I expect that I'll be asking for improvements in getFieldEditor (it's a very useful component when creating data entry), so it would be nice to only need to make them once.

on a related subject:

.Form.formHelper also contains a method designed to get and track Ext stores. It serves a few purposes:

1. each store will have a unique ID. if a store was already created, labkey will use that one instead of making a new one.
2. it's called by getFieldEditor to populate select menus

It is mainly called by getFieldEditor, but I think something along these lines is more broadly useful. Below is a modification I made to it, with some explanation of the rationale behind the ideas:


EHR.ext.getLookupStore = function(c, uniqueName)
    {
        this.lookupStores = this.lookupStores || {};

//this code currently exists in .getFieldEditor. It seems like the right place is to put it here.
        // normalize lookup
        c.table = c.table || c.queryName;
        c.schema = c.schema || c.schemaName;
        c.view = c.view || c.viewName;
        c.container = c.container || c.containerPath || LABKEY.container.path;

//you can optionally pass a 'uniqueName' for your store, which will be it's ID. if you omit that, one will be auto-created
//currently the code to create your unique ID lives in getFieldEditor. it seems like that should be done here instead.
        if (typeof(uniqueName) != 'string')
            uniqueName = [c.schema,c.table,c.view,c.keyColumn,c.displayColumn].join('||');

        var store = this.lookupStores[uniqueName];
        if (!store)
        {
            var columns = [];
            if (c.keyColumn)
                columns.push(c.keyColumn);

            if (c.displayColumn && c.displayColumn != c.keyColumn)
                columns.push(c.displayColumn);
//the existing code tries set c.columns='*' if you dont supply key/display columns
//i dont think * actually is recognized by labkey. omitting 'columns' should do the exact same thing, right?
            if(columns.length)
                c.columns = columns.join(',');
//might be kinda nice if we could supply Ext config to set additional properties of the Ext.data.Store. LAKBEY.ext.Store lets you do some at that, but overwrites the 'listeners'
//property, among others. the best thing would be to modify LABKEY.ext.Store, but we could allow apply Ext properties after it's created in here.
            c.autoLoad = true;
            store = new LABKEY.ext.Store(c);
            this.lookupStores[uniqueName] = store;
        }
        return store;
    }
Jon (LabKey DevOps)2021-08-05 10:18Jon (LabKey DevOps)2021-08-05 10:18edit on list deletes entries rather than updates themedit on list deletes entries rather than updates them TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Thomas,

I suspect you have filters setup in your default view for your list. We're unable to reproduce the issue you described on just editing list rows alone.

However, if you have a default view that is using filters and you edit a specific field that you're applying filters on, you can expect that row to disappear from your view due to the filter.

Can you verify your filters by clicking on the grid button on the left in your grid view and select "Customize Grid"? You should see whether any filters are enabled. Once you edit or remove them, that should display those rows you had edited from earlier.

Regards,

Jon
Jon (LabKey DevOps)2017-04-26 17:29Jon (LabKey DevOps)2018-11-16 23:24Edit links for module custom SQL queriesEdit links for module custom SQL queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

Those links to edit rows are tied to tables (e.g. Lists & Datasets) rather than queries, which is why those edit links do not appear on queries.

For example, if you created a list (which would be your table) and then you created a query off of that list, the option to edit those records on the list wouldn't appear off of that query.

If you really need your query to have some kind of ability to do this, there is a hacky way to produce something like this. It would require you to leverage the URL feature within the metadata to accomplish this.

I created a very basic list called "ListTest" with three fields, the primary key, name, and "check" for a boolean value (see listscreenshot.png)

Then I created a query off of that list via the Schema Browser called "ListTest2":

SELECT 'Edit' AS Edit,
'Details' AS Details,
ListTest.Key,
ListTest.Name,
ListTest.Check
FROM ListTest

Then I added the following XML Metadata to the query.:

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="ListTest2" tableDbType="NOT_IN_DB">
    <columns>
      <column columnName="Edit">
        <url>/query/updateQueryRow.view?schemaName=lists&amp;query.queryName=ListTest&amp;Key=${Key}</url>
      </column>
      <column columnName="Details">
        <url>/list/details.view?listId=1&amp;pk=${Key}</url>
      </column>
    </columns>
  </table>
</tables>

This created the Edit and Details links to the left of the record, even though it was a query. (See listqueryscreenshot.png)

Hope this helps.

Regards,

Jon
Dave Bradlee2014-05-30 15:15Jon (LabKey DevOps)2018-11-16 23:24Editing Specimen PropertiesEditing Specimen Properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

On question (1), this looks like a bug. I added lookup columns as you suggest and it's not displaying the lookup's "label" and if I try to edit that specimen I do not get a dropdown as I would expect.

On Question (2), this is not possible. The determination of which vials are grouped into a specimen is fixed. (Generally these are the fields for types, ptid and the draw timestamp and maybe another). There is no way currently to specify which fields are considered for this grouping. You can add a field to Specimen, but it can only get populated via one of the new rollup rules we defined (CountOf or SumOf), so they are fairly limited.

Thanks.

Dave Bradlee
Jon (LabKey DevOps)2018-09-24 14:28Jon (LabKey DevOps)2018-09-24 14:28Editing more than one record at a timeEditing more than one record at a time TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

I've answered this in another post you opened.

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=18173

As stated before, you can use the API to do bulk editing or use the query-updateQueryRows.view page and wire up a button in your grid view via XML Metadata to do a bulk selection.

Regards,

Jon
Greg Taylor2013-09-09 17:04Jon (LabKey DevOps)2018-11-16 23:24edit dataset field, data then disappearededit dataset field, data then disappeared TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jeffrey,
We did some investigation on our development system regarding this issue. When you update a column and return to a saved view, it may appear that the data has been lost because the column is missing but we would be very surprised if the data was actually gone in the underlying table. What may be happening in this case is that the column was renamed correctly and the data is retained but the existing view still references the old column name which is not displayed. To check for this, look in customize view for your table. You may then re-add the new column.

If you would like us to look into this issue further, please let us know.

Greg
Jon (LabKey DevOps)2019-01-17 16:54Jon (LabKey DevOps)2019-01-17 16:54Editable QueriesEditable Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

I'm not sure I'm understanding your question.

SQL Queries created in the Schema Browser are only editable by those with Administrator access for that particular container the query resides.

If you are speaking about trying to create a query that is based on a table or a few different tables via a JOIN or UNION and having those results be editable, that isn't possible in LabKey since there is no way to identify where specific data is originating from and the data itself can be manipulated from within the query.

Regards,

Jon
jeckels2013-02-12 09:10Jon (LabKey DevOps)2018-11-16 23:24editable external mySQL schemaeditable external mySQL schema TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

We don't yet support editing tables in external schemas for MySQL. This likely wouldn't be a lot of work, but isn't something that we've tested. I suspect there are a few MySQL-specific things that we'd need to handle, such as finding out the sequence value that was inserted for auto-incrementing columns.

In the core LabKey Server Java code, this is controlled by the isEditable() method on SqlDialect. MySqlDialect (server\modules\bigiron\src\org\labkey\bigiron\mysql\MySqlDialect.java) doesn't override isEditable(), so it gets the default implementation from SimpleSqlDialect, which always returns false.

Thanks,
Josh
bront@kcr.uky.edu2013-02-12 11:01Jon (LabKey DevOps)2018-11-16 23:24editable external mySQL schemaeditable external mySQL schema TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Thanks for getting back with me. I think we will migrate the data into postgres and go from there... for now.

cheers,

b
Matthew Bellew2010-06-28 10:13Matthew Bellew2010-06-28 10:13Editable Data GridEditable Data Grid TEXT_WITH_LINKSClosed     LabKey Support Forum
Nope, not Bill (though he is a helpful resource on the support boards). Elizabeth Nelson one of the two writers on the LabKey documentation team. The other is Steve Hanson.

Matt
Lili2010-06-28 09:40Lili2010-06-28 09:40Editable Data GridEditable Data Grid TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you, Bill(?). This works for me.
eknelson2010-05-07 12:37Jon (LabKey DevOps)2018-11-16 23:24Editable Data GridEditable Data Grid TEXT_WITH_LINKSClosed     LabKey Support Forum
You may be looking for the "editable" config property for LABKEY.ext.EditorGridPanel. For further info on this API and samples, see:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ext.EditorGridPanel.html
jeckels2012-10-09 13:14Jon (LabKey DevOps)2018-11-16 23:24Dynamically create a folderDynamically create a folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Charlotte,

If you're using the JavaScript APIs, you can use LABKEY.Security.createContainer(). If you're using Java, the equivalent API is org.labkey.remoteapi.security.CreateContainerCommand.

Whatever language you are using, the user invoking the API will need to be a site admin to create a project, or at least a project admin to create a folder. This is the same permission requirements as using the standard user interface.

Thanks,
Josh
jeckels2009-01-08 11:08Jon (LabKey DevOps)2018-11-16 23:24drt problemdrt problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

Sorry I didn't think of this before, but the version of Selenium we're using doesn't work with Firefox 3. Try installing Firefox 2 in a different directory (they can coexist without problems), put it first on your path, and see if that helps.

Thanks,
Josh
kevink2009-01-08 13:27Jon (LabKey DevOps)2018-11-16 23:24drt problemdrt problem TEXT_WITH_LINKSClosed     LabKey Support Forum
The more recent builds of selenium will work with Firefox 3, but they haven't made an official build yet. I've been running some old version for a while now without any problems except for the Study BVT running slowly.

You can find the nightly builds of selenium here:

http://nexus.openqa.org/content/repositories/snapshots/org/openqa/selenium/selenium-remote-control/1.0-SNAPSHOT/

Dig around in one of the selenium-remote-control-1.0-XXXXX-dist.zip files to find selenium-server.jar and selenium-java-client-driver.jar and replace your local versions in <labkey-root>/server/test/lib. Before replacing the jars, run "ant stopSeleniumServer" from the server/test directory.

Kevin
adam2008-05-13 08:55Jon (LabKey DevOps)2018-11-16 23:23drt GWT service failuredrt GWT service failure TEXT_WITH_LINKSClosed     LabKey Support Forum
I've seen this as well. I've never looked into too deeply, but I know that when Tomcat reloads the webapp in the dev environment it often has trouble with calls like getClass().getClassLoader().getResourceAsStream(stream). It should never appear after a full Tomcat restart.

Feel free to file a bug -- looks like we could easily eliminate this by migrating to DefaultModule.getResourceStream(String path), which retrieves the file directly from source when running in dev mode.
adam2009-09-30 17:55Jon (LabKey DevOps)2018-11-16 23:24DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com." TEXT_WITH_LINKSClosed     LabKey Support Forum
Which test is this... SecurityTest?

Nothing obvious comes to mind -- it doesn't seem to be a problem on TeamCity. Easiest is probably for you to debug it to find out exactly what line is causing the problem. Create a new IntelliJ remote Run/Debug configuration for localhost:5005; call it "drt". Invoke the test in debug mode:

    ant drt-debug -Dtest=security

After starting up, the test will wait for you to connect to port 5005. In IntelliJ, set a breakpoint before the problematic statement, select your "drt" configuration, and debug. The test will continue and you can step through the statements. Adding log statements might be helpful as well.

BTW, you shouldn't have to manually clean anything up -- you can clean up after a single test using -Dcleanonly=true, so:

    ant drt -Dtest=security -Dcleanonly=true

In addition, every test should clean up before running.
Brian Pratt2009-09-30 18:02Jon (LabKey DevOps)2018-11-16 23:24DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com." TEXT_WITH_LINKSClosed     LabKey Support Forum
Correct, it's the security test. Somehow it's getting to a state where it's trying to impersonate while already impersonating. This is so not what I'm interested in that I'd happily just nuke something to move past this, but I can debug if need be.

I also have that "hangs on replace" problem with the Build target in ant (but not on commandline), makes me wonder if my (WinXP) system isn't hosed somehow.
adam2009-09-30 18:12Jon (LabKey DevOps)2018-11-16 23:24DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com." TEXT_WITH_LINKSClosed     LabKey Support Forum
The test intentionally attempts to impersonate while impersonating -- it's checking to make sure the right thing happens in this case (the message in your subject is supposed to appear). It's likely that something immediately after this check is failing, perhaps delete user.

Several of us have seen the "hang on replace" problem when invoking ant from within IntelliJ -- no ideas there either, but I doubt it has anything to do with this issue.
Brian Pratt2009-10-01 13:14Jon (LabKey DevOps)2018-11-16 23:23DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com." TEXT_WITH_LINKSClosed     LabKey Support Forum
Sure enough I was misunderstanding the problem - it's actually failing because it can't find the Delete button - although it's right there. Maybe I'll try switching browsers, although I imagine Firefox (I have 3.5.3) is the one that's actually preferred.
Brian Pratt2009-10-01 15:57Jon (LabKey DevOps)2018-11-16 23:24DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com." TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, absolutely stumped. I thought maybe it's a race condition, as the Delete button is greyed out until the username is checked (and it does get checked), but even a sleep(10000) and a log call don't seem to fix that. Any selenium jockeys sensing anything familiar here?

...
    [junit] 15:51:31,250 Checking for link with exact text 'Projects'
    [junit] 15:51:31,265 Checking for link with exact text 'Site Users'
    [junit] 15:51:31,265 Clicking link with text 'Site Users'
    [junit] 15:51:31,281 selenium - Clicking on element: link=Site Users
    [junit] 15:51:31,796 Checking checkbox //a[text()="details"]/../../td[text()="delete_me@security.test"]/../td[1]/input
    [junit] 15:51:31,796 selenium - Clicking on element: //a[text()="details"]/.
./../td[text()="delete_me@security.test"]/../td[1]/input
    [junit] 15:51:31,828 trying to delete user [bpratt added log message]...
    [junit] 15:51:43,187 =============== Completed SecurityTest (1 of 1) =================
    [junit]
    [junit] testSteps(org.labkey.test.drt.SecurityTest)
    [junit] junit.framework.AssertionFailedError: No button found with text "Delete"
    [junit] at org.labkey.test.BaseSeleniumWebTest.clickButton(BaseSeleniumWebTest.java:2069)
    [junit] at org.labkey.test.BaseSeleniumWebTest.clickNavButton(BaseSeleniumWebTest.java:2093)
...
Matthew Bellew2009-10-01 17:35Jon (LabKey DevOps)2018-11-16 23:24DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com." TEXT_WITH_LINKSClosed     LabKey Support Forum
I gave up on trying the DRTs with Firefox 3.5. I uninstalled it and went back to the previous version (which I can't recall right now). In theory, you can have both installed, you just need to specify the path. Something like this

ant drt -Dselenium.browser=*firefox3 c:\Program Files\Mozilla Firefox3\firefox.exe
Brian Pratt2009-10-01 17:37Jon (LabKey DevOps)2018-11-16 23:23DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com." TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, good to know, thanks. This has been making me crazy.
Brian Pratt2009-10-02 09:38Jon (LabKey DevOps)2018-11-16 23:23DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT does not work with Firefox 3.5 TEXT_WITH_LINKSClosed     LabKey Support Forum
Yeah, that was the entire issue. Rolled firefox back to 3.0 and DRT security test completes without issue.

This needs to go into the developer notes in BIG RED LETTERS, I burned a boatload of time on this.
eknelson2009-10-02 11:27Jon (LabKey DevOps)2018-11-16 23:24DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT does not work with Firefox 3.5 TEXT_WITH_LINKSClosed     LabKey Support Forum
Indeed, this definitely needs to go in the docs -- thanks for letting me know. I've updated the relevant doc page (https://www.labkey.org/wiki/home/Documentation/page.view?name=checkin) as follows:

-------------------
**Note:** As of October 2009, you must be running **Firefox 3.0,** ~~not 3.5,~~ to successfully run the DRTs. If you are running Firefox 3.5, the DRT will fail when it cannot find certain buttons. A typical error message you might see is 'No button found with text "Delete"'. In theory, you are can have both versions of Firefox installed, as long as you specify the path to Firefox 3.0 when you run the DRT. You can use something along the lines of:

ant drt -Dselenium.browser=*firefox3 c:Program FilesMozilla Firefox3firefox.exe
-------------------

Thanks,

Elizabeth
adam2009-10-02 12:13Jon (LabKey DevOps)2018-11-16 23:24DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT does not work with Firefox 3.5 TEXT_WITH_LINKSClosed     LabKey Support Forum
That page hadn't been touched in a few years; I just did a rewrite to bring it up-to-date again.
adam2010-01-23 10:05Jon (LabKey DevOps)2018-11-16 23:24DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT does not work with Firefox 3.5 TEXT_WITH_LINKSClosed     LabKey Support Forum
Update: Tests now support Firefox 3.5, thanks to Kevin. See https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=3690
Brian Pratt2010-01-24 20:54Jon (LabKey DevOps)2018-11-16 23:24DRT gets stuck on "Already impersonating; click here to change back to brian.pratt@insilicos.com."DRT does not work with Firefox 3.5 TEXT_WITH_LINKSClosed     LabKey Support Forum
Yeah, I went ahead and tried 3.5 when I saw that post, and can confirm that it works great.
brittp2008-01-28 14:42Jon (LabKey DevOps)2018-11-16 23:24DRT error: study.participantcohortdatasetid does not existDRT error: study.participantcohortdatasetid does not exist TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

That message indicates that your database and schema file are out of sync for the study module. On 1/23, I checked in new SQL scripts that added those columns (\server\modules\study\src\META-INF\study\scripts\[sql server/postgres]\study-2.31-2.32.sql), updated the study.xml file, and bumped the study module's version from 2.31 to 2.32. The error you're seeing implies that the upgrade script didn't run as expected.

Is this happening on PostgreSQL or SQL Server? Did you see any SQL script failures during upgrade after your first post-update startup? What version of the study module is installed on your system now? (This is viewable via the admin console.)

Thanks,
Britt
wnels2@uky.edu2008-01-29 10:31Jon (LabKey DevOps)2018-11-16 23:24DRT error: study.participantcohortdatasetid does not existDRT error: study.participantcohortdatasetid does not exist TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Britt,
It's happening on PostgreSQL. I didn't notice and script failures. The current version is 2.30 on the admin page.
The study-2.31-2.32.sql file is there.

study.xml appears to have been updted.
C:\CPAS\server\modules\study\src\META-INF>svn info study.xml
Path: study.xml
Name: study.xml
URL: https://hedgehog.fhcrc.org/tor/stedi/trunk/server/modules/study/src/META-IN
F/study.xml
Repository Root: https://hedgehog.fhcrc.org/tor/stedi
Repository UUID: a4ab64de-fbdc-0310-83ae-be1847ca59a0
Revision: 7889
Node Kind: file
Schedule: normal
Last Changed Author: brittp@labkey.com
Last Changed Rev: 7875
Last Changed Date: 2008-01-23 13:53:16 -0500 (Wed, 23 Jan 2008)
Text Last Updated: 2008-01-28 15:35:50 -0500 (Mon, 28 Jan 2008)
Checksum: 5456d3ee819e82b074cd1d5fcf2a98f8

Thanks for your help,
Bill
wnels2@uky.edu2008-01-29 10:38Jon (LabKey DevOps)2018-11-16 23:23DRT error: study.participantcohortdatasetid does not existDRT error: study.participantcohortdatasetid does not exist TEXT_WITH_LINKSClosed     LabKey Support Forum
Running the database tests give me. Where/when would I see script errors displayed. I can drop everthing and scratch from scratch with this install.

Checking Container Column References...

Checking PropertyDescriptor and DomainDescriptor consistency...

Checking Schema consistency with tableXML...
    ERROR: Inconsistency in Schema study
ERROR: Table Study Column name participantcohortdatasetid found in Xml but not in database.
ERROR: Table Study Column name participantcohortproperty found in Xml but not in database.
ERROR: Table Visit Column name cohortid found in Xml but not in database.
ERROR: Table DataSet Column name cohortid found in Xml but not in database.
ERROR: Table Participant Column name cohortid found in Xml but not in database.
ERROR: Table Plate Column name Type found in Xml but not in database.

ERROR: TableName cohort type TABLE found in Xml but not in database.


Database Consistency checker complete
adam2008-01-29 10:48Jon (LabKey DevOps)2018-11-16 23:24DRT error: study.participantcohortdatasetid does not existDRT error: study.participantcohortdatasetid does not exist TEXT_WITH_LINKSClosed     LabKey Support Forum
If you have updated to and compiled all the latest files then your Study module version should be 2.32, NOT 2.30.

- Check the module version in the StudyModule.java constructor. If it's not 2.32 then your SVN update didn't get all the current files.
- If the version is 2.32 then the file must not have been compiled. Try a rebuild.
wnels2@uky.edu2008-01-29 11:18Jon (LabKey DevOps)2018-11-16 23:24DRT error: study.participantcohortdatasetid does not existDRT error: study.participantcohortdatasetid does not exist TEXT_WITH_LINKSClosed     LabKey Support Forum
Clean and rebuild is working. Thanks.
Nick Kerr2012-10-05 11:04Jon (LabKey DevOps)2018-11-16 23:24drag and drop in files web part?drag and drop in files web part? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Currently drag/drop within the file webpart is not set up. In 12.2 we added the ability to move files around via the 'move' button on the button bar.

If you don't see the button, you can add it by clicking 'Admin' -> 'Toolbar and Grid Settings' -> and drag the 'move' button onto the button bar.

This then allows you to choose a destination folder once you have the file selected.

Thanks,
Nick
bront@kcr.uky.edu2012-10-05 11:37Jon (LabKey DevOps)2018-11-16 23:24drag and drop in files web part?drag and drop in files web part? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Nick,

I think something else must be up here.

The Admin Console shows FileContent 12.20, but I am not seeing the "Move" button. I've attached a screen capture (and I sincerely hope I'm not missing something obvious).

Thanks for your help.

bront
Nick Kerr2012-10-05 13:26Jon (LabKey DevOps)2018-11-16 23:23drag and drop in files web part?drag and drop in files web part? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

I seem to have been mistaken. It is available on labkey.org which is currently running one of our sprint builds of 12.3.

https://www.labkey.org/project/home/Demos/File%20Management%20Tutorial/begin.view?

Sorry for the incorrect information, I thought it was 12.2.

Thanks,
Nick
bront@kcr.uky.edu2012-10-05 13:46Jon (LabKey DevOps)2018-11-16 23:24drag and drop in files web part?drag and drop in files web part? TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick,

Not a problem. Just gives us something to look forward to...

cheers,

bront
jeckels2016-09-27 23:04Jon (LabKey DevOps)2018-11-16 23:24Download path for entire folder, in FileContent moduleDownload path for entire folder, in FileContent module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Patrick,

Are you looking to give users a direct link to view the folder/directory in the web interface, or to download its contents?

To do the former, you can use the special WebDav URL for the server, which is available at <BASE_SERVER_URL/_webdav/. For example, for this server (labkey.org) go to:

https://labkey.org/_webdav

You can then browse and see the direct URL in the bottom of the page.

In the same view, you can check the box for a folder and click the download icon to get a ZIP file containing all of the files in that subfolder. This also works for multiple folders or files.

Thanks,
Josh
Steve2011-11-17 13:08Jon (LabKey DevOps)2018-11-16 23:23Download Links go awayDownload Links go away TEXT_WITH_LINKSClosed     LabKey Support Forum
If you add the download link column via the Admin dialog, it will persist.

Click Admin -> Toolbar and Grid Settings.
Add the download link column and Submit.

Hope this helps, Steve
psisk@broadinstitute.org2011-11-17 16:16Jon (LabKey DevOps)2018-11-16 23:24Download Links go awayDownload Links go away TEXT_WITH_LINKSClosed     LabKey Support Forum
Beautiful!

Many thanks.
xyang2015-12-18 10:44Jon (LabKey DevOps)2018-11-16 23:24Download files from filtered listDownload files from filtered list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Excel export will support embed images for 'Attachment' column type in the next release. You can define a list field to be of Attachment type (columns with URL field property won't support embed image for export) and attach the image file directly. Excel export will export the filtered list with the images embed along with the original image file name at the correct cell location. This is not quite the desired zip file format, but the images won't lose quality when embedded in excel.
Ben Bimber2015-12-18 10:54Jon (LabKey DevOps)2018-11-16 23:23Download files from filtered listDownload files from filtered list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

I dont know your level or interest in writing javascript, but it appears that the action that the API file browser uses to download files could be co-opted by your list. You'd need to make a custom button for this. When clicked, it could take the checked rows, query the server to file the file paths or names (i assume this is a column in your list...), and then POST to /dav/zip.view with the directory and list of files to include. I dont believe this is a public API, so would theoretically be subject to change in future versions, though in this instance I think your risk is fairly low.

-Ben
eva pujadas2016-01-14 05:56Jon (LabKey DevOps)2018-11-16 23:23Download files from filtered listDownload files from filtered list TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Thanks for your hint. That's exactly what we needed!
I have implemented a prototype. For the sake of sharing, I paste the relevant code:

<div id="queryWebPartTag"></div>

<script type="text/javascript">
    var listName = "some_list";
    var imageFolderPath = "some_folder";
    var imageColumnName = "some_column";
    var buttonLabel = "DOWNLOAD PICTURES";

    var queryWebPart = new LABKEY.QueryWebPart({
        renderTo : "queryWebPartTag",
        title : listName,
        schemaName : "lists",
        queryName : listName,
            buttonBar : {
            items : [
                    LABKEY.QueryWebPart.standardButtons.views,
                    LABKEY.QueryWebPart.standardButtons.insertNew,
                    LABKEY.QueryWebPart.standardButtons.deleteRows,
                    LABKEY.QueryWebPart.standardButtons.exportRows,
                    LABKEY.QueryWebPart.standardButtons.print,
                    LABKEY.QueryWebPart.standardButtons.pageSize,
                    {text : buttonLabel, handler : selectPictures}
            ]
        }
    });

    function selectPictures(dataRegion) {
        LABKEY.Query.selectRows({
            requiredVersion : 9.1,
            schemaName : dataRegion.getQueryConfig().schemaName,
            queryName : dataRegion.getQueryConfig().queryName,
            filterArray : dataRegion.getQueryConfig().filters,
            success : onSuccess,
            failure : onFailure
        });
    }

    function onSuccess(data) {
        var url = LABKEY.ActionURL.getBaseURL() + "_webdav" + LABKEY.ActionURL.getContainer() + "/@files/" + imageFolderPath + "?method=zip&depth=-1";
        for (var i = 0; i < data.rowCount; i++) {
            url = url + "&file=" + data.rows[i][imageColumnName].value;
        }
        window.location = url;
    }

    function onFailure(errorInfo, options, responseObj) {
        if (errorInfo && errorInfo.exception)
            alert("Failure: " + errorInfo.exception);
        else
            alert("Failure: " + responseObj.statusText);
    }
</script>
jeckels2010-07-27 09:52Jon (LabKey DevOps)2018-11-16 23:23do lists supprt the datatype entityid?do lists supprt the datatype entityid? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Lists don't have built-in support for UUID right now. We had to add it for datasets so that you could refer to rows solely by the UUID, instead of by the other types of keys that datasets already supported.

For now with lists, you can specify the key as a VARCHAR and use the LABKEY.Utils.generateUUID() to set its value when you insert a new row.

In the future, it would be great for lists to natively support EntityId/UUID keys so that you don't have to make up a key value for new rows yourself.

Thanks,
Josh
Ben Bimber2010-07-27 09:59Jon (LabKey DevOps)2018-11-16 23:23do lists supprt the datatype entityid?do lists supprt the datatype entityid? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. for most lists, we usually had an autoincrementing key. does the mysql sync require that the uuid field be the primary key? i assume it runs the update command using uuid?
jeckels2010-07-27 10:09Jon (LabKey DevOps)2018-11-16 23:23do lists supprt the datatype entityid?do lists supprt the datatype entityid? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, that's correct. We use the UUID as the key for both lists and datasets.

Thanks,
Josh
daves2010-04-06 10:45Jon (LabKey DevOps)2018-11-16 23:24Do file based modules allow XML for R script metadata?Do file based modules allow XML for R script metadata? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes R reports can have an associated meta-data file. The XSD is in the /schemas/ directory with the name report.xsd. The format is the same one we store in the database when you create an R report via the web user interface. I don't have an example handy, but if you create an R report and then look in the core.report table in the descriptorxml column, you'll see an example.

The main reason you'd want to use a meta-data XML file is to adjust the reportType property. Some of the views in the study module will show only reports that have the specific report type of "Study.rReport".
jeckels2010-02-23 16:11Jon (LabKey DevOps)2018-11-16 23:24does QWP support containerPath?does QWP support containerPath? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes. It's missing from the doc page, but it supports the same containerPath config option as LABKEY.WebPart.

Thanks,
Josh
Matthew Bellew2013-09-12 16:09Matthew Bellew2013-09-12 16:09Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing?Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing? TEXT_WITH_LINKSClosed     LabKey Support Forum
As to why these are inconsistent. The schema files use names that are consistent with xml schema conventions

  http://www.w3.org/TR/xmlschema-2/

and SQL uses names consistent with JDBC/ODBC conventions

  http://docs.oracle.com/cd/E17952_01/refman-5.0-en/connector-odbc-reference-datatypes.html

Matt
Leo Dashevskiy2013-09-12 14:48Leo Dashevskiy2013-09-12 14:48Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing?Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing? TEXT_WITH_LINKSClosed     LabKey Support Forum
Changed the schema to use proper INT
Matthew Bellew2013-09-04 17:23Jon (LabKey DevOps)2018-11-16 23:24Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing?Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing? TEXT_WITH_LINKSClosed     LabKey Support Forum
INTEGER should work. This should be documented better on the SQL reference page. I see the types documented in the PARAMETERS section but not in the CAST description.

Here are the other types

    BIGINT
    BINARY
    BIT
    CHAR
    DECIMAL
    DOUBLE
    FLOAT
    LONGVARBINARY
    LONGVARCHAR
    NUMERIC
    REAL
    SMALLINT,
    DATE
    TIME
    TIMESTAMP
    TINYINT
    VARBINARY
    VARCHAR
Leo Dashevskiy2013-09-04 18:30Jon (LabKey DevOps)2018-11-16 23:24Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing?Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing? TEXT_WITH_LINKSClosed     LabKey Support Forum
Matt, could you, please, share the link with the resources you are talking about?
Leo Dashevskiy2013-09-04 19:12Jon (LabKey DevOps)2018-11-16 23:24Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing?Does Labkey SQL allow TEXT-to-INT conversion/CAST-ing? TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm assuming, you were referring to this: https://help.labkey.org/wiki/home/Documentation/page.view?name=labkeySql

Using INTEGER like you suggested does not produce an error, while parsing the query.
(I used INT in my schema declaration and it worked fine, so was not expecting that I should use INTEGER here.)

BUT, the LABKEY.ext.Store is behaving really weird in this case: it only gets populated with one last row of the query result, whereas in the schema browser one can see that the result of the query is correct -- can someone reproduce this behavior and if yes, then this is definitely a bug, no?
marki2010-07-13 13:04Jon (LabKey DevOps)2018-11-16 23:24does labkey SQL allow regular expression matching?does labkey SQL allow regular expression matching? TEXT_WITH_LINKSClosed     LabKey Support Forum
No. Unfortunately regex isn't part of standard SQL and we are trying to stay portable.
Ben Bimber2010-07-13 13:06Jon (LabKey DevOps)2018-11-16 23:24does labkey SQL allow regular expression matching?does labkey SQL allow regular expression matching? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. i think the right thing to do in this one instance is to move that logic to the validation script and actually store species in a table. inferring it from Id is what we currently do, but is not ideal.
Matthew Bellew2014-05-27 08:50Jon (LabKey DevOps)2018-11-16 23:24Does Labkey has any internationalization plan?Does Labkey has any internationalization plan? TEXT_WITH_LINKSClosed     LabKey Support Forum
While we would love to make LabKey Server available in more languages, we don't currently have any plans for this at the moment. If anyone in the community has good ideas how to make this happen, let us know!

There are a several parts to this problem, porting the core code (and modules) to some internationalization infrastructure, translating the strings, translating documentation, and maintaining the translations at each release.

Matt
Jon (LabKey DevOps)2017-09-14 15:46Jon (LabKey DevOps)2018-11-16 23:24Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Let me get this confirmed, but I think it does.

Although the doc doesn't mention it here:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ext.Store.html

I am seeing config.parameters listed here:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/src/Z__teamcity_work_d503835eb40d8d2f_server_api_webapp_clientapi_ext3_Store.js.html

Specifically in this part of the code:

145 if (config.parameters)
146 {
147 for (var n in config.parameters)
148 baseParams["query.param." + n] = config.parameters[n];
149 }
150

And that appears to match up to LABKEY.Query:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.selectRows


282 if (config.parameters)
283 {
284 for (var n in config.parameters)
285 {
286 if (config.parameters.hasOwnProperty(n))
287 {
288 qsParams["query.param." + n] = config.parameters[n];
289 }
290 }
291 }

And the information here showing the URL request when using parameters would be "query.param.FIELDNAME":

https://www.labkey.org/Documentation/wiki-page.view?name=paramsql

So logically, using the example from the JS API documentation, using parameters would look something like this then:

 var _store = new LABKEY.ext.Store({
    schemaName: 'core',
    queryName: 'Users',
    columns: "DisplayName, Phone",
    autoLoad: true,
    parameters: {'FieldName': 'Value', '2ndFieldName': 'Value'}
});

Please feel free to give that a try while I get this confirmed.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2017-09-14 16:25Jon (LabKey DevOps)2017-09-14 16:25Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I got confirmation that it does support it, so you should be in good shape.

Let us know if you have any additional questions.

Regards,

Jon
Leo Dashevskiy2017-09-14 16:31Jon (LabKey DevOps)2018-11-16 23:23Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
This does not work for us:

var chk = new LABKEY.ext.Store({ schemaName: 'study', queryName: 'IRP_all', parameters: { 'pids': 'SUB114450.80'}, autoLoad: true })
Jon (LabKey DevOps)2017-09-14 18:22Jon (LabKey DevOps)2018-11-16 23:24Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Are you getting an error or is it just not working?

Does the code work without the parameters option?

I'll see about trying to construct a test on my end, but it should allow a parameter.

Regards,

Jon
Leo Dashevskiy2017-09-14 20:39Jon (LabKey DevOps)2018-11-16 23:24Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

We get a JSON response error about the parameter not being provided:

{"exception":"Parameter not provided: pids","exceptionClass":"org.labkey.api.query.QueryService$NamedParameterNotProvided","stackTrace":["org.labkey.query.QueryServiceImpl.validateNamedParameters(QueryServiceImpl.java:2197)","org.labkey.api.data.TableSelector$TableSqlFactory.getSql(TableSelector.java:517)","org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.getResultSet(SqlExecutingSelector.java:317)","org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:261)","org.labkey.api.data.SqlExecutingSelector.getResultSet(SqlExecutingSelector.java:147)","org.labkey.api.data.TableSelector.getResults(TableSelector.java:302)","org.labkey.api.data.TableSelector.lambda$getResultsAsync$1(TableSelector.java:313)","org.labkey.api.data.AsyncQueryRequest$1.run(AsyncQueryRequest.java:108)","java.lang.Thread.run(Thread.java:748)"]}

It does not work without the parameter, naturally, since the query requires a parameter.

-Leo
Leo Dashevskiy2017-09-14 20:57Jon (LabKey DevOps)2018-11-16 23:23Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
More details:

Line 197 of Store.js

LABKEY.ext.Store.superclass.constructor.call(this, {
            reader: new LABKEY.ext.ExtendedJsonReader(),
            proxy: this.proxy ||
                    new Ext.data.HttpProxy(new Ext.data.Connection({
                        method: 'POST',
                        url: (config.sql ? LABKEY.ActionURL.buildURL("query", "executeSql", config.containerPath, qsParams)
                                : LABKEY.ActionURL.buildURL("query", "selectRows", config.containerPath)),
                        listeners: {
                            beforerequest: {fn: this.onBeforeRequest, scope: this}
                        },
                        timeout: Ext.Ajax.timeout
                    })),
            baseParams: baseParams,
            autoLoad: false
        });


Where "url" evaluates to:

(config.sql ? LABKEY.ActionURL.buildURL("query", "executeSql", config.containerPath, qsParams)
                                : LABKEY.ActionURL.buildURL("query", "selectRows", config.containerPath))

"/query/Studies/SDY80/selectRows.view"


and

JSON.stringify(baseParams)
"{"schemaName":"study","query.queryName":"IRP_all","query.param.pids":"SUB114450.80","apiVersion":9.1}"


So that fails per the error above...
Jon (LabKey DevOps)2017-09-18 23:20Jon (LabKey DevOps)2018-11-16 23:24Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I did a basic test using the code example here:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ext.Store.html

And the parameterized queries doc here:

https://www.labkey.org/Documentation/wiki-page.view?name=paramsql

Using the Physical Exam dataset from our demo study, I created the following wiki:

<div id="div1"/>
 <script type="text/javascript">

 // This sample code uses LABKEY.ext.Store to hold data from the server's Users table.
 // Ext.grid.EditorGridPanel provides a user interface for updating the Phone column.
 // On pressing the 'Submit' button, any changes made in the grid are submitted to the server.
 var _store = new LABKEY.ext.Store({
    schemaName: 'study',
    queryName: 'ParameterizedQuery',
    columns: 'ParticipantId,date,Temp_C,Weight_kg',
    parameters: {'MinTemp': '37', 'MinWeight': '100'},
    autoLoad: true
});

 var _grid = new Ext.grid.EditorGridPanel({
    title: 'Param Store Test',
    store: _store,
    renderTo: 'div1',
    autoHeight: true,
    columnLines: true,
    viewConfig: {
        forceFit: true
    },
    colModel: new Ext.grid.ColumnModel({
        columns: [{
            header: 'Participant Id',
            dataIndex: 'ParticipantId',
            hidden: false,
            width: 10
        }, {
            header: 'Date',
            dataIndex: 'date',
            hidden: false,
            sortable: true,
            width: 10,
            editor: new Ext.form.TextField()
        }, {
            header: 'Temperature',
            dataIndex: 'Temp_C',
            hidden: false,
            width: 10
        }, {
            header: 'Weight',
            dataIndex: 'Weight_kg',
            hidden: false,
            width: 10
        }]
    })
});

 </script>

Now, although I didn't get the error like you did, I did notice that the parameters were not showing up in the POST to the query-selectRows.view endpoint when running the Google JConsole debugger.

I'll get a bug written up on this to get this investigated further.

Regards,

Jon
Jon (LabKey DevOps)2017-09-18 23:27Jon (LabKey DevOps)2018-11-16 23:24Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Henrich, Evan2017-09-19 12:15Jon (LabKey DevOps)2018-11-16 23:24Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I saw that the bug was classified as "fixed".

However, I still get an error for the example we sent you from within our SDY80:
var chk = new LABKEY.ext.Store({ schemaName: 'study', queryName: 'IRP_all', parameters: { 'pids': 'SUB114450.80'}, autoLoad: true })

The error is "XML Parsing Error: not well-formed
Location: https://test.immunespace.org/query/Studies/SDY80/selectRows.view"

If I add in the rest of the url manually, it works just fine:
https://test.immunespace.org/query/Studies/SDY80/selectRows.view?schemaName=study&query.queryName=IRP_all&query.param.pids=SUB114450.80

Am I constructing the Store correctly? Or this a different way for this to be done?

E
Jon (LabKey DevOps)2017-09-19 12:22Jon (LabKey DevOps)2018-11-16 23:24Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Evan,

The bug was fixed just today in r53845, which is in the trunk build and will eventually get into 17.3

Are you using the trunk build from source or are you using an older version of LabKey? If you're using an older version of LabKey, then you will still have an issue until you update to 17.3 when it is out in November or you would have to obtain a trunk build that includes the fix that was put in earlier.

Regards,

Jon
Henrich, Evan2017-09-19 13:02Jon (LabKey DevOps)2018-11-16 23:24Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Thanks for the update. We had updated our build yesterday, so I thought perhaps it was in that one. I've just requested a new build from Angelica so we will give it another shot after getting that one set up.

E
Jon (LabKey DevOps)2017-09-19 13:09Jon (LabKey DevOps)2018-11-16 23:24Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Evan,

I'll make sure we get that pushed out to you once it's available. We're currently running trunk on r53840 and the revision hasn't hit yet, but should by tonight and the build will be available by tomorrow morning at the earliest.

Regards,

Jon
Jon (LabKey DevOps)2017-09-29 14:16Jon (LabKey DevOps)2017-09-29 14:16Does LABKEY.ext.Store work with LabKey's parameterized queries?Does LABKEY.ext.Store work with LabKey's parameterized queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Everyone,

I've managed to successfully test this and confirmed locally that the Javascript API does work now with the LABKEY.Ext.Store via my test above.

Please update your version of Trunk and you should see the changes take effect. These changes will be available in the upcoming 17.3 Release in mid-November as well.

Regards,

Jon
adam2013-05-02 07:43Jon (LabKey DevOps)2018-11-16 23:24does LabKey expose sessionId anywhere visible?does LabKey expose sessionId anywhere visible? TEXT_WITH_LINKSClosed     LabKey Support Forum
I don't think so... we tend to keep this hidden away, since it's effectively a security token. We do push it into R report code so the R API can authenticate back to the server, so that area might provide good sample code.

Adam
Ben Bimber2013-05-02 08:04Jon (LabKey DevOps)2018-11-16 23:24does LabKey expose sessionId anywhere visible?does LabKey expose sessionId anywhere visible? TEXT_WITH_LINKSClosed     LabKey Support Forum
that's true. i'll just make a wiki that shows it until we dont need it anymore.
Ben Bimber2010-06-23 08:21Jon (LabKey DevOps)2018-11-16 23:23does a user role exist that allows user to create new project users without being a site admin?does a user role exist that allows user to create new project users without being a site admin? TEXT_WITH_LINKSClosed     LabKey Support Forum
for what it's worth, it seems that even though the 'add user' button does not appear for project admins, then can actually create users. if you edit group membership, you get a popup that includes a select menu of all users. you would normally select pre-existing users to add to that group. however, if you just type in a new email, an invite email gets fired off. i was able to do that while impersonating a project admin.
adam2010-06-23 09:16Jon (LabKey DevOps)2018-11-16 23:24does a user role exist that allows user to create new project users without being a site admin?does a user role exist that allows user to create new project users without being a site admin? TEXT_WITH_LINKSClosed     LabKey Support Forum
Correct, when project administrators add users to groups in their project, new users will get added to the system if they don't already exist.

Note that your project administrators can also impersonate their project users to verify permissions, etc. We are careful to limit all access to the current project and don't allow project administrators to inherit any site roles (e.g., site admin, developer).

Adam
Ben Bimber2010-06-23 09:22Jon (LabKey DevOps)2018-11-16 23:24does a user role exist that allows user to create new project users without being a site admin?does a user role exist that allows user to create new project users without being a site admin? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. is there some reason why they cant add a user directly (aka have a 'add user' button on the 'project users' grid)? creating a user by adding one to a group seems like a roundabout method since the project admin does in fact have permissions to create users.
Matthew Bellew2010-06-23 09:28Jon (LabKey DevOps)2018-11-16 23:24does a user role exist that allows user to create new project users without being a site admin?does a user role exist that allows user to create new project users without being a site admin? TEXT_WITH_LINKSClosed     LabKey Support Forum
Here is the not entirely satisfactory answer. The "Add Site Users" action is a site level command, and this user does not have "administrator" privileges at this level. This page does not enumerate the projects to see if this user is a project administrator for any project. So it is only in the context of the project administration pages that we 'know' he has permission to create a user.

There is certainly some room to clean up this UI.

Matt
Ben Bimber2010-06-23 09:37Jon (LabKey DevOps)2018-11-16 23:23does a user role exist that allows user to create new project users without being a site admin?does a user role exist that allows user to create new project users without being a site admin? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, i understand. it's workable for what we need, but just seemed a little odd.
adam2010-06-23 10:43Jon (LabKey DevOps)2018-11-16 23:24does a user role exist that allows user to create new project users without being a site admin?does a user role exist that allows user to create new project users without being a site admin? TEXT_WITH_LINKSClosed     LabKey Support Forum
Another not entirely satisfactory reason for no "add user" button: adding a user to the server doesn't automatically add them to any groups. "Project users" is defined as any user who is a member of any group in that project. If "add user" appeared on the project users list, a project admin would add the user but they wouldn't appear in the project users list... which would be pretty confusing. As Matt said, we could stand to review the concept of "project users"...

Adam
Ben Bimber2010-06-24 11:33Jon (LabKey DevOps)2018-11-16 23:23does a user role exist that allows user to create new project users without being a site admin?does a user role exist that allows user to create new project users without being a site admin? TEXT_WITH_LINKSClosed     LabKey Support Forum
I did not realize site and project users mixed together like that. every project user is also a site user - i was assuming project user meant they were specific to that project. i think we need to change some things in how our site is configured...
marki2013-11-13 08:32Jon (LabKey DevOps)2018-11-16 23:24Display Table of Users With Read Access to a Folder?Display Table of Users With Read Access to a Folder? TEXT_WITH_LINKSClosed     LabKey Support Forum
Does /security/<containerPath>/folderAccess.view do what you want?

It's been a while since I looked at it. There's not a great way to navigate to it in the user interface (you can view permissions for a person and get to it from there).
jeckels2013-11-13 09:16Jon (LabKey DevOps)2018-11-16 23:23Display Table of Users With Read Access to a Folder?Display Table of Users With Read Access to a Folder? TEXT_WITH_LINKSClosed     LabKey Support Forum
I suspect the link that Mark suggests is close, but it does require folder admin permissions.

I'm not aware of another built-in UI though. You're correct that it's not possible to do it via direct SQL, due to inheritance, site admins, and other complicating factors.

Thanks,
Josh
Ben Bimber2013-11-13 10:23Jon (LabKey DevOps)2018-11-16 23:24Display Table of Users With Read Access to a Folder?Display Table of Users With Read Access to a Folder? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, that would be perfect except for the admin requirement. Is there any information provided by this page that a non-admin should not be able to view?
jeckels2013-11-13 13:38Jon (LabKey DevOps)2018-11-16 23:24Display Table of Users With Read Access to a Folder?Display Table of Users With Read Access to a Folder? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

First, we don't give guests access to the full list of users. They may see individual users in other fields, but we don't make, say, core.Users or core.SiteUsers, available to anonymous users.

Users who are actually logged in can typically see user lists, and group memberships (via the query browser and APIs, if no where else). However, for non-admins, do not expose information about other users' permissions. See SecurityApiActions.GetUserPermsAction.execute() as an example.

Your scenario, where you're interested in exposing minimal permission information, seems reasonable. However, it is a slippery slope.

Thanks,
Josh
Jon (LabKey DevOps)2015-01-21 16:54Jon (LabKey DevOps)2018-11-16 23:23Display of null foreign keys in LABKEY.QueryWebPartDisplay of null foreign keys in LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

The null values will display as <0> when the first table has a zero for a value that has no corresponding value in the second table. So if the first table had a value of 123 and there was no corresponding value in the second table, you would get a result of <123> rather than null.

So if you have null values in the first table, rather than setting it to 0, you should set it to "null". This will return null values rather than <0> in the results.

Please let us know if you have any further questions.

Regards,

Jon
Will Holtz2015-01-22 10:58Jon (LabKey DevOps)2018-11-16 23:24Display of null foreign keys in LABKEY.QueryWebPartDisplay of null foreign keys in LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for your answer. You were complete correct that I actually had 0 values rather than null in my fk fields. I have fixed that, and now I get blank cells rather than "<0>". This is an improvement, however an answer to my original (rather poorly framed) question still would be useful to me -- can I supply some text to be displayed when the fk field is null?

thank you,
-Will
Jon (LabKey DevOps)2015-01-27 14:10Jon (LabKey DevOps)2018-11-16 23:24Display of null foreign keys in LABKEY.QueryWebPartDisplay of null foreign keys in LABKEY.QueryWebPart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I confirmed that anything you enter into that FK field will come back with the bracketed response when there is no matching value, like 123 coming back as <123>. So the only options are to either expect bracketed responses if you decide to fill in anything in the FK field or you just leave it blank. Beyond this, the only thing you could do to prevent anything from coming back is to have some custom javascript code to modify the UI to omit the response if it comes back with a value you want to hide. So if you went back to using zeros, your javascript would hide anything coming back that would normally display <0> in the response.

Does this make sense?

Regards,

Jon
trent2012-06-07 16:35Jon (LabKey DevOps)2018-11-16 23:23Display column for lookupDisplay column for lookup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

Lists have a titleField: https://www.labkey.org/wiki/home/Documentation/page.view?name=editListDesign.

You can also add some xml to the list. The titleColumn tells what is displayed: https://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/elements/titleColumn.html

e.g.

<ns:tables xmlns:ns="http://labkey.org/data/xml">
  <ns:table tableName="People" tableDbType="NOT_IN_DB">
    <ns:titleColumn>Gender</ns:titleColumn>
  </ns:table>
</ns:tables>

If you specify a title field using the UI and in XML metadata, I believe the XML gets precedence (at least that was the case from my quick test).

"the box next to abc is the only one checked, sometimes the dataset displays the list's key column. Sometimes it displays a different column." - if there is no value in the title field, it shows up like: <1> where 1 is the PK value. Maybe that's what's happening?
jdutra2012-06-11 13:02Jon (LabKey DevOps)2018-11-16 23:23Display column for lookupDisplay column for lookup TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for your help. Somehow I never noticed the titleField. We have it set to auto for all our lists, and that's why I'm getting the strange (to me) behavior with the default column being displayed. As described in the help, AUTO makes the display field be the first String field. So, if the list has a string key, by default the key is also the display field. If the list's key is an integer, then the first string field is the one displayed.
Ben Bimber2017-02-07 17:51Jon (LabKey DevOps)2018-11-16 23:24Display a chart with minimal extra user interfaceDisplay a chart with minimal extra user interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

If you want LK to render your page, I think you can put your JS snip on a simple HTML page, and then add a .view.xml file with something like:

<view xmlns="http://labkey.org/data/xml/view" template="print">
    <dependencies>
        <dependency path="/myModule/foo.js"/>
    </dependencies>
</view>

I didnt check this, but I think either template="print" or template="none" should give you no borders.

A quick and dirty way to accomplish this is probably also to append _hideFrame=1 to your URL (without needing the view.xml); however, I'd personally probably do the former.

-Ben
cnathe2017-02-08 06:15Jon (LabKey DevOps)2018-11-16 23:24Display a chart with minimal extra user interfaceDisplay a chart with minimal extra user interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Good suggestion, Ben. I did a quick test and I was able to take the chart export script from a box plot and put it into a test.html file in a module. Then I created a test.view.xml file next to that HTML file and put the following content in it and everything worked as expected (i.e. dependencies for the chart loaded and the plot displayed):

<view xmlns="http://labkey.org/data/xml/view" template="print" frame="none">
</view>
Will Holtz2017-02-09 10:27Jon (LabKey DevOps)2018-11-16 23:24Display a chart with minimal extra user interfaceDisplay a chart with minimal extra user interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben & Chris,

Thanks for the help. Chris' method gets me exactly what I need.

-Will
Matthew Bellew2007-05-11 10:36Matthew Bellew2007-05-11 10:36Directory naming mistake (build system bug report)Directory naming mistake (build system bug report) TEXT_WITH_LINKSClosed     LabKey Support Forum 
Matthew Bellew2007-03-28 10:16Jon (LabKey DevOps)2018-11-16 23:24Directory naming mistake (build system bug report)Directory naming mistake (build system bug report) TEXT_WITH_LINKSClosedadam    LabKey Support Forum
aschwin.vanderwoude@btk.fi2007-03-28 22:56Jon (LabKey DevOps)2018-11-16 23:24Directory naming mistake (build system bug report)Directory naming mistake (build system bug report) TEXT_WITH_LINKSClosedadam    LabKey Support Forum
Thanks for creating the bug-report.

Can I add my own bug-reports as well?
I've found some more crawly creatures scurrying away quickly when installing and testing CPAS on Linux.

-Aschwin
Matthew Bellew2007-03-29 10:06Jon (LabKey DevOps)2018-11-16 23:24Directory naming mistake (build system bug report)Directory naming mistake (build system bug report) TEXT_WITH_LINKSClosedMatthew Bellew    LabKey Support Forum
It works fine for us to have you post issues here. If you want to actually submit changes to the repository we can do that as well (e-mail me).

We don't have a formal policy on who can submit bugs directly (we should). I think the basic expectation would be that if you submit bugs directly, you can also follow up and verify changes. This implies that you are enlisted in the live source tree and can build.

We are happy to have more contributors, so we can help get you set up with the live subversion sources.
aschwin.vanderwoude@btk.fi2007-03-30 00:44Jon (LabKey DevOps)2018-11-16 23:24Directory naming mistake (build system bug report)Directory naming mistake (build system bug report) TEXT_WITH_LINKSClosedMatthew Bellew    LabKey Support Forum
At this moment I am still testing the software, but in the future it might be possible that I will become involved in development as well. For now, I will just report any issues I find.
Leo Dashevskiy2013-07-01 11:56Leo Dashevskiy2013-07-01 11:56Direct interaction between different modules without page reloadDirect interaction between different modules without page reload TEXT_WITH_LINKSClosed     LabKey Support Forum
Works with saki's MsgBus.js approach
Anthony Corbett2013-02-15 12:58Jon (LabKey DevOps)2018-11-16 23:24Direct interaction between different modules without page reloadDirect interaction between different modules without page reload TEXT_WITH_LINKSClosed     LabKey Support Forum

I've thought about this same use case. Not sure how helpful my thoughts will be, but here they are:

First, you don't want direct interaction between modules. To decouple the modules, each should implement/mixin Ext.util.Observable (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.util.Observable) so it can fire events and other modules/components can listen. The Observable API also allows you to define listeners in the config. Using listeners allows you to invoke a method on another module in a listener callback function.

There are draw back to defining listener callbacks that directly invoke another module's method, namely that an instance of the dependent module must be in scope and thus there is a runtime load and initialization dependencies between the two.


Ideally, you need a middle man [object] that can handle 'wiring' together different modules, this is called a mediator and would be the only dependency for each module. The mediator could implement a publish subscribe event system. Modules subscribe to certain events (also called topics) and any module can publish an event (topic)

Here is an example of an Ext plugin called MsgBus which uses events to communicate between components: http://examples.extjs.eu/?ex=msgbus


Would be nice for something in the LABKEY namespace to provide a global singleton mediator for exactly this use case (pub/sub).


Also you don't need to use any variable declaration to create your module instance:


<script type='text/javascript'>

    Ext.onReady( function(){
        new LABKEY.ext.OpenCyto<moduleName>({
            webPartDivId: <%=webpartContext%>.wrapperDivId
        });
    });

</script>



-
Anthony
Leo Dashevskiy2013-02-15 15:41Jon (LabKey DevOps)2018-11-16 23:24Direct interaction between different modules without page reloadDirect interaction between different modules without page reload TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Anthony!

It is nice to hear that someone else has thought about the same issue and in fact has come to the same conclusion.

I already realized the weakness of the Observable that the 2 communicating modules must be in the same scope, which is at time troublesome and have also read up on the MsgBus and Mediator (pub/sub) ideas.

I think, I will give those last ones a stab.


And as far as the module instance goes, I do have more going on than the trimmed version above, namely:

<script type='text/javascript'>

    var initOpenCytoPreprocessing = function(){
        var webPartDiv = <%=webpartContext%>.wrapperDivId;

        var resizeModule;
        var OpenCytoPreprocessing = new LABKEY.ext.OpenCytoPreprocessing({
            webPartDivId: webPartDiv
        });

            captureEvents( OpenCytoPreprocessing );

        resizeModule = function(w, h){

            LABKEY.Utils.resizeToViewport( OpenCytoPreprocessing, w, -1, null, null, -5 );

            OpenCytoPreprocessing.resize();
        };

        Ext.EventManager.onWindowResize( resizeModule );
        Ext.EventManager.fireWindowResize();

    }

    Ext.onReady( initOpenCytoPreprocessing );

</script>
jeckels2012-10-30 10:12Jon (LabKey DevOps)2018-11-16 23:24Differences between Lists and DatasetsDifferences between Lists and Datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Daniel,

As you've seen, both lists and datasets are administrator-configured data types.

Datasets are always associated with a study (like the EHR). Every row in a dataset must be associated with an animal/participant/subject. Depending on the type of dataset, rows may also be associated with timepoints. The server automatically understands relationships between datasets, which means that you can use Customize View or other features to join together different datasets to show information for the same animal/participant/subject and timepoint without needing to do any additional configuration or coding.

Lists are a more generic data type. They can exist independent of a study, and even if they contain a field that happens to be an animal/participant/subject identifier, the system doesn't automatically associate it with other data. Lists can still link to each other or other data types via lookups, but these need to be configured on a field-by-field basis. They're typically used to populate value lists that are the targets of lookups from other data types, or to generally store data that's not directly associated with an individual animal/participant/subjects.

I suspect that lists are probably a more appropriate data type for at least some of this data. I hope this helps. Let me know if you have more questions.

Thanks,
Josh
Daniel Nicolalde2012-11-01 16:06Jon (LabKey DevOps)2018-11-16 23:23Differences between Lists and DatasetsDifferences between Lists and Datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

I created several list under the Immunology services folder. Three of them should be lookup list, where the information store in them should be available in the main inventory list. I am trying to set up the lookup option for some of the fields in the inventory table but I cannot find the other lists that I create it. How can I make the new lists create to show as an option to be a lookup? If you go to test-ehr, you can find the list under:

WNPRC_Units/Research_Services/Immunology_Services

Thank you

Daniel
Daniel Nicolalde2012-11-01 16:11Jon (LabKey DevOps)2018-11-16 23:24Differences between Lists and DatasetsDifferences between Lists and Datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh, I added another field and selected as a lookup from the beginning and they show up. Thank you

Daniel
jeckels2012-11-01 16:18Jon (LabKey DevOps)2018-11-16 23:24Differences between Lists and DatasetsDifferences between Lists and Datasets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Daniel,

That makes sense. When you're adding a new field, you can target any lookup because the field doesn't have an existing type. When you change the lookup for an existing field, you can only target queries that have a primary key that's the same type of column. This is because we don't support changing an existing field's type at this point (String->Integer, for example).

Thanks,
Josh
Ben Bimber2010-12-20 18:25Jon (LabKey DevOps)2018-11-16 23:23Differences between LabKey ComboBox ImplementationsDifferences between LabKey ComboBox Implementations TEXT_WITH_LINKSClosed     LabKey Support Forum
I would use the first. The latter was created during the early days of the EHR and I actually removed it this afternoon. The EHR module contains code for this project that is not part of the Labkey core. I'm trying to make sure there's minimal redundancy, but there still might be some.

Labkey overrides the default Ext combo w/ LABKEY.ext.ComboBox, so xtype: 'combo' should use their extension.
jeckels2010-12-16 18:56Jon (LabKey DevOps)2018-11-16 23:23difference between readOnly and userEditable?difference between readOnly and userEditable? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

In almost all cases, they're effectively the same. readOnly is true for fields that won't change after the row is inserted, such as auto-incrementing RowId fields. userEditable is false for fields that the user isn't allowed to edit directly. There are a few cases when a field might not be readOnly, but is not userEditable, such as the LSID column on datasets. It can change if the date or participant/subject value changes for the row, but it's automatically updated by the system and can't be set directly to an arbitrary value by the user.

Thanks,
Josh
Jon (LabKey DevOps)2016-09-26 22:26Jon (LabKey DevOps)2018-11-16 23:23Difference between PHI and Protected in GUI.Difference between PHI and Protected in GUI. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ariel,

Yes, that is correct. The .query.xml file, the XML Metadata section of a query built in the Schema Browser, and the Edit Definition section of the GUI when it comes to editing fields all do the same thing.

The only difference is that with the .query.xml file allows you to apply the XML on the server/code level, while the other two are done after the fact within the platform via the Schema Browser or editing the definitions.

Regards,

Jon
Matthew Bellew2016-05-27 10:30Jon (LabKey DevOps)2018-11-16 23:23devmode auto-loading of HTML/JS from modules in /server/optionalModules?devmode auto-loading of HTML/JS from modules in /server/optionalModules? TEXT_WITH_LINKSClosed     LabKey Support Forum
The first thing to check is that the enlistment id and source path are both resolved correctly. Under Admin Console/Module information, expand the section corresponding to your module. The "Enlistment ID" and "Source Path" should both be green. They are black, then scroll up and make sure "Runtime Infoformation/Mode" is not "Production". If they are red, that is the problem.

Post what you find.
Ben Bimber2016-05-27 10:58Jon (LabKey DevOps)2018-11-16 23:23devmode auto-loading of HTML/JS from modules in /server/optionalModules?devmode auto-loading of HTML/JS from modules in /server/optionalModules? TEXT_WITH_LINKSClosed     LabKey Support Forum
that's a cool feature. got it figured out - operator error. thanks.
Matthew Bellew2011-07-12 15:08Jon (LabKey DevOps)2018-11-16 23:23Developer Mode CommandDeveloper Mode Command TEXT_WITH_LINKSClosed     LabKey Support Forum
There is an example of using this command in this page.

https://www.labkey.org/wiki/home/Documentation/page.view?name=configWebappMemory
brittp2011-07-12 15:13Jon (LabKey DevOps)2018-11-16 23:24Developer Mode CommandDeveloper Mode Command TEXT_WITH_LINKSClosed     LabKey Support Forum
Also, if you go the command line route (method 2 in the doc Matt referenced), note that the correct command parameter doesn't have any spaces in "//ES//LabkeyTomcat", and may be case sensitive. Your pasted text reads "/ES// LabkeyTomcat" (note the space and lower-case 'k')- it should be "//ES//LabKeyTomcat5" instead.

Thanks,
Britt
sdoshi@immunetolerance.org2011-07-13 07:40Jon (LabKey DevOps)2018-11-16 23:24Developer Mode CommandDeveloper Mode Command TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks. Was able to get the installed service name on my machine from the documentation and it was LabKeyTomcat5. Removed the space as well and was able to configure the JVM parameters.
Anthony Corbett2017-09-15 13:46Jon (LabKey DevOps)2018-11-16 23:24Developer Machine Setup documentation inconsistenciesDeveloper Machine Setup documentation inconsistencies TEXT_WITH_LINKSClosed     LabKey Support Forum

Also, setting PATH variables in IntelliJ on a Mac is under IntelliJ IDEA | Preferences | Appearance & Behavior | Path Variables and not under File | Settings
Jon (LabKey DevOps)2017-09-15 23:01Jon (LabKey DevOps)2018-11-16 23:24Developer Machine Setup documentation inconsistenciesDeveloper Machine Setup documentation inconsistencies TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

We do need to update our developer docs for the Mac since the change to Gradle.

So with the first question, you are correct. The external/ant/bin line isn't needed and everyone should adhere to our Gradle docs such as https://www.labkey.org/Documentation/wiki-page.view?name=devMachine#gradle

I'll need to check on the second question. I personally have always had both and just left it be. But I suspect that since everything under the build directory is created via the build process, it is likely that the information from /external/osx/bin actually gets copied to the build directory, similarly to the modules.

I'll get the second question confirmed by our developers and get back to you on that.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2017-09-18 10:33Jon (LabKey DevOps)2018-11-16 23:24Developer Machine Setup documentation inconsistenciesDeveloper Machine Setup documentation inconsistencies TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

I've confirmed that the second question matches to what I suspected. The /external/osx/bin directory gets copied to the /build/deploy/bin directory as part of the build process by design since you're on a Mac. And if you were on Windows or Linux, it would copy from the /external/linux/bin and /external/windows/bin directories respectively to the /build/deploy/bin directory.

Regards,

Jon
Steve2017-09-18 11:17Jon (LabKey DevOps)2018-11-16 23:24Developer Machine Setup documentation inconsistenciesDeveloper Machine Setup documentation inconsistencies TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony:

We've cleaned up the docs based on your careful reading.
Thanks for these fixes.

- Steve
jeckels2013-12-02 13:05Jon (LabKey DevOps)2018-11-16 23:24Developer documentation for labkey permission classes?Developer documentation for labkey permission classes? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tobin,

There aren't currently other places to look for documentation of those classes. If you have specific questions, please post them here. We'll work to respond on the forum, and get the same content worked into comments in the code itself.

Thanks,
Josh
tstellin@scharp.org2013-12-03 06:09Jon (LabKey DevOps)2018-11-16 23:23Developer documentation for labkey permission classes?Developer documentation for labkey permission classes? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the reply Josh. I actually found some documentation for roles that we could link to:

https://www.labkey.org/wiki/home/Documentation/page.view?name=permissionLevels

Though a few of the permissions themselves could use some documentation: E.g., org.labkey.api.security.permissions.ReadSomePermission.

Thanks,
-Tobin
jeckels2010-08-23 12:50Jon (LabKey DevOps)2018-11-16 23:24determine whether issue tracker email was sent?determine whether issue tracker email was sent? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You can look at the audit log for "Message events". There should be a separate row for each recipient because the emails are sent individually, not as a single message with multiple recipients.

Thanks,
Josh
Ben Bimber2010-08-23 12:54Jon (LabKey DevOps)2018-11-16 23:23determine whether issue tracker email was sent?determine whether issue tracker email was sent? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

i see three entries with this text:

The Email Message: (Issue #818, "3rd Floor Printer Experiencing Frequent Paper Jams," has been updated) was sent

https://xnight.primate.wisc.edu:8443/labkey/query/WNPRC/WNPRC_Units/IT/Issue_Tracker/executeQuery.view?schemaName=auditLog&query.queryName=audit&query.CreatedBy/DisplayName~startswith=busuttil&query.offset=100

is there anything that will tell me who was the recipient?
jeckels2010-08-23 12:56Jon (LabKey DevOps)2018-11-16 23:24determine whether issue tracker email was sent?determine whether issue tracker email was sent? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

If you go through the Admin Console's audit link, you can see the custom fields for each type of audit entry.

https://xnight.primate.wisc.edu:8443/labkey/audit/showAuditLog.view?view=MessageAuditEvent&audit.Comment~contains=818

Thanks,
Josh
kevink2012-10-08 16:13Jon (LabKey DevOps)2018-11-16 23:24determine user session (login) expiration from javascriptdetermine user session (login) expiration from javascript TEXT_WITH_LINKSClosed     LabKey Support Forum
You should be getting a "401 Unauthorized" response from our client api requests. Our HTML views do return the special login page. Are you submitting to a HTML view or form using XMLHttpRequest?

I wasn't able to reproduce the issue you're seeing with LABKEY.Security.ensureLogin({force: true}. When logged out, the first call to .ensureLogin() returns a 401 and I am prompted to log in by the browser. On subsequent calls .ensureLogin() return 200 and no login prompt appears.
Jon (LabKey DevOps)2016-02-25 21:47Jon (LabKey DevOps)2018-11-16 23:24detailsQueryRow.view controller with user defined queriesdetailsQueryRow.view controller with user defined queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Just curious, but do you get a full stack with that error?

Regards,

Jon
Will Holtz2016-02-26 10:05Jon (LabKey DevOps)2018-11-16 23:23detailsQueryRow.view controller with user defined queriesdetailsQueryRow.view controller with user defined queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

A stack trace is not automatically generated with the error, but I ran it in my debugger and got one.

"http-bio-8080-exec-6@10437" daemon prio=5 tid=0x3d nid=NA runnable
  java.lang.Thread.State: RUNNABLE
      at org.labkey.api.data.DataRegion.renderDetails(DataRegion.java:1729)
      at org.labkey.api.data.DataRegion.render(DataRegion.java:2366)
      at org.labkey.api.view.DetailsView._renderDataRegion(DetailsView.java:66)
      at org.labkey.api.view.DataView.renderView(DataView.java:189)
      at org.labkey.api.view.DataView.renderView(DataView.java:54)
      at org.labkey.api.view.WebPartView.renderView(WebPartView.java:459)
      at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:354)
      at org.labkey.api.view.HttpView.render(HttpView.java:137)
      at org.labkey.api.view.HttpView.render(HttpView.java:122)
      at org.labkey.api.view.HttpView.include(HttpView.java:515)
      at org.labkey.api.view.HttpView.include(HttpView.java:492)
      at org.labkey.api.view.HttpView.include(HttpView.java:480)
      at org.labkey.api.view.VBox.renderView(VBox.java:79)
      at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:354)
      at org.labkey.api.view.HttpView.render(HttpView.java:137)
      at org.labkey.api.view.HttpView.render(HttpView.java:122)
      at org.labkey.api.view.HttpView.include(HttpView.java:515)
      at org.labkey.api.view.HttpView.include(HttpView.java:492)
      at org.labkey.jsp.compiled.org.labkey.api.view.template.HomeTemplate_jsp._jspService(HomeTemplate_jsp.java:204)
      at org.labkey.api.view.JspView.renderView(JspView.java:168)
      at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:354)
      at org.labkey.api.view.HttpView.render(HttpView.java:137)
      at org.labkey.api.view.HttpView.render(HttpView.java:122)
      at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:524)
      at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:419)
      at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1218)
      at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
      at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1137)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:159)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
      - locked <0x3105> (a org.apache.tomcat.util.net.SocketWrapper)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)

This is with revision: 41716

Thanks,
-Will
jeckels2016-02-26 16:35Jon (LabKey DevOps)2018-11-16 23:24detailsQueryRow.view controller with user defined queriesdetailsQueryRow.view controller with user defined queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

This was an inadvertent limitation of custom queries. I fixed in the trunk with revision 42276, which will be included in 16.1 when we release next month.

Thanks,
Josh
Will Holtz2016-02-26 16:53Jon (LabKey DevOps)2018-11-16 23:24detailsQueryRow.view controller with user defined queriesdetailsQueryRow.view controller with user defined queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Great -- thanks Josh!

-Will
Jon (LabKey DevOps)2017-08-24 22:25Jon (LabKey DevOps)2018-11-16 23:23Deprecated LoginAction post handlerDeprecated LoginAction post handler TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tomas,

Yes, the LoginAction post handler was deprecated in the latest version of LabKey as stated in our docs here (https://www.labkey.org/Documentation/wiki-page.view?name=releasenotes172), but you can use the LoginApiAction to create a custom login page.

https://www.labkey.org/Documentation/wiki-page.view?name=customLogin

Regards,

Jon
t skripcak2017-08-29 03:31Jon (LabKey DevOps)2018-11-16 23:24Deprecated LoginAction post handlerDeprecated LoginAction post handler TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Jon,

yes this is what I noticed in release notes, but I did not find any further description regarding how to use the loginApi.api. I am not trying to build a custom login page. My use case is that I would like to automate the login (which should be handled programmatically) while I redirect to LabKey instance from external web application.

Do you know whether this is still possible with loginApi.api? (normally I would create a post request with login credentials, but with this deprecated I would emulate necessary java script calls to loginApi.api, but I need some description of this api to do so)

thanks and best

Tomas
adam2017-08-29 06:45Jon (LabKey DevOps)2018-11-16 23:24Deprecated LoginAction post handlerDeprecated LoginAction post handler TEXT_WITH_LINKSClosed     LabKey Support Forum
The example login.js file shows a more complete call to loginApi.api, but the simplest call would be to post JSON like this to login-loginApi.api:

    {
        email: "myemail@test.test",
        password: "xxxxxxx"
    }

The response JSON will indicate success or failure, and provide helpful details in the success case.

Adam
t skripcak2017-08-30 05:15Jon (LabKey DevOps)2018-11-16 23:23Deprecated LoginAction post handlerDeprecated LoginAction post handler TEXT_WITH_LINKSClosed     LabKey Support Forum
Great, thanks Adam.
brendanx2008-05-16 13:46Jon (LabKey DevOps)2018-11-16 23:23Dependency Injection for Module Initialization?Dependency Injection for Module Initialization? TEXT_WITH_LINKSClosed     LabKey Support Forum
Sure. Anything you put in:

/WEB-INF/<module>/<module>Context.xml

e.g.

/WEB-INF/ms1/ms1Context.xml

Will get loaded into a Spring context for your module at start-up (if your module extends SpringModule). We are moving this direction for initializing pipeline configuration.

The MS1 module is a good example.

--Brendan
jeckels2011-04-28 09:00Jon (LabKey DevOps)2018-11-16 23:23dependencies in file based module configdependencies in file based module config TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

This is primarily to control the order in which SQL scripts run. For example, if your module has a foreign key to a table in the exp schema, you'd want to declare a dependency on the Experiment module, so that you can be sure that the target table exists before you try to create your FK.

Thanks,
Josh
adam2014-07-16 13:09Jon (LabKey DevOps)2018-11-16 23:24Demo java module and Query Schema BrowserDemo java module and Query Schema Browser TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

As you may have seen, the database schemas defined by file-based (non-Java) modules are automatically exposed to the query layer (you'll see them in the query schema browser and can use all the standard query actions on them). The code that handles this is SimpleModule.registerSchemas().

Java modules must register their schemas explicitly... typically, these modules want more control over exactly which schemas & tables are exposed, and the shape of those tables. They do this by calling DefaultSchema.registerProvider(). There are quite a few examples in the code, but WikiSchema is one simple example to start with.

If you want your Java module to expose the entire schema you could follow the pattern in SimpleModule... just add code like this to your module's doStartup() method:

    DefaultSchema.registerProvider("demo", new DefaultSchema.SchemaProvider(this)
    {
        public QuerySchema createSchema(final DefaultSchema schema, Module module)
        {
            DbSchema dbSchema = DbSchema.get("demo");
            return QueryService.get().createSimpleUserSchema(dbSchema.getQuerySchemaName(), null, schema.getUser(), schema.getContainer(), dbSchema);
        }
    });

Not tested, but that's the basic idea.

Adam
maïtt2007-10-30 09:04Jon (LabKey DevOps)2018-11-16 23:23Demo appliation View Grid button doesn't workDemo appliation View Grid button doesn't work TEXT_WITH_LINKSClosed     LabKey Support Forum
Yup, just a bug. The web part is not correctly computing the url. (Just replace /Project/ with /Demo/ in the url).
adam2007-11-30 20:28adam2007-11-30 20:28Demo appliation View Grid button doesn't workDemo appliation View Grid button doesn't work TEXT_WITH_LINKSClosed     LabKey Support Forum 
Jon (LabKey DevOps)2015-01-14 12:51Jon (LabKey DevOps)2018-11-16 23:23Deleting specimensDeleting specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

There's a couple of ways to delete specimens from a study. One option is to Import in new specimens to replace the dummy ones. The other option is to delete all the vials, which would remove the specimen records from the database.

To do a new import, just go to the Overview tab and click Manage Files. Then upload your specimens file and select the option to Import Data and then Import. If you select the Replace option, that will wipe out the dummy specimen data from earlier and replace it with your new specimen data.

If you want to delete the vials instead, make sure your Specimen Repository Type is setup as "Advanced (External) Specimen Repository" under the Manage Tab > Change Repository Type, then change set the Specimen Data to "Editable" and click Submit. Then you can go into the Specimen Data tab, view all specimens by Individual Vial and then select all and click the Delete option. This option is however the most cumbersome since you have to manually delete so many in one go, so I would advise using the file replacement option mentioned earlier.

Does this help?

Regards,

Jon
dennisw2015-01-14 12:54Jon (LabKey DevOps)2018-11-16 23:24Deleting specimensDeleting specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, thanks!
priggs@immunetolerance.org2015-01-15 06:41Jon (LabKey DevOps)2018-11-16 23:23Deleting specimensDeleting specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jony,

On further testing, Dennis and I found that neither of these methods really works right. Selecting rows and deleting them individually only works on available vials--the unavailable ones can't be selected. As for the import/replace option, it works as described IF there are new specimens in the import package. If we import a specimens.tsv with no rows, it will not remove any existing specimens, but it will blank all of their primary types. I should point out that we're using the study import feature for this, rather than the Import Data option you describe.

Thanks,
Peter
Jon (LabKey DevOps)2015-01-15 09:56Jon (LabKey DevOps)2018-11-16 23:23Deleting specimensDeleting specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
Peter/Dennis,

My apologies. The assumption was that the dummy data would have been replaced with new data, not a specimens.tsv with zero rows.

Can you give us some more details as to what you're trying to do? Are you trying to just remove the dummy data after you've worked with it and have no data afterwards or are you planning on removing the dummy data and replacing it?

Regards,

Jon
priggs@immunetolerance.org2015-01-15 10:14Jon (LabKey DevOps)2018-11-16 23:24Deleting specimensDeleting specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
When we do our initial study setup, there generally aren't any real specimens to use, but I'd like to feed some dummy data through the system to make sure everything works. Once testing is done we want to get rid of the fake vials. For purposes of this testing, it sounds like we could just make sure all the dummy vials are "available" and then delete them from the vial view. My only hesitation is that this feels like a workaround, and I'd really like to know the "official" method of deleting specimens when the issue inevitably comes up again.
Jon (LabKey DevOps)2015-01-15 15:30Jon (LabKey DevOps)2018-11-16 23:24Deleting specimensDeleting specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
Peter,

Thanks for the additional information. So officially at this time, there isn't a way to just delete the specimens directly beyond deleting vials and the replacement via the data import mentioned earlier.

That being said, there is a bug that I am going to file on the vials page issue where the unavailable ones are not selectable for deleting. That definitely shouldn't be behaving that way.

Regarding the zero row specimens.tsv file, was the file apart of a .specimen archive with labs.tsv and other tsv files? Also, when you did the Study Import, did you make sure that your zip file under /study/specimens/ only had a specimen_settings.xml file?

I found that if I created a study for the dummy specimens and verified the study was fine, I would export the study without the specimen data and then re-import that information back in as a new study with no specimen data (thereby allowing me to delete the previous study I made with the dummy specimen data). Have you tried this approach? It would definitely give you what you want - a study to test the dummy data against, confirming the study is good to use, then ending up with a fresh study with no specimen data.

Regards,

Jon
priggs@immunetolerance.org2015-01-16 08:28Jon (LabKey DevOps)2018-11-16 23:24Deleting specimensDeleting specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Good to know, thanks. If you want to reproduce what I'm doing with the empty package, just export an existing study and uncheck all the boxes except specimens (no specimen settings). Then extract the specimens.tsv from the .specimens file, delete all rows (but leave the headers), and pack everything back up again. If this archive is imported to a new folder it creates a study with no specimens, but if it's imported onto an existing study with specimens it simply removes all their primary/derivative types.

That should answer your questions, but just to make sure we're on the same page:
-Specimens.tsv is in a .specimens archive along with labs.tsv and the others.
-There is no specimen_settings.xml file.

Importing the study to a new folder would work content-wise, but half of what we're testing is non-LabKey infrastructure that points to a specific location, so moving the study elsewhere after we're done testing would defeat the purpose. Fortunately we have the vial-deletion workaround mentioned above; I'm just surprised there isn't a more codified way of doing this.

Thanks,
Peter
Jon (LabKey DevOps)2015-01-16 09:54Jon (LabKey DevOps)2018-11-16 23:23Deleting specimensDeleting specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
Peter,

I've found some interesting things here. Based on my testing, I've found:

- If you have zero records in the specimens.tsv file in your .specimens archive, it will not do a replace.
- If you have at least one record in the specimens.tsv file, that will remove all the existing records and you will only see one record when you look at the specimen data.

So another alternative is to have one record in the specimens.tsv file in your archive to upload and replace all the dummy data and then delete that one record in lieu of having to have a vial on every record to do the delete.

The bug I've entered last night (https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=22304) should address your needs on a codified level for sure in one of the 15.X releases in the near future.

Let me know if you have any further questions or concerns on this.

Regards,

Jon
Jon (LabKey DevOps)2015-01-20 15:45Jon (LabKey DevOps)2018-11-16 23:24Deleting specimensDeleting specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
Peter/Dennis,

The bug (https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=22304) has been successfully fixed/resolved for the 15.1 release (build r36050) and I've confirmed the fix on my local machine.

The following has been done:

1. Within the Study under the Manage tab > Repository Type > Change Repository Type, if the repository type is "Advanced" and "Editable", you will see a "Specimen Detail" link that will take you into the Query view for the SpecimenDetail and allow you to select multiple rows of specimens (regardless if they have vials or not) and delete them.

2. The Delete button has been removed on the Individual Vials view. This is to avoid any confusion from the previous item mentioned above.

The reason for this approach is to avoid changing things for most users. (i.e. It would be confusing to allow a non-requestable vial to be selected and requested, yielding an error. Enabling the checkboxes and then catching the error earlier could be a lot of work.)

This will allow you to now delete specimen records without having the need for vials.

Let me know if you have any further questions.

Regards,

Jon
jeckels2016-10-12 11:32Jon (LabKey DevOps)2018-11-16 23:23Deleting rows from QueryWebPart with a non-table queryDeleting rows from QueryWebPart with a non-table query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Custom queries are considered read-only, which is why can't reuse the Delete button that's available on "real" tables. You could certainly add a Delete button that performs the delete against the source table.

However, an easier approach would likely be to add a wrapped column to the source table that injects your custom column. It could use a simple custom renderer by pointing at a custom DiplayColumnFactory. This would let you target the real table, so the regular delete button would be available.

Attached is an example .query.xml file that does this kind of configuration.

Thanks,
Josh
adam2014-08-13 09:15Jon (LabKey DevOps)2018-11-16 23:24Deleting or renaming project with dash in nameDeleting or renaming project with dash in name TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Have you configured your Tomcat server.xml file to support UTF-8 characters? That's required to handle non-ASCII characters; see section 9 on this page https://www.labkey.org/wiki/home/Documentation/page.view?name=configTomcat.

That's not a normal dash... it's an "en dash", character code 8211. I was able to create, rename, and delete a project with that exact name on my local server, which has URIEncoding set to "UTF-8".

Please let us know if you're seeing this problem with UTF-8 configured.

Adam
bront@kcr.uky.edu2014-08-13 14:18Jon (LabKey DevOps)2018-11-16 23:24Deleting or renaming project with dash in nameDeleting or renaming project with dash in name TEXT_WITH_LINKSClosed     LabKey Support Forum
Adam,

The issue turned out to be elsewhere in our stack, but thanks for your help.

bront
bront@kcr.uky.edu2014-08-13 14:18bront@kcr.uky.edu2014-08-13 14:18Deleting or renaming project with dash in nameDeleting or renaming project with dash in name TEXT_WITH_LINKSClosed     LabKey Support Forum
closed
adam2015-01-15 09:36Jon (LabKey DevOps)2018-11-16 23:24Deleting Modules QuestionDeleting Modules Question TEXT_WITH_LINKSClosed     LabKey Support Forum
You need to remove the module file and directory from your deployment. Your module is likely in <labkey_root>/modules or <labkey_root>/externalModules.

Thanks,
Adam
micahs2015-01-15 09:40Jon (LabKey DevOps)2018-11-16 23:24Deleting Modules QuestionDeleting Modules Question TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok -- sounds good. I'd recommend adjusting the confirmation message:

"Are you sure you want to remove the "xxx" module and delete all data in the "xxx" schema? This operation may render the server unusable and cannot be undone!

Deleting modules on a running server could leave it in an unpredictable state; be sure to restart your server."

It gives the impression there are no other steps.
adam2015-01-15 09:42Jon (LabKey DevOps)2018-11-16 23:24Deleting Modules QuestionDeleting Modules Question TEXT_WITH_LINKSClosed     LabKey Support Forum
Good point, will do.

Adam
adam2015-01-16 15:18Jon (LabKey DevOps)2018-11-16 23:24Deleting Modules QuestionDeleting Modules Question TEXT_WITH_LINKSClosed     LabKey Support Forum
I just added the following note to the Modules page:

The delete links below will remove all record of a module from the database tables, but to remove a module completely you must also manually delete its .module file and exploded module directory from your LabKey Server deployment directory. Module files are typically deployed in <labkey_deployment_root>/modules and <labkey_deployment_root>/externalModules.

Seemed best to show these instructions on the page that displays the delete links; I didn't modify the confirmation message.

Thanks for the suggestion...

Adam
rosnerd2007-07-27 13:41rosnerd2007-07-27 13:41Deleting an Issue from a project's Issues listDeleting an Issue from a project's Issues list TEXT_WITH_LINKSClosed     LabKey Support Forum
George,

Thanks for the explanation. The methodology you describe should server our
needs fine. I'd forgotten that the closed issues were filtered from some of
the default views. Hosing around the database tables and deleting records
isn't a smart option.

Dan
georgesn2007-07-27 13:25Jon (LabKey DevOps)2018-11-16 23:23Deleting an Issue from a project's Issues listDeleting an Issue from a project's Issues list TEXT_WITH_LINKSClosed     LabKey Support Forum
Yeah, that is currently by design, but you're not the first person who dislikes the design. The issue tracker goes to some lengths to be an auditable system, keeping a record of all changes. The typical life-cycle of a issue is that its status moves from open, to resolved, to closed. Resolved is an intermediate state where the resolver asserts that the issue has been dealt with. The system then by default reassigns the issue to the person who opened it. If they agree it has been resolved they close the issue. When the issue is closed, it is still in the database, but is automatically filtered out of most of the default views, so that most users never see it again.

Please try this, and see if it works for you. If not please let us know and we'll consider putting an admin-only command to delete the issue altogether.

In the mean time the only way is to delete the record directly from the database. This is officially unsupported, of course, because you can break the app if you delete db records in ways it doesn't expect, but it is certainly possible.
brittp2012-06-21 09:28Jon (LabKey DevOps)2018-11-16 23:23Deleting and inserting 1000+ recordsDeleting and inserting 1000+ records TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

We're looking into the performance issue you've described. In the meantime, have you looked into our study archive format and automated reload functionality? This was designed to handle exactly the scenario you're describing by allowing new and modified dataset and specimen data to be merged into an existing study:
https://www.labkey.org/wiki/home/Documentation/page.view?name=importExportStudy

If this path looks like it could work, the easiest way to proceed is to export your study using the new XML formats. This file will be used as a template for your nightly reload. After unzipping the file, all you need to do is replace the data for the modified dataset(s) import the data back into the same study.

Let us know if you run into trouble.

Thanks,
Britt
trent2012-05-22 15:32trent2012-05-22 15:32Deleting a DataSet doesn't Remove Views (study)Deleting a DataSet doesn't Remove Views (study) TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh cool. Thanks Kevin - I should have checked the bug tracker before reporting this :)
trent2012-05-22 15:35trent2012-05-22 15:37Deleting a DataSet doesn't Remove Views (study)Deleting a DataSet doesn't Remove Views (study) TEXT_WITH_LINKSClosed     LabKey Support Forum
By the way, is there a way for users to subscribe to issues so that we can get notified of updates?
trent2012-05-22 15:41trent2012-05-22 15:42Deleting a DataSet doesn't Remove Views (study)Deleting a DataSet doesn't Remove Views (study) TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh yep. I musn't have access (permission) to that feature. Only clickable links at the top are: return to grid, print and email prefs. But it's no big deal - ill just make a note of the issue number.
trent2012-05-22 16:31trent2012-05-22 16:31Deleting a DataSet doesn't Remove Views (study)Deleting a DataSet doesn't Remove Views (study) TEXT_WITH_LINKSClosed     LabKey Support Forum
Cheers.
kevink2012-05-22 13:00Jon (LabKey DevOps)2018-11-16 23:24Deleting a DataSet doesn't Remove Views (study)Deleting a DataSet doesn't Remove Views (study) TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi trent,

Sadly this is a long standing issue that we haven't addressed yet. You can track the progress here:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10301
adam2012-05-22 15:38adam2012-05-22 15:38Deleting a DataSet doesn't Remove Views (study)Deleting a DataSet doesn't Remove Views (study) TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, you can "update" and add your email address to the notify list.

Adam
adam2012-05-22 16:29adam2012-05-22 16:29Deleting a DataSet doesn't Remove Views (study)Deleting a DataSet doesn't Remove Views (study) TEXT_WITH_LINKSClosed     LabKey Support Forum
You should be able to now
Jon (LabKey DevOps)2015-07-07 11:24Jon (LabKey DevOps)2018-11-16 23:24Delete All ButtonDelete All Button TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cheryl,

There are two ways to get rid of the buttons. You can either:

A.) Edit the XML Metadata on the table/query via the Schema Browser and set the includeStandardButtons option to "false".

or

B.) You can use Javascript that renders the Query Web Part to set the includeStandardButtons to "false".

The first option removes all the standard buttons whenever that web part renders. The second option just removes it off of the one instance.

Now, if you remove the standard buttons, you will have to then insert your own buttons if you wish for some of the functionality to still be there, like having views or an export.

For more information and code samples, please review the following information below:

https://www.labkey.org/wiki/home/Documentation/page.view?name=customButtonBars
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html#constructor

Regards,

Jon
Jon (LabKey DevOps)2015-07-07 13:08Jon (LabKey DevOps)2018-11-16 23:24Delete All ButtonDelete All Button TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cheryl,

Also keep note that depending on the permissions of the individual who is looking at your web part that renders, they may not get a delete button, so hiding the Delete All Rows button would only prevent anyone that would normally get access to that button from seeing it any more.

Regards,

Jon
Jon (LabKey DevOps)2018-11-27 10:38Jon (LabKey DevOps)2018-11-27 10:38Default value for boolean list field can not be set to falseDefault value for boolean list field can not be set to false TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

I'll have this looked into, but in the meantime, I would recommend that if you do not have really any other default values being used, you can use the "Clear Defaults" button to remove that option instead. Keep in mind, this will clear the defaults of all the fields for that specific list, so only use it if you don't have too many to input back in or you really need to clear that defaulted boolean setting and are willing to re-input in all your field defaults.

Regards,

Jon
Jon (LabKey DevOps)2018-11-27 10:51Jon (LabKey DevOps)2018-11-27 10:51Default value for boolean list field can not be set to falseDefault value for boolean list field can not be set to false TEXT_WITH_LINKSClosed     LabKey Support Forum
Additional workaround: You can also clear the checkbox and have the changes save for the defaults by editing an additional field's default in conjunction with it.

For example:

If I have a list with the text field called "Full Name" and a boolean checkbox for another field that I originally set as TRUE, I can clear the checkbox AND also update the other field's default, essentially doing two changes, then click Save Defaults.

The end result is that the checkbox says cleared and the default value becomes "NONE" for the boolean value and the field called "Full Name" has a new default set for it. After you do this, you can re-edit that other field to put things back.

Additionally, it appears that if you try to use the Save Defaults option by clearing all of the fields, it doesn't allow you to clear it. This might actually be by design, forcing you to have to use the Clear Defaults button.

I'll get this checked as well.

Regards,

Jon
Jon (LabKey DevOps)2015-05-11 17:21Jon (LabKey DevOps)2018-11-16 23:23Default value: current dateDefault value: current date TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Olivier,

Out of the box, LabKey doesn't have anything that will auto-populate a field like date as a default, so you will need to create your own custom solution by having an input page (either a custom data entry page made in a wiki or a file-based module) or you would have to have some kind of Javascript script within a module that will trigger the page to fill in a default date value if a value isn't populated by the user via the UI.

Regards,

Jon
adam2014-01-15 08:34Jon (LabKey DevOps)2018-11-16 23:24Default Encryption Key?Default Encryption Key? TEXT_WITH_LINKSClosed     LabKey Support Forum
In short, changing your MasterEncryptionKey shouldn't be a problem.

The MasterEncryptionKey is used in only a couple places in 13.3 (cloud storage configuration and remote ETL configurations), where actual passwords must be stored in the database. If you haven't used these features, you haven't encrypted any data.

In addition, if the value is blank or set to the default ("@@masterEncryptionKey@@"), then our encryption code will throw a configuration exception, requiring an administrator to provide an appropriate key.

Once you set the MasterEncryptionKey and encrypt values by configuring the services that use it, subsequently changing the key will be a problem... existing values will be irretrievable.

More details here: https://www.labkey.org/wiki/home/Documentation/page.view?name=cpasxml

Adam
Ben Bimber2014-01-15 10:41Jon (LabKey DevOps)2018-11-16 23:24Default Encryption Key?Default Encryption Key? TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks. this seems like a useful feature. i have more recently been using ROOT.xml to store credentials (like LDAP sync); however, I will probably convert our ETLs to use this since they store JDBC strings.
adam2014-01-15 10:55Jon (LabKey DevOps)2018-11-16 23:24Default Encryption Key?Default Encryption Key? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, we considered just adding the remote ETL credentials into labkey/root.xml. This would have been easier, but with additional configurations likely, the admin inconvenience of forcing server restart on every edit plus the global nature of labkey.xml settings (no built-in scoping for user/container) made us lean in favor of building a general purpose encrypted property store.

PropertyManager.getEncryptedStore()

Adam
jeckels2010-10-18 17:26Jon (LabKey DevOps)2018-11-16 23:24date -> formatted string in a labkey validation script?date -> formatted string in a labkey validation script? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Yes, this looks like a good approach. I tested it in a few interesting cases and it worked correctly. Your code uses the JavaScript Date class, which is preferable to anything that reaches out and specifically uses Java classes.

It looks like there are some good standalone JavaScript date formatting libraries out there, like:

http://blog.stevenlevithan.com/archives/date-time-format

that might be worth including in your utility code. Of course, going forward it would be great to automatically have access to the relevant Ext libraries.

Thanks,
Josh
Ben Bimber2010-10-18 19:19Jon (LabKey DevOps)2018-11-16 23:24date -> formatted string in a labkey validation script?date -> formatted string in a labkey validation script? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

it seems like including those libraries is something that should get built into labkey itself. exactly what date library is used doesnt matter all that much, but some basic date manipulation would be a useful feature in validation scripts.
Jon (LabKey DevOps)2018-03-23 16:00Jon (LabKey DevOps)2018-03-23 16:00Data Transform WebpartData Transform Webpart TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

When you create ETLs, you should set moduleDependencies within the module.properties or module.xml file.

This way, you wouldn't have to check off dataintegration manually when enabling the ETL on the container. Rather, the moment the ETL gets enabled on the container, it will automatically enable the dataintegration module and any other modules you want turned on to be used in conjunction with your ETL.

This is explained in our module properties documentation here:

https://www.labkey.org/Documentation/wiki-page.view?name=includeModulePropertiesFile#modprop

Regards,

Jon
Jon (LabKey DevOps)2018-07-06 15:56Jon (LabKey DevOps)2018-07-06 15:56Data TransformsData Transforms TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

This isn't possible out of the box with the ETL data transformations webpart.

It is possible for you to do this using a combination of an embedded webpart within a wiki and leveraging the Javascript Security API and some CSS style code to do this. Since you're on the Community Edition of LabKey, we are unable to provide you with specific code examples. I would recommend using the references below to get you started:

https://www.labkey.org/Documentation/wiki-page.view?name=wikiInsertExamples
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Security.html
https://www.labkey.org/Documentation/wiki-page.view?name=CSS

Regards,

Jon
jeckels2011-07-27 17:26jeckels2011-07-27 17:26Data transformation with Java, using log4jData transformation with Java, using log4j TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Christian,

Thanks for your note, that seems like a useful bit of code for transform scripts.

In 11.2, which will be complete in August, we've added a checkbox in the assay designer to disable deletion of the transform script temp directory to help with this kind of debugging.

We've also made the transform script runner grab other output files from the directory and associate them with the assay run, which is helpful for situations like this where you may want to include other info besides the transformation outputs themselves.

Thanks,
Josh
Karl Lum2011-07-20 08:22Jon (LabKey DevOps)2018-11-16 23:24Data transformation script run parametersData transformation script run parameters TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Christian,

Here's the list I came up with (I'll ask the docs team to add this information to our online documentation).

scriptFile - the full path to the (processed and rewritten) transform script, this is usually in a temporary location the server manages.
runInfo - the full path to the run properties file the server creates. Full documentation of the contents of this file should be in our online docs.

srcDirectory - the original directory of the transform script (usually specified in the assay definition)

- Karl
eknelson2011-07-22 12:20eknelson2011-07-22 12:20Data transformation script run parametersData transformation script run parameters TEXT_WITH_LINKSClosed     LabKey Support Forum
I updated the LabKey documentation to include the information Karl provided in this thread for the scriptFile, runInfo and srcDirectory variables:
https://www.labkey.org/wiki/home/Documentation/page.view?name=javaValidator

Thanks,
Elizabeth
christian.pfaff@novartis.com2011-07-21 00:52christian.pfaff@novartis.com2011-07-21 00:52Data transformation script run parametersData transformation script run parameters TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, thanks
kgrady15@u.washington.edu2009-09-21 10:33kgrady15@u.washington.edu2009-09-21 10:33Data Transformation & JavaData Transformation & Java TEXT_WITH_LINKSClosed     LabKey Support Forum
Problem solved.
Karl Lum2009-09-18 14:19Jon (LabKey DevOps)2018-11-16 23:23Data Transformation & JavaData Transformation & Java TEXT_WITH_LINKSClosed     LabKey Support Forum
If there are spaces in the path to your jarfile, you may have to put quotes around the scriptFile token in your engine definition:

-jar "${scriptFile}" "${runInfo}"
kgrady15@u.washington.edu2009-09-18 14:49Jon (LabKey DevOps)2018-11-16 23:24Data Transformation & JavaData Transformation & Java TEXT_WITH_LINKSClosed     LabKey Support Forum
There are no spaces in the path, but I have quotes around the scriptFile token nonetheless.
christian.pfaff@novartis.com2011-07-21 00:51christian.pfaff@novartis.com2011-07-21 00:51Data Transformation & JavaData Transformation & Java TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello kgrady15

I have seen, that you use the args[] in your transformer to get the username, password and host. Very interesting. Did you hardcode these in the ScriptEngine definition or did you find out how to forward the currently logged in user plus password to the transformer?

Best regards, Christian
jeckels2010-12-03 11:05Jon (LabKey DevOps)2018-11-16 23:23dataset query name in a tableURL?dataset query name in a tableURL? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I just verified that it's not possible to include lookup values in the tableURL for a query. I opened a bug to make this possible in the future:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=11344

There's no current substitution to drop in the name of the query. I assume you're primarily interested in this because you'd like to set the URL on study.studydata and have it apply to all the datasets? I don't think you should need to do this - in 10.3, I made the default details URL for study.studydata bounce you to the dataset-specific details page as appropriate for that row.

Thanks,
Josh
Ben Bimber2010-12-04 03:54Jon (LabKey DevOps)2018-11-16 23:24dataset query name in a tableURL?dataset query name in a tableURL? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh - that's almost right. we need to manually set a tableURL for each dataset anyway in the .query.xml file, since last i knew datasets did not have a default details page. most of the time i use that generic detailsQueryRow.view page.

however, for data entry and row updates I am ending up overriding the default insert/update pages with a custom one. i am for the large part using a single page for all, which accepts a URL param specifying dataset name. so we could make another page like the studydata details one that redirects the user to the right page based on dataset; however, this page would just be the same page plus a different URL param. ie:

/ehr/insertBatch.view?queryName=x
/ehr/insertBatch.view?queryName=y
/ehr/insertBatch.view?queryName=z
chetc (LabKey Support)2019-12-20 13:46chetc (LabKey Support)2019-12-20 13:46datasetcolumns table not showing fields imported through assay moduledatasetcolumns table not showing fields imported through assay module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Wayne,

I'm sorry but I really don't understand what the issue is. Could you please provide a more detailed explanation of what you are working on and what you are trying to do? Please send screenshots if you can.

Thanks,
Chet
Jon (LabKey DevOps)2018-04-20 12:35Jon (LabKey DevOps)2018-04-20 12:35Dataset and ETLDataset and ETL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

You would have to decide what kind of targeting options you want to use in your ETL:

https://www.labkey.org/Documentation/wiki-page.view?name=etlSchedule#target

Regards,

Jon
jeckels2010-11-16 18:22Jon (LabKey DevOps)2018-11-16 23:23dataregion and returning distinct valuesdataregion and returning distinct values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I don't think there's a great solution at the moment. Your implementation looks reasonable for smaller sets of rows.

I don't think that LABKEY.DataRegion has an API for getting the current filter, but if it did you could potentially use it to call LABKEY.Query.selectRows(). It wouldn't have the DISTINCT performed server-side, but it would give you the right set of rows. This might be a viable solution assuming the number of rows isn't too huge.

I don't have any great ideas on how to support the DISTINCT case without a fairly specific API, but will think about it.

Thanks,
Josh
adam2011-08-01 07:50Jon (LabKey DevOps)2018-11-16 23:24Data not Paged after Creating Chart ViewData not Paged after Creating Chart View TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, this is a general issue with reports that we should address in 11.3.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=12758
kevink2013-02-28 12:56Jon (LabKey DevOps)2018-11-16 23:24DataGrid's Apply view filter behaviorDataGrid's Apply view filter behavior TEXT_WITH_LINKSClosed     LabKey Support Forum
The "Apply View Filter" menu item can be confusing. We've discussed removing it completely, but haven't gotten around to it. I've used it only occasionally.

(1) I think your suggestion makes sense. We have a similar issue with URL filters when changing views:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=11355&_docid=issue%3A11355

(2) That sounds like a bug. We should export the data with the view's filters not applied. I've filed a new bug for this:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=17313
kevink2013-03-14 20:05Jon (LabKey DevOps)2018-11-16 23:23DataGrid's Apply view filter behaviorDataGrid's Apply view filter behavior TEXT_WITH_LINKSClosed     LabKey Support Forum
Issue 17313 should be fixed on trunk now.
Jon (LabKey DevOps)2018-06-15 23:37Jon (LabKey DevOps)2018-11-16 23:23Data Grids and updating the URL to reflect current stateData Grids and updating the URL to reflect current state TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

I don't recall anyone asking about this kind of functionality actually.

When you say the QWP isn't retaining their state nicely when they go back, are you talking about things like Grid Views, sort orders, ad-hoc filters, etc?

Regards,

Jon
Will Holtz2018-06-16 09:33Jon (LabKey DevOps)2018-11-16 23:24Data Grids and updating the URL to reflect current stateData Grids and updating the URL to reflect current state TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Yes, I was primarily thinking of user applied sorts, user applied filters and current paging (ie, items 101-200 of 533 instead of 1-100 of 533), but the grid view would also be good to maintain.

I would like to achieve the following behavior:
1) on a QWP based grid, the user selects a grid view, filters a column, and adds a sort
2) user moves to second page of grid
3) user clicks on a link within the QWP based grid and this navigates them to a new page
4) user clicks browser back button
5) user returns to exactly the same rendering they were looking at between steps 2 and 3.

Thanks,
-Will
Jon (LabKey DevOps)2018-06-22 18:00Jon (LabKey DevOps)2018-11-16 23:23Data Grids and updating the URL to reflect current stateData Grids and updating the URL to reflect current state TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Thanks for the clarification.

This would definitely be a feature enhancement on our end to change the behavior to where it doesn't default back to the original hardcoded QWP.

I'm not certain whether this has been asked previously, but I'll submit this for a future review.

Regards,

Jon
Jon (LabKey DevOps)2018-06-22 18:43Jon (LabKey DevOps)2018-06-22 18:43Data Grids and updating the URL to reflect current stateData Grids and updating the URL to reflect current state TEXT_WITH_LINKSClosed     LabKey Support Forum
Unable to find previous bugs/features that covers this, so I've made https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=34651 to have this filed.
Karl Lum2012-04-12 14:06Jon (LabKey DevOps)2018-11-16 23:23Data Cut Date / refreshDate questionData Cut Date / refreshDate question TEXT_WITH_LINKSClosed     LabKey Support Forum
The refreshDate (and other metadata shown in data views) is stored in what we refer to as an ontology property and is not easily accessible using handwritten SQL. Perhaps a better option is to use the client API that the data views panel uses to edit these properties, it would require a little bit of javascript code to first query the datasets you wanted to update the cut date for, and then using the entityId for each dataset as a key, use the editView API to update the date. Here is a sample piece of code (with the entityId hardcoded):


                        Ext.Ajax.request({
                            url : LABKEY.ActionURL.buildURL('study', 'editView.api'),
                            method : 'POST',
                            params : {
                                refreshDate : '2012-04-16',
                                entityId : '6dd43fa6-43dd-102f-9120-7270029090a0',
                                dataType : 'datasets'
                            },
                            success : function(){
                            },
                            failure : function(response){
                                Ext.Msg.alert('Failure', Ext.decode(response.responseText).exception);
                            },
                            scope : this
                        });

To query for the dataset information, use the LABKEY.SelectRows API on the study.datasets table:


                        LABKEY.Query.selectRows({
                            schemaName : 'study',
                            queryName : 'Datasets',
                            columns : ['Label', 'EntityId'],
                            success : function(data, response, options){
                                
                            }
                        });
dennisw2012-04-13 11:18Jon (LabKey DevOps)2018-11-16 23:23Data Cut Date / refreshDate questionData Cut Date / refreshDate question TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks. That looks like a workable solution.
Brian Connolly2010-08-26 16:34Jon (LabKey DevOps)2018-11-16 23:24database sizedatabase size TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,
The previous problem that you encountered was due to the fact that when you performed a backup, you were specifying the output format to be "tar". When using this format, no single table can be larger than 8GB in size. (At the time, the audit table in your database was larger than 8GB in size)

To determine if the backup of any given table is larger than 8GB in size, all you need to do is untar the backup file in a temporary directory. This will produce a file for each table in your database. If any of the files are larger than 8GB, then you will not be able to restore that table.

If you are still using the "tar" output format, then my recommendation is to use the "custom" output format. This format does not have the 8GB limitation. To use this format, simply add the option, "--format=c" to you pg_dump command.


If you are not using the "tar" output format, then can you send me the error message you are receiving when you attempt to restore and I can try and help you.



Other Commands that might be of interest:
================================================

1) Determine the size of your database on disk

SELECT pg_size_pretty(pg_database_size('DBNAME'));


2) Determine size of a given table on disk (this includes both the table and all indexes)

SELECT pg_size_pretty(pg_total_relation_size('big_table'));


3) List row count for all tables in your database

SELECT n.nspname as "Schema", c.relname as "Name", c.reltuples as "Rows" FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind = 'r' ORDER BY c.reltuples DESC
Peter2008-01-02 17:37Jon (LabKey DevOps)2018-11-16 23:24Database QuestionsDatabase Questions TEXT_WITH_LINKSClosed     LabKey Support Forum
Scott,

1. The the information in the Schema XML file is used by a few other parts of the server if it is present. For example, if a column definition in table.XML contains the displayWidth attribute, a data region based on the underlying table will reserve that much width for the column. The only part of the server that *requires* tablexml is the DbSchema regression test.

I am working on documenting the entries in tableInfo.xsd and will add a messsge to this thread when it is ready.
2. you are correct.

3. The tableInfos you see that are created in code are generally the ones used by the Query facility. The TableInfos that are created from the table xml and the database tables and views crated by the .sql scripts. both types of table infos can be attached to a data region and have the same basic properties that govern the way they are shown by a data region. I would look at the issues module and schema for a relatively straightforward example of starting with some basic tables defined in the database and adding to them some TableInfos used in the Query module.

4. I believe you are correct, that when you pass a bean to one of the table methods that takes a bean as a bean as an input parameter, bean properties that do not match the database column names are ignored. Remember that beans as input parameters and output results is only one way to work with the Table object. Beans are usually the right way to insert and edit single records from a user interface. If you are filling a grid you will probably want to use a ResultSet rather than an array of beans.


Peter
Jon (LabKey DevOps)2016-08-31 13:15Jon (LabKey DevOps)2018-11-16 23:24Database check errorsDatabase check errors TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Just to confirm, are these datasets apart of a custom module? This particular error shouldn't be coming up if the domain type has been defined properly:

https://www.labkey.org/home/Documentation/wiki-page.view?name=labkeyDataStructures#domain
https://www.labkey.org/home/Documentation/wiki-page.view?name=propertyFields

Regards,

Jon
Jon (LabKey DevOps)2018-03-09 15:49Jon (LabKey DevOps)2018-11-16 23:23"data_2" error"data_2" error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

The error doesn't make sense against the query you pasted into the post since there is no table called "data_2" anywhere inside of it.

Is that NGR01_CMH_assay_Genotyping an actual table or is it a query made from a table?

Does the original query work without the INNER JOIN?

Have you tried to rewrite this as a Self JOIN?

https://www.w3schools.com/sql/sql_join_self.asp

Regards,

Jon
Will Holtz2016-03-02 15:58Will Holtz2016-03-02 15:58Custom view for a query web part - is there a way not to display the bar with the View name.Custom view for a query web part - is there a way not to display the bar with the View name. TEXT_WITH_LINKSClosed     LabKey Support Forum
I had this exact same problem and was eventually able to get the functionality you asked for with the following code:

function hideGridMessages(dataRegion, request) {
    var task = new Ext.util.DelayedTask(function(x) {x.hideMessage();}, this, [dataRegion]);
    task.delay(15); // display of messages is delayed by 10 in DataRegion.js
}

var qwp1 = new LABKEY.QueryWebPart({
     schemaName: schemaName,
     queryName: queryName,
     renderTo: 'MyDiv',
     success: hideGridMessages
});

One downside of this method, is that the View Name ribbon will briefly display before being hidden. But in many cases, you won't even notice unless you are trying to see it happen.

-Will
Leo Dashevskiy2016-03-02 11:56Leo Dashevskiy2016-03-02 11:56Custom view for a query web part - is there a way not to display the bar with the View name.Custom view for a query web part - is there a way not to display the bar with the View name. TEXT_WITH_LINKSClosed     LabKey Support Forum
No longer relative (decided to keep the closable View Name ribbon).
Leo Dashevskiy2016-03-02 16:08Leo Dashevskiy2016-03-02 16:08Custom view for a query web part - is there a way not to display the bar with the View name.Custom view for a query web part - is there a way not to display the bar with the View name. TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Will, will keep that in mind, it does work, wondering why other LK devs didn't point that out...
Leo Dashevskiy2016-03-02 16:15Leo Dashevskiy2016-03-02 16:15Custom view for a query web part - is there a way not to display the bar with the View name.Custom view for a query web part - is there a way not to display the bar with the View name. TEXT_WITH_LINKSClosed     LabKey Support Forum
And also you don't have to use the "delay" approach:

var onRender = function(){
    var dataregion = qwp1.getDataRegion();
    dataregion.hideMessage();
};

var qwp1 = new LABKEY.QueryWebPart({
    schemaName: schemaName,
    queryName: queryName
});

// note the absence of the "renderTo" config option

qwp1.on( 'render', onRender ); // I believe, "onRender" method must physically in the code precede this call
qwp1.render( 'MyDiv' );
Jon (LabKey DevOps)2015-04-06 16:29Jon (LabKey DevOps)2018-11-16 23:23Custom view for a query web part - is there a way not to display the bar with the View name.Custom view for a query web part - is there a way not to display the bar with the View name. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Yes, you can make that entire section disappear by adding the following to the code that creates your QueryWebPart.

buttonBarPosition: 'none'

That removes the entire button bar above it, including the viewName field that you're seeing.

Regards,

Jon
Leo Dashevskiy2015-04-07 08:27Jon (LabKey DevOps)2018-11-16 23:23Custom view for a query web part - is there a way not to display the bar with the View name.Custom view for a query web part - is there a way not to display the bar with the View name. TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Jon.

We would like to keep the top button bar, though.
So seems like currently there is no simple way to achieve what I'm after.
Jon (LabKey DevOps)2015-04-07 10:47Jon (LabKey DevOps)2018-11-16 23:23Custom view for a query web part - is there a way not to display the bar with the View name.Custom view for a query web part - is there a way not to display the bar with the View name. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Well, you can sort of get away with what you want, but it's going to look a little counter-intuitive.

That buttonBarPosition has four options:

- top
- bottom
- none
- both

Each one will dictate where that buttonBar appears. Although our docs say that "both" is used (the buttonBar appearing on the top and bottom of the screen), I believe this was changed to "top" since I haven't seen a QueryWebPart within a wiki that has them both appearing as of late.

Now, if you use the option for "bottom", the buttonBar appears at the bottom of the screen, but you don't see that view name appearing anywhere - no X to click. This is due to the view Name displaying in conjunction with the top buttonBar. No top buttonBar, no view name to see. But on an aesthetic-level, having the buttonBar at the bottom doesn't look quite as nice as the top, but it will at least give you what you want - a buttonBar but no mentioning of the view that comes up by default via your query.

Regards,

Jon
Leo Dashevskiy2015-04-07 10:53Jon (LabKey DevOps)2018-11-16 23:23Custom view for a query web part - is there a way not to display the bar with the View name.Custom view for a query web part - is there a way not to display the bar with the View name. TEXT_WITH_LINKSClosed     LabKey Support Forum
Yeah, we'd like to keep the top button bar, of course, since it is aesthetically better, we think.

Thanks, anyways.
Matthew Bellew2010-06-23 10:01Jon (LabKey DevOps)2018-11-16 23:24custom URL strings for a fieldcustom URL strings for a field TEXT_WITH_LINKSClosed     LabKey Support Forum
We currently support two URL formats

1) absolute
   must start with http: or https:

2) controller/action
   like a labkey url without the path, the path of the current container will be filled in
   e.g. /project/begin.view

It seems we have a problem that needs to be fixed as far as length. But for now, one way to shorten the URL is to use the container id or container rowid instead of the path in the url e.g.

https://www.labkey.org/project/79704b7a-b9ab-e733-0002-0106c1fdd116/begin.view
or
https://www.labkey.org/project/__r2/begin.view?

There are two ways to figure out this shorter link. The easiest is to click the "Permanent Link" in the navigation area on the left. The other is to go to admin/<path>/containerId.view e.g. https://www.labkey.org/admin/home/containerId.view to see the containerId and rowid.

Matt
Leo Dashevskiy2012-07-26 15:59Leo Dashevskiy2012-07-26 15:59Custom tables for a module/web partCustom tables for a module/web part TEXT_WITH_LINKSClosed     LabKey Support Forum 
Leo Dashevskiy2012-08-01 12:55Leo Dashevskiy2012-08-01 12:55Custom tables for a module/web partCustom tables for a module/web part TEXT_WITH_LINKSClosed     LabKey Support Forum
All right, case closed, thanks to Nick.

The schemaName parameter passed to the XML generating URL as well as the name for the schema's XML file (that gets generated) MUST be lower-case!
kevink2012-07-26 15:07Jon (LabKey DevOps)2018-11-16 23:24Custom tables for a module/web partCustom tables for a module/web part TEXT_WITH_LINKSClosed     LabKey Support Forum
The schema xml file (<module>/schemas/<schema-name>.xml) is metadata about the database tables for things like custom labels, URLs, buttons, and lookups. It can be created for you automatically, but you will most likely need to customize the xml to add labels and buttons. As you write sql upgrade scripts, you'll need to manually keep the schema xml file in sync with the changes you make to the underlying database tables.
Leo Dashevskiy2012-07-27 14:23Jon (LabKey DevOps)2018-11-16 23:23Custom tables for a module/web partCustom tables for a module/web part TEXT_WITH_LINKSClosed     LabKey Support Forum
So when I try to generate this xml schema file I get a file with just one line:

<ns:tables xmlns:ns="http://labkey.org/data/xml"/>


and under <labkey>/server/customModules/<web part name>/src/schmeas/dbscripts/postgresql I have the file named: <schema name>-0.00-0.01.sql

The version of my web part as specified in the config file is 0.01

Here is an example of what the sql file contains:

CREATE SCHEMA QUALIFIER;

CREATE TABLE QUALIFIER.qaTaskList
(
    qaId SERIAL NOT NULL,
    qaName VARCHAR(45) NOT NULL,
    description VARCHAR(45) NOT NULL,
    qaLevel VARCHAR(45) NOT NULL,
    pop VARCHAR(45) NOT NULL,
    formula VARCHAR(45) NOT NULL,
    plotType VARCHAR(45) NOT NULL,

    CONSTRAINT PK_qaTaskList PRIMARY KEY (qaId)
);

So if I understand correctly, the schema description generator does not pick up the sql file and so I do not see anything in the schema browser pertaining to my new schema.

Please, advise, how do I create some custom tables?

Thanks.
-Leo
jeckels2012-07-27 15:23Jon (LabKey DevOps)2018-11-16 23:24Custom tables for a module/web partCustom tables for a module/web part TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

It sounds like the server likely ran your script when it only contained "CREATE SCHEMA QUALIFIER". Once the server has run your script, it won't rerun it, even if you make edits. You can verify this by checking the schema directly in a tool like PGAdmin to see if it has any tables.

If it doesn't, I'd recommend:

1. Move the CREATE TABLE statement into a new script file, with that's called <schema name>-0.01-0.02.
2. Bump your module version to 0.02. Depending on how your module is set up, this number will either be in the Module class or its module.properties file.
3. Build and restart your Tomcat instance.

The server should say that it needs to upgrade the module, and then run your script. If you revisit the link, you should get XML that includes info about your table.

Be sure to review this page, which gives details on how the server decides what scripts need to be run as part of an upgrade:

https://www.labkey.org/wiki/home/Documentation/page.view?name=schemaUpdates

Thanks,
Josh
Leo Dashevskiy2012-07-27 18:06Jon (LabKey DevOps)2018-11-16 23:24Custom tables for a module/web partCustom tables for a module/web part TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh, thanks for your reply.

So I actually first just had the sql script named <schema name>.sql, so I was assuming it was not being run, since it does not conform to the naming standards.

Then, I renamed it to the above, and I think at the time the script was missing the "create schema" statement, so it just had the "create tables" part :) So the server must have run that script (though, I did not rebuild the server), but it did not produce any errors. Or may be it did not run it, since I did not rebuild it all.

Anyways, after that I posted my question, then I tried following your suggestions.

When connecting the actual db with DBVisualizer, I do not see a table named <my schema name> there. Though, in the schema browser I see such a schema as "Samples", but I do not see a table for it in the db, when exploring it with DBVisualizer.

I updated the module version to 0.02 and created another script <schema name>-0.01-0.02: its header looks like this:

DROP SCHEMA IF EXISTS QUALIFIER CASCADE;
CREATE SCHEMA QUALIFIER;

DROP TABLE IF EXISTS QUALIFIER.qaTaskList;
CREATE TABLE QUALIFIER.qaTaskList
(
    qaId SERIAL NOT NULL,
    qaName TEXT NOT NULL,
    description TEXT NOT NULL,
    qaLevel TEXT NOT NULL,
    pop TEXT NOT NULL,
    formula TEXT NOT NULL,
    plotType TEXT NOT NULL,

    CONSTRAINT PK_qaTaskList PRIMARY KEY (qaId)
);

I also rebuild the web part and rebuilt the server and it seemed to have run the "upgrade script", since it said at the log in page that only admins can log in, since there is an upgrade going on. When I logged in, it did display the message that web parts were being upgraded and it actually first threw a 500 error. I think my sql file was incorrect (I was referencing something before it was defined), I corrected that and then the upgrade script went through. Now my web part's version in the admin console is stated as 0.02.

But when I try to generate the corresponding xml, I still get that same 50 bytes long bare and short file.

And another question is: the XML file generator is indifferent to where the schema is sitting, right? Because the schema browser for the entire server is different from the schema browser for a specific project...

I also tried to create the XML file with the corresponding columns and it shows up in the schema browser, but if and when I try to examine the individual tables by clicking on the tables links, I get an error message is red: "Error in query: Communication failure." So the XML file is "not seeing" the actual tables - I am not even sure if they get/got created properly or not.

When connecting with DBVisualizer I still do not see a table there, named <my schema name>

What am I doing wrong and how do I fix this?

If you are in or around the Arnold building at the Hutch, feel free to stop by: B168 on the 2nd floor...

Thanks.
-Leo
Leo Dashevskiy2012-07-31 13:23Jon (LabKey DevOps)2018-11-16 23:24Custom tables for a module/web partCustom tables for a module/web part TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello again, everyone!

Still no luck for me in setting up those custom tables we are in dire need of...

By the way, the first part of the sql file names does not have to be named as the web part, does it? May be that's my problem?
But after looking at that table above, that does not seem to be the case: multiple schema are associated with the same web part and even if it's just one schema, its name sometimes shows up different than the web part name...

I was advised by Kevin to examine the core.sqlscripts table and I do see that my file name QUALIFIER-0.01-0.02.sql got run on Friday and QUALIFIER-0.02-0.03.sql got run yesterday, both belonging to modulename FlowGraph.

I was also advised to delete the module and the associated schema of the module. There was no link for the schema (, which makes me think that the schema was not created after all), so I deleted just the module, (the 2 lines in the core.sqlscripts table mentioned above from yesterday and Friday are still present, so I'm not sure if they should have gotten removed or not, may be I'm not doing something right here); then I rebuilt the server and the module, restarted it, it indicated that it ran the transition script, and another line got added to core.sqlscripts

But again, the associated with the module generated XML is the basic one and I do not see the QUALIFIER schema neither in the DBVisualizer, nor from within Labkey itself...
Nick Kerr2012-07-31 17:34Jon (LabKey DevOps)2018-11-16 23:24Custom tables for a module/web partCustom tables for a module/web part TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I've discovered that the schema XML file name is case-sensitive. In addition, so is the 'dcSchema=' property on the URL for

http://localhost:8080/labkey/admin/getSchemaXmlDoc.view?dbSchema=<schemaName>

This is causing the server to not read the metadata file correctly resulting in errors when looking at specific tables.

My recommendation is to change both your sql upgrade script and your schema XML file to lowercase (e.g. qualifier.xml). This way both the action described above will work and the schema file will get picked up properly.

Thanks,
Nick
Jon (LabKey DevOps)2019-01-17 17:01Jon (LabKey DevOps)2019-01-17 17:01Custom Tables built via XML modulesCustom Tables built via XML modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

I'm not sure I'm understanding your question when you say "link these tables by participantId".

What kind of "link" do you mean? Like "link" as in if you click a link for the ParticipantId, it takes you to a page where all of the information is aggregated about that specific participant?

Within studies, there is a Participant Details View that collects data on a particular participant:

https://www.labkey.org/Documentation/wiki-page.view?name=participantViews

When it comes to "linking", if you mean "lookups" or JOINs, you can setup Lookup Columns within the UI, via SQL, or via XML:

https://www.labkey.org/Documentation/wiki-page.view?name=lookupDefine
https://www.labkey.org/Documentation/wiki-page.view?name=lookups
https://www.labkey.org/Documentation/wiki-page.view?name=queryMetaExamples
https://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/elements/fk.html

Regards,

Jon
Tek Wojenski2017-06-07 17:42Tek Wojenski2017-06-07 17:42Custom SQL QueriesCustom SQL Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon

I'm fine with that. However can I expose my physical (postgres) table/view to Schema Browser's Query from another system schema like study?

I can create views that could do lookups in different postgres schemas, so that is not a problem, but I could not find a way to expose a table/view in my schema to an existing section in Schema Browser.

Any suggestions?

Regards

Tek Wojenski
jeckels2017-06-01 09:38Jon (LabKey DevOps)2018-11-16 23:24Custom SQL QueriesCustom SQL Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tek,

Yes, you can do this directly in the schema browser.

https://www.labkey.org/Documentation/wiki-page.view?name=createQuery

Views from the underlying database can indeed be used, but only if they're being exposed in a way that makes them show up in the schema browser. What schema are the tables and views in? Are they in the primary LabKey database, or in an external database that you configured as an external data source and/or external schema?

https://www.labkey.org/Documentation/wiki-page.view?name=externalSchemas

Thanks,
Josh
Tek Wojenski2017-06-07 07:40Jon (LabKey DevOps)2018-11-16 23:23Custom SQL QueriesCustom SQL Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh

My goal is to use a new/custom table I created in the postgres database. This table name is: aaa, and it has one column: c1.

I added this script to my module; mymodule\schema folder, in file: study.xml

<ns:tables xsi:schemaLocation="http://labkey.org/data/xml ..\..\..\..\schemas\tableInfo.xsd"
           xmlns:ns="http://labkey.org/data/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ns:table tableDbType="TABLE" tableName="aaa">
        <ns:titleColumn>Name</ns:aaa>
        <ns:description>test column</ns:description>
        <ns:columns>
            <ns:column columnName="c1"/>
        </ns:columns>
    </ns:table>
</ns:tables>

My thinking was that this would allow me to access/use the aaa in the Labkey Query and in the Schema Browser, but when I try, I get: table not found error. What am I missing?

Regards

Tek Wojenski
Jon (LabKey DevOps)2017-06-07 11:19Jon (LabKey DevOps)2018-11-16 23:23Custom SQL QueriesCustom SQL Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tek,

Am I correct in thinking that you added a table called "aaa" to the study schema?

In my experience, custom tables are usually added in under their own schemas rather than trying to be grafted to one of the ones built for LabKey.

I'm going to try and create a repro of this problem since I've not had anyone add a table to an existing LabKey schema.

Regards,

Jon
Tek Wojenski2017-06-07 11:34Jon (LabKey DevOps)2018-11-16 23:24Custom SQL QueriesCustom SQL Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Jon

Yes. I actually could use both patterns. One where a new table or view is added to an existing schema ie: study. And another one where I'm creating a new table in my own schema and want to use that new schema.table in inside query browser for some other project.

I think if it too hard or too problematic from support perspective to add table to existing schema; Just having ability to access tables/view from my own schema in other parts of Labkey Queries would do the trick.

Regards

Tek Wojenski
Jon (LabKey DevOps)2017-06-07 12:56Jon (LabKey DevOps)2017-06-07 12:56Custom SQL QueriesCustom SQL Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tek,

After testing this myself, it would be better for you to create your own custom schema and create tables under that rather than using an existing LabKey core schemas, like the study one. The system usually doesn't work well when an existing schema has already been registered, such as the ones that come with LabKey by default.

Regards,

Jon
Tek Wojenski2017-06-21 05:39Jon (LabKey DevOps)2018-11-16 23:24Custom SQL QueriesCustom SQL Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Jon

Any instructions on exposing user created tables and views in Labkey's Schema UI?

Regards

Tek Wojenski
Jon (LabKey DevOps)2017-06-21 10:42Jon (LabKey DevOps)2018-11-16 23:24Custom SQL QueriesCustom SQL Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tek,

I'm not sure I'm understanding your question properly here.

From the LabKey side:

Views (specifically Grid Views) are separate from the Schema Browser.

To make a view available for anyone to use, you need to make sure that you save the view with the option "Make this grid view available to all users" for Sharing checked on. That view would only apply to that specific table or query you're viewing.

Regarding tables and queries, the Schema Browser will only display that information under the following conditions:

1. It is created via a module.

- https://www.labkey.org/Documentation/wiki-page.view?name=addCustomQueryView
- https://www.labkey.org/Documentation/wiki-page.view?name=addSQLQuery
- https://www.labkey.org/Documentation/wiki-page.view?name=sqlScripts

2. It is created via the UI.

- Via Schema Browser to create new queries off of existing tables or queries (https://www.labkey.org/Documentation/wiki-page.view?name=createQuery)
- Via Schema Browser to add a linked schema (https://www.labkey.org/Documentation/wiki-page.view?name=filterSchema)
- Via Schema Browser to add an external schema (https://www.labkey.org/Documentation/wiki-page.view?name=externalSchemas)
- Through lists, studies (i.e. datasets), and assays.

There really isn't a good way to try and shoehorn in that table you're referring to if you created it within the Study schema directly via PostgreSQL. You would have to alter your study module to accommodate that change and we really would advise against that. The preferred method would be to create a module, have the module build a brand new schema and tables, and whenever that module is used for any given project/folder, it will automatically be seen in the Schema Browser for that specific project/folder.

Does that make sense?

Regards,

Jon
Tek Wojenski2017-06-21 11:55Jon (LabKey DevOps)2018-11-16 23:24Custom SQL QueriesCustom SQL Queries TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Jon

Thanks for detailed response.
I'm going to set set up v17.x and get let you know how it goes.

Regards

Tek Wojenski
Jon (LabKey DevOps)2018-04-27 15:52Jon (LabKey DevOps)2018-11-16 23:24Custom Schema and TableCustom Schema and Table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

ETLs themselves do not make custom schemas and tables. That is the responsibility of SQL scripts:

https://www.labkey.org/Documentation/wiki-page.view?name=sqlScripts

However, the ability to delete should exist along with the ability to insert new rows as well provided you didn't configure the XML that renders your table to

Can you send a screenshot of the table in question?

Also, how does your SQL and XML code for your custom schema and table look when compared to our sampletest module here?

https://hedgehog.fhcrc.org/tor/stedi/trunk/server/test/modules/simpletest/resources/schemas/

Regards,

Jon
marcia hon2018-05-16 05:03Jon (LabKey DevOps)2018-11-16 23:24Custom Schema and TableCustom Schema and Table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

The attached is the table that I created via an ETL script.

You can see that I am unable to "delete".

Please let me know how to correct this.


Also, I am unable to access: https://hedgehog.fhcrc.org/tor/stedi/trunk/server/test/modules/simpletest/resources/schemas/

Thanks,
Marcia
Jon (LabKey DevOps)2018-05-18 14:39Jon (LabKey DevOps)2018-11-16 23:23Custom Schema and TableCustom Schema and Table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

You will need to use the username and password "cpas" to access the site.

Please use the username/password and take a look at the module and compare it to your existing one.

Regards,

Jon
Leo Dashevskiy2014-02-12 17:01Leo Dashevskiy2014-02-12 17:01Custom module's view supporting anchors/links in titlesCustom module's view supporting anchors/links in titles TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks, Greg!
Greg Taylor2014-02-12 16:26Jon (LabKey DevOps)2018-11-16 23:24Custom module's view supporting anchors/links in titlesCustom module's view supporting anchors/links in titles TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,
Sorry, I do not think that what you are trying to do is currently possible. I would think that extending the view.xsd file to take another property that could be the title link would be relatively straightforward but this would require a small amount of development effort. In Java code, you can set the webpark link title like you would like but this is not currently possible in the view.xml.

Greg
jeckels2015-01-12 16:44Jon (LabKey DevOps)2018-11-16 23:24Custom Module QuestionCustom Module Question TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Micah,

If your module includes JSPs or .java files, it will need to be compiled before it can be deployed. I added a note to the page you linked to help clarify.

https://www.labkey.org/wiki/home/Documentation/page.view?name=customizingBuild

The build will also automatically do things like compress HTML and JS files, though this step is not required for a successful deployment.

Thanks,
Josh
jeckels2013-01-23 16:24Jon (LabKey DevOps)2018-11-16 23:24Custom List metadata on export/import list archive.Custom List metadata on export/import list archive. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

As you may have noticed, the reason you couldn't choose the Datasets query as the lookup target is that it has a two-column primary key (Container and DatasetId). Although a DatasetId is enough to uniquely identify a dataset within a given container, it's not necessarily unique throughout the whole server. The normal lookup editor works with single-column primary keys.

List archives don't include information from the XML metadata customization. It will only include the metadata shown in the list designer.

Folder archives (Admin->Folder->Folder Management->Export) will include XML metadata for custom queries, but do not currently include metadata overrides for things non-custom queries (like lists, datasets, etc).

Thanks,
Josh
Anthony Corbett2013-01-24 08:32Jon (LabKey DevOps)2018-11-16 23:23Custom List metadata on export/import list archive.Custom List metadata on export/import list archive. TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the reply. I will make sure to let all our devs know that doing custom FK lookups using the table XML should be used sparingly and if used to remember to manual apply it once a list is exported and re-imported somewhere else. Especially if they build queries that depend on this FK lookup being in place. :)
jeckels2013-01-24 08:49Jon (LabKey DevOps)2018-11-16 23:24Custom List metadata on export/import list archive.Custom List metadata on export/import list archive. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Are you familiar with the Validate Queries button in the query browser? It provides a quick and easy way to make sure that all of the fields that your custom queries expect actually existing in the underlying schema, and would catch this kind of problem with missing lookups. It might be a good step to add to any workflows that migrate lists or other data across servers.

Thanks,
Josh
Anthony Corbett2013-01-24 09:10Jon (LabKey DevOps)2018-11-16 23:24Custom List metadata on export/import list archive.Custom List metadata on export/import list archive. TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh! No, I was not familiar with it and sounds great to add to our validation to make us more confident in our migration tasks. Does it check all queries across all schema at once or is it run one schema at a time? Does it validate custom queries that go across multiple schemas, say lists and study?


Great tip! Thanks
adam2013-01-24 09:17Jon (LabKey DevOps)2018-11-16 23:24Custom List metadata on export/import list archive.Custom List metadata on export/import list archive. TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, it validates queries across all schemas, including cross schema custom queries. Go to the schema browser and click "validate queries" to see the various options and try it out.

Adam
Ben Bimber2013-01-24 09:51Jon (LabKey DevOps)2018-11-16 23:24Custom List metadata on export/import list archive.Custom List metadata on export/import list archive. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

I'd recommend also checking 'Validate metadata and views' when you do this. I originally wrote that to help with the sort of custom module issues you're having. It will additionally inspect table metadata to find things like lookups to non-existent tables, or custom views that include invalid columns.

It has the potential to spit out a lot of information, and will probably include some warnings about system tables (assay, flow or samples) that should be ignored. However, it could help identify problems easily missed otherwise.
Jon (LabKey DevOps)2017-02-15 23:40Jon (LabKey DevOps)2018-11-16 23:23Customizing Contacts web partCustomizing Contacts web part TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sossy,

The Contacts web part is not customizable, so the groups wouldn't be able to appear.

However, you could insert a query web part of the Users table (or a query of the user's table) and customize the view to where you only display the name of the user, their phone number, email address, and the groups they're in. This would effectively give you the same information for the specific project.

Does that make sense?

Regards,

Jon
Jon (LabKey DevOps)2017-09-01 14:13Jon (LabKey DevOps)2018-11-16 23:24Customizing a button bar via javaCustomizing a button bar via java TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

You should be able to override and extend the existing ButtonBarConfig via Java and put it in a class of your own in your own module and you wouldn't have to modify core labkey code to do it.. The DefaultEHRCustomizer.java that is used in conjunction with the ONPRC_EHR module appears to do exactly this.

Regarding XInclude, it doesn't appear that we hook into this since it's not apart of XML1.0 or the XML infoset, but it does look very intriguing.

Let me pass this onto our developers for future consideration. I'm not sure how far the extensibility would go, but it would be worth having them look into it further.

Regards,

Jon
Matt V2017-09-12 10:56Jon (LabKey DevOps)2018-11-16 23:23Customizing a button bar via javaCustomizing a button bar via java TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Jon,
Thanks for the reply. I've been poking around and am not seeing a way to modify the standard buttons, just some additional ones.

For example, after enabling the standard buttons via:
  cfg.setIncludeStandardButtons(true);

the getItems call:
  List<ButtonConfig> existingBtns = cfg.getItems();

doesn't list things like insert, print, export, qc state, etc. Tried digging further into what
  List<ButtonConfigFactory> buttons = EHRService.get().getTbarButtons(ti);
but that doesn't seem to be it either.

Best I can tell, the standard buttons are added after this customizer runs so I can't actually modify them.

It's entirely possible I'm missing something here. Any suggestions?
Jon (LabKey DevOps)2017-09-18 14:00Jon (LabKey DevOps)2018-11-16 23:24Customizing a button bar via javaCustomizing a button bar via java TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

You are right, we don't create the buttons until very late. During the rendering phase, we merge the built-in buttons and the button configurations together in the ButtonBar.setConfigs() function.

You could modify the built-in buttons by including the button item you would want to use to the name of the button you'd like to override, such as the "Insert New" button.

Please note that we don't have a good way of applying customizations across many tables with the way the current design of the system. We would have to extend the functionality of our UserSchemaCustomizer to work with all schemas rather than just linked and external ones, but that would require some development resources to get that done. If you are interested in getting onto a development contract/work order, please let us know and we'll be glad to explore this option with you.

Regards,

Jon
Lili2010-05-07 13:50Lili2010-05-07 13:50Customize subfolder initial viewCustomize subfolder initial view TEXT_WITH_LINKSClosed     LabKey Support Forum
Got it working! Thanks a lot!
eknelson2010-05-07 12:25Jon (LabKey DevOps)2018-11-16 23:24Customize subfolder initial viewCustomize subfolder initial view TEXT_WITH_LINKSClosed     LabKey Support Forum
You can customize the portal page of any folder (including subfolders) by adding web parts. See:
https://www.labkey.org/wiki/home/Documentation/page.view?name=addModule

If you would like to display the content of an R view, add the "Report" web part to a portal page. This web part is not yet documented.

I added an example to the portal page of the study demo temporarily -- see the end of the page:
https://www.labkey.org/project/home/Study/demo/begin.view?
Jon (LabKey DevOps)2015-05-05 16:03Jon (LabKey DevOps)2018-11-16 23:24Customize query problemCustomize query problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anny,

I'm not quite sure I'm understanding your question. A boolean field will generally display a value of "true" or "false" when it renders the data.

Are you asking that instead of the column showing "True" or "False", but instead you want it to show a checkmark when the data renders?

Regards,

Jon
fb92002015-05-05 16:15Jon (LabKey DevOps)2018-11-16 23:23Customize query problemCustomize query problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

You are right. Maybe It can be others rather than boolean filed. I just want to show a checkmark column so users can choose different rows. Also I can make this column update (checked or unchecked) to save the record.

Best regards,

Anny
Jon (LabKey DevOps)2015-05-05 23:09Jon (LabKey DevOps)2018-11-16 23:24Customize query problemCustomize query problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anny,

Thanks for confirming the information.

So it is possible to do this via the query. So this is what I did as an example:

1. Create a list that has a boolean field. I kept mine simple with the fields "Name" (which was text/string field) and "Check" (which is my boolean field).
2. Insert some data and have some of the data set to where the boolean box is checked on for True or blank for false.
3. View your data to confirm that it has both true and false values.
4. Click on Admin > Developer Links > Schema Browser to access the Schema Browser
5. Expand the Lists schema and find your list.
6. Create a new query off of that list.
7. Revise your query to use a CASE WHEN function to identify if something is true or false and use a checkmark. See my code example below:

SELECT ListTest.Name,
CASE WHEN ListTest.Check = false THEN ' ' ELSE '√' END AS Checked
FROM ListTest

8. Execute the query to make sure it looks good and then Save & Finish when done.

The query above says that if the value is false, display a blank space, otherwise display a checkmark.

Regards

Jon
fb92002015-05-06 08:14Jon (LabKey DevOps)2018-11-16 23:23Customize query problemCustomize query problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thank you for your response. But what your said only shows the static value of blank space or checkmark. Users can not choose checkbox dynamically.

For example, I want to realize the view like javascript "<input type="checkbox">". So users can check or uncheck at anytime.

How can I render query columns like this?

Thank you very much.

Anny
Jon (LabKey DevOps)2015-05-06 10:48Jon (LabKey DevOps)2018-11-16 23:24Customize query problemCustomize query problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anny,

The ability to allow a user to have a checkbox to change the value within the query when it renders is not possible in this case with the current LabKey design.

In order to accomplish what you want, you would have to design a custom module that would have to not only execute that query, but also have it render a checkbox, have that checkbox automatically populate based on the boolean value, then have that those checkboxes tied to a script that would perform an updateRows API call.

Regards,

Jon
jeckels2015-05-06 20:18Jon (LabKey DevOps)2018-11-16 23:24Customize query problemCustomize query problem TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anny,

If you want to have a checkbox whose value is controlled by the value stored in the underlying database, and to have it automatically save changes as the user click/unclicks it, you will need to do something like what you'll find in our source code at:

server/modules/experiment/src/org/labkey/experiment/controllers/exp/ExperimentMembershipDisplayColumnFactory.java

If you haven't already grabbed the LabKey Server source code, you can find it here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=sourceCode

or check out directly from Subversion using the information here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=svn

If you just want a checkbox that allows you to select data rows like you can for many of the built-in tables, you may be able to accomplish this using a LABKEY.QueryWebPart and setting showRecordSelectors to true.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.QueryWebPart.html#constructor

Thanks,
Josh
Will Holtz2015-05-12 08:14Jon (LabKey DevOps)2018-11-16 23:24Customize query problemCustomize query problem TEXT_WITH_LINKSClosed     LabKey Support Forum
I was able to get this functionality with a little bit of javascript calling LABKEY.ext.EditorGridPanel(). However, this is a depreciated function. You should be able to get similar results using Ext.grid.EditorGridPanel().

<script type="text/javascript">
    var _grid;
    Ext.onReady(function(){
        _grid = new LABKEY.ext.EditorGridPanel({
            store: new LABKEY.ext.Store({
                schemaName: 'MySchema',
                queryName: 'MyQuery',
            }),
            renderTo: 'grid',
            editable: true
        });
    });
</script>
<div id='grid'/>
steve harris2017-09-11 06:01steve harris2017-09-11 06:01Customising SpecimenDetailCustomising SpecimenDetail TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Josh. Brilliant!
jeckels2017-09-06 17:14Jon (LabKey DevOps)2018-11-16 23:24Customising SpecimenDetailCustomising SpecimenDetail TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Steve,

Can you post a screenshot of the specific page you're referring to?

If it's a grid view of data, you can use Grid Views->Customize Grid to curate the set of columns being shown. You can save it as the new default view, and share it with all users. This will be persisted across upgrades.

https://www.labkey.org/Documentation/wiki-page.view?name=customViews

Thanks,
Josh
steve harris2017-09-07 01:46Jon (LabKey DevOps)2018-11-16 23:24Customising SpecimenDetailCustomising SpecimenDetail TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh

Thanks for the response.

Not the grid views - the edit detail view (study-samples-updateSpecimenQueryRow.view). I suspect it is generated on the fly but I hoped there might be some config file I could edit to hide the fields used for sample request management for instance.

Steve
jeckels2017-09-07 17:14Jon (LabKey DevOps)2018-11-16 23:23Customising SpecimenDetailCustomising SpecimenDetail TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Steve,

Yes, you can control this, even for the "mandatory" fields. Please try this:

Admin->Developer Tools->Schema Browser
Select the study schema
Select the SpecimenDetails query
Click Edit Metadata
Choose the field you want to hide. Uncheck the Insert and Update boxes on the "Additional Properties" tab.
Save.

Thanks,
Josh
Ben Bimber2015-05-13 09:22Jon (LabKey DevOps)2018-11-16 23:24Custom HTML of list forms and viewsCustom HTML of list forms and views TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

We do this on virtually every table. You are correct that want to look at the insertURL, updateURL, and tableURL properties. These let you specify an alternate page instead of the default one. Your point about duplicated code/work is a valid one. This may not be exactly the answer you want, but here's how we do it on our sites/modules. Note, these are LabKey extensions, not part of the core features.

- Most of the time we swap out the default LabKey pages for custom Ext4-based ones. This is mostly for cosmetic reasons. To use these all you'd need to do is swap out the URLs. For example, something roughly like "/query/manageRecord.view?schemaName=mySchema&queryName=myTable&keyField=rowId&key=${rowId}" would do it.

- However, would might want more customization. The pages above are based on Ext4 widgets that can create a details page or a form based on columns of a table. In other words you're not writing out the code for the form. Check out manageRecord.html for an example. If you want to slightly customized detail/update form, you could start with one of these classes on your custom HTML page, then extend it to split columns, hide fields, etc. This does require a custom HTML page, but the actual code you write per page should be very small. I could write more if you wanted to go this route.

3) If all you care of is showing/hiding columns, you might be able to do something simpler. This is probably the most common reason we would want to override a page. I *think* you can create a view named ~~INSERT~~, ~~UPDATE~~, or ~~DETAILS~~. When LabKey renders the default insert/update/details views, it should preferentially take the list of columns from the corresponding view when rendering that page. We only create these from file-based modules, but I think any view with this name (even if created through the UI) should override the auto-generated list of columns shown in the standard pages.
Greg Taylor2014-05-19 09:30Jon (LabKey DevOps)2018-11-16 23:24Custom display column for lookupCustom display column for lookup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Yohan,
It is possible to customize the display for column lookups for specific tables when creating a java module. You could define the table in java and then add and customize the display column. I am not aware of a way to do this generally for lists however.
Greg
Andy Straw2014-05-19 11:06Jon (LabKey DevOps)2018-11-16 23:24Custom display column for lookupCustom display column for lookup TEXT_WITH_LINKSClosed     LabKey Support Forum
I had a similar problem, and solved it as follows - not sure this will work for you:

I wrote a query that builds the combined display field. For your list, the query would be something like:

SELECT
   name || ' (' || number || ')' AS title,
   name,
   number,
   key
FROM
   Antibody

If you need to use this as the target of a lookup from some other List, Dataset, or Assay, you'll need to add XML metadata to the query to define a key field - otherwise, the query won't show up in the list of tables in the "lookup" drop-down when you are defining the type of the source field in that List, Dataset, or Assay. Something like this:

<tables xmlns="http://labkey.org/data/xml">
 <table tableName="QueryNameGoesHere" tableDbType="NOT_IN_DB">
   <columns>
     <column columnName="Key">
       <isKeyField>true</isKeyField>
     </column>
   </columns>
 </table>
</tables>

To get the "title" field to be the display column of the query (so it's used in the "lookup" dropdown), I made it the first column in the SELECT statement. There's probably a way to specify that in XML metadata instead.

Hope this helps.

Andy Straw
University of Rochester
yohan jarosz2014-05-19 23:30Jon (LabKey DevOps)2018-11-16 23:23Custom display column for lookupCustom display column for lookup TEXT_WITH_LINKSClosed     LabKey Support Forum
@Andy
Perfect !! I didn't thought about it myself, but simple and straightforward. Many thanks.
BTW I even didn't need to edit table metadata as the query directly shows in the lookup drop down.


@Greg
Thank you. If I need more development I will definitely goes with building a module as it's seems more "customizable".
Jon (LabKey DevOps)2019-01-23 15:25Jon (LabKey DevOps)2019-01-23 15:25Custom Demographics TableCustom Demographics Table TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

When you say you've built a custom demographics table, is this table residing in the study schema as a dataset?

Generally, if you have a dataset and you enable the checkbox for "Demographic Data", the participants in that dataset would be reflected in the study.participants table as well.

Regards,

Jon
jeckels2013-12-02 16:37Jon (LabKey DevOps)2018-11-16 23:23Custom DataTypes for file based assaysCustom DataTypes for file based assays TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Sorry for the very late reply. I've implemented your suggestion, albeit with a slightly different XML schema:

<?xml version="1.0"?>
<provider xmlns="http://labkey.org/study/assay/xml">
  <name>Simple Test</name>
  <description>Simple file-based assay</description>
    <inputDataFile>
        <namespacePrefix>testPrefix</namespacePrefix>
        <role>testRole</role>
        <fileSuffix>.tsv</fileSuffix>
        <fileSuffix default="true">.txt</fileSuffix>
    </inputDataFile>
</provider>

As far as #2 goes (the related files' namespace prefix), can you give a little more detail around your scenario? In many other usages, we don't want to simply reuse the primary data file's namespace prefix (since it's a totally different kind of file). In your scenario, would simply setting a single alternative namespace prefix be sufficient? It would be fine for it to be the same as the primary data file's prefix, as long as your ExperimentDataHandler and other code would be able to make sense of everything.

Thanks,
Josh
Anthony Corbett2013-12-03 14:05Jon (LabKey DevOps)2018-11-16 23:23Custom DataTypes for file based assaysCustom DataTypes for file based assays TEXT_WITH_LINKSClosed     LabKey Support Forum

Josh,

Thanks for your reply. Your implementation of the XML schema looks okay. Using your XML schema my example assay prodiver XML would be:

<provider xmlns:ap="http://labkey.org/study/assay/xml">
    <name>Gel Card</name>
    <description>Gel Card measures titers for anti-A and anti-B antibodies in blood.</description>
    <inputDataFile>
       <namespacePrefix>GelCardImage</namespacePrefix>
       <role>Gel Card Image</role>
       <fileSuffix default="true">.jpg</fileSuffix >
       <fileSuffix >.jpeg</fileSuffix >
       <fileSuffix >.tiff</fileSuffix >
   </inputDataFile>
</provider>

This example is an actual use case for #1 above. I have a file based module using AssayController.FileUploadAction to upload a image file from the user's desktop to labkey. In this case the LSID's namespace for the ExpData which is created is "RawAssayData". By implementing this feature I am looking for the following behavior based on the "primary" inputDataFile defiintion:

1. When uploading a file using this FileUploadAction for a specific assay provider the file extension would be checked against the suffixes defined and would error if it doesn't match. Thus, creating a layer of validation for uploading files as inputs to a file based assay module. Though this could be implemented client side on the file input's value before making the HTTP request to this upload Action, it would prevent business logic from being implemented in two places (once in the XML and again in javascript)

2. When a file is uploaded for a file-based module assay provider the ExpData objet that is created would contain the namespace defined for the "primary" inputDataFile defined, in this case "GelCardImage". After the ExpData was created the Run FK (which created it) would be null until the file was added as output to a run of that assay provider and saved using SaveAssayBatchAction, which during that the Run FK would be added to that ExpData record.

3. As an aside, adding this feature for the FileUploadAction would even allow custom DataHandlers/Parsers to be regesitered to handle some parsing/server side processing of these uploaded files. (maybe through a spring configuration?). This idea just came to me so it might need more fleshing out.


As for #2, the use case could be either a single related data files or multiple related data files, each with a different role. I think having a more generic solution. Having something like a "relatedDataFile" XML type/element that also as namespacePrefix, role, and a list of fileSuffix-es. For all output files attached to the run during a file-based assay module's call to SaveAssayBatchAction the code would loop through these dataFile defitions and apply the correct namespace. Maybe a little tweak to your XML schema would work:

<provider xmlns:ap="http://labkey.org/study/assay/xml">
    <name>Bioanalyzer</name>
    <dataFile type="output" primary="true">
       <namespacePrefix>BioanalyzerFile</namespacePrefix>
       <role>Results</role>
       <fileSuffix default="true">.xml</fileSuffix >
       <fileSuffix>.bioA.xml</fileSuffix >
   </dataFile>
   <dataFile type="output">
       <namespacePrefix>BioanalyzerReport</namespacePrefix>
       <role>Report</role>
       <fileSuffix default="true">.pdf</fileSuffix >
       <fileSuffix>.bioA.pdf</fileSuffix >
   </dataFile>
</provider>

In this use case the primary data file for the run is the XML file and a related data file is a pdf report.

How the files make it up on the server, either picked from the FileContent WebDav widget or uploaded through the FileUploadAction, hopefully won't matter as the definition of these dataFile XML elements would allow adding these files to a run and saving the run and still do the "correct" behavior of matching the corresponding file suffix and applying the correct namespacePreix to the LSID.

I hope this gives a more detailed account of what I am looking for and not sure what would be possible.


Regards,

Anthony Corbett
jeckels2013-12-04 15:32Jon (LabKey DevOps)2018-11-16 23:24Custom DataTypes for file based assaysCustom DataTypes for file based assays TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Thanks for the additional detail. I believe I have this working, and plan to check it in to the trunk (14.1), hopefully tomorrow.

I went with a similar but slightly different schema:

<?xml version="1.0"?>
<provider xmlns="http://labkey.org/study/assay/xml">
    <name>Simple Type</name>
    <description>Simple file-based assay</description>
    <primaryDataFileType>
        <namespacePrefix>testPrefix</namespacePrefix>
        <role>testRole</role>
        <fileSuffix>.tsv</fileSuffix>
        <fileSuffix default="true">.txt</fileSuffix>
    </primaryDataFileType>
    <relatedDataFileType>
        <fileSuffix>.jpg</fileSuffix>
    </relatedDataFileType>
    <relatedDataFileType>
        <namespacePrefix>XMLPrefix</namespacePrefix>
        <role>BeingXMLy</role>
        <fileSuffix>.xml</fileSuffix>
    </relatedDataFileType>
</provider>

Note that in order to get the new behavior on assayFileUpload, you'll need to give the rowId of the assay design. Otherwise, we have no way of knowing which assay provider's data type to use. I've added a note about this in the JavaScript API docs that show sample usage of the upload action.

Thanks,
Josh
Leo Dashevskiy2013-05-28 12:43Leo Dashevskiy2013-05-28 12:43Curious to know about LABKEY.FilterCurious to know about LABKEY.Filter TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks!
Matthew Bellew2013-05-28 12:35Jon (LabKey DevOps)2018-11-16 23:23Curious to know about LABKEY.FilterCurious to know about LABKEY.Filter TEXT_WITH_LINKSClosed     LabKey Support Forum
The filter gets translated into SQL and executed. There should be no difference writing in SQL or using the Filter methods. Filter is provided to mimic the behavior of the UI and URLs, and sometimes it's more convenient to use programmatically than writing SQL.
jeckels2008-04-14 09:29Jon (LabKey DevOps)2018-11-16 23:23csscss TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

The revision number parameter is just something that we add to the CSS URL so that after an administrator changes a look and feel setting for the site, the browsers grab the updated one instead of relying on a cached copy. The revision on the URL doesn't affect how the stylesheet's content.

In general, feel free to add new styles. However, keep in mind that changing existing GWT styles will affect all GWT apps in the software. I think that in most places we want GWT text areas to line wrap, so it might make sense for you to add a new style to handle non-wrapping text areas.

Thanks,
Josh
Matthew Bellew2012-10-01 23:09Jon (LabKey DevOps)2018-11-16 23:23Cross-Folder query problem in 12.2Cross-Folder query problem in 12.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
I don't think that bug is related. I tried to make a simple repro, but didn't succeed. Can you send me a link that demonstrates this problem?
cnathe2012-10-02 05:32Jon (LabKey DevOps)2018-11-16 23:24Cross-Folder query problem in 12.2Cross-Folder query problem in 12.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Scott,
If you are making the query call from somewhere within the "HVTN Publications and Analyses" project, then the work Project, that starts the path to the query/table, takes the place of the actual project name that you are in. So I think you want something like this:

SELECT * FROM Project."_data/".lists."Publications"
SELECT Publications.pub_category FROM Project."_data/".lists."Publications"

-Cory
slangley@scharp.org2012-10-02 10:52Jon (LabKey DevOps)2018-11-16 23:23Cross-Folder query problem in 12.2Cross-Folder query problem in 12.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Cory. Yes, that works.

Scott
jeckels2015-08-24 18:43Jon (LabKey DevOps)2018-11-16 23:24Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

It looks like there may be suspicious values in the core.containers table. Can you try running this query directly against Postgres and share the results here?

SELECT * FROM core.containers WHERE Parent IS NULL

Thanks,
Josh
lewis j mcgibbney2015-08-25 08:42Jon (LabKey DevOps)2018-11-16 23:24Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,
Yes will paste here very shortly.
Thanks for reply.
Lewis
lewis j mcgibbney2015-08-25 13:08Jon (LabKey DevOps)2018-11-16 23:23Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,
OK, this query returns nothing. Nothing at all.
Lewis
Jon (LabKey DevOps)2015-08-25 13:19Jon (LabKey DevOps)2018-11-16 23:23Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

That's really odd. Usually you get at least one entry. Can you re-run that same SQL query directly on your database but remove the WHERE clause after it so it's just:

SELECT * FROM core.containers

Just want to make sure you actually are getting something.

Regards,

Jon
dennisw2015-08-25 13:24Jon (LabKey DevOps)2018-11-16 23:23Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Could this be related to the core-14.30-14.31.sql (or other relevant SQL script) having run 'CREATE FUNCTION core.bulkImport' already? We've had a few issues over the years that involved the SQL upgrade scripts trying to create something that was already there and had similar looking errors. We use SQL Server, but core.bulkImport lives in Programmability->Stored Procedures. I'm assuming that \df in psql would show whether the core.bulkImport SP already exists.
adam2015-08-25 14:27Jon (LabKey DevOps)2018-11-16 23:24Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
The underlying problem appears to be a bad GUID in the Container table (see the first exception). That problem left the upgrade versioning in a bad state, which caused it to re-run SQL it had already run. So, bulkImport is a symptom, not the cause.
lewis j mcgibbney2015-08-25 14:54Jon (LabKey DevOps)2018-11-16 23:24Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
@Jon,

labkey=# SELECT * FROM core.containers
labkey-#

Nothing
lewis j mcgibbney2015-08-25 14:59Jon (LabKey DevOps)2018-11-16 23:24Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Any ideas as to a solution here? This is blocking us from upgrading to 15.2 and a real issue right now. Thanks again in advance for any pointers.
Jon (LabKey DevOps)2015-08-25 15:10Jon (LabKey DevOps)2018-11-16 23:24Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

I think your database might be problematic here. Any chance you can restore your backup that you made from earlier? I've checked older instances of LabKey on Postgres and running a SELECT * FROM core.containers or the original query should have given you something.

Can you restore your database and then run the original query Josh mentioned?

Regards,

Jon
lewis j mcgibbney2015-08-25 16:17Jon (LabKey DevOps)2018-11-16 23:23Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

We restored our original database and typed the same commands:

postgres=# \c labkey
You are now connected to database "labkey" as user "postgres".
labkey=# SELECT * FROM core.containers WHERE Parent IS NULL
labkey-# SELECT * FROM core.containers
labkey-#

Nothing...
Jon (LabKey DevOps)2015-08-25 16:23Jon (LabKey DevOps)2018-11-16 23:24Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

Are you certain you're connected to the right database? Do you have more than one database for LabKey?

Can you run a \l while running psql to bring up your list of databases? Does your older instance of LabKey 14.3 still come up when you run it on the old DB?

There should have been something that appeared when running at least SELECT * FROM core.containers.

Also, are you making sure that you end your query with a semi-colon before hitting enter?

Regards,

Jon
Brian Connolly2015-08-25 16:30Jon (LabKey DevOps)2018-11-16 23:23Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Lewis,

From you last message, it looks like you are missing the semicolon(;) from the end of the SQL statements.

For example, the SQL command that you should be running is

     SELECT * FROM core.containers WHERE Parent IS NULL;

and

     SELECT * FROM core.containers;


Can you try the command again, but this time with the semicolon and see if they return any rows.


-Brian
lewis j mcgibbney2015-08-25 17:01Jon (LabKey DevOps)2018-11-16 23:23Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks guys.

labkey=# SELECT * FROM core.containers WHERE Parent IS NULL;
            _ts | rowid | entityid | createdby | created | parent | name | sortorder | s
earchable |
         description
                   | title | type
----------------------------+-------+--------------------------------------+-----------+-------------------------+--------+------------------------------------------------------------------+-----------+--
----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------+------------------------------------------------------------------+--------
 2015-02-10 02:46:37.194 | 1 | f2fca3f1-92fc-1032-9519-51af32c47241 | | 2015-02-10 02:46:37.194 | | | 0 | t
          |

                   | | normal
 2015-06-30 22:57:56.935152 | 9 | DA0000091 | | 2015-06-30 00:00:00 | | CC0016663 In Vivo Toxicology-MTD in Cynomolgus Monkeys (ET-1947) | 0 | t
          | CC0016663: A Single Intravenous Escalating Dose Study to Determine the Maximum Tolerated Dose in Cynomolgus Monkeys (ET-1947) Experimental Design: One male and one female cynomolgus monkey was
 administered vehicle (5% NMP/65% PEG-400/5% ethanol/12.5% 2-HP?CD/12.5% saline) or CC0016663 (Lot S00L05) via intravenous injection, as a single dose followed by a minimum of 5-day observation period bef
ore the next dose. | CC0016663 In Vivo Toxicology-MTD in Cynomolgus Monkeys (ET-1947) |
(2 rows)

Doing a lot better now. This DA0000091 number is certainly the culprit. It doesn't look like a valid entityid. I suspect that this is just a test entry someone on the team entered.
lewis j mcgibbney2015-08-25 17:04Jon (LabKey DevOps)2018-11-16 23:24Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
And then when I execute the less restrictive query

labkey=# SELECT * FROM core.containers;
            _ts | rowid | entityid | createdby | created | parent | name
               | sortorder | searchable |
                                       description
                                                 | title | type
----------------------------+-------+--------------------------------------+-----------+-------------------------+--------------------------------------+---------------------------------------------------
---------------+-----------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------+------------------------------------------------------------------+--------
 2015-02-10 02:46:37.194 | 1 | f2fca3f1-92fc-1032-9519-51af32c47241 | | 2015-02-10 02:46:37.194 | |
               | 0 | t |

                                                 | | normal
 2015-02-10 02:46:37.262 | 2 | f2fca3f2-92fc-1032-9519-51af32c47241 | | 2015-02-10 02:46:37.262 | f2fca3f1-92fc-1032-9519-51af32c47241 | home
               | 0 | t |

                                                 | | normal
 2015-02-10 02:46:37.549 | 3 | f2fca3f3-92fc-1032-9519-51af32c47241 | | 2015-02-10 02:46:37.549 | f2fca3f1-92fc-1032-9519-51af32c47241 | Shared
               | 0 | t |

                                                 | | normal
 2015-02-10 06:50:55.624 | 4 | f2fca4ae-92fc-1032-9519-51af32c47241 | | 2015-02-10 06:50:55.624 | f2fca3f2-92fc-1032-9519-51af32c47241 | support
               | 0 | t |

                                                 | | normal
 2015-02-10 06:52:45.826 | 5 | f2fca72b-92fc-1032-9519-51af32c47241 | 1003 | 2015-02-10 06:52:45.826 | f2fca3f1-92fc-1032-9519-51af32c47241 | Celgene Test
               | 0 | t |

                                                 | | normal
 2015-02-19 19:03:05.341 | 6 | 6f743c1b-9506-1032-b9bf-51af32c4d069 | 1003 | 2015-02-19 19:03:05.341 | f2fca3f1-92fc-1032-9519-51af32c47241 | HIV-CD4 Study
               | 0 | t |

                                                 | | normal
 2015-06-30 20:05:12.877 | 7 | 009863a0-f313-1032-a439-322dfdf29cd6 | 1010 | 2015-06-30 20:05:12.877 | f2fca3f1-92fc-1032-9519-51af32c47241 | Renato Lewis Test Study
               | 0 | t |

                                                 | | normal
 2015-06-30 20:06:44.951 | 8 | 009864d0-f313-1032-a439-322dfdf29cd6 | 1010 | 2015-06-30 20:06:44.951 | f2fca3f1-92fc-1032-9519-51af32c47241 | Test2
               | 0 | t |

                                                 | | normal
 2015-06-30 22:57:56.935152 | 9 | DA0000091 | | 2015-06-30 00:00:00 | | CC0016663 In Vivo Toxicology-MTD in Cynomolgus Mon
keys (ET-1947) | 0 | t | CC0016663: A Single Intravenous Escalating Dose Study to Determine the Maximum Tolerated Dose in Cynomolgus Monkeys (ET-1947) Experimental Design: One male and on
e female cynomolgus monkey was administered vehicle (5% NMP/65% PEG-400/5% ethanol/12.5% 2-HP?CD/12.5% saline) or CC0016663 (Lot S00L05) via intravenous injection, as a single dose followed by a minimum o
f 5-day observation period before the next dose. | CC0016663 In Vivo Toxicology-MTD in Cynomolgus Monkeys (ET-1947) |
 2015-06-30 23:05:14.295 | 10 | 00986ae4-f313-1032-a439-322dfdf29cd6 | 1010 | 2015-06-30 23:05:14.295 | f2fca3f1-92fc-1032-9519-51af32c47241 | TEST23
               | 0 | t |

                                                 | | normal
(10 rows)
adam2015-08-25 19:17Jon (LabKey DevOps)2018-11-16 23:24Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
This is good... you need to delete that DA0000091 row and retry the upgrade.

Should be obvious at this point, but it's very important that no one inserts, updates, deletes, or performs any DDL on tables in the labkey schemas. If you need to, limit the permissions of most database users to read only.

Adam
lewis j mcgibbney2015-08-25 22:49Jon (LabKey DevOps)2018-11-16 23:23Critical Error when Upgrading to Labkey 15.2Critical Error when Upgrading to Labkey 15.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Adam,
Deleting the offending row and attempting the upgrade seems to have done the trick.
Thank you all for contributing to this thread. Great help.
Lewis
Jon (LabKey DevOps)2019-11-29 17:02Jon (LabKey DevOps)2019-11-29 17:02Creating views from queries via APICreating views from queries via API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jonathan,

You could try to leverage the LABKEY.Report API endpoint to try and insert in new Query Reports into the Data Views page.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Report.html

However, it might be easier for you to just create a single wiki page that has some basic HTML with links that point to your external schema and tables.

If you look at your grid view for one of those tables on that external schema, you'll see the format of the URL containing the schemaName and queryName:

https://www.mylabkeyserver.com/MyProject/query-executeQuery.view?schemaName=MyExternalSchema&query.queryName=MyTable

If you have a list of those tables, you could build an HTML wiki with those tables as links and then use that wiki as a web part for users to access.

If you want to try to build this a little bit more programmatically, it is also possible to get a list of those tables from the Query API endpoint, which you can then extract those table/query names and build those same HTML links for your wiki.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.getQueries

Regards,

Jon
Jon (LabKey DevOps)2015-05-19 17:01Jon (LabKey DevOps)2018-11-16 23:24Creating ParticipantGroups using the JS APICreating ParticipantGroups using the JS API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Although you can get the RowIds by viewing the table, then customizing the view to Show Hidden Fields, then adding the RowId to your view, the system appears to prevent someone from doing an insert into the ParticipantCategory table and the ParticipantGroup table. So doing an insertRows or saveRows Javascript API call wouldn't work in this case.

The entire page that controls adding and managing participant groups is done by ParticipantGroup.js file that is under the Study server module, but I'm not seeing anything within it that could allow a Javascript API to insert in new groups (which it would have to first start by inserting into the ParticipantCategory table first, then use the RowId number from the ParticipantCategory table and use it in the ParticipantGroup table.

I'll confirm with our developers if there is a way to do this without having to use the UI to be certain.

Regards,

Jon
Jon (LabKey DevOps)2015-05-20 15:00Jon (LabKey DevOps)2018-11-16 23:24Creating ParticipantGroups using the JS APICreating ParticipantGroups using the JS API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

So there isn't a supported way to create new Participant Groups via the Javascript API, but there is a way to do this. I'll send you the information directly, but please keep in mind that we don't guarantee it working consistently since we can change how the platform works when it comes to this. Essentially, the Participant Group is handled by the ParticipantGroupController within the Study module and the CreateParticipantCategory action handles adding the category along with the group.

Regards,

Jon
jeckels2013-07-25 14:33Jon (LabKey DevOps)2018-11-16 23:23creating files from javascript interfacecreating files from javascript interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

I think you're on the right track here - you want to have some Java code running on the server that the JavaScript can poke via a HTTP request. I'd recommend creating a small Java module with a single controller class and a single action class that handles the request.

I think this will be easier to maintain compared to a standalone servlet because you won't need to modify the core deployment descriptors to register the servlet and map it to a URL. It also makes it easier to do security checks and other validation because you'll be handed context about the current user, container, etc.

Thanks,
Josh
bront@kcr.uky.edu2013-08-20 13:52Jon (LabKey DevOps)2018-11-16 23:24creating files from javascript interfacecreating files from javascript interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Another question... should I be creating this code as a module or as an simplified externalModule?

I stumbled on a Word doc in this post about simplified modules... sounds good.

https://www.labkey.org/announcements/home/Developer/Forum/thread.view?entityId=7f2f355f-215d-102c-8366-d104f9cd3b19&_docid=thread%3A7f2f355f-215d-102c-8366-d104f9cd3b19

thanks,

bront
jeckels2013-08-21 13:31Jon (LabKey DevOps)2018-11-16 23:24creating files from javascript interfacecreating files from javascript interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Since you need to have Java code running in the server, you won't be able to do it solely as a file-based or simple module. However, we've done a lot of work to make it so that modules can mix and match Java and non-Java resources.

So, you'll need to include Java code and use an Ant build.xml file to get it compiled, but you can still use .html, .sql, .query.xml, and other file-based resources within the same module.

I hope that helps.

Thanks,
Josh
bront@kcr.uky.edu2013-08-21 13:47Jon (LabKey DevOps)2018-11-16 23:24creating files from javascript interfacecreating files from javascript interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Yes, I think it does.

thanks,

bront
bront@kcr.uky.edu2013-08-22 11:40Jon (LabKey DevOps)2018-11-16 23:24creating files from javascript interfacecreating files from javascript interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

I have 2 further questions about building modules.

First, I used create_module to create "TestModule."

When I run TestModule's build.xml Ant script, it reports no errors, but there is no TestModule.module file.

Instead I see:

TestModule/jspTempDir
TestModule/classes
TestModule/explodedModule

I am curious about the explodedModule.

Second, when I place the TestModule directory on the server and restart Tomcat, TestModule becomes an optional folder type (I have not added code to make it available as a web part).

I would, however, expect to see the hello.jsp when I navigate to the following URL, but I don't. I see "Unable to find action 'begin' to handle request in controller 'testmodule'."

/testmodule/sampleFolder/co-investigators/admin/begin.view?

I really appreciate your help.

Many thanks,

bront
jeckels2013-08-23 09:13Jon (LabKey DevOps)2018-11-16 23:24creating files from javascript interfacecreating files from javascript interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

If the build is working, the assembled .module should be copied into <LABKEY_ROOT>/build/deploy/modules. Do you see one there?

From your description, it sounds like either the build isn't compiling your Java classes, or the .module isn't ending up in a place where the server can find it at startup. Can you post the output from doing an "ant clean" and then an "ant build" for your module? That may help track down problems if the Java classes aren't being built correctly.

Thanks,
Josh
bront@kcr.uky.edu2013-08-23 10:20Jon (LabKey DevOps)2018-11-16 23:24creating files from javascript interfacecreating files from javascript interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

I did a build_all and miraculously the build/deploy/modules/test.module appeared... and it worked worked when I loaded it to the server and restarted Tomcat.

Thank you for your help, suggestions and patience.

bront
bront@kcr.uky.edu2013-07-25 14:37bront@kcr.uky.edu2013-07-25 14:37creating files from javascript interfacecreating files from javascript interface TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Thanks for verifying that the Java module is the way to go.

cheers,

bront
Ben Bimber2017-08-01 17:52Jon (LabKey DevOps)2018-11-16 23:23creating both sides of a FK using LABKEY.Query.saveRows()creating both sides of a FK using LABKEY.Query.saveRows() TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

In situations where we've done this, you could consider:

1) can you use a string PK, instead of the rowID? There's a LABKEY.Utils method to generate a GUID, for example. this way you could establish the key upfront, and insert both rows in a transaction as you're doing w/ saveRows().

2) You could add something in the server-side JS trigger scripts to do one of these two inserts. I'm not sure this is always the best pattern for what you describe (making a dedicated java action is probably cleaner), but it can be done. In other words, if you submit a wide row to the child table, if no matching value exists in the FK's source table, you do that insert into that table from code in the trigger script.

-Ben
Will Holtz2017-08-02 17:42Jon (LabKey DevOps)2018-11-16 23:23creating both sides of a FK using LABKEY.Query.saveRows()creating both sides of a FK using LABKEY.Query.saveRows() TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

These are some good ideas. I just tested out your first method and I think it is going to work for me.

thanks!
-Will
Jon (LabKey DevOps)2021-06-03 16:41Jon (LabKey DevOps)2021-06-03 16:41Creating a single survey that posts data to multiple listsCreating a single survey that posts data to multiple lists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Caroline,

Unfortunately, the survey module is a one-to-one setup to where one survey is tied to one table (list, dataset, etc), so you would need to do some custom development outside of the survey module to be able to have a form a user could fill out that is similar to a survey and have that form post to multiple tables.

We have a basic Javascript API tutorial that you can use to get a general idea on making a custom form/survey within LabKey's architecture, but you'll have to look for resource documentation outside of LabKey to come up with a way to do multiple form posts within a single page.

https://www.labkey.org/Documentation/wiki-page.view?name=javascriptTutorial

Regards,

Jon
Steve2018-02-21 09:26Jon (LabKey DevOps)2018-11-16 23:24Creating a Query with data from different schemasCreating a Query with data from different schemas TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia:

This topic gives details on this sort of query:

https://www.labkey.org/Documentation/wiki-page.view?name=crossSchemaJoins

- Steve
jeckels2010-11-23 10:15Jon (LabKey DevOps)2018-11-16 23:24Creating an 'Import Data' button for external schema hard tables?Creating an 'Import Data' button for external schema hard tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

It's a shame that we don't have a built-in Import Data button that works for all tables that support QueryUpdateService (and therefore LABKEY.Query.insertRows, LABKEY.Query.deleteRows, etc), but it's not too hard to do this with a bit of custom UI. Here's an implementation I put together a while ago that lets a user upload a file (TSV or Excel), grabs its contents from the server, and inserts them into a table through the standard LABKEY.Query.insertRows().

I'll try to get something like this added to the core server in 11.1.

Thanks,
Josh
Ben Bimber2010-11-23 10:19Jon (LabKey DevOps)2018-11-16 23:24Creating an 'Import Data' button for external schema hard tables?Creating an 'Import Data' button for external schema hard tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi josh,

that's very similar to what i've done in assay uploads. so i assume there's nothing that avoids that intermediate client-side step of parsing the JSON, then running InsertRows()?
jeckels2010-11-23 10:21Jon (LabKey DevOps)2018-11-16 23:24Creating an 'Import Data' button for external schema hard tables?Creating an 'Import Data' button for external schema hard tables? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Correct. We have that wired up for specific data types like lists and datasets, but not for external schemas. One of our infrastructure projects for 11.1 is working on standardizing our implementations across data types.

Thanks,
Josh
Steve2013-12-13 11:41Jon (LabKey DevOps)2018-11-16 23:24Creating a New Java Module DocumentationCreating a New Java Module Documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Micah:

Thanks for note. Yes, the build process has changed. I will reply to this thread when I have more details for you.

Thanks, Steve
Steve2013-12-16 23:16Jon (LabKey DevOps)2018-11-16 23:24Creating a New Java Module DocumentationCreating a New Java Module Documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
I've updated the topic "Creating a New Java Module" at: https://www.labkey.org/wiki/home/Documentation/page.view?name=createNewModule

Information on building the module is available here: https://www.labkey.org/wiki/home/Documentation/page.view?name=customizingBuild
micahs2013-12-17 09:30Jon (LabKey DevOps)2018-11-16 23:24Creating a New Java Module DocumentationCreating a New Java Module Documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Steve,

Thanks for the updates. Are there corresponding docs for a build and deploy of the module? These docs are great but they seem to focus on the initial module layout.

Micah
Steve2013-12-17 11:42Jon (LabKey DevOps)2018-11-16 23:24Creating a New Java Module DocumentationCreating a New Java Module Documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
Updating the broader set of module docs is on our list, but I don't have an exact date yet for when these updates will be completed.

For module deployment, see: https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleDevelopmentDeployment
micahs2013-12-17 12:05Jon (LabKey DevOps)2018-11-16 23:23Creating a New Java Module DocumentationCreating a New Java Module Documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks. Is that link valid for Java modules? It looked (via jar -tvf on an existing module) like if a Java module contained JSP files they were pre-compiled and placed in the lib dir. Can I just jar up a Java module with the structure detailed in the previous post and drop it in the external modules dir?
adam2013-12-17 13:12Jon (LabKey DevOps)2018-11-16 23:23Creating a New Java Module DocumentationCreating a New Java Module Documentation TEXT_WITH_LINKSClosed     LabKey Support Forum
The "moduleDevelopmentDeployment" page is intended for non-Java modules. As you've seen, we simplified the Java module build process recently to remove the need for a build.xml file in most cases. The main build should build and deploy your custom module, assuming its source directory is referenced in the "standard.modules" file (either explicitly or implicitly via wildcards). The main build will compile your Java files and JSPs, package all code and resources into a .module file, and deploy that module.

Adam
jeckels2013-01-25 17:19Jon (LabKey DevOps)2018-11-16 23:24Creating an Ancillary study with assay data in parent studyCreating an Ancillary study with assay data in parent study TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

I was unable to reproduce this error, though I can see where it's being generated in the code.

Is there perhaps a field in the assay design with a name that ends in "MVIndicator", instead of a field with MV Indicators enabled? The server doesn't let you create new fields that have a name ending in "MVIndicator" but maybe there's a field that predates that check, or came in through some other mechanism that doesn't validate the suffix?

Thanks,
Josh
jeckels2010-04-15 17:08Jon (LabKey DevOps)2018-11-16 23:23create view to show 'records in past 6 months'?create view to show 'records in past 6 months'? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We don't have a way to do this with just a saved view right now, but if you're using a QueryWebPart through the JavaScript API, you could use a saved view for all of the configuration aside from the date filter, and then use JavaScript to calculate the desired date cutoff and pass that as a separate filter.

Thanks,
Josh
marki2011-06-29 14:57Jon (LabKey DevOps)2018-11-16 23:24Create View From Manage Views - No Pagination - SlowCreate View From Manage Views - No Pagination - Slow TEXT_WITH_LINKSClosed     LabKey Support Forum
This is a bug. I've added the following issue to the issue tracker.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=12544
alanv2013-01-28 14:09Jon (LabKey DevOps)2018-11-16 23:24Create stepped graph?Create stepped graph? TEXT_WITH_LINKSClosed     LabKey Support Forum
Currently we do not support bar or stepped graphs. We do plan on implementing at least bar graphs in the future, but we do not have a planned time frame for this. In order to accomplish what you want you would have to massage your data to create the line you want, which as you stated, is a bit ugly.

I would think your second example would be the easiest to implement. Instead of adding 1 layer per horizontal line you could use 1 layer with the path geom (and a second layer for the point geom if you so wish) as long as your data was formatted so that you had all the line segments you needed.
Ben Bimber2013-01-28 14:19Jon (LabKey DevOps)2018-11-16 23:23Create stepped graph?Create stepped graph? TEXT_WITH_LINKSClosed     LabKey Support Forum
got it, thanks.
Ben Bimber2013-01-28 15:04Jon (LabKey DevOps)2018-11-16 23:24Create stepped graph?Create stepped graph? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi alan,

i think i'm missing something. i was able to inject additional data points and use the path geom to create a contiguous line that was stepped, mimicking the graph in the first link.

however, is it possible to create a non-contiguous line? this would be something like the graph in the second link. Maybe I misunderstand your post, but the only way I can see to accomplish a non-contiguous line is to append one layer per segment. it would be something like:

for each data point {

   //add one layer w/ a Path Geom.
    plot.addLayer(new LABKEY.vis.Layer({
      geom: new LABKEY.vis.Geom.Path(...),
      aes: {
           y: function(row){
               //this would return a value if we expect to draw the segment, and null if not.
           }
      }

}

is there a better pattern to follow?
alanv2013-01-28 15:36Jon (LabKey DevOps)2018-11-16 23:24Create stepped graph?Create stepped graph? TEXT_WITH_LINKSClosed     LabKey Support Forum
You're missing the "group" option in the aes object. You do not need to create several layers if you use the group option. If you look at the example line charts in the demo_script.js file you can see a few uses of it. You will likely have to arbitrarily create groups, one per segment needed. I've attached a javascript file that illustrates how I would do it.

In a nutshell:
* Create an array to add data to (we'll call this array chartData).
* Iterate over the data you want to plot. For each bar needed create two points. One at (x, y) and one at (x-1, y). Each point should have a third dimension, I called it "segment", and just assigned it to the index of the current iteration.
* When setting up your aes object specify x, y, and group. Group should be set to "segment", or whatever value you chose to use for a segment.

Now when plot() is called you will get one line per unique value that you grouped by (in my example "segment").

This should accomplish a graph that looks similar to the second example you provided.
Ben Bimber2013-01-28 15:46Jon (LabKey DevOps)2018-11-16 23:24Create stepped graph?Create stepped graph? TEXT_WITH_LINKSClosed     LabKey Support Forum
got it. i'm already grouping on participant, but maybe i should be able to get around that.

thanks for the help.
Ben Bimber2013-01-30 10:26Jon (LabKey DevOps)2018-11-16 23:24Create stepped graph?Create stepped graph? TEXT_WITH_LINKSClosed     LabKey Support Forum
just a little followup:

i got it working, but ultimately needed to add 1 layer per segment, rather than 1 per group. it looks if you use grouping, geom.Path will always give each group a distinct color (geom.js 229). i believe that's generally what you want, but it happened to not be the right thing here. I probably could have subclassed LABKEY.vis.Geom.Path or something, but it wasnt worth the effort for this one graph. thanks again for the help.
alanv2013-01-30 10:33Jon (LabKey DevOps)2018-11-16 23:24Create stepped graph?Create stepped graph? TEXT_WITH_LINKSClosed     LabKey Support Forum
It shouldn't be giving each group a distinct color, unless you happen to be setting the aes.color to the same value as aes.group. We do not color anything unless the user specifies it. For instance, you could group by row.groupName and color by row.color. Color and group are not related (or at least should not be related unless specified by the user).
Jon (LabKey DevOps)2019-09-26 12:44Jon (LabKey DevOps)2019-09-26 12:44Create Project through Python APICreate Project through Python API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dave,

Unfortunately, the Python API has not been wired to create new containers.

At the moment, the only documented APIs that have the means to create new containers are the Javascript API and the Java API:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Security.html#.createContainer
https://www.labkey.org/download/clientapi_docs/java-api/org/labkey/remoteapi/security/CreateContainerCommand.html

Regards,

Jon
Jon (LabKey DevOps)2019-10-25 23:06Jon (LabKey DevOps)2019-10-25 23:06Create Project through Python APICreate Project through Python API TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi David,

Our Community Forum Guidelines (https://www.labkey.org/home/Support/wiki-page.view?name=communityForumGuidelines) are limited to basic LabKey Server topics. Debugging code is something available with our Premium Editions of LabKey. If you are interested in our Premium Editions of LabKey, please feel free to submit a request through our contact form here: https://www.labkey.com/about/contact

In the meantime, I would recommend looking at our code samples here:

https://svn.mgt.labkey.host/stedi/trunk/remoteapi/java/src/org/labkey/remoteapi/test/Demo.java
https://svn.mgt.labkey.host/stedi/trunk/remoteapi/java/src/org/labkey/remoteapi/Connection.java

Regards,

Jon
Jon (LabKey DevOps)2019-10-25 23:13Jon (LabKey DevOps)2019-10-25 23:13Create Project through Python APICreate Project through Python API TEXT_WITH_LINKSClosed     LabKey Support Forum
Also, you can get a good set of Java code via the Export function on a grid, including the grid for the Site Users grid, which is what core.Users is tied to:

https://www.labkey.org/Documentation/wiki-page.view?name=exportScripts

That Java code shows a connection string with the selectRows function.
David Owen2019-10-09 02:03David Owen2019-10-09 02:03Create Project through Python APICreate Project through Python API TEXT_WITH_LINKSActive     LabKey Support Forum
Hi Jon,

I've had a go using the Java Client API, but I can't seem to connect to the server, even though it connects via the Python API.

Python Code:
#!/usr/bin/env python3
import labkey
from labkey.utils import create_server_context
from labkey.query import select_rows

labkey_server = 'PUBLIC_IP'
project_name = 'home'
schema = 'core'
table = 'Users'

server_context = create_server_context(labkey_server, project_name, use_ssl=False)

result = select_rows(server_context, schema, table)

try:
    print(result['rows'][0])
    print("select_rows: Number of rows returned: " + str(result['rowCount']))
except IndexError:
    print('select_rows: Failed to load results from ' + schema + '.' + table)


Java:
import java.util.*;
import org.labkey.remoteapi.*;
import org.labkey.remoteapi.query.*;

public class connectionTest{
    public static void main(String[] args){
        String user = "ADMIN_EMAIL";
        String password = "ADMIN_PASSWORD";
        Connection cn = new Connection("PUBLIC_IP", user, password);

        SelectRowsCommand cmd = new SelectRowsCommand("core", "Users");
        SelectRowsResponse response = cmd.execute(cn, null);
    }
}
ERROR:
connectionTest.java:12: error: unreported exception IOException; must be caught or declared to be thrown
        SelectRowsResponse response = cmd.execute(cn, null);
Jon (LabKey DevOps)2015-09-21 12:51Jon (LabKey DevOps)2018-11-16 23:24Create index on assay columns to improve query performanceCreate index on assay columns to improve query performance TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

In some cases, queries can be optimized through refactoring the SQL code to be more efficient. In others, you would have to adjust the schema itself. This can mean changing the tables themselves (e.g. Having some of the data in lists or other data types instead of assays; although it's difficult to say without knowing the type of data we're dealing with). Otherwise, it means adding indices instead.

At the moment, we don't have a good way for adding custom indices for these kinds of administrator-defined data types like assays and datasets. It's possible to do it directly on the database itself, but we don't really support this either can can't guarantee an increase in performance consistently, but it will definitely do a little better than your standard labkey configuration that we can predict.

Regards,

Jon
Matthew Bellew2011-05-05 08:33Jon (LabKey DevOps)2018-11-16 23:24Created and Modified Info in DatasetCreated and Modified Info in Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
That is a bug. I'm working on dataset update in 11.2 so I'll add that to my list. I suspect this is because the record is actually deleted and then reinserted.
jdutra2011-05-05 12:06Jon (LabKey DevOps)2018-11-16 23:24Created and Modified Info in DatasetCreated and Modified Info in Dataset TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for letting me know!
jeckels2010-11-22 16:29Jon (LabKey DevOps)2018-11-16 23:23create a QCState that works for executeQuery.view?create a QCState that works for executeQuery.view? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

As of 10.3, there's still no way to include built-in data type-specific buttons in a QueryWebPart. This includes QC state and Cohort. It's because the code that generates the QueryWebPart does it in a generic way that doesn't have access to the custom behavior that's associated with, say, datasets. I'd really like to address this in 11.1, but it's not a trivial amount of work and it's not clear that it will be prioritized.

Thanks,
Josh
Ben Bimber2010-11-22 17:34Jon (LabKey DevOps)2018-11-16 23:24create a QCState that works for executeQuery.view?create a QCState that works for executeQuery.view? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

I have a difficult time seeing that get prioritized in 11.1 with all the other things, although merging dataset.view and executeQuery.view (which i think is what you're saying) is something that's come up before.

Making these buttons and attaching to studydata should be simple enough.
kevink2015-04-07 10:47kevink2015-04-07 10:47Create a Container with Default Module via JavaScriptCreate a Container with Default Module via JavaScript TEXT_WITH_LINKSClosed     LabKey Support Forum
Bront,

You can specify a folder type when creating the container. A custom folder type can specify which modules are enabled by default:

https://help.labkey.org/wiki/home/Documentation/page.view?name=customFolderTypes

Kevin
Jon (LabKey DevOps)2015-04-06 16:23Jon (LabKey DevOps)2018-11-16 23:24Create a Container with Default Module via JavaScriptCreate a Container with Default Module via JavaScript TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

You can assign permissions via the LABKEY.Security.savePolicy (https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Security.html#.savePolicy), but there is nothing within the JavaScript API to allow you to enable/disable modules. The only option when it comes to modules is to see what modules are installed and whether they're active & enabled for the specific container you're looking at via LABKEY.Security.getModules (https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Security.html#.getModules)

Regards,

Jon
bront@kcr.uky.edu2015-04-07 10:10bront@kcr.uky.edu2015-04-07 10:10Create a Container with Default Module via JavaScriptCreate a Container with Default Module via JavaScript TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

That works. Thanks for the info (and quick response).

cheers,

bront
jeckels2007-03-16 10:33Jon (LabKey DevOps)2018-11-16 23:24CPAS Linux install failure after custom buildCPAS Linux install failure after custom build TEXT_WITH_LINKSClosedadam    LabKey Support Forum
Aschwin,

As you can probably guess, to date we've only built our redistributables (.exe, .zip, and .tar.gz) on a Windows machine.

Additionally, we didn't consider building the redistributables from the source distribution. This is a valid thing to want to do, so I entered https://cpas.fhcrc.org/Issues/home/issues/details.view?issueId=3049 to track that request.

I'd recommend commenting the call to the installers target in the "build" target in installers/build.xml. That should prevent it from trying to build the Windows .exe installers using makensis.exe and should let you generate a full .tar.gz distribution.
aschwin.vanderwoude@btk.fi2007-03-19 07:27Jon (LabKey DevOps)2018-11-16 23:24CPAS Linux install failure after custom buildCPAS Linux install failure after custom build TEXT_WITH_LINKSClosedadam    LabKey Support Forum
I indeed already guessed you have mostly developed CPAS on Windows.
I hope when I get passed all these little problems, I might be able to supply some patches to make it easier for the next person that attempts the same.
jeckels2007-03-19 11:01jeckels2007-03-19 11:01CPAS Linux install failure after custom buildCPAS Linux install failure after custom build TEXT_WITH_LINKSClosedadam    LabKey Support Forum
We'd welcome any contributions.

For 2.0, I've made it so that the dist_* targets work under *nix and so that the source distributions can build full binary and source distributions.
jeckels2007-01-15 09:37Jon (LabKey DevOps)2018-11-16 23:24CPAS client development kit: way to add to database?CPAS client development kit: way to add to database? TEXT_WITH_LINKSClosedjeckels    LabKey Support Forum
Currently, the CPAS caBIG interface is read-only. We are looking into expanding it in the future. Can you give us any more information on the kinds of things you'd like to be able to do?

Josh
druderman@appliedminds.com2007-01-15 11:47Jon (LabKey DevOps)2018-11-16 23:24CPAS client development kit: way to add to database?CPAS client development kit: way to add to database? TEXT_WITH_LINKSClosedjeckels    LabKey Support Forum
Hi Josh,

The goal would be to write a Java application which can perform
much of the activity that the CPAS browser-based interface can
do. So this would include defining experiments/samples/workflows,
for example.

Or does such a thing (preferably open source) already exist?

Thanks
Dan
Peter2007-05-10 13:36Jon (LabKey DevOps)2018-11-16 23:24CPAS 2.0 Xar.xml XSDCPAS 2.0 Xar.xml XSD TEXT_WITH_LINKSClosed     LabKey Support Forum
We only create a new schemaLocation point when we need to make additions to the xar schema. We haven't added anything since the 1.7 release. So the xars we export in 2.0 It is still unchanged in current 2.1 sources. Also, we try really hard to make only backward compatible changes to the schema, such as adding new optional elements or attributes. So strictly speaking only xar.xmls that use the new elements need to point to the latest schema.
Will Holtz2015-04-07 10:19Jon (LabKey DevOps)2018-11-16 23:24core/Members availabilitycore/Members availability TEXT_WITH_LINKSClosed     LabKey Support Forum
I was previously tripped up by some outdated information in the schema browser on core table permission, and this might be a similar issue. You can find my thread on this here: https://www.labkey.org/announcements/home/Developer/Forum/thread.view?entityId=0404f62a-9dd2-1032-89d0-e5ac46246420&_anchor=10368

-Will
martin2015-04-08 03:01Jon (LabKey DevOps)2018-11-16 23:24core/Members availabilitycore/Members availability TEXT_WITH_LINKSClosed     LabKey Support Forum
so it's an outdated information?

then could you point me to a way how to get groups of a selected user?

in LABKEY.Security I see only getGroupsForCurrentUser...

When querying core/Users, even non-admin user can see all users and their groups.
however when trying to Select Groups From Users Where userId = XY, it returns only userId (XY) of a user, not IDs of groups, even though the names of groups are displayed in the table.

if non-admin user has no access to group ids through Users, Members nor Principals then there is no way to get groups of a different user.
is this a security thing?

but then it seems like there is something i'm missing - non-admin users can see groups of other users, but have no programmatic access to them?
is this true?:)

thank you very much
martin
Jon (LabKey DevOps)2015-04-08 15:30Jon (LabKey DevOps)2018-11-16 23:24core/Members availabilitycore/Members availability TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

If the goal is to get groups of a selected user and obtain the userIds of the groups, you should be able to still do this from core/Users. The field that will give you the group ID numbers is called 'Groups/UserId'.

If you go into your Users table and customize the view, then click on the + next to Groups, you should see a bunch of sub-options under it that it's pulling from the Groups table via a lookup. If you select UserId and then view the grid, you'll see your group ID numbers and if you decide to export the view into JavaScript, you'll see the column called 'Groups/UserId'.

--------------
LABKEY.Query.selectRows({
    requiredVersion: 9.1,
    schemaName: 'core',
    queryName: 'Users',
    columns: 'UserId,DisplayName,Email,Active,LastLogin,Created,FirstName,LastName,Phone,Mobile,Groups,Groups/UserId',
    filterArray: null,
    success: onSuccess,
    failure: onError
});
--------------

This will appear for anyone regardless of permissions. Will that work for you?

Regards,

Jon
martin2015-04-08 23:02Jon (LabKey DevOps)2018-11-16 23:24core/Members availabilitycore/Members availability TEXT_WITH_LINKSClosed     LabKey Support Forum
that works:)
thank you
jeckels2015-04-09 07:52Jon (LabKey DevOps)2018-11-16 23:23core/Members availabilitycore/Members availability TEXT_WITH_LINKSClosed     LabKey Support Forum
I've updated the description of the core.Users and core.Members queries to reflect the changes in permissions required to see email addresses, so in 15.2 and beyond the expected behavior will be clearer.

Thanks,
Josh
Jon (LabKey DevOps)2015-12-13 20:24Jon (LabKey DevOps)2018-11-16 23:24Convert time interval to units of hoursConvert time interval to units of hours TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

Have you tried using the timestampdiff option along with SQL_TSI_HOUR?

Take a look at my SQL code below:

SELECT SupportTickets.Client AS Client,
ROUND(AVG(timestampdiff('SQL_TSI_HOUR', SupportTickets.Created, SupportTickets.Resolved)),2) AS AverageHoursOpenToResolved
FROM SupportTickets
WHERE SupportTickets.Status != 'open' AND SupportTickets.Created >= (curdate() - 7)
GROUP BY SupportTickets.Client

This code specifically identifies the average amount of hours it takes to resolve a ticket by client and then rounds off by two places.

You should be able to do something similar to display your hours similarly.

Reference: https://www.labkey.org/wiki/home/Documentation/page.view?name=labkeysql

Regards,

Jon
Will Holtz2015-12-14 09:38Jon (LabKey DevOps)2018-11-16 23:24Convert time interval to units of hoursConvert time interval to units of hours TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the reply. Here are some related things I've tried without success:

SELECT
timestampdiff('SQL_TSI_HOUR', to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('05 Dec 2000 02:33', 'DD Mon YYYY HH24:MI')) AS tsdiff01,
timestampdiff('SQL_TSI_HOUR', to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('08 Dec 2000 02:33', 'DD Mon YYYY HH24:MI')) AS tsdiff02,
timestampdiff('SQL_TSI_HOUR', to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('08 Dec 2004 02:33', 'DD Mon YYYY HH24:MI')) AS tsdiff03,
age(to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('05 Dec 2000 02:33', 'DD Mon YYYY HH24:MI'))*365*24 AS tsdiff04,
age(to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('08 Dec 2000 02:33', 'DD Mon YYYY HH24:MI'))*365*24 AS tsdiff05,
age(to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('08 Dec 2004 02:33', 'DD Mon YYYY HH24:MI'))*365*24 AS tsdiff06,
age(to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('05 Dec 2000 02:33', 'DD Mon YYYY HH24:MI'), 'SQL_TSI_YEAR')*365*24 AS tsdiff07,
age(to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('08 Dec 2000 02:33', 'DD Mon YYYY HH24:MI'), 'SQL_TSI_YEAR')*365*24 AS tsdiff08,
age(to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('08 Dec 2004 02:33', 'DD Mon YYYY HH24:MI'), 'SQL_TSI_YEAR')*365*24 AS tsdiff09
FROM core.users;

The outputs I get with Postgres v9.3.4.2 and Labkey v15.3 are:
1.0, 1.0, 1.0, 0.0, 0.0, 35040.0, 0.0, 0.0, 35040.0

I really don't understand the outputs of timestampdiff() in my example and it appears that age() rounds or truncates to an integer number of years, so it is not useful for me. Additionally, the Labkey SQL docs state, 'Postgres does not support using timestampdiff on intervals larger than day,' and my use requires intervals larger than a day. (An aside, the Labkey SQL docs list that note about timestampdiff() along side the information about the age() function and not adjacent to the documentation for timestampdiff())

Other ideas?

thanks,

-Will
Matthew Bellew2015-12-14 15:24Jon (LabKey DevOps)2018-11-16 23:23Convert time interval to units of hoursConvert time interval to units of hours TEXT_WITH_LINKSClosed     LabKey Support Forum
Note that the comment in the LabKey SQL docs refers to the units supported by postgres not the size of the interval result. e.g. (SQL_TSI_DAY, SQL_TSI_HOUR, SQL_TSI_MINUTE)

If you need finer granularity of your results, you could do use timestampdiff(..,..,SQL_TSI_MINUTE) and divide by 60.0
Will Holtz2015-12-14 15:46Jon (LabKey DevOps)2018-11-16 23:24Convert time interval to units of hoursConvert time interval to units of hours TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matthew,

Yes, using timestampdiff with 'SQL_TSI_MINUTE' should do what I need. But something is broken with timestampdiff for me. Here is another test I did:
SELECT
to_timestamp('05 Dec 2000 02:33', 'DD Mon YYYY HH24:MI') - to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI') AS interval01,
to_timestamp('08 Dec 2000 02:33', 'DD Mon YYYY HH24:MI') - to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI') AS interval02,
to_timestamp('08 Dec 2004 03:12', 'DD Mon YYYY HH24:MI') - to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI') AS interval03,
timestampdiff('SQL_TSI_MINUTE', to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('05 Dec 2000 02:33', 'DD Mon YYYY HH24:MI'))/60 AS tsdiff01,
timestampdiff('SQL_TSI_MINUTE', to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('08 Dec 2000 02:33', 'DD Mon YYYY HH24:MI'))/60 AS tsdiff02,
timestampdiff('SQL_TSI_MINUTE', to_timestamp('05 Dec 2000 01:13', 'DD Mon YYYY HH24:MI'), to_timestamp('08 Dec 2004 03:12', 'DD Mon YYYY HH24:MI'))/60 AS tsdiff03
FROM core.users
LIMIT 1;

gives the output:
0 years 0 mons 0 days 1 hours 20 mins 0.00 secs    0 years 0 mons 3 days 1 hours 20 mins 0.00 secs    0 years 0 mons 1464 days 1 hours 59 mins 0.00 secs    0.3333333333333333    0.3333333333333333    0.9833333333333333

So for me, timestampdiff appears to be just extracting the value of the 'interval' portion of the time difference and not converting the total time difference into 'interval' units.

-Will
Matthew Bellew2015-12-14 16:22Jon (LabKey DevOps)2018-11-16 23:24Convert time interval to units of hoursConvert time interval to units of hours TEXT_WITH_LINKSClosed     LabKey Support Forum
I am very surprised by this. I just verified that this gives the expected behavior against SQL Server. In both cases we are generating the standard JDBC syntax for this {fn timestampdiff(...)}

reference: http://docs.oracle.com/javadb/10.8.3.0/ref/rrefjdbc88908.html

I may need to investigate the behavior using the lastest driver from pgjdbc and maybe ask that team for help.
Will Holtz2015-12-14 16:37Jon (LabKey DevOps)2018-11-16 23:24Convert time interval to units of hoursConvert time interval to units of hours TEXT_WITH_LINKSClosed     LabKey Support Forum
According to https://jdbc.postgresql.org/documentation/94/escaped-functions.html#escape-datetime-functions-table, timestampdiff() gets translated to an extract() for Postgres. That matches the behavior I am seeing.

-Will
Matthew Bellew2015-12-14 18:35Jon (LabKey DevOps)2018-11-16 23:24Convert time interval to units of hoursConvert time interval to units of hours TEXT_WITH_LINKSClosed     LabKey Support Forum
I entered a bug to track this issue on our side.

  https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=25146

I also posted a question to pgsql-jdbc@postgresql.org to clarify this behavior.

Matt
Will Holtz2015-12-14 21:20Jon (LabKey DevOps)2018-11-16 23:23Convert time interval to units of hoursConvert time interval to units of hours TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Matt!

-Will
jeckels2014-11-14 09:48Jon (LabKey DevOps)2018-11-16 23:23Converting Resultset into JSONConverting Resultset into JSON TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

We typically use org.labkey.api.action.ApiQueryResponse, or its more extensive subclass ExtendedApiQueryResponse, to return ResultSets to a client via JSON. It writes out both the metadata about the columns as well as the data rows. It doesn't work with a straight ResultSet though, it works with a QueryView. It may still provide a useful guide.

We have ExtJS store implementations that translate this JSON into a standard Store. As you may know, ExtJS made significant changes to how its Stores work between versions 3 and 4, so there are different implementations in server/api/webapp/clientapi/ext3/data/Store.js and server/api/webapp/clientapi/ext4/data/Store.js.

Thanks,
Josh
bront@kcr.uky.edu2014-11-14 10:03Jon (LabKey DevOps)2018-11-16 23:23Converting Resultset into JSONConverting Resultset into JSON TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Thanks. I appreciate your input. Let me take a look.

cheers,

bront
Leo Dashevskiy2015-10-20 13:24Leo Dashevskiy2015-10-20 13:24Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way?Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way? TEXT_WITH_LINKSClosed     LabKey Support Forum
We seem to have found a way around it by on the front side passing the string:

filters = Ext.encode( <QueryWebPart instance>.getDataRegion().getUserFilter() )

and on the back-end decoding it as follows:

filters <- RJSONIO::fromJSON( labkey.url.params$filters )

filter <- as.matrix( lapply( filters, function( e ){
    return( paste0( RCurl::curlEscape( e['fieldKey'] ), '~', e['op'], '=', RCurl::curlEscape( e['value'] ) ) );
}) );
if ( nrow( filter ) == 0 ){
  filter <- NULL;
}

The resulting object "filter" can then be passed directly as the value of the "colFilter" parameter of the "labkey.selectRows()" method, since it is in the exact same form as the result of a call to the "makeFilter()" method.
Jon (LabKey DevOps)2015-04-27 20:56Jon (LabKey DevOps)2018-11-16 23:24Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way?Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

You're right. Looking at our API documentation, I'm not seeing anything that would convert a string into a filter. I can submit a feature request for you, but can you give me an example of how you expect this conversion to happen? Specifically, how should the API call look? Below is a basic example of what a regular filtered query looks like via the Javascript API. Can you provide an example of what your conversion string-based filter would ideally look like?

    LABKEY.Query.selectRows({
        schemaName: 'lists',
        queryName: 'People',
        success: onSuccess,
        failure: onFailure,
        filterArray: [
            LABKEY.Filter.create('FirstName', 'Johnny'),
            LABKEY.Filter.create('Age', 15, LABKEY.Filter.Types.LESS_THAN_OR_EQUAL)
            LABKEY.Filter.create('LastName', ['A', 'B'], LABKEY.Filter.Types.DOES_NOT_START_WITH)
        ]
    });

Regarding the Rlabkey package and the makeFilter operation order of "Column/Operator/Value", it looks like the Javascript API and Java API work as "Column/Value/Operator" while the Rlabkey, Perl, and Python APIs use the "Column/Operator/Value" order. If the APIs were to be changed, they would have to provide backward compatibility to allow existing queries to work.

Regards,

Jon
Leo Dashevskiy2015-04-28 08:37Jon (LabKey DevOps)2018-11-16 23:24Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way?Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way? TEXT_WITH_LINKSClosed     LabKey Support Forum
A JS method that takes in an object, which has key value pairs in the form: "age~gt": 0, and returns the array of "filter objects", would be nice [ the input argument is the result of Ext.urlDecode( parametersString ), where parametersString is of the form blah&age%7Egt=0&blah... ]
Care must be taken to ensure that only pairs with keys containing a tilde "~" are converted, moreover, only those pairs, where the portion in a key after the tilde is a valid operator name, are converted.

What do you think?

Thanks, Jon.
Leo Dashevskiy2015-04-28 14:48Jon (LabKey DevOps)2018-11-16 23:24Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way?Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way? TEXT_WITH_LINKSClosed     LabKey Support Forum
I meanwhile (it might be a while before the feature request gets realized) cooked myself up something like this:

            var
                filters = [],
                ar, cn, ft,
                map =
                    {
                        eq: 'EQUAL',
                        dateeq: 'DATE_EQUAL',
                        neq: 'NOT_EQUAL',
                        dateneq: 'DATE_NOT_EQUAL',
                        neqornull: 'NOT_EQUAL_OR_MISSING',
                        gt: 'GREATER_THAN',
                        dategt: 'DATE_GREATER_THAN',
                        gte: 'GREATER_THAN_OR_EQUAL',
                        dategte: 'DATE_GREATER_THAN_OR_EQUAL',
                        lt: 'LESS_THAN',
                        datelt: 'DATE_LESS_THAN',
                        lte: 'LESS_THAN_OR_EQUAL',
                        datelte: 'DATE_LESS_THAN_OR_EQUAL',
                        startswith: 'STARTS_WITH',
                        doesnotstartwith: 'DOES_NOT_START_WITH',
                        contains: 'CONTAINS',
                        doesnotcontain: 'DOES_NOT_CONTAIN',
                        containsoneof: 'CONTAINS_ONE_OF',
                        containsnoneof: 'CONTAINS_NONE_OF',
                        'in' : 'EQUALS_ONE_OF',
                        notin: 'EQUALS_NONE_OF',
                        between: 'BETWEEN',
                        notbetween: 'NOT_BETWEEN',
                        memberof: 'MEMBER_OF',
                        isblank: 'MISSING',
                        isnonblank: 'NOT_MISSING',
                        hasmvvalue: 'HAS_MISSING_VALUE',
                        nomvvalue: 'DOES_NOT_HAVE_MISSING_VALUE'
                    }
            ;


            $.each( params, function( k, v ){
                ar = k.split( '~' );
                if ( ar.length == 2 ){
                    
                    ft = LABKEY.Filter.Types[map[ar[1]]];
                    cn = ar[0];

                    if ( ft && cn.substring( 0, 6 ) == 'query.' ){
                        filters.push( LABKEY.Filter.create( cn.substring( 6 ), v, ft ) );
                    }
                }
            });

Where "params" is the input I wrote of and "filters" is the output I wrote of.

I got the backwards "map" from the makeFilter() R method (had to reverse it in R) and also clean up some to remove duplicates.
By the way, there are a few discrepancies in names between R's makeFilter() method and JS Filter.js file!

Oh, something I forgot in the previous post is that a URL encoding for a filter also starts with "query." and not the column name right away as I previously erroneously wrote, so I guess that's another requirement...

Thanks.
-Leo
Jon (LabKey DevOps)2015-05-06 12:48Jon (LabKey DevOps)2018-11-16 23:23Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way?Converting a URL-encoded filter to a LABKEY.Filter - is there a quick and easy way? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Leo! I've submitted your idea to our developers for future consideration!

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=23247

Regards,

Jon
brendanx2008-06-23 13:26Jon (LabKey DevOps)2018-11-16 23:24ConversionQueue temp directoryConversionQueue temp directory TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, you can send us a patch for Bruker and ABI conversion. Please do.

You should have a look at:

WEB-INF/classes/conversionQueue.properties

Make sure all properties fit your system.

--Brendan
Matthew Bellew2012-05-22 09:26Jon (LabKey DevOps)2018-11-16 23:23containerFilter on queries for lists schemacontainerFilter on queries for lists schema TEXT_WITH_LINKSClosed     LabKey Support Forum
Lists do not currently support shared definitions (say like Assays do). Each list in each folder is a separate table belonging to one container, so your container filter strategy won't work.

You could consider

* use a UNION query
* create a table using a file-based module https://www.labkey.org/wiki/home/Documentation/page.view?name=sqlScripts
* keep the list in one folder (e.g. /shared) and have other folders all point to the same list.

Matt
Ben Bimber2012-05-22 09:28Jon (LabKey DevOps)2018-11-16 23:24containerFilter on queries for lists schemacontainerFilter on queries for lists schema TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

In addition to matt's comment, you might consider:

1) create a hard table in an external schema or schema defined through a custom module. these tables can be shared across containers.

2) if you could use an assay, that assay could be defined at the project level or in /shared, in which case it will be visible to subfolders.

depending on your application, you might also be able to to have a single list located in 1 container, then view/insert records into this list from both containers (see containerPath on most APIs and the QueryWebpart).
jeckels2015-05-03 17:47Jon (LabKey DevOps)2018-11-16 23:24Connecting multiple table with LookupConnecting multiple table with Lookup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Feifei,

A single column can only be configured with a single lookup, as you've discovered. You can set custom query metadata to clone the column (via the Alias Column button, not shown in the screenshot in the docs), which can be configured with a different lookup. The lookup target could be a custom query which would allow you to specify the SQL.

https://www.labkey.org/wiki/home/Documentation/page.view?name=metadataSql

Thanks,
Josh
Jon (LabKey DevOps)2022-02-15 14:15Jon (LabKey DevOps)2022-02-15 14:15Configuring PGAdmin4 to access the labkey databaseConfiguring PGAdmin4 to access the labkey database TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tim,

Port 8080 is reserved for Tomcat web server operations to allow your browser to connect to the site. It isn't meant to be used for your database connection.

To connect to your database, you would need to use a different port that is designated for PostgreSQL. By default, PostgreSQL server uses port 5432 (see https://www.enterprisedb.com/postgres-tutorials/connecting-postgresql-using-psql-and-pgadmin for more details).

Just like our XML example here shows how your LabKey server connects to a PostgreSQL database (https://www.labkey.org/Documentation/wiki-page.view?name=cpasxml#db), for your PGAdmin utility (or using the psql command-line tool) to connect to PostgreSQL, you would need to use that same database port as well.

Regards,

Jon
jeckels2014-11-11 15:58Jon (LabKey DevOps)2018-11-16 23:24Configuring icon for Flag columnConfiguring icon for Flag column TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

The icon isn't user- or administrator-configurable. It's set in the Java code on a per-table type basis (batches, runs, etc).

Thanks,
Josh
Jon (LabKey DevOps)2015-05-13 15:18Jon (LabKey DevOps)2018-11-16 23:23Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Vahid,

When you said you went through the installation steps, was it this that you followed?

https://www.labkey.org/wiki/home/Documentation/page.view?name=manualInstall

When you configured your LabKey.xml file, did you make sure that you used the correct credentials and have it point to the correct server URL for your postgres DB?

Regards,

Jon
vahid azimi2015-05-13 15:55Jon (LabKey DevOps)2018-11-16 23:23Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I am following installation steps that a co-worker of mine put together, but I believe it is based off of the link you posted.

After I installed postgresql, I ran the following command within psql: type 'alter user postgres password 'Pass01@';

I replaced appdocbase with the location of labkeywebapp, set username to "postgres", and password to "Pass01@".

I am attaching the contents of my labkey.xml file as well just in case I didn't cover everything you asked.

Thanks,
Vahid
Jon (LabKey DevOps)2015-05-13 16:17Jon (LabKey DevOps)2018-11-16 23:23Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vahid,

Thanks for providing that XML file to us.

The section for the database looks mostly fine. However, I did notice that you didn't have a port listed in your URL.

Typically when you install PostgreSQL, it runs off of port 5432 by default. So unless you changed it or have some kind of port forwarding in place, can you try it as "jdbc:postgresql://localhost:5432/labkey" instead?

Regards,

Jon
vahid azimi2015-05-13 16:27Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Thanks for the reply. I made the change to the Labkey.xml file as you suggested. I am now getting the following error:

HTTP Status 404 - /labkey

type Status report
message /labkey
Description The requested resource is not available

Any ideas?

Thanks,
Vahid
Jon (LabKey DevOps)2015-05-13 17:12Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vahid,

I took a second look at your error and saw "FATAL: Ident authentication failed for user "postgres"" listed as the reason why it didn't connect the first time.

Can you change your labkey.xml file back to the way it was before without the port number and then do the following for me using psql:

Run the command:

psql -h localhost -U postgres -d labkey

When it prompts for the password, try the password you said you changed it to: Pass01@

If it doesn't work, then I believe your password didn't actually get changed here.

Regards,

Jon
vahid azimi2015-05-14 09:21Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I changed the labkey.xml back to the way it was, and ran the command you suggested using psql. Oddly, I did not get prompted for the password.

Thanks,
Vahid
Jon (LabKey DevOps)2015-05-14 09:43Jon (LabKey DevOps)2018-11-16 23:23Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vahid,

That's interesting. It should have asked for a password unless your machine has the password saved in the pgpass file.

http://www.postgresql.org/docs/9.3/static/libpq-pgpass.html

Can you locate your pgpass file and confirm whether you have your password stored there and if so, confirm that it matches what you had originally set it to and then retry the psql command?

Regards,

Jon
Jon (LabKey DevOps)2015-05-14 10:36Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vahid,

Additionally, can you also provide us with two more things?

1. Can you send us the contents of your pg_hba.conf file? That should be located in the PGDATA directory of your PostgreSQL installation.

2. Can you run the following command and send us the output?

netstat -an | grep 5432

Regards,

Jon
vahid azimi2015-05-14 11:42Jon (LabKey DevOps)2018-11-16 23:23Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I wasn't able to locate a pgpass file anywhere on my system. Is it possible that there isn't one? Again, thanks for bearing with my limited knowledge of Linux.

1. I attached the contents of the pg_hba.conf file to this post.

2. The output of the command netstat -an | grep 5432:

tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp 0 0 ::1:5432 :::* LISTEN
unix 2 [ ACC ] STREAM LISTENING 119567 /tmp/.s.PGSQL.5432


Thanks for your patience.

-Vahid
Jon (LabKey DevOps)2015-05-14 13:25Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vahid,

Thanks for providing that to us.

Our Operations Specialist looked over your configuration and provided us with the changes you need to make to your pg_hba.conf file:


# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident

Can you make the following changes above to your file and then restart PostgreSQL so it takes the changes?

Regards,

Jon
vahid azimi2015-05-14 13:49Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for the suggestion. I made the following changes, and am now back to the error I was getting at the beginning (in my first post).

-Vahid
Jon (LabKey DevOps)2015-05-14 13:52Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vahid,

Does the error also say this as well within it?

"Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres""

Regards,

Jon
vahid azimi2015-05-14 13:54Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Yes, it does.

-Vahid
Jon (LabKey DevOps)2015-05-14 14:15Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vahid,

Did you restart the PostgreSQL server as well, shutting down PostgreSQL and then starting it back up?

I'd like to confirm this by having you run the following command:

ps -ef | grep postg

This will let us see the process for PostgreSQL on the machine and see how long it has been up.

Please send us the output when you're done.

Regards,

Jon
vahid azimi2015-05-14 14:47Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jony,

Please see the output of "ps -ef | grep postg" below after I stopped and started postgres:

postgres 11611 1 0 00:05 ? 00:00:00 /usr/pgsql-9.4/bin/postmaster -D /var/lib/pgsql/9.4/data
postgres 11613 11611 0 00:05 ? 00:00:00 postgres: logger process
postgres 11615 11611 0 00:05 ? 00:00:00 postgres: checkpointer process
postgres 11616 11611 0 00:05 ? 00:00:00 postgres: writer process
postgres 11617 11611 0 00:05 ? 00:00:00 postgres: wal writer process
postgres 11618 11611 0 00:05 ? 00:00:00 postgres: autovacuum launcher process
postgres 11619 11611 0 00:05 ? 00:00:00 postgres: stats collector process
postgres 11666 11611 0 00:05 ? 00:00:00 postgres: postgres labkey 127.0.0.1(43654) idle
root 11670 11520 0 00:05 pts/2 00:00:00 grep postg

Thanks,
Vahid
Jon (LabKey DevOps)2015-05-14 15:19Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Vahid,

Ok, now retry the psql command from earlier:

psql -h localhost -U postgres -d labkey

This time, it should prompt for a password and we can tell whether your password that you set is actually correct.

Regards,

Jon
vahid azimi2015-05-14 15:30Jon (LabKey DevOps)2018-11-16 23:24Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I rebooted my virtual machine, logged back in, and followed your directions.

It prompted me for my password; I entered Pass01@ ...here is the command line:

[root@localhost Downloads]# psql -h localhost -U postgres -d labkey
Password for user postgres:
psql (9.4.1)
Type "help" for help.

labkey=#


I then opened up localhost:9090/labkey in my browser and it worked! Thank you so much for your help.

-Vahid
Jon (LabKey DevOps)2015-05-14 15:52Jon (LabKey DevOps)2018-11-16 23:23Configuration error deteced at LabKey Server StartupConfiguration error deteced at LabKey Server Startup TEXT_WITH_LINKSClosed     LabKey Support Forum
Fantastic! Glad it finally started up for you!

Regards,

Jon
Jon (LabKey DevOps)2018-02-16 18:28Jon (LabKey DevOps)2018-02-16 18:28Conditional ValidationConditional Validation TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Assuming that you mean the input form when someone enters in data, by default, we do not provide this level of conditional validation.

It is possible for you to leverage our Javascript API and build your own input form in a wiki page or within a custom module that can do this kind of conditional validation before the data is inserted, provided you also can write your own Javascript code as well to do the conditional validation.

Please take a look at our basic tutorial doc on creating an application via the JavascriptAPI: https://www.labkey.org/Documentation/wiki-page.view?name=javascriptTutorial

Regards,

Jon
marki2010-10-25 13:28Jon (LabKey DevOps)2018-11-16 23:24conditional names on views?conditional names on views? TEXT_WITH_LINKSClosed     LabKey Support Forum
If I understand you correctly you are looking for the first parameter of LABKEY.NavTrail.setNavTrail

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.NavTrail.html#.setTrail
Ben Bimber2010-10-25 13:37Jon (LabKey DevOps)2018-11-16 23:24conditional names on views?conditional names on views? TEXT_WITH_LINKSClosed     LabKey Support Forum
yes, that's exactly what i'm looking for.
Ben Bimber2010-10-28 09:00Jon (LabKey DevOps)2018-11-16 23:24conditional names on views?conditional names on views? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi mark,

i attached a screenshot. there's two places with title on a view: the title that appears in the top-left (which is set using LABKEY.NavTrail.setNavTrail) and a title that is given to the webpart on the page. This particular view based is an HTML file in a simple module. All the page does it load an ext panel into a div. If I understand this correctly, labkey automatically displays the webpart-like border around file-based views. It seems to give this border a title based on the name of that view. Is there a js API to customize that?
marki2010-10-28 11:13Jon (LabKey DevOps)2018-11-16 23:24conditional names on views?conditional names on views? TEXT_WITH_LINKSClosed     LabKey Support Forum
You can customize the frame with yet another XML file. Given a view file

begin.html

you can create

begin.view.xml

with content like this:

<view xmlns="http://labkey.org/data/xml/view"
     frame="none">
   <permissions>
       <permission name="read"/>
   </permissions>
</view>

The frame attribute is the one you need. By default the value is "portal" which was probably a mistake. Not sure if it is too late to change tho. The possible options are in the xsd

https://www.labkey.org/download/schema-docs/xml-schemas/

The help for this is pretty far down the page here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=moduleqvr
Ben Bimber2010-10-28 11:17Jon (LabKey DevOps)2018-11-16 23:23conditional names on views?conditional names on views? TEXT_WITH_LINKSClosed     LabKey Support Forum
should have been a little clearer: the xml lets you give all instances of that view the same name. we've done that in some other cases.

can i use JS to set a custom name based on some other logic? for example, changing the title based on the type of form being loaded (assuming one HTML file loads every type of form) or appending animal ID to the title?
jeckels2010-10-29 11:07Jon (LabKey DevOps)2018-11-16 23:24conditional names on views?conditional names on views? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We don't have an API to set this, but it's possible to use XPath in JavaScript to get the DOM element for the header and change its text content. As you'd expect, this could break in a future release if we change the way we generate the HTML for the header.

Thanks,
Josh
Jon (LabKey DevOps)2022-02-08 10:38Jon (LabKey DevOps)2022-02-08 10:38Conditional formatting for duplicate valuesConditional formatting for duplicate values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Katy,

Unfortunately, our conditional formatting for our fields will only work off of two things:

- Filtering Expressions (https://www.labkey.org/Documentation/wiki-page.view?name=filteringExpressions)
- Regular Expression (RegEx)

More details on conditional formatting can be found here: https://www.labkey.org/Documentation/wiki-page.view?name=fieldEditor#conditional

Neither of these conditional formatting options would be able to identify duplicate values in a column. To have the data be identified as a duplicate, you would need to have this identified programmatically in some way, like using a SQL query to look for this data and flag it somehow or having something like Javascript or some scripting language to read the data and identify the duplicates and flag them that way.

Regards,

Jon
Matthew Bellew2007-12-19 14:34Jon (LabKey DevOps)2018-11-16 23:24Composing an object from the database with non-primitive fieldsComposing an object from the database with non-primitive fields TEXT_WITH_LINKSClosed     LabKey Support Forum
You can pass arbitrary SQL to the method Table.executeQuery(DbSchema schema, String sql, Object[] parameters, Class<K> clss). This will generate an object from each row in the resultset.

Note: for custom binding you can use BeanObjectFactory.Registry.register() to register a factory for your class (e.g. if column names don't match field names)
Jon (LabKey DevOps)2015-06-16 15:17Jon (LabKey DevOps)2018-11-16 23:24Complex QueryComplex Query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ole,

I'm confused as to what you mean when you say you're "'manually' calculating each element1 & element2 concentrations" here.

Looking at your table examples, you only have one table listing element concentrations. So what is this calculation you're having to do manually? Can you provide us with your SQL code that you're using that is producing this result table so we can get a better understanding to what you're doing?

Regards,

Jon
Ole2015-07-14 00:59Jon (LabKey DevOps)2018-11-16 23:24Complex QueryComplex Query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

sorry for my late response. I'm traveling a lot at the moment and will in the next time.

For example I use such code for calculating different elements:

#########################################################
SELECT rawdata_ic.labID, sampletable_solids.label,
-----------------Chlorid
CASE
    WHEN (rawdata_ic.Cl/rawdata_ic.Cl_factor) <= loq_ic.Cl THEN '< NWG'
    WHEN (rawdata_ic.Cl/rawdata_ic.Cl_factor) <= loq_ic.Cl*3 THEN '< BG'
    ELSE TO_CHAR((rawdata_ic.Cl*rawdata_ic.sample_volume/rawdata_ic.sample_weight), '999G990')
END AS "Cl [mg/kg]",
------------------Bromid
CASE
    WHEN (rawdata_ic.Br/rawdata_ic.Br_factor) <= loq_ic.Br THEN '< NWG'
    WHEN (rawdata_ic.Br/rawdata_ic.Br_factor) <= loq_ic.Br*3 THEN '< BG'
    ELSE TO_CHAR((rawdata_ic.Br*rawdata_ic.sample_volume/rawdata_ic.sample_weight), '999G990D999')
END AS "Br [mg/kg]"
-------------------
FROM
    Project."XXX".lists.sampletable_solids,
    Project."XXX".lists.rawdata_ic,
    "XXX".lists.loq_ic,
WHERE
    sampletable_solids.labID = rawdata_ic.labID AND
    loq_icpoes.icpID LIKE 'loq_001'
ORDER BY
    rawdata_ic.labID
#########################################################

Repeating over and over for different elements. It would be much easier to just simply fill a loop with the according elements and only have one "fed printout-code".

Regards
Ole
kevink2015-07-14 15:16Jon (LabKey DevOps)2018-11-16 23:24Complex QueryComplex Query TEXT_WITH_LINKSClosed     LabKey Support Forum
I would recommend either (a) writing a script to create the sql for you or (b) de-pivot the rawdata_ic table into a long and skinny table along the lines of (labid, name, value). If you de-pivot the table, you can probably just do a simple query and wrap it in a pivot query.
Jon (LabKey DevOps)2021-01-22 07:55Jon (LabKey DevOps)2021-01-22 07:55COMPLETE - Scheduled Maintenance: artifactory.labkey.com Friday January 22, 2021 @ 7 AM PDTScheduled Maintenance: artifactory.labkey.com Friday January 22, 2021 @ 7 AM PDT TEXT_WITH_LINKSClosed     LabKey Support Forum
Maintenance Complete.
kevink2016-12-02 14:19Jon (LabKey DevOps)2018-11-16 23:23Compiling labkey 16.2 on Ubuntu.Compiling labkey 16.2 on Ubuntu. TEXT_WITH_LINKSClosed     LabKey Support Forum
Those classes are generated by the XmlBeans schema compiler during the build. Are you following the build instructions found in our developer documentation?

https://www.labkey.org/home/Documentation/wiki-page.view?name=build#build
Romina2016-12-02 14:39Jon (LabKey DevOps)2018-11-16 23:23Compiling labkey 16.2 on Ubuntu.Compiling labkey 16.2 on Ubuntu. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Kevink. Yes, I am learning slowly and I am following the "Set up a Development Machine" documentation and I stoped at Build Labkey step making ant build from Ubuntu console. I had many errors at this step about javafx libraries, so I tried to do build from IntelliJ IDEA and it worked better but I had these errors that I mentioned in my first post. The process can't create these classes yet.
kevink2016-12-02 15:01Jon (LabKey DevOps)2018-11-16 23:23Compiling labkey 16.2 on Ubuntu.Compiling labkey 16.2 on Ubuntu. TEXT_WITH_LINKSClosed     LabKey Support Forum
From your source checkout, cd into the server directory and run "ant build" to compile the entire project or "ant build_schemas" to compile just the xml schemas.

Make sure that you are using Oracle JDK 8 and not OpenJDK.
jeckels2008-01-11 15:36Jon (LabKey DevOps)2018-11-16 23:23Compare view?Compare view? TEXT_WITH_LINKSClosed     LabKey Support Forum
Bill,

Are you still seeing this problem? We haven't seen it in any of our deployments.

Thanks,
Josh
wnels2@uky.edu2008-01-14 11:27Jon (LabKey DevOps)2018-11-16 23:24Compare view?Compare view? TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, if I check some runs to compare then click the compare button, followed by selecting the query radio button and clicking GO, I will get an error dialog (see the attached errorMeassage.rft file). If I click okay on the error dialog and reload the same URL most of the time it will work. This is the most reproducable sequence but it doesn't always happen. When performing the above sequence, on the same runs, it will happen, maybe, 5 out ten times. It seems to happen less often with smaller runs.

Thanks,
Bill
wnels2@uky.edu2008-01-18 08:50Jon (LabKey DevOps)2018-11-16 23:24Compare view?Compare view? TEXT_WITH_LINKSClosed     LabKey Support Forum
This problem is also happening on my development version, checked out from the trunk.
The link below describes the problem. Has this GWT patch been implemented on CPAS?

http://groups.google.com/group/Google-Web-Toolkit/browse_frm/thread/524b2b9c9cb040dc/5e31561a36ff38dc?#5e31561a36ff38dc

Thanks,
Bill
jeckels2008-01-21 17:07Jon (LabKey DevOps)2018-11-16 23:23Compare view?Compare view? TEXT_WITH_LINKSClosed     LabKey Support Forum
Bill,

No, we're not yet using GWT 1.4.61. Internally we're primarily using FireFox, which sounds like it might explain why we haven't seen it.

Can you reproduce the problem using FireFox?

I'll work on getting the new version checked in on the trunk.

Thanks,
Josh
wnels2@uky.edu2008-01-22 07:29Jon (LabKey DevOps)2018-11-16 23:24Compare view?Compare view? TEXT_WITH_LINKSClosed     LabKey Support Forum
No, I cannot reproduce the problem with FireFox.
Thanks,
Bill
jdutra2011-06-17 07:50Jon (LabKey DevOps)2018-11-16 23:24Communications failure saving EditorGridPanelCommunications failure saving EditorGridPanel TEXT_WITH_LINKSClosed     LabKey Support Forum
This turned out to be a timing issue with FireFox. Sorry about that.

- Jen
jeckels2014-08-07 16:15Jon (LabKey DevOps)2018-11-16 23:24Combining visitsCombining visits TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Let's assume (for simplicity) that you're starting with three visits: 10.0, 10.1, and 10.2. The following steps should get you to your desired combined visit:

1. Edit visit 10.1 to be 10.90-10.91.
2. Edit visit 10.2 to be 10.91-10.92.
3. Edit visit 10.0 to be 10.0-10.2.
4. On the Manage Visits page, click the Recalculate Visit Dates link. This should snap the dataset records to be associated with the 10.0-10.2 visit record.
5. Delete visits 10.90-10.91 and 10.91-10.92.

Thanks,
Josh
jdutra2014-09-02 08:30Jon (LabKey DevOps)2018-11-16 23:24Combining visitsCombining visits TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh. That does work. I think when I've done it in the past, I haven't thought to recalculate the visit dates, and then when I deleted the edited visits I lost data. Thanks for the help!
Leo Dashevskiy2013-04-10 11:45Leo Dashevskiy2013-04-10 11:45Column values type for LABKEY.ext.StoreColumn values type for LABKEY.ext.Store TEXT_WITH_LINKSClosed     LabKey Support Forum
Great suggestion, Ben, thanks, didn't think of that, and it seems to work just the way I'd like!
Ben Bimber2013-04-10 11:26Jon (LabKey DevOps)2018-11-16 23:23Column values type for LABKEY.ext.StoreColumn values type for LABKEY.ext.Store TEXT_WITH_LINKSClosed     LabKey Support Forum
if your SQL statement explicitly casts them to VARCHAR maybe that would do it. something like:

SELECT CAST(myNumber as VARCHAR) as myNumber FROM lists.mylist

i have not tested that.
jeckels2012-02-24 18:00Jon (LabKey DevOps)2018-11-16 23:24Column labels won't wrap for date fieldsColumn labels won't wrap for date fields TEXT_WITH_LINKSClosed     LabKey Support Forum
I've done a little testing and haven't been able to repro this behavior.

Do you see it consistently in different web browsers?

Are there values in the data rows? Do you get the same behavior with and without data rows?

Thanks,
Josh
jdutra2012-02-27 10:33Jon (LabKey DevOps)2018-11-16 23:24Column labels won't wrap for date fieldsColumn labels won't wrap for date fields TEXT_WITH_LINKSClosed     LabKey Support Forum
I normally use FireFox, but I just tried this assay on IE and Safari as well, with the same results.

There are values in the data rows. The date fields behave the same way when there are data rows and when I filter all the data out (as I did in the screenshot).

I also just tried making long labels for date fields in a study dataset and a list, and those labels didn't wrap either.

I probably should have mentioned earlier that we are still using Labkey v11.1. Is there any chance this behavior has been fixed since then?

Thanks for your help,
Jen
jeckels2012-02-27 16:29Jon (LabKey DevOps)2018-11-16 23:24Column labels won't wrap for date fieldsColumn labels won't wrap for date fields TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Yes, it's certainly possible that the behavior has changed. The labels are wrapping for me on dataset fields, for for example. If you look at the HTML for that table cell, do you see what's causing it to not wrap? A nowrap attribute on the <td> or <div> perhaps, or a CSS setting?

Thanks,
Josh
jdutra2012-02-28 06:47Jon (LabKey DevOps)2018-11-16 23:23Column labels won't wrap for date fieldsColumn labels won't wrap for date fields TEXT_WITH_LINKSClosed     LabKey Support Forum
I should have checked that earlier. The <td> has style="white-space:nowrap;text-align:left" so I guess that explains it. If the behavior has changed in 11.3 that will be helpful. Thank you!
adam2014-06-13 13:30Jon (LabKey DevOps)2018-11-16 23:24Column Formatting And Pivot Queries?Column Formatting And Pivot Queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Not an ideal solution, but I've used sub-SELECTs to alias the PIVOT columns with names that can be used in XML. Example from a customized issues list:

  SELECT Client,
  "P1::C" AS P1, "P2::C" AS P2, "P3::C" AS P3, "P4::C" AS P4,
  COALESCE("P1::C", 0) + COALESCE("P2::C", 0) + COALESCE("P3::C", 0) + COALESCE("P4::C", 0) AS Total FROM
  (
    SELECT Client, Priority, COUNT(*) AS C
    FROM CurrentOpen
    GROUP BY Client, Priority   
    PIVOT C BY Priority IN (1 AS P1,2 AS P2,3 AS P3,4 AS P4)
  ) x
  ORDER BY Client

Adam
jonesga@ohsu.edu2014-06-17 07:55Jon (LabKey DevOps)2018-11-16 23:23Column Formatting And Pivot Queries?Column Formatting And Pivot Queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Your technique worked very well and helped meet the need for one of our projects.

Did have to Cast the Values as Varchar to make the XML Text Align property work, not sure what changed the values that HTML did not interpret it as a string

Thanks
brittp2012-10-03 12:27Jon (LabKey DevOps)2018-11-16 23:23Cohort IssuesCohort Issues TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

A very late follow-up to your post. As we've discussed offline, this looks like a bug specific to the specimen reports- we're tracking it here:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=16167

Thanks,
Britt
kevink2011-03-08 08:22Jon (LabKey DevOps)2018-11-16 23:24coax query to show an update column?coax query to show an update column? TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, this isn't possible right now. Only updatable tables can have the [edit] column.
Ben Bimber2011-03-08 08:25Jon (LabKey DevOps)2018-11-16 23:24coax query to show an update column?coax query to show an update column? TEXT_WITH_LINKSClosed     LabKey Support Forum
that's what i figured. i ended up hiding the update/details columns in all cases and set URLs on some of the fields.
Nick Kerr2016-05-18 08:43Jon (LabKey DevOps)2018-11-16 23:24Client API bugClient API bug TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

Thanks for reporting this error. I've fixed this on our trunk repository and have opened an issue to patch the latest release.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=26544

Thanks,
Nick
kevink2010-11-15 12:13Jon (LabKey DevOps)2018-11-16 23:24clarification on validation script and 10.3clarification on validation script and 10.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Here is a table showing the current availability of the validation/transformation scripts:

https://www.labkey.org/wiki/home/Documentation/page.view?name=transformScriptAvailability

From that chart you can see assays are not supported yet anywhere and the bulk html import (pasting into the html textarea) is also not supported. For the other data types, the support isn't across the board yet. We plan to address the issue in 11.1.
Ben Bimber2010-11-15 12:16Jon (LabKey DevOps)2018-11-16 23:23clarification on validation script and 10.3clarification on validation script and 10.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, that's helpful. one more question:

for datasets, the file name of the script is picky. It needs to use the dataset label (not name) and spaces need to be replaced with underscores.

should i expect the same rules to apply to other table types? most other tables only have one name (as opposed to label+name), so this quirk would not apply to all.
kevink2010-11-15 12:28Jon (LabKey DevOps)2018-11-16 23:24clarification on validation script and 10.3clarification on validation script and 10.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
I fixed the naming issues recently for script files. You should be able to name the script using the same conventions used with the .qview.xml and other query files.
Karl Lum2012-06-20 16:21Jon (LabKey DevOps)2018-11-16 23:24checkForReload.view question regarding specimen importcheckForReload.view question regarding specimen import TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dennis,

I can take a look at this. Can you attach the log file of one of the pipeline jobs that is failing to reload specimen data?

thanks, Karl
kevink2015-06-29 10:02Jon (LabKey DevOps)2018-11-16 23:24Checkbox in column headerCheckbox in column header TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, the select all checkbox is baked into the DataRegion rendering and wasn't intended to be used in other columns. If you want to render something in the column header, you'll need to create your own DisplayColumn and override renderGridHeaderCell(). Can I ask what you're trying to do?
Jinze An2015-06-29 10:11Jon (LabKey DevOps)2018-11-16 23:24Checkbox in column headerCheckbox in column header TEXT_WITH_LINKSClosed     LabKey Support Forum
I created a custom DisplayColumn that renders boolean values as checkboxes. Now I just need a way to select all/deselect all for that column. It looked like a lot of intricate work to override renderGridHeaderCell so I was wondering if there was some way I could port the leftmost column code into my column but it doesn't seem like that would work.
Jon (LabKey DevOps)2015-06-30 00:10Jon (LabKey DevOps)2018-11-16 23:24Checkbox in column headerCheckbox in column header TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jinze,

Just curious, but have you thought about possibly creating a custom button within the button bar that could act as the select all/deselect all for the checkboxes in lieu of having a select/deselect all checkbox?

Regards,

Jon
Jinze An2015-06-30 06:09Jon (LabKey DevOps)2018-11-16 23:24Checkbox in column headerCheckbox in column header TEXT_WITH_LINKSClosed     LabKey Support Forum
That's an interesting approach that I hadn't thought of. I'll have to check with my supervisor to see if he's willing to go with that option before I explore it, though. Thank you for the suggestion
cnathe2013-05-07 07:06Jon (LabKey DevOps)2018-11-16 23:24Charting assay results grouping by DerivativeTypeCharting assay results grouping by DerivativeType TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony,
It looks like we currently only consider the columns/fields from the base query/dataset when providing a list of available dimension options for the time chart.

However, I believe that you can create your desired chart using the following steps:
1. create a custom query over your base copied-to-study assay dataset in the study (see attached query example using a NAb assay)
2. write the query so that it includes the Primary/Derivative fields you want to use plus the measures you want to plot from the assay dataset
3. create a Time Chart over that custom query
4. if the Primary/Derivative columns don't show up as available dimensions, go back to your query and edit the metadata to set those fields as data dimensions

Give that a try and let me know if it does not work for your scenario.
Thanks,
-Cory
Anthony Corbett2013-05-08 13:40Jon (LabKey DevOps)2018-11-16 23:24Charting assay results grouping by DerivativeTypeCharting assay results grouping by DerivativeType TEXT_WITH_LINKSClosed     LabKey Support Forum
Cory,

I created the custom query of the copied-to-study assay dataset and added in a computed column "ResultType" which is the dimension I want to use to put my the data series into groups (this is actually a concatenation of 2 dimensions as the charting wizard only allows creating data series by a single dimension). See attached picture of SQL source.

However, when I go to create the time chart it errors that there is no measures to choose from in my custom query; see attached picture of error. This is not the case as there are fields in the metadata marked as meaures; again see attached picture of metadata.

When I look at the response from VisualizationController.GetMeasureAction none of the measures from by custom query show up in the JSON response...

Please let me know what I'm doing wrong.


-
Anthony
Anthony Corbett2013-05-08 13:49Jon (LabKey DevOps)2018-11-16 23:24Charting assay results grouping by DerivativeTypeCharting assay results grouping by DerivativeType TEXT_WITH_LINKSClosed     LabKey Support Forum
I just looked at the help for the choose measure and it said it needs ParticipantVisit and then I looked at your example SQL with the same comment.

I'm all set... thanks!

-
Anthony
cnathe2013-05-08 13:50Jon (LabKey DevOps)2018-11-16 23:24Charting assay results grouping by DerivativeTypeCharting assay results grouping by DerivativeType TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony,
Try including the gc.ParticipantVisit field in your custom query SQL. For custom queries to work with the time chart, both the ParticipantId and ParticipantVisit columns are required so that the time chart code knows how to join data between datasets/queries.

We tried to add a little bit of help text to this extent (see attached screenshot), but couldn't think of a great place to put this information.

-Cory
Anthony Corbett2013-05-08 14:10Jon (LabKey DevOps)2018-11-16 23:24Charting assay results grouping by DerivativeTypeCharting assay results grouping by DerivativeType TEXT_WITH_LINKSClosed     LabKey Support Forum

Will this time chart based on a custom query auto update when new data is copied to study from the assay?

I tried copying more data but the chart didn't update, I had to re-create it.
cnathe2013-05-09 06:39Jon (LabKey DevOps)2018-11-16 23:23Charting assay results grouping by DerivativeTypeCharting assay results grouping by DerivativeType TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony,
The time chart is re-rendered each time you open the report based on whatever new data is in the base query/datasets. However, the set of participants or groups selected for the report is saved with the report metadata. So, when you copied new assay data to the study was for new participants or was it new data for existing participants?
-Cory
Anthony Corbett2013-05-15 08:29Jon (LabKey DevOps)2018-11-16 23:24Charting assay results grouping by DerivativeTypeCharting assay results grouping by DerivativeType TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry I didn't back to you right away.

Yes, I copied new data that added a new filter. So I had to go edit the chart and check the new filter and save it again.

Thanks again for your help.

-
Anthony
rpiercy2022-12-20 01:52rpiercy2022-12-20 01:52Chart / Graphical display of Cohorts that change during a studyChart / Graphical display of Cohorts that change during a study TEXT_WITH_LINKSActive     LabKey Support Forum
Thanks Cory. Yes - it is the Time Chart that I am interested in.
cnathe2022-12-15 07:56cnathe2022-12-15 07:56Chart / Graphical display of Cohorts that change during a studyChart / Graphical display of Cohorts that change during a study TEXT_WITH_LINKSActive     LabKey Support Forum
Richard,
I assume you are using the "Cohort Assignment > Advanced" mode which uses a dataset automatic participant cohort assignment via a study dataset to track changing cohorts mid-study. https://www.labkey.org/Documentation/wiki-page.view?name=manageCohorts

If so, you can definitely view the "cohort for a given participant at any given visit within the study" in a grid view by pulling in the "Visit Cohort" column via the ParticipantVisit/Cohort lookup. See the attached screenshot as an example which uses fake data to show the difference in a grid view of the participants current cohort vs the cohort at a given visit.

As per your question about the graphical / chart view of this data, what chart type are you creating? If you are using the study Time chart, you are correct that we currently only support using the participant current cohort in the data grouping variable. However, if you add that "Visit Cohort" column to your saved view of a dataset, you should be able to use that variable in the other chart types (i.e. Line, Scatter, etc.).

Thanks,
Cory
Jon (LabKey DevOps)2015-06-04 17:26Jon (LabKey DevOps)2018-11-16 23:23Character Limits on SAS export from PostgreSQLCharacter Limits on SAS export from PostgreSQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Although it looks like TEXT is unlimited in PostgreSQL, it does have a limit of 1GB, which is still huge.

http://www.postgresql.org/docs/current/interactive/datatype-character.html

And you are right, there is no equivalent datatype in SAS that works with TEXT from PostgreSQL due to the enormousness of TEXT.

http://support.sas.com/documentation/cdl/en/ds2ref/68056/HTML/default/viewer.htm#p00lvj8tbbkdozn1vwe0s7wgh5m8.htm

I'll have this looked into, but the only thing that I can personally think of is to import everything except for that one TEXT column, split that column across multiple columns with a varchar datatype, then import those into your DB. Kind of ugly, but effective.

I'll circle back with you on what I find out.

Regards,

Jon
Jon (LabKey DevOps)2015-06-04 23:16Jon (LabKey DevOps)2018-11-16 23:24Character Limits on SAS export from PostgreSQLCharacter Limits on SAS export from PostgreSQL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

So I've just confirmed that unfortunately there is no workaround for the character limit of SAS to allow TEXT datatypes from PostgreSQL to pass into SAS.

Beyond the splitting, it looks like we're out of options.

Regards,

Jon
bront@kcr.uky.edu2015-06-15 07:27bront@kcr.uky.edu2015-06-15 07:27Character Limits on SAS export from PostgreSQLCharacter Limits on SAS export from PostgreSQL TEXT_WITH_LINKSClosed     LabKey Support Forum
hi Jon,

Sorry it took me so long to write back (a week of vacation).

Thanks for looking into this and confirming what seemed to be the case.

cheers,

bront
diego2016-06-01 13:53Jon (LabKey DevOps)2018-11-16 23:23Changing "Uncategorized" Header Name?Changing "Uncategorized" Header Name? TEXT_WITH_LINKSClosed     LabKey Support Forum
Nevermind, I found the option "Manage Datasets" --> "Edit Definition" --> type in a name in "Category" texbox --> Save and done!
Matthew Bellew2012-10-23 08:25Jon (LabKey DevOps)2018-11-16 23:24Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
You need to encode the '&' character as '&amp;' in xml.
Anthony Corbett2012-10-23 08:37Jon (LabKey DevOps)2018-11-16 23:23Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm aware of the encoding issue but usually when I trip over that I get an error message like:

error: Unexpected character encountered (lex state 3): 'p' (line 3, column 47)
Metadata XML error: Unexpected character encountered (lex state 3): 'p' (line 3, column 47)

See https://www.labkey.org/announcements/home/Developer/Forum/thread.view?entityId=4598d895-d83d-102e-a683-987439a6f368&_docid=thread%3A4598d895-d83d-102e-a683-987439a6f368 as an example.


I tried using the following xml:

<ns:table tableName="DOB" tableDbType="TABLE">
  <ns:updateUrl>/wiki/page.view?name=Enrollment&amp;action=dob&amp;pid=${ParticipantId}</ns:updateUrl>
</ns:table>


and it still has parse error on save.
jeckels2012-10-23 09:24Jon (LabKey DevOps)2018-11-16 23:24Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

Try wrapping your XML with:

<ns:tables xmlns:ns="http://labkey.org/data/xml">

</ns:tables>

I know it's silly to have <tables> be the root element when the XML is scoped to a single table, but it's historically been expecting it to be set up like that.

Thanks,
Josh
Anthony Corbett2012-10-23 10:22Jon (LabKey DevOps)2018-11-16 23:24Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh, I was able to save after adding the root element with the namespace declaration.

I am now wondering if the URL can be a child of the current container. For example, the datasets live in the parent study folder and the wiki pages live in a child container called eCRFs. This is because we want different permissions on being able to edit/insert into datasets and the ability to delete/edit wiki pages. We have had incidences where a clinical personnel has been known to delete them when they are in the same container as the datasets.

Would it be possible to have the URL be:

controller/containerPath/action -> wiki/eCRFs/page.view?name= . . .

Thanks for the quick responses!
Matthew Bellew2012-10-23 11:09Jon (LabKey DevOps)2018-11-16 23:24Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
You can't use a container using this syntax. You can however specify a full url starting with "https://"
Anthony Corbett2012-10-23 12:30Jon (LabKey DevOps)2018-11-16 23:23Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
We have a requirement to be able to export the study and datasets from dev to production and they have different hostnames in the URL. Will the URL automatically be updated to the new system's URL?
Anthony Corbett2012-10-23 13:45Jon (LabKey DevOps)2018-11-16 23:24Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
I have found a workaround for this. I created a wiki page in the study container called 'Redirect to eCRF'. It reads the appropriate query parameters then sets the window.location to the correct wiki page in the child container.


/labkey/wiki/study/page.view?name=RedirecteCRF&eCRF=XXX&action=YYYY&pid=ZZZ will redirect to /labkey/wiki/study/eCRFs/page.view?name=XXX#/YYYY/ZZZ

Note: the javascript framework I'm using uses anchor tags (#/YYYY/ZZZ part of URL) to manage browser history so each wiki page is a single page javascript app with multiple views.



This leads me to another question.... Now that I have the updateURL set in the metadata is there a way using a query to get to the updateURL or does the updateURL come back in the JSON returned by LABKEY.Query.selectRows() API?

Thanks,

Anthony
kevink2012-10-23 14:02Jon (LabKey DevOps)2018-11-16 23:24Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately, we don't currently include the update url for each row in the selectRows API response. We could add that to the selectRows response format or add a redirect action on the query controller that forwards the table's updateURL action.
Anthony Corbett2012-10-29 08:59Jon (LabKey DevOps)2018-11-16 23:24Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the replies everyone! Wanted to share my solution for others to see and possibly get feedback from anyone interested.


My Solution to mapping a dataset row to a specific section (view) of a 'wiki' eCRF using the updateURL metadata:


Logical model:

1. An eCRF is composed of one or more sections (views); each section is a 1 to 1 mapping to a dataset.
2. At each visit (sequenceNum) 1 or more eCRFs are completed.
3. An eCRF can be used at 1 or more visits.


So, the relationship between an eCRFs and visits is many-to-many and at each valid cross product is a set of eCRF sections (datasets) to be displayed/populated.

The physical model for this then becomes a list (an associative entity) where each row represents a unique quadruple of the following pieces of information:

DataSetId, SequenceNum, eCRFwiki (Name), section (Name)

Example: 5001, -1, 'Enrollment', 'demographics'

This effectively mapping a visit/Dataset to an eCRF's section. With this mapping it is now possible to ask the question: For this LSID (dataset row) what eCRF section should be displayed?

And this is exactly how I've implemented my updateURL for all datasets:

<ns:tables xmlns:ns="http://labkey.org/data/xml">
  <ns:table tableName="Demographics" tableDbType="TABLE">
    <ns:updateUrl>wiki/page.view?name=eCRFRedirect&amp;lsid=${lsid}</ns:updateUrl>
  </ns:table>
</ns:tables>


As you can see the updateURL goes to a wiki page called 'eCRFRedirect' passing just the LSID of the row. This wiki page then does a lookup using the following query:

PARAMETERS (LSID VARCHAR)
SELECT
  crf.eCRFwiki, -- The wiki page name that represents the eCRF
  crf.section, -- The section (view) of the eCRF to be displayed
  CASE WHEN( crf.requiresParticipantId ) THEN( StudyData.ParticipantId ) ELSE( null ) END as ParticipantId, -- context for the view
  CASE WHEN( crf.requiresSequenceNum ) THEN( CAST(StudyData.SequenceNum as INTEGER) ) ELSE( null ) END as SequenceNum, -- context for the view
FROM StudyData
JOIN lists.eCRF_datasets crf on StudyData.DataSet.DataSetId = crf.DataSetId AND StudyData.SequenceNum = crf.SequenceNum
WHERE StudyData.lsid = LSID

This returns the eCRF (wiki page) name, the section, and 2 peices of optional context to be passed to the view: the ParticipantId and SequenceNum

After the query returns the row it will then build the URL and set window.location to this URL:

window.location = '/labkey/wiki/[containerPathToCRFs]/page.view?name=[eCRFwiki]#/[section]/[ParticipantId]/[SequenceNum]';

Following the example above: /labkey/wiki/myStudy/eCRFs/page.view?name=Enrollment#/demographics/B001
(SequenceNum is not used for this eCRF as it collected only demographic type data designated/hardcoded by SeqNum -1. If this was an eCRf that is used on more than one visit then I'd pass the SequenceNum also)



There is more abstraction that can be done here; for example, putting the controller as a column in the eCRF_datasets associate list so that the controller (say a different module) can be used for opening CRFs.

This is a start for us and I have hope that same day (when things settle down here) this can be added to a module with its own controller, schema, views instead of lists and wiki pages.


Would love to hear some feedback from anyone with better/cleaner ways to do something like this.


-
Anthony Corbett
jeckels2012-11-19 17:31Jon (LabKey DevOps)2018-11-16 23:24Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

I thought you might be interested to know that last week I added the capability to request the update and details URLs when using LABKEY.Query.selectRows() and LABKEY.Query.executeSql(). There are two new config parameters, "includeUpdateColumn" and "includeDetailsColumns". They default to false. If set to true, you'll get additional columns in each result row that include the URLs. It's described in the JavaScript API documentation for the 12.3 release.

Thanks,
Josh
Anthony Corbett2012-11-20 05:14Jon (LabKey DevOps)2018-11-16 23:23Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Josh! This will be a great feature and will help reduce the overhead and complexity of the solution above.


I have one more question. It is actually regarding the updateURLs and substitution.

I am able to substitute query parameters:

/wiki/page.view?name=Enrollment&pid=${ParticipantId}&vid=${SequenceNum}


But I can't substitute any where else, for example, in the anchor:

/wiki/page.view?name=Enrollment#pid/${ParticipantId}/vid/${SequenceNum}

Can this be done or is there some adverse effect to allowing substitution outside of query params?


I would like to Thank everyone at Labkey. You all are very helpful and responsive!

Much appreciated,

Anthony
jeckels2012-11-20 09:32Jon (LabKey DevOps)2018-11-16 23:23Changing dataset table metadataChanging dataset table metadata TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

As you've noted, right now it's not possible to substitute arbitrarily in the URL. I believe we're limited to GET parameters values. As far as I know there's no technical reason why we couldn't relax this restriction, but it's not how the parsing code works right now. We have an open issue in our bug tracker to make this change, but I don't think that it's going to be part of 12.3.

Thanks,
Josh
Jon (LabKey DevOps)2021-08-19 15:23Jon (LabKey DevOps)2021-08-19 15:23Changing Base Column Labels in a StudyChanging Base Column Labels in a Study TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ronny,

The base columns here, specifically the ParticipantId column, is dictated via the Study Properties page.

If you go into the Manage tab for the specific study and access the Study Properties, you can edit what you'd like the column header to be called if you do not want it to be "participantId".

https://www.labkey.org/Documentation/wiki-page.view?name=studyProperties

Regards,

Jon
jeckels2013-08-05 11:30Jon (LabKey DevOps)2018-11-16 23:24Change UI of Data Pipeline web partChange UI of Data Pipeline web part TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

If you want to add a new button like the existing delete, download, or similar buttons, you'll need to edit the source code. The relevant code is in <LABKEY_ROOT>\server\modules\core\webapp\fileBrowser.js. See the getDeleteAction() and createActions() functions as an guide.

Thanks,
Josh
Anthony Corbett2013-10-10 11:20Jon (LabKey DevOps)2018-11-16 23:23Change to file layout in downloads for 13.3Change to file layout in downloads for 13.3 TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the heads up Josh. Much appreciated!
jeckels2011-09-05 09:46Jon (LabKey DevOps)2018-11-16 23:24change target of help link in top-right of site?change target of help link in top-right of site? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

The help link in the upper right is always a context-sensitive link to the docs on labkey.org. If a page hasn't been set up with a specific help target, the link points to the root of the documentation. It would make sense to allow file-based views and folder types to specify their own URL, but I don't think that exists right now.

The support URL is used for the Support link in the left-hand navigation, which isn't enabled on the EHR server. It's also available in email templates to substitute into the text.

Thanks,
Josh
jeckels2010-07-26 13:09Jon (LabKey DevOps)2018-11-16 23:24changes to issue tracker that happened in 10.2changes to issue tracker that happened in 10.2 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I've got a 10.2 patch ready that I'll be checking in soon:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10680

Thanks,
Josh
Jon (LabKey DevOps)2016-09-27 12:37Jon (LabKey DevOps)2016-09-27 12:37Change main site administratorChange main site administrator TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Annica,

There are a few places that you will need to make your changes in the Admin Console area:

1. Under the Look and Feel settings where it has the System email address

2. Under Site Settings where the Site Administrator is listed to be sent medium level reporting.

Regards,

Jon
kevink2013-01-25 08:47Jon (LabKey DevOps)2018-11-16 23:23Change in executeSql defaults?Change in executeSql defaults? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Yes, this is a regression in 12.3. We'll issue a fix for 12.3 shortly. Thanks for reporting the issue.

Kevin
daves2010-03-31 10:18Jon (LabKey DevOps)2018-11-16 23:24change display name on a querychange display name on a query TEXT_WITH_LINKSClosed     LabKey Support Forum
You can give the query a different display name using a meta-data XML file that has the same base-name as your .sql file, but with a .query.xml extension. So for your particular example, create a file named demographicsAge.query.xml, and set the contents to this:

<query name="Age">
</query>

The <query> element may also contain a <description> sub-element and/or a <metadata> sub-element (which would contain the table info schema). See the query.xsd in the /schemas directory of the source for a complete schema definition.
Ben Bimber2010-03-31 11:19Jon (LabKey DevOps)2018-11-16 23:24change display name on a querychange display name on a query TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks dave. that all makes sense, but 'name' does not actually seem to change anything. see example below. the other metadata that i alter is working (like URLs), just not the name.

Name of query file:
assignmentTotalCoAssigned.sql

Name of XML file:
assignmentTotalCoAssigned.query.xml

Contents of XML:
<query xmlns="http://labkey.org/data/xml/query" name="TotalCoAssigned">
    <metadata>
        <tables xmlns="http://labkey.org/data/xml">
<!-- Changing tableName below also does not seem to do anything !-->
            <table tableName="assignmentTotalCoAssigned" tableDbType="NOT_IN_DB">
                <columns>
                    <column columnName="objectId">
                        <isKeyField>true</isKeyField>
                    </column>
                    <column columnName="OverlappingAssignments">
                        <url>/query/executeQuery.view?schemaName=study&amp;
                            query.queryName=assignmentCoAssignedAnimals&amp;
                            query.pno~eq=${pno}&amp;
                            query.objectid~eq=${ObjectId}
                        </url>
                    </column>
                    <column columnName="ConcurrentAssignments">
                        <url>/query/executeQuery.view?schemaName=study&amp;
                            query.queryName=Assignments&amp;
                            query.Id~eq=${Id}&amp;
                            query.sort=-Date
                        </url>
                    </column>
                </columns>
                <titleColumn>OverlappingAssignments</titleColumn>
            </table>
        </tables>
    </metadata>
</query>
daves2010-04-01 10:51Jon (LabKey DevOps)2018-11-16 23:23change display name on a querychange display name on a query TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, I'll check this out. It might be a bug, as this was the intended way to provide a name that would be different than the file name.
Ben Bimber2010-04-01 10:55Jon (LabKey DevOps)2018-11-16 23:24change display name on a querychange display name on a query TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, thanks. i can provide a url if you need to see an example.

also, will changing the name impact SQL statements that reference this query? in a perfect world, there would be a param that behaved like 'columnTitle'. you could still use the less friendly name in code, while providing a user friendly title (possibly with spaces) that users see.
daves2010-04-01 14:19Jon (LabKey DevOps)2018-11-16 23:24change display name on a querychange display name on a query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

This was indeed a bug, and I just checked in a fix for it on the trunk. I've also attached a patch file to this response in case you are building from 10.1 sources and want to include this fix. If not, then you'll have to rename your .sql file to change the name until 10.2 is released.

I agree that it would be nice to have a programmatic name vs user-displayed name for query definitions. The core query architecture doesn't allow for that currently, but it would be a relatively simply addition if you'd like to add that to your feature list for 10.2. Talk with Mark about getting this on the list and prioritized.

So for now, a query has a name, and that name is used both in queries that reference it and in the user interface.
jeckels2009-08-31 09:56Jon (LabKey DevOps)2018-11-16 23:24C:\CPAS\docs\mule\config\org\labkey\hello\muleC:\CPAS\docs\mule\config\org\labkey\hello\mule TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

Those are some old, proof-of-concept configuration files. I'll delete them, as they've been replaced by files like:

C:\labkey\server\modules\pipeline\src\org\labkey\pipeline\mule\config\webserverMuleConfig.xml
C:\labkey\server\modules\ms1\webapp\WEB-INF\ms1\ms1Context.xml
C:\labkey\server\modules\ms2\webapp\WEB-INF\ms2\ms2Context.xml
C:\labkey\server\modules\pipeline\webapp\WEB-INF\pipeline\pipelineContext.xml

Thanks,
Josh
jeckels2011-07-27 15:49Jon (LabKey DevOps)2018-11-16 23:23case insensitive LIKE search in postgrescase insensitive LIKE search in postgres TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You should be able to use LOWER():

SELECT * FROM MyTable WHERE LOWER(Column1) LIKE '%myvalue%'

Thanks,
Josh
Ben Bimber2011-07-27 16:21Jon (LabKey DevOps)2018-11-16 23:24case insensitive LIKE search in postgrescase insensitive LIKE search in postgres TEXT_WITH_LINKSClosed     LabKey Support Forum
they're not gonna like that. thanks though.
jeckels2009-05-20 14:20Jon (LabKey DevOps)2018-11-16 23:24Cardinals look and feelCardinals look and feel TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

I believe this is set in td.labkey-main-menu. I highly recommend Firebug for Firefox to track down these sorts of issues. You can right click on the page, choose Inspect Element from the popup menu, and see exactly where all the CSS attributes are coming from and how they override each other.

Thanks,
Josh
wnels2@uky.edu2009-05-21 06:03Jon (LabKey DevOps)2018-11-16 23:24Cardinals look and feelCardinals look and feel TEXT_WITH_LINKSClosed     LabKey Support Forum
Wow, Firebug is really useful.
Thanks Josh for the recommendation.
Bill
jeckels2012-02-20 15:17Jon (LabKey DevOps)2018-11-16 23:24Can't run the Reagent Request Form example correctly.Can't run the Reagent Request Form example correctly. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi James,

I think you're on the right track here about the potentially incorrect values.

The containerPath value should match the name of your project, and it looks like it does. I think it should work as-is, but if you're using your UI inside of that project, you can omit the value completely. It will default to the current container. If you want to keep it there, I'd suggest prefixing it with a leading slash - containerPath: '/Reagent_project'.

The queryName matches up with your list name "Reagent", so that looks good.

I suspect your issue is from the schemaName you're using. Try switching it to "lists", which is where you've found your Reagent query in the Query Browser.

Thanks,
Josh
James2012-02-21 06:13Jon (LabKey DevOps)2018-11-16 23:24Can't run the Reagent Request Form example correctly.Can't run the Reagent Request Form example correctly. TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you very much for looking at this problem for me. The schemaName was an issue, as you said, it needs to be lists. I had tried it set to lists before and it didn't work so I tried something else. What finally worked was deleting my lists and recreating them. Now LabKey can find them. I wanted to delete the entire project but I didn't see a command for doing that.
Ben Bimber2012-02-21 07:37Jon (LabKey DevOps)2018-11-16 23:24Can't run the Reagent Request Form example correctly.Can't run the Reagent Request Form example correctly. TEXT_WITH_LINKSClosed     LabKey Support Forum
hi james,

sounds like you're past this, but if in the future you ever need to delete a project or folder, you can do the following:

If you have 11.3 or earlier:
- click the admin menu (top-right of page)
- click 'manage project'
- click 'manage folders'
- from here you can delete folders, move folders or create subfolders. this is a little hidden.

In starting in 12.1 (not yet released) we revamped the folder management pages. when you have this version, just click the admin menu, then 'project', then 'management'. there will be a 'delete folder' link on that page.
Ben Bimber2011-12-09 13:58Jon (LabKey DevOps)2018-11-16 23:23Can't get column widths right in queryCan't get column widths right in query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

I have spent a lot of time fighting with column widths too.

A couple questions or suggestions:

1) are you sure the XML file is being applied at all? try to change the columnLabel on one of the columns and see if it's picked up as a quick check.

2) perhaps try setting 'number of positives' small, like 40, and omitting it from the other column?

3) is it possible this query is inheriting metadata from the source table? I dont think it applies here, but note that if one of the columns is a lookup, you probably need to change the metadata on the display column (ie. the value that's actually being shown)
jdutra2011-12-10 09:57Jon (LabKey DevOps)2018-11-16 23:24Can't get column widths right in queryCan't get column widths right in query TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I probably should have mentioned that I did try changing the columnLabel, and that works, so I know that the XML file is being applied. I have also tried a number of different widths, and tried setting for one column but not the other, all with no affect.

However, it looks like #3 was my problem. Result comes from a list, and when I changed it to SELECT Result.Value as "Flu Type" then my column widths worked! I never would have thought of that. Thank you so much!

- Jen
Karl Lum2011-01-20 17:01Jon (LabKey DevOps)2018-11-16 23:23Can't get a transform script to run for elispot assay importCan't get a transform script to run for elispot assay import TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michael, I'm able to reproduce the problem locally. I'll try to debug it and see if there is a work around or whether the software needs to be fixed/patched.

Would you mind sending me your perl transform script so that I can see if the transform framework can work for your scenario or if it's not possible to send, would you mind describing what your transform does?

thanks, Karl
michael_stover@urmc.rochester.edu2011-01-21 06:54Jon (LabKey DevOps)2018-11-16 23:24Can't get a transform script to run for elispot assay importCan't get a transform script to run for elispot assay import TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Karl,
     I am just starting, so my script did nothing other than copy the data. I also copy pasted the perl script from the documentation which adds an "Animal" column to the data and got the same results.
Karl Lum2011-01-25 13:43Jon (LabKey DevOps)2018-11-16 23:24Can't get a transform script to run for elispot assay importCan't get a transform script to run for elispot assay import TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Michael,

I looked into this and unfortunately a bug has crept into the assay that prevents a transform script from being properly run. I do not have a viable workaround for this either.

I should be able to fix this in our current development line: 11.1 which is scheduled to be released around the end of March, early April.

- Karl
Brian Pratt2010-02-05 12:13Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
You did a clean build, presumably? There's been a lot of activity lately and ant doesn't seem to pick up all the dependencies.
wnels2@uky.edu2010-02-05 12:22Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, I did "ant rebuild".
Brian Pratt2010-02-05 13:21Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
Likely something to do with my current work extending the system to accept mzML, mzML.gz, mzXML.gz, .pep.xml.gz etc - looking into it now
wnels2@uky.edu2010-02-08 07:36Jon (LabKey DevOps)2018-11-16 23:23can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
It is there but it is not visible. The searches were the last selection so they were not visible and there is no scroll bar.
Brian Pratt2010-02-08 07:49Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
I'll have a patch or commit for you soon - it works fine on my end so either I broke then fixed it, or you have something else going on. Just want to rebuild and retest to be sure.
wnels2@uky.edu2010-02-08 08:26Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
Just to clarify, my last post. The search engine actions do appear in the Manage Pipeline Actions dialog but the list of actions is too long (19 on my install) to fit into the dialog. There is no scroll bar to indicate that there are more actions hidden below. It is impossible to get to the last items on the list if you are using a small display monitor.
Thanks,
Bill
jeckels2010-02-08 09:42Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

I just tested and I get a scroll bar in both the Admin and Import Data dialog boxes with Firefox 3. What browser are you using?

If you haven't already, you might also try clearing your browser's cache. We've been making a number of CSS changes, and in some cases browsers cache them pretty aggressively and won't grab a new one even when told to refresh.

Thanks,
Josh
Brian Pratt2010-02-08 09:44Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
I see what you mean - I don't think that has anything to do with my work, but that's not the point of course. Fron the code it appears that window is created with an "autoscroll: true" attribute but in Firefox at least there isn't a scrollbar - and in IE8 the window is completely messed up, the picklist area is scrunched up such that only the top line is visible, and then only partially so.
Brian Pratt2010-02-08 09:51Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
Firefox 3.5 in my case, IE8, and Chrome "4.0.249.78 (36714)" - possibly something in how we're building?
Brian Pratt2010-02-08 09:55Jon (LabKey DevOps)2018-11-16 23:23can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
>> We've been making a number of CSS changes, and in some cases browsers cache them pretty aggressively and won't grab a new one even when told to refresh.

Presumably you've cleared your cache as well? I get the same effect from a Chrome "incognito" window, which as I understand it should always have a clear cache coming in.
wnels2@uky.edu2010-02-08 10:14Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, I forgot to tell you I am using Chrome.
The behavior does repro with FireFox 3.0 though. I cleared the cache on both browsers but still no scroll bar. In internet Explorer it is also messed up as you said.
Thanks,
Bill
jeckels2010-02-08 10:19Jon (LabKey DevOps)2018-11-16 23:23can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
Even after clearing caches, it's still working OK for me in Chrome. In IE the Import Data dialog is working but the Admin dialog doesn't pop up. However, I'm not completely up to date. I just did a sync and am rebuilding now...

Thanks,
Josh
jeckels2010-02-08 10:51Jon (LabKey DevOps)2018-11-16 23:24can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=9641

As a workaround, make a local edit to remove the layout: 'fit' on line 266 of <LABKEY_SOURCE_ROOT>\server\modules\filecontent\webapp\ActionsAdmin.js

Thanks,
Josh
Brian Pratt2010-02-08 11:41Jon (LabKey DevOps)2018-11-16 23:23can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
That seems to make Chrome and Firefox happy, but IE8 still has that weird scrunched up thing going on.
Karl Lum2010-02-08 11:58Jon (LabKey DevOps)2018-11-16 23:23can't find search buttoncan't find search button TEXT_WITH_LINKSClosed     LabKey Support Forum
I should have a fix for the IE rendering and javascript errors later today.
Leo Dashevskiy2014-05-01 11:34Leo Dashevskiy2014-05-01 11:34Cannot start the build from source one of the latest revisionsCannot build from source one of the latest revisions TEXT_WITH_LINKSClosed     LabKey Support Forum
Resolved after updating to Mavericks...
jeckels2014-04-24 14:28Jon (LabKey DevOps)2018-11-16 23:23Cannot start the build from source one of the latest revisionsCannot build from source one of the latest revisions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

You most likely need to update your copy of Ant as well. That attribute is supported in 1.8.3 and greater.

http://ant.apache.org/manual/Tasks/retry.html

A copy of Ant 1.9.3 is checked into SVN at in the external/ant subdirectory.

Thanks,
Josh
Leo Dashevskiy2014-04-24 14:32Jon (LabKey DevOps)2018-11-16 23:24Cannot start the build from source one of the latest revisionsCannot build from source one of the latest revisions TEXT_WITH_LINKSClosed     LabKey Support Forum
That must be it, Josh, thanks, I'm running ant 1.8.2 at the moment.

Is there a file, which states minimum required versions of various software that Labkey needs, by any chance?
Leo Dashevskiy2014-04-24 15:28Jon (LabKey DevOps)2018-11-16 23:24Cannot start the build from source one of the latest revisionsCannot build from source one of the latest revisions TEXT_WITH_LINKSClosed     LabKey Support Forum
Now, I have the following error:


500: Unexpected server error

A failure occurred during LabKey Server startup.

org.labkey.api.data.SqlScriptRunner$SqlScriptException: EHR_ComplianceDB-0.00-11.20.sql : SqlExecutor.execute(); bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: schema "ehr_compliancedb" already exists
       at org.labkey.api.data.SqlScriptManager.runScript(SqlScriptManager.java:208)
       at org.labkey.api.data.SqlScriptRunner.runScripts(SqlScriptRunner.java:82)
       at org.labkey.api.module.DefaultModule.versionUpdate(DefaultModule.java:350)
       at org.labkey.api.module.ModuleUpgrader.upgrade(ModuleUpgrader.java:59)
       at org.labkey.api.module.ModuleUpgrader$1.run(ModuleUpgrader.java:75)
Caused by: org.springframework.jdbc.BadSqlGrammarException: SqlExecutor.execute(); bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: schema "ehr_compliancedb" already exists
       at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:111)
       at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
       at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
       at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:96)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:65)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:60)
       at org.labkey.api.data.SqlScriptExecutor$Block.execute(SqlScriptExecutor.java:168)
       at org.labkey.api.data.SqlScriptExecutor.execute(SqlScriptExecutor.java:64)
       at org.labkey.core.dialect.PostgreSql84Dialect.runSql(PostgreSql84Dialect.java:860)
       at org.labkey.api.data.SqlScriptManager.runScript(SqlScriptManager.java:203)
       ... 4 more
Caused by: org.postgresql.util.PSQLException: ERROR: schema "ehr_compliancedb" already exists
       at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
       at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
       at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:559)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:403)
       at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:395)
       at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
       at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
       at org.labkey.api.data.dialect.StatementWrapper.execute(StatementWrapper.java:1015)
       at org.labkey.api.data.SqlExecutor$NormalStatementExecutor.execute(SqlExecutor.java:123)
       at org.labkey.api.data.SqlExecutor$NormalStatementExecutor.execute(SqlExecutor.java:111)
       at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:89)
       ... 10 more


Sounds to me like it has something to do with the database, no?

Please, help!
Thanks.
jeckels2014-04-25 09:24Jon (LabKey DevOps)2018-11-16 23:24Cannot start the build from source one of the latest revisionsCannot build from source one of the latest revisions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

As for your version requirements question, we document run-time requirements here:

https://www.labkey.org/wiki/home/LabKey%20Server%20Documentation/page.view?name=supported

and build-time requirements and recommendations here:

https://www.labkey.org/wiki/home/LabKey%20Server%20Documentation/page.view?name=build

Thanks,
Josh
jeckels2014-04-25 09:30Jon (LabKey DevOps)2018-11-16 23:23Cannot start the build from source one of the latest revisionsCannot build from source one of the latest revisions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

The easiest fix, given that you most likely don't care about the EHR Compliance module's data on your local system, would be to simply drop that schema manually from the database. That should allow the upgrade to proceed.

We try hard to avoid the need for these kinds of manual database fixup, but sometimes dev machines, especially those that aren't syncing and building regularly, can get into a bad state as we consolidate SQL upgrade scripts between versions.

Let us know if you need any help with the manual database manipulation.

Thanks,
Josh
Leo Dashevskiy2014-04-25 14:10Jon (LabKey DevOps)2018-11-16 23:24Cannot start the build from source one of the latest revisionsCannot build from source one of the latest revisions TEXT_WITH_LINKSClosed     LabKey Support Forum
I actually tried doing exactly that, but EHR Compliance schema, I was told by the Postgres system, was dependent on a whole bunch of other schemas that looked like system ones, so I did not proceed.

Well, that all seems to be irrelevant now as I somehow broke the Java installation in such a way that I cannot fix it...
jeckels2014-04-25 14:20Jon (LabKey DevOps)2018-11-16 23:24Cannot start the build from source one of the latest revisionsCannot build from source one of the latest revisions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

To get a sense of what scripts have run on your server, can you capture the output of running "SELECT * FROM core.sqlscripts" and "SELECT * FROM core.modules" and attach them here? We may be able to provide more targeted steps for getting the upgrade to complete cleanly.

Thanks,
Josh
Leo Dashevskiy2014-04-25 14:45Jon (LabKey DevOps)2018-11-16 23:24Cannot start the build from source one of the latest revisionsCannot build from source one of the latest revisions TEXT_WITH_LINKSClosed     LabKey Support Forum
Oh, you know I did not read the error carefully, I guess.

It just said that it could not drop the schema because of the tables within it, so it seems, so I reran the command with CASCADE at the end and that did the trick.

Unfortunately, like I said, I totally messed up the Java installation on that Mac machine (while attempting to upgrade to the latest one), and the setup on Macs is way more involved as compared to Ubuntu, so I do not have the necessary knowledge in order to fix the issue: 'java -version' prints fine, but neither the Java Applet Plug-in for Firefox, nor Tomcat work correctly and the Java menu window in Settings does not open either...
Leo Dashevskiy2013-05-21 12:40Leo Dashevskiy2013-05-21 12:40Cannot sort the results of a query with SELECT * ?Cannot sort the results of a query with SELECT * ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, I see, thanks Matt. Yeah, I had a feeling it had something to do with the view as it was not so standard looking as for the other tables/queries...

Turns out the sorting for this particular case is not important to me, but I will keep in mind the issue you described...
Matthew Bellew2013-05-21 12:37Jon (LabKey DevOps)2018-11-16 23:23Cannot sort the results of a query with SELECT * ?Cannot sort the results of a query with SELECT * ? TEXT_WITH_LINKSClosed     LabKey Support Forum
This is a long-standing design problem with the LabKey query APIs. The problem is that anytime you use a query you really have two components. a) the query/table b) the view over the query.

Unfortunately, these two parts don't cooperate very well, and the view definition's sort order will over ride the "ORDER BY" in the sql. In the first case since there's only one column the view is choosing to sort using it and it looks like the "ORDER BY" is working.

The solution is to use the separate "config.sort" property of the API call. We should add better documentation for this with our SQL reference.

Matt
mkuscuog2022-01-04 08:02mkuscuog2022-01-04 08:02Cannot select 'Use SASL authentication'Cannot select 'Use SASL authentication' TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=41978 seems like the issue.

We are still using 20.3.0.

Thanks,
Mehmet
Jon (LabKey DevOps)2021-12-28 16:57Jon (LabKey DevOps)2021-12-28 16:57Cannot select 'Use SASL authentication'Cannot select 'Use SASL authentication' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mehmet,

I tested things out and was not able to reproduce the issue you described.

If I check the box for SASL authentication and save it, it stays checked if I go back into that LDAP configuration again.

Can you confirm what version of LabKey you're running? When I did my test, it was on the latest version of LabKey (21.11), so if you're on an older version, you can try to upgrade and see if the same problem appears.

Regards,

Jon
adam2021-12-28 17:07Jon (LabKey DevOps)2021-12-29 14:25Cannot select 'Use SASL authentication'Cannot select 'Use SASL authentication' TEXT_WITH_LINKSClosed     LabKey Support Forum
FWIW, I see there was an issue with the SASL checkbox that was fixed in 21.7. See https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=41978

Adam
Jon (LabKey DevOps)2022-01-04 10:25Jon (LabKey DevOps)2022-01-04 10:25Cannot select 'Use SASL authentication'Cannot select 'Use SASL authentication' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mehmet,

Thanks for confirming your version. If you can upgrade either to the latest version of 21.7 or 21.11, this should resolve your issue.

Regards,

Jon
Leo Dashevskiy2013-07-05 18:39Leo Dashevskiy2013-07-05 18:39Cannot make use of the Export via an R script functionalityCannot make use of the Export via an R script functionality TEXT_WITH_LINKSClosed     LabKey Support Forum
Setting the POST size config to 0 to make the size infinite was the key to solving this issue.

And doubling the maxHttpHeaderSize config resolved the issue with the actual query from Rlabkey.
Leo Dashevskiy2013-07-05 18:42Leo Dashevskiy2013-07-05 18:42Cannot make use of the Export via an R script functionalityCannot make use of the Export via an R script functionality TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick Kerr2013-07-05 14:40Jon (LabKey DevOps)2018-11-16 23:23Cannot make use of the Export via an R script functionalityCannot make use of the Export via an R script functionality TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

The default URL limit is 2000 characters. I made a change a couple of releases ago to have our Query API's use the POST body. The size of the POST body is regulated by the server.

http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers

As for the R API, that migration might still need to occur.

Thanks,
Nick
Leo Dashevskiy2013-07-05 15:20Jon (LabKey DevOps)2018-11-16 23:24Cannot make use of the Export via an R script functionalityCannot make use of the Export via an R script functionality TEXT_WITH_LINKSClosed     LabKey Support Forum
Interesting...

Ok, so because of the Query API's change, Labkey's own UI works fine, is that right?

Or are you saying the server's URL I'm trying to use to generate the proper R script relies on internal (Java-based) Query API and hence the R snippet is not being generated, because of the server configured POST body size?
Do you know, where this config is for Apache's Tomcat, anyways?

I sent Cory a message, I will follow up with this info from you.
Jon (LabKey DevOps)2015-05-05 23:11Jon (LabKey DevOps)2018-11-16 23:24Cannot insert duplicate key in object 'study.ParticipantVisit'Cannot insert duplicate key in object 'study.ParticipantVisit' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lukas,

I believe the issue you're seeing may have been fixed in LabKey 15.1. Do you have any plans on upgrading at this time?

Regards,

Jon
Jon (LabKey DevOps)2017-06-02 15:14Jon (LabKey DevOps)2018-11-16 23:24Cannot edit custom fields of named file setCannot edit custom fields of named file set TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

I'd like to get some clarification here in your repro steps.

Once you're at Step 4, I'm assuming you mean you're on the "Administer File System Access" page and you added a file set there by entering in a Name and Path. Is that correct?

What do you mean in Step 5 where you say "Choose the new file root to be the new file set"? Are you talking about changing the actual file Root by then clicking on "Configure file root for Project." and then selecting "Use a project-level file root" and entering the path you used previously in Step 4?

Regards,

Jon
fcf2017-06-02 15:51Jon (LabKey DevOps)2018-11-16 23:24Cannot edit custom fields of named file setCannot edit custom fields of named file set TEXT_WITH_LINKSClosed     LabKey Support Forum
Clarifications:

Step 4: I am on the "Administer File System Access" page. I click "Add File Set". I enter a name and an absolute path to where I want to keep my files.

Step 5: Return to the project portal. Click the dropdown list next to the word Files and select Customize. On the Customize Files page, clieck the dropdown next to File Root and select the new file set that you created.
Jon (LabKey DevOps)2017-06-02 23:12Jon (LabKey DevOps)2018-11-16 23:24Cannot edit custom fields of named file setCannot edit custom fields of named file set TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you for the clarification. I've confirmed the behavior.

The API does show the value, so the issue is how the webpart is rendering the data.

I'll have a bug created on this and investigated further.

Regards,

Jon
Jon (LabKey DevOps)2017-06-02 23:26Jon (LabKey DevOps)2018-11-16 23:24Cannot edit custom fields of named file setCannot edit custom fields of named file set TEXT_WITH_LINKSClosed     LabKey Support Forum
cnathe2013-10-25 09:18Jon (LabKey DevOps)2018-11-16 23:23Can I make a timechart on a query?Can I make a timechart on a query? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jen,
Yes, it is possible to create a time chart using measures from a Query. However, since the time chart is study specific, it will only show measures from queries that contain the required fields: ParticipantId and ParticipantVisit. There is some help text briefly describing this requirement in the "Add Measure..." dialog from the Time Chart.

So, if for example I was writing a query in the LabKey demo study using the "Physical Exam" dataset, I would make sure to include the following two fields in my SQL:

SELECT "Physical Exam".ParticipantId,
"Physical Exam".ParticipantVisit,
...
FROM "Physical Exam"

Let me know if that doesn't work for you.
Thanks,
Cory
jdutra2013-10-25 10:10Jon (LabKey DevOps)2018-11-16 23:23Can I make a timechart on a query?Can I make a timechart on a query? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you so much Cory! That was exactly what I needed. I'm sorry I didn't notice it in the help.

Thanks again,
Jen
marki2010-09-14 14:11Jon (LabKey DevOps)2018-11-16 23:23Can External Schemas be used with LABKEY.ext.Store ?Can External Schemas be used with LABKEY.ext.Store ? TEXT_WITH_LINKSClosed     LabKey Support Forum
Any attached schema should work with LABKEY.ext.Store. It should be editable via an EditorGridPanel

1) The schema is marked editable when attached
2) The table has a single column primary key
kevink2011-03-03 10:25Jon (LabKey DevOps)2018-11-16 23:23can container fitlers be part of a saved view?can container fitlers be part of a saved view? TEXT_WITH_LINKSClosed     LabKey Support Forum
The custom views defined in the browser UI can have a container filter, but it looks like we are missing a way to set the containerFilter in the .qview.xml files.

I've filed a new bug to track the issue:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=11711
jeckels2011-03-10 09:56Jon (LabKey DevOps)2018-11-16 23:24can client-side code insert into the mothership schema?can client-side code insert into the mothership schema? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

This is possible. However, we don't have any client API bindings for it and the report is required to include some information like a GUID for the server session (a unique ID generated each time the web server starts up), the server's GUID (a unique ID for a particular installation), etc. For your scenario, I think you could hard-code GUIDs for those fields. The exception reports are just POSTed to a particular URL. We'd need to get the mothership module deployed on your server to receive those requests.

Take a look at the Java class org.labkey.mothership.MothershipController.ReportExceptionAction, which is the class that receives the exception report. Also, take a look at org.labkey.api.util.MothershipReport, which is the JAva client code that submits the reports.

Thanks,
Josh
eknelson2011-08-02 12:39Jon (LabKey DevOps)2018-11-16 23:23can a guest use executeSql is they have read access to a folder?can a guest use executeSql is they have read access to a folder? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I checked in with Britt on this. LabKey Server only checks for read permissions to do a select. There's no special check that would distinguish a guest with read permissions from a user with read permissions.

Thanks,
Elizabeth
jeckels2013-12-02 14:59Jon (LabKey DevOps)2018-11-16 23:24Calling R script with JavascriptCalling R script with Javascript TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

Only the query associated with the R report will be available as a TSV on the file system (which is automatically available as labkey.data.

However, you can make separate calls to get other data using the Rlabkey package. See the documentation for the selectRows or executeSql functions here:

http://cran.r-project.org/web/packages/Rlabkey/Rlabkey.pdf

The R script will be running as the user who initiated the request (not the developer), and will have their permissions when making API calls like that.

Thanks,
Josh
bront@kcr.uky.edu2013-12-03 13:39Jon (LabKey DevOps)2018-11-16 23:23Calling R script with JavascriptCalling R script with Javascript TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Looks good.

As always, thanks for your prompt help.

cheers,

bront
jeckels2013-10-24 12:19Jon (LabKey DevOps)2018-11-16 23:24Calculate Age in Years + Days using LabKey SQL?Calculate Age in Years + Days using LabKey SQL? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben and I talked about this. He's going forward with a Java-based renderer to get the exact calculated value he needs. The underlying column value from the database will be a decimal representation of the years (including fractional values) to give reasonable sorting and filtering behavior.

Thanks,
Josh
jeckels2010-01-06 09:38Jon (LabKey DevOps)2018-11-16 23:23BVT/DRT timeout valuesBVT/DRT timeout values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

I don't think there's any good reason for some to be hard-coded to 5000, or other similar numbers of milliseconds. Feel free to flip them to use a constant and check that in, and then locally change the value of the constant.

Thanks,
Josh
Brian Pratt2010-01-06 10:45Jon (LabKey DevOps)2018-11-16 23:23BVT/DRT timeout valuesBVT/DRT timeout values TEXT_WITH_LINKSClosed     LabKey Support Forum
For sure those should be a single constant instead of numeric literals - duplicating literals like that is generally evil, for reasons such as the one we face now.

But I didn't pose the question very well - I'm wondering if the name WAIT_FOR_GWT has any particular significance. It's only that I don't want to propogate a misnomer - is GWT actually involved in everything that we wait on? Or do I want a second constant WAIT_DEFAULT? I don't know the code well enough to say and wouldn't want to make a mess of it. So which of the following best serves the code and its maintainers?

A Use WAIT_FOR_GWT everywhere we do now, and where ever we had a numeric literal timeout value of 5000
B Introduce another constant WAIT_DEFAULT, leave uses of WAIT_FOR_GWT alone as it's a special case
C Use WAIT_DEFAULT everywere, WAIT_FOR_GWT is a misnomer

Thanks,

Brian
jeckels2010-01-07 15:36Jon (LabKey DevOps)2018-11-16 23:23BVT/DRT timeout valuesBVT/DRT timeout values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

I think there are two common kinds of waits in the tests.

The first is a longer wait, specified by the defaultWaitForPage constant, that is how long we'll wait for a full page to come back from the server.

The second is a shorter, sometimes specified by WAIT_FOR_GWT and sometimes as a hard-coded constant. It's how long we wait for the page to respond to an event that won't change the URL to change. For example, waiting for the page to respond to a button click inside of a GWT action that will modify the DOM.

WAIT_FOR_GWT should probably be renamed to something like WAIT_FOR_JAVASCRIPT and used in more places - GWT pages, ExtJS pages, plain JavaScript, etc. I don't think it's useful to distinguish between the specific flavor of JavaScript that's running.

Thanks,
Josh
Brian Pratt2010-01-07 15:54Jon (LabKey DevOps)2018-11-16 23:23BVT/DRT timeout valuesBVT/DRT timeout values TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, modified plan C it is: replace WAIT_FOR_GWT and the hardcoded 5000 values with WAIT_FOR_JAVASCRIPT.
Jon (LabKey DevOps)2017-08-09 12:02Jon (LabKey DevOps)2018-11-16 23:24Built in Tests for labkeyBuilt in Tests for labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

When you say "stock version" are you talking about compiled binaries or building from the source code?

Working from binaries vs source code are two different things.

If you are working off of source code, the test folder would be tied to automated testing, such as Unit Testing, Functional Testing, and Integration Testing as described here:

https://www.labkey.org/Documentation/wiki-page.view?name=runningTests

The doc above goes over Functional Tests using the Selenium test framework.

Please note that Selenium doesn't support the latest version of Firefox at the moment, so if you are planning on doing Selenium testing on Firefox, you will need to use the Firefox ESR 45 version to test against.

Regards,

Jon
jdarvin2017-08-09 12:17Jon (LabKey DevOps)2018-11-16 23:24Built in Tests for labkeyBuilt in Tests for labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
The documentation looks like it should help. Thanks
adam2017-08-09 14:28Jon (LabKey DevOps)2018-11-16 23:24Built in Tests for labkeyBuilt in Tests for labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Judy,

In addition, we are happy to discuss our automated testing approach in an upcoming weekly status meeting, if you'd like. Not sure exactly where your interests lie, but some of our clients leverage our continuous integration infrastructure to test their custom modules on a regular basis.

Cheers,
Adam
simonm2016-02-29 10:59simonm2016-02-29 10:59Building surveys - concatenate field valuesBuilding surveys - concatenate field values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Sorry it has taken me a while to test this but I have done so now and it works just fine! This will be very useful.

Thank you very much for your help,

Simon
Jon (LabKey DevOps)2016-02-10 16:27Jon (LabKey DevOps)2018-11-16 23:23Building surveys - concatenate field valuesBuilding surveys - concatenate field values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

Yes, you can show and hide fields based on input of another field. This is known as Skip Logic or Conditional logic.

A good code example can be found here:

https://www.labkey.org/home/Documentation/wiki-page.view?name=questionMetadata

Can you provide me with more information on your second question? Where is this Primary Key going to be on? Is it the Schema and Query you're tying to the Survey or is it for the Survey Answers?

Regards,

Jon
simonm2016-02-11 07:58Jon (LabKey DevOps)2018-11-16 23:24Building surveys - concatenate field valuesBuilding surveys - concatenate field values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for your response, and for the link to the example of skip logic in the documentation. I'll take another look at it.


Regarding my question on concatenating values in a survey to fill the primary key field, here is some more information:

I need to be able to locate and identify records after they have been entered using a survey, but the Surveys webpart will only display a single field containing identifying information from a record - either the Label field or, if you customize it, the user-defined primary key.

The date I am entering is uniquely identified through a combination of three pieces of data - the Patient ID, the Visit, and the Sample.

I therefore need to concatenate these three pieces of data into a single field to display it - and that field must be either the Label or the user-defined Primary Key.

So for example if the Patient was number 1, the visit was day 3 and the sample taken was blood, the data would be: PatientID = 01, Visit = D3 and Sample = PB, and the user will enter these three values in a survey form. The desired value for the field displayed (either the Label or the user-defined PK) would therefore be 01_D3_PB.

My question: is it possible to write the Survey form in such a manner as to automatically populate a field with this concatenated string once the user has entered these three values?

Hope this helps,

Simon
Jon (LabKey DevOps)2016-02-12 17:55Jon (LabKey DevOps)2018-11-16 23:24Building surveys - concatenate field valuesBuilding surveys - concatenate field values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

I'm still looking into this for you. It should be possible to setup a few listeners either on the Label/Primary Key or a set of listeners beforeLoad using a function on the survey to then:

1. Obtain the values inputted into those fields
2. Store those values into defined variables
3. Call those variables back into the value field of the Label/Primary Key in the survey before it gets submitted.

Regards,

Jon
simonm2016-02-16 09:09Jon (LabKey DevOps)2018-11-16 23:23Building surveys - concatenate field valuesBuilding surveys - concatenate field values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Yes, that sounds like what I need. Can you share any example code so I can see how it is done?

Thanks,

Simon
Jon (LabKey DevOps)2016-02-18 23:35Jon (LabKey DevOps)2018-11-16 23:24Building surveys - concatenate field valuesBuilding surveys - concatenate field values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

I don't have anything available that is working just yet. I was able to figure out how to read the fields and push them into another field. However, the problem I'm running into is trying to identify the values from all three ID fields separately and then concatenate them together.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2016-02-19 17:37Jon (LabKey DevOps)2016-02-19 17:45Building surveys - concatenate field valuesBuilding surveys - concatenate field values TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

It took a bit, but I think I created a pretty solid way to give you what you're looking for.

So the code does a few things:

1. It removes the actual Survey Label and hides it. If you use "useDefaultLabel", it hides the survey label and uses a date and timestamp on the table where it stores the survey information.
2. This survey has two sections:

- One for the User ID that combines all three values from patient, visit, and sample fields into one concatenated value
- One for the three values of Patient ID, Value ID, and Sample IDs.

3. The User ID field has a listener attached that listens for all three fields in the lower section and then populates the value in the User ID box separated with underscores.

For example, a Patient ID of "123ABC", a Visit ID of "02012016-1330", and a Sample ID of "Samp9999" would become "123ABC_02012016-1330_Samp9999" in the User ID field.

4. The User ID field has been purposely configured to ignore anything put in that box and will also disable itself so you can't change it without changing the three other fields.

It took a bit to figure out how to write out the function within the listener, since I had to find a way to have the listener specifically target only those three fields and then concatenating the values and then setting the value of the User ID field accordingly.

Take a look at the code below and give it a try. I think this should do the trick.

Regards,

Jon



{
  "survey" : {
    "layout" : "auto",
    "start" : {
       "useDefaultLabel": true
    },
    "showCounts" : false,
    "sections" : [{
      "questions" : [{
        "name" : "user",
        "caption" : "User Id",
        "shortCaption" : "User Id",
        "hidden" : false,
        "jsonType" : "string",
        "inputType" : "text",
        "required" : false,
        "width" : 800,
         "setDisabled": true,
        "listeners" : {
            "change" : {
          "question" : ["patient","visit","sample"],
          "fn" : "function(me, cmp, newValue, oldValue){var pid = cmp.getName(); vid = cmp.getName(); sid = cmp.getName(); if (pid == 'patient') {pidVal = newValue;} else if (vid == 'visit') {vidVal = newValue;} else if (sid == 'sample') {sidVal = newValue;} else {return true;} me.setValue(pidVal + '_' + vidVal + '_' + sidVal); me.setDisabled(true);} "
        }
      }
      }],
      "description" : null,
      "header" : true,
      "title" : "User Information",
      "collapsible" : false,
      "defaultLabelWidth" : 350
    },{
      "questions" : [{
        "name" : "patient",
        "caption" : "Patient Id",
        "shortCaption" : "Patient Id",
        "hidden" : false,
        "jsonType" : "string",
        "inputType" : "text",
        "required" : true,
        "width" : 800
      },{
        "name" : "visit",
        "caption" : "Visit Id",
        "shortCaption" : "Visit Id",
        "hidden" : false,
        "jsonType" : "string",
        "inputType" : "text",
        "required" : true,
        "width" : 800
      }, {
        "name" : "sample",
        "caption" : "Sample Id",
        "shortCaption" : "Sample Id",
        "hidden" : false,
        "jsonType" : "string",
        "inputType" : "text",
        "required" : true,
        "width" : 800
      }],
      "description" : null,
      "header" : true,
      "title" : "Medical Form",
      "collapsible" : true,
      "defaultLabelWidth" : 350
    } ]
  }
}
adam2011-12-09 14:20Jon (LabKey DevOps)2018-11-16 23:24building labkey from source - NullPointerExceptionbuilding labkey from source - NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
Are there any exceptions or errors before this in the log? The NPE indicates that your server can't find the core module. Check the permissions in your deployment directory... LabKey needs permission to write to the file system to explode the modules.
michael_stover@urmc.rochester.edu2011-12-12 09:42Jon (LabKey DevOps)2018-11-16 23:23building labkey from source - NullPointerExceptionbuilding labkey from source - NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, tomcat didn't have permission to expand the modules. It's working now.

Now I have a bigger question. We have a need to use ldap authentication, but it's not via an email address. However, Labkey users appear to be intimately tied to using the email address as the principle. Lookups of users uses the email, all the authentication calls use the email and verify it as email.

To add a new principle field in place of email and make email a regular field of a User appears to be a major change to some core stuff. I'm looking for advice - have there been thoughts of disentangling login from email? I do not want a customized Labkey installation here that I have to always keep merging with the latest Labkey releases. I'd like to make a patch/modification that Labkey.com can be happy with.
Matthew Bellew2011-12-12 09:49Jon (LabKey DevOps)2018-11-16 23:24building labkey from source - NullPointerExceptionbuilding labkey from source - NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
Does the user name in ldap match the user's email name in any way? Or are they completely unrelated?
michael_stover@urmc.rochester.edu2011-12-12 10:08Jon (LabKey DevOps)2018-11-16 23:24building labkey from source - NullPointerExceptionbuilding labkey from source - NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
The are completely unrelated, unfortunately.
Matthew Bellew2011-12-12 10:44Jon (LabKey DevOps)2018-11-16 23:23building labkey from source - NullPointerExceptionbuilding labkey from source - NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
OK, we can talk about replacing the AuthenticationProvider with a subclass of LdapAuthenticationProvider etc. BUT, before going down that road...

The real problem here is that Robert@internal.ldap (ldap name) wants to log in as "Robert" and have LabKey send mail to "Bobby.Bobby@mail.com".

A sneaky operational way to do this is to have an SMTP server that is handles accepts mail using the LDAP name and forwards it to the correct email address.
michael_stover@urmc.rochester.edu2011-12-12 10:51Jon (LabKey DevOps)2018-11-16 23:24building labkey from source - NullPointerExceptionbuilding labkey from source - NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, that is exactly the real problem, and that problem lies in core code, not the authentication module. I'm not sure if I can get an operational solution - our Labkey is under University operations and is FISMA compliant and what I can get out of our IT is never certain.
michael_stover@urmc.rochester.edu2011-12-12 10:54Jon (LabKey DevOps)2018-11-16 23:24building labkey from source - NullPointerExceptionbuilding labkey from source - NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
Actually, if I can get an operational solution, I don't think I need any changes to Labkey. But, I'm having trouble getting answers around here...

I mostly wanted confirmation that this is indeed a thorny problem, and not one with a simple fix, and whether it's one you've all discussed before.
adam2011-12-12 11:01Jon (LabKey DevOps)2018-11-16 23:24building labkey from source - NullPointerExceptionbuilding labkey from source - NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, it's non-trivial. We have discussed this (and related issues, like supporting multiple LDAP servers) with other clients and I believe I even wrote a spec for it, but in the end all the other clients have found operational workarounds that met their needs.

Adam
Jon (LabKey DevOps)2016-02-19 14:29Jon (LabKey DevOps)2018-11-16 23:24Building HelloWorld Module not working...Building HelloWorld Module not working... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

I know that page is under construction currently, so it might have a few bugs in it.

Let me go through that page and confirm the information, but in the meantime can you take a look at our docs here?

https://www.labkey.org/home/Documentation/wiki-page.view?name=moduleqvr

This page contains the steps to make a reportDemo module, from the structure to the individual query files and such to make a working demo. It is a longer page, but it should provide the same level of learning as the helloWorldModule one.

Regards,

Jon
Jon (LabKey DevOps)2016-02-19 15:35Jon (LabKey DevOps)2018-11-16 23:24Building HelloWorld Module not working...Building HelloWorld Module not working... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

I went through the module, but it did work for me.

Just curious, did you restart Tomcat after you added the module? I had to do this to get the module to get picked up fully.

Regards,

Jon
diego2016-02-22 08:28Jon (LabKey DevOps)2018-11-16 23:24Building HelloWorld Module not working...Building HelloWorld Module not working... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Will work on the more complete module tutorial, but regarding the HelloWorld Module, I still do not seem to be able to choose from the "Hello World Web Part" in <Select Web Part> dropdown...

I am opting for a "TEST" subfolder and then choosing "collaboration" under "Folder Type"

Have attached a zip file with all my helloworld files...

Thanks,
Diego
diego2016-02-22 10:54Jon (LabKey DevOps)2018-11-16 23:23Building HelloWorld Module not working...Building HelloWorld Module not working... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Have moved on to the other tutorial you mentioned -->

https://www.labkey.org/home/Documentation/wiki-page.view?name=moduleqvr

Seem to setup all directories and files correctly, but when I initiate "X!Tandem Peptide Search"

I get the following error --> "Could not find database sequence root for /home/TEST/ProteomicsTutorial"

Not quite sure what file or directory the "database sequence root" is...


Thanks,
Diego
Jon (LabKey DevOps)2016-02-22 23:17Jon (LabKey DevOps)2018-11-16 23:23Building HelloWorld Module not working...Building HelloWorld Module not working... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

Can you try my module here?

Just download the zip file, unzip it in the modules folder and then restart Tomcat. Then enable it in your LabKey instance and see if you can add that webpart.

Regards,

Jon
diego2016-02-23 09:10Jon (LabKey DevOps)2018-11-16 23:24Building HelloWorld Module not working...Building HelloWorld Module not working... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

Your zip file worked perfectly... Now on to the next issue, what do you assume " "Could not find database sequence root for /home/TEST/ProteomicsTutorial" is referring to?


Thanks,
Diego
Jon (LabKey DevOps)2016-02-25 23:10Jon (LabKey DevOps)2018-11-16 23:24Building HelloWorld Module not working...Building HelloWorld Module not working... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

I didn't get that error message at all.

So when you were trying to follow the beginning of this doc that starts with the X!Tandem Peptide Search:

https://www.labkey.org/home/Documentation/wiki-page.view?name=describeAndSearch

Did you setup the Pipeline Root Override as well as described here?

https://www.labkey.org/home/Documentation/wiki-page.view?name=setupCPASDemo

The section called "Set Up the Pipeline" at the end should be setup so you have a proper pipeline root to use.

Regards,

Jon
diego2016-02-26 11:28Jon (LabKey DevOps)2018-11-16 23:23Building HelloWorld Module not working...Building HelloWorld Module not working... TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I did setup the Data Processing Pipeline path. Have attached the some screenshots.. Still getting the same error when trying to setup the xtamdem peptide search... I am thinking my path in pipeline is not correct..

Thanks,
Diego
Jon (LabKey DevOps)2016-03-01 11:23Jon (LabKey DevOps)2018-11-16 23:24Building HelloWorld Module not working...Building HelloWorld Module not working... TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Diego,

Have you had an opportunity to look at our Pipeline information regarding FASTA and MS2 runs?

https://www.labkey.org/home/Documentation/wiki-page.view?name=ms2PipelineSetup#ms2 (also see attached screenshots)

Within the Pipeline setup page, there is a Set FASTA root option where you need to dictate a path for the MS2 search to work with.

Can you set the FASTA root per the instructions/screenshots?

Regards,

Jon
Susan Hert2017-10-13 11:12Jon (LabKey DevOps)2018-11-16 23:23Building for production, gradle error: could not determine dependenciesBuilding for production, gradle error: could not determine dependencies TEXT_WITH_LINKSClosed     LabKey Support Forum
Can you tell me a little more about your directory structure? Am I interpreting this correctly that you have your LabKey enlistment under a directory called /build/QA/web

I think perhaps the "web" directory is causing a problem. We expect "web" to be one of the source directories for files referenced in the .lib.xml files. If you rename that directory to something other than "web" or "webapp", I believe you will have better results.

Susan
Matt V2017-10-13 11:44Jon (LabKey DevOps)2018-11-16 23:23Building for production, gradle error: could not determine dependenciesBuilding for production, gradle error: could not determine dependencies TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Susan,

The build script checks out the source from SVN (https://hedgehog.fhcrc.org/tor/stedi/branches/release17.2/) to /build/<environment>/web/source. In this case, <environment> is QA. Our modules are next cloned in. Then, the script runs the gradle wrapper from within that source directory, /build/QA/webapp/source. For completeness, there's an equivalent /build/<env>/database directory for db related items (no issues here).

I quickly swapped the "web" directory to "webapp" and the same error persists. Still builds fine without the production flag. Attempting to build manually from that directory

When I look more closely at the directories, it appears that my dev copy in another directory has quite a few files that are missing from the freshly checked out SVN version. For example, /server/modules/core/resources/scripts/labkey/Filter.js (in dev, not in svn checkout). There are roughly 70 files missing or incomplete like this.

Maybe I'm missing a step for a branch new build since this doesn't ever hit IntelliJ? I don't see them when browsing the svn trunk either.
Susan Hert2017-10-13 11:50Jon (LabKey DevOps)2018-11-16 23:24Building for production, gradle error: could not determine dependenciesBuilding for production, gradle error: could not determine dependencies TEXT_WITH_LINKSClosed     LabKey Support Forum
"webapp" will have the same problems as we use that as a source directory as well. Try renaming to something like "website" and I believe you will have better results.

Susan
Matt V2017-10-13 12:50Jon (LabKey DevOps)2018-11-16 23:24Building for production, gradle error: could not determine dependenciesBuilding for production, gradle error: could not determine dependencies TEXT_WITH_LINKSClosed     LabKey Support Forum
Oops, misread your previous post. Changing it to anything except "web" and "webapp" did the trick. Thanks!
Susan Hert2017-10-14 14:13Jon (LabKey DevOps)2018-11-16 23:23Building for production, gradle error: could not determine dependenciesBuilding for production, gradle error: could not determine dependencies TEXT_WITH_LINKSClosed     LabKey Support Forum
Great! I'm glad that worked.

I also plan to have a fix for this in the next release of the gradle plugins jar (1.2.1), which should be coming out soon.
marki2006-09-25 21:10Jon (LabKey DevOps)2018-11-16 23:24building CPAS from source: apt taskdefbuilding CPAS from source: apt taskdef2010-10-25 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
apt is the annotation-compiler tool that is part of jdk 1.5, and it is an executable

Is it possible that your ant installation is trying to compile using jdk 1.4? CPAS requires jdk1.5 for build and runtime.
dandante@dandante.com2006-09-25 22:00Jon (LabKey DevOps)2018-11-16 23:24building CPAS from source: apt taskdefbuilding CPAS from source: apt taskdef2010-10-25 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for your response. I am definitely using jdk 1.5. The issue was that JAVA_HOME/bin was not on my path. I put it there and it fixed that problem, when running "ant build" from the command line. I am still experiencing the problem when running this target within IDEA. I restarted IDEA but it still doesn't see my system path. How to fix this?

Anyway, running from the command line I now have a new problem, the build is failing with this message:

BUILD FAILED
/home/dante/IdeaProjects/cpas/modules/build.xml:728: The following error occurred while executing this line:
/home/dante/IdeaProjects/cpas/modules/build.xml:327: The following error occurred while executing this line:
/home/dante/IdeaProjects/cpas/modules/build.xml:594: The following error occurred while executing this line:
/home/dante/IdeaProjects/cpas/modules/build.xml:618: The following error occurred while executing this line:
/home/dante/IdeaProjects/cpas/modules/build.xml:560: The following error occurred while executing this line:
/home/dante/IdeaProjects/cpas/modules/build.xml:447: Class org.apache.jasper.JspC doesn't support the "compilertargetvm" attribute.


Yes, I am using Tomcat 5.5....

Complete output of command line build is attached.

Any ideas? Thanks
brendanx2006-09-26 08:04Jon (LabKey DevOps)2018-11-16 23:23building CPAS from source: apt taskdefbuilding CPAS from source: apt taskdef2010-10-25 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
You will want to set CATALINA_HOME in your environment before starting IntelliJ.
dandante@dandante.com2006-09-26 11:30Jon (LabKey DevOps)2018-11-16 23:24building CPAS from source: apt taskdefbuilding CPAS from source: apt taskdef2010-10-25 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you. I already did that and it makes no difference. Same with running from the command line--I set CATALINA_HOME and JAVA_HOME and I still get this error:
/home/dante/IdeaProjects/cpas/modules/build.xml:447: Class org.apache.jasper.JspC doesn't support the "compilertargetvm" attribute.

(And in IDEA I still can't get past the first error I posted about, though I have contacted IntelliJ support about that).

Thanks
dandante@dandante.com2006-09-26 13:09Jon (LabKey DevOps)2018-11-16 23:24building CPAS from source: apt taskdefbuilding CPAS from source: apt taskdef2010-10-25 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum
I got the source to build using "ant build" within IDEA. Thanks for the help!
adam2006-12-04 22:04adam2006-12-04 22:04building CPAS from source: apt taskdefbuilding CPAS from source: apt taskdef2010-10-25 00:00TEXT_WITH_LINKSClosed     LabKey Support Forum 
jeckels2009-08-19 09:15Jon (LabKey DevOps)2018-11-16 23:24build hangs at target: setup task: replacebuild hangs at target: setup task: replace TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

The comment is referring to what the build is doing. It's not something you need to do manually.

I haven't seen the build hang like that before, although I have seen it be much slower when run through IntelliJ. I'm not sure why, but doing the Ant build from IntelliJ can sometimes use huge amounts of memory. If you haven't already bumped it up, you might try increasing the number on the -Xmx line in C:\Program Files\JetBrains\IntelliJ IDEA 8.1\bin\idea.exe.vmoptions, or wherever you have IntelliJ installed.

Thanks,
Josh
wnels2@uky.edu2009-08-20 09:07Jon (LabKey DevOps)2018-11-16 23:23build hangs at target: setup task: replacebuild hangs at target: setup task: replace TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the reply. I tryed messing with the idea.exe.vmoptions parameters but it still hangs. Ant command line is a lot faster though.
Bill
Brian Pratt2009-09-25 09:15Jon (LabKey DevOps)2018-11-16 23:24build hangs at target: setup task: replacebuild hangs at target: setup task: replace TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm hitting this too, after getting a completely new source code tree from trunk. I'm guessing you could repro on a fresh system. Seems OK from commandline, so not a showstopper, but I did lose a little time tearing my hair out before I found Bill's post here.

Brian
adam2009-06-04 08:19Jon (LabKey DevOps)2018-11-16 23:23build hangsbuild hangs TEXT_WITH_LINKSClosed     LabKey Support Forum
I've seen this as well, but only when invoking ant tasks from within IntelliJ, never from the command line. Has this been your experience?
wnels2@uky.edu2009-06-04 08:21Jon (LabKey DevOps)2018-11-16 23:24build hangsbuild hangs TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes
wnels2@uky.edu2009-06-04 08:38Jon (LabKey DevOps)2018-11-16 23:23build hangsbuild hangs TEXT_WITH_LINKSClosed     LabKey Support Forum
I'll build from the console. A lot faster anyway.
Thanks,
Bill
Jon (LabKey DevOps)2015-03-16 12:37Jon (LabKey DevOps)2018-11-16 23:23Build Error with Labkey Trunk - ServerBuild Error with Labkey Trunk - Server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

Have you had an opportunity to review our developer documentation on setting up a development machine?

https://www.labkey.org/wiki/home/Documentation/page.view?name=build

The config.properties file is the file that your dev instance will use to create its build.xml from. That config.properties file is located under the LABKEY_ROOT/server/ directory and it relies on the properties files that are within the LABKEY_ROOT/server/configs/ subdirectory. If you go into configs, you'll see two .properties files - one called pg.properties, the other mssql.properties. The pg one is for PostgreSQL while mssql is for Microsoft SQL. Depending on which version of SQL you're using, you want to edit the appropriate file and enter in your information (e.g. Database Name, database username, database password, port number, host address, etc). So when you run ant in the server directory, you would use either "ant pick_pg" or "ant pick_mssql" to have it pick the specific properties file in the configs directory, which will then write to the config.properties file. This will then eventually create your build.xml file and labkey.xml file for your dev instance to start working.

Does this make sense?

Regards,

Jon
lewis j mcgibbney2015-03-16 12:39Jon (LabKey DevOps)2018-11-16 23:24Build Error with Labkey Trunk - ServerBuild Error with Labkey Trunk - Server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Folks,
In the /server/configs/ directory I saw both pg.properties and mssql.properties.
I copied the former to /server, this worked.
Please see the attached log file.
Jon (LabKey DevOps)2015-03-16 13:03Jon (LabKey DevOps)2018-11-16 23:24Build Error with Labkey Trunk - ServerBuild Error with Labkey Trunk - Server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Lewis,

Copying the pg.properties file to the server directory and renaming it config.properties is fine, but for future we recommend you using the ant command instead. This allows you to be able to switch between different databases if you have both MS SQL and PostgreSQL databases to access or if you have multiple databases within PostgreSQL or MS SQL. I have several different properties files that are for both PostgreSQL and MS SQL that I use for testing and I end up copying one of them to my pg.properties or mssql.properties file and then running the "ant pick_pg" or "ant pick_mssql" command for it to build my labkey.xml file and point to the correct server and database.

All of this information is within our dev machine instructions here: https://www.labkey.org/wiki/home/Documentation/page.view?name=build

Regards,

Jon
lewis j mcgibbney2015-03-16 14:18Jon (LabKey DevOps)2018-11-16 23:24Build Error with Labkey Trunk - ServerBuild Error with Labkey Trunk - Server TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Thanks for your feedback. Greatly appreciated.
Additionally, I had to set the following Ant optional configuration
export ANT_OPTS="-Xms1536m -Xmx1536m -XX:PermSize=1024m -XX:MaxPermSize=2048m"
Once that was done, everything build perfectly from trunk.
Thanks very much again.
Lewis
wnels2@uky.edu2009-01-28 12:03Jon (LabKey DevOps)2018-11-16 23:23build errorbuild error TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, I had installed tomcat 5.5.27 when the directions clearly said to use 5.5.26.
It's okay now.
Jon (LabKey DevOps)2016-01-12 18:53Jon (LabKey DevOps)2018-11-16 23:24Bug report: LABKEY.QueryWebPart() dropping filterBug report: LABKEY.QueryWebPart() dropping filter TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Will.

I've confirmed the same behavior and this appears to just be with the wiki. When the actual table in question is edited with the filters, both contains options appear on the screen.

I've create a bug for the behavior and have escalated the issue: https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=25337

Regards,

Jon
Jon (LabKey DevOps)2016-02-28 18:58Jon (LabKey DevOps)2016-02-28 18:58Bug report: LABKEY.QueryWebPart() dropping filterBug report: LABKEY.QueryWebPart() dropping filter TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Will,

The trunk build (r42336) has been updated with a fix for this. This will also be available in the upcoming 16.1 LabKey Release build in March.

Regards,

Jon
Matthew Bellew2012-08-15 10:32Jon (LabKey DevOps)2018-11-16 23:24Bug in XML meta dataBug in XML meta data TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the bug report. Josh (and another user) found this as well and this is fixed in 12.2.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=14949
jeckels2012-07-30 12:23Jon (LabKey DevOps)2018-11-16 23:23Bug in xml editor for queries?Bug in xml editor for queries? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

I assume that you're running against version 12.1. We've fixed this issue in 12.2:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=14949

Thanks,
Josh
adam2013-03-06 22:44Jon (LabKey DevOps)2018-11-16 23:24Bug in generated SAS code - client APIBug in generated SAS code - client API TEXT_WITH_LINKSClosed     LabKey Support Forum
Yes, that appears to be a bug in both the SAS client API and Java API (on which the SAS API depends).

Adam
Andy Straw2013-03-19 12:58Jon (LabKey DevOps)2018-11-16 23:24Bug in generated SAS code - client APIBug in generated SAS code - client API TEXT_WITH_LINKSClosed     LabKey Support Forum
Would you please point me to the bug/issue for this, so I can track it.

Thanks.

Andy Straw
University of Rochester
adam2013-03-19 14:32Jon (LabKey DevOps)2018-11-16 23:24Bug in generated SAS code - client APIBug in generated SAS code - client API TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick Kerr2013-09-27 16:56Jon (LabKey DevOps)2018-11-16 23:24Bug in Data View?Bug in Data View? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Thanks for reporting this. We'll take a look and have an update soon.

Thanks,
Nick
Karl Lum2013-09-30 19:14Jon (LabKey DevOps)2018-11-16 23:24Bug in Data View?Bug in Data View? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

It looks like this has been a problem for a while. As you noticed, only dataset-based custom views would render correctly from the data views webpart, any other query would show the default view and ignore the view name. I've fixed this recently on the trunk : 13.3.

- Karl
jdutra2013-10-01 06:22Jon (LabKey DevOps)2018-11-16 23:23Bug in Data View?Bug in Data View? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks!
Ben Bimber2010-10-13 02:31Jon (LabKey DevOps)2018-11-16 23:24bug associated with study hard table transitionbug associated with study hard table transition TEXT_WITH_LINKSClosed     LabKey Support Forum
more info:

on starting tomcat, i see a lot of these in the intellij console:

INFO SqlDialect 2010-10-13 04:23:50,400 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,400 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,400 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,400 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,401 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,401 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,401 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,401 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,402 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,501 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,501 http-8080-Processor20 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,519 http-8080-Processor24 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,519 http-8080-Processor24 : Unknown SQL Type Name "null"; using String instead.
INFO SqlDialect 2010-10-13 04:23:50,525 http-8080-Processor24 : Unknown SQL Type Name "null"; using String instead.


here's the full error and sql:

ERROR Table 2010-10-13 04:24:10,535 t: http-8080-Processor21 : internalExecuteQuery
org.postgresql.util.PSQLException: ERROR: UNION types text and integer cannot be matched
  Position: 1280
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
    at org.labkey.api.data.StatementWrapper.executeQuery(StatementWrapper.java:542)
    at org.labkey.api.data.Table._executeQuery(Table.java:146)
    at org.labkey.api.data.Table.executeQuery(Table.java:306)
    at org.labkey.api.data.Table.selectForDisplay(Table.java:1415)
    at org.labkey.api.data.Table.access$300(Table.java:79)
    at org.labkey.api.data.Table$2.call(Table.java:1427)
    at org.labkey.api.data.Table$2.call(Table.java:1424)
    at org.labkey.api.data.AsyncQueryRequest$1.run(AsyncQueryRequest.java:69)
    at java.lang.Thread.run(Thread.java:619)
ERROR Table 2010-10-13 04:24:10,536 t: http-8080-Processor21 : SQL [3244]
    -- <QueryServiceImpl.getSelectSQL(FilteredTable over StudyData UNION table)>
        SELECT *
        FROM (
        SELECT
        StudyData.participantid AS Id,
        StudyData.Project AS Project,
        StudyData.Account AS Account,
        StudyData.dataset AS DataSet,
        StudyData$DataSet$.name AS "DataSet$Name",
        StudyData.Remark AS Remark,
        StudyData.Description AS Description,
        StudyData.lsid AS LSID
        FROM (
        -- <StudyUnionTableInfo>
            (SELECT '03f66167-8965-102d-bff3-493dbd27f43e' AS dataset, 1061 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1496_alopecia" D) UNION ALL
            (SELECT '03f66153-8965-102d-bff3-493dbd27f43e' AS dataset, 1007 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1462_birth" D) UNION ALL
            (SELECT '03f66142-8965-102d-bff3-493dbd27f43e' AS dataset, 1008 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, NULL AS Account FROM studydataset."c108d1463_blood" D) UNION ALL
            (SELECT '03f6615b-8965-102d-bff3-493dbd27f43e' AS dataset, 1065 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1500_bcs" D) UNION ALL
            (SELECT '03f66158-8965-102d-bff3-493dbd27f43e' AS dataset, 1047 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, NULL AS Account FROM studydataset."c108d1466_clinremarks" D) UNION ALL
            (SELECT '03f6615a-8965-102d-bff3-493dbd27f43e' AS dataset, 1064 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1499_dentalstatus" D) UNION ALL
            (SELECT '03f66146-8965-102d-bff3-493dbd27f43e' AS dataset, 1014 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, NULL AS Account FROM studydataset."c108d1470_drug" D) UNION ALL
            (SELECT '03f66159-8965-102d-bff3-493dbd27f43e' AS dataset, 1067 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, NULL AS ParentId, D.remark, D.project, D.account FROM studydataset."c108d1502_encounters" D) UNION ALL
            (SELECT '03f66141-8965-102d-bff3-493dbd27f43e' AS dataset, 1023 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1479_obs" D) UNION ALL
            (SELECT '03f66145-8965-102d-bff3-493dbd27f43e' AS dataset, 1029 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1482_prenatal" D) UNION ALL
            (SELECT '03f66139-8965-102d-bff3-493dbd27f43e' AS dataset, 1033 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1485_procedures" D) UNION ALL
            (SELECT '03f66147-8965-102d-bff3-493dbd27f43e' AS dataset, 1030 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1483_problem" D) UNION ALL
            (SELECT '03f6615f-8965-102d-bff3-493dbd27f43e' AS dataset, 1069 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, NULL AS Account FROM studydataset."c108d1507_restraints" D) UNION ALL
            (SELECT '03f66148-8965-102d-bff3-493dbd27f43e' AS dataset, 1031 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, NULL AS Remark, D.project, NULL AS Account FROM studydataset."c108d1484_surgery" D) UNION ALL
            (SELECT '03f6613b-8965-102d-bff3-493dbd27f43e' AS dataset, 1034 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, NULL AS Remark, D.project, NULL AS Account FROM studydataset."c108d1486_surgsum" D) UNION ALL
            (SELECT '03f6616c-8965-102d-bff3-493dbd27f43e' AS dataset, 1075 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1509_treatments" D) UNION ALL
            (SELECT '03f6613c-8965-102d-bff3-493dbd27f43e' AS dataset, 1035 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1487_tb" D) UNION ALL
            (SELECT '03f66164-8965-102d-bff3-493dbd27f43e' AS dataset, 1062 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1497_teeth" D) UNION ALL
            (SELECT '03f6613f-8965-102d-bff3-493dbd27f43e' AS dataset, 1037 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, NULL AS Account FROM studydataset."c108d1489_treatment_order" D) UNION ALL
            (SELECT '03f66157-8965-102d-bff3-493dbd27f43e' AS dataset, 1045 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1494_weight" D) UNION ALL
            (SELECT '03f66165-8965-102d-bff3-493dbd27f43e' AS dataset, 1063 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1498_vitals" D) UNION ALL
            (SELECT '03f6614e-8965-102d-bff3-493dbd27f43e' AS dataset, 1050 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, D.account FROM studydataset."c108d1457_bacteriologyruns" D) UNION ALL
            (SELECT '03f6614a-8965-102d-bff3-493dbd27f43e' AS dataset, 1049 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1458_bacteriologyresults" D) UNION ALL
            (SELECT '03f66154-8965-102d-bff3-493dbd27f43e' AS dataset, 1055 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, D.account FROM studydataset."c108d1464_chemistryruns" D) UNION ALL
            (SELECT '03f66162-8965-102d-bff3-493dbd27f43e' AS dataset, 1056 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1465_chemistryresults" D) UNION ALL
            (SELECT '03f66163-8965-102d-bff3-493dbd27f43e' AS dataset, 1057 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, D.account FROM studydataset."c108d1473_hematologyruns" D) UNION ALL
            (SELECT '03f66160-8965-102d-bff3-493dbd27f43e' AS dataset, 1058 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, D.account FROM studydataset."c108d1471_hematologymorphology" D) UNION ALL
            (SELECT '03f66161-8965-102d-bff3-493dbd27f43e' AS dataset, 1059 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1472_hematologyresults" D) UNION ALL
            (SELECT '03f66169-8965-102d-bff3-493dbd27f43e' AS dataset, 1082 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, D.account FROM studydataset."c108d1475_immunologyruns" D) UNION ALL
            (SELECT '03f66168-8965-102d-bff3-493dbd27f43e' AS dataset, 1083 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1476_immunologyresults" D) UNION ALL
            (SELECT '03f6614c-8965-102d-bff3-493dbd27f43e' AS dataset, 1051 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, D.account FROM studydataset."c108d1480_parasitologyruns" D) UNION ALL
            (SELECT '03f66152-8965-102d-bff3-493dbd27f43e' AS dataset, 1052 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1481_parasitologyresults" D) UNION ALL
            (SELECT '03f6616b-8965-102d-bff3-493dbd27f43e' AS dataset, 1080 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, D.account FROM studydataset."c108d1491_urinalysisruns" D) UNION ALL
            (SELECT '03f6616a-8965-102d-bff3-493dbd27f43e' AS dataset, 1081 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1490_urinalysisresults" D) UNION ALL
            (SELECT '03f66150-8965-102d-bff3-493dbd27f43e' AS dataset, 1053 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, D.account FROM studydataset."c108d1492_virologyruns" D) UNION ALL
            (SELECT '03f66156-8965-102d-bff3-493dbd27f43e' AS dataset, 1054 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1493_virologyresults" D) UNION ALL
            (SELECT '03f6615e-8965-102d-bff3-493dbd27f43e' AS dataset, 1068 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, NULL AS Remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1501_alerts" D) UNION ALL
            (SELECT '03f66149-8965-102d-bff3-493dbd27f43e' AS dataset, 1001 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1455_arrival" D) UNION ALL
            (SELECT '03f6614d-8965-102d-bff3-493dbd27f43e' AS dataset, 1002 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, NULL AS Account FROM studydataset."c108d1456_assignment" D) UNION ALL
            (SELECT '03f66151-8965-102d-bff3-493dbd27f43e' AS dataset, 1004 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, NULL AS Account FROM studydataset."c108d1459_behavetrem" D) UNION ALL
            (SELECT '03f6614b-8965-102d-bff3-493dbd27f43e' AS dataset, 1048 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1467_deaths" D) UNION ALL
            (SELECT '03f66143-8965-102d-bff3-493dbd27f43e' AS dataset, 1012 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, NULL AS Remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1468_demographics" D) UNION ALL
            (SELECT '03f66144-8965-102d-bff3-493dbd27f43e' AS dataset, 1013 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1469_departure" D) UNION ALL
            (SELECT '03f6613a-8965-102d-bff3-493dbd27f43e' AS dataset, 1018 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1474_housing" D) UNION ALL
            (SELECT '03f66138-8965-102d-bff3-493dbd27f43e' AS dataset, 5001 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, NULL AS Description, NULL AS ParentId, NULL AS Remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1510_inbreeding" D) UNION ALL
            (SELECT '03f66166-8965-102d-bff3-493dbd27f43e' AS dataset, 1060 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1495_menses" D) UNION ALL
            (SELECT '03f6616f-8965-102d-bff3-493dbd27f43e' AS dataset, 1079 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1512_pairtest" D) UNION ALL
            (SELECT '03f66155-8965-102d-bff3-493dbd27f43e' AS dataset, 1006 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, NULL AS Remark, NULL AS Project, D.account FROM studydataset."c108d1460_biopsy" D) UNION ALL
            (SELECT '03f6614f-8965-102d-bff3-493dbd27f43e' AS dataset, 1005 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, NULL AS Remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1461_biopsydiag" D) UNION ALL
            (SELECT '03f6616d-8965-102d-bff3-493dbd27f43e' AS dataset, 1073 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, D.project, D.account FROM studydataset."c108d1506_clinpathrequests" D) UNION ALL
            (SELECT '03f66171-8965-102d-bff3-493dbd27f43e' AS dataset, 1077 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1508_errors" D) UNION ALL
            (SELECT '03f66170-8965-102d-bff3-493dbd27f43e' AS dataset, 1078 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1511_feeding" D) UNION ALL
            (SELECT '03f6615c-8965-102d-bff3-493dbd27f43e' AS dataset, 1070 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1503_histology" D) UNION ALL
            (SELECT '03f66140-8965-102d-bff3-493dbd27f43e' AS dataset, 1022 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, NULL AS Remark, D.project, D.account FROM studydataset."c108d1477_necropsy" D) UNION ALL
            (SELECT '03f6613e-8965-102d-bff3-493dbd27f43e' AS dataset, 1021 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1478_necropsydiag" D) UNION ALL
            (SELECT '03f6616e-8965-102d-bff3-493dbd27f43e' AS dataset, 1072 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1505_organ_weights" D) UNION ALL
            (SELECT '03f6613d-8965-102d-bff3-493dbd27f43e' AS dataset, 1036 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1488_tissue_requests" D) UNION ALL
            (SELECT '03f6615d-8965-102d-bff3-493dbd27f43e' AS dataset, 1071 AS datasetid, D.date AS _visitdate, D.participantid, D.sequencenum, D._key, D.participantsequencekey, D.sourcelsid, D.qcstate, D.lsid, D.description, D.parentid, D.remark, NULL AS Project, NULL AS Account FROM studydataset."c108d1504_tissue_samples" D)
        -- </StudyUnionTableInfo>
        ) StudyData
            LEFT OUTER JOIN (SELECT * FROM study.dataset
        WHERE (container IN (?))) StudyData$DataSet$ ON (CAST((StudyData.dataset) AS VARCHAR) = CAST((StudyData$DataSet$.entityid) AS VARCHAR))) x
        ORDER BY Id ASC
        LIMIT 101
    -- </QueryServiceImpl.getSelectSQL()>
    ?[1] 29e3860b-02b5-102d-b524-493dbd27b599

    org.labkey.api.data.Table$2.call(Table.java:1427)
    org.labkey.api.data.Table$2.call(Table.java:1424)
    org.labkey.api.data.AsyncQueryRequest$1.run(AsyncQueryRequest.java:69)
    java.lang.Thread.run(Thread.java:619)
newton2010-10-13 16:02Jon (LabKey DevOps)2018-11-16 23:24bug associated with study hard table transitionbug associated with study hard table transition TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I filed bug #10978 on this... will try to load your study and reproduce it.

thanks
M.
Jon (LabKey DevOps)2017-01-20 00:02Jon (LabKey DevOps)2017-01-20 00:02bootstrap initClassLoaders the double quote character only be used to quote pathsbootstrap initClassLoaders the double quote character only be used to quote paths TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

I'm not certain why you received that error. Here's an example of the VM options that one of our developers has in their version of IntelliJ on Windows that works:

-Dcatalina.base="./" -Dcatalina.home="./" -Djava.io.tmpdir="./temp" -Ddevmode=true -ea -Dsun.io.useCanonCaches=false -Xmx1G -classpath "./bin/bootstrap.jar;./bin/tomcat-juli.jar;C:/Program Files (x86)/JetBrains/IntelliJ IDEA 2016.3/lib/idea_rt.jar"

As you can see, we also have quotation marks as well and it is functional.

We will keep an eye on this though if we do notice this down the road.

Regards,

Jon
jeckels2010-02-22 13:27Jon (LabKey DevOps)2018-11-16 23:24best way to reset entire labkey installbest way to reset entire labkey install TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You should be able to shut down the server, delete the Postgres database, and restart the server. The server will automatically recreate the database on startup. Be sure to exit pgAdmin before starting the server - it holds a lock that prevents LabKey Server from creating a new database.

Thanks,
Josh
Ben Bimber2010-02-22 14:44Jon (LabKey DevOps)2018-11-16 23:23best way to reset entire labkey installbest way to reset entire labkey install TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks. is there a way to kill a single folder or a single study? I've been trying to do this through the web interface - it works ok for small folders, but does not work for big studies.
jeckels2010-02-23 18:06Jon (LabKey DevOps)2018-11-16 23:24best way to reset entire labkey installbest way to reset entire labkey install TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

For single folders you need to go through the UI. I have noticed in the past that deleting an entire folder is faster than deleting just the study from a folder. It may also be faster to delete a project with no subfolders than to delete a subfolder of a project.

Thanks,
Josh
kevink2011-06-14 13:15Jon (LabKey DevOps)2018-11-16 23:24best way to programmatically make a dataregion refresh?best way to programmatically make a dataregion refresh? TEXT_WITH_LINKSClosed     LabKey Support Forum
I think you can use a QueryWebPart and call the render() function. The DataRegion doesn't track the user applied sorts/filters so won't be able to refresh itself. I would like to teach DataRegion how to refresh itself but it requires some server-side work.
Ben Bimber2011-06-15 03:08Jon (LabKey DevOps)2018-11-16 23:24best way to programmatically make a dataregion refresh?best way to programmatically make a dataregion refresh? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi kevin,

thanks for the reply. one of the more compelling reasons to attach a button to a query is so that button and its code gets carried through the labkey UI wherever that query shows up without needing to build and maintain the UI associated with embedding a QWP in an html page. the latter solves the problem in one situation and it is quite easy in labkey user the user to be taken to some other page that might show your query (ie. anything using executeQuery).

it still seems that faking the user action of applying a sort really ought to do the same thing i'm trying to do. when you apply a filter or a sort, the dataregion does refresh. that is initiated by client-side JS code.
kevink2011-06-15 12:31Jon (LabKey DevOps)2018-11-16 23:24best way to programmatically make a dataregion refresh?best way to programmatically make a dataregion refresh? TEXT_WITH_LINKSClosed     LabKey Support Forum
Well, DataRegion can't refresh in place on the page -- the whole page must be refreshed by changing the URL when a sort/filter changes. If the filter and sort aren't changing, can you just refresh the entire page using window.location.reload()?
Ben Bimber2011-06-15 12:41Jon (LabKey DevOps)2018-11-16 23:23best way to programmatically make a dataregion refresh?best way to programmatically make a dataregion refresh? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi kevin,

maybe i have my labkey terminology off. i was under the impression that dataRegion referred to the labkey grid itself. a QWP is the wrapper around a dataRegion that is used if you embed a dataregion in a page. if you're loading executeQuery.view, this page has a dataregion, but no QWP. is this correct?

so perhaps i should alter the question. what i'd ideally like to figure out is some sort of code that i can put in a button handler that can execute and refresh the associated labkey grid, whether it is loaded via executeQuery.view or whether it is loaded using a QWP embedded in some other page. it could well be that 2 distinct paths are needed; however, the code would need some mechanism to figure out the context of the current grid and which path to execute. you are correct that if executeQuery is used, you could just refresh the page.

-the code could use LABKEY.ActionUrl to figure out what the current page is. if it's executeQuery.view, then it would trigger a page reload.
-if it's not executeQuery.view, then we assume it's embedded and we want to use AJAX. is there a good mechanism to obtain a reference to the associated QWP? as far as i can tell, the button handler is passed a reference to the dataregion only, and not directly a reference to the QWP. does a dataregion that is part of a QWP have a reference to that QWP? what about the reverse?

thanks.
kevink2011-06-15 15:13Jon (LabKey DevOps)2018-11-16 23:24best way to programmatically make a dataregion refresh?best way to programmatically make a dataregion refresh? TEXT_WITH_LINKSClosed     LabKey Support Forum
You're right -- the QueryWebPart is a wrapper that you can use to embed a DataRegion grid in a page. When using the executeQuery.view action, there is no QueryWebPart wrapper around the DataRegion -- it is rendered directly into the page.

You're also right that the DataRegion doesn't have a reference to the QueryWebPart that 'owns' it. You may be able to use a the QueryWebPart's success callback to stash a reference to the QueryWebPart on the DataRegion. Your button handler could then look for the reference and call .render() on the QueryWebPart or refresh the entire page if there is no reference. I haven't tried this so I don't know how well it will work.
Ben Bimber2011-06-15 16:02Jon (LabKey DevOps)2018-11-16 23:24best way to programmatically make a dataregion refresh?best way to programmatically make a dataregion refresh? TEXT_WITH_LINKSClosed     LabKey Support Forum
good point. i made a patch for QueryWebpart.js in this issue:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=12414

it was pretty easy for the QWP to drop a reference to it on the dataregion object. this will be convenient for client-side code.
Nick Kerr2013-01-09 18:02Jon (LabKey DevOps)2018-11-16 23:24Best way to manipulate QueryWebPart buttonbar buttons?Best way to manipulate QueryWebPart buttonbar buttons? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Tobin,

Unfortunately, there is not a real good way to access the rendered button as we only provide a click handler.

However, there are couple of injection options:

1. Using the onRender callback from the button bar configuration you could inject your own buttons and still have access to the DataRegion object and control over the buttons state.

2. Turn your button into a menu using the <item> property on <ButtonBarItem> and inject menu items onRender.

On our side, we should probably look at providing a DOM id for these generated buttons so they would be easier to have control over in an onRender event.

Thanks,
Nick
tstellin@scharp.org2013-01-10 07:51Jon (LabKey DevOps)2018-11-16 23:24Best way to manipulate QueryWebPart buttonbar buttons?Best way to manipulate QueryWebPart buttonbar buttons? TEXT_WITH_LINKSClosed     LabKey Support Forum
Alright. I'll try implementing (1)--that seems pretty reasonable.

Thanks!
-Tobin
jeckels2014-09-19 13:33Jon (LabKey DevOps)2018-11-16 23:23Best way to handle requests for logins?Best way to handle requests for logins? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We don't have a general approach for self-registration. Are you looking to have a manual approval process? You could, of course, build something using lists in a folder where Guests are assigned the Author role, possibly coupled with a trigger script that sends email.

You could also have a simple <form> where users enter the info, and which builds a mailto: link with a subject and email body, making it easy for them to send the right set of info:

https://yoast.com/guide-mailto-links/

Thanks,
Josh
Ben Bimber2014-09-19 14:01Jon (LabKey DevOps)2018-11-16 23:24Best way to handle requests for logins?Best way to handle requests for logins? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

Thanks, that's what I figured. Features are added over time, so I thought I'd check to see if there was something new I'd missed.

-Ben
jeckels2010-10-20 16:38Jon (LabKey DevOps)2018-11-16 23:24best approach to create webpart?best approach to create webpart? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I can't think of any easy way to create the <div> in JavaScript without using a different id that would also have the collision problem.

If you find yourself adding the same webpart multiple times, we could add a special substitution, just as we support <%=contextPath%> and <%=containerPath%>, that assigns a GUID for the single webpart instance. You could use that instead of hard-coding a semi-unique id value.

Does that sound like a good way to go?

Thanks,
Josh
Matthew Bellew2010-10-20 16:56Jon (LabKey DevOps)2018-11-16 23:24best approach to create webpart?best approach to create webpart? TEXT_WITH_LINKSClosed     LabKey Support Forum
Or we could make a method LABKEY.makeId() so this would work

<script>
var id = LABKEY.makeId();

document.write("<div id='" + id + "'>");

Ext.onReady(function()
{
  someQWP.render(id);

})
</script>
jeckels2010-10-20 17:02Jon (LabKey DevOps)2018-11-16 23:24best approach to create webpart?best approach to create webpart? TEXT_WITH_LINKSClosed     LabKey Support Forum
I hadn't considered document.write(). Ext already has Ext.id() that is supposed to generate a unique id within the given document.

Thanks,
Josh
Matthew Bellew2010-10-20 17:07Jon (LabKey DevOps)2018-11-16 23:23best approach to create webpart?best approach to create webpart? TEXT_WITH_LINKSClosed     LabKey Support Forum
I think Ext.id() is a little circular, in that you need to already have and element before you assign an it. Not sure.
Ben Bimber2010-10-23 05:38Jon (LabKey DevOps)2018-11-16 23:24best approach to create webpart?best approach to create webpart? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ext.Id() returns an ID string I think. i think it does what matt's describing with LABKEY.makeId(). as a general rule most of our webparts already work somewhat like this. they start with one top-level div, then the JS code creates whatever other elements you need. most webparts are rendered to these new elements. however, you still start with 1 div and you need ID to identify it.

With an approach like above, my only concern was 'where's it create that div?'. If we have a bunch of webparts on a page, how do I make sure that the code creates that div in the right place? isnt is going to tack that div on the bottom of the page, which isnt what you want when you have multiple webparts? seems like you want a 'get the body of this webpart' method.
marki2010-10-25 13:24Jon (LabKey DevOps)2018-11-16 23:24best approach to create webpart?best approach to create webpart? TEXT_WITH_LINKSClosed     LabKey Support Forum
Matt's response will create a div immediately after the script block, so the div will be inside the web part. It's not really a best practice to use document.write() as it slows down page rendering, but it is OK in a pinch.

I think we should do something like what Josh recommends. Note that for each *instance* of a WebPartView we already internally generate a "contentId" (see WebPartView.getContentId() ) that could be used as the value available in the substitution in <%=webPartId%>

In a framed web part getContentId is assigned as the ID of the content tr. You could add something to the end of it to assign an id for an inner thing or if your part is framed you could just create a child using that id.
jeckels2010-09-17 09:58Jon (LabKey DevOps)2018-11-16 23:24behavior of java vs non-java modulesbehavior of java vs non-java modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

We've removed almost all of the differences between Java and non-Java modules, but this is one of the last lingering issues.

Yes, in order to get the server to notice the files under the /resources directory you'll need to do a build and deploy ehr.module to your server. Doing "svn update" directly on the file system won't be sufficient.

Thanks,
Josh
Ben Bimber2010-09-17 10:16Jon (LabKey DevOps)2018-11-16 23:24behavior of java vs non-java modulesbehavior of java vs non-java modules TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. will this be a one time thing or do i need to push a new ehr.module each time i want to commit changes?
jeckels2010-09-17 10:18Jon (LabKey DevOps)2018-11-16 23:24behavior of java vs non-java modulesbehavior of java vs non-java modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

You'll need to push a new ehr.module each time. The server should automatically detect the change, and as long as no Java code changed, deploy the new/updated file-based resources without needing to restart Tomcat.

Thanks,
Josh
Ben Bimber2010-09-17 13:58Jon (LabKey DevOps)2018-11-16 23:24behavior of java vs non-java modulesbehavior of java vs non-java modules TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. just to be sure i get it:

now that the ehr is a java module, there is no longer any reason to bother updating the code in the external modules folder (at least for this module), since the only way to update the file-based resources of a java module is to provide a new ehr.module file? is that correct?
jeckels2010-09-17 14:06Jon (LabKey DevOps)2018-11-16 23:24behavior of java vs non-java modulesbehavior of java vs non-java modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

That's correct.

Thanks,
Josh
Mark22015-03-30 13:07Mark22015-03-30 13:07Batch editing of rowsBatch editing of rows TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon for your email, yes this makes sense, just checking what was available.


Thanks again, closing case.
Jon (LabKey DevOps)2015-03-30 11:33Jon (LabKey DevOps)2018-11-16 23:24Batch editing of rowsBatch editing of rows TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Mark,

Although we don't have any example code, to pull off batch editing the way you describe, you would have to have your code do the following:

1. Collect the specific ID numbers of the rows that you want to edit and save them in an array.
2. Have your code only identify fields that you want to update.
3. Have your code then use the javascript API to do an updateRows (https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.updateRows) or saveRows (https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#.saveRows) on a loop, using the array from earlier.

Does this make sense?

Regards,

Jon
Jon (LabKey DevOps)2018-12-10 20:40Jon (LabKey DevOps)2018-12-10 20:40Batch creation of file setsBatch creation of file sets TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

There are some Javascript API endpoints that might be helpful in accomplishing this goal:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.FileSystem.AbstractFileSystem.html
https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.FileSystem.WebdavFileSystem.html

Otherwise, this would be a manual solution with the Community version with its current functionality.

Regards,

Jon
Jon (LabKey DevOps)2015-12-18 11:12Jon (LabKey DevOps)2018-11-16 23:23Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

It appears that you have the HDRL module enabled on that specific project or one of the sub-folders underneath that project.

Can you go into the Project and then click Admin > Folder > Management and go to the Folder Type tab and verify if the HDRL module is enabled? If it is, please uncheck the box next to it and then click Update. After you do this, please attempt to delete your project again.

Regards,

Jon
martin lague2015-12-18 11:41Jon (LabKey DevOps)2018-11-16 23:23Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

HDRL isn't enabled on that project. This project is empty. I created it to test deleting a project after I had the same problem deleting another test project. I tried enabling HDRL, updating the folder and disabling before deleting the project but I still get that error message. Thanks Jon for helping.

Martin
Jon (LabKey DevOps)2015-12-18 12:29Jon (LabKey DevOps)2018-11-16 23:24Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

That's interesting.

Can you try deleting it with the HDRL enabled?

Regards,

Jon
martin lague2015-12-22 10:00Jon (LabKey DevOps)2018-11-16 23:24Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

I tried to delete the project with HDRL enabled for this project with the same result (exactly the same error message).

Martin
Jon (LabKey DevOps)2015-12-22 13:37Jon (LabKey DevOps)2018-11-16 23:24Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

Thanks for trying that. It was a long shot. I have made a bug on this issue for further investigation.

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=25217

In order for us to investigate this issue effectively, please supply us with the following:

1. The version of LabKey and build you're running. You can find this information by going to Admin > Site > Admin Console, then scroll down to the Module Information list in the middle of the page and click the + sign next to Core to get the details. Take a screenshot of this information.

2. On the left-hand side of the Admin Console screen, there is a link for SQL Scripts. Click that and take a screenshot of the entire page (note: This page maybe a little long, so a few screenshots will be required to get everything).

Once I get this information, I can add that to the bug.

Regards,

Jon
martin lague2015-12-23 19:39Jon (LabKey DevOps)2018-11-16 23:23Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
I've attached the screenshots.

Martin
Jon (LabKey DevOps)2015-12-24 22:49Jon (LabKey DevOps)2018-11-16 23:24Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

Thank you for providing that to us. We will investigate this further and follow up with you if we need any additional information or have any new updates.

Regards,

Jon
Jon (LabKey DevOps)2016-01-06 16:38Jon (LabKey DevOps)2018-11-16 23:24Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

Out of curiosity, can you provide me with the original link you used to obtain the version of LabKey you installed?

According to our developers, the HDRL module doesn't come with the standard distribution and requires the labware data source to be configured/available.

Regards,

Jon
martin lague2016-01-11 10:32Jon (LabKey DevOps)2018-11-16 23:23Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
The last update I did was using this link:
http://teamcity.labkey.org/guestAuth/repository/download/LabkeyRelease153_Installers/.lastSuccessful/discvr/LabKey15.3-%7Bbuild.number%7D-discvr-bin.tar.gz

I'm not sure if I had this problem before this update as I didn't report this problem when I saw it the first time. I wanted to test a few things before.

All other updates and the original setup where from copies I picked on labkey.com

Martin
Jon (LabKey DevOps)2016-01-12 19:56Jon (LabKey DevOps)2018-11-16 23:23Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

Thanks for providing that link. So the discvr version you installed definitely doesn't carry that HDRL module, so this would mean that a previous install that was done on the server with an older version of LabKey would have had that HDRL build attached to it.

I'm trying to figure out the best course of action here (e.g. backup of the database, backup of the existing files in the @files directory, then doing a fresh install of the build and then restore the files from the @files directory).

Regards,

Jon
Jon (LabKey DevOps)2016-01-13 11:58Jon (LabKey DevOps)2018-11-16 23:24Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Martin,

After discussing this issue with our developers, we feel that it's best to do a clean install/upgrade of LabKey.

Essentially, you would be doing the following:

1. Unpacking the tar.gz install file you downloaded before
2. Finding your existing labkey installation
3. Stopping Tomcat, then MOVING the LABKEY_HOME/labkeywebapp and LABKEY_HOME/modules directories to a backup folder
4. COPYING the tomcat_home/lib and tomcat_home/conf directories to the backup folder
5. Creating new LABKEY_HOME/labkeywebapp and LABKEY_HOME/modules directories that are empty (this ensures that no old modules interfere with the upgrade).
6. Accessing that unpacked tar.gz and copying the contents from its labkeywebapp and modules directories into the same named directories you made in Step 5.
7. Copy the contents of the tomcat-lib directory from the unpacked tar.gz and put that into the tomcat_home/lib directory and overwrite any existing files.
8. Restart Tomcat and check LabKey to see if the changes went through and whether the error still appears.

Note: Although technically we recommend making a fresh new labkey.xml file within the tomcat directory under tomcat-home/conf/Catalina/localhost/, I think that won't be necessary here.

Full instruction is in the article below:

https://www.labkey.org/home/Documentation/wiki-page.view?name=manupgrade

I think if you go through this clean upgrade, this should remove that error you were seeing.

Give this a try and let us know if you run into any issues or have any further questions.

Regards,

Jon
martin lague2016-01-14 10:13Jon (LabKey DevOps)2018-11-16 23:24Bad SQL grammar error when deleting projectBad SQL grammar error when deleting project TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon.

I'll do the clean upgrade and let you know if I have any issues or questions.

Martin
Leo Dashevskiy2014-08-13 14:43Leo Dashevskiy2014-08-13 14:43A weird behavior for LABKEY.ext.Store (or its parent)?A weird behavior for LABKEY.ext.Store (or its parent)? TEXT_WITH_LINKSClosed     LabKey Support Forum
I found A solution to my issue, a workaround to be more precise.

The trick is to change the SQL to:

new LABKEY.ext.Store({
 schemaName: 'study',
 sql: "Select DataSetId, Name From study.DataSets WHERE CategoryId.Label = 'Assays'",
 listeners: {
  load: function(s){ console.log(s.getCount()); },
 },
 autoLoad: true
})

Notice the inclusion of the primary key column 'DataSetId'.

In such case, all of the rows are retrieved successfully!

This still does not explain the discrepancy in the original case between how Ext3's Labkey store behaves incorrectly for this particular SQL statement, whereas executeSql() API and the Query UI in the schema browser work just fine...
Leo Dashevskiy2014-08-13 14:45Leo Dashevskiy2014-08-13 14:45A weird behavior for LABKEY.ext.Store (or its parent)?A weird behavior for LABKEY.ext.Store (or its parent)? TEXT_WITH_LINKSClosed     LabKey Support Forum
This is too funny: our posts are ZERO minutes apart (though, I was first ;) ) with exactly the same conclusion (I stumbled upon it by accident, though)
Greg Taylor2014-08-07 15:56Jon (LabKey DevOps)2018-11-16 23:24A weird behavior for LABKEY.ext.Store (or its parent)?A weird behavior for LABKEY.ext.Store (or its parent)? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

When I run the script using LABKEY.ext4.Store on my development system running 14.3 trunk I do not see a discrepancy in the demo study that I am working with. The script reports 6 entries for the first statement and 6 entries for the last. When I run the script using LABKEY.ext.Store I see the discrepancy that you previously observed (responses of 6 and 1).

After investigating further, it appears that you want to log 's.getTotalCount()' instead of 's.getCount()' for the case where you are using ext3. Switching to ext4 is also recommended.

Greg

Below is the ext3 documentation on getCount()

getCount( ) : Number
Gets the number of cached records.

If using paging, this may not be the total size of the dataset. If the data object used by the Reader contains the dataset size, then the getTotalCount function returns the dataset size. Note: see the Important note in load.

Available since: 1.1.0


SAMPLE SCRIPT
<script type="text/javascript">

new LABKEY.ext4.Store({
 schemaName: 'study',
 sql: "Select Name From study.DataSets WHERE CategoryId.Label = 'Assays'",
 listeners: {
  load: function(s){ console.log(s.getCount()); },
 },
 autoLoad: true
})

LABKEY.Query.executeSql({
 schemaName: 'study',
 sql: "Select Name From study.DataSets WHERE CategoryId.Label = 'Assays'",
 success: function(d){ console.log(d.rows.length); }
})

</script>
Leo Dashevskiy2014-08-07 17:05Jon (LabKey DevOps)2018-11-16 23:23A weird behavior for LABKEY.ext.Store (or its parent)?A weird behavior for LABKEY.ext.Store (or its parent)? TEXT_WITH_LINKSClosed     LabKey Support Forum
Greg! Thanks for looking into this.

Ok, so I knew about the getCount() vs getTotalCount().

But that does not solve my issue.

I chose getCount(), because it show the length of the available/returned data and it's the data I'm after:

getCount
function (){
        return this.data.length || 0;
    }

In my example above change

the first console output to: s.data

and

the second console output to: d.rows


Now, how can I force for the entire data set to load, not just 'a page made up of one element'?!

Switching to from Ext3 to Ext4 might not be an option at this time either...

I don't understand what the exact underlying issue is, since other usage cases work fine for me.
Leo Dashevskiy2014-08-13 12:16Jon (LabKey DevOps)2018-11-16 23:23A weird behavior for LABKEY.ext.Store (or its parent)?A weird behavior for LABKEY.ext.Store (or its parent)? TEXT_WITH_LINKSClosed     LabKey Support Forum
So guys any other ideas, why Ext3's store is acting this way?
And if there is a way to force it to fetch all of the rows.
The peculiarity must be due somehow to the query being used...
Matthew Bellew2014-08-13 14:43Jon (LabKey DevOps)2018-11-16 23:23A weird behavior for LABKEY.ext.Store (or its parent)?A weird behavior for LABKEY.ext.Store (or its parent)? TEXT_WITH_LINKSClosed     LabKey Support Forum
Nick narrowed this down. This is caused by a bug in reporting the primary key columns of the query. Really there isn't a primery key but the store thinks there is and all the records get written on top of each other. I need to investigate further, but I believe there is a simple work around. If you select datasetid I believe everything will work.

So try either

SELECT * FROM study.DataSets ...

or

SELECT Name, DataSetId FROM study.DataSets ...
Jon (LabKey DevOps)2015-08-26 12:01Jon (LabKey DevOps)2018-11-16 23:24A way to automatically upload a folder structure zip fileA way to automatically upload a folder structure zip file TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

Although we have some automation with the Pipeline, I'm not finding anything to indicate that a Pipeline Job could take a zip file of a folder structure, then create a new folder or project, then import that zip file in. I'm still digging into this to be sure though.

Can you provide us with more information as to what you're trying to do here?

What is the purpose of having to have a new folder get auto-created? What type of data is the folder supposed to contain? Study Data? Assay Data? Collaborative Data? Where is the source information coming from (for an import to happen, there would have to be some kind of export to make this zip file)?

The more we can understand the workflow, we can find the best solution for your needs.

Regards,

Jon
alx dobre2015-08-27 02:07Jon (LabKey DevOps)2018-11-16 23:24A way to automatically upload a folder structure zip fileA way to automatically upload a folder structure zip file TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Jon,

Thank you for looking into this in such detail. Much appreciated :)

The folders types we have are all Collaboration.

The overall goal I am trying to achieve is automated build and deployment for our LabKey configuration. The configuration itself was done manually via the UI thus far and we need to change this as managing changes between DEV, TEST, UAT and LIVE environments gets very difficult when you're copy pasting queries and manually doing folder config.

Automated build means that I will have the folders, queries, assays (xar files?), html wiki pages inside source control (git) and I will craft a maven script to build a zip file.
Automated deploy means - I will do either a shell script, a java tool, a web service call or any combination to get that zip file deployed into LabKey.

I am experimenting on how to do all this and I am looking at two avenues. The folder import/export mechanism and the custom module mechanism.

Please note that we already have a custom module that we build and deploy automatically.

Here are my pain points with each avenue:

Folder import/export:
- cannot automatically import a folder (the issue I am asking about in this thread)
- cannot export a folder with identical query names in different schemas (asked in a separate thread -> issue was fixed in 15.1 we are using 14.3 )
- cannot export a folder with linked schemas if a query depends on said schema (under investigation in another thread -> https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=11366)
- cannot rename queries by re uploading a folder (discussed and confirmed in another thread -> https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=11386)

Custom module:
- cannot specify a folder structure inside one module - a module is added to a folder via it's folder type - we have many folders and doing a module for each would be unwieldy
- I do not know how to specify linked schemas in a module as this seems to be a specific type of config for a folder

Our configuration that we are trying to automate looks like this:

- a bunch of folders with queries in them
- lots of linked schemas as in most queries depend on linked schemas
- a number of query web parts
- a number of wiki web parts - HTML + Javascript
- a folder with assays in it (all our linked schemas refer these assays by the way)

Regarding assays. I was looking at the assay custom module that could potentially replace our assay folder and also get added in all the other folders that need them thereby replacing all the linked schemas with a folder type reference (the export of which works as I have tested). There is one major problem with that approach. The folder with assays we have in place is populated with a lot of data, especially live data that I do not know how to migrate ... or even if a migration is necessary. So as a tangent question -> can I replace my assay folder with an assay custom module and transfer the data over?

The ideal goal is to be able to do with lab key elements as we do with code source control -> build -> deploy. However depending on the technical limitations we may need to live with some manual steps.

Once again thank you for looking into this.
alx dobre2015-08-28 07:18Jon (LabKey DevOps)2018-11-16 23:24A way to automatically upload a folder structure zip fileA way to automatically upload a folder structure zip file TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Jon,

Any update on the above please?

I am getting close to having all the pieces I need for automation. After upgrading to 15.2 I can now export queries with the same name, I have a work around for linked schemas.

All that remains is automatic deploy (upload of a folder zip file).

I was looking around the lk server file system and I noticed that my uploaded file lands in an actual folder on the server side:
/usr/local/labkey/files/test_project/ext_sch_upload/@files/unzip

I'm wondering what would happen if I stopped the server, copied over files to that folder and then started the server? Is that a way to deploy?
Ben Bimber2015-08-28 07:34Jon (LabKey DevOps)2018-11-16 23:24A way to automatically upload a folder structure zip fileA way to automatically upload a folder structure zip file TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Alex,

This is not really an official solution, but we have used curl in a script to hit the folder import action:

curl -c myCookie.txt -u ${USERNAME} "${HOST}/login/${CONTAINER_PATH}/login.view"
TOKEN=`cat myCookie.txt | grep 'X-LABKEY-CSRF' | cut -f 7`

curl -b myCookie.txt --form X-LABKEY-CSRF=${TOKEN} --form folderZip="@${FILE}" --form tabId=import "${HOST}/admin/${CONTAINER_PATH}/folderManagement.view"
rm myCookie.txt

As noted, this isnt a public LK API, so I presume subject to change without notice. It will let you script folder import though.
alx dobre2015-08-28 08:09Jon (LabKey DevOps)2018-11-16 23:24A way to automatically upload a folder structure zip fileA way to automatically upload a folder structure zip file TEXT_WITH_LINKSClosed     LabKey Support Forum
That will do. I was thinking of drafting some sort of HTTP requests and this is exactly what I need.

Thank you.
alx dobre2015-09-01 07:11Jon (LabKey DevOps)2018-11-16 23:24A way to automatically upload a folder structure zip fileA way to automatically upload a folder structure zip file TEXT_WITH_LINKSClosed     LabKey Support Forum
I would like to confirm that I am able to automatically upload the folder zip file using the above script.

Very happy with it :)
gkericks2017-04-19 13:45Jon (LabKey DevOps)2018-11-16 23:24A way to automatically upload a folder structure zip fileA way to automatically upload a folder structure zip file TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

I'm trying to use this solution (but with pycurl in Python). I am encountering a bit of difficulty and have a couple of quick questions:

1) Does anyone know if this solution still works in 16.2?

2) How is the argument to folderZip referenced? What I am asking is how the file path should be written? (I have Labkey on a windows server - do I use windows style file paths? What are they relative to? What is the root directory?

If anyone knows any of these answers I will be very grateful!
Jon (LabKey DevOps)2017-04-26 13:41Jon (LabKey DevOps)2018-11-16 23:24A way to automatically upload a folder structure zip fileA way to automatically upload a folder structure zip file TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,

Our default URL patterns did change from 15.X to 16.X (https://www.labkey.org/Documentation/wiki-page.view?name=url), so technically this should still work provided the actual API that Ben mentioned is still constructed to work in this fashion. But again, since this is not a public API, this is something that isn't officially supported.

Regarding the folderZip="@${FILE}" part, the @ sign is apart of cURL, telling curl to read the file. The ${FILE} part indicates that it's a variable that is in this case pointing to an actual file.

If you were to hardcode the file path, since you would be using @/path/to/file for the format, you should be using something like:

folderZip="@C:\path\to\file"

Regards,

Jon
Leo Dashevskiy2016-10-14 11:47Leo Dashevskiy2016-10-14 11:47A variable of a dataregion associated with a QueryWebPart is not set properlyA variable of a dataregion associated with a QueryWebPart is not set properly TEXT_WITH_LINKSClosed     LabKey Support Forum
Great news, thank you! Jon, can you just let me know, please, what is the revision number where it became available?
Will Holtz2016-03-02 14:08Jon (LabKey DevOps)2018-11-16 23:24A variable of a dataregion associated with a QueryWebPart is not set properlyA variable of a dataregion associated with a QueryWebPart is not set properly TEXT_WITH_LINKSClosed     LabKey Support Forum
Is this any better?
var numRows = dataRegion.table.dom.rows.length-4;

The -4 is for header rows. If you have the button bar turned off, or top and bottom button bars, then you may require a different constant here.

-Will
Leo Dashevskiy2016-03-02 15:50Jon (LabKey DevOps)2018-11-16 23:24A variable of a dataregion associated with a QueryWebPart is not set properlyA variable of a dataregion associated with a QueryWebPart is not set properly TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Will!

I does help a bit, though, in the case, where the numeric value is selected for pagination, it will produce the number of rows on the current page (just like dataregion.rowCount) and not the total number of rows in the table (like dataregion.totalRows), so some if-else statements are needed.

I don't understand, why the "totalRows" value is not assigned correctly for the non-paginated case...
Leo Dashevskiy2016-07-29 11:05Jon (LabKey DevOps)2018-11-16 23:24A variable of a dataregion associated with a QueryWebPart is not set properlyA variable of a dataregion associated with a QueryWebPart is not set properly TEXT_WITH_LINKSClosed     LabKey Support Forum
So shouldn't "totalRows" of a DataRegion be set correctly in all possible situations, including "Show All" rows setting?

Can you guys fix this? Unless there are objections...

Thanks.
-Leo
Jon (LabKey DevOps)2016-08-02 14:03Jon (LabKey DevOps)2018-11-16 23:24A variable of a dataregion associated with a QueryWebPart is not set properlyA variable of a dataregion associated with a QueryWebPart is not set properly TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

I'll get a bug submitted. It really should include totalRows.

Regards,

Jon
Jon (LabKey DevOps)2016-08-02 14:37Jon (LabKey DevOps)2018-11-16 23:23A variable of a dataregion associated with a QueryWebPart is not set properlyA variable of a dataregion associated with a QueryWebPart is not set properly TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2016-10-14 00:11Jon (LabKey DevOps)2016-10-14 00:11A variable of a dataregion associated with a QueryWebPart is not set properlyA variable of a dataregion associated with a QueryWebPart is not set properly TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello Leo,

The bug has been fixed in the 16.3 release of LabKey which will be available sometime mid-November.

Regards,

Jon
Jon (LabKey DevOps)2016-10-14 11:59Jon (LabKey DevOps)2016-10-14 11:59A variable of a dataregion associated with a QueryWebPart is not set properlyA variable of a dataregion associated with a QueryWebPart is not set properly TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

It's under r46023

Regards,

Jon
kevink2010-06-04 09:32Jon (LabKey DevOps)2018-11-16 23:24Automatic cohort assignment not working?Automatic cohort assignment not working? TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2018-05-18 14:15Jon (LabKey DevOps)2018-11-16 23:24Automatic Assay ImportsAutomatic Assay Imports TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sara,

Have you considered using the pipeline module or creating your own pipeline module to incorporate automating your data uploads to your assay?

Data Processing Pipeline - https://www.labkey.org/Documentation/wiki-page.view?name=pipeline

Script Pipeline: Running R and Other Scripts in Sequence - https://www.labkey.org/Documentation/wiki-page.view?name=rPipeline

Regards,

Jon
laurapas2016-01-29 12:01laurapas2016-01-29 12:01Automatically populate a blank listAutomatically populate a blank list TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank You! I tried it and works fine. It's what we need.
adam2016-01-29 11:50Jon (LabKey DevOps)2018-11-16 23:24Automatically populate a blank listAutomatically populate a blank list TEXT_WITH_LINKSClosed     LabKey Support Forum
One option is to create a folder "template"... a folder anywhere on your site that you preset to the standard folder type, empty lists, webparts, and other objects you want. When you create a new folder, select the "folder template" option instead of a folder type, and select your folder template. The folder will be created and automatically populated with the present folder type, lists, etc.

Adam
Jon (LabKey DevOps)2017-04-25 11:44Jon (LabKey DevOps)2018-11-16 23:23Automatically importing a study with lists and reportsAutomatically importing a study with lists and reports TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Have you tried to do a Folder Reload rather than a Study Reload?

If you re-import the folder into the same place, it will overwrite everything, from the study to the lists and even the reports.

Regards,

Jon
gkericks2017-04-25 12:33Jon (LabKey DevOps)2018-11-16 23:24Automatically importing a study with lists and reportsAutomatically importing a study with lists and reports TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Is the "Folder Reload" something I can automate? I did not see something like that in the docs. Thanks.
Jon (LabKey DevOps)2017-04-26 17:35Jon (LabKey DevOps)2017-04-26 17:35Automatically importing a study with lists and reportsAutomatically importing a study with lists and reports TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

I've updated the thread you were responding to:

https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=11385

Regards,

Jon
gkericks2017-04-28 12:46gkericks2017-04-28 12:46Automatically importing a study with lists and reportsAutomatically importing a study with lists and reports TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Jon,

I managed to figure it out from those instructions. For anyone curious, the part that threw me off is that the syntax is slightly different in pycurl. You need a line like the following:

curl_client.setopt(pycurl.HTTPPOST, [("folderZip", (pycurl.FORM_FILE, "C:\\Path\to\file"))])

So this method appears to work now. I still have some concerns about whether or not this is the best approach for my use case. We will have a separate team of people setting up projects that they are using for sharing files and wiki pages. They will be managing user access rights, creating new users etc. On the same labkey deployment we would like to have data from the external service I mention in my first post "streaming" in to labkey. I am planning on having this happen nightly and will use the folder reload solution to facilitate this (unless a better and officially supported option emerges). So does this seems like an okay route to go down considering what we are trying to achieve? Any feedback would be much appreciated and I am happy to answer an questions if you need more details.

Thanks
Jon (LabKey DevOps)2017-09-19 13:31Jon (LabKey DevOps)2018-11-16 23:24Automatically generating sequence number values for specimensAutomatically generating sequence number values for specimens TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Steve,

At this time, there is no feature to automatically generate the sequence num value with the current specimen repository.

Although LabKey is intended to batch sync to external LIMS systems (thereby negating the need to do any kind of automatic incremental specimen additions), it is something that has been considered for a future release.

Regards,

Jon
jeckels2011-09-20 09:54Jon (LabKey DevOps)2018-11-16 23:24automatically configure project resource in intellij?automatically configure project resource in intellij? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Unfortunately, IntelliJ stores the paths for these files under your home directory, not as part of the project/module configuration. The file is <USER_HOME>/.IntelliJIdea90/config/options/other.xml, or its equivalent in different IntelliJ versions.

What I typically do is have the trunk checked out into C:\labkey. I point the resources at that directory. I'll check out the branches as C:\labkey11.1. C:\labkey11.2, etc. I end up with all of the different versions pointing at the same version of the XSD files, but it's typically close enough to make it all work well.

Thanks,
Josh
jeckels2012-05-11 16:29Jon (LabKey DevOps)2018-11-16 23:24Audit log in 12.1Audit log in 12.1 TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

Sorry for the delayed response, and thanks for your bug report. I reproduced the behavior locally without any trouble and have opened a bug:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=14894

Thanks,
Josh
marcia hon2019-04-12 07:48marcia hon2019-04-12 07:48Auditing Custom TablesAuditing Custom Tables TEXT_WITH_LINKSActive     LabKey Support Forum
Hello Jon,

Thank you.

However, when I got to Admin Console -> Audit Log, I do not see where the details of changes are recorded.

Please let me know where to take a look.

Thanks,
Marcia
marcia hon2019-04-26 10:21marcia hon2019-04-26 10:21Auditing Custom TablesAuditing Custom Tables TEXT_WITH_LINKSActive     LabKey Support Forum
I went to "Query Update Events" and nothing is there.
Jon (LabKey DevOps)2019-04-11 12:05Jon (LabKey DevOps)2019-04-11 12:05Auditing Custom TablesAuditing Custom Tables TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Yes, you would need to enable this in your XML that is tied to that schema and tables.

Please see the following for more details:

https://www.labkey.org/Documentation/wiki-page.view?name=queryMetaExamples#audit
https://www.labkey.org/download/schema-docs/xml-schemas/schemas/tableInfo_xsd/elements/auditLogging.html

Regards,

Jon
Jon (LabKey DevOps)2019-04-26 10:19Jon (LabKey DevOps)2019-04-26 10:19Auditing Custom TablesAuditing Custom Tables TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

This information would typically appear under the Query update events as described in our documentation here:

https://www.labkey.org/Documentation/wiki-page.view?name=audits

Regards,

Jon
Jon (LabKey DevOps)2019-04-26 10:40Jon (LabKey DevOps)2019-04-26 10:40Auditing Custom TablesAuditing Custom Tables TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Thank you for using the LabKey Discussion forums. The forums are intended for Community Edition and Premium Edition users to exchange ideas, questions, and solutions. LabKey personnel mediate the forums and curate our extensive documentation. While we often respond to forum posts, responses to technical questions in addition to in-depth developer support are reserved for our Premium Edition partners. We are eager to help you be successful - we recommend you explore our online documentation at https://www.labkey.org/documentation, and invite you to contact us about expert support and premium features. A detailed overview of our Editions can be found here https://www.labkey.com/platform/labkey-server-editions-feature-comparison

Regards,

Jon
marcia hon2018-09-26 10:26marcia hon2018-09-26 10:26Audit - GranularityAudit - Granularity TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Jon.

I have another related question.

I have created a custom table. How do I enable auditing for this custom table?

I tried <auditlogging>DETAILED</auditlogging> . It does not work at all.

I look forward to your expertise.

Thanks,
Marcia
Jon (LabKey DevOps)2018-09-26 10:22Jon (LabKey DevOps)2018-09-26 10:22Audit - GranularityAudit - Granularity TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Marcia,

Some of the AuditLogs have extra columns to show "Old Record Values", "New Record Values", and "Data Changes". These should allow you to see what records were there before and after a change, which includes inserts, changes, and deletes.

To enable these fields, access your Audit Log under the Admin Console, select the specific type of Audit Log you want to look at, then click the Grid button to look at the available fields. If that specific Audit Log has those fields mentioned earlier, you should be able to enable them in your view and see the information you want.

Regards,

Jon
Ben Bimber2010-06-22 14:46Jon (LabKey DevOps)2018-11-16 23:23Attempt to copy folder from one project to another resulted in data lossAttempt to copy folder from one project to another resulted in data loss TEXT_WITH_LINKSClosed     LabKey Support Forum
for what it's worth, we get this error when trying to delete the problem lists:

500: Unexpected server error
Domain Not Found: urn:lsid:primate.wisc.edu:List.Folder-138:agAlleles
Ben Bimber2010-06-22 15:42Jon (LabKey DevOps)2018-11-16 23:24Attempt to copy folder from one project to another resulted in data lossAttempt to copy folder from one project to another resulted in data loss TEXT_WITH_LINKSClosed     LabKey Support Forum
thanks to josh i think this is sorted out for now.
Jon (LabKey DevOps)2019-03-21 16:21Jon (LabKey DevOps)2019-03-21 16:21Assign group permissions via js apiAssign group permissions via js api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Our SecurityPolicy endpoint should take care of your needs here.

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.SecurityPolicy.html

Per the documentation:
=====================
Class LABKEY.SecurityPolicy

Represents a security policy for a particular securable resource on the server. In general, you should obtain an instance of this class from the LABKEY.Security.getPolicy() method. You may use the methods of this class to alter the policy and save it back to the server using the LABKEY.Security.savePolicy() method.

The following definitions should be helpful in understanding the methods of this class:

Principal: A user principal, which can be either a user or a group. Users and groups are both user principals, and in a security policy, a user principal is assigned to a given role.

Role: A role grants a specific set of permissions. For example, the 'Reader' role grants the read permission. Roles are identified by unique names (usually a fully-qualified Java class name). A full set of roles is obtainable from the LABKEY.Security.getRoles() method.

Direct vs Effective Assignment: In a policy, principals are assigned to one or more roles. However, because a principal might be a group, the users that belong to that group are effectively in whatever role the group is assigned to. In this situation, the user is 'effectively' assigned to the role, while the group is 'directly' assigned to the role. Asking for a user's effective roles will return all roles the user is directly assigned to plus all roles the groups the user belongs to are assigned to.
=====================

Leveraging this API endpoint should give you the necessary control to figure out the ID numbers for those groups, the roles assigned to those groups, the users assigned to those groups, and updating the roles for those groups as needed.

Regards,

Jon
WayneH2019-03-26 11:04Jon (LabKey DevOps)2019-04-17 16:06Assign group permissions via js apiAssign group permissions via js api TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

thanks for your response.. Just one follow up to this inquiry.
Where do we find information about the 'config' object that is used in the api call..?

Thanks,
Wayne
Jon (LabKey DevOps)2019-05-13 15:20Jon (LabKey DevOps)2019-05-13 15:20Assign and manage folder permissions for containers..Assign and manage folder permissions for containers.. TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Thank you for using the LabKey Discussion forums. The forums are intended for Community Edition and Premium Edition users to exchange ideas, questions, and solutions. LabKey personnel mediate the forums and curate our extensive documentation. While we often respond to forum posts, responses to technical questions in addition to in-depth developer support are reserved for our Premium Edition partners. We are eager to help you be successful - we recommend you explore our online documentation at https://www.labkey.org/documentation, and invite you to contact us about expert support and premium features. A detailed overview of our Editions can be found here https://www.labkey.com/platform/labkey-server-editions-feature-comparison

Regards,

Jon
WayneH2019-05-19 20:09Bernie2019-05-20 10:34Assign and manage folder permissions for containers..Assign and manage folder permissions for containers.. TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for your response jon..
I understand that..
Appreciate you and everyone in this forum.

thanks ..

Wayne H
jeckels2012-05-09 14:10Jon (LabKey DevOps)2018-11-16 23:23AssertionFailedError when running DRTAssertionFailedError when running DRT TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Andy,

Yes, this is referring to the Tomcat VM. If you're using catalina.sh/startup.sh to start the server, I'd expect that adding -ea to CATALINA_OPTS would be what's needed so I'm surprised that didn't work for you.

Instead of launching the test suite, you can also check to see if the -ea flag got picked up in the Admin Console. Under the "Runtime Information" header, check the value of "Asserts". It will say "enabled" if the server received the -ea flag.

Thanks,
Josh
Andy Straw2012-05-10 12:28Jon (LabKey DevOps)2018-11-16 23:23AssertionFailedError when running DRTAssertionFailedError when running DRT TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the pointer to the Admin console info. I got past the "assertions not enabled" problem - was my bad (I had set CATALINA_OPTS in my .cshrc, but had not re-sourced that file from the shell where I was starting tomcat. And in catalina.sh, I had set -ea in the wrong Java command - I didn't notice there were several).

I ran into several other problems getting DRT to pass, but was able to use the assertion failure message and/or look at the stacktrace and source to figure out how to fix them. (had to set -DdevMode=true; modified source of BasicTest.java to allow Firefox/12, since that's what I'm running; had to configure site's Base Server URL to http://localhost:8080 - I had set it to http://<myhostname>.<mydomainName>:8080; had installed R, but had failed to configure it in LabKey).

I've now hit a failed assertion I'm not sure how to fix. But first, a question about running this suite of tests:

When I got this test failure, I notice that some test data that had been created didn't get cleaned up. For example, I see a couple of site users, a couple of site groups, a whole Study project and study folder with a bunch of data sets. Should I delete all these before re-running the tests, or does the test clean up before it re-runs?

Below is the failure I'm getting now (my instance is built from 12.1 source). Please advise. Thanks.

Andy Straw
University of Rochester

14:48:47,835 =============== Completed StudyTest (5 of 5) =================



testSteps(org.labkey.test.tests.StudyTest)

junit.framework.AssertionFailedError: Text 'AE-1:(VTN) AE Log' was not present 0 times. It was present 27 times

    at org.labkey.test.BaseSeleniumWebTest.assertTextPresent(BaseSeleniumWebTest.java:2491)

    at org.labkey.test.BaseSeleniumWebTest.assertTextPresent(BaseSeleniumWebTest.java:2473)

    at org.labkey.test.tests.StudyTest.verifyParticipantReports(StudyTest.java:145)

    at org.labkey.test.tests.StudyTest.doVerifySteps(StudyTest.java:109)

    at org.labkey.test.tests.StudyBaseTest.runUITests(StudyBaseTest.java:99)

    at org.labkey.test.tests.SimpleApiTest.doTestSteps(SimpleApiTest.java:77)

    at org.labkey.test.BaseSeleniumWebTest.testSteps(BaseSeleniumWebTest.java:1195)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)

    at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)

    at org.labkey.test.Runner.runTest(Runner.java:269)

    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)

    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1060)

    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:911)



======================= Time Report ========================

BasicTest passed - 1:11 11%

SecurityTest passed - 2:15 20%

FlowTest passed - 3:17 29%

XTandemTest passed - 2:05 18%

StudyTest ERROR - 2:29 22%

------------------------------------------------------------

Total duration: 11:20
adam2012-05-10 12:51Jon (LabKey DevOps)2018-11-16 23:23AssertionFailedError when running DRTAssertionFailedError when running DRT TEXT_WITH_LINKSClosed     LabKey Support Forum
You don't need to clean up after the tests. Every successful test cleans up what it creates, but unsuccessful tests (e.g., your study test) don't, to give us the ability to easily reproduce and investigate the problem. However, the first step of every test is to attempt to delete previously left artifacts.

I see this study failure myself when I run the tests, though the test runs fine on TeamCity and other developers' machines. It appears to be a timing issue with ExtJS quick filtering, perhaps related to recent Firefox releases. We will address this on the trunk soon, but of course you're welcome to investigate and propose a test fix if you want.

FYI: I enabled support for Firefox 12.0 on the trunk a few days ago.
Andy Straw2012-05-11 06:25Jon (LabKey DevOps)2018-11-16 23:24AssertionFailedError when running DRTAssertionFailedError when running DRT TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks. I commented out the assertion that was failing, and now the whole DRT completes successfully. The test study and its project are cleaned up, but two site users and two site groups are left hanging around. I deleted them manually.

Andy
eknelson2009-05-12 18:29Jon (LabKey DevOps)2018-11-16 23:24Assays and Simple ModulesAssays and Simple Modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Dave,

For the first part of your question: I just updated the doc page for module-based assays with the following:

"Until the documentation is complete, you may find the specification (http://docs.google.com/Doc?id=ddg8fts2_83qmgvh6gq) for this feature helpful. Please note that the specification may not be fully updated to match the final implementation."

I'm still catching up on documenting 9.1 features, so it will be a while longer before the doc page is complete.

Thanks,

Elizabeth
marki2009-05-12 23:16Jon (LabKey DevOps)2018-11-16 23:24Assays and Simple ModulesAssays and Simple Modules TEXT_WITH_LINKSClosed     LabKey Support Forum
As a temporary measure I have attached the overview spec of the general module framework written by Dave Stearns. He writes very clearly but this may not be perfectly up to date.

In terms of querying data you'll want to start with the LabKey Javascript API page here:

https://www.labkey.org/wiki/home/Documentation/page.view?name=javascriptAPIs

and end up on the specific selectRows API call here:

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html#selectRows

Here's the simplest example of how to create a select box using HTML and script. In this example there's a list in the current folder called Reagents with fields ReagentRowId and ReagentName. Note that it's not yet possible to initialize a list with data from a file based module, though you can use SQL to create tables that are available for queries.

<select id="myDropDown"></select>
<script>
LABKEY.requiresClientAPI();
</script>
<script>
LABKEY.Query.selectRows({schemaName:"lists", queryName:"Reagents",
successCallback:populateDropDown});

function populateDropDown(data)
{
  for (var i = 0; i < data.rows.length; i++)
  {
    var row = data.rows[i];
    var opt = document.createElement("option");
    opt.value = row.ReagentRowId;
    opt.text = row.ReagentName;
    document.getElementById("myDropDown").options.add(opt);
  }
}
</script>

Note that the queried data is returned *asynchronously* and passed to the successCallback function. The populateDropDown function will be called sometime after selectRows is called (generally quickly, but you can't assume the drop-down is populated until you the successCallback function has been called).
dho@mac.com2009-05-13 05:01Jon (LabKey DevOps)2018-11-16 23:23Assays and Simple ModulesAssays and Simple Modules TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Mark and Elizabeth for your prompt responses!

dave
kevink2011-02-25 09:36Jon (LabKey DevOps)2018-11-16 23:24assays and .query.xml filesassays and .query.xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
No, only the query metadata files will be supported for 11.1.
Ben Bimber2011-02-25 09:40Jon (LabKey DevOps)2018-11-16 23:24assays and .query.xml filesassays and .query.xml files TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, thanks. views would have been nice, but are by no means required.
Ben Bimber2015-10-29 15:15Jon (LabKey DevOps)2018-11-16 23:24Assay Design created from Assay ModuleAssay Design created from Assay Module TEXT_WITH_LINKSClosed     LabKey Support Forum
hi cheryl,

we have experienced the same issue. to the best of my knowledge there are no features in the core that handle this. i ended up writing something to deal with this if you want to try. an admin action that will compare the fields present in all instances of file-based assays against their XML definitions. it gives you the option to add missing fields, and change datatype. it does the later by renaming the existing field and adding a new one with the right datatype.

if you're interested, you will need to install the laboratory module, which is part of DISCVR (https://github.com/bbimber/discvr). these modules are designed for other purposes, but they include a number of admin helpers along these lines. once installed, go to the admin console, pick DISCVR Admin, then 'Synchronize Assay Fields'. this is tested code that we've used on many servers; however, it reaches around normal LabKey UI, so please backup your DB first and understand that this is at your own risk.

-ben
jeckels2015-10-31 12:19Jon (LabKey DevOps)2018-11-16 23:24Assay Design created from Assay ModuleAssay Design created from Assay Module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cheryl,

As you observed and Ben confirmed, the XML file with the field definition is used as a template when a new assay design is created. Later changes to the XML file do not change the existing assay designs.

Without using a custom module like Ben described, to change the property type, I think you would need to:

1. Temporarily remove the field from the XML file.
2. Rename or delete the existing field.
3. Create a new field of the desired type.
4. Re-introduce the field from the XML file with the desired type.

Without #1, as you've probably seen, the server won't let you edit or remove the existing field.

Thanks,
Josh
Leo Dashevskiy2014-11-11 13:53Leo Dashevskiy2014-11-11 13:53A quick question about the difference between the LABKEY.user.isAdmin and LABKEY.user.isSystemAdminA quick question about the difference between the LABKEY.user.isAdmin and LABKEY.user.isSystemAdmin TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks, Josh!
jeckels2014-11-11 12:48Jon (LabKey DevOps)2018-11-16 23:24A quick question about the difference between the LABKEY.user.isAdmin and LABKEY.user.isSystemAdminA quick question about the difference between the LABKEY.user.isAdmin and LABKEY.user.isSystemAdmin TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Site admins have permission across the entire server. There are some actions that can only be performed by site admins, like creating projects, changing which paths on the underlying file system are exposed, and so forth.

Admins have permission to do administration within a more targeted scope, like a particular project or folder. They can do things like add users, assign permissions, create assay designs, create subfolders, and more.

Thanks,
Josh
jeckels2013-02-19 14:58Jon (LabKey DevOps)2018-11-16 23:24API TimeoutAPI Timeout TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

The Java client API defaults to a 60 second timeout. Have you explicitly set another timeout (like 0) on the Command object using setTimeout()? The argument is in milliseconds.

Thanks,
Josh
jdutra2013-02-20 09:09Jon (LabKey DevOps)2018-11-16 23:23API TimeoutAPI Timeout TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the quick response Josh. That fixes it. I don't know how I missed the setTimeout() option.
jdutra2013-02-20 10:25Jon (LabKey DevOps)2018-11-16 23:24API TimeoutAPI Timeout TEXT_WITH_LINKSClosed     LabKey Support Forum
Sorry, I realized I have one other question. Is that timeout setting exposed somewhere in the SAS or R API? If so, how can we change it there?

Thanks again,
Jen
cnathe2013-02-21 12:35Jon (LabKey DevOps)2018-11-16 23:24API TimeoutAPI Timeout TEXT_WITH_LINKSClosed     LabKey Support Forum
Jen,
I'm not sure about the SAS API, but there isn't a direct timeout that our R API supports at this time.
-Cory
Jon (LabKey DevOps)2018-03-30 15:09Jon (LabKey DevOps)2018-11-16 23:24API insertRows to add samples fails with error 'Name expression required'API insertRows to add samples fails with error 'Name expression required' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

"Name Expression" can be found in the Edit Set area of the Sample Set. You should be able to use "Name" though.

Just curious, have you tried to see if you can insert in a single row via a data.frame? So rather than using the selectRows call and putting that in the insertRows, you try to insert a single row instead?

Regards,

Jon
Jon (LabKey DevOps)2018-04-08 00:14Jon (LabKey DevOps)2018-11-16 23:24API insertRows to add samples fails with error 'Name expression required'API insertRows to add samples fails with error 'Name expression required' TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Upon further examination, I realized I was working in standard Sample Sets, not specifically the Sample Set that gets created in tandem with a standard specimen repository in a Study.

It does appear that we do not allow for this action by design.

Have you tried to just create your own Sample Set instead of trying to use the one tied to the Specimen Repository?

https://www.labkey.org/Documentation/wiki-page.view?name=studySamples

Regards,

Jon
Leo Dashevskiy2014-07-31 18:22Leo Dashevskiy2014-07-31 18:22API and other questionsAPI and other questions TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks Greg!

I think, I will attempt to use some of these actions to automate some of our tasks, but we also hopefully came up with an alternative approach to organizing our layout with custom modules.
Greg Taylor2014-07-31 16:27Jon (LabKey DevOps)2018-11-16 23:23API and other questionsAPI and other questions TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

You are free to use and manipulate LabKey's actions however be aware that these actions are not part of our API and therefore are subject to change in subsequent versions. If you would like us to prioritize development of the 'addTab' function and include it as part of the public API (it looks close), let us know.

Greg
adam2014-11-09 10:05Jon (LabKey DevOps)2018-11-16 23:24ApiAction Bind ExceptionApiAction Bind Exception TEXT_WITH_LINKSClosed     LabKey Support Forum
In your form, what type is "confirmationNumber"? I.e., what does getConfirmationNumber() return and setConfirmationNumber() take? If you're posting blank values then I believe these will need to be nullable... Integer or Long, as opposed to int or long.

Adam
bront@kcr.uky.edu2014-11-10 07:57Jon (LabKey DevOps)2018-11-16 23:23ApiAction Bind ExceptionApiAction Bind Exception TEXT_WITH_LINKSClosed     LabKey Support Forum
Adam,

That's it. Couldn't see it yesterday…

Many thanks,

b
bront@kcr.uky.edu2014-11-10 07:57bront@kcr.uky.edu2014-11-10 07:57ApiAction Bind ExceptionApiAction Bind Exception TEXT_WITH_LINKSClosed     LabKey Support Forum 
jeckels2010-04-20 16:17Jon (LabKey DevOps)2018-11-16 23:23any way to store a 10,000 character string in a list?any way to store a 10,000 character string in a list? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

Unfortunately no, string values in lists, datasets, and GPAT or file-based assays are currently limited to 4000 characters.

Thanks,
Josh
Brian Connolly2010-08-26 17:06Jon (LabKey DevOps)2018-11-16 23:24anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I want to make sure I understand what you are trying to do. You are trying to write an R script which will be run on your server (xnight.primate.wisc.edu). This script which will load the RLabkey package and will then query the LabKey server using the R API.

The RLabkey package does work with LabKey servers running SSL and is currently in use with a number of SSL servers.

The error message "Couldn't resolve host 'xnight.primate.wisc.edu'" is interesting. This usually means that R could not resolve an IP address for the name xnight.primate.wisc.edu. If you log onto the server xnight and run

   curl https://xnight.primate.wisc.edu:8443/labkey

do you get a response from the server?

Thank you,

Brian Connolly
Ben Bimber2010-08-26 17:39Jon (LabKey DevOps)2018-11-16 23:24anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
brian,

yes - i'm running the script on xnight, from within labkey. the script is loading Rlabkey for the purposes of running insertRows and DeleteRows. There is also a selectRows() in it.

this:
curl https://xnight.primate.wisc.edu:8443/labkey

doesnt seem to return anything. it doesnt throw and error, but also doesnt display anything.

however this:
curl https://xnight.primate.wisc.edu:8443/labkey/

returns some HTML.





https://xnight.primate.wisc.edu:8443/labkey/query/WNPRC/EHR/executeQuery.view?query.queryName=demographicsPedigree&schemaName=study&query.reportId=module%3AEHR_Reporting%2Fschemas%2Fstudy%2FdemographicsPedigree%2FInbreedingCoefficients.r
Ben Bimber2010-08-28 10:53Jon (LabKey DevOps)2018-11-16 23:23anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
is it possible that my .netrc file somehow isnt configured properly? i have a .netrc located in /Users/labkey, which has an entry for both localhost and xnight.primate.wisc.edu. can i test this somehow?


at brian's suggestion i tried to replicate this directly in R through the terminal. i ran this:

library(Rlabkey)
getURI('https://xnight.primate.wisc.edu:8443/labkey/project/home/begin.view')

this loads some HTML and does not throw errors. however the follow code gives the same 'cannot connect' error that I observe in labkey:

labkey.selectRows(
    baseUrl='https://xnight.primate.wisc.edu/labkey',
    folderPath="/WNPRC/EHR",
    schemaName="study",
    queryName="Inbreeding",
    colSelect=c('lsid', 'Id', 'InbreedingCoefficient'),
    showHidden = FALSE
)

are there other commands I should try from the terminal?
Ben Bimber2010-08-30 08:26Jon (LabKey DevOps)2018-11-16 23:24anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
i believe i have some more useful information:

1. our netrc file uses a special user i created specifically for these automated tasks. this user had read access to that folder, but did not have read access to the dataset in question. i fixed that, then ran this from the terminal directly in R:

library(Rlabkey);
oldRecords <- labkey.selectRows(
    baseUrl="https://xnight.primate.wisc.edu:8443/labkey/",
    folderPath="/WNPRC/EHR",
    schemaName="study",
    queryName="Inbreeding",
    colSelect=c('Id'),
    showHidden = FALSE
);

This query now works, but from the terminal only. I ran the exactly same code through labkey and got that error again:

javax.script.ScriptException: Loading required package: RCurl
Loading required package: rjson
Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) :
  Couldn't resolve host 'xnight.primate.wisc.edu'
Calls: labkey.selectRows -> getURI -> curlPerform -> .Call
Execution halted


View is saved here:
https://xnight.primate.wisc.edu:8443/labkey/query/WNPRC/EHR/executeQuery.view?msg=Report%3A%20API_test%20successfully%20saved&query.queryName=demographicsPedigree&schemaName=study&query.reportId=db%3A24

Does anyone have any further troubleshooting suggestions? Thanks for the help.
Karl Lum2010-08-30 08:55Jon (LabKey DevOps)2018-11-16 23:23anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
I think the problem may be that when a server-side script is run on LabKey, the credentials of the logged on user are used for the query. This is true even when using the Rlabkey package. The .netrc file is not used and instead the user information from the session is passed to Rlabkey.

You might try giving yourself the same access as the special user in the .netrc file and try to run the script again on the server.
Ben Bimber2010-08-30 09:00Jon (LabKey DevOps)2018-11-16 23:24anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
hi karl,

perhaps you could clarify that a little:

so i think you're saying that .netrc is not used when executing from within labkey. i am running this R script as 'bimber@primate.wisc.edu', which is a site admin. i can see everything, yet i get this error.
Karl Lum2010-08-30 09:57Jon (LabKey DevOps)2018-11-16 23:24anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
That's correct it's not used, so if your user account: bimber@primate.wisc.edu has access to the folder and database, then I would expect it to work.
Ben Bimber2010-08-30 10:11Jon (LabKey DevOps)2018-11-16 23:24anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
ok. that's the user i have been using and the API call continues to throw the error through labkey.

it looks like Rlabkey allows us to pass addition config for debugging purposes. is there additional information that would be helpful? the URL three posts above this contains a stripped down R report that might be useful for testing.
Ben Bimber2010-09-01 15:12Jon (LabKey DevOps)2018-11-16 23:24anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
I have some more information on this:

Rlabkey works as expected from my laptop (both through labkey and in R terminal). It works on our production server through the terminal, but not through labkey.

I had been using baseUrl=labkey.url.base (which equals "https://xnight.primate.wisc.edu:8443/labkey/"). This results in an error saying 'cannot resolve host xnight.primate.wisc.edu'. If I use baseUrl="https://localhost:8443/labkey/", then the API works as expected. Does this behavior suggest any other things I should investigate?
Brian Connolly2010-09-01 17:34Jon (LabKey DevOps)2018-11-16 23:24anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I believe this is a server configuration problem. When the LabKey server launches a R process to run your script. The R process is unable to resolve the an IP address for xnight.primate.wisc.edu.

I verified this was the problem by creating a new R view and attempting to run the R script

  system("ping xnight.primate.wisc.edu")

This gives the error message "ping: cannot resolve xnight.primate.wisc.edu: Unknown host"

DNS Name resolution on your server is handled by the OS. There are a number of services that cache the DNS resolution results. My guess is that the result "Unknown host" is due to this caching.

I am not able to reproduce your behavior on any of our local test servers, both linux and macosx.

Lets take this problem private and setup a quick call where I can help you debug the problem with your OS caching.

-Brian
Brian Connolly2010-09-07 20:22Brian Connolly2010-09-07 20:22anyone used R api with SSL?anyone used R api with SSL? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

After more research on this issue, I have verified that this problem occurs on all other servers running MacOSX that we have for testing(this problem only occurs on MacOSX, it does not occur on Windows or Linux). My hypothesis is that there is a MacOSX security policy which blocks spawned processes from accessing the name service daemon for the operating system.

There are 2 work-arounds for this problem:

   1. Add the hostname (ie xnight.primate.wisc.edu) to the hosts file (/etc/hosts). During my testing, the spawned process was able to resolve hostnames that were host file.

      or

   2. Use the name "localhost" instead of DNS name (xnight.primate.wisc.edu) in the your R script.


I have opened a bug to track this problem. (https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10767)

Thank you,
marki2013-03-21 10:54Jon (LabKey DevOps)2018-11-16 23:23Anybody familiar w/ SSRS, SSIS or similar sqlserver products?Anybody familiar w/ SSRS, SSIS or similar sqlserver products? TEXT_WITH_LINKSClosed     LabKey Support Forum
We are doing some work with SSIS. We are working with other folks who use SSRS but are not using it ourselves & don't have opinions.

SSIS has a *lot* of options and I can't claim to know them all. I would consider these options

1) Use a script component in SSIS to access the data as you said (as here: http://www.sqlservercentral.com/Forums/Topic384287-148-1.aspx )

2) Write a script component to use the standard LabKey API. This will require some programming to wrap the LK API with .NET. Slightly bigger, extend SSIS with custom object type that can access LabKey via the API.

3) It would be great to have a Connection implementation that accesses the API. We've got an experimental JDBC driver that needs work. It could be wrapped with a bridge to link in to SSIS. Alternately a new one could be written.
Ben Bimber2013-03-21 10:55Jon (LabKey DevOps)2018-11-16 23:24Anybody familiar w/ SSRS, SSIS or similar sqlserver products?Anybody familiar w/ SSRS, SSIS or similar sqlserver products? TEXT_WITH_LINKSClosed     LabKey Support Forum
are clients funding this? we should talk about the scope as a potential ONPRC dev item. i've available today or tomorrow if you think it makes sense to talk in person.
Leo Dashevskiy2014-07-03 11:53Leo Dashevskiy2014-07-03 11:53An unexpected bug, while importing FlowJo XML-based workspacesAn unexpected bug, while importing FlowJo XML-based workspaces TEXT_WITH_LINKSClosed     LabKey Support Forum
Haven't checked it for myself yet, since we are not quite at that revision yet, but will take your guys' words for it and will reopen if things are not as expected...
Greg Taylor2014-05-06 13:43Jon (LabKey DevOps)2018-11-16 23:23An unexpected bug, while importing FlowJo XML-based workspacesAn unexpected bug, while importing FlowJo XML-based workspaces TEXT_WITH_LINKSClosed     LabKey Support Forum
I have asked Kevin, our flow developer, to look into this issue.
Greg
kevink2014-05-07 11:15Jon (LabKey DevOps)2018-11-16 23:24An unexpected bug, while importing FlowJo XML-based workspacesAn unexpected bug, while importing FlowJo XML-based workspaces TEXT_WITH_LINKSClosed     LabKey Support Forum
Leo,

I was able to reproduce the issue and have opened a bug for the file-browser:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=20336

Thanks,
Kevin
Jon (LabKey DevOps)2017-01-22 20:02Jon (LabKey DevOps)2017-01-22 20:02ant task 'pick_pg' does not properly escape ampersand & in catalina propertiesant task 'pick_pg' does not properly escape ampersand & in catalina properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Simon,

We're getting this looked into further.

Thank you for your patience.

Regards,

Jon
Jon (LabKey DevOps)2017-02-13 14:33Jon (LabKey DevOps)2017-02-14 11:40ant task 'pick_pg' does not properly escape ampersand & in catalina propertiesant task 'pick_pg' does not properly escape ampersand & in catalina properties TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Simon,

We've updated our docs to reflect this. Any special XML characters, not just ampersands, require the escaped version.

https://www.labkey.org/home/Documentation/wiki-page.view?name=build#build
https://www.labkey.org/home/Documentation/wiki-page.view?name=gradleBuild

Regards,

Jon
jeckels2013-11-04 17:55Jon (LabKey DevOps)2018-11-16 23:24Ant Build ErrorSAnt Build ErrorS TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

It looks like the error message was truncated in your screenshot, so it doesn't include the path of the file that YUI compressor failed to process.

There's also likely a more specific error message about how it failed higher up in the build output.

Can you try rerunning the ant build, and pipe the output to a text file? You can then attach the full output with your reply.

http://stackoverflow.com/questions/6674327/redirect-all-output-to-file

Thanks,
Josh
Jon (LabKey DevOps)2016-09-08 11:11Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Have you tried doing an 'ant rebuild'? If so, do you get the same results?

Regards,

Jon
ARD2016-09-08 11:21Jon (LabKey DevOps)2018-11-16 23:23ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
I tried "ant rebuild" but same error/output!

ARD
Jon (LabKey DevOps)2016-09-08 15:31Jon (LabKey DevOps)2018-11-16 23:23ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

I think this might be a problem with the version of Tomcat you're using.

I noticed that your version of Tomcat is at 8.5.5, which technically isn't supported per our docs (https://www.labkey.org/home/Documentation/wiki-page.view?name=supported).

The error in question indicates org.apache.tomcat.util.security.PermissionCheck not being found.

It's possible that your version of Tomcat doesn't have that functionality that we need to run LabKey with.

Do you think you can install Tomcat 8.0.36 instead and give this another try?

Regards,

Jon
ARD2016-09-09 06:20Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
Now, I have tomcat (Tomcat 8.0.37), but same errors with ant build.

Main errors are at org.apache.catalina.loader.WebappClassLoader;

1. Cannot resolve symbol 'loader'
2. Cannot resolve symbol 'WebappClassLoader'

public class LabkeyServerBootstrapClassLoader extends WebappClassLoader {

...
...
...

}
Attached a screen shot.

Thanks,
ARD
jeckels2016-09-09 09:03Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
This indicates that IntelliJ may not have the right TOMCAT_HOME/CATALINA_HOME environment variable set. You can pull up IntelliJ's Preferences and check that they're set appropriately under the Path Variables pane.

https://www.jetbrains.com/help/idea/2016.2/path-variables-2.html

If that doesn't help, check your Tomcat deployment to make sure that it has a lib/catalina.jar directory and file.

Thanks,
Josh
adam2016-09-10 08:49Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
ARD,

Thank you for your report. I have confirmed that the very latest Apache Tomcat versions (8.0.37 as well as 8.5.5, though we don't recommend using 8.5.x at this point) include a change that breaks compatibility with our LabkeyBootstrapClassLoader build. We're still investigating their change and whether our code can work around this incompatibility, but for now, please install and build against Tomcat version 8.0.36, as Jon has recommended.

Thanks,
Adam
ARD2016-09-10 09:28Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
I will try with 8.0.36.
adam2016-09-10 09:52Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
adam2016-09-19 15:14Jon (LabKey DevOps)2018-11-16 23:23ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
This fix was committed to the release16.2 branch last week and merged to trunk as of this morning. If you svn update to the latest revision on either of those branches you should be able to build LabKey against Tomcat 8.0.37.

Adam
Anthony Corbett2016-10-19 22:37Jon (LabKey DevOps)2018-11-16 23:24ant build errorant build error TEXT_WITH_LINKSClosed     LabKey Support Forum
In case others find this thread in the future... This same error happens for 16.2 with tomcat 7.0.x (I'm specifically using 7.0.72). The fixes in issue 27801 to bootstrap.iml and build.xml fixed it.

Note: One can always checkout/update to the latest revision of 16.2 branch and these fixes will be included, but our group always checks out the revision of the branch that we have deployed on our production system so we are developing against the same revision we deploy into (which often isn't the latest of the branch) so I had to add the fixes myself.
Ben Bimber2011-05-11 11:17Jon (LabKey DevOps)2018-11-16 23:24another SQL documentation requestanother SQL documentation request TEXT_WITH_LINKSClosed     LabKey Support Forum
ok, that's actually good enough. thanks.
Steve2011-05-11 11:34Jon (LabKey DevOps)2018-11-16 23:24another SQL documentation requestanother SQL documentation request TEXT_WITH_LINKSClosed     LabKey Support Forum
Here are some other examples from the spec, as a stopgap before the docs are finished:

PARAMETERS(X INTEGER DEFAULT 5, Y VARCHAR)
SELECT *
FROM Table R
WHERE R.x = X AND R.y LIKE Y || ‘%’

PARAMETERS(X INTEGER, Y VARCHAR)
SELECT X, UPPER(Y), Q1.*
FROM Q1
Matthew Bellew2011-05-11 17:48Jon (LabKey DevOps)2018-11-16 23:24another SQL documentation requestanother SQL documentation request TEXT_WITH_LINKSClosed     LabKey Support Forum
There is a small reason we did not document DEFAULT. We simply hadn't sorted out the behavior of DEFAULT in all different cases. Sometimes it's hard to tell if a parameter was not provided or was provided but explicitly set to NULL, etc.

So if you use this feature, just be aware of that.
Ben Bimber2011-05-11 17:55Jon (LabKey DevOps)2018-11-16 23:24another SQL documentation requestanother SQL documentation request TEXT_WITH_LINKSClosed     LabKey Support Forum
hi matt,

i get the complication. so if you specify a default in the SQL statement, will it be essentially like not having the param at all?

one more thing: i wrote a parameterized query based on a study dataset. the SQL is:

PARAMETERS(STARTDATE TIMESTAMP, ENDDATE TIMESTAMP)
SELECT *
FROM study.housing h
WHERE
(STARTDATE >= h.date AND STARTDATE < COALESCE(h.enddate, curdate()))
OR
(COALESCE(ENDDATE, curdate()) > h.date AND COALESCE(ENDDATE, curdate()) <= COALESCE(h.enddate, curdate()))

Other than a complex where clause, pretty simple. Study datasets have all sort of metadata. For example, lsid is hidden by default. When I run this query, every single column shows up. They also dont seem to have their usual labels applied. Is that expected?

This could well be related to the 'select *', as opposed to the parameter.
Ben Bimber2011-05-12 12:03Jon (LabKey DevOps)2018-11-16 23:24another SQL documentation requestanother SQL documentation request TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

One more thing:

This query has 2 param: start time and stop time. Ideally, I'd let to get it to behave such that if the user does not supply a value for end date, it will default to now(). however, it appears functions are not supported in the parameter syntax:

PARAMETERS(STARTDATE TIMESTAMP, ENDDATE TIMESTAMP DEFAULT curdate())

that doesnt work. do i have any options here?

also, for what it's worth, if you have a param and do not set a default in your SQL statement, labkey fails in a pretty ugly way if the user tries to load the query without providing one.

-ben
Ben Bimber2010-10-01 08:54Jon (LabKey DevOps)2018-11-16 23:24another small feature requestanother small feature request TEXT_WITH_LINKSClosed     LabKey Support Forum
for what it's worth, this (as an xml file) does not seem to work:

<query xmlns="http://labkey.org/data/xml/query">
    <metadata>
        <tables xmlns="http://labkey.org/data/xml">
            <table tableName="Datasets" tableDbType="NOT_IN_DB">
                <titleColumn>Label</titleColumn>
            </table>
        </tables>
    </metadata>
</query>
Ben Bimber2010-10-01 09:11Jon (LabKey DevOps)2018-11-16 23:24another small feature requestanother small feature request TEXT_WITH_LINKSClosed     LabKey Support Forum
while on the topic i think there's a small error in the description of the study.dataset table. see attached.
jeckels2010-10-01 16:29Jon (LabKey DevOps)2018-11-16 23:24another small feature requestanother small feature request TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I flipped the default title column to be the dataset's label instead of the name. I also corrected the description and fixed the lookup such that it respects XML metadata overrides. The changes will be included in my next checkin.

Thanks,
Josh
Ben Bimber2010-10-01 17:13Jon (LabKey DevOps)2018-11-16 23:24another small feature requestanother small feature request TEXT_WITH_LINKSClosed     LabKey Support Forum
great, thanks.
Brian Connolly2010-12-07 16:30Jon (LabKey DevOps)2018-11-16 23:24another query still running after leaving pageanother query still running after leaving page TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

For all pages, which contain a data region, when you navigate away from the page, the LabKey server will notice that you have navigated away and will attempt to cancel the running database request. For small database requests, the request may be canceled instantaneously. However for larger or long running requests, the cancellation may take longer to complete.

When you navigate away from the page and the server cancels the running request, you will see a log entry in the labkey.log similar to

ERROR Table 2010-12-22 23:22:50,553 t: http-8443-Processor50 : internalExecuteQuery
org.postgresql.util.PSQLException: ERROR: canceling statement due to user request
...


For pages which do not contain a data region, if you navigate away from the page, the LabKey server has no way of knowing that you have navigated away from the page. Thus the server will not cancel the database request and it will run to completion.

I hope this answers your question.

-Brian
Ben Bimber2010-12-07 16:47Jon (LabKey DevOps)2018-11-16 23:24another query still running after leaving pageanother query still running after leaving page TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,

yes, i'm familiar with that log message. i'm just surprised in this instance b/c I would have expected this query (which was just a select, not something like an insert that might need to get rolled back) to have canceled itself sooner. perhaps i'm misinterpreting what's a dataregion and what isnt, but i thought the lists page (grid.view) would auto-cancel as most pages with a grid do.

Anyway, I dont know that there's much more info to follow up with. If I see something like this again I will let you know.

-Ben
Leo Dashevskiy2015-03-18 10:33Leo Dashevskiy2015-03-18 10:33An issue with resizing a web part, when the webpart's title is longAn issue with resizing a web part, when the webpart's title is long TEXT_WITH_LINKSClosed     LabKey Support Forum
No longer present.
Greg Taylor2013-12-17 16:03Jon (LabKey DevOps)2018-11-16 23:24An issue with resizing a web part, when the webpart's title is longAn issue with resizing a web part, when the webpart's title is long TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,
Thank you for the detailed report regarding long webpart titles. Could you please follow up with screen captures of the unexpected layout that you are seeing? I want to make sure that we are investigating the precise behavior that you are interested in.
Thanks,
Greg Taylor
Leo Dashevskiy2013-12-18 18:59Jon (LabKey DevOps)2018-11-16 23:23An issue with resizing a web part, when the webpart's title is longAn issue with resizing a web part, when the webpart's title is long TEXT_WITH_LINKSClosed     LabKey Support Forum
Greg, sure thing, the screen capture with the issue is attached.
Leo Dashevskiy2014-01-13 16:00Jon (LabKey DevOps)2018-11-16 23:24An issue with resizing a web part, when the webpart's title is longAn issue with resizing a web part, when the webpart's title is long TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello, Greg! Have there been any news about this? Thanks.
Greg Taylor2014-01-14 17:39Jon (LabKey DevOps)2018-11-16 23:23An issue with resizing a web part, when the webpart's title is longAn issue with resizing a web part, when the webpart's title is long TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,
I have created a bug report for this issue. You may follow the progress of the fix on labkey.org.
Greg

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=19380
Leo Dashevskiy2014-01-14 17:53Jon (LabKey DevOps)2018-11-16 23:24An issue with resizing a web part, when the webpart's title is longAn issue with resizing a web part, when the webpart's title is long TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, thanks.
Leo Dashevskiy2014-09-08 10:05Leo Dashevskiy2014-09-08 10:05An inconsisten behavior of LABKEY.Query.getSchemas() - a bug?An inconsisten behavior of LABKEY.Query.getSchemas() - a bug? TEXT_WITH_LINKSClosed     LabKey Support Forum 
jeckels2014-09-05 16:50Jon (LabKey DevOps)2018-11-16 23:24An inconsisten behavior of LABKEY.Query.getSchemas() - a bug?An inconsisten behavior of LABKEY.Query.getSchemas() - a bug? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

The behavior in #3 is definitely a bug. A client should pretty much never get a NullPointerException as its response. I've fixed it in the trunk (destined for 14.3) with revision 34251.

I think that we need to keep the behavior in #2 for purposes of backward compatibility though. We used to expose assay child schemas regardless of whether there was an assay design of that type. There are other, similar cases where we continue to accept schema and query names that no longer exist to maintain compatibility with existing client code.

Thanks,
Josh
Leo Dashevskiy2014-09-05 17:15Jon (LabKey DevOps)2018-11-16 23:24An inconsisten behavior of LABKEY.Query.getSchemas() - a bug?An inconsisten behavior of LABKEY.Query.getSchemas() - a bug? TEXT_WITH_LINKSClosed     LabKey Support Forum
I see, about #2.

Just curious, what was the deal with #3?

Thanks.
-Leo
jeckels2014-09-05 18:49Jon (LabKey DevOps)2018-11-16 23:24An inconsisten behavior of LABKEY.Query.getSchemas() - a bug?An inconsisten behavior of LABKEY.Query.getSchemas() - a bug? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

The server code wasn't checking if the requested schema was found (if it was null or not) before it tried sending it back to the client. It's a simple change to just check for the null value and return the improved error message.

Thanks,
Josh
Anthony Corbett2013-04-10 09:25Jon (LabKey DevOps)2018-11-16 23:24Ancillary Study's Study Specimens Sample Set doesn't existsAncillary Study's Study Specimens Sample Set doesn't exists TEXT_WITH_LINKSClosed     LabKey Support Forum

For #2 above this creates other big issues, namely the following:

1. New assay data imported with the Ancillary Study as the Target Study can't properly link SpecimenId column to the SpecimenDetails to customize the view to include the ParticipantId or SequenceNum.

2. Along the same lines, resolving ParticipantVisit for copy to study doesn't work either.

See attached screenshots of both issues.

Thanks,

Anthony
adam2013-04-10 10:50Jon (LabKey DevOps)2018-11-16 23:24Ancillary Study's Study Specimens Sample Set doesn't existsAncillary Study's Study Specimens Sample Set doesn't exists TEXT_WITH_LINKSClosed     LabKey Support Forum
As for #1 in your original post, we recently implemented a "Specimen Study" capability that lets you create a child study (much like an ancillary study) from a specimen request. The filtering is driven by the specimens in that request... the resulting study will include only those specimens plus dataset rows & groups associated with the associated participants. This is currently an experimental feature that needs to be enabled via the admin console.

#2 sounds like a bug... the ancillary study is apparently not resolving the samples query to the right folder; I'll open an issue to track this. Several institutions are continuing to fund improvements in the ancillary study / study publication area, though I don't think any of them have encountered your issue.

Adam
Dave Bradlee2013-11-06 08:59Jon (LabKey DevOps)2018-11-16 23:24Ancillary Study's Study Specimens Sample Set doesn't existsAncillary Study's Study Specimens Sample Set doesn't exists TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

I've just looked at Issue 17603, which Adam created from this. In 13.3, the original problem (Study Samples does not exist in ancillary study) was fixed. I observed by copying assay result to an ancillary study via copy-to-study and going to schema browser to accessing Study Specimens.

For the subsequent issues (the screenshots), if you could give more specific repro steps I could see if those are fixed or what I need to do to fix. Are SpecimenId, ParticipantId and/or SequenceNum supplied in the imported assay data or selected during copy-to-study?

Thanks.

Dave
Steve2017-08-10 11:34Jon (LabKey DevOps)2018-11-16 23:23Alternative Site Welcome PageAlternative Site Welcome Page TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for pointing this out.

I've just added some doc on this feature:

https://www.labkey.org/Documentation/wiki-page.view?name=customizeLook#welcome

- Steve
jeckels2010-04-08 09:44Jon (LabKey DevOps)2018-11-16 23:23Alternate way to access workbooks?Alternate way to access workbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

I just ran into this scenario with a different installation. I'd very much like to make it so that the we support substitution in the path part of the URL, but for now I set them up with a simple JavaScript redirect page like you mentioned. There's a bug/todo open for this and I'm hopeful we'll get to it for 10.2.

Thanks,
Josh
jeckels2011-09-06 09:59Jon (LabKey DevOps)2018-11-16 23:24A Fix for Linux BuildsA Fix for Linux Builds TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Sorry it's taken me so long to look into this. Did you get this error on files that are part of the core LabKey Server SVN repository, or on your own module source files? If it's the former, do you remember which ones caused problems?

Thanks,
Josh
slangley@scharp.org2011-09-06 10:39Jon (LabKey DevOps)2018-11-16 23:23A Fix for Linux BuildsA Fix for Linux Builds TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,

It's happened a few time due to code in the LabKey Server SVN repository in the customModules directory.

Scott
jeckels2011-09-07 12:41Jon (LabKey DevOps)2018-11-16 23:24A Fix for Linux BuildsA Fix for Linux Builds TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Scott,

Thanks for the pointer. I tracked down what appears to be the responsible source file, and have changed it to use the standard Java source code unicode escape sequence. With that change, I was able to build successfully after forcing all my <javac> usages in the main build.xml to use encoding="ascii". I'll check it into the trunk shortly, and that will hopefully eliminate the need for your local edits.

Thanks,
Josh
Ben Bimber2010-12-07 06:26Jon (LabKey DevOps)2018-11-16 23:24advice on overriding/supplementing metadata from server in a labkey store?advice on overriding/supplementing metadata from server in a labkey store? TEXT_WITH_LINKSClosed     LabKey Support Forum
in case anyone else encounters this, it can be done by listening for the Ext.data.HttpProxy's load event, modifying the metadata, then calling .onMetaChange().
Karl Lum2014-01-31 10:14Jon (LabKey DevOps)2018-11-16 23:23Advanced Views Gone?Advanced Views Gone? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bill,

The feature is still available in the view menus for study datasets. We recently removed the menu item from the manage views page but the UI from a dataset grid should be the same. This feature is only available from a study.

We do have a more flexible framework for executing external programs but we have not completely integrated this feature to be a viable replacement for the advanced view, at which point we will probably deprecate and remove the remaining UI.

thanks, Karl
bill c white2014-02-01 15:54Jon (LabKey DevOps)2018-11-16 23:23Advanced Views Gone?Advanced Views Gone? TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks Karl. I'll check out the study.
trent2011-06-14 23:14Jon (LabKey DevOps)2018-11-16 23:24addRecord method of storeaddRecord method of store TEXT_WITH_LINKSClosed     LabKey Support Forum
Did you try specifying an index? I was having a play around and was having difficulty until I passed the second index attribute. Oddly, it seems to work without it now, so not sure what was going on there :/

https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.ext.Store.html#addRecord

I still didn't manage to get the changes to commit though, the commitChanges function retrieves modified records (_store.getModifiedRecords) but its returning an empty array (so just returning false and not saving the new records)... I can only assume this is intended for updating existing records and not adding new records (though it does seem a bit odd having the addRecord function if you can't save said records).

You probably already know, but the Javascript API tutorial demonstrates inserting records by using the LABKEY.Query object.

Code from the first part of the tutorial which inserts records: https://www.labkey.org/wiki/home/Study/demo/source.view?name=reagentRequest

Reference to LABKEY.Query: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.html
Ben Bimber2011-06-15 03:31Jon (LabKey DevOps)2018-11-16 23:23addRecord method of storeaddRecord method of store TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

your example looks fine, although I dont know the structure of study.demographics. have you used firebug before? chrome's JS debugger would also work. i'd highly recommend using one here. you can apply a breakpoint at the first line of the addRecord() method and talk through it line by line to see what's not working. if this doesnt make sense, either I or someone from labkey could probably say more.


trent - i believe your issue with the store and getModifiedRecords() is something with ext versions. if you look at the Ext code in labkey, Ext.data.Store.insert() uses:

insert : function(index, records){
records = [].concat(records);
for(var i = 0, len = records.length; i < len; i++){
this.data.insert(index, records[i]);
records[i].join(this);
}
if(this.snapshot){
this.snapshot.addAll(records);
}
this.fireEvent('add', this, records, index);
},


however, the ext 3.2 doc shows this:

    insert : function(index, records) {
        var i, len, record;
        
        records = [].concat(records);
        for (i = 0, len = records.length; i < len; i++) {
            record = records[i];
            
            this.data.insert(index + i, record);
            record.join(this);
            
            if (record.dirty || record.phantom) {
                this.modified.push(record);
            }
        }
        
        if (this.snapshot) {
            this.snapshot.addAll(records);
        }
        
        this.fireEvent('add', this, records, index);
    },


a similar thing goes for the store's add() method. the difference is that if your newly inserted record is phantom (aka not existing on the server) it is supposed to be getting tracked as dirt, which would cause it to be returned by the store's getModifiedRecords() method. you could do something like:

Ext.override(Ext.data.Store, {
    add : function(records) {
        var i, len, record, index;
        
        records = [].concat(records);
        if (records.length < 1) {
            return;
        }
        
        for (i = 0, len = records.length; i < len; i++) {
            record = records[i];
            
            record.join(this);
            
            if (record.dirty || record.phantom) {
                this.modified.push(record);
            }
        }
        
        index = this.data.length;
        this.data.addAll(records);
        
        if (this.snapshot) {
            this.snapshot.addAll(records);
        }
        
        this.fireEvent('add', this, records, index);
    },
insert : function(index, records) {
        var i, len, record;
        
        records = [].concat(records);
        for (i = 0, len = records.length; i < len; i++) {
            record = records[i];
            
            this.data.insert(index + i, record);
            record.join(this);
            
            if (record.dirty || record.phantom) {
                this.modified.push(record);
            }
        }
        
        if (this.snapshot) {
            this.snapshot.addAll(records);
        }
        
        this.fireEvent('add', this, records, index);
    }
});

and the store will probably work correct. note, all of this is just typed into the browser and untested.
jeckels2015-08-06 11:58Jon (LabKey DevOps)2018-11-16 23:24Add R data frame records to LabkeyAdd R data frame records to Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Yes, labkey.insertRows is a good way to go. You do need to create the target table first, and that would be done separately through the main web UI. A list is probably the simplest way to get up and running.

Thanks,
Josh
laurapas2015-08-06 17:05Jon (LabKey DevOps)2018-11-16 23:23Add R data frame records to LabkeyAdd R data frame records to Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,
Thanks! I tried this approach and it works fine, except that I'm having a problem with importing numeric columns with some NA values via labkey.importRows. If I convert this to a character and create the list w/ type=character, it's fine. But, I do need this as a numeric value. Is there a way to import numeric columns with NA values?

Error in labkey.importRows(baseUrl = "https://labkey-dev.roche.com:8443/labkey", :
  HTTP request was unsuccessful. Status code = 400, Error message = NaN is not a valid value for column 'cv'
jeckels2015-08-06 17:15Jon (LabKey DevOps)2018-11-16 23:24Add R data frame records to LabkeyAdd R data frame records to Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

What type of column were you trying? Integer or Double? Double might be able to accept the value.

Regardless, as an alternative approach, if you replace the NA values with NULL values prior to attempting to insert the data, it should proceed without problems. Perhaps we should be automatically doing this within the Rlabkey package.

Thanks,
Josh
laurapas2015-08-07 12:50Jon (LabKey DevOps)2018-11-16 23:24Add R data frame records to LabkeyAdd R data frame records to Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Josh,
I'm trying to import a numeric double. I think NULL is only for objects? Blank numeric values are NA in my data frame. I am able to get the import to work with NA values is to specify the column as text(string) in the List design, but I'm afraid of losing some precision and don't want to have to convert a character to numeric for any subsequent analysis on these results. The numeric values i'm trying to import are pvalues and CV. If I convert the NAs to a standard but nonsensical value like 9999999999, then it will import ok. For now, I'm using this workaround unless you happen to know a better way to get around it.
Jon (LabKey DevOps)2015-08-10 11:18Jon (LabKey DevOps)2018-11-16 23:24Add R data frame records to LabkeyAdd R data frame records to Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
I'll have to test this out Laura, but my understanding is that you shouldn't have a problem with inserting a null value into anything provided that the data column doesn't have a "NOT NULL" constraint attached to it.

Let me do some quick testing and see if that's the case with the numeric double fields in a list. I'll check both R and also our Javascript API to see how the InsertRows works with both.

Regards,

Jon
jeckels2015-08-11 13:25Jon (LabKey DevOps)2018-11-16 23:24Add R data frame records to LabkeyAdd R data frame records to Labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

I've opened a bug on this:

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=23996

Sorry for my confusion about NA vs NULL. You current workaround seems reasonable. As an alternative, I think this would work:

Split the data frame into two separate date frames. One will have all of the rows with non-NA values for the column in question, and the other will have all of the rows with NAs for that column. Delete the column in the data frame where all the values are NA. The insert them separately with two different calls to insertRows().

This should end up with all of the rows, and null values in the database for the rows that have NA, which is the desired end result.

Thanks,
Josh
jeckels2010-07-19 09:38Jon (LabKey DevOps)2018-11-16 23:23add QC state field in an assay?add QC state field in an assay? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

1. We don't yet have an established concept or property URI for QC state fields on anything other than datasets. I'll open a 10.3 issue to establish one, even if we don't do anything special with it yet, so that at least we can tag fields for use in future releases.

https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=10644

2. Adding built-in buttons only works for buttons that are already exposed on the specific button bar. It doesn't let you add buttons from another place in the UI. So, you won't be able to easily add the QC state button from datasets and apply it to assays.

Thanks,
Josh
Jon (LabKey DevOps)2018-04-30 14:59Jon (LabKey DevOps)2018-11-16 23:24Additional KeysAdditional Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

Datasets by default allow anywhere between one to three key columns depending on what the dataset is.

Typically the primary key columns are either:

- ParticipantId

- ParticipantId + Date (or VisitId)

- ParticipantId + Date (or VisitId) + a 3rd column of your choosing

More details here: https://www.labkey.org/Documentation/wiki-page.view?name=editDatasetProperties

Are the above options not suitable for your needs?

Regards,

Jon
harris2018-04-30 15:05Jon (LabKey DevOps)2018-11-16 23:24Additional KeysAdditional Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,
Thanks for the quick reply. The 3rd column won't be enough for all types of clinical study data. We may need a 4th and sometimes a 5th (i.e., SUPINE/STANDING position, REPLICATE at a particular timepoint).

Regards,
Laura Harris
Jon (LabKey DevOps)2018-05-01 12:09Jon (LabKey DevOps)2018-11-16 23:24Additional KeysAdditional Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Thanks for confirming. Study datasets out of the box would not be able to support something like this.

If you have development resources, you could build your own module with a custom schema and tables that could utilize a combination of a primary key and unique constraints to accomplish what you need out of these tables, but these would technically not be study datasets since they would be living outside of the study schema.

https://www.labkey.org/Documentation/wiki-page.view?name=simpleModules

Regards,

Jon
Matthew Bellew2018-05-01 13:04Jon (LabKey DevOps)2018-11-16 23:24Additional KeysAdditional Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
A common work around for this situation is to use the managed field feature to set rowid as the additional key. (additional key column / managed field: RowId).

This doesn't enforce the uniqueness constraint, but will allow you to import multiple rows per participant/visit.
harris2018-05-03 18:05Jon (LabKey DevOps)2018-11-16 23:24Additional KeysAdditional Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,
Thanks. The managed field solutions seems ok, but I don't see that as an option. When I look at the managed field options, they are exactly the same as the data fields. Modification of the original data to make it fit in would not be a viable option for us. Is there something that I'm missing to get the RowId show up as a managed field?

Regards,
Laura
Jon (LabKey DevOps)2018-05-04 21:12Jon (LabKey DevOps)2018-11-16 23:24Additional KeysAdditional Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

No, that's exactly what the managed fields is supposed to do, take an existing field and use it as a 3rd unique value to create a key in combination with the participant Id or the participantId/date (or participantId/visitId) combo.

So is adding any additional columns completely out of the question? Another possible option would be to combine the values in those multiple columns into one single column and treat that single column as the primary key, but this wouldn't work if you aren't able to modify the table to include additional columns beyond the original data.

Regards,

Jon
harris2018-05-04 22:11Jon (LabKey DevOps)2018-11-16 23:23Additional KeysAdditional Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi,
Thanks for the reply. I thought the data field option was supposed to be used as the 3rd unique key value. What is the difference between the managed field option and the data field option under the section for Additional Key Column? If we want to use LabKey, then it seems that we need to modify our original data to make it fit in if we have more than 3 keys. Is there any particular reason why LabKey allows a max of 3 keys? It's common to have more than 3 in clinical study data, especially if following CDISC standards.
harris2018-05-06 15:32Jon (LabKey DevOps)2018-11-16 23:24Additional KeysAdditional Keys TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
Please disregard my last message. We will be able to add a sequence column and use this as the extra key. I'll probably store the actual keys for reference in a List. Thanks for all of your help!

Regards,
Laura Harris
jeckels2013-10-21 11:35Jon (LabKey DevOps)2018-11-16 23:23Adding a new search engineAdding a new search engine TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Matt,

It would be possible to add a new module to work with MSGF+ or other search engines, but it would be a lot easier to integrate support into our existing MS2 module directly. There are a number of key classes that are not currently exposed outside of the MS2 module that you'd want to be able to extend and use.

I recently added support for Comet, another MS2 search engine. It's probably the best template for what would be involved in adding another search engine. You can find the code here:

<LABKEY_ROOT>\server\modules\ms2\src\org\labkey\ms2\pipeline\comet

You'd effectively want to clone most of those classes and adapt them to work with MSGF+ instead. I'm not directly familiar with it, so I don't know specifically what would be required, but examples of likely work items include creating the parameters file and/or command-line arguments to run the program, converting file formats for inputs or outputs to match expectations, etc.

Starting points in the documentation include:

Set up a Development Machine: https://www.labkey.org/wiki/home/Documentation/page.view?name=build

Java Modules: https://www.labkey.org/wiki/home/Documentation/page.view?name=buildingModule

LabKey Open Source Project: https://www.labkey.org/wiki/home/Documentation/page.view?name=openSourceProject

I hope this helps with some useful pointers.

Thanks,
Josh
Ben Bimber2010-02-22 12:03Jon (LabKey DevOps)2018-11-16 23:23added webpart / renamed underlying fileadded webpart / renamed underlying file TEXT_WITH_LINKSClosed     LabKey Support Forum
nevermind - just figured it out. I deleted the offending row from the portal table in the postgres schema.
jeckels2013-08-26 16:01Jon (LabKey DevOps)2018-11-16 23:24ActiveMQ messaging to labkey userActiveMQ messaging to labkey user TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

LabKey Server can use ActiveMQ as a JMS server to distribute pipeline jobs across multiple machines. When configured to use one, it sends and receives messages to coordinate the workflow.

However, we don't expose the contents of any of the messages in the user interface. It's just used behind the scenes.

If you want to show the user data from ActiveMQ messages, you'd need to build a custom interface, likely in a Java module that knows how to connect to ActiveMQ and exposes a new set of pages in the UI.

Thanks,
Josh
Brian Connolly2010-12-17 06:40Jon (LabKey DevOps)2018-11-16 23:24activeMQ and labkeyactiveMQ and labkey TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,

I am not of exactly how the code is written but I know that when the LabKey server or the LabKey remote pipeline server (ie what you have installed on gems) loses connectivity to the activeMQ server they do something like

1) Try to connect to the server for x number of times
2) wait 1 seconds try again
3) wait 5 seconds try again
4) wait 10 seconds try again
....

this will go on until eventually either the server stops attempting to reconnect or the time between reconnect attempts is large.

I believe frequency of the errors you are seeing from activeMQ will probably go down when you are able to clear up the perf problems on xnight. In the mean-time, I would recommend that if you have to restart the activeMQ process on xnight or reboot xnight, then restart the LabKey remote pipeline server on gems afterwards.

About your monit monitoring, please note that monit is simply checking if the activeMQ server is listening on the tcp port. This check is not sufficient to determine if activeMQ is fully operational (ie tasks will run on the pipeline). The current monitoring is designed to simply check if the activeMQ server has been started or not. To determine if the server is running and fully operational (ie you are able to put tasks on the queue and take them off, etc) then you will need add monitoring with tools like http://activemq.apache.org/how-can-i-monitor-activemq.html or http://it.toolbox.com/blogs/unix-sysadmin/monitoring-activemq-from-nagios-27743
Jon (LabKey DevOps)2015-05-31 21:01Jon (LabKey DevOps)2018-11-16 23:24Active Directory Groups and Restricting AccessActive Directory Groups and Restricting Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

So beyond just authenticating, you want your Active Directory group to do authorization within LabKey as well?

I'm not certain that the ldapSearch_searchTemplate will work, but it does seem possible to use a group for the objectClass like:

<Environment name="ldapSearch_searchTemplate" value="(&amp;(objectClass=group))" type="java.lang.String" override="false"/>

But I will need to confirm this on our end.

Regards,

Jon
bront@kcr.uky.edu2015-06-01 08:38Jon (LabKey DevOps)2018-11-16 23:24Active Directory Groups and Restricting AccessActive Directory Groups and Restricting Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon,

I am not sure that we need the AD to do the authorization in LabKey.

I think what we'd like is to create a general user group in AD (i.e., labkeyusers), and then set up LabKey such that only those users could login. From there we would handle permissions within LabKey as usual.

As it stands now, *all* of our AD users can login to LabKey and create accounts, which, even though most won't have any permissions on projects, is not optimal.

Thanks for your help.

cheers,

bront
adam2015-06-01 09:55Jon (LabKey DevOps)2018-11-16 23:24Active Directory Groups and Restricting AccessActive Directory Groups and Restricting Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

As you've found, when a user successfully authenticates using an external authentication provider (which includes LDAP and any of the Single Sign On providers), the server creates a new user account if one doesn't already exist for that user. A successful authentication doesn't grant any special permissions; that user receives only the permissions assigned to the Site Users group. Our general recommendation is to limit the permissions you assign Site Users.

At the moment, there's no way to turn off the "auto-create user account" behavior. It wouldn't be difficult to add such an option, but it would be helpful to discuss the use case and concerns; I don't think anyone else has asked for this.

Adam
bront@kcr.uky.edu2015-06-01 10:26Jon (LabKey DevOps)2018-11-16 23:24Active Directory Groups and Restricting AccessActive Directory Groups and Restricting Access TEXT_WITH_LINKSClosed     LabKey Support Forum
Adam,

Thanks for clarifying. I don't suppose it will be much of an issue for us. I don't think a large number of our general users will just stumble into LabKey and create accounts.

I just wanted to explore the possibilities of setting up LabKey in such a way as to restrict user access by AD groups.

Many thanks,

bront
bront@kcr.uky.edu2015-06-04 11:36bront@kcr.uky.edu2015-06-04 11:36Active Directory Groups and Restricting AccessActive Directory Groups and Restricting Access TEXT_WITH_LINKSClosed     LabKey Support Forum 
Jon (LabKey DevOps)2016-05-23 15:41Jon (LabKey DevOps)2018-11-16 23:24Active Directory Groups and AuthenticationActive Directory Groups and Authentication TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

So you want the authentication to be both done on the Active Directory LDAP connection AND locally on the database at the same time?

Right now, the way the system works when LDAP is enabled is:

1. It checks the authentication via LDAP first

2. If there is no successful authentication on the LDAP server, it switches to the DB for authentication.

Reference - https://www.labkey.org/wiki/home/Documentation/page.view?name=configldap (Authentication Process section)

Regards,

Jon
adam2016-05-23 17:31Jon (LabKey DevOps)2018-11-16 23:24Active Directory Groups and AuthenticationActive Directory Groups and Authentication TEXT_WITH_LINKSClosed     LabKey Support Forum
LabKey has no built-in capability for synchronizing with or delegating to AD for authorization. Several clients have implemented external tools that synchronize external directory server security groups with LabKey security groups, and we just (in 16.1) added a bulk security API to make this easier (https://www.labkey.org/wiki/home/Documentation/page.view?name=securityAPI).

In the previous discussion, we talked about the possibility of implementing an admin option for turning off the auto-creation of user accounts for new LDAP/SSO authentications. Happy to report that we added this option in our 15.3 release: https://www.labkey.org/wiki/home/Documentation/page.view?name=authenticationModule#options

Adam
bront@kcr.uky.edu2016-05-24 06:30bront@kcr.uky.edu2016-05-24 06:30Active Directory Groups and AuthenticationActive Directory Groups and Authentication TEXT_WITH_LINKSClosed     LabKey Support Forum
Adam and Jon,

Thanks to you for clarifying this. And thanks for the note regarding the auto-creation of user accounts. Very helpful.

bront
brendanx2008-02-15 15:52Jon (LabKey DevOps)2018-11-16 23:24ActionURLActionURL TEXT_WITH_LINKSClosed     LabKey Support Forum
Hey Bill,

The correct way to do this is to use a UrlProvider:

ActionURL url = PageFlowUtil.urlProvider(PipelineUrls.class).urlReferer(container);

This is the current best practice for exposing URLs in a module for other modules to use.

Enjoy.

--Brendan
Lili2010-05-10 12:35Jon (LabKey DevOps)2018-11-16 23:24Action to upload Study .zipAction to upload Study .zip TEXT_WITH_LINKSClosed     LabKey Support Forum
No response yet, so please allow me to describe my question again to see if it's clearer this time...

I'm trying to create a new Action that will handle a few tasks in one submission. The tasks include uploading zipped data sheets, processing the data, creating a labkey "Study" subfolder, and dump the data and views into this new subfolder.

This Action will be called within a wiki web part where I have a form to submit.

Please let me know my options.

Thanks!
Nick Kerr2013-01-08 11:31Jon (LabKey DevOps)2018-11-16 23:24Access to FolderTypeAccess to FolderType TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the suggestion Scott.

I've added the folderType name to the LABKEY.container object so this should be available in 13.1.

Thanks,
Nick
Zoya Pasha2017-11-13 20:25Zoya Pasha2017-11-13 20:25Access rights in a moduleAccess rights in a module TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you Jon!!
Jon (LabKey DevOps)2017-11-07 23:07Jon (LabKey DevOps)2017-11-07 23:07Access rights in a moduleAccess rights in a module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Zoya,

Admins have full rights to their respective containers, so there is no way to restrict admins from editing wikis.

Restricting Admins from editing wikis isn't possible without hacking the core code, which isn't supported.

The same goes for queries as well. An admin has rights to edit queries and the design of most tables.

Regards,

Jon
Zoya Pasha2017-11-08 01:52Jon (LabKey DevOps)2018-11-16 23:24Access rights in a moduleAccess rights in a module TEXT_WITH_LINKSClosed     LabKey Support Forum
If I do not give them Folder Administrator rights, and instead just assign them as Author, Reader, and Submitter, they can edit queries, but cannot create new ones. How can I give them the rights for the same?
Jon (LabKey DevOps)2017-11-10 12:41Jon (LabKey DevOps)2017-11-10 12:41Access rights in a moduleAccess rights in a module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Zoya,

Authors, Readers, and Submitters shoudn't have the capability to edit any queries. The only thing they can do is to view the data of the queries, but they have no rights to view the SQL code that the query is comprised of. Those right are strictly for Admins via the Query Browser.

With regard to preventing Admins from editing wikis, the only other possible thing you could do is to hide the menu options for the wikis via CSS code. However, in doing so, you will also be prevented from seeing those options as well, which would make administration more difficult.

Regards,

Jon
jeckels2014-06-20 09:42Jon (LabKey DevOps)2018-11-16 23:24Accessing resource file in Java moduleAccessing resource file in Java module TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Bront,

A couple of options to try, both of which will give you an InputStream:

1. Put the file in the "resources/web" directory for your module. Use ViewServlet.getViewServletContext().getResourceAsStream() with the relative path under that directory. Note that this will also expose the file directly via HTTP as part of the webapp.

2. Put the file under your Java source root. Use getClass().getClassLoader().getResourceAsStream() with the relative path under the source root.

Thanks,
Josh
bront@kcr.uky.edu2014-06-20 10:07bront@kcr.uky.edu2014-06-20 10:07Accessing resource file in Java moduleAccessing resource file in Java module TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Perfect. Thanks for clearing this road block for me.

cheers,

bront
Jon (LabKey DevOps)2015-07-23 16:55Jon (LabKey DevOps)2018-11-16 23:24Accessing raw Assay batch files in R ViewAccessing raw Assay batch files in R View TEXT_WITH_LINKSClosed     LabKey Support Forum
Hello,

When you import an Assay Run, the file should end up in the @files/assaydata directory for the Assay's folder/project under LABKEY_HOME/files/ and then the project name (and folder path), the @files directory, then the assaydata subdirectory.

You should be able to do something like read.csv(file="FULL_FILE_PATH", header=TRUE, sep=",") and dictate the physical path of the file that contains the assay run data.

Regards,

Jon
Jon (LabKey DevOps)2016-01-15 00:29Jon (LabKey DevOps)2018-11-16 23:24Accessing multiple queries in R ViewAccessing multiple queries in R View TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

The R script looks fine.

The error in question though looks like you might either be on an older version of R or an older version of Rlabkey. I know that some changes to SSL compatibility have occurred with R in the last six months (https://cran.r-project.org/web/packages/Rlabkey/NEWS), so upgrading might be required here.

Currently, R is on version 3.2.3 (https://cran.r-project.org/) and Rlabkey is on 2.1.129 (https://cran.r-project.org/web/packages/Rlabkey/index.html)

Can you confirm your version of R and Rlabkey is current?

Regards,

Jon
laurapas2016-01-15 10:59Jon (LabKey DevOps)2018-11-16 23:23Accessing multiple queries in R ViewAccessing multiple queries in R View TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
It looks like we are using older versions. See below.

Is this the only way to access multiple SQL tables within an R View inside LabKey? I can only access one table directly (i.e., labkey.data), but need to use the Rlabkey package to access additional tables within the same script?

  Console output
Loading required package: RCurl
Loading required package: bitops
Loading required package: rjson
R version 3.1.2 (2014-10-31)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] Rlabkey_2.1.125 rjson_0.2.15 RCurl_1.95-4.5 bitops_1.0-6
               _
platform i386-w64-mingw32
arch i386
os mingw32
system i386, mingw32
status
major 3
minor 1.2
year 2014
month 10
day 31
svn rev 66913
language R
version.string R version 3.1.2 (2014-10-31)
nickname Pumpkin Helmet
> proc.time()
   user system elapsed
   1.07 0.03 1.12
Jon (LabKey DevOps)2016-01-15 22:07Jon (LabKey DevOps)2018-11-16 23:23Accessing multiple queries in R ViewAccessing multiple queries in R View TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

My mistake, I had thought you were running these queries in a standalone version of R rather than within the R View Builder.

So I was able to run a similarly designed query within a newly created R view like this:

########################
# This sample code returns the query data in tab-separated values format, which LabKey then
# renders as HTML. Replace this code with your R script. See the Help tab for more details.
write.table(labkey.data, file = "${tsvout:tsvfile}", sep = "\t", qmethod = "double", col.names=NA)

library(Rlabkey)
# Select rows into a data frame called 'mydata'

mydata <- labkey.selectRows(
    baseUrl="https://www.labkey.org",
    folderPath="/Support Tickets/Dashboards/JonY",
    schemaName="lists",
    queryName="ListTest2",
    viewName="",
    colFilter=NULL,
    containerFilter=NULL
)

write.table(mydata, file = "${tsvout:tsvfile}", sep = "\t", qmethod = "double", col.names=NA)

########################

For the second query to work, I had to have library(Rlabkey) being called within it. But that along with the write.table() function allowed my existing table from "labkey.data" and my other table as "mydata" appeared on the view tab successfully.

Also, the version of R on the server I tested this against is on the latest version with the latest version of Rlabkey as well.

I would recommend upgrading your version of R and upgrade your Rlabkey package on the server, then giving the query another try and making sure you load the Rlabkey library within your script.

Give this a try and let us know how it goes.

Regards,

Jon
laurapas2016-02-10 11:32Jon (LabKey DevOps)2018-11-16 23:24Accessing multiple queries in R ViewAccessing multiple queries in R View TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

R installation and packages were updated, but it's still not working within a LabKey R view.

library(Rlabkey)

peptideref <- labkey.selectRows(
  baseUrl="https://labkey-dev.roche.com:8443/labkey",
  folderPath="/gRED/QuaSAR Dev 2/QuaSAR Dev 2 results",
  schemaName="lists",
  queryName="peptidereference",
  viewName="",
  colNameOpt = "fieldname",
  containerFilter=NULL
)

str(peptideref)


Here's what we get in the View tab:

javax.script.ScriptException: javax.script.ScriptException: An error occurred when running the script 'script.R', exit code: 1).
Loading required package: RCurl
Loading required package: bitops
Loading required package: rjson
Error in function (type, msg, asError = TRUE) :
  SSL certificate problem: unable to get local issuer certificate
Calls: labkey.selectRows ... getURI -> curlPerform -> .Call -> <Anonymous> -> fun
Execution halted
Jon (LabKey DevOps)2016-02-10 11:55Jon (LabKey DevOps)2018-11-16 23:23Accessing multiple queries in R ViewAccessing multiple queries in R View TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Is this the same computer that is having problems with running this selectRows as this one?

https://www.labkey.org/home/Developer/Forum/announcements-thread.view?rowId=12302

Or is this a different computer?

Regards,

Jon
laurapas2016-02-10 12:00Jon (LabKey DevOps)2018-11-16 23:24Accessing multiple queries in R ViewAccessing multiple queries in R View TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
No this is on the LabKey server. The other ticket is on the Mac. For the other ticket, I had to transfer the code to my Mac because it's not working on the server, even with the same package versions.
Jon (LabKey DevOps)2016-02-10 15:12Jon (LabKey DevOps)2018-11-16 23:24Accessing multiple queries in R ViewAccessing multiple queries in R View TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

Thanks for upgrading the components and confirming this for us.

I'm wondering whether the SSL configuration is being rejected outright due to it not being configured correctly or possibly being a bad or expired certificate on the server itself.

Can you verify if the certificate that is local on the server is valid?

Regards,

Jon
Jon (LabKey DevOps)2016-02-12 13:13Jon (LabKey DevOps)2016-02-12 13:13Accessing multiple queries in R ViewAccessing multiple queries in R View TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Laura,

We were able to determine that the problem is with the SSL certificate on the dev server and it will need to be updated.

I'm going to be coordinating with a Michel and Nacho to get this resolved.

Regards,

Jon
Leo Dashevskiy2014-12-19 11:14Leo Dashevskiy2014-12-19 11:14A bug with the "Add user" interface?A bug with the "Add user" interface? TEXT_WITH_LINKSClosed     LabKey Support Forum 
jeckels2014-12-19 11:10Jon (LabKey DevOps)2018-11-16 23:24A bug with the "Add user" interface?A bug with the "Add user" interface? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Thanks for the report. We're planning to address this problem during our January development sprint, and it is expected to be fixed in the 15.1 release. Sorry for the inconvenience in the meantime.

Thanks,
Josh
Leo Dashevskiy2013-07-03 13:34Leo Dashevskiy2013-07-03 13:34A bug or an implicit restriction?A bug or an implicit restriction? TEXT_WITH_LINKSClosed     LabKey Support Forum
I see, ok, thanks, I'll keep an eye out for the bug entry resolution...
cnathe2013-07-03 13:15Jon (LabKey DevOps)2018-11-16 23:24A bug or an implicit restriction?A bug or an implicit restriction? TEXT_WITH_LINKSClosed     LabKey Support Forum
Leo,
I was able to reproduce the issue that you are seeing locally. I have opened a LabKey issue for this scenario:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=18187

I haven't looked too much into it yet, but I suspect that the issue is related to the spaces being inserted into the required fields. It looks like when you try to do the insert from the browser via the "Insert New" action, the spaces are trimmed off but when inserted via Rlabkey they are not.

-Cory
Nick Kerr2013-08-09 10:55Nick Kerr2013-08-09 10:55A bug? JavaScript (Ext) error when customizing a grid's viewA bug? JavaScript (Ext) error when customizing a grid's view TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

Thanks for posting this information. I've fixed these image links on trunk so you shouldn't see these 404's going forward.

Thanks,
Nick
Leo Dashevskiy2014-08-07 14:48Leo Dashevskiy2014-08-07 14:48A bug in the Flow Samples joining logicA bug in the Flow Samples joining logic TEXT_WITH_LINKSClosed     LabKey Support Forum
Excellent
kevink2014-07-29 23:03Jon (LabKey DevOps)2018-11-16 23:23A bug in the Flow Samples joining logicA bug in the Flow Samples joining logic TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the repro steps. I'll take a look.
kevink2014-08-07 14:30Jon (LabKey DevOps)2018-11-16 23:24A bug in the Flow Samples joining logicA bug in the Flow Samples joining logic TEXT_WITH_LINKSClosed     LabKey Support Forum
Leo Dashevskiy2013-08-07 14:56Leo Dashevskiy2013-08-07 14:56A bug in multiple Rserve session creations or am I doing something wrong?A bug in multiple Rserve session creations or am I doing something wrong? TEXT_WITH_LINKSClosed     LabKey Support Forum
Chrome Version 27.0.1453.93 running under Ubuntu seems to be fine also. Closing it up...
Dax2013-04-11 16:48Jon (LabKey DevOps)2018-11-16 23:23A bug in multiple Rserve session creations or am I doing something wrong?A bug in multiple Rserve session creations or am I doing something wrong? TEXT_WITH_LINKSClosed     LabKey Support Forum
I can repro this and will investigate further. Turns out you don't need an rserve running, just turn the experimental feature on. Note that when the feature was turned off, I did get two server-side exceptions which indicates that createSession was called twice when running the above code.
Leo Dashevskiy2013-04-11 16:50Jon (LabKey DevOps)2018-11-16 23:24A bug in multiple Rserve session creations or am I doing something wrong?A bug in multiple Rserve session creations or am I doing something wrong? TEXT_WITH_LINKSClosed     LabKey Support Forum
So the session id generation is done along side the actual creation of a session and does not depend on the latter to succeed first?
Dax2013-04-11 17:04Jon (LabKey DevOps)2018-11-16 23:24A bug in multiple Rserve session creations or am I doing something wrong?A bug in multiple Rserve session creations or am I doing something wrong? TEXT_WITH_LINKSClosed     LabKey Support Forum
Correct. The reportSessionId is just an identifier for an underlying R connection. The connection isn't actually created until report execution time.
Leo Dashevskiy2013-08-02 12:47Jon (LabKey DevOps)2018-11-16 23:24A bug in multiple Rserve session creations or am I doing something wrong?A bug in multiple Rserve session creations or am I doing something wrong? TEXT_WITH_LINKSClosed     LabKey Support Forum
For Windows 7, Chrome version 28.0.1500.95 m it seems to work fine, I'll check from the office on Monday, if it works from Linux...
Leo Dashevskiy2015-06-01 10:26Leo Dashevskiy2015-06-01 10:26A bug in executing a query through JavaScript? (Not respecting ORDER BY)A bug in executing a query through JavaScript? (Not respecting ORDER BY) TEXT_WITH_LINKSClosed     LabKey Support Forum
Ok, as explained by Matt, the proper way to use the JS API is to include a sorting config:

LABKEY.Query.executeSql({
                containerFilter: 'CurrentAndFirstChildren',
                containerPath: '/Studies',
                schemaName: 'study',
                sql: SQL,
                sort: 'Num',
                success: function(d){
console.log( Ext.pluck( d.rows, 'Num' ) );
                }
            })

Then things work as expected!
jeckels2013-05-17 15:27Jon (LabKey DevOps)2018-11-16 23:23Ability to import/export wookbooks?Ability to import/export wookbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Ben,

1. Nope, no philosophical reason, just not a usage scenario in the original design. I could imagine being able to export workbooks individually, or to include them all (or a subset) when exporting the parent folder.

2. I could easily see import being part of the Create Folder workflow and/or the Create Workbook workflow. It's sort of like being able to create a new folder based on an existing "template" folder.

Thanks,
Josh
adam2013-05-17 15:39Jon (LabKey DevOps)2018-11-16 23:24Ability to import/export wookbooks?Ability to import/export wookbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
1) No philosophical reason why workbooks can't be imported/exported... it's just, at the moment, there's only one person in the world using them regularly
2) Again, no reason not to add the option to create on import. Current behavior has evolved from the "study reload" scenario (original impetus for all this functionality), so the assumption that you're updating an existing folder has remained. We do create folders when we import hierarchical archives (those that include subfolders). Just need to make sure the import UI is clear... replacing current folder contents vs. creating a new subfolder... and perhaps giving the option to give it a new name (and handling name conflicts).

Where do you think the individual workbook export UI would live? Button on the workbooks webpart grid?

It also seems like folder export should have the additional option to export workbooks.

Adam
Ben Bimber2013-05-17 15:49Jon (LabKey DevOps)2018-11-16 23:24Ability to import/export wookbooks?Ability to import/export wookbooks? TEXT_WITH_LINKSClosed     LabKey Support Forum
i havent thought very hard on this, but yes, i was thinking maybe these would be buttons added to the workbooks webpart. i look over the code this morning, and it looks like most pieces could get re-used pretty easily. i was guessing that import/export would only work for 1 workbook at a time. that's not ideal, but fits what i need it to do.


PS: only 1 person using workbooks??
Jon (LabKey DevOps)2015-11-13 12:41Jon (LabKey DevOps)2018-11-16 23:24500: Unexpected server error with NullPointerException500: Unexpected server error with NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

Thanks for showing us this error!

The NPE is generating due to how the Missing Value Indicator is designed. Since you're attempting to apply it to the Primary Key of the table (a value that is required), it doesn't have the ability to have two columns stand behind it, the raw value and the missing value indicator. This is what is generating the NPE and there should be no reason to use the Missing Value Indicator on any Primary Key since the Primary Key will always have a value.

What we are going to have to do is to create an enhancement to prevent that box from being enabled on a primary key field for a future release of LabKey and update our docs (https://www.labkey.org/wiki/home/Documentation/page.view?name=manageMissing) to indicate that the feature isn't meant to be used on the Primary Key.

Regards,

Jon
Jon (LabKey DevOps)2015-11-13 13:07Jon (LabKey DevOps)2018-11-16 23:24500: Unexpected server error with NullPointerException500: Unexpected server error with NullPointerException TEXT_WITH_LINKSClosed     LabKey Support Forum
Jon (LabKey DevOps)2019-06-07 14:02Jon (LabKey DevOps)2019-06-07 14:02500: Unexpected server error when deleting folders500: Unexpected server error when deleting folders TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Eva,

I am not able to reproduce the error at all while logged in as a Project or a Folder Admin user.

I was able to test this on LabKey 18.3.2 successfully.

Looking at the stack error, it appears to be tied to the pipeline module.

What exactly is inside of these folders that the user is attempting to delete exactly? Are they studies? Assays? What happens if you try to have them delete the objects inside of the folder before trying to delete the folder itself? If the user creates a new folder, can they immediately delete it soon after?

Regards,

Jon
eva pujadas2019-06-13 02:32Jon (LabKey DevOps)2019-06-13 09:28500: Unexpected server error when deleting folders500: Unexpected server error when deleting folders TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,

Thanks for your feedback.

We have LabKey release18.3 and indeed that happens with folders from all projects. The fact is that only site admins can delete folders. When a user creates a folder and immediately tries to delete it without having populated it, deletion also fails, with the same reported error.

That is not happening in our dev LabKey 19.1 instance though.
So, we will upgrade and and check if the issue has been solved.

Best regards,
Eva
Brian Connolly2012-01-27 07:51Jon (LabKey DevOps)2018-11-16 23:24500 error trying to export a large query500 error trying to export a large query TEXT_WITH_LINKSClosed     LabKey Support Forum
Michael,
Can you provide us with little more information about your server and the query that you are attempting to run.

- What version of LabKey are you running
- What is the database type (postgresql or MS SQL Server) and the version that you are using?
- Information about your LabKey Server and database hardware.
-- Are they run on separate servers
-- # CPU, Memory
-- Is the hardware a desktop, server, laptop, etc
- What is the query you are attempting to execute and how are you running it?
- Can you send us an export from the Queries Admin Console
-- Goto your Admin Console -> click on Queries in the Diagnostics section and hit the export button at the top of the page.
- Can you send us the labkey.log file for your server. You can find that in the Tomcat logs directory.

Thank you,

Brian
michael_stover@urmc.rochester.edu2012-01-27 09:45Jon (LabKey DevOps)2018-11-16 23:24500 error trying to export a large query500 error trying to export a large query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Brian,
  We are currently running Labkey 11.1.
We are running Postgres 9.x - I'm not entirely certain right now which.

The server is running both Labkey and Postgres together. specs:

12 cpu cores (athlon)
32GB memory, java heap starts at 4GB, can grow to 20
It's a poweredge server

I've attached the query export and the labkey log gotten via the web interface. In the query log, find "pivot". The first hit is the query in question.
Brian Connolly2012-01-27 09:49Jon (LabKey DevOps)2018-11-16 23:24500 error trying to export a large query500 error trying to export a large query TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you for the information and the files. I will look at them now.

I have one last question, what is the configuration of your postgresql database like. I am particularly interested in the the settings
- shared_buffers
- wal_buffers
- effective_cache_size
- work_mem

You can find these in the file postgresql.conf


-Brian
michael_stover@urmc.rochester.edu2012-01-27 10:01Jon (LabKey DevOps)2018-11-16 23:24500 error trying to export a large query500 error trying to export a large query TEXT_WITH_LINKSClosed     LabKey Support Forum
Unfortunately I don't have access to that info. I've requested it and I'll get back to you.
michael_stover@urmc.rochester.edu2012-01-27 12:36Jon (LabKey DevOps)2018-11-16 23:24500 error trying to export a large query500 error trying to export a large query TEXT_WITH_LINKSClosed     LabKey Support Forum
see postgres conf attached
Brian Connolly2012-01-27 14:56Jon (LabKey DevOps)2018-11-16 23:24500 error trying to export a large query500 error trying to export a large query TEXT_WITH_LINKSClosed     LabKey Support Forum
Michael,

The problems you are experiencing are most likely being caused by the configuration of your PostgreSQL server. From the configuration file that you sent me, it looks like the database is using the default configuration.

The default configuration for PostgreSQL is meant to work on servers with 512MB or memory or less. If you change the configuration of your PostgreSQL server, the performance of you server will likely improve.

Documentation on tuning your postgresql server is available at

http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server and https://www.packtpub.com/article/server-configuration-tuning-postgresql

If you do not want to take the time to review all the documentation above, changing the following settings should provide a significant performance improvement

-shared_buffers = 12% of total memory size(but no larger than 2GB)
-work_mem = 10MB
- maintenance_work_mem = 1024MB
- wal_buffers = 4MB
- checkpoint_segments = 10   
- checkpoint_timeout = 15min
- enable_material = off
random_page_cost = 1.5
- effective_cache_size = 75% of total memory size

NOTE: I know very little information about your server configuration and other programs running on the server, so I recommend consulting with your DBA/System Administrator before making these changes. Or using these values as a starting point and evaluating the server performance after making the change.

Lastly, I would recommend reducing the Max Heap setting in Tomcat to either 12 or 16GB as the PostgreSQL database will now be using more of the servers memory.

-Brian
michael_stover@urmc.rochester.edu2012-01-30 05:30Jon (LabKey DevOps)2018-11-16 23:24500 error trying to export a large query500 error trying to export a large query TEXT_WITH_LINKSClosed     LabKey Support Forum
Thanks for the help Brian!
WayneH2018-11-26 12:16WayneH2018-11-26 12:16401 unauthorized error... using deleterows query401 unauthorized error... using deleterows query TEXT_WITH_LINKSActive     LabKey Support Forum
Hi Jon,

thanks for your response.. We made the change to http security.. It was indeed set to 'all process' and not 'admin only' as was the case in our 17.3 test instance.. the one problem that remains is while our data uploads works in our test with all versions attached to postgres db ( tested to 32k records), it does not work with MSSQL server on Labkey. gave a '500 internal error' perhaps related to some constraint in MSSQL as I think we discussed earlier.
Jon (LabKey DevOps)2018-11-14 14:18Jon (LabKey DevOps)2018-11-14 14:18401 unauthorized error... using deleterows query401 unauthorized error... using deleterows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

Yes, there have been some changes in how we handle API POSTs, specifically dealing with CSRF.

https://www.labkey.org/Documentation/wiki-page.view?name=csrfProtection

For your API calls to work, you need to pass a CSRF token if your CSRF settings in the Admin Console > Site Settings are set to "ALL POST REQUESTS". You can temporarily set it to "Admin Only" to eliminate the need to do this. However, in LabKey 19.1, this option will no longer be available and all POSTs will require a CSRF token to be passed.

Regards,

Jon
Ben Bimber2018-11-14 14:26Jon (LabKey DevOps)2018-11-16 23:23401 unauthorized error... using deleterows query401 unauthorized error... using deleterows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jon,
 
Does LabKey expect to update any of the client APIs (R, java, perl, python, etc) to automatically handle this, like JS bindings do?
Ben Bimber2018-11-18 16:28Jon (LabKey DevOps)2018-11-19 15:45401 unauthorized error... using deleterows query401 unauthorized error... using deleterows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Great. We dont actively use perl, but it's good to have them all in parity.

Wayne - glad to see the perl API is still getting some use.
Jon (LabKey DevOps)2018-12-10 20:33Jon (LabKey DevOps)2018-12-10 20:33401 unauthorized error... using deleterows query401 unauthorized error... using deleterows query TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Wayne,

I'm not certain of what 500 Internal Error you're referring to here for MS SQL. But that does sound like a separate issue from the original problem with the CSRF token and using the Perl API.

Regards,

Jon
jeckels2018-11-18 16:23jeckels2018-11-18 16:23401 unauthorized error... using deleterows query401 unauthorized error... using deleterows query TEXT_WITH_LINKSActive     LabKey Support Forum
Hi Ben,

The R, Java, and Python client APIs have all been updated such that they should pass the CSRF token seamlessly to the API user. Of course, the code that's using it might need to update the version of the API library to get the new code.

The Perl API doesn't yet handle this. I've logged an issue:

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=36113

Thanks,
Josh
Leo Dashevskiy2012-09-17 14:09Leo Dashevskiy2012-09-17 14:092 copies of the same web part on one page issue2 copies of the same web part on one page issue TEXT_WITH_LINKSClosed     LabKey Support Forum
Hopefully it's solved.

Thanks, Nick - the new way with xml based configuration seems and looks even cleaner.

But seems to me that the major fix that helped me is the fact that I moved the line:

var webPartDiv = <%=webpartContext%>.wrapperDivId;

inside the init() method (before it was outside!)
Nick Kerr2012-09-14 14:02Jon (LabKey DevOps)2018-11-16 23:242 copies of the same web part on one page issue2 copies of the same web part on one page issue TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Leo,

This might be a race condition between when these files are marked as loaded and another webpart skipping directly to the success function.

The best solution is to declare the set of dependent files as dependencies in the *.view.xml for your webpart. This way those scripts will get loaded when the page is declared, and the document is open.

If you can't do this, you might try using a separate script tag and placing the LABKEY.requiresScript() call in there, but this might still hit the condition.

Thanks,
Nick
Jon (LabKey DevOps)2015-08-24 12:14Jon (LabKey DevOps)2018-11-16 23:232 Assay Run Web Parts in One Folder2 Assay Run Web Parts in One Folder TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Cheryl,

Unfortunately, once an Assay Run is created and folder is assigned, there is no way to move it around via the UI or through an API call with the way things are currently designed.

The only way to have the data placed in a different folder is to re-create the assay run for that specific folder at this time.

If a feature change were to be made to allow an assay run move, the scoping would have to be very precise so it wouldn't cause a conflict or break the assay itself.

Let us know if you have any further questions.

Regards,

Jon
Jon (LabKey DevOps)2018-11-27 17:19Jon (LabKey DevOps)2018-11-27 17:1916.3 to 18.2 Upgrade - Issue Tracker Differences16.3 to 18.2 Upgrade - Issue Tracker Differences TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Sara,

I tested out 16.3 and the behavior you're describing is the same as how you're saying 18.2 is behaving, so this is appearing to be by design.

When testing both versions, I'm seeing the same consistent behavior where the users need to be listed in a group for the project and they also need to be at least Editors or higher.

Are you certain that the previous behavior you were seeing didn't require this? The Issue Tracker for 16.3 is pretty much the same framework as 18.2, which include how the permissions function for assignment of issues.

Regards,

Jon
deniro tyvon2019-04-06 18:00Jon (LabKey DevOps)2019-04-09 11:3516.3 to 18.2 Upgrade - Issue Tracker Differences16.3 to 18.2 Upgrade - Issue Tracker Differences TEXT_WITH_LINKSClosed     LabKey Support Forum
I'm seeing the same consistent behavior where the users need to be listed in a group for the project and they also need to be at least Editors or higher.
Ben Bimber2013-08-29 10:00Jon (LabKey DevOps)2018-11-16 23:2313.2 menu bar changes13.2 menu bar changes TEXT_WITH_LINKSClosed     LabKey Support Forum
note: the menu collapsing happens both when actually selecting the combo item, and frequently when simply moving the cursor outside of the menu in order to click an item (but does not actually require a click).
alanv2013-08-29 10:43Jon (LabKey DevOps)2018-11-16 23:2413.2 menu bar changes13.2 menu bar changes TEXT_WITH_LINKSClosed     LabKey Support Forum
We did change the behavior for the collapsing of the menus. The old behavior was to close the menus when the user moves their mouse away, however there was a bug that often resulted in a menu that would not disappear, as a result we now close any open menus if the user clicks outside of the menu area or if they move their mouse outside of the menu area.

If the WebPart is custom I would recommend making some changes to it so the combo box does not show outside of the menu area. If it is one of the standard WebParts please let me know so I can open a new issue.

Thanks,
Alan
jeckels2013-10-15 17:57Jon (LabKey DevOps)2018-11-16 23:2313.2 Labkey.Query.selectRows latency13.2 Labkey.Query.selectRows latency TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Anthony,

What target queries are you hitting with the API? It sounds like study datasets?

Do you see similar perf differences on other, unrelated queries, like core.containers or exp.runs?

Thanks,
Josh
Anthony Corbett2013-10-16 09:25Jon (LabKey DevOps)2018-11-16 23:2313.2 Labkey.Query.selectRows latency13.2 Labkey.Query.selectRows latency TEXT_WITH_LINKSClosed     LabKey Support Forum
Josh,

Yes, these are study datasets. I ran API calls against core.containers and exp.runs and they don't have the same latency.

-
Anthony
Anthony Corbett2013-10-15 15:36Jon (LabKey DevOps)2018-11-16 23:2313.2 Dataset label versus name - Can't find ViewName13.2 Query API - Dataset label versus name - Can't find ViewName TEXT_WITH_LINKSClosed     LabKey Support Forum

I've uncovered another area affected by this: QueryWebPart. If you configure a QueryWebPart using dataset label as the queryName, as you would in 13.1, it doesn't find the custom viewName, but instead of erroring it shows the default view.

new LABKEY.QueryWebPart({
      renderTo: 'QWPgrid',
          containerPath: LABKEY.ActionURL.getContainer(),
          schemaName: "study",
          queryName: "Ancillary Illness Visit",
      viewName: "Ancillary Illness Visit Overview"
});

The queryName above is the dataset's label and it doesn't show the correct viewName but the default. If you change this to the dataset's name it will show the correct viewName.
cnathe2013-10-16 06:55Jon (LabKey DevOps)2018-11-16 23:2413.2 Dataset label versus name - Can't find ViewName13.2 Query API - Dataset label versus name - Can't find ViewName TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony,
In 13.2 we did make some changes so that queries/views/reports are associated with a dataset name instead of label as we assume that the dataset label is more likely to change than the name would be. The intent is that we are still backwards compatible so that we are able to resolve the dataset queryName based on either the name or label. However, it looks like you found a case we didn't check for when trying to resolve the dataset view name using the label. I have open a 13.2 issue for this here:
https://www.labkey.org/issues/home/Developer/issues/details.view?issueId=18787

I have a local fix and should be able to get it checked in soon.
Thanks,
Cory
Anthony Corbett2013-10-16 07:01Jon (LabKey DevOps)2018-11-16 23:2413.2 Dataset label versus name - Can't find ViewName13.2 Query API - Dataset label versus name - Can't find ViewName TEXT_WITH_LINKSClosed     LabKey Support Forum
Cory,

Thanks for looking into this.

Will a new 13.2 build be made available that includes this fix? We will hoping to get this along with our upgrade to 13.2.

Also, is it Labkey's recommendation going forward to use dataset name for queryName parameter?

Thanks,

Anthony
cnathe2013-10-17 07:39Jon (LabKey DevOps)2018-11-16 23:2413.2 Dataset label versus name - Can't find ViewName13.2 Query API - Dataset label versus name - Can't find ViewName TEXT_WITH_LINKSClosed     LabKey Support Forum
Anthony,
The fix for this issue was checked in to the 13.2 release branch with r28949. We'll make sure to post a build somewhere that you can grab it shortly.

Regarding your question, LabKey has now changed things so that the dataset name is considered the query name for a dataset, when you look in the schema browser for example. Our recommendation would be to use the dataset name for the queryName parameter of those API calls going forward. We should however be backwards compatible in resolving the query name from the dataset label as well with this fix.

-Cory
cnathe2013-10-17 11:26Jon (LabKey DevOps)2018-11-16 23:2313.2 Dataset label versus name - Can't find ViewName13.2 Query API - Dataset label versus name - Can't find ViewName TEXT_WITH_LINKSClosed     LabKey Support Forum
Dave Bradlee2013-05-16 16:55Jon (LabKey DevOps)2018-11-16 23:2413.1 Specimen Requests13.1 Specimen Requests TEXT_WITH_LINKSClosed     LabKey Support Forum
Hi Jen,

I have verified that this is happening in 13.1. It is a bug, which I have opened in the Issues database (#17833).

Thanks.

Dave
Dave Bradlee2013-05-28 08:29Jon (LabKey DevOps)2018-11-16 23:2313.1 Specimen Requests13.1 Specimen Requests TEXT_WITH_LINKSClosed     LabKey Support Forum
We have fixed this bug in version 13.1. (as of last Thursday 5/23).

Dave
jdutra2013-05-28 08:35Jon (LabKey DevOps)2018-11-16 23:2413.1 Specimen Requests13.1 Specimen Requests TEXT_WITH_LINKSClosed     LabKey Support Forum
Thank you!!
Brian Connolly2011-05-02 10:52Jon (LabKey DevOps)2018-11-16 23:2311.1: did something change about handling webdav or file permissions?11.1: did something change about handling webdav or file permissions? TEXT_WITH_LINKSClosed     LabKey Support Forum
Ben,
Nothing was changed that would cause this type of behavior. This is most likely caused by something changing at the file system level. My guess is that it is a permissions problem. The labkey.log file should have some information in it.

-Brian
Trey2010-02-16 15:52Jon (LabKey DevOps)2018-11-16 23:2310.1 is branched10.1 is branched TEXT_WITH_LINKSClosed     LabKey Support Forum
TeamCity is now running automatic builds on branch checkin and daily builds on 10.1

All failures in the "labkey branch 10_1" project should be assumed to not be test harness failures.

Thanks,
Trey