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, но зато совершенно бесплатно
Сообщение отредактировал Gregory - Ср, 23.11.2016, 23:51
Добавлено (03.08.2018, 11:59) --------------------------------------------- Кто нибудь знает, как по FTP отправить задание на выполнение на СВМ v.4.13 (VM/370), по аналогии, как делает Gregory?
Кто нибудь знает, как по FTP отправить задание на выполнение на СВМ v.4.13 (VM/370), по аналогии, как делает Gregory?
а мне вот интересно, в СВМ 4.13 вы TCP/IP откуда взяли?.. насколько я помню, его же там нет. я был вынужден в свое время выкусить TCP/IP из VM/ESA feat 370 и адаптировать его для СВМ, а штатно его там быть не должно, ибо в VM/SP, который и есть донор для СВМ, ничего подобного же не было.
а мне вот интересно, в СВМ 4.13 вы TCP/IP откуда взяли?
Сейчас расспросил сисадмина по СВМ,как все было. Он точно уже не помнит. В конце 80-х гг. завод купил в Минске СВМ для работы на отечественном оборудовании ЕС. В начале 90-х там же из Минска были приобретены б\у процессора, а также устройства TCPIP, PComm и более новая СВМ v.4.13. Затем в начале 2000-х был переход на Hercules.
Добавлено (10.08.2018, 10:32) --------------------------------------------- Так же было обновление для решения проблемы 2000 года. Может TCPIP появилось в конце 90-х.
Добавлено (10.08.2018, 10:33) --------------------------------------------- удалось отправить задание на BATCH через HERCRDR
Добавлено (10.08.2018, 10:39) --------------------------------------------- Но в СВМ есть проблема, как я думаю, это конфликт с адресами. Когда в файле DMKRIO ASSEMBLE для ридеров указываешь адреса 00A - 00C, то при трансляции возникают ошибки. Поставили адрес ридеров 000-003, в этом случае ошибки не возникли.
Добавлено (10.08.2018, 10:43) --------------------------------------------- Рабочий файл DMKRIO ASSEMBLE, который был оттранслирован без ошибок
а мне вот интересно, в СВМ 4.13 вы TCP/IP откуда взяли?.. насколько я помню, его же там нет. я был вынужден в свое время выкусить TCP/IP из VM/ESA feat 370 и адаптировать его для СВМ, а штатно его там быть не должно, ибо в VM/SP, который и есть донор для СВМ, ничего подобного же не было.или я уже что-то забыл?
Если в СВМ 4.10 засунуть TCP/IP из VM/ESA 2.2 - будет работать...
Да... для Геркулеса есть свой TCP/IP... Даже в БОС можно всунуть....)))
Кстати, есть один заказчик старый.. у него БОС под Геркулесом работает со страшной силой, и он очень доволен и даже потихоньку развивает систему - дописывает модули, правит программы и прочее. Прямо второе дыхание продукт обрел с Геркулесом.
Я знаю одну "контору", в которой под Геркулесом работает MVT (ОС6ЕС)... И они очень довольны....)))
Ну таких я тоже знаю. То, что MVT - это не удивительно. MVT в принципе умеет на голом железе работать. А вот БОС, красаучег, разрабатывался для работы в виртуальной машине, в нем выкушено куча всего, связанного с обработкой виртуальной памяти и восстановлением на случай сбоя в железе. По утверждению одного низкоуровневого разработчика БОС, на ряде тестовых смесей БОС работал в среднем на 40 процентов быстрее MVT, а иногда - даже в два раза быстрее. Кроме того в БОС затащили однопользовательский ISPF-PDF, так что если в БОС сидит один маньяк-разработчик со своей задачей, то работать ему очень даже комфортно. Поэтому я почему-то думаю, что БОС под Геркулесом имеет все шансы пережить более серьезные системы. Кстати, никто не видел Геркулеса на смартфоне?... с БОСом и ПРИМУСом?.. я бы похихикал и от фотографий не отказался бы.
А расскажите мне, пожалуйста, какой сейчас статус у БОС? И если у БОС нет хозяина, то, может быть, имеет смысл выложить образы дисков? По-моему, это вполне могло бы конкурировать с "turnkey MVS" на базе MVS3.8
Схема пакетной обработки из поста #160 Smoker вполне универсальна и применима как для z/OS и z/VM, так и для систем-предшественников z/OS без поддержки TCP/IP (OC EC, OC PB, TKS, БОС...) Но для применения этой схемы нужна еще одна вещь - получение обратно листинга выполнения задания. Это не очень сложно сделать, используя программу выхода для печати разделителя заданий. Тогда взаимодействие будет выглядеть принципиально так же, как при использовании FTP z/OS: отправляем задание и получаем обратно листинг его выполнения.
Сообщение отредактировал Gregory - Чт, 23.08.2018, 23:10