Текущее время: Ср, июл 23 2025, 19:00

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Загрузка объектов разграничения
СообщениеДобавлено: Вт, дек 15 2015, 14:57 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 02 2014, 11:50
Сообщения: 60
Добрый день, какие существуют способы массовой загрузки объектов разграничения (тр. ACACTREE01 - Periodic Processing -> Manual Accruals -> Create Accrual Objects)?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Загрузка объектов разграничения
СообщениеДобавлено: Ср, дек 16 2015, 19:21 
Специалист
Специалист
Аватара пользователя

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

Code:
*&---------------------------------------------------------------------*
*& Report  Z_FI_BP_OST
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*  Название        : Программа массового ввода ACC
*
***  Цель: Программа массового ввода ACC
*&---------------------------------------------------------------------*


report z_fi_bp_ost.

types ty_t_acc type table of z_salv_zacc.

tables: t001.




data gt_data type ty_t_acc.
data ok_code type syucomm.
class lcl_event definition deferred.
data g_container type ref to cl_gui_docking_container.
data g_grid type ref to cl_gui_alv_grid.
data g_error.
data gt_return type bapiret2_t.
data g_log type ref to zcl_msg_log.





************************************************************************









selection-screen begin of block par with frame.

parameter sp_acr type tacac_objtyp-acac_objtype.
parameter sp_bldat type bkpf-bldat default sy-datum obligatory.
parameter sp_fname type rlgrap-filename obligatory.
selection-screen end of block par.



at selection-screen output.
   set cursor field 'SP_FNAME'.

at selection-screen on value-request for sp_fname.
   perform get_fname.


************************************************************************



start-of-selection.

  perform free.
   perform select_data.

  call screen 9100.



************************************************************************



class lcl_event definition.

  public section.

    class-methods:
     handle_double_click
             for event double_click of cl_gui_alv_grid
                 importing e_row e_column es_row_no,
     handle_toolbar
           for event toolbar of cl_gui_alv_grid
           importing e_object e_interactive,

    handle_user_command
           for event user_command of cl_gui_alv_grid
           importing e_ucomm.



*  PRIVATE SECTION.


endclass. "lcl_event DEFINITION


*----------------------------------------------------------------------*
*       CLASS lcl_event IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*


class lcl_event implementation.

  method handle_double_click.
     perform double_click using e_row
                                e_column
                                es_row_no.
     "sender.
   endmethod.                                               "handle_double_click

  method handle_toolbar.

    data: s_toolbar type stb_button,
           separator type tb_btype value 3,
           s_btnmenu type stb_btnmnu.

    delete e_object->mt_toolbar where function eq :


*    '&MB_SUM',
*    '&MB_SUBTOT',


     '&&SEP05',
     '&PRINT_BACK',
     '&MB_VIEW',
     '&&SEP06',
     '&GRAPH',
     '&&SEP07',
     '&INFO',


**


     '&CHECK',
     '&REFRESH',
     '&&SEP01',
     '&LOCAL&CUT',
     '&LOCAL©',
     '&LOCAL&PASTE',
     '&LOCAL&UNDO',
     '&&SEP02',
     '&LOCAL&APPEND',
     '&LOCAL&INSERT_ROW',
     '&LOCAL&DELETE_ROW',
     '&LOCAL©_ROW',
     '&&SEP03'.

    clear s_toolbar.
     move   separator to s_toolbar-butn_type.
     append s_toolbar to e_object->mt_toolbar.

    clear s_toolbar.
     move 'CREATE'              to s_toolbar-function.
     move icon_create           to s_toolbar-icon.
     move 'Создать объекты ACC' to s_toolbar-quickinfo.
     move 'Создать ACC'         to s_toolbar-text.
     append s_toolbar to e_object->mt_toolbar.

  endmethod.                                               "handle_toolbar


  method handle_user_command.

    case e_ucomm.
       when 'CREATE'.
         perform create_acc.
         perform refresh_alv.



*        IF g_error = abap_false.
**          LEAVE TO SCREEN 0.
*        ENDIF.


     endcase.


  endmethod.                                               "handle_user_command



endclass. "lcl_event IMPLEMENTATION




*&---------------------------------------------------------------------*
*&      Form  double_click
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_E_ROW      text
*      -->P_E_COLUMN   text
*      -->P_ES_ROW_NO  text
*----------------------------------------------------------------------*


form double_click using p_e_row type lvc_s_row
                             p_e_column type lvc_s_col
                             p_es_row_no type lvc_s_roid.

  data:
         l_ref_key type ace_ref_key.
   field-symbols: <fw> like line of gt_data.

  check p_e_row-rowtype is initial.

  read table gt_data assigning <fw> index p_e_row-index.
   check sy-subrc = 0.

  case p_e_column-fieldname.

    when 'ACAC_OBJNUMBER'.

      check <fw>-acac_objnumber is not initial.
       clear: l_ref_key.
       l_ref_key = <fw>-acac_objnumber.

      submit acac_basisdata_sel_for_main
            with p_keydte = <fw>-vality_from
            with so_bukrs-low = sp_bukrs
            with so_objnm-low = l_ref_key
            and return.


    when 'ICON'.
       check <fw>-acac_objnumber is not initial.
       clear: l_ref_key.
       l_ref_key = <fw>-acac_objnumber.

      submit acac_basisdata_sel_for_main
            with p_keydte = <fw>-vality_from
            with so_bukrs-low = sp_bukrs
            with so_objnm-low = l_ref_key
            and return.


    when  others.

  endcase.

endform. "double_click


*&---------------------------------------------------------------------*
*&      Form  refresh_alv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*


form refresh_alv.
   data stable type lvc_s_stbl.
   stable-row = 'X'.
   stable-col = 'X'.

  call method g_grid->refresh_table_display
     exporting
       is_stable = stable
     exceptions
       finished  = 1
       others    = 2.



*  CLEAR: save_code, save_code2.

*   call method cl_gui_cfw=>flush.



endform. "refresh_alv



*&---------------------------------------------------------------------*
*&      Form  GET_FNAME
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*


form get_fname .

  data rc      type i.
   data t_fname type filetable.
   data s_fname type file_table.

  call method cl_gui_frontend_services=>file_open_dialog


*    EXPORTING
*     window_title         =
*      default_extension    =
*      default_file_name    =
*     with_encoding        =
*     file_filter          =
*     initial_directory    =


     changing
       file_table           = t_fname
       rc                   = rc


*     user_action          =
*     file_encoding        =


     exceptions
       file_open_dialog_failed = 1
       cntl_error              = 2
       error_no_gui            = 3
       not_supported_by_gui    = 4
       others                  = 5.
   if sy-subrc ne 0.
     return.
   endif.

  if rc = 1.
     read table t_fname into sp_fname index 1.
   endif.

endform. " GET_FNAME


*&---------------------------------------------------------------------*
*&      Form  SELECT_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*


form select_data .

  field-symbols <data> type zec_salv_zacc.


 

Выборка из EXCEL


  loop at gt_data assigning <data>.

    <data>-bukrs = sp_bukrs.

    call function 'CONVERSION_EXIT_CUNIT_INPUT'
       exporting
         input  = <data>-unit_b
       importing
         output = <data>-unit_b.

    call function 'CONVERSION_EXIT_CUNIT_INPUT'
       exporting
         input  = <data>-unit_n
       importing
         output = <data>-unit_n.

    <data>-bldat = sp_bldat.


  endloop.

endform. " SELECT_DATA


*&---------------------------------------------------------------------*
*&      Module  STATUS_9100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*


module status_9100 output.
   set pf-status 'MAIN9100'.
   set titlebar 'MAIN9100'.

endmodule. " STATUS_9100 OUTPUT


*&---------------------------------------------------------------------*
*&      Module  EXIT_COMMAND_9100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*


module exit_command_9100 input.

  case ok_code.
     when 'CANCEL'.
       leave to screen 0.
   endcase.

endmodule. " EXIT_COMMAND_9100 INPUT


*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*


module user_command_9100 input.

  case ok_code.
     when 'BACK' or 'EXIT' or 'CANCEL'.
       leave to screen 0.
   endcase.

endmodule. " USER_COMMAND_9100 INPUT


*&---------------------------------------------------------------------*
*&      Module  ALV_OUTPUT  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*


module alv_output output.

  if g_container is not bound.
     perform alv_output.
   endif.

endmodule. " ALV_OUTPUT OUTPUT


*&---------------------------------------------------------------------*
*&      Form  CREATE_OS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*


form create_acc .

  data s_return type bapiret2.

  if g_log is bound.
     g_log->clear_log( ).
   else.
     create object g_log.
   endif.
   refresh gt_return.
   clear g_error.

  perform acc_create.



endform.



*&---------------------------------------------------------------------*
*&      Form  ALV_OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*


form alv_output .


  create object g_container
     exporting


*      repid                       = sy-repid
*      dynnr                       = sy-dynnr


       side                        = cl_gui_docking_container=>dock_at_top
       extension                   = cl_gui_docking_container=>ws_maximizebox


*     ratio                       =


     exceptions
       cntl_error                  = 1
       cntl_system_error           = 2
       create_error                = 3
       lifetime_error              = 4
       lifetime_dynpro_dynpro_link = 5
       others                      = 6.
   if sy-subrc ne 0.


* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.


   endif.


  check g_container is bound.
   create object g_grid
     exporting
       i_parent = g_container.

  data t_fcat   type lvc_t_fcat.
   data s_layout type lvc_s_layo.
   field-symbols <fcat> type lvc_s_fcat.

  call function 'LVC_FIELDCATALOG_MERGE'
     exporting
       i_buffer_active        = ''
       i_structure_name       = 'Z_SALV_ZACC'
       i_bypassing_buffer     = 'X'
     changing
       ct_fieldcat            = t_fcat
     exceptions
       inconsistent_interface = 1
       program_error          = 2
       others                 = 3.

  loop at t_fcat assigning <fcat>.
     case <fcat>-fieldname.

      when 'ACCRULE_B'.
         <fcat>-reptext   = 'Предписание по отчетности БУ'.
         <fcat>-scrtext_l = 'Предписание по отчетности БУ'.
         <fcat>-scrtext_m = 'Предписание по отчетности БУ'.
         <fcat>-scrtext_s = 'Предписание по отчетности БУ'.

      when 'AMOUNT_B'.
         <fcat>-reptext   = 'Общая сумма БУ'.
         <fcat>-scrtext_l = 'Общая сумма БУ'.
         <fcat>-scrtext_m = 'Предписание БУ'.
         <fcat>-scrtext_s = 'Предписание БУ'.

      when 'CURRENCY_B'.
         <fcat>-reptext   = 'Валюта БУ'.
         <fcat>-scrtext_l = 'Валюта БУ'.
         <fcat>-scrtext_m = 'Валюта БУ'.
         <fcat>-scrtext_s = 'Валюта БУ'.

      when 'QUANTITY_B'.
         <fcat>-reptext   = 'Колич БУ'.
         <fcat>-scrtext_l = 'Колич БУ'.
         <fcat>-scrtext_m = 'Колич БУ'.
         <fcat>-scrtext_s = 'Колич БУ'.
       when 'UNIT_B'.
         <fcat>-reptext   = 'Ед.из БУ'.
         <fcat>-scrtext_l = 'Ед.из БУ'.
         <fcat>-scrtext_m = 'Ед.из БУ'.
         <fcat>-scrtext_s = 'Ед.из БУ'.
       when 'ACRMETHOD_B'.
         <fcat>-reptext   = 'Мет.разг БУ'.
         <fcat>-scrtext_l = 'Мет.разг БУ'.
         <fcat>-scrtext_m = 'Мет.разг БУ'.
         <fcat>-scrtext_s = 'Мет.разг БУ'.

      when 'ACCRULE_N'.
         <fcat>-reptext   = 'Предписание по отчетности НУ'.
         <fcat>-scrtext_l = 'Предписание по отчетности НУ'.
         <fcat>-scrtext_m = 'Предписание по отчетности НУ'.
         <fcat>-scrtext_s = 'Предписание по отчетности НУ'.

      when 'AMOUNT_N'.
         <fcat>-reptext   = 'Общая сумма НУ'.
         <fcat>-scrtext_l = 'Общая сумма НУ'.
         <fcat>-scrtext_m = 'Предписание НУ'.
         <fcat>-scrtext_s = 'Предписание НУ'.

      when 'CURRENCY_N'.
         <fcat>-reptext   = 'Валюта НУ'.
         <fcat>-scrtext_l = 'Валюта НУ'.
         <fcat>-scrtext_m = 'Валюта НУ'.
         <fcat>-scrtext_s = 'Валюта НУ'.

      when 'QUANTITY_N'.
         <fcat>-reptext   = 'Колич НУ'.
         <fcat>-scrtext_l = 'Колич НУ'.
         <fcat>-scrtext_m = 'Колич НУ'.
         <fcat>-scrtext_s = 'Колич НУ'.
       when 'UNIT_N'.
         <fcat>-reptext   = 'Ед.из НУ'.
         <fcat>-scrtext_l = 'Ед.из НУ'.
         <fcat>-scrtext_m = 'Ед.из НУ'.
         <fcat>-scrtext_s = 'Ед.из НУ'.
       when 'ACRMETHOD_N'.
         <fcat>-reptext   = 'Мет.разг НУ'.
         <fcat>-scrtext_l = 'Мет.разг НУ'.
         <fcat>-scrtext_m = 'Мет.разг НУ'.
         <fcat>-scrtext_s = 'Мет.разг НУ'.
       when 'ZLIFNR'.
         <fcat>-reptext   = 'Контрагент'.
         <fcat>-scrtext_l = 'Контрагент'.
         <fcat>-scrtext_m = 'Контрагент'.
         <fcat>-scrtext_s = 'Контрагент'.
       when 'ZDZUONR'.
         <fcat>-reptext   = 'Договор'.
         <fcat>-scrtext_l = 'Договор'.
         <fcat>-scrtext_m = 'Договор'.
         <fcat>-scrtext_s = 'Договор'.

      when 'ICON'.
         <fcat>-reptext   = 'Статус'.
         <fcat>-scrtext_l = 'Статус'.
         <fcat>-scrtext_m = 'Статус'.
         <fcat>-scrtext_s = 'Статус'.
       when others.

    endcase.
   endloop.

  s_layout-zebra      = 'X'.
   s_layout-sel_mode   = 'N'.
   s_layout-cwidth_opt = 'X'.

  data s_variant  type disvariant.

  s_variant-report  = sy-repid.


*  s_variant-variant = 'DEFAULT'.



  set handler lcl_event=>handle_toolbar for g_grid.
   set handler lcl_event=>handle_user_command for g_grid.
   set handler lcl_event=>handle_double_click for  g_grid.



*  CALL METHOD grid->set_variant( s_variant ).



  call method g_grid->set_table_for_first_display
     exporting
       i_bypassing_buffer            = 'X'
       i_buffer_active               = ''
       is_variant                    = s_variant
       i_save                        = 'A'
       is_layout                     = s_layout


*     it_toolbar_excluding          = t_exclude


     changing
       it_outtab                     = gt_data
       it_fieldcatalog               = t_fcat


*     it_sort                       = t_sort


     exceptions
       invalid_parameter_combination = 1
       program_error                 = 2
       too_many_lines                = 3
       others                        = 4.

  if sy-subrc ne 0.

  endif.

endform. " ALV_OUTPUT


*&---------------------------------------------------------------------*
*&      Form  FREE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*


form free .

  refresh gt_data.

  if g_grid is bound.
     g_grid->free( ).
   endif.

  if g_container is bound.
     g_container->free( ).
   endif.

endform. " FREE


*&---------------------------------------------------------------------*
*&      Form  ACC_CREATE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*


form acc_create .

  data:
         is_assignments type ace_assignments,
         it_accounts    type aceds_accounts_t,
         it_params      type aceds_param_t,
         id_effdate     type ace_effdate,
         is_post_params type aceps_manual_posting_params.

  data:
         ed_data_created  type flag,
         ed_data_changed  type flag,
         et_docitems      type aceps_ace_doc_extended_t,
         et_return        type bapiret2_t,
         et_accdoc_return type ace_accdoc_return_t.

  data: cs_object       type acac_object_header_ext,
         ct_object_items type aceds_items_t.
   data: wa_object_items type aceds_object_item_ext.
   data: wa_params       type aceds_object_parameter_ext.

  field-symbols <data> type zec_salv_zacc.

  loop at gt_data assigning <data> where acac_objnumber is initial.
     clear: cs_object, is_assignments, id_effdate, wa_object_items, ed_data_created,
     ed_data_changed .
     refresh: it_params[], et_return[], et_docitems[], et_accdoc_return[],ct_object_items[].

    "Заголовок
     cs_object-bukrs          = sp_bukrs.
     cs_object-acac_objtype   = sp_acr.
     cs_object-date_from      = sp_bldat.
     cs_object-text           = <data>-text.
     cs_object-acac_resperson = <data>-acac_resperson.
     cs_object-vality_from    = <data>-vality_from.
     cs_object-vality_to      = <data>-vality_to.

    "контировка
     is_assignments-costcenter = <data>-costcenter.
     "Дата
     id_effdate = sp_bldat.

    "


*    it_accounts-



    "позиции
     move:
            <data>-acrtype to wa_object_items-acrtype,
            <data>-accrule_b to wa_object_items-accrule,
            <data>-amount_b to wa_object_items-amount,
            <data>-currency_b to wa_object_items-currency,
            <data>-quantity_b to wa_object_items-quantity,
            <data>-unit_b to wa_object_items-unit,
            <data>-acrmethod_b to wa_object_items-acrmethod.
     append wa_object_items to ct_object_items[].

    clear: wa_object_items.
     move:   <data>-acrtype to wa_object_items-acrtype,
           <data>-accrule_n to wa_object_items-accrule,
           <data>-amount_n to wa_object_items-amount,
           <data>-currency_n to wa_object_items-currency,
           <data>-quantity_n to wa_object_items-quantity,
           <data>-unit_n to wa_object_items-unit,
           <data>-acrmethod_n to wa_object_items-acrmethod.


    append wa_object_items to ct_object_items[].

    "даты
     is_post_params-pstng_date = sp_bldat.
     is_post_params-fisc_year  = sp_bldat(4).
     is_post_params-fis_period = sp_bldat+4(2).

    " параметры

    if <data>-zlifnr is not initial.
       clear: wa_params.
       wa_params-param_name = 'ZLIFNR'.
       wa_params-content    = <data>-zlifnr.
       append wa_params to it_params.
     endif.

    if  <data>-zdzuonr is not initial.
       clear: wa_params.
       wa_params-param_name = 'ZDZUONR'.
       wa_params-content    = <data>-zdzuonr.
       append wa_params to it_params.
     endif.

    if <data>-zanln1 is not initial.
       clear: wa_params.
       wa_params-param_name = 'ZANLN1'.
       wa_params-content    = <data>-zanln1.
       append wa_params to it_params.


    endif.



    call function 'ACAC_OBJECT_MODIFY_EXT'
       exporting
         is_assignments   = is_assignments
         it_accounts      = it_accounts
         it_params        = it_params
         id_effdate       = id_effdate
         is_post_params   = is_post_params
         id_testrun       = abap_false
       importing
         ed_data_created  = ed_data_created
         ed_data_changed  = ed_data_changed
         et_docitems      = et_docitems
         et_return        = et_return
         et_accdoc_return = et_accdoc_return
       changing
         cs_object        = cs_object
         ct_object_items  = ct_object_items.


    break ecsflas01.
     <data>-acac_objnumber = cs_object-acac_objnumber.

    if cs_object-acac_objnumber is not initial and ed_data_created eq abap_true .
       <data>-icon = '@08@'.

      call function 'BAPI_TRANSACTION_COMMIT'
         exporting
           wait = 'X'.

    else.
       call function 'BAPI_TRANSACTION_ROLLBACK'.

      <data>-icon = '@0A@'.
     endif.

  endloop.


endform. " ACC_CREATE



*GUI Texts
*----------------------------------------------------------
* MAIN9100 --> Загрузка объектов ACC


*Selection texts
*----------------------------------------------------------
* SP_ACR         Вид объекта разграничения
* SP_BLDAT         Дата документа
* SP_BUKRS         Балансовая единица
* SP_FNAME         Имя файла


*Messages
*----------------------------------------------------------
*
* Message class: PM
*276   Нет полномочий для БЕ &1

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка объектов разграничения
СообщениеДобавлено: Чт, дек 17 2015, 10:47 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 02 2014, 11:50
Сообщения: 60
Скинь, пожалуйста))) Спасибо!


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

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


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

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


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

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