2008年3月12日水曜日

ABAPからPDFファイルを作成する

用件: 
・ レポートをバックグラウンド処理にてPDFファイルとしてファイルサーバーに保存する

方法:
・汎用モジュールCONVERT_ABAPSPOOLJOB_2_PDFを実行
(参照PG:PTRA_WEB_EXPENSE_FORM_PDF_GET)

手順:
 1. ファイルサーバーに臨時保存ファイルののパス、ファイルを作成する
    ・ パス、ファイル名を指定して、Commondの Open、Transferを利用してファイルを作成する
 2. スプールを作成する
  ① GET_PRINT_PARAMETERSを利用して、パラメータをセットする
     取得値: DATA_SET  ← スプールテーブル名の初期値
           LIST_NAME ← スプール依頼名の初期値
           OUT_PARAMETERS ← コールされた印刷パラメータ一覧
  ② スプールを作成する(SUBMIT rep TO SAP-SPOOL)
     例:
       SUBMIT XXX
           TO SAP-SPOOL
           SPOOL PARAMETERS OUT_PARAMETERS
           WITHOUT SPOOL DYNPRO
           AND RETURN.
    ・ABAP 命令の NEW-PAGE PRINT ON を使用し 、レポートからの印刷機能を有効にし、ス 
     プールを作成する方法もある。
 3. スプールIDを取得する(汎用モジュール:RSPO_FIND_SPOOL_REQUESTS)
     I/F: DATA_SET、LIST_NAME
     取得値: L_SPOOL_IDS
 4. スプールをPDFに変換する(汎用モジュール:CONVERT_ABAPSPOOLJOB_2_PDF)
     I/F: SRC_SPOOLID = 'XXX' "  ← 3.で取得したスプール番号
 5. 汎用モジュールDOWNLOADを利用して、PDFファイルを取得する


問題点: サーバーへ格納するのは直接DOWNLOADを利用できるかなぁ?

→ 
① サーバーへ格納する時、OPEN DATASETとTRANSFERを利用する
EXAMPLE:
LC_OUTPUT_FILE_PATH = '/SAP/UP/TESTPDF.PDF.
OPEN DATASET LC_OUTPUT_FILE_PATH FOR OUTPUT IN BINARY MODE.
LOOP AT LIT_PDF_TABLE INTO LFC_PDF_TABLE
TRANSFER LFC_PDF_TABLE TO LC_OUTPUT_FILE_PATH.
ENDLOOP.
CLOSE DATASET LC_OUTPUT_FILE_PATH.

② GUI_UPLOADはローカルのファイルを内部テーブルに格納する

2008年3月5日水曜日

アプリケーションサーバへタブ区切りでファイルを出力する

1. 出力内容をタブ区切りでセットする
2. 出力内容をアプリケーションサーバのファイルへ渡す

CONSTANTS:
GCST_TAB TYPE C VALUE CL_ABAP_CHAR_LTILITIES=>HORIZONTAL_TAB.

CONCATENATE A B C
INTO D
SEPARATED BY GCST_TAB.

TRANSFER D TO LC_FILE_PATH.

2008年2月28日木曜日

MMPV: 会計期間締め:品目マスタレコード

目的:R/3システムの会計期間を変更することができる。(次月へ更新される)

関連するTR:
① MMRV(前会計期間転記可能) ← 現在開いている会計期間を確認
② OB52(会計上会計期間OPEN)

③ テーブル:T001(会社コード)← 会計年度バリアントを確認(例:会計期間 4月~3月 V3)

2008年2月27日水曜日

画面上にチェックボックスを選択された内容を呼出

手順:
  1.  画面内容を書く時、取得しよう内容を格納する
  2.  Readを使って、チェックボックス選択された行を割り出す
例:
  WRITE: 010 GFC_AAA
020 GFC_BBB
HIDE: GFC_AAA
GFC_BBB
READ LINE LI_LINE FIELD VALUE GC_CHECKBOX.
IF GC_CHECKBOX = "ON".
READ LINE LI_LINE FIELD VALUSE GFC_AAA
. ....

2008年2月24日日曜日

搜索ABAP程序代码

比如想知道哪些自己开发的程序调用了MIGO,或者使用了某一语句,可以用RPR_ABAP_SOURCE_SCAN来搜索。
它可以搜索ABAP程序,也可以搜索Screen flow logic
这个程序是系统自带的,这里只是说有这么一个程序。

2008年2月19日火曜日

F4ヘルプ表示

検索ヘルプでテーブルの内容を表示させる:

モジュール名:F4IF_INT_TABLE_VALUE_REQUEST

例:
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'ZZVCHID'
DYNPROOG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'ZZVCHID'
VALUE = LC_VALUE          ← LC_VALUE = PC_ZZVCHID
VALUE_ORG = 'S'
TABLES
VALUE_TAB = LIT_ZZVCHID_HELP ← MASTER_ ZZVCHID
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.

2007年10月21日日曜日

R/3 権限管理

  1.  権限とは
    • 各ユーザに対し、処理の実行やアクセスの範囲を制御する
    • データに対して不正なアクセス、操作を防ぎ、誤入力の機会を減少させる
  2.  権限チェックのステップ
    • ログオンでのチェック
    • トランザクション開始時のチェック
    • データアクセス時のチェック
  3.  SAPにおける権限コンセプト
    • 権限の設定 → 割り当て
  4.  権限設定の仕組み