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.