以前の現場では主にFI/CO周りをやっていましたが、少しぐらいはPS関係のテーブルも見ていたので、思い出しつつ。
なお、欠落した記憶の穴埋めに以下のサイトを参考にさせていただきました。ありがとうございます。
SAP Fan
SAP ABAP Development objects and example code
テーブル
PROJ
プロジェクト定義マスタ。
プロジェクト名や、原価センタ、利益センタ、開始日などの情報を管理している。
CJ01, CJ02, CJ03, CJ20N
PRPS
WBS要素マスタ。
プロジェクト定義マスタにぶら下がる形で作成される。
PROJ(1)に対し、PRPS(n)の関係。(PROJ-PSPNR = PRPS-PSPHI)
ツリー構造となっている。
Lv1 ─┬─ Lv2 ─┬─ Lv3 ...
| └─ Lv3
├─ Lv2 ─┬─ Lv3
...
CJ01, CJ02, CJ03, CJ20N
内部書式と外部書式
SAPシステムはそのシステム内部で保持する形式(書式)の値と、外部に見せるための形式(書式)があります。
会計伝票を例にします。
会計伝票(内部):0012345678
会計伝票(外部):12345678
このように、内部書式では前ゼロありですが、外部書式では前ゼロなしとなります。
PSでのプロジェクト番号/WBS要素番号も同様に内部/外部書式があります。
PSPNR(内部書式用)と、PSPID/POSID(外部書式用)です。
注意点として、アドオンテーブルにプロジェクト/WBS要素番号を持たせる場合は、内部書式を持たせるようにしましょう。
なぜなら、外部書式は変更(更新)できてしまうためです。
例えば、アドオンテーブルのキーをプロジェクト番号(外部書式)で持たせており、アドオンテーブルへ登録した後に、外部書式が変更された場合。
この場合、キーの紐付きがわからなくなってしまいます。
内部書式は、一意な値でかつ、変更もできません。なので、上記のような問題は発生しません。
(削除されたら別ですが...まぁそれはそれで...)
プロジェクト/WBS要素番号を外部書式で出力したい場合は、専用の変換FMを使用するか、PROJ/PRPSより内部書式+外部書式を抽出し、それに対しREAD BINARY SEARCHを行い取得させるなどの手段を検討しましょう。
以下、余談。
件数が少なければFMで十分ですが、多くなるとオーバーヘッドが問題となります。
(FMで行っている処理そのものは大したことがなくても、実行回数が多くなると...)
要件、想定件数などを加味し、どちらが良いか検討しましょーね。
JEST
プロジェクトステータス。
そのプロジェクトのステータス(有効/無効、CRTD/REL/CMPL etc)を管理するためのテーブル。
このテーブルが持っているのはコード値なので、テキストを取得するには別のテーブルを参照する必要があります。
JCDS
プロジェクトステータス履歴。
履歴テーブル。以上です。
ステータス
ステータスには、システムステータスとユーザステータスの2種類あります。
システムステータスは、SAPシステムで管理しているステータス。
ユーザステータスは、ユーザ(会社)独自で定義するステータス。
TJ02(システムステータス)、TJ30(ユーザステータス)および、TJ02T(システムステータステキスト)。TJ30T(ユーザステータステキスト)です。
なお、プロジェクトプロファイルもキーに含まれていますので、直接テーブルから抜く際は考慮が必要です。
PROJS?(思い出せない)
標準プロジェクト定義マスタ。
プロジェクト定義を登録する際に、テンプレートとして事前に用意することができる。
CJ91, CJ92, CJ93
PRPSS?(思い出せない)
標準WBS要素マスタ。
標準プロジェクト定義マスタとセット。
CJ91, CJ92, CJ93
CDHDR
変更履歴ヘッダ。
直接は関係ないけど、知っておいたら何かと便利なテーブル。
CDPOS
変更履歴明細。
直接は関係ないけど、知っておいたら何かと便利なテーブル(再掲)。