問題は次のとおりです。
Y5000112
というレポートが1つあります。
私の同僚は常に選択画面バリアントV1
で一度手動で実行し、バリアントV2
を選択する最初の実行の結果を加えることでそれをもう一度実行します。
この場合の結果はPERNR
です。ABAPで以前に実行されたレポートの結果を指定したレポート
私の目標:
これを自動化 - 1回のクリックで2回クエリを実行し、2回目の実行のPERNR選択に最初の実行のPERNR結果を自動的に入力します。
私はレポートの実行をトリガする方法を見つけ出しました。その後、別の方法でそれを特定のバリアントに設定する方法を知りました。これは最初の回答の後に[編集]しました。私の結果をループして次のレポートに入れる方法を教えてください。submit:
DATA: t_list TYPE TABLE OF abaplist.
* lt_seltab TYPE TABLE OF rsparams,
* ls_selline LIKE LINE OF lt_seltab.
SUBMIT Y5000114
USING SELECTION-SET 'MA OPLAN TEST'
EXPORTING LIST TO MEMORY
AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = t_list
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
WRITE 'Unable to get list from memory'.
ELSE.
* I want to fill ls_seltab here with all pernr (table pa0020) but I haven't got a clue how to do this
* LOOP AT t_list.
* WRITE /t_list.
* ENDLOOP.
SUBMIT Y5000114
* WITH-SELECTION-TABLE ls_seltab
USING SELECTION-SET 'MA OPLAN TEST2'
AND RETURN.
ENDIF.
PS
私はABAPについてよく知らないので、十分な情報を提供していない場合は、コメントに私に知らせてください。これを解決するために知る必要がある情報を見つけようとします。
これは、私が達成しようとしているものを非常に一般的に表現できる想像上のJSコードです。
function submitAndReturnExport(Reportname,VariantName,OptionalPernrSelection)
{...return resultObject;}
var t_list = submitAndReturnExport("Y5000114","MA OPLAN TEST");
var pernrArr = [];
for (var i in t_list)
{
pernrArr.push(t_list[i]["pernr"]);
}
submitAndReturnExport("Y5000114","MA OPLAN TEST2",pernrArr);
t_listを2番目のレポート選択に戻すにはどうすればよいですか? –
通常通り:それをループし、必要なフィールドを抽出して、2回目のサブミットのためにseltabを構築します。誰もあなたに、パイのように簡単ではないと言った。 – Suncatcher
すべての情報についてtrue、thx - 私はあなたの答えを受け入れるでしょう:) –