Use Case: Customizing application logic of SyteLine IDO hand-coded method using Factory Class pattern (deprecated)
Scope: Logic exists only in .NET. Similar scenarios exist as EXTGEN.
Category: Full Code
Tier: OB
Notes: OB - copied extensibility - merging required
Using Hompage_PurchaseOrderByVendorSp as an example, perform these steps:
- Create an IDO (see Mongoose documentation – the typical process involves selecting or creating an IDO Project required during new IDO creation).
- Create a new IDO Method (it is acceptable for the name to be the same as SyteLine’s).
- Copy SyteLine method parameters.
- Create custom Extension class.- Locate the SyteLine
								extension class from SyteLine SDK, and copy text into a new C# class file
								into a custom project having the required Mongoose references.
									SyteLine’s SDK
								includes Custom project as an example and can be used for custom
								development. It will only be updated if new references are required.
								We suggest that the class name match the IDO name specified in step
								1. A notable exception are custom IDOs created in cloud environments
								where a naming convention involving a reserved prefix (typical value
								is ue_) is enforced. This prefix, when applied to the class name in
								Visual Studio, creates a compile error. In this scenario, it’s
								acceptable for the class and file name to differ from the custom IDO
								name. However, the values used in C# must be properly mapped in the
								custom IDO – see step 14. 
- Comment or remove using referencing the original class
										namespace. 
 
- Locate the SyteLine
								extension class from SyteLine SDK, and copy text into a new C# class file
								into a custom project having the required Mongoose references.
									SyteLine’s SDK
								includes Custom project as an example and can be used for custom
								development. It will only be updated if new references are required.
								We suggest that the class name match the IDO name specified in step
								1. A notable exception are custom IDOs created in cloud environments
								where a naming convention involving a reserved prefix (typical value
								is ue_) is enforced. This prefix, when applied to the class name in
								Visual Studio, creates a compile error. In this scenario, it’s
								acceptable for the class and file name to differ from the custom IDO
								name. However, the values used in C# must be properly mapped in the
								custom IDO – see step 14.
- Change namespace to Custom. 
- Update class name and IDOExtensionClass attribute (can be
						same as IDO if naming conventions allow). It is also important that the
						inherited base class is specified as CSIExtensionClassBase for proper
							SyteLine
								functionality. 
- Create custom factory class.- Locate SyteLine factory
								class from SyteLine SDK
								and copy text into a new C# class file into a custom project having
								the required SyteLine
								references. It is acceptable for new file and class name to match
								what is copied. SyteLine’s SDK includes Custom project as an example and
								can be used for custom development. It will only be updated if new
								references are required. 
- Change namespace to Custom. 
 
- Locate SyteLine factory
								class from SyteLine SDK
								and copy text into a new C# class file into a custom project having
								the required SyteLine
								references. It is acceptable for new file and class name to match
								what is copied. SyteLine’s SDK includes Custom project as an example and
								can be used for custom development. It will only be updated if new
								references are required.
- Update IDO and Method names to match new IDO and IDO method
						as defined in Extension class.  
- Create interface.- Locate SyteLine
								interface from SyteLine
								SDK and copy text into a new C# class file into a custom project
								having the required SyteLine references. It isSyteLine acceptable for new
								file and class name to match what is copied. SyteLine’s SDK includes
								Custom project as an example and can be used for custom development.
								It will only be updated if new references are required. 
- Change namespace to Custom. 
 
- Locate SyteLine
								interface from SyteLine
								SDK and copy text into a new C# class file into a custom project
								having the required SyteLine references. It isSyteLine acceptable for new
								file and class name to match what is copied. SyteLine’s SDK includes
								Custom project as an example and can be used for custom development.
								It will only be updated if new references are required.
- Create custom application class.- Locate SyteLine app
								class from SyteLine SDK
								and copy text into a new C# class file into a custom project having
								the required SyteLine
								references. It is acceptable for new file and class name to match
								what is copied. SyteLine’s SDK includes Custom project as an example and
								can be used for custom development. SyteLine development
								dedicated to custom development. It will only be updated if new
								references are required. 
- Change namespace to Custom. 
 
- Locate SyteLine app
								class from SyteLine SDK
								and copy text into a new C# class file into a custom project having
								the required SyteLine
								references. It is acceptable for new file and class name to match
								what is copied. SyteLine’s SDK includes Custom project as an example and
								can be used for custom development. SyteLine development
								dedicated to custom development. It will only be updated if new
								references are required.
- Modify the app class with custom code. This is the
						extensibility step associated with adding custom code similar to EXTGEN.
						Existing code can be edited to suit the need or new code added. 
- Compile the solution.
- Upload Custom.dll into IDO Custom Assemblies form - (see
						Mongoose documentation). Cloud naming convention shown for Assembly Name
						(ue_Custom) mapped to C# Custom.dll. 
- Update new IDO.- IDO Custom Assembly Name: Custom or ue_Custom
- Ext Class Name: Name of C# class – could be different than IDO name
- Namespace: Custom 
 
- Unload IDO Cache.