注意
最初にBAPI_PROCORDCONF_GET_TT_PROPを使用して、プロセスのデータを取得します(定格労働時間)
しかし、テストの結果、勤務時間中に一部の作業指示書が取り出されなかったため、手動で忘れてしまいました。
次に、
BAPI_PRODORDCONF_CREATE_TT製造指図レポート
デモ
* ol
gt_alvでループします。
*キーaufnr = gt_alv-aufnrバイナリ検索を使用してテーブルgt_aufm_sumを読み取ります。
* sy-subrc = 0の場合。
* 1。更新が必要なデータ設定
明確な提案。
*提案数量= cn_flagx。 "数量を更新
提案-date_and_time = cn_flagx。 "ジョブ時間の更新
提案-goodsmovement = cn_flagx。 "在庫移動を更新します
* 2。稼働時間
クリア:timetickets、timetickets []。
timetickets-conf_no = gt_alv-rueck。 "確認
* timetickets-orderid = gt_alv-aufnr。 "チケット番号
* timetickets-operation = gt_alv-vornr。 "操作番号
* timetickets-sequence = gt_alv-aplfl。「」
timetickets-yield = gt_alv-menge。 "チケットの生産数量
タイムチケットを追加します。
タイムチケットをクリアします。
* 3。在庫移動属性
*関連するデフォルトの属性値を取得するために使用される最初の割り当て
明確:goodsmovements、goodsmovements []。
goodsmovements-orderid = gt_alv-aufnr。 "製造オーダー番号
goodsmovements-order_itno = gt_alv-vornr。 "操作番号
商品の動きを追加します。
明確な商品の動き。
* 4. BAPIを呼び出して、デフォルトの属性値を取得します
関数 'BAPI_PRODORDCONF_GET_TT_PROP'を呼び出します
エクスポート
提案=提案
インポート
リターン=リターン
テーブル
タイムチケット=タイムチケット
goodsmovements = goodsmovements
link_conf_goodsmov = link_conf_goodsmov
detail_return = return_detail。
* 5。異常情報を出力する
* return-type = 'E'またはreturn-type = 'A'の場合。
* '错误:' return-messageをreturn-messageに連結します。
* lv_result = cn_flagx。
* endif。
*
*型が初期ではないreturn_detailでループします。
* return_detail-type = 'E'またはreturn_detail-type = 'A'の場合。
* '错误:' return_detail-messageをreturn-messageに連結します。
* lv_result = cn_flagx。
* endif。
*エンドループ。
タイムチケットでループします。
timetickets-postg_date = gt_alv-budat。
timetickets-conf_activity1 = gt_alv-vgw01 * gt_alv-menge。 "一部のチケットは標準の勤務時間を読み取ることができません
timetickets-conf_acti_unit1 = gt_alv-vge01。
timetickets-conf_activity2 = gt_alv-vgw02 * gt_alv-menge。
timetickets-conf_acti_unit2 = gt_alv-vge02。
timetickets-conf_activity3 = gt_alv-vgw03 * gt_alv-menge。
timetickets-conf_acti_unit3 = gt_alv-vge03。
timetickets-conf_activity4 = gt_alv-vgw04 * gt_alv-menge。
timetickets-conf_acti_unit4 = gt_alv-vge04。
timetickets-conf_activity5 = gt_alv-vgw05 * gt_alv-menge。
timetickets-conf_acti_unit5 = gt_alv-vge05。
timetickets-conf_activity6 = gt_alv-vgw06 * gt_alv-menge。
timetickets-conf_acti_unit6 = gt_alv-vge06。
タイムチケットを変更します。
エンドループ。
* 7. BAPIを呼び出し、確認のために作業するように報告します
クリア:return、return []。
クリア:return_detail、return_detail []。
関数 'BAPI_PRODORDCONF_CREATE_TT'を呼び出します
エクスポート
post_wrong_entries = '1'
testrun = '' "Xとして識別され、試運転であり、システムに送信されません
インポート
リターン=リターン
テーブル
タイムチケット=タイムチケット
goodsmovements = goodsmovements
link_conf_goodsmov = link_conf_goodsmov
detail_return = return_detail。
lv_resultをクリアします。
キータイプ= 'E'でテーブルリターンを読み取ります。
sy-subrc = 0の場合。
'错误:' return-messageをreturn-messageに連結します。
lv_result = cn_flagx。
endif。
typeが初期ではないreturn_detailでループします。
return_detail-type = 'E'またはreturn_detail-type = 'A'の場合。
'错误:' return_detail-messageをreturn-messageに連結します。
lv_result = cn_flagx。
endif。
エンドループ。
lv_result necn_flagxの場合。
関数 'BAPI_TRANSACTION_COMMIT'を呼び出す
エクスポート
待機= 'X'。
gt_alv-rtype = 'S'。
gt_alv-rtmsg = '成功'。
*生産ラインの総数
テーブルタイムチケットインデックス1を読み取ります。
lt_ztpp0032n-zzline = gt_alv-zzline。
lt_ztpp0032n-budat = gt_alv-budat。
lt_ztpp0032n-lmnga = gt_alv-menge。
lt_ztpp0032n-ism01 = timetickets-conf_activity1。。
lt_ztpp0032n-aedat = sy-datum。
lt_ztpp0032n-aezet = sy-uzeit。
lt_ztpp0032n-aenam = sy-uname。
lt_ztpp0032nを追加します。
そうしないと。
関数 'BAPI_TRANSACTION_ROLLBACK'を呼び出します。
gt_alv-rtype = 'E'。
gt_alv-rtmsg = return-message。
endif。
* endif。
gt_alvを変更します。
エンドループ。