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:

  1. Create an IDO (see Mongoose documentation – the typical process involves selecting or creating an IDO Project required during new IDO creation).
  2. Create a new IDO Method (it is acceptable for the name to be the same as SyteLine’s).
  3. Copy SyteLine method parameters.
  4. Create custom Extension class.
    1. 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.

      My_SLHomepages

    2. Comment or remove using referencing the original class namespace.

      CSI Logistics

  5. Change namespace to Custom.

    Namespace Custom

  6. 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.

    Callouts

  7. Create custom factory class.
    1. 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.

      Homepage Purchase Order by Vendor Factory

    2. Change namespace to Custom.

      Namespace Custom2

  8. Update IDO and Method names to match new IDO and IDO method as defined in Extension class.

    My SL_Homepages2

    CSI Extension Class Base

  9. Create interface.
    1. 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.

      Homepage Puschase Order by Vendor

    2. Change namespace to Custom.

      Namespace Custom2

  10. Create custom application class.
    1. 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.

      Homepage Purchase Order by Vendor2

    2. Change namespace to Custom.

      Namespace Custom2

  11. 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.

    Crud Load Arbitrary

  12. Compile the solution.
  13. 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.

    Assembly Name

  14. 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

      IDO Assembly Name

  15. Unload IDO Cache.