Using serialization flags

Several classes in the eConnect serialization namespace include fields called serialization flags. A serialization flag is a boolean member of the class that you use to specify whether to use or discard the value assigned to a related field.

The serialization flag fields in an eConnect serialization class always append the word “Specified” to the name of the field that the boolean flag targets.


To update a field that has a serialization flag, you assign a value to the field and set the value of the related serialization flag to True. The serialization flag instructs the business object to use the value you assigned to the field to update the record in the database. If you set the serialization flag to False or do not include the serialization flag, the value you supply in the class field is not used.

You use serialization flags when the underlying eConnect business object supports update functionality. Update functionality enables you to update a record by submitting a document that specifies a few fields that have new values. Fields not explicitly included in the update document retain their existing value. For more information about eConnect update functionality, see Using eConnect to update existing data .

The following Visual Basic example illustrates the use of a serialization flag in a .NET development project. Notice the use of the HOLD and HOLDSpecified fields of the taUpdateCreateCustomerRcd class. The value of the HOLD field places a hold on the customer. The value of the HOLDSpecifed field enables the update of the customer hold status. If HOLDSpecified is omitted or is not set to True, the value assigned to HOLD is discarded and the hold status of the customer remains unchanged.

public sub UseSerializationFlag()
	Try

		'**Create a customer document**
		'Use the taUpdateCreateCustomerRcd class to specify 
		‘ the customer update
		Dim customer As New taUpdateCreateCustomerRcd
		With customer
			'Specify the customer
			.CUSTNMBR = "AARONFIT0001"

			'Use the HOLD field to place a hold on the customer
			'Set the serialization flag HOLDSpecifed to True.
			.HOLD = 1
			.HOLDSpecified = True
		End With

		'Add the customer object to the RMCustomerMasterType
transaction type
		Dim customerTransactionType As New RMCustomerMasterType
		customerTransactionType.taUpdateCreateCustomerRcd =
customer

		'Create an array of RMCustomerMasterType and add 
		‘ the customer transaction type object to the array
		Dim mySMCustomerMaster(0) As RMCustomerMasterType
		mySMCustomerMaster(0) = customerTransactionType

		'Add the array of transaction type objects to an 
		‘ eConnect document object
		Dim eConnectDoc As New eConnectType
		eConnectDoc.RMCustomerMasterType = mySMCustomerMaster

		'**Serialize the eConnect document**
		'Create a memory stream for the serialized eConnect
document
		Dim memStream As New MemoryStream()

		'Create an Xml Serializer and serialize the eConnect
document
		‘ to the memory stream
		Dim serializer As New XmlSerializer(GetType(eConnectType))
		serializer.Serialize(memStream, eConnectDoc)

		'Reset the position property to the start of the buffer
		memStream.Position = 0

		'**Load the serialized Xml into an Xml document**
		Dim xmldoc As New XmlDocument()
		xmldoc.Load(memStream)

		'Instantiate an eConnectMethods object
		Dim eConnectObject As New eConnectMethods

		'**Set the connection string**
		'The connection string targets the TWO database on the
local computer
		Dim ConnectionString As String
		ConnectionString="Data Source=localhost; Integrated
Security=SSPI;" _
			& "Persist Security Info=False; Initial
Catalog=TWO;"

		'**Update the customer record**
		'If eConnectResult is TRUE, the XML document was 
		‘ successfully submitted
		Dim eConnectResult As Boolean
	 
eConnectResult=eConnectObject.UpdateEntity(ConnectionString, _
			xmlDoc.OuterXml)

	Catch eConnectError As eConnectException
		Console.Write(eConnectError.ToString())

	Catch ex As System.Exception
		Console.Write(ex.ToString())
	End Try
End Sub


Documentation Feedback