Текущее время: Вс, июл 13 2025, 14:53

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Ahrefs [Bot]


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

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