Examples of using the webservice (SOAP) to integrate with SuperOffice

Hi

We have client devloping ontop of SuperOffice a so call facade for their "Customer Model" ak companies in SuperOffice.
This facade is published in their internal API-Manager allowing control to whom is interacting with SuperOffice (backbone)

In current setup they have built the facade on the REST API, this works but every time a new version of SuperOffice is released they need to upgrade the scheema they say. When now testing towards SuperOffice 9, the the facade is not working.
Would SuperOffice ever consider to provide a schema update for the REST-API ? to be used by this type of customers?
My old thread about this:
https://community.superoffice.com/en/developer/forum/rooms/topic/netserver-api-group/web-services/is-there-any-official-xml-schema-xsd-for-the-so-rest-api/

Anyway
We have therefor started to investigate if a switch to the SOAP base webservice is an option. Since they can then use WSDL to update their schema(s). We have got basic communication that way working. eg fetching a ticket and fetching a certian company. the problem comes when we want to search for data. Like companies having a ceratin number2, a certain name or a certain orgnr. We would like examples for what SOAP to send to get this working. Have searched the form but found litle, most people seam to work with programticly access the Net.Server.

We also need to find compaines,person, using values stored in extra tables where relation to contact and/or person exist.
eg a look up from externa system bring a "key" that is stored in an Service Extra table 

We are using SOAP UI to get the envlops of XML to send, our problem is what to put in all the fields.

Like this example. for FindFromRestrictions in the find.svc endpoint.

It is somewhat hard to understand what to subsitute the question-mark that SoapUI fills when generating the request.
For start a working XML for below where finding a company from number2, name and org would be great.

And also if this is the endpoint to use?? Any better way of finding stuff ?
DynamicArchive Provider? Examples? 


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.superoffice.net/ws/crm/NetServer/Services88" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<soapenv:Header>
<ser:TimeZone>
<!--Optional:-->
<ser:SoTimeZoneId>0</ser:SoTimeZoneId>
<!--Optional:-->
<ser:SoTimeZoneLocationCode>0</ser:SoTimeZoneLocationCode>
</ser:TimeZone>
<ser:Credentials>
<!--Optional:-->
<ser:Ticket>7T:OQBiAGYAM­gBkADIAMQAyAGUAZQBjADkAYQA4ADYAZABlADUAYwBlADUAYgBlAGUAMQA1ADcAZgBjADkAZQAyADsAMQAzADgAOQAzADUAOAA4ADkAMAA=</ser:Ticket>
</ser:Credentials>
<ser:ApplicationToken></ser:ApplicationToken>
</soapenv:Header>
<soapenv:Body>
<ser:FindFromRestrictions>
<!--Optional:-->
<ser:Restrictions>
<!--Zero or more repetitions:-->
<ser:ArchiveRestrictionInfo>
<!--Optional:-->
<ser:Name>?</ser:Name>
<!--Optional:-->
<ser:Operator>?</ser:Operator>
<!--Optional:-->
<ser:Values>
<!--Zero or more repetitions:-->
<arr:string>?</arr:string>
</ser:Values>
<!--Optional:-->
<ser:DisplayValues>
<!--Zero or more repetitions:-->
<arr:string>?</arr:string>
</ser:DisplayValues>
<!--Optional:-->
<ser:ColumnInfo>
<!--Optional:-->
<ser:DisplayName>?</ser:DisplayName>
<!--Optional:-->
<ser:DisplayTooltip>?</ser:DisplayTooltip>
<!--Optional:-->
<ser:DisplayType>?</ser:DisplayType>
<!--Optional:-->
<ser:CanOrderBy>?</ser:CanOrd­erBy>
<!--Optional:-->
<ser:Name>?</ser:Name>
<!--Optional:-->
<ser:CanRestrictBy>?</ser:CanRestrictBy>
<!--Optional:-->
<ser:RestrictionType>?</ser:RestrictionType>
<!--Optional:-->
<ser:RestrictionListName>?</ser:RestrictionListName>
<!--Optional:-->
<ser:IsVisible>?</ser:IsVisible>
<!--Optional:-->
<ser:­Width>?</ser:Width>
<!--Optional:-->
<ser:IconHint>?</ser:IconHint>
<!--Optional:-->
<ser:HeadingIconHint>?</ser:HeadingIconHint>
</ser:ColumnInfo>
<!--Optional:-->
<ser:IsActive>?</ser:IsActive>
<!--Optional:-->
<ser:SubRestrictions/>
<!--Optional:-->
<ser:InterParenthesis>?</ser:InterParenthesis>
<!--Opti­onal:-->
<ser:InterOperator>?</ser:InterOperator>
<!--Optional:-->
<ser:UniqueHash>?</ser:UniqueHash>
</ser:ArchiveRestrictionInfo>
</ser:Restrictions>
<!--Optional:-->
<ser:ProviderName>findcontact</ser:ProviderName>
<!--Optional:-->
<ser:PageSize>0</ser:PageSize>
<!--Optional:-->
<ser:PageNumber>0</ser:P­ageNumber>
</ser:FindFromRestrictions>
</soapenv:Body>
</soapenv:Envelope>

This topic from 2013 is almost exactly of what want, eg documentation of how to send SOAP-messages 

Topic | SuperOffice Community

RE: Examples of using the webservice (SOAP) to integrate with SuperOffice

Hi Anders,

There is a lot to unpack in your question. :-)

REST/SOAP APIs

Should you consider migrating to SOAP from REST. No, that would be going backwards in terms of industry trends. We are moving away from SOAP and will likely stop pushing updates to those API's, eventually. We are advocating people adopt our REST API.

As for schemas....we publish both for SOAP and REST.

On the main SOAP page are links to download all versioned endpoints, and clicking on a versioned link will give you a listing of all agent endpoint. When you click on one, for example the Services88.ContactAgent endpoint, you can download the WSDL for just that one endpoint. 

Click on a Services88.ContactAgent method, for example the ContactAgent.GetContactEntity method, and you will see the XML messages that will get send to the server and the response the server will return. These are what messages you would see in the SOAPUI application.

On the main WebApi (REST) page, you will find schema (Swagger) file downloads for the two flavors of REST. 

  1. RESTful URLs (uses the HTTP verbs GET/PUT/POST/DELETE)
  2. RESTful Agents (uses only HTTP POST, where URLs are Service Agent methods)

Search APIs

In the SuperOffice Find API article, where I discuss the new Selection and Find APIs, I write that we do not yet support custom entities, and that would mean to say that we do not yet have a way to bridge the gap between standard SuperOffice Sales entities and Services Extra tables. We would like to one day intrinsically support that, but do not today.

Today the only way to build a query that selects information from criteria between both Sales and Service tables is a Dynamic archive provider or a SearchEngine query in CRMScript. See the DotSyntax docs here and here.

As far as examples.. We they are peppered through the forums... A couple examples:

Anything more specific would have to be explicitly asked for an example. Sorry.

Hope this clarifies a couple things. Best regards!

 

 

By: Tony Yates 15 Feb 2021

RE: Examples of using the webservice (SOAP) to integrate with SuperOffice

Hi Tony!

Thanks for your understanding and good explanations to my questions.

I think the first answer actually will be important to customer and make the call to stay on REST simple.

I will inform customer to have look into this post and hopefully the swagger links will solve the initial problem with not finding a schema for the REST API.

Best regards!

//Anders

By: Anders Larsson 15 Feb 2021