AS01固定資産カードの作成BAPI_FIXEDASSET_CREATE1

注意

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を変更します。

  エンドループ。

 

 

 

エンドファンクション。

 

おすすめ

転載: blog.csdn.net/cylcylcylcylwo/article/details/114077533