Description: A code extension of this type is used to provide Groovy interception (a Groovy hook) for the fields in the gate transaction panel in a gate form. You can use a GATE_UI_FIELD_INTERCEPTOR (on page 1) code extension to read data from N4 or perform calculations and automatically fill in certain fields in the gate forms.
Abstract Base Class: com.navis.external.road.AbstractGateFormFieldInterceptor
Method: You can edit the following methods:
Map<MetafieldId, Object> execute(GateFormFieldExtensionContext inExtensionContext): The gate work flow invokes this method when a user enters data in a gate field.
Map<MetafieldId, Object> executeAction(GateFormFieldExtensionContext inExtensionContext): The gate work flow invokes this method when a user clicks the Custom Transaction Action button in the gate transaction panel in a gate form.
Both these methods do the same thing in the background. After N4 executes the code extension, the gate form fields are filled in based on the field values in the Map returned by these methods. If the Map is null/empty, then the code extension does not do anything.
The Transaction Mode of the GATE_UI_FIELD_INTERCEPTOR code extension type is NONE. This restricts a code extension of this type from making database calls, which may degrade the UI performance, when populating the fields in the Gate UI.
This may be sufficient in situations where the code extension just needs to perform some calculations based on the fields in the UI. However, if you do need to access the database in the code extension, you can invoke a "TRANSACTED_BUSINESS_FUNCTION" from this code extension in the executeAction() method that is invoked from the Custom Transaction Action button.
Interface: com.navis.external.road.EGateFormFieldInterceptor
Module: Road
Version Added: 3.1
Requires Code Extension Name or Name Pattern: Yes
Code Extension Name or Name Pattern: CustomGateFormFieldInterceptor
Navis recommends that you add only one code extension to handle the customization for all gate stages and gate transaction types.
Where to Specify Code Extensions of this Type: Executed when the user clicks the Custom Transaction Action button included on a gate form. For more information, see Configure Groovy Interception at the Gate Transaction Level (on page 1) in the Navis N4: Customization Administrator Guide or the online help.
System-Seeded Code Extensions Using this Type: CustomGateFormFieldInterceptorSample (on page 1)
Fields supported by the GATE_UI_FIELD_INTERCEPTOR code extension type
A code extension based on the GATE_UI_FIELD_INTERCEPTOR code extension type can be used to intercept and customize the following gate transaction fields:
RoadField.TRAN_IMPORT_RELEASE_NBR (Import Release Nbr)
RoadField.TRAN_EQO_NBR (Booking Number)
RoadBizMetafield.TRAN_EQO_NBR_AND_GKEY (Booking/Order)
RoadField.TRAN_EQO_ITEM (Booking Item)
RoadField.TRAN_LINE_ID (Line Id)
RoadField.TRAN_CTR_OPERATOR (Container Operator)
RoadField.TRAN_CHS_OPERATOR (Chassis Operator)
RoadField.TRAN_CTR_TYPE_ID (Container Type)
RoadField.TRAN_CTR_NBR_ASSIGNED (Container Nbr Requested)
RoadField.TRAN_CTR_FREIGHT_KIND (Freight Kind)
RoadField.TRAN_CHS_NBR_ASSIGNED (Chassis Number Requested)
RoadField.TRAN_CTR_NBR (Container Nbr)
RoadField.TRAN_CTR_ACC_NBR (Container Accessory Number)
RoadField.TRAN_CHS_ACC_NBR (Chassis Accessory Number)
RoadField.TRAN_CHS_NBR (Chassis Number)
RoadField.TRAN_CARRIER_VISIT (Vessel Visit)
RoadField.TRAN_APPOINTMENT_NBR (Appointment Number)
RoadField.TRAN_BL (Cargo Bill Of Lading)
RoadField.TRAN_CARGO_SERVICE_ORDER (Cargo Delivery Order)
RoadField.TRAN_FLEX_STRING01
RoadField.TRAN_FLEX_STRING02