Aspect Scripting Language

Download

 

The  Symantec Procomm Plus Communications Suite comes with a robust built-in scripting language called Aspect.  It borrows a little from a variety of languages for syntax and allows you to write pretty powerful programs to be run from within Procomm. This program is actually activated by a VB 6 program on a scheduled basis.

; ************************************************************************************
; *                                                                                  *
; *                                                                                  *
; *      PROCOMM PLUS ASPECT script file for edi transmit - ray 06/02                *
; *                                                                                  *
; *                                                                                  *
; ************************************************************************************
;
; send a specific file passed into s0 to ge edi:
;
;
; * global variables
#define TRUE    1
		
string FileToSend = ""          ; File passed in to s0
string LPATH="Z:\edi\sendlogs\" ; log path
string LOG_NAME			; audit log
string TRACKING = ""            ; tracks dialing result:
string RESULT_LOG = "C:\EDI\LOGS\edisend.log"
string PDUMP  = "Z:\edi\pending\"	; network dump path
integer NEED2TXEDI=1		; success/failure flag
integer XFER_STAT=0		; to test xmit success
;******************************************************************************

proc main
strcat FileToSend S0  ; string passed in with file name:
LOG_NAME = FileToSend 

commandmode on ; very important!

process_edi()

endproc
;******************************************************************************

proc process_edi

  ; strip the dir and change tx? to lo?
  strreplace LOG_NAME PDUMP ""
  strreplace LOG_NAME ".00" ".LO"
  
  set capture Path LPATH              ; store on network for host retrieval
  set capture overwrite ON           
  set capture recordmode FILTERED     ; remove emulation characters
  SET CAPTURE File LOG_NAME
  CAPTURE ON
  sendit()					; actual xmit
endproc

proc sendit

   SET PORT BAUDRATE 9600
   SET PORT DATABITS 7
   SET PORT PARITY EVEN
   SET PORT STOPBITS 1
   CLEAR
   
       ; begin:
       ;
       LOCATE 4 50
       TERMWRITES "** Dialing GE **                   "
       LOCATE 5 50
       TERMWRITES "                                    "
       LOCATE 20 0
       PAUSE 1
       TRANSMIT "atdt1,2015551212^M"
      
       WAITFOR "CONNECT" 45

        IF SUCCESS
           WAITFOR "U" 45
           IF SUCCESS
              LOCATE 6 50
              TERMWRITES "^MWAITING FOR MAILBOX LOGIN^M"
              LOCATE 6 0
               PAUSE 1
               TRANSMIT "id,pw,acct^M"
        
               WAITFOR "ENTER SELECTION:" 45
               IF SUCCESS
                   TRANSMIT "DATA^M"  
                   WAITFOR "SELECTION" 45
                   IF SUCCESS
                        TRANSMIT "XMOD^M" 
                        WAITFOR "SELECTION" 45
                        IF SUCCESS
                           ; do the upload here
                           _upload()
                        ELSE
                           TERMWRITES "^MDID NOT ACCEPT XMOD^M"
                        ENDIF
                      
                 ELSE
                    TERMWRITES "^MDID NOT DISPLAY MAIN MENU^M"
                 ENDIF
               ELSE
                  TERMWRITES "^MLOGIN DENIED BY GE^M"
               ENDIF
           ELSE
              TERMWRITES "^MNO PROMPT PRESENTED AFTER ANSWER^M"
           ENDIF
      ELSE
          TERMWRITES "^MCOULD NOT CONNECT TO GE^M"
      ENDIF
            
    ;* we hang up 
    HANGUP
    commandmode on
   IF strcmp TRACKING ""
         TRACKING = "INCOMPLETE OP  "
   ENDIF
   
   CAPTURE OFF
   IF NEED2TXEDI == 1
       ; show them what happened
     _bad_report()				 
   ENDIF                
    
   ;* end of procedure

endproc

proc _upload

      TRANSMIT "L^M"
      IF SUCCESS
      WAITFOR "Input SEND or RECV?" 45
      IF SUCCESS
         TRANSMIT "SEND^M"
         WAITFOR "Input MARK III filename ?" 45
         IF SUCCESS
            TRANSMIT "MAILBOX^M"
              ;
              PAUSE 2
              TRANSMIT "APP^M" ; * append if file(s) already there
                    
               SENDFILE XMODEM FileToSend
               XFER_STAT = $XFERSTATUS
               WHILE XFER_STAT < 2
                 XFER_STAT = $XFERSTATUS
               ENDWHILE
               IF XFER_STAT == 2
                  ; file xfr complete
                  ;               
                  TERMWRITES "^MFILE TRANSMIT COMPLETED, WAITING FOR OK^M"
                  WAITFOR "Execute XMODEM SEND function again(Y/N)?" 45
                  TRANSMIT "N^M"
                  WAITFOR "Continue XMODEM(Y/N)" 45
                  TRANSMIT "N^M"
                  WAITFOR "ENTER SELECTION:" 45
                  TRANSMIT "SEND MAILBOX^M"
                  WAITFOR "LOG NUMBER" 45
                  IF SUCCESS 
                     NEED2TXEDI = 0		; we are done
                     PAUSE 2
                     TRACKING = "COMPLETE        "
                     LOCATE 5 50
                     TermWriteS "** Transmission Successful **"
                     LOCATE 5 0
                     _bye()
                     _good_report()		; spread the good news!
                  ELSE
                     TERMWRITES "^MFILE SEND MAILBOX FAILED!!!^M"
                  ENDIF
              
              WAITFOR "SELECTION:"   
              TRANSMIT "BYE^M"
                
              ELSE
                 TERMWRITES "^MFILE SEND VIA XMODEM FAILED!!!^M"
              ENDIF
          ELSE
             TERMWRITES "^MWOULD NOT ACCEPT FILENAME^M"
          ENDIF
       ELSE
         TERMWRITES "^MDID NOT PROMPT FOR DIRECTION^M"
      ENDIF
     ELSE
       TERMWRITES "^MNO CRC PROMPT^M"
     ENDIF
                
 endproc

proc _bye

   WAITFOR "SELECTION:"   
   TRANSMIT "BYE^M"

   ;* we hang up 
   HANGUP
   commandmode on

endproc


proc _good_report
  commandmode on
 CLEAR
 make_log()  
 LOCATE 4 3 
   TERMWRITES "-----------------------------------------------------------------------"
   LOCATE 5 3
   TERMWRITES "|                                                                     |"
   LOCATE 6 3
   TERMWRITES "|                 T O R A H  C O M P A N Y  I N C.                    |"
   LOCATE 7 3
   TERMWRITES "|                 - - - - -  - - - - - - -  - - -                     |"
   LOCATE 8 3
   TERMWRITES "|                             E D I                                   |"
   LOCATE 9 3
   TERMWRITES "-----------------------------------------------------------------------"
   LOCATE 12 5
   TERMWRITES "*** Status Report For "
   LOCATE 13 30
   TERMWRITES FileToSend
   LOCATE 14 5
   TERMWRITES "*** Transmission:  Successful"
   LOCATE 22 20
  TERMWRITES "Please wait for send cycle to resume: "
   LOCATE 22 56
   pause 30
  PWEXIT
endproc

;******************************************************************************
proc _bad_report

string y
y = "alert"
set terminal colors y 
commandmode on

CLEAR
make_log()
LOCATE 4 3 
   TERMWRITES "-----------------------------------------------------------------------"
   LOCATE 5 3
   TERMWRITES "|                                                                     |"
   LOCATE 6 3
   TERMWRITES "|                 E D I  T R A N S M I S S I O N                      |"
   LOCATE 7 3
   TERMWRITES "|                 - - - - -  - - - - - - -  - - -                     |"
   LOCATE 8 3
   TERMWRITES "|                             F O R                                   |"
   LOCATE 9 3
   TERMWRITES "|                                                                     |"
   LOCATE 10 27 
   TERMWRITES FileToSend
   LOCATE 11 3
   TERMWRITES "|                                                                     |"
   LOCATE 12 3
   TERMWRITES "-----------------------------------------------------------------------"
   LOCATE 13 3
   TERMWRITES "                                                                      " 
   LOCATE 14 3
   TERMWRITES "|          * * *      U N S U C C E S S F U L   * * *                 |"
   LOCATE 15 3
   TERMWRITES "                                                                      "
   LOCATE 16 5
   TERMWRITES "* * NOTE: **"
   LOCATE 17 3
   TERMWRITES "                                                                      " 
   LOCATE 18 5
   TERMWRITES "See the log file below:"
   LOCATE 19 5
   TERMWRITES "                                                                      "
   LOCATE 20 5
   TERMWRITES LPATH
   TERMWRITES LOG_NAME
  ; LOCATE 21 3
   TERMWRITES "                                                                      " 
   LOCATE 22 20
   TERMWRITES "Please wait for send cycle to resume: "
   LOCATE 22 56
   pause 30
   PWEXIT
endproc

proc make_log
; write out result of attempts:
;
IF fopen 0 RESULT_LOG CREATE
   fwrite 0 TRACKING 16
   fwrite 0 LOG_NAME 12
   fclose 0
ENDIF

endproc

 

Email: raykelly@rakelly.com

TOP