on 2022 Jun 16 6:03 AM
Hello everyone,
I want to send data on assortment to abap proxy - zbes_bes_request_assortment.
However, I am facing an error. I can't undestand why, since other programs with the same logic are working fine. While debug, data is written to internal table, but to some reason, it does not want to be sent to the abap proxy. Any ideas?
My code, just in case:
TABLES: wlk1, wrsz.
TYPES: BEGIN OF typ_assort,
id(10) TYPE c,
type(1) TYPE c,
shop(4) TYPE c,
product(18) TYPE c,
modified_at(8) TYPE c,
END OF typ_assort.
DATA: s_assort TYPE TABLE OF typ_assort,
ls_assort LIKE LINE OF s_assort.
DATA lv_err TYPE boolean.
DATA prox_exception TYPE REF TO cx_ai_system_fault.
DATA err_txt TYPE string.
DATA tmp_str TYPE string.
TYPES: BEGIN OF t_assort_typ,
artnr TYPE wlk1-artnr,
datab TYPE wlk1-datab,
sstat TYPE wlk1-sstat,
id TYPE i,
locnr TYPE wrsz-locnr,
END OF t_assort_typ.
DATA: lt_assort TYPE TABLE OF t_assort_typ,
wa_assort LIKE LINE OF lt_assort.
TYPES: BEGIN OF t_wrsz,
asort TYPE wrsz-asort,
locnr TYPE wrsz-locnr,
END OF t_wrsz.
DATA: s_wrsz TYPE TABLE OF t_wrsz,
ls_wrsz LIKE LINE OF s_wrsz.
DATA: lo_exp TYPE REF TO zbes_co_sao_bes_request,
ls_exp TYPE zbes_mt_bes_request,
ls_imp TYPE zbes_mt_bes_response,
ls_imp_ch TYPE zbes_jdbc_xml_response,
ls_imp_st TYPE zbes_jdbc_resp_structure,
ls_req TYPE zbes_bes_request,
ls_assortment TYPE zbes_bes_request_assortment,
ls_set TYPE zbes_bes_col_assortment,
ls_where TYPE zbes_bes_col_assortment.
DATA: up_count TYPE int4,
in_count TYPE int4,
del_count TYPE int4.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: so_locnr FOR wrsz-locnr,
so_artnr FOR wlk1-artnr.
SELECTION-SCREEN END OF BLOCK bl1.
SELECT asort locnr FROM wrsz INTO ls_wrsz WHERE locnr IN so_locnr.
COLLECT ls_wrsz INTO s_wrsz.
CLEAR ls_wrsz.
ENDSELECT.
wa_assort-id = 0.
LOOP AT s_wrsz INTO ls_wrsz.
SELECT artnr datab sstat FROM wlk1 INTO wa_assort WHERE filia EQ ls_wrsz-asort AND quell EQ 3 AND artnr IN so_artnr.
wa_assort-id = wa_assort-id + 1.
IF wa_assort-sstat EQ 5.
wa_assort-sstat = 0.
ELSEIF wa_assort-sstat EQ ''.
wa_assort-sstat = 1.
ENDIF.
wa_assort-locnr = ls_wrsz-locnr.
wa_assort-artnr = wa_assort-artnr.
wa_assort-datab = wa_assort-datab.
APPEND wa_assort TO lt_assort.
ENDSELECT.
ENDLOOP.
CLEAR wa_assort.
LOOP AT lt_assort INTO wa_assort.
ls_assort-id = wa_assort-id.
CONDENSE ls_assort-id NO-GAPS.
ls_assort-type = wa_assort-sstat.
ls_assort-shop = wa_assort-locnr.
ls_assort-product = wa_assort-artnr.
SHIFT ls_assort-product LEFT DELETING LEADING '0'.
ls_assort-modified_at = wa_assort-datab.
APPEND ls_assort TO s_assort.
ENDLOOP.
CLEAR ls_assort.
LOOP AT s_assort INTO ls_assort.
ls_set-id = ls_assort-id.
ls_set-type_id = ls_assort-type.
ls_set-shop_id = ls_assort-shop.
ls_set-product_id = ls_assort-product.
ls_set-modified_at = ls_assort-modified_at.
ls_where-id = ls_assort-id.
ls_assortment-set = ls_set.
ls_assortment-action = 'UPDATE_INSERT'.
CLEAR ls_assortment-where.
APPEND ls_where TO ls_assortment-where.
APPEND ls_assortment TO ls_req-assortment.
ENDLOOP.
ls_exp-mt_bes_request = ls_req.
CREATE OBJECT lo_exp.
TRY.
lo_exp->sao_bes_request( EXPORTING output = ls_exp IMPORTING input = ls_imp ).
COMMIT WORK AND WAIT.
CATCH cx_ai_system_fault INTO prox_exception.
lv_err = abap_true.
err_txt = prox_exception->errortext.
WRITE: / 'Ошибка при отправки данных на Абап прокси, описание ошибки:'.
IF strlen( err_txt ) > 150.
WHILE strlen( err_txt ) > 150.
tmp_str = err_txt(150).
SHIFT err_txt BY 150 PLACES.
WRITE: / tmp_str.
ENDWHILE.
IF strlen( err_txt ) > 0.
WRITE: / err_txt.
ENDIF.
ELSE.
WRITE: / err_txt.
ENDIF.
ENDTRY.
IF lv_err IS INITIAL.
CLEAR: up_count, in_count, del_count.
LOOP AT ls_imp-mt_bes_response-changetable_response ASSIGNING FIELD-SYMBOL(<l_string>).
up_count = up_count + <l_string>-update_count.
in_count = in_count + <l_string>-insert_count.
del_count = del_count + <l_string>-delete_count.
ENDLOOP.
WRITE: 'Выгрузка данных в таблицу ASSORTMENT. Записей добавлено ', in_count, ' Записей обновлено ', up_count, ' Записей удалено ', del_count.
ELSE.
WRITE: 'Ошибка при выгрузке данных в таблицу ASSORTMENT. ==> '.
ENDIF.
Help others by sharing your knowledge.
AnswerRequest clarification before answering.
Issue solved. Never mind. The problem was in date. If you will encounter same problem, reference to date!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 5 | |
| 5 | |
| 4 | |
| 4 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.