powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Поиск: Искать ответы на сообщение: #713171  
3 сообщений из 3, страница 1 из 1
Вопросы по IT / 3+ способа как импортировать xlsx в sap.
    #713171
Фотография Green
Скрыть профиль Поместить в игнор-лист
Участник
Пользователь назначен модератором темы: Шоколадный01.
...
Green:
Пользователь назначен модератором темы: Шоколадный01.
Рейтинг: 0 / 0
Вопросы по IT / 3+ способа как импортировать xlsx в sap.
    #715214
Шоколадный01
Скрыть профиль Поместить в игнор-лист
Участник
Способ 2й. Альтернатива к move-corresponding, если не привязыватсья к именам колонок в xlsx а к порядковому номеру колонки.
Пробежка через указатель по номерам колонки и присвоение содержимого указателя <lv_field> к соотв. полю во внутренней таблице.
остальная начинка такая же как и в Способе 1.
p_numco - число колонок.
Спойлер
Код: Java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
  field-symbols: <lv_field> type any.
  field-symbols: <lt_worksheet> type table.

  if gt_files is not initial.
        lv_filename = |{ gt_files[ 1 ]-filename }|.
     else.
        lv_filename = p_file.
   endif.

    cl_gui_frontend_services=>gui_upload(
               exporting
                 filename = lv_filename
                 filetype = 'BIN'
                 importing
                 filelength = lv_filesize
                 changing
                 data_tab = lt_bin_data ).

   if lt_bin_data is not initial.
    "Umwandlung von solix -> xstring
    data(lv_bin_data) = cl_bcs_convert=>solix_to_xstring(
                        it_solix = lt_bin_data ).

    data(o_excel) = new cl_fdt_xl_spreadsheet(
              document_name = lv_filename
                               xdocument = lv_bin_data ).

    "Auslesen der Namen der Arbeitsblätter
    data: lt_worksheet_names type
    if_fdt_doc_spreadsheet=>t_worksheet_names.

    o_excel->if_fdt_doc_spreadsheet~get_worksheet_names(
                importing worksheet_names = lt_worksheet_names )."it_worksheet_names[ 1 ] )

    if lines( lt_worksheet_names ) > 0.

      data(o_worksheet_itab) =
        o_excel->if_fdt_doc_spreadsheet~get_itab_for_alv_update( ).

** Worksheet_ITAB zu einem generischen Field Symbol referenzieren
      assign o_worksheet_itab->* to field-symbol(<worksheet>).
      assign o_worksheet_itab->* to <lt_worksheet>.
      clear lv_datumbeginn.
      refresh lt_tab_excel.

      loop at <lt_worksheet> assigning field-symbol(<ls_worksheet>).
      do p_numco times.
        assign component sy-index of structure <ls_worksheet> to <lv_field>.
        case sy-index.
        when 1.
          ls_tab_excel-BUKRS = <lv_field>.
        when 2.
          ls_tab_excel-BLART = <lv_field>.
        when 3.
          ls_tab_excel-BLDAT = <lv_field>.
        when 4.
          ls_tab_excel-BUDAT = <lv_field>.
        when 5.
          ls_tab_excel-MONAT = <lv_field>.
        when 6.
          ls_tab_excel-BKTXT = <lv_field>.
        when 7.
         ls_tab_excel-BSCHL = <lv_field>.
        when 8.
         ls_tab_excel-KOART = <lv_field>.
        when 9.
         ls_tab_excel-HKONT = <lv_field>.
        when 10.
         ls_tab_excel-WRBTR = <lv_field>.
        when 11.
         ls_tab_excel-MWSKZ = <lv_field>.
        when 12.
         ls_tab_excel-KOSTL = <lv_field>.
        when 13.
         ls_tab_excel-AUFNR = <lv_field>.
        when 14.
         ls_tab_excel-SGTXT = <lv_field>.
        when 15.
         ls_tab_excel-VBUND = <lv_field>.
        when 16.
         ls_tab_excel-AUFTEIL = <lv_field>.
        when 17.
         ls_tab_excel-ERSTBUCH = <lv_field>.

        append ls_tab_excel
          to lt_tab_excel.
        ENDCASE.
       ENDDO.
      endloop.

      loop at lt_tab_excel into ls_tab_excel.
        move-corresponding ls_tab_excel  to ls_tab_dconv.
        perform date_convert using ls_tab_excel-bldat changing ls_tab_dconv-bldat.
        perform date_convert using ls_tab_excel-budat changing ls_tab_dconv-budat.
        perform date_convert using ls_tab_excel-ERSTBUCH changing ls_tab_dconv-ERSTBUCH.
        ls_tab_dconv-gjahr = ls_tab_dconv-budat(4).
        "ls_tab_dconv-nebtr = ls_tab_excel-nebtr.
        ls_tab_dconv-wrbtr = ls_tab_excel-wrbtr.
        append ls_tab_dconv
          to lt_tab_dconv.
      endloop.

    endif.
...
Изменено: 01.02.2024, 22:56 - Шоколадный01
Рейтинг: 0 / 0
Вопросы по IT / 3+ способа как импортировать xlsx в sap.
    #715772
Шоколадный01
Скрыть профиль Поместить в игнор-лист
Участник
Кодирование/декодирование структурированных данных в/из внутреннюю "бинарную "таблиц(у)/(ы).

Обычно буффер пишут в бинарный файл в какой нибуть из каталогов в AL11.
Сделал такое. Не понравилось.. типа нам не нужын файловый буффер. нам нада только читать из экселя.
Подумал а чебы не впиихнутъ в бинар без файла.. оказывается довольно легко[:blink]
Удобно при многоуровевой древовидной буфферизации..
в примере A, B, C - уровни;
Таблица со структурой в которой одно поле уровень, другое XSTRING.
Спойлер
Код: Java
1.
2.
3.
4.
5.
6.
 TYPES: BEGIN OF ty_itabx,
   satzart(1) TYPE c,
   hex TYPE xstring,
 END OF ty_itabx.
DATA gt_itabx TYPE STANDARD TABLE OF ty_itabx.
DATA gs_itabx LIKE LINE OF gt_itabx.
Два экземпляра класса "Codepage- und Endian Konvertierung (Systemformat -> Extern)" : 1й - на вход, 2й - на выход
DATA(o_conv) = cl_abap_conv_out_ce=>create( encoding = 'UTF-8' endian = 'L' ). " IN
DATA(o_convo) = cl_abap_conv_in_ce=>create( encoding = 'UTF-8' endian = 'L' ). " OUT


Вход: инициализация "легаси" view со стуктурой с данными для входа.
копирование в бинар, присвоение бинарной структуре, добавление в таблицу .
Спойлер
in.JPG
Спойлер
Код: Java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    clear lv_buffer.
     DATA(o_viewA) = cl_abap_view_offlen=>create_legacy_view( wa_komfkgn ).
     o_conv->convert_struc( EXPORTING
                         data   = wa_komfkgn
                         view   = o_viewA
                       IMPORTING
                         buffer = lv_buffer ).

     gs_itabx-satzart = satzart.
     gs_itabx-HEX = lv_buffer.
     APPEND gs_itabx TO gt_itabx.
Выход - обратный процесс легаси для выхода. копирование в буффер, декодирование
Спойлер
out.JPG
Спойлер
Код: Java
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOOP AT  gt_itabx INTO gs_itabx.
DATA(o_viewF) = cl_abap_view_offlen=>create_legacy_view( wa_komfkgn ).
   DATA(lv_bufferF) = gs_itabx-HEX.
      o_convo->convert_struc( EXPORTING
                         input = lv_bufferF
                         view  = o_viewF
                       IMPORTING
                         data  = wa_komfkgn ).
endloop.
Таким образом кодировал чтобы импортировать "ворох" SD фактур с экселя. куски кода:
Спойлер
Код: Java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
 TYPES: BEGIN OF ty_itabx,
   satzart(1) TYPE c,
   hex TYPE xstring,
 END OF ty_itabx.

 DATA gt_itabx TYPE STANDARD TABLE OF ty_itabx.
 DATA gs_itabx LIKE LINE OF gt_itabx.

* ENCODING
form daten__anlegen USING gt_data type standard table CHANGING cnt TYPE i.

  data: ls_pos type ty_pos.
  data: lv_bp  type bu_partner.
  data: lv_bp_alt  type bu_partner.
  "data cnt type i.
  data cnt_str type string.

 data : lv_numberofcolumns   type i,
         lv_zeileart(1)       type c,
         lv_date_string       type string,
         lv_target_date_field type datum.

DATA: lv_buffer type xstring.

DATA(o_conv) = cl_abap_conv_out_ce=>create( encoding = 'UTF-8' endian = 'L' ).
DATA(o_convo) = cl_abap_conv_in_ce=>create( encoding = 'UTF-8' endian = 'L' ).

  field-symbols : <ls_data>  type any,
                  <ls_datak> type any,
                  <lv_field> type any.

  lv_numberofcolumns = p_ncol.

 LOOP at gt_data ASSIGNING <ls_data> from 2.
         clear:  ls_pos.

    ls_pos-auart   =  'TA'.
    ls_pos-spart   =  '01'.
    ls_pos-pstyv   =   'DLN'.        " 'TAD'.         "Positionstyp Vertr.beleg
    ls_pos-fkara   =  inv_type. "'FX'.                 "Vorschlag Fakturaart
    ls_pos-taxm1   =  '1'.
    ls_pos-taxk1   =  '1'.
    ls_pos-versg   =  '2'.

   do lv_numberofcolumns times.
      assign component sy-index of structure <ls_data> to <lv_field>.
      case sy-index.
        when 1.
            ls_pos-zlart =  <lv_field>.
          if ls_pos-zlart = 'N'.
            cnt = cnt + 1.
            cnt_str = cnt.
            clear a1_vgbel.
            move cnt_str to a1_vgbel.
            move sy-uzeit to a1_vgbel+1.
          endif.
          ls_pos-vgbel = a1_vgbel.

        when 2.
          ls_pos-VKORG = <lv_field>.
        when 3.
          ls_pos-VTWEG = <lv_field>.
        when 4.
         ls_pos-WERKS =  <lv_field>.
        when 5.
          ls_pos-vgpos  = <lv_field>.

        when 6.
          lv_date_string = <lv_field> .
          perform date_convert using lv_date_string changing lv_target_date_field .
          ls_pos-fkdat =  lv_target_date_field.
        when 7.

          call function 'CONVERSION_EXIT_ALPHA_INPUT'
            exporting
              input  = <lv_field>
            importing
              output = lv_bp.

          ls_pos-kunag   =  lv_bp.
          ls_pos-kunrg   =  lv_bp.
          ls_pos-kunre   =  lv_bp.
          ls_pos-kunwe   =  lv_bp.
        when 8.
          ls_pos-kbetr   =  <lv_field>.
        when 9.
           ls_pos-matnr =  <lv_field>.
          select single maktx from makt into wa_komfkgn-arktx where matnr = <lv_field>.

        when 10.
          ls_pos-kwmeng  =  <lv_field>.               "Auftragsmenge
      endcase.
    enddo.

    if ls_pos is not initial.
      satzart = 'A'.
      wa_komfkgn-mandt   =  sy-mandt.
      wa_komfkgn-auart   = ls_pos-auart.
      wa_komfkgn-vkorg   = ls_pos-vkorg.
      wa_komfkgn-vtweg   =  ls_pos-vtweg.
      wa_komfkgn-spart   =  ls_pos-spart.
      wa_komfkgn-fkdat =   ls_pos-fkdat.
      wa_komfkgn-prctr  = 'PC9999'.
      wa_komfkgn-VKBUR   =  '1000'.
      wa_komfkgn-kunag   =  ls_pos-kunag.
      wa_komfkgn-kunrg   =  ls_pos-kunrg.
      wa_komfkgn-kunre   =  ls_pos-kunre.
      wa_komfkgn-kunwe   =  ls_pos-kunwe.
      wa_komfkgn-kwmeng  =  ls_pos-kwmeng.
      wa_komfkgn-matnr   =  ls_pos-matnr.
      wa_komfkgn-vrkme   =  'ST'.
      wa_komfkgn-pstyv   =  ls_pos-pstyv.
      wa_komfkgn-kwmeng  =  ls_pos-kwmeng.
      wa_komfkgn-werks   =  ls_pos-werks.
      wa_komfkgn-vgbel   = ls_pos-vgbel.
      wa_komfkgn-vgpos   =  ls_pos-vgpos.
      wa_komfkgn-fkara   =  ls_pos-fkara.
      wa_komfkgn-taxm1   =  ls_pos-taxm1.
      wa_komfkgn-taxk1   =  ls_pos-taxk1.
      wa_komfkgn-versg   =  ls_pos-versg.

    clear lv_buffer.
     DATA(o_viewA) = cl_abap_view_offlen=>create_legacy_view( wa_komfkgn ).
     o_conv->convert_struc( EXPORTING
                         data   = wa_komfkgn
                         view   = o_viewA
                       IMPORTING
                         buffer = lv_buffer ).

     gs_itabx-satzart = satzart.
     gs_itabx-HEX = lv_buffer.
     APPEND gs_itabx TO gt_itabx.

      "transfer satzart to ds_name.
      "transfer wa_komfkgn to ds_name.
*           Preisteile
      clear wa_komfkko.
      satzart = 'B'.
      wa_komfkko-mandt   =  sy-mandt.
      wa_komfkko-knumv   =  wa_komfkgn-vgbel.
      wa_komfkko-kposn   =  wa_komfkgn-vgpos.
      wa_komfkko-kschl   =  'PR00'.
      wa_komfkko-kbetr   =   ls_pos-kbetr.

     clear lv_buffer.
     DATA(o_viewB1) = cl_abap_view_offlen=>create_legacy_view( wa_komfkko ).
     o_conv->convert_struc( EXPORTING
                         data   = wa_komfkko
                         view   = o_viewB1
                       IMPORTING
                         buffer = lv_buffer ).

     gs_itabx-satzart = satzart.
     gs_itabx-HEX = lv_buffer.
     APPEND gs_itabx TO gt_itabx.

      "transfer satzart to ds_name.
      "transfer wa_komfkko to ds_name.

* Positionstexte
      clear wa_komfktx.
      satzart               =  'C'.
      wa_komfktx-mandt      =  sy-mandt.
      wa_komfktx-vgbel      =  wa_komfkgn-vgbel.
      wa_komfktx-vgpos      =  wa_komfkgn-vgpos.
      wa_komfktx-tdobject   =  'VBBP'.
      wa_komfktx-tdid       =  '0002'.
      wa_komfktx-tdspras    =  'DE'.
      wa_komfktx-tdformat   =   '*'. " 'U1', 'AS'
      wa_komfktx-tdline     =  'Das ist ein Text'.

     clear lv_buffer.
     DATA(o_viewC) = cl_abap_view_offlen=>create_legacy_view( wa_komfktx ).
     o_conv->convert_struc( EXPORTING
                         data   = wa_komfktx
                         view   = o_viewC
                       IMPORTING
                         buffer = lv_buffer ).

     gs_itabx-satzart = satzart.
     gs_itabx-HEX = lv_buffer.
     APPEND gs_itabx TO gt_itabx.

    endif.

  endloop.

endform.

*DECODING

form externer_faktura_sammellauf_x
    using "ds_name
          ds_check
          fakliste.
*---------------------------------------------------------------------*
*       Ermitteln Sammelgangsnummer                                   *
*---------------------------------------------------------------------*
  check rv50s-sammg is initial.

  select single * from tvsa where smart = 'F'.
  if sy-subrc = 0.
    call function 'NUMBER_GET_NEXT'
      exporting
        nr_range_nr = tvsa-numki
        object      = 'RV_SAMMG'
      importing
        number      = rv50s-sammg.
  else.
    perform add_msg_to_appl_log1 using sammelgangsart gc_msgty_e.
  endif.
*---------------------------------------------------------------------*
*        Füllen Sammelgangsverwaltungssatz
*---------------------------------------------------------------------*
  clear vbsk.
  vbsk-mandt = sy-mandt.               "Mandant
  vbsk-ernam = sy-uname.               "Name des Sachbearbeiters
  vbsk-erdat = sy-datum.               "Datum des Hinzufügens
  vbsk-uzeit = sy-uzeit.               "Uhrzeit -"-
  vbsk-smart = 'F'.                    "Gruppenart
  vbsk-sammg = rv50s-sammg.            "Gruppennummer

*-------- Mappendaten: Dynpro RVAFS900 900
  clear bdc_tab.
"  move: 'ZRVAFSS00'    to bdc_tab-program,
   move: 'Z_REP_SD_FAKTURA_IMP' to bdc_tab-program,
        '0900'        to bdc_tab-dynpro,
        'X'           to bdc_tab-dynbegin.
  append bdc_tab.
  clear bdc_tab.
  write: 'bdc_okcode' to bdc_tab-fnam,
         '   '        to bdc_tab-fval.
  append bdc_tab.

*------- validate filename -------------------------------------------
*  call function 'FILE_VALIDATE_NAME'
*    exporting
*      logical_filename  = gc_filename
*    changing
*      physical_filename = ds_name
*    exceptions
*      others            = 1.
*  if sy-subrc <> 0.
*    message id sy-msgid type sy-msgty number sy-msgno
*      with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*  endif.

*------- File öffnen / lesen -----------------------------------------

*  open dataset ds_name for input in binary mode.
*
*  if sy-subrc ne 0.
*    perform add_msg_to_appl_log
*      using ds_name gc_msgty_i '511' 'VF' space space.
*    exit.
*  endif.

  clear i.

"-------------------
"DATA lv_vgbel_alt TYPE vgbel.
DATA lv_fill_head TYPE abap_bool.
 clear lv_fill_head.

LOOP AT  gt_itabx INTO gs_itabx.
* read first record
*READ TABLE  gt_itabx INTO  gs_itabx INDEX 1.
*    if gs_itabx-satzart <> 'A' and gs_itabx-satzart <>  'B' and gs_itabx-satzart <>  'C' and gs_itabx-satzart <> 'X' .
*      exit.
*    endif.
   satzart = gs_itabx-satzart.

    if satzart <> 'A' and satzart <>  'B' and satzart <>  'C' and satzart <> 'X' .
      exit.
    endif.

    if satzart = fakturasatz.
      DATA(o_viewF) = cl_abap_view_offlen=>create_legacy_view( wa_komfkgn ).
      "DATA(lv_buffer) = CONV xstring( gs_itabx-HEX ).
      DATA(lv_bufferF) = gs_itabx-HEX.
      o_convo->convert_struc( EXPORTING
                         input = lv_bufferF
                         view  = o_viewF
                       IMPORTING
                         data  = wa_komfkgn ).

"    read dataset ds_name into wa_komfkgn.
  elseif satzart = preisteilsatz.
      DATA(o_viewP) = cl_abap_view_offlen=>create_legacy_view( wa_komfkko ).
      DATA(lv_bufferP) = gs_itabx-HEX.
      o_convo->convert_struc( EXPORTING
                         input = lv_bufferP
                         view  = o_viewP
                       IMPORTING
                         data  = wa_komfkko ).
"    read dataset ds_name into wa_komfkko.
  elseif satzart = textteilsatz.
      DATA(o_viewT) = cl_abap_view_offlen=>create_legacy_view( wa_komfktx ).
      DATA(lv_bufferT) = gs_itabx-HEX.
      o_convo->convert_struc( EXPORTING
                         input = lv_bufferP
                         view  = o_viewP
                       IMPORTING
                         data  = wa_komfktx ).
    "read dataset ds_name into wa_komfktx.
  elseif satzart = eof_satz.
    xeof = x.
  else.
*   MESSAGE A512 WITH DS_NAME.
    "perform add_msg_to_appl_log1 using ds_name gc_msgty_e.
  endif.
  if sy-subrc eq 4.
*------- End of File erreicht   --> Exit ------------------------------
    xeof = x.
  endif.
  if sy-subrc eq 8.
*------- Datei kann nicht geöffnet werden -----------------------------
*   MESSAGE A512 WITH DS_NAME.
   " perform add_msg_to_appl_log1 using ds_name gc_msgty_e.
    exit.
  endif.
    check satzart is not initial.

if xeof = 'X'.
    exit.
endif.
"-------------------------

  "LOOP AT  gt_itabx INTO gs_itabx FROM 2.

"  while xeof ne x.
    "check satzart is not initial.
    if satzart eq fakturasatz.
      "perform xkomfkgn_fuellen.
*      on change of wa_komfkgn-vkorg or
*                   wa_komfkgn-vtweg or
*                   wa_komfkgn-kunag or
*                   wa_komfkgn-fkdat.

        on change of wa_komfkgn-vgbel.

        if i > 0 and xkomfkgn is not INITIAL.
          perform gn_invoice_create
                  using "ds_name
                        ds_check
                        fakliste.
          clear i.
          clear lv_fill_head.
          refresh xkomfkgn.
          refresh xkomfkko.
          refresh xkomfktx.
        endif.
      endon.

     ELSEif satzart <> fakturasatz.
      perform fakturasatz_bearbeiten_x USING gs_itabx
                                              "ds_name
                                              ds_check
                                              fakliste
                                       CHANGING lv_fill_head.
      i = i + 1.
    endif.
    "endif.
*    if i > max_zahl.
** ----------  maximale Anzahl Sätze erreicht --------------------------
    "  perform gn_invoice_create
    "          using ds_name
    "                ds_check
    "                fakliste.
    "  clear i.
    "  refresh xkomfkgn.
    "  refresh xkomfkko.
    "  refresh xkomfktx.
*    endif.

  ENDLOOP.

  if i <> 0.
    perform gn_invoice_create
            using "ds_name
                  ds_check
                  fakliste.
    clear i.
    refresh xkomfkgn.
    refresh xkomfkko.
    refresh xkomfktx.
  endif.

endform.                               "externer_faktura_sammellauf
Базисный FM не BAPI sondern 'GN_INVOICE_CREATE'.. also keiin BAPI_COMMIT am Endeffekt.
Спойлер
basis.JPG
...
Изменено: 02.02.2024, 21:07 - Шоколадный01
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Поиск: Искать ответы на сообщение: #713171  
Пользователи онлайн (103): Анонимы (99), Yandex Bot 1 мин., Bing Bot 3 мин., s62 4 мин., ElenaG 7 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]