10-13-2011 07:05 AM
Hi, I'm inside an automation chain and I need to get the current user's private workspace. The trouble is that user names are in the form: [email protected], and the private workspace is named like 'username-domain-com'. How can I write a query replacing both "@" and "." from the current user's name with "-"?
SELECT * FROM Document WHERE ecm:path='/default-domain/UserWorkspaces/@{CurrentUser.name}'
is evaluated as
SELECT * FROM Document WHERE ecm:path='/default-domain/UserWorkspaces/[email protected]'
but I need it to come out as
SELECT * FROM Document WHERE ecm:path='/default-domain/UserWorkspaces/myUser-domain-com'
02-10-2012 06:41 AM
if you really need this feature on your old version of Nuxeo, and if you have little development skills you can:
create a nuxeo plugin with Nuxeo IDE, it's really easy.
Create a new operation given a void as input and Document as output
declare a variable that will receive the username
@Param(name = "username", widget = Constants.W_TEXT)
protected String username;
And in your operation method, just get the userworkspace service
UserWorkspaceService uws = Framework.getLocalService(UserWorkspaceService.class);
I let you check how to get the workspace from it 🙂
Hope will help you
10-13-2011 12:17 PM
FYI in the next version ofNuxeo (5.4.3 or whatever it's named) a UserWorkspace.Get operation has been added that will help you once you upgrade (cf NXP-7638).
02-10-2012 06:41 AM
if you really need this feature on your old version of Nuxeo, and if you have little development skills you can:
create a nuxeo plugin with Nuxeo IDE, it's really easy.
Create a new operation given a void as input and Document as output
declare a variable that will receive the username
@Param(name = "username", widget = Constants.W_TEXT)
protected String username;
And in your operation method, just get the userworkspace service
UserWorkspaceService uws = Framework.getLocalService(UserWorkspaceService.class);
I let you check how to get the workspace from it 🙂
Hope will help you
02-14-2012 10:46 AM
Other solution: you can use a "Run Script" operation before and produce your string using some MVEL expressions, mostly the String API (the same you have on java :http://docs.oracle.com/javase/6/docs/api/java/lang/String.html). You can use replace, match, .... and work on your string.
An exemple of script put in a Run Script (that doesn't do what you aim at though, just an exemple):
org.nuxeo.ecm.core.api.Blob myBlob=Document.getProperty("file:content"); Context["extension"]="none"; Context["filename"] = myBlob.getFilename(); String[] splitedFilename=Context["filename"].split("\."); Context["extension"]="none";if (splitedFilename.length>=2){Context["extension"]=splitedFilename[splitedFilename.length-1]};
Attention: Blogs & Forums are in READ-ONLY mode from Oct 9-19 as we transition to our new platform. Learn more.
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.