• How can I use the BrightDoor BrightBase API?
Contact your Account Manager for a username and password.
  • What is the URL of the WSDL?
This is customer, deployment, and version dependent. Please contact your Account Manager for this information.
  • Do you offer an SDK or any other way of access the BrightDoor BrightBase system other than Web Services?
No. We believe our Web Services API provides a comprehensive set of operations.
  • Which programming languages do you support?
  • I see "Get" and "Update" methods but no "Insert" or "Delete" methods?
The "Update" methods are also "Insert" methods. Depending upon the "Id" property of the entity you submit, an insert or update will be performed. For inserts, the "Id" property should be set to "-1". We do not offer "Deletes" through the Web Services API for security reasons.
  • What does the error "Unexpected row count: 0; expected: 1" mean?
The most probable cause is that you provided an "Id" for an entity that does not exist. Ids must be "-1" for new entities or a valid Id. Some programming languages will turn an empty/null int property into "0" while others will try and leave it blank. You should make certain you initialize your entities to "-1" if you wish to insert a new entity.
  • SoapFault exception: [soap:Client] Server was unable to read request. ---> There is an error in XML document (2, 1163). ---> The string '' is not a valid Boolean value.
When translating the entity into XML, some programming languages will turn an empty/null datetime or boolean property into an empty node (e.g. or ) which will cause an XML parse error since the empty string cannot be parsed into a boolean or datetime. It is important you either provide values for these types or set (if available) it so the node is not created at all.
  • My hosting company requires that we submit our SSL calls through its proxy. How do I do this?
The answer varies depending upon the language you are using. A couple of examples below should get you started.

In Java, assuming you want to set the proxy for the entire VM:
						  
Properties props = new Properties(System.getProperties());
props.put("http.proxySet", "true");
props.put("http.proxyHost", "proxy.ssl.myhosting.company.com");
props.put("http.proxyPort", "8080");
Properties newprops = new Properties(props);
System.setProperties(newprops);

In PHP5: You need to set the 'proxy_host' and 'proxy_port' attributes when setting up your SoapClient:
						  
$client = new SoapClient("https://--YOUR--DEPLOYMENT--?WSDL",
	array("login" => "--YOUR WEBSERVICE USERNAME--",
		"password" => "--YOUR WEBSERVICE PASSWORD--",
		"proxy_host" => "proxy.ssl.myhosting.company.com",
		"proxy_port" => "8080",
		"classmap" => $classmap,
		"trace" => 0));

  • How do the Web Services authenticate?
  • What if the programming language I'm using doesn't allow the 'Authorization' HTTP Header?
Some programming languages (ActionScript to name one) do not allow you to set the 'Authorization' HTTP header, which is required to provide your username and password. To handle this, you may use the custom 'BB-Authorization' HTTP header instead. If your programming languages does not allow custom headers, then you cannot use the BrightBase API with that language.
  • Why can't I access all of the Web Methods defined in the WSDL?
For convenience we offer a single endpoint to all Web Service users, but you may access only those methods which you have been granted access to. In some cases you may have access to a particular Web Method if you are dealing with a particular entity type, but may have restricted access with dealing with another entity type.
  • I get the error message 'Update of this object is not supported via this interface.' What does that mean?
Certain objects are exposed to you can read data from them. However, we do not allow the updating of data either for security reasons or because the object is a lookup object.
  • Why must we use SSL to communicate to the Web Services?
Because sensitive information, including authentication handshakes, take place we require that all Web Service calls be transported over the https protocol. We use the standard https port of 443, so most firewalls already have this port open.
  • If I need access to data and there is not currently a Web Services method available, how do I go about getting one added?
We try our best to provide as much exposure to your data via our published Web Services API. If there is something our standard implementation does not handle, please contact your Account Manager. They will ensure the requests gets routed to the internal product manager for consideration in a future release.
  • What development tools does BrightDoor recommend to develop client applications to communicate with the BrightBase Web Service API?
For C# use, we recommend Microsoft Visual Studio. For Java development, we recommend the Eclipse IDE and Axis.
  • Is there a test or development version of my database I can use to develop against and avoid changing my life data?
Currently there is not. All calls made into your database using the BrightBase Web Services API will be reflected in your live system(s). So be very careful. As a best practice, we recommend developing your applications prior to your launch. Your Account Manager can advise you on this and other things related to third-party integration processes.
  • What is the BDQL?
The BDQL is the BrightDoor Query Language and can be used with the FindObjects method. It is based on the Hibernate Query Language (HQL). Using the BDQL you can obtain almost any piece of information from the BrightBase data repository.
  • What do the objects end with "To"?
"To" stands for "Transfer Object". We follow the "Transfer Object" OO Design Pattern (also known as the Value Object Design Pattern) which allows us to expose our entities to you in a cross-platform manner. The transfer object versions you use with the API are translated into objects that the BrightBase repository uses. For several reasons, including security, some of the Transfer Objects cannot be used to update data, only query it.
  • What are the "Simple" objects and methods?
The various "Find*" methods grant access to almost any piece of data in the BrightBase repository and the "Update*" methods allow inserting or updating most data as well. However, for easy (e.g. 'simple') access which requires less knowledge of the data repository the API provides helper methods and objects. These 'simple' objects flatten some of the more complex objects for easier usage.
  • I'm getting a 500 server error. How can I debug?


Real Estate Sales & Marketing for the New World.    1-800-894-5982


© 2005-2008 BrightDoor Systems, Inc. All Rights Reserved.