SAP 変更文書

1, 変更管理

http://help.sap.com/saphelp_nw70/helpdata/ja/2a/fa015b493111d182b70000e829fbfe/frameset.htm

変更管理がされる条件は、

①項目のデータエレメントで、変更文書フラグがONになっていること。

②オブジェクトクラスに

テーブルが割り当たっていること。

>ツール>ABAPワークベンチ>開発>他のツール>SCDO:変更文書

2. 関連するトランザクション: SCDO

変更履歴テーブル(CDHDR・CDPOS)におけるオブジェクトクラス。

【共通】

FACTORYCAL: 稼働日カレンダ

HOLIDAYCAL: 祝日カレンダ

HOLIDAY: 祝日変更

KLASSE: 分類クラス

FEATURE: 分類特性

【LO:ロジ一般】

MATERIAL: 品目マスタ

CHARGE: 品目ロット

COND_A: 価格条件マスタ

【SD:販売管理】

DEBI: 得意先マスタ

KLIM: 得意先与信管理

EMBK: ライセンスマスタ

VERKBELEG: 受注伝票

LIEFERUNG: 出荷伝票

FAKTBELEG: 請求伝票

VBEX: 受注伝票ライセンス

【MM:在庫/購買管理】

KRED: 仕入先マスタ

INFOSATZ: 購買情報

ORDERBUCH; 供給元一覧

BANF: 購買依頼

EINKBELEG: 購買発注

REVISION: 購買管理のバージョン

【PP:生産計画/管理】

EQUI: 設備マスタ

STUE: BOM

STUE_V: BOM

【FI:財務会計】

SACH: 勘定コードマスタ

ANLA: 資産マスタ

BANK: 銀行マスタ

IBAN: 国際銀行預金口座番号

BELEG: 会計伝票

【CO:管理会計】

KSTAR: 原価要素マスタ

KOSTL: 原価センタマスタ

LSTAR: 活動タイプ

RKAUFTRAG: 内部指図

CMDT_PC: 利益センタマスタ

PRCTR: 利益センタマスタ

SETS: 管理会計マスタグループ

3. 関連する汎M

CHANGEDOCUMENT_READ_HEADERS

この汎用モジュールは、特定の変更文書オブジェクトについて変更文書番号と関連ヘッダ情報を読み込みます。さまざまなパラメータ ( 変更者、変更日、変更時刻 ) によって、検索範囲を限定することができます。

CHANGEDOCUMENT_READ_POSITIONS

この汎用モジュールは、特定の変更文書オブジェクト番号について変更文書明細を読み込み、変更前の値または変更後の値を、そのタイプに応じてフォーマットします。

削除Talbe entry の移送

1.SE09により移送番号を作成(ブランク、ワークベンチ)

2.上位の移送番号をダブルクリックして、Object タブで変更

3.プログラムID:【R3TR、Object Type:TABU、Object Name:Table ID

4.Table keyをインプット(削除したエントリのキー)
5.保存(下位いらない移送番号を削除)

Performance tuning

1. Online Mode

  • Tr: ST12

2. BackGround Mode

  •    Tr: SM36

–> Input General Data(Such as Job name, Exec. Target(client))

–> Set Step information(First: BTCLOOP, Next: ZXXXX)

  •    Tr: ST12(BackGround Mode –> Execute —-> Debug BTCLOOP)

日付型(DATUM)項目

問題:
 日付項目に「 / / 」の内容をセットされ、IF 日付項目 = INITIAL.に入れない。

調査:
 2010/10/02 
 ・ Clear → 0000/00/00 = Initial
 ・ Space →   / /   Initial

原因:
 日付項目の初期値は「00000000」である、これは「 / / 」とは違うため、IF分に入れない。

解決案:
 ① 日付項目のリセットは「00000000」を代入するかClearを用いる
 ② IFを書く際、SAPCEでクリアしようというミスを防ぐため、以下の構文で対応する
   IF 日付項目 IS INITIAL OR
  日付項目 = SPACE

バリアントの保護を解除する

SE38 ⇒ RSVARENT

Message 関連

① エラー或いはWarning message の内容を確認
② IDを確認できない場合、テキスト内容をT001で検索
③ 該当メッセージをSE91で「テキスト(長)」の内容を確認 → 対処する方法があるかも

PO Message Handle

購買伝票を作る際、システムが内部チェックでWarning,Errorメッセージを出している。これらを利用するため、以下のものを定義する必要がある。
・MM_MESSAGES_MAC
・cl_message_handler_mm
・T160M(参考テーブル)

Example:
DATA: l_msg_handler TYPE REF TO cl_message_handler_mm,
l_event TYPE REF TO cl_event_mm,
l_msg_txt TYPE string,
lt_event_list TYPE mmpur_event_list WITH HEADER LINE.

CALL METHOD cl_message_handler_mm=>get_handler
IMPORTING
ex_handler = l_msg_handler.

CALL METHOD l_msg_handler->getlist
* EXPORTING
* IM_EVENT_TYPE =
* IM_OBJECT =
* IM_NULL_OBJECT_VALID = MMPUR_NO
* IM_INCLUDE_CHILD_OBJECTS = mmpur_no
* IM_SEQUENCE =
IMPORTING
ex_events = lt_event_list[]
* EX_EVNT =
.

※ CALL METHOD l_msg_handler->GET_LIST_FOR_BAPI
であれば、明細単位のメッセージを取得できる

REFRESH gt_messages .
LOOP AT lt_event_list .
l_event = lt_event_list-event_obj .
CALL METHOD l_event->to_string
IMPORTING
ex_string = l_msg_txt
* EX_SIGNATURE =
.
APPEND l_msg_txt TO gt_messages .
ENDLOOP.

バリアント

開発機において、バリアントを登録する際、会社コードチェックなどの原因で登録できない場合がある。
⇒ ① SE38でPGを起動する
  ② 入力値を入れて、保存する(BreakPointを置き、チェックされるところを強制的に通せる)

トランザクションコード作成

・SE93
・トランザクションコードを実行する際のバリアントがあれば、ここで一緒に定義していく

SMART FORM

Tr-Code: SMARTFORMS
① 名前を入れる
② 使用先汎用モジュールを見つける
③ 多国言語の場合、翻訳機能を利用する(SE63)