Вторник, 26.09.2017, 01:29
Приветствую Вас Гость | RSS
Главная | Перенос os/390 на hercules - Страница 11 - Форум | Регистрация | Вход
Форма входа
Логин:
Пароль:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 11 из 11«1291011
Форум » Технические форумы » Hercules » Перенос os/390 на hercules
Перенос os/390 на hercules
GregoryДата: Среда, 23.11.2016, 23:31 | Сообщение # 151
Генерал-майор
Группа: Доверенные
Сообщений: 303
Репутация: 7
Статус: Offline
пример bat-файла

Код
rem batch to load WDWTPOSW table on remote system
@echo off
set server=xxx.com
set userid=xxxxxxxx
set passwd=xxxxxxx
set table=WDWTPOSW
echo user %userid% %passwd% > ftpput.tmp
echo quote site sbdata=(500,1252) >> ftpput.tmp
echo quote site recfm=VB lrecl=140 blksize=14000 >> ftpput.tmp
echo quote site tracks pri=10 sec=10 >> ftpput.tmp
echo del '%userid%.%table%.CSV' >> ftpput.tmp
echo put %1 '%userid%.%table%.CSV' >> ftpput.tmp
echo quote site filetype=jes >> ftpput.tmp
echo put ftpput.bat >> ftpput.tmp
echo quit >> ftpput.tmp
ftp -s:ftpput.tmp -n %server%
del ftpput.tmp
exit
//xxxxxxxx JOB ,'WDWTPOSW LOAD',REGION=0M,MSGCLASS=D,NOTIFY=&SYSUID
//*--------------------------------------------------------------------*
//*        Load WSDIWWE.WDWTPOSW                    *
//*--------------------------------------------------------------------*
//TERM     EXEC PGM=IKJEFT01,DYNAMNBR=20
//STEPLIB  DD  DISP=SHR,DSN=SYS1.DSNDB2A.SDSNLOAD
//SYSTSPRT DD  SYSOUT=*
//SYSTSIN  DD  *
  DSN SYSTEM(DB2A)
     -TERM UTILITY(WDWTPOSW)
  END
//LOAD     EXEC PGM=DSNUTILB,PARM='DB2A,WDWTPOSW',REGION=0M
//SYSIN    DD  *
LOAD DATA INDDN SYSREC LOG NO RESUME YES NOCOPYPEND
FORMAT DELIMITED EBCDIC CCSID(500,1208,1200)
INTO TABLE WSDIWWE.WDWTPOSW (
   MATNR CHAR,
   UNIT_SERIAL CHAR,
   SHIPDATE CHAR,
   REF_ID CHAR,
   PART_SERIAL CHAR,
   VBELN_O CHAR,
   VBELN_D CHAR,
   P_PONO CHAR,
   MFG_LOCN CHAR,
   CUST_CTRY_WE CHAR,
   SPARE CHAR
   )
//SYSPRINT DD  DSN=&&LISTING,DISP=(NEW,PASS),
//             SPACE=(CYL,(10,50)),UNIT=SYSDA
//SYSREC   DD  DSN=&SYSUID..WDWTPOSW.CSV,DISP=SHR,DCB=BUFNO=30
//SYSERR   DD  DSN=&&ERR,DISP=(NEW,DELETE),
//             SPACE=(CYL,(10,50)),UNIT=SYSDA
//SYSDISC  DD  DSN=&&DISC,DISP=(NEW,DELETE),
//             SPACE=(CYL,(10,50)),UNIT=SYSDA
//SYSMAP   DD  DSN=&&MAP,DISP=(NEW,DELETE),
//             SPACE=(CYL,(10,50)),UNIT=SYSDA
//SYSUT1   DD  SPACE=(CYL,(10,50)),UNIT=SYSDA
//SORTOUT  DD  SPACE=(CYL,(10,50)),UNIT=SYSDA
//UTPRINT  DD  SYSOUT=*
//         IF  (LOAD.ABEND = TRUE ! LOAD.RC > 4) THEN
//FAILURE  EXEC PGM=IKJEFT01,DYNAMNBR=20
//LISTING  DD  DSN=&&LISTING,DISP=(OLD,PASS)
//SYSTSIN  DD  *
  TRANSMIT xxx.user DDNAME(LISTING) MSGDD(MESSAGE) NONOTIFY
//SYSTSPRT DD  SYSOUT=*
//MESSAGE  DD  *
Subject: Table WDWTPOSW not loaded
See attached file for details
//         ELSE
//SUCCESS  EXEC PGM=IKJEFT01,DYNAMNBR=20
//LISTING  DD  DSN=&&LISTING,DISP=(OLD,PASS)
//SYSTSIN  DD  *
  TRANSMIT xxx.user1 DDNAME(LISTING) MSGDD(MESSAGE) NONOTIFY
//SYSTSPRT DD  SYSOUT=*
//MESSAGE  DD  *
Subject: Table WDWTPOSW successfully loaded
See attached file for details
//         ENDIF
//         IF  (LOAD.RUN = TRUE) THEN
//SYSOUT   EXEC PGM=IEBGENER
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  DSN=&&LISTING,DISP=(OLD,DELETE)
//SYSUT2   DD  SYSOUT=*,
//             SPACE=(CYL,(10,50)),UNIT=SYSDA
//SYSIN    DD  DUMMY
//         ENDIF
//


пользователь этой процедуры готовит бизнес-данные в MS excel или Open Office Calc, затем сохраняет их в файл CSV (comma-separated values) и перетаскивет этот файл на иконку, связанную с этой процедурой (имя файла будет передано windows как параметр).

Процедура делает следующее
- устанавливает ftp соединение с удаленной системой z/OS
- передает файл данных (CSV) в набор данных userid.WDWTPOSW.CSV;
- передает задание для загрузки этих данных
- стартует это задание, выполняя загрузку данных в таблицу
- отправитель получает письмо c результатом загрузки

Предполагается, что имя процедуры ftpput.bat не изменяется.

Здесь используется довольно простая уловка, чтобы не храниить задание в отдельном файле - задание включено в сам bat-файл после команды exit. Это не мешает bat-файлу нормально выполняться, а строки самого  bat-файла, которые отправляются в jes2 как часть задания тоже ничему не мешают, так как jes2 игнорирует все данные до // JOB. Делать так совершенно не обязательно)

Чтобы письмо могло быть доставлено адресату, в z/OS должна быть сконфигурирована и активна служба SMTP, включая SMTP/NJE gateway.

В задании некоторые идентификаторы заменены условными по понятным соображениям.

Более того, можно использовать макро для Excel или Calc, чтобы выполнить все это прямо из Excel/Calc.
Так что можно работать с z/OS используя только ftp, и обходится вообще без pc3270/telnet.
Прикладные программисты могут использовать визуальный ftp клиент, такой как Filezilla или BlueZone, и мне даже известна одна разработка, выполненная таким способом - только ftp и ничего кроме него. Конечно, это далеко не RD/z, но зато совершенно бесплатно biggrin


Сообщение отредактировал Gregory - Среда, 23.11.2016, 23:51
 
Форум » Технические форумы » Hercules » Перенос os/390 на hercules
Страница 11 из 11«1291011
Поиск: