The SOAP Web Service also supports our advanced/word search when used for Internal Use. This allows the user to enter partial address words to find the full address in the Royal Mail Postcode Address file.
The principle, of searching, is very similar to the Full Address Postcode Finder, Except it has more parameters.
Simply use the "Sign Up for Trial" link at top right of this page to open a trial account. We will then send you a data key, which is used to identify your account, when using the following service.
The following web references give access to our SOAP web service
https://www.SimplyLookupadmin.co.uk/WebService.asmx
https://www.SimplyLookupadmin.co.uk/WebService.asmx?WSDL
You should add this SOAP reference to your project.
To perform an advanced search, two of the following fields should be filled in with criteria
The XML list of TownOrVillage, County, and Postcode Outer can be downloaded from URL:
https://www.simplylookupadmin.co.uk/XMLService/GetLookups.aspx?datatype=1
This list should be written to a local store, and displayed for user to select from.
Tutorial Video : Show Advanced Search in Action
If recordcount=0 then nothing found
If recordcount=100 then you need to refine the seach query since this query will return a maximum of 100 lines. In which case you should add a line to the list saying “Gone over limit of 100 lines, please refine search....”. To test this set to organistaion=”tesco” and townorvillage=”London”
Note: Only the first 100 lines of advanced search results are returned. In which case the criteria should be refined.
This type of search is only available to “Internal use” type of license
Several examples are included in the "SOAP" folder of the examples download
The following vb.net code is taken from an example and shows the principle which can easily be translated into any other SOAP complient language.:
VB.NET Me.ListView1.Items.Clear() Dim PostcodeSearch As New PostcodeWebService.WebService Dim SearchPrima As New PL_SearchPrimaRecord Dim AddressesDataReturned As New PL_AddressesDataReturnedRecord 'Set search criteria, either full Postocde or Two other address fields With SearchPrima .Organistaion = Me.inpOrg.Text .BuildingOrNumber = Me.inpBuilding.Text .Street = Me.inpStreet.Text .TownOrVillage = Me.inpTown.Text .County = Me.inpCounty.Text .Postcode = Me.inpPostcode.Text End With 'Set Computer name if for internal Postcode Address Lookup Dim ComputerName$ = "" If Microsoft.VisualBasic.Left(Me.InpDataKey.Text, 1) = "I" Then ComputerName = Environment.MachineName End If 'Please note: Section 3.5 of the terms and conditions state: "The Customer, when using the Postcode Lookup service via Web Service, must make sure each user is identified by a unique computer name, in each call to the Web Service." In simple language this means that each user must be identified by a unique username. 'If the postcode address search is for External use then SET ComputerName = "" 'Do Search, on Postcode or two or more address fields AddressesDataReturned = PostcodeSearch.SearchForAddress(Me.InpDataKey.Text, ComputerName, "UK", SearchPrima) If AddressesDataReturned.SearchPerformedWithoutError Then 'Display results, no major error If AddressesDataReturned.ErrorMessage <> "" Then MsgBox(AddressesDataReturned.ErrorMessage, MsgBoxStyle.Critical, "Error in Criteria") Else With AddressesDataReturned 'Show amount of Postocde Lookup credits left Me.Text = .CreditsStatusText 'Remember the URL to buy more Postocde Lookup credits LinkToBuyMoreCredits = .BuyMoreCreditsURL Me.LinkTOBuyMore.Visible = True 'Put Address data in listview Dim x& For x = 0 To .LineCount 'Remeber the ID of each line for retrieval later (step 2) Dim itemToAdd As ListViewItem = ListView1.Items.Add(.Lines(x).ID, 0) 'Display addresses found itemToAdd.SubItems.Add(.Lines(x).Address) Next End With Me.TabControl1.SelectedIndex = 1 End If Else 'Display error (Account stuff mostly) MsgBox(AddressesDataReturned.ErrorMessage) End If
Me.ListView1.Items.Clear() Dim PostcodeSearch As New PostcodeWebService.WebService Dim SearchPrima As New PL_SearchPrimaRecord Dim AddressesDataReturned As New PL_AddressesDataReturnedRecord 'Set search criteria, either full Postocde or Two other address fields With SearchPrima .Organistaion = Me.inpOrg.Text .BuildingOrNumber = Me.inpBuilding.Text .Street = Me.inpStreet.Text .TownOrVillage = Me.inpTown.Text .County = Me.inpCounty.Text .Postcode = Me.inpPostcode.Text End With 'Set Computer name if for internal Postcode Address Lookup Dim ComputerName$ = "" If Microsoft.VisualBasic.Left(Me.InpDataKey.Text, 1) = "I" Then ComputerName = Environment.MachineName End If 'Please note: Section 3.5 of the terms and conditions state: "The Customer, when using the Postcode Lookup service via Web Service, must make sure each user is identified by a unique computer name, in each call to the Web Service." In simple language this means that each user must be identified by a unique username. 'If the postcode address search is for External use then SET ComputerName = "" 'Do Search, on Postcode or two or more address fields AddressesDataReturned = PostcodeSearch.SearchForAddress(Me.InpDataKey.Text, ComputerName, "UK", SearchPrima) If AddressesDataReturned.SearchPerformedWithoutError Then 'Display results, no major error If AddressesDataReturned.ErrorMessage <> "" Then MsgBox(AddressesDataReturned.ErrorMessage, MsgBoxStyle.Critical, "Error in Criteria") Else With AddressesDataReturned 'Show amount of Postocde Lookup credits left Me.Text = .CreditsStatusText 'Remember the URL to buy more Postocde Lookup credits LinkToBuyMoreCredits = .BuyMoreCreditsURL Me.LinkTOBuyMore.Visible = True 'Put Address data in listview Dim x& For x = 0 To .LineCount 'Remeber the ID of each line for retrieval later (step 2) Dim itemToAdd As ListViewItem = ListView1.Items.Add(.Lines(x).ID, 0) 'Display addresses found itemToAdd.SubItems.Add(.Lines(x).Address) Next End With Me.TabControl1.SelectedIndex = 1 End If Else 'Display error (Account stuff mostly) MsgBox(AddressesDataReturned.ErrorMessage) End If
When the users selects a record then simply get it using the sames call as in step 3 of the "Full Address" search