You are here: Custom Attributes > searchEntityByCustomAttribute

Search Entity By Custom Attribute

Description

Retrieves an entity by custom attribute and its value.

Default Protocol Method Type URI
HTTPS GET searchEntityByCustomAttribute.xml

Query Parameters

Parameter Description Valid Values Optional
templateType

EMS Entity for which you want to define a custom attribute. Possible values are:

  • 1(Feature)
  • 2(Product)
  • 4(Customer)
  • 5(Contact)
  • 6(Entitlement)
Integer No
attributeName Name of the custom attribute. String No
attributeValue Value of the custom attribute. String No

Sample Code

import java.io.IOException;
import java.net.URLDecoder;

//..............................
//..............................
//..............................
import org.apache.http.params.HttpParams;
public class EMSSample {
	private static DefaultHttpClient httpclient = new DefaultHttpClient();
	private static Principal principal = null;
	private static StringBuffer query;
	//..............................
	//..............................
	//..............................
	public static String searchEntityByCustomAttribute.xml()throws Exception  {
		if(!verifyLogin()){
			return "login failed";
		}
		HttpContext context = new BasicHttpContext();
		context.setAttribute(ClientContext.USER_TOKEN, principal);
		HttpGet get = new HttpGet("https://localhost:8443/ems/3.6/searchEntityByCustomAttribute.xml");
		query = new StringBuffer();
		setParameter("attributeName", "custom");
		setParameter("templateType", "1");
		setParameter("attributeValue", "test");
		get.setURI(new URI(URLDecoder.decode(get.getURI() + query.toString(),"UTF-8")));
		HttpResponse response = httpclient.execute(get, context);
		HttpEntity entity = response.getEntity();
		byte[] b = null;
		if (entity != null) {
			long l = entity.getContentLength();
			b = new byte[(int) l];
			entity.getContent().read(b);
			entity.consumeContent();
		}
		return new String(b);
	}
	static void setParameter(String key, String value) {
		if (query.toString().equals("")) {
			query.append("?" + key + "=" + value + "&");
		} else {
			query.append(key + "=" + value + "&");
		}
	}
}
 

Sample Response

<?xml version="1.0" encoding="UTF-8"?>
<emsResponse>
   <attribute>rr</attribute>
   <attributeValue>rr</attributeValue>
   <entities>
      <entitie>
         <description />
         <enfFeatureId>1</enfFeatureId>
         <featureId>1</featureId>
         <featureName>F1</featureName>
         <namespaceId>1</namespaceId>
         <namespaceName>ns</namespaceName>
      </entitie>
   </entities>
   <stat>ok</stat>
   <templateType>Feature</templateType>
   <total>1</total>
</emsResponse>

See Also:

Output Format for Failure

Error Codes

Error Code Description
100 Invalid request parameter.
101 You are not authorized to use this service.
102 Invalid data entered.
107 An internal error occurred! Please report the error to System administrator.
118 {field} should be of data type integer. [Note: This error code is applicable for the fields - featureId, License modelId, entId, ftrId, customerId, lmId, templateType, lineItemId, CustomerId, stationCount, status, and granularity.]
122 {field} is a required field and should have a not null value. [Note: This error code is applicable for the fields - Eid, namespaceName, featureName, startDate, endDate, userIds, featureId, productName, productVersion, detailsLM, lmId, templateType, customAttribute, lineItemId, customerRefId, granularity, loginId, oldPassword, and newPassword.]
128 You should log on first.
711 Invalid Template Type!
718 Attribute not found.
1081 Invalid Web service version provided
1084 No Web service version provided
1088 The EMS system is running on HTTPS. Please provide the correct Web service URL.