【SAP知識】SAPからPDF形式でドキュメントを出力する方法

SAP 共通・技術情報

請求書や納入書、発注書や製造指示書など、SAPでは様々な帳票やドキュメント類を扱っており、それらドキュメントを「PDF出力したい」という要件はどのプロジェクトでも当然のように挙がるだろう。

今回はSAPでのPDF出力方法について簡単にまとめる。

SAPからPDF形式でドキュメントを出力する方法

スプールからPDFを出力する

スプールとは、印刷イメージを一時的に蓄えておく領域のことで、Tr:SP01から参照する。
Tr:SP01からは印刷イメージを直接確認したり、印刷ステータスを確認したり、プリンタ設定を変更して再印刷をかけるといった操作ができる。(帳票が上手く印刷されない……系のトラブルは、まずここを確認する)

スプールに蓄えられた印刷イメージには、それぞれ「スプール番号」が割り当たっている。
このスプール番号を指定して、PDF出力を可能とするのが、以下の標準プログラムだ。

PGM:RSTXPDFT4

画面はシンプルで、スプール依頼番号と、PDFファイルの出力先を指定するのみで、ローカルにPDFをダウンロードできる。

このプログラムにトランザクションを被せて(Tr:SE93から設定)、ユーザが操作可能な機能として公開することで、PDFダウンロードの口を設けることが出来る。

汎用モジュールでPDFを出力する

Smartformによる帳票イメージを作成し、それを汎用モジュールを用いてPDF出力するための手順を紹介する。
Smartformの帳票イメージは、いったんSAPの印刷フォーム形式である「OTF形式」に出力してから、PDFに変換するという手順をとる。

使用する汎用モジュール
1.SSF_FUNCTION_MODULE_NAME
2.SSF_GET_DEVICE_TYPE
3.上記1の汎用Mの返却値(FM_NAME)
4.CONVERT_OTF

詳細手順はSAP helpに載っているので、ここでは詳述しないが、ざっくりと以下の流れでデータを受け渡せばPDF出力できる。設計する時にこの流れを押さえておくと躓くことがなくなる。

・Smartformによる帳票イメージ(Tr:SMARTFORMS)を予め作成しておく。

・フォームIDを、汎用M:SSF_FUNCTION_MODULE_NAMEに渡す。

・汎用M名を生成して返してくるので、この汎用Mに各種出力パラメータを渡してCall functionで実行する。(このときデバイスタイプを渡す必要があるので先に汎用M:SSF_GET_DEVICE_TYPEを使ってデバイスタイプを取得する)

・返却値としてOTF構造テーブルを受け取り、汎用M:CONVERT_OTFを実行して、OTF形式からPDF形式に変換する。

ブログランキング・にほんブログ村へにほんブログ村

タイトルとURLをコピーしました