AFPRSC questa (keyword) sconosciuta

A partire dalla V7R1 IBM ha rilasciato la keyword AFPRSC utilizzabile a livello di record.
Essa serve nel caso in cui si volesse inserire all’interno degli spool immagini, pdf e oggetti AFPDS in modo nativo senza bisogno di utilizzare licenze sw di trasformazione dello spool e offre la possibilità, ad esempio, di generare documenti pdf anche a colori direttamente dai nostri programmi rpg.

Alcuni esempi di utilizzo: loghi, layout di moduli grafici (fatture, contratti di vendita/acquisto, …), scritte in trasparenza (es. pro-forma, fac-simile, …) ma anche cataloghi con immagini dei prodotti e chi più ne ha più ne metta.

Implementazione

Implementare questa keyword è piuttosto semplice, tanto che sono necessarie solo poche variabili per poterla gestire:

  • nome risorsa: campo carattere che può avere lunghezza massima 250
  • tipo risorsa: campo carattere di lunghezza 10
  • posizione dall’alto: campo numerico di 5 interi con 3 decimali
  • posizione dal margine: campo numerico di 5 interi con 3 decimali
  • rotazione (opzionale): campo numerico di 3 interi con 0 decimali
  • path (opzionale): campo carattere che può avere lunghezza massima 2000

Tutte le variabili che vengono inserite nelle DDS del printer file devono essere definite as uso P (passaggio dati dal programma al sistema).

Se non viene specificato l’attributo *PATH il sistema operativo cercherà la risorsa nel path specificato nella variabile d’ambiente QIBM_AFP_RESOURCES_PATH e come ultimo default nella cartella IFS /QIBM/UserData/OS400/AFPresources.

Ecco la lista delle tipologie supportate (tipo risorsa):

TipologiaDescrizioneNote
*JFIF Immagine jpg
*PDFSPO Oggetto pdf mono pagina Deve avere dimensione più piccola di una pagina
*PDFSPOTR Come il precedente ma viene stampato in trasparenza Gli viene sovrapposto tutto ciò che viene scritto successivamente
*PCLPO Oggetto PCL
*BCOCA Oggetto barcode AFPDS
*GOCA Oggetto grafico AFPDS
*IOCA Oggetto immagine AFPDS
*TIFFImmagine TIFF

Esempio

Riporto un semplice esempio di come implementare la keyword sulle DDS del printer file per stampare un logo salvato in pdf su IFS:

 A          R RESOURCE                  AFPRSC(&RESNAME &RESTYPE &POSDOWN +  
 A                                      &POSACROSS                        +  
 A                                      (*ROTATION &ROTATION)             +  
 A                                      (*PATH &PATH))                      
 A            RESNAME      125A  P                                          
 A            RESTYPE       10A  P                                          
 A            POSDOWN        5S 3P                                          
 A            POSACROSS      5S 3P                                          
 A            ROTATION       3S 0P                                          
 A            PATH         640A  P                                        

e qui sotto il corrispondente blocco di codice rpg

   // directory che contiene il file pdf da includere nella stampa
   PATH = '/home/resources/';                   
   // nome file pdf 
   RESNAME = 'fac-simile.pdf';                   
   // tipo 
   RESTYPE = '*PDFSPOTR';                 
   // position down
   POSDOWN = 0,5;    
   // position across               
   POSACROSS = 0,5;       
   // gradi di rotazione            
   ROTATION = 0;        
   // stampa record           
   Write RESOURCE;                 

Limiti

Questa keyword apre nuovi orizzonti per la produzione di stampe grafiche con poco sforzo. In ogni caso come qualunque altro componente sw ha dei limiti anche se a mio avviso non stringenti:

  • permette di includere massimo 10 risorse in una singola pagina
  • ogni record può includere massimo una sola volta la keyword AFPRSC
  • non permette la combinazione con le seguenti altre keyword:
    • SPACEA/SPACEB
    • SKIPA/SKIPB

Riferimenti

Per ulteriori informazioni è disponibile la documentazione ufficiale IBM (https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_74/rzakd/rzakdpdf.pdf)

Related Posts
DB2 for i SQL – Stringhe – POSSTR-LOCATE-LOCATE_IN_STRING (IT)

Introduzione Spesso, nelle nostre applicazioni, abbiamo la necessità di lavorare con le stringhe di testo e l'SQL del DB2 può Read more

DB2 for i & SQL – FAQ & Howto (Part. 1) (IT)

Database DB2 e SQL ... forse lo strumento più potente e completo che abbiamo sulla piattaforma IBM i: ecco una Read more

Annuncio IBM i 7.4

Arriva direttamente con l'uovo di Pasqua questo annuncio IBM per le novità della versione IBM i 7.4, versione iNext secondo Read more

Generated Always Columns – Approfondimenti (IT)

Introduzione "Generated Always Column": sono colonne, campi, di una tabella il cui contenuto è controllato direttamente dal sistema ... e Read more

View Comments

  • Tomas,
    Ho aperto un caso presso IBM e questa è la risposta:

    The use of the AFPRSC DDS keyword is not supported by Host Print Transform (HPT) until IBM i 7.2. As with Transform Services, Host Print Transform supports both TIFF and JFIF (JPG or JPEG), but does not support PDF, PCL, BCOCA, GOCA, or IOCA.

    The use of the AFPRSC DDS keyword is supported by Transform Services (5761TS1 and 5770TS1) to generate PDFs. Transform Services supports both TIFF and JFIF (JPG or JPEG), but does not support PDF, PCL, BCOCA, GOCA, or IOCA.

    IMPORTANTE:
    If you intend on using *PDFSPO for the image type, the spooled file must be printed to an IPDS printer that is capable of printing the image type.

    È richiesto PSF400.

Recent Posts

VsCode Extension: Bob Cozzi’s RPG IV to RPG Free Conversion

L’estensione “RPG IV to Free Format Conversion” sviluppata da Bob Cozzi (Cozzi Research) è pensata per semplificare la conversione di…

3 mesi ago

IBM i & SQL Tips #010 – Localizzare programmi nella Call Stack con STACK_INFO

Ciao a tutti, oggi voglio segnalarvi un altro interessante contributo di Massimo Duca, parte della sua ormai nota serie IBM…

3 mesi ago

Display file DDS Edit per VsCode, nuova preview.

Incuriosito da alcuni messaggi di Cristian Larsen su Linkedin (New Release - Display File DDS Edit v.0.10.1) ho voluto scaricare…

3 mesi ago

Project Bob: il nuovo strumento AI di IBM per sviluppo COBOL su IBM Z e RPG su IBM i

Ciao a tutti,oggi voglio segnalarvi un annuncio che potrebbe segnare una svolta per lo sviluppo applicativo su ambienti IBM: Project…

3 mesi ago

IBM i & SQL Tips #6: chiamare API REST e analizzare le risposte JSON con SQL

Voglio segnalarvi un nuovo articolo molto interessante di Massimo Duca nella serie IBM i & SQL Tips. In questo sesto…

4 mesi ago

Come funziona il passaggio di parametri a un programma IBM i (RPG / Cobol)

Ciao a tutti, voglio segnalarvi un post molto utile di Marco Riva sul suo sito Markonetools, in cui spiega in…

4 mesi ago