BAPIにはワンステップソリューションがありません。BDCを直接使用してください
デモ
gt_alv1でループします。ここでsel = 'X'です。
gt_alv1-app_dateが初期値でない場合。
gt_alv1-rtype = 'S'。
gt_alv1-rtmsg = '承認を繰り返す必要はありません'。
gt_alv1を変更します。
継続する。
endif。
* gt_alv1-aufnr gt_alv1-gamng_newgt_alv1-xianbを使用してfrm_pro_head_changeを実行します。gt_alv1-rtypegt_alv1-rtmsgを変更します。
* frm_pro_item_changeを実行します。
gt_alv1-reqnmを使用してfrm_req_getを実行します。
*注文画面に入る
'SAPLCOKO1''0110'を使用してfrm_bdc_dynnrを実行します。
'CAUFVD-AUFNR'gt_alv1-aufnrを使用してfrm_bdc_fieldを実行します。
'R62CLORD-FLG_OVIEW''X'を使用してfrm_bdc_fieldを実行します。
'BDC_OKCODE' '= KPU2'を使用してfrm_bdc_fieldを実行します。「組件
lt_alv2 [] = gt_alv2 []。
lt_alv2をewahrの降順で並べ替えます。「最初に使用の可能性が最も高いものに変更してください。そうしないと、エラーが報告されます。
lt_alv2でループします。
lt_alv2-new_flag = 'X'の場合。「新增
*コンポーネント画面
'SAPLCOMK''0120'を使用してfrm_bdc_dynnrを実行します。
'BDC_CURSOR''RESBD-MATNR(01)'を使用してfrm_bdc_fieldを実行します。 "最初の行を見つけます
'BDC_OKCODE' '= KEIN'を使用してfrm_bdc_fieldを実行します。「差入行
*コンポーネント画面
'SAPLCOMK''0120'を使用してfrm_bdc_dynnrを実行します。
'RESBD-POSNR(01)' lt_alv2-posnr_proを使用してfrm_bdc_fieldを実行します。「项
'RESBD-MATNR(01)' lt_alv2-matnr_newを使用してfrm_bdc_fieldを実行します。「物料
'RESBD-MENGE(01)' lt_alv2-bdmng_newを使用してfrm_bdc_fieldを実行します。「
'RESBD-VORNR(01)' '0010'を使用してfrm_bdc_fieldを実行します。「工序
'RESBD-POSTP(01)' 'L'を使用してfrm_bdc_fieldを実行します。 "プロジェクトカテゴリ
'BDC_OKCODE' '/ 00'を使用してfrm_bdc_fieldを実行します。 "Enter(ファクトリを引き出します)
*コンポーネントの詳細
'SAPLCOMD''0110'を使用してfrm_bdc_dynnrを実行します。
'BDC_OKCODE' '= BACK'を使用してfrm_bdc_fieldを実行します。「返回
else ..「削除と変更は入って見つけなければなりません
*コンポーネント画面
'SAPLCOMK''0120'を使用してfrm_bdc_dynnrを実行します。
'BDC_OKCODE' '= P--'を使用してfrm_bdc_fieldを実行します。 "最初のページ
*コンポーネント画面
'SAPLCOMK''0120'を使用してfrm_bdc_dynnrを実行します。
'BDC_OKCODE' '= AUFS'を使用してfrm_bdc_fieldを実行します。「定位
*オリエンテーション画面
'SAPLCO05''0110'を使用してfrm_bdc_dynnrを実行します。
'RCOSU-POSNR'lt_alv2-posnr_proを使用してfrm_bdc_fieldを実行します。
'RCOSU-MATNR'lt_alv2-matnrを使用してfrm_bdc_fieldを実行します。
'RCOSU-BDMNG'lt_alv2-bdmngを使用してfrm_bdc_fieldを実行します。
'BDC_OKCODE' '= MORE'を使用してfrm_bdc_fieldを実行します。「确认
if lt_alv2-del = 'X'。 "削除
*コンポーネント画面
'SAPLCOMK''0120'を使用してfrm_bdc_dynnrを実行します。
'RC27X-FLG_SEL(01)' 'X'を使用してfrm_bdc_fieldを実行します。 "最初の行
'BDC_OKCODE' '= DEL'を使用してfrm_bdc_fieldを実行します。「删除
else。「変更
*コンポーネント画面
'SAPLCOMK''0120'を使用してfrm_bdc_dynnrを実行します。
'BDC_CURSOR''RESBD-POSNR(01)'を使用してfrm_bdc_fieldを実行します。 "最初の行
'BDC_OKCODE' '= PICK'を使用してfrm_bdc_fieldを実行します。 "アイテムの詳細(ダブルクリック)
*コンポーネントの詳細
'SAPLCOMD''0110'を使用してfrm_bdc_dynnrを実行します。
lt_alv2-alpgrが初期の場合。
lt_alv2-matnr_newが初期でない場合。
'RESBD-MATNR'lt_alv2-matnr_newを使用してfrm_bdc_fieldを実行します。「物料
endif。
lt_alv2-bdmng_newが初期でない場合。
'RESBD-MENGE'lt_alv2-bdmng_newを使用してfrm_bdc_fieldを実行します。 "必要な数量
endif。
そうしないと。
lt_alv2-nomng_newが初期値でない場合。
'RESBD-NOMNG'lt_alv2-nomng_newを使用してfrm_bdc_fieldを実行します。「原始なら
endif。
lt_alv2-ewahr_newが初期値でない場合。
'RESBD-EWAHR'lt_alv2-ewahr_newを使用してfrm_bdc_fieldを実行します。「使用
endif。
endif。
'BDC_OKCODE' '= BACK'を使用してfrm_bdc_fieldを実行します。「返回
endif。
endif。
エンドループ。
*コンポーネントの詳細
'SAPLCOMK''0120'を使用してfrm_bdc_dynnrを実行します。
'BDC_OKCODE' '= KOZE'を使用してfrm_bdc_fieldを実行します。「抬头
*概要画面
'SAPLCOKO1''0115'を使用してfrm_bdc_dynnrを実行します。
gt_alv1-gamng_newが初期でない場合。
'CAUFVD-GAMNG'gt_alv1-gamng_newを使用してfrm_bdc_fieldを実行します。 "数量(合計数量を最後に変更する必要があります。そうしないと、コンポーネントが数量と一致すると一致しません)
endif。
'BDC_OKCODE' '= + COI'を使用してfrm_bdc_fieldを実行します。 "顧客画面
*顧客画面
'SAPLCOKO1''0115'を使用してfrm_bdc_dynnrを実行します。
gt_alv1-xianb_newが初期でない場合。
'Z_COCI_AUFK-ZZLINE'gt_alv1-xianb_newを使用してfrm_bdc_fieldを実行します。「ワイヤー
endif。
'BDC_OKCODE' '= BU'を使用してfrm_bdc_fieldを実行します。「
'CO02'を使用してfrm_bdc_callを実行し、gt_alv1-rtypegt_alv1-rtmsgを変更します。
gt_alv1-rtype = 'S'の場合。
gt_alv1-app_date = sy-datum。
gt_alv1-app_name = sy-uname。
endif。
gt_alv1を変更します。
ztpp0023aを更新します。app_date= gt_alv1-app_date app_name = gt_alv1-app_nameを設定します。
ここで、reqnm = gt_alv1-reqnmです。
ztpp0023bを更新します。app_date= gt_alv1-app_date app_name = gt_alv1-app_nameを設定します。
ここで、reqnm = gt_alv1-reqnmです。
エンドループ。