cancel
Showing results for 
Search instead for 
Did you mean: 

Multi-Value property verification

merimm
Champ in-the-making
Champ in-the-making
Hello,

Please, ¿could anybody explain me how to detect if a property is multivalued or not (given a model)?

For example, this is a multivalued property definition:
<property name="my:group">
<title>Group</title>
<type>d:text</type>
<mandatory>true</mandatory>
<multiple>true</multiple>
</property>

Then, I can obtain its type, name, title, etc., but not if it is multivalued:
String prop = "my:group";
DictionaryServiceSoapBindingStub dssbs= WebServiceFactory.getDictionaryService();
org.alfresco.webservice.types.PropertyDefinition[] propDefs = dssbs.getProperties(new String[] {prop});
System.out.println("          Descripción: "+propDefs[0].getDescription());
System.out.println("          DefaultValue: "+propDefs[0].getDefaultValue());
System.out.println("          DataType: "+propDefs[0].getDataType());
System.out.println("          Name: "+propDefs[0].getName());
System.out.println("          Title: "+propDefs[0].getTitle());

I am thankful for your help.

Best regards,
merimm
5 REPLIES 5

renou
Champ in-the-making
Champ in-the-making
Hello,

You can access the data dictionary with the DictionaryService object which give you all information you need about the data dictionary


// prop is the qname of your property
QName prop = QName.createQName(qname);
this.dictionaryService.getProperty(prop).isMultiValued()


Renou

cleseach
Star Contributor
Star Contributor
Nice try Renou. You're right when using Java API.
In the present case, we are talking about WebServices.

Merimm, it seems that you can't find if a property is multivalued with WebServices.
Maybe you should post a "multivalued criteria support" request in JIRA. 

Regards,
Charles Le Seac'h

ingdade
Champ in-the-making
Champ in-the-making
Hello,
i have more or less the same problem managing multiple value property using web service (from php alfresco library)

i write a small application in php using php library.

I use a form to submit metadata. One of the property accept multiple value :

<property name="sc:annotazione">
<type>d:text</type>
<multiple>true</multiple>
</property>

To insert this metadata in Alfresco i use

$annotazione [] = $_POST['Annotazione1'];
$annotazione [] = $_POST['Annotazione2'];
$properties["{http://www.someco.com/model/content/1.0}annotazione"] = $annotazione ;



But if i go in Alfresco web client (detail page for a document) i can't see them. In the field is written "array" and i can't modify. delete orr add other value for the property becouse i get this exception:

java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:144)
at org.alfresco.web.ui.repo.component.UIMultiValueEditor.broadcast(UIMultiValueEditor.java:362)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:139)
at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.alfresco.module.vti.VtiContextFilter.doFilter(VtiContextFilter.java:94)
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:210)
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:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
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:685)
at java.lang.Thread.run(Thread.java:619)

How i have to insert multiple value from php if i want to continue using also Alfresco web client?

deepali
Champ in-the-making
Champ in-the-making
I am also facing the same issue using web service.

goldfiled
Champ in-the-making
Champ in-the-making
Hello,
I have the same problem,  query nodes via web service, 
for my aspect that property with multiple true now return null,  :x
but multiple false return ok. :roll:
Is there any update on this issue?

Thanks in advance.