DefaultN4ToAutoDbFieldTransformer
Code Extension Type: CTL_FIELD_TRANSFORMER (on page 1)
Purpose: To convert N4 data to the equipment control system (such as TEAMS) format. You can use this code extension to:
Configure prefixes for the transfer point (TP) positions sent to TEAMS. TEAMS uses the TP position prefix to determine the type of transfer zone, such as landside, waterside, synchronous rail (without racks), and asynchronous rail (with racks). Use the method getTransferZonePositionPrefix to return the type of TEAMS position that should be generated for an N4 transfer zone position.
Change the logic used to determine TEAMS transfer zone position types, such as which block(s) are determined to be landside or waterside.
Override the method isWorkInstructionIntendedForAgv(WorkIntruction inWi). This method verifies whether the equipment type code of the unit facility visit (UFV) of the given work instruction matches any of the pre-defined "Special Equip Type" patterns and decides the NEXT_QC_LOC_TYPE based on the matching result. The default patterns implemented are as follows:
“??6%” (flat rack)
“??P%” [flat rack (collapsible)]
“L5G1” (45 ft high-cube general)
This method returns true if a container does *not* match any of these “Special Equip Type” patterns. In this case, N4 populates the NEXT_QC_LOC_TYPE field in the WORK_INSTRUCTION_STATUS in the TEAMS interface database with AGV. It returns false otherwise, in which case N4 populates the NEXT_QC_LOC_TYPE field with TRUCK.
You can modify the calculation of the CONFIGURATION field in the QC_WQ_STATUS by overriding the following snippet:
if (EciBizMetafield.ECI_QC_WQ_STATUS_CONFIGURATION.equals(inField)) {
final ValueObject valueObject = (ValueObject) inValue;
final Long wqGkey = (Long) valueObject.getFieldValue(MovesField.WQ_GKEY);
final Long cvGkey = (Long) valueObject.getFieldValue(ArgoField.CV_GKEY);
if (wqGkey != null) {
final WorkQueue workQueue = WorkQueue.hydrate(wqGkey);
final CarrierVisit carrierVisit = cvGkey == null ? null : CarrierVisit.hydrate(cvGkey);
final IControlManager controlManager = (IControlManager) Roastery.getBean(IControlManager.BEAN_ID);
if (controlManager.isWorkQueueConfigured(workQueue, carrierVisit)) {
return QC_WQ_STATUS_CONFIGURATION_CONFIGURED;
}
}
return QC_WQ_STATUS_CONFIGURATION_UNCONFIGURED;
}
N4 updates the status of dual-cycle work queues (WQ) in the eciWiDualCycle column in the work_instruction_status table.. These updates occur every 60 seconds, causing a delay between changes in the dual-cycle status of WQ and the actual updates. The dual_cycle flag for each work instruction (WI) is updated individually, with a delay between each update. If the population of this field needs to be customized, override the convertIsDualCycleWiToAutoDb() configuration.