
Along the same lines as my previous article covering referencing entities using the IDynamicEntity interface to set and get properties by a string name instead of as a strongly-typed object, you can also use the IComponentReference interface as a generic entity type since all entities implement this interface. This interface is found in the Sage.Platform.ComponentModel namespace and is why all entities contain the Id property that returns the entities ID value, that is defined by this interface.
Using this interface allows you to create code that can be used from several different entity types. For example, instead of doing something like this:
string idValue; string nameValue; if (this.BindingSource.Current is IAccount) { var account = this.BindingSource.Current as IAccount; idValue = account.Id.ToString(); nameValue = account.ToString(); //... } if (this.BindingSource.Current is IContact) { var contact = this.BindingSource.Current as IContact; idValue = contact.Id.ToString(); nameValue = contact.ToString(); //... }
You can simply do this:
var entity = this.BindingSource.Current as Sage.Platform.ComponentModel.IComponentReference; var idValue = entity.Id; // provides the entity's ID value var nameValue = entity.ToString(); // provides the entity's string expression
All entities implement IComponentReference, so you can use this interface to access the entity much like you would use IAccount, IContact, etc. You can use “.ToString()” to get the string expression of the actual entity and access the ID value as well. Note, the string expression you’ll get when you use ToString() is defined on the SalesLogix Extended tab of the entity. For accounts, this is the AccountName, for contacts this is LastName, FirstName, etc. To get to other properties you would either need to cast back to the actual entity type or use the IDynamicEntity interface to get the properties using string names.
Subscribe To Our Newsletter
Join our mailing list to receive the latest Infor CRM (Saleslogix) and Creatio (bpm'online) news and product updates!
You have Successfully Subscribed!