Click or drag to resize

GenericExportHandlerT, E, I Class

A generic abstract "ERP Export Handler" event extension. Supports component itemization including multiconfiguration export, cut-list items, and consistency validation, item attachment rows, value writebacks to items supporting models, drawings and cutlist items, export document collection, and both 2-phased export and silent export for PDM. Itemizes rows using I (RowItemizer) into T (ExportItem). It is also possible to override both the itemizer and the item types with custom inheriants at CreateObjectT for the given type.
Inheritance Hierarchy
SystemObject
  CTExtensions.ExportCore.EXTsEventExtension
    CTExtensions.ExportCore.EXTsEventExtensionT
      CTExtensions.ExportCore.ExportHandlerGenericExportHandlerT, E, I

Namespace:  CTExtensions.ExportCore.ExportHandler
Assembly:  CTInterface (in CTInterface.dll)
Syntax
public abstract class GenericExportHandler<T, E, I> : EventExtension<T>, 
	IGenericExportHandler
where T : CTExtension
where E : new(), ExportItem
where I : new(), RowItemizer

Type Parameters

T
Type of the parent CTExtension
E
An object that corresponds to an item at ERP
I
Itemizer that decides if an Export row is an ERP Item or not.

The GenericExportHandlerT, E, I type exposes the following members.

Constructors
Properties
  NameDescription
Protected propertyCurrentExportCase
This this generic handles supports normal export, export in PDM and silent export, it's often important to know which case is the current one.
Protected propertyExportSucceeded
Protected propertyHandleExport
A flag that is set to true when user loads an Export Profile bound to this handler. False otherwise and when user has exited the Export. Used to define whether specific events should be handled or not.
Public propertyItemizer
RowItemizer that defines which export rows are unique items and which ones are attachments of those unique items.
Protected propertySilentMode
True when the export core requests Silent Export. When this is true, export handling is expected to be fully automatic and must not have any user interaction.
Public propertyWriteBackHandler
Top
Methods
  NameDescription
Protected methodCancelConversionsFromUnaffectedItems
Checks if items are affected by currently set conversion rules, and if not, set cancelled flag.
Protected methodCheckWritebackAccessInPrefill
Protected methodDeserializeSecondPhase
Deserialize this object and its items.
Protected methodDiscardExcludedFromBOMItems
Protected methodExport
User has clicked the Export button, and the items are prepared for the export. Remember to check the export case using CurrentExportCase and if SilentMode is set.
Protected methodFinalizeSecondPhase
Protected methodGetAdditionalColumnsSetup
Protected methodGetAdditionalColumnsSetup2
Public methodGetExportProfile
Getter for current export profile.
Public methodGetItemizer
Getter for loosly typed Itemizer, mostly for internal puposes.
Public methodGetParent
Getter for Parent Extension, mostly for internal puposes.
Public methodGetRoots
Get all non-excluded root items from the last itemized structure.
Public methodHook (Overrides EventExtensionHook(CTInterface).)
Public methodInit (Overrides EventExtension.Init``1(UMP).)
Protected methodInitExport
Initialization of this class for Export procedure, or to disable or handling; depending if the typename of the given export profile matches the indentifying name of the parent extension.
Public methodLog
Log everything that happends.
Protected methodManipulateExportDataBeforeItemization
Override this function to do anything you like for the data before it's being itemized. Note that this is invoked for all exported configurations separately.
Protected methodNeedsSecondsPhase
Indicates is second phase is required or not. By default it IS needed if we are outside SW context, the first phase succeeded and any of the items has cached writebacks or has not cancelled its conversions.
Protected methodOnCloseCustomStructureDlg
Resets this class by calling InitExport(ICTExportProfile, Boolean, Boolean, Int64, Int32) with nulls and defaults.
Protected methodOnPostFileConversion
Protected methodOnQueryCancelExportConversions
Protected methodPerformWritebacksWithCheckoutAndCheckin
Collects all cached writeback requests from the items, requests write access to each individual file (causes check-out in PDM), applies the writebacks, and then releases the obtained write accesses (causes check-in to PDM) and clears cached writebacks.
Protected methodQueryExportSuccess
Public methodRefreshItems
Protected methodRefreshItems(ListE)
Protected methodSecondPhaseExport
This function is called during the second phase Export. At this point all conversions are done and collected, and writebacks are already done to files. This is mostly desined for sending converted documents to the target system, however, it is also possible to handle the whole Export Process silently within this function. To write addtitional writebacks to files, call PerformWritebacksWithCheckoutAndCheckin(ListE) after caching the writebacks to items. Note that PerformWritebacksWithCheckoutAndCheckin(ListE) is already called once during SecondPhaseInitialized(ListE) so if there were writebacks added at the first export phase, some items might get multiple versions checked-in. You can override SecondPhaseInitialized(ListE) to not call ///
Protected methodSecondPhaseInitialized
Called after deserialization is done and this class and all items have all data available. Calls PerformWritebacksWithCheckoutAndCheckin(ListE) to write pending value writebacks as the conversions are performed after this and it might be important to have updated values visible in converted documents.
Protected methodSerializeForSecondPhase
Serialize this object and its Items.
Protected methodShowExportDoneMessage
Protected methodShowProcessContinuesToSecondPhaseMessage
Public methodUnHook (Overrides EventExtensionUnHook(CTInterface).)
Protected methodUpdateItemsPostFilling
All the same operations should be doable in UpdateItemsPreFilling(ListE), which recommended over this function. If there for some reason is a need to directly manipulate ListView rows, it can be done here.
Protected methodUpdateItemsPreFilling
Do possible queries to target systems to map the items etc. Supports setting field and bom field values, colors and everything even before the actual list view items are added to the list.
Protected methodVerifyFieldHandler
Top
Fields
  NameDescription
Protected fieldmbCollectConvertedDocs
Flag to collect converted documents for items during export.
Protected fieldmlExporWindowHandle
Window handle for the Export Dialog
Protected fieldmoExportListViews
Dictinary from source configration to List View in different export tabs.
Protected fieldmoExportProfile
Export profile that is being processed.
Protected fieldmoExportProfileDatas
Dictionary from source configuration to Export Profile data in different export tabs.
Protected fieldmoParent
Parent Extensions that intantiates this Export Handler
Protected fieldmoRightClickItems
Right click menu for items. The row must be detected as an item (rather than an attachment) to have right click menu. Dictionary key is the ID, followed by a list of tuples, where Item1 is the menuitem text than the Item2 is the action to invoke.
Top
See Also