Friday, 10 November 2017

Sincronizar Ultrapassar Opções Binárias


A seguir estão os parâmetros padrão do SyncSort, que você pode alterar conforme descrito acima. O BMSG lista os parâmetros alternativos especificados através do ORTPARM no conjunto de dados da mensagem de saída. Esse padrão causa validação limitada dos dados contidos nos campos designados como decimal compactado ou zonado. Para que o tipo termine se os dados em campos PD ou ZD forem inválidos, especifique CMPCPD. Para tipos invocados pelo programa com rotinas de saída, você deve determinar a quantidade de memória necessária para as saídas e, em seguida, especificar COREMAXnnn K. NOSNAP suprimirá o despejo SyncSort SNAP, que é produzido em caso de erro crítico. Se você tiver uma instrução SYSUDUMP DD, você receberá o despejo normal do sistema operacional. Se você precisar de um despejo SNAP, especifique o parâmetro DEBUG. Para um tipo mais eficiente, a ordem dos registros não é preservada. Se a ordem precisa ser mantida, use a palavra-chave EQUALS. As mensagens de erro são emitidas quando ocorre um erro de IO. Se IOERRABE for especificado, um USER 999 ABEND ocorrerá. As instruções de controle serão listadas no conjunto de dados SYSOUT. NOLIST apagará isso. O nome DD padrão do conjunto de dados da mensagem é SYSOUT. Qualquer outro nome DD válido pode ser substituído. Para ser compatível com as opções de exibição das rotinas de saída do COBOL, as características definidas do conjunto de dados da mensagem são: DCB (LRECL121, BLKSIZE121, RECFMFA) Um tipo mal sucedido emitirá um código de retorno de 16. Se RC16ABE for especificado, um USUÁRIO 16 ABEND Vai acontecer. O espaço não utilizado nos conjuntos de dados de processamento será lançado durante o tempo de execução, a menos que o tipo seja iniciado pelo programa. Para liberar excesso de espaço no conjunto de dados SORTOUT, RLSOUT pode ser especificado. RESET deve ser dado como um parâmetro se o conjunto de dados SORTOUT for um arquivo VSAM que foi criado com a opção REUSE para impedir que o SyncSort tratasse o SORTOUT como um conjunto de dados MOD. Uma alocação secundária é dada aos conjuntos de dados de triagem, se necessário. Nenhum teste de validade de registros de comprimento variável será feito. A documentação para o utilitário SyncSort está no SyncSort Release 3.4 Programmers Guide from SyncSort, Inc. Você pode solicitar manuais do fornecedor neste endereço: SyncSort Incorporated 50 Tice Boulevard Woodcliff Lake, NJ 07675 Telefone 201930-9700 e-mail: mvstechsyncsort Fax: (201) 930-8284 Atenção: Serviços de produtos de sincronização Se você precisar de assistência usando o SyncSort no EIampO, entre em contato com a mesa de suporte do EIampO pelo telefone em (352) 392-2061 ou envie um e-mail para consultarlists. ufl. edu. Seus Comentários são Bem-vindos Damos boas-vindas a seus comentários e sugestões sobre esta e toda a documentação UFIT. Envie seus comentários para: UF Tecnologia da Informação 2046 NE Waldo Rd, Suite 2100 Gainesville, Flórida 32609-8942Limente-me apenas flash antes de você o conjunto de dados de entrada, que I8217ve escolhido para este exemplo. Estes são os dados a partir do ano de 2008. -------- 1 -------- 2 -------- 3 -------- 4 ---- ---- ---- 5 -------- 6 AG10001160 Ramesh Chandra Guha INDIA160160160160 MAHARASHT MUMBAI160160160 01000 AG10002160 QUASAR SHABBIR CHUN INDIA160160160160 MAHARASHT PUNE160160160160160 02000 AG10003160 Veeramani Daryaganj INDIA160160160160 MAHARASHT NAGPUR160160160 03000 AG10004160 DELPHAN FERANDAZ160160160 INDIA160160160160 TAMIL NAD CHENNAI160160 04000 AG10005160 PADMAVATHI SUNDARAM INDIA160160160160 TAMIL NAD SALEM160160160160 05000 AG10006160 NEELESHWARI IYER160160160 INDIA160160160160 TAMIL NAD ERNAKULAM 06000 AG10007160 AJAY NANUBHAI PARSA INDIA160160160160 WEST BENG KOLKATA160160 07000 AG10008160 mehul POPATLAL SUTA INDIA160160160160 WEST BENG Kharagpur 08000 AG10009160 Krithika RAMANUJAM160 INDIA160160160160 WEST BENG SUNDARBAN 09000 AG10010160 ANKUR CHOUDHARY160160160160 INDIA160160160160 PUNJAB160160160 AMRITSAR160 10000 AG10011160 Hiren NITIN SHETH160160 INDIA160160160160 PUNJAB160160160 JALANDHAR 11000 AG10012160 DARSHAN SHAH160160160160160160160 INDIA160160160160 HARYANA160160 CHANDIGAR 12000 No ano de 2009, devido a um bônus de desempenho dado aos Agentes de Seguros, todos eles envolveram mais esforços e no próximo trimestre observou-se que suas Vendas cresceram 10%. Escreva um lote JOBJCL que aumenta as vendas de agentes de seguros em 10%. Então, você precisa gerar um relatório para as vendas para o ano financeiro que termina em 2009, mostrando um aumento de 10 na figura SALES para todos os agentes. Para executar aritmética (como aumentar a adição) em campos numéricos, podemos usar vários operadores como ADD, SUB, MUL, DIV, MOD dentro da Declaração de Controle OUTREC FIELDS. Para tratar um campo como numérico, e para poder executar operações numéricas nele, codificamos o especificador ZD (Zoned Decimal). Para aumentar o valor das vendas em 10 por cento, precisamos multiplicar o Sales x 1.1. Mas, uma vez que os valores decimais (flutuante) não são permitidos, multiplicaremos VENDAS x 11 e, em seguida, descreveremos o formato do campo Editado resultante. O formato do campo Editado pode ser especificado usando EDIT Subparameter. Se tivermos vendas de entrada 1000, multiplicamos por 11, 1000 x 11 11000. Para exibir o resultado correto, o ponto decimal precisa ser deslocado para um lugar. Assim, o formato é TTTT. T (onde T significa que qualquer dígito significativo seja exibido). Podemos adicionar uma vírgula como T, TTT. T. Alguns números de vendas estão acima de 10.000 (5 dígitos). Portanto, precisamos garantir que eles também sejam exibidos corretamente. Assim, precisamos adicionar um I (dígito insignificante). Especificamos o formato para o campo de saída usando o parâmetro EDIT. Vamos codificar o parâmetro EDIT para o exemplo acima como, Isto é como o Batch JOBJCL para elevar as vendas por 10 por cento parece. -------- 1 -------- 2 -------- 3 -------- 4 -------- 5 ----- --- 6 -------- 7-- CAA0176K TRABALHO A123, QUASAR, CLASSG, MSGCLASSY, NOTIFYampSYSUID160160160160160160160160160160160 Step01 EXEC160 PGMSORT, REGION1024K160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 SORTIN DD160160160 DSNCAA0176.DEMO. SORTIN, DISPSHR160160160160160160160160160160160160160160160160160160160160160160160160 SYSPRINT DD160 SYSOUT160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 SYSOUT DD160160160 SYSOUT160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 SORTXSUM DD160 DSNCAA0176. DEMO. REPORT, DISPSHR160160160160160160160160160160160160160160160160160160160160160160160160 SORTOUT DD160160 DSNCAA0176.DEMO. SORTOUT, DISPSHR160160160160160160160160160160160160160160160160160160160160160160160 SYSIN160 DD160160160 160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 160 campos de classificação (30,5, CH, A) -160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 160 outrec CAMPOS (30,5,2X, (60,5, ZD, MUL, 11), EDIT (TI, TTT. T), 80: X ) 160160160160160160160160 160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 ao submeter o fluxo de tarefas acima, o Relatório de saída final para as vendas de 2009, o que mostra um aumento de 10 em vendas de cada agente de seguros, é algo como isto - -------- 1 ---- INDIA160160 1,100,0 INDIA160160 2,200,0 INDIA160160 3,300,0 INDIA160160 4,400.0 INDIA160160 5,500.0 INDIA160160 6,600.0 INDIA160160 7,700.0 INDIA160160 8,800.0 INDIA160160 9,900.0 I NDIA160 11,000.0 INDIA160 12,100.0 INDIA160 13,200.0 P. Como você reformata os registros com OUTREC OVERLAY Declaração de Controle Quando usamos OUTREC FIELDS para re-formatar os registros de saída, você precisa especificar todos os locais de campo que deseja aparecer no Registro de Saída. Você deve informar a ferramenta DFSORT através da Declaração de Controle OUTREC FIELDS, todos os itens que você gostaria de gravar. Assim, você deve criar o registro re-formatado, um item por vez - campo por campo. No meio, você pode adicionar alguns caracteres especiais como vírgula (,) ou símbolo de moeda (). Isso pode ser muito tedioso e pesado, se o registro tiver um grande comprimento e contém muitas colunas de campos. Se você pretende alterar apenas um punhado de colunas, uma opção mais fácil e mais conveniente é usar a Declaração de Controle OVERLAY. Observe que a declaração OVERLAY pode ser usada para fazer as mesmas tarefas que você pode realizar com a Declaração OUTREC. Deixe-me mostrar-lhe um exemplo simples que ilustra como aumentar a figura de vendas dos agentes de seguros como no exemplo acima, mas usando a declaração OUTREC OVERLAY. Este exemplo prova, quão fácil é usar a declaração OVERLAY em oposição à meticulosa e pesada declaração de controle OUTREC FIELDS. -------- 1 -------- 2 -------- 3 -------- 4 -------- 5 ----- --- 6 -------- 7-- A123 CAA0176A TRABALHO, QUASAR, CLASSG, MSGCLASSY, PRTY15, NOTIFYampSYSUID160 Step01 EXEC160 PGMSORT, REGION1024K160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 SORTIN DD160160160 DSNCAA0176.DEMO. SORTIN, DISPSHR160160160160160160160160160160160160160160160160160160160160160160 SYSPRINT DD160 SYSOUT160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 SYSOUT DD160160160 SYSOUT160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 SORTXSUM DD160 DSNCAA0176.DEMO. REPORT, DISPSHR160160160160160160160160160160160160160160160160160160160160160160 SORTOUT DD160160 DSNCAA0176.DEMO. SORTOUT, DISPSHR160160160160160160160160160160160160160160160160160160160160160 SYSIN160 DD160160160 16016016016016016016016016016016016016016016016 0160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 160 opção de cópia -160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 160 OVERLAY outrec (60: 60,5, ZD, ADD, (60,5, ZD, DIV, 10), TOZD, LENGTH5) 160160160 P. Como o trabalho Declaração outrec IfThen Controle Você pode elaborar pela Mostrando um fluxo JCLJob simples OUTREC FIELDS e OUTREC Overlay permite que você aplique o mesmo reformatação em todos os registros de saída. No entanto, se você deseja aplicar re-formatação diferente para registros de saída diferentes, então, você deve usar a opção IFTHEN. Ao usar a opção IFTHEN, pode-se aplicar diferentes instruções de OUTREC FIELDS ou OUTREC OVERLAY (formatos) a diferentes registros de saída. Suponhamos que gostaríamos que o Relatório de Saída fosse gerado da seguinte forma: 1) Se VENDA do Agente lt 06000, então Aumentar 10 2) Se VENDA do Agente gt 06000, então Aumento 20 Assim, para todos os registros com vendas 06 de junho, multiplicamos (MUL) em 1.1. Para todos os registros com vendas gt 06000, multiplicamos (MUL) por 1.2. Assim, podemos multiplicar os registros em 11 e 12, respectivamente, em JCL e exibir o campo de saída usando EDIT Format, EDIT (IT, TTT. T) -------- 1 -------- 2 -------- 3 -------- 4 -------- 5 -------- 6 -------- 7--160 - -------------------------------------------------- ----------------- OUTREC IFTHEN Declaração de controle 8211 Reformatando registros de forma diferente160160160160 ------------------------- ------------------------------------------- CAA0176Q TRABALHO A123, QUASAR, CLASSG , MSGCLASSY, PRTY15, NOTIFYampSYSUID160160160 Step01 EXEC160 PGMSORT, REGION1024K160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 SORTIN DD160160160 DSNCAA0176.DEMO. SORTIN, DISPSHR ltINPUT FILE160160160160160160160160160160 SYSPRINT DD160 SYSOUT160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 SYSOUT DD160160160 SYSOUT160160160160160160160160160160160160160160160160160160160160160160160160160160160 160160160160160160160160160160160160160160160160160160160160160 SORTOF01 DD160 DSNCAA0176.DEMO. REPORT, DISP (OLD, mantenha, MANTER) ltREPORT160160 SORTOUT DD160160 DSNCAA0176.DEMO. SORTOUT, DISP (OLD, mantenha, MANTER) ltOUTPUT160 SYSIN160 DD160160160 160160160160160160 lt ECOLÓGICA DE CONTROLO STATEMENTS160160160160160160160160160160160160160160160160160 160 OPÇÃO COPY160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 160 outrec IfThen (QUANDO (60,5, ZD, MUL, 11), EDIT (IT, TTT. T) (160,5, ZD, LT, 06000), -160160160160160160160160160160160160160160160160160160160160160160160160160160160160 160 BUILD (1: 1,9,10: 10,20, X, ))), 160160160160160160160160160 160 IFTHEN (WHEN (60,5, ZD, GE, 06000), -160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160160 160 BUILD (1: 1,9,10: 10,20, X, (60,5, ZD, MUL, 12 ), EDIT (IT, TTT. T))) O Relatório de Saída para o JobLCL acima do lote parece ser útil Ows. AG10004 -------- 1 ------ AG10001160 1,100.0 AG10002160 2,200.0 AG10003160 3,300.0 AG10004160 4,400.0 AG10005160 5,500.0 AG10006160 7,200.0 AG10007160 8,400.0 AG10008160 9,600.0 AG10009 10,800.0 AG10010 12,000.0 AG10011 13,200.0 AG10012 14,400.0JCL classificar Syncsort JCL SORT ou SYNCSORT utilitário em JCL É usado para classificar os conjuntos de dados, mesclar conjuntos de dados e copiar conjuntos de dados. A maioria das instalações muda o nome do programa SYNCSORT para SORT. Formato da instrução JCL SORT: A posição inicial indica a localização da chave de classificação na gravação. Comprimento indica o comprimento da chave de classificação. O formato indica o tipo de campo que pode ter valores CH Character, ZD decimal em zona, PD Packed Decimal e BI Binário. AscDes indica ordem do tipo Ascendente Descendente. Exemplos: CAMPOS DE TERRENO (1,3, CH, A) CAMPOS DE SEGURANÇA (1,5, D), CH SUMA CAMPO NENHUMA opção elimina duplicatas. Ex: SORT FIELDS (1,5, D), CH SUM FIELDS NENHUNS SKIPREC e STOPAFT parâmetros SKIPREC n declaração ignora n registros antes de copiar ou classificar. CAMPOS DE CRÉDITO CÓPIA SKIPREC 1000 A declaração acima ignora os primeiros 1000 registros e copia os registros restantes. STOPAFT n indica cópias ou classifica no máximo n registros. SORT FIELDS COPY STOPAFT 1000 A declaração acima produz os primeiros 1000 registros após o processamento ser feito. MERGE pode ser usado para mesclar dois ou mais conjuntos de dados pré classificados. Podemos combinar um máximo de 32 conjuntos de dados. Formato de declaração MERGE: INCLUDE COND: A declaração de inclusão pode ser usada para incluir registros com base em uma condição específica. INCLUIR COND (posição de partida, comprimento, operador de condição, valor) Exemplo: CÓPIA DE CAMPO DE CRESCIMENTO INCLUIR COND (1,3, EQ, JCL) Nos exemplos acima, os registros que contêm JCL nas primeiras 3 posições são copiados. OMIT COND: Da mesma forma, podemos omitir os registros do conjunto de dados com base em uma condição específica. SORT FIELDS COPY OMIT COND (1,3, EQ, JCL) Nos exemplos acima, os registros que contêm JCL nas 3 primeiras posições não são copiados. Depende de como deseja reformatar as datas. Sim, existem maneiras de reformatar os campos da data usando Sort. Here8217s um exemplo de uma declaração INCLUDE que compara uma data decimal compactada na forma P8217yyyymmdd8217 e uma data de caractere na forma C8217yyyy-ddd8217, até ontem8217s data: INCLUDE COND (21,5, PD, GE, DATE1P-1, OR, 3,8, CH, GE, DATE3 (-) - 1) Os registros com uma data P8217yyyymmdd8217 ou uma data C8217yyyy-ddd8217 maior ou igual à data ontem8217s serão incluídos no conjunto de dados de saída. Oi, obrigado pela informação fornecida. Você tem algum bom material que todas as opções de SYNCSORT por meio de explicação - a aplicação com a qual o I39m está usando o campo decimal compactado como uma chave para um arquivo VSAM. O valor numérico (absoluto) é garantido como único. O sinal negativo está sendo usado para indicar que o registro precisa ser corrigido. Quando o registro é atualizado, o sinal é invertido para um valor positivo. Nesta situação particular, apenas antes de carregar o arquivo vsam há um passo de sincronização. Estou tentando afirmar que todos os registros que passam pelo tipo têm o sinal negativo definido corretamente antes de carregar o arquivo. Ndash MikeC 8 de outubro 10 às 19:43 Talvez tente postar isso em MVSForms no tópico Utilitários. O moderador dessa forma é Frank Yaeger - um líder técnico sênior na IBM responsável pelo SYNCSORT, bem como uma série de outros utilitários. Ndash NealB 12 de outubro 10 às 16:16 Talvez eu deva salientar a questão principal que tenho com a minha solução. O objetivo final é classificar os dados na seqüência de teclas (com o sinal negativo configurado corretamente) e armazenar os resultados em um arquivo VSAM. Com esta solução, os dados são divididos em dois arquivos e I39m forçados a recombinar os dados com outro tipo em uma 2ª passagem. Uma vez que o layout do registro não é alterado, não vejo necessidade de um processo de 2 passos. Eu realmente quero que toda a saída vá para um único arquivo (não dois). Estou faltando um truque de codificação aqui ndash MikeC 14 de outubro 10 às 21:21 Você já pensou em escrever uma saída de usuário E15 A saída do usuário E15 permite manipular registros à medida que são inseridos no processo de ordenação. Neste caso, você teria um REXX, COBOL ou outro subrutina de idioma compatível com LE compatível com o campo de sinal decimal compactado, pois ele é inserido no processo de ordenação. Não é necessário dividir em vários arquivos para serem mesclados mais tarde. Aqui está um link para o exemplo JCL para invocar uma saída E15 da DFSORT (mesmo JCL para SYNCSORT). O capítulo 4 desta referência descreve como desenvolver rotinas de saída do usuário, novamente este é um manual DFSORT, mas acredito que o SyncSort é totalmente compatível a este respeito. Escrever uma saída de usuário não é diferente de escrever qualquer outra sub-rotina - obtenha o link direito eo resto é fácil. Este é um esboço muito geral, mas espero que ajude. Olhar para o último byte de um campo lotado é possível. Você quer que o positivo não seja negativo, portanto, se for maior que -1, subtrai-lo de zero. A partir de uma resposta de curta duração da MikeC, agora se sabe que os dados contém sinais não preferidos (isto é, ele pode conter A a F no meio-byte de baixa ordem, enquanto que um sinal preferido seria C (positivo) Ou D (negativo). F é não assinado, tratado como positivo. Isso é testado com DFSORT. Ele deve funcionar com o SyncSORT. Resulta que o DFSORT pode entender um zero decimal negativo-decimal, mas não criará um zero decimal negativo (Isso permitirá que um zero negativo decimal zonado seja criado a partir de um zero negativo negativo). A idéia é que um sinal não preferido é válido e será assinado com precisão para entrada em uma instrução de máquina decimal, mas o resultado será Sempre ser um sinal preferido e será correto. Então, ao adicionar zero primeiro, o campo é transformado em um sinal preferido e, em seguida, o teste para -1 funcionará conforme o esperado. Com dados no sinal-nybble para campos decimais empatados, SORT possui alguns comportamentos específicos e documentados, que simplesmente não ajudam aqui. Desde então É apenas um valor a tratar para se tornar o zero negativo, X0C, após a normalização dos sinais já realizados, existe um teste e substituição simples com uma constante de X0D para o zero negativo. Uma vez que o zero negativo não funcionará, o segundo teste é alterado do original menos para zero. Com sinais não preferidos nos dados: com sinais preferidos nos dados: Nota: Se os sinais não preferidos forem preenchidos através de um programa COBOL que não utilize a opção NUMPROC (NOPFD) do compilador, os resultados serão interessantes. Respondeu 26 de abril 12 às 19:10 Eu teria que voltar a testar isso novamente, já que já faz mais de um ano que eu encontrei a solução que eu finalmente implementei. Eu concordo que isso parece ser uma resposta muito mais simples do que o que eu criei, mas parece que penso que você pode encontrar um problema em que o bloco de sinal é b39. 111139. Mais uma vez, minha memória pode estar com defeito, mas durante o teste, acho que cheguei à conclusão de que um campo cheio de 390F39x foi tratado como um valor não assinado - nem positivo nem negativo, e é por isso que ele deveria ser tratado como um caso especial na minha Exemplo abaixo. Ndash MikeC 12 de junho 13 às 23:30 Desculpe, eu não recebi uma notificação de seu comentário. X390F39 é de fato sem assinatura, mas é superior a -1. Eu não sei para SyncSort, mas DFSORT certamente tem o conceito de - ve zero e faria o zero negativo com o código acima. Se você tiver quotmixedquot signs (CD e F) que geralmente é uma má idéia dentro de um arquivo de qualquer maneira. Para querer mudar para - ve, seus campos devem ser assinados, então não deve haver nenhuma Fs nos dados. - vem zero pode ser uma dor de qualquer maneira, mas você quer que tudo seja negativo. Ndash Bill Woodger 17 de outubro às 10:16

No comments:

Post a Comment