-
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?
BrightDoor doesn't officially support any specific language. The BrightBase Web Services API is SOAP 1.1
compliant and therefore works with any number of languages since it relies only on the HTTPS protocol. We do
provide
examples in several popular languages to help you get started.
-
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?
We require that you connect using HTTPS which ensures all data, including username and password authentication, is encrpted.
Web Service usernames are separate from BrightBase usernames, allowing you to separate out what operations may be allowed
via a Web Service verses the BrightBase CRM application.
Please see the
Examples page whichs shows you how to connect in the popular programming languages.
-
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?
-
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.
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?
If a problem occurs when you submit data the BrightDoor Web Services API will return a "SoapFault" that you
can inspect for errors, including validation errors. The HTTP Status Code will be '500' (as opposed to '200') so
be certain you still inspect the result for a SoapFault XML document (see
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507)