Web Service Config Files

Web Services Configuration File Basics

Index

Introduction

This documentation is used to introduce experienced developers to how to alter the Data Integration Web Service Configuration to suit their needs, such as exposing new fields or entities to the Web Service layer.

Specifically, this Functional Specification outlines:

  • The current xml nodes and their uses.
  • The XML Data Types
  • A Web Service Configuration Example

Configuration

Each Web Service has an associated entity and a configuration file in the Single View Service. For example, the Person Service will be associated with the Person Entity, and will have a configuration file of PersonSvc.xml.

<?xmlversion="1.0"encoding="utf-8"standalone="no" ?>

<!--The XML Data Types specified in the ClientType for Method Parameters are case sensitive (See: XMLDataTypes.gif)

Complex Types and Enumerations in the ClientType must be prefixed with tns:

Primitive Types in the ClientType must be prefixed with s: -->

<configuration>

<configSections>

<sectionname="SAEntityFilter"type="SAGlobals.SAWebConfigHandler,SAGlobals" />

</configSections>

<SAEntityFilter>

<ClassName>SingleViewService.ASMXFilter,SingleViewService</ClassName>

Lines 1, 5-10 are compulsory. Please do not change these.

<Entity>Person</Entity>

Line 11: Compulsory. This is the name of the entity to be exposed. This is separate from the name of the service, and more than one service can expose the same entity, for example both the Person Service and the Second Person Service will expose the Person entity.

<Columns>^(?i:RSN|DisplayValue|Accounting_PaymentDueDays|Gender(\w+)|Suppression_Codes(\w+)|Driver(\w+)|Invalid_(\w+)|(StreetAddress_Line(\d+)))$</Columns>

Line 12: Optional. This is a regular expression of the fields within the entity that you would like exposed. For example, in this regular expression the RSN, Display Value, the Accounting Payment Due Days, the Gender, the Suppression codes, the driver fields, the invalid fields (i.e. Invalid_Email, Invalid_ContactDayPhone, Invalid_PostalAddress etc) and the street address fields (i.e. StreetAddressLine1, Line2, Line3, etc) all are exposed.

If this is omitted then all fields in an entity will be exposed.

<Relationships>^(?i:Person_(\w+))$</Relationships>

Line 13: Optional. This is a regular expression of the relationships to that entity that you would like exposed. In this example all relationships where the person is on the left will be exposed. That is to say that all the relationships that is related to a person will be exposed, but not necessarily all the relationships a person is related to.

If this is omitted then all relationships will be exposed.

<NoOfResults>2000</NoOfResults>

Line 14: Optional. This is the maximum number of results that can be returned by a search statement.

The functional limitation is the amount of data that can be returned in a single soap request, usually up to 4MB, including soap overhead, so the more fields an entity has exposed the lower this number becomes.

2000 records is a reasonable number.

<NoOfResultsPerMethod>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item><Key>Select</Key><Value>1500</Value></Item>

<Item><Key>SelectRelatedEntities</Key><Value>10000</Value></Item>

</Items>

</NoOfResultsPerMethod>

Lines 15-22: Optional. The number of results can be determined on a method by method basis. For example ‘SelectRelatedEntities’ has a much smaller dataset and as such a larger max Number result is feasible. The key is the method to which you’d like to apply the restriction, and the value is the max number of results to be returned.

<CompressionThreshold>1000</CompressionThreshold>

Line 23: Optional. This field defines the Compression Threshold. If the number of results returned exceeds the compression threshold the results can be compressed using either GZIP or ZIP depending on the clients set up.

This can allow a greater number of results to be returned than would be normally feasible in the 4MB HTTP packet limit.

<CompressionThresholdsPerMethod>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item><Key>Select</Key><Value>1000</Value></Item>

<Item><Key>SelectRelatedEntities</Key><Value>5000</Value></Item>

</Items>

</CompressionThresholdsPerMethod>

Lines 24-31: Optional. The compression threshold can also be determined on a method by method basis. The key is the method to which you’d like to apply the restriction, and the value is the max number of results to be returned.

<ShowMethods>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item><Key>Login</Key><Value>True</Value></Item>

<Item><Key>Authenticate</Key><Value>True</Value></Item>

</Items>

</ShowMethods>

Lines 32-39: Optional. The method Login and Authenticate are available on the web service but are disabled by default as they as not logical to use in most contexts. In the case of Login and Authenticate these methods return the owner of a security account, as an owner can only be a person or an organisation then these methods would only make sense on a web service exposing the person or organisation entities. In this case they must be explicitly activated as shown in this section of the configuration file.

<UnselectedSingleValue>Not_Selected</UnselectedSingleValue>

Line 40: Optional. Currently Single-Pick fields don’t automatically populate the option to be ‘unselected’. This field automatically appends an unselected field to all look up lists which allows the value to be unselected. You can call this field anything you like and it will be added to the look up list.

<SingleDefaults>

<ClassName>SingleViewService.ASMXSingleDefaultCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXSingleDefault,SingleViewService</ItemClassName>

<Items>

<Item>

<LookupList>Gender</LookupList>

<UnselectedValueEnabled>false</UnselectedValueEnabled>

</Item>

<Item>

<LookupList>Opt_In</LookupList>

<UnselectedValueEnabled>true</UnselectedValueEnabled>

<UnselectedValue>Unselected</UnselectedValue>

</Item>

</Items>

</SingleDefaults>

Lines 41-55: Optional. This functionality can also be configured on a look up list by look up list basis. For example the gender look up list does not have an unselected value, and in the opt-in look up list it is called ‘Unselected.

<MinOccuranceColumns>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item><Key>DisplayValue</Key><Value>1</Value></Item>

<Item><Key>GivenName</Key><Value>1</Value></Item>

<Item><Key>MiddleName</Key><Value>1</Value></Item>

<Item><Key>FamilyName</Key><Value>1</Value></Item>

<Item><Key>Title</Key><Value>1</Value></Item>

<Item><Key>Salutation</Key><Value>1</Value></Item>

<Item><Key>LetterCarrier</Key><Value>1</Value></Item>

<Item><Key>Decoration</Key><Value>1</Value></Item>

<Item><Key>Gender</Key><Value>1</Value></Item>

<Item><Key>Nickname</Key><Value>1</Value></Item>

</Items>

</MinOccuranceColumns>

Lines 56 – 71: Optional. This section defines the minimum occurrence of a field in the WSDL file. Fields with a minimum occurrence value of 1 may have default values applied to a blank field when updates/inserts are performed. To prevent this the minimum occurrence can be set to 0 instead.

The key is fieldname, and the value the number of number of minimum occurrences.

For Enumerations, Strings and Guids the default minimum occurrence is 0. For all other data types the default minimum occurrence is 1

How the minimum occurrence is treated can vary by language. In the .Net Framework an Enumeration with a minimum occurrence of 0 has an extra Boolean field on the final class called <Fieldname>Specified. When an enumerated field is being updated or inserted then this field must be set to true or the new value will not be sent to the web service.

<NameIntegration> <ClassName>SingleViewService.ASMXNameIntegration,SingleViewService</ClassName>

<NameType>Individual</NameType>

<InputFirstName>GivenName</InputFirstName>

<InputMiddleName>MiddleName</InputMiddleName>

<InputSurname>FamilyName</InputSurname>

<InputTitle>Title</InputTitle>

<InputPreferredName>Nickname</InputPreferredName>

<InputGender>Gender</InputGender>

<InputDecoration>Decoration</InputDecoration>

<DisplayValue>DisplayValue</DisplayValue>

<FirstName>GivenName</FirstName>

<MiddleName>MiddleName</MiddleName>

<Surname>FamilyName</Surname>

<Title>Title</Title>

<Salutation>Salutation</Salutation>

<LetterCarrier>LetterCarrier</LetterCarrier>

<Decoration>Decoration</Decoration>

<Gender>Gender</Gender>

<PreferredName>Nickname</PreferredName>

</NameIntegration>

Line 72-94: Optional. These lines specify the input and output fields to be defined in the Name Integration methods. For more information about the Name Integration Web Service, please see that Name Integration Web Service Documentation.

<Methods>

<ClassName>SingleViewService.ASMXMethodCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXMethod,SingleViewService</ItemClassName>

<Items>

<Item>

Lines 95-330: Optional. This section of the configuration defines the optional methods (such as a select by xyz).

<ClientName>SelectByName</ClientName>

Line 100: This is the name theuser sees, the name of the method,

<ServerName>Select</ServerName>

Line 101: This is the internal server name. (i.e. a method with the client name ‘SelectByName’ and a method with the client name ‘SelectByAddress’ will both use the ‘Select’ server method).

<Parameters>

<ClassName>SingleViewService.ASMXParameterCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXParameter,SingleViewService</ItemClassName>

Lines 102 – 104: These lines are compulsory.

<Items>

<Item>

<ClientName>Token</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Token</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>NoOfResults</ClientName>

<ClientType>s:int</ClientType>

<ServerName>NoOfResults</ServerName>

<ServerType>System.int32</ServerType>

</Item>

<Item>

<ClientName>Firstname</ClientName>

<ClientType>s:string</ClientType>

<ServerName>GivenName</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Surname</ClientName>

<ClientType>s:string</ClientType>

<ServerName>FamilyName</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Gender</ClientName>

<ClientType>tns:GenderFlags</ClientType>

<ServerName>Gender</ServerName> <ServerType>SingleViewService.ASMXClient_Single,SingleViewService</ServerType>

</Item>

<Item>

<ClientName>SuppressionCodes</ClientName>

<ClientType>tns:Suppression_Codes</ClientType>

<ServerName>Suppression_Codes</ServerName>

<ServerType>SingleViewService.ASMXClient_Multi,SingleViewService</ServerType>

</Item>

</Items>

</Parameters>

</Item>

Lines 105 – 154: Each method has several parameters. Each parameter has a client name and type (a name and type the client will see), and the server name and type (the name and type of the field in Simplicity). The types can be an enumeration, a text, single or multi field.

The Token parameter is compulsory.

<Item>

<ClientName>Household_Program_Dedupe</ClientName>

<ServerName>ExecStoredProcedure</ServerName>

<Parameters>

<ClassName>SingleViewService.ASMXParameterCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXParameter,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientName>Token</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Token</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>PrimarySurname</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PrimarySurname</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address1</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_1</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address2</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_2</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address3</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_3</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address4</ClientName>span>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_4</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address5</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_5</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>DPID</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_DPID</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>ProgramCode</ClientName>

<ClientType>s:string</ClientType>

<ServerName>ProgramCode</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>PetType</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PetType</ServerName>

<ServerType>System.string</ServerType>

</Item>

</Items>

</Parameters>

<ReturnParameter>

<ClientType>tns:Household_Program_Dedupe_Result</ClientType>

<ServerType>SingleViewService.ASMXClient_StoredProcedureResult,SingleViewService</ServerType>

</ReturnParameter>

</Item>

<Item>

<ClientName>Validate_DedupeKey</ClientName>

<ServerName>ExecStoredProcedure</ServerName>

<Parameters>

<ClassName>SingleViewService.ASMXParameterCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXParameter,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientName>Token</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Token</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>DedupeKey</ClientName>

<ClientType>s:string</ClientType>

<ServerName>DedupeKey</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>DedupeField</ClientName>

<ClientType>s:string</ClientType>

<ServerName>DedupeField</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Survey_RSN</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Survey_RSN</ServerName>

<ServerType>System.Guid</ServerType>

</Item>

<Item>

<ClientName>MaxUsage</ClientName>

<ClientType>s:int</ClientType>

<ServerName>MaxUsage</ServerName>

<ServerType>System.int32</ServerType>

</Item>

</Items>

</Parameters>

<ReturnParameter>

<ClientType>tns:Validate_DedupeKey_Result</ClientType>

<ServerType>SingleViewService.ASMXClient_StoredProcedureResult,SingleViewService</ServerType>

</ReturnParameter>

</Item>

Lines 179 – 296: These lines also define a method, but a Stored Procedure instead of a Web Services method. The differences are 1) That this definition has a return parameter – the Client Type and the Server Type (no names required). 2) The ServerName maps to the Key in the stored procedure parameters as described in Lines 330 – 415.

<Item>

<ClientName>SelectEmployees</ClientName>

<ServerName>SelectRelatedEntities</ServerName>

<RelationshipName>Organisation_CurrentEmployerStaff_Person</RelationshipName>

<Parameters>

<ClassName>SingleViewService.ASMXParameterCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXParameter,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientName>Token</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Token</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>OrganisationName</ClientName>

<ClientType>s:string</ClientType>

<ServerName>CompanyName</ServerName>

<ServerType>System.string</ServerType>

<RelationshipSide>Their</RelationshipSide>

</Item>

<Item>

<ClientName>FamilyName</ClientName>

<ClientType>s:string</ClientType>

<ServerName>FamilyName</ServerName>

<ServerType>System.string</ServerType>

<RelationshipSide>My</RelationshipSide>

</Item>

</Items>

</Parameters>

</Item>

</Items>

</Methods>

Lines 297 – 329: These lines also define a method, but instead of a Stored Procedure or a Web Services method it is a method that deals with relationships.

The RelationshipName is the name of the relationship.

The parameters are the same, apart from an additional attribute “RelationshipSide”, which is the side of the relationship that field belongs to. It is either ‘Their’ entity, or ‘My’ entity.

This method for example will select all people with the specified FamilyName belonging to the specified Organisation

<StoredProcedures>

<ClassName>SingleViewService.ASMXStoredProcedureCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXStoredProcedure,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientMethodName>Household_Program_Dedupe</ClientMethodName>

<ClientType>Household_Program_Dedupe_Result</ClientType>

<ProcedureName>ST_EWS_Household_Program_Dedupe</ProcedureName>

<ReturnCode>False</ReturnCode>

<ScalarName>NoOfRegistrations</ScalarName>

<ScalarType>system.int32</ScalarType>

<Parameters>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item>

<Key>PrimarySurname</Key>

<Value>@Primary_Surname</Value>

</Item>

<Item>

<Key>PostalAddress_1</Key>

<Value>@PostalAddress_1</Value>

</Item>

<Item>

<Key>PostalAddress_2</Key>

<Value>@PostalAddress_2</Value>

</Item>

<Item>

<Key>PostalAddress_3</Key>

<Value>@PostalAddress_3</Value>

</Item>

<Item>

<Key>PostalAddress_4</Key>

<Value>@PostalAddress_4</Value>

</Item>

<Item>

<Key>PostalAddress_5</Key>

<Value>@PostalAddress_5</Value>

</Item>

<Item>

<Key>PostalAddress_DPID</Key>

<Value>@PostalAddress_DPID</Value>

</Item>

<Item>

<Key>ProgramCode</Key>

<Value>@ProgramCode</Value>

</Item>

<Item>

<Key>PetType</Key>

<Value>@PetType</Value>

</Item>

</Items>

</Parameters>

</Item>

<Item>

<ClientMethodName>Validate_DedupeKey</ClientMethodName>

<ClientType>Validate_DedupeKey_Result</ClientType>

<ProcedureName>ST_SVY_ValidateDedupeKey</ProcedureName>

<ReturnCode>False</ReturnCode>

<ScalarName>SurveyInstance_RSN</ScalarName>

<ScalarType>System.Guid</ScalarType>

<Parameters>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item>

<Key>DedupeKey</Key>

<Value>@DedupeKey</Value>

</Item>

<Item>

<Key>DedupeField</Key>

<Value>@DedupeField</Value>

</Item>

<Item>

<Key>Survey_RSN</Key>

<Value>@Survey_RSN</Value>

</Item>

<Item>

<Key>MaxUsage</Key>

<Value>@MaxUsage</Value>

</Item>

</Items>

</Parameters>

</Item>

</Items>

</StoredProcedures>

Lines 330 – 415: These lines define the configurable stored procedures associated with the Web Services.

A stored procedure can produce a scalar value or a dataset and a return code; however the web services are currently only able to return the scalar value and the return code.

The Client Method Name is the name of the configured method. The Client Type is the type of the returned parameters; the Procedure name is the name of the stored procedure. The Return Code is a Boolean value that determines if the stored procedure has a return code. The Scalar Name/Type is the Name/Data Type of the scalar value.

Each Item within this section of the configuration has parameters, and each parameter has a Key, which is the name of the parameter that will be presented to the user, and the value is the name of the equivalent parameter within the stored procedure.

</SAEntityFilter>

</configuration>

Lines 416 – 417: These lines close the configuration file.

XML Data Types

Web Service Configuration Example – Person Entity

<?xmlversion="1.0"encoding="utf-8"standalone="no" ?>

<!--The XML Data Types specified in the ClientType for Method Parameters are case sensitive (See: XMLDataTypes.gif)

Complex Types and Enumerations in the ClientType must be prefixed with tns:

Primitive Types in the ClientType must be prefixed with s: -->

<configuration>

<configSections>

<sectionname="SAEntityFilter"type="SAGlobals.SAWebConfigHandler,SAGlobals" />

</configSections>

<SAEntityFilter>

<ClassName>SingleViewService.ASMXFilter,SingleViewService</ClassName>

<Entity>Person</Entity>

<Columns>^(?i:RSN|DisplayValue|Accounting_PaymentDueDays|Gender(\w+)|Suppression_Codes(\w+)|Driver(\w+)|Invalid_(\w+)|(StreetAddress_Line(\d+)))$</Columns>

<Relationships>^(?i:Person_(\w+))$</Relationships>

<NoOfResults>2000</NoOfResults>

<NoOfResultsPerMethod>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item><Key>Select</Key><Value>1500</Value></Item>

<Item><Key>SelectRelatedEntities</Key><Value>10000</Value></Item>

</Items>

</NoOfResultsPerMethod>

<CompressionThreshold>1000</CompressionThreshold>

<CompressionThresholdsPerMethod>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item><Key>Select</Key><Value>1000</Value></Item>

<Item><Key>SelectRelatedEntities</Key><Value>5000</Value></Item>

</Items>

</CompressionThresholdsPerMethod>

<ShowMethods>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item><Key>Login</Key><Value>True</Value></Item>

<Item><Key>Authenticate</Key><Value>True</Value></Item>

</Items>

</ShowMethods>

<UnselectedSingleValue>Not_Selected</UnselectedSingleValue>

<SingleDefaults>

<ClassName>SingleViewService.ASMXSingleDefaultCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXSingleDefault,SingleViewService</ItemClassName>

<Items>

<Item>

<LookupList>Gender</LookupList>

<UnselectedValueEnabled>false</UnselectedValueEnabled>

</Item>

<Item>

<LookupList>Opt_In</LookupList>

<UnselectedValueEnabled>true</UnselectedValueEnabled>

<UnselectedValue>Unselected</UnselectedValue>

</Item>

</Items>

</SingleDefaults>

<MinOccuranceColumns>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item><Key>DisplayValue</Key><Value>1</Value></Item>

<Item><Key>GivenName</Key><Value>1</Value></Item>

<Item><Key>MiddleName</Key><Value>1</Value></Item>

<Item><Key>FamilyName</Key><Value>1</Value></Item>

<Item><Key>Title</Key><Value>1</Value></Item>

<Item><Key>Salutation</Key><Value>1</Value></Item>

<Item><Key>LetterCarrier</Key><Value>1</Value></Item>

<Item><Key>Decoration</Key><Value>1</Value></Item>

<Item><Key>Gender</Key><Value>1</Value></Item>

<Item><Key>Nickname</Key><Value>1</Value></Item>

</Items>

</MinOccuranceColumns>

<NameIntegration>

<ClassName>SingleViewService.ASMXNameIntegration,SingleViewService</ClassName>

<NameType>Individual</NameType>

<InputFirstName>GivenName</InputFirstName>

<InputMiddleName>MiddleName</InputMiddleName>

<InputSurname>FamilyName</InputSurname>

<InputTitle>Title</InputTitle>

<InputPreferredName>Nickname</InputPreferredName>

<InputGender>Gender</InputGender>

<InputDecoration>Decoration</InputDecoration>

<DisplayValue>DisplayValue</DisplayValue>

<FirstName>GivenName</FirstName>

<MiddleName>MiddleName</MiddleName>

<Surname>FamilyName</Surname>

<Title>Title</Title>

<Salutation>Salutation</Salutation>

<LetterCarrier>LetterCarrier</LetterCarrier>

<Decoration>Decoration</Decoration>

<Gender>Gender</Gender>

<PreferredName>Nickname</PreferredName>

</NameIntegration>

<Methods>

<ClassName>SingleViewService.ASMXMethodCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXMethod,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientName>SelectByName</ClientName>

<ServerName>Select</ServerName>

<Parameters>

<ClassName>SingleViewService.ASMXParameterCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXParameter,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientName>Token</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Token</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>NoOfResults</ClientName>

<ClientType>s:int</ClientType>

<ServerName>NoOfResults</ServerName>

<ServerType>System.int32</ServerType>

</Item>

<Item>

<ClientName>Firstname</ClientName>

<ClientType>s:string</ClientType>

<ServerName>GivenName</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Surname</ClientName>

<ClientType>s:string</ClientType>

<ServerName>FamilyName</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Gender</ClientName>

<ClientType>tns:GenderFlags</ClientType>

<ServerName>Gender</ServerName>

<ServerType>SingleViewService.ASMXClient_Single,SingleViewService</ServerType>

</Item>

<Item>

<ClientName>SuppressionCodes</ClientName>

<ClientType>tns:Suppression_Codes</ClientType>

<ServerName>Suppression_Codes</ServerName>

<ServerType>SingleViewService.ASMXClient_Multi,SingleViewService</ServerType>

</Item>

</Items>

</Parameters>

</Item>

<Item>

<ClientName>SelectByNameAndEmailAddress</ClientName>

<ServerName>Select</ServerName>

<Parameters>

<ClassName>SingleViewService.ASMXParameterCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXParameter,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientName>Token</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Token</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Firstname</ClientName>

<ClientType>s:string</ClientType>

<ServerName>GivenName</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Surname</ClientName>

<ClientType>s:string</ClientType>

<ServerName>FamilyName</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>EmailAddress</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Email</ServerName>

<ServerType>System.string</ServerType>

</Item>

</Items>

</Parameters>

</Item>

<Item>

<ClientName>Household_Program_Dedupe</ClientName>

<ServerName>ExecStoredProcedure</ServerName>

<Parameters>

<ClassName>SingleViewService.ASMXParameterCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXParameter,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientName>Token</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Token</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>PrimarySurname</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PrimarySurname</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address1</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_1</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address2</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_2</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address3</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_3</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address4</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_4</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Address5</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_5</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>DPID</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PostalAddress_DPID</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>ProgramCode</ClientName>

<ClientType>s:string</ClientType>

<ServerName>ProgramCode</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>PetType</ClientName>

<ClientType>s:string</ClientType>

<ServerName>PetType</ServerName>

<ServerType>System.string</ServerType>

</Item>

</Items>

</Parameters>

<ReturnParameter>

<ClientType>tns:Household_Program_Dedupe_Result</ClientType>

<ServerType>SingleViewService.ASMXClient_StoredProcedureResult,SingleViewService</ServerType>

</ReturnParameter>

</Item>

<Item>

<ClientName>Validate_DedupeKey</ClientName>

<ServerName>ExecStoredProcedure</ServerName>

<Parameters>

<ClassName>SingleViewService.ASMXParameterCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXParameter,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientName>Token</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Token</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>DedupeKey</ClientName>

<ClientType>s:string</ClientType>

<ServerName>DedupeKey</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>DedupeField</ClientName>

<ClientType>s:string</ClientType>

<ServerName>DedupeField</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>Survey_RSN</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Survey_RSN</ServerName>

<ServerType>System.Guid</ServerType>

</Item>

<Item>

<ClientName>MaxUsage</ClientName>

<ClientType>s:int</ClientType>

<ServerName>MaxUsage</ServerName>

<ServerType>System.int32</ServerType>

</Item>

</Items>

</Parameters>

<ReturnParameter>

<ClientType>tns:Validate_DedupeKey_Result</ClientType>

<ServerType>SingleViewService.ASMXClient_StoredProcedureResult,SingleViewService</ServerType>

</ReturnParameter>

</Item>

<Item>

<ClientName>SelectEmployees</ClientName>

<ServerName>SelectRelatedEntities</ServerName>

<RelationshipName>Organisation_CurrentEmployerStaff_Person</RelationshipName>

<Parameters>

<ClassName>SingleViewService.ASMXParameterCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXParameter,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientName>Token</ClientName>

<ClientType>s:string</ClientType>

<ServerName>Token</ServerName>

<ServerType>System.string</ServerType>

</Item>

<Item>

<ClientName>OrganisationName</ClientName>

<ClientType>s:string</ClientType>

<ServerName>CompanyName</ServerName>

<ServerType>System.string</ServerType>

<RelationshipSide>Their</RelationshipSide>

</Item>

<Item>

<ClientName>FamilyName</ClientName>

<ClientType>s:string</ClientType>

<ServerName>FamilyName</ServerName>

<ServerType>System.string</ServerType>

<RelationshipSide>My</RelationshipSide>

</Item>

</Items>

</Parameters>

</Item>

</Items>

</Methods>

<StoredProcedures>

<ClassName>SingleViewService.ASMXStoredProcedureCollection,SingleViewService</ClassName>

<ItemClassName>SingleViewService.ASMXStoredProcedure,SingleViewService</ItemClassName>

<Items>

<Item>

<ClientMethodName>Household_Program_Dedupe</ClientMethodName>

<ClientType>Household_Program_Dedupe_Result</ClientType>

<ProcedureName>ST_EWS_Household_Program_Dedupe</ProcedureName>

<ReturnCode>False</ReturnCode>

<ScalarName>NoOfRegistrations</ScalarName>

<ScalarType>system.int32</ScalarType>

<Parameters>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item>

<Key>PrimarySurname</Key>

<Value>@Primary_Surname</Value>

</Item>

<Item>

<Key>PostalAddress_1</Key>

<Value>@PostalAddress_1</Value>

</Item>

<Item>

<Key>PostalAddress_2</Key>

<Value>@PostalAddress_2</Value>

</Item>

<Item>

<Key>PostalAddress_3</Key>

<Value>@PostalAddress_3</Value>

</Item>

<Item>

<Key>PostalAddress_4</Key>

<Value>@PostalAddress_4</Value>

</Item>

<Item>

<Key>PostalAddress_5</Key>

<Value>@PostalAddress_5</Value>

</Item>

<Item>

<Key>PostalAddress_DPID</Key>

<Value>@PostalAddress_DPID</Value>

</Item>

<Item>

<Key>ProgramCode</Key>

<Value>@ProgramCode</Value>

</Item>

<Item>

<Key>PetType</Key>

<Value>@PetType</Value>

</Item>

</Items>

</Parameters>

</Item>

<Item>

<ClientMethodName>Validate_DedupeKey</ClientMethodName>

<ClientType>Validate_DedupeKey_Result</ClientType>

<ProcedureName>ST_SVY_ValidateDedupeKey</ProcedureName>

<ReturnCode>False</ReturnCode>

<ScalarName>SurveyInstance_RSN</ScalarName>

<ScalarType>System.Guid</ScalarType>

<Parameters>

<ClassName>SAGlobals.KeyValuePairCollection,SAGlobals</ClassName>

<ItemClassName>SAGlobals.KeyValuePair,SAGlobals</ItemClassName>

<Items>

<Item>

<Key>DedupeKey</Key>

<Value>@DedupeKey</Value>

</Item>

<Item>

<Key>DedupeField</Key>

<Value>@DedupeField</Value>

</Item>

<Item>

<Key>Survey_RSN</Key>

<Value>@Survey_RSN</Value>

</Item>

<Item>

<Key>MaxUsage</Key>

<Value>@MaxUsage</Value>

</Item>

</Items>

</Parameters>

</Item>

</Items>

</StoredProcedures>

</SAEntityFilter>

</configuration>

Australia - New Zealand