注意
1.減価償却範囲はそれ自体で表示され、フィールドを変更するにはxを押すだけです。
デモコード
関数zfm_erp_012。
* "------------------------------------------------ ----------------------
* "*"ローカルインターフェース:
* "テーブル
* "T_DATA STRUCTURE ZFM_ERP_012_DATA
* "------------------------------------------------ ----------------------
データ:
ls_keyタイプbapi1022_key、
ls_general_dataタイプbapi1022_feglg001、
ls_general_data_xタイプbapi1022_feglg001x、
ls_postinginformationタイプbapi1022_feglg002、
ls_postinginformationxタイプbapi1022_feglg002x、
ls_time_dependent_dataタイプbapi1022_feglg003、
ls_time_dependent_data_xタイプbapi1022_feglg003x、
ls_allocationsタイプbapi1022_feglg004、
ls_allocationsxタイプbapi1022_feglg004x、
ls_investacctassignmntタイプbapi1022_feglg010、
ls_investacctassignmntxタイプbapi1022_feglg010x、
ls_originタイプbapi1022_feglg009、 "ソース
ls_originxタイプbapi1022_feglg009x。
***減価償却範囲
データ:
bapi1022_dep_areasのテーブルのようなlt_depreciationareas、
lt_depreciationareasの行のようなls_epreciationareas、
bapi1022_dep_areasxのテーブルのようなlt_depreciationareasx、
lt_depreciationareasxの行のようなls_depreciationareasx。
"出力
データ:
ls_returnタイプbapiret2、
lv_messageタイプの文字列、
lv_assetmainoタイプbapi1022_1-assetmaino。
2回行います。
sy-index = 1の場合。
データ(testrun)= 'X'。
そうしないと。
testrun = ''。
キーrtype = 'E'でテーブルt_dataを読み取ります。
sy-subrc = 0の場合。
戻ります。
endif。
endif。
enddo.
t_dataでループします。ここでrtypene'S 'です。
t_data-anlkl = | {t_data-anlkl alpha = in} |。
t_data-eaufn = | {t_data-eaufn alpha = in} |。
t_data-kostl = | {t_data-kostl alpha = in} |。
*作成されるキーワードフィールド
ls_key-companycode = t_data-bukrs。 "会社コード
*論理フィールドグループ001-一般データ
ls_general_data-assetclass = t_data-anlkl。 "アセットクラス
ls_general_data_x-assetclass = 'X'。 "関連するユーザーデータフィールドの情報を更新しました
ls_general_data-descript = t_data-txt50。 "説明が必要です
ls_general_data_x-descript = 'X'。
ls_general_data-descript2 = t_data-txa50。 "オプションの追加の資産の説明-工場番号を入力してください
ls_general_data_x-descript2 = 'X'。
ls_general_data-serial_no = t_data-sernr。 "シリアル番号
ls_general_data_x-serial_no = 'X'。
ls_general_data-invent_no = t_data-invnr。 "在庫番号
ls_general_data_x-invent_no = 'X'。
ls_general_data-quantity = t_data-menge。「
ls_general_data_x-数量= 'X'。
ls_general_data-base_uom = t_data-meins。 "基本的な測定単位
ls_general_data_x-base_uom = 'X'。
*論理フィールドグループ002-アカウンティング情報
ls_postinginformation-cap_date = t_data-aktiv。 "大文字の使用日
ls_postinginformationx-cap_date = 'X'。
*論理フィールドグループ003-時間関連データ
* ls_time_dependent_data-bus_area = t_data-gsber。 "ビジネスエリア
* ls_time_dependent_data_x-bus_area = 'X'。
ls_time_dependent_data-costcenter = t_data-kostl。 "必要なコストセンター
ls_time_dependent_data_x-costcenter = 'X'。
*論理フィールドグループ004-割り当て
ls_allocations-inv_reason = t_data-izwek。 "投資の理由
ls_allocationsx-inv_reason = 'X'。
ls_allocations-evalgroup1 = t_data-ord41。 "使用状況
ls_allocationsx-evalgroup1 = 'X'。
ls_allocations-evalgroup2 = t_data-ord42。 "経済的な使用
ls_allocationsx-evalgroup2 = 'X'。
*論理フィールドグループ010-投資勘定の割り当て
ls_investacctassignmnt-invest_ord = t_data-eaufn。 "投資注文
ls_investacctassignmntx-invest_ord = 'X'。
*減価償却範囲
ls_epreciationareas-area = '01 '。 "実際の減価償却領域
ls_epreciationareas-odep_start_date = t_data-afabg。 "減価償却計算の開始日
ls_epreciationareasをlt_depreciationareasに追加します。
ls_depreciationareasx-area = '01 '。
ls_depreciationareasx-odep_start_date = 'X'。
ls_depreciationareasxをlt_depreciationareasxに追加します。
ls_epreciationareas-area = '02 '。 "実際の減価償却領域
ls_epreciationareas-odep_start_date = t_data-afabg。 "減価償却計算の開始日
ls_epreciationareasをlt_depreciationareasに追加します。
ls_depreciationareasx-area = '02 '。
ls_depreciationareasx-odep_start_date = 'X'。
ls_depreciationareasxをlt_depreciationareasxに追加します。
ls_epreciationareas-area = '03 '。 "実際の減価償却領域
ls_epreciationareas-odep_start_date = t_data-afabg。 "減価償却計算の開始日
ls_epreciationareasをlt_depreciationareasに追加します。
ls_depreciationareasx-area = '03 '。
ls_depreciationareasx-odep_start_date = 'X'。
ls_depreciationareasxをlt_depreciationareasxに追加します。
ls_epreciationareas-area = '04 '。 "実際の減価償却領域
ls_epreciationareas-odep_start_date = t_data-afabg。 "減価償却計算の開始日
ls_epreciationareasをlt_depreciationareasに追加します。
ls_depreciationareasx-area = '04 '。
ls_depreciationareasx-odep_start_date = 'X'。
ls_depreciationareasxをlt_depreciationareasxに追加します。
*ソース
ls_origin-vendor = t_data-lifnr。 "ベンダー名
ls_originx-ベンダー= 'X'。
ls_origin-manufacturer = t_data-herst。 "アセットメーカー
ls_originx-manufacturer = 'X'。
関数 'BAPI_FIXEDASSET_CREATE1'を呼び出します
エクスポート
testrun = testrun
キー= ls_key
オリジン= ls_origin
originx = ls_originx
generaldata = ls_general_data
generaldatax = ls_general_data_x
投稿情報= ls_postinginformation
postinformationx = ls_postinginformationx
割り当て= ls_allocations
割り当てx = ls_allocationsx
Investmentacctassignmnt = ls_investacctassignmnt
Investmentacctassignmntx = ls_investacctassignmntx
timedependentdata = ls_time_dependent_data
timedependentdatax = ls_time_dependent_data_x
インポート
資産= lv_assetmaino
return = ls_return
テーブル
depreciationareas = lt_depreciationareas
depreciationareasx = lt_depreciationareasx。
ls_return-type = 'S'の場合。
testrunが初期の場合。
関数 'BAPI_TRANSACTION_COMMIT'を呼び出す
エクスポート
待機= 'X'。
t_data-rtype = 'S'。
t_data-rtmsg = '成功'。
t_data-anln1 = | {lv_assetmaino alpha = out} |。
endif。
ls_returnが初期でない場合。
メッセージIDls_return-idタイプls_return-タイプ番号ls_return-number
ls_return-message_v1 ls_return-message_v2 ls_return-message_v3ls_return-message_v4をlv_messageに追加します。
endif。
そうしないと。
関数 'BAPI_TRANSACTION_ROLLBACK'を呼び出します。
ls_returnが初期でない場合。
メッセージIDls_return-idタイプls_return-タイプ番号ls_return-number
ls_return-message_v1 ls_return-message_v2 ls_return-message_v3ls_return-message_v4をlv_messageに追加します。
endif。
t_data-rtype = 'E'。
t_data-rtmsg = lv_message。
endif。
t_dataを変更します。
エンドループ。
エンドファンクション。