Import Framework

The Import Framework is a series of methods in each QBO class that allows for the importing of data via XML.

Use case: insert a message

 
<ImportCollection Reference="abc">
  <MessageItem>
    <Message>This is the subject</Message>
    <BodyText>Message Content Goes here</BodyText>
  </MessageItem>
</ImportCollection>

Use case: insert a loan if it does not exist, update it if it already exists (upsert)


<LoanItem>
<Loan>1234567890</Loan>
<UPBAmount>277,522.33</UPBAmount>
<SubscriberID>www.mybank.com-PortfolioA-Loans-1234567890</SubscriberID>
</LoanItem>

Notes:
  • The SubscriberID must be a globally unique string
  • QBO will check the ObjectSubscription table; if the SubscriberID is found, we update the existing record, else we insert the record (and a new ObjectSubscription row)

Use case: upsert a loan, and property information

<LoanItem>
<Loan>1234567890</Loan>
<UPBAmount>277,522.33</UPBAmount>
<SubscriberID>www.mybank.com-PortfolioA-Loans-1234567890</SubscriberID>
<Property>
<Address>123 Main Street</Address>
<City>Anywhere</City>
<State>CA</State>
<PostalCode>92101</PostalCode>
</Property>
</LoanItem>

Notes:
  • The Loan table has a foreign key column called 'PropertyID', bound to the Property table
  • The existence of a Property node under the LoanItem node matches the PropertyID (minus the 'ID'), so QBO recognizes it as a property
  • If we are updating the loan and Loan.PropertyID is not NULL, we will update the matching Property record
  • If we are updating the loan and Loan.PropertyID is NULL, we will insert a Property record, and set Loan.PropertyID to the new record
  • If we are inserting the loan, we will insert a Property record, and set Loan.PropertyID to the new record

Use case: upset a loan, and borrower information

<LoanItem>
<Loan>1234567890</Loan>
<UPBAmount>277,522.33</UPBAmount>
<SubscriberID>www.mybank.com-PortfolioA-Loans-1234567890</SubscriberID>
<Borrowers>
<BorrowerItem>
<LastName>Doe</LastName>
<FirstName>Jane</FirstName>
<Sequence>1</Sequence>
</BorrowerItem>
<BorrowerItem>
<LastName>Doe</LastName>
<FirstName>John</FirstName>
<Sequence>2</Sequence>
</BorrowerItem>
</Borrowers>
</LoanItem>

Notes:
  • The LoanObject C# class contains a property called Borrowers
  • The BorrowerObject C# class contains a property called LoanID, marked with a Parent property
  • The import framework recognizes the Borrowers node as matching the Borrowers property, and for each borrowers inserted, marks it's parent property with the Loan.LoanID
  • The BorrowerItem/Sequence uniquely identified the borrower within a Loan; one could use a BorrowerItem/SubscriberID instead

Use case: uploading documents


<AttachmentItem>
<FileName>TestFile2.txt</FileName>
<Template>Deficiency Judgement</Template>
<Description>Description goes here</Description>
<Content><![CDATA[VGVzdCBEYXRhIEdvZXMgSGVyZQ==]]></Content>
</AttachmentItem>

Notes:
  • The AttachmentObject C# class will assume a Content node is base 64 encoded content
  • You can use a SubscriberID here

Use case: generating a mail merged document

<AttachmentItem>
<Template>Deficiency Judgement</Template>
<Object>Loan</Object>
<ObjectSubscriberID>www.mybank.com-PortfolioA-Loans-1234567890</ObjectSubscriberID>
</AttachmentItem>

Notes:
  • The minimum data required to generate a document are Object, ObjectID/ObjectSubscriberID, and Template; additional columns may be specified if you wish
  • The ObjectSubscriberID used here matches the SubscriberID used in the Loan example above
  • Any foreign key column may be aliased with a SubscriberID (e.g. LoanItem/PropertySubscriberID would set Loan.PropertyID to the PropertyID matching PropertySubscriberID)



Subpages (1): Subscriptions
Comments