SAP技術者のサンプルコード置き場

ABAPの動作確認をしたコードと簡単な説明を置いておきます。

ユーザIDが変更になった場合のADTツリー表示変更・オブジェクトの所有者変更について

こんにちは。

ABAP Develop,ent Tool(ADT)で、自身が使用しているユーザIDが変更になった場合に、 今のユーザのプロジェクトに前のユーザIDが作成したローカルオブジェクトを表示させる方法についてまとめました。

一般的な開発案件ではありえない話ですが、レンタル環境でSAP環境を使っており、 さらにプログラムをすべてローカルオブジェクトとして登録していた中で、 何度かユーザIDの変更が発生したので記載しておきます。

1.現在のユーザのプロジェクトエクスプローラーに別ユーザのローカルオブジェクトをツリー表示させる

1-1.Project Explorer内のLocal Objects($tmp)を右クリックして、 「Add Local Objects of User」を選択

f:id:free_croud:20200929223843p:plain
右クリックして、Add local Objects of User を選択

1-2.取り込みたい過去のユーザIDを指定してエンターを押下

f:id:free_croud:20200929224031p:plain
取り込みたい過去のユーザIDを指定

1-3.そのユーザIDのローカルオブジェクトのツリー表示され、コードをツリーからたどれるようになる

f:id:free_croud:20200929224121p:plain
指定したユーザIDのツリーがプロジェクトに表示される

以上で、表示自体は可能なのですが、過去のユーザIDのツリーからたどる必要があり少々煩雑です。もう過去のユーザIDにはログインしないので、過去のユーザIDで作成したローカルオブジェクトを自分のツリーの配下に表示させたい、という場合は以下を実施します。
今回はプログラムのみに絞って説明します。

2.ローカルオブジェクトの責任者を現在のユーザIDに設定(ADT編)

2-1.プログラムIDを右クリック>Open With>SAP GUI で、対象プログラムをSAP GUIで開く。

f:id:free_croud:20200929230511p:plain
対象プログラムを(ADT上の)SAP GUIで開く

2-2.メニューバーの「More(追加)」>Go To(ジャンプ)>Object Directory Entry(オブジェクトディレクトリエントリ)を指定する。

f:id:free_croud:20200929230605p:plain
日本語だと追加>ジャンプ>オブジェクトディレクトリエントリ でしょうか?

2-3.表示されたオブジェクトディレクトリエントリ画面で変更ボタンを押下>下部の左から2番目の「Display/Change」を押下>Person Responsible(責任者)を今のユーザIDに変更して保存する。

f:id:free_croud:20200929230944p:plain
責任者を前のユーザIDから現在のユーザIDに変更

2-4.対応したいすべてのプログラムでこれを繰り返す(えっ)。
※一括で対応できる方法をご存じの方、ぜひ書き込みお願いします!!

2-5.ユーザのツリーのところで右クリックしてRefresh(リフレッシュ)またはF5キー押下で更新すると変更が反映される。
対象のプログラムが新しいユーザIDのツリーで表示できるようになりますが、前のユーザと今のユーザの両方で行わないとツリーが反映されないようです。
そのため、すべてのプログラムで対応が終わってから再度ログインした方が良いと思います。

f:id:free_croud:20200929231235p:plain
更新前
f:id:free_croud:20200929231722p:plain
前のユーザ、今のユーザの両方でツリーを更新するとツリー上でも移動する

3.ローカルオブジェクトの責任者を現在のユーザIDに設定(SAP GUI編)

トランザクションSE38から実施

各プログラムを指定してコード照会画面に遷移してから、上記2-2.からの手順で対応する。

トランザクションSE80から実施

以下の操作を行なってから、上記2-3.からの手順で対応する。

3-1.左下のツリーの上部で「ローカルオブジェクト」と「前のユーザID」を指定してエンターキーを押下する。そのユーザIDで作成したローカルオブジェクトがすべてツリーに表示される。

f:id:free_croud:20200929232407p:plain
SAP GUI SE80で行う場合

3-2.ツリーのプログラムIDを右クリック>Additional Functions(追加機能)>Display Object Directory Entry でオブジェクトディレクトリエントリ画面を表示させる。
f:id:free_croud:20200929232513p:plain
操作をしてオブジェクトディレクトリ画面を表示させます

意外なほど手間がかかるのでもしかすると標準プログラムなどで移行ツールがあったりしないかな?と思っています。
もしご存じの方いらっしゃいましたらコメントをいただけますと幸いです。