Текущее время: Сб, июл 12 2025, 03:20

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Нужен функ. модуль для создания основного средства
СообщениеДобавлено: Пт, мар 27 2015, 15:35 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, окт 27 2005, 11:12
Сообщения: 366
Откуда: не Москва
Коллеги, совсем нужен функциональный модуль для создания основного средства из своей программы. BATCH-inputы морально устарели, появляются в разных модулях. А в FI-AA появились такие модули?
Подскажите, если видели.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужен функ. модуль для создания основного средства
СообщениеДобавлено: Сб, мар 28 2015, 11:31 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 18 2006, 09:06
Сообщения: 325
Откуда: Astana
Пол: Мужской
Здравствуйте

Можно попробовать BAPI_FIXEDASSET_CREATE, BAPI_FIXEDASSET_CREATE1.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужен функ. модуль для создания основного средства  Тема решена
СообщениеДобавлено: Пн, мар 30 2015, 14:08 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вс, мар 21 2010, 15:48
Сообщения: 180
Откуда: Собянин-сити
Пол: Мужской
пожалуйста

Code:
*&---------------------------------------------------------------------*
*&      Form  FIXEDASSET_CREATE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*


FORM asset_create.

   DATA      s_asset_created TYPE bapi1022_reference.
   DATA:
         s_key                   TYPE bapi1022_key,
         s_general_data          TYPE bapi1022_feglg001,
         s_general_data_x        TYPE bapi1022_feglg001x,
         s_time_dependent_data   TYPE bapi1022_feglg003,
         s_time_dependent_data_x TYPE bapi1022_feglg003x,
         s_allocations           TYPE bapi1022_feglg004,
         s_allocations_x         TYPE bapi1022_feglg004x,
         s_postinginformation    TYPE bapi1022_feglg002,
         s_postinginformation_x  TYPE bapi1022_feglg002x,
         s_origin                TYPE bapi1022_feglg009,
         s_originx               TYPE bapi1022_feglg009x,
         s_return                TYPE bapiret2,
         length                  TYPE c.
   DATA: t_depreciationareas     LIKE TABLE OF bapi1022_dep_areas WITH HEADER LINE.  "значение по областям
  DATA: t_depreciationareasx    LIKE TABLE OF bapi1022_dep_areasx WITH HEADER LINE.  "значение по областям

  DATA: g_extensionin  TYPE TABLE OF bapiparex,            " для полей ANLU
         g_extin        TYPE bapiparex.
   DATA: g_bapi_te_anlu TYPE bapi_te_anlu.




   FIELD-SYMBOLS <data> TYPE zsalv_zins.

   LOOP AT gt_data ASSIGNING <data> WHERE anln1 IS INITIAL.
     s_key-companycode = sp_bukrs.

     s_general_data-assetclass   = <data>-anlkl.
     s_general_data_x-assetclass = abap_true.

     s_general_data-quantity   = <data>-menge.
     s_general_data_x-quantity = abap_true.

     s_general_data-base_uom   = <data>-meins.
     s_general_data_x-base_uom = abap_true.


     s_general_data-descript   = <data>-txt50(50).
     s_general_data_x-descript = abap_true.

     s_general_data-descript2   = <data>-txt50+50.
     s_general_data_x-descript2 = abap_true.


     s_general_data-history   = abap_true.
     s_general_data_x-history = abap_true.

     s_time_dependent_data-costcenter   = <data>-kostl.
     s_time_dependent_data_x-costcenter = abap_true.

     s_time_dependent_data-bus_area   = g_gsber.
     s_time_dependent_data_x-bus_area = abap_true.

     s_time_dependent_data-person_no   = <data>-pernr.
     s_time_dependent_data_x-person_no = abap_true.

     s_origin-vendor_no  = <data>-lifnr.
     s_originx-vendor_no = abap_true.

     "anlu
     REFRESH g_extensionin.

     CLEAR g_bapi_te_anlu.
     g_bapi_te_anlu-comp_code  = sp_bukrs.
     g_bapi_te_anlu-assetmaino = ''.
     g_bapi_te_anlu-assetsubno = ''.
     g_bapi_te_anlu-zzdogarend = <data>-zzdogarend.

     CLEAR g_extin.

     PERFORM value_to_string_transform
                 USING
                    g_bapi_te_anlu
                 CHANGING
                    g_extin.
     APPEND g_extin TO g_extensionin.

     "anlu


     t_depreciationareas-area       = '01'.
     t_depreciationareas-dep_key    = <data>-afasl01.
     t_depreciationareas-ulife_yrs  = <data>-ndjar01.
     t_depreciationareas-ulife_prds = <data>-ndper01.

     APPEND t_depreciationareas.

     t_depreciationareasx-area       = '01'.
     t_depreciationareasx-dep_key    = abap_true.
     t_depreciationareasx-ulife_yrs  = abap_true.
     t_depreciationareasx-ulife_prds = abap_true.

     APPEND t_depreciationareasx.

     t_depreciationareas-area       = '09'.
     t_depreciationareas-dep_key    = <data>-afasl01.
     t_depreciationareas-ulife_yrs  = <data>-ndjar01.
     t_depreciationareas-ulife_prds = <data>-ndper01.

     APPEND t_depreciationareas.


     t_depreciationareasx-area       = '09'.
     t_depreciationareasx-dep_key    = abap_true.
     t_depreciationareasx-ulife_yrs  = abap_true.
     t_depreciationareasx-ulife_prds = abap_true.

     APPEND t_depreciationareasx.



     t_depreciationareas-area       = '10'.
     t_depreciationareas-dep_key    = <data>-afasl10.
     t_depreciationareas-ulife_yrs  = <data>-ndjar10.
     t_depreciationareas-ulife_prds = <data>-ndper10.

     APPEND t_depreciationareas.


     t_depreciationareasx-area       = '10'.
     t_depreciationareasx-dep_key    = abap_true.
     t_depreciationareasx-ulife_yrs  = abap_true.
     t_depreciationareasx-ulife_prds = abap_true.

     APPEND t_depreciationareasx.



*   break gtflas.



    CALL FUNCTION 'BAPI_FIXEDASSET_CREATE1'
       EXPORTING


*       testrun            = abap_true


        key                = s_key
         generaldata        = s_general_data
         generaldatax       = s_general_data_x
         timedependentdata  = s_time_dependent_data
         timedependentdatax = s_time_dependent_data_x
         origin             = s_origin
         originx            = s_originx
         allocations        = s_allocations
         allocationsx       = s_allocations_x
       IMPORTING
         assetcreated       = s_asset_created
         return             = s_return
       TABLES
         depreciationareas  = t_depreciationareas
         depreciationareasx = t_depreciationareasx
         extensionin        = g_extensionin.


*    break gtflas.


    IF s_return-type = 'E'.
       g_error = abap_true.
       APPEND s_return TO gt_return.

       <data>-icon  = '@0A@'.
     ELSE.
       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
         EXPORTING
           wait = 'X'.
       <data>-anln1 = s_asset_created-asset.
       <data>-icon  = '@08@'.
     ENDIF.
   ENDLOOP.

ENDFORM. " FIXEDASSET_CREATE

_________________
"Sap"ЕР-подрывник...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужен функ. модуль для создания основного средства
СообщениеДобавлено: Пн, мар 30 2015, 16:42 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вс, мар 21 2010, 15:48
Сообщения: 180
Откуда: Собянин-сити
Пол: Мужской
И еще если надо заполнять anlu, обрати внимание на

Code:
*&---------------------------------------------------------------------*
*&  Include           ZVALUEFIELD
*&---------------------------------------------------------------------*
* <<< BEGIN OF INSERTION - SPC947304 >>>

FORM string_to_value_transform TABLES it_extensionout CHANGING ls_bapi_anlu.

  DATA: ls_extensionout TYPE bapiparex.
  DATA: ld_string TYPE string.
  DATA: cp_tab  TYPE nls_langu_cp_tab.
  DATA: l_ref_cont  TYPE REF TO cl_nls_struc_container.
  field-symbols <lfs_anlu> type c.


*Read extension fields
  READ TABLE it_extensionout INDEX 1 INTO ls_extensionout.
  ld_string = ls_extensionout-valuepart1.

* a) Read Codepage
  CALL FUNCTION 'NLS_GET_LANGU_CP_TAB'
    EXPORTING
      destination = 'NONE'
    TABLES
      cp_tab      = cp_tab.
* b) create conversion object
  l_ref_cont = cl_nls_struc_container=>create( cp_tab = cp_tab ).

* c) change structure to container
  ASSIGN ls_bapi_anlu TO <lfs_anlu> CASTING.



* Fill structure out of container
  l_ref_cont->cont_to_struc( EXPORTING langu = sy-langu
                                       cont  = ld_string
                             IMPORTING struc = <lfs_anlu> ).
ENDFORM.                    "string_to_value_transform

*&---------------------------------------------------------------------*
*&      Form  VALUE_TO_STRING_TRANSFORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->IS_BAPI_ANLU    text
*      -->LS_EXTENSIONIN  text
*----------------------------------------------------------------------*
FORM value_to_string_transform USING is_bapi_anlu CHANGING ls_extension STRUCTURE bapiparex.
  FIELD-SYMBOLS: <lfs_anlu> TYPE c.
  DATA: ld_string TYPE string.
  FIELD-SYMBOLS: <lfs_extension> TYPE c.
  DATA: ld_offset_anlu  TYPE i.
  DATA: l_ref_cont  TYPE REF TO cl_nls_struc_container,
        cp_tab  TYPE nls_langu_cp_tab.


  DESCRIBE FIELD ls_extension-structure LENGTH ld_offset_anlu
  IN CHARACTER MODE. "Unicode

  CALL FUNCTION 'NLS_GET_LANGU_CP_TAB'
    EXPORTING
      destination = 'NONE'
    TABLES
      cp_tab      = cp_tab.
*
  l_ref_cont = cl_nls_struc_container=>create( cp_tab =
cp_tab ).


  ASSIGN is_bapi_anlu TO <lfs_anlu> CASTING.
  l_ref_cont->struc_to_cont( EXPORTING langu = sy-langu
                                       struc = <lfs_anlu>
                              IMPORTING cont = ld_string ).

  ASSIGN ls_extension  TO <lfs_extension>  CASTING.
  MOVE ld_string      TO <lfs_extension>+ld_offset_anlu.

  MOVE 'BAPI_TE_ANLU' TO  ls_extension-structure.



ENDFORM.                    "VALUE_TO_STRING_TRANSFORM

* <<< END  OF INSERTION - SPC947304 >>>






*&---------------------------------------------------------------------*
*&  Include           ZVALUEFIELD                                      *
*&---------------------------------------------------------------------*









2. Use as example the below code sequence (ask if questions)
a) Define necessary variables

DATA: g_extensionin TYPE TABLE OF bapiparex,
          g_extin     TYPE bapiparex.
DATA: g_bapi_te_anlu TYPE bapi_te_anlu.

b) Prepare / fill variables with what you need:

    REFRESH g_extensionin.

    CLEAR g_bapi_te_anlu.
    g_bapi_te_anlu-comp_code = g_mm_doc-bukrs.
    g_bapi_te_anlu-assetmaino = ''.
    g_bapi_te_anlu-assetsubno = ''.
    g_bapi_te_anlu-zz_mblnr = g_mm_doc-mblnr.
    g_bapi_te_anlu-zz_mjahr = g_mm_doc-mjahr.
    g_bapi_te_anlu-zz_zeile = g_mm_doc-zeile.
    g_bapi_te_anlu-zz_matnr = g_mm_doc-matnr.
    g_bapi_te_anlu-zz_name_rec = g_mm_doc-wempf.
    g_bapi_te_anlu-zz_name_asg = ''.
c) Now, use this FORM routine from the above SAP Note, to correctly fill the EXTENSIONIN structure

    CLEAR g_extin.

    PERFORM value_to_string_transform
                USING
                   g_bapi_te_anlu
                CHANGING
                   g_extin.
    APPEND g_extin TO g_extensionin.

d) Finally call the BAPI with what you need / want, etc

      CALL FUNCTION 'BAPI_FIXEDASSET_CREATE1'
        EXPORTING
          key                        = g_key
*     REFERENCE                  =
*     CREATESUBNUMBER            =
*     POSTCAP                    =
*     CREATEGROUPASSET           =
          testrun                    = p_test
          generaldata                = g_gendata
          generaldatax               = g_gendatax
*     INVENTORY                  =
*     INVENTORYX                 =
          postinginformation         = g_postinfo
          postinginformationx        = g_postinfox
          timedependentdata          = g_timedep
          timedependentdatax         = g_timedepx
*     ALLOCATIONS                =
*     ALLOCATIONSX               =
          origin                     = g_original
          originx                    = g_originalx
*     INVESTACCTASSIGNMNT        =
*     INVESTACCTASSIGNMNTX       =
*     NETWORTHVALUATION          =
*     NETWORTHVALUATIONX         =
*     REALESTATE                 =
*     REALESTATEX                =
*     INSURANCE                  =
*     INSURANCEX                 =
*     LEASING                    =
*     LEASINGX                   =
       IMPORTING
*         companycode                =
         asset                      = g_mm_aa-anln1
         subnumber                  = g_mm_aa-anln2
*     ASSETCREATED               =
         return                     = g_bapi_return
       TABLES
*     DEPRECIATIONAREAS          =
*     DEPRECIATIONAREASX         =
*     INVESTMENT_SUPPORT         =
         extensionin                = g_extensionin
                .









Nevermind. I was able to find the problem. EXIT_SAPL1022_001 was missing the ANLU assignment to E_ANLU, so I added the following line to include ZXAISU05:

e_anlu = i_anlu.

_________________
"Sap"ЕР-подрывник...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужен функ. модуль для создания основного средства
СообщениеДобавлено: Вт, мар 31 2015, 08:31 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, окт 27 2005, 11:12
Сообщения: 366
Откуда: не Москва
Исчерпывающе!
Очень спасибо, коллеги.
Будем пробовать!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужен функ. модуль для создания основного средства
СообщениеДобавлено: Чт, апр 02 2015, 14:01 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, окт 27 2005, 11:12
Сообщения: 366
Откуда: не Москва
Все получилось!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB