273 lines
6.8 KiB
Plaintext
273 lines
6.8 KiB
Plaintext
COMPILE FUNCTION Comm_Vision_Comm( Instruction, Parm1 )
|
|
|
|
/*
|
|
Commuter Module for Vision Communications Window
|
|
|
|
J.C. Henry, Inc. - John C. Henry
|
|
|
|
*/
|
|
|
|
DECLARE SUBROUTINE Center_Window,StatusLine,Set_Property,End_Dialog, Send_Event, Set_Status, Adios, obj_Vision, obj_Notes, obj_Post_Log
|
|
DECLARE SUBROUTINE ErrMsg, Send_Message, obj_Tables, Post_Event, Send_INfo, ShowWindow, obj_Appwindow, Send_Dyn,ErrLog, obj_WO_Mat_Log
|
|
DECLARE SUBROUTINE obj_Calib_List
|
|
DECLARE FUNCTION Get_Property, Get_Status,Dialog_Box, FindWindow, Utility
|
|
|
|
$INSERT QUOTE_SIGS_EQU
|
|
$INSERT NOTIFICATION_EQU
|
|
|
|
EQU CRLF$ TO \0D0A\
|
|
|
|
EQU TRUE$ TO 1
|
|
EQU FALSE$ TO 2
|
|
|
|
$INSERT ENVIRON_CONSTANTS
|
|
|
|
ErrTitle = 'Error in Comm_Vision_Comm routine'
|
|
ErrorMsg = ''
|
|
|
|
|
|
Instructions = 'Create'
|
|
Instructions := @FM:'Timer'
|
|
Instructions := @FM:'StartStop'
|
|
Instructions := @FM:'CommStartStop'
|
|
Instructions := @FM:'Close'
|
|
|
|
RetVal = ''
|
|
|
|
|
|
BEGIN CASE
|
|
CASE Instruction = 'Create' ; GOSUB Create
|
|
CASE Instruction = 'Timer' ; GOSUB Timer
|
|
CASE Instruction = 'StartStop' ; GOSUB StartStop
|
|
CASE Instruction = 'VisionStartStop' ; GOSUB VisionStartStop
|
|
CASE Instruction = 'Close' ; GOSUB Close
|
|
CASE 1
|
|
ErrorMsg = 'Unknown Instruction ':QUOTE(Instruction):' passed to routine'
|
|
|
|
END CASE
|
|
|
|
|
|
IF ErrorMsg NE '' THEN
|
|
ErrMsg(ErrTitle:@SVM:ErrorMsg)
|
|
END
|
|
|
|
|
|
RETURN RetVal
|
|
|
|
|
|
* * * * * * *
|
|
Create:
|
|
* * * * * * *
|
|
|
|
ErrMsg('This is deprecated... Bye')
|
|
|
|
GOTO Close
|
|
|
|
|
|
obj_Appwindow('Create',@WINDOW)
|
|
|
|
otParms = 'SYSOBJ':@RM:'VISION_COMM'
|
|
obj_Tables('LockRec',otParms) ;* Places lock on fictional record
|
|
|
|
IF Get_Status(errCode) THEN
|
|
ErrorMsg = ErrTitle:@SVM:'Another Vision Communications Server is already running.'
|
|
ErrMsg(ErrorMsg)
|
|
Post_Event(@WINDOW,'CLOSE')
|
|
RETURN
|
|
END
|
|
|
|
Set_Property(@WINDOW,'@LOCKED',1) ;* Set ad-hoc property '@LOCKED' to true
|
|
Set_Property(@WINDOW,'TIMER','1000':@FM:'0') ;* Set timer event to 5000 msecs (5 seconds) to check Inbound data from Vision
|
|
|
|
|
|
* Show engine window when running on a runtime JCH
|
|
|
|
*OpenEngineHandle = FindWindow("AREV":\00\,0)
|
|
*ShowWindow(OpenEngineHandle,1)
|
|
|
|
|
|
* No return on create -> automatically starts communications server
|
|
|
|
|
|
RETURN
|
|
|
|
* * * * * * *
|
|
StartStop:
|
|
* * * * * * *
|
|
|
|
StartStop = Get_Property(@WINDOW:'.START_STOP_BUTTON','TEXT')
|
|
|
|
IF StartStop[1,4] = 'Stop' THEN
|
|
|
|
* Server is running
|
|
|
|
Set_Property(@WINDOW:'.START_STOP_BUTTON','TEXT', 'Start Monitor')
|
|
Set_Property(@WINDOW:'.CLOSE_BUTTON','ENABLED',1)
|
|
|
|
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON', 'TEXT', 'Start Vision Communications')
|
|
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON','ENABLED',0)
|
|
|
|
END ELSE
|
|
|
|
Set_Property(@WINDOW:'.START_STOP_BUTTON','TEXT', 'Stop Monitor')
|
|
Set_Property(@WINDOW:'.CLOSE_BUTTON','ENABLED',0)
|
|
|
|
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON','TEXT', 'Stop Vision Communications')
|
|
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON','ENABLED',1)
|
|
|
|
END
|
|
|
|
RETURN
|
|
|
|
* * * * * * *
|
|
VisionStartStop:
|
|
* * * * * * *
|
|
|
|
CommStartStop = Get_Property(@WINDOW:'.COMM_START_STOP_BUTTON','TEXT')
|
|
|
|
IF CommStartStop[1,4] = 'Stop' THEN
|
|
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON', 'TEXT', 'Start Vision Communications')
|
|
END ELSE
|
|
Set_Property(@WINDOW:'.COMM_START_STOP_BUTTON', 'TEXT', 'Stop Vision Communications')
|
|
END
|
|
|
|
RETURN
|
|
|
|
* * * * * * *
|
|
Close:
|
|
* * * * * * *
|
|
|
|
UNLOCK ALL
|
|
|
|
Set_Property('SYSTEM','IDLEPROC','ADIOS')
|
|
|
|
|
|
RETURN
|
|
|
|
|
|
* * * * * * *
|
|
Timer:
|
|
* * * * * * *
|
|
|
|
Set_Status(0)
|
|
|
|
Set_Property(@WINDOW:'.CURR_TIME','TEXT',OCONV( Time(), 'MTHS' )) ;* Clock on window
|
|
|
|
LastTime = Get_Property(@WINDOW,'@LAST_TIME')
|
|
LastLoginTime = Get_Property(@WINDOW,'@LAST_LOGIN_TIME')
|
|
|
|
IF Get_Property(@WINDOW:'.COMM_START_STOP_BUTTON','TEXT')[1,' '] = 'Stop' THEN
|
|
VisionCommFlag = 1
|
|
END ELSE
|
|
VisionCommFlag = 0
|
|
END
|
|
|
|
IF Get_Property(@WINDOW:'.START_STOP_BUTTON','TEXT')[1,' '] = 'Stop' THEN
|
|
|
|
* We're in run mode
|
|
|
|
IF LastTime > Time() THEN
|
|
Set_Property(@WINDOW,'@LAST_TIME', Time()) ;* Midnight -> clock resets to 0
|
|
Set_Property(@WINDOW,'@LAST_LOGIN_TIME',Time())
|
|
LastTime = Time()
|
|
LastLoginTime = Time()
|
|
*obj_Calib_List('SendReminders') ;* Sends calibration notifications to recepients
|
|
|
|
END
|
|
|
|
IF Get_Property(@WINDOW:'.COMM_START_STOP_BUTTON','TEXT')[1,' '] = 'Stop' THEN
|
|
VisionCommFlag = 1
|
|
END ELSE
|
|
VisionCommFlag = 0
|
|
END
|
|
|
|
IF Time() >= (LastLoginTime + 3600) AND VisionCommFlag THEN
|
|
|
|
* Login to the AS400 so we can access the 'Z:' drive which is a folder used for moving stuff
|
|
|
|
AS400Login = 'C:\PROGRA~1\IBM\CLIENT~1\CWBLOGON.EXE 10.64.110.100 /U EPIDWNLD /P EPIDWNLD'
|
|
|
|
Set_Property(@WINDOW,'@LAST_LOGIN_TIME',Time())
|
|
|
|
Result = Utility('RUNWIN',AS400Login,1)
|
|
|
|
IF Result<2> = '' THEN
|
|
ErrLog('No Logon to the AS400!') ;* This doesn't seem to ever happen - leave it for now
|
|
END
|
|
|
|
END
|
|
|
|
|
|
IF Time() >= (LastTime + 5) THEN
|
|
|
|
IF VisionCommFlag THEN
|
|
|
|
Send_Info('Checking Inbound...')
|
|
|
|
obj_Vision('GetInbound')
|
|
|
|
IF Get_Status(errCode) THEN
|
|
|
|
ErrLog(errCode) ;* ErrLog clears status
|
|
|
|
Recipients = XLATE('NOTIFICATION','ORDER_ENTRY',NOTIFICATION_USER_ID$,'X')
|
|
SentFrom = 'Vision Comm Server'
|
|
Subject = 'Vision Communications Server Errors'
|
|
Message = "Communications Errors logged during 'Get_Inbound' on the Vision Communications Server"
|
|
AttachWindow = ''
|
|
AttachKey = ''
|
|
SendToGroup = ''
|
|
|
|
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
|
obj_Notes('Create',Parms)
|
|
|
|
IF Get_Status(errCode) THEN ErrLog(errCode)
|
|
|
|
END
|
|
|
|
*Send_Event(@WINDOW:'.START_STOP_BUTTON','CLICK') ;* One shot - Comment out to run continuous *************************************
|
|
|
|
* Check 'VISION_COMM' for pending outbound transaction
|
|
|
|
Send_Info('Checking Outbound...')
|
|
|
|
obj_Vision('SendOutbound')
|
|
|
|
IF Get_Status(errCode) THEN
|
|
|
|
ErrLog(errCode) ;* ErrLog clears status
|
|
|
|
Recipients = XLATE('NOTIFICATION','ORDER_ENTRY',NOTIFICATION_USER_ID$,'X')
|
|
SentFrom = 'Vision Comm Server'
|
|
Subject = 'Vision Communications Server Errors'
|
|
Message = "Communications Errors logged during 'SendOutbound' on the Vision Communications Server"
|
|
AttachWindow = ''
|
|
AttachKey = ''
|
|
SendToGroup = ''
|
|
|
|
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
|
obj_Notes('Create',Parms)
|
|
|
|
IF Get_Status(errCode) THEN ErrLog(errCode)
|
|
|
|
END
|
|
END ;* End of check for VisionCommFlag = 1
|
|
|
|
Send_Info('Posting Barcode Scans...')
|
|
obj_WO_Mat_Log('Post')
|
|
|
|
Send_Info('Posting Post Log Transactions...')
|
|
obj_Post_Log('Post')
|
|
|
|
Send_Info('Forwarding eMail...')
|
|
obj_Notes('ForwardEMail')
|
|
|
|
Set_Property(@WINDOW,'@LAST_TIME', Time())
|
|
|
|
END
|
|
END
|
|
|
|
Send_Info(' ')
|
|
|
|
RETURN
|