| All of the following examples assume the client is requesting data in the COMPACT format and is familiar with NORMALIZED data
6.1 Agent Listings
The RETS Client (client) request data from the server for the property listing and needs to have UP TO DATE Agent information as part of the property data. The client retrieves the new Foreign Key metadata to lookup up the RETS Well Known Resource and Class Name for Agent and gets the field name that links to the Well Known Residential Resource and Class name field. The following record is retrieved from the metadata:
<DATA>Property•RES•ListingAgentID•Agent•Agent•AgentID•</DATA>
|
The client proceeds to download all agent records modified TODAY+ once per hour and all Property Records modified TODAY+ once per hour
Because of the knowledge the client has obtained from the Foreign Key metadata it can bring up a listing and have all the Agent information instead of just a few fields normally listed in the flat record
OR
Because the CanChildBeParent is TRUE, the client can bring up an Agent and show all property listing this agent has.
This is all accomplished automatically for the client and can easily change should the Metadata version be incremented.
6.2 Property History and Agent Information
The RETS Client (client) request data as needed from the RETS Server. It does not maintain a local copy of the database, however it does maintain the Full Metadata structure.
The following is the data for this example in the Foreign Key metadata.
<DATA>Property•RES•SellingAgentID•Agent•Agent•AgentID•</DATA>
<DATA>Property•RES•MLSNUM•History•RES•MLSNUM•</DATA>
|
The client receives a request from the user to download a particular property record. The server delivers the record to the client.
The client then receives a request from the user to download the History of this property. The client Looks up the History relationships to the property and determines the key field. It then generates the appropriate request to the RETS Server and the server returns the correct data.
Now the user would like to see the Selling Agent for a property. The client Looks up the Agent relationship to the property for SellingAgentID and generates the appropriate request to the server. The server responds with the data.
This is all accomplished automatically for the client and can easily change should the Metadata version be incremented.
6.3 The unknown (Why there should not be limitations on nesting)
Let's say an MLS System wanted to introduce something new to the market that has never been seen before. For the sake of this example let's say it is a Transaction System.
We have a MLS System that has published its Transaction Resource and Class Types.
We have the following foreign key metadata:
<DATA>Property•RES•MLSNUM•TRANSACTION•RES•MLSNUM•</DATA>
<DATA>TRANSACTION•RES•TRANSACTION_ID•TRANSACTION•HISTORY•PARENT_TRANSACTION_ID•</DATA>
<DATA>TRANSACTION•HISTORY•PARENT_TRANSACTION_ID•TRANSACTION•HISTORY•CHILD_TRANSACTION_ID•</DATA>
<DATA>TRANSACTION•HISTORY•NEXT_TRANSACTION_ID•TRANSACTION•HISTORY•CHILD_TRANSACTION_ID•</DATA>
|
The transaction client has the task of obtaining the transaction history for a particular property. The data structure for the Transaction Database is recursive in nature using nodes to follow paths of transactions. The client will be required to recurse those nodes to their completion to display the complete transaction history. The client is also capable of adding it's own transaction nodes.
This example albeit incomplete demonstrates that given the Foreign Key metadata, a client capable of using this new metadata type and traversing the tree that it represents would be prepared for most future expansions of the RETS Specification. It also opens a whole new world up to RETS. Nesting should not be limited in this proposal except for well known RETS Names. |