Мейнфрейм в Outlook

Я хочу отправлять отчеты с мейнфрейма (z/OS) в Outlook 2016. Я хочу правильно отформатировать отчет. Я не знаю HTML, но если кто-нибудь может помочь мне с некоторыми простыми базовыми командами, чтобы отчет выровнялся и был равномерно расположен так, как он выглядит на мэйнфрейме, это помогло бы. Вложения — это то, как они выглядят на мейнфрейме и в Outlook зеленый экран текст электронной почты

this is the requested Jcl  - step004 removes the low values x'00' and replaces with spaces  the email step emails the file to outlook 
//STEP004  EXEC PGM=SORT                                               
//SORTIN   DD DSN=HGT.SDCPROD.REPORT1,                                 
//            DISP=SHR                                                 
//SORTOUT  DD DSN=HGT.SDCPROD.REPORT2,                                 
//            DISP=(,CATLG,DELETE),                                    
//            UNIT=DTA,SPACE=(TRK,(10,5),RLSE),                        
//            DCB=(RECFM=FB,LRECL=132,BLKSIZE=27984)                   
//SORTXSUM DD SYSOUT=*,DCB=LRECL=132                                   
//SYSOUT   DD SYSOUT=*                                                 
//SYSPRINT DD SYSOUT=*                                                 
//SYSUDUMP DD SYSOUT=*                                                 
//SYSABEND DD SYSOUT=*                                                 
//SYSIN    DD *                                                        
  SORT FIELDS=COPY                                                     
  ALTSEQ CODE=(0040)                                                   
  OUTREC FIELDS=(1,132,TRAN=ALTSEQ)                                    
//*******************************************************************  
//EMAILIT EXEC HTMLMAIX,EPARMS='*'                  
//SYSIN DD *                                        
MIME-VERSION: 1.0                                   
CONTENT-TYPE: TEXT/HTML                             
SUBJECT='SYSTEM DATA COPY PRODUCTION REPORT'        
[email protected]                      
[email protected]                      
EMAILDSN='HGT.SDCPROD.REPORT2'                      
STATUS='COMPLETED'                                  
/*                                                  
//                                                  

person Derez    schedule 24.08.2018    source источник
comment
Как вы отправляете отчет по электронной почте? Является ли это автоматизированным процессом (например, SYSOUT=* при выполнении пакетного задания)? Немного больше информации здесь может помочь дать вам более полный ответ.   -  person zarchasmpgmr    schedule 25.08.2018
comment
//PS060 EXEC EMAILIT,EPARMS='HCMSGEN.HCSC.MONTANA.CONTROL(SDCPRODE) член sdcprode CONTENT-TYPE: TEXT/HTML; CHARSET=US-ASCII ‹HTML› ‹ЦВЕТ ШРИФТА=КРАСНЫЙ FACE=COURIER NEW SIZE=12› ‹BODY› EMAILDSN='HGT.SDCPROD.REPORT2' ‹/BODY› ‹/FONT› ‹/HTML›   -  person Derez    schedule 26.08.2018
comment
Я понимаю, что разрывы строк - это проблема; не могли бы вы поместить как JCL, так и расширенный JCL в теги кода в вопросе?   -  person zarchasmpgmr    schedule 28.08.2018
comment
для этого комментария существует ограничение в 585 символов. поэтому шаг //PS060 файл HCMSGEN.HCSC.MONTANA.CONTROL(SDCPRODE) в элементе SDCPRODE. У меня есть вышеуказанные теги html, как показано в предыдущем комментарии.   -  person Derez    schedule 28.08.2018
comment
Пожалуйста, отредактируйте свой вопрос и поместите запрошенную информацию там, а не в комментарии. Нечитабельно в комментарии.   -  person zarchasmpgmr    schedule 28.08.2018
comment
обновленные комментарии @zarchasmpgmr   -  person Derez    schedule 29.08.2018
comment
Спасибо. Это поможет тем, кто найдет этот вопрос в будущем.   -  person zarchasmpgmr    schedule 01.09.2018
comment
Если у вас есть какая-либо документация по программе внутри HTMLMAIX PROC (посмотрите на EXEC PGM= из листинга JCL, это будет полезно знать), она должна проинструктировать вас, как отправить ее в виде текста или моноширинным шрифтом. Название PROC говорит мне о том, что по умолчанию он предназначен для генерации почты в формате HTML. Есть несколько других методов, в том числе пара, встроенная в z/OS. которые отправляют обычный текст по умолчанию. Существует также превосходная утилита XMITIP от Lionel Dyck (см. lbdsoftware.com).   -  person zarchasmpgmr    schedule 01.09.2018


Ответы (3)


@derez, вы пытались отправить свой отчет в виде вложения «.txt»?

в JCL укажите детали вложения, как показано ниже,

MIME-VERSION: 1.0   
CONTENT-TYPE: TEXT/PLAIN;                                               
CONTENT-DISPOSITION: ATTACHMENT; FILENAME="PRODUCTION_REPORT.TXT" 
person Karthick    schedule 25.08.2018
comment
@Картик, я проверю, примут ли пользователи вложение - person Derez; 26.08.2018

  1. Я использовал следующие записи,

       JOB      EXECUTION TIME  JOB NUM DAY MON YEAR START  END     RT CD
    HGDSDCIO    20180824030522   23017  24  AUG 2018 03.05  03.05    00  
    HGDSDCIO    20180824030522   23017  24  AUG 2018 03.05  03.05    00
    
  2. Используется Syncsort для добавления PUT " и "; в начальные и конечные области записей с использованием следующих операторов SYSIN.

    SORT FIELDS=COPY                                              
    OUTREC FIELDS=(1:C'PUT ',5:X'7F',6:1,69,75:X'7F',76:C';',80:X)
    

    Выход со 2-го шага:

    PUT "   JOB      EXECUTION TIME  JOB NUM DAY MON YEAR START  END     RT CD";
    PUT "HGDSDCIO    20180824030522   23017  24  AUG 2018 03.05  03.05    00  ";
    PUT "HGDSDCIO    20180824030522   23017  24  AUG 2018 03.05  03.05    00  ";
    
  3. И использовали следующий шаг SAS для отправки электронной почты.

    //STEP01   EXEC  SASPROD  
    //SYSPRINT DD SYSOUT=*    
    //EMAIL DD SYSOUT=(B,SMTP)
    //SYSOUT   DD SYSOUT=*    
    //SYSIN DD *              
    OPTIONS EMAILSYS="SMTP" EMAILHOST="*smtp server name*";               
    FILENAME OUTBOX EMAIL;                   
    DATA _NULL_;                                                           
    FILE OUTBOX                                                         
       TO=("[email protected]")                              
       SUBJECT="SAS MAIL TEST"                                          
       TYPE="TEXT/PLAIN";
       PUT "   JOB      EXECUTION TIME  JOB NUM DAY MON YEAR START  END     RT CD";
       PUT "HGDSDCIO    20180824030522   23017  24  AUG 2018 03.05  03.05    00  ";
       PUT "HGDSDCIO    20180824030522   23017  24  AUG 2018 03.05  03.05    00  ";
       RUN;
    
  4. Получил следующее по электронной почте.

Содержимое электронной почты

Вы уже упоминали, что отчет каждый раз будет разным, так как разные задания выполняются в разные дни. Этот метод по-прежнему будет работать, если вы объедините следующие 3 файла (по порядку) и передадите их в SYSIN на шаг SAS.

  1. Файл с операторами SAS от строки 1 до TYPE="TEXT/PLAIN"; в одном наборе данных.
  2. Файл с операторами PUT в одном наборе данных
  3. Файл с RUN; в одном наборе данных.

Надеюсь это поможет.

person Srinivasan JV    schedule 27.08.2018
comment
Спасибо Шринивасан Jv, он попытается использовать SAS ... и посмотреть, правильно ли он форматирует в Outlook. - person Derez; 28.08.2018

Во-первых, это не имеет ничего общего с мейнфреймом; это вопрос HTML. Здесь у вас есть пара проблем: во-первых, вы должны убедиться, что используете шрифт фиксированной ширины, а после этого вы, вероятно, захотите использовать таблицы.

Итак, что-то вроде этого:

<pre>

<table>
<tr>
<td>
Header Information
</td>
</tr>
<tr>
<td align="center">
Column1
</td>
<td align="center">
Column 2
</td>
<td align="center">
Column 3
</td>
</tr>

<tr>
<td align="center">ABCEFGH</td>
<td align="center">201812345678</td>
<td align="center">Stuff</td>
</tr>

</table>

</pre>

person Kevin McKenzie    schedule 24.08.2018
comment
спасибо, Кевин, но поскольку отчет каждый раз разный, так как разные задания выполняются в разные дни, не уверен, что это сработает в зависимости от количества строк. - person Derez; 26.08.2018
comment
Также @Kevin Mc Kenzie... как мне получить данные в таблице. Это COBOL для мэйнфреймов, я могу легко создать заголовок и имена столбцов, но как насчет фактических данных, которые хранятся в переменных? - person Derez; 27.08.2018