0010 ************************************************************************
0020 **
0030 **  This is a simple example of a program which downloads two Natural
0040 **  programs to PC files via Natural Connection, then autostarts the PC
0050 **  file comparison tool so that it points to the 2 files just created.
0060 **  It assumes the data entered is correct, and does no validation.
0070 **  View name, PC workfile numbers and NTC task name should be adjusted
0080 **  to fit local conditions.
0090 **
0100 ************************************************************************
0110 DEFINE DATA LOCAL
0120 01 SRC VIEW OF FUSER
0130   02 SRCID
0140   02 C*SRCTX
0150   02 SRCTX  (60)
0160 *
0170 01 #FIRST         (L)
0180 01 #LIBRARY-1     (A8)
0190 01 #LIBRARY-2     (A8)
0200 01 #PROGRAM-1     (A8)
0210 01 #PROGRAM-2     (A8)
0220 01 #SRC-LINE      (A90)
0230 01 REDEFINE #SRC-LINE
0240   02 #SEQ  (B2)
0250   02 #TEXT (A88)
0260 01 #SRCID-START   (A18)
0270 01 REDEFINE #SRCID-START
0280   02 #LIBRARY (A8)
0290   02 #MEMBER  (A8)
0300   02 #H00     (B2)
0310 01 #SRCID-FIN     (A18)
0320 01 REDEFINE #SRCID-FIN
0330   02 #LIB-MEM (A16)
0340   02 #HFF     (B2)
0350 *
0360 01 #I            (P2)
0370 01 #FROM         (P2)
0380 01 #TO           (P2)
0390 *
0400 *
0410 01 #DOWNLOAD-LINE     (A93)
0420 01 REDEFINE #DOWNLOAD-LINE
0430   02 #LINE-NO   (A4)
0440   02 #SPACE     (A1)
0450   02 #SRC-CODE  (A88)
0460 01 #NCW-COMMAND (A80)
0470 01 #PC-FILE     (A60)
0480 01 #PC-FILE1    (A28)  INIT <'C:\WINDOWS\TEMP\PROGRAM1.TXT'>
0490 01 #PC-FILE2    (A28)  INIT <'C:\WINDOWS\TEMP\PROGRAM2.TXT'>
0500 END-DEFINE
0510 *
0520 INPUT #LIBRARY-1 #PROGRAM-1
0530   /   *OUTIN #PC-FILE1
0540   //  #LIBRARY-2 #PROGRAM-2
0550   /   *OUTIN #PC-FILE2
0560 *
0570 MOVE H'0000' TO #H00
0580 MOVE H'FFFF' TO #HFF
0590 MOVE #LIBRARY-1 TO #LIBRARY
0600 MOVE #PROGRAM-1 TO #MEMBER
0610 MOVE SUBSTRING(#SRCID-START, 1, 16) TO #LIB-MEM
0620 MOVE #PC-FILE1 TO #PC-FILE
0630 PERFORM DOWNLOAD-ONE-PROGRAM
0640 *
0650 ** Depending on your version of Connection, you may find it helps
0660 ** to insert a 1 or 2 second sleep command here.
0670 *
0680 MOVE #LIBRARY-2 TO #LIBRARY
0690 MOVE #PROGRAM-2 TO #MEMBER
0700 MOVE SUBSTRING(#SRCID-START, 1, 16) TO #LIB-MEM
0710 MOVE #PC-FILE2 TO #PC-FILE
0720 PERFORM DOWNLOAD-ONE-PROGRAM
0730 *
0740 SET CONTROL '+'
0750 ** Alter "ACMATCH" to whatever Connection task name you defined.
0760 COMPRESS 'EXECTASK ACMATCH' #PC-FILE1 #PC-FILE2
0770   INTO #NCW-COMMAND
0780 DOWNLOAD PC FILE 7 COMMAND #NCW-COMMAND
0790 CLOSE PC FILE 7
0800 *
0810 **************************************
0820 DEFINE SUBROUTINE DOWNLOAD-ONE-PROGRAM
0830 **************************************
0840 *
0850 ASSIGN #FIRST = TRUE
0860 SET CONTROL '+'
0870 COMPRESS 'SET PCFILE 8 DOWN DATA' #PC-FILE INTO #NCW-COMMAND
0880 DOWNLOAD PC FILE 7 COMMAND #NCW-COMMAND
0890 CLOSE PC FILE 7
0900 READ SRC BY SRCID
0910     STARTING FROM #SRCID-START ENDING AT #SRCID-FIN
0920   IF #FIRST
0930     ASSIGN #FROM = 4
0940     ASSIGN #FIRST = FALSE
0950   ELSE
0960     ASSIGN #FROM = 1
0970   END-IF
0980   ASSIGN #TO = SRC.C*SRCTX
0990   FOR #I = #FROM TO #TO
1000     RESET #DOWNLOAD-LINE
1010     MOVE SRC.SRCTX(#I) TO #SRC-LINE
1020     MOVE EDITED #SEQ (EM=HHHH) TO #DOWNLOAD-LINE.#LINE-NO
1030     MOVE #TEXT TO #DOWNLOAD-LINE.#SRC-CODE
1040     DOWNLOAD PC FILE 8 #DOWNLOAD-LINE
1050   END-FOR
1060 END-READ
1070 *
1080 CLOSE PC FILE 8
1090 *
1100 END-SUBROUTINE
1110 *
1120 END