FAQ: TFORMer SDK
Come posso interfacciarmi da SAP a TFORMer?
Come posso interfacciarmi da SAP a TFORMer?
Per interfacciarvi con SAP® avete tre opzioni (tutte richiedono un po' di codice ABAP):
TFORMer TFPrint
TFPrint è un'utility da riga di comando, che crea un job di stampa basato sui template TFORMer. Richiamate TFPrint dall'interno di SAP e passate il nome del file template, il nome del file dati CSV o XML e la stampante di destinazione negli argomenti da riga di comando.
tfprint -F "C:\Templates\LogisticLabel.tff" -D "C:\JobData\20220927_ID1022.csv" -DT TEXT –DO SC; -O MyPrinterName -OT WIN32In ABAP potete usare FM SXPG_COMMAND_EXECUTE e i comandi gestiti nella transazione SM69 per eseguire qualsiasi script esterno. Se volete un log per la risoluzione dei problemi, potete reindirizzare stdout/stderr di TFPrint su un file di stato (con timestamp e ID job). Se volete elaborare i messaggi di stato/errore in SAP, potete rileggere il file di stato dopo la stampa.
Se volete isolare/scollegare il processo di stampa dall'App Server, potete eseguire TFPrint su un altro server (Print Server) tramite Remote Shell Execute.
- Invoke-Command: Running Remote Commands - PowerShell | Microsoft Learn
- PSExec: PsExec - Windows Sysinternals | Microsoft Learn
Consigliamo di incapsulare l'intero processo di stampa in uno script PowerShell o CMD; questo script può quindi essere richiamato da qualsiasi punto. I dati possono essere passati e/o i template possono essere aggiornati tramite cartella condivisa; uno script di pulizia pianificato può rimuovere i vecchi file di job e stato (dopo nn giorni).
- TFPrint fa parte di TFORMer SDK e utilizza una licenza SDK.
- Per creare i template di etichette/report vi serve una licenza TFORMer Designer.
- Gli sforzi di codifica ABAP sono bassi. L'esecuzione shell remota richiede una configurazione di sicurezza adeguata.
Servizio web TFORMer
Su richiesta offriamo un servizio web basato su WCF che fornisce l'API TFORMer in un formato compatibile SOAP (WSDL). Potete stampare su tutte le stampanti disponibili sul server (o da remoto) oppure semplicemente creare un PDF che viene restituito al chiamante (array di byte).
I template etichetta sono memorizzati in una directory specifica sul server (App_Data), solo i dati dell'etichetta vengono inviati nella richiesta SOAP. I template possono essere aggiornati esternamente condividendo la cartella dei template oppure usando uno strumento di sincronizzazione file, che distribuisce i template da una cartella centrale o repository principale. La risposta SOAP fornisce informazioni di errore complete, che possono essere gestite da ABAP o semplicemente memorizzate in un log per la risoluzione dei problemi.
Forniamo il servizio sia come codice sorgente sia come pacchetto web deploy precompilato. Potete ospitare il servizio sulla vostra infrastruttura (server Windows / IIS).
- Nella versione standard non c'è un meccanismo di login, ma il codice sorgente (.NET C#) può essere liberamente esteso. Per gli utenti esterni dovreste consentire solo https e usare la whitelist IP (funzionalità in IIS).
Per accedere al servizio web dall'interno di SAP ABAP potreste voler creare un proxy e un consumer del servizio - ecco un tutorial/guida:
- Consume SOAP Based Web Services with SAP BTP, ABAP Environment | Tutorials for SAP Developers
- Generating Proxies | SAP Help Portal
- How to configure a Service Consumer - ABAP Connectivity - Support Wiki (sap.com)
Dopo l'installazione, il WSDL può essere recuperato dal seguente URL
http://yourhostname/yourinstallationpath/TFORMer.asmx?WSDL
Non disponiamo di un esempio ABAP per consumare (richiamare) il servizio web, ma la Test App inclusa (codice sorgente C# .NET) mostra come compilare i parametri della richiesta. Può essere usata anche per testare la disponibilità/funzionalità del servizio web.
- Il servizio web si basa su TFORMer SDK e utilizza una licenza SDK.
- Per creare i template di etichette/report vi serve una licenza TFORMer Designer.
- Gli sforzi di codifica ABAP sono un po' più alti - dovete integrare le chiamate al servizio web SOAP (classe proxy). Una volta configurato il servizio web, la soluzione dovrebbe funzionare senza problemi.
TFORMer Server
TFORMer Server fornisce la stampa automatica delle etichette monitorando directory specifiche (regolabili) per nuovi file di job. I file di job sono in un formato di testo proprietario o formato XML e contengono il template da usare, il nome della stampante di destinazione e le coppie nome-valore (record) per i campi dati. I template sono organizzati in un repository, letto sia da una cartella locale sia da una cartella condivisa (esterna). Se il monitoraggio di una directory non è adatto, potete anche passare i job tramite un'interfaccia telnet o una query ODBC periodica.
Il server gestisce "spool", dove vedete i file di job su base per stampante. Potete ristampare i job selezionati da uno spool oppure fermare e riprendere uno spool. Una volta importato il file di job, i job vengono gestiti nel server e amministrati tramite un'interfaccia browser oppure un'app dedicata "Spool Admin". Per impostazione predefinita non c'è feedback di stato verso SAP, tranne con l'interfaccia telnet/ODBC. Unicode è supportato dai file XML, tutti gli altri canali usano ANSI ASCII o Latin-1.
Contattateci per la versione demo e i manuali di installazione e utente.
- TFORMer Server utilizza una propria licenza, basata su stampante/sito.
- Per creare i template di etichette/report vi serve una licenza TFORMer Designer.
- Finché si limita a scrivere il file dati, lo sforzo per la programmazione ABAP è gestibile. D'altra parte, questa soluzione richiede più conoscenza (configurazione di sicurezza, come gestire codici di errore specifici, ecc.) e più formazione degli utenti.